c++ - 我如何开始编写自己的类 IP 协议(protocol)?

标签 c++ c networking ip protocols

<分区>

所以我的问题是,是否可以编写一个与 Internet 协议(protocol)功能相同的协议(protocol)?如果可以,我该如何开始?并且不要说,“Internet 协议(protocol)还不够好吗?”,是的,只是看看是否可行:P

我想知道更多关于如何, 只是为了学习协议(protocol)是如何完成的。我有一些编程经验,但没有网络协议(protocol)之类的经验。

最佳答案

简短的回答是肯定的——它已经完成,并且可以再次完成。

已完成的示例包括 DECnet、NetBIOS、Appletalk 和 ATM。虽然我不确定它是否按预期完全实现(尽管 DECNet 非常接近),但标准 OSI 7 层网络模型最初打算作为实际实现的模型(即,意图是人们将实现这些层,并且您可以通过将您选择的每一层的实现插入在一起来构建一个完整的网络堆栈。

当然,我们大多数人今天所认为的 IP 实际上是 IPv4——正如您可能从版本号中猜到的那样,它有前身(以及后继 IPv6)。

编辑:关于如何您是如何做到的:与其他任何事情都非常相似。我会先写一些关于你的动机的东西——你想完成什么,它应该支持什么样的操作,等等。然后开始研究你能想到的最简单的设计,它可能会做你想做的事。然后,当你使用它并遇到问题时,弄清楚它们是源于执行不力,还是设计本身的缺陷。根据需要修改其中一个或两个,尽量使其演变保持连贯和易于理解。

关于c++ - 我如何开始编写自己的类 IP 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10726208/

相关文章:

java - 客户端未收到服务器 DataOutputStream 的输出

python - 如何正确运行 localtunnel v2

c++ - 错误: passing x as 'this' argument of x discards qualifiers

c - 为什么这个 C 程序比预期晚生成 SIGPIPE?

c++ - C++代码的缓存优化

c - 当我使用 char 数组作为文件名时,fopen 总是返回 NULL,但如果我使用像 "file.txt"这样的名称,一切正常

c++ - 如何正确使用 OpenMP 中的 update() 子句

linux - 如何构建一个接受数千个持久网络连接的服务器?

c++ - 字符串文字如何存储在 C++ 的内存中?

具有特征的 C++ 可变参数模板,使用参数列表重载函数会产生意想不到的结果