2011-08-19 61 views
1

我使用WireShark来分析HTTP协议,我发现一个足够大的HTTP请求将被反汇编为几个TCP数据包,如下所示:HTTP请求方法作为数据包; HTTP请求标头作为数据包,HTTP内容作为数据包。
我的问题是:TCP段划分是由上层协议还是其他方式决定的?TCP段如何划分?

+0

这是非常复杂的,但TCP数据包分段由TCP协议栈控制。无论实施什么,决定如何以及何时将tcp数据包分段并路由到下一个较低级别(通常是IP层)。 –

回答

0

上层协议封装了TCP负载。像任何其他级别的TCP都不知道以上的级别。 当一个HTTP(或其他更高级别的协议)需要更多的空间来传输数据时,TCP数据包的最大大小(MTU:最大传输单元)会在不同的TCP段上被分割。

您的操作系统可以修改MTU值。例如使用Linux:

ifconfig eth0 mtu MTU_SIZE