TCP三次握手、四次挥手

三次握手

首先服务器一直处于监听状态,等待客户端的链接。

第一次握手

客户端的TCP客户进程首先创建传输控制模块TCB,在TCP连接时,向服务端发送连接请求报文段SYN,此时TCP客户进程进入SYN-SEND(同步已发送)状态。

第二次握手

服务端收到连接请求报文段后,向客户端发送确认。发送SYN和ACK,此时TCP服务器进程进入SYN-RCVD(同步收到)状态。

第三次握手

TCP客户进程收到服务端的确认后,还要向服务端发出确认,此时客户端进入ESTABLISHED(已建立连接)状态。服务端收到确认后也进入ESTABLISHED状态。

 

为什么要三次握手?

为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

四次挥手

第一次挥手

客户进程向服务端发出FIN(连接释放报文段),此时客户端进入FIN-WAIT-1(终止等待1)

第二次挥手

服务端收到连接释放报文段后发出确认,此时服务器进入CLOSED-WAIT(关闭等待)状态。此时TCP连接进入半关闭状态,即客户端已经没有数据发送了,但是服务端发送数据,客户端还是接收的。

第三次挥手

服务端发出连接释放报文段,此时服务端进入最后确认状态,等待客户端的确认。

第四次挥手

客户端收到服务端的连接释放报文段后,发出确认,然后进入TIME-WAIT(时间等待)状态,此时TCP连接还未释放,必须等待2MSL(最长报文段寿命),客户端才能关闭。

 

为什么要等待2MSL?

原因有两个

  1. 为了保证客服端发送的最后一个ACK报文段能够到达服务端

  2. 防止已失效的连接请求报文段出现在本连接中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>