我使用WireShark来分析HTTP协议,我发现一个足够大的HTTP请求将被反汇编成几个这样的TCP数据包:HTTP请求方法作为数据包; HTTP请求标头作为数据包,HTTP内容作为数据包 我的问题是:TCP段划分是由上层协议还是其他方式决定的?
答案 0 :(得分:1)
对于HTTP,您可能会发现这篇文章很有趣,Google基本上如何让他们的HTTP服务器与TCP交互以推送初始段而无需等待响应。
http://blog.benstrong.com/2010/11/google-and-microsoft-cheat-on-slow.html
此处发布的RFC草案:
答案 1 :(得分:0)
上层协议封装了TCP有效负载。 TCP与任何其他级别一样,不知道上述级别。 TCP数据包具有最大大小(MTU:最大传输单位),当HTTP(或其他更高级别协议)需要更多空间来传输数据时,有效负载将在不同的TCP网段上进行分割。
您的操作系统可以修改MTU值。例如,使用linux:
ifconfig eth0 mtu MTU_SIZE