如何开始编写自己的类IP协议?

9
所以我的问题是,能否编写一个与Internet协议相同的协议?如果可以,我该如何开始?不要说,“难道Internet协议不够好吗?”是的,它很好,只是想看看是否可能:P
我想了解更多关于协议的知识,只是为了学习协议的制作方式。我有一些编程经验,但没有网络协议方面的经验。

3
您的问题可能应该是:“我如何开始编写自己的IP协议类似协议?” - vcsjones
好的,谢谢。我不太确定,那么像@vcsjones所说,我该怎么做呢? - blackwolf123333
2
不,这是不可能的。宇宙中不允许存在两个类似IP协议的协议。 - R. Martinho Fernandes
@R.MartinhoFernandes:正如IETF尝试并失败地推广IPv6所证明的那样;-)但说真的,在IPv4因地址耗尽而消失之前,没有人会使用它。 - Steve Jessop
@SteveJessop:这个已经被认为已经发生了... - Jerry Coffin
显示剩余5条评论
3个回答

5
简短的回答是肯定的——它已经完成了,并且可以再次完成。已经完成的例子包括DECnet、NetBIOS、Appletalk和ATM。虽然我不确定它是否像预期的那样被完全实现(尽管DECNet非常接近),但最初用于网络的标准OSI 7层模型是作为实际实现的模型而设计的(即,意图是人们将实现这些层,并且您将能够通过插入每个层次的选择的实现来构建完整的网络堆栈)。当然,我们今天大多数人所想的IP实际上是IPv4——从版本号可以看出,它有前身(和一个后继者IPv6)。
编辑:至于如何做到这一点:基本上像任何其他事情一样。我会从撰写一些关于您的动机的内容开始——您想要实现什么,应该支持哪些操作等。然后开始制定您可以想象到的最简单的设计,以便可能实现您想要的功能。然后,当您使用它并遇到问题时,找出它们是由于实现不良还是设计本身的缺陷引起的。根据需要修改其中一个或两个,尽量使其演变得连贯和可理解。

1
为什么OSI七层模型让我想起了豆沙拉? - John Dibling
1
@JohnDibling:可能是因为太多时间用Java Beans进行网络编程(在那里,“任何”都是“太多”)。 - Jerry Coffin
IPsec可以说是网络层中非常重要的一部分,因为它是一个活动的集散地。 - Steve Jessop
@SteveJessop:是的 - 我一直坚持使用那些明显不同于IP的其他选项。 - Jerry Coffin

1
简而言之:是的,这是可能的。在更高层次(即OSI第7层),这是每天都在做的事情。如果您想要实现下一个IP,您需要的只有:
  • 特殊硬件(用于实际物理实现,假设您的协议与IP大不相同)
  • 适用于支持您的协议的操作系统的设备驱动程序
  • 也许需要一个高级API来促进实施

编辑:看到其他两个人已经回答了 ;)


0
能否编写一个与互联网协议相同的协议呢?
是的,可以编写自己的IP堆栈,但是要想真正地去做(并且做得正确),除非你在编程和网络方面都是专家级别,否则这将是极其困难的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接