网络协议工程
尹洪胜
2011年4月
2
第一章第一章 协议工程概论协议工程概论
概论
协议:是某种活动或者行为所遵守的准则或规则。
在计算机世界中,协议是计算机之间或者计算机与
其它设备之间用来通信的规则或语言。
协议工程学:是研究协议设计,协议验证、协议实
现、协议测试等技术的一门新的计算机学科。
协议工程研究目的:旨在减少协议开发中潜在地错
误,提高协议开发效率,促进协议标准化地发展
3
第一章第一章 协议工程概论协议工程概论
早期的通信及协议
协议最早诞生在通信系统中,协议设计 的历
史与通信本身一样古老。
为实现远距离信息传递需要两个条件:
(1)要有发送/接收信号的 装置——硬件
(2)一套通信规则(协议)——软件
4
第一章第一章 协议工程概论协议工程概论
早期的通信系统
(1)击鼓传令
(2)烽火通信
(3) 光通信
(4)电磁通信
协议缺陷的教训
1861年8月发生在克莱顿隧道中的事故,在
英里长的隧道两端,一天24小时有人值班。事
故造成21人死亡,176人受伤
5
第一章第一章 协议工程概论协议工程概论
通信协议
(1)列车允许从A——B运行。
(2)当列车A进入后,A端向B端发“火车在隧道中”消息。
(3)当火车在B端出现时,B端信号员向A端信号员发“隧道
空”消息。
(4)为安全起见,可以让A端信号员向B端信号员发“火车离
开隧道?”询问消息
A
B
6
第一章第一章 协议工程概论协议工程概论
协议及系统的相互作用
分层系统模型
7
第一章第一章 协议工程概论协议工程概论
系统的相互作用
在n层协议中存在着多种相互作用
(1)局部系统与通道系统之间相互作用
(2)局部系统之间的相互作用
(3)全局系统与外部环境之间相互作用
在n层内,系统相互作用按照确定的规则进行,
这些系统作用规则的总和就构成n层协议。
8
第一章第一章 协议工程概论协议工程概论
事件与活动
局部系统(协议实体),是系统相互作用的主角,
它的活动是由事件驱动的.对局部系统而言,存在
两类事件:
(1)内部事件
局部系统内部产生的事件,如时钟超时
(2)外部事件
局部系统外部产生的事件。如收到一个服务请求,通道收
到一个报文。
9
第一章第一章 协议工程概论协议工程概论
协议及协议的描述
基于上述系统相互作用的概念,给协议如下定义:对于n
层全局系统,局部系统之间相互作用的规则以及它们与外部环
境和通道系统相互作用的规则的总和就是n层协议。
协议必须以某种方式描述(文字、图形等),协议描述至少包
括以下内容:
(1)局部系统之间交换的报文的确切定义
(2)各个局部系统在一个事件产生时进行什么样的活动。
(3)各个局部系统怎样通过观察作用点使用通道系统提供的
服务。
(4)各个局部系统怎样通过观察作用点向外部提供服务。
10
第一章第一章 协议工程概论协议工程概论
OSI模型
应用层
表示层
会话层
传输层
网络层
链路层
物理层
应用层
表示层
会话层
传输层
网络层
链路层
物理层
接收信息的进程发送信息的进程
七层参考模型
数据流的物理传输
层间的逻辑通信
每一层执
行功能并
将信息送
往下一层
每一层执
行功能并
将信息送
往上一层
1111
第一章第一章 协议工程概论协议工程概论
1 应用层 Application Layer 简称 A层
7 表示层 Presentation Layer 简称 P层
5 会话层 Session Layer 简称 S层
4 传输层 Transport Layer 简称 T层
3 网络层 Network Layer 简称 N层
2 链路层 Data link Layer 简称DL层
1 物理层 Physical Layer 简称PL层
12
第一章第一章 协议工程概论协议工程概论
(1)协议实体(Protocol entity )
协议实体简称实体,一个实体就是一个局部系统,n
层实体记作(n)模型各层实体分别记为
:
A-entity;P-entity;S-entity;T-entity
N-entity;DL-entity;PL-entity
13
第一章第一章 协议工程概论协议工程概论
(2)协议机(protocol machine)
协议机是协议实体的代名词,缩写:PM;n层协议机记为
(n)PM;OSI模型各层协议机记为APM,PPM,SPM
,TPM,NPM,DLPM,PLPM
14
第一章第一章 协议工程概论协议工程概论
(3)服务
n层服务是n层全局系统统一行为的一种体现。n层
服务向(n+1)层外部环境提供服务,外部环境使
用n层服务,完成通讯任务。n层的服务记为(n)
-service,OSI 模型各层服务分别记为:A-
Service,P-Service,S-Service,T-
Service,N-service,DL-Service,PL-
service
15
第一章第一章 协议工程概论协议工程概论
(4)服务提供者(service provider)
n层服务的提供者就是n层的局部系统(协议机)
(5)服务的使用者(service user)
n层服务的使用者就是(n+1)层的局部系统,但
不一定是协议机,例如应用层服务的使用者不一定是
协议机,n层服务的使用者称为n层用户。
16
第一章第一章 协议工程概论协议工程概论
(6)服务访问(SAP)
服务访问点(Service Access Point)是服务使用者
和服务提供者的界面(观察作用点),n层服务访问点
(n)SAP,OSI模型各层的服务访问点分别记为:ASAP
,PSAP,SSAP,TSAP,NSAP,DLSAP,PLSAP。
(7) 服务原语(service primitive)
服务原语是服务使用者和提供者相互作用的原子行动描
述。所谓原子行动是不能部分执行的行动,要么完全执行,
要么不执行。服务原语描述服务提供者和服务使用者一次原
子交互作用的名称以及各参数的含义。一条服务原语的执行
在访问点引起一个事件,这个事件是一种原子事件
(Atomic event)。
17
第一章第一章 协议工程概论协议工程概论
(8)服务规范(Service Spacification)
确切定义了服务使用者和服务提供者之间相互
使用的规则。(例如:服务的执行序列等)
(9)地址(Address)
地址就是服务访问点标识(SAP identifier),n
层地址记为(n)-address,OSI模型层的地址
分别记为:
A-address;P-address;S-address;T-
address N-address;DL-address;PL-
address
18
第一章第一章 协议工程概论协议工程概论
(10)协议(Protocol)
协议是一组n层实体层执行n层功能中相互通信行为
的规则和格式。n层协议记为(n)-protocol,
OSI各层协议分别记为:
A-protocol;P-protocol;S-protocol;
T-protocol;N-protocol
DL-protocol PL-protocol
19
第一章第一章 协议工程概论协议工程概论
(11)协议规范(Protocol Specification)
协议规范用某种语言确切定义了实体之间通信规
则和交换的报文的格式,以及实体利用低层服务的规
则
(12)协议数据单元(PDU)
协议数据单元(Protocol Data Unit)是实体之
间交换的报文。n层协议数据单元记作:(n)PDU
,OSI模型各层的PDU分别记为:
APDU,PPDU,SPDU,TPDU,NPDU,
DLPDU,PLPDU
20
第一章第一章 协议工程概论协议工程概论
(13)服务数据单元(SDU)
服务数据单元(Service Data Unit)是服务
提供者和服务使用者之间传递的数据单元,n层服务
数据单元记作(n)SDU,OSI各层的SDU分别记
作ASDU,PSDU,SSDU,TSDU,NSDU,
DLSDU,PLSDU。
(14)协议控制信息(PCI)
协议控制信息(Protocol Control
Information)是实体本身产生的控制信息,它是
PDU中一部分,n层协议控制信息记作(n)PCI
21
第一章第一章 协议工程概论协议工程概论
APCI,PPCI,TPCI,SPCI,NPCI, DLPCI,
PLPCI,(n-
1)SDU=(n)PDU=(n)SDU+(n)PCI
22
第一章第一章 协议工程概论协议工程概论
协议的开发过程
协议的开发包括六个过程
协议设计(PDU格式,协议机制,服务原语等设计)
协议描述,用某种语言确切地描述协议元素
协议的验证与性能分析,对所描述的协议验证其正确性,分
析其性能;
协议实现,根据描述的协议产生网络硬软件
协议测试,对实现的协议进行测试
协议维护,对网络软硬件进行维护
23
第一章第一章 协议工程概论协议工程概论
N层全局系统是一个分布系统,它的行为完全由
n层协议所支配,分布系统的复杂性就是协议的复杂
性.复杂性体现在:
(1)分布性:多个局部系统分布在不同的机器上.
(2)并发性:各个局部系统并发工作
(3)异步性:各个局部系统不能同时观察到事件产生
(4)实时性:局部系统的活动有严格的时序要求和时
间要求。
(5)通道系统的不稳定性
24
第一章第一章 协议工程概论协议工程概论
协议开发困难:
(1)网络软件规模大,开发周期长
(2)潜在错误多,排除困难
(3)协议标准化保障困难
(4)软件一致性差
(5)软件可维护性低
由于上述原因,协议开发过程急需要工程化,
提高网络软件生产率,促进标准化的实现,提高
网络软件的可靠性和可维护性。
25
第一章第一章 协议工程概论协议工程概论
26
第一章第一章 协议工程概论协议工程概论
协议工程的研究内容
协议工程的定义剖析
一体化的、形式化的协议开发过程叫——协议
工程。
使协议开发一体化的、形式化的的理论和技术
以及协议工程系统建造技术——协议开发技术(协
议技术或协议工程学)
27
第一章第一章 协议工程概论协议工程概论
一体化:协议的设计、验证、实现和测试,在技
术上前后衔接,并在同一个开发系统中完成。
形式化:用形式描述语言FDL(Formal
Description Language)连接协议开发的各个阶
段。协议的表示形式有:非形式描述文本;形式描述
文本
28
第一章第一章 协议工程概论协议工程概论
协议工程系统包括许多软件工具,包括许多协
议表示。在协议工程中,协议的表示形式有:
非形式描述文本:用自然语言和图表。
形式描述文本:用FDL描述的协议,严密,无二
意,可符号执行,可转换成程序设计语言。
29
第一章第一章 协议工程概论协议工程概论
与机器无关的代码:是由形式描述文本翻译过来的程序。
(pascal,c等),是因为协议的抽象性。
实现代码(Implementation Code):指协议 实现后的
最终代码。(50%)
测试套具(Test Suit):一组关于协议测试和测试数据的文
件,它由协议的形式文本产生。测试套具是用另外一种语言描
述的(测试描述语言TTCN)。
转换(Transformation)系统:将协议的非形式化描述文本
转换成形式描述文本。
验证(Verification)系统:对协议进行验证检查,发现并
修改潜在错误。
30
第一章第一章 协议工程概论协议工程概论
性能分析(Performance Analysis):对协议性能进行
分析评价,修改协议,提高性能。
翻译(Translation)系统:将形式描述文本翻译成源程序
代码。
实现(Implementation)系统:实现是 具体操作系统所
提供的程序开发环境。
测试(Test)系统:测试套具在该系统中 执行,对实现代
码进行测试,分析结果 ,检测错误 ,将错误反馈给实现系
统,修改实现代码。
测试套具生成(Test Suit Generation) 系统:根据协议
的形式描述文件产生测试程序(描述怎样测试)和测试数据,
该系统部分功能可由人工完成。
31
第一章第一章 协议工程概论协议工程概论
一个完整的协议工程系统
32
第一章第一章 协议工程概论协议工程概论
协议工程技术可归结为5个方面
(1)协议设计技术(构造、综合、开发)
(2)协议模型及形式描述技术
(3)协议验证分析技术
(4)协议实现技术
(5)协议测试技术
33
第一章第一章 协议工程概论协议工程概论
协议设计技术
协议设计不同于协议标准的制定,协议标准
制定是设计出协议所必须完成的功能和应该提供
的服务,然后求得在某个范围内的认可和统一协
议标准是用自然语言描述的。
协议设计要求有不同含义:
(1)是指协议设计过程
(2)亦指协议经过严格验证和性能分析之后就
完成了设计任务。
34
第一章第一章 协议工程概论协议工程概论
无论哪种含义的协议设计,都涉及两个共同技术问
题:
(1)环境分析方法
(2)协议设计方法
n层全局系统就是N层协议设计环境,N层环境的
分析包括四个内容:
(1)n层实体实现哪些功能?
(2)向(n+1)层提供什么样服务
(3)对n层言,(n-1)层的全局系统被映射成通
道,这个通道的特性是什么。
(4)n层包括多少实体,它们采取什么方式
35
第一章第一章 协议工程概论协议工程概论
协议模型及形式描述技术
协议的形式描述是指采用某种形式描述语言模
型无二义地描述协议的各元素。包括语法,语义和
时序。以便验证所设计协议的逻辑正确性和是否具
有良好的性质。
协议模型及形式描述技术涉及两个研究课题
(1)用什么数学模型和逻辑模型表示n层局部系统,
通道系统,全局系统以及他们之间的相互作用。
(2)设计基于一种或多种数学逻辑的形式描述语言
(FDL)
36
第一章第一章 协议工程概论协议工程概论
协议验证和分析技术
协议的正确性验证,试图在协议开发的前期最
大限度地检测和纠正协议错误和缺陷。
这些错误包括:死锁、活锁、不可执行。
协议验证技术可分三类:
(1)可达性分析
(2)逻辑证明
(3)模拟验证
37
第一章第一章 协议工程概论协议工程概论
协议性能分析
主要的性能指标包括:吞吐量和时延。性能分
析的目的旨在改善协议机制,提高执行效率,可用
数据分析方法和模拟方法来执行。
38
第一章第一章 协议工程概论协议工程概论
协议实现技术
协议实现是抽取面向实现的协议功能描述,
把所设计的协议用程序语言或硬件方式变成可执
行代码,它与实现环境,例如计算机操作系统,
通信媒体以及编程工具直接相关。
39
第一章第一章 协议工程概论协议工程概论
协议测试技术
协议测试分为一致性测试和综合测试两大部分。
一致性测试验证用协议实现得到的软件代码是否和协
议设计中所要求的功能相一致,综合测试网络各部分
是否按照协议规定协调工作。一致性测试和综合测试
都必须在分布式环境或网络环境下进行。这一点不同
于软件设计。
40
第一章第一章 协议工程概论协议工程概论
协议开发工具
协议开发工具分为三类
(1)协议设计工具
(2)协议实现工具
(3)协议测试工具
协议设计工具
协议设计工具包括:文本生成、静态分析、性能
分析、文本转换工具五种
41
第一章第一章 协议工程概论协议工程概论
协议实现工具
协议实现工具主要由各种翻译程序和子程序库组
成,它向协议实现者提供一组半自动化工具。这
类工具包括翻译程序,协议数据单元支撑程序,
子程序库三种。
42
第一章第一章 协议工程概论协议工程概论
协议测试工具
协议测试工具包括测试系统本身,以及分析工具和
测试套具