TCP连接的建立与终止

建立连接

TCP是通过三次握手建立连接的,其过程如下:

1. 客户端向服务器发送一个SYN报文段,该报文段不包含数据,SYN标志被置为1,同时指定源端口、目的端口、以及初始序列号(Client_ISN)

2. 服务器收到客户端的SYN报文段后,在服务端为该连接分配TCP缓存及相关变量,然后服务器向客户端回发一个SYN报文段(SYNACK),该报文段包含服务端指定的初始序列号(Server_ISN),同时该报文段的确认序列号(ACK)被置为 Client_ISN+1

3.  客户端收到服务端发送过来的SYNACK报文段之后,客户端为该连接分配缓存及相关变量,然后向服务器发送一个ACK报文段,该报文段的ACK为Server_ISN+1,且SYN标志被为0(前两个报文段的SYN标志为1)

终止连接

TCP是全双工的协议,因此每个方向必须单独关闭,终止一个连接一共需要4次握手。当一方完成它的数据发送便向对方发送一个FIN来终止该方向的连接,当另一方收到这个信号后,便通知应用层另一端已经终止该方向的数据传送,同时自动回送一个ACK(ACK_Number = FIN_Number + 1);但此时反方向的数据传送依然可以继续进行,当需要终止反方向的数据发送时,也需要重复上述过程,其过程如下图所示:

TCP的状态变迁图



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值