我正在研究网络和OSI模型以及所有7层。 就像每个层如何放置自己的标头然后在接收器端移除一样。
有没有办法可以用java或c或c ++创建程序,我手动执行在图层完成的每一步,这样我才真正知道它是如何工作的
编辑: 好先在当地考虑一下 例如,我有数据字“hello”,我想将它发送到另一个模拟OSI模型的运行程序。这个词不通过所有层,他们将添加他们的标题和像OSI那样的东西,然后其他正在运行的程序将接收它。
基本上TCP / ip协议必须编程我认为但可能有经验的人可以让它更好
然后我可以手动更改位以检查错误控制是否正常
答案 0 :(得分:2)
由于OSI模型有7层:
并且您想在Java(或可能是C)环境中模拟它,那么您将需要做适量的工作。
出于模拟的目的,您可能将普通的TCP / IP套接字层视为物理层 - 在模拟中,它实现了端点之间的连接。它是一个非常可靠的物理层,但你无法拥有一切。
然后,您可以模拟每个连续的层 - 链接,网络,传输,会话,演示,应用程序 - 具有将数据放入数据包的适当代码的层,或拆分数据包,以及添加标头和校验和等等。除应用程序之外的每个层都有两个接口:向下接口(到较低编号层)和向上接口(到较高编号层)。您需要决定每个层的适当操作。最小集可能是:打开,关闭,读取,写入。
我开始很简单 - 无论是底部还是顶部(任一方向都可以)。因为无论如何你都需要一个应用程序(测试代码,如果没有别的),你可能会从那里开始。您将连续优化代码,添加额外的图层,确保以前的功能继续有效。您必须弄清楚应用程序层如何向数据链路层传达它所需的信息 - 以便可以进行正确的套接字调用等。
玩得开心。