我试图了解 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(使用前将#替换为@)