TCP序列号和确认号

这里分两种情况来讲:

一、三次握手

第1步:客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号(ISN)是客户端随机产生的一个值,确认号是0;

第2步:服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据包中,序列号(ISN)是服务器随机产生的一个值,确认号是客户端的初始序列号+1;

第3步:客户端收到这个同步确认数据包后,再对服务器进行一个确认。该数据包中,序列号是第2步中,也就是同步请求确认数据包中的确认号值,确认号是服务器的初始序列号+1。


二、数据传输

1.初始序列号随机产生,后续序列号为上一个数据包(对方发送的数据包)的确认号。

2.确认号为上一个对方发送过来的数据包中的序列号+长度Len

3.如果连续发送多个数据包:确认号同样是2中的ACK号,不变;序列号为本地发送的上一个数据包(自己发送的数据包)的序列号+长度Len

   连续发送多个数据包的确认和重传问题需要结合窗口滑动机制,这里不再赘述。


读者可以利用TCP连接的协议(如Talnet)和抓包软件Wireshark来分析整个过程。

posted @ 2018-06-09 22:00  NetRookieX  阅读(96)  评论(0编辑  收藏  举报