购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 协议

1.1.1 定义

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。 这些 规则明确规定了所交换的数据的格式及有关的同步问题。这里所说的 同步 不是狭义的(即同频或同频同相)而是广义的,即在一定的条件下应当发生什么事件(如发送一个应答信息),因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定即称为网络协议。1967年4月,英格兰国家物理实验室(NPL,National Physical Laboratory)的R.A.Scantlebury和K.A.Bartlett在一份备忘录 中最早将“协议(Protocol)”一词用于描述数据通信过程。

协议的定义类似于语言的定义。从语言的角度来看,网络协议主要有三个要素:语法、语义和同步。下面我们来进一步解释这三个要素的含义。

在语言学中,语义是指语言组成成分(词、句等)的含义。语法是指这些语言组成成分之间以什么样的关系结合而构成语句或语言,也即语言的结构方法和构成规则。在网络协议中,可以将交换的报文(在OSI体系结构中称为协议数据单元或PDU )分为两种:用于传输用户数据的数据报文和用于协议控制的控制报文。网络协议中的语法体现为数据报文中的控制信息(通常在报文的首部)和各种控制报文的结构、格式,也即规定了报文的长度,报文中划分多少个域(Field),每个域的名称、意义、数据类型、长度等。其中,报文中各个域的类型、长度及相互间的位置、顺序关系则构成了词法。词法也是语法的一个组成部分。

网络协议的语义可以理解为协议数据报文中的控制信息和控制报文所约定的含义,即需要发出何种控制信息、完成何种动作及做出何种响应。例如,报文首部控制信息中的目的地址信息指明了报文的目的地,接收到此报文的网络结点均将其作为路由选择的依据,因而规定在首部控制信息中,在给定域给出目标结点地址就是一种语义。又如,为了实现有连接的传输服务,设计了一套实现连接的控制报文。发起连接方构造一个请求连接的协议控制报文,这个“请求连接”就是该控制报文的语义。收端收到这个控制报文后,根据已知的格式分析规定域中报文的类型码就可了解这个“请求连接”的语义,从而给出“允许连接”或“拒绝连接”的响应。“允许连接”报文和“拒绝连接”报文的格式和语义也是在协议中约定好的,通信双方通过这些约定语义的控制报文按一定时序关系的交换,即可实现建立连接的功能和提供有连接服务。在协议中常使用的“数据收到确认”报文(ACK报文)、“出错通知”报文、“紧急通知”报文等均可看成具有特定语义的网络协议的语句,即协议的组成部分。

在网络协议中,简单地说,同步是指事件实现顺序的详细说明。具体来说,同步是指通信过程中各种控制报文传送的顺序关系,例如,“允许连接”或“拒绝连接”报文必须作为请求连接报文的一种响应来发送,“拆除连接”报文也必须在建立连接后的某种条件下发送等。这种控制报文发送的时序关系,也决定了通信双方所处的通信状态(发送状态、接收状态、等待状态等)的制约关系,所以常用通信双方的有限状态机的方法来描述网络协议。在有些文献中,也将这种同步关系视为协议语法的一部分。

大量的研制经验表明,对于非常复杂的计算机网络协议,其结构应采用层次式的。在计算机网络中,将计算机网络的各层及其协议的集合,称为网络的体系结构(architecture)。比较著名的网络体系结构有:ISO的开放系统互连参考模型(OSI/RM),IBM公司的系统网络体系结构(SNA,System Network Architecture),DEC公司 的分布式系统体系结构(DNA,Digital Network Architecture),IETF的TCP/IP体系结构等。在体系结构的框架下,网络协议可定义为:为网络中互相通信的对等实体间进行数据交换而建立的规则、标准或约定。实体是指任何可以发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。位于不同子系统的同一层次内交互的实体,就构成了对等实体。网络协议是计算机网络不可缺少的组成部分,它保证实体在计算机网络中有条不紊地交换数据。

本书的研究对象—网络协议,还可进一步延伸为计算机通信协议,即“协议是计算机网络和分布式系统中各种通信实体或进程间相互交换信息时必须遵守的一组规则或约定”。网络协议工程中的许多技术和方法均可应用到分布式系统中的进程间通信协议的设计活动当中。

