7协议工程之协议实现技术

上传人:无*** 文档编号:189790723 上传时间:2023-02-24 格式:PPTX 页数:54 大小:1.54MB
收藏 版权申诉 举报 下载
7协议工程之协议实现技术_第1页
第1页 / 共54页
7协议工程之协议实现技术_第2页
第2页 / 共54页
7协议工程之协议实现技术_第3页
第3页 / 共54页
资源描述:

《7协议工程之协议实现技术》由会员分享,可在线阅读,更多相关《7协议工程之协议实现技术(54页珍藏版)》请在装配图网上搜索。

1、第七章 协议实现技术7.1概述 计算机网络各层协议实现结果的集合形成计算机网络软件和硬件。计算机网络软件和计算机操作系统密切相关,它往往是操作系统的一局部,计算机网络硬件和计算机硬件系统密切相关,它是计算机I/O系统的一局部。图7.1为DEC公司的DNA在VAX/VMS中的实现结构。DNADigital Network Architecture是DEC公司所采用的各层网络协议的总称,它在VAX/VMS之中实现后软件和硬件的总称为DECNET/VMS。第七章 协议实现技术第七章 协议实现技术 DNA的物理层和数据链路层协议实现于网络适配器device adaptor中,DECnet/VMS包括许

2、多网络适配器,即DNA支持许多种低层通信协议。DNA的网络层和传输层协议主要实现于伪驱动程序NETDRIVER中,它和网络适配器的设备驱动程序(device driver)接口。DNA的高层协议以网络目标模块形式或实用程序的形式实现,DECnet/VMS包括许多这样的目标模块object和实用程序(utility),这表示它向用户提供丰富的网络效劳。这里,NETDRIVER和device driver是VMS内核一局部,DNA高层和VMS的文件系统,作业调度,用户登陆login等密切联系,网络适配器是VAX硬件系统的一局部,计算机网络各层协议在其它机器和操作系统中实现形式和实现结构都类似于DE

3、Cnet/VMS。第七章 协议实现技术 计算机网络协议是复杂的协议,将它们付诸实现更是一个复杂的技术过程,这是因为计算机网络硬件和软件与计算机硬件操作系统的关系非常密切的原故。一个计算机网络的研制要经历下述七步工作。(1)网络体系结构的制定 网络体系结构Network Architecture的制定包括许多决策工作:网络支持哪些通讯线路和局域网?向用户提供哪些网络效劳?网络划分成多少层?各层的协议功能是什么?各层协议标准和效劳标准是什么?第七章 协议实现技术(2)实现环境的研究 实现环境指计算机的机型和运行的操作系统。实现环境的研究是协议实现者必须进行的一项工作,这包括计算机硬件结构和I/O总

4、线的详细了解,操作系统结构和操作系统效劳的详细了解等等。(3)实现结构的设计 在(1)和(2)的工作完成之后,协议设计者就可以着手网络实现结构设计。实现结构的设计包括一系列的决策工作:哪几层协议在网络适配器中实现,哪几层协议在操作系统中实现?操作系统的网络软件划分成几个进程,每个进程实现哪几层协议?如果几层协议在同一个进程实现时,各层协议之间怎样相互调用?为了提高网络软件执行效率和连接响应速度应采用哪些措施等等。第七章 协议实现技术(4)各层协议实体之间通讯机制设计 当n层协议和(n-1)层协议在不同的进程或驱动程序之间实现时,n层协议实体和n-1层协议实体之间通讯必须借助操作系统效劳来实现。

5、当n层协议和(n-1)层协议在同一个进程或驱动程序之内实现时,两层协议实体之间通讯可直接借助于程序设计语言(c,pascal)来实现。(5)数据缓冲方案的设计 协议数据单元PDU(protocol data unit)在各层协议实体之间的传递是通过缓冲器来实现的。数据缓冲方案的设计包括一系列的决策工作:缓冲器中的数据怎样传递?是否采用共享缓冲器方案?缓冲器定义多大?缓冲器怎样分配管理?缓冲器的分配管理怎样对网络流控制和交通拥塞控制施加影响等等。第七章 协议实现技术(6)各层协议代码的产生协议代码可分为两局部:与实现环境相关的协议代码和独立于实现环境的协议代码。前者必须由协议实现者手工完成,后者

