协议栈开发一般步骤

一,阅读协议栈相关文档
关于单个协议的定义,权威的自然是IETF(互联网工程任务推进组织)的"rfc"文档,虽然是一大堆的英文(呵呵,我英文也一般),开始不太看的明白,不过没关系,先去网络上用"baidu"或则"google"搜索一下关于你要做的这个协议的中文说明,虽然绝大数介绍都很肤浅,但这么做的在于去了解该协议的目的和用途,心中有个大的概念,而后在大致的阅读下该协议"rfc"文档的大体描述和结构。
需要说明的是在大多数情况下,一个完整的协议栈都有好几个协议组成,所以也有1个或若干个"rfc"文档要去学习和了解,但切记不用把所有"rfc"文档都读的相当仔细和完全明白后再去做,我们的目的在于只把握协议栈的框架和大概信息。
所以,这个阶段是基础准备阶段。

二,设计协议栈结构
这个阶段也是最核心、最重要的一个阶段,可以说,开发成功与否的关键也全在这个阶段。我们在第一个阶段的基础上,明白了要开发的协议栈的功能及其相关协议后,我们就要来设计这个协议栈框架的实现,一般有注意如下几方面:
1,功能性:这个很自然,如能实现功能还做什么
2,可扩展:协议栈最好划分出内核和外围模块,利于将来扩展和维护
3,模块独立:协议栈内核和外围模块尽量独立,减少耦合
这个阶段虽然说起来容易,但做起来去要看个人的能力和水平,包括代码的机构、风格、易维护、易移植、稳定、健壮性等等。所以,如果连基本程序都写不好,没有好的代码风格和没有把握大结构能力的,最好还是请别人帮忙。
注释:协议栈的设计要看协议栈的特点,比如有的协议栈是对称的(比如rtsp流控协议),有些是不对称的(比如http协议),各有各特点,所以在把握大结构的同时要针对各自的特点来设计。

三,编码开发
框架完成后,开始丰满核心模块和构建基本的外围模块。通常这阶段需要搭建好开发环境,便测试便修改。
注释:很重要的工作,ethereal(抓包软件),做协议这个是一定要用熟的。

四,测试与维护
基本上到这个阶段,协议栈的开发工作就OK了,剩下的就是测试、维护,调整代码,加强协议栈的稳定性和健壮性。

你可能感兴趣的:(C/C++,Unix,Network,Programming)