当前位置: 首页 > 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 可靠传输的基石,通过简单的“发请求 → 回确认 → 再确认”机制,确保了双方通信的可靠性和一致性。

http://www.xdnf.cn/news/461773.html

相关文章:

  • 黑马k8s(七)
  • 用户安全架构设计
  • Unity碰撞检测:射线与胶囊体投射/Layer(层)、LayerMask(遮罩层)
  • 分布式AI推理的成功之道
  • How to configure Linux mint desktop
  • SpringBoot核心优势与适用场景分析
  • 【SPIN】PROMELA语言编程入门基础语法(SPIN学习系列--1)
  • FramePack - 开源 AI 视频生成工具
  • 基于Vue3制作一个可以拖拽排列的卡片,支持nuxt3
  • LeRobot 框架的核心架构概念和组件(下)
  • JAVA:ResponseBodyEmitter 实现异步流式推送的技术指南
  • 兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统
  • 大数据架构选型全景指南:核心架构对比与实战案例 解析
  • 交叉编译JsonCpp
  • go-zero(十八)结合Elasticsearch实现高效数据检索
  • Open CASCADE学习|容器及其使用
  • 2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK
  • C++篇——多态
  • Uniapp中小程序调用腾讯地图(获取定位地址)
  • C.纸上文字
  • 普通IT的股票交易成长史--20250515复盘
  • 深入解读114页数据资产化治理一体机解决方案:数据资产化技术、治理与未来趋势【付费全文阅读】
  • 还有哪些领域可以应用北斗卫星通讯?
  • AI 编程革命:腾讯云 CodeBuddy 如何重塑开发效率?
  • Profinet转Ethernet/IP网关模块通信协议适配配置
  • 2025认证杯数学建模第二阶段C题:化工厂生产流程的预测和控制,思路+模型+代码
  • #跟着若城学鸿蒙# web篇-初探
  • AI全域智能监控系统重构商业清洁管理范式——从被动响应到主动预防的监控效能革命
  • VR全景平台的概念(什么是VR全景平台?)
  • 【C++】汇编角度分析栈攻击