四次挥手,为什么序列号要加1?
用来确认,表示我收到了
加 1 代表我签收了,如果把东西原路返回去,你怎么能确定是我收到了?
信号的确认接收。
确认号:
在握手和结束时确认号应该是对方序列号加1,传输数据时则是对方序列号加上对方携带应用层数据的长度,如果对方携带应用层数据长度为0,则ack与对方序列号相同,不要+1,比如25的ack与24的seq相同。也可以这样理解,因为24没有发送数据,所以A期待B下次发送过来的第一个字节的序号不变,因此25的ack与23的ack相同。
序列号:
在握手和结束时序列号应该是上次序列号+1,传输数据时则是上次的序列号加上上次应用层数据发送长度,如果数据长度为0,则seq与上次一样,不要+1,比如26的seq和24的seq相同。
服务端会回复客户端发送的TCP断开请求报文,其包含seq序列号,是由回复端随机生成的,而且会产生ACK字段,ACK字段数值是在客户端发过来的seq序列号基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP断开请求已经得到验证
可以参考这个文章:http://t.zoukankan.com/tag6254-p-9614196.html
用来表示收到确认