6、可手工完成也可以借助形式语言的编辑程序如ESTELLE compiler自动产生。(7)网络软件的调试由于网络软件的分布性,异步性和实时性,传统的静态调试工具是不适应的,因此设计者必须研制多种动态调试工具以提高网络软件调试效率。这些调试工具包括各种模拟环境,闭环测试软件,PDU追踪,时间标签,事件记录等。第七章 协议实现技术 限于篇幅,本章只讨论(4)、(5)、(6)步骤的有关问题,首先介绍协议代码半自动生成技术,然后讨论上下层协议实体之间通讯的实现方法,最后讨论数据缓冲技术。如果我们掌握了第(4)和第(5)步的设计方法,那么与实现环境相关的协议代码就可以手工完成了。计算机网络研制工作中第1、

7、2、3和7步工作的讨论请参见文献资料42和34。第七章 协议实现技术7.2 协议代码半自动生成技术 协议代码半自动生成技术试图将协议标准文本用ESTELLE、LOTOS等语言描述)直接转换成协议代码c.pascal等程序设计语言。如果所产生的代码不需要人工修改就可以编译成机器可执行的程序,这是最理想的。但由于计算机网络软件和操作系统结合紧密,这实际上是不现实的。由协议标准直接转换的协议代码只能占全部代码的一局部,约50%左右33,这局部代码称之为独立于实现环境的代码,另外一局部代码由于和实现环境相关,必须由手工完成。协议代码的这种生成方法称之为协议代码的半自动生成技术。关于协议代码半自动生成技

8、术是否值得深入研究的问题,人们尚有不同的看法。然而,半自动生成技术显然有如下一些好处:第七章 协议实现技术1利用同一个翻译程序从同一个协议标准中产生的协议代码总是一致的,它不随协议实现者的不同而不同。这就是说,所有协议实现者都能够获得一份相同的协议代码。虽然这一局部协议代码只占总代码的50%左右,但它包括协议的主体局部。它确定了协议的所有逻辑关系,因此它为协议的不同实现版本的互连提供了良好的根底。2协议标准的更新修改不会给协议实现者带来太多的麻烦,它只要重新运行一次翻译程序就可以了。3由此减少手工编程的错误,缩短网络软件的开发周期,提高网络软件可维护性。第七章 协议实现技术 目前,世界上已开发

9、了多种协议代码半生成软件,它们大都基于ESTELLE,LOTOS和SDL语言,翻译后的协议代码大都为C代码。下面简单介绍EDSEstelle Development System中协议代码半自动生成的根本过程33,它将协议代码半自动生成过程分为四步。ESTELLE半自动生成过程可用图7.2表示,图中.e表示类型为.e 的文件,.m表示类型为.m文件。f第七章 协议实现技术1.协议标准的预处理 用形式描述语言描述的协议标准中往往存在许多没有具体数值的符号定义。例如用ESTELLE描述的AB协议中参见第四章4.2.4),常数low,high,retran-time未给出具体数值,预处理要求实现者给

10、出具体数值。又例如,在ESTELLE:描述的AB协议中,数据类型定义U一data一type是模糊的(它用表示),这要求协议实现者给出它的具体定义如定义为string of characters。预处理要做的工作包括原语primitive的标识等工作。预处理的第二项重要工作是将协议标准文本(.e)分割成三个文件:模块描述文件(.m),实现描述文件(.i)和格式描述文件(.f)。模块描述文件即为原协议标准中的模块头定义和模块体定义。实现描述文件将原协议标准中有关各模块的性质定义,模块之间组织关系描述,模块之间通讯机制描述等全局性内容抽取出来,形成一个描述整个协议的框架文件。格式描述文件完整地描述模

11、块之间报文交换的格式,它也是从原协议标准文件中抽出来的。第七章 协议实现技术2.翻译 预处理后的协议标准直接送入ESTELLE compiler翻译,翻译包括语法校对、C代码生成等工作。对模块体文件,翻译结果是对应于每一个ESTELLE模块体产生一个C代码的模块头文件(head file)和一个C代码的模块体文件(body file)。模块头文件包含模块体内所有数据结构和变量如交互点ip和ep、队列等。模块体文件包含模块体内所有函数、过程的代码,除模块体原有的函数和过程定义之外,模块体的每一个转换都翻译成过程。第七章 协议实现技术第七章 协议实现技术第七章 协议实现技术3.手工程序的编写 但凡

