我需要找出应该保存在 TCP 传输控制 block (TCB) 中的信息,特别是我需要找出用于任何特定 session 的序列号。
我已经发布到其他论坛,浏览了 procfs,搜索了谷歌,从 lmgtfy (dot) com 给自己发送了链接 :) 运气不好。
如果 procfs 中没有工具或提示,是否有可能以某种方式找出此类信息在内存中的位置并从那里收集它,例如使用 dd
复制/开发/内存?
提前感谢您对此的任何帮助!!!!!!
最佳答案
嗯,我猜你首先需要知道序列号是什么以及为什么使用它,然后你可以看看序列号生成的具体实现。
序列号是 32 位字段,它被用来唯一地标记每个数据包,就好像它们可以被确认一样。并且,被认可 很重要,它是 tcp 维护连接可靠性的一个重要特性。可以在 TCP rfc(http://www.ietf.org/rfc/rfc793.txt - 第 3.3 节)中找到完整的详细信息。
现在,如果您需要了解 Linux 是如何做到的,您需要查看 net/ipv4/tcp_ipv4.c::tcp_v4_init_sequence() 这用于在建立新连接时生成 ISN(初始序列号)以及如何生成后面的序列号,这在 rfc 中有解释。所以,看看 tcp_v4_init_sequence() 和 rfc 的实现,这将有助于你理解序列号的使用和实现。希望这会有所帮助!
关于linux - 查看 Linux TCP TCB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199843/