TCP 序列号

2023-12-24

我试图了解 TCP 标头的序列号是如何生成的。

在某些地方我读到它是“数据包中第一个字节的索引”(链接在这里 https://stackoverflow.com/questions/2672734/tcp-sequence-number-question),在其他一些网站上,它是随机生成的 32 位数字,然后递增。

我实在不知道哪个是哪个,所以有几个问题:

  • 初始序列号是如何生成的? (如果有,请提供 RFC 编号)
  • 它是如何递增的?
  • 秘钥是如何生成的?

我阅读了一些 RFC,例如RFC 6528 https://www.rfc-editor.org/rfc/rfc6528#section-2, RFC 793 https://www.rfc-editor.org/rfc/rfc793, and RFC 1948 http://www.networksorcery.com/enp/rfc/rfc1948.txt但我似乎无法理解实际实施的是哪一个。

我读到了“std”状态,但仍然......

先感谢您!


TCP 连接的每个端点为其发送的数据包建立一个起始序列号,并在作为建立连接的一部分发送的 SYN 数据包中发送该序列号。

没有要求任一端都遵循特定的过程来选择起始序列号。操作系统可以自由地使用它喜欢的任何机制,但通常最好选择随机数,因为这样更安全。

从该起点开始,任一端发送的每个数据包都包含两个序列号 - 一个用于指定数据包在流中的位置,另一个表示字节数的 ACK 序列号received。两个数字都由起始序列号偏移。

阅读所有相关内容维基百科 http://en.wikipedia.org/wiki/Transmission_Control_Protocol当然 - 在该页面中查找“序列号”以获取所有血淋淋的详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP 序列号 的相关文章

  • 什么是消息边界?

    什么是 消息边界 在以下情况下 TCP 和 UDP 之间的区别之一是 UDP 保留消息 边界 我理解之间的区别TCP and UDP 但我不确定的定义 消息边界 由于 UDP 在每个单独的数据包中包含目的地和端口信息 因此是否可以为消息提供
  • Socket ReceiveAsync 合并数据包

    我打算通过套接字接收数据包 但由于它们是从发送方以高频率发送的 因此其中许多数据包被打包成一个byte array SocketAsyncEventArgs Buffer然后保存多个数据包 即使它们是单独发送的 使用验证wireshark
  • 创建后缀号码球拍

    我正在尝试在 Racket 中试验我可以做的事情 并且我想在数字后加上字母 对于这个例子 我只想代表10000 as 10K and 1000000 as 1M 有没有办法 用宏或其他方式 我可以扩展1M to 1 1000000 或者有什
  • 在 C# 中通过 TCP 发送 C 结构体

    我正在编写一个程序 通过 TCP 与一台设备的管理界面进行交互 问题是 设备的文档是用C写的 而我写的程序是用C 写的 我的问题是 文档指定 通信基于基于C结构的API缓冲区 再多的谷歌搜索似乎也无法让我找到这个 API 或如何通过 TCP
  • 使用 iPhone 作为热点时 TCP 连接无法正常工作

    我正在开发一个 iOS 应用程序 它通过 TCP 套接字连接到在 Android 上运行的服务器应用程序 为了找到第二个设备的 IP 我使用 UDP 请求并接收服务器的 IP 当我将它们连接到 Wi Fi 网络或使用 Android 设备作
  • net.TCPConn 允许在 FIN 数据包后写入

    我正在尝试为一些服务器端代码编写单元测试 但我在确定关闭测试用例时遇到了困难 环回 TCP 连接似乎无法正确处理干净关闭 我在一个示例应用程序中重现了这一点 该应用程序按顺序执行以下操作 创建客户端和服务器连接 通过从客户端向服务器成功发送
  • 将所有逻辑规则与矩阵并按相同顺序匹配

    例如 我有一个像这样的矩阵 dat lt cbind 1 10 11 20 21 30 colnames dat lt paste0 x 1 ncol dat dat x1 x2 x3 1 1 11 21 2 2 12 22 3 3 13
  • 在 Python 中通过 TCP 套接字发送文件

    我已经成功地将文件内容 图像 复制到新文件 然而 当我通过 TCP 套接字尝试同样的事情时 我遇到了问题 服务器循环未退出 客户端循环在到达 EOF 时退出 但服务器无法识别 EOF 这是代码 Server import socket Im
  • 如何根据开始和结束条件过滤数据?

    我试图根据依赖于连续日期的两个条件来过滤数据 我在寻找对于 5 个以上的连续日期 值低于 2 with a 缓冲期 of 值 2 到 5 最多连续 3 天 它看起来像这样 很抱歉这里的 Excel 尝试很糟糕 第 1 天到第 10 天将包括
  • Android 数字格式不知为何是错误的,我得到的不是 3.5,而是 3.499999999,为什么?

    我将一些数据存储在数据库中 然后使用游标读取这些数据 所有数据均为 56 45 3 04 0 03 类型 即小数点后两位 现在我想对它们求和 但这似乎并不容易 我得到这些数字c getDouble 3 然后我将它添加到 sum 变量中 如下
  • Android 软键盘先显示数字视图

    我的应用程序上有一个登录屏幕 它接受 CPF 作为登录名 CPF 是每个巴西公民都有的唯一号码标识 例如 10546819546 但它也可以接受护照号码作为登录名 并且上面可能有字母 我的问题是我希望键盘在弹出时在默认字母表之前显示数字 符
  • 在java中以一定精度显示双精度数

    我目前正在编写一个计算器应用程序 我知道双精度数并不是良好数学的最佳选择 应用程序中的大多数函数都具有很高的精度 但有些函数不会得到非常难看的结果 我的解决方案是只向用户显示 12 位小数的精度 我选择 12 是因为我的最低精度来自我的数值
  • 为什么 TCP 段中的 SYN 或 FIN 位会占用序列号空间中​​的一个字节?

    我试图理解这种设计背后的基本原理 我浏览了一些 RFC 但没有发现任何明显的东西 这并不是特别微妙 这样 SYN 和 FIN 位本身就可以被确认 因此如果丢失则可以重新发送 例如 如果连接关闭而没有发送更多数据 那么如果 FIN 没有发送任
  • 为什么 UDP 服务器中只有一个套接字?

    我正在准备考试 发现了这个问题 典型的 UDP 服务器可以使用单个套接字来实现 解释一下为什么 对于 TCP 驱动的服务器 我发现创建了两个套接字 一个用于所有客户端访问服务器 另一个用于每个客户端的特定 套接字 用于服务器和客户端之间的进
  • 您如何评论 RFC?

    我有一些关于OAuth RFC 草案 https datatracker ietf org doc html draft hammer oauth 10 特别是关于它包含的一些错误 但我不确定可接受的制作方法是什么 底部有一个电子邮件地址
  • 分配 TCP/IP 端口供内部应用程序使用

    我编写了一个由 Windows 服务托管的 WCF 服务 它需要侦听已知的 TCP IP 端口 我可以在什么范围内安全地分配端口供我的组织内使用 该端口将嵌入到服务和使用该服务的客户端的配置文件中 端口 0 1023 是众所周知的端口 由
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli
  • JavaScript 数字在内存中的大小都相同吗?

    我正在阅读本书的面向 Web 开发人员的专业 JavaScript 似乎所有 ECMAScript 数字都是 binary64 浮点数 这得到了证实这篇 MDN 文章 https developer mozilla org en US do
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 互联网 RFC 数据包图中预期的位(不是字节)顺序是哪个

    我正在我的家庭有线网络上解析 ICMPv6 数据报 但在特定 RFC 中找不到对位排序约定的明确提及 多字节字段是网络顺序的 但是字节内的位又如何呢 机器是按字节寻址的 但网络硬件对位进行序列化 在图表中 8 位字段 左侧 的一位最终位于无

随机推荐

  • 如何通过代码设置另存为对话框的目录?

    基本上 我编写了一些代码 用于监听应用程序内弹出的 另存为 对话框 当它弹出时 它会按下 保存 所有这些都是通过代码实现的 这很好用 但是我需要能够在保存之前将文件路径设置为我想要的路径 到目前为止 这是我的代码 using System
  • 常量的 k 前缀从何而来?

    常量以前缀开头是一种很常见的做法k e g k pi 但什么是k mean 难道只是这样c已经意味着char 这是一个历史上的奇怪现象 在喜欢盲目应用他们不理解的编码标准的团队中仍然是常见的做法 很久以前 大多数商业编程语言都是弱类型的 自
  • 哪些Google API可以通过服务帐号授权访问?

    我从 Google API 文档推断 并非所有广告的 Google 服务都可供服务帐户使用 例如在服务帐户的公告中 这是文本的一部分 服务帐户目前受以下 Google 支持 开发者服务 谷歌云存储 谷歌预测API 谷歌网址缩短器 谷歌 OA
  • 如何将一个流读入另一个流? [复制]

    这个问题在这里已经有答案了 FileInputStream in new FileInputStream myFile ByteArrayOutputStream out new ByteArrayOutputStream 问题 我怎样才能
  • Cassandra 集群 - 数据密度(每个节点的数据大小) - 寻求反馈和建议

    我正在考虑 Cassandra 集群的设计 用例将存储大行的时间序列数据的微小样本 使用 KairosDB 数据几乎是不可变的 非常罕见的删除 无更新 这部分工作得很好 然而 几年后 数据将相当大 最大大小将达到数百 TB 考虑到复制因子
  • 带弹出框/工具提示的 R 闪亮 valueBox

    我尝试从闪亮的仪表板为 valueBox 制作弹出框 工具提示 但到目前为止没有任何效果 我尝试使用shinyBS 例如popify函数 但随后收到错误警告 tagAssert中的错误 需要具有类 shiny tag 的对象 当我使用 ad
  • 使用 Cloud SQL 避免每日高额费用

    所以我处于开发模式 在开发后的 10 天内 我有了一个300 向 Google 计费 我做了什么 创建一个测试表 并向其中添加记录 文本和数字 我想说 从我的 Mac 执行了多个查询每天100个 持续6天 与周围有一张桌子100k 行 6
  • 如何在 Tkinter 画布上旋转多边形?

    我正在努力使用 Python 和 Tkinter 创建 asteroids 版本 当按下左或右箭头键时 船需要旋转 这艘船在 Tkinter 画布上是一个三角形 我无法想出调整三角形坐标的公式 我相信这与 sin 和 cos 有关 尽管我不
  • Meteor.js 在没有日志的情况下被杀死

    尝试运行 Meteor js 的示例 派对 示例失败 没有留下任何日志 meteor run parties gt Meteor server running on http localhost 3000 Killed 看起来由于某种原因崩
  • Storm拓扑未提交

    我已经配置了我的机器zookeeper nimbus supervisor运行正常 并且我的拓扑在LocalCluster中工作 LocalCluster cluster new LocalCluster cluster submitTop
  • 确定任意命题公式中变量的上/下界[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 给定一个任意命题公式 PHI 某些变量的线性约束 确定每个变量的 近似 上限和下限的最佳方法是什么 有些变量可能是无界的 在这种情况下 算
  • C++ 窗口时间

    我在利用时间方面遇到了问题 我想使用 C 在 Windows 上使用并获取微秒 我找不到路 规范 的答案是由unwind 一种流行的方法是使用 QueryPerformanceCounter 调用 然而 这种方法存在一些问题 它的目的是测量
  • 设计before_filterauthenticate_admin?

    我通过添加管理员属性向 Devise 添加了管理员角色 您能告诉我这是否是创建需要管理员用户签名的 before filter 的正确方法 在任何控制器中 before filter authenticate admin 在应用程序控制器中
  • Apache/httpd /var/www/html/ .cgi 脚本抛出 500 内部服务器错误

    我今天安装了一台新的 CentOS 7 x86 64 LAMP 服务器 我用 c 语言编译了一个简单的 CGI 脚本 并将其命名为 test cgi 并为 cgi 脚本启用了 AddHandler 然而 每次我尝试从 var www htm
  • MySQL、Rails ActiveRecord 日期分组和时区

    我想按创建日期对用户进行计数 当我查询最后一个用户时 我有 gt User last created at gt Thu 07 Aug 2014 21 37 55 BRT 03 00 当我计算每个日期的用户数时 我得到 gt User gr
  • htaccess 仅将主域重写到子文件夹

    我正在使用 cPanel 帐户托管多个站点 为了获得干净的 public html 我使用 htaccess 将主域重定向到子文件夹之一 所以当用户输入www example com 它将被重写为www example com mainsi
  • Express + Angular 路由导致无限循环 + 崩溃

    我正在使用 Express 和 Angular 开发 Node 应用程序 我使用 Angular 进行路由 并且我的路由设置如下 app config routeProvider function routeProvider routePr
  • 如何查找 Wix Burn 可执行文件的 GUID 以便以编程方式卸载?

    我创建了 wix 引导程序项目 安装时会创建注册表项 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion Uninstall SOME GUID 所以我可以使用 ARP
  • 使用 C# 以编程方式锁定 Windows 工作站

    我遇到了这个锁定 Windows 工作站的示例 using System Runtime InteropServices DllImport user32 dll SetLastError true static extern bool L
  • TCP 序列号

    我试图了解 TCP 标头的序列号是如何生成的 在某些地方我读到它是 数据包中第一个字节的索引 链接在这里 https stackoverflow com questions 2672734 tcp sequence number quest