TCP连接

作者: 宋song一 | 来源:发表于2022-03-17 12:44 被阅读0次

1. TCP连接过程

SYN 和ACK是报文标识位,前者表示请求建立一个新的连接,后者表示确认序列号有效
seq:字节流传输的标识序列号,32位,通常都是从0开始的。
ack:回复确认的序列号,一般都是对方请求的序列号+1,表示上次请求消耗了一个序列号,下次请求序列号+1开始。
1.客户端

标识位:SYN=1表示有意愿和服务器建立一个新的连接
seq=x表示把字节流初始序列号告诉服务器,让服务器知道本次通信的序列号是x

2.服务器回复客户端请求

ACK=1表示客户端发送的序列号有效
SYN=1表示也有意愿和客户端建立一个通信连接。
seq=y表示把自己的报文字节流初始标记x发送给客户端,待客户端确认。
ack=x+1表示确认了客户端的初始序列号,+1表示通信建立后序列号就从x+1开始。

3.客户端回复服务器

ACK=1,表示服务器的序列号有效
seq=x+1,表示第二次跟服务器通信,从上次通信的序列号+1
ack=y+1,表示确认了服务器的初始序列号,并告诉对方下次通信序列号从y+1开始

忽略ack的版本

App 和服务器之间发送三次报文才会建立一个 TCP 连接,报文中的 SYN 表示请求建立连接,ACK 表示确认。App 先发送 SYN=1,Seq=X 的报文,表示请求建立连接,X 是一个随机数;服务器收到这个报文后,应答 SYN=1,ACK=X+1,Seq=Y 的报文,表示同意建立连接;App 收到这个报文后,检查 ACK 的值为自己发送的 Seq 值 +1,确认建立连接,并发送 ACK=Y+1 的报文给服务器;服务器收到这个报文后检查 ACK 值为自己发送的 Seq 值 +1,确认建立连接。至此,App 和服务器建立起 TCP 连接,就可以进行数据传输了。

相关文章

网友评论

      本文标题:TCP连接

      本文链接:https://www.haomeiwen.com/subject/bcxsdrtx.html