CN103152288A - 用于在网络上传输数据的方法和装置 - Google Patents
用于在网络上传输数据的方法和装置 Download PDFInfo
- Publication number
- CN103152288A CN103152288A CN2012104643650A CN201210464365A CN103152288A CN 103152288 A CN103152288 A CN 103152288A CN 2012104643650 A CN2012104643650 A CN 2012104643650A CN 201210464365 A CN201210464365 A CN 201210464365A CN 103152288 A CN103152288 A CN 103152288A
- Authority
- CN
- China
- Prior art keywords
- entry
- transmission
- grouping
- data structure
- array data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q11/0067—Provisions for optical access or distribution networks, e.g. Gigabit Ethernet Passive Optical Network (GE-PON), ATM-based Passive Optical Network (A-PON), PON-Ring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0064—Arbitration, scheduling or medium access control aspects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的各实施方式总体上涉及用于在网络上传输数据的方法和装置。具体地,向网络单元提供了用于在网络上传输分组的系统和方法,包括:通过由多个条目填充的数组数据结构编码的计算机可读介质,每个条目对应于待传输的分组的队列中的分组,特定条目包括基于在相邻条目中存储的分组大小和对应于特定条目的分组的分组大小的总和的值。搜索引擎被配置用于接收门大小并且搜索数组以将数据结构中具有最接近门大小但又不大于该门大小的值的特定条目标识为传输条目。传输引擎被配置用于传输从队列的开始处直到与传输条目相关联的特定分组的分组。
Description
相关申请的交叉引用
本申请要求2011年11月8日提交的、题目为“Multiple KeyBinary Search”的美国临时专利申请No.61/557,327,2011年11月9日提交的、题目为“EPON Report Generation in O(log Q.len)Time”的美国临时专利申请No.61/557,512,以及2012年1月4日提交的、题目为“EPON Report Generation in O(log Q.len)Time”的美国临时专利申请No.61/582,965的优先权,上述每个申请通过引用将其全部内容并入于此。
技术领域
在此所描述的技术总体上涉及网络数据通信,并且更具体地涉及带宽分配请求和管理。
背景技术
在某些网络配置中,网络单元向中央网络控制器请求带宽,该中央网络控制器向与该控制器相关联的多个网络单元授予带宽。当特定网络单元从中央网络控制器接收声明已经授予该特定网络单元在其上传输数据的带宽量的消息时,该特定网络单元需要在有限量的可用时间内执行某些操作和计算。
以上描述被呈现作为对本领域中的相关技术的总体概述,而不应被解释为承认其所包含的任何信息构成针对本专利申请的现有技术。
发明内容
向网络单元提供系统和方法的示例以用于在网络上传输分组,该网络包括通过由多个条目填充的数组数据结构编码的计算机可读介质,每个条目对应于待传输的分组的队列中的分组,特定条目包括基于在相邻条目中存储的分组大小和对应于特定条目的分组的分组大小的总和的值。搜索引擎被配置用于接收门大小(gate size),该搜索引擎被配置用于搜索数组以将数据结构中具有最接近门大小但又不大于该门大小的值的特定条目标识为传输条目。传输引擎被配置用于传输从队列的开始处直到与该传输条目相关联的特定分组的分组。
作为另一示例,一种用于基于所接收的门大小传输数据的计算机实现的方法包括:在非瞬态计算机可读介质上生成由多个条目填充的数组数据结构,其中每个条目对应于待传输的分组的队列中的分组,其中条目根据队列中的分组的顺序进行排序,并且其中特定条目包括基于在相邻条目中存储的分组大小和对应于特定条目的分组的分组大小的总和的值。搜索数组以标识具有最接近门大小但又不大于该门大小的值的传输条目,并且传输从队列直到与该传输条目相关联的特定分组的分组。
附图说明
图1是描绘根据本公开的一个实施方式的用于在网络上传输分组的网络单元的框图。
图2是描绘本公开的一个实施方式中的网络单元的示例操作的框图。
图3是描绘根据本公开的一个实施方式的在多关键字搜索引擎与数组数据结构之间的示例交互的示意图。
图4是描绘根据本公开的一个实施方式的在多关键字搜索引擎与数组数据结构之间的附加示例交互的示意图。
图5是描绘本公开的一个实施方式中的在数组数据结构中的溢出条件的处理的示意图。
图6是描绘本公开的一个实施方式中的用于执行多关键字搜索的算法的示意图。
图7描绘了本公开的一个实施方式中的用于实现多关键字搜索的按照C编程语言的示例代码。
图8是描绘根据本公开的一个实施方式的配置用于在EPON系统中在网络上传输分组的光网络单元的框图。
图9是描绘本公开的一个实施方式中的基于所接收的门大小传输数据的计算机实现的方法的流程图。
具体实施方式
图1是描绘根据本公开的一个实施方式的用于在网络上传输分组的网络单元的框图。用于在网络上传输分组(诸如,去往以及来自中心局104)的网络单元102包括通过由多个条目填充的数组数据结构108编码的计算机可读介质106。数组数据结构108中的每个条目对应于待传输的分组的队列110中的分组。数组数据结构108中的条目根据队列110中的分组的顺序进行排序。数组数据结构108中的特定条目包括基于在相邻条目中存储的分组大小和对应于数组数据结构108中的特定条目的分组的分组大小的总和的值。
网络单元102进一步包括搜索引擎112,搜索引擎112被配置用于从中心局104接收门大小作为门授予消息114的一部分。该门大小表示由中心局104向网络单元102授予的带宽量。搜索引擎112被配置用于搜索数组108以将数组数据结构108中具有最接近门大小但又不大于该门大小的值的特定条目标识为数组数据结构108中的传输条目。
网络单元102还包括传输引擎116。传输引擎106配置用于标识分组队列110中的与数组数据结构108中的传输条目相关联的特定分组。传输引擎116进一步配置用于传输从分组队列110的开始处直到分组队列110中的特定分组的分组118。
除了响应于来自中心局104的带宽授予而传输分组118,在本公开的实施方式中,网络单元102还执行促进请求其中发送来自分组队列110的附加分组的附加带宽的报告功能。例如,搜索引擎112可以接收指示可能将来近似带宽授予的阈值120。网络单元102确定对应于可以从分组队列110发送的、大小上最接近阈值120但又不大于阈值120的整个分组的大小的将请求的带宽量。网络单元102被配置用于使用搜索引擎112以标识数组数据结构108中具有最接近门大小加阈值120但又不大于门大小加阈值120的值的第二特定条目作为报告条目。传输引擎116被配置用于基于数组数据结构108中的所标识的报告条目传输报告122。
图2是描绘本公开的一个实施方式中的网络单元的示例操作的框图。网络单元202从中心局206接收指示门大小的门授予204。该门大小表示向网络单元202分配以用于在即将到来的时间段或传输门中进行传输的带宽量,诸如,多个位或字节。在一个实施方式中,这种授予基于由网络单元202进行的先前带宽请求,并且以在先报告(诸如,附加到先前数据传输的在先报告)的形式向中心局206供应。
如图2的示例中所示,搜索引擎208被提供有由网络单元202接收的门大小以及一个或多个阈值210。该一个或多个阈值210可以接收自中心局206(诸如,在门授予204中),或者该一个或多个阈值210可以是网络单元210已知的预先确定的值。例如,在一个实施方式中,该一个或多个阈值210是中心局206很可能授予的预先确定的近似授予块大小。在一个实施方式中,多关键字搜索引擎208被配置用于针对对应于门大小以及对应于一个或多个阈值210中的每一个阈值的条目对计算机可读存储介质214上存储的数组数据结构212执行多关键字搜索。在一个实施方式中,在单个搜索操作中搜索多个条目。关于门大小,在一个实施方式中,搜索引擎208被配置用于标识与队列中的可以在当前传输中发送并同时保持在向网络单元202分配的多个字节(如门大小中所标识的)或之下的最后分组对应的传输条目。关于阈值210中的特定阈值,搜索引擎被配置用于标识数组数据结构212中如果中心局206分配的授予大小等于特定阈值210时与队列中可以在随后传输中发送的最后分组对应的特定报告条目。多关键字搜索引擎208被配置用于标识针对一个或多个阈值210中的每个阈值的报告条目。
在一个实施方式中,在标识传输条目以及一个或多个报告条目之后,传输引擎216被配置用于准备并发送分组218并且进一步发送报告数据220,其在数据分组220的结束之后或附加在其后向中心局206发送。传输引擎216访问分组队列222并且传输从分组队列222的前面直到与数组数据结构212中的传输条目相关联的分组的分组218。
分组队列222可以包含计算机器(例如,台式计算机、膝上型计算机、服务器、3G或4G无线设备)期望传输的多个分组[0]、[1]、[2]和[3]。在多任务计算机环境中,分组可以通过在计算机器上运行的期望通过中心局206向外部网络位置传输数据的个别应用来向分组队列222添加。每个应用可以与子队列224相关联。当应用向其子队列224添加一个或多个分组时,子队列224向分组队列222转发所述分组以供计算系统向中心局206传输。在从分组子队列224向分组队列222添加分组之后,条目被添加至数组数据结构212,并且在所添加的条目中基于向分组队列222添加的分组的大小设置值。
传输引擎216进一步针对一个或多个阈值210中的每个阈值计算并传输报告数据220,如在217处所示。例如,针对特定阈值,搜索引擎208先前已经在数组数据结构212中标识了特定报告条目。该报告特定报告条目由搜索引擎208向传输引擎提供。传输引擎216确定分组队列222中的与传输条目之后直到并包括特定报告条目(例如,特定报告条目值减去传输条目值)的条目相关联的分组中存在的字节数目。该数目被传输到中心局206作为针对特定阈值的报告数据,表示带宽请求量。带宽请求量被传输作为针对一个或多个阈值中的每个阈值的报告数据220。
在一个实施方式中,网络单元202通常具有有限的时间段,在其期间从接受门授予204起准备并传输分组218以及报告数据220。例如,在本公开的一个实施方式中,门授予204包括门大小并且进一步包括门时间。门时间指示与由门大小标识的字节的分配相关联的时序,并且进一步指示网络单元202何时将开始传输在大小上聚合直到门大小但又不超过该门大小的分组218。该布置向网络单元202提供了从接收门授予到由门时间标识的时间的时间段,其中用于准备用于传输的分组(即,标识分组队列222中哪些分组将被传输以及准备针对一个或多个阈值210的报告数据220)以及确定针对随后带宽请求的报告数据。在一个实施方式中,该时间段非常短(即,数毫秒)。
在一个实施方式中,网络单元202实现各种过程和数据结构以处理用于传输的分组并且以高效方式报告数据以便符合由门时间参数强加的时间段约束。图2中描绘的数组数据结构212是适当的数据结构。数组数据结构212包括多个条目,其中所述条目中的每个条目对应于分组队列222中的分组。在图2的示例中,分组队列222和数组数据结构212均能够持有6个条目,而其他实施方式可以被配置用于处理多得多的条目数目。在图2的示例中,分组队列222包括4个分组[0]、[1]、[2]和[3]以用于传输,并且数组数据结构212具有包含数据[0]、[1]、[2]和[3]的4个对应的数组条目。数组队列222中的第一分组的长度为125字节,第二分组的长度为213字节,第三分组的长度为475字节并且第四分组的长度为76字节。每个数组数据结构元素被配置用于包含与从分组队列222的前面到与该数组数据结构元素相关联的分组的分组大小的累积总和对应的数据。因此,第一数组数据结构元素[0]包含值125,其对应于分组队列分组[0]中的字节数目。第二数组数据结构元素[1]包含值338,其对应于分组队列分组[0]中的字节数目加分组队列分组[1]中的字节数目(即,125字节加213字节)。第三数组数据结构元素[2]包含值813,其对应于分组队列分组[0]和分组队列分组[1]中的字节数目加分组队列分组[2]中的字节数目(即,338字节加475字节)。第四数组数据结构元素[3]包含值889,其对应于分组队列分组[0]、分组队列分组[1]和分组队列分组[2]中的字节数目加分组队列分组[3]中的字节数目(即,813字节加76字节)。因此,该数组数据结构中的每个条目基于与该数组数据结构中的先前条目相关联的分组的分组大小加对应于所述条目的分组的分组大小的总和。
在一个实施方式中,图2中描绘的数组数据结构212格式提供了在标识数组数据结构212中的传输条目和报告条目以用于准备分组218和报告数据220以向中心局206传输方面的时间节省。通过维护数组数据结构212中描绘的累积大小计数,这种大小计数不需要通过在接收门授予204与在门授予中标识的门时间之间的通常短时间内访问分组队列222来即时(on-the-fly)计算。数组数据结构212中的传输条目被快速标识为具有最接近在门授予204中标识的授予大小但又不大于该授予大小的值的数组数据结构元素。传输引擎216继而传输从分组队列222的开始处直到与在数组数据结构212中标识的传输条目对应的分组的来自分组队列222的分组。
图2的数组数据结构格式还可以加快数组数据结构中用于确定报告数据220的报告条目的标识。针对阈值的报告试图向中心局206报告整个分组中多少字节可以在随后传输周期中(即,在当前门授予分组218传输之后)以大小上小于阈值或等于阈值的群组从分组队列222的前面传输。在一个实施方式中,搜索引擎208通过搜索数组数据结构212中最接近门大小加特定阈值但又不大于该门大小加特定阈值的条目值来确定报告220中针对特定阈值的报告值。与该条目值相关联的数组数据结构条目被标识为针对该特定阈值的报告条目。针对该特定阈值的报告值继而通过从报告条目中与特定阈值相关联的值减去传输条目值来进行计算。针对一个或多个阈值210中的每个阈值类似地确定报告值。
在一个实施方式中,网络单元202执行其他优化以改进分组218传输以及报告220生成性能。例如,搜索引擎208利用二分查找来标识数组数据结构212中的传输条目和报告条目。使用二分查找将搜索从O(n)运算改进到O(log(n))运算。在本公开的一个实施方式中,搜索引擎208是多关键字搜索引擎,其被配置用于同时针对多个条目(例如,传输条目和一个或多个报告条目)搜索数组数据结构212,这样可以进一步缩短搜索持续时间。示例多关键字搜索的细节在下文进一步详细描述。
图3是描绘根据本公开的一个实施方式的在多关键字搜索引擎与数组数据结构之间的示例交互的示意图。数组数据结构302被编码在计算机可读存储介质304(诸如随机访问存储器、高速缓冲存储器或硬盘驱动器储存器)上。数组数据结构302由多个条目填充。在图3的示例中,数组数据结构302包含6个条目,其中4个条目包含数据值。数组数据结构302中具有数据值的每个条目对应于待传输的分组的队列中的分组。数组数据结构302中的条目根据分组队列中的对应的分组的顺序进行排序。特定条目(标记为[2]的条目)包括值813,其基于在相邻条目中存储的分组大小338和对应于特定条目[2]的分组的分组大小475的总和。
多关键字搜索引擎306与数组数据结构302交互以标识针对一个或多个阈值中的每个阈值的传输条目和报告条目。在图3的示例中,多关键字搜索引擎接收单个阈值,并且因此搜索数组数据结构302中的传输条目和单个报告条目。在图3的示例中,多关键字搜索引擎在单个多关键字搜索过程中搜索传输条目和单个报告条目两者。这种过程可以减少为了定位传输条目和单个报告条目所必需的访问存储器304的次数。在一个实施方式中,由多关键字搜索引擎306寻找的传输条目是数组数据结构302中包含最接近门大小但又不大于该门大小的值的条目。由多关键字搜索引擎306寻找的单个报告条目是数组数据结构302中包含最接近门大小加单个阈值但又不大于该门大小加单个阈值的值的条目。
图4是描绘根据本公开的一个实施方式的在多关键字搜索引擎与数组数据结构之间的附加示例交互的示意图。多关键字搜索引擎402接收门大小338和阈值500。多关键字搜索引擎402访问在计算机可读存储介质406上存储的数组数据结构404以使用多关键字搜索来标识数组数据结构404中的传输条目和报告条目。多关键字搜索引擎402阶段性地执行多关键字二分查找。在第一阶段中,多关键字搜索引擎402将数组数据结构404中的填充的条目(即,条目[0]、[1]、[2]和[3])分成两个均匀大小的群组(即,包含条目[0]和[1]的第一群组,以及包含条目[2]和[3]的第二群组)。多关键字搜索引擎402继而通过确定门大小和阈值加门大小是否小于正被考虑的上半部分813中的第一数组条目值来确定门大小和阈值加门大小落入数组数据结构404的两个半部分中的哪个半部分。多关键字搜索引擎402确定门大小338处于下半部分而门大小加阈值838处于上半部分。由于门大小和门大小加阈值处于分开的的半部分,多关键字搜索引擎402进而使用单独的单关键字二分查找来寻找传输条目和报告条目。当不止一个正被寻找的关键字处于相同半部分中时,多关键字搜索引擎402可以使用上文所述的多关键字协议继续搜索那些关键字,如关于图6进一步详细所述。
按照针对门大小的单关键字协议进行(该门大小被确定为处于下半部分),多关键字搜索引擎402将下半部分(即,条目[0]和[1])分成两个半部分。多关键字搜索引擎402通过确定门大小338是否小于上半部分中的第一条目338来确定该门大小处于包含条目[0]的下半部分中还是处于包含条目[1]的上半部分中。由于门大小338并不小于上半部分中的第一条目338,因此该门大小被确定为处于包含条目[1]的上半部分中。由于该半部分仅包含单个数组条目,因此该单个数组条目被认为是传输条目。类似地,多关键字搜索引擎402通过确定门大小加阈值838是否小于上半部分中的第一条目889来确定该门大小加阈值838是处于包含条目[2]的上半部分(包含条目[2]和[3])的下半部分中还是处于包含条目[3]的上半部分中。由于该门大小加阈值838小于上半部分中的第一条目889,因此该门大小加阈值被确定处于包含条目[2]的下半部分中。由于该半部分仅包含单个数组条目,因此该单个数组条目[2]被认为是报告条目。
在已经将传输条目确定为条目[1]并且将报告条目确定为条目[2]的情况下,多关键字搜索引擎402可以向传输引擎提供信息,该信息指示直到与传输条目相关联的分组的分组(分组[0]和分组[1])应当被传输以符合接收的门大小338字节,以及报告数据应当包括值475(即,报告条目值813减传输条目值338)。
图5是描绘本公开的一个实施方式中的在数组数据结构中的溢出条件的处理的示意图。用于存储数组数据结构502中的值的数据类型被限制于最大值1024。当第五分组被添加至具有大小254字节的分组队列时,数组数据结构条目[5]被尝试用队列中所有分组的累积总和1143来填充。然而,由于该数组数据结构中针对条目的最大值是1024,因此条目[5]中的值溢出119。这种溢出可能负面影响由多关键字搜索引擎504在数组数据结构502上尝试的多关键字二分查找或单关键字二分查找。在本公开的一个实施方式中,多关键字搜索引擎504可以被配置用于对具有单个溢出的数组适当地执行搜索。在这种实施方式中,多关键字搜索引擎504期望数组数据结构502中的每个条目均包含比先前条目中的值更大的值。通过标识数组数据结构502中包含不大于其先前条目的值的第一条目,多关键字数据结构可以通过向包含在那些溢出的条目中的值添加最大值1024来增大使用所述第一条目或随后条目的任意比较。只要该数组数据结构仅包含单个溢出,这种过程就将保证正确的搜索比较。利用该溢出处理,可以设计考虑了分组队列中的所有分组的最大长度的数组数据结构。通过在该最大长度的一半处选择针对数组条目值的最大值,该多关键字搜索引擎可以正确地运作而不需考虑分组队列的状态。
附加的数据结构技术可以用于实现数组数据结构502和多关键字搜索引擎的高性能。例如,在一个实施方式中,数组数据结构中的物理第一条目并不必须需要对应于分组队列中的第一分组。头指针或其他数据结构(例如,索引值)可以用于标识数组数据结构502中的与分组队列中第一分组对应的条目(逻辑第一条目)。当分组从分组队列传输时,数组数据结构502中的对应于传输的分组的条目被清除,随后的条目被更新以反映在分组的传输之后正确的累积分组大小总和,并且头指针被移动至数组数据结构502中的新的逻辑第一条目。这种配置避免了数据读取和数据写入访问在每次分组传输时向前移动数组数据结构502中的条目。分组队列可以被类似地构建。
在本公开的一个实施方式中,使用循环链表形成数组数据结构502,其中数组数据结构502中的每个条目包括值和指向数组数据结构502中的下一条目的指针。位于数组数据结构502中的物理最后条目的指针指向数组数据结构502中的物理第一条目。在这种实施方式中,随着数组数据结构502中的标识的逻辑第一条目移动回到数组数据结构中,在数组数据结构的物理前部空出的条目可以随着附加分组被添加至分组队列而被填充。可以类似地构建分组队列。
图6是描绘本公开的一个实施方式中的用于执行多关键字搜索的算法的示意图。在图6的示例中,多关键字搜索引擎操作用于基于门大小602定位传输条目,以及针对多个阈值604中的每个阈值定位报告条目。在606处,当前数组子集被设置为具有值的数组条目的全跨度(full span)。多关键字搜索过程608连同当前数组子集(全数组)和关键字(门大小602和多个阈值604)被称作变元(argument)。在610处,过程确定在该子集中是否存在零个关键字,这意味着在过程调用中没有关键字被提供作为变元。如果存在零个关键字,则过程在610处返回。如果在过程调用中存在至少一个关键字,则过程在614处继续用于确定变元中是否恰好存在一个关键字。如果变元中恰好存在一个关键字,则在616处执行单关键字二分查找以找到当前子集中针对单关键字的数组条目。如果存在多个关键字作为变元,则在618处执行检验以确定当前数组子集中是否恰好存在一个条目作为变元以用于多关键字搜索过程调用。如果子集中恰好存在一个条目,则在620处针对存在作为变元的关键字中的每个关键字返回该单个条目。如果存在多个关键字并且多个条目作为用于过程调用的变元存在,则在622处进行分配给当前数组子集的每个关键字与当前数组子集的中间值(例如,当前数组子集的上半部分的第一值)的比较,以查看关键字中的每个关键字是属于当前数组子集的上半部分还是当前数组子集的下半部分。在624处,多关键字搜索过程608针对当前数组子集的上半部分条目以及被确定为属于上半部分的关键字被递归调用。在626处,多关键字搜索过程608针对当前数组子集的下半部分条目以及被确定为属于下半部分的关键字被递归调用。图7描绘了本公开的一个实施方式中的用于实现多关键字搜索的示例C代码。
如上文某些实施方式中所述的网络单元可以在各种系统中使用。例如,在以太网无源光网络(EPON)环境中操作的系统中,使用动态带宽分配(DBA)协议执行带宽分配,其中报告消息和门消息在光线路终端(OLT)(例如,位于中心局的服务器)与光网络单元(ONU)(例如,订户的家庭网络中的计算机或路由器)之间互换。在EPON系统中,门消息指定在该分配周期分配给ONU的可用带宽和时隙。ONU被配置用于针对一个或多个下游带宽请求(例如,针对一个或多个阈值中的每个阈值的一个请求)传输其数据以及包含报告数据的固定大小的报告消息。
图8是描绘根据本公开的一个实施方式的配置用于在EPON系统中在网络上传输分组的光网络单元的框图。用于在网络上传输分组的(诸如,去往以及来自光线路终端804)的光网络单元802包括通过由多个条目填充的数组数据结构808编码的计算机可读介质806。数组数据结构808中的每个条目对应于待传输的分组的队列810中的分组。数组数据结构808中的条目根据队列810中的分组的顺序进行排序。数组数据结构808中的特定条目包括基于在相邻条目中存储的分组大小和对应于数组数据结构808中的特定条目的分组的分组大小的总和的值。
光网络单元802进一步包括多关键字搜索引擎812,该多关键字搜索引擎812被配置用于从光线路终端804接收门大小作为门授予消息814的一部分。该门大小表示由光线路终端804授予光网络单元802的带宽量。搜索引擎812被配置用于搜索数组808以将数组数据结构808中具有最接近门大小但又不大于该门大小的值的特定条目标识为数组数据结构808中的传输条目。
光网络单元802还包括传输引擎816。该传输引擎816配置用于标识分组队列810中与数组数据结构808中的传输条目相关联的特定分组。该传输引擎进一步被配置用于传输从分组队列810的开始处直到分组队列810中的特定分组的分组818。
除了响应于来自光线路终端804的带宽授予而传输分组818,在本公开的实施方式中,光网络单元802还执行促进请求其中发送来自分组队列810的附加分组的附加带宽的报告功能。例如,在一个实施方式中,搜索引擎812接收指示可能将来近似的带宽授予的阈值820。光网络单元802确定对应于可以从队列发送的、最接近阈值820但又不大于阈值820的整个分组的大小的将请求的带宽量。光网络单元被配置用于使用搜索引擎812以标识数组数据结构808中具有最接近门大小加阈值820但又不大于该门大小加阈值820的值的第二特定条目作为报告条目。传输引擎816被配置用于基于数组数据结构808中的所标识的报告条目传输报告822。
图9是描绘本公开的一个实施方式中的基于所接收的门大小传输数据的计算机实现的方法的流程图。在902处,访问由多个条目填充的数组数据结构,其中每个条目对应于待传输的分组的队列中的分组,其中条目根据队列中的分组的顺序进行排序,以及其中特定条目包括基于在相邻条目中存储的分组大小和对应于特定条目的分组的分组大小的总和的值。在904处,搜索数组数据结构以标识具有最接近门大小但又不大于该门大小的值的传输条目。在906处,传输从队列直到与该传输条目相关联的特定分组的分组。
本申请使用示例来说明本发明。本发明的可授予专利的范围可以包括其他示例。
Claims (20)
1.一种用于在网络上传输分组的网络单元,包括:
计算机可读介质,编码有通过多个条目填充的数组数据结构,每个条目对应于待传输的分组的队列中的分组,所述条目根据所述队列中的分组的顺序进行排序,特定条目包括基于在相邻条目中存储的分组大小和对应于所述特定条目的分组的分组大小的总和的值;
搜索引擎,被配置用于接收表示向所述网络单元授予的带宽的门大小,所述搜索引擎被配置用于搜索所述数组数据结构以标识所述数组数据结构中具有最接近所述门大小但又不大于所述门大小的值的特定条目作为传输条目;以及
传输引擎,被配置用于:
标识与所述传输条目相关联的特定分组;以及
传输从所述队列的开始处直到所述特定分组的分组。
2.根据权利要求1所述的网络单元,其中所述搜索引擎是多关键字搜索引擎,其进一步被配置用于:
接收阈值;以及
将所述数组数据结构中具有最接近所述门大小加所述阈值但又不大于所述门大小加所述阈值的值的第二特定条目标识为报告条目;
所述传输引擎进一步被配置用于:
基于所述报告条目传输报告。
3.根据权利要求1所述的网络单元,其中每个条目基于与所述数组数据结构中的先前条目相关联的分组的分组大小加对应于该条目的分组的分组大小的总和。
4.根据权利要求1所述的网络单元,其中所述数组数据结构的第一条目标识所述队列中的第一分组的分组大小,其中所述数组数据结构的第二条目标识所述第一条目与所述队列中的第二分组的分组大小的总和,并且其中所述数组数据结构的第三条目标识所述第二条目与所述队列中的第三分组的分组大小的总和。
5.根据权利要求2所述的网络单元,其中所述多关键字搜索引擎被配置用于对所述数组数据结构执行多关键字二分查找,所述多关键字二分查找用于在单个周期中搜索与所述门大小和所述阈值两者都相关联的值。
6.根据权利要求5所述的网络单元,其中所述多关键字搜索引擎被配置用于执行所述多关键字二分查找的第一阶段,所述第一阶段标识所述传输条目和所述报告条目中的每个驻留在所述数组数据结构的两个半部分中的哪个半部分。
7.根据权利要求6所述的网络单元,其中所述多关键字搜索引擎被配置用于执行所述多关键字二分查找的附加阶段,以将所述门大小和所述阈值与所述数组数据结构的单独分段相关联,并且其中当所述门大小与第一分段相关联并且所述阈值与不同的第二分段相关联时,基于所述门大小和所述第一分段、使用单关键字二分查找标识所述传输条目,并且基于所述阈值和所述第二分段、使用所述单关键字二分查找标识所述报告条目。
8.根据权利要求2所述的网络单元,其中所述门大小作为门通信的一部分而被接收,其中所述门通信进一步包括门起始时间,并且其中所述传输条目和所述报告条目位于所述数组数据结构中,并且基于所述门通信的接收与所述门起始时间之间的时间段中的所述传输条目和所述报告条目生成所述报告。
9.根据权利要求1所述的网络单元,其中所述分组传输自所述队列的前面,其中所述传输的分组的累积大小小于或等于所述门大小,并且其中传输与所述队列中的所述传输条目相关联的所述特定分组之后的分组将会产生大于所述门大小的位或字节的位或字节的累积大小的传输。
10.根据权利要求1所述的网络单元,其中所述报告标识请求长度,并且其中所述请求长度等于所述报告条目减所述传输条目。
11.根据权利要求10所述的网络单元,其中所述请求长度标识针对随后门的针对所述网络单元的特定带宽请求。
12.根据权利要求2所述的网络单元,其中所述多关键字搜索引擎被配置用于接收多个阈值,其中所述多关键字搜索引擎被配置用于针对所述阈值中的每个阈值标识单个报告条目。
13.根据权利要求1所述的网络单元,其中所述队列基于多个子队列,并且其中每个子队列与关联于所述网络单元的计算机的应用或处理相关联。
14.根据权利要求1所述的网络单元,其中所述网络单元被配置用于根据以太网无源光网络(EPON)标准传输来自所述队列的分组。
15.根据权利要求1所述的网络单元,其中所述特定条目被配置用于当在所述相邻条目中存储的分组大小与所述对应的分组的分组大小的总和大于最大值时溢出,其中所述搜索引擎被配置用于检测所述特定条目何时是溢出条目,并且其中所述搜索引擎被配置用于当所述特定条目被检测为溢出条目时进行经调整的比较。
16.根据权利要求1所述的网络单元,其中所述数组数据结构是包括第一元素和最后元素的循环数组数据结构,其中所述最后元素包括指向所述第一元素的指针。
17.一种基于接收的门大小传输数据的计算机实现的方法,包括:
访问由多个条目填充的数组数据结构,其中每个条目对应于待传输的分组的队列中的分组,其中所述条目根据所述队列中的所述分组的顺序进行排序,并且其中特定条目包括基于在相邻条目中存储的分组大小和对应于所述特定条目的分组的分组大小的总和的值;
搜索所述数组数据结构以标识具有最接近所述门大小但又不大于所述门大小的值的传输条目;以及
传输从所述队列直到与所述传输条目相关联的特定分组的分组。
18.根据权利要求17所述的方法,进一步包括:
标识具有最接近所述传输条目加所述阈值但又不大于所述传输条目加所述阈值的值的报告条目;以及
基于所述报告条目传输报告。
19.根据权利要求17所述的方法,其中每个条目基于与所述数组数据结构中的先前条目相关联的分组的分组长度加对应于该条目的分组的分组大小的总和。
20.根据权利要求18所述的方法,其中所述多关键字搜索引擎被配置用于执行多关键字二分查找,并且其中所述多关键字搜索引擎被配置用于执行所述多关键字二分查找的第一阶段,所述第一阶段标识所述传输条目和所述报告条目中的每个驻留在所述数组数据结构的两个半部分中的哪个半部分。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161557327P | 2011-11-08 | 2011-11-08 | |
US61/557,327 | 2011-11-08 | ||
US201161557512P | 2011-11-09 | 2011-11-09 | |
US61/557,512 | 2011-11-09 | ||
US201261582965P | 2012-01-04 | 2012-01-04 | |
US61/582,965 | 2012-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103152288A true CN103152288A (zh) | 2013-06-12 |
CN103152288B CN103152288B (zh) | 2017-08-29 |
Family
ID=48223769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210464365.0A Expired - Fee Related CN103152288B (zh) | 2011-11-08 | 2012-11-08 | 用于在网络上传输数据的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9154335B2 (zh) |
CN (1) | CN103152288B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464518A (zh) * | 2015-05-25 | 2017-02-22 | 华为技术有限公司 | 一种消息的传输方法、装置和系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9154335B2 (en) * | 2011-11-08 | 2015-10-06 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for transmitting data on a network |
CN106844075A (zh) * | 2015-12-04 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种数据传递方法和设备 |
US10798603B2 (en) * | 2016-03-10 | 2020-10-06 | Cisco Technology, Inc. | Quality of service framework for applications |
CN108353010B (zh) * | 2016-03-10 | 2021-05-25 | 思科技术公司 | 用于无线接入和有线网络集成的技术 |
US10764114B2 (en) | 2016-03-10 | 2020-09-01 | Cisco Technology, Inc. | Techniques for wireless access and wireline network integration |
US10831756B2 (en) | 2017-12-18 | 2020-11-10 | Red Hat, Inc. | Enhanced searching of data in a computer memory |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901140A (en) * | 1993-10-23 | 1999-05-04 | International Business Machines Corporation | Selective congestion control mechanism for information networks |
US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
US6430527B1 (en) * | 1998-05-06 | 2002-08-06 | Avici Systems | Prefix search circuitry and method |
US6678269B1 (en) * | 1998-10-05 | 2004-01-13 | Alcatel | Network switching device with disparate database formats |
US6718326B2 (en) * | 2000-08-17 | 2004-04-06 | Nippon Telegraph And Telephone Corporation | Packet classification search device and method |
US6868232B2 (en) * | 2001-02-12 | 2005-03-15 | Lucent Technologies Inc. | Fast protection switching by snooping on upstream signals in an optical network |
JP2004524617A (ja) * | 2001-02-14 | 2004-08-12 | クリアスピード・テクノロジー・リミテッド | クロック分配システム |
US6813620B2 (en) * | 2001-03-07 | 2004-11-02 | Broadcom Corporation | Binary search engine and method |
US7231383B2 (en) * | 2002-05-01 | 2007-06-12 | Lsi Corporation | Search engine for large-width data |
JP2005534102A (ja) * | 2002-07-23 | 2005-11-10 | サムスン エレクトロニクス カンパニー リミテッド | メタデータのインデックス構造と記録媒体 |
US7219184B2 (en) * | 2002-12-10 | 2007-05-15 | Isic Corporation | Method and apparatus for longest prefix matching in processing a forwarding information database |
US20040139107A1 (en) * | 2002-12-31 | 2004-07-15 | International Business Machines Corp. | Dynamically updating a search engine's knowledge and process database by tracking and saving user interactions |
US7200714B2 (en) * | 2003-06-26 | 2007-04-03 | Hywire Ltd. | Concatenated multi-dimensional associative search engines |
JP2007013440A (ja) * | 2005-06-29 | 2007-01-18 | Toshiba Corp | メディア鍵生成方法、メディア鍵生成装置、再生装置、及び記録再生装置 |
US7784094B2 (en) * | 2005-06-30 | 2010-08-24 | Intel Corporation | Stateful packet content matching mechanisms |
JP4779955B2 (ja) * | 2006-01-06 | 2011-09-28 | 富士通株式会社 | パケット処理装置及びパケット処理方法 |
US8345685B2 (en) * | 2006-06-09 | 2013-01-01 | Ethernety Networks Ltd | Method and device for processing data packets |
US7839831B2 (en) * | 2007-01-08 | 2010-11-23 | Qualcomm Incorporated | Methods and apparatus for time tracking using assistance from TDM pilots in a communication network |
CN101477554A (zh) * | 2009-01-16 | 2009-07-08 | 西安电子科技大学 | 基于用户兴趣的个性化元搜索引擎及搜索结果处理方法 |
US8880507B2 (en) * | 2010-07-22 | 2014-11-04 | Brocade Communications Systems, Inc. | Longest prefix match using binary search tree |
US20120110411A1 (en) * | 2010-10-29 | 2012-05-03 | Brocade Communications Systems, Inc. | Content Addressable Memory (CAM) Parity And Error Correction Code (ECC) Protection |
US8493764B2 (en) * | 2011-02-10 | 2013-07-23 | Lsi Corporation | High density CAM array architectures with adaptive current controlled match-line discharge |
US8456331B2 (en) * | 2011-04-15 | 2013-06-04 | Cavium, Inc. | System and method of compression and decompression |
US9154335B2 (en) * | 2011-11-08 | 2015-10-06 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for transmitting data on a network |
-
2012
- 2012-11-07 US US13/671,073 patent/US9154335B2/en not_active Expired - Fee Related
- 2012-11-08 CN CN201210464365.0A patent/CN103152288B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464518A (zh) * | 2015-05-25 | 2017-02-22 | 华为技术有限公司 | 一种消息的传输方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
US9154335B2 (en) | 2015-10-06 |
US20130114960A1 (en) | 2013-05-09 |
CN103152288B (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103152288A (zh) | 用于在网络上传输数据的方法和装置 | |
CN103902646A (zh) | 一种分布式任务管理系统与方法 | |
CN101616174A (zh) | 一种存储系统io处理路径动态跟踪实现优化系统性能的方法 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN108241539B (zh) | 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 | |
CN112765262A (zh) | 一种数据重分布方法、电子设备及存储介质 | |
CN109005223A (zh) | 物联网资源调度方法及系统、计算机可读存储介质和终端 | |
CN102054000A (zh) | 数据查询方法、装置及系统 | |
Liu et al. | Efficient RFID grouping protocols | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
CN102081624B (zh) | 一种数据查询的方法及装置 | |
CN110413419A (zh) | 一种规则执行的方法和装置 | |
EP2439881A1 (en) | Cluster system and request message distribution method for processing multi-node transaction | |
CN104158860A (zh) | 一种作业调度方法及作业调度系统 | |
CN110069565A (zh) | 一种分布式数据库数据批量处理的方法及装置 | |
CN116701191A (zh) | 量化回测的优化方法、装置、设备、存储介质及程序产品 | |
CN111209100B (zh) | 一种业务处理和数据源确定方法 | |
CN106407307A (zh) | 一种分布式数据库节点数据交互方法及装置 | |
CN115905219B (zh) | 多通道数据存云库用的数据存储驱动系统及其传输方法 | |
CN104010377A (zh) | 增强wcdma系统前导检测处理能力的方法和装置 | |
US10146820B2 (en) | Systems and methods to access memory locations in exact match keyed lookup tables using auxiliary keys | |
CN116700632B (zh) | 一种高可靠的金融信息数据存储方法 | |
CN112269834B (zh) | 一种公安大数据分布式管控系统及方法 | |
CN109165220B (zh) | 一种数据匹配计算方法 | |
CN112788778B (zh) | 一种数据发送方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170829 Termination date: 20171108 |