CN103069757A - 一种报文重组重排序方法、装置和系统 - Google Patents

一种报文重组重排序方法、装置和系统 Download PDF

Info

Publication number
CN103069757A
CN103069757A CN2011800014225A CN201180001422A CN103069757A CN 103069757 A CN103069757 A CN 103069757A CN 2011800014225 A CN2011800014225 A CN 2011800014225A CN 201180001422 A CN201180001422 A CN 201180001422A CN 103069757 A CN103069757 A CN 103069757A
Authority
CN
China
Prior art keywords
cell
message
sequence
queues
source
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
Application number
CN2011800014225A
Other languages
English (en)
Other versions
CN103069757B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103069757A publication Critical patent/CN103069757A/zh
Application granted granted Critical
Publication of CN103069757B publication Critical patent/CN103069757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/624Altering the ordering of packets in an individual queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种报文重组重排序方法,包括:接收源端口发送的信元,所述信元携带源标识、报文序列号和信元序列号;根据源标识对接收到的信元进行预处理,以确定是否将所述信元插入报文重组数据库;根据报文序列号对报文重组数据库中的信元进行排序,得到正确排序的报文;若所述正确排序的报文为完整报文,则根据信元序列号对所述正确排序的报文中的信元进行排序,得到正确排序的信元;对所述正确排序的信元进行报文重组。还相应地提供一种网络设备和通信系统。

Description

