Linux内核的自定义网络协议

时间:2012-03-24 12:32:45

标签: linux linux-kernel

我正在尝试为大学项目实现Linux内核的自定义UDP协议。我还需要实现一个使用协议进行通信的用户登陆程序。我正在寻找一个详细的指南,包括示例代码,但无法在任何地方找到它。大多数书都涉及理论,但我想要更实用的东西 - 哪些文件要改变,哪些功能专门针对Linux内核实现。

3 个答案:

答案 0 :(得分:0)

你试过了吗?

(Linux套接字编程,第2部分:使用UDP)

http://www.ibm.com/developerworks/linux/tutorials/l-sock2/

答案 1 :(得分:0)

在Linux内核中,IPV4的UDP实现位于:

Linux的A.B.C /净/的IPv4 / udp.c

这是一个很好的起点。检查此UDP实现导出到其他网络层协议的功能,这样您就可以创建自己的协议版本,将自己的功能导出到其他网络层协议,然后从那里调用。

例如,当网络层协议(IP)完成传入数据包的处理时,当上层协议为UDP时,它会调用udp_rcv()将数据包传递到UDP(值为17,根据IANA, IPV4标题的协议字段。

答案 2 :(得分:0)

查看Linux Device Drivers, 3rd Edition by O'Reilly Chapter 17

此外,在Linux源代码树中,有两个驱动程序开始寻找:

  

drivers / net / loopback.c

     

drivers / net / plip / plip.c