TCP初始序列号ISN
ISN:初始化序列号(initial sequence number),是在建立tcp三次握手的时候,存储在TCP头部的序列号位置中的数字的代称。也就是说,告诉对方我将要开始发送的初始化序列号是多少,两边都要发这个ISN,即tcp三次握手中第一次握手的SYN包和第二次握手的SYN+ACK包中都有这个数值。
这个ISN的具体数值是不固定的,通常我们在wireshark中看到的都是0,这是wireshark帮我们转换过了的。看wireshark的注释也知道,这里注释的是relative sequence number,也就是说这是相对的序列号。并不是确定的。
ISN的具体的数值得由操作系统的源码来决定,有好几种生成方式。
RFC1948中提出了一个较好的初始化序列号ISN随机生成算法:
ISN = M + F(localhost, localport, remotehost, remoteport)
M是一个计时器,这个计时器每隔4毫秒加1。
F是一个Hash算法,根据源IP、目的IP、源端口、目的端口生成一个随机数值。要保证hash算法不能被外部轻易推算得出,用MD5算法是一个比较好的选择。
TCP的ISN为什么不能固定?
从攻击的角度:
TCP初始化序列号不能设置为一个固定值,因为这样容易被攻击者猜出后续的序列号,从而遭到攻击。
从TCP连接稳定角度:
广域网的随机性,复杂性都很高,假设client与server连接状况不好,不停的断开又重连。那么之前交互的报文很可能在连接已断开时还没到达server。
如果ISN是固定的,那很可能在新连接建立后,上次连接通信的报文才到达server,这种情况有概率发生上次连接发送的报文的seq序列号正好是server希望收到的新连接的报文seq序列号。这就全乱了。
因此,TCP的ISN不能是固定的。
ISN之后发送数据时的序列号如何计算
实际发送数据时的序列号计算:ISN +
参考:
TCP初始化序列号ISN
面试冲刺:04—TCP的序列号(seq)、初始序列号(ISN)、确认号(ACK)
tcp小笔记 ISN
20-1-tcp连接——初始化序列号(ISN)
为什么TCP的ISN是随机的?
什么是tcp序列号欺骗
TCP欺骗攻击
TCP/IP协议中,在建立连接的时候ISN序号分配问题?
TCP三次握手阶段及数据通信阶段,应答序号与发送序号的关系有何不同?
求验证,TCP的确认序号是不是这样计算出来的?
TCP序列号和确认号详解
TCP初始序列号ISN相关推荐
- TCP通信过程中初始序列号为什么随机产生
TCP通信过程中初始序列号为什么随机产生? 为了网络安全,防止黑客获取到初始化序列号,并伪造序列号进行攻击.
- tcp协议栈优化1-增加TCP初始拥塞窗口
看linux3.0 network代码,发现TCP initcwd(初始拥塞窗口)默认已经调为10,同时,TCP rcvwnd初始接收窗口也已调为10. tcp initcwd初始化函数-- ...
- TCP初始化序列号ISN
TCP初始化序列号ISN TCP初始化序列号不能设置为一个固定值,因为这样容易被攻击者猜出后续序列号,从而遭到攻击. RFC1948中提出了一个较好的初始化序列号ISN随机生成算法. ISN = M ...
- TCP初始拥塞窗口与初始接收窗口
根据RFC3390(2002年)中的表述,TCP初始窗口的上限定义为: min (4 * MSS, max (2*MSS, 4380 bytes)),旨在限制初始窗口在4K范围内,但是当MSS非常大时 ...
- 为什么TCP的初始序列号ISN是随机生成的?
本文转自https://www.cnblogs.com/llc-blog/p/8425377.html 从两个角度考虑: 1.受攻击角度 如果TCP每次连接都使用固定ISN,黑客可以很方便模拟任何IP ...
- 网络安全:与 TCP 连接管理相关的网络攻击
目录 攻击方法1:SYN 泛洪 攻击方法2:影响路径最大传输单元 攻击方法3:破坏现有的TCP连接 攻击方法4:欺骗攻击 攻击方法1:SYN 泛洪 SYN 泛洪是一种 TCP 拒绝服务攻击,在这种攻击 ...
- Python网络编程-一文厘清socket、TCP和UDP那点事
文章目录 网络基础 网络协议 IP地址与端口 socket套接字 概念 Python中socket模块 TCP下的服务器与客户端 TCP工作原理 TCP服务器的实现 TCP客户端的实现 UDP下的服务 ...
- Nmap支持的TCP IP指纹识别方法
Nmap OS指纹识别的工作原理是向目标机器的已知打开和关闭端口发送最多16个TCP,UDP和ICMP探针.这些探针专门用于利用标准协议RFC中的各种模糊性.然后Nmap侦听响应. 分析并组合这些响应 ...
- 【RFC7414 传输控制协议 (TCP) 规范文档的路线图】(翻译)
原文 rfc7414 (ietf.org) A Roadmap for Transmission Control Protocol (TCP) Specification Documents 传 ...
最新文章
- JavaScript中innerHTML与innerText,createTextNode的区别
- mysql semisync 恢复_mysql半同步复制(semi_sync_replication)搭建及使用
- MRI图像右心室分割
- 智能水位检测系统proteus_浅谈智能视觉检测系统的6大优点
- Quartz学习总结(1)——Spring集成Quartz框架
- 如何恢复初始git提交?
- [leetcode]169. 多数元素
- docker入门、docker基本命令
- 25个超适合学生党的0成本兼职,自我增值的最有效方式
- 百兆网络变压器原理图及网络变压器功能(附PDF工程图纸)
- php学习笔记——PHP 概述
- 计算机专业定向选调,兄弟们,关于定向选调和找工作,JR们能不能给小弟一些建议...
- js相对视口的高度_js获取可视区域高度
- 从2018年全球半导体数据中看物联网芯片产业现状
- Python ORM框架peewee
- CocosCreator 方块消除教程
- 初秋最全的穿搭都在这里了!
- 计算机毕业论文致谢信范文,论文致谢信10篇
- Cocos2d-HTML5--人物动画
- Zk中组建显示模型mold都有哪些
热门文章
- GoJS教程:图布局
- word中鼠标点击文字下方出现蓝线,不点击就不出现
- jupyter更改路径
- Wannafly交流赛1B	硬币 ( 数学
- MCU极海 APM32F103VET6 兼容替代 STM32F103VET6
- 喜报!《大数据》72篇论文入选中国知网《学术精要数据库》高影响力论文!...
- ts453bmini 内存_为华硕天选游戏本而生:8GB DDR4-3200单条跌至194,补齐内存短板
- Ubuntu蓝牙耳机连接失败问题解决
- 华为OSPF配置练习
- 腾讯云~Redis6.2.6 伪集群 哨兵模式_搭建