一种报文重组重排序方法、 装置和系统
技术领域
本发明涉及通信技术领域, 具体涉及一种报文重组重排序方法、装置和系 统。
背景技术
数据通信设备由多个线卡和交换网 (Fabric Switch )板卡组成, 线卡与交 换网板卡之间交叉垂直连接。输入端线卡从上游设备接收到去往不同目的地的 各种长度的报文 (packet )后, 将这些报文输送给报文处理器 (PP , Packet Processor ), 由报文处理器根据报文的目的地查找路由表, 以确定其输出端, 并输送给流量管理器(TM, Traffic Management ), 报文经过流量管理器整形 之后在交换网接口 ( FI , fabric switch Interface )被切分成为多个固定大小的信 元(cell )。 这些信元被连续发送到交换网。 交换网对每个信元独立选择路径, 并传送到目的端口。
由于不同的信元可能是经过交换网的不同路径来进行传输的,所以当信元 到达目的端口时,各信元之间可能是乱序的(即属于同一个报文的信元没有按 照信元在报文中的位置顺序到达), 所以, 需要对这些乱序的信元进行重新排 序( resequence ), 并将属于同一才艮文的信元重组 ( reassembly )为完整的才艮文, 然后再将属于同一源端口发送的报文按照源端口发送的顺序进行排列,最后再 从输出端口发送到下游设备。其中,将属于同一报文的信元重组为完整的报文, 以及将属于同一源端口发送的报文按照源端口发送的顺序进行排列等一系列 操作, 统称为报文的重组重排序。现有技术一般利用时标在目的端口对各个源 的报文进行重组重排序, 这种方式对时标的同步具有较高的要求。 由于在具有 很多源的情况下, 很难达到十分精确的时标同步, 所以, 这种方式并不适用于 高性能的设备。但如果不基于时标, 而是筒单地在目的端口按照多个源来进行 排序的话, 又需要浪费大量的内存和控制资源。
发明内容
本发明实施例提供一种报文重组重排序方法、 装置和系统, 即可以适用于 高性能的设备, 又可以占用较少的内存和控制资源。
一种 文重组重排序方法, 包括: 接收源端口 (source port )发送的信元, 所述信元携带源标识、 报文序列 号和信元序列号;
根据源标识对接收到的信元进行预处理,以确定是否将所述信元插入报文 重组数据库;
根据报文序列号对报文重组数据库中的信元进行排序,得到正确排序的报 文;
若所述正确排序的报文为完整报文,则根据信元序列号对所述正确排序的 报文中的信元进行排序, 得到正确排序的信元;
对所述正确排序的信元进行 >¾文重组。
一种网络设备, 包括:
接收单元, 用于接收源端口发送的信元, 所述信元携带源标识、 报文序列 号和信元序列号;
预处理单元, 用于根据源标识对接收单元接收到的信元进行预处理, 以确 定是否将所述信元插入数据库;
报文排序单元, 用于根据报文序列号对报文重组数据库中的信元进行排 序, 得到正确排序的报文;
信元排序单元, 用于在确定报文为完整报文时,根据信元序列号对所述正 确排序的报文中的信元进行排序, 得到正确排序的信元;
重组单元, 用于对所述正确排序的信元进行 "¾文重组。
一种通信系统, 包括源端口设备和本发明实施例提供的任一种网络设备; 所述源端口设备, 用于发送信元给网络设备, 所述信元携带源标识、 报文 序列号和信元序列号。
本发明实施例采用根据源标识对接收到的信元进行预处理,以确定是否将 接收到的信元插入报文重组数据库,然后再直接根据信元的报文序列号和信元 序列号对数据库中的信元进行排序, 最终实现报文的重组。 由于本方案可以直 接根据源来对报文进行重组重排序,所以相对于现有技术中基于时标同步来实 现报文的重组重排序而言, 可以适用于高性能设备。 而且, 由于本方案可以对 接收到的信元(即等待重组的报文)进行控制管理,所以对资源的利用率较高, 可以占用较少的内存和控制资源。 附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作筒单地介绍,显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例, 对于本领域技术人员来讲, 在不付出创造性劳动的前提下, 还 可以根据这些附图获得其他的附图。
图 1是本发明实施例一提供的报文重组重排序方法的流程图;
图 2a是本发明实施例提供的报文重组重排序过程的架构图
图 2b是本发明实施例二提供的报文重组重排序方法的流程图;
图 2c是单播中报文排序和报文重组数据库结构的示意图;
图 2d是本发明实施例中预处理的方法流程图;
图 2e是本发明实施例提供的报文重组重排序方法中信元排序机制的示意 图;
图 3a是本发明实施例提供的网络设备的结构示意图;
图 3b是本发明实施例提供的网络设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域技术人员在没有作出创造性劳 动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明实施例提供一种报文重组重排序方法、装置和系统。 以下分别进行 详细说明。 实施例一、
本实施例将从作为目的端口的网络设备的角度进行描述。
一种报文重组重排序方法, 包括: 接收源端口发送的信元, 其中, 该信元 携带源标识、报文序列号和信元序列号; 根据源标识对接收到的信元进行预处 理, 以确定是否将该信元插入报文重组数据库; 根据报文序列号对报文重组数 据库中的信元进行排序,得到正确排序的报文;若正确排序的报文为完整报文, 则根据信元序列号对该正确排序的报文中的信元进行排序,得到正确排序的信 元; 对该正确排序的信元进行^艮文重组。 参见图 1, 具体流程可以如下:
101、 接收源端口发送的信元, 其中, 信元携带源标识 ( SID , Source Identification ), 4艮文序列号和信元序列号, 如下:
源标识: 用于标识信元的来源和类型,根据源标识可以获知信元来自哪个 源端口; 该源标识又可以分为单播源标识和多播源标识,单播源标识为源端口 号和报文服务类型 (CoS, Class of Service) 的集合, 即{源端口号, 报文服务 类型 }; 多播源标识为源端口号、 服务类型和多播复制域的标识 (MGID, Multicast Group ID ) 的集合, 即{源端口号, 报文服务类型, MGID}, 其中, MGID由源线卡的 PP赋予多播报文。
报文序列号: 用于标识报文在数据流中的位置。
信元序列号: 用于标识信元在报文中的位置。
例如, 具体可以通过交换网 (fabric)接收源端口发送的信元。 其中, 该 信元由源端口对 ^艮文切分而成, 并由源端口赋予信元 ^艮文序列号和信元序列 号; 例如, 有两个同一目的端口的^艮文被切分为信元, 第一个 ^¾文切分为 3个 信元, 第二个报文切分为 4个信元。第一个报文的信元的序列号分别是(1, 1 ), ( 1, 2), ( 1, 3); 第二个报文的信元的序列号分别是(2, 1 ), (2, 2), (2, 3), (2, 4)。 其中, 括号里的第一个数字是报文序列号, 括号里的第二个数字 是信元序列号。
102、 根据源标识对接收到的信元进行预处理, 以确定是否将该信元插入 报文重组数据库。
其中, 信元可以包括信元数据和信元信息, 为了节省资源, 在排序的过程 中, 可以只对信元信息进行操作, 等到报文重组时, 才根据信元信息提取相应 的信元数据进行重组。 例如, 具体可以如下:
( 1 ) 为接收到的信元打上到达时的本地时间戳后, 根据源标识将信元的 信元数据保存在负载内存( Payload Memory )中, 并配置相应的负载内存索引 值, 根据负载内存索引值可以从负载内存中获取相应的信元数据;
(2)将信元的信元信息插入到输入先进先出 (IF, Input FIFO) 队列中, 其中, 信元信息可以包括信元的源标识、 本地时间戳、 负载内存索引值、 报文 序列号和信元序列号等信元相关的一些信息; 其中, 本地时间戳主要是为了判断信元在本地等待的时间,如果等待时间 太长就会被丟弃。 而源标识、 负载内存索引值、 才艮文序列号和信元序列号等信 息的作用可参见前面的说明, 在此不再赘述。
( 3 )根据源标识、 4艮文序列号和延时先进先出 (PF, Postponed FIFO ) 队列的状态对 IF队列中的信元信息进行处理,以确定是否将该信元信息插入报 文重组数据库。 如下:
当所有 PF队列的深度小于预设的阈值时,确定 IF队列中队首信元信息所对 应的信元是否应该被处理; 若应该被处理, 则弹出 IF队列的队首信元信息; 若 不应该被处理,则将 IF队列的队首信元信息压入 PF队列之一( PF队列可以构建 有多个, 用于緩存不同等待时间的信元), 并弹出最满的 PF队列的队首信元信 息;
判断所弹出的 IF队列的队首信元信息所对应的信元或 PF队列的队首信元 信息所对应的信元是否超时; 若超时, 则回收该信元信息所对应的信元和该信 元所属的报文; 若没有超时, 则在该信元的报文序列号小于报文重组数据库中 同一源的最大报文序列号时,将该信元信息插入报文重组数据库; 在该信元的 报文序列号大于报文重组数据库中同一源的最大开放报文序列号时,将该信元 信息插入 PF队列之一。
反之, 当有 PF队列的深度大于预设的阈值时, 确定溢出 PF队列中的队首 信元信息所对应的信元是否应该被处理; 若不应该被处理, 则回收该溢出 PF 队列 (即队列的深度大于预设的阈值的 PF队列, 比如该 PF队列已满) 的队首 信元信息所对应的信元,然后执行确定 IF队列中的队首信元信息所对应的信元 是否应该被处理的步骤(参见前面的描述); 若应该被处理, 则执行将 IF队列 的队首信元信息压入 PF队列之一, 并弹出最满的 PF队列的队首信元信息步骤。
其中, PF队列主要用于存放到达目的端口太早的信元, 也就是说, 如果 信元到达目的端口太早, 则当前不会被处理, 而是会被放入 PF队列中, 然后在 正确的时间, 才从 PF队列中取出, 并插入到报文重组数据库中。
其中, 信元是否应该被处理, 可以根据队列中的开放报文(open packet, 即等待处理的报文)数量来确定, 即确定正在处理的报文的最小报文序列号和 当前信元的报文序列号的差值是否小于某个预设的值, 若小于这个预设的值, 就表示信元应该被处理, 此时可以处理当前信元, 否则, 就表示信元不应该被 处理, 此时可以把信元延时, 即放入 PF队歹 ll中。 比如, 队列中的开放报文最大 数量是 16个, 而当前正在处理的报文的最小报文序列号是 1024, 那么所有报文 序列号小于 1024的报文的信元都应该被直接丟弃; 报文序列号大于等于 1024, 并且小于等于 "1024+16" 的 "¾文的信元应该被处理, 比如在进一步确定该信 元没有超时,且该信元的报文序列号小于报文重组数据库中同一源的最大报文 序列号时, 将该信元插入到报文重组数据库中; 而所有序号大于 "1024+16" 的报文的信元, 则应该被緩存, 也就是插入 PF队列。 即, 步骤 "根据源标识、 才艮文序列号和延时先进先出 (PF, Postponed FIFO ) 队列的状态对 IF队列中的 信元信息进行处理, 以确定是否将该信元信息插入报文重组数据库"具体可以 :¾口下:
当所有 PF队列的深度小于预设的阈值时,确定 IF队列中队首信元信息所对 应的信元的报文序列号与当前正在处理的报文的最小报文序列号的差值,是否 小于第四阈值; 若是, 则弹出 IF队列的队首信元信息; 若否, 则将 IF队列的队 首信元信息压入 PF队列之一, 并弹出最满的 PF队列的队首信元信息; 判断所 弹出的 IF队列的队首信元信息所对应的信元或 PF队列的队首信元信息所对应 的信元是否超时; 若超时, 则回收该信元信息所对应的信元和该信元所属的报 文; 若没有超时, 则在该信元的报文序列号小于报文重组数据库中同一源的最 大开放报文序列号时,将该信元信息插入报文重组数据库; 在该信元的报文序 列号大于报文重组数据库中同一源的最大报文序列号时,将该信元信息插入 PF 队列之一。
当有 PF队列的深度大于预设的阈值时, 确定溢出 PF队列中的队首信元信 息所对应的信元的报文序列号与当前正在处理的报文的最小报文序列号的差 值, 是否小于第五阈值; 若是, 则回收该溢出 PF队列的队首信元信息所对应的 信元,然后执行确定 IF队列中队首信元信息所对应的信元的报文序列号与当前 正在处理的报文的最小报文序列号的差值, 是否小于第四阈值的步骤; 若否, 则执行将 IF队列的队首信元信息压入 PF队列之一,并弹出最满的 PF队列的队首 信元信息步骤。
其中, 第四阈值和第五阈值可以根据实际应用的需求进行设置。 无论是单播, 还是多播, 都可以包括很多个报文排序队列, 而每个报文排 序队列又都有若干个报文等待重组重排序(在等待重组重排序的报文也成为开 放报文, 即 open packet )。 其中, 单播可以根据报文服务类型 (CoS , Class of Service )和源标识(SID, Source Identification )来划分报文排序队列, 也就是 不同报文服务类型和源标识的信元应该在不同的报文排序队列中。而多播则可 以根据 4艮文服务类型 ( CoS , Class of Service ) , 源标识 ( SID , Source Identification )和多播复制域的标识(MGID, Multicast Group ID )来划分报文 排序队列。 其中, 每个报文排序队列都有一个报文描述符阵, 也就是预先分配 的一块内存作为数据来容纳等待排序的报文。 报文描述符阵中的每一个表项, 其实就是一个指针, 可以指向属于此报文的信元描述符。信元描述符中也有一 个指针指向下一个信元, 这样所有属于一个报文的信元就组成了一个链表, 并 且从报文阵列中的第一个指针开始可以遍历到所有信元。 其中,报文描述符阵 的大小(即可以容纳多少开放报文)是可以动态调整的。 例如, 可以预先分配 了若干种大小不等的报文描述符阵。如果一个排序队列的开放报文增加,导致 报文描述符阵溢出,则可以用一个更大的报文描述符阵取代先前较小的报文描 述符阵。 即, 可以如下:
对于单播(Unicast ) 来说, 该报文重组数据库可以包括源描述符内存 ( SDM , Source Descriptor Memory ) 和源队歹 'J内存 ( SQM , Source Queue Memory ); 其中, 源描述符内存用于存储源描述符 ( Source Descriptor ), 并以 报文服务类型和源端口号作为索引,即以 {报文服务类型,源端口号 }作为索引; 而源队列内存则用于存放与所述源描述符对应的源队列,该源队列内存包括一 个指向排序报文緩存区( Reorder-Packet- Array-Buffer )的指针, 排序报文緩存 区用于存放等待排序的信元的报文描述符 ( Packet Descriptor ), 每个报文描述 符指向最后一次收到的属于此报文的信元的信元描述符( Cell Descriptor)。
其中, 排序报文緩沖区可以由动态的报文描述符阵 ( Dynamic Packet Descriptor Array )构建, 具体可以包括 N类不同容量的内存块, 其中, N为正 整数。 例如, 当 N = 3时, 可以保护如下容量的三种内存块:
( 32*X )、 ( 128*X )和(512*X ), 其中, X是一个报文描述符的宽度。 对于多播(Multicast ) 来说, 该报文重组数据库可以包括 MGID描述符内 存和 MGID队列内存; 其中, MGID描述符内存用于存储 MGID描述符, 并以报 文服务类型、 MGID和源端口号作为索引, 比如用 {报文服务类型, MGID, 源 端口号 }的哈希(Hash )值作为索引, 而 MGID队列内存则用于存放与 MGID描 述符对应的 MGID队列; 该 MGID队列内存可以包括一个指向排序报文緩存区 的指针,排序报文緩存区用于存放等待排序的信元的报文描述符,每个报文描 述符指向最后一次收到的属于此报文的信元的信元描述符。
其中, 排序报文緩沖区为动态的报文描述符阵, 包括 M类不同容量的内存 块, 其中, M为正整数, 与单播类似, 在此不再赘述。
因为 {报文服务类型, MGID, 源端口号}表示的空间非常大, 很难为每个 {报文服务类型, MGID, 源端口号}索引创建一个对应的报文排序队列。 所以, 为了节省资源, 可以让 MGID描述符内存和 MGID队列内存支持哈希功能, 即 各个进程(如 IF队列、 PF队列、 完整队列、 排序报文緩沖区和信元排序緩沖区 等)可以通过哈希功能访问 MGID描述符内存和 MGID队列内存; 其中, 哈希 功能可以被构造为多个哈希桶。所谓哈希功能,就是把 {报文服务类型, MGID, 源端口号}映射到一个比较小的空间中。 比如, 可以让哈希函数以 {报文服务类 型, MGID, 源端口号}为输入, 计算出一个索引值, 而这个索引值对应了一 个或者多个(就是多个哈希桶)报文排序队列。
由于采用了哈希功能, 所以可能会产生资源沖突, 因此, 还需要维护一个 资源沖突查询表 ( FAVT, Fully Associative Victim Table ), 以便在发生资源沖 突时, 可以根据该预置的资源沖突查询表将发生资源沖突的信元的压入另一 MGID队列或丟弃。
此外, 当该资源沖突查询表的信息量超过预置第一阈值时, 可以激发本目 的端口发送控制信息给多播源, 以减少发往本目的端口的多播数据量。 其中, 第一阈值可以根据实际应用的需求进行设置。
例如, 每个哈希表项包括 2个哈希桶(即包括两个报文排序队列), (1 , 2, 128 ) , ( 7, 0, 256 ) , ( 11 , 3 , 567 ) ··· ··· , 等都映射到了 16, 也就说以这 些组合作为输入, 哈希函数的结果都是 16。 (1 , 2, 128 )的信元可以利用第一 个报文排序队列, (7, 0, 256 )的信元可以利用第二个报文排序队列, (11 , 3 , 567 )的信元达到时只能被丟弃(因为每个哈希只有两个报文排序队列)。 当然, 如果(1, 2, 128) 的信元全部重组成功, 已经被调度出了排序队列, 第一个 报文排序队列就是空的。 这是( 11, 3, 567)的信元达到, 就可以利用第一个 报文排序队列了。 资源沖突查询表就是表示这些报文排序队列为哪些 (SID, CoS, MGID)索引值占用, 是根据当前状态动态维护的。
103、 根据报文序列号对报文重组数据库中的信元进行排序, 得到正确排 序的 文; 例如, 具体可以如下:
按照报文序列号对排序报文緩存区中的报文描述符进行排序,并将报文重 组数据库中具有相同报文序列号的信元信息放在报文描述符所对应的报文排 序队列中;比如,如果报文重组数据库中保存的信元信息中的序列号分别为( 1, 1)、 (2, 3)、 (1, 3)、 (2, 1)、 (2, 4)、 (1, 2)和(2, 2), 其中, 第一数字 为报文序列号, 第二个数字为信元序列号, 则报文排序后的情况可以如下: 第一个报文排序队列为: (1, 1), (1, 3), (1, 2);
第二个报文排序队列为: (2, 3), (2, 1), (2, 4), (2, 2)。
可见, 此时报文已经被正确排序, 但是报文中的信元仍然属于乱序状态。
104、若正确排序的报文为完整报文, 则根据信元序列号对步骤 103得到的 正确排序的报文中的信元进行排序, 得到正确排序的信元; 其中, 完整报文指 的是报文中的信元已全部接收完毕。 例如, 具体可以如下:
若报文为完整报文,则根据信元的广播类型和报文服务类型将该完整报文 的才艮文描述符加入到相应的完整队列 (CF, Complete-FIFO ) 中; 根据完整队 列中的报文描述符将对应的信元信息插入到信元排序緩沖区(也称为信元重排 序緩沖区, Complete Packets FIFO ) 中, 根据信元序列号在信元排序緩沖区中 对提取到的信元信息进行排序。 其中, 信元的广播类型可以包括单播或多播。
为了提高排序的效率, 在进行信元排序时,信元排序緩沖区需要保证有足 够的空白空间, 所以, 可以设定当信元排序緩沖区的空白空间大于预置阈值, 比如在信元排序緩沖区的实际数据量小于可容纳数据量的二分之一时,才根据 完整队列中的报文描述符将对应的信元信息插入到信元排序緩沖区中。
其中,根据信元序列号在信元排序緩沖区中对提取到的信元信息进行排序 具体可以如下:
信元排序緩沖区维护一个读指针和一个写指针,写指针总是指向当前正在 进行信元排序的报文的开始位置,读指针用于将排好序的信元逐个读出以进行 报文重组; 因此, 可以将写指针和信元序列号相加计算出插入的信元信息的偏 移位置, 然后根据偏移位置调整该插入的信元信息在报文中的位置(即在报文 中的正确位置), 以得到正确排序的信元信息。
105、 对正确排序的信元进行 ^艮文重组; 例如, 具体可以如下:
为该正确排序的信元信息的所属报文分配重组资源,将信元排序緩沖区中 的正确排序的信元信息逐个读出, 根据读出的信元信息获取相应的信元数据, 利用分配的重组资源对信元数据进行报文重组。
其中, 为了提高效率, 可以为该正确排序的信元信息的所属报文分配至少 两个重组资源。 为了节约资源, 重组资源被管理在一个资源池中, 在需要的时 候才分配给每个源。所谓需要的时候,指的是将要开始进行重组的时候; 比如, 当排序緩沖区中的信元已经正确排好序后,可以发送一个请求报文重组的指示 信号, 比如 FIFO— RDY信号给报文重组机制, 报文重组机制接收到该请求报文 重组的指示信号后, 就可以开始进行对排序緩沖区中的信元进行报文重组。
当然,如果信元排序緩沖区至少具有两个, 则报文重组机制可能会同时接 收到多个请求报文重组的指示信号,对于这种情况,报文重组机制可以根据报 文服务类型选择信元排序緩沖区来进行处理, 即此时,对正确排序的信元进行 才艮文重组具体可以为:
根据报文服务类型选择信元排序緩沖区,将选择的信元排序緩沖区中的正 确排序的信元信息逐个读出, 根据读出的信元信息提取信元数据以重组报文。
可选的, 为了节约资源和提高效率, 避免在某一报文上浪费过多的时间, 可以对 ^艮文重组的时间进行监控, 如果 文重组超时( Reassembly Timeout ), 则将报文丟弃。例如, 可以判断报文中第一个到达目的端口的信元的到达时间 (比如可以采用本地时间戳来标识到达时间)与当前时间的差值是否大于预置 的第二阈值, 若是, 则确定报文重组是否超时, 于是将报文丟弃; 反之, 若否, 则确认 ^艮文重组没有超时, 继续对^艮文进行重组。
其中, 重组超时的时间还可以包括交换网时延的估算时间, 其中, 该交换 网时延可以根据报文序列号估算出来, 具体可参见现有技术, 在此不再赘述。 然后报文在交换网中耽误的时间太多, 则可以被直接丟弃, 而无需等待重组超 时再丟弃。 即可选的, 在将正确排序的信元重组为报文之前, 该方法还可以包 括:
确定交换网时延的估算值超过预置的第三阈值时, 则将报文丟弃。
其中, 第二阈值和第三阈值可以根据实际应用的需求进行设置。
(即报文序列号为 123的报文)还有一个信元没有达到, 则此时后续报文, 如 报文序列号为 124的报文即使已经收齐了所有信元也不能被重组, 而是必须等 待报文序列号为 123的报文接收到所有信元后,或者等待报文序列号为 123的报 文超时被丟弃之后, 才能被处理。 由于等待超时一般是一个比较长的时间, 所 以如果报文序列号为 123的某个信元在交换网中时延特别长, 则此时可以不等 待报文序列号为 123的报文超时, 而是确定交换网时延的估算值是否超过预置 的第三阈值, 比如如果此时接收到了这个排序队列中报文序列号为 256的报文 中的信元, 由于 256与 123的差大于第三阈值(比如第三阈值设定为 100 ), 所以 可以不需要等待报文序列号为 123的报文超时, 而是可以直接把报文序列号为 123的4艮文丟弃。
另外, 需说明的是, 为了提高效率, 以上重组重排序过程可以划分为多个 并行的重组重排序引擎, 以支持不同报文服务类型 (CoS, Class of Service ) 的单播或多播数据流。 其中, 报文服务类型相当于报文优先级。
本实施例采用根据源标识对接收到的信元进行预处理,以确定是否将接收 到的信元插入报文重组数据库,然后再直接根据信元的报文序列号和信元序列 号对数据库中的信元进行排序, 最终实现报文的重组。 由于本方案可以直接根 据源来对报文进行重组重排序,所以相对于现有技术中基于时标同步来实现报 文的重组重排序而言, 可以适用于高性能设备。 而且, 由于本方案可以对接收 到的信元(即等待重组的报文)进行控制管理, 所以对资源的利用率较高, 可 以占用较少的内存和控制资源。 实施例二、
根据实施例一所描述的方法, 以下将举例作进一步详细说明。
如图 2a所示, 该图为报文重组重排序过程的架构图, 主要可以分为如下 几个步骤: 步骤 1、 信元到达目的端口后, 内存分配模块为接收到的信元分配负载内 存,预处理模块根据源标识将信元的信元数据保存在负载内存中, 并根据信元 的源标识对信元的信元信息进行分类,根据类别将信元信息分别存入不同的 IF 中, 比如, 可以按照广播类型进行分类, 如果是单播数据, 则放入单播输入队 列( UIF, Unicast Input FIFO )中,如果是多播数据,则放入多播输入队列( MIF, Multicast Input FIFO )中, 参见图 2a。 其中, 信元信息可以包括信元的源标识、 本地时间戳、 负载内存索引值、报文序列号和信元序列号等信元相关的一些信 息。
预处理模块根据源标识、 本地时间戳和 PF队列的状态分别对 UIF队列和 MIF队列中的信元信息进行处理,以确定是否将信元信息插入到报文排序模块 的报文重组数据库中去, 其中, UIF队列和 MIF 队列在报文重组数据库中都 具有相对应的处理模块, 例如, 参见图 2b, UIF队列对应着报文重组数据库中 的 "单播" 模块, 而 MIF对应着报文重组数据库中的 "多播" 模块。
步骤 2、 报文排序: 报文排序模块分别对各个源中的报文进行排序, 以得 到正确排序的报文, 比如, 可以按照报文序列号对排序报文緩存区中的报文描 述符进行排序,并将报文重组数据库中具有相同报文序列号的信元放入同一报 文排序队列, 参见图 2a中的 "CoSO, CoSl , CoS2" , 在该图中, CoS0、 CoSl 和 CoS2分别代表着不同报文服务类型的报文排序队列; 此时, 报文已经被正 确排序, 但是报文中的信元仍然处于乱序状态, 即 CoS0、 CoSl和 CoS2已经 正确排序, 但是 CoS0、 CoSl和 CoS2中信元仍然处于乱序状态。
步骤 3、信元排序:信元排序模块分别对各个完整报文中的信元进行排序, 以得到正确排序的信元。其中, 完整报文指的是该报文中的信元已经全部接收 午。
步骤 4、 报文重组: 报文重组模块把正确排序的信元重组为一个完整的报 文。 参见图 2a, 此时, 内存分配单元可以为报文重组模块分配重组资源, 报 文重组模块将信元排序模块中的正确排序的信元信息逐个读出,根据读出的信 元信息在负载内存中提取信元数据以重组报文, 并输出重组好的报文, 参见图 2a。
以上重组重排序过程又可以进一步划分为多个并行的重组引擎,以支持不 同报文服务类型 (CoS, Class of Service ) 的单播流量和多播流量。 需说明的是, 其中, 负载内存的设计应该满足报文重组模块每个时钟周期 一次读取请求。 在报文重组过程中, 不能被中断。 因此, 在报文重组模块不需 要能够容纳整个报文的 FIFO队列,而仅仅只需能够容纳 2至 4个信元的 FIFO 队列就足够了。 一个报文开始重组之后, 会在另一个报文开始之前完成重组。
另外, 内存分配单元主要用于分配和回收下列类型的内存: 信元描述符、 报文描述符阵列、 MGID队列内存( MGID队列内存是针对多播数据来而言的); 上述每种类型的内存都包括至少一个 FIFO队列, 用于管理可分配緩沖区。 每 个 FIFO队列应该能够在一个时钟周期分配一个緩沖区表项。
报文排序模块出队一个报文之后, 就把报文提交给报文回收模块,报文回 收模块把报文中的信元逐个提交给信元回收模块。 当一个报文被丟弃的时候, 也会被提交给报文回收模块,执行相同的处理以丟弃报文, 同时也会丟弃所有 报文序列号小于被丟弃报文的序列号且仍然驻留在报文重组数据库的报文。
以下将以单播为例作进一步详细说明。 参见图 2b, 具体流程可以如下:
201、 源端口将 ^艮文切分成信元, 并为各个信元配置相应的 文序列号和 信元序列号;
例如, 在源端口, 两个去往同一目的端口的 文被切分为信元, 第一个才艮 文被切分为 4个信元, 第二个 文被切分为 5个信元。 第一个 文的信元的序 列号分别是(1 , 1 ), ( 1 , 2 ), ( 1 , 3 ), ( 1 , 4 ); 第二个报文的信元的序列号 分别是(2, 1 ), ( 2, 2 ), ( 2, 3 ), ( 2, 4 ), ( 2, 5 )。 其中第一个数字是报文 序列号, 第二个数字是信元序列号。
在源端口,报文序列号被插入到每个信元中,报文序列号基于数据流进行 维护。 比如, 对于单播数据来说, 就是根据目的端口和报文服务类型来对报文 序列号进行维护, 而对于多播数据来说, 就是根据 MGID和报文服务类型来 对>¾文序列号进行维护。
202、 源端口将信元通过交换网传递给目的端口, 其中, 信元携带源标识、 报文序列号和信元序列号。
203、 目的端口的预处理模块接收到这些信元后, 为接收到的信元打上到 达时的本地时间戳,将这些信元的信元数据保存在内存分配模块为其分配的负 载内存中, 并配置相应的负载内存索引值,根据负载内存索引值可以从负载内 存中获取相应的信元数据。
204、 目的端口的预处理模块根据源标识将信元的信元信息插入到 UIF队 列中,其中,信元信息可以包括信元的源标识、本地时间戳、 负载内存索引值、 报文序列号和信元序列号等信元相关的一些信息。
205、 目的端口的预处理模块根据源标识、报文序列号和 PF队列的状态对 UIF队列中的信元信息进行预处理,以确定是否将该信元信息插入报文重组数 据库。
其中, 参见图 2c, 该报文重组数据库由源描述符内存和源队列内存组成, 源描述符内存用于存储源描述符,每个源描述符对应着源队列内存中的一个源 队列; 源队列内存用于存储源队列,每个源队列对应着排序报文緩沖区中多个 报文描述符, 源队列内存包含一个指向排序报文緩沖区的指针, 这种排序报文 緩沖区可以容纳 32到 512个报文描述符, 每个报文描述符指向最后一次收到 的属于此报文的信元的信元描述符,每个信元描述符包含一个指向负载内存中 的信元数据的负载内存索引值。报文緩沖区可以直接访问,访问索引可以用当 前报文序列号减去第一个报文序列号 ( Packet-Sequence-Number - First-Packet-Sequence ) 来计算。
源队列内存可以被构建为动态的报文描述符阵列, 包括 N类不同容量的 内存块。每个源描述符包含一个指向这类内存块的指针, 内存块的类型根据所 需报文描述符阵列大小决定。插入或者删除一个报文描述符, 可能需要从一种 内存块切换为另一种内存块。 为了得到带宽, 内存块支持同时读写, 因此不需 要维护读指针。原因是,提取报文之后会引起阵列中一个报文描述符位置的位 移, 读指针总是指向开始的位置。
参见图 2d, 该预处理的具体流程可以如下:
A1、 目的端口的预处理模块( Prepare Packet )判断所有 PF队列的深度是 否小于预设的阈值, 若是, 则执行步骤 A2, 若否, 则执行步骤 A7。
其中, PF队列的深度小于预设的阈值,表明 PF队列中还具有足够的空间, 可以緩存更多需要延时的信元。其中,阈值可以根据实际应用的需求进行设置。
A2、 若所有 PF队列的深度都小于预设的阈值, 则目的端口的预处理模块 根据本地时间戳确定 UIF队列中队首信元信息所对应的信元是否应该被处理, 若是, 则执行步骤 A3 , 若否, 则执行步骤 A9。
A3、 若 UIF队列中队首信元信息所对应的信元应该被处理, 则目的端口 的预处理模块弹出 IF队列的队首信元信息, 然后执行步骤 A4。
A4、 目的端口的预处理模块判断所弹出的 IF队列的队首信元信息所对应 的信元或 PF队列的队首信元信息所对应的信元是否超时, 若是, 则执行步骤 A5, 若否, 则执行步骤 A10。
A5、 若信元已超时, 则目的端口的预处理模块回收该队首信元信息所对 应的信元和该信元所属的报文,比如将该队首信元信息所对应的信元发送给信 元回收模块 (Cell Recycle ), 并将该信元所属的报文发送给报文回收模块 ( Packet Recycle )。
其中,信元回收模块主要用于回收信元,报文回收模块主要用于回收报文。 A6、 若并不是所有 PF队列的深度都小于预设的阈值, 则目的端口的预处 理模块根据本地时间戳确定溢出 PF队列中的队首信元信息所对应的信元是否 应该被处理, 若是, 则执行步骤 A7, 若否, 则执行步骤 A8。
其中, 溢出 PF队列指的是 PF队列的深度大于预设的阈值的 PF队列。 A7、 若溢出 PF队列中的队首信元信息所对应的信元不应该被处理, 则预 处理模块弹出溢出 PF队列中的队首信元信息, 并回收该队首信元信息所对应 的信元。 比如将该队首信元信息所对应的信元发送给信元回收模块, 然后返回 执行步骤 A2。
A8、 若溢出 PF队列中的队首信元信息所对应的信元应该被处理, 则预处 理模块弹出 IF队列的队首信元信息, 并将该队首信元信息压入 PF队列之一, 然后执行步骤 A9。
A9、 预处理模块弹出最满的 PF队列的队首信元信息, 然后返回执行步骤
A4。
A10、若信元没有超时,则预处理模块弹出该信元所对应的队首信元信息, 并基于源标识读取报文重组数据库中的源描述符内存, 然后执行步骤 All.
Al 1、 预处理模块判断该队首信元信息所对应的信元的报文序列号是否大 于源描述符内存中的最大开放报文序列号, 若是, 则执行步骤 A12, 若否, 则 执行步骤 A13。
A12、 预处理模块将该队首信元信息插入源描述符内存。
A13、 预处理模块将该队首信元信息插入 PF队列之一。
由上述预处理流程可以看出, 一般的,预处理模块会对不在当前开放报文 处理窗口中的信元进行延时处理, 直到开放报文处理窗口覆盖了信元。
可选的, 还可以设置一个监视器(watchdog ), 以对 PF队列进行检查, 如 果检查到存在非空的 PF队列长时间没有被访问, 则监视器触发预处理模块优 先处理这个 PF。
另外。 为了充分利用 PF队列的空间, 并避免 PF队列提取数据产生突发, 根据信元需要的延时时间, PF 队列可以被划分为多个并列的队列。 信元延时 时间可以这样评估,用当前信元中的报文序列号减去当前报文重组数据库中的 最大报文序列号, 这个差值越大, 信元需要的延时时间就越长。
206、 报文排序模块将报文描述符放进排序报文緩存区, 按照报文序列号 对排序报文緩存区中的报文描述符进行排序,并将报文重组数据库中具有相同 报文序列号的信元信息放在报文描述符所对应的报文排序队列中。
此时报文已经被正确排序, 但是报文中的信元仍然属于乱序状态。
207、 若正确排序的报文为完整报文, 则信元排序模块根据信元序列号对 正确排序的报文中的信元信息进行排序, 得到正确排序的信元信息。
其中,信元排序模块可以被构建为多个同步的完整队列,报文的每个服务 类型(也称为优先级, 即 CoS )可以用其自身的控制逻辑和数据緩沖队列独立 工作。
信元排序模块把每个完整报文的报文描述符从报文排序队列中提取出来, 根据广播类型和报文的服务类型 (即 CoS )加入到相应的完整队列中; 然后, 根据完整队列中的报文描述符将对应的信元信息插入到信元排序緩沖区中,根 据信元序列号在信元排序緩沖区中对提取到的信元信息进行排序。
其中, 完整报文指的是报文重组数据库接收到了这个报文的所有信元。 而 信元排序緩沖区可以容纳 2个巨型包(Jumbo Packet ), 也就是大约 20K字节。 只有在其数据量小于一半的时候,才开始提取报文描述符将对应的信元信息到 其中排序。 参见图 2e, 该图为信元排序机制的示意图, 信元排序緩沖区维护一个读 指针(RD— PTR )和一个写指针(WR— PTR )。 写指针总是指向当前正在排序 的报文的开始位置,用写指针和信元序列号相加计算出插入信元信息的偏移位 置。 只有当报文大小小于信元排序緩沖区中空白位置的大小时, 才可以进行报 文的信元信息排序。读指针等到下一个报文的信元信息完成排序之后, 开始一 个一个的把本报文中的信元信息读出。 其中, 图 2e 中的 "EOP" 表示一个报 文中的最后一个信元, "SOP" 表示报文的开始位置。
其中, 对于拼接信元(Concatenated-Cell )可以这样处理: 当插入第一个 报文时, 可以把该第一个报文最后一个信元的指针插入两次在输入 FIFO中, 同时在信元同步緩沖区 (Cell-Reorder-Buffer ) 添加标示, 指示第一个信元不 能被提取到重组机制, 当第二个信元重组完成后, 这个数据将被丟弃。 这是因为,当源端将报文切分成信元时,最后一个信元往往存在数据黑洞, 也就是报文的长度不能刚好被切分成为几个完整的信元,导致最后一个信元的 有效数据小于前面的完整信元。这样的信元在传输和处理过程中会造成资源浪 费。 优化措施就是, 不再按照报文边界切分信元, 而是把连续的报文看作是一 个数据流切片, 这样所有信元都包含完整的数据段。 但是这样的话, 必然导致 某些信元既包含前一个报文的最后一段数据, 也包含后一个报文的第一段数 据。这种即包含前一个报文的最后一段数据,也包含后一个报文的第一段数据 的信元就称为拼接信元。 在进行信元重排序时需要知道信元的属性, 标出 "SOP" 和 "E0P"。 对于拼接信元, 既是前一个 文的 E0P信元, 也是后一 个报文的 SOP信元, 所以在接收到这样的拼接信元后, 需要将该信元两次插 入输入 FIFO队列中,一个作为前一个^艮文的 E0P信元,一个作为后一个 4艮文 的 SOP信元。 这样当信元需要进行重排序时, 这两个信元会在信元排序模块 中连续存在, 由于这两个信元的内容是相同的, 所以不能把这两个信元都提交 给报文重组单元。 所以需要一个标志位标识作为 E0P的第一个信元不能提交 报文重组模块, 而是等到第二个信元的报文重排序完成之后,将该第一个信元 丟弃, 以保证提交到报文重组模块的数据只有一份。
当一个报文准备好重组的时候,信元排序緩沖区会向重组机制发送一个请 求报文重组的指示信号, 比如 FIFO— RDY的信号。
需要说明的是, 信元排序机制(包括信元排序緩沖区和完整队列 )是由多 个并列的先进先出 (FIFO, First Input First Output ) 队列组成, 这些队列之间 基于报文的服务类型(也称为优先级, 即 CoS )和广播类型进行区分, 因此消 除了排序机制对额外队列的需求, 可以节省资源。
208、 报文重组模块接收到请求报文重组的指示信号, 比如 FIFO— RDY的 信号后,将信元排序緩沖区中的正确排序的信元信息逐个读出,根据读出的信 元信息提取信元数据以重组报文。
由于可能会有多个信元排序緩沖区同时发送请求报文重组的指示信号给 报文重组模块,所以在这种情况下,报文重组模块可以基于报文的服务类型(即 优先级)在多个发送了请求报文重组的指示信号 (比如 FIFO— RDY信号) 的 信元排序緩沖区之间进行仲裁, 以选择合适的信元排序緩沖区, 然后将选择的 信元排序緩沖区中的正确排序的信元信息逐个读出,根据读出的信元信息(具 体是信元信息中的负载内存索引值)在负载内存中提取信元数据以重组报文。
由上可知, 本实施例采用根据源标识对接收到的信元信息进行预处理, 以 确定是否将接收到的信元信息插入报文重组数据库,然后再直接根据信元信息 中的报文序列号和信元序列号对数据库中的信元信息进行排序,最终根据排好 序的信元信息提取相应的信元数据, 以实现报文重组。 由于本方案可以直接根 据源来对报文进行重组重排序,所以相对于现有技术中基于时标同步来实现报 文的重组重排序而言, 可以适用于高性能设备。 而且, 由于本方案可以对接收 到的信元(即等待重组的报文)进行控制管理, 所以对资源的利用率较高, 可 以占用较少的内存和控制资源。 实施例三、
实施二中所描述的方法同样也适用于多播数据,相对于单播而言, 多播主 要具有如下区别:
单播报文需要源描述符内存, 以{优先级, 源端口号}为索引。 而多播报文 需要 MGID描述符内存, 以{优先级, MGID, 源端口号}的哈希值( Hash ) 为 索引。 其中, MGID表示属于同一个复制域的一组目的端口。 相应的, 在多播 中, 用 MGID队列内存取代单播中的源队列内存。 即, 多播的报文重组数据库 具体可以如下:
多播的才艮文重组数据库可以包括 MGID描述符内存和 MGID队列内存; 其 中, MGID描述符内存用于存储 MGID描述符, 并以 {优先级, MGID, 源端口 号}的哈希值作为索引, 而 MGID队列内存则用于存放与 MGID描述符对应的 MGID队列; 该 MGID队列内存可以包括一个指向排序报文緩存区的指针, 排 序报文緩存区用于存放等待排序的信元的报文描述符,每个报文描述符指向最 后一次收到的属于此报文的信元的信元描述符。
其中, MGID队列内存可以被构建为动态的报文描述符阵, 包括 M类不 同容量的内存块, 其中, M为正整数; 每个 MGID描述符包含一个指向这类 内存块的指针, 内存块的类型根据所需报文描述符阵列大小决定。
需说明的是, 因为采用哈希函数访问 MGID描述符内存和 MGID队列内 存, 所以这些内存的行就可能对应多个源 (也就是{优先级, MGID, 源端口 号 } )。 既然这些内存的行是为一个源申请的, 就引入了一个新的需求: 在为一 个新的多播源申请资源时, 需要检查这些行已经被释放。 为了解决这个问题, 需要另一个内存来维护这些信息。
另外, 还需说明的是, 由于采用了哈希功能, 所以可能会产生资源沖突, 因此,还需要维护一个资源沖突查询表( FAVT, Fully Associative Victim Table ), 以便在发生资源沖突时,可以根据该预置的资源沖突查询表将发生资源沖突的 信元的压入另一 MGID队列或丟弃。为了避免 FAVT表满的情况,可以通过配置 一个阈值, 在本实施例中称为第一阈值, 在 FAVT表中的信息量超过该第一阈 值时, 激发一个控制信息发送到源, 以减少发往这个目的端口的多播数据的流 量。
多播排序机制和重组机制与单播相同,故在此不再赘述, 具体可参见实施 例二。
由上可知, 本发明实施例所提供的重组重排序方法不仅适用于单播, 而且 也适用了多播, 可以实现与实施例二同样的有益效果。 实施例四、
为了避免在某一个报文的重排序重组时花费过多的时间,即避免流量超时 ( Timeout Traffic ), 在上述方法实施例的基础上, 进一步的, 还可以根据本地 时间戳来检查信元和所属的报文不会在交换网或报文重组阶段花费太长时间。 :¾口下:
(一)重组超时 ( Reassembly Timeout )
为了检验一个报文不会在重组阶段花费太多时间,每个报文描述符应该包 括一个最早信元时间戳 ( Earliest-Cell-Timestamp ), 表示这个报文的所有信元 中第一个到达目的端口的信元的到达时间。如果当前时间和此最早信元时间戳 的差值大于预设第二阈值, 就把此报文标记为重组超时, 当这个报文到达报文 描述符阵列的队首时, 即使这个报文还没有收到其所有信元,也不再等待接收 该报文的其他信元, 而是把该报文弹出队列并且丟弃。 否则, 在报文到达排序 阵列队首之前, 不对其该报文是否重组超时进行判断, 而是执行如下操作: 插入每个报文的第一个信元时, 更新报文描述符中的最早信元时间戳字 段。
当一个报文达到报文描述符阵列的队首时,其最早信元时间戳被复制到所 属的源描述符。
当插入一个信元时, 源描述符中的最早信元时间戳都会被检查, 不管到达 的信元属于哪个报文。 比如, 在某个源没有数据到达的情况下, 静态源检测 ( SSD, Silent-Source-Detection )将会触发这类检查。
对于超时报文, 将会被转移到报文回收机制进行处理。
(二) 交换网超时( Fabric Timeout )
在交换网中耽误时间太多的报文可以被直接丟弃, 而不再等待重组超时。 即 ·艮文重组重排序方法还可以包括:
目的端口确定交换网时延的估算值(即报文在交换网中的传输时间)超过 预置的第三阈值时, 则将报文丟弃。
其中,报文在交换网中的传输时间可以在目的端口根据报文的序列号通过 估算得到, 具体可参见现有技术, 在此不再赘述。
由上可知, 本实施例除了可以实现实施例二和四同样的有益效果之外,还 可以根据本地时间戳对 ^艮文在交换网传输的时间和^艮文重组时间进行监控,以 避免产生过多的时延, 有利于提高报文重排序重组的效率。 实施例五、 为了更好地实施以上方法, 本发明实施例还提供一种网络设备, 具体可以 作为目的端口。 参见图 3a, 该网络设备包括接收单元 301、 预处理单元 302、 报 文排序单元 303、 信元排序单元 304和重组单元 305;
接收单元 301 , 用于接收源端口发送的信元, 其中, 信元携带源标识、 报 文序列号和信元序列号, 源标识具体可以为源端口号。
预处理单元 302 , 用于根据源标识对接收单元 301接收到的信元进行预处 理, 以确定是否将该信元插入数据库;
报文排序单元 303 , 用于根据报文序列号对报文重组数据库中的信元进行 排序, 得到正确排序的报文;
信元排序单元 304, 用于在确定报文为完整报文时, 根据信元序列号对报 文排序单元 303得到的正确排序的报文中的信元进行排序, 得到正确排序的信 元;
重组单元 305 ,用于对信元排序单元 304得到的正确排序的信元进行报文重 组。
其中, 信元可以包括信元数据和信元信息, 为了节省资源, 在排序的过程 中, 可以只对信元信息进行操作, 等到重组单元 305对报文进行重组时, 才根 据信元信息提取相应的信元数据进行重组。
则参见图 3b, 预处理单元 302可以包括数据保存子单元 3021、 信息插入子 单元 3022和决策子单元 3023;
数据保存子单元 3021 , 用于为接收单元 301接收到的信元打上到达时的本 地时间戳后,根据源标识将信元的信元数据保存在负载内存中, 并配置相应的 负载内存索引值;
信息插入子单元 3022, 用于将接收单元 301接收到的信元的信元信息插入 到输入先进先出 IF队列中, 其中, 信元信息包括信元的源标识、 本地时间戳、 负载内存索引值、 报文序列号和信元序列号等信息;
决策子单元 3023 , 用于根据源标识、 报文序列号和 PF队列的状态对信息 插入子单元 3022插入到 IF队列中的信元信息进行处理,以确定是否将该信元信 息插入 文重组数据库中去。 例如, 具体可以如下:
决策子单元 3023 , 具体用于当所有 PF队列的深度小于预设的阈值时, 确 定 IF队列中队首信元信息所对应的信元的报文序列号与当前正在处理的报文 的最小报文序列号的差值, 是否小于第四阈值; 若是, 则弹出 IF队列的队首信 元信息; 若否, 则将 IF队列的队首信元信息压入 PF队列之一, 并弹出最满的 PF 队列的队首信元信息;判断所弹出的 IF队列的队首信元信息所对应的信元或 PF 队列的队首信元信息所对应的信元是否超时; 若超时, 则回收该信元信息所对 应的信元和该信元所属的报文; 若没有超时, 则在该信元的报文序列号小于报 文重组数据库中同一源的最大开放报文序列号时,将该信元信息插入报文重组 数据库;在该信元的报文序列号大于报文重组数据库中同一源的最大开放报文 序列号时, 将该信元信息插入 PF队列之一。
该决策子单元, 还用于当有 PF队列的深度大于预设的阈值时, 根据本地 时间戳确定溢出 PF队列中的队首信元信息所对应的信元的报文序列号与当前 正在处理的报文的最小报文序列号的差值, 是否小于第四阈值; 若是, 则回收 该溢出 PF队列的队首信元信息所对应的信元,然后执行确定 IF队列中队首信元 信息所对应的信元的报文序列号与当前正在处理的报文的最小报文序列号的 差值, 是否小于第四阈值的步骤; 若否, 则执行将 IF队列的队首信元信息压入 PF队列之一, 并弹出最满的 PF队列的队首信元信息步骤。
具体可参见实施例一、 实施例二中的预处理流程以及图 2d。
报文重组数据库具体可以针对单播和多播分别进行设计。例如, 可以在一 个报文重组数据库下又分别设置针对单播的报文重组数据库和针对多播的报 文重组数据库。
其中,对于单播来说,报文重组数据库可以包括源描述符内存和源队列内 存。 其中, 源描述符内存用于存储源描述符, 并以报文服务类型和源端口号为 索引, 即以 {报文服务类型, 源端口号}作为索引; 而源队列内存用于存放与该 源描述符对应的源队列,该源队列内存可以包括一个指向排序报文緩存区的指 针,排序报文緩存区用于存放等待排序的信元的报文描述符,每个报文描述符 指向最后一次收到的属于此报文的信元的信元描述符。
其中, 源描述符内存和源队列内存可以由动态的报文描述符阵创建, 包括 N类不同容量的内存块, 其中, N为正整数。
对于多播来说,报文重组数据库包括 MGID描述符内存和 MGID队列内存, 其中, 源 MGID描述符内存用于存储 MGID描述符, 并以报文服务类型、 MGID 和源端口号为索引, 比如用 {报文服务类型, MGID, 源端口号}的哈希(Hash ) 值作为索引, 而 MGID队列内存用于存放与所述 MGID描述符对应的 MGID队 列, 所述 MGID队列内存可以包括一个指向排序报文緩存区的指针, 该排序报 文緩存区用于存放等待排序的信元的报文描述符,每个报文描述符指向最后一 次收到的属于此报文的信元的信元描述符。
其中, MGID描述符内存和 MGID队列内存为动态的报文描述符阵, 包括 M类不同容量的内存块, 其中, M为正整数。
MGID描述符内存和 MGID队列内存支持哈希功能, 即各个进程 (如 IF队 列、 PF队列、 完整队列、 排序报文緩沖区和信元排序緩沖区等)可以通过哈希 功能访问 MGID描述符内存和 MGID队列内存; 即:
报文排序单元 303 ,具体用于通过哈希功能访问 MGID描述符内存和 MGID 队列内存;
其中, 哈希功能可以被构造为多个哈希桶。 由于采用了哈希功能, 所以可 能会产生资源沖突, 因此, 还需要维护一个资源沖突查询表(FAVT ), 以便在 发生资源沖突时,可以根据该预置的资源沖突查询表将发生资源沖突的信元的 压入另一 MGID队列或丟弃。 所以, 如图 3b所示, 该网络设备还可以包括沖突 处理单元 306;
沖突处理单元 306, 用于在发生资源沖突时, 根据预置的资源沖突查询表 将发生资源沖突的信元的压入另一 MGID队列或丟弃 (即回收)。 具体为在报 文排序单元 303通过哈希功能访问 MGID描述符内存和 MGID队列内存时,如果 发生资源沖突,则根据预置的资源沖突查询表将发生资源沖突的信元的压入另 一 MGID队列或丟弃。
此外, 为了避免 FAVT表满的情况, 还可以通过配置一个阈值, 在本发明 实施例中称为第一阈值, 在 FAVT表中的信息量超过该第一阈值时, 激发一个 控制信息发送到源, 以减少发往这个目的端口的多播数据的流量。 所以, 如图 3b所示, 该网络设备还可以包括控制消息发送单元 307;
控制消息发送单元 307, 用于当资源沖突查询表的信息量超过预置第一阈 值时, 激发目的端口发送控制信息给多播源, 以减少发往所述目的端口的多播 数据量。
其中, 如图 3b所示, 信元排序单元 304可以包括入队子单元 3041、 緩存子 单元 3042和排序子单元 3043 ;
入队子单元 3041 , 用于在确定报文排序单元 302排好序的报文为完整报文 时,根据信元的广播类型和优先级将完整报文的报文描述符加入到相应的完整 队列中;
緩存子单元 3042 ,用于根据完整队列中的报文描述符将对应的信元信息插 入到所述信元排序緩沖区中;
排序子单元 3043 ,用于根据信元序列号在信元排序緩沖区中对提取到的信 元信息进行排序。
其中,信元排序緩沖区维护一个读指针和一个写指针, 写指针总是指向当 前正在进行信元排序的报文的开始位置,读指针用于将排好序的信元信息逐个 读出以进行 ·艮文重组, 因此, 可以将写指针和信元序列号相加计算出插入的信 元信息的偏移位置, 然后根据偏移位置调整该插入的信元信息在报文中的位 置, 以得到正确排序的信元信息; 即:
排序子单元 3043 ,具体用于将写指针和信元序列号相加计算出插入的信元 信息的偏移位置, 根据该偏移位置调整所述插入的信元信息在报文中的位置。
其中, 如图 3b所示, 重组单元 305可以包括分配子单元 3051、 读取子单元 3052和重组子单元 3053 ; 正确排序的信元信息的所属 文分配至重组资源;
读取子单元 3052 ,用于将信元排序緩沖区中的正确排序的信元信息逐个读 出;
重组子单元 3053 ,用于根据读取子单元 3052读出的信元信息获取相应的信 元数据, 利用分配子单元分配的重组资源对获取到的信元数据进行报文重组。 比如, 重组子单元 3053可以根据读取子单元 3052读出的信元信息,将数据保存 子单元 3021保存在负载内存中的信元数据读取出来。
进一步的, 为了提高效率, 可以为该正确排序的信元信息的所属报文分配 至少两个重组资源, 即: 分配子单元 3051 ,还用于为正确排序的信元信息的所属 "¾文分配至少两个 重组资源。
其中, 为了节约资源, 重组资源被管理在一个资源池中, 在需要的时候才 分配给每个源。 所谓需要的时候, 指的是将要开始进行重组的时候; 比如, 当 排序緩沖区中的信元已经正确排好序后,可以发送一个请求报文重组的指示信 号, 比如 FIFO— RDY信号给报文重组机制, 报文重组机制接收到该请求报文重 组的指示信号后, 就可以开始进行对排序緩沖区中的信元进行报文重组。
当然,如果信元排序緩沖区至少具有两个, 则报文重组机制可能会同时接 收到多个请求报文重组的指示信号,对于这种情况,报文重组机制可以根据报 文服务类型选择信元排序緩沖区来进行处理,即该重组单元还可以包括选择子 单元 3054;
选择子单元 3054, 用于根据报文服务类型选择信元排序緩沖区; 则分配子单元 3051 ,具体用于为选择子单元 3054选择的信元排序緩沖区中 的正确排序的信元信息的所属>¾文分配至重组资源;
读取子单元 3052,用于将选择子单元 3054选择的信元排序緩沖区中的正确 排序的信元信息逐个读出。
为了避免在某一个报文的重组重排序时花费过多的时间,即避免流量超时 进一步的,还可以根据本地时间戳来检查信元和所属的报文不会在交换网或报 文重组阶段花费太长时间。 即如图 3b所示, 该网络设备还可以包括丟弃单元; 丟弃单元, 用于确定报文重组超时时, 将报文丟弃。
该丟弃单元,具体用于在报文中第一个到达目的端口的信元的到达时间与 当前时间的差值大于预置的第二阈值时, 确认报文重组超时。 具体可以如下: 每个报文描述符包括一个最早信元时间戳,表示这个报文的所有信元中第 一个到达目的端口的信元的到达时间。如果当前时间和此最早信元时间戳的差 值大于预设第二阈值, 就把此报文标记为重组超时, 当这个报文到达报文描述 符阵列的队首时, 即使这个报文还没有收到其所有信元,也不再等待接收该报 文的其他信元, 而是把该报文弹出队列并且丟弃。
此外, 在交换网中耽误时间太多的报文也可以直接被丟弃, 此时, 可以不 再等待重组超时。 如下: 接收单元 301 , 具体用于通过交换网接收源端口发送的信元; 则丟弃单元,还用于确定交换网时延的估算值超过预置的第三阈值时, 则 将报文丟弃。
其中,报文在交换网中的传输时间可以在目的端口根据报文的序列号通过 估算得到, 具体可参见现有技术, 在此不再赘述。
第二阈值和第三阈值的具体取值可以根据实际应用的需求进行设置。 具体实施时, 以上各个单元可以分别作为独立的实体实现,也可以作为同 一或若干个实体来实现, 例如, 预处理单元 302可以由实施例二中的预处理模 块来实现, 报文排序单元 303可以由实施例二中的报文排序模块来实现, 信元 排序单元 304可以由实施例二中的信元排序模块来实现,重组单元 305可以由实 施例二中的报文重组模块来实现,而丟弃单元可以实施例二中的报文回收模块 和信令回收模块来实现, 等等。
以上各个单元的具体实施可参见前面实施例, 在此不再赘述。 到的信元进行预处理, 以确定是否将接收到的信元插入报文重组数据库, 然后 由报文排序单元 303和信元排序单元 304直接根据信元的报文序列号和信元序 列号对数据库中的信元进行排序, 最终由重组单元 305根据排好序的信元对报 文进行重组。 由于本方案可以直接根据源来对 文进行重组重排序, 所以相对 于现有技术中基于时标同步来实现报文的重组重排序而言,可以适用于高性能 设备。 而且, 由于本方案可以对接收到的信元(即等待重组的报文)进行控制 管理, 所以对资源的利用率较高, 可以占用较少的内存和控制资源。 实施例六、
相应的, 本发明实施例还相应地提供一种通信系统, 包括源端口设备和本 发明实施例提供的任意一种网络设备, 该网络设备作为目的端口(即称为目的 端口设备), 具体可参见前面的实施例; 例如, 可以如下:
目的端口设备, 作为目的端口, 用于接收源端口发送的信元, 其中, 该信 元携带源标识、报文序列号和信元序列号,根据源标识对接收到的信元进行预 处理, 以确定是否将该信元插入报文重组数据库,根据报文序列号对报文重组 数据库中的信元进行排序,得到正确排序的报文, 若该正确排序的报文为完整 报文, 则根据信元序列号对所述正确排序的报文中的信元进行排序,得到正确 排序的信元, 对该正确排序的信元进行 ^¾文重组;
源端口设备, 作为源端口, 用于发送信元给目的端口设备, 其中, 信元携 带源标识、 报文序列号和信元序列号。
其中, 目的端口设备, 具体用于为接收到的信元打上到达时的本地时间戳 后,根据源标识将信元的信元数据保存在负载内存中, 并配置相应的负载内存 索引值; 将信元的信元信息插入到 IF队列中, 其中, 信元信息包括信元的源标 识、 本地时间戳、 负载内存索引值、 报文序列号和信元序列号; 根据源标识、 本地时间戳和 PF队列的状态对 IF队列中的信元信息进行处理,以确定是否将所 述信元信息插入 "¾文重组数据库, 具体可参见前面的方法实施例以及图 2d。
以上各个设备的具体实施可参见前面实施例, 在此不再赘述。
由上可知,本实施例的通信系统的目的端口设备采用根据源标识对接收到 的信元进行预处理, 以确定是否将接收到的信元插入报文重组数据库, 然后再 直接根据信元的报文序列号和信元序列号对数据库中的信元进行排序,最终实 现报文的重组。 由于本方案可以直接根据源来对报文进行重组重排序, 所以相 对于现有技术中基于时标同步来实现报文的重组重排序而言,可以适用于高性 能设备。 而且, 由于本方案可以对接收到的信元(即等待重组的报文)进行控 制管理, 所以对资源的利用率较高, 可以占用较少的内存和控制资源。 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: 只读存储器(ROM, Read Only Memory ), 随机存取记忆体(RAM, Random Access Memory ) , 磁盘或光盘等。
以上对本发明实施例所提供的一种报文重组重排序方法、装置和系统进行 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于 本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有 改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims (34)

  1. 权 利 要 求
    1、 一种 文重组重排序方法, 其特征在于, 包括:
    接收源端口发送的信元,所述信元携带源标识、报文序列号和信元序列号; 根据源标识对接收到的信元进行预处理,以确定是否将所述信元插入报文 重组数据库;
    根据报文序列号对报文重组数据库中的信元进行排序,得到正确排序的报 文;
    若所述正确排序的报文为完整报文,则根据信元序列号对所述正确排序的 报文中的信元进行排序, 得到正确排序的信元;
    对所述正确排序的信元进行 >¾文重组。
  2. 2、 根据权利要求 1所述的方法, 其特征在于, 所述根据源标识对接收到的 信元进行预处理, 以确定是否将所述信元插入报文重组数据库包括:
    为接收到的信元打上到达时的本地时间戳后,根据源标识将信元的信元数 据保存在负载内存中, 并配置相应的负载内存索引值;
    将信元的信元信息插入到输入先进先出 IF队列中,所述信元信息包括信元 的源标识、 本地时间戳、 负载内存索引值、 ·艮文序列号和信元序列号;
    根据源标识、报文序列号和延时先进先出 PF队列的状态对 IF队列中的信元 信息进行处理, 以确定是否将所述信元信息插入报文重组数据库。
  3. 3、 根据权利要求 2所述的方法, 其特征在于, 所述根据源标识、 报文序列 号和 PF队列的状态对 IF队列中的信元信息进行处理,以确定是否将所述信元插 入报文重组数据库包括:
    当所有 PF队列的深度小于预设的阈值时,确定 IF队列中队首信元信息所对 应的信元的报文序列号与当前正在处理的报文的最小报文序列号的差值,是否 小于第四阈值;
    若是, 则弹出 IF队列的队首信元信息;
    若否, 则将 IF队列的队首信元信息压入 PF队列之一, 并弹出最满的 PF队 列的队首信元信息;
    判断所弹出的 IF队列的队首信元信息所对应的信元或 PF队列的队首信元 信息所对应的信元是否超时; 若超时, 则回收该信元信息所对应的信元和该信元所属的报文; 若没有超时,则在该信元的报文序列号小于报文重组数据库中同一源的最 大报文序列号时,将该信元信息插入报文重组数据库; 在该信元的报文序列号 大于报文重组数据库中同一源的最大报文序列号时,将该信元信息插入 PF队列 之一。
  4. 4、 根据权利要求 3所述的方法, 其特征在于, 还包括:
    当有 PF队列的深度大于预设的阈值时, 确定溢出 PF队列中的队首信元信 息所对应的信元的报文序列号与当前正在处理的报文的最小报文序列号的差 值, 是否小于第五阈值;
    若是, 则回收该溢出 PF队列的队首信元信息所对应的信元, 然后执行确 定 IF队列中队首信元信息所对应的信元的报文序列号与当前正在处理的报文 的最小报文序列号的差值, 是否小于第四阈值的步骤;
    若否,则执行将 IF队列的队首信元信息压入 PF队列之一,并弹出最满的 PF 队列的队首信元信息步骤。
  5. 5、 根据权利要求 1至 4中任一项所述的方法, 其特征在于,
    所述报文重组数据库包括源描述符内存和源队列内存,所述源描述符内存 用于存储源描述符, 并以报文服务类型和源标识为索引, 所述源队列内存用于 存放与所述源描述符对应的源队列,所述源队列内存包括一个指向排序报文緩 存区的指针, 所述排序报文緩存区用于存放等待排序的信元的报文描述符,每 个报文描述符指向最后一次收到的属于此报文的信元的信元描述符。
  6. 6、 根据权利要求 5所述的方法, 其特征在于,
    所述排序报文緩沖区为动态的报文描述符阵, 包括 N类不同容量的内存 块, 其中, N为正整数。
  7. 7、 根据权利要求 1至 4中任一项所述的方法, 其特征在于,
    所述报文重组数据库包括多播复制域的标识 MGID描述符内存和 MGID队 列内存, 所述源 MGID描述符内存用于存储 MGID描述符, 并以报文服务类型、 MGID和源标识为索引,所述 MGID队列内存用于存放与所述 MGID描述符对应 的 MGID队列, 所述 MGID队列内存包括一个指向排序报文緩存区的指针, 所 述排序报文緩存区用于存放等待排序的信元的报文描述符,每个报文描述符指 向最后一次收到的属于此报文的信元的信元描述符。
  8. 8、 根据权利要求 7所述的方法, 其特征在于,
    所述排序报文緩沖区为动态的报文描述符阵, 包括 M类不同容量的内存 块, 其中, M为正整数。
  9. 9、 根据权利要求 7所述的方法, 其特征在于,
    通过哈希功能访问 MGID描述符内存和 MGID队列内存;
    在发生资源沖突时,根据预置的资源沖突查询表将发生资源沖突的信元的 压入另一 MGID队列或丟弃。
  10. 10、 根据权利要求 9所述的方法, 其特征在于,
    当所述资源沖突查询表的信息量超过预置第一阈值时,激发目的端口发送 控制信息给多播源, 以减少发往所述目的端口的多播数据量。
  11. 11、 根据权利要求 2至 4、 6或 8至 10中任一项所述的方法, 其特征在于, 所 述根据信元序列号对所述正确排序的报文中的信元进行排序包括:
    若报文为完整报文,则根据信元的广播类型和报文服务类型将所述完整报 文的 文描述符加入到相应的完整队列中;
    根据完整队列中的报文描述符将对应的信元信息插入到信元排序緩沖区 中;
    根据信元序列号在所述信元排序緩沖区中对提取到的信元信息进行排序。
  12. 12、 根据权利要求 11所述的方法, 其特征在于, 所述根据信元序列号在所 述信元排序緩沖区中对提取到的信元信息进行排序包括:
    所述信元排序緩沖区维护一个读指针和一个写指针,写指针总是指向当前 正在进行信元排序的报文的开始位置,读指针用于将排好序的信元信息逐个读 出以进行报文重组;
    将写指针和信元序列号相加计算出插入的信元信息的偏移位置; 根据所述偏移位置调整所述插入的信元信息在报文中的位置。
  13. 13、 根据权利要求 11所述的方法, 其特征在于, 所述对正确排序的信元进 行报文重组包括:
    为所述正确排序的信元信息的所属 文分配至少两个重组资源; 将选择的信元排序緩沖区中的正确排序的信元信息逐个读出; 根据读出的信元信息获取相应的信元数据,利用分配的重组资源对获取到 的信元数据进行报文重组。
  14. 14、 根据权利要求 13所述的方法, 其特征在于, 所述信元排序緩沖区至少 具有两个, 则所述对正确排序的信元进行 "¾文重组还包括:
    根据报文服务类型选择信元排序緩沖区;
    则所述将选择的信元排序緩沖区中的正确排序的信元信息逐个读出具体 为: 将选择的信元排序緩沖区中的正确排序的信元信息逐个读出。
  15. 15、 根据权利要求 2至 4、 6、 8至 10或 12至 14中任一项所述的方法, 其特征 在于, 还包括:
    确定报文重组超时时, 将报文丟弃。
  16. 16、 根据权利要求 15所述的方法, 其特征在于, 所述确定报文重组超时具 体为:
    若才艮文中第一个到达目的端口的信元的本地时间戳与当前时间的差值大 于预置的第二阈值时, 则确认报文重组超时。
  17. 17、 根据权利要求 2至 4、 6、 8至 10、 12至 14或 16中任一项所述的方法, 其 特征在于,
    所述接收源端口发送的信元具体为: 通过交换网接收源端口发送的信元; 则所述对正确排序的信元进行报文重组之前,还包括: 确定交换网时延的 估算值超过预置的第三阈值时, 则将报文丟弃。
  18. 18、 一种网络设备, 其特征在于, 包括:
    接收单元, 用于接收源端口发送的信元, 所述信元携带源标识、 报文序列 号和信元序列号;
    预处理单元, 用于根据源标识对接收单元接收到的信元进行预处理, 以确 定是否将所述信元插入数据库;
    报文排序单元, 用于根据报文序列号对报文重组数据库中的信元进行排 序, 得到正确排序的报文;
    信元排序单元, 用于在确定报文为完整报文时,根据信元序列号对所述正 确排序的报文中的信元进行排序, 得到正确排序的信元;
    重组单元, 用于对所述正确排序的信元进行 "¾文重组。 19、根据权利要求 18所述的网络设备,其特征在于,所述预处理单元包括: 数据保存子单元, 用于为接收到的信元打上到达时的本地时间戳后,根据 源标识将信元的信元数据保存在负载内存中, 并配置相应的负载内存索引值; 信息插入子单元, 用于将信元的信元信息插入到输入先进先出 IF队列中, 所述信元信息包括信元的源标识、 本地时间戳、 负载内存索引值、 报文序列号 和信元序列号;
    决策子单元, 用于根据源标识、 报文序列号和延时先进先出 PF队列的状 态对 IF队列中的信元信息进行处理,以确定是否将所述信元信息插入报文重组 数据库。
  19. 20、 根据权利要求 19所述的网络设备, 其特征在于, 包括:
    所述决策子单元, 具体用于当所有 PF队列的深度小于预设的阈值时, 确 定 IF队列中队首信元信息所对应的信元的报文序列号与当前正在处理的报文 的最小报文序列号的差值, 是否小于第四阈值; 若小于第四阈值, 则弹出 IF队 列的队首信元信息; 若大于等于第四阈值, 则将 IF队列的队首信元信息压入 PF 队列之一, 并弹出最满的 PF队列的队首信元信息; 判断所弹出的 IF队列的队首 信元信息所对应的信元或 PF队列的队首信元信息所对应的信元是否超时;若超 时, 则回收该信元信息所对应的信元和该信元所属的报文; 若没有超时, 则在 该信元的报文序列号小于报文重组数据库中同一源的最大报文序列号时,将该 信元信息插入报文重组数据库;在该信元的报文序列号大于报文重组数据库中 同一源的最大报文序列号时, 将该信元信息插入 PF队列之一。
  20. 21、 根据权利要求 20所述的网络设备, 其特征在于,
    所述决策子单元, 还用于当有 PF队列的深度大于预设的阈值时, 确定溢 出 PF队列中的队首信元信息所对应的信元的报文序列号与当前正在处理的报 文的最小报文序列号的差值, 是否小于第五阈值; 若小于第五阈值, 则回收该 溢出 PF队列的队首信元信息所对应的信元,然后执行确定 IF队列中队首信元信 息所对应的信元的报文序列号与当前正在处理的报文的最小报文序列号的差 值, 是否小于第四阈值的步骤; 若大于等于第五阈值, 则执行将 IF队列的队首 信元信息压入 PF队列之一, 并弹出最满的 PF队列的队首信元信息步骤。
  21. 22、 根据权利要求 18至 21中任一项所述的网络设备, 其特征在于, 所述报文重组数据库包括源描述符内存和源队列内存,所述源描述符内存 用于存储源描述符, 并以报文服务类型和源标识为索引, 所述源队列内存用于 存放与所述源描述符对应的源队列,所述源队列内存包括一个指向排序报文緩 存区的指针, 所述排序报文緩存区用于存放等待排序的信元的报文描述符,每 个报文描述符指向最后一次收到的属于此报文的信元的信元描述符。
  22. 23、 根据权利要求 22所述的网络设备, 其特征在于,
    所述排序报文緩沖区为动态的报文描述符阵, 包括 N类不同容量的内存 块, 其中, N为正整数。
  23. 24、 根据权利要求 18至 21中任一项所述的网络设备, 其特征在于, 所述报文重组数据库包括多播复制域的标识 MGID描述符内存和 MGID队 列内存, 所述源 MGID描述符内存用于存储 MGID描述符, 并以报文服务类型、 MGID和源端口号为索引,所述 MGID队列内存用于存放与所述 MGID描述符对 应的 MGID队列, 所述 MGID队列内存包括一个指向排序报文緩存区的指针, 所述排序报文緩存区用于存放等待排序的信元的报文描述符,每个报文描述符 指向最后一次收到的属于此报文的信元的信元描述符。
  24. 25、 根据权利要求 24所述的网络设备, 其特征在于,
    所述排序报文緩沖区为动态的报文描述符阵, 包括 M类不同容量的内存 块, 其中, M为正整数。
  25. 26、根据权利要求 24所述的网络设备,其特征在于,还包括沖突处理单元; 所述报文排序单元, 具体用于通过哈希功能访问 MGID描述符内存和
    MGID队列内存;
    则沖突处理单元, 用于在发生资源沖突时,根据预置的资源沖突查询表将 发生资源沖突的信元的压入另一 MGID队列或丟弃。
  26. 27、 根据权利要求 26所述的网络设备, 其特征在于, 还包括:
    控制消息发送单元,用于当所述资源沖突查询表的信息量超过预置第一阈 值时, 激发目的端口发送控制信息给多播源, 以减少发往所述目的端口的多播 数据量。
  27. 28、 根据权利要求 19至 21、 23或 25至 27中任一项所述的网络设备, 其特征 在于, 所述信元排序单元包括: 入队子单元, 用于在确定报文为完整报文时,根据信元的广播类型和优先 级将所述完整报文的报文描述符加入到相应的完整队列中;
    緩存子单元,用于根据完整队列中的报文描述符将对应的信元信息插入到 所述信元排序緩沖区中;
    排序子单元,用于根据信元序列号在所述信元排序緩沖区中对提取到的信 元信息进行排序。
  28. 29、 根据权利要求 28所述的网络设备, 其特征在于, 所述信元排序緩沖区 维护一个读指针和一个写指针,写指针总是指向当前正在进行信元排序的报文 的开始位置, 读指针用于将排好序的信元信息逐个读出以进行 ·艮文重组; 贝' J :
    所述排序子单元,具体用于将写指针和信元序列号相加计算出插入的信元 信息的偏移位置, 根据所述偏移位置调整所述插入的信元信息在报文中的位 置。
  29. 30、 根据权利要求 28所述的网络设备, 其特征在于, 所述重组单元包括: 分配子单元,用于为所述正确排序的信元信息的所属 文分配至少两个重 组资源;
    读取子单元, 用于将信元排序緩沖区中的正确排序的信元信息逐个读出; 重组子单元, 用于根据读取子单元读出的信元信息获取相应的信元数据, 利用分配子单元分配的重组资源对获取到的信元数据进行报文重组。
  30. 31、 根据权利要求 30所述的网络设备, 其特征在于, 所述重组单元还包括 选择子单元;
    选择子单元, 用于根据报文服务类型选择信元排序緩沖区;
    则所述分配子单元,具体用于为选择子单元选择的信元排序緩沖区中的正 确排序的信元信息的所属报文分配至重组资源;
    所述读取子单元,用于将选择子单元选择的信元排序緩沖区中的正确排序 的信元信息逐个读出。
  31. 32、根据权利要求 19至 21、 23、 25至 27或 29至 31中任一项所述的网络设备, 其特征在于, 还包括:
    丟弃单元, 用于确定报文重组超时时, 将报文丟弃。
  32. 33、 根据权利要求 32所述的网络设备, 其特征在于, 丟弃单元,具体用于在报文中第一个到达目的端口的信元的到达时间与当 前时间的差值大于预置的第二阈值时, 确认报文重组超时。
  33. 34、 根据权利要求 32所述的网络设备, 其特征在于,
    所述接收单元, 具体用于通过交换网接收源端口发送的信元;
    则所述丟弃单元, 还用于确定交换网时延的估算值超过预置的第三阈值 时, 则将报文丟弃。
  34. 35、 一种通信系统, 其特征在于, 包括源端口设备和权利要求 19至 34所述 的任一种网络设备;
    所述源端口设备, 用于发送信元给网络设备, 所述信元携带源标识、报文 序列号和信元序列号。
