TCP协议三次握手,四次挥手

一个TCP连接的建立是通过三次握手来实现的
在这里插入图片描述

1.(A)——>[SYN]——>(B)
假如服务器B和客户机A通讯。当A要和B通信时,首先A先向B发送一个SYN标记的包,seq=x为这个包的序列号(x一般为1),以此为这个包进行一个标识,A告诉B请求建立连接。
注意:一个SYN包就是仅SYN标记设为1的TCP包,只有当B受都A发来的SYN包,才可以建立连接。

  1. (A)<——[SYN/ACK]<——(B)
    接着,B收到后会发一个对SYN包确认包(SYN/ACK)回去,表示对第一个SYN包的确认,所以在ACK=x+1
    即是表示确认在接收到包后对标识进行处理(+1)以表示是服务器(B)接收到的,并发送seq=y标识的SYN请求建立连接。(服务器只要接收到建立连接的请求,就会直接发送ACK的确认信息,以提高响应效率)
    注意:SYN/ACK包是仅SYN和ACK标记为1的包

3.(A)——>[ACK]——>(B)
A收到SYN/ACK包,A发一个确认包(ACK=y+1),通知B连接已建立。至此,三次握手完成,一个TCP连接完成。

数据传输

4.(A)<——[ACK]<——(B)
A发送数据请求用seq=x+1标识,并带上确认号ACK=y+1

  1. (A)——>[ACK]——>(B)
    B接收到A的请求,并返回确认号ACK=x+2

四次挥手

6.(A)——>[FIN/ACK]——>(B)
A发送FIN,表示“请求释放连接”,标识序号为swq=x+2,并发送ACK=y+1的确认报文

7.(A)<——[ACK]<——(B)
(A)<——[FIN/ACK]<——(B)
B返回ACK=x+3的确认报文,并经过了CLOSED-WAIT阶段,做好了释放连接的准备,
并再次向A发送了FIN,以及确认报文ACK=y+2,至此B(服务端)结束了CLOSED-WAIT阶段,
进入了LAST-ACK阶段,并且停止在服务端到客户端方向发送数据,但是服务器端仍旧能够接受
从客户端传输过来的数据

8.(A)——>[ACK]——>(B)
客户端发送ACK=y+2确认报文,进入TIME-WAIT阶段

与“三次挥手”一样,在客户端与服务端传输的TCP报文中,双方的确认号ACK和Seq的值,都是
在彼此的ACK和Seq值得基础上进行计算的,这样做保证了TCP报文传输的连贯性,一旦出现某
一方发出的TCP报文丢失,便无法继续”挥手了”,以此确保了”四次挥手”的顺利完成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值