网络协议工程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

在分布式系统中,协议是协调分布式系统中并行进程间数据交换的一组规则。在计算机网络中,简单的协议定义是:“为进行网络中的数据交换而建立的规则、标准或约定。”从协议的定义中我们可以看出,协议是计算机网络与数据通信的核心,它使得我们能通过网络随心所欲地交换各种各样的信息。

通信与计算机的结合导致了计算机网络的诞生。随着计算机网络由简单的、面向终端的网络发展到复杂的、以通信子网为中心的网络,网络协议也得到了快速发展。网络协议由简单到复杂,协议开发也实现了由非工程化的方法到工程化的转变,由此产生了协议工程(Protocol Engineering)。

协议工程是指集成化、形式化的协议开发过程。“集成化”是指协议开发的各个阶段(设计、验证、实现和测试),在技术上前后衔接,并在同一个开发系统中完成。“形式化”是指用形式描述技术连接协议开发的各个阶段。协议工程旨在减少协议开发中潜在的错误,提高协议开发的效率和质量。随着网络规模和网络应用的发展,网络协议的复杂性也相应增大。早期的非正规的协议开发技术不能完全适应这种复杂的协议开发。20世纪80年代初,开始将已在软件工程方面取得的成功经验用于协议开发过程,逐渐形成了协议工程的概念。协议工程活动主要包括:协议设计、协议规范的形式描述、协议验证、协议实现和协议测试,其中协议规范的形式描述是协议工程活动的基础。

与协议有关的课程比较多,如计算机网络、数据通信、分布式系统。但是,有关分布式系统、计算机网络或数据通信的教材一般只涉及一些被广泛接受并被一些国际标准化组织标准化了的协议,而没有完整地描述协议开发的完整过程和方法。本书的主要目的是使读者熟悉协议开发过程中涉及的一些基本概念、方法和技术,而不介绍具体的网络协议,尽管在介绍基本原理和方法时可能会涉及某些具体协议。可以将本书介绍的这些方法和技术应用到分布式系统、操作系统、网络协议等的开发过程当中。通过这些基本内容的学习,了解和掌握工程化的协议开发技术。

全书共七章,以协议工程活动涉及的各种技术为主线,以介绍基本原理为原则。第1章主要介绍网络协议、网络协议工程的基本概念。第2章主要介绍协议设计技术,这里的设计是指“根据协议的需求说明构造协议的非形式描述文本(经过非形式的验证分析)的过程”。本章除了介绍一般的协议设计原理之外,还着重介绍了协议设计中涉及比较多的差错控制技术和流量控制技术,这些技术是从众多网络协议中总结出来的,有着比较重要的实用价值,这也是本书区别于其他与网络协议工程有关的书籍的特色之一。第3、4章主要介绍协议工程中最重要的一门技术——形式描述技术,介绍了目前一些主流的形式描述模型和形式描述语言,如FSM、TL、CSP、SDL、LOTOS、ESTELLE,除了介绍每一种形式描述技术的基本概念外,还通过具体的例子来说明它们的应用。第5章介绍协议验证技术,主要涉及协议验证的基本方法、算法。第6章介绍著名的协议分析验证工具SPIN,内容包括SPIN验证器所使用的形式描述语言PROMELA、SPIN工作原理及应用实例。第7章介绍协议工程中最难、工业上又非常需要的协议的一致性测试技术,包括一致性测试的基本原理、一致性测试模型、一致性测试描述语言TTCN、测试集生成算法等。

本书可作为高等学校网络工程、计算机、通信工程等专业的网络协议工程、协议设计与分析、通信软件开发等相关课程高年级本科生和研究生的教材,参考学时为50~60学时。学习本门课程之前,读者最好已了解或掌握有关计算机网络、操作系统等课程的内容。因此,建议在大学四年级下学期或在研究生阶段开设本课程。本书也可作为网络研究和开发人员的自学教材和参考书。

从1999年起,作者一直在解放军理工大学指挥自动化学院主讲研究生(博士、硕士)秋季学期的“网络协议工程”课程,本书的主体内容就是在这门课程已有讲义的基础上编写而成的。本课程经过十几年的教学实践,深受学生的好评。

在本书的编写过程中,谢希仁教授提供了协议形式描述、差错控制、流量控制方面的部分资料,并对本书的许多内容提出了宝贵意见,张兴元教授、王金双博士提供了第5章有关协议验证方法的部分资料,这里一并表示诚挚的感谢。解放军理工大学指挥自动化学院历届研修“网络协议工程”课程的研究生们在课程学习过程中的讨论、作业对于作者确定本书的内容帮助很大,在此不能一一列举他们的姓名,谨以此书的出版来表达作者对他们的感谢。本书也得到了军队“2110”工程建设项目的资助。

由于网络协议工程涉及的内容比较广,加之作者水平的限制,书中难免存在各种缺点和错误,敬请读者批评指正。

编著者

wulifa@vip.163.com