如何开始编写自己的类 IP 协议
How do I get started writing my own IP-Like Protocol?
所以我的问题是,是否有可能编写一个与互联网协议相同的协议,如果是这样,我该如何开始?不要说,"互联网协议还不够好吗?",是的,只是看看是否有可能:P
我想更多地了解如何,只是为了学习如何完成协议。我在编程方面有一些经验,但不像网络协议那样。
简短的回答是肯定的 - 它已经完成了,并且可以再次完成。
已经完成的例子包括DECnet,NetBIOS,Appletalk和ATM。虽然我不确定它是否完全按预期实现(尽管 DECNet 非常接近(,但用于网络的标准 OSI 7 层模型最初旨在作为实际实现的模型(即,目的是人们将实现这些层,并且您将能够通过将您选择的每层的实现插入在一起来构建一个完整的网络堆栈(。
当然,我们大多数人今天认为的IP实际上是IPv4 - 正如你可能从版本号中猜到的那样,它有前身(以及后继者IPv6(。
编辑:至于你怎么做:几乎就像其他任何东西一样。我会先写一些关于你的动机的东西 - 你想要完成什么,它应该支持什么样的操作,等等。然后开始研究最简单的设计,你可以弄清楚它可以做你想要的。然后,当你使用它并遇到问题时,弄清楚它们是否源于糟糕的实现,还是设计本身的缺陷。根据需要修改一个或两个,尽量保持其演变的连贯性和可理解性。
简而言之:是的,这是可能的。在更高级别(即 OSI 第 7 层(,它每天完成。如果要实现下一个 IP,您只需要:
- 特殊硬件(用于实际的物理实现,假设您的协议与IP有很大不同(
- 支持您的协议的您喜欢的操作系统的设备驱动程序
- 也许是一个高级 API 来促进实现
编辑:看到另外两个人打败了我;)
是否有可能编写一个与 网际协议?
是的,可以编写自己的IP堆栈,但是除非您在编程和网络方面都是专家,否则要真正继续这样做(并且实际上做对了(是非常困难
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 是否可以在不填充自己的参数的情况下将模板函数作为参数传递?
- 如何访问模板参数自己的模板参数?
- 将矩阵乘以我自己的输入的向量
- 您应该在什么时候创建自己的异常类型
- 派生类是从基类继承 v 指针并仅使用它,还是也有自己的 v 指针?
- string1 == string2 和你自己的 for 循环比较有什么区别?
- 如何正确包含我自己的标头?
- 自己的自定义向量类. 内存重新分配
- C++ - getaddrinfo() - 使用动态 DNS 获取自己的外部 IP 失败
- 如何开始编写自己的类 IP 协议