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

2025年2月2日(tcp3次握手4次挥手)

TCP(三次握手和四次挥手)是建立和关闭网络连接的标准过程,确保数据在传输过程中可靠无误。下面是详细解释:

1. 三次握手(TCP连接建立过程)

三次握手是为了在客户端和服务器之间建立一个可靠的连接,确保双方都能接收对方的数据并同步序列号。具体过程如下:

第一步:客户端发送SYN(同步)请求
  • 客户端 → 服务器:客户端向服务器发送一个SYN(同步)包,表示请求建立连接。
  • 包含的内容:
    • SYN标志位被设置为1,表示这是一个连接请求。
    • 初始序列号(ISN),客户端生成的一个随机数字,后续数据传输会用到。
第二步:服务器响应SYN-ACK
  • 服务器 → 客户端:服务器接收到客户端的SYN请求后,回复一个SYN-ACK包。
  • 包含的内容:
    • SYN标志位仍然设置为1,表示同意建立连接。
    • ACK标志位设置为1,表示确认收到客户端的请求。
    • 确认号:确认号设置为客户端的序列号 + 1,表示已成功收到客户端的SYN请求。
    • 初始序列号:服务器生成自己的序列号(ISN)。
第三步:客户端确认ACK
  • 客户端 → 服务器:客户端收到服务器的SYN-ACK响应后,发送一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认连接。
    • 确认号:确认号设置为服务器的序列号 + 1,表示客户端确认了服务器的响应。
    • 客户端序列号继续增加,后续数据发送将基于此序列号。

结果:三次握手完成,连接成功建立。此时客户端和服务器之间已经建立了一个可靠的全双工连接,可以开始数据传输了。

2. 四次挥手(TCP连接终止过程)

四次挥手是用来断开TCP连接的过程,确保数据已经成功传输并且双方都同意关闭连接。

第一步:客户端发送FIN请求
  • 客户端 → 服务器:客户端向服务器发送一个FIN(终止)包,表示客户端不再发送数据,准备关闭连接。
  • 包含的内容:
    • FIN标志位设置为1,表示客户端请求关闭连接。
    • 客户端序列号:保持当前序列号。
第二步:服务器确认FIN
  • 服务器 → 客户端:服务器收到客户端的FIN请求后,回复一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认收到客户端的FIN包。
    • 确认号:确认号设置为客户端的序列号 + 1,表示已成功收到客户端的请求。
    • 服务器此时仍然可以继续发送数据,连接并未完全断开。
第三步:服务器发送FIN请求
  • 服务器 → 客户端:当服务器完成数据发送后,服务器也向客户端发送一个FIN包,表示服务器准备关闭连接。
  • 包含的内容:
    • FIN标志位设置为1,表示服务器请求关闭连接。
    • 服务器序列号:保持当前序列号。
第四步:客户端确认FIN
  • 客户端 → 服务器:客户端收到服务器的FIN请求后,发送一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认收到服务器的FIN包。
    • 确认号:确认号设置为服务器的序列号 + 1,表示客户端确认了服务器的关闭请求。

结果:四次挥手完成,连接正式关闭。此时,客户端和服务器之间的连接完全断开,所有的资源都被释放。

总结:

  • 三次握手用于建立连接,确保双方都可以接收对方的数据。
  • 四次挥手用于关闭连接,确保双方都确认数据已传输完毕并且都同意关闭连接。

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

相关文章:

  • PHP实现混合加密方式,提高加密的安全性(代码解密)
  • 实现C语言的原子操作
  • [免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】
  • 代码随想录刷题笔记
  • Vue简介
  • [创业之路-269]:《创业讨论会》- 系统之韵:从麻雀到5G系统的共通性探索
  • 【UE】 APlayerState
  • elasticsearch8.15 高可用集群搭建(含认证Kibana)
  • 代码讲解系列-CV(一)——CV基础框架
  • 如何运行Composer安装PHP包 安装JWT库
  • 面试题整理:Java多线程(二)多线程、死锁、乐观锁悲观锁、线程池
  • 002 mapper代理开发方式-xml方式
  • ArkTS渲染控制
  • 31不同整数的技术问题-青训营刷题
  • LeetCode 404.左叶子之和
  • MySQL 进阶专题:笛卡尔积内连接外连接详解(JOIN ON/ OUTER JOIN)
  • C++进阶: 红黑树及map与set封装
  • 智慧物业管理系统实现社区管理智能化提升居民生活体验与满意度
  • 垃圾回收之弱引用+实例说明+weakSet+weakMap
  • 硕成C语言4
  • 【Conda 和 虚拟环境详细指南】
  • 飞行汽车与人形机器人,无刷外转子电机与无框力矩电机,接小鹏飞行汽车后续
  • Rust 数据类型详解:Scalar 与 Compound 类型
  • Hot100之二分查找
  • 深度卷积神经网络实战无人机视角目标识别
  • (笔记+作业)书生大模型实战营春节卷王班---L1G3000 浦语提示词工程实践