12、与系统相关的局部通讯机制、缓冲器管理、文件访问、访问控制等等)必须由协议实现者根据实现环境手工编写。4.执行代玛的产生 上述所有C程序文件编译后链接成一个或几个系统可执行的文件,每个可执行的文件对应于一个进程或用户启动的实用程序。第七章 协议实现技术 7.3 模块通讯的实现方法 ESTELLE模块之间的通讯的实现很大程度上依赖于操作系统所提供的效劳。在VAX/VMS环境中,如果两个模块体分别用两个进程实现,那么VMS所提供的进程通讯效劳就成为模块通讯实现的根底。VAX/VMS提供的进程通讯机制包括邮箱、共享存贮区、事件、共享文件,其中邮箱是常用的通讯方法。第七章 协议实现技术n邮箱是VMS的一

13、种伪设备,用户程序通过标准的QIO效劳就可以读写邮箱。邮箱名是系统逻辑符号,为所有进程所认识。当多个进程对名字相同的邮箱进行读写时,它们实际上就进行通讯。下面列出有关邮箱效劳和c语言调用。n1定义邮箱名n$DESCRIPTOP(mbx_name,MBX_NAME);nmbx_name为放置邮箱名字符串MBX_NAME的变量。第七章 协议实现技术(2)定义邮箱通道int mbx_ch;mbx_ch为32位的长字,它放置邮箱通道号。(3)创立邮箱通道sys$crembx(1,&mbx_ch,0,0,0,0,&mbx_name);VMS系统效劳crembx创立一个邮箱如果该邮箱不存在,并赋于一个通道

14、号,&表示传递变量的地址值。第七章 协议实现技术(4)QIO操作sys$qio(0,mbx_ch,IO$_WRITEVBLK,0,0,0,&mail,mail_size,0,0,0,0);sys$qio(0,mbx_ch,IO$_READVBLK,0,0,0,&buf_size,0,0,0,0);第一个QIO效劳记作QIO(write)向邮箱发一个邮件,第二个QIO效劳记作QIO(read)从邮箱读一个邮件,mail为发出的邮件,buf为放置接收邮件的缓冲器。QIO(read)可以通过AST(AsyncTrap)形成异步地进行类似中断方式,这给用户程序的设计带来很多好处。(5)取消邮箱sys$

15、delmbx(mbx_ch);切断用户程序和邮箱之间建立的通路。第七章 协议实现技术熟悉了VMS邮箱的使用方法,我们就很容易找到怎样实现ESTELLE模块之间通讯的实现途径。下面简述邮箱效劳和ESTELLE模块通讯语句之间对应关系。(1)channel定义一个channel对应一个VMS邮箱,channel名用$DESCRIPTOR来说明,channel定义中交互用过程表示,每个过程负责向邮箱发出一个邮件,邮件内容包括交互名和传递的参数。下面的例子说明AB协议channel N-access-point定义翻译成C语言的情况 第七章 协议实现技术第七章 协议实现技术第七章 协议实现技术第七章

16、协议实现技术7.4 数据缓冲技术数据缓冲技术 协议数据单元(PDU)在机器中的存贮以及上下层协议实体之间的传递是通过缓冲器来实现的,因此缓冲器的使用、分配和管理成为协议实现中关键技术之一。数据缓冲技术涉及三个问题:存贮空间的利用率,对协议执行速度的影响,对协议机制和网络性能的影响。(1)存贮空间利用率 协议数据单元的大小不是固定的,小到几个字节,大到数千个字节。如果按最大的单元固定划分缓冲器,对于小报文,存贮空间利用率很低。一个网络中总是存在许多用户,在多用户情况下,一个机器中的逻辑链路数是随用户而动态变化的。如果按照最大用户数给每条逻辑链路分配固定的缓冲器,那么在用户少的情况下,存贮空间浪费

17、较大。第七章 协议实现技术(2)协议执行速度 协议数据单元在上下层的传递可采用两种方法:缓冲器指针传递法和缓冲器复制法。很显然,前者的额外开销小,协议执行速度高。问题(l)和(2)是有矛盾的。为了提高存贮空间利用率,缓冲器长度设定要小,但对于大数据单元那么需要多个缓冲器来容纳,多个缓冲器容纳一个数据单元的处理将给软件带来许多麻烦。(3)协议机制和网络性能 缓冲器是网络的最重要的资源,许多协议机制的执行依赖于缓冲器的可用度。例如,传输层在实行窗口流控制时,发送窗口的宽度是由对方的接收能力决定的主要是可用的缓冲器的数口。对于有路由功能的网络层协议实体来说,缓冲器的分配管理算法与网络拥塞控制策略和死

