我正在尝试在Linux内核中添加一个新的TCP选项。但是,我发现我的新选项不能与其他选项共存,因为选项字段中没有足够的空格。我收到来自wireshark的警告,因为“选项超过选项结束”。
所以我想知道如何扩展整个TCP选项字段的长度?
在tcp_parse_options()
的{{1}}中,我发现了这样的声明:
tcp_input.c
而解析选项的while循环以int length = (th->doff * 4) - sizeof(struct tcphdr);
开头。但是,无论我如何增加while (length > 0)
th->doff
中tcp_make_synack()
的价值,问题仍然存在。我也怀疑这是因为我在SYN pakcet中添加选项,而此函数用于SYN-ACK。但我找不到类似的功能,如tcp_output.c
....
有没有人对此问题有任何见解?
谢谢!