以太网最大帧和最小帧、MTU

根据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

时间: 2024-10-20 07:29:05

以太网最大帧和最小帧、MTU的相关文章

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制? 以太网(IEEE 802.3)帧格式: 1.前导码:7字节0x55,一串1.0间隔,用于信号同步 2.帧起始定界符:1字节0xD5(10101011),表示一帧开始 3.DA(目的MAC):6字节 4.SA(源MAC):6字节 5.类型/长度:2字节,0-1500保留为长度域值,1536-65535保留为类型域值(0x0600-0xFFFF) 6.数据:46-1500字节 7.帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据

搞懂CSMA/CD,你就明白为什么以太网最小帧是64字节。

每出现一个新的东西,新的技术, 小编就经常反问自己的一句话就是:为什么会诞生它(CSMA/CD)呢?why? 每个东西的产生或发明都是有它的存在的原因或背景的. 我们先来看看最初的以太网的构思吧! 把相距有一定距离的一些电脑连接起来,实现计算机之间互相通信就可以了. 最初都是把这些计算机连接在一根网线上,这种方式实现起来简单又可靠. 总线的特点是:当一台计算机发送数据时,总线上的所有计算机都能监听到这个数据.这也是我们常说的:广播通信.但现实中,我们并不总是需要一对多通信.所以为了实现一对一通信

▶链路层第五弹◀使用广播信道的以太局域网(下)--以太网帧(MAC帧)

使用广播信道的以太局域网(下)--以太网帧格式(MAC) l MAC层的硬件地址(MAC地址) 在局域网中,硬件地址又称为物理地址,或 MAC 地址. (48位地址) 802 标准所说的"地址"严格地讲应当是每一个站的"名字"或标识符. 其实我们教材中说的地址并不是很确切,但是我们习惯将这种 48 位的"名字"称为"地址",所以本书也采用这种习惯用法. IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位

I帧、P帧和B帧的特点

I帧:帧内编码帧 I帧特点: 1.它是一个全帧压缩编码帧.它将全帧图像信息进行JPEG压缩编码及传输; 2.解码时仅用I帧的数据就可重构完整图像; 3.I帧描写叙述了图像背景和运动主体的详情; 4.I帧不须要參考其它画面而生成; 5.I帧是P帧和B帧的參考帧(其质量直接影响到同组中以后各帧的质量); 6.I帧是帧组GOP的基础帧(第一帧),在一组中仅仅有一个I帧; 7.I帧不须要考虑运动矢量; 8.I帧所占数据的信息量比較大. P帧:前向预測编码帧. P帧的预測与重构:P帧是以I帧为參考帧,在I

(转)I 帧和 IDR 帧的区别

I 帧和 IDR 帧的区别:http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame  时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现——在 encoder.c 文件中) .这点是所有 I 帧共有的特性,但是收到IDR 帧时,解码器另外需要做的工作就是:把所有的 PPS 和 SPS 参数进行更新.由此可见,在编码器端,每发一个 IDR ,就相应地发一个  P

【转载】H264编码原理以及I帧、B帧、P帧

前言           H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内.所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C

笔谈I帧、P帧、B帧、PTS、DTS(一)

做视频的播放,涉及到关键帧一说,从视频流中取出数据显示图像的时候,这些一幅幅图像之间到底有什么关联呢.那就有必要弄清楚I帧.P帧.B帧.PTS.DTS的概念,文章 I,P,B帧和PTS,DTS的关系 解释如下: 基本概念: I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象.I帧可以看成是一个图像经过压缩后的产物. P frame: 前向预测编码帧 又称pred

I帧、B帧、P帧、NALU类型

i帧 i frame,即内部画面 intra picture,通常是GOP的第一个帧(即IDR)I帧是最大去除图像空间冗余信息而压缩得到的帧,自带全部信息,不参考其他帧可独立解码,称为帧内编码帧所有视频至少包含一个I帧,且作为文件的第一个帧,文件里的其他的I帧用来改善视频质量,但增加了文件大小一般而言,每秒视频至少需要1个I帧,每秒里增加I帧可以改善质量,但增加网络带宽和网络负载视频播放过程中,若I帧丢失,则随后的P帧也就无法解析,所以出现黑屏现象,若P帧丢失,则出现花屏.马赛克现象 P帧,前向

栈帧啊栈帧

栈帧!栈帧!今天就把栈帧给弄清楚!有一个函数调用关系-->main  -->print    -->add      -->funca        -->funcb          -->funcc在函数funcc函数处设置断点,由于用户态栈是由高到低扩展:当函数执行到(gdb) print $sp$1 = (void *) 0x7fffffffdb78然后打印出内存,0x7fffffffdb78:*0xffffdb90  0x00007fff  0x0040056