CN101485152B - 用于高性能捆绑重排序的方法、系统及计算机程序产品 - Google Patents

用于高性能捆绑重排序的方法、系统及计算机程序产品 Download PDF

Info

Publication number
CN101485152B
CN101485152B CN2007800250645A CN200780025064A CN101485152B CN 101485152 B CN101485152 B CN 101485152B CN 2007800250645 A CN2007800250645 A CN 2007800250645A CN 200780025064 A CN200780025064 A CN 200780025064A CN 101485152 B CN101485152 B CN 101485152B
Authority
CN
China
Prior art keywords
segmentation
sequence number
psn
channel
receives
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.)
Active
Application number
CN2007800250645A
Other languages
English (en)
Other versions
CN101485152A (zh
Inventor
大卫·普伦
奈基·潘特利斯
丹尼·盖伊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies General IP Singapore Pte Ltd
Original Assignee
Zyray Wireless Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zyray Wireless Inc filed Critical Zyray Wireless Inc
Publication of CN101485152A publication Critical patent/CN101485152A/zh
Application granted granted Critical
Publication of CN101485152B publication Critical patent/CN101485152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及对在捆绑信道集的多个信道中接收到的多个数据分段进行接收和重排序的方法、系统和计算机程序产品。包括确认接收到的分段的序号是否与期望序号相匹配。如果匹配,处理过程包括转发所述分段以作进一步处理;增加期望序号的计数;及转发排在队列中的与所述期望序号相对应的分组、及紧接随后的序号小于下一个缺少分段的序号的分组。如果接收到的分段的序号与期望序号不匹配,在存储器中将接收到的分段排入队列,将其位置地址转换为分段索引。将分段索引存储在稀疏阵列中。

Description

用于高性能捆绑重排序的方法、系统及计算机程序产品
技术领域
本发明涉及通信系统,更具体地说,涉及分段或分组数据的发送和处理。
背景技术
信道捆绑是将两点之间的多个独立的通信信道当作一个单独的“虚拟”信道来处理,该“虚拟”信道与可能的带宽相比则具有更大的总带宽。除了容量更大,这种配置还具有其它优点,如提高了虚拟信道的整体可靠性。由于一个虚拟信道是由多个物理信道组成,如果当有一个或多个物理信道出现故障,虚拟信道固有的冗余使得其可以继续工作。
信道捆绑的概念可通过图1的电缆通信系统来说明。在这个例子中,电缆调制解调器终端系统(CMTS)110与电缆调制解调器(CM)130正在进行通信。数据通过信道120a-120i从CMTS 110传送到CM 130。在给定的一段时间内,信道120a-120i中部分或全部信道可以捆绑起来,则这段时间内的分段数据(例如分组)可以通过这些信道发送。某一给定的分段(segment)或分组数据可通过这些信道中的一个信道发送,而下一个分段或分组数据可通过相同的信道发送,也可通过该捆绑信道集合(BCS)中的另一个不同信道发送。然后CM 130在将这些分段或分组数据发送给最终用户前必须对其进行重组。
在捆绑信道中发送数据的一种方案是发送端发送全部分组,并基于负载均衡、速率限制或其它信道选择方法将这些分组数据分配到各个信道中传送。另一种方案是将一串分组数据连接为一个字节流,再将该字节流分成段通过不同信道传送。在这两种方案中,分组/分段数据要由发送方(例如CMTS)标记上序号,以使接收方(例如CM)能够按照适当的分组/分段数据顺序产生数据流。这一过程称为重排序,以保证数据以正确的顺序到达最终用户。
对多个捆绑信道的重排序可能是时间密集型处理,其将消耗大量的内存。分段或分组数据可能不按顺序接收。当接收端在任意几个捆绑信道上接收一个或多个编号靠后的分段数据时,会出现间隔(gap)造成分段或分组数据丢失(missing)。编号靠后的分段数据必须保存到存储器中直到接收到丢失的分段。在这一点上,丢失的分段数据可以与顺序排在该丢失分段数据之后的已保存分段数据一起发送给最终用户。这些保存的分段数据必须从存储器中读取并以编号顺序发送给用户。
高性能、低成本设备如电缆调制解调器得益于排序分组数据的有效重排序方法。期望在CM或CMTS中实现快速重排序,并且无需占用大量的存储器/寄存器资源。因此需要一种在接收节点中有效地重排序分组或其它数据分段的系统和方法,其中重排序处理仅需最小限度的存储量并且操作速度相对较高。
附图说明
图1是通信系统中一组捆绑信道的示意图;
图2是本发明一实施例的处理过程流程图;
图3是根据本发明一实施例的排序分段数据的过程的流程图;
图4是根据本发明一实施例确定分段数据是否丢失的过程的流程图;
图5是根据本发明一实施例的从队列中除去分段数据的过程的流程图;
图6-9是根据本发明的实施例的在处理过程的各个阶段的示例性稀疏阵列的结构和内容的示意图;
图10是根据本发明的实施例的本发明的计算环境的示意图。
以下将结合附图对本发明的实施例、特征和有益效果以及各个实施例的操作进行描述。
具体实施方式
现参考附图对本发明实施例进行描述,附图中,同一个附图标记在各幅附图中用于表示相同的部件或功能相似的部件。另外,附图标记最左边的数字用于标识该附图标记首次出现时的那幅附图的编号。应当理解,虽然所讨论的是特定的配置和设置,但这仅是为举例说明的目的。本领域的技术人员知悉,也可使用其它的配置和设置,而不脱离本发明的精神和范围。本领域的技术人员知悉,本发明还可以运用到其它各种不同的应用中。
I、引言
本发明涉及对通过BCS接收到的分组或分段数据重排序的方法和系统。这些分段数据接收时顺序是乱的,本发明在接收端对这些分段数据进行重排序以便发送给最终用户。某些分段数据可能会丢失再也接收不到。本发明允许接收端确认是否缺少的分段数据应当认为是丢失的,并继续处理分段数据。本发明可以由软件或硬件实现,或由软、硬件的结合来实现。
该系统可以用于按照有线电视数据传输服务接口规范(DOCSIS)标准或类似的标准进行通信。例如,本发明可以在电缆调制解调器中实施,或者在从一组捆绑信道上的电缆调制解调器终端系统中接收下行数据分段或分组的其它最终用户设备中实施。因此,在以下的讨论中,按照从CMTS到CM的下行通信来描述。需要注意的是,本发明的技术方案也可以应用到从CM到CMTS的捆绑信道上行通信中。此外,除了使用电缆本发明还可应用于使用其它传输媒介的DOCSIS系统,包括但不限于光纤和无线媒介。本发明还可应用于非DOCSIS标准的通信系统中。
II、术语
本发明使用以下术语描述捆绑操作。其中一些术语也由DOCSIS 3.0规范定义:
RCS:接收信道集。这是通信信道的一个集合,接收实体能够在其上接收数据。
BCS:捆绑信道集。这是RCS的子集,代表发射和接收实体已达成共识使用这些信道来发送与捆绑会话(bonding session)相关的数据。
捆绑会话:一种状态信息,发射和接收实体使用该状态信息来执行捆绑。在同一时间可能存在多个捆绑会话活动。
DSID:下行服务标识,用来标识特定的下行捆绑会话(上行捆绑会话使用不同的机制来标识这种会话)。下行分段或分组可以用DSID标记,以使CM知晓该分段或分组属于哪个会话。
PSN:分组序列号,这个编号用于指示在捆绑会话中某个分段或分组相对于该捆绑会话中其它分段或分组的顺序。用PSN对分段或分组进行标识,以使接收实体知晓如何对这些分段或分组进行重排序。需注意DOCSIS 3.0要求在信道上以递增的PSN顺序发送分组(例如发射实体可以在信道0上先发送PSN 3然后发送PSN 5,而不能先发送PSN 5再发送PSN 3)。
信道ID:表示在其上接收分段或分组的信道的编号。分组或分段不用标识信道ID,因为接收实体必定知晓所接收的信道。
本发明可应用于任何捆绑信道通信系统,以便发射和处理从大数据流分割出来的各个数据块。这种分段可以是或不是本领域技术人员通常所理解的术语“分组”。因此在后面的讨论中将全部使用“分段”这一术语。
III、重排序
接收实体例如CM维护一个代表任意给定的捆绑会话中下一个期望分段的PSN的计数或变量。接收到的分段将被标记上用于标识该捆绑会话的PSN和DSID。当CM接收一个分段时,CM查找与该分段的DSID相关联的捆绑会话。如果该分段的PSN与捆绑会话中的下一个期望分段的PSN相匹配,该分段将被转发,且通过增加下一个期望的PSN来更新会话状态。如果该分段的PSN与下一个期望分段的PSN不匹配,基于带有下一个期望分段PSN的分段在将来的某个时间点能够到达BCS信道中的一个捆绑信道这个假设,该分段将排队等待以后处理。在这种情况下,不增加下一个期望PSN的计数值。
由于多种原因,带有较高PSN的分段可能会在较低PSN分段之前接收到。这些原因包括:
·信道拥塞-CMTS将标识为PSN 1的分段在信道0上排队发送,将标识为PSN 2的分段在信道1上排队发送。但是,如果有一些其它分段排在信道0的前部等待发送,则标识为PSN 1的分段必须等待,可能发送时间会在标识为PSN 2的分段之后。因此PSN 2分段会先于PSN 1分段到达。
·反应时间/速度-如果BCS中的各信道具有不同的特性(交错深度、调制率等),则在同一时间排队等待发送的分段将在不同时间到达,这是因为这些比特通过“较慢”信道传送花费的时间较长。
·分段尺寸-当所有的比特都达到时,分段只能由CM进行处理。在其它条件相同的情况下,因此较小尺寸的分段将视作比大尺寸分段先到达而首先得到处理。
·信道服务排序-CM能够同时在多个信道上接收分段,但是其对信道进行服务的顺序造成分段未能按照PSN顺序进行处理。
·分段丢失(loss)-带有较低PSN的分段有可能丢失(由于出错、溢出等),造成带有较高PSN的分段排队直到期满超时或发生一些其它事件迫使CM将缺少的分段当作不可恢复分段。后面将对这部分进行详细描述。
·同一时间可能会出现上述多种情形。
CM必须缓冲较高PSN的分段直到缺少的(missing)分段到达。如果缺少的分段丢失,超时或快速丢失检测将略过缺少的分段将其当作不可恢复分段。
重排序处理实施例如图2所示。图2展示了接收分段及按需要保存或转发分段的过程。处理过程开始于步骤205。在步骤210,接收实体例如CM接收分段。在步骤215,读取该分段的DSID和PSN。在步骤220,接收实体按照DSID的指示查找该分段所属的捆绑会话。在步骤225,确定接收到的PSN是否与该会话中下一个期望分段的PSN代表值相匹配。
如果相匹配,则在步骤240将接收到的分段转发给最终用户。还可以选择对该分段进行其它处理。在步骤245,为指示下一个期望分段的PSN增加计数值。在步骤250,确认与计数值增加后的下一个期望PSN相对应的分段是否排在队列中。如果没有,处理过程返回到步骤210,接收下一个分段。如果在步骤250中确定队列中存在与计数值增加后的下一个期望PSN相对应的分段,则处理过程转到步骤240,转发排在队列中的该分段。
如果在步骤225中,接收到的分段的PSN大于该会话中的期望PSN,则在步骤230将该分段排入队列中。后面将结合图3对步骤230进行更详细描述。
在步骤235,确定是否存在应当当作丢失分段对待的任何未接收到的分段。这个步骤将在后面结合图4进行详细描述。之后,处理过程返回步骤210。
图3是步骤230(将接收到的分段排入队列中)的更详细示意图。这一处理过程开始于步骤310。在步骤320,将接收到的分段写入缓冲器。在步骤330,将缓冲器地址转换为分段索引。在步骤340,哈希化(hashed)接收到分段的PSN以生成稀疏阵列索引(sparse array index)。在步骤350,将分段索引写入稀疏阵列中由上述步骤340得到的稀疏阵列索引指定的位置,处理过程结束。
在步骤235中,确定先前任何未接收到的分段是否已经丢失,如图4中根据本发明一实施例的详细描述。处理过程开始于步骤410,之后应用两个检验方式(test)来确认是否分段应当被认作丢失。在步骤420,应用第一检验:确认在BCS的每一个信道上是否有排入队列中的分段。如果有则进入步骤440。在该步骤将期望PSN的值提升到与已经接收的下一个分段相对应的PSN。因此,当队列中排入有足够的分段时(通过每个信道上有一个或多个排入队列的分段来确定),确定等待中的(即排入队列的)数据量足以认定任何未接收到的分组已经丢失。这样允许期望的PSN增加计数为下一个接收分段的PSN(步骤440)。之后,转发队列中的分段(步骤445)。步骤445包括从队列中移除这些分段,这部分操作将在后面结合图5详细描述。
如果在步骤420确认BCS的每一个信道不全都有排队分段,则处理过程进入步骤430。在步骤430,应用第二检验:确认指定的未接收到的分组缺失的时间是否大于预定时长。如果不是,则处理过程在步骤450结束。但是如果缺少的分段缺失的时间已经大于预定时长,则缺少的分段被认为超时。处理过程已经等待足够长时间(由预定时长所规定),足以将未接收到的分组当作丢失处理。在步骤460中增加期望PSN的计数值,跳过缺少的分段。
如果在步骤470中确认期望PSN现在所指示的分段是排在当前队列中的,则在步骤480转发排在队列中的该分段。处理过程之后进入步骤460,再次增加期望PSN的计数值。只要队列中持续有对应于期望PSN的分段存在(如步骤470中确定),则增加期望PSN的计数值(步骤460)和转发指示的分段(步骤480)循环继续进行。
如果在步骤470中确认队列中没有对应于期望PSN的分段存在,则处理过程返回步骤430,确认是否有其它缺少的分段已经超时。
注意步骤420和430表示两种条件,两者都意味着一个或多个缺少的分段将当作丢失处理。在本发明的另一个实施例中,可以增加其它检验或使用其它检验替代这两种检验(test)。
图5是根据本发明一实施例的从队列中移除分段的处理过程的流程图。该处理过程开始于步骤510。在步骤520,哈希化(hashed)排入队列中分段的PSN,生成稀疏阵列的索引。在步骤530,从稀疏阵列中读取分段索引。具体而言,从由上一步骤生成的稀疏阵列索引所指示的稀疏阵列中的位置读取分段索引。在步骤540中,将分段索引转换成缓冲器地址。在步骤550中,从存储器的缓冲器地址处读取分段。处理过程在步骤560结束。
以下将通过实施例对上面讨论的处理过程作进一步说明。注意虽然后面的讨论是以从CMTS到CM经由捆绑信道集下行通信为例来对本发明的处理过程进行描述,但本发明的处理过程也可应用到上行方向。此外,本发明不限于电缆媒介或DOCSIS相关通信。
IV.实例
以下对本发明实例的操作进行说明。本实例的目的是说明在用于发射数据分段集合的假设BCS的情况下,本发明如何实现其功能。本实例只是举例说明,不存在限定本发明范围的意图。
假设CM有一个4信道(信道0-3)的接收信道集(RCS)。进一步假设有下行服务标识为DSID 1的单个捆绑会话,且该会话的BCS包含三个信道(0-2)。CM正等待DSID 1中期望PSN值为10的下一个分段。下面的表格展示了由CMTS发送的分段的PSN。空白单元格表示在特定时间和信道上没有分段发送。在本实例中,假设由于信道错误,缺少分组序列号为PSN 10、15、17和19的分段。
Figure G2007800250645D00081
发生以下事件:
在时刻0:CMTS发送带有PSN 10的分段,但是CM未接收到。
在时刻1:
--带有PSN 13的分段到达信道0。PSN与期望的下一个PSN不匹配,因此这个接收到的分段在稍后的处理中被排入队列。
--带有PSN 11的分段到达信道1。PSN与期望的下一个PSN 10不匹配,排入队列。
在时刻2:
--带有PSN 14的分段到达信道0。PSN与期望的下一个PSN 10不匹配,排入队列。
--CMTS发送带有PSN 15的分段,但是CM未接收到。
--带有PSN 12的分段到达信道2。PSN与期望的下一个PSN 10不匹配,排入队列。
--现在CM在BCS的每一个信道上都有分段在排队,因此它可以假设PSN10丢失。带有PSN 11、12、13和14的分段立即被转发。
--下一个期望PSN被设置为15,CM在各个信道上都没有分段在排队。
在时刻3:
--带有PSN 16的分段到达信道1。PSN与期望的下一个PSN 15不匹配,排入队列。
--CMTS发送带有PSN 17的分段,但是CM未接收到。
在时刻4:
--带有PSN 20的分段到达信道1。PSN与期望的下一个PSN 15不匹配,排入队列。
--带有PSN 18的分段到达信道2。PSN与期望的下一个PSN 15不匹配,排入队列。
在时刻5:
--CMTS发送带有PSN 19的分段,但是CM未接收到。
在将来的时刻N:(N代表到达超时期间)
--CM超时等待带有PSN 15的分段,假设该分段丢失。
--带有PSN 16的分段立即被转发。
--下一个期望PSN被设置为17。
在将来的时刻N+1:
--CM超时等待带有PSN 17的分段,假设该分段丢失。
--带有PSN 18的分段立即被转发。
--下一个期望PSN被设置为19。
在将来的时刻N+3:
--CM超时等待带有PSN 19的分段,假设该分段丢失。
--带有PSN 20的分段立即被转发。
--下一个期望PSN被设置为21。
V.本发明的具体实施方式:
如上面所讨论,CM需要知晓捆绑会话状态,特别是下一个期望PSN,并为PSN与下一个期望PSN不相匹配的排队分段提供存储空间。还必需知晓缺少的分段的计时器和或时间戳。该参数可用于超时处理,当确认缺少的分段是否是不可恢复时,如下面将讨论。
分段排队和计时器/时间戳会消耗大量的存储空间,需要的存储空间由所使用的表达机制所决定。这将增大系统成本(需要更大的存储器来追踪该状态),并由于必需频繁访问大量数据(造成很大的总线/RAM访问量和击溃(thrashing)高速缓冲存储器)而降低系统效率。
为避免由于本地系统资源原因造成分段丢失所需要的分段和计时器/时间戳的数量,可以根据捆绑信道特性计算得出。可能需要排入队列的最大分段的数量NumEntries可由下式估算:
NumEntries=PacketRate*(MaxDelayMs/1000)*NumChannels
其中:
PacketRate是每秒每信道接收到的分段数量,
MaxDelayMs是任意分段的最大延迟,以毫秒为单位,
NumChannels是BCS中信道的数量。
注意当信道负载不对称时,该公式变为:
NumEntries=AggregatePacketRate*(MaxDelayMs/1000)
其中AggregatePacketRate是在BCS的全部信道上接收分段的速率,以分段/秒为单位。这样,如果期望的分组速率是每秒每信道88k分段,最大信道延迟是23ms,且有4个信道:
NumEntries=88000*(23/1000)*4=8096条目(entries)/捆绑会话
如果使用标准双重连接列表(standard doubly linked list)(假设每条目12字节),将消耗大约95k字节的存储空间/捆绑会话。如果CM需要支持至少16个会话,则将消耗将近1.5MB的RAM。
组织得不好的分段队列可能导致更差的CM转发性能,因为分段必须按照PSN顺序转发,但是常常不按PSN顺序接收。CM需要频繁地管理队列(增加/移除/发现分段和计时器/时间戳),且队列组织会影响操作的执行量。
一种存储分段和时间戳以便重排序的方法是使用稀疏阵列(也称为向量)。对于给定的分段,该阵列可使用分段PSN的哈希值(hash)来访问。在本发明的一实施例中,该稀疏阵列是16比特值阵列。这是可以选择的,因为它可以是CPU的原比特数(natural size),在所使用的存储器有限的情况下,它允许CM知晓大量的未完成的重排序分段。其它实施例可以使用32比特值或更多比特。
如果捆绑信道特性(例如,PacketRate,MaxDelayMs和NumChannels)建议存储分段只需较少的条目,则阵列值可以具有不同尺寸(例如8比特)。如果有较多信道,则需要更大的条目(例如32比特)。硬件实施可选择地使用任意断的比特尺寸(例如12比特),定制到与可选择的硬件环境相匹配。
如果PSN是16比特值,意味着直接映射稀疏阵列将有64k个条目;如果一个条目是16比特长,将消耗128k字节。这样效率会较差,虽然只有足够的分段需要满足MaxDelayMs值(在先前的实例中差不多8k个条目)。结果,稀疏阵列的尺寸比64k条目小。
注意在软件实现上,可以方便地使稀疏阵列尺寸为2的次幂(a power oftwo)。这样使得稀疏阵列索引和PSN相互一致地绕回零,使追踪当前偏移更容易。硬件实现上(或更复杂的软件实现)能够允许稀疏阵列尺寸不同于2的次幂(a power of two)。
由上式计算得到的NumEntries可以按需要向上舍入或向下舍入,以使其为2的次幂(向下舍入使用较少的存储空间但是具有不能缓冲足够多分段的风险;向上舍入要使用较多的存储空间,但是保证不会由于在高分段速率下因缓冲器约束而丢弃分段)。除非在有限压力测试中,高分段速率是不太可能的,在这种情况下向下舍入是可以接受的。
图6所示为基于先前的重排序实例的稀疏阵列的状态。该稀疏阵列具有M个条目。注意在所示的实施例中,0xffff是用于指示“空时隙(slot empty)”的特殊值,“空时隙(slot empty)”表示分段未排入队列,超时未激活。如果毫秒时钟计数是0x7fff(将使0xffff得以存储),则时钟计数增加到0x0000,并存储0x8000。这将造成分段缓冲时间比最大超时(timeout)长1毫秒,但是这一差异是DOCSIS规范所允许的。
稀疏阵列中的这些条目由与分段关联的PSN来索引。在本发明的一实施例中,哈希值只是由相等于阵列尺寸的模数简化后的PSN:
SparseArrayIndex=PSN mod ArraySize
因此,如果阵列尺寸是4096,则PSN 1、4098和7121的阵列索引如下:
稀疏阵列索引=1 mod 4096=1
稀疏阵列索引=4098 mod 4096=2
稀疏阵列索引=7121 mod 4096=3025
分段索引N存储于稀疏阵列条目中,是由分段缓冲地址计算得出;当在下行信道接收到一个分段,可以通过直接存储访问(DMA)存入缓冲器。在本实例中,缓冲器是通过32-比特地址进行寻址。这一地址过长以至于无法存储到稀疏阵列条目中可用的15-比特字段中。然而,由于DMA缓冲器在存储器中是邻近的,并且具有相同的尺寸,分段索引可以从存储该分段的缓冲器的地址计算得出。
SegmentIndex=(BufferAddress-BaseAddress)/BufferSize
例如,如果DMA缓冲器的BaseAddress是0x80201380,每个缓冲器是2048字节,则地址为0x80205b80和0x80226b80的缓冲器的分组索引为
SegmentIndex=(0x80205b80-0x80201380)/2048=9
SegmentIndex=(0x80226b80-0x80201380)/2048=75
同样,从其索引中可以计算出指针:
BufferAddress=(SegmentIndex*BufferSize)+BaseAddress
可以使用与先前的实例相同的缓冲器:
BufferAddress=(9*2048)+0x80201380=0x80205b80
BufferAddress=(75*2048)+0x80201380=0x80226b80
如前所述,当分段在下行信道中到达,如果PSN与捆绑会话的下一个期望PSN不匹配,则CM将缓冲该分段并为缺少的分段启动超时计时器。
CM将缓冲器地址转换为分段索引,并哈希(hash)PSN以查找稀疏阵列中的条目来存储分段索引。之后,对于从下一个期望PSN到被接收分段的PSN的每一个条目,CM计算当前毫秒时间(模数15比物,MSB置1),存储该时钟计数以指示间隔形成的时间。该时钟计数可以当作超时值。
例如,如果下一个期望PSN是10,在时刻40带有PSN 13的分段到达,并通过DMA存入地址为0x80226b80(分段索引为75)的缓冲器,则稀疏阵列如图7所示。
随后,如果缺少的分段之一到达(其在稀疏阵列中有超时值),该分段索引重写超时值,有效地消掉该条目的超时。例如,在时刻41带有PSN 11的分段到达并存入地址为0x80205b80的缓冲器(分段索引为9)中,则稀疏阵列如图8所示。
如果带有PSN 10和12的分段从未达到(例如由于错误而丢失),一旦MaxDelayMs时间过去,则排在队列中的分段将从队列中释放出来。一旦超时期到或分段从队列中转发,该条目值置为0xfffff以指示该时隙目前未使用,如图9所示。
注意计时器值和分段索引映射到15-比特(另一比特用于标记其它15个比特是表示计时器值还是分段索引)仅是示例性的。这个具体设置并不意味着对本发明的限制。如本领域技术人员所知,其它实施例也是可行的。
VI、计算环境(computing context)
在本发明的实施例中,本文中描述的本发明的处理过程是使用由一个或多个计算机系统所执行的控制逻辑(软件)来实现的,诸如图10所示的计算机系统1000。计算机系统1000是能够执行本文所描述的功能的任意一种计算机系统。在本发明的实施例中,这样的计算机系统整合在通信设备中,诸如CM 130或CMTS 110。
计算机系统1000包括一个或多个处理器(也称为中央处理单元,或CPU),如处理器1004。处理器1004连接至通信总线1006。计算机系统1000还包括存储器1008、如随机存储器(RAM)。主存储器1008存储有控制逻辑(计算机软件)和数据。
计算机系统1000还包括一个或多个辅存储装置1010。辅存储装置1010可包括例如硬盘驱动器1012和或移动存储装置或驱动器1014。移动存储驱动器1014可以是紧凑型盘片驱动器、光存储装置等。
移动存储驱动器1014与移动存储单元1018交互。移动存储单元1018包括计算机可用或可读存储媒介,其上存储有计算机的(控制逻辑)和或数据。移动存储单元1018可以是光盘、闪存装置或任何其它计算机数据存储装置。移动存储驱动器1014以现有的方式读和或写移动存储单元1018。
计算机系统1000还包括通信或网络接口1024。通信接口102使能计算机系统1000与远程设备进行通信。例如,通信接口1024允许计算机系统1000通过通信网络或路径1026进行通信。网络接口1024可以通过有线或无线连接来接驳。
控制逻辑可以经由通信路径1026传送给计算机系统1000和从计算机系统1000传出。具体地说,计算机系统1000可以经由通信路径1026接收和发送由控制逻辑调制的载波(电磁信号)。
任何包括计算机可用或可读媒介、其上存储有控制逻辑(软件)的装置或产品在本文中称为计算机程序产品或程序存储装置。其包括但不限于,计算机系统1000、主存储器1008、硬盘1012和或移动存储单元1018。这样的计算机程序产品中存储有控制逻辑,当一个或多个数据处理装置执行该控制逻辑,能使所述数据处理装置按照本文中描述的本发明实施例进行操作。具体地说,以上描述的功能,如图2-5所示和相关的文字和实例,能够嵌入一个或多个计算机程序产品中。
除了本文中所描述的这些实施例以外,本发明可以通过软件、硬件和或操作系统实现。任何适用于执行本文所描述的功能的软件、硬件和操作系统均可使用。
VII、结束语
上面的讨论展示了本发明的以下特征:
在队列中增加或移除条目包括读取和写入单个值(例如16-比特)。无需像传统链接列表那样管理节点指针。
查找分段应当存储的位置包括哈希PSN,而无需在排入队列的分段的列表中进行全面搜索。
按照PSN顺序转发分段包括增加索引值(下一个期望的PSN),无需走遍链接的列表。
采用与分段相同的机制管理超时/计时器,无需分立的存储器或状态。
使用减法(CurrentTimeMs-SparseArray[Next PSN]>=MaxDelayMs),CM可以进行检验以了解计时器是否已到期。
虽然以上描述了本发明的各种实施例,应当理解,其目的仅在于举例说明,而非意图限制本发明。本领域的技术人员知悉,在不离开本发明的精神和范围情况下,在形式上和细节上还可做各种的改变。因此,本发明的保护范围不当仅局限于以上描述的任一实施例,而应该依照权利要求及其等同来限定。

Claims (5)

1.一种对在捆绑信道集的多个信道中接收到的多个数据分段进行接收和重排序的方法,其特征在于,包括:
确认接收到的分段的序号是否与期望序号相匹配;且,如果匹配,
(i)转发所述分段以作进一步处理;
(ii)增加期望序号的计数;及
(iii)转发排在队列中的与所述期望序号相对应的所有分段、及紧接随后的序号小于下一个缺少分段的序号的分段;
如果接收到的分段的序号与期望序号不匹配,
(iv)在存储器中将接收到的分段排入队列,其位置地址被转换为分段索引并存储在稀疏阵列中;
(v)确认先前的分段是否有丢失。
2.根据权利要求1所述的方法,其特征在于,所述分段包括数据分组。
3.根据权利要求1所述的方法,其特征在于,所述将接收到的分段排入队列包括:
(a)将接收到的分段写入存储器中的缓冲器;
(b)将缓冲器地址转换为分段索引;
(c)哈希化(hashed)接收到的分段的序号以生成稀疏阵列索引;及
(d)将分段索引写入稀疏阵列中由稀疏阵列索引指示的位置上。
4.根据权利要求3所述的方法,其特征在于,哈希化序号包括通过对应于稀疏阵列尺寸的模数来简化序号。
5.根据权利要求3所述的方法,其特征在于,所述地址转换步骤包括从缓冲器地址减去基本地址(base address)得到差值,用所述缓冲器尺寸去除所述差值得到所述分段索引。
CN2007800250645A 2006-10-06 2007-10-05 用于高性能捆绑重排序的方法、系统及计算机程序产品 Active CN101485152B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US84983606P 2006-10-06 2006-10-06
US60/849,836 2006-10-06
US11/902,603 US7751404B2 (en) 2006-10-06 2007-09-24 Method, system, and computer program product for high performance bonding resequencing
US11/902,603 2007-09-24
PCT/US2007/021395 WO2008045321A2 (en) 2006-10-06 2007-10-05 Method, system, and computer program product for resequencing of data segments received over a bonding channel set

Publications (2)

Publication Number Publication Date
CN101485152A CN101485152A (zh) 2009-07-15
CN101485152B true CN101485152B (zh) 2011-07-20

Family

ID=39167029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800250645A Active CN101485152B (zh) 2006-10-06 2007-10-05 用于高性能捆绑重排序的方法、系统及计算机程序产品

Country Status (7)

Country Link
US (2) US7751404B2 (zh)
EP (1) EP2074756B1 (zh)
KR (1) KR101008510B1 (zh)
CN (1) CN101485152B (zh)
AT (1) ATE462245T1 (zh)
DE (1) DE602007005502D1 (zh)
WO (1) WO2008045321A2 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7916731B2 (en) * 2006-11-30 2011-03-29 Broadcom Corporation Method and system for efficient rapid loss detection in a bonding system
KR100908868B1 (ko) * 2007-09-28 2009-07-21 주식회사 넥스지 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템
US9219591B2 (en) 2008-06-23 2015-12-22 Nokia Solutions And Networks Oy Method and apparatus for providing acknowledgement bundling
WO2010006903A1 (en) * 2008-06-23 2010-01-21 Nokia Siemens Networks Oy Method and apparatus for providing acknowledgment bundling
US8638796B2 (en) * 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
US8661083B2 (en) * 2009-04-04 2014-02-25 Oracle International Corporation Method and system for implementing sequence start and increment values for a resequencer
US20100254388A1 (en) * 2009-04-04 2010-10-07 Oracle International Corporation Method and system for applying expressions on message payloads for a resequencer
US8578218B2 (en) * 2009-04-04 2013-11-05 Oracle International Corporation Method and system for implementing a scalable, high-performance, fault-tolerant locking mechanism in a multi-process environment
US9124448B2 (en) * 2009-04-04 2015-09-01 Oracle International Corporation Method and system for implementing a best efforts resequencer
US20110282980A1 (en) * 2010-05-11 2011-11-17 Udaya Kumar Dynamic protection of a resource during sudden surges in traffic
US9553817B1 (en) * 2011-07-14 2017-01-24 Sprint Communications Company L.P. Diverse transmission of packet content
US9100460B2 (en) * 2012-06-28 2015-08-04 Adobe Systems Incorporated Media stream fragment request
KR101404998B1 (ko) 2012-08-02 2014-06-10 주식회사 엑스게이트 Ip 채널 본딩을 통한 데이터 전송 방법
CN110944358B (zh) * 2018-09-25 2021-12-24 华为技术有限公司 数据传输方法和设备
CN109298888B (zh) * 2018-10-31 2021-08-24 杭州迪普科技股份有限公司 队列的数据存取方法及装置
US10820057B2 (en) 2018-11-07 2020-10-27 Nvidia Corp. Scalable light-weight protocols for wire-speed packet ordering
US11108704B2 (en) 2018-12-04 2021-08-31 Nvidia Corp. Use of stashing buffers to improve the efficiency of crossbar switches
CN111669431B (zh) * 2020-05-07 2021-11-19 深圳华锐金融技术股份有限公司 消息传输方法、装置、计算机设备和存储介质
WO2022099683A1 (zh) * 2020-11-16 2022-05-19 华为云计算技术有限公司 一种数据传输方法、装置、设备、系统及存储介质
US11770215B2 (en) 2022-02-17 2023-09-26 Nvidia Corp. Transceiver system with end-to-end reliability and ordering protocols

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1125499A (zh) * 1993-06-15 1996-06-26 艾利森电话股份有限公司 重排序方法和设备
CN1791069A (zh) * 2004-11-09 2006-06-21 阿尔卡特公司 输入排队分组交换结构及队列服务规则

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047364A (en) 1997-08-27 2000-04-04 Lucent Technologies Inc. True modulo addressing generator
AU4059300A (en) 1999-04-02 2000-10-23 Qualcomm Incorporated System and method for prioritizing traffic channel messages
US6934760B1 (en) * 2001-02-04 2005-08-23 Cisco Technology, Inc. Method and apparatus for resequencing of packets into an original ordering using multiple resequencing components
US20030214949A1 (en) * 2002-05-16 2003-11-20 Nadim Shaikli System for reordering sequenced based packets in a switching network
US8995445B2 (en) * 2002-12-19 2015-03-31 International Business Machines Corporation System and method for re-sequencing data packets on a per-flow basis
WO2006020559A2 (en) 2004-08-09 2006-02-23 Arris International, Inc. Very high speed cable modem for increasing bandwidth
US7489641B2 (en) * 2005-04-25 2009-02-10 Acterna Data connection quality analysis apparatus and methods
US7983295B2 (en) * 2005-10-28 2011-07-19 Broadcom Corporation Optimizing packet queues for channel bonding over a plurality of downstream channels of a communications management system
US7573884B2 (en) * 2006-03-06 2009-08-11 Texas Instruments Incorporated Cable modem downstream channel bonding re-sequencing mechanism
US7916731B2 (en) * 2006-11-30 2011-03-29 Broadcom Corporation Method and system for efficient rapid loss detection in a bonding system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1125499A (zh) * 1993-06-15 1996-06-26 艾利森电话股份有限公司 重排序方法和设备
CN1791069A (zh) * 2004-11-09 2006-06-21 阿尔卡特公司 输入排队分组交换结构及队列服务规则

Also Published As

Publication number Publication date
US20080084873A1 (en) 2008-04-10
KR101008510B1 (ko) 2011-01-17
KR20090058499A (ko) 2009-06-09
ATE462245T1 (de) 2010-04-15
US7957392B2 (en) 2011-06-07
DE602007005502D1 (de) 2010-05-06
EP2074756B1 (en) 2010-03-24
WO2008045321A2 (en) 2008-04-17
WO2008045321A3 (en) 2008-07-17
US20100265954A1 (en) 2010-10-21
US7751404B2 (en) 2010-07-06
EP2074756A2 (en) 2009-07-01
CN101485152A (zh) 2009-07-15

Similar Documents

Publication Publication Date Title
CN101485152B (zh) 用于高性能捆绑重排序的方法、系统及计算机程序产品
US20240171507A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
US6967951B2 (en) System for reordering sequenced based packets in a switching network
EP0572145B1 (en) Network adapter for headers alignment
US7257633B2 (en) Dynamic allocation of a pool of threads
CA2204487C (en) Method and system for overhead bandwidth recovery in a packetized network
US5430842A (en) Insertion of network data checksums by a network adapter
US6434145B1 (en) Processing of network data by parallel processing channels
US20040013117A1 (en) Method and apparatus for zero-copy receive buffer management
US20050013274A1 (en) System and method for data transmission and reception
US20060092934A1 (en) System for protocol processing engine
US7464201B1 (en) Packet buffer management apparatus and method
CN103560848A (zh) 用于利用空闲带宽的技术
US20050135395A1 (en) Method and system for pre-pending layer 2 (L2) frame descriptors
DK2119141T3 (en) Method of transmission / reception in real time of data packets between a server and a client terminal, corresponding server and terminal
CN114584560B (zh) 一种分片帧重组方法及装置
CN1408087A (zh) 使用主内存缓冲器在计算机中接收同步数据流的系统
CN100551076C (zh) 传输流解复用装置及方法
US7424653B2 (en) System and method for error capture and logging in computer systems
US20040236982A1 (en) System and method for in-order queue draining
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
CN1695363A (zh) 为分组处理确定时钟信号的方法和系统
CN1926832B (zh) 数据传输记录保存方法
US7103038B1 (en) Systems and methods for converting a P packet/cycle datapath to a Q packet/cycle datapath
US20050265391A1 (en) Apparatus, system, and method for concurrent high-performance transport of variable-length messages

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1135528

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1135528

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20180503

Address after: Singapore Singapore

Patentee after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: california

Patentee before: Zyray Wireless Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190919

Address after: Singapore City

Patentee after: Annwa high tech Limited by Share Ltd

Address before: Singapore City

Patentee before: ANHUA HIGH TECHNOLOGY GENERAL IP (SINGAPORE) COMPANY

TR01 Transfer of patent right