巨帧(jumbo frame)

最近重新接触到巨帧(jumbo frame)这个概念,第一次接触是在视频传输中,本来以为定义是一个定值的,故没有太大留意,这次重新查看了下,其定义是一个范围值,而且该范围还与厂家设置有关,故需要注意一下。

首先为什么要启用巨帧,具体来源理解还不深,不过带来最大的好处还是效率提高(尤其在高速网络中,该效率体现比较大)。在网络中定义该效率就是真实发送payload的时间/发送完整数据包(包含头部)的时间,wiki上的表大致有一个记录,当然这个定义还不是非常严格就是了,如果定义在网络中,那么还有一个竞争开销这里并没有包含,即CSMA/CD回退所产生的开销,不过这里如何度量会复杂一些。从下图中可以看到,标准模式的效率(也就是归一化吞吐量)是低于jumbo模式的。实际上这点如果从无线网络的发展来看,也是同样的思路。在一开始的无线网络802.11a/b/g,其都是没有引入太长的数据包长度考量的,毕竟本身传输速率有限,且效率影响不大。随着物理层速率增加,这点逐步开始被重视,即从协议802.11e中的txop,到802.11n中的帧聚合,其意都在通过增加数据包长度,来提高网络效率,这里有关细节以后可以再讨论,这里仅仅记录下。


那么接下来就是有关Jumbo帧定义的问题了,目前通常好像是将1500Byte至9000Byte这一段叫做Jumbo帧,然后从9000Byte至64000Byte叫做Super jumbo frames,也就是超巨帧。同时这里还有一个Baby giant frames的定义,暂时理的还不是很清楚,有的所述为,标准的二层MTU大小是1500Byte,如果由于封装头部的原因,使之大于1500Byte,比如802.1Q的封装头部,其整个帧大小就会是1522Byte,即该个就是小巨帧(这里未理清楚的就是这里是从1500Byte开始算起,还是从1518Byte开始算起,即Ethernet和802.3帧的区别,同样在巨帧中也有这个问题)。

然后有关Jumbo帧定义的起始点,目前有的是从1500Byte开始算起,有的是从1518Byte开始算起,原因应该就是Ethernet和802.3帧的区别,不过这里还没有考究过。有关Jumbo帧的结尾点,则定义看到过更多的版本,wiki上面算是列举了几种,如下


实际上一般查到的也是9216Byte,好像该设置上限是思科的上限,所以比较常用些。在Ethernet权威指南一书中,将该上限提高到了9720Byte,如下图


同时对于Jumbo frame的起始点,该书中所述也是从1500Byte起始的,实际上就是最大帧的大小定义为了1500Byte,同时这里所述巨帧一般是本地有效的,其原因应该是很多地方会filter该巨帧,比如说路由不开启支持巨帧,则无法传输出去。


在电脑上如果需要兼容巨帧,也是需要通过网卡驱动设置中,选择巨帧支持才可以。比如下图就是设置的情况,在该设置中,所支持巨帧的大小是从2K~9K的范围,不过至于为什么不一次性只采用一个设置,而可以精确到特定大小的巨帧,可能是为了性能优化而言。毕竟一般本地所采用巨帧都是一些特殊设备,如工业摄像头之类的,其帧通常也是选择6K大小,所以没有必要选择9K大小,从而可能在资源开辟上面能够提高一些性能。


已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页