CN201180001422.5A 2011-08-17 2011-08-17 一种报文重组重排序方法、装置和系统 Active CN103069757B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/078504 WO2012162949A1 (zh) 2011-08-17 2011-08-17 一种报文重组重排序方法、装置和系统

Publications (2)

Publication Number Publication Date
CN103069757A true CN103069757A (zh) 2013-04-24
CN103069757B CN103069757B (zh) 2015-07-22

Family

ID=47258297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180001422.5A Active CN103069757B (zh) 2011-08-17 2011-08-17 一种报文重组重排序方法、装置和系统

Country Status (6)

Country Link
US (1) US9380007B2 (zh)
EP (1) EP2736197B1 (zh)
JP (1) JP5863076B2 (zh)
KR (1) KR101607180B1 (zh)
CN (1) CN103069757B (zh)
WO (1) WO2012162949A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110391990A (zh) * 2018-04-18 2019-10-29 中兴通讯股份有限公司 数据传输方法及装置、系统、存储介质、电子装置
CN113014586A (zh) * 2021-03-04 2021-06-22 即时匹配(上海)网络科技有限公司 Rtp数据包乱序处理及重组帧方法和系统
WO2021218248A1 (zh) * 2020-04-30 2021-11-04 中兴通讯股份有限公司 信元流特征值调整方法、装置、系统和存储介质
CN113676413A (zh) * 2021-08-26 2021-11-19 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质
CN113691469A (zh) * 2021-07-27 2021-11-23 新华三技术有限公司合肥分公司 报文乱序重排方法及单板
CN113965391A (zh) * 2021-10-27 2022-01-21 成都数默科技有限公司 一种多数据包文件冒泡排序的方法
CN114968893A (zh) * 2022-07-27 2022-08-30 井芯微电子技术(天津)有限公司 基于时间戳的PCIe报文队列调度方法、系统及设备

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012068171A1 (en) * 2010-11-15 2012-05-24 Reed Coke S Parallel information system utilizing flow control and virtual channels
US9146677B2 (en) * 2013-01-28 2015-09-29 Applied Micro Circuits Corporation Systems and methods for queue request ordering without stalling requests in aliasing conditions by using a hash indexed based table
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US9338105B2 (en) * 2013-09-03 2016-05-10 Broadcom Corporation Providing oversubscription of pipeline bandwidth
CN105573711B (zh) 2014-10-14 2019-07-19 深圳市中兴微电子技术有限公司 一种数据缓存方法及装置
GB2533328A (en) * 2014-12-16 2016-06-22 Ibm Message processing
JP6342351B2 (ja) * 2015-03-02 2018-06-13 東芝メモリ株式会社 ストレージシステム
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US20170017419A1 (en) * 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017420A1 (en) * 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US9904635B2 (en) * 2015-08-27 2018-02-27 Samsung Electronics Co., Ltd. High performance transaction-based memory systems
CN106911644A (zh) * 2015-12-23 2017-06-30 中国移动通信集团广西有限公司 一种报文重组方法和设备
KR101785821B1 (ko) 2016-01-04 2017-10-16 엘에스산전 주식회사 시리얼 통신의 프레임 수신 모니터링 방법
US10089339B2 (en) * 2016-07-18 2018-10-02 Arm Limited Datagram reassembly
US9906821B1 (en) * 2016-08-23 2018-02-27 Cisco Technology, Inc. Packet reordering system
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
CN109561443B (zh) * 2017-09-26 2021-06-11 大唐移动通信设备有限公司 一种信息处理方法、装置、设备及计算机可读存储介质
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US10778466B2 (en) 2017-10-02 2020-09-15 Vmware, Inc. Processing data messages of a virtual network that are sent to and received from external service machines
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US10686714B2 (en) * 2018-04-27 2020-06-16 Avago Technologies International Sales Pte. Limited Traffic management for high-bandwidth switching
US10567307B2 (en) 2018-04-27 2020-02-18 Avago Technologies International Sales Pte. Limited Traffic management for high-bandwidth switching
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
US11805081B2 (en) * 2019-03-04 2023-10-31 Intel Corporation Apparatus and method for buffer management for receive segment coalescing
US11252105B2 (en) 2019-08-27 2022-02-15 Vmware, Inc. Identifying different SaaS optimal egress nodes for virtual networks of different entities
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
WO2021083492A1 (en) * 2019-10-29 2021-05-06 Huawei Technologies Co., Ltd. Systems and methods for sorting data elements with approximation to o(1)
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11606712B2 (en) 2020-01-24 2023-03-14 Vmware, Inc. Dynamically assigning service classes for a QOS aware network link
US11190457B2 (en) * 2020-02-19 2021-11-30 At&T Intellectual Property I, L.P. Selectively bypassing a routing queue in a routing device in a fifth generation (5G) or other next generation network
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
WO2022154725A1 (en) * 2021-01-14 2022-07-21 Telefonaktiebolaget Lm Ericsson (Publ) Packet tunneling in a wireless communication network
US11792127B2 (en) 2021-01-18 2023-10-17 Vmware, Inc. Network-aware load balancing
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11582144B2 (en) 2021-05-03 2023-02-14 Vmware, Inc. Routing mesh to provide alternate routes through SD-WAN edge forwarding nodes based on degraded operational states of SD-WAN hubs
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11681575B2 (en) * 2021-06-10 2023-06-20 Arm Limited Ordered data sub-component extraction
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11770215B2 (en) 2022-02-17 2023-09-26 Nvidia Corp. Transceiver system with end-to-end reliability and ordering protocols
CN114390004A (zh) * 2022-03-24 2022-04-22 成都数联云算科技有限公司 一种报文处理方法及系统及装置及介质
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6781992B1 (en) * 2000-11-30 2004-08-24 Netrake Corporation Queue engine for reassembling and reordering data packets in a network
US20080279195A1 (en) * 2007-05-07 2008-11-13 Hitachi, Ltd. Multi-plane cell switch fabric system
US20090252168A1 (en) * 2008-04-02 2009-10-08 Alaxala Networks Corporation Multi-plane cell switch fabric system
CN101795236A (zh) * 2010-03-31 2010-08-04 成都市华为赛门铁克科技有限公司 报文保序方法及装置
CN101932006A (zh) * 2009-06-19 2010-12-29 中兴通讯股份有限公司 数据包发送、接收、传输方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2848784B2 (ja) * 1994-08-02 1999-01-20 沖電気工業株式会社 パケット交換方式
US5802050A (en) * 1996-06-10 1998-09-01 Telefonaktiebolaget Lm Ericsson Minicell sequence number count
US6791947B2 (en) * 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US6148001A (en) * 1997-06-12 2000-11-14 Nokia Telecommunications, Oy Multipoint-to-point system which multiplexes complete packets comprised of ATM cells on to a single virtual channel connection
US6741552B1 (en) * 1998-02-12 2004-05-25 Pmc Sierra Inertnational, Inc. Fault-tolerant, highly-scalable cell switching architecture
JP2001036549A (ja) * 1999-07-15 2001-02-09 Toshiba Corp データ処理システムおよびタイムスタンプ生成方法
US7102999B1 (en) * 1999-11-24 2006-09-05 Juniper Networks, Inc. Switching device
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7107359B1 (en) * 2000-10-30 2006-09-12 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7095744B2 (en) * 2000-11-22 2006-08-22 Dune Networks Method and system for switching variable sized packets
JP4489308B2 (ja) 2001-01-05 2010-06-23 富士通株式会社 パケットスイッチ
US7342942B1 (en) * 2001-02-07 2008-03-11 Cortina Systems, Inc. Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port
US7085274B1 (en) * 2001-09-19 2006-08-01 Juniper Networks, Inc. Context-switched multi-stream pipelined reorder engine
US7167476B1 (en) * 2002-04-12 2007-01-23 Juniper Networks, Inc. Systems and methods for routing data in a network device
US7124231B1 (en) * 2002-06-14 2006-10-17 Cisco Technology, Inc. Split transaction reordering circuit
US7486678B1 (en) 2002-07-03 2009-02-03 Greenfield Networks Multi-slice network processor
US20050100035A1 (en) * 2003-11-11 2005-05-12 Avici Systems, Inc. Adaptive source routing and packet processing
US7873693B1 (en) * 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US8279866B2 (en) * 2004-11-17 2012-10-02 Samsung Electronics Co., Ltd. Method and system for switching packets in a communication network
US8553684B2 (en) * 2006-04-24 2013-10-08 Broadcom Corporation Network switching system having variable headers and addresses
DE602008006234D1 (de) * 2008-12-19 2011-05-26 Alcatel Lucent Skalierbares Netzwerkelement mit Segmentierungs- und Wiedervereiningungsfunktion (SAR) zum Schalten von zeitlich gemultiplexten Signalen
US9602439B2 (en) * 2010-04-30 2017-03-21 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
US9071499B2 (en) * 2011-03-28 2015-06-30 Citrix Systems, Inc. Systems and methods for emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6781992B1 (en) * 2000-11-30 2004-08-24 Netrake Corporation Queue engine for reassembling and reordering data packets in a network
US20080279195A1 (en) * 2007-05-07 2008-11-13 Hitachi, Ltd. Multi-plane cell switch fabric system
US20090252168A1 (en) * 2008-04-02 2009-10-08 Alaxala Networks Corporation Multi-plane cell switch fabric system
CN101932006A (zh) * 2009-06-19 2010-12-29 中兴通讯股份有限公司 数据包发送、接收、传输方法及装置
CN101795236A (zh) * 2010-03-31 2010-08-04 成都市华为赛门铁克科技有限公司 报文保序方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110391990A (zh) * 2018-04-18 2019-10-29 中兴通讯股份有限公司 数据传输方法及装置、系统、存储介质、电子装置
WO2021218248A1 (zh) * 2020-04-30 2021-11-04 中兴通讯股份有限公司 信元流特征值调整方法、装置、系统和存储介质
CN113014586A (zh) * 2021-03-04 2021-06-22 即时匹配(上海)网络科技有限公司 Rtp数据包乱序处理及重组帧方法和系统
CN113691469A (zh) * 2021-07-27 2021-11-23 新华三技术有限公司合肥分公司 报文乱序重排方法及单板
CN113691469B (zh) * 2021-07-27 2023-12-26 新华三技术有限公司合肥分公司 报文乱序重排方法及单板
CN113676413A (zh) * 2021-08-26 2021-11-19 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质
CN113676413B (zh) * 2021-08-26 2024-05-17 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质
CN113965391A (zh) * 2021-10-27 2022-01-21 成都数默科技有限公司 一种多数据包文件冒泡排序的方法
CN113965391B (zh) * 2021-10-27 2023-10-20 成都数默科技有限公司 一种多数据包文件冒泡排序的方法
CN114968893A (zh) * 2022-07-27 2022-08-30 井芯微电子技术(天津)有限公司 基于时间戳的PCIe报文队列调度方法、系统及设备
CN114968893B (zh) * 2022-07-27 2022-09-30 井芯微电子技术(天津)有限公司 基于时间戳的PCIe报文队列调度方法、系统及设备

