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

TCP(传输控制协议)建立连接的过程

TCP(传输控制协议)建立连接的过程称为 三次握手(Three-Way Handshake)。这是为了确保通信双方能够可靠地建立连接,并同步初始序列号。以下是详细步骤:


三次握手过程(通俗比喻:打电话确认双方都能听到)

1. 第一次握手:客户端 → 服务器(SYN)
  • 动作:客户端发送一个 SYN 报文(SYN=1,随机生成一个初始序列号 seq=x)。

  • 目的:告诉服务器“我想和你建立连接,我的初始序列号是 x”。

  • 状态变化

    • 客户端进入 SYN_SENT(同步已发送)状态。

    • 服务器处于监听状态(LISTEN)。


2. 第二次握手:服务器 → 客户端(SYN-ACK)
  • 动作:服务器收到 SYN 后,回复一个 SYN-ACK 报文(SYN=1,ACK=1,确认号 ack=x+1,并生成自己的初始序列号 seq=y)。

  • 目的:告诉客户端“我收到你的请求了,同意建立连接,我的初始序列号是 y”。

  • 状态变化

    • 服务器进入 SYN_RCVD(同步已接收)状态。


3. 第三次握手:客户端 → 服务器(ACK)
  • 动作:客户端收到 SYN-ACK 后,发送一个 ACK 报文(ACK=1,确认号 ack=y+1,序列号 seq=x+1)。

  • 目的:告诉服务器“我确认你同意连接了,现在可以开始通信了”。

  • 状态变化

    • 客户端和服务器均进入 ESTABLISHED(已建立连接)状态。


为什么需要三次握手?

  1. 防止历史连接干扰
    如果客户端发送了多个旧的 SYN 请求(例如网络延迟导致),三次握手能确保服务器只响应最新的请求。

  2. 同步初始序列号
    双方通过交换序列号,确保后续数据传输的有序性和可靠性。

  3. 确认双方的通信能力
    三次握手验证了客户端和服务器的发送和接收能力均正常。


通俗比喻

想象两个人打电话:

  1. 第一次握手:A 打电话给 B,说:“喂,能听到吗?”(SYN)。

  2. 第二次握手:B 回答:“能听到,你能听到我吗?”(SYN-ACK)。

  3. 第三次握手:A 说:“我也能听到你!”(ACK)。
    此时通话正式建立,双方可以开始聊天。


常见问题

Q1:为什么不是两次握手?

如果只有两次握手:

  • 服务器无法确认客户端是否收到了自己的确认报文。

  • 若客户端的 SYN 因网络延迟重复发送,服务器可能会建立多个无效连接。

Q2:三次握手会被攻击吗?

是的,例如 SYN 洪泛攻击(攻击者伪造大量 SYN 请求,耗尽服务器资源),但现代操作系统通过优化(如 SYN Cookie 机制)可以缓解。

Q3:TCP 断开连接需要几次挥手?

四次挥手(FIN-ACK 交互),因为 TCP 是全双工的,双方需分别关闭发送和接收通道。


总结

三次握手是 TCP 可靠传输的基石,通过简单的“发请求 → 回确认 → 再确认”机制,确保了双方通信的可靠性和一致性。

相关文章:

  • Git/GitLab日常使用的命令指南来了!
  • 前端代码生成博客封面图片
  • 寻找两个正序数组的中位数 - 困难
  • 【BotSharp详细介绍——一步步实现MCP+LLM的聊天问答实例】
  • vscode c++编译onnxruntime cuda 出现的问题
  • 浏览器宝塔访问不了给的面板地址
  • 运维职业发展思维导图
  • 幼儿学前教育答辩词答辩技巧问题答辩自述稿
  • React Native/Flutter 原生模块开发
  • BGP实验(联邦及反射器)
  • SQL:MySQL函数:条件函数(Conditional Functions)
  • Day 21 训练
  • Spring+LangChain4j小智医疗项目
  • 如何让open-mpi在不同版本的OS上运行
  • java方法的练习题
  • Python内存管理:赋值、浅拷贝与深拷贝解析
  • 数智管理学(九)
  • 【匹配】Smith-Waterman
  • 【高频面试题】LRU缓存
  • JavaScript - 运算符之逗号操作符与逗号分隔符(逗号操作符概述、逗号操作符用法、逗号分隔符、逗号分隔符用法)
  • 阿联酋与美国达成超过2000亿美元协议
  • 圆桌丨新能源车超充技术元年,专家呼吁重视电网承载能力可能面临的结构性挑战
  • 马上评|这种“维权”已经不算薅羊毛,涉嫌犯罪了
  • 著名植物学家、园艺学家,国际植物园协会原主席贺善安逝世
  • 中国-拉共体论坛第四届部长级会议北京宣言
  • 广东省人大教科文卫委原主任委员梁万里被开除党籍:退休后受贿仍不知止