gpt4 book ai didi

c - 如何编写模块化网络代码?

转载 作者:行者123 更新时间:2023-12-02 02:04:46 25 4
gpt4 key购买 nike

<分区>

我有一个任务,我必须在其中实现一些网络协议(protocol)。分配包括通过理想连接(不会丢失或损坏数据)和确实损坏数据的连接进行通信。我想让它尽可能模块化,但我不知道该怎么做(一切似乎都交织在一起)。这是我必须做的事情的列表:

  • 滑动窗口。此任务假设一个完美的连接。但是,我想抽象掉这个细节(实现滑动窗口代码,以便处理连接质量是其他模块的责任)。
  • Go-Back-N 用于不完美连接的协议(protocol)。在这里,我想重用之前涉及滑动窗口的任务中的代码。
  • 选择性重复。这听起来像是它应该取代 Go-Back-N 模块,同时仍然在滑动窗口模块之上工作。
  • 错误检测。这个看起来应该与我使用滑动窗口、Go-Back-N 还是选择性重复无关。然而,我不知道如何将错误检查与消息接收分开。

也许我可以实现分层架构(受 OSI 模型启发),但我不确定该怎么做。我需要朝着正确的方向插入。

这些不同的模块应该如何相互交互?这样 Go-Back-N 或 Selective Repeat 功能独立于我是否要填充数据链接(滑动窗口),并且在所有这些之上透明地进行错误检查。

编辑:另一个困难是某些协议(protocol)(Go-Back-N、Selective Repeat、Sliding Window)需要特定于该协议(protocol)的状态,并且没有很好的方法在 C 中实现有状态函数。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com