当前位置: 首页 > article >正文

TCP协议:三次握手、四次挥手

文章目录

  • 三次握手
    • 1. 什么是三次握手?
    • 2. 为什么是三次握手?
  • 四次挥手
    • 1. 什么是四次挥手?
    • 2. 为什么是四次挥手?
  • 引用

三次握手

1. 什么是三次握手?


三次握手是TCP协议中用于建立连接的过程。

  • 第一次,表示请求建立连接。
  • 第二次,表示同意建立连接。
  • 第三次,表示确认收到接收端的SYN/ACK。

2. 为什么是三次握手?

为什么2次不可以?一定要3次?

为了确保连接的可靠性。第一次握手,客户端向服务端发送消息;第二次握手,服务端给予响应;第三次握手,客户端对服务端的响应给予响应。如果没有第三次握手,服务端将不能得知发送给客户端的内容是否正常收到。

四次挥手

1. 什么是四次挥手?

在这里插入图片描述
四次挥手是TCP协议中用于断开连接的过程。

这里以服务端主动发起断开连接为例来进行说明。

  • 第一次:服务端发送FIN,表示没有要发送的数据了,但是还可以接收数据。
  • 第二次:客户端发送ACK,表示收到了FIN。(可能继续发送未传输的数据,也可能不发送)
  • 第三次:客户端发送FIN,表示它也没有要发送的数据了。
  • 第四次:服务端发送ACK,表示收到了客户端发送的FIN。

2. 为什么是四次挥手?

如果只有两次或者三次,可能会造成,一方断开连接,而另一方还在发送数据,造成数据的丢失。四次,能过确保在断开连接前完成未传输的数据发送,确保安全的终止连接。

引用

[1] 《图解HTTP》.上野宣著.

以上为个人学习分享,如有问题,欢迎指出:)


http://www.kler.cn/a/469679.html

相关文章:

  • HTTP/HTTPS ②-Cookie || Session || HTTP报头
  • 【Web】0基础学Web—节点操作、发表神评妙论、事件添加和移除、事件冒泡和事件捕获
  • asio中strand用于串行执行task
  • JAVA创建绘图板JAVA构建主窗口鼠标拖动来绘制线条
  • LQ quarter 5th
  • Maven 详细配置:Maven settings 配置文件的详细说明
  • LLM2Vec: 解锁大语言模型的隐藏能力
  • 【每日学点鸿蒙知识】list折叠动画效果、混淆问题定位、bindPopup问题等
  • unity学习11:地图相关的一些基础
  • 极限学习机 (Extreme Learning Machine, ELM) 算法详解与PyTorch实现
  • 猜数字游戏 (C++ 控制台版)
  • 【零基础学Web安全】Web安全基础篇(一)
  • linux 系统 mysql :8.4.3 主从复制 教程及运维命令
  • Leetcode 查找和最小的 K 对数字
  • 【C++】16.stack和queue的使用
  • Python安装(新手详细版)
  • MySQL的sql操作有哪些
  • Go语言的 的基本数据类型(Primitive Data Types)基础知识
  • 豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery
  • VMware镜像站加速下载,省去下载等待时间
  • Objective-C 是一种面向对象的编程语言
  • 机器人手眼标定
  • 探索Rust在Web开发中的实际应用
  • leetcode20.有效的括号
  • Git遇到SSL证书问题
  • 庐山派K230学习日记4 PWM控制