ip-----tcp 连接 三次握手、四次挥手

tcp 连接 三次握手、四次挥手

1.三次握手
说明:
ACK:确认报文 ack:确认号
SYN 在连接建立时用来同步序号
在这里插入图片描述
一、 客户端 到 服务器端

1、Tcp服务端首先创建连接模块TcB,然后等到客户端的发起请求,
进入到listen监听状态

2、TCP客户端也创建连接模块TcB,发送报文请求:SYN=1( SYN在连接建立时用来同步序号) ACK=0 ,同时选择一个序列号 (这时有(客户端的seq)seq=x 和 SYN=1)两个。
然后进入SYN-SENT状态

3、TCP服务端接收到后就,如果同意请求,就确认报文,ACK=1,SYN=1,确认号为ack=x+1(x客户端发过来的序列seq);通过也有一个属于自己的序列号 seq=y;
(这时有:(服务端的seq)seq=y,SYN=1,ack=x+1,ACK=1)四个。
然后进入SYN-RCVD状态

4、TCP客户进程收到确认后,还要向服务端给一个确认,确认的报文
(ACK=1,ack=y+1,seq=x+1)
然后进入数据传输状态



二、四次挥手

在这里插入图片描述

1、TCP客户端发起了断开链接报文处理,并且停止发送数据。释放报文首部的 FIN=1,然后序列号为seq=u(u为最后一次传输的序号的+1) TCP规定,FIN报文段即使不携带数据,也要消耗一个序号
(进入,FIN-WAIT-1状态,等待)

2、服务端收到连接释放报文,然后发出确认释放报文,ACK=1,ack=u+1,
seq=v,这时候,但是服务器若发送数据,客户端依然要接受
(进入,CLOSE-WAIT状态,等待)

3、客户端收到服务器的确认请求后,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)
(进入,FIN-WAIT-2状态,等待)

4、服务端将最后的数据传输给客户端,发送报文FIN=1,ack=u+1,当时的序号如:seq=w,
(进入了LAST-ACK(最后确认)状态,等待客户端的确认。)

5、客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1
而自己的序列号是seq=u+1注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。
(进入,TIME-WAIT状态,等待)

6、服务端接受到了确认报文后,关闭链接状态,撤销TCB后,断开TCP链接可以看到,服务器结束TCP连接的时间要比客户端早一些。
(进入,CLOSED状态,)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值