18、锁防止方法密切相关。第七章 协议实现技术7.4.1缓冲器指针传递方法 数据单元在上下层协议实体之间的传递采用缓冲器指针传递方法时所要解决的一个重要问题是数据单元的分段与合段。例如,当会晤层的一个协议数据单元SPDU(session protocol data unit)用指针传递方法送给传输层协议实体后,可能要将它分成三段,即一个TSDU变成三个TPDU(transport protocol data unit),这里的TSDU(transport service data unit)就是SPDU。由于传输层必须给每段数据添加一个传输层报文头TH(transport head),因此除第一个T

19、PDU之后,后两个TPDU的形成都防止不了数据的复制,图7.3示出这一个过程。图图7.3 数据分段引起数据复制数据分段引起数据复制第七章 协议实现技术为了解决分段引起的数据复制,我们可以采用这样的一种方法:如果设传输层允许的TPDU最大长度为l,它的报文头TH最大长度为n,那么会晤层可使用长度为l的多个缓冲器,将一个SPDU分割成多个长度小于l-n的段分别放在不同的缓冲器中,然后将缓冲器链传递给传输层,图7.4示出缓冲器链传递方法。图图7.4缓冲器链传递缓冲器链传递第七章 协议实现技术上述方法仍然有一个缺点,即会晤层交给传输层的缓冲器,其头部必须留足够的空间以便传输层还包括网络层及底层填写它的

20、报文头。这样不但存储空间有浪费,而且缓冲器指针要随报文头的添加数而修改。图7.5所示的方法中,各层协议头使用专门的小缓冲器,用户数据分放在多个大缓冲器中。图图7.5用户数据和报文头分别用不同的缓冲器用户数据和报文头分别用不同的缓冲器第七章 协议实现技术7.4.2共享缓冲区的分配和管理共享缓冲区的分配和管理为了提高存储空间的利用率,人们往往采用共享缓冲器的方法。为了提高存储空间的利用率,人们往往采用共享缓冲器的方法。图图7.6为共享缓冲区示意图。传输层提供为共享缓冲区示意图。传输层提供n条逻辑链路效劳,每个条逻辑链路效劳,每个应用层协议实体如应用层协议实体如a,b,c通过表示层协议实体通过表示层

21、协议实体P和会晤层协议和会晤层协议实体实体S使用一条逻辑链路。使用一条逻辑链路。N条逻辑链路共享发送缓冲区条逻辑链路共享发送缓冲区.例如当应用层实体例如当应用层实体a要发送一个报文时,它从发送缓冲区获取要发送一个报文时,它从发送缓冲区获取一个或多个缓冲器,然后将装载报文的缓冲链逐层传递给一个或多个缓冲器,然后将装载报文的缓冲链逐层传递给P层,层,S层,传输层和网络层。网络层将报文从指定通讯网络或线路发层,传输层和网络层。网络层将报文从指定通讯网络或线路发出之后,将空缓冲器归给发送缓冲区。接收缓冲区向各个通讯出之后,将空缓冲器归给发送缓冲区。接收缓冲区向各个通讯网络端口或点对点线路端口提供接收缓

22、冲器。装填有接收报文网络端口或点对点线路端口提供接收缓冲器。装填有接收报文的缓冲器首先由网络层处理,网络层或将缓冲器上交传输层处的缓冲器首先由网络层处理,网络层或将缓冲器上交传输层处理如果报文的目的地址是本地地址,或将缓冲器交给另外理如果报文的目的地址是本地地址,或将缓冲器交给另外的通讯网络端口转发如果报文的目的地址不是本地结点,的通讯网络端口转发如果报文的目的地址不是本地结点,或将缓冲器归还给接收缓冲区如果报文是网络层报文。或将缓冲器归还给接收缓冲区如果报文是网络层报文。图7.6共享缓冲区第七章 协议实现技术共享缓冲区固然可以提高存储空间利用率,但如果没有合理的分配管理算法,将带来严重的副作

