收藏 分享(赏)

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

上传人:无敌 文档编号:375494 上传时间:2018-04-02 格式:PPT 页数:54 大小:536KB
下载 相关 举报
7协议工程之协议实现技术.ppt_第1页
第1页 / 共54页
7协议工程之协议实现技术.ppt_第2页
第2页 / 共54页
7协议工程之协议实现技术.ppt_第3页
第3页 / 共54页
7协议工程之协议实现技术.ppt_第4页
第4页 / 共54页
7协议工程之协议实现技术.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

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

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

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

4、工作,这包括计算机硬件结构和I/O总线的详细了解,操作系统结构和操作系统服务的详细了解等等。(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)步的设计方法,那么与实现环

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

8、工完成。协议代码的这种生成方法称之为协议代码的半自动生成技术。 关于协议代码半自动生成技术是否值得深入研究的问题,人们尚有不同的看法。然而,半自动生成技术显然有如下一些好处:,第七章 协议实现技术,(1)利用同一个翻译程序从同一个协议规范中产生的协议代码总是一致的,它不随协议实现者的不同而不同。这就是说,所有协议实现者都能够获得一份相同的协议代码。虽然这一部分协议代码只占总代码的50%左右,但它包括协议的主体部分。它确定了协议的所有逻辑关系,因此它为协议的不同实现版本的互连提供了良好的基础。(2)协议规范的更新修改不会给协议实现者带来太多的麻烦,它只要重新运行一次翻译程序就可以了。(3)由此减

9、少手工编程的错误,缩短网络软件的开发周期,提高网络软件可维护性。,第七章 协议实现技术,目前,世界上已开发了多种协议代码半生成软件,它们大都基于ESTELLE,LOTOS和SDL语言,翻译后的协议代码大都为C代码。下面简单介绍EDS(Estelle Development System)中协议代码半自动生成的基本过程33,它将协议代码半自动生成过程分为四步。,ESTELLE半自动生成过程可用图7.2表示,图中.e表示类型为.e 的文件,.m表示类型为.m文件。,f,第七章 协议实现技术,1.协议规范的预处理 用形式描述语言描述的协议规范中往往存在许多没有具体数值的符号定义。例如用ESTELLE

10、描述的AB协议中(参见第四章4.2.4) ,常数low,high,retran-time未给出具体数值,预处理要求实现者给出具体数值。又例如,在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、队列等)。模块体文件包含模块体内所有函数、过程的代码,除模块体原有的

12、函数和过程定义之外,模块体的每一个转换都翻译成过程。,第七章 协议实现技术,第七章 协议实现技术,第七章 协议实现技术,3.手工程序的编写 凡是与系统相关的部分(通讯机制、缓冲器管理、文件访问、访问控制等等)必须由协议实现者根据实现环境手工编写。4.执行代玛的产生 上述所有C程序文件编译后链接成一个或几个系统可执行的文件,每个可执行的文件对应于一个进程或用户启动的实用程序。,第七章 协议实现技术,7.3 模块通讯的实现方法 ESTELLE模块之间的通讯的实现很大程度上依赖于操作系统所提供的服务。在VAX/VMS环境中,如果两个模块体分别用两个进程实现,那么VMS所提供的进程通讯服务就成为模块通

13、讯实现的基础。VAX/VMS提供的进程通讯机制包括邮箱、共享存贮区、事件、共享文件,其中邮箱是常用的通讯方法。,第七章 协议实现技术,邮箱是VMS的一种伪设备,用户程序通过标准的QIO服务就可以读写邮箱。邮箱名是系统逻辑符号,为所有进程所认识。当多个进程对名字相同的邮箱进行读写时,它们实际上就进行通讯。下面列出有关邮箱服务和c语言调用。(1)定义邮箱名$DESCRIPTOP(mbx_name,”MBX_NAME”);mbx_name为放置邮箱名字符串MBX_NAME的变量。,第七章 协议实现技术,(2) 定义邮箱通道int mbx_ch;mbx_ch为32位的长字,它放置邮箱通道号。(3) 创

