TCP最小传输单元和最大传输单元

来源:互联网 发布:linux vi 文件末尾 编辑:程序博客网 时间:2024/05/21 17:46
一个以太网数据帧的用户数据段是 46-1500字节
TCP协议的话,有20字节IP头+20字节TCP头,占用40字节
也就是说留给用户的数据是6字节-1460字节
所以对于TCP协议来说,如果你发送的数据小于6字节(不是几百字节)的时候,是“亏本”的

所以TCP协议有一个Nagle算法,满足一定条件的情况下,对send的数据缓存、拼接到一起再发送,这个选项默认是开启的。当然你可以通过TCP_NODELAY选项来关闭该算法(当你要求数据的及时性的情况下)。

然后你也有提到节约服务器带宽,服务器带宽的占用,是计算以太网数据帧的大小的
即你发送6字节,实际带宽占用64字节
你发送10字节,实际带宽占用68字节
所以对于你要发送的数据,在不影响实时性的情况下,尽可能的拼接成大包发送,是有利的

当然,服务器发送的数据,该压缩的还是得压缩,该节省的还是得节省
因为就算你每个包是10字节,如果我可以10个包并在一起发,是100字节
但是如果可以压缩到每个包5字节,10个包并在一起发,是50字节
原创粉丝点击