TCP三次握手,四次断开

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:

SYN(synchronous同部位),tcp握手的第一次

ACK(acknowledgement 确认位),建立连接时用到的

PSH(push) 推送位,若为1,代表要求对方立即传送缓冲区内的其他对应封包,

FIN(finish结束) 

RST(reset重置)

URG(urgent紧急),为1表示紧急的报文封包

Sequence number序列号

Acknowledge number确认号

三次握手:

b19c8f5785b2446b82074b8dc414ef43.jpg

第一次握手:client发送位码为syn=1,随机产生seq number=1000的数据包到服务器,server由SYN=1知道,client要求建立联机请求

第二次握手:sever收到请求后要确认联机信息,向client发送ack number=(client的seq+1),syn=1,ack=1,随机产生seq=6777的数据包

第三次握手:client收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,

若正确,client会再发送ack number=(server的seq+1),ack=1(syn=0),server收到后确认seq值与ack=1则连接建立成功。

完成三次握手,双方开始传送数据。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接:

第一次握手:当客户端要建立连接时,首先发送syn=1,并随机产生一个序列号的报文到服务器,并进入SYN_SEND状态,等待服务器确认,这时服务器是LISTEN状态

第二次握手:服务器收到报文请求,由SYN=1知道客户端要建立链接请求,向客户端发送ack number(客户端序列号+1),ack=1,syn=1,同时自己也发送一个SYN包(syn=k),

即SYN+ACK包,此时服务器进入SYN_RECV状态

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(服务器的序列号+1),ack=1,server收到后确认seq值与ack=1,客户端和服务器进入 ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据.

一个完整的三次握手也就是请求---应答---再次确认。

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。

这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。

收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。

首先进行关闭的一方是主动断开方,而另一方

是被动断开方。

四次断开过程:

6f88942e469b46c3bd953d846fefcf37.jpg

 

1、客户端发送一个FIN,用来关闭客户端到服务器的数据传送,此时客户端进入TIME_WAIT1状态

2、服务器收到这个FIN,它发回一个ACK,确认号为收到的序号加1,和SYN一样,一个FIN将占用一个序号,此时服务器进入CLOSE_WAIT状态,客户端端进入TIME_WAIT2

3、当服务器端也没有要传送的数据时,服务器关闭与客户端的连接,发送一个FIN给客户端A,服务器进入LAST_ACK

4、客户端发回ACK报文确认,并将确认号设置

为收到序号加1,客户端进入TIME_WAIT,等待2MSL--120s,服务器端接后进入CLOSED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值