什么是TCP连接建立?


为了使传输服务可靠,TCP主机必须彼此建立面向连接的会话。连接建立是通过使用三次握手机制来执行的。三次握手使网络的双方同步,使双方就原始序列号达成一致。

此机制还确保双方都准备好传输数据并了解对方可进行通信。这对于防止在会话建立期间或会话终止后共享或重传数据包至关重要。每个主机都会随机选择一个序列号,用于跟踪其发送和接收的数据流中的字节。

三次握手过程如下图所示:

请求端(主机A)发送一个SYN段,确定客户端需要连接到的服务器端口号及其初始序列号(x)。

服务器(主机B)确认其自己的SYN段,包括服务器的初始序列号(y)。服务器还通过接受发送方的SYN加一(X + 1)来响应客户端SYN。

一个SYN消耗一个序列号。客户端应通过接受服务器的SEQ加一(SEQ = x + 1,ACK = y + 1)来确认来自服务器的此SYN。这就是TCP连接如何建立的。

连接终止协议(连接释放)

虽然建立连接需要三个段,但终止连接需要四个段。由于TCP连接是全双工的(即,数据在每个方向独立于另一个方向流动),因此每个方向都应单独关闭。

下图显示了每个主机的终止过程。规则是,任何一方在其发送完数据后都可以发送FIN。

当TCP收到FIN时,它应通知应用程序另一端已终止该数据流方向。发送FIN通常是应用程序发出关闭命令的结果。

收到FIN仅表示将不再有数据沿该方向流动。TCP可以在收到FIN后发送数据。首先发出关闭命令的一端(例如,发送第一个FIN)执行主动关闭。另一端(接收此FIN)管理被动关闭。

更新于:2023年10月21日

31K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告