计算机网络----三次握手/四次挥手

TCP的运输连接管理

运输连接管理就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常进行。连接建立过程中要解决以下三个问题。

1.要使每一方能够知道对方的存在。

2.要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。

3.能够对运输实体资源(如缓存大小、转接表中的项目等)进行分配。

TCP的连接和建立都是采用客户服务器方式。

主动发起连接建立的应用进程叫做客户。被动等待连接建立的应用进程叫做服务器。


TCP三次握手:


SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;第二次消息B使用ACK对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ACK=x+1,同时B告诉A自己的初始序列号,就是SEQ=y;第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以SEQ=x+1,而ACK=y+1是表示A正准备接收B序列号为y+1的数据包。

SEQ是数据包本身的序列号;ACK是期望对方继续发送的那个数据包的序列号。



TCP四次挥手:


在建立连接的时候,是A先建立B再建立,再释放的时候正好相反,B先释放资源,A再释放。

对于一个已经建立的连接,TCP使用改进的三次握手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下:

第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。

第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。

第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。

第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

相关问题解答:

https://blog.csdn.net/qq_18425655/article/details/52163228

https://blog.csdn.net/sssnmnmjmf/article/details/68486261


猜你喜欢

转载自blog.csdn.net/weixin_39003229/article/details/80882858