以太网帧长度大小限制

最大长度限制

网卡上一个参数是MTU值。一般都是1500。表示以太网传输的最大帧长度。
为什么要有最大帧长度限制呢?
这是因为以太网采用的是CSMA/CD方法在介质上传输数据。CSMA/CD叫做带冲突检测的载波监听多路访问技术,在发送数据之前需要检测链路是否空闲,只有链路空闲时才发送数据,并且边发送边检测。发送的过程中一旦检测到冲突则立即停止。所以也就是说,数据发送的过程中,整个链路是被独占的。所以需要限制一次传输数据的最大长度,如果一个人占用时间过长,这对其他人而言是不可接受的。
而且限制最大长度还有以下好处:
1)帧传输的过程中,一旦出错,需要全部重传,长度太长反而效率不高。(可能现在的传输介质已经不存在这种问题了)
2)帧越长,需要的缓存越大,1979年在设计网卡时,缓存的价格非常昂贵,所以当时选用1500 bytes作为最大的长度。

需要注意的是,以长帧长度限制是1518字节。减去18字节的以太网帧长度,所以ip层的报文长度限制为1500。

最小长度限制

最大长度还是比较直观易于理解,那么为什么又有最小长度限制呢?
还是因为CSMA/CD。
AB之间通信。
当A检测到链路空闲,然后发送报文,巧的是B跟你一样,这不就冲突了嘛。
最坏的情况,AB俩隔得最远。当A发送的报文刚好要到达B时,B开始发送报文。
如果在B的报文到达A之前,A就已经发送完了,那么A就不知道冲突了。所以,需要限制发送的报文最小长度。
最小长度是多少呢?
显然,最小长度同时受两个节点最远距离和传输速度的影响。最远距离越长,传输速度越快,所需要的最小长度也就越大。

针对不同带宽的网络,标准组织定义了不同的slot time。

SpeedSlot timeTime Interval
10 Mbit/s512 bit times51.2 microseconds
100 Mbit/s512 bit times5.12 microseconds
1 Gbit/s4096 bit times4.096 microseconds
2.5 Gbit/s onwardno half-duplex operation

所以,不同的网络,其实最小长度是不一定的,两个节点能相隔的最远距离也是不一样的。
10Mbit/s的网络,报文最小长度为64字节。两个节点最远距离不能超过:
51.210(-6)*(0.7*3*108)/2=5.376km
在1Gbit/s的网络中,报文最小长度为512字节。最远距离不超过约0.43km

不足的长度填充全0补齐。这些数据是不计算入ip层的。
使用tcpdump抓包时,经常看见length=0的报文。其实这个长度指的是TCP层数据报文的长度。

参考:
以太网最小,最大字节长度 https://blog.51cto.com/19880206/890070
https://en.wikipedia.org/wiki/Slot_time
https://stackoverflow.com/questions/33039394/why-is-the-minimum-ethernet-frame-64-bytes

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值