TCP/IP连接释放

TCP/IP 的连接释放

总体流程图

TCP/IP的连接和释放

连接过程

SYN = 1 说这次报文为建立连接报文
seq = x 本次请求的序号
ACK = 1 说明这次请求是响应报文

TCP 的连接过程就是我们常说的三次握手

客户端A 服务端B
A:我想和你建立连接(连接请求)(A:SYN-SENT B:LISTEN)
B:我收到了你的消息,我可以跟你建立连接,发出建立连接请求(B: SYN-RCVD)
A:我收到了你的建立连接请求 (A: ESTAB-LISHED B:ESTAB-LISHED)
然后就可以进行数据传输了

TCP/IP 连接图说明

1、SYN=1,seq = x
A 向 B 发送连接请求

2、SYN=1,ACK=1;seq=y,ack=x+1
这步其实可以拆为两个请求
1个响应请求(回复A的连接请求) ACK = 1, ack = x+1,seq = y;
y不会被消耗,所以下一次报文seq = y
1个连接请求(B 向 A 发起连接请求) SYN = 1, seq = y;
ACK报文如果不携带数据seq 值 不会被消耗
SYN报文不能携带数据,会消耗一个序号

3、ACK=1,seq = x+1,ack=y+1
响应建立连接请求(B的SYN报文)
ACK = 1 响应报文
ack = y + 1 (请求报文的seq+1)

释放过程

客户端A 服务端B
A: 我想要终止了 (A FIN-WAIT-1)
B: 好的,我收到你的消息了,但是我需要等待全部接收报文后,会告诉你什么时候可以进行关闭 (A FIN-WAIT-2, B CLOSE-WAIT)
B: 我这个边报文都处理完毕了,你可以进行终止了(B LAST-ACK A TIME-WAIT)
A: 好的,我收到了你的终止消息了 (A CLOSE B CLOSE)

TCP/IP 连接图说明

FIN报文不携带数据也会消耗一个序号
FIN = 1 表明这是一个终止请求 报文

1、FIN =1,seq = u
seq = u, 客户端最后一个数据报文的seq+1 = u
2、ACK = 1,seq = v,ack = u+1
seq = v 服务端此时的数据报文的seq + 1 = v
3、FIN = 1,ACK = 1,seq = w, ack = u+1
seq = w w=在服务端B Close-wait过程的报文数 + v +1
4、ACK = 1,seq = u+1,ack = w + 1
客户端A的响应 服务端B的终止请求

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值