主要观点:探讨如果不使用 TCP 或 UDP 会发生什么,通过实验研究自定义传输层协议在不同操作系统和网络环境中的行为及遇到的问题。
关键信息:
- 设计并测试了名为 HDP 的自定义协议,在本地向自己的机器发送数据包,观察到操作系统接受该协议并正常处理。
- 尝试改变 IP 数据包中的协议号,包括 6(TCP)、2(ICMP)、256 等,观察到不同结果,部分协议在服务器或客户端失败。
- 系统调用(syscalls)在处理网络数据包时很重要,不同操作系统对 raw socket 和协议号的处理方式不同,如 Darwin 对协议号为 0 的处理较为模糊,Linux 不允许绑定 raw socket 到协议 0 等。
- 在 Digital Ocean 等云服务器上进行实验,发现部分云服务不支持非标准 IP 协议,如 Digital Ocean ,而 AWS 支持,但在公网上发送非标准协议数据包仍存在问题,如仅第一包能通过等。
- 最后尝试在 IPv6 环境下使用 HDP 协议,发现该协议在 IPv6 网络中可以工作。
重要细节: - 实验过程中详细记录了各种协议号下的服务器和客户端的相关信息,如源 IP、字节和、接收情况等。
- 介绍了相关的系统调用函数如 socket 以及不同操作系统的相关文档和行为差异。
- 提及了一些相关的资源如 UDP 协议规范、IP 协议测试号分配等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。