利用时序安排和头压缩降低分组延迟的方法和设备的制作方法

文档序号:7612864阅读:315来源:国知局
专利名称:利用时序安排和头压缩降低分组延迟的方法和设备的制作方法
背景本发明涉及用于以分组方式传送信息的多路复用通信系统并且特别是,涉及多层网络结构中分组的时序安排和头压缩。
现代通信网传送越来越大量的与实时语音、视频和有关数据相关的分组业务。例如,互联网正看到许多利用比传统电话网连接相对便宜的替代物来发送包括实时语音和视频的各种数据的新应用。从某种程度上越来越强大的计算机安装在个人家庭以及作为各种在线活动,如保持语音会话、听音乐、观看视频剪辑等的焦点的互联网的增殖驱动了在互联网上向实时应用发展的趋势。与在高带宽商业连接上的计算机之间发生的互联网通信不同,典型的家庭中的带宽受限于调制解调器速度、线路质量等造成的连接性限制。
限制带宽的进一步混合的基本问题是因协议头造成的作为分组系统开销的传输的实际信息量的限制。基本的互联网协议被开发为主要用于确保分组每次端到端地准确递交,几乎没有考虑实时问题。
包括如X.25的协议的三层接口结构被开发为用于在较低层控制传输而较高层协议被开发为控制更复杂的功能(参见,“Open SystemsInterconnect(OSI)-New International Standards Architecturesand Protocols for Distributed Information Systems(开放系统互连(OSI)-用于分布式信息系统的新的国际标准结构和协议)”,特殊期刊,IEEE会议录,H.C.Folts和R.des Jardins,eds.,1983年12月,12号,71卷)。根据设计原则,较低层的功能试图对较高层功能是“透明的”并且因此许多可在较低层实现的仅受到较低层硬件和软件保持透明性的能力的限制。在最低层,物理层,协议规范管理设备之间的物理连接,例如,X.21协议。接着,数据链路层规定用于,例如,从较高层接受分组并且将它们放在,例如用于通过物理层传输的HDLC帧中的协议。数据链路层还接受来自物理层的成帧的信息并且将其拆开用于向上传输到网络层。在网络层或分组层,建立多个逻辑连接并且基于几个假设在分组上加上地址,假设包括不保证成功地端到端递交,不保证顺序地递交,以及每次递交一个每个包含如目的地址的信息分组或“数据报”等。
指出这一点很重要,即虽然这里讨论了各种较低层,但是来自较高层的数据报可形成到网络层过程或系统的输入,其依次提供到输入连续地较低层,并且最终到目的地。到网络层实体的较高层数据报输入可以是来自,例如传输层过程或系统的输入。虽然已知并且使用其他的传输层协议,但是一个典型的并且熟知的传输层协议是传输控制协议(TCP)。特别是,用户数据报协议(UDP)经常作为传输层协议使用。UDP是定义无连接数据报服务的协议。实现UDP的传输层过程或系统可生成包括目的地路由选择信息的自含式数据分组。
在互联网上用于网络层通信的一个普遍存在的协议是互联网协议(IP)。IP规范包括与IP头有关的可列举的域,这些域包含有关相关分组的信息,包括用于确定该分组应该如何递交的信息。IP头域在下面有详细描述。为了更全面地理解IP头的内容,参见“InternetProtocol Specification(互联网协议规范)”,E.J.Postel,SRIInternat ional,Menlo Park,CA,1981年9月,RFC791。
对于数据链路层通信,点到点协议(PPP)成为占优势的协议。PPP包括三个主要组件封装多协议数据报的方法,数据报是在网络层的传输单元(如IP),用于建立、配置和测试数据链路连接的链路控制协议(LCP),以及用于建立和配置不同网络层协议的一系列网络控制协议(NCP)。
PPP设计为在两个称为对等端,也就是符合该协议的链路的两端之间传输分组。因此,LCP可用于商定封装格式选项,处理分组大小上的变化的限制,检测配置错误,以及终止链路。其他的可选的功能有链路上对等端的身份验证,以及链路正常运行和故障时的确定。PPP链路提供全双工的同时双向操作。PPP的定义可以在1994年7月W.Simpson编辑的网络组标准草案RFC1661“The Point to Point Protocol(点到点协议)”中找到。
实现了跨过利用PPP建立的链路的通信,因此与协议有关的数据报可封装进一个或多个帧。一个帧,如上所述,可包括一个头和/或一个尾,连同一些数据单元。但是,通常整个分组映射为一个帧。但是在严重的网络拥塞的条件下,传统的组帧破坏,其中使用分段方法来改善流控制管理。这样的拥塞主要是由于例如多链路业务提供的越来越多的更大带宽的连接引起的业务量的增加而出现。因为基本和主要速率的ISDN,例如,考虑了系统之间多个同时的信道以便留出需要的带宽,所以与这样的业务相关的问题必须解决。对于如语音、VoIP、Telnet等实时数据,拥塞导致延迟是一个值得注意的问题。这样的实时数据格式几乎不能容忍分组延迟、抖动、分组重排序以及相关问题。与多链路环境相关的问题只是增强了独特的实时分组数据需求。
为了减轻多链路环境中的拥塞,思科(Cisco)公司1999年4月8日在名为“Cisco IOSTMSoftware Quality of Service Solutions(业务解决方案的Cisco IOSTM软件质量)”的白皮书中提出一个称为链路分段和交织(LFI)的解决方案。在LFI中,通过将大的数据报和交织时间敏感的分组分解为作为结果的分组分段减少了延迟和抖动。LFI希望相对低速的链路,其中串行延迟是主要的延迟因素。LFI只要求PPP配置为允许交织。否则,LFI对PPP透明。
Carsten Borman在1999年6月,1999年12月到期的互联网工程任务组(IETF),INTERNET-DRAFT“Multi-Class Extension toMulti-Link PPP(多链路PPP的多类扩展)”中提出了一个类似的解决方案。这里,可以找到用于实时封装的格式的面向段的解决方案,其是,例如,综合业务通信链路的标准结构的一部分。
可以用一个例子很好地说明与传统的LFI、多链路PPP以及有关数据传输相关的某些问题。在28.8kbit/s的调制解调器链路上传输1.5k字节的分组会占用该链路高达400毫秒,使得其不能用于与多链路环境中其他链路相关的分组的数据传输。这样的延迟会生成接近一秒的与如语音会话的交互式实时数据相关的往返行程延迟。通过将大于预定大小的各种优先级的分组分段,其高优先级分组或段可以在较低优先级分组的段之间发送。已有的多链路PPP规范已经通过在PPP封装格式中提供序列号和开始及结束比特,提供了分段。但是,已有的多链路PPP因连续分组编号的方案,不提供暂停一个分组的段的传输以便发送另一个。前面由Borman提出的解决方案包括利用多链路PPP协议中未使用的比特指定类号,来在允许多个可暂停类嵌套的相同的链路上运行多个多链路协议实例。因此,属于一个特定类的段可以在没有多链路头的情况下发送并且依赖于头比特的数量可以获得四到十二个暂停级别。
不管时序安排分段的方法所希望的,在实现上出现问题。特别地,应该指出较低三个协议层和相关协议包括,例如UDP、IP和PPP的相关协议,与物理层一起,典型地驻留在如路由器的硬件资源上,其会带来对从分段和其他时序安排方法获得的益处有害的限制。特别是,路由器,例如,一旦建立起优先级等,会典型地在相同的传输队列中将输出分组一起排队。一个典型的输出分组队列的配置通常是先进先出(FIFO)并且具有与队列深度相关的一定程度的内部延迟。而且,经历高业务量级别和使用典型输出分组队列的路由器在发生拥塞时,即使在使用LFI、多链路PPP等时,也会提高分组丢弃的可能性。如果在发生IP时序安排之后分组被迫从下游队列中丢弃,则会出现与分组接收失序有关的问题。依赖链路的配置,对丢失分组的重新传输请求,例如,会导致实时数据的延迟和降级。
当与其他减少拥塞的方法,例如头压缩一起使用时,分组丢弃会特别麻烦。通过压缩或丢弃典型的头中包含的特定部分信息,头压缩方法减少了数据报或分组的整体大小。在典型地用于实时数据传输应用的小分组,其中该头表示接近100%的分组系统开销的情况下,这一点尤其重要。虽然,可以在各个阶段执行头压缩,但是因在本领域在使用头压缩时必须假设不会出现包括分组丢失影响的分组重排序或重排队,就出现了问题。处理这个问题的方法增加了几乎与最初用头压缩技术所节省的一样多的头系统开销。对于头压缩的更一般的信息参见Carsten Borman在1999年6月,1999年12月到期的互联网工程任务组(IETF),INTERNET-DRAFT,“Providing Intergrated ServicesOver Low-bitrate Links(在低比特率链路上提供综合业务)”,以及参见V.Jacobson在1990年2月编辑的网络组互联网草案RFC1144,“Compressing TCP/IP Headers for Low-Speed SerialLinks(为低速串行链路压缩TCP/IP头)”。
在低速链路上,如所述的,时间敏感分组不能承受等待例如,长的最大努力(BE)数据分组的完成。利用IP分段可改善这样分组的延迟,但是代价是每个段增加了一个大约20字节的头。另一个解决方案是利用为每个段增加2到4个字节的头的多链路PPP分段。这样的头被设计用来向段或分段传播时序安排信息。但是,头压缩使IP时序安排变得困难。当使用头压缩时,包括IP头中识别域的信息在压缩之后对于较低层变得不可用。如果HC分组被丢弃,则如前所述,因为接收端例如会请求丢弃分组的重传输并且负责的层不能识别哪个分组丢弃了并且因此不能请求来自更高层的丢弃的分组,从而引入更大的延迟和质量降级,所以造成的丢失的序列号会导致在链路上出现问题。
因此,本领域希望有一种处理时序安排并且减少由丢弃分组上的头压缩引起的时序安排上的不利影响的方法和设备。这样的方法和设备在没有IP层操作中断的情况下运行,使得能够在具有头压缩的纯IP分组上进行一般IP时序安排。
概述因此本发明的一个目的是提供一种用于利用时序安排和头压缩减少分组延迟的方法和设备。
本发明还有一个目的是在多层协议实现中在各层提供这样的方法和设备。
因此,根据本发明的一个方面,在用于减少多个分组传输中的延迟的方法和设备中达到了上述以及其他目的。根据具有至少一个较高层和一个较低层的多层协议,分组具有多种分类。分组可按相关分类进行时序安排。如果在时序安排期间发生拥塞,则不能进行时序安排的分组会丢弃。在时序安排和丢弃之后,一些分组的头会被压缩,并且因此会保留序列信息。
根据本发明的另一个实施方案,在时序安排、丢弃和压缩之后,根据多个分类中的至少两个,分组在第一和第二队列中排队,第一个队列具有比第二个队列高的优先级。例如,两个可能分类中的一个包括最大努力分类,以便排队包括确定分组是否分类为最大努力分组并且如果是这样,则将最大努力分组排队进入例如第二个队列。
应该理解可以包括许多分类,其可与例如QoS级别有关,这可在与分组有关的IP头中发现。分类也可以与多个延迟因素相关,并且优选地基于多个分类建立多个队列。因此,每个分组可以基于相关分类而排队进入多个队列中的一个。
根据本发明的另一个实施方案,多个分类与上述的链路分段和交织(LFI)相关。替代地,多个分类与上述的多链路PPP相关。
还应该指出根据本发明,时序安排可以在较高或较低层执行,其中较低层包括上述的PPP层。较低层还包括HDLC层并且当时序安排在其中执行时,在头压缩之前为每个分组生成一个标记。该标记随后添加并且在传输之前删除。来自第一和第二个队列的每个分组可在具有队列深度不大于1的一个输出分组队列中排队。
附图简述通过连同附图一起阅读下面的详细描述可以理解本发明的目的和优点,其中

