1.
16位源端口号 | 16位目的端口号 | |||||||
32位序列号 | ||||||||
32位确认序列号 | ||||||||
4位头部长度 | 保留6位 | U R G | A C K | P S H | R S T | S Y N | F I N | 16位窗口大小 |
16位检验和 | 16位紧急指针 | |||||||
可选项 | ||||||||
数据 |
先学习理解一下帧的封装格式:
MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小
值确定为这次连接的最大MSS值。
TCP/IP协议族里,网络层IP协议会检查每个从上层协议下来的数据包的大小,并根据本机MTU的大小决定是否作“分片”处理。分片最大的坏处就是降低了传输性能。但是有些上层应用因为某些原因不要求对数据包分片。当这个IP数据包在网络传输的时候,如果遇到MTU小于IP数据包的情况,转发设备就会丢弃这个数据包,然后返回一个错误信息给发送者。这样往往会造成某些通讯出现问题,不过幸运的是大部分网络链路都是MTU1500或者大于1500。