出于学习目的,我正在实施TCP(现在只是RFC 793),但我没有
想法如何测试它。互联网上的大多数TUN / TAP内容都已过时(例如
Linux API调用不再起作用)并且没有足够的解释。另外,我
感觉就像创建设备和转发包等不是最好的方法
用于学习目的。例如,我宁愿只覆盖socket()
,
程序中的listen()
,connect()
,accept()
,send()
,recv()
等等
而不是将所有以太网流量转发到执行该操作的设备/程序
整个系统而不是单个程序。
我想知道这是否可行。如果没有,我想知道最简单的方法 测试Linux上的TCP实现。
因为我正在关注RFC 793,所以如果我能拥有IP(互联网,那就太棒了 我的应用程序中的RFC)API中提到的协议。这是可能还是可行 我不得不搞乱TUN / TAP的东西?
谢谢..
答案 0 :(得分:2)
如果我们谈论研究,我强烈建议您阅读Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets API
它包含有关测试TCP / IP实现的部分: "实验验证:测试基础设施"
答案 1 :(得分:1)
你可以尝试设置两个对等体,一个使用RAW套接字,另一个使用TCP套接字。
如果他们能够以与TCP相同的方式进行通信并真正传送/恢复数据包,那么您就知道自定义实现是成功的。
答案 2 :(得分:0)