一种交换机数据包切分与重组的方法与装置制造方法

文档序号:7811968阅读:247来源:国知局
一种交换机数据包切分与重组的方法与装置制造方法
【专利摘要】该发明公开了一种交换机数据包切分与重组的方法与装置,属于通信【技术领域】,本发明提供的方法包括:切分方法和重组方法。其中切分方法包括:将数据包预切分再缓存,采用信息缓存与数据缓存的数据管理方式,当缓存了一个内部信元净荷大小的数据即开始生成并发送信元;重组方法包括:采用信息缓存和VIQ缓存的数据管理方式,在将信元净荷分别存入VIQ缓存的过程中即完成了数据包重组。本发明提供的装置,包括:交换机中的切分模块和重组模块,以实现上述方法。该方法和装置能高效完成数据包切分与重组,数据管理简单易行,能有效减少切分延迟和延迟抖动,提高交换效率。
【专利说明】一种交换机数据包切分与重组的方法与装置

【技术领域】
[0001] 本发明属于通信【技术领域】,特别是涉及一种交换机数据包切分与重组的方法与装 置。

【背景技术】
[0002] 交换机是现代大型网络的基础。在目前的交换机设计中,为了提高交换系统的性 能,对数据包的处理广泛采用定长分组交换技术。定长分组交换技术,要求将变长数据包在 交换机输入端切分成固定长度的信元,再通过交换结构进行交换,最后在输出端将信元重 组为原始数据包再进行转发。定长分组交换使得整个交换结构的各个交换单元都同步操 作,实现简单,交换的信元颗粒小,交换时延短。
[0003] 现行的交换机一般包括交换模块和对应于每个端口的切分模块、重组模块和网络 接口模块。网络接口模块,根据协议完成物理介质中的物理信号和并行传输的数据包之间 的相互转换,并维护链路。网络接口模块收到物理介质传来的数据后得到有效的数据包,发 给切分模块。切分模块根据数据包头部中的信息生成信元头部,将目的地址对应为目的端 口号,并将数据包切分为定长信元,发给交换模块。交换模块根据信元头部中的目的端口 号,将信元转发给目的端口的重组模块。重组模块将交换模块发送来的信元重组为原始数 据包,并发送到网络接口模块。网络接口模块根据协议将数据包发送出去。
[0004] 现有的切分技术大都是接收数据包并存储于RAM中,当接收并存储一个完整的数 据包后,从RAM读出该数据包再切分为信元。这种方法存在以下问题:
[0005] 1.在数据包较长时,导致数据包切分延时很大。现有切分技术采用等待一个数据 包被完整地接收并存储之后,再开始切分并发送信元。因此数据包较长时,需要等待的时间 较长,导致切分延时大。
[0006] 2.在数据包长度变化大的情况下延迟抖动明显。当数据包较短时,延时较小,数据 包较大时延迟大。如光纤通道协议中最长帧为2148字节,最短帧为36字节,采用现有切分 技术在切分模块延时相差数十倍。
[0007] 3.需要大量存储资源,地址管理复杂。现有技术采用RAM存储,需要专门的地址管 理模块。
[0008] 专利"一种星上交换模块的数据报分段与重组系统及实现方法"中,在"分段器"模 块采用两倍于内部信元净荷长度大小的RAM,用乒乓操作的方式每存入一个信元净荷长度 的数据,则读出并生成一个内部信元。此技术方案缓解了上述延时大和延时抖动问题,但存 在以下问题:
[0009] 1.采用两级缓存,存储利用率不高。先将数据包存储在"输入缓存器",然后从"输 入缓存器"中读出,提取信息,然后在"分段器"中完成切分操作。其中"分段器"中包含两 倍于内部信元净荷长度大小的缓存,用乒乓操作的方式完成切分。
[0010] 2.数据包存入"输入缓存器"到读出"输入缓存器"仍然存在长数据包延时较大和 数据包长度变化大时延时抖动较大的情况。
[0011] 3.在交换机内发生数据堵塞时,数据不能从"分段器"中的切分缓存中被及时读 出,而切分缓存不足以存储完整数据包,因此可能会在此部分发生数据包内容丢失。解决此 问题需要在其"输入缓存器"和"分段器"间添加复杂的流量控制。
[0012] 4.在"分段器"中地址管理复杂,需要专门的地址管理模块。
[0013] 现有的交换机的内部信元重组技术主要采用RAM存储,通过对地址的处理达到重 组的目的,此技术地址管理复杂。