1.1.2 协议的标准化

我们知道,标准化工作的好坏对一种技术的发展有着很大的影响。缺乏国际标准将会使技术的发展处于比较混乱的状态,而盲目自由竞争的结果很可能形成多种技术体制并存且互不兼容的状态(如过去形成的彩电三大制式),给用户带来较大的不便。但国际标准的制定又是一个非常复杂的问题,这里既有很多技术问题,但也有很多是属于非技术问题,如不同厂商之间经济利益的争夺问题等。标准制定的时机也很重要。标准制定得过早,由于技术还没有发展到成熟水平,会使技术已经陈旧的标准限制了产品的技术水平。其结果是不得不再次修订标准,造成浪费。反之,若标准制定得太迟,也会使技术的发展无章可循,这会造成产品的互不兼容,因而也会影响技术的发展。

协议的标准化对于计算机通信的发展有着重要的作用,它使得不同厂商生产的产品之间能够互相通信。在计算机通信领域,大部分协议标准是由4个组织制定的,即ISO,CCITT,ITU-T和IETF。

1. 国际标准化组织ISO)

ISO(International Standards Organization)是一个涉及范围很广的国际标准开发机构,包括很多政府的或民间的标准研究机构,如美国的国家标准研究所(ANSI)。ISO下属多个技术委员会(TC,Technical Committees),TC又由多个分委员会(SC,Subcommittees)组成。每个SC下有多个工作组(WG,Working Groups)。例如,TC97主要负责与计算机有关的标准的制定,TC97/SC6主要处理电信领域的标准,TC97/SC6/WG1则主要负责数据链路协议标准。一个ISO标准从最初的提名到真正发行要经历7个阶段。

ISO制定的很多标准是与另一个标准化组织—国际电工技术委员会(IEC,International Electrotechnical Commission)合作制定的。IEC关心的主要是电子和电气工程标准。在信息技术领域,虽然IEC强调的是硬件,而ISO强调的是软件,但它们的职能在很多地方有所重叠。1987年由这两个组织联合成立了联合技术委员会(JTC,Joint Technical Committee),而ISO的TC97同时宣告解散。代替旧的ISO的TC97组织是ISO/IEC JTC1,而其下属的各分委员会(SC)的名称仍用原来TC97中的各分委员会的序号。这个委员会负责信息技术领域文档的开发,这些文档最终可能成为ISO及IEC的标准。

ISO制定的开放系统互连参考模型OSI/RM是一个著名的网络体系结构(ISO 7498),它是由TC97/SC16负责制定的。虽然OSI/RM最终没有流行起来,但其中的很多协议标准已被广泛采纳。

著名的形式描述语言(LOTOS,Language Of Temporal Ordering Specifications)和ESTELLE(Extended State Transition Language)是由ISO TC97/SC21/WG1的2个不同子工作组分别制定的,它们得到了广泛应用。

2. CCITT和ITU-T

国际电报电话咨询委员会(CCITT,International Telephone and Telegraph Consultative Committee)最开始主要从通信的角度考虑一些标准的制定。随着科学技术的发展,通信与信息处理的界限变得比较模糊了。于是,通信与信息处理就都成为CCITT与ISO TC97共同关心的领域。ISO制定的很多标准,CCITT均有与之相对应的标准。例如,CCITT的建议书X.200就是开放系统互连参考模型,它与ISO7498基本上是相同的。著名的X.25标准就是由CCITT制定的。CCITT开发的形式描述语言(SDL,Specification and Description Language)广泛用于交换系统的描述。

ITU-T是国际电信联盟(ITU,International Telecommunication Union)下属的电信标准部,它的成员主要是各国政府组织和得到许可的私人运营商。ITU-T成立于1993年3月1日,主要任务是制定电话、电报和数据通信接口的技术建议。它取代了原国际电报电话咨询委员会(CCITT),其章程和目标与ITU-T的基本一致。目前仍常遇到CCITT建议,例如,CCITT X.25,虽然自1993年起这些建议都打上了ITU-T标记。

