三次握手和四次挥手的过程

第一次握手:客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。
在这里插入图片描述
第二次握手:服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的isn加1以.即X+1。
在这里插入图片描述
第三次握手:客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1
在这里插入图片描述
第一次握手:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN-SENT状态,等待Server确认;
第二次握手:Server收到数据包后由标志位SYN=1得知Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN-RCVD状态,此时操作系统为该TCP连接分配TCP缓存和变量;
第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并且此时操作系统为该TCP连接分配TCP缓存和变量,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client和Server就可以开始传输数据。

四次挥手的过程

第一次挥手:客户端需请求终止连接,然后客户端向其tcp发送报文段,停止发送数据,并主动关闭tcp的连接,进入等待模式,等待服务器的确认。
第二次挥手:当服务器收到客户端发送的报文段,服务器进入关闭等待状态,此时tcp处于半关闭状态,然后当客户端收到服务器的确认后,进入第二次等待状态,等待服务器发出的报文段。
第三次挥手:当服务器数据传输完成后,服务器发出报文段,并进入最后确认阶段,等待客户端的最后确认。
第四次挥手:客户端收到服务器发送的连续释放报文后,也发出确认的报完段,随后客户端进入时间等待状态,此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSE状态。

为什么A在TIME-WAIT状态必须等待2MSL(最大报文生存时间)的时间

1.保证A发送的最后一个ACK报文段能够到达B,保证A、B正常进入CLOSED状态。

2.防止“已经失效的连接请求报文段”出现在本连接中。
A在发送完最后一个ACK报文段并经过2MSL,会使本次连接持续时间内所有产生的报文段消失,保证在下一次新连接中不会出现旧连接遗留的请求报文段。

ps:有些是在网上找的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值