《面向对象的网络协议 (19)》由会员分享,可在线阅读,更多相关《面向对象的网络协议 (19)(15页珍藏版)》请在金锄头文库上搜索。
1、下载第15章 系统体系结构本章研究传输与互连软件包( T I P, Boecking,1993a; Boecking and Vi n d e b y, 1 9 9 4 )的体系结构和设计原则。T I P是一个基于模块化和面向对象体系结构的适应性系统,它使应用能配置它们独特的通信服务。在O S I参考模型中,它覆盖的是第四层,即传输层的功能。当前的版本可以在U D P / I P上运行,或直接在AT M上运行。15.1 层和面T I P体系结构由一个层和四个面构成。这些面是 M C S构架中定义的组装面、访问面、控制面和传输面。每个面定义一个服务对象,它们是组装器、访问点、连接端点和数据流源和
2、汇对象(见图1 5 - 1) 。图15-1 TIP的层和面15.2 服务和协议对象T I P的服务对象被结构化为三个子层,示于图 1 5 - 2。最上面的子层包含本地服务对象,负组装面访问面控制面传输面数据流源数据流汇TIP层连接端点访问点组装器TIP服务对象分解协议功能应用接口Sockets+TempoNetglue网络接口图15-2 一个T I P服务对象的分解责应用与T I P之间的接口。最下面的子层包含 T I P与网络间接口的服务对象。中间子层由完成相关协议功能的协议对象构成。最上面的子层中的所有对象组成了 T I P的应用编程接口,称为S o c k e t s + +。最下面的子
3、层中的所有对象完成 T I P网络接口构件,称为N e t g l u e。最后,中间子层的所有对象定义T I P的面向传输的协议,称为Te m p o。15.2.1 Sockets+T I P的应用编程接口称为S o c k e t s + +。它基于尽人皆知的B S D套接字程序设计范型,但做了某些修改。它具有面向对象、平台独立和与协议无关的设计。S o c k e t s + +用C + +实现。S o c k e t s+ +提供的本地服务对象如下: 组装器(CPR) 使应用能配置它们独特的通信服务,一个通信服务由四种对象类组成,分别代表套接字、连接端点、数据流源和数据流汇。 套接字(
4、 S O C )使应用能访问它们各自的通信服务,用来建立和释放具有所配置的能力的连接。 连接端点(CEP) 代表对一个连接进行本地访问,使用应用能控制该连接的配置(如参与者的数目,布局、或相关的服务质量设置) 。 数据流源和数据流汇( S R C、SNK) 代表对一个单向的数据流进行本地访问,每个连接上可以存在多个数据流。在数据流源,应用能发出数据以便传输;在数据流汇,应用能接收所传输的数据。S o c k e t s + +的类层次示于图1 5 - 3。C P R和通信服务( C O M )对象的基类是S O C K E T S。C E P、S R C和S N K是从C O M类派生的。C
5、O M类的引入是为了简化 S o c k e t s + +的实现,使应用能以一个统一的类描述符来处理所有的通信对象。图15-3 Sockets+类层次15.2.2 Te m p oT I P所使用的协议功能是通过分解 Te m p o协议(Boecking, 1992)得到的。Te m p o协议实际上是一个提供可靠的多点连接的传输层协议。由于它为 T I P作了功能分解,它能配置独特的传输服务,提供从可靠的点到点的通信服务到多点到多点通信结构的服务。 Te m p o协议机制被选择和设计成轻量级 ( l i g h t - w e i g h t )的,即以最少的指令路径和控制 P D U
6、的交换(例如确认)就能达到无差错通信。此外,它针对可能的硬件实现平台,保持 P D U格式简单,例如定义了固第15章 系统体系结构计计159下载SOCKETSCPRSOCCEPSRCSNKCOM定长度的头部和尾部,以及允许管道线式处理的字段位置的合理顺序。Te m p o的实现基于第8章和第1 0章描述的服务模型和协议模型。因此, Te m p o被分解成一组协议对象,使得能把这些协议对象组装起来形成服务对象:如Te m p o组装器、Te m p o服务访问点、Te m p o连接端点、Te m p o数据流源和Te m p o数据流汇(见图1 5 - 4) 。为了提供服务,这些对象中的某些
7、对象(连接端点、数据流源和汇)通过一组预先定义的规则、数据格式和功能协调它们的合作,称为协议。在Te m p o服务访问点之间定义了一个服务控制协议;在 Te m p o数据流源和数据流汇之间定义了一个数据流控制协议。目前Te m p o组装器和连接端点对象仅完成本地动作,因此不需要使用协议。服务控制协议负责建立和释放连接,包括建立和释放所有与之相关的数据流。一个数据流提供在源和多个汇之间单向地传输S D U序列(用户数据)的服务。数据流源和数据流汇之间进行协作的语义和语法由数据流控制协议定义。图1 5 - 5给出了由T I P提供的Te m p o协议功能类的层次,说明如下:图15-5 Te
8、 m p o的类层次 分块( B L O C K )对象把多个S D U映射为一个合成的S D U;在相反方向,该对象把一个合成的S D U通过解块变成一系列的S D U。 加校验和( C H E C K )对象对一个给定的S D U计算一个校验和,校验和被追加到 S D U上,在相反的方向,该对象验证在S D U尾部的一个校验和。 组装( C O M P )对象遵照1 5 . 4节“服务组装”中解释的 C o g P i T方法,配置Te m p o服务访问点、连接端点、数据流源和汇对象。 拼接( C O N C AT )对象把多个P D U映射为一个合成的P D U;在相反的方向,该对象把
9、一个合成的P D U分割成一系列的P D U。 服务控制( S V C )对象提供连接建立和释放的功能。160计计第三部分 案 例 分 析下载(N+1)服务访问点服务控制(SVC)SAP建立/验证校验和 (CHECK)(-1) 服务访问点图15-4 一个Te m p o服务访问点 的参考配置TEMPOBLOCKCHECKOMPRATEJITTERCONCATSEGSPLITTRAFFICSVCTRANSFERMUX 传输控制( T R A N S F E R )对象需要两个互补的协同工作的对象,称为发送者 ( S N D )和接收者( R C V );两个对象通过合作以所规定的可靠性级别传输
10、S D U和S D U块;在可靠传输情况下,传输控制对象完成流量和差错控制;我们放弃了对流量和差错控制定义两个分离的功能类,因为它们之间有很强的依赖性。 抖动补偿( J I T T E R )对象平滑相继到达的S D U之间时间间隔的变化。图15-6 Te m p o数据流源和汇的参考配置第15章 系统体系结构计计161下载(N+1) 数据流源(N+1) 数据流汇多路复用 (MUX)多路分解 (MUX)通信量控制 (TRAFFIC)抖动补偿 (JITTER)分块 (BLOCK)解块 (BLOCK)分段 (SEG)重组 (SEG)传输控制 (SND)传输控制 (SND)校验和建立/ 验证(CHE
11、CK)校验和建立/ 验证(CHECK)拼接 (CONCAT)速率控制 (RAET)分流 (SPLIT)(N-1)数据流源(N-1)数据流源(N-1)数据流汇(N-1)数据流汇合流 (SPLIT)分割 (CONCAT)源汇 多路复用( M U X )对象把不同应用发出的S D U合并成一个单一的S D U数据流。在相反方向,该对象完成多路分解功能,即它把一个单一数据流上的S D U转发到它们各自相关的应用去。 速率控制( R AT E )对象调整相继的数据单元(S D U或P D U)间的时间间隔。 分段( S E G )对象把S D U分割成一系列的S D U块,在相反方向,该对象把相关的 S
12、 D U块重组成原来的S D U。 分流( S P L I T )对象把单一数据流上的数据单元( S D U和P D U)分配到多个数据流上,在相反的方向,该对象将这些数据单元再合并成一个单一的数据流。 通信量控制( T R A F F I C )对象监视S D U流,以便检测它们是否违反了通信量合约。上述这些类是用来作为它们所代表的协议功能的基类。协议功能可以用不同的协议机制来实现。这样,每个协议功能类会有多个派生类,它们代表完成同一功能的不同机制。Te m p o服务访问点和一个数据流源/汇的参考配置示于图1 5 - 4和图1 5 - 6。15.2.3 NetglueT I P的网络接口负
13、责增强和统一下层网络的特性,使之达到 Te m p o协议配置中所要求的明确定义网络服务。该接口功能是作为一组 C h a n n e l s模块实现的,这些模块代表 T I P的N e t g l u e构件(Boecking and Vi n d e b y, 1 9 9 4 )。C h a n n e l s是T I P所使用的协议操作系统,我们将在第 1 3章中对它进行解释。网络接口典型的功能是 ,在T I P和下层网络之间完成一些服务能力(比如多点播送)和服务质量的映射。为N e t g l u e所定义的类层次示于图 1 5 - 7。T C P类提供对因特网 T C P服务的访问;
14、U D P类提供对U D P服务的访问。 AT M _ S I G类允许建立AT M连接,在连接建立之后,数据传输是通过AT M _ A A L 5类(见附录B)的对象完成的。图15-7 Netglue的类层次15.3 通信模型和服务能力T I P提供类似于M C S构架中定义的多点连接( B o e c k i n g , 1 9 9 3 b )的通信服务,但在T I P中,关于一个连接中的数据流的布局存在着限制。目前,每个参与者能拥有多个外来数据流,但只有一个外出数据流。T I P的通信模型将在第1 7章中给予更加详细的描述。服务能力从结构上说类似于在 M C S构架中定义的那些能力,即服
15、务质量 ( Q o S )、服务设施( F o S )、服务模式( P o S )。Q o S参数描述关于可靠性和性能方面的通信属性。可靠性参数使应用能定义所要求的用来防范重复、损坏、丢失和乱序的保护级。性能参数使得应用能设置吞吐率(S D U间隔时间和S D U大小) 、时延、抖动、差错率、重放。运用 F o S参数,一个应用指示它所要求的通信方式(例如无证实型连接建立)和设施(例如连接转发设施) 。利用P o S参数,能选择寻址能力,如按组寻址和地址格式。162计计第三部分 案 例 分 析下载NETGLUETCPUDPATM_SIGATM_AAL515.4 服务组装应用的需求通过使用服务能
16、力参数( Q o S、F o S和P o S)进行系统的阐述。这些参数随同服务组装请求一起传递给组装器。组装器配置适当的通信服务对象:套接字(服务访问点) 、连接端点、数据流源和数据流汇。如果成功时,返回给应用一个新的套接字,以后应用能用它来建立一个或多个连接。与同一套接字相关联的连接具有所配置的相同的服务能力。也可以请求一个提供连接建立时带 Q o S协商的通信服务,在这种情况下,连接端点对象和数据流源和汇对象是在连接建立阶段进行配置的。组装器维护一个通信服务对象库,这些对象是由协议工程师预先配置的。此外,每个服务对象所提供的服务能力( Q o S、F o S、P o S)被详细说明和存储起来。为了配置所请求的服务,组装器搜索它的对象库,通过判定所请求的服务能力和所提供的服务能力,寻找最恰当的服务对象。作为代替手工服务组装的另一种可供选择的方案,T I P中协议的配置 (Configuration ofProtocol in TIP, CogPiT)项目研究了自动配置Te m