windows系统巨型帧问题
相信很多小伙伴对巨型帧这个名词很熟悉,也有小伙伴使用过电脑测试过巨型帧,那么windows(本文以windows 10为例)电脑是怎么计算巨型帧的呢
首先将电脑巨型帧设置为9216byte,然后在电脑上可以发出的最大报文是:
ping -l 9170 -f 10.32.133.254
注意:-l是设置单个报文的长度,单位是byte;
-f 是设置单个报文是否分片,如果报文太大,设备无法发出相应的报文,会出现如下图所示提示:
然后你会发现巨型帧为9216byte的电脑最大可以设置的-l是9170,更大就会出现需要拆分数据包的提示。
通过wireshark抓包,结果如下所示:
然后发现-l 的9170是指icmp报文里的data数据大小为9170 byte。
而报文里的mac层有14 byte
ip层有20 byte
icmp报文头有8 byte
再加上整个报文的CRC字段有4 byte
所以整个报文有:
14 byte(mac层)+20 byte(ip层)+8 byte(icmp报头)+9170 byte(data) + 4 byte (CRC)=9216 byte(巨型帧总共大小)
所以除去data字段,
有14 byte(mac层)+20 byte(ip层)+8 byte(icmp报头) + 4 byte (CRC)=46 byte 的非data开销
那么巨型帧最大设置为9014的电脑,-f -l字段可以设置为怎样的数值呢?
答案是9014 byte - 46 byte =8968 byte