CN104158770A - 一种交换机数据包切分与重组的方法与装置 - Google Patents
一种交换机数据包切分与重组的方法与装置 Download PDFInfo
- Publication number
- CN104158770A CN104158770A CN201410413780.2A CN201410413780A CN104158770A CN 104158770 A CN104158770 A CN 104158770A CN 201410413780 A CN201410413780 A CN 201410413780A CN 104158770 A CN104158770 A CN 104158770A
- Authority
- CN
- China
- Prior art keywords
- cell
- packet
- data
- information
- cutting
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
该发明公开了一种交换机数据包切分与重组的方法与装置,属于通信技术领域,本发明提供的方法包括:切分方法和重组方法。其中切分方法包括:将数据包预切分再缓存,采用信息缓存与数据缓存的数据管理方式,当缓存了一个内部信元净荷大小的数据即开始生成并发送信元;重组方法包括:采用信息缓存和VIQ缓存的数据管理方式,在将信元净荷分别存入VIQ缓存的过程中即完成了数据包重组。本发明提供的装置,包括:交换机中的切分模块和重组模块,以实现上述方法。该方法和装置能高效完成数据包切分与重组,数据管理简单易行,能有效减少切分延迟和延迟抖动,提高交换效率。
Description
技术领域
本发明属于通信技术领域,特别是涉及一种交换机数据包切分与重组的方法与装置。
背景技术
交换机是现代大型网络的基础。在目前的交换机设计中,为了提高交换系统的性能,对数据包的处理广泛采用定长分组交换技术。定长分组交换技术,要求将变长数据包在交换机输入端切分成固定长度的信元,再通过交换结构进行交换,最后在输出端将信元重组为原始数据包再进行转发。定长分组交换使得整个交换结构的各个交换单元都同步操作,实现简单,交换的信元颗粒小,交换时延短。
现行的交换机一般包括交换模块和对应于每个端口的切分模块、重组模块和网络接口模块。网络接口模块,根据协议完成物理介质中的物理信号和并行传输的数据包之间的相互转换,并维护链路。网络接口模块收到物理介质传来的数据后得到有效的数据包,发给切分模块。切分模块根据数据包头部中的信息生成信元头部,将目的地址对应为目的端口号,并将数据包切分为定长信元,发给交换模块。交换模块根据信元头部中的目的端口号,将信元转发给目的端口的重组模块。重组模块将交换模块发送来的信元重组为原始数据包,并发送到网络接口模块。网络接口模块根据协议将数据包发送出去。
现有的切分技术大都是接收数据包并存储于RAM中,当接收并存储一个完整的数据包后,从RAM读出该数据包再切分为信元。这种方法存在以下问题:
1.在数据包较长时,导致数据包切分延时很大。现有切分技术采用等待一个数据包被完整地接收并存储之后,再开始切分并发送信元。因此数据包较长时,需要等待的时间较长,导致切分延时大。
2.在数据包长度变化大的情况下延迟抖动明显。当数据包较短时,延时较小,数据包较大时延迟大。如光纤通道协议中最长帧为2148字节,最短帧为36字节,采用现有切分技术在切分模块延时相差数十倍。
3.需要大量存储资源,地址管理复杂。现有技术采用RAM存储,需要专门的地址管理模块。
专利“一种星上交换模块的数据报分段与重组系统及实现方法”中,在“分段器”模块采用两倍于内部信元净荷长度大小的RAM,用乒乓操作的方式每存入一个信元净荷长度的数据,则读出并生成一个内部信元。此技术方案缓解了上述延时大和延时抖动问题,但存在以下问题:
1.采用两级缓存,存储利用率不高。先将数据包存储在“输入缓存器”,然后从“输入缓存器”中读出,提取信息,然后在“分段器”中完成切分操作。其中“分段器”中包含两倍于内部信元净荷长度大小的缓存,用乒乓操作的方式完成切分。
2.数据包存入“输入缓存器”到读出“输入缓存器”仍然存在长数据包延时较大和数据包长度变化大时延时抖动较大的情况。
3.在交换机内发生数据堵塞时,数据不能从“分段器”中的切分缓存中被及时读出,而切分缓存不足以存储完整数据包,因此可能会在此部分发生数据包内容丢失。解决此问题需要在其“输入缓存器”和“分段器”间添加复杂的流量控制。
4.在“分段器”中地址管理复杂,需要专门的地址管理模块。
现有的交换机的内部信元重组技术主要采用RAM存储,通过对地址的处理达到重组的目的,此技术地址管理复杂。
发明内容
本发明的目的在于针对现有技术的不足之处,提供一种交换机数据包切分与重组的方法与装置,从而达到高效可靠,延迟低,抖动小,数据管理简单的目的。
本发明的解决方案为一种交换机数据包切分与重组的方法,该方法包括数据包切分和数据包重组。
数据包切分,接收由网络接口模块发来的数据包并缓存,提取数据包头部中的信息生成信元头部,将数据包切分为定长信元,与信元头部组成完整信元后发送到交换模块;
数据包重组,接收由交换模块发来的信元并缓存,提取信元中的有效净荷数据将其重组为完整的数据包,并发送到网络接口模块。
在所述交换机数据包切分与重组的方法中,数据包切分具体包括以下步骤:
步骤11:接收到由网络接口模块发来的数据包后,提取数据包头部中的源地址信息、目的地址信息,生成信元头部所需的交换机中的源端口号、目的端口号信息;
步骤12:将数据包数据依次存入数据缓存中;
步骤13:生成信元头部所需的其他信息,如信元的有效净荷长度、信元在所属数据包中的编号等,利用这些信息和步骤11生成的信息生成信元头部,并将其存入信息缓存中;
步骤14,若信息缓存非空,则从信息缓存中取出首个信元头部;
步骤15,根据步骤14信元头部中的有效净荷长度,从数据缓存中取出对应有效净荷长度大小的数据包数据,即为信元的有效净荷数据;
步骤16,利用信元的有效净荷数据和信元头部,组成一个完整的信元并发送到交换模块。
所述步骤13的具体方法为:
(1)在接收数据包的过程中,若数据包未结束且当步骤12缓存的数据大小达到一个信元的最大净荷长度时,则生成信元头部所需的其他信息,如信元的有效净荷长度、信元在所属数据包中的编号等,然后按照所采用的信元头部格式生成一个信元头部,并将其存入信息缓存中,用于组成一个信元;
(2)若数据包结束,此时步骤12中缓存的是最后一个信元的有效净荷数据,其长度可能小于最大净荷长度,则将该信元的有效净荷长度、信元在数据包中的编号和尾信元标志等信息组成信元头部,并存入信息缓存中。
所述步骤16的具体方法为:
(1)若信元的有效净荷长度为最大净荷长度,则直接将信元头部和有效净荷数据组成完整的信元,并发送到交换模块;
(2)若信元的有效净荷长度小于最大净荷长度,则需要在有效净荷数据后添加填充数据,长度为最大净荷长度减去有效净荷长度,以达到最大净荷长度,再将信元头部、有效净荷数据和填充数据组成完整的信元,并发送到交换模块。
在所述交换机数据包切分与重组的方法中,数据包重组具体包括以下步骤:
步骤21,接收到由交换模块发来的信元,提取信元头部中的源端口号、有效净荷长度和尾信元标志;
步骤22,分离信元中的信元头部和有效净荷数据,将有效净荷数据依次存入步骤21中源端口号对应的虚拟输入队列(Virtual Input Queue,VIQ)中,并产生每个数据包对应的信息,存入信息缓存中。其中虚拟输入队列为数据缓存,每一个虚拟输入队列对应交换机的一个输入端口,存储此端口发来的数据包数据;
步骤23,若信息缓存非空,则从信息缓存中取出首个数据包信息;
步骤24,根据数据包信息中的源端口号,从对应的虚拟输入队列中取出大小等于数据包信息中数据包长度的数据,即完整的数据包,并将数据包发送到网络接口模块。
所述步骤22的具体方法为:
(1)若尾信元标志为无效,即此信元不为此数据包的最后一个信元,则根据信元格式和有效净荷长度,拆去信元头部,提取出信元中的有效净荷数据,再根据源端口号将有效净荷数据依次存入对应的虚拟输入队列中,同时对存入此虚拟输入队列的此信元所属的数据包长度进行计数;
(2)若尾信元标志为有效,即此信元为此数据包的最后一个信元,则拆去信元头部和填充数据,提取出信元中的有效净荷数据,将有效净荷数据存入虚拟输入队列,再将源端口号和通过计数所得的此数据包长度组成一个数据包信息,并存入信息缓存中,与对应虚拟输入队列中的此数据包相对应,并将此虚拟输入队列数据包长度的计数进行清零。
本发明基于此方法提出了一种交换机数据包切分与重组的装置,该装置包括:切分模块,重组模块,切分模块用于接收网络接口模块发来的数据包并缓存,将其切分为若干个信元,并发送给交换模块;重组模块用于接收交换模块发来的若干信元并缓存,将这些信元的有效载荷数据重组为一个完整的数据包,并发送到网络接口模块。
在上述交换机数据包切分与重组的装置中,切分模块包括数据包预切分单元、路由表单元、信息缓存单元、数据缓存单元和信元生成与发送单元;
所述路由表单元,实现对数据包头部中的源地址、目的地址与交换机端口号对应关系的存储,可采用CAM(Content Addressable Memory,内容可寻址存储器)实现;
所述数据包预切分单元,用于提取数据包头部中生成信元头部所需的信息,通过查找路由表单元将源地址、目的地址信息对应为交换机中源端口号和目的端口号,并生成信元头部所需的其他信息,利用这些信息生成信元头部并存入信息缓存单元中,将数据包数据存入数据缓存单元中;
所述信息缓存单元,用于存储数据包预切分单元所生成的信元头部,采用FIFO(First-Input First-Output,先入先出存储队列)实现;
所述数据缓存单元,用于存储完整的数据包数据,采用FIFO(First-Input First-Output,先入先出存储队列)实现;
所述信元生成与发送单元,用于从信息缓存单元中取出信元头部,从数据缓存单元中取出大小等于信元头部中有效净荷长度的数据,即信元的有效净荷数据,利用有效净荷数据和信元头部,组成一个完整的信元并发送给交换模块。
在上述交换机数据包切分与重组的装置中,重组模块包括信元处理单元、信息缓存单元、若干虚拟输入队列(Virtual Input Queue,VIQ)和数据包生成与发送单元;
所述信元处理单元,用于将接收到的信元中的信元头部和有效净荷数据分离,根据信元头部中的源端口号,将有效净荷数据存入对应的虚拟输入队列中,将源端口号和通过计数所得的数据包长度组成数据包对应的信息,并存入信息缓存单元中;
所述信息缓存单元,用于存储每个数据包对应的信息,采用FIFO(First-InputFirst-Output,先入先出存储队列)实现;
所述虚拟输入队列,用于存储经过信元处理单元得到的信元的有效净荷数据,每一个虚拟输入队列对应交换机的一个输入端口,采用FIFO(First-Input First-Output,先入先出存储队列)实现;
所述数据包生成与发送单元,用于利用信息缓存单元中的数据包对应的信息,从对应的虚拟输入队列中取出完整的数据包,并发送给网络接口模块。
本发明提出的交换机数据包切分与重组的方法与装置,高效可靠,延迟低,抖动小,数据管理简单。在切分模块,与现有技术的先缓存再处理相比,本发明在缓存数据包前采用预切分的技术提前处理数据包;在数据缓存方面,与现有技术的二级缓存相比,采用FIFO实现的信息缓存和数据缓存管理数据,在缓存中数据足以生成一个内部信元时即开始生成并发送信元。在重组模块,采用FIFO实现的VIQ缓存和信息缓存实现重组并管理数据,操作简单,易于实施。并且本发明采用异步FIFO隔开内部信元处理部分和数据包处理部分,因此方便应用于内部信元交换需要加速的交换机设计。
附图说明
图1为本发明一种实施方式中交换机整体系统框图;
图2为FC帧格式示意图;
图3为本发明一种实施方式中光纤通道交换机内部信元格式示意图;
图4为切分模块的内部框图;
图5为图4中的数据包预切分处理单元具体处理流程图;
图6为图4中的信元生成与发送单元具体处理流程图;
图7为重组模块的内部框图;
图8为图7中的信息缓存内存储的信息格式示意图;
图9为图7中的信元处理单元具体处理流程图;
图10为图7中的数据包生成与发送单元具体处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明一实施方式中的交换机整体系统框图如图1所示,包括网络接口模块1(对应于每个端口),切分模块2(对应于每个端口),交换模块3和重组模块4(对应于每个端口)。
网络接口模块1,实现协议交互,接收端接收来自物理介质上的信号,得到有效的数据包发给切分模块2;发送端将待发送的数据包按照协议通过物理介质发出,并按协议维护链路。
切分模块2,接收网络接口模块1发来的数据包,将其缓存并切分为预定格式的定长信元,发送到交换模块3。
交换模块3,根据信元头部中的目的端口号,将信元转发给目的端口的重组模块4。
重组模块4,收到交换模块3发来的信元并缓存,将信元的有效净荷数据重组为完整的数据包,并发送到网络接口模块1。
具体地,本发明一种实施方式针对在光纤通道(Fibre Channel,FC)交换机中实现的情况,此时数据包即为FC帧。FC帧格式示意图如图2所示,其中包括4字节的帧起始符SOF,24字节的FC帧头,0-2112字节的载荷,4字节的CRC校验,4字节的帧结束符EOF。FC帧最长为2148字节,最短为36字节。但本发明应用并不局限于光纤通道交换机。
图3所示为本发明一种实施方式中光纤通道交换机内部信元格式示意图。信元大小为64字节,首个32位(4字节)为信元头部,之后的15个32位(60字节)为净荷。
所述信元头部中,包括FLAG、P_ID、V_Len、S_ID、D_ID和Priority位段。
FLAG(2位),为首尾信元标志,其第一位为尾信元标志位,为1表示本信元为本FC帧的最后一个信元,为0表示不是尾信元;其第二位为首信元标志位,为1表示本信元为本FC帧的首个信元,为0表示不是首信元。特殊的,FLAG为00表示本信元非首尾信元,11表示本信元为本FC帧所含的唯一信元,本FC帧不超过60字节。
P_ID(6位),为本信元在所属FC帧中的信元编号。
V_Len(4位),为本信元的有效净荷长度,以位宽(32位)为单位,满负载时即为15(11112)。
S_ID(5位),为源端口号。
D_ID(5位),为目的端口号。
Priority(7位),为优先级,用于交换模块进行有优先级的信元交换。
图4所示为本发明一实施方式中切分模块2的内部框图,切分模块2采用32位位宽。切分模块2接收来自网络接口模块1的FC帧,缓存并添加信元头部,切分为定长的信元,发送到交换模块3。该模块具体包括:路由表单元21,数据包预切分处理单元22,信息缓存单元23,数据缓存单元24和信元生成与发送单元25。
路由表单元21,存储着FC帧头中源地址、目的地址与交换机端口号的对应关系,采用CAM实现,输入一个地址则返回其对应的端口号。
数据包预切分处理单元22,对接收到的FC帧进行预切分,并将FC帧存入数据缓存单元24,将预切分所得的信元头部存入信息缓存单元23。
信息缓存单元23,存储数据包预切分处理单元22所生成的信元头部,采用FIFO实现,FIFO位宽为32位。
数据缓存单元24,存储完整的FC帧数据,采用FIFO实现,FIFO位宽为32位。
信元生成与发送单元25,根据信息缓存单元23中的信元头部和数据缓存单元24中的数据,完成信元的生成并发送到交换模块3。
所述的数据包预切分处理单元的具体处理流程图如图5所示,具体包括以下步骤:
步骤51:提取FC帧头中所需的信息,并生成信元头部中所需的信息。当收到FC帧,提取FC帧头中的目的地址、源地址,通过路由表单元21将其对应为交换机中目的端口号D_ID和源端口号S_ID,根据FC帧头中的优先级信息生成优先级Priority。
步骤52:将FC帧依次存入数据缓存单元24。
步骤53:如果未收到EOF,则FC帧未结束。每收到并缓存一个信元最大净荷长度大小的数据(60字节),生成此信元的信元头部所需的其他信息,包括信元的有效净荷长度V_Len、信元在所属FC帧中的编号P_ID和首尾信元标志FLAG;结合步骤51得到的目的端口号D_ID、源端口号S_ID和优先级信息Priority,按照所采用信元头部格式组成信元头部,将信元头部依次存储在信息缓存单元23中。
步骤54:如果收到EOF,则FC帧结束,此时存入数据缓存单元24的是最后一个信元的有效净荷数据,可能小于最大净荷长度(60字节),生成此信元的有效净荷长度V_Len、此信元在FC帧中的编号P_ID和首尾信元标志FLAG信息,结合步骤51得到的其他信息组成信元头部,将信元头部依次存入信息缓存单元23中。
所述的信元生成与发送单元的具体处理流程图如图6所示,具体包括以下步骤:
步骤61:如果信息缓存单元23非空,则从信息缓存单元23中读出首个信元头部,即其中首个32位数据。
步骤62:根据信元头部中有效净荷长度V_Len,从数据缓存单元24中读出对应大小的数据,即为信元的有效净荷数据。
步骤63:如果信元的有效净荷长度V_Len为15,为满负载,则直接将信元头部和有效净荷数据拼接为完整信元,并发送到交换模块3。
步骤64:如果信元的有效净荷长度V_Len小于15,则需要在有效净荷数据后填充(15-V_Len)个32位的填充数据,以达到最大净荷长度,优选的全部填充0。将信元头部、有效净荷数据和填充数据拼接为完整信元,并发送到交换模块3。
图7所示为本发明一实施方式中重组模块4的内部框图,重组模块4采用32位位宽。该模块收到交换模块3发来的信元并缓存,将信元的有效净荷数据重组为完整的FC帧,并发送到网络接口模块1。重组模块4包括:信元处理单元41,信息缓存单元42,N个VIQ缓存43,数据包生成与发送单元44。
信元处理单元41,将接收到信元的有效净荷数据存入VIQ缓存43,并产生每个FC帧对应的信息,存入信息缓存单元42。
信息缓存单元42,存入每个FC帧对应的信息,其信息格式如图8所示,包括源端口号S_ID和FC帧长度。其中,FC帧长度以数据位宽(32位)为单位,信息缓存单元42采用FIFO实现。
VIQ43,虚拟输入队列,共有N个,VIQi对应第i个端口,用于存储端口i通过交换模块3发来的数据。经过信元处理单元41处理后,存入VIQi的只有每个信元的有效净荷数据,若已经存入了FC帧最后一个信元的有效净荷数据,则此VIQi中完整存储了此FC帧。VIQ43采用FIFO实现。
数据包生成与发送单元44,根据信息缓存单元42中的FC帧对应的信息,读取对应VIQ43中完整的FC帧,并发送到网络接口模块1。
所述的信元处理单元的具体处理流程图如图9所示,具体包括以下步骤:
步骤91:提取信元头部中的源端口号S_ID,有效净荷长度V_Len和首尾信元标志FLAG。
步骤92:如果尾信元标志位为无效,即此信元不为此FC帧的最后一个信元,则根据有效净荷长度V_Len,将有效净荷数据即信元中第2个字到第(V_Len+1)个字,依次存入源端口号SID对应的缓存VIQi43中;同时对存入VIQi43的此信元所属FC帧的长度以32位为单位进行计数。
步骤93:如果尾信元标志位为有效,则此信元为此FC帧的最后一个信元,将其有效净荷数据存入VIQi43后,则此FC帧全部收到且存入对应VIQi43。将其源端口号和通过计数所得的FC帧长度组成一个信息,依次存入信息缓存单元42中,与VIQi43中的此FC帧所对应;清零此VIQi43中FC帧长度的计数。
所述的数据包生成与发送单元的具体处理流程图如图10所示,具体包括以下步骤:
步骤101:如果信息缓存单元42非空,则读出首个32位的信息得到其对应FC帧的源端口号S_ID与FC帧长度。
步骤102:从源端口号S_ID对应的VIQi43中读取所述长度的FC帧,得到完整的FC帧,并将FC帧发送到网络接口模块1。
相比与现有技术的缺点和不足,本发明有以下有益效果:
(1)本发明提出的交换机数据包切分与重组的方法与装置,高效可靠,延时低,抖动小,数据管理简单。
(2)在切分模块,与现有技术的先缓存再处理相比,本发明在缓存数据包前采用预切分的技术提前处理数据包;在数据缓存方面,与现有技术的二级缓存相比,采用FIFO实现的信息缓存和数据缓存管理数据,在缓存中数据足以生成一个内部信元时即开始生成并发送信元。
(3)在重组模块,采用FIFO实现的VIQ缓存和信息缓存实现重组并管理数据,操作简单,易于实施。并且本发明采用异步FIFO隔开内部信元处理部分和数据包处理部分,因此方便应用于内部信元交换需要加速的交换机设计。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明。可将此方案修改为应用于其他协议;信元格式和信息缓存中信息格式可以按具体需求设置;数据位宽亦可根据所应用具体系统而更改。凡在本发明的精神和原则之内所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
Claims (7)
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所述的一种交换机数据包切分与重组的装置,其特征在于所述信息缓存单元、数据缓存单元、虚拟输入队列采用先入先出存储队列实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410413780.2A CN104158770B (zh) | 2014-08-20 | 2014-08-20 | 一种交换机数据包切分与重组的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410413780.2A CN104158770B (zh) | 2014-08-20 | 2014-08-20 | 一种交换机数据包切分与重组的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104158770A true CN104158770A (zh) | 2014-11-19 |
CN104158770B CN104158770B (zh) | 2018-02-13 |
Family
ID=51884178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410413780.2A Active CN104158770B (zh) | 2014-08-20 | 2014-08-20 | 一种交换机数据包切分与重组的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104158770B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850515A (zh) * | 2015-04-28 | 2015-08-19 | 华为技术有限公司 | 一种缓存信元数据的方法、装置和设备 |
CN104954292A (zh) * | 2015-05-18 | 2015-09-30 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的系统及方法 |
CN105262562A (zh) * | 2015-09-07 | 2016-01-20 | 香港中文大学深圳研究院 | 一种用于代数交换引擎数据包分组重组的预处理方法 |
CN110058207A (zh) * | 2019-04-19 | 2019-07-26 | 西安微电子技术研究所 | 一种用于雷达信号传输的多lane数据同步及重组系统与方法 |
CN111935036A (zh) * | 2020-04-30 | 2020-11-13 | 电子科技大学 | 一种光纤通道交换机中数据帧切分与重组的实现方法 |
CN116846546A (zh) * | 2023-04-24 | 2023-10-03 | 广州智臣信息科技有限公司 | 信息防丢失防重复的跨网络数据交换系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430385A (zh) * | 2001-12-29 | 2003-07-16 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种在atm交换机中实现适配层功能的系统和方法 |
US20060120405A1 (en) * | 2002-11-25 | 2006-06-08 | Antonius Engbersen | Method and apparatus for intermediate buffer segmentation and reassembly |
CN1972239A (zh) * | 2005-11-24 | 2007-05-30 | 武汉烽火网络有限责任公司 | 以太网交换缓存及调度的方法和装置 |
CN102164095A (zh) * | 2011-05-31 | 2011-08-24 | 西安空间无线电技术研究所 | 一种星上交换模块的数据报分段与重组系统及实现方法 |
-
2014
- 2014-08-20 CN CN201410413780.2A patent/CN104158770B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430385A (zh) * | 2001-12-29 | 2003-07-16 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种在atm交换机中实现适配层功能的系统和方法 |
US20060120405A1 (en) * | 2002-11-25 | 2006-06-08 | Antonius Engbersen | Method and apparatus for intermediate buffer segmentation and reassembly |
CN1972239A (zh) * | 2005-11-24 | 2007-05-30 | 武汉烽火网络有限责任公司 | 以太网交换缓存及调度的方法和装置 |
CN102164095A (zh) * | 2011-05-31 | 2011-08-24 | 西安空间无线电技术研究所 | 一种星上交换模块的数据报分段与重组系统及实现方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850515A (zh) * | 2015-04-28 | 2015-08-19 | 华为技术有限公司 | 一种缓存信元数据的方法、装置和设备 |
CN104850515B (zh) * | 2015-04-28 | 2018-03-06 | 华为技术有限公司 | 一种缓存信元数据的方法、装置和设备 |
CN104954292A (zh) * | 2015-05-18 | 2015-09-30 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的系统及方法 |
CN104954292B (zh) * | 2015-05-18 | 2018-04-20 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的系统及方法 |
CN105262562A (zh) * | 2015-09-07 | 2016-01-20 | 香港中文大学深圳研究院 | 一种用于代数交换引擎数据包分组重组的预处理方法 |
CN110058207A (zh) * | 2019-04-19 | 2019-07-26 | 西安微电子技术研究所 | 一种用于雷达信号传输的多lane数据同步及重组系统与方法 |
CN111935036A (zh) * | 2020-04-30 | 2020-11-13 | 电子科技大学 | 一种光纤通道交换机中数据帧切分与重组的实现方法 |
CN116846546A (zh) * | 2023-04-24 | 2023-10-03 | 广州智臣信息科技有限公司 | 信息防丢失防重复的跨网络数据交换系统 |
CN116846546B (zh) * | 2023-04-24 | 2024-03-22 | 广州智臣信息科技有限公司 | 信息防丢失防重复的跨网络数据交换系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104158770B (zh) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104158770A (zh) | 一种交换机数据包切分与重组的方法与装置 | |
CN107948094B (zh) | 一种高速数据帧无冲突入队处理的装置及方法 | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
EP3573297B1 (en) | Packet processing method and apparatus | |
US9088520B2 (en) | Network impairment unit for concurrent delay and packet queue impairments | |
EP2208322B1 (en) | A grid router | |
CN101707544B (zh) | E1信道多向网桥透传方法 | |
US20110182294A1 (en) | In-order traffic aggregation with reduced buffer usage | |
WO2017112301A1 (en) | Technologies for inline network traffic performance tracing | |
JP7329627B2 (ja) | パケット処理方法及び関連装置 | |
CN109246036B (zh) | 一种处理分片报文的方法和装置 | |
CN103795655A (zh) | 数据传输方法及装置 | |
JP2010045767A (ja) | ネットワーク処理装置及びその処理方法 | |
WO2016123975A1 (zh) | 数据传输方法及装置 | |
CN108614792A (zh) | 1394事务层数据包存储管理方法及电路 | |
CN111434079B (zh) | 一种数据通信方法及装置 | |
CN105263165B (zh) | 一种基于fpga的网络数据连包拆分方法 | |
CN107196872A (zh) | 一种用于交换机数据帧切分与重组装置的方法 | |
CN102164095B (zh) | 一种星上交换模块的数据报分段与重组系统及实现方法 | |
US10079769B1 (en) | Methods and apparatus for implementing dynamic rate controllers using linked list of rate programs | |
CN113518046B (zh) | 一种报文转发方法及框式交换设备 | |
CN106453159A (zh) | 一种用于交换机数据帧切分与重组装置的设计 | |
CN102447608B (zh) | 采用加速技术实现包重组的方法、装置及系统 | |
CN205265697U (zh) | 一种基于标签交换技术的分组光传输终端芯片 | |
CN105323160B (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 |