栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

TCP/IP连接释放

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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的终止请求

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号