三次握手与四次挥手

三次握手

三次握手是指在建立TCP连接时,需要client端和server端共进行三次信息确认。

第一次握手:建立连接。client发送连接请求报文段(SYN位置为1,Sequence Number为x),然后,client端进入SYN_SEND状态,等待server端的确认;
第二次握手:server端收到client端的SYN报文段,需要对这个SYN报文段进行确认,若同意连接,将ACK位置为1,Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给client端,此时server端进入SYN_RCVD状态;
第三次握手:client端收到server端的SYN+ACK报文段,向服务器发送ACK报文段(ACK位置为1,Acknowledgment Number设置为y+1,Sequence Number为x+1),这个报文段发送完毕以后,client端和server端都进入ESTABLISHED状态,完成TCP三次握手。
在这里插入图片描述

四次挥手

四次挥手是指在释放TCP连接时,需要client端和server端共进行四次信息确认。

第一次挥手:client端数据传输完毕需要断开连接,client端通过TCP向server端发出连接释放报文段(FIN位置为1,Sequence Number为u),并停止再发送数据,主动关闭TCP连接,进入FIN-WAIT-1状态,等待server端的确认;
第二次挥手:server端收到连接释放报文段后即发出确认报文段(ACK位置为1,Acknowledgment Number为u+1,Sequence Number为v),server端进入CLOSE-WAIT关闭等待状态,此时的TCP处于半关闭状态,client端到server端的连接释放。而client端收到server端的确认后,进入FIN-WAIT-2状态,等待server端发出的连接释放报文段;
第三次挥手:当server端数据传输完毕后,server端发出连接释放报文段(FIN位置为1,ACK位置为1,Sequence Number为w,Acknowledgment Number为u+1),server端进入LAST-ACK(最后确认)状态,等待client端的最后确认;
第四次挥手:client端收到server端的连接释放报文段后,对此发出确认报文段(ACK位置为1,Sequence Number为u+1,Acknowledgment Number为w+1),client端进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后证明server端进入CLOSED状态,client才进入CLOSED状态。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值