TCP/IP中的TCP协议的三次握手,四次挥手

本文详细解析了TCP协议中连接的建立与释放过程。通过三次握手实现连接的建立,确保了连接的可靠性;通过四次挥手来完成连接的终止,有效避免了半关闭状态的发生。了解这些机制对于深入理解TCP协议的工作原理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        尽管TCP和UDP都使用相同的网络层(IP),TCP提供的是一种面向连接的,可靠的字节流服务。

      TCP协议提供可靠的连接服务,客户端和服务端的连接过程,称为三次握手

  (1)第一次握手:建立连接时,,客户端A发送SYN包(SYN=j) 到服务器B,并进入SYN_SEND状态,等待服务器B确认。

  (2)第二次握手: 服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

 (3) 第三次握手: 客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手,客户端和服务器端开始穿数据。

 

    建立一个连接需要三次握手,而终止一个连接要经过4次握手。这是由于TCP的半关闭(half closed)造成的。因为TCP连接是一个全双工的(数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。 而发送FIN通常是应用层进行关闭的结果。

   首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到FIN)则执行被动关闭

 (1) 客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(宝文段4)

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5).和SYN一样,一个FIN将占用一个序号。

 (3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)

 (4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文7)

 

下次面试时,可以使用画图加解说的方式表达TCP协议的三次握手和四次挥手的过程

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值