你如何编写自己的IP协议?(假设TCP和UDP不合适)

Pet*_*erM 7 linux ip protocols

假设您已确定对于给定的利基案例,TCP或UDP都不是理想的,您将如何编写自己的基于IP的协议?

例如,如果您正在Linux上进行开发,那么您在哪里可以查看内核中的"挂钩"协议?

你会从哪里开始的?

Bil*_*nch 9

您可以通过内核模块执行此操作.我将首先阅读arp的工作原理.这是一个更简单的协议,因为用户空间不直接发送数据包.

创建新网络协议的入口点是dev_add_pack,可以在此处找到arp的代码.


caf*_*caf 5

如果您的协议可以直接在IP之上实现,那么它也可以包裹在UDP数据包中实现-后者的优点是它将通过现有的NAT设备和防火墙,而这些设备只会丢弃您的自定义协议。