2

我正在研究网络和 OSI 模型以及所有 7 层。就像每一层如何放置自己的标头然后在接收端删除一样。

有什么方法可以让我用 java 或 c 或 c++ 创建程序,并且我手动执行在层上完成的每个步骤,以便我真正知道它是如何工作的

编辑:好的,首先考虑本地例如我有数据字“hello”,我想将它发送到另一个模拟 OSI 模型的正在运行的程序。这个词会传遍所有层,他们会像 OSI 一样添加他们的标题和东西,然后其他正在运行的程序会收到它。

我认为基本上必须对 TCP/ip 协议进行编程,但可能有经验的人可以做得更好

然后我可以手动更改位以检查错误控制是否正常

4

1 回答 1

3

由于 OSI 模型有 7 层:

  1. 身体的
  2. 关联
  3. 网络
  4. 运输
  5. 会议
  6. 介绍
  7. 应用

并且您想在 Java(或可能是 C)环境中模拟它,那么您将需要做适量的工作。

出于模拟的目的,您可能会将普通的 TCP/IP 套接字层视为物理层 - 在您的模拟中,它实现了端点之间的连接。它是一个非常可靠的物理层,但你不能拥有一切。

然后,您可以使用适当的代码模拟每个连续的层 - 链路、网络、传输、会话、表示、应用程序层,这些代码将数据放入数据包或拆分数据包,并添加标头和校验和等。除应用程序外,每一层都有两个接口:向下接口(到编号较低的层)和向上接口(到编号较高的层)。您需要为每一层决定适当的操作。最小的集合可能是:打开、关闭、读取、写入。

我会从简单的开始 - 底部或顶部(任何一个方向都可以)。由于无论如何您都需要一个应用程序(如果没有别的,请测试代码),您可以从那里开始。您将不断完善代码,添加额外的层,确保之前的功能继续工作。您必须弄清楚应用程序层如何向数据链路层传达它需要的信息 - 以便可以进行正确的套接字调用等。

玩得开心。

于 2011-01-16T19:01:16.343 回答