我使用WireShark对HTTP协议进行了分析,发现一个足够大的HTTP请求会被分解成几个这样的数据包: HTTP请求方法作为一个数据包,HTTP请求报头作为一个数据包,HTTP内容作为一个数据包。
我的问题是: TCP数据段的划分是由上层协议还是通过其他方式决定的?
发布于 2011-08-19 17:22:02
对于HTTP,您可能会发现这篇文章很有趣,Google如何让其HTTP服务器与TCP进行交互,以在不等待响应的情况下推送初始段。
http://blog.benstrong.com/2010/11/google-and-microsoft-cheat-on-slow.html
以及在此处发布的RFC草案:
https://datatracker.ietf.org/doc/html/draft-hkchu-tcpm-initcwnd-01
发布于 2011-08-19 17:15:11
上层协议是封装的insite TCP有效负载。TCP像任何其他级别一样,不知道上面的级别。TCP数据包有一个最大长度(MTU:最大传输单位),当HTTP (或其他更高级别的协议)需要更多空间来传输数据时,会将有效载荷拆分到不同的TCP段上。
您的操作系统可以修改MTU值。以linux为例:
ifconfig eth0 mtu MTU_SIZEhttps://stackoverflow.com/questions/7119407
复制相似问题