23、用。第一个严重的副作用是缓冲器的枯竭。当某条逻辑链路通讯流量特别大时,它可能独占所有发送缓冲器,以致其它应用层协议实体不能获得缓冲器,造成缓冲器枯竭现象。第二个严重的副作用是不合理的接收缓冲器分配管理算法将会造成网络死锁现象。第七章 协议实现技术 本节讨论缓冲器的公平分配问题,下节讨论接收缓冲器分配管理与网络性能的关系。对于发送缓冲器,最常用的分配算法是平方根法。设发送缓冲区所能提供的缓冲器数目为B,当前活泼的逻辑链路数为n,那么每条链路所能占用的发送缓冲器的最高限额不应大于B/。对于接收缓冲器,缓冲器的占用者的概念不同于发送缓冲器。当一个通讯子网接收一个报文,并将报文放入缓冲器之后并不能立刻

24、确定该缓冲器由谁占用。装填接收报文的缓冲器经由网络层处理之后,报文的占用者就确定了 n第七章 协议实现技术 例如,当图7.6中的net1收到一个报文并将缓冲器交网络层之后;网络层处理该报文,如果该报文向net2转发,那么缓冲器占用者是net2;如果该报文上交传输层,那么缓冲器的占用者是本地结点。这样,如果网络层有路由功能,并且它支持m路输出线路通讯子网端口,那么接收缓冲器要在m+1个对象中分配;如果网络层没有路由功能,那么所有接收缓冲区都归本地结点所有。如果本地结点当前有n条活泼逻辑链路,那么对于分配给本地结点的那份接收缓冲器再按n个对象分配或平均分配,或按平方根分配。第七章 协议实现技术7.

25、4.3 接收缓冲器的分配管理接收缓冲器的分配管理如果网络层有路由功能,那么接收缓冲区的分配管理算法就比较复杂,不如果网络层有路由功能,那么接收缓冲区的分配管理算法就比较复杂,不合理的分配算法还将产生死锁等副作用。下面分别讨论三个副作用及解决合理的分配算法还将产生死锁等副作用。下面分别讨论三个副作用及解决方法。方法。1.直接死锁直接死锁direct deadlock 假定接收缓冲区的分配是任意的,即每一条输出线路端口可以占用任假定接收缓冲区的分配是任意的,即每一条输出线路端口可以占用任意多缓冲器,直至接收缓冲区枯竭为止,那么图意多缓冲器,直至接收缓冲区枯竭为止,那么图7.7所示的直接死锁现象就所

26、示的直接死锁现象就可能出现。图中,由于结点可能出现。图中,由于结点A的所有接收缓冲器已被端口的所有接收缓冲器已被端口a所占用,它不能所占用,它不能再接收再接收b的报文,而的报文,而B的所有缓冲器已被端口的所有缓冲器已被端口b所占用,它也不能接收所占用,它也不能接收A发出发出的报文,死锁发生!直接死锁产生的原因是双方接收缓冲区同时枯竭,解的报文,死锁发生!直接死锁产生的原因是双方接收缓冲区同时枯竭,解决的方法是防止接收缓冲区枯竭。假定结点的接收缓冲区的缓冲器总数为决的方法是防止接收缓冲区枯竭。假定结点的接收缓冲区的缓冲器总数为C,对于有,对于有m条输出线路端口同时活泼的情况,各条输出线路所能占条

27、输出线路端口同时活泼的情况,各条输出线路所能占用的接收缓冲器限额应小于用的接收缓冲器限额应小于Ct=C/m+1,本地结点看作一路输出,它所,本地结点看作一路输出,它所分配的限额也为分配的限额也为Ct。按照这种平均法那么分配接收缓冲器枯竭现象永不会。按照这种平均法那么分配接收缓冲器枯竭现象永不会发生,直接死锁就消除了。发生,直接死锁就消除了。第七章 协议实现技术图7.7直接死锁第七章 协议实现技术2.间接死锁indirect deadlock 即便是对输出线路所占用的缓冲器进行限制图7.8所示的死锁还可能发生。这种由多个结点的输出队列所形成的环路死锁称为间接死锁。间接死锁发生时各个结点的接收缓冲

28、区并没有枯竭。图7.8中,A中的输出线路a的所有报文的目的地址不是B,但必须经过B的端口b转发,由于b的输出队列长度已经到达限额,B无法接收A发来的必须经过端口b转发的报文。由于同样情况,C无法接收B发来的必须经端口c转发的报文,D无法接收C发来的必须经端口d转发的报文,A无法接收D发来必须经端口a转发的报文,死锁发生!第七章 协议实现技术图7.8间接死锁第七章 协议实现技术 间接死锁的解决方法之一基于分类报文概念。网络层处理输入报文时按照一定的分类方法将它们分成不同类别的报文,给每个报文打上类别标记,并按照报文类别分配接收缓冲器的限额。报文分类的第一种方法是按照输出线路进行。例如,假设某结点

29、有三条输出线路a,b,c,当网络层处理报文时发现报文需经线路a转发,那么它的类别为a;经b转发,它的类别就为b。这是最简单的分类法,但不能解决间接死锁问题。第七章 协议实现技术 报文分类的第二种方法是按照报文已走过的链路数或到达目的结点之前还需走过的链路数进行,前者称之为后向链分类法,后者称之为前向分类法。按照前向链分类法,到达目的结点之前还要走n条链路的报文为n类报文,n类报文逻辑上放入n队列。1类报文的目的结点就是邻近结点。按照这种方法对报文分类从根本上消除了图7.8所示的输入队列环路,因此不会发生间接死锁。图7.9中,各个输出端口逻辑上有三个队列q1,q2,q3。q1放1类报文到达目的结

30、点的链路数为1,q2放2类报文,q3放3类报文。当图7.8所示的情况出现时各个结点的q2的长度已到达限额,死锁不会出现,这是因为B能接收A从q2发出的报文,并将报文放入B的q1队列A中的2类报文到达B后变成1类报文。如果假定B的q1队列也已到达限额,但由于B将q1队列中的报文发往C之后,C总是能接收目的结点就是C的报文B的q1队列很快就会倒空死锁就不会出现。第七章 协议实现技术图7.9前向链分类法第七章 协议实现技术3.交通流量控制 接收缓冲区的分配管理与网络报文流量控制有关,或者说某些交通流量控制算法是通过接收缓冲器的分配管理来实现的。其中最常用的做法是对不同类别的报文实行优先级别控制优先界

31、别高的报文可获得多的接收缓冲器,以提高网络流通量,减少交通堵塞发生率。例如,当采用前向链分类法时,如果使类别低的报文优先级别高即1类报文优先于2类报文就能使接近于目的结点报文尽快离开网络,防止交通堵塞。第七章 协议实现技术7.5协议并行处理技术协议并行处理技术 随着数据通讯速率的提高,计算机网络各层协议的执行速随着数据通讯速率的提高,计算机网络各层协议的执行速度也必须提高。例如,当数据传输速率为度也必须提高。例如,当数据传输速率为1Gbps1000Mbps时,如果传输层的平均报文长度为时,如果传输层的平均报文长度为128字节,那么它每秒要处字节,那么它每秒要处理一百万个报文。如果每个报文的处理

32、要花费理一百万个报文。如果每个报文的处理要花费50条指令不条指令不包括包括CRC校验,那么传输层协议处理器的速度应大于校验,那么传输层协议处理器的速度应大于50Mips。如果传输层报文包含。如果传输层报文包含CRC码,处理器速度要更高码,处理器速度要更高约约100Mips。MIPS-Million Instructions Per Second 每秒百万条指令每秒百万条指令第七章 协议实现技术 提高协议执行速度的方法之一是协议并行处理技术,即用多个CPU并行执行某层协议。文献【14】以传输层协议为例,定义了三种粒度grains不同的协议并行处理;粗粒度coarse grain并行,中粒度med

33、ium grain并行和细粒度fine grain并行。按粗粒度并行处理协议时,协议实体按功能划分成多个任务,各个任务分配给不同的CPU处理。例如,传输层协议可划分成联接处理,数据接收处理。数据发送处理等多个任务。如果协议功能划分更细一点如图3.16描述的ISO TP4数据发送模型那样,这些任务可分配给更多的CPU执行。第七章 协议实现技术 按中较度并行处理协议时,多个输人报文分配给多个CPU处理。输入报文在多个CPU中分配的方法有两种:随机分配和轮循分配。对于随机分配方法,当一个输入报文来到时,如果处理器池子中有空闲的处理器,那么随机地占用一个处理器处理该报文;如果处理器池子中没有空闲的处理

