MSS,全称是Maximum Segment Size,最大分段大小,它用来标识一个TCP分段所携带的数据的最大长度:
在建立TCP连接的时候,需要进行三次握手(handshake),在握手的过程中,两端都会通过SYN包中的MSS选项,通知对方自己所能接受的MSS,在握手结束后,就会协商出一个双方都能接受的MSS(就是,双方的MSS中的较小值)。
sequence number是针对分段自身的,它表示 分段所携带的数据的 第一个字节 的序列号。
acknowledgement number是给对端的一个反馈,告知对方下次从acknowlegedment number位置开始发送数据,ack number - 1及之前的数据已经收到了,不必重新发送
需要说明的是:在连接建立成功后,ack number的相对序号是1,seq number的相对序号是0
以 192.168.10.101:54770 连接 192.168.10.102:8000 为例,进行说明
第一次握手:
06:45:22.385709 IP (tos 0x0, ttl 64, id 56081, offset 0, flags [DF], proto TCP(6), length 60)
192.168.10.101.54770 > 192.168.10.102.8000: Flags [SYN], cksum 0x964a, seq 2867899478, win 29200, options [mss 1460,sackOK,TS val 358215 ecr 0,nop,wscale 7], length 0
说明:
第二次握手:
06:45:22.386027 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
192.168.10.102.8000 > 192.168.10.101.54770: Flags [SYN,ACK], cksum 0x8643, seq 3779724193, ack 2867899479, win 28960, options [mss 1460,sackOK,TS val 332216 ecr 358215,nop,wscale 7], length 0
说明:
第三次握手:
06:45:22.386041 IP (tos 0x0, ttl 64, id 56082, offset 0, flags [DF], proto TCP (6), length 52)
192.168.10.101.54770 > 192.168.10.102.8000: Flags [ACK], cksum 0x9642, ack 1, win 229, options [nop,nop,TS val 358216 ecr 332216], length 0
说明: