图解服务器端网络架构-网络层L3

图解服务器端网络架构-网络层L3,第1张

数据链路层只是将同一网段中的节点连接起来,而网络层将不同的网段连接起来。

假如我们要连接国外的Web服务器,由于网段不同,在数据链路层这个层面是根本无法连接起来的,而网络层群能将数据链路层中能够的一个个小网段拼接成一个大网络。

有些IP地址已近被系统占用了,其中三种常用于网络设计和故障排除,它们分别是网络地址,广播地址,环回地址。

网络地址:是指主机部分的IP地址位都是0的IP地址,代表了网络本身。

例如,针对IP地址192.168.1.1设置的子网掩码时255.255.255.0,那么192.168.1.0就是网络地址。

广播地址:指主机部分的IP地址位都是1的IP地址,代表了同一网段中的所有节点。

例如,如果针对192.168.1.1设置的子网掩码时255.255.255.0,那么192.168.1.255就是广播地址。

路由器和L3(网络层)交换机是工具L3中的IP地执信息转发数据包的。对数据包的转发目的地进行切换的过程叫做路由选择。

L3交换机和路由器是通过路由表对IP数据包进行路由选择的。

路由表由“目的网段””下一跳“”路由协议“”度量值“等多种信息构成,它告诉我们将数据包转发给哪个IP地址就能抵达目的网段。其中,最重要的信息是”目的网段“和”下一跳“。

假设有如下设置的两个节点,它们是双向通信的。

MAC地址是物理地址,仅在同一网段中有效,因此,每当要跨越网段——也就是需要跨越路由器时——都必须更换MAC地址才行,ARP能解决这个目的MAC地址的更换问题。

作为一名业内资深的游戏开发人员,经常会遇到实习的新同事在工作中会问到这样的问题:

工作中到底有哪些开源游戏服务器框架,该去值得学习呢?

囊括到node.js 、java、C#、golang 、c++、python 等技术栈有各种各样的游戏框架

本文给大家总结了一些github上star和fork比较常用的且有一定数量的较为完整的框架做了一个说明,大家可以往下看。

地址: https://github.com/cloudwu/skynet

基于此引擎开发的游戏众多,很多棋牌小企业在用,例如简悦的 陌陌争霸 食物战争 等等很多产品...

地址: https://github.com/NetEase/pomelo

一花科技等棋牌在用

地址: https://github.com/ketoo/NoahGameFrame

代表作全民无双

地址: https://github.com/kbengine/kbengine

已经被电魂网络收购

地址: https://github.com/egametang/ET

经过产品验证并且教程比较完善

地址: https://github.com/topfreegames/pitaya

zooba appstroe排行很高的moba、吃鸡类游戏

但是,像c++类的框架对新手要求较高。

亦或者node.js类框架性能确实差一些,毕竟它是针对io密集型。

阿博自己的话使用的是pitaya这套框架。毕竟支持分布式使用的技术比较新,也经过各种验证。 其他的就先不做评价,留着给大家发表一下意见。

毕竟,只要适合自己的才是最好的。

是的不......

1、Django

Python中最全能的Web开发框架,各种功能完备,可维护性和开发速度都一级棒,不少人反应Django框架慢,它主要慢在DjangoORM与数据库的交互上,所以是否使用Django框架,需要取决于项目对数据库交互的要求以及各种优化,而对于Django的同步特性导致吞吐量小的问题,可以通过Celery等解决,这并不是一个致命问题。

2、Tornado

异步,性能强悍,然而它相比Django框架来说,相对原始,很多东西需要自己去处理,随着项目的逐渐扩大,框架所能提供的功能也会越来越小,更多的东西需要团队自己去实现,而大项目往往需要性能的保证,这时它就是最佳的选择。

3、Flask

微框架,可以说是Python代码写得最好的项目之一,它的灵活性也是把双刃剑,能使用好Flask框架,即可以做成Pinterest,用不好就是灾难,它是一个微框架,但也可以做成规模化的Flask,加上它可以自由选择自己的数据库交互组件,而且加上celery+redis等异步特性之后,Flask的性能相对Tornado也不相上下,也许Flask的灵活性可能是某些团队更需要的。

4、Twisted

前面提到的3个Web框架都是围绕应用层HTTP展开的,而Twisted则不同,它是一个用Python语言编写的事件驱动的网络框架,对于追求服务器性能的应用,它是个非常不错的选择。

它支持很多协议,包括传输层的UDP、TCP、TLS,以及应用层的HTTP、FTP等,对于这些协议,Twisted提供了客户端和服务器方面的开发工具。

它是一个高性能的编程框架,在不同的操作系统上,Twisted利用不同的底层技术实现了高性能通信,在开发方法上,Twisted引导程序员使用异步编程模型,它提供了丰富的Defer、Threading等特性来支持异步编程。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/333288.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存