34、器,该报文那么进人等待队列。对于轮循分配法,输人报文轮询分配法,输入报文按先后次序轮循地分配给多个处理器。例如,设处理器池子有5个CPU,第1号报文分配给CPU1,第2号报文分配给CPU2,第6号报文分配CPU1,按细粒度并行处理协议时。多个处理器同时处理一个报文。例如,多个处理器同时分析处理一个报文头时,每个处理器分析报文头的一个字段。第七章 协议实现技术n粗粒度并行处理易于实现,这是因为各个任务界限清晰,相关性小。但粗粒度并行度小,速度提高有限。细粒度可获得很高并行度,但实现困难。中粒度并行处理技术兼有两者优点,值得人们深人研究。第七章 协议实现技术 作为例子,图7.10示出传输层报文发送

35、的并行模型,图7.11示出传输层报文接收的并行模型。图7.10中,会晤层交给传输层的报文流TSDU流按轮循法那么分配绘m个处理器P1,P2,Pm,并放在各个处理器的局部存贮器队列q1,12,qm中。报文发出之后,它进入Rctran队列。由处理器R负责报文的重发。图7.11中,网络层交给传输层的输人报文流TPDU流按轮循的方法分配给n个处理器P1,P2,Pn,并放在各个处理器的局部存贮器队列q1,q2,qn中。正确的报文收到之后产生一个ACK信息放人ACK队列。处理器Q专门负责发送入ACK报文。图7.10和图7.11只是一个传输层协议并行处理的模型,将它们付诸实现还必须解决以下一些问题。图7.1

36、0 传输层报文发送并行模型 图7.11 传输层报文接收并行模型第七章 协议实现技术第七章 协议实现技术1发送窗口问题 RTDRound Time Delay指报文从一个传愉层协议实体到另外一个传愉层协议实体之间来回传送一次的延迟时问,它是传愉层窗口流控制的重要参数。当两台机器距1000千米时,RTD近似于10ms。在数据传输1Gbps时,一个长度为512字节的报文只需4us传送时间,这意味着发送方可在RTD=10ms时间内连续发生2500个报文。如果要最大限度地利用高速数据信道,那么发送窗口应大于2500。第七章 协议实现技术如此大的发送窗口会带来什么问题呢?首先,传输层协议实休必须要有足够的

37、存贮空间容纳2500个报文,在认可报文来到之前,它们都停留在Retran队列中。其次每个报文设置一个超时时钟。那么传愉层需要2500个定时器口如果超时时间设定为1ms,每个超时时钟要消耗3条指令,那么专门负责定时器的处理器的速度必须大于10Mips。另外一个问题,按照传输层协议,如界某个报文有错,它后面的所有报文都重发极端下,2500个报文都重发,这将大大降低信道的利用率。第七章 协议实现技术2报文处理时间差异问题 虽然报文按轮询方法分配给各个处理器,但由于报文内容的差异,报文处理时间长度差异就会很大例如,连接报文的处理时间比正常数据报文的处理时间就会大很多;错误报文的处理时间就比正常报文的处

38、理时间常。处理时间的差异必定产生后到报文处理的现象,例如顺序号大的数据报文先于顺序号小的数据报文处理,断联报文的处理先于最后数据报文的处理等等。数据传输要求很好的顺序,如果顺序有混乱,传输层协议认为是一种错误。那么在协议并行处理时,怎样判定数据传输顺序有错还是报文处理时间差异呢?第七章 协议实现技术3联接数据块的共享问题 对于每一条联接传输层实体的共享区中都存在一个联接数据块。联接数据块包含有关联接的所有信息,如源地址,目的地址,联接标识号,联接状态,发送窗口宽度,下一个待接收报文的顺序号等等。当多个处理器同时处理同一条联接的不同报文时,它们必然要访问联接数据块,这就可能引起存贮访问冲突问题。

39、这里,数据一致性是最重要的问题。例如,当每个处理器处理完顺序号为11的输人报文之后,它将下一个待接收报文的顺序号置成12,如果另外一个处理器晚处理顺序号为10的报文,那么它就会将下一个待接收报文的顺序号改变成11。这就引起顺序号的混乱。联接数据块共享还会降低处理速度。第七章 协议实现技术 上述问题的解决要从两方面着手,第一是研究更好的并行处理模型。第二是研究适合于并行处理的协议。上面的同题反映出,现在的传输层协议不适合于并行处理,例如它过份强调数据传输的顺序性;不适应大窗流量控制,重发机制效率低一个报文出错,它后面所有报文重发,无发送速串控制,报文头长度可变等等。为此 。人们提出了一些适合于高速计算机网络以及并行处理的传输层协议,如XTPeXpress Trarsport Protocol,RGPReliaGram transport Protocol等等。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!