Also Published As

Publication number Publication date
EP2736197B1 (en) 2016-03-09
KR20140046052A (ko) 2014-04-17
EP2736197A4 (en) 2014-05-28
EP2736197A1 (en) 2014-05-28
WO2012162949A1 (zh) 2012-12-06
US20140160935A1 (en) 2014-06-12
KR101607180B1 (ko) 2016-03-29
US9380007B2 (en) 2016-06-28
CN103069757B (zh) 2015-07-22
JP5863076B2 (ja) 2016-02-16
JP2014522202A (ja) 2014-08-28

Similar Documents

Publication Publication Date Title
CN103069757A (zh) 一种报文重组重排序方法、装置和系统
CN100550847C (zh) 一种解决Hash冲突的方法及装置
US5311509A (en) Configurable gigabits switch adapter
CN103391256B (zh) 一种基于Linux系统的基站用户面数据处理优化方法
CN101267361B (zh) 一种基于零拷贝技术的高速网络数据包捕获方法
WO2016011811A1 (zh) 一种内存管理方法、装置及存储介质
CN104040977B (zh) 缓存报文的方法和装置
JPH11508749A (ja) Atmのスロットリング
CN111177017B (zh) 一种内存分配方法及装置
JP2003229907A (ja) ネットワーク・プロセッサ内のデータ・ブロックの再組立てのための方法および装置
CN108121603B (zh) 一种嵌入式系统内存管理方法
CN109271113B (zh) 一种基于云存储的数据管理系统及方法
CN102957629B (zh) 队列管理的方法和装置
CN102891809A (zh) 多核网络设备报文按接口保序方法及系统
CN102916902A (zh) 数据存储方法及装置
WO2010072122A1 (zh) 一种传输报文的方法、端口和系统
CN103888364A (zh) 报文分流方法及设备
CN101064697B (zh) 一种实现异步传输模式网络服务质量控制的装置和方法
CN110011924A (zh) 一种清除缓存拥塞的方法与装置
CN101043437B (zh) 一种快速发送操作、管理和维护信元的方法和装置
CN108449166A (zh) 一种FlexE中的数据转发方法及网络设备
CN102487303A (zh) 时隙分配管理方法及装置
CN1984031A (zh) 一种实现数据包模式到信元帧模式转换的装置及其方法
CN100409633C (zh) 在atm交换系统中生成并传输串列分组的方法
CN101895470B (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
C14 Grant of patent or utility model
GR01 Patent grant