当前位置: 技术问答>linux和unix
【急】修改TCP/IP协议栈的问题
来源: 互联网 发布时间:2017-04-26
本文导语: 最近做一个 修改TCP/IP协议栈的项目,需要在TCP层和IP层之间 增加一个网络层,现在只知道修改完协议源码后,需要重新编译内核,其余的不太清楚 应该从哪方面下手?这个过程中需要哪些软件的辅助?希望 做个...
最近做一个 修改TCP/IP协议栈的项目,需要在TCP层和IP层之间 增加一个网络层,现在只知道修改完协议源码后,需要重新编译内核,其余的不太清楚 应该从哪方面下手?这个过程中需要哪些软件的辅助?希望 做个协议栈 修改的大神能给点意见。在此,谢谢大神。
|
你增加的网络层都有哪些要求,除了发送/接收外
我曾经做过将tcp转封装为udp的核心模块,我想这跟你的需求比较相近,不知道能否帮助你
如果你的封装转换仅仅是针对于local_deliver / local_output 的,那容易一些,只需要基于sock 的处理即可,ip层的处理因为有nf_hook可以使用,不会太难(因为不涉及dst选择和ip_defrag)
如果需要promisc型的转封装,那么你需要添加新的协议族实现,或者直接追加ptype_all / ptype_base
我曾经做过将tcp转封装为udp的核心模块,我想这跟你的需求比较相近,不知道能否帮助你
如果你的封装转换仅仅是针对于local_deliver / local_output 的,那容易一些,只需要基于sock 的处理即可,ip层的处理因为有nf_hook可以使用,不会太难(因为不涉及dst选择和ip_defrag)
如果需要promisc型的转封装,那么你需要添加新的协议族实现,或者直接追加ptype_all / ptype_base
|
wireshark理论上不可行,wireshark只能抓包分析,本身并不修改网络包,在TCP和IP之间增加的网络层必然会修改包内容。
|
参考lvs嘛,连MAC地址都修改了