现象:
1、在电脑A上挂一个程序,上传数据的时候,用wireshark抓包,偶然发现发送的包居然有上万的。回想起mss,tcp连接不是会协商mss吗?
2、在电脑B上写个tcp连接的程序,上传数据,发现wireshark抓包全部小于mss.
关于第一个问题,问过熊大神,告诉我wireshark上抓的不是单个ip包。稍微释疑。
继续百度,看到一篇csdn文章说到是网卡在做分段的工作。提到几个关键词:LSO, TSO, 卸载。
想起前段时间测试网卡的时候,网卡有些地方可以配置。然后在电脑A网卡配置处找到一处" 大量发送卸载(IPv4)",发现开关这个选项,会完全影响wireshark抓到的tcp包的大小。
结论:
A、现象1产生的原因,在于网卡做分段的工作,wireshark在网卡分段之前就抓包了。
B、电脑A与B表现不同,在于LSO的运行。LSO的运行取决与3点:
1、操作系统支持。(电脑B的系统不支持,所以无论怎么配置也没用)
2、网卡支持。
3、配置网卡,打开选项。