TCP/IP协议三次握手和四次挥手

7 篇文章 0 订阅

一、TCP/IP三次挥手
1、客户端请求连接,发送SYN包(同步序列编号),SYN =j。
2、服务器收到客户端SYN包并确认Ack = j+1,同时向客户端发送SYN包,SYN=k,客户端进入Established状态
3、客户端收到服务器发送的SYN包,发送Ack报文(Ack = k+1),服务器接收到后才进入Established状态

这时候有个问题,为什么是三次握手,不是两次握手或者四次握手?
我认为是这样的:如果假设是两次握手,客户端发送SYN包,服务器收到SYN包,并发送Ack报文。服务器会直接进入Established状态,开始分配资源,监听客户端要传过来的内容。
但是因为网络延迟或者阻塞,客户端发送消息的SYN还没到服务器,过了一段时间会有超时重传,它会重新发送SYN包,这时候假设服务器收到了第二个包的SYN,服务器开始分配资源了。如果又收到之前的SYN包,它也会分配资源,但是这个SYN是无效的连接,而一个进程打开的socket是有限度的, 维护这些死连接非常耗费资源。

还有一种解释是这样的,三次握手的好处在于能让双方都知道自己和对方的发送和接收都是OK的。分析如下:
在第一次握手过程中,服务端接收客户端的SYN,服务端是能知道自己的接收是好的,客户端的发送是好的。
在第二次握手过程中,客户端接收到了客户端的Ack报文,它能知道自己的发送和接收功能是好的。客户端的接收和发送都是好的。
这时候需要第三次握手,客户端发送Ack报文给服务端,让服务端确认服务端的发送是好的,客户端的接收是好的。

二、四次挥手:
1、客户端发送Fin,告诉服务端,自己传的已经传完了
2、服务端发送Ack,告诉客户端,我收到你的Fin请求了,但是我还没传完
3、服务端发送Fin,告诉客户端,我传完了,可以关闭了
4、客服端发送Ack报文,进入Time_Wait状态

为什么TIME_WAIT状态还需要等2MSL(报文最长存活时间)后才能返回到CLOSED状态?
这是因为虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到 ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于 LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的 ACK报文

这里写图片描述
此图来源于网络,百度图片,并不知道出处。

“三次握手,四次挥手”你真的懂吗?
https://www.cnblogs.com/qcrao-2018/p/10182185.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP协议中的三次握手和四次挥手是在建立和终止TCP连接时使用的过程。 三次握手是指在建立TCP连接时,客户端和服务器之间进行的三个步骤: 1. 第一步:客户端向服务器发送一个SYN(同步)包,其中包含自己的初始序列号(ISN)。 2. 第二步:服务器收到SYN包后,回复一个SYN-ACK(同步-确认)包,其中包含确认号(ACK)和自己的初始序列号。 3. 第三步:客户端收到服务器的SYN-ACK包后,再回复一个ACK包,确认连接已建立。此时,双方可以开始进行数据传输。 这个三次握手的过程是为了确保客户端和服务器都能够正常接收和发送数据,以建立可靠的连接。 四次挥手是指在终止TCP连接时,客户端和服务器之间进行的四个步骤: 1. 第一步:当客户端想要关闭连接时,发送一个FIN(结束)包给服务器。 2. 第二步:服务器收到FIN包后,回复一个ACK包确认收到,并进入半关闭状态。此时服务器仍可以发送数据给客户端。 3. 第三步:当服务器也想要关闭连接时,发送一个FIN包给客户端。 4. 第四步:客户端收到FIN包后,回复一个ACK包确认收到。此时连接关闭。 这个四次挥手的过程是为了确保客户端和服务器都能够完成数据的传输,并安全地关闭连接。 总结起来,三次握手用于建立连接,而四次挥手用于终止连接。通过这些步骤,TCP连接可以在客户端和服务器之间建立起来,并在不需要时安全地关闭。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值