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