TCP传输-很清晰的标示图

在这里插入图片描述
转载于:https://zhuanlan.zhihu.com/p/108504297#:~:text=%E6%89%80%E8%B0%93%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%20%28Three-way%20Handshake%29%EF%BC%8C%E6%98%AF%E6%8C%87%E5%BB%BA%E7%AB%8B%E4%B8%80%E4%B8%AA%20TCP%20%E8%BF%9E%E6%8E%A5%E6%97%B6%EF%BC%8C%E9%9C%80%E8%A6%81%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%80%BB%E5%85%B1%E5%8F%91%E9%80%813%E4%B8%AA%E6%8A%A5%E6%96%87%E3%80%82%20%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E8%BF%9E%E6%8E%A5%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%8C%87%E5%AE%9A%E7%AB%AF%E5%8F%A3%EF%BC%8C%E5%BB%BA%E7%AB%8B%20TCP%20%E8%BF%9E%E6%8E%A5%EF%BC%8C%E5%B9%B6%E5%90%8C%E6%AD%A5%E8%BF%9E%E6%8E%A5%E5%8F%8C%E6%96%B9%E7%9A%84%E5%BA%8F%E5%88%97%E5%8F%B7%E5%92%8C%E7%A1%AE%E8%AE%A4%E5%8F%B7%EF%BC%8C%E4%BA%A4%E6%8D%A2,TCP%20%E7%AA%97%E5%8F%A3%E5%A4%A7%E5%B0%8F%E4%BF%A1%E6%81%AF%E3%80%82%20%E5%9C%A8%20socket%20%E7%BC%96%E7%A8%8B%E4%B8%AD%EF%BC%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%89%A7%E8%A1%8C%20connect%20%28%29%20%E6%97%B6%E3%80%82

为什么三次握手进行连接?
我们假设client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。

UDP协议没有三次握手去链接就是因为!我不需要这么反复确认,管你啥时候来的数据,发就完了,无论有没有错,老子不需要去验证,因为我执行的任务对错误的容忍性很高很高,对实时性要求的也很高。

TCP 四次挥手关闭连接:
四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值