【发明内容】

[0014] 本发明的目的在于针对现有技术的不足之处,提供一种交换机数据包切分与重组 的方法与装置,从而达到高效可靠,延迟低,抖动小,数据管理简单的目的。
[0015] 本发明的解决方案为一种交换机数据包切分与重组的方法,该方法包括数据包切 分和数据包重组。
[0016] 数据包切分,接收由网络接口模块发来的数据包并缓存,提取数据包头部中的信 息生成信元头部,将数据包切分为定长信元,与信元头部组成完整信元后发送到交换模 块;
[0017] 数据包重组,接收由交换模块发来的信元并缓存,提取信元中的有效净荷数据将 其重组为完整的数据包,并发送到网络接口模块。
[0018] 在所述交换机数据包切分与重组的方法中,数据包切分具体包括以下步骤:
[0019] 步骤11 :接收到由网络接口模块发来的数据包后,提取数据包头部中的源地址信 息、目的地址信息,生成信元头部所需的交换机中的源端口号、目的端口号信息;
[0020] 步骤12 :将数据包数据依次存入数据缓存中;
[0021] 步骤13 :生成信元头部所需的其他信息,如信元的有效净荷长度、信元在所属数 据包中的编号等,利用这些信息和步骤11生成的信息生成信元头部,并将其存入信息缓存 中;
[0022] 步骤14,若信息缓存非空,则从信息缓存中取出首个信元头部;
[0023] 步骤15,根据步骤14信元头部中的有效净荷长度,从数据缓存中取出对应有效净 荷长度大小的数据包数据,即为信元的有效净荷数据;
[0024] 步骤16,利用信元的有效净荷数据和信元头部,组成一个完整的信元并发送到交 换模块。
[0025] 所述步骤13的具体方法为:
[0026] (1)在接收数据包的过程中,若数据包未结束且当步骤12缓存的数据大小达到一 个信元的最大净荷长度时,则生成信元头部所需的其他信息,如信元的有效净荷长度、信元 在所属数据包中的编号等,然后按照所采用的信元头部格式生成一个信元头部,并将其存 入信息缓存中,用于组成一个信元;
[0027] (2)若数据包结束,此时步骤12中缓存的是最后一个信元的有效净荷数据,其长 度可能小于最大净荷长度,则将该信元的有效净荷长度、信元在数据包中的编号和尾信元 标志等信息组成信元头部,并存入信息缓存中。
[0028] 所述步骤16的具体方法为:
[0029] (1)若信元的有效净荷长度为最大净荷长度,则直接将信元头部和有效净荷数据 组成完整的信元,并发送到交换模块;
[0030] (2)若信元的有效净荷长度小于最大净荷长度,则需要在有效净荷数据后添加填 充数据,长度为最大净荷长度减去有效净荷长度,以达到最大净荷长度,再将信元头部、有 效净荷数据和填充数据组成完整的信元,并发送到交换模块。
[0031] 在所述交换机数据包切分与重组的方法中,数据包重组具体包括以下步骤:
[0032] 步骤21,接收到由交换模块发来的信元,提取信元头部中的源端口号、有效净荷长 度和尾信元标志;
[0033] 步骤22,分离信元中的信元头部和有效净荷数据,将有效净荷数据依次存入步骤 21中源端口号对应的虚拟输入队列(Virtual Input Queue, VIQ)中,并产生每个数据包对 应的信息,存入信息缓存中。其中虚拟输入队列为数据缓存,每一个虚拟输入队列对应交换 机的一个输入端口,存储此端口发来的数据包数据;
[0034] 步骤23,若信息缓存非空,则从信息缓存中取出首个数据包信息;
[0035] 步骤24,根据数据包信息中的源端口号,从对应的虚拟输入队列中取出大小等于 数据包信息中数据包长度的数据,即完整的数据包,并将数据包发送到网络接口模块。
[0036] 所述步骤22的具体方法为:
[0037] (1)若尾信元标志为无效,即此信元不为此数据包的最后一个信元,则根据信元格 式和有效净荷长度,拆去信元头部,提取出信元中的有效净荷数据,再根据源端口号将有效 净荷数据依次存入对应的虚拟输入队列中,同时对存入此虚拟输入队列的此信元所属的数 据包长度进行计数;
[0038] (2)若尾信元标志为有效,即此信元为此数据包的最后一个信元,则拆去信元头部 和填充数据,提取出信元中的有效净荷数据,将有效净荷数据存入虚拟输入队列,再将源端 口号和通过计数所得的此数据包长度组成一个数据包信息,并存入信息缓存中,与对应虚 拟输入队列中的此数据包相对应,并将此虚拟输入队列数据包长度的计数进行清零。
[0039] 本发明基于此方法提出了一种交换机数据包切分与重组的装置,该装置包括:切 分模块,重组模块,切分模块用于接收网络接口模块发来的数据包并缓存,将其切分为若干 个信元,并发送给交换模块;重组模块用于接收交换模块发来的若干信元并缓存,将这些信 元的有效载荷数据重组为一个完整的数据包,并发送到网络接口模块。
[0040] 在上述交换机数据包切分与重组的装置中,切分模块包括数据包预切分单元、路 由表单元、信息缓存单元、数据缓存单元和信元生成与发送单元;
[0041] 所述路由表单元,实现对数据包头部中的源地址、目的地址与交换机端口号对应 关系的存储,可采用CAM(Content Addressable Memory,内容可寻址存储器)实现;
[0042] 所述数据包预切分单元,用于提取数据包头部中生成信元头部所需的信息,通过 查找路由表单元将源地址、目的地址信息对应为交换机中源端口号和目的端口号,并生成 信元头部所需的其他信息,利用这些信息生成信元头部并存入信息缓存单元中,将数据包 数据存入数据缓存单元中;
[0043] 所述信息缓存单元,用于存储数据包预切分单元所生成的信元头部,采用 FIFO (First-Input First-Output,先入先出存储队列)实现;
[0044] 所述数据缓存单元,用于存储完整的数据包数据,采用FIFO (First-Input First-Output,先入先出存储队列)实现;
[0045] 所述信元生成与发送单元,用于从信息缓存单元中取出信元头部,从数据缓存单 元中取出大小等于信元头部中有效净荷长度的数据,即信元的有效净荷数据,利用有效净 荷数据和信元头部,组成一个完整的信元并发送给交换模块。
[0046] 在上述交换机数据包切分与重组的装置中,重组模块包括信元处理单元、信息缓 存单元、若干虚拟输入队列(Virtual Input Queue, VIQ)和数据包生成与发送单元;
[0047] 所述信元处理单元,用于将接收到的信元中的信元头部和有效净荷数据分离,根 据信元头部中的源端口号,将有效净荷数据存入对应的虚拟输入队列中,将源端口号和通 过计数所得的数据包长度组成数据包对应的信息,并存入信息缓存单元中;
[0048] 所述信息缓存单元,用于存储每个数据包对应的信息,采用FIFO(First_Input First-Output,先入先出存储队列)实现;
[0049] 所述虚拟输入队列,用于存储经过信元处理单元得到的信元的有效净荷数据,每 一个虚拟输入队列对应交换机的一个输入端口,采用FIFO (First-Input First-Output,先 入先出存储队列)实现;
[0050] 所述数据包生成与发送单元,用于利用信息缓存单元中的数据包对应的信息,从 对应的虚拟输入队列中取出完整的数据包,并发送给网络接口模块。
[0051] 本发明提出的交换机数据包切分与重组的方法与装置,高效可靠,延迟低,抖动 小,数据管理简单。在切分模块,与现有技术的先缓存再处理相比,本发明在缓存数据包前 采用预切分的技术提前处理数据包;在数据缓存方面,与现有技术的二级缓存相比,采用 FIFO实现的信息缓存和数据缓存管理数据,在缓存中数据足以生成一个内部信元时即开始 生成并发送信元。在重组模块,采用FIFO实现的VIQ缓存和信息缓存实现重组并管理数 据,操作简单,易于实施。并且本发明采用异步FIFO隔开内部信元处理部分和数据包处理 部分,因此方便应用于内部信元交换需要加速的交换机设计。

