面向对象的网络协议 (20).pdf

面向对象的网络协议 (20).pdf

ID:52701804

大小:289.61 KB

页数:4页

时间:2020-03-29

面向对象的网络协议 (20).pdf_第1页
面向对象的网络协议 (20).pdf_第2页
面向对象的网络协议 (20).pdf_第3页
面向对象的网络协议 (20).pdf_第4页
资源描述:

《面向对象的网络协议 (20).pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、下载第16章协议操作系统一般说来,协议操作系统安排各种不同协议的处理;为协议的实现提供专门的设施,如定时器、缓冲和映射表;支持相邻的协议实体、网络设备和用户进程间的通信。协议操作系统的例子有:嵌入UNIX操作系统的STREAMS软件包(Ritchie,1984);x-Kernel方法(HutchinsonandPeterson,1991)。本章研究Channels,它是一个协议操作系统,尤其是它能实现可动态配置的通信软件(Boeckingetal.,1995;SchalzmayrandBoecking

2、,1995)。Channels是以C++编写的(Stroustrup,1991),目前,它作为一个共享的C++运行程序库,能被任何应用程序所连接。Channels为协议的实现提供了一个高层的程序设计平台。它包含用于消息、定时器和映射表的函数库。例如,消息程序库简化了诸如封装、分段、分合、拼接和保持副本之类的基本的协议操作。虽然Channels是为简化含有网络协议的通信通道(channel)的实现而设计的,但是它能实现任何类型的通道。它也能为不同的应用构建通道,例如,用于本地进程间通信的具有消息传递能力

3、的通道,用于在应用进程与网络设备之间进行远程通信的网络协议通道,或者用于一个多媒体存储设备与一个网络访问设备之间进行远程设备存取的通道。16.1模型一个运行着的Channels程序抽象地称为通道服务器。服务器允许通道的客户们通过一个通信通道交换消息来相互协作。一个客户以某种透明的方式代表任何类型的外部对象,例如应用程序或者设备驱动程序,一个通道代表一组功能模块,在客户之间移动的消息通过这些模块被传递(见图16-1)。每个模块在把所收到的消息转发给下一个模块之前,会对该消息执行一个特定的操作。为了取得所

4、要求的通道能力,客户能自由地定义通道模块的类型、数目和布局。在MCS构架中,模块能用来实现服务、协议功能和协议机制对象。客户模块通道分解模块模块客户图16-1通道模型16.1.1模块模块是一个封装了特定功能的对象,如通信协议中的差错控制和加密功能,这些功能只174计计第三部分案例分析下载能通过一个预先定义的操作集进行访问。此外,所有模块具有相同的过程调用接口,但它们会封装不同的功能。然而,与用户接口的模块会需要和拥有一些附加的操作。如果客户和接口模块之间的界面与模块之间的普通通信不相同的话,接口模块也

5、要负责作适当的修改和进行所需的转换。16.1.2模块类模块以模块类作为模板被实际创建。一个类描述了具有相同数据结构和操作集的模块族。通过使用C++继承机制,从已存在的类中可以派生出新的模块类。Channels定义了一个基本模块类,所有应用的专用模块类都必须从它派生出来。基本模块类定义了一组用来创建、删除和控制一个模块的操作,以及允许在模块和相邻模块之间交换信息的操作。由于具有统一的模块接口,模块能被Channels统一处理,也能被程序员自由组合。16.1.3模块排序为了简化在一个模块布局(通道)中所进

6、行的定位,我们引入以下的约定和术语。我们把位于Channels之上或之下的客户分别称为用户客户或提供者客户。用户客户通常代表应用进程,提供者客户代表设备驱动程序。因此,通道中的模块是从用户客户到提供者客户排次序的。从一个模块的观点来看,下一个较高的模块称为用户模块,下一个较低的模块称为提供者模块。模块间用户/提供者关系通常用来描述在用户和提供者客户之间的信息流。用于控制目的的模块间信息流(即创建、删除、失败通知)是基于父/子关系模型的。一个模块如果它控制一个或多个子模块的话,称为父模块。一个模块如果它

7、被其他模块,即它的父模块控制的话,称为子模块。每个子模块在一个时刻只能有一个父模块。注意,一个模块在同一时刻会起不同的作用,即用户模块、提供者模块、父模块和子模块。在一个通道中模块的排序和关系示于图16-2。用户客户通用户模块道父模块模块子模块提供者模块提供者客户图16-2模块间关系第16章协议操作系统计计175下载16.1.4模块间通信对象中的模块之间所交换信息叫消息。封装在一个消息中的信息只能通过一组已定义的操作进行访问和操纵。通过调用模块的一个通信操作,能使消息在模块间传递。发送模块(发送者)调

8、用接收模块(接收者)相关的通信操作。伴随着一个通信操作传递消息时,访问权力也从发送者转移到了接收者。这样,从发送者的观点来看,在操作完成时,该消息就离开它了。为了使一个被传递的消息很容易地被区分出是由它的父模块、子模块、用户模块或提供者模块发送的,每个模块拥有四个通信操作:pntcall、kidcall、usrcall和pdrcall。1.usrcall和pdrcall一个模块的usrcall操作是由该模块的一个用户模块调用的,它的pdrcall操作是由

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。