以太网最大帧和最小帧、MTU
来源:互联网 发布:淘宝上买dota2饰品 编辑:程序博客网 时间:2024/05/05 15:44
文章出处:http://ewangsoft.blog.163.com/blog/static/7721558220093200840864/
根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步码 + 1字节帧开始定界符 + 6字节的目的MAC + 6字节的源MAC + 2字节的帧类型 + 1500 + 4字节的FCS。
按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?
原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和出错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交给“设备驱动程序”做进一步处理。这时我们抓包的软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6 + 6 + 2 + 1500 = 1514。
以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是 6 + 6 + 2 + 46 + 4 = 64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到64字节帧的时候,已经捕获了数据。因此不同的抓包工具抓到的数据帧的大小可能不同。(比如,wireshark抓到的可能没有填充数据段,而sniffer抓到的就有填充数据段)
查看网络接口MTU的方法:
Windows下,在命令提示符下输入netstat -e -v
FreeBSD下,输入netstat -i
- 以太网最大帧和最小帧、MTU
- 以太网最大帧和最小帧、MTU
- 以太网最大帧和最小帧、MTU
- 以太网最大帧和最小帧、MTU
- (转载)以太网最大帧和最小帧、MTU .
- 以太网原理 之 最大帧长和最小帧长
- 以太网最大传输单元MTU
- 在传统以太网中,为什么要有最小帧长度和最大帧长度的限制?
- 以太网帧最小帧长与最大帧长
- 以太网帧最小帧长与最大帧长
- 以太网原理 最大帧长 最小帧长
- 以太网原理 最大帧长 最小帧长
- 以太网数据帧(802.3)最大与最小长度
- [计算机网络] 以太网数据帧(802.3)最大与最小长度
- 以太网数据帧(802.3)最大与最小长度
- 数据链路层以太网帧格式------理解MTU的定义和最大值(1500字节)
- 各种信令协议的最大帧长和MTU
- MTU与MSS的关系---以太网帧结构
- Android 如何生成系统级应用
- 关于plain风格的UITableview的两个小的技术点。
- 《那些年啊,那些事——一个程序员的奋斗史》——107
- 基于遗传算法的新安江模型参数优化率定(三)
- 模拟FIFO页面置换算法
- 以太网最大帧和最小帧、MTU
- Android2.3.7源码结构分析
- 手工添加Linux防火墙端口
- eclipse 配置知识
- IT人士注意的健康问题
- 高效开发团队的形成(人才的选择)
- 基于遗传算法的新安江模型参数优化率定(四)
- 一些不错的技术文章地址
- 第十二章 实现单向操作和异步操作(上)