TCP的连接和关闭

连接请求协议

1) 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)。这个SYN段为报文段1。

2) 服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认(ACK)序号设置为客户的ISN加1以对客户的SYN报文段进行确认(客户端会验证ACK是否为自己应该收到的序号)。一个SYN将占用一个序号。

3) 客户必须将确认序号设置为服务器的I S N加1以对服务器的SYN报文段进行确认(报文段3)。

连接终止协议

建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由TCP的半关闭(half-close)造成的。

既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向连接。当一端收到一个FIN,它必须通知应用层另一端已经终止了那个方向的数据传送。(发送FIN通常是应用层进行关闭的结果)

收到一个FIN只意味着对方已完成数据的传送,不会再向自己传输数据。

一个TCP连接在收到一个FIN后仍能发送数据。而这对利用半关闭的应用来说是可能的,尽管在实际应用中只有很少的TCP应用程序这样做。

(1)首先进行关闭的一方(即发送第一个FIN)将执行主动关闭;

(2)另一方(收到这个FIN)执行被动关闭。

(3)另一方完成发送任务后,会向已方发送FIN;

(4)另一方收到FIN后,向己方放送ACK确认

下图是连接建立过程:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值