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

详解RFC 793文档-4

3.7 数据通信

一旦连接建立,数据就通过交换数据段进行通信。由于错误(校验和错误)或网络拥塞可能导致数据段丢失,TCP使用重传(超时后)来确保每个段的交付。由于网络或TCP重传,可能会到达重复的段。对于重复段,TCP对段中的SEQ和ACK号执行某些检测,以验证它们的可接受性。

数据发送方跟踪变量SND.NXT中要使用的下一个序列号。数据的接收方跟踪变量RCV.NXT中预期的下一个序列号。数据发送方跟踪变量SND.UNA中最早的未确认序列号。如果数据流暂时空闲,并且所有发送的数据都已被确认,那么这三个变量将相等。

当发送方创建一个段并传输它时,发送方推进SND.NXT。当接收方接受一个片段时,它推进RCV.NXT,并发送一个确认。当数据发送方收到确认时,它推进SND.UNA。

紧急信息的通信

URG控制标志位标识此TCP段里的某些数据属于紧急数据,发送方TCP需要尽快把紧急数据发送出去。只有当URG标志置1时紧急指针Urgent Pointer字段才有效。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。

零窗口探测

发送TCP的发送窗口、接收TCP的接收窗口、接收TCP的内存空间,这三者之间都是联动的。

首先,接收TCP的内存空间直接决定了接收TCP的接收窗口的大小。当接收TCP的内存空间为0时,说明没有多余的空间接收发送方的数据,此时接收窗口的大小为0。

当接收窗口大小为0时,说明接收TCP无法再接收发送TCP的数据,发送TCP不应该发送数据。那发送TCP如何知道接收TCP的接收窗口大小呢?

http://www.lryc.cn/news/127359.html

相关文章:

  • ubuntu16编译内核源码并替换
  • AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大
  • Linux系统安装Google Chrome
  • 带你了解SpringBoot支持的复杂参数--自定义对象参数-自动封装
  • Raspberry Pi Pico RP2040制作低成本FPGA JTAG工具
  • 【工具】Python从临时邮箱获取验证码
  • 时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)
  • 在本地搭建WAMP服务器并通过端口实现局域网访问(无需公网IP)
  • Redis之删除策略
  • SpringBoot的配置文件以及日志设置
  • 【Java集合框架面试题(30道)】
  • Android 组件
  • kotlin的数据类型和类型转换
  • 常见架构类型
  • 搭建Web服务器并用cpolar发布至公网访问
  • NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕
  • 阿里云服务区ECS,申请免费的服务器之后,如何使用xshell 登陆,找不到匹配的host key 算法
  • 【CTF-web】备份是个好习惯(查找备份文件、双写绕过、md5加密绕过)
  • C#和Java的大端位和小端位的问题
  • 如何在 iOS 上安装并使用 ONLYOFFICE 文档
  • 【AI】如何用AI生成XMind思维导图
  • k8s问题汇总
  • 打造专属照片分享平台:快速上手Piwigo网页搭建
  • OpenAI全球招外包大军,手把手训练ChatGPT取代码农 ; 码农:我自己「杀」自己
  • 船舶法兰盘法兰管件3D扫描尺寸测量|三维扫描检测|CAV测量-CASAIM
  • 每天一道leetcode:1218. 最长定差子序列(动态规划中等)
  • C#的 Settings.Settings配置文件的使用方法
  • 神经网络基础-神经网络补充概念-35-为什么正则化可以减少过拟合
  • Glide 的超时控制相关处理
  • 使用requests如何实现自动登录