TCP为什么需要3次握手?

一、3次握手过程
客户端向服务端发送一个表示建立连接的SYN报文段,服务端从IP数据报中提取出TCP SYN报文段,为该TCP连接分配需要的缓存和变量,并向客户端发送表示允许连接的报文段ACK。客户端在收到ACK报文段之后,也要给该连接分配缓存和变量,客户端向服务器再发送一个报文段ACK,表示对允许连接的报文段进行了确认。
自此完成一次TCP连接。


二、3次握手的必要性
1.确认双方的发送和接收能力:通过3次握手,客户端和服务器可以确认彼此都具备发送和接收数据的能力。这是建立可靠连接的基础。
2.同步初始序列号:TCP协议通过序列号来标识发送的数据包,确保数据的顺序性和完整性。在3次握手过程中,双方会交换初始序列号,以便后续的数据传输能够正确地进行。
3.避免已失效的连接请求报文段突然又传送到了服务端:这种情况可能发生在网络拥堵或者延迟较大的情况下。通过3次握手,服务端可以确认客户端的请求是有效的,而不是一个过时的请求。
第3次握手可以避免由于客户端延迟的连接请求,使得服务端无故再次建立连接。


致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享。

若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢。您的支持是我们为您提供帮助的最大动力。

相关推荐

  1. TCP为什么需要3握手

    2024-04-22 21:30:03       30 阅读
  2. tcp 为什么要三握手

    2024-04-22 21:30:03       39 阅读
  3. 为什么tcp需要挥手?

    2024-04-22 21:30:03       36 阅读
  4. 【网络】为什么TCP需要挥手?

    2024-04-22 21:30:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 21:30:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 21:30:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 21:30:03       82 阅读
  4. Python语言-面向对象

    2024-04-22 21:30:03       91 阅读

热门阅读

  1. 安全开发之碰撞检测与伤害计算逻辑

    2024-04-22 21:30:03       44 阅读
  2. Kubernetes Kafka 系列|MirrorMaker 2 同步数据

    2024-04-22 21:30:03       40 阅读
  3. android 内存优化

    2024-04-22 21:30:03       32 阅读
  4. oracle控制文件的管理

    2024-04-22 21:30:03       32 阅读
  5. el-table 表格从下往上滚动,触底自动请求新数据

    2024-04-22 21:30:03       42 阅读
  6. jQuery高级使用

    2024-04-22 21:30:03       50 阅读