首页 > 解决方案 > 自定义通信协议的良好设计是什么?

问题描述

我必须在 C 中实现一个通信协议栈。已经存在一个大纲设计。堆栈由 3 层组成(连接控制、安全、分片)。这些层的功能与这里无关。这个想法是,每一层根据其职责处理传入/传出的电报,并将其交给堆栈中的下一层。我认为这是堆栈的通常想法。

我的问题是,什么是好的设计,以及每一层的各个项目的依赖关系如何。

我想到了两种方法:

  1. 链式实现:对于传入的电报,连接控制项的处理数据函数由前面的项调用(不在本文的范围内)。然后连接控制对报文进行处理,然后调用安全项处理数据函数,然后安全项进行处理并将报文转发给分段项。同样的想法也适用于传出的电报,通过调用处理输出数据函数以相反的方向。

  2. 中央控制项实现:在这种方法中,中央控制获取传入的电报,然后调用连接控制的处理输入数据函数,该函数在执行某些操作后返回电报。然后中控项调用安全项的处理入数据函数等。也许这个中央控制项可以实现为状态机,其中每个状态代表上述通信协议层之一。

标签: network-programmingprotocols

解决方案


推荐阅读