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

TCP初始化序列号为什么要不一样

区分不同的连接(包括一些历史连接)、确保数据的顺序性、防止重放攻击(时间戳)

初始化序列号 ISN = M + F(localhost, localport, remotehost, remoteport)。

  • M是一个32位的计时器,这个计时器每隔 4 微秒加1,循环一次4.55小时
  • F 是一个 Hash 算法,根据源IP、目的IP、源端口、目的端口生成一个随机数值,要保证 hash 算法不能被外部轻易推算得出。

这样的算法会让初始化序列号以增长的方式生成,即使这样,当序列号快速回绕,仍然有可能出现问题

为了解决这个问题,就需要TCP时间戳,tcp_timestamps默认开启,开启后,TCP头部就会使用时间戳,便于精确计算RTT并防止序列号回绕

防回绕序列号算法要求连接双方维护最近一次收到的数据包的时间戳(Recent TSval),每收到一个新数据包都会读取数据包中的时间戳值跟 Recent TSval 值做比较,如果发现收到的数据包中时间戳不是递增的,则表示该数据包是过期的,就会直接丢弃这个数据包

http://www.dtcms.com/a/34175.html

相关文章:

  • `sh` 与 `bash` 的区别详解
  • 重学SpringBoot3-怎样优雅停机
  • 什么是HTTP/2协议?NGINX如何支持HTTP/2并提升网站性能?
  • mac 下 java 调用 gurobi 不能加载 jar
  • 计算机毕业设计SpringBoot+Vue.jst网上超市系统(源码+LW文档+PPT+讲解)
  • 大模型微调笔记:对比LoRA、QLoRA、AdaLoRA、LoRA+
  • 【书生大模型实战营】玩转HF/魔搭/魔乐社区-L0G4000
  • python 基础知识全面总结
  • 论文精读: JACS 、 GdAlSi石墨化低维磁性
  • 【结束】JS如何不通过input的onInputFileChange使用本地mp4文件并播放,nextjs下放入public文件的视频用video标签无法打开
  • ubuntu22.04连接github无法访问的问题
  • ubuntu-24.04.1-desktop 中安装 QT6.7
  • go执行java -jar 完成DSA私钥解析并签名
  • CentOS 下安装和配置 HTTPD 服务的详细指南
  • 基于javaweb的SpringBoot酒店管理系统设计和实现(源码+文档+部署讲解)
  • ubuntu docker 安装 deepseek anythingllm/openwebui教程
  • 算法——Z函数
  • 第1章 Vue设计哲学(深度解析版)
  • 初级渗透测试工程师需要学什么?网络安全零基础入门到精通教程建议收藏!
  • 【尝试使用python调用Seismic unix】
  • 如何通过js选中页面某块区域并复制内容
  • Linux上使用dify构建RAG
  • 超导量子计算机的最新进展:走向实用化的量子革命
  • Flink JobManager不稳定的典型情景
  • NeurIPS-2024 | 具身智能如何理解空间关系?SpatialRGPT:视觉语言模型中的具象空间推理
  • stm32四种方式精密控制步进电机
  • <02.23>Leetcode100
  • 吃一堑长一智
  • 《操作系统 - 清华大学》 8 -5:进程管理:进程生命周期管理
  • LeetCode 热题 100 160. 相交链表