随笔 - 27, 文章 - 0, 评论 - 0, 阅读 - 988
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

tcp三次握手

Posted on   砂锅米粥  阅读(9)  评论(0编辑  收藏  举报

tcp是可靠的传输协议。为什么这么说?
首先我们得了解一下他的报文格式

  1. 源端口号和目的端口号,数据根据这两个端口号决定发给哪个应用。
    2.序号,只是让包有序一点而已。
    3.确认序列呢。顾名思义,就是确认对方有没有收到。如果对方没收到,要重新发送,直到送达。解决丢包问题的。
    4.还有一些状态位。SYN就是发起一个连接的,ack就是回复,RST是重新连接,FIN是结束连接。这些带有状态位的包的发送,会引起双方的状态变更。
    5.窗口大小,就是缓存大小。标识自己的处理能力。不要发的太快,吃不完;也别发的太慢,不够吃。TCP要做流量控制的嘛。
    6.当然,除了流量控制,TCP也要做拥塞控制,他的拥塞控制也只能控制自己发送的速度。

okok。前面铺垫了那么多,接下来终于来到了我们今天的重点了。
TCP三次握手

在HTTP传输数据之前,通常要进行TCP的三次握手。

  • 一开始,客户端和服务端都处于close状态。服务端打开某个端口的监听器,进入LISTEN状态。
  • 客户端主动发送SYN,之后处于SYN_SENT状态
  • 服务端收到SYN后,返回SYN,并且ACK客户端的SYN,之后处于SYN_RCVD状态
  • 客户端收到SYN和ACK后,发送对ACK的SYN,之后处于established状态。因为它一发一送成功了。
  • 服务端SYN的ACK后,处于established状态。因为它一发一送也成功了。
    总之,TCP三次握手的目的是保证双方都有发送和接受的能力。
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示