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

11.TCP三次握手

TCP连接建立与传输

1.主机 A 与主机 B 使用 TCP 传输数据,A 是 TCP 客户,B 是 TCP 服务器。假设有512B 的数据要传输给 B,B 仅给 A 发送确认;A 的发送窗口 swnd 的尺寸为 100B,而 TCP 数据报文段每次也携带 100B 的数据载荷;发送方的初始序号为 100,接收方的初始序号为 200;在 A 和 B 建立 TCP 连接的过程中,A 给 B 发送的第 2 个 TCP 报文段不携带数据载荷。从 TCP 连接建立开始到 TCP 连接释放为止的整个过程中,试回答以下问题:
(1)A 给 B 发送的第 1 个 TCP 报文段首部中的 SYN 标志位和序号 seq 字段的取值分别是什么?
(2)B 给 A 发送的第 1 个 TCP 报文段首部中 SYN 标志位、ACK 标志位、序号 seq字段、确认号 ack 字段的取值分别是什么?
(3)A 给 B 发送的第 2 个 TCP 报文段中 ACK 标志位、序号 seq 字段、确认号 ack的取值分别是什么?
(4)A 给 B 发送的第 8 个 TCP 报文段首部中 ACK 标志位、序号 seq 字段、确认号ack 字段的取值分别是什么?该报文段的数据载荷长度是什么?

考题提炼:主机A(序号初始100)与B(序号初始200)建立TCP连接并传输512B数据,窗口大小100B。

解答

(1). 第一次握手(A→B)

  • SYN=1(建立连接)
  • seq=100(初始序号)
  • 答案:SYN=1, seq=100

(2) 第二次握手(B→A)

  • SYN=1, ACK=1(确认)
  • seq=200(B的初始序号)
  • ack=101(期望A下次发送的序号)
  • 答案:SYN=1, ACK=1, seq=200, ack=101

(3) 第三次握手(A→B)

  • ACK=1(确认B的SYN)
  • seq=101(A的下一个序号)
  • ack=201(期望B下次发送的序号)
  • 答案:ACK=1, seq=101, ack=201

(4). 数据传输(第8个报文段)

  • ACK=1(持续确认)
  • seq=601(A已发送500B数据:100B×5段)
  • ack=202(B未发送数据,维持初始期望)
  • 数据载荷=12B(512B-500B)
  • 答案:ACK=1, seq=601, ack=202;数据长度=12B

在这里插入图片描述

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

相关文章:

  • 频域分析和注意力机制
  • STM32H723的SPI配置及简单使用!
  • 【轨物交流】云南科情院赴杭“取经”数字赋能 调研轨物科技探路创新驱动
  • Pip Manager本地Python包管理器
  • 蓝凌的低门槛、可扩展的可视化公式引擎
  • 路径=算法=操作:复杂系统行为的统一数学框架
  • vue防止按钮重复点击方案
  • 随记 minio的图片跨域问题
  • Spring | JDK 动态代理与 CGLIB 代理:原理、区别与实战对比
  • Docker部署minio
  • AIStor 的模型上下文协议 (MCP) 服务器:管理功能
  • 什么是 Solana 上的 MEV?一键狙击是如何保护你的代币启动的?
  • ANeko v1.0.3 | 在手机里养只宠物猫 实时互动 动画细腻
  • 递归,回溯,DFS,Floodfill,记忆化搜索
  • 三.Gitee远程操作标签操作
  • Java使用Selenium反爬虫优化方案
  • 力反馈手套:工业虚拟现实培训领域的革新者
  • [蓝桥杯 2024 国 Python B] 设计
  • Spring Security如何拿到登录用户的信息
  • 安卓9.0系统修改定制化____系列讲解导读篇
  • 【C/C++】怎样设计一个合理的函数
  • 咖啡豆缺陷检测:用YOLOv8+TensorFlow实现工业级质检系统
  • 临时抱佛脚v2
  • 费用流学习笔记
  • C++内存池:减少动态分配开销的高效解决方案
  • R语言缓释制剂QBD解决方案之二
  • 如何使用vue2设计提示框组件
  • 解决华为云服务器无法ping通github问题
  • Java NIO 面试全解析:9大核心考点与深度剖析
  • Langfuse 深度使用指南:构建可观测的LLM应用系统