TCP的三次握手和四次挥手

TCP(Transmission Control Protocol)是⼀种⾯向连接的协议,为了保证数据传输的可靠性,TCP 使⽤了三次握 ⼿和四次挥⼿的过程。

三次握手:

第⼀次握手:客户端向服务器发送 SYN 报文,请求建⽴连接。

第⼆次握手:服务器收到客户端的 SYN 报文,向客户端发送 SYN+ACK 报文,表示可以建⽴连接。

第三次握手:客户端收到服务器的 SYN+ACK 报文,向服务器发送 ACK 报文,表示连接已经建⽴

三次握手的目的是为了确认双⽅的收发能力和同步初始序列号。之所以是三次而不是两次握手的原因是为了防止多次连接请求导致连接混乱。比如客户端发送多次请求,服务端第一次同意连接请求后不知道客户端有没有收到同意的报文,因此只能重复同意,这样过期的请求就会造成请求混乱。如果是四次握手会造成资源浪费,三次握手刚刚好。

四次挥手:

四次挥手的目的是为了保证数据的完整性和可靠性。在关闭连接之前,双方需要通过四次挥手确保所有数据都已经传输完毕。

第⼀次挥手:客户端向服务器发送 FIN 报⽂,请求关闭连接

第⼆次挥手:服务器收到客户端的 FIN 报⽂,向客户端发送 ACK 报⽂,表示收到关闭请求

第三次挥手:服务器向客户端发送 FIN 报⽂,请求关闭连接。

第四次挥手:客户端收到服务器的 FIN 报⽂,向服务器发送 ACK 报⽂,表示收到关闭请求

总结:三次握⼿的本质是确认通信双⽅收发数据的能⼒力,四次挥⼿的⽬的是关闭⼀个连接

相关推荐

  1. TCP握手挥手

    2024-01-08 09:48:04       59 阅读
  2. TCP握手挥手

    2024-01-08 09:48:04       58 阅读
  3. TCP握手挥手

    2024-01-08 09:48:04       45 阅读
  4. TCP握手挥手

    2024-01-08 09:48:04       39 阅读

最近更新

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

    2024-01-08 09:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 09:48:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 09:48:04       82 阅读
  4. Python语言-面向对象

    2024-01-08 09:48:04       91 阅读

热门阅读

  1. 【docker】使用 Dockerfile 构建镜像

    2024-01-08 09:48:04       59 阅读
  2. rust中Atomic Ordering含义总结

    2024-01-08 09:48:04       61 阅读
  3. LeetCode //C - 649. Dota2 Senate

    2024-01-08 09:48:04       53 阅读
  4. mosquitto发布端和订阅端代码范例

    2024-01-08 09:48:04       42 阅读
  5. WKWebView访问时不携带Cookie的解决方案

    2024-01-08 09:48:04       131 阅读
  6. 如何在vscode下,启动jupyter连接远程服务器

    2024-01-08 09:48:04       59 阅读
  7. ObjectInputStream、ObjectOutputStream在TCP的使用

    2024-01-08 09:48:04       47 阅读
  8. 数据结构:STL:vector

    2024-01-08 09:48:04       48 阅读
  9. Spring和Spring Boot的区别

    2024-01-08 09:48:04       56 阅读
  10. SWUSTOJ 133: 水王争霸

    2024-01-08 09:48:04       55 阅读
  11. Vim 快速指南:高效删除文本行

    2024-01-08 09:48:04       54 阅读
  12. 函数指针

    2024-01-08 09:48:04       54 阅读
  13. Sentinel

    Sentinel

    2024-01-08 09:48:04      59 阅读
  14. qt第三天快速回顾

    2024-01-08 09:48:04       63 阅读
  15. 【软件测试】学习笔记-如何做好测试计划

    2024-01-08 09:48:04       54 阅读
  16. 前端工程师的未来

    2024-01-08 09:48:04       51 阅读