ITU-T的实际工作是在研究组(SG,Study Group)完成的,通常有400人。为了能够顺利工作,研究组又分成了很多工作组(WG,Working Group),然后又再分为专家小组(Expert Team),最后分成特别小组(Ad Hoc Group)。

另一个国际标准化组织—国际信息处理联盟(IFIP,International Federation for Information Processing),虽然不直接参与协议的标准化,但它的主要目的之一是作为CCITT和ISO之间沟通的桥梁。IFIP成立于1960年,它经常组织一些协议形式化描述与验证方面的国际会议,例如,Joint International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols(FORTE)and Protocol Specification, Testingand Verification(PSTV)。

3. IETF

因特网在制定其标准上很有特色:面向公众,所有的技术文档都可从因特网上免费下载,而且任何人都可以用电子邮件随时发表对某个文档的意见或建议。这种方式对因特网的迅速发展影响很大。

与因特网有关的标准均由IETF制定。1992年由于因特网不再归美国政府管辖,因此成立了一个国际性组织叫做因特网协会(ISOC,Internet Society),以便对因特网进行全面管理并在世界范围内促进其发展和使用。ISOC下面有一个技术组织叫做因特网体系结构委员会(IAB,Internet Architecture Board),它负责管理因特网有关协议的开发。IAB下面又设有两个工程部:

(1)因特网工程部(IETF,Internet Engineering Task Force)。IETF是由许多工作组(WG,Working Group)组成的论坛(Forum),具体工作由因特网工程指导小组(IESG,Internet Engineering Steering Group)管理。这些工作组划分为若干个领域(area),每个领域集中研究某一特定的短期和中期的工程问题,主要是针对协议的开发和标准化。

(2)因特网研究部(IRTF,Internet Research Task Force)。IRTF是由一些研究组(RG,Research Group)组成的论坛,具体工作由因特网研究指导小组(IRSG,Internet Research Steering Group)管理。IRTF的任务是进行理论方面的研究和开发一些需要长期考虑的问题。

所有的因特网标准都是以RFC的形式在因特网上发表的。RFC(Request For Comments)的意思就是“请求评论”。所有的RFC文档都可从因特网上免费下载。但应注意,并非所有的RFC文档都是因特网标准,因为任何人都可以通过RFC发表他对因特网的某些方面提出的建议,但最后只有其中一小部分能变成标准。RFC按收到时间的先后编上序号(即RFC××××,这里的××××是阿拉伯数字)。一个RFC文档更新后就使用一个新的编号,并在文档中指出原来老编号的RFC文档已成为陈旧的。例如,2001年8月公布了因特网正式协议标准RFC 2900,此文档注明:RFC 2800已变成陈旧的。但到了该年的11月,RFC 2900文档又更新了,新文档的编号是RFC 3000。新文档又注明:RFC 2900已变成陈旧的。现有的RFC文档中有不少已变为陈旧的,在参考时应当注意。

制定因特网的正式标准要经过以下的4个阶段:

因特网草案(Internet Draft)——在这个阶段还不是RFC文档。

建议标准(Proposed Standard)——从这个阶段开始就成为RFC文档。

草案标准(Draft Standard)。

因特网标准(Internet Standard)。

因特网草案的有效期只有6个月。只有到了建议标准阶段才以RFC文档形式发表。除了以上几种RFC外,还有三种RFC,即历史的、实验的和提供信息的。历史的RFC或者被后来的规约所取代,或者从未到达必要的成熟等级,因而未能成为因特网标准。实验的RFC表示其工作属于正在实验的情况。实验的RFC不能够在任何实用的因特网服务中实现。提供信息的RFC包括与因特网有关的、一般的、历史的或指导的信息。这种RFC通常是由非因特网组织中的某个人(如设备的卖主)写出的。 YEiS3P/JrpDvIuWrHNDAfS3jbprUHeIbeJCYw1Q1Vn2k7GASwLhRBwAi2VTJvOZC

点击中间区域
呼出菜单
上一章
目录
下一章
×