三次握手和四次挥手_TCP 连接之三次握手四次挥手

b2017e9fc5ab24959e5e30c7fef79736.png

实际上是一个建立连接和断开连接需要的过程:

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交

换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

8db97fa5d642f2833dc96438dbc5ba0c.png

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服

务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

71c2b1e6af4a171d46e9d469c9f1d557.png

这其中就是标志位的变化和Seq和ACKN,序列号和确认序列号之间的对话来确认连接和断开的.

下面的两段话转自

感觉更详细,如果我写的看不到可以看看这个

TCP三次握手四次挥手详解 - zmlctt - 博客园​www.cnblogs.com
df58f717dcbb1631b54e656c7a4e4733.png

(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状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

(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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值