图1是说明利用TCP/IP的示例已压缩数据报和格式的图;图2是说明示例链路分段和交织的图;图3是说明示例优先级排队的图;图4A是说明多链路PPP的示例分段格式的图;图4B是说明适合多链路PPP的多个类和短序列号的示例分段格式的图;图4C是说明适合多链路PPP的多个类和长序列号的示例分段格式的图;图5A是说明根据本发明的示例纯IP时序安排的图;图5B是说明根据本发明的示例纯IP时序安排的流程图;图6是说明根据本发明在PPP层的示例IP时序安排的图;图7A是说明根据本发明在HDLC层的示例IP时序安排的图;以及图7B是说明根据本发明在HDLC层连接到压缩头的示例标记的图。
详细描述因此根据本发明提供了一种方法和设备,使得头压缩能够在如路由器、线路接口卡等的网络节点中的各层上与IP时序安排一起使用。
应该指出根据本发明,IP分组的头压缩可以根据本发明的特定实施方案在各个阶段如这里所描述的来执行。图1说明了一个可能由在典型的TCP/IP头上的头压缩操作产生的示例压缩头格式。如前面指出的,虽然根据本发明也可以使用其他的传输层协议,优选的是UDP,但是这里使用TCP来举例说明传输层协议。可以看到,重要信息可以传送到压缩分组中并且通过例如指示想要改变的域中哪个实际上改变了的改变掩码193的处理解释。因为压缩头格式典型地由在连接或分组会话过程期间想要改变的域组成,所以比特193a-193g用于指示这些变化。连接数域194包括一个值,其允许接收器定位来自指示的特定连接的最后分组的一个保存拷贝,用于将例如改变掩码193的前一值与其当前值相比较。TCP校验和域195包含以本领域熟知的方式计算的压缩头的校验和。紧急指示符193h包含指向紧急数据的一个值。剩余的域表示相关域的值的变化,例如,Δ窗口域193j表示窗口域的变化并且因此用将该域的大小从两个八位字节减少为一个的一个较小的值表示。同样,Δack域193k,表示确认数域的变化并且使用一个八位字节代替四个。Δ序列域1931表示序列号域的变化,并且再次,导致从四个八位字节减少到一个。ΔIP ID域193m表示来自相关IP头的分组ID域的变化并且导致大小从两个八位字节减少到一个。最后数据域196跟在所示的压缩头域的末端。应该指出在这种情况下,例如,分组之间没有变化,域193h-193m可以忽略并且数据域196直接跟在TCP校验和域195的后面。应该指出上面提到的域与具有在其上执行的头压缩的示例IP分组有关。根据本发明的教导还可能减少压缩域的数量或者压缩进入IP分组并且简单地包括一个标记。
有了对多层协议的基本特性的理解,可能理解与传送可能头压缩的多种数据类型(例如,实时、最大努力等)的链路上的拥塞控制相关的问题。这些问题在发生头压缩的层下面的各层上尤其麻烦,特别是当分组在头压缩之前进行时序安排并且然后在压缩执行之后因拥塞而丢弃时。在拥塞期间经常的情况是等待传输的分组必需使用几种已知的方法进行时序安排或排队。图2说明利用典型的网络服务堆栈的具有较低三层的示例网络节点200。示例数据分组211、212和213显示进入网络层210,其中过程215基于时间敏感性,例如,参考如D4的分组212,D1指示最高的时间敏感性并且D4指示相对较低的时间敏感性,来确定在链路分段和交织(LFI)层220的队列221、222、223、224中在哪里放置要传输的进入分组。可以看到LFI层220占用数据链路层230的至少一部分。队列D1224中的分组首先发送,然后是D2223、D3222和D4221。如由分组213表示的长分组可以分段为由分组213a、213b和213d表示的较小分组。因为长分组通常具有较低优先级,与如语音、音频或视频等实时数据相关的高优先级分组,如由分组214a、214b和214c表示的,在队列224中发送之前进行累加。当分组进入队列221-224时,其由可以是典型的数据链路过程如HDLC等的过程231发送到物理层,其中它们在FIFO传输队列232中处理并且输出到物理链路233。
尽管上述LFI方法,分组一旦分段,就根据例如如图3中说明的一个例子的传统的优先级排队方案进行排队,或者根据一个合适的由其衍生的方案排队。示例网络节点300显示为具有分别从低到高优先级的队列311-314的优先级排队实现。分组315、316和317,例如,以不同的优先级到达网络层210,其优先级可由例如典型地与每个分组315、316和317分别相关的IP头中包括的QoS信息的内容确定。高优先级分组317,例如,可以由过程320放在高优先级队列314中。进入的中等优先级分组315和低优先级分组316在到达网络层210时由过程320分别放在中等优先级队列313和低优先级队列311中。优先级排队在与数据链路层230接口的等价于数据链路层230或如PPP层的替代协议层等的层310进行。输出分组318a-318d根据优先级发送到过程231用于在传输队列232中排队,如所示的高优先级输出分组318a先发送。输出分组318a-318d然后由可以是典型的数据链路过程如HDLC等的过程231发送到物理层,其中它们在FIFO传输队列232中处理并且输出到物理链路233。
虽然与图2和图3一起描述的LFI和优先级排队使分组能够更有效的处理,但是很重要地应当指出,有效的处理依赖于通常与用于优先级排队和已经分段的分组的IP头相关的准确的头信息,序列信息是关键。但是在较低层,这样的信息并不是已经可用的并且在压缩的IP头的情况下,这样的信息不可用直到IP分组解压缩为止。在较低层分段需要附加的头信息来对等地跟踪分段。应该指出在分层协议中可能在多层有分段,但是每层必须跟踪分段并且某些数据类型不容忍当分组被分段时更可能出现的某些异常,象失序分组等。因此,如前面“Multi-Class Extension to Multi-Link PPP(多链路PPP的多类扩展)”中描述的,描述了适应排队优先级的多个类的头格式。图4A说明用于基本多链路PPP的分组格式。
地址域A410包含表示分组目的地地址的一个值。控制域C420包含与已知的各种控制功能相关的比特的设置有关的值。分组标识PID域430包含高八位字节431和低八位字节432并且支持大量的分段。域440包含包括设置用来指示分段PPP分组的开始段的开始指示符比特440a;以及设置用来指示分段PPP分组结束段的结束指示符比特440b的比特。所有的其他段应该将开始指示符比特440a和结束指示符比特440b设置为零。当只有一个“段”与分组相关时还有可能两个比特都设置为一。比特440c和440d用于指示类级别,对于单一类PPP其在大多数基本实现中为零。应该指出,图4A、图4B和图4C中说明的多链路PPP格式之间的主要区别是各个类域440、441和442的配置,可以看出其支持段的渐进地更复杂的分类。因此,如同优先级的排队可利用在域440、441和442中包含的分类值在PPP级别实现。序列域450可以是24比特值(或者协商为12比特)其对于发送的每个段递增。分段数据段460跟随着直到到达指示分段数据结束的FCS段470。
因此根据本发明的一个实施方案,如图5A所示,例如,在绑定用为IP层510的数据报的IP头中规定的各种QoS级别可通过在IP层510执行“纯”IP时序安排来处理。可以看出可调用利用队列512-514来处理时间敏感分组的排队规则。最低时间敏感性队列DN-1512传送具有最长延迟容忍的分组。可能通过检查与典型IP头有关的DS字节或ToS域来确定这样的时间敏感性。具有较低QoS要求的分组,例如,可以移交给较低优先级的队列。相反,具有较高QoS级别的分组,如与语音数据相关的实时分组,可以与较高级别时间敏感性相关并且因此放置在较高优先级的队列中。具有渐进的更高程度的时间敏感性的分组可在渐进的较高优先级的队列中安排时序,最高敏感性的分组在最高时间敏感性队列D1514中安排时序。QoS设置为最大努力的分组,通常是与非实时数据相关的分组放在最大努力队列DN511中,其如名字所暗示的,只要有可能时,例如,在没有更高优先级的分组要发送的间隔期间,就发送。应该指出交织和分段可与所述的时间敏感和最大努力排队策略一起使用。下文中更详细地描述纯IP时间安排实施方案中的处理。
在本发明的另一个示例实施方案中还可能因为从两步调度到一步调度的减少包括如图6所示的在PPP层的时序安排。PPP层620提供有表示从最高时间敏感性队列D1624到较低时间敏感性队列DN-1622,到最大努力队列DN621的各种程度时间敏感性的一系列优先级队列621-624。
很重要地指出在上述的每个示例实施方案中,必须执行包括IP转发的输出处理分组识别(DS字节查找);包括分组丢弃、速率控制和优先级排队的分组时序安排;头压缩;包括PPP/MP、以太网、ATM的链路适配;以及链路组帧。IP转发和识别必须在头压缩之前完成。还很重要地指出分组丢弃必须在HC之前发生,因为如所述的,在头压缩中丢弃的分组会引起失序有关的问题。根据本发明在反压的环境中,将输出分组队列设置为深度不超过1以确保时间敏感分组在输出分组队列中被处理之前必须等待至多一个最大努力分组非常重要。如果分组时序安排在HC之后完成,则HC功能必须在分组上增加一个“本地”标记,来告诉链路层该分组应该放进哪个队列。
在如图5A所示的“纯”IP时序安排实施方案中,纯IP分组进行了时序安排(例如全IP头和有用负荷)。如果与IP层510相关的队列满了,或依据本领域中熟知并且实行的其他常用规则,则会发生丢弃分组。
在发送到物理线路上之前,在输出分组上执行链路层适配。根据一个在IP层510执行时序安排的实施方案,可以执行HC和PPP/MP/HDLC组帧来完成链路层适配。为了缩短时间敏感分组,如语音分组的延迟,不管由例如根据前面的描述使用的分段和交织方案施加的分类的数量,都可以利用例如两个队列,即队列SQ_PPP 522和队列FQ_PPP 523在PPP层520使用简单的优先级排队规则。如果分段的程度包括不仅是最大努力QoS或具有如与上述多类PPP一起概述的附加的类,则在PPP层520可添加要分段的每个附加类的附加队列。因此,时序安排过程,或者在本实施方案中PPP层520,必须知道与何时分组可发送有关的信息。
通过例如,如上所述分析DS或QoS域,或者通过分析与参照图4A-4C的描述中概述的分组相关的类来分类,并且分成与例如来自IP层510的队列D1514到DN-1512相关的延迟等级的分组,可放在队列FQ_PPP 523中,并且在属于,例如,大BE分组的剩余段之前发送。应该指出,头压缩可在分组在队列FQ_PPP 523中进行时序安排之前优选地执行。BE分组和分段的分组可放在队列SQ_PPP 522中。如果分组太大,PPP层520中的MP处理可在排队之前执行分段。
在可以是临近PPP层520的数据链路层的HDLC层530,根据前面的描述分组可以是头压缩的并且是时序安排的。为了进一步方便分组的头压缩后处理,在例如接口卡上找到的输出缓存531的深度设置为不超过一个分组。这提供了“后压”,因为将在队列FQ_PPP 523和SQ_PPP 522上并且因此在头压缩的上游将被迫发生任何因拥塞而丢弃分组。因为如所述,头压缩之后丢弃的分组会导致与失序有关的问题,因此这个结果是想要的。根据下面的与队列FQ_PPP 523和SQ_PPP 522的示例排队原则相关的伪代码,可以很好地理解图5A说明的示例实施方案的操作。当例如下面情况中的任何一个是真时,驻留在IP层510和PPP层520之间的接口上的调度程序中的示例输出循环能够将分组调度到队列FQ_PPP 523和SQ_PPP 522情况1)队列D1514和FQ_PPP 523中的分组不满。
情况2)(情况1为假)并且(D2513中的分组)并且(FQ_PPP 523为空)。
情况N-1)(情况1,2,…,N-2为假)并且(DN-1512中的分组)并且(FQ_PPP 523为空)情况N)(情况1,2,…,N-1为假)并且(DN511中的分组)并且(SQ_PPP 522不满)还应该指出,根据本发明的一个实施方案,队列FQ_PPP 523中的分组优选地总是在队列SQ_PPP 522中的分组之前发送。
如图5B所示的示例流程图,最好地显示了根据本发明分组如何通过一个软件过程继续下去。在例如IP层510的开始点550接收的来自实施多层协议的发送器中更高层的分组根据与块551中分组有关的延迟因素可在队列511-514中进行时序安排。因为输出队列531的“后压”设计,决定块552a可以实现为在PPP层520排队和头压缩之前丢弃块552a中的分组。如果IP层510队列511-514变得满了,则相关分组会被丢弃并且用于重新时序安排的设备会上推到较高层。否则,来自队列511-514的分组会在PPP层处理以便根据上述简述的过程排队。分组被处理为最时间关键的分组首先发送到PPP层520队列。因此,例如,如果在决定块554确定队列D1514不空,并且在决定块557确定FQ_PPP队列523没有满,则无论由决定块560指示的FQ_PPP 523是否为空,D1分组都添加到FQ_PPP 523中。在任何一种情况下,在分组添加到队列FQ_PPP 523之前,可在块562和564执行头压缩。对于D2分组,决定块555指示虽然分组保留在队列D2513中,并且如决定块557和560指示的FQ_PPP 523是空的,但是D2分组可在块562头压缩并且添加到队列FQ_PPP 563中。以类似的方式,如果决定块556、557和560的条件满足,则DN-1分组在块562中头压缩之后也添加到队列FQ_PPP 523中。应该指出时间敏感分组处理之后,例如,由DN分组表示的最大力分组在经过决定块558、559,并且在块565中头压缩之后也在块566添加SQ_PPP 522。
还应该指出,通过根据是(Yes)条件经过决定块554、555、556和558,形成一个循环。这个循环例如在软件实施方案中表示可执行一个连续的循环来清除每个队列,队列D1514比下面的队列优先级高。而且,如果在较低优先级队列被清除之前有较高优先级分组可用于处理,则循环可中断。
除了根据上面的描述执行时序安排,本发明的示例实施方案在队列FQ_PPP 523和SQ_PPP 522中排队之前还执行附加的步骤。例如,在选择队列用于分组时序安排之后,根据图1提供的描述或以类似的方式,可执行头压缩。根据分层结构和与上述封装有关的概念,可增加PPP头以确保正确地递交到对应接收节点上PPP层520的PPP对等层并且由其解码。还如所述的,在完整但是长BE数据分组或在更高层分段的但是对于在PPP层520的有效发送来说太长的分组上可执行额外程度的分段。例如,可利用MP执行这样的分段。
应该指出,PPP层可向HDLC层530发送分组,具体化为,例如,当其缓存深度不大于单一一个分组时的接口卡。理想地,当输出缓存531上的限制设置为零时,达到如来自队列D1514的分组的最大时间敏感分组上的最优延迟特性。但是,以这样的方式限制深度导致分组不是背对背地发送。输出缓存531的深度限制为1,在另一方面,导致最坏情况的等待时间,例如,对于来自队列D1514的分组,大约等于几乎两个BE分组或分组段的传输时间。
根据示例实施方案,当缓存531为空或否则准备好由一个新的分组填充时,还希望生成来自HDLC层530的中断。这个中断的定时应该优选地优化以便精确地控制当队列FQ_PPP 523和SQ_PPP 522向输出缓存531发送分组时将最坏情况分组延迟减少到大约一个分组传输间隔。虽然这样的定时可以设置在如软件例程中,但是根据本领域的已知的惯例优选的是硬件实现。
如前所述,丢弃HC分组将导致在接收机端丢失序列号,导致必须重新发送整个头。为了防止如语音等的实时数据流的延迟和可能的中断,丢弃应该优选地在头压缩之前完成。在如图6所示的本发明的另一个示例实施方案中,可在PPP层620执行时序安排。可以分析在IP层610的进入分组的优先级或分类等级。PPP层620在时序安排之前检查与特殊优先级或分类相关的队列的深度。如果与分组的优先级或分类相关的队列满了,则由PPP层620处的时序安排过程丢弃分组。如果与优先级或分类相关的队列没有满,则执行头压缩,添加PPP头,并且如所述的,如果需要,在对分组排队之前利用MP执行进一步的分段。
在本发明的另一个示例实施方案中,可在例如,图7A所示的HDLC层720执行HDLC时序安排以减少高优先级分组的最大等待时间。HDLC层720,如前面实施方案的PPP层620和IP层510,提供有表示从最高时间敏感性队列D1724到较低时间敏感性队列DN-1722,到最大努力队列DN721的各种程度时间敏感性的一系列优先级队列721-724。
如在前面的实施方案中,输出缓存730设置为一个分组的深度。对于排队和从队列中取出,可使用参考图6与前面描述的PPP层620类似的方法。该实施方案不能看作一个“纯”IP调度器,通过将两步时序安排改为一步可降低复杂性。通过在MP之后进行时序安排,可以很容易地添加MP扩展。
为了在HDLC层720进行时序安排,生成来自输出缓存730的中断以改善如语音分组的时间敏感分组的分组延迟,同时保持完全的链路应用不是最佳解决方案,因为现在时序安排在一个接口卡上执行。代替HDLC层720处的一个缓存,将有缓存721到724使用类似于用于在前面描述的参考图6的PPP层620进行时序安排的时序安排算法。因此,在IP层610和PPP层710处不需要后压和时序安排。为处理丢弃,优选地在HDLC层720处的丢弃过程和时序安排过程之间实现信令。应该再次指出,当在IP分组上执行头压缩时,因在DS字节中包含的分类信息在压缩之后不可用,所以出现了问题。
因此,在如图7B所示的本实施方案中,在分组751上添加本地字节或“标记”752,现在优选地由HDLC层720处的时序安排过程进行头压缩。标记752包含对包含在头中的信息来说冗余的信息并且在压缩前生成。标记752在分组751排队准备发送之前去掉。分组丢弃可在头压缩之前的一点独立于速率控制执行。速率控制可在HDLC层720处的时序安排过程中执行。分组是否应该丢弃的决定优选地基于在接收来自例如PPP层710的缓存611的IP分组之后执行的检查。如果分组指定的队列721-724中对应的一个满了,则分组将被丢弃,否则其将继续进行头压缩。
因此,总结本实施方案中各层的功能,IP层610执行头压缩之前分组的丢弃。每个分组有一个在头压缩之前创建的短“标记”,该标记包含以前包含在头中的信息并且添加到头压缩的分组中。PPP层710利用如MP在长数据分组上执行分段。HDLC层720执行包括在例如软件设备驱动器中的时序安排,或者替代地HDLC层720可在其中添加标记752的硬件中实现。标记752可在分组751发送之前去掉。
本领域的技术人员应该理解,在不背离其精神或基本特征的情况下,本发明可以以其他特定形式实现。因此这里公开说明的实施方案从各个方面都被看作是说明性的而不是限制性的。本发明的范围由所附的权利要求指示,而不是上述描述并且来自其等价物的意义和范围之内的所有改变都指示为包含在其中。
权利要求
1.一种用于减少多个分组传输中的延迟的方法,具有多个分类的所述分组根据具有至少一个较高层和一个较低层的多层协议在通信链路上传输,所述方法包括根据与其相关的多个分类中的一个对多个分组中的每个进行时序安排;丢弃不能进行时序安排的多个分组中的每一个;以及在时序安排和丢弃之后在多个分组的每个的至少一些上压缩头。
2.如权利要求1的方法,还包括在时序安排、丢弃和压缩之后,根据多个分类中的至少两个,在第一个和第二个队列中对多个分组排队的步骤,第一个队列具有比第二个队列高的优先级。
3.如权利要求1的方法,其中时序安排的步骤还包括步骤基于多个分类建立多个队列;以及根据与其相关的多个分类中的一个将多个分组的每一个排队到多个队列中的一个。
4.如权利要求3的方法,其中多个分类与QoS等级有关。
5.如权利要求3的方法,其中多个分类与多个延迟因素有关;其中在多个队列的每个中多个延迟因素的每个是不同的。
6.如权利要求3的方法,其中多个分类与多个丢弃敏感性因素有关;其中在多个队列的每个中多个丢弃敏感性因素的每个是不同的。
7.如权利要求3的方法,其中多个分类与LFI有关。
8.如权利要求3的方法,其中多个分类与多链路PPP有关。
9.如权利要求2的方法,其中至少两个分类中的一个包括最大努力分类并且其中排队的步骤还包括步骤确定多个分组中的每一个是否分类为最大努力分组;以及将确定的最大努力分组排队到第二个队列中。
10.如权利要求1的方法,其中时序安排的步骤还包括在较高层执行时序安排的步骤。
11.如权利要求1的方法,其中时序安排的步骤还包括在较低层执行时序安排的步骤。
12.如权利要求11的方法,其中较低层包括PPP层。
13.如权利要求11的方法,其中较低层包括HDLC层并且其中在较低层执行时序安排的步骤还包括步骤在执行压缩步骤之前为多个分组的每一个生成一个标记,其中所述标记包含来自头的至少一些信息;将所述标记添加到多个分组的每一个;以及在多个分组的每一个传输之前去掉所述标记。
14.如权利要求1的方法,还包括将在第一和第二个队列中排队的多个分组的每一个输出到具有队列深度不超过一的输出队列中的步骤。
15.一种用于减少在通信链路上具有多个分类的多个分组传输中的延迟的设备,多个分组根据具有至少一个较高层和一个较低层的多层协议传输,所述设备包括一个串行链路;以及一个耦合到所述串行链路上的接口设备,所述接口设备用于实现多层协议,所述接口设备具有一个处理器,所述处理器配置为根据与其相关的多个分类中的一个对多个分组中的每个分组进行时序安排;丢弃不能进行时序安排的多个分组的每一个;以及在时序安排和丢弃之后在多个分组的每个的至少一些上压缩头。
16.如权利要求15的设备,还包括第一和第二队列;其中所述处理器还配置为根据多个分类中的至少两个而在时序安排、丢弃和压缩之后将多个分组在第一和第二队列中排队,第一个队列具有比第二个队列高的优先级。
17.如权利要求15的设备,其中所述处理器,在时序安排期间,还配置为基于多个分类建立多个队列;以及根据与其相关的多个分类中的一个将多个分组中的每一个排队到多个队列中的一个。
18.如权利要求17的设备,其中多个分类与不同的QoS等级有关。
19.如权利要求17的设备,其中多个分类与多个延迟因素有关;其中在多个队列的每个中多个延迟因素的每个是不同的。
20.如权利要求17的设备,其中多个分类与多个丢弃敏感性因素有关;其中在多个队列的每个中多个丢弃敏感性因素的每个是不同的。
21.如权利要求17的设备,其中多个分类与LFI有关。
22.如权利要求17的设备,其中多个分类与多链路PPP有关。
23.如权利要求16的设备,其中至少两个分类中的一个包括最大努力分类并且其中所述处理器在排队期间还配置为确定多个分组中的每一个是否分类为最大努力分组;以及将确定的最大努力分组排队在第二个队列中。
24.如权利要求15的设备,其中所述处理器还配置为在较高层对多个分组的每一个进行时序安排。
25.如权利要求15的设备,其中所述处理器还配置为在较低层对多个分组的每一个进行时序安排。
26.如权利要求25的设备,其中较低层包括PPP层。
27.如权利要求25的设备,其中较低层包括HDLC层并且其中所述处理器还配置为在执行压缩步骤之前为多个分组的每一个生成一个标记,其中所述标记包含来自头的至少一些信息;将所述标记添加到多个分组的每一个;以及在多个分组的每一个传输之前去掉所述标记。
28.如权利要求15的设备,还包括一个队列深度不超过一的输出队列,并且其中所述处理器还配置为将在第一和第二个队列中排队的多个分组的每一个输出到输出队列中。
全文摘要
一种用于通过在具有多个分类的多层结构中的各层执行IP时序安排和头压缩来减少多个分组的传输延迟的方法和设备,包括根据分类对分组的时序安排。如果在时序安排期间发生拥塞,则丢弃分组。一些分组头在此后压缩。分组在时序安排、丢弃和压缩之后,根据至少两种分类,还在第一和第二队列中排队。最大努力分组在较低优先级的第二队列中排队。分类与例如QoS等级、延迟因素、LFI和多链路PPP相关。时序安排在多层协议中的较高或较低层执行。较低层包括PPP层。较低层还包括在其上执行压缩之前为分组生成一个标记的HDLC层。该标记在此后的某个点添加分组。标记在发送前去掉。具有队列深度不超过1的输出分组队列确保不超过一个最大努力分组等待时间。
文档编号H04L29/06GK1433623SQ0081872
公开日2003年7月30日 申请日期2000年11月8日 优先权日1999年11月30日
发明者S·拉赫恩, G·奥森 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1