【专利附图】

【附图说明】
[0052] 图1为本发明一种实施方式中交换机整体系统框图;
[0053] 图2为FC帧格式示意图;
[0054] 图3为本发明一种实施方式中光纤通道交换机内部信元格式示意图;
[0055] 图4为切分模块的内部框图;
[0056] 图5为图4中的数据包预切分处理单元具体处理流程图;
[0057] 图6为图4中的信元生成与发送单元具体处理流程图;
[0058] 图7为重组模块的内部框图;
[0059] 图8为图7中的信息缓存内存储的信息格式示意图;
[0060] 图9为图7中的信元处理单元具体处理流程图;
[0061] 图10为图7中的数据包生成与发送单元具体处理流程图。

【具体实施方式】
[0062] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0063] 本发明一实施方式中的交换机整体系统框图如图1所示,包括网络接口模块1(对 应于每个端口),切分模块2 (对应于每个端口),交换模块3和重组模块4 (对应于每个端 □)。
[0064]网络接口模块1,实现协议交互,接收端接收来自物理介质上的信号,得到有效的 数据包发给切分模块2 ;发送端将待发送的数据包按照协议通过物理介质发出,并按协议 维护链路。
[0065] 切分模块2,接收网络接口模块1发来的数据包,将其缓存并切分为预定格式的定 长信元,发送到交换模块3。
[0066] 交换模块3,根据信元头部中的目的端口号,将信元转发给目的端口的重组模块 4。
[0067] 重组模块4,收到交换模块3发来的信元并缓存,将信元的有效净荷数据重组为完 整的数据包,并发送到网络接口模块1。
[0068] 具体地,本发明一种实施方式针对在光纤通道(Fibre Channel,FC)交换机中实现 的情况,此时数据包即为FC帧。FC帧格式示意图如图2所示,其中包括4字节的帧起始符 S0F,24字节的FC帧头,0-2112字节的载荷,4字节的CRC校验,4字节的帧结束符EOF。FC 帧最长为2148字节,最短为36字节。但本发明应用并不局限于光纤通道交换机。
[0069] 图3所示为本发明一种实施方式中光纤通道交换机内部信元格式示意图。信元大 小为64字节,首个32位(4字节)为信元头部,之后的15个32位(60字节)为净荷。
[0070] 所述信元头部中,包括 FLAG、P_ID、V_Len、S_ID、D_ID 和 Priority 位段。
[0071] FLAG (2位),为首尾信元标志,其第一位为尾信元标志位,为1表示本信元为本FC 中贞的最后一个信元,为〇表示不是尾信元;其第二位为首信元标志位,为1表示本信元为本 FC巾贞的首个信元,为0表示不是首信元。特殊的,FLAG为00表示本信元非首尾信元,11表 示本信元为本FC帧所含的唯一信元,本FC帧不超过60字节。
[0072] P_ID(6位),为本信元在所属FC帧中的信元编号。
[0073] V_Len (4位),为本信元的有效净荷长度,以位宽(32位)为单位,满负载时即为 15(11112)。
[0074] S_ID(5 位),为源端口号。
[0075] D_ID(5位),为目的端口号。
[0076] Priority (7位),为优先级,用于交换模块进行有优先级的信元交换。
[0077] 图4所示为本发明一实施方式中切分模块2的内部框图,切分模块2采用32位位 宽。切分模块2接收来自网络接口模块1的FC帧,缓存并添加信元头部,切分为定长的信 元,发送到交换模块3。该模块具体包括:路由表单元21,数据包预切分处理单元22,信息 缓存单元23,数据缓存单元24和信元生成与发送单元25。
[0078] 路由表单元21,存储着FC帧头中源地址、目的地址与交换机端口号的对应关系, 采用CAM实现,输入一个地址则返回其对应的端口号。
[0079] 数据包预切分处理单元22,对接收到的FC帧进行预切分,并将FC帧存入数据缓存 单元24,将预切分所得的信元头部存入信息缓存单元23。
[0080] 信息缓存单元23,存储数据包预切分处理单元22所生成的信元头部,采用FIFO实 现,FIFO位宽为32位。
[0081] 数据缓存单元24,存储完整的FC帧数据,采用FIFO实现,FIFO位宽为32位。
[0082] 信元生成与发送单元25,根据信息缓存单元23中的信元头部和数据缓存单元24 中的数据,完成信元的生成并发送到交换模块3。
[0083] 所述的数据包预切分处理单元的具体处理流程图如图5所示,具体包括以下步 骤:
[0084] 步骤51 :提取FC帧头中所需的信息,并生成信元头部中所需的信息。当收到FC 帧,提取FC帧头中的目的地址、源地址,通过路由表单元21将其对应为交换机中目的端口 号D_ID和源端口号S_ID,根据FC帧头中的优先级信息生成优先级Priority。
[0085] 步骤52 :将FC帧依次存入数据缓存单元24。
[0086] 步骤53 :如果未收到E0F,则FC帧未结束。每收到并缓存一个信元最大净荷长度 大小的数据(60字节),生成此信元的信元头部所需的其他信息,包括信元的有效净荷长度 V_Len、信元在所属FC帧中的编号P_ID和首尾信元标志FLAG ;结合步骤51得到的目的端口 号0_10、源端口号S_ID和优先级信息Priority,按照所采用信元头部格式组成信元头部, 将信元头部依次存储在信息缓存单元23中。
[0087] 步骤54 :如果收到E0F,则FC帧结束,此时存入数据缓存单元24的是最后一个信 元的有效净荷数据,可能小于最大净荷长度(60字节),生成此信元的有效净荷长度V_Len、 此信元在FC帧中的编号P_ID和首尾信元标志FLAG信息,结合步骤51得到的其他信息组 成信元头部,将信元头部依次存入信息缓存单元23中。
[0088] 所述的信元生成与发送单元的具体处理流程图如图6所示,具体包括以下步骤:
[0089] 步骤61 :如果信息缓存单元23非空,则从信息缓存单元23中读出首个信元头部, 即其中首个32位数据。
[0090] 步骤62 :根据信元头部中有效净荷长度V_Len,从数据缓存单元24中读出对应大 小的数据,即为信元的有效净荷数据。
[0091] 步骤63 :如果信元的有效净荷长度V_Len为15,为满负载,则直接将信元头部和有 效净荷数据拼接为完整信元,并发送到交换模块3。
[0092] 步骤64 :如果信元的有效净荷长度V_Len小于15,则需要在有效净荷数据后填充 (15-V_Len)个32位的填充数据,以达到最大净荷长度,优选的全部填充0。将信元头部、有 效净荷数据和填充数据拼接为完整信元,并发送到交换模块3。
[0093] 图7所示为本发明一实施方式中重组模块4的内部框图,重组模块4采用32位位 宽。该模块收到交换模块3发来的信元并缓存,将信元的有效净荷数据重组为完整的FC帧, 并发送到网络接口模块1。重组模块4包括:信元处理单元41,信息缓存单元42, N个VIQ 缓存43,数据包生成与发送单元44。
[0094] 信元处理单元41,将接收到信元的有效净荷数据存入VIQ缓存43,并产生每个FC 帧对应的信息,存入信息缓存单元42。
[0095] 信息缓存单元42,存入每个FC帧对应的信息,其信息格式如图8所示,包括源端口 号5_10和FC帧长度。其中,FC帧长度以数据位宽(32位)为单位,信息缓存单元42采用 FIFO实现。
[0096] VIQ43,虚拟输入队列,共有N个,VIQi对应第i个端口,用于存储端口 i通过交换 模块3发来的数据。经过信元处理单元41处理后,存入VIQi的只有每个信元的有效净荷 数据,若已经存入了 FC帧最后一个信元的有效净荷数据,则此VIQi中完整存储了此FC帧。 VIQ43采用FIFO实现。
[0097] 数据包生成与发送单元44,根据信息缓存单元42中的FC帧对应的信息,读取对应 VIQ43中完整的FC帧,并发送到网络接口模块1。
[0098] 所述的信元处理单元的具体处理流程图如图9所示,具体包括以下步骤:
[0099] 步骤91 :提取信元头部中的源端口号S_ID,有效净荷长度V_Len和首尾信元标志 FLAG。
[0100] 步骤92 :如果尾信元标志位为无效,即此信元不为此FC帧的最后一个信元,则根 据有效净荷长度¥_1^11,将有效净荷数据即信元中第2个字到第(V_Len+l)个字,依次存入 源端口号SID对应的缓存VIQi43中;同时对存入VIQi43的此信元所属FC帧的长度以32 位为单位进行计数。
[0101] 步骤93 :如果尾信元标志位为有效,则此信元为此FC巾贞的最后一个信元,将其有 效净荷数据存入VIQi43后,则此FC帧全部收到且存入对应VIQi43。将其源端口号和通过 计数所得的FC帧长度组成一个信息,依次存入信息缓存单元42中,与VIQi43中的此FC帧 所对应;清零此VIQi43中FC帧长度的计数。
[0102] 所述的数据包生成与发送单元的具体处理流程图如图10所示,具体包括以下步 骤:
[0103] 步骤101 :如果信息缓存单元42非空,则读出首个32位的信息得到其对应FC帧 的源端口号S_ID与FC帧长度。
[0104] 步骤102 :从源端口号S_ID对应的VIQi43中读取所述长度的FC帧,得到完整的 FC帧,并将FC帧发送到网络接口模块1。
[0105] 相比与现有技术的缺点和不足,本发明有以下有益效果:
[0106] (1)本发明提出的交换机数据包切分与重组的方法与装置,高效可靠,延时低,抖 动小,数据管理简单。
[0107] (2)在切分模块,与现有技术的先缓存再处理相比,本发明在缓存数据包前采用预 切分的技术提前处理数据包;在数据缓存方面,与现有技术的二级缓存相比,采用FIFO实 现的信息缓存和数据缓存管理数据,在缓存中数据足以生成一个内部信元时即开始生成并 发送信元。
[0108] (3)在重组模块,采用FIFO实现的VIQ缓存和信息缓存实现重组并管理数据,操作 简单,易于实施。并且本发明采用异步FIFO隔开内部信元处理部分和数据包处理部分,因 此方便应用于内部信元交换需要加速的交换机设计。
[0109] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明。可将此方案修改 为应用于其他协议;信元格式和信息缓存中信息格式可以按具体需求设置;数据位宽亦可 根据所应用具体系统而更改。凡在本发明的精神和原则之内所作的任何修改、等同替换等, 均应包含在本发明的保护范围之内。
【权利要求】
1. 一种交换机数据包切分与重组的方法,该方法包括数据包切分和数据包重组: 数据包切分,接收由网络接口模块发来的数据包并缓存,提取数据包头部中的信息生 成信元头部,将数据包切分为定长信元,与信元头部组成完整信元后发送到交换模块; 数据包重组,接收由交换模块发来的信元并缓存,提取信元中的有效净荷数据将其重 组为完整的数据包,并发送到网络接口模块; 其特征在于在所述数据包切分具体包括以下步骤: 步骤11 :接收到由网络接口模块发来的数据包后,提取数据包头部中的源地址信息、 目的地址信息,生成信元头部所需的交换机中的源端口号、目的端口号信息; 步骤12 :将数据包数据依次存入数据缓存中; 步骤13 :生成信元头部所需的其他信息,如信元的有效净荷长度、信元在所属数据包 中的编号等,利用这些信息和步骤11生成的信息生成信元头部,并将其存入信息缓存中; 步骤14,若信息缓存非空,则从信息缓存中取出首个信元头部; 步骤15,根据步骤14信元头部中的有效净荷长度,从数据缓存中取出对应有效净荷长 度大小的数据包数据,即为信元的有效净荷数据; 步骤16,利用信元的有效净荷数据和信元头部,组成一个完整的信元并发送到交换模 块; 在所述数据包重组具体包括以下步骤: 步骤21,接收到由交换模块发来的信元,提取信元头部中的源端口号、有效净荷长度和 尾信元标志; 步骤22,分离信元中的信元头部和有效净荷数据,将有效净荷数据依次存入源端口号 对应的虚拟输入队列中,并产生每个数据包对应的信息,存入信息缓存中,其中虚拟输入 队列为数据缓存,每一个虚拟输入队列对应交换机的一个输入端口,存储此端口发来的数 据包数据; 步骤23,若信息缓存非空,则从信息缓存中取出首个数据包信息; 步骤24,根据数据包信息中的源端口号,从对应的虚拟输入队列中取出大小等于数据 包信息中数据包长度的数据,即完整的数据包,并将数据包发送到网络接口模块。
2. 如权利要求1所述的一种交换机数据包切分与重组的方法,其特征在于所述步骤13 的具体方法为: (1) 在接收数据包的过程中,若数据包未结束且当步骤12缓存的数据大小达到一个信 元的最大净荷长度时,则生成信元头部所需的其他信息,如信元的有效净荷长度、信元在所 属数据包中的编号等,然后按照所采用的信元头部格式生成一个信元头部,并将其存入信 息缓存中,用于组成一个信元; (2) 若数据包结束,此时步骤12中缓存的是最后一个信元的有效净荷数据,其长度可 能小于最大净荷长度,则将该信元的有效净荷长度、信元在数据包中的编号和尾信元标志 等信息组成信元头部,并存入信息缓存中。
3. 如权利要求1所述的一种交换机数据包切分与重组的方法,其特征在于所述步骤16 的具体方法为: (1)若信元的有效净荷长度为最大净荷长度,则直接将信元头部和有效净荷数据组成 完整的信元,并发送到交换模块; (2)若信元的有效净荷长度小于最大净荷长度,则需要在有效净荷数据后添加填充数 据,长度为最大净荷长度减去有效净荷长度,以达到最大净荷长度,再将信元头部、有效净 荷数据和填充数据组成完整的信元,并发送到交换模块。
4. 如权利要求1所述的一种交换机数据包切分与重组的方法,其特征在于所述步骤22 的具体方法为: (1) 若尾信元标志为无效,即此信元不为此数据包的最后一个信元,则根据信元格式和 有效净荷长度,拆去信元头部,提取出信元中的有效净荷数据,再根据源端口号将有效净荷 数据依次存入对应的虚拟输入队列中,同时对存入此虚拟输入队列的此信元所属的数据包 长度进行计数; (2) 若尾信元标志为有效,即此信元为此数据包的最后一个信元,则拆去信元头部和填 充数据,提取出信元中的有效净荷数据,将有效净荷数据存入虚拟输入队列,再将源端口号 和通过计数所得的此数据包长度组成一个数据包信息,并存入信息缓存中,与对应虚拟输 入队列中的此数据包相对应,并将此虚拟输入队列数据包长度的计数进行清零。
5. -种交换机数据包切分与重组的装置,该装置包括:切分模块,重组模块,切分模块 用于接收网络接口模块发来的数据包并缓存,将其切分为若干个信元,并发送给交换模块; 重组模块用于接收交换模块发来的若干信元并缓存,将这些信元的有效载荷数据重组为一 个完整的数据包,并发送到网络接口模块; 在上述交换机数据包切分与重组的装置中,切分模块包括数据包预切分单元、路由表 单元、信息缓存单元、数据缓存单元和信元生成与发送单元; 所述路由表单元,实现对数据包头部中的源地址、目的地址与交换机端口号对应关系 的存储; 所述数据包预切分单元,用于提取数据包头部中生成信元头部所需的信息,通过查找 路由表单元将源地址、目的地址信息对应为交换机中源端口号和目的端口号,并生成信元 头部所需的其他信息,利用这些信息生成信元头部并存入信息缓存单元中,将数据包数据 存入数据缓存单元中; 所述信息缓存单元,用于存储数据包预切分单元所生成的信元头部; 所述数据缓存单元,用于存储完整的数据包数据; 所述信元生成与发送单元,用于从信息缓存单元中取出信元头部,从数据缓存单元中 取出大小等于信元头部中有效净荷长度的数据,即信元的有效净荷数据,利用有效净荷数 据和信元头部,组成一个完整的信元并发送给交换模块。 在上述交换机数据包切分与重组的装置中,重组模块包括信元处理单元、信息缓存单 元、若干虚拟输入队列和数据包生成与发送单元; 所述信元处理单元,用于将接收到的信元中的信元头部和有效净荷数据分离,根据信 元头部中的源端口号,将有效净荷数据存入对应的虚拟输入队列中,将源端口号和通过计 数所得的数据包长度组成数据包对应的信息,并存入信息缓存单元中; 所述虚拟输入队列,用于存储经过信元处理单元得到的信元的有效净荷数据,每一个 虚拟输入队列对应交换机的一个输入端口; 所述数据包生成与发送单元,用于利用信息缓存单元中的数据包对应的信息,从对应 的虚拟输入队列中取出完整的数据包,并发送给网络接口模块。
6. 如权利要求5所述的一种交换机数据包切分与重组的装置,其特征在于所述路由表 单元采用内容可寻址存储器实现。
7. 如权利要求5所述的一种交换机数据包切分与重组的装置,其特征在于所述信息缓 存单元、数据缓存单元、虚拟输入队列采用先入先出存储队列实现。
【文档编号】H04L12/931GK104158770SQ201410413780
【公开日】2014年11月19日 申请日期:2014年8月20日 优先权日:2014年8月20日
【发明者】王忆文, 胡浩, 张微, 彭春, 郭华俭, 王晓婷, 李辉 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1