14、建邮箱通道sys$crembx(1,VMS系统服务crembx创建一个邮箱(如果该邮箱不存在),并赋于一个通道号,&表示传递变量的地址值。,第七章 协议实现技术,(4) QIO操作sys$qio(0,mbx_ch,IO$_WRITEVBLK,0,0,0,切断用户程序和邮箱之间建立的通路。,第七章 协议实现技术,熟悉了VMS邮箱的使用方法,我们就很容易找到怎样实现ESTELLE模块之间通讯的实现途径。下面简述邮箱服务和ESTELLE模块通讯语句之间对应关系。(1) channel定义一个channel对应一个VMS邮箱,channel名用$DESCRIPTOR来说明,channel定义中交互用过

15、程表示,每个过程负责向邮箱发出一个邮件,邮件内容包括交互名和传递的参数。下面的例子说明AB协议channel N-access-point定义翻译成C语言的情况,第七章 协议实现技术,第七章 协议实现技术,第七章 协议实现技术,第七章 协议实现技术,7.4 数据缓冲技术 协议数据单元(PDU )在机器中的存贮以及上下层协议实体之间的传递是通过缓冲器来实现的,因此缓冲器的使用、分配和管理成为协议实现中关键技术之一。 数据缓冲技术涉及三个问题:存贮空间的利用率,对协议执行速度的影响,对协议机制和网络性能的影响。(1)存贮空间利用率 协议数据单元的大小不是固定的,小到几个字节,大到数千个字节。如果按

16、最大的单元固定划分缓冲器,对于小报文,存贮空间利用率很低。一个网络中总是存在许多用户,在多用户情况下,一个机器中的逻辑链路数是随用户而动态变化的。如果按照最大用户数给每条逻辑链路分配固定的缓冲器,那么在用户少的情况下,存贮空间浪费较大。,第七章 协议实现技术,(2)协议执行速度 协议数据单元在上下层的传递可采用两种方法:缓冲器指针传递法和缓冲器复制法。很显然,前者的额外开销小,协议执行速度高。问题(l)和(2)是有矛盾的。为了提高存贮空间利用率,缓冲器长度设定要小,但对于大数据单元则需要多个缓冲器来容纳,多个缓冲器容纳一个数据单元的处理将给软件带来许多麻烦。(3)协议机制和网络性能 缓冲器是网

17、络的最重要的资源,许多协议机制的执行依赖于缓冲器的可用度。例如,传输层在实行窗口流控制时,发送窗口的宽度是由对方的接收能力决定的(主要是可用的缓冲器的数口)。对于有路由功能的网络层协议实体来说,缓冲器的分配管理算法与网络拥塞控制策略和死锁防止方法密切相关。,第七章 协议实现技术,7.4.1缓冲器指针传递方法 数据单元在上下层协议实体之间的传递采用缓冲器指针传递方法时所要解决的一个重要问题是数据单元的分段与合段。例如,当会晤层的一个协议数据单元SPDU(session protocol data unit)用指针传递方法送给传输层协议实体后,可能要将它分成三段,即一个TSDU变成三个TPDU(t

18、ransport protocol data unit),这里的TSDU(transport service data unit)就是SPDU。由于传输层必须给每段数据添加一个传输层报文头TH(transport head),因此除第一个TPDU之后,后两个TPDU的形成都避免不了数据的复制,图7.3示出这一个过程。,图7.3 数据分段引起数据复制,第七章 协议实现技术,为了解决分段引起的数据复制,我们可以采用这样的一种方法:如果设传输层允许的TPDU最大长度为l,它的报文头TH最大长度为n,那么会晤层可使用长度为l的多个缓冲器,将一个SPDU分割成多个长度小于(l-n)的段分别放在不同的缓冲

19、器中,然后将缓冲器链传递给传输层,图7.4示出缓冲器链传递方法。,图7.4缓冲器链传递,第七章 协议实现技术,上述方法仍然有一个缺点,即会晤层交给传输层的缓冲器,其头部必须留足够的空间以便传输层(还包括网络层及底层)填写它的报文头。这样不但存储空间有浪费,而且缓冲器指针要随报文头的添加数而修改。图7.5所示的方法中,各层协议头使用专门的小缓冲器,用户数据分放在多个大缓冲器中。,图7.5用户数据和报文头分别用不同的缓冲器,第七章 协议实现技术,7.4.2共享缓冲区的分配和管理为了提高存储空间的利用率,人们往往采用共享缓冲器的方法。图7.6为共享缓冲区示意图。传输层提供n条逻辑链路服务,每个应用层

20、协议实体(如a,b,c)通过表示层协议实体P和会晤层协议实体S使用一条逻辑链路。N条逻辑链路共享发送缓冲区. 例如当应用层实体a要发送一个报文时,它从发送缓冲区获取一个或多个缓冲器,然后将装载报文的缓冲链逐层传递给P层,S层,传输层和网络层。网络层将报文从指定通讯网络或线路发出之后,将空缓冲器归给发送缓冲区。接收缓冲区向各个通讯网络端口或点对点线路端口提供接收缓冲器。装填有接收报文的缓冲器首先由网络层处理,网络层或将缓冲器上交传输层处理(如果报文的目的地址是本地地址),或将缓冲器交给另外的通讯网络端口转发(如果报文的目的地址不是本地结点),或将缓冲器归还给接收缓冲区(如果报文是网络层报文)。,

21、图7.6共享缓冲区,第七章 协议实现技术,共享缓冲区固然可以提高存储空间利用率,但如果没有合理的分配管理算法,将带来严重的副作用。第一个严重的副作用是缓冲器的枯竭。当某条逻辑链路通讯流量特别大时,它可能独占所有发送缓冲器,以致其它应用层协议实体不能获得缓冲器,造成缓冲器枯竭现象。第二个严重的副作用是不合理的接收缓冲器分配管理算法将会造成网络死锁现象。,第七章 协议实现技术,本节讨论缓冲器的公平分配问题,下节讨论接收缓冲器分配管理与网络性能的关系。 对于发送缓冲器,最常用的分配算法是平方根法。设发送缓冲区所能提供的缓冲器数目为B,当前活跃的逻辑链路数为n,那么每条链路所能占用的发送缓冲器的最高限

22、额不应大于B/ 。 对于接收缓冲器,缓冲器的占用者的概念不同于发送缓冲器。当一个通讯子网接收一个报文,并将报文放入缓冲器之后并不能立刻确定该缓冲器由谁占用。装填接收报文的缓冲器经由网络层处理之后,报文的占用者就确定了,第七章 协议实现技术,例如,当图7.6中的net1收到一个报文并将缓冲器交网络层之后;网络层处理该报文,如果该报文向net2转发,那么缓冲器占用者是net2;如果该报文上交传输层,那么缓冲器的占用者是本地结点。这样,如果网络层有路由功能,并且它支持m路输出线路(通讯子网端口),那么接收缓冲器要在m+1个对象中分配;如果网络层没有路由功能,那么所有接收缓冲区都归本地结点所有。如果本

23、地结点当前有n条活跃逻辑链路,那么对于分配给本地结点的那份接收缓冲器再按n个对象分配(或平均分配,或按平方根分配)。,第七章 协议实现技术,7.4.3 接收缓冲器的分配管理如果网络层有路由功能,那么接收缓冲区的分配管理算法就比较复杂,不合理的分配算法还将产生死锁等副作用。下面分别讨论三个副作用及解决办法。1.直接死锁(direct deadlock) 假定接收缓冲区的分配是任意的,即每一条输出线路端口可以占用任意多缓冲器,直至接收缓冲区枯竭为止,那么图7.7所示的直接死锁现象就可能出现。图中,由于结点A的所有接收缓冲器已被端口a所占用,它不能再接收b的报文,而B的所有缓冲器已被端口b所占用,它

24、也不能接收A发出的报文,死锁发生!直接死锁产生的原因是双方接收缓冲区同时枯竭,解决的办法是避免接收缓冲区枯竭。假定结点的接收缓冲区的缓冲器总数为C,对于有m条输出线路(端口)同时活跃的情况,各条输出线路所能占用的接收缓冲器限额应小于Ct=C/(m+1),本地结点看作一路输出,它所分配的限额也为Ct。按照这种平均法则分配接收缓冲器枯竭现象永不会发生,直接死锁就消除了。,第七章 协议实现技术,图7.7直接死锁,第七章 协议实现技术,2.间接死锁(indirect deadlock) 即便是对输出线路所占用的缓冲器进行限制图7.8所示的死锁还可能发生。这种由多个结点的输出队列所形成的环路死锁称为间接

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

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

27、个队列q1,q2,q3。q1放1类报文(到达目的结点的链路数为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.交通流量控制 接收缓冲区的分配管理与网络报文流量控制有关,或者说某些交通流量控制算法是通过接收缓冲器的

28、分配管理来实现的。其中最常用的做法是对不同类别的报文实行优先级别控制(优先界别高的报文可获得多的接收缓冲器),以提高网络流通量,减少交通堵塞发生率。例如,当采用前向链分类法时,如果使类别低的报文优先级别高(即1类报文优先于2类报文)就能使接近于目的结点报文尽快离开网络,避免交通堵塞。,第七章 协议实现技术,7.5协议并行处理技术 随着数据通讯速率的提高,计算机网络各层协议的执行速度也必须提高。例如,当数据传输速率为1Gbps(1000Mbps)时,如果传输层的平均报文长度为128字节,那么它每秒要处理一百万个报文。如果每个报文的处理要花费50条指令(不包括CRC校验),那么传输层协议处理器的速

29、度应大于50Mips。如果传输层报文包含CRC码,处理器速度要更高(约100Mips)。MIPS-Million Instructions Per Second 每秒百万条指令,第七章 协议实现技术,提高协议执行速度的办法之一是协议并行处理技术,即用多个CPU并行执行某层协议。 文献【14】以传输层协议为例,定义了三种粒度(grains)不同的协议并行处理;粗粒度(coarse grain)并行,中粒度(medium grain)并行和细粒度(fine grain)并行。 按粗粒度并行处理协议时,协议实体按功能划分成多个任务,各个任务分配给不同的CPU处理。例如,传输层协议可划分成联接处理,数

30、据接收处理。数据发送处理等多个任务。如果协议功能划分更细一点(如图3.16描述的ISO TP4数据发送模型那样),这些任务可分配给更多的CPU执行。,第七章 协议实现技术,按中较度并行处理协议时,多个输人报文分配给多个CPU处理。输入报文在多个CPU中分配的方法有两种:随机分配和轮循分配。对于随机分配方法,当一个输入报文来到时,如果处理器池子中有空闲的处理器,则随机地占用一个处理器处理该报文;如果处理器池子中没有空闲的处理器,该报文则进人等待队列。对于轮循分配法,输人报文轮询分配法,输入报文按先后次序轮循地分配给多个处理器。例如,设处理器池子有5个CPU,第1号报文分配给CPU1,第2号报文分

31、配给CPU2,第6号报文分配CPU1, 按细粒度并行处理协议时。多个处理器同时处理一个报文。例如,多个处理器同时分析处理一个报文头时,每个处理器分析报文头的一个字段。,第七章 协议实现技术,粗粒度并行处理易于实现,这是因为各个任务界限清晰,相关性小。但粗粒度并行度小,速度提高有限。细粒度可获得很高并行度,但实现困难。中粒度并行处理技术兼有两者优点,值得人们深人研究。,第七章 协议实现技术,作为例子,图7.10示出传输层报文发送的并行模型,图7.11示出传输层报文接收的并行模型。图7.10中,会晤层交给传输层的报文流(TSDU流)按轮循法则分配绘m个处理器(P1,P2,Pm),并放在各个处理器的

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

33、ime Delay)指报文从一个传愉层协议实体到另外一个传愉层协议实体之间来回传送一次的延迟时问,它是传愉层窗口流控制的重要参数。当两台机器距1000千米时,RTD近似于10ms。在数据传输1Gbps时,一个长度为512字节的报文只需4us传送时间,这意味着发送方可在RTD=10ms时间内连续发生2500个报文。如果要最大限度地利用高速数据信道,那么发送窗口应大于2500。,第七章 协议实现技术,如此大的发送窗口会带来什么问题呢?首先,传输层协议实休必须要有足够的存贮空间容纳2500个报文,在认可报文来到之前,它们都停留在Retran队列中。其次每个报文设置一个超时时钟。那么传愉层需要2500

34、个定时器口如果超时时间设定为1ms,每个超时时钟要耗费3条指令,那么专门负责定时器的处理器的速度必须大于10Mips。另外一个问题,按照传输层协议,如界某个报文有错,它后面的所有报文都重发(极端下,2500个报文都重发,这将大大降低信道的利用率。,第七章 协议实现技术,2报文处理时间差异问题 虽然报文按轮询方法分配给各个处理器,但由于报文内容的差异,报文处理时间长度差异就会很大(例如,连接报文的处理时间比正常数据报文的处理时间就会大很多;错误报文的处理时间就比正常报文的处理时间常)。处理时间的差异必定产生后到报文处理的现象,例如顺序号大的数据报文先于顺序号小的数据报文处理,断联报文的处理先于最

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 说明文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报