CN105610744A - 一种ip报文分片与重组方法及装置 - Google Patents
一种ip报文分片与重组方法及装置 Download PDFInfo
- Publication number
- CN105610744A CN105610744A CN201610059297.8A CN201610059297A CN105610744A CN 105610744 A CN105610744 A CN 105610744A CN 201610059297 A CN201610059297 A CN 201610059297A CN 105610744 A CN105610744 A CN 105610744A
- Authority
- CN
- China
- Prior art keywords
- information
- data message
- processing module
- packet
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种IP报文分片与重组的方法及装置,包括接受处理模块、格式调整模块、分片处理模块和重组处理模块;分片重组装置的输入端接收MAC层的数据报文信息,接收处理模块将接收的数据报文信息传输至格式调整模块,格式调整模块将数据报文信息调整为网络数据报文传输给分片处理模块,再由分片处理模块将网络数据报文进行分片处理。重组处理模块读取分片处理模块分片处理后的数据包,最后重组处理模块将数据包重组为数据报文信息并发送至MAC层。本发明所述的分片与重组方法,利用RAM地址信息与数据信息一一对应的特性,减少传输数据报文信息的头部信息,减轻传输的数据负载,提高了分片与重组的效率。
Description
技术领域
本发明涉及网络通信技术领域,尤其是涉及一种IP(InternetProtocol,网际协议)报文的分片与重组方法及装置。
背景技术
通用的OSI(OpenSystemInterconnection,开放系统互联)七层网络协议模型共分七层,每层都可以有几个子层,OSI的7层从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,其中应用层、表示层、会话层和传输层定义了应用程序的功能,而网络层、数据链路层和物理层则主要面向通过网络的端到端的数据流。其中,应用层主要是对应应用程序的通信服务的,是与其他计算机进行通讯的一个应用。表示层主要功能是定义数据格式和加密。会话层的主要功能是定义如何开始、控制和结束一个会话,会话层对多个双向消息进行控制和管理,以便在只能完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。传输层的主要功能是判断是选择了差错恢复协议还是无差错恢复协议,在同一主机上对不同应用的数据流的输入进行复用,并对收到的顺序不对的数据包进行重新排序。网络层主要功能是对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方法。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段部分。数据链路层的主要功能是定义在单个链路上如何传输数据。物理层的OSI物理层规范是有关传输介质的特性标准,它包括连接头、帧的使用、电流、编码以及光调制等各种物理层规范的内容。网络层的数据报文是有最大最小长度限制的,并不是任意长度的数据包都能传输,网络层的完整数据包长度都在64到1518字节之间,而网络层的下层数据并不都能满足这个长度要求,也就是说当下层协议层的数据到达网络层时,它的数据包长度是不完全满足网络层对数据包长度要求的。所以当下层数据到达网络层时要进行分片,相应的,当网络层要将分片的数据送到下层数据时,也要将分片后的数据进行重组,重组成一个完整的单元。本发明就是为解决这个问题,提出自己的想法。
分片与重组一直都是IP最重要的机制之一。网络层的网络设备,能够根据IP头信息对报文进行识别和处理。网络层处理数据,会有最大传输长度的限制,即MTU(MaximumTransmissionUnit)。当来自数据链路层中的MAC(MediaAccessControl,介质访问控制)层的数据到达网络层时,报文长度可能会远远大于网络层能够接受的最大长度,这时候就要对来自传输层的数据包进行分片处理。同样的,当网络层的数据要到达数据链路层中的MAC层时,也要将分片过的包进行重组。
现有的分片重组机制需要在每一个分片报文前都添加报文头部的信息。这样需要浪费大量的时间来拷贝和存储报文头部的信息,而拷贝过程耗时且占用网络资源,造成了分片和重组的效率都不高。特别是在当前网络带宽特别大的情况下,每个数据报文都需要携带一个数据报文的头部信息,数据报文的头部信息相比分片后的数据报文大小来说已经不算小了,甚至有时会出现数据报文载荷特别小而数据报文头部信息占主体的情况。这样,在带宽特别大的网络环境下,传送的大部分都是重复的头部信息,而有用的载荷只占了很小的一部分,这必然使得传输效率大打折扣。
由于分片后的数据报文信息已经非常短小了,数据报文头部信息的处理就显得尤为重要。本申请所述的IP报文分片重组方法正是为了解决现有技术的缺陷而提出来的。本申请所提出的解决方法,有效地处理了数据报文的头部信息,提高了对数据报文信息的处理效率,大大提高了数据报文的传输效率。
发明内容
本发明所要解决的技术问题是提供一种IP报文的分片与重组方法。如上所述,现有技术的缺陷在于现有的分片重组机制会重复拷贝、存储数据报文头部信息,传输数据时会重复传输报文头部信息。而之所以会重复传输数据报文头部信息,则是因为现有技术将整体的数据报文分割成一个一个的小片传输时必须使用头部信息进行索引,这是不得已为之的。但如果能将这些一个一个的小分片统一存储在一个全局的存储空间上,就不必在每一个分片前都加上头部信息,因而就能够大大减小传输头部信息的频率。此外,为了保持数据报文和数据报文头部的联系,需要将存储空间的地址信息放到数据报文头部的末尾。比起传输全部的数据报文信息,这样的做法是十分合算的。这种方法解决了现有技术中由于重复传输数据报文头部信息而导致的分片重组效率低的问题,大大提高了数据报文的传输效率。
为解决以上技术问题,本发明提供如下技术方案:
一种IP数据报文的分片方法,其特征在于,在接收来自MAC层的数据报文信息后,网络层的处理步骤如下:
第一步,接收处理模块在接收到来自MAC层的数据报文信息后,首先将数据报文信息进行缓存,然后统计数据报文的信息,最后将数据报文信息传送到格式调整模块;其中所要统计的数据信息包括:版本、IHL(IPHeaderLength,数据报协议头长度)、服务类型、数据包长度、标识、标志、片偏移量、生存时间、协议、包头校验和、源地址以及目的地址等信息;
第二步,格式调整模块在接收到来自接收处理模块的数据报文信息后,对数据报文信息进行格式调整,并去除数据报文信息中的前导码和端口号的冗余信息,形成网络数据报文,网络数据报文传输至分片处理模块;
第三步,分片处理模块在接收到格式调整模块发送来的网络数据报文后,将网络数据报文的数据部分按接收的先后顺序分成编号从1至n的n个数据包,将这n个数据包按编号从小到大的顺序连续地存储在数据存储单元RAM0中,同时记录下每个数据包对应的包头位置start_addr[1]…start_addr[n]和每个数据包对应的包尾位置end_addr[1]…end_addr[n];
第四步,分片处理模块将第三步中网络数据报文对应的头部信息提取出来存放在第一存储单元RAM1,然后顺序地将第三步中记录的n个数据包对应的包头位置和包尾位置的信息按照“start_addr[1],end_addr[1],start_addr[2],end_addr[2],start_addr[3],end_addr[3],...,start_addr[n],end_addr[n]”的顺序,紧接在对应的网络数据报文的头部信息后存放在第一存储单元RAM1中;
第五步,重复第一步至第四步,直至接收到的所有数据报文信息都完成分片。
上述的IP数据报文的分片方法,其特征在于,第一步中,接收处理模块在缓存来自MAC层的数据报文信息时,若接收速度超过50Mbps则放弃报文,停止接收;若接收速度未超过50Mbps则将数据报文信息进行缓存并统计数据报文的信息。
由数据存储单元RAM0和第一存储单元RAM1共同组成的存储模块在本申请中发挥了最重要的作用,这也是对现有技术进行革新的地方。
在上述IP报文的分片方法中,由于第二步的格式调整是针对MAC层的,而MAC层传送过来的数据是以太网格式的而不是纯粹的数据报文信息,以太网格式的数据含有端口信息,前导码等冗余信息,所以要在此处进行修改,去掉前导码和端口号等冗余信息。
一种IP数据报文的重组方法,其特征在于,在将数据包传输到MAC层之前,网络层的处理步骤如下:
第一步,重组处理模块读取第一存储单元RAM1中存储的网络数据报文的头部信息,然后根据头部信息后存储的数据包的包头地址信息和包尾地址信息查询数据存储单元RAM0中这个头部信息所对应的n个数据包;
第二步,将第一步中查询到n个数据包按照存储地址由小到大的顺序拼接在第一步读取的头部信息之后,重组为数据报文信息,并将重组后的数据报文信息传输至MAC层;
第三步,重复第一步至第二步,直至网络层接收到的所有数据报文信息都完成重组。
一种IP数据报文的分片重组装置,其特征在于分片重组装置包括接受处理模块、格式调整模块、分片处理模块和重组处理模块,其中接收处理模块的输入端即分片重组装置的输入端,重组处理模块的输出端即分片重组装置的输出端;分片重组装置的输入端接收MAC层的数据报文信息,接收处理模块将接收的数据报文信息传输至格式调整模块,格式调整模块将数据报文信息调整为网络数据报文传输给分片处理模块,再由分片处理模块将网络数据报文进行分片处理,重组处理模块读取分片处理模块分片处理后的数据包,最后重组处理模块将数据包重组为数据报文信息并发送至MAC层。
上述IP数据报文的分片重组装置,其特征在于,分片处理模块内设置两块相连的存储单元,即第一存储单元RAM1和数据存储单元RAM0,其中数据存储单元RAM0的输入端为分片处理模块的输入端,数据存储单元RAM0的地址返回端连接至第一存储单元RAM1的输入端。
所述IP数据报文的分片方法、重组方法与分片重组装置应用于OSI模型的网络层。
本发明所述的分片重组模块中各个子模块如下:
接收处理模块,从MAC层接收的数据报文信息,数据信息部分可能超过了本机网络层所能接收的最大处理单元,需要进行分片操作,不管怎样,处理的第一步是要首先接收来自MAC的数据报文,本模块的主要作用就是首先将MAC层的数据报文信息进行缓存,然后统计数据报文的信息,最后将数据报文信息传送到格式调整模块;其中所要统计的数据信息包括:版本、IHL、服务类型、数据包长度、标识、标志、片偏移量、生存时间、协议、包头校验和、源地址以及目的地址等信息。接收处理模块在缓存来自MAC层的数据报文信息时,还需要对接收速度进行控制。若接收速度超过50Mbps则放弃报文,停止接收;若接收速度未超过50Mbps则将数据报文信息进行缓存并统计数据报文的信息。
格式调整模块,数据报文信息被接收,接下来就需要配合后续处理过程,对数据报文信息进行格式调整。这个模块主要对数据报文信息进行格式调整,调整成利于后续处理的网络数据报文。具体而言就是将MAC层传送过来的太网格式的数据报文信息去掉前导码和端口号等冗余信息,调整为网络数据报文。
分片处理模块,借助之前调整形成的网络数据报文,本模块进行分片操作。分片操作中,现有的方法都是在每个分片的头部添加头部信息。本发明没有采用这些现有的算法,而是利用了RAM存储单元(Random-AccessMemory,随机存取存储器)地址信息与数据信息一一对应的特性进行分片存储处理,由数据存储单元RAM0和第一存储单元RAM1共同组成本发明的存储模块。具体而言:
首先,分片处理模块在接收到格式调整模块发送来的网络数据报文后,将网络数据报文的数据部分按接收的先后顺序分成编号从1至n的n个数据包,将这n个数据包按编号从小到大的顺序连续地存储在数据存储单元RAM0中,同时记录下每个数据包对应的包头位置start_addr[1]…start_addr[n]和每个数据包对应的包尾位置end_addr[1]…end_addr[n];
然后,分片处理模块将上一步中网络数据报文对应的头部信息提取出来存放在第一存储单元RAM1,然后顺序地将上一步中记录的n个数据包对应的包头位置和包尾位置的信息按照“start_addr[1],end_addr[1],start_addr[2],end_addr[2],start_addr[3],end_addr[3],...,start_addr[n],end_addr[n]”的顺序,紧接在对应的网络数据报文的头部信息后存放在第一存储单元RAM1中。
本发明中分片处理模块的重点在于,分片处理模块内设置了两块相连的RAM存储单元,即第一存储单元RAM1和数据存储单元RAM0。其中数据存储单元RAM0的输入端为分片处理模块的输入端,数据存储单元RAM0的地址返回端连接至第一存储单元RAM1的输入端。RAM本身是按地址存储访问的,存储一个数据就会返回一个地址。此处,在RAM0中存储了网络数据报文的数据部分,而将RAM0返回的地址存储在RAM1中,传输时只传输RAM1中的地址信息。如果丢掉一个地址信息,这个地址所对应的数据包也就相应地丢弃了,分片处理模块或者重组处理模块会直接读取后续的数据。这样的设计保证地址与数据包始终是一一对应的,不会因数据丢失而乱了顺序,从而保持信息同步,有效地避免了因丢包而导致的异常信息对系统的影响。
重组处理模块,由于网络层中进行了分片操作,那么相应的就需要对分片过的数据包进行重组操作才能将数据包内的信息传输至MAC层,重组的操作与分片操作的相对应:
第一步,重组处理模块读取第一存储单元RAM1中存储的网络数据报文的头部信息,然后根据头部信息后存储的数据包的包头地址信息和包尾地址信息查询数据存储单元RAM0中这个头部信息所对应的n个数据包;
第二步,将第一步中查询到n个数据包按照存储地址由小到大的顺序拼接在第一步读取的头部信息之后,重组为数据报文信息,并将重组后的数据报文信息传输至MAC层。
本发明的重点是分片,重组是对应分片的创新而创新的。
本发明的分片与重组操作都是基于公有的存储模块的,即分片与重组操作都基于相同的存储模块,即第一存储单元RAM1和数据存储单元RAM0。所谓公有的存储模块,就是报文传输时,可以随时访问的模块,这个存储模块不限于某一局部设备,而是为所有设备所共享的存储空间。所有的数据负载都被存储在公有的存储模块中,只在需要的时候传输,不会随时都进行传输,这样就可以尽可能的减少传输数据报文信息的头部信息,减轻传输的数据负载,从而提高传输速度,也就提供了更高的传输效率。
有益效果
与现有技术相比,本发明的优势在于:
本专利所采用的分片与重组方法,不必像现有的技术一样,将每个分片的数据包都带上包头进行传输。这样,在传输时,传输的主要数据载荷就是数据包,而包头仅仅是数据载荷中很小的一部分。相比于现有的分片重组方法需要反复重复传输包头,本发明可以有效减轻传输的数据载荷,从而提高数据传输的速度。
同时,本发明的分片与重组操作都是基于公有的存储模块的,即分片与重组操作都基于相同的存储模块,即第一存储单元RAM1和数据存储单元RAM0。所谓公有的存储模块,就是报文传输时,可以随时访问的模块,这个存储模块不限于某一局部设备,而是为所有设备所共享的存储空间。本发明所有的数据负载都被存储在公有的存储模块中,只在需要的时候传输,不会随时都进行传输。这样就可以尽可能的减少传输数据报文信息的头部信息,减轻传输的数据负载,从而提高传输速度,也就提供了更高的传输效率。
另外,本发明的分片处理模块中设置有两个串联的RAM存储单元,其中数据存储单元RAM0存储数据包的数据,而第一存储单元RAM1存储数据存储单元RAM0反馈的地址信息。分片后的数据包的地址信息直接存入第一存储单元RAM1中,而不需要设置偏移量等信息。这样使得数据包信息既能与地址信息相对应,又省去了计算偏移量的步骤,充分的利用存储负载换取了传输的效率。这样的设计使得数据在传输时不需要考虑偏移量,只需直接按地址进行查找,传输效率更高。
本发明采用RAM存储单元,相比于FIFO等其他存储单元,RAM存储单元使得地址信息与数据信息一一对应,有效地避免了因丢包而导致的异常信息对系统的影响。在实际的工程中,不能保证设备总是按照预定的逻辑执行,异常状况难以避免。处理网络数据包时,通常宁愿丢弃一个错误的数据包,也不能因为一个处理不当的数据包而导致网络拥堵甚至崩溃。本发明中使用RAM存储单元,它本身就是按地址存储访问的。也就是说,在RAM存储单元中存储一个数据就会返回一个地址。此处,在RAM0中存储数据报文信息的数据部分,而将RAM0返回的地址存储在RAM1中,传输时只传输RAM1中的地址信息,如果丢掉一个地址信息,这个地址所对应的数据包也就相应地丢弃了,分片处理模块或者重组处理模块会直接去读取后续的数据,地址与数据包始终是一一对应的。采用这种方式,即使丢失了数据也不会打乱后面数据包的顺序,始终能保持信息同步。这样,当发生丢数据等异常时,就能够及时地补救。也就是说,就算丢失了一个数据包,后面的数据包的数据信息和地址信息也始终是一一对应的,这样能够有效地避免因丢包而导致的异常信息对系统的影响。
附图说明
附图1七层网络协议
附图2IPV4报文头部
附图3本发明实现流程图
附图4RAM1中的数据格式
附图5RAM0中的数据格式
具体实施方式
为了突出本发明的创新,本发明将结合附图进行详细描述。
本发明的关键在于:在网络中的网络层,提出一种报文的分片与重组方法,由于网络层最大处理单元MTU(MaximumTransmissionUnit)的限制,需要进行有效地分片与重组。
如附图3所示,本发明的分片处理步骤如下:
第一步,Mac层首先将数据报文信息传输至网络层的接收处理模块,接收处理模块在接收到来自MAC层的数据报文信息后,若接收速度超过50Mbps则放弃报文,停止接收;若接收速度未超过50Mbps则将数据报文信息进行缓存并统计数据报文的信息。接受并缓存的数据报文信息包含报文数据载荷以及报文控制信息,接收报文模块的作用就是接收这些有效信息,控制接收速度,并统计数据报文的信息。所要统计的数据信息包括:版本、IHL、服务类型、数据包长度、标识、标志、片偏移量、生存时间、协议、包头校验和、源地址以及目的地址等。
第二步,格式调整模块在接收到来自接收处理模块的数据报文信息后,为了配合后续的处理,由格式调整模块对数据报文信息进行格式调整。由于上一步缓存的从MAC层传送过来的数据报文信息是以太网格式的,不是纯粹的数据报文信息,这些信息中含有端口信息、前导码等冗余信息,没有完全符合后续分片的格式,因此需要进行格式调整,删除数据报文信息中的前导码和端口号等冗余信息,形成网络数据报文,网络数据报文传输至分片处理模块。修改后网络数据报文的格式附图2所示。
第三步,分片处理模块在接收到格式调整模块发送来的网络数据报文后,将网络数据报文的数据部分按接收的先后顺序分成编号从1至n的n个数据包,将这n个数据包按编号从小到大的顺序连续地存储在数据存储单元RAM0中,同时记录下每个数据包对应的包头位置start_addr[1]…start_addr[n]和每个数据包对应的包尾位置end_addr[1]…end_addr[n];数据存储单元RAM0中存储的数据格式如图5所示。
第四步,分片处理模块将第三步中网络数据报文对应的头部信息提取出来存放在第一存储单元RAM1,然后顺序地将第三步中记录的n个数据包对应的包头位置和包尾位置的信息按照“start_addr[1],end_addr[1],start_addr[2],end_addr[2],start_addr[3],end_addr[3],...,start_addr[n],end_addr[n]”的顺序,紧接在对应的网络数据报文的头部信息后存放在第一存储单元RAM1中;第一存储单元RAM1中存储的内容如图4所示。
第五步,重复第一步至第四步,直至接收到的所有数据报文信息都完成分片。
根据以太网的传输规则,如果划分模块很小,就会需要传输很多负载,分片效率反而不高;如果传输数据量很大,就需要很大的空间。因此,数据包最小为64字节,最大为1548字节。
RAM存储单元是按地址存储访问的,在RAM存储单元中存储一个数据就会返回一个地址,地址与内容是一一对应的。本发明就是利用RAM存储单元这个特点来对网络数据报文进行有效的分片与重组的。本发明在分片处理模块使用两个大的RAM,一个是全局存储模块,即数据存储单元RAM0,用它存储网络数据报文的数据部分;另一个是局部存储模块,即第一存储单元RAM1,用它存储网络数据报文的头部信息。当有大的数据包从MAC层到来时,网络层与MAC层之间的网络接口将上层的网络数据报文的头部信息提取出来,放到RAM1中,头部信息如附图2所示。然后分片处理模块将网络数据报文的数据部分分成不同大小的数据包,连续地存储在RAM0中,同时顺序记录下每个数据包包头的地址start_addr和包尾的地址end_addr,然后将所有数据包的包头的地址信息和包尾的地址信息存储在RAM1中对应数据包的头部信息的末尾处。本发明将网络数据报文的数据部分存储在RAM0中,而将RAM0返回的地址存储在RAM1中。存储过程中只传输RAM1中的地址信息,如果丢掉一个地址信息,这个地址所对应的数据包也就相应地丢掉了,分片处理模块或者重组处理模块会继续去读取后续的数据。地址与数据包始终是一一对应的,不用担心因数据丢失而打乱顺序,这样就能始终保持信息同步。
本发明的重组方法,与上述的分片处理方法相对应,将数据包恢复为完整的数据报文信息,实质就是分片算法的逆运算。在将数据包传输到MAC层之前,网络层的处理步骤如下:
第一步,重组处理模块读取第一存储单元RAM1中存储的网络数据报文的头部信息,然后根据头部信息后存储的数据包的包头地址信息和包尾地址信息查询数据存储单元RAM0中这个头部信息所对应的n个数据包;
第二步,将第一步中查询到n个数据包按照存储地址由小到大的顺序拼接在第一步读取的头部信息之后,重组为数据报文信息,并将重组后的数据报文信息传输至MAC层;
第三步,重复第一步至第二步,直至网络层接收到的所有数据报文信息都完成重组。
本发明所述的IP数据报文的分片重组装置,包括接受处理模块、格式调整模块、分片处理模块和重组处理模块,其中接收处理模块的输入端即分片重组装置的输入端,重组处理模块的输出端即分片重组装置的输出端;分片重组装置的输入端接收MAC层的数据报文信息,接收处理模块将接收的数据报文信息传输至格式调整模块,格式调整模块将数据报文信息调整为网络数据报文传输给分片处理模块,再由分片处理模块将网络数据报文进行分片处理,重组处理模块读取分片处理模块分片处理后的数据包,最后重组处理模块将数据包重组为数据报文信息并发送至MAC层。
该分片重组装置中的分片处理模块内设置两块相连的存储单元,即第一存储单元RAM1和数据存储单元RAM0,其中数据存储单元RAM0的输入端为分片处理模块的输入端,数据存储单元RAM0的地址返回端连接至第一存储单元RAM1的输入端。
本发明的分片与重组操作都是基于公有的存储模块的,也就是说分片与重组都可以基于相同的存储模块,由于传输的报文头部信息都是RAM1中的内容,而RAM0中的内容只是被存储起来以供随时调用而没有被传输,这样报文传输的负载就相应的减小了,大大提高了传输速度。
本发明分片方法的主要思路就是尽量减少负载的传输,分片后的数据报文信息只传输一个头部信息,其他数据部分存储在另一个RAM中,就如上述分片处理方法所述的那样。本发明在分片处理模块中使用两个大的RAM,一个是全局存储模块RAM0,用于存储网络数据报文的数据部分,另一个是局部存储模块RAM1,用于网络数据报文的头部信息。当有大的数据从MAC层到来时,分片处理模块会将网络数据报文的头部信息提取出来,放到RAM1中(IPV4报文头部信息格式如附图2所示)然后将网络数据报文的数据部分分成不同大小的数据包连续地存储在RAM0中,并顺序记录下每个数据包包头的地址start_addr和包尾的end_addr,然后顺序地将这所有数据包存储的地址信息紧接在网络数据报文的头部信息后一起放到RAM1中。
Claims (5)
1.一种IP数据报文的分片方法,其特征在于,在接收来自MAC层的数据报文信息后,网络层的处理步骤如下:
第一步,接收处理模块在接收到来自MAC层的数据报文信息后,首先将数据报文信息进行缓存,然后统计数据报文的信息,最后将数据报文信息传送到格式调整模块;其中所要统计的数据信息包括:版本、IHL、服务类型、数据包长度、标识、标志、片偏移量、生存时间、协议、包头校验和、源地址以及目的地址的信息;
第二步,格式调整模块在接收到来自接收处理模块的数据报文信息后,对数据报文信息进行格式调整,并去除数据报文信息中的前导码和端口号的冗余信息,形成网络数据报文,网络数据报文传输至分片处理模块;
第三步,分片处理模块在接收到格式调整模块发送来的网络数据报文后,将网络数据报文的数据部分按接收的先后顺序分成编号从1至n的n个数据包,将这n个数据包按编号从小到大的顺序连续地存储在数据存储单元RAM0中,同时记录下每个数据包对应的包头位置start_addr[1]…start_addr[n]和每个数据包对应的包尾位置end_addr[1]…end_addr[n];
第四步,分片处理模块将第三步中网络数据报文对应的头部信息提取出来存放在第一存储单元RAM1,然后顺序地将第三步中记录的n个数据包对应的包头位置和包尾位置的信息按照“start_addr[1],end_addr[1],start_addr[2],end_addr[2],start_addr[3],end_addr[3],...,start_addr[n],end_addr[n]”的顺序,紧接在对应的网络数据报文的头部信息后存放在第一存储单元RAM1中,
第五步,重复第一步至第四步,直至接收到的所有数据报文信息都完成分片。
2.一种IP报文的分片方法,其特征在于,第一步中,接收处理模块在缓存来自MAC层的数据报文信息时,若接收速度超过50Mbps则放弃报文,停止接收;若接收速度未超过50Mbps则将数据报文信息进行缓存并统计数据报文的信息。
3.一种IP数据报文的重组方法,其特征在于,在将数据包传输到MAC层之前,网络层的处理步骤如下:
第一步,重组处理模块读取第一存储单元RAM1中存储的网络数据报文的头部信息,然后根据头部信息后存储的数据包的包头地址信息和包尾地址信息查询数据存储单元RAM0中这个头部信息所对应的n个数据包;
第二步,将第一步中查询到n个数据包按照存储地址由小到大的顺序拼接在第一步读取的头部信息之后,重组为数据报文信息,并将重组后的数据报文信息传输至MAC层;
第三步,重复第一步至第二步,直至网络层接收到的所有数据报文信息都完成重组。
4.一种IP数据报文的分片重组装置,其特征在于分片重组装置包括接受处理模块、格式调整模块、分片处理模块和重组处理模块,其中接收处理模块的输入端即分片重组装置的输入端,重组处理模块的输出端即分片重组装置的输出端;分片重组装置的输入端接收MAC层的数据报文信息,接收处理模块将接收的数据报文信息传输至格式调整模块,格式调整模块将数据报文信息调整为网络数据报文传输给分片处理模块,再由分片处理模块将网络数据报文进行分片处理,重组处理模块读取分片处理模块分片处理后的数据包,最后重组处理模块将数据包重组为数据报文信息并发送至MAC层。
5.一种IP数据报文的分片重组装置,其特征在于,分片处理模块内设置两块相连的存储单元,即第一存储单元RAM1和数据存储单元RAM0,其中数据存储单元RAM0的输入端为分片处理模块的输入端,数据存储单元RAM0的地址返回端连接至第一存储单元RAM1的输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610059297.8A CN105610744B (zh) | 2016-01-28 | 2016-01-28 | 一种ip报文分片与重组方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610059297.8A CN105610744B (zh) | 2016-01-28 | 2016-01-28 | 一种ip报文分片与重组方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105610744A true CN105610744A (zh) | 2016-05-25 |
CN105610744B CN105610744B (zh) | 2018-10-23 |
Family
ID=55990286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610059297.8A Active CN105610744B (zh) | 2016-01-28 | 2016-01-28 | 一种ip报文分片与重组方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105610744B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330788A (zh) * | 2016-08-19 | 2017-01-11 | 北京网迅科技有限公司杭州分公司 | 报文分片传输方法和装置 |
CN107332753A (zh) * | 2017-07-24 | 2017-11-07 | 佛山易识科技有限公司 | 一种网络数据包乱序传输方法 |
CN108667755A (zh) * | 2017-03-27 | 2018-10-16 | 中兴通讯股份有限公司 | 一种报文分片存储及重组的方法和装置 |
CN110795405A (zh) * | 2019-11-11 | 2020-02-14 | 厦门市美亚柏科信息股份有限公司 | 一种分片数据还原方法、终端设备及存储介质 |
CN111935036A (zh) * | 2020-04-30 | 2020-11-13 | 电子科技大学 | 一种光纤通道交换机中数据帧切分与重组的实现方法 |
CN112311692A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 报文处理方法及装置、端设备 |
CN112769520A (zh) * | 2019-11-05 | 2021-05-07 | 中国科学院声学研究所 | 一种基于ip分片的完整数据包留存方法及系统 |
CN113660295A (zh) * | 2021-10-20 | 2021-11-16 | 深圳市龙信信息技术有限公司 | 报文处理装置 |
CN114765494A (zh) * | 2021-01-14 | 2022-07-19 | 瑞昱半导体股份有限公司 | 具有数据重用机制的数据传输方法及装置 |
CN115225593A (zh) * | 2022-06-30 | 2022-10-21 | 中科驭数(北京)科技有限公司 | 分片报文重组方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494274A (zh) * | 2002-10-31 | 2004-05-05 | ����ͨѶ�ɷ�����˾ | 基于网络处理器实现ip报文分片重组的方法 |
KR20040072952A (ko) * | 2003-02-11 | 2004-08-19 | 삼성전자주식회사 | 분할된 패킷 데이터 재 조합 장치 및 방법 |
CN1592215A (zh) * | 2003-08-27 | 2005-03-09 | 中兴通讯股份有限公司 | 一种对分片式报文重组和业务分配的方法 |
CN1859312A (zh) * | 2006-04-12 | 2006-11-08 | 华为技术有限公司 | 一种ip报文分片重组的方法 |
CN1859308A (zh) * | 2006-03-18 | 2006-11-08 | 华为技术有限公司 | 一种ip报文重组的方法 |
-
2016
- 2016-01-28 CN CN201610059297.8A patent/CN105610744B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494274A (zh) * | 2002-10-31 | 2004-05-05 | ����ͨѶ�ɷ�����˾ | 基于网络处理器实现ip报文分片重组的方法 |
KR20040072952A (ko) * | 2003-02-11 | 2004-08-19 | 삼성전자주식회사 | 분할된 패킷 데이터 재 조합 장치 및 방법 |
CN1592215A (zh) * | 2003-08-27 | 2005-03-09 | 中兴通讯股份有限公司 | 一种对分片式报文重组和业务分配的方法 |
CN1859308A (zh) * | 2006-03-18 | 2006-11-08 | 华为技术有限公司 | 一种ip报文重组的方法 |
CN1859312A (zh) * | 2006-04-12 | 2006-11-08 | 华为技术有限公司 | 一种ip报文分片重组的方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330788A (zh) * | 2016-08-19 | 2017-01-11 | 北京网迅科技有限公司杭州分公司 | 报文分片传输方法和装置 |
CN106330788B (zh) * | 2016-08-19 | 2018-05-22 | 北京网迅科技有限公司杭州分公司 | 报文分片传输方法和装置 |
CN108667755A (zh) * | 2017-03-27 | 2018-10-16 | 中兴通讯股份有限公司 | 一种报文分片存储及重组的方法和装置 |
CN107332753A (zh) * | 2017-07-24 | 2017-11-07 | 佛山易识科技有限公司 | 一种网络数据包乱序传输方法 |
CN112311692A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 报文处理方法及装置、端设备 |
CN112769520A (zh) * | 2019-11-05 | 2021-05-07 | 中国科学院声学研究所 | 一种基于ip分片的完整数据包留存方法及系统 |
CN110795405A (zh) * | 2019-11-11 | 2020-02-14 | 厦门市美亚柏科信息股份有限公司 | 一种分片数据还原方法、终端设备及存储介质 |
CN110795405B (zh) * | 2019-11-11 | 2022-07-15 | 厦门市美亚柏科信息股份有限公司 | 一种分片数据还原方法、终端设备及存储介质 |
CN111935036A (zh) * | 2020-04-30 | 2020-11-13 | 电子科技大学 | 一种光纤通道交换机中数据帧切分与重组的实现方法 |
CN114765494A (zh) * | 2021-01-14 | 2022-07-19 | 瑞昱半导体股份有限公司 | 具有数据重用机制的数据传输方法及装置 |
CN113660295A (zh) * | 2021-10-20 | 2021-11-16 | 深圳市龙信信息技术有限公司 | 报文处理装置 |
CN113660295B (zh) * | 2021-10-20 | 2022-03-22 | 深圳市龙信信息技术有限公司 | 报文处理装置 |
CN115225593A (zh) * | 2022-06-30 | 2022-10-21 | 中科驭数(北京)科技有限公司 | 分片报文重组方法、装置、设备和介质 |
CN115225593B (zh) * | 2022-06-30 | 2023-11-28 | 中科驭数(北京)科技有限公司 | 分片报文重组方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105610744B (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105610744A (zh) | 一种ip报文分片与重组方法及装置 | |
US7027443B2 (en) | Reassembly engines for multilink applications | |
CN102970227B (zh) | 在asic中实现vxlan报文转发的方法和装置 | |
US8160106B2 (en) | Method, device and system for transmitting Ethernet packets | |
EP1779606B1 (en) | System and method for higher throughput through a transportation network | |
CN101170512B (zh) | 报文业务处理方法 | |
JPH10200598A (ja) | 通信装置 | |
CN103490961A (zh) | 一种网络设备 | |
CN112566180B (zh) | 一种提升tetra系统分组数据传输速率的方法 | |
CN105187175A (zh) | 基站下行传输控制方法和系统 | |
US7468976B2 (en) | Efficiency improvement for shared communications networks | |
CN104967498B (zh) | 一种基于历史的卫星网络数据包压缩传输方法 | |
WO2016123975A1 (zh) | 数据传输方法及装置 | |
CN107508828A (zh) | 一种超远程数据交互系统及方法 | |
CN105763375A (zh) | 一种数据包发送方法、接收方法及微波站 | |
CN102238164B (zh) | 面向ip电信网的多协议报文适配方法 | |
CN112910909A (zh) | 基于CoAP协议与HTTP协议转换的数据包处理方法 | |
EP3809748B1 (en) | Data transmitting method and device | |
CN114422445B (zh) | 一种负载均衡和乱序重组的实现方法 | |
CN105577560A (zh) | 数据包、数据传输系统及方法 | |
CN105072057A (zh) | 一种用于网络数据传输的中间交换设备及网络通信系统 | |
CN107743102A (zh) | 一种高效的tcp会话重组方法 | |
CN107786472A (zh) | 一种高效的tcp会话重组装置 | |
CN1293726C (zh) | 在网络链路上实现快速传输桥接数据的方法 | |
CN118450431B (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 | ||
CB02 | Change of applicant information |
Address after: 99 No. 214135 Jiangsu New District of Wuxi City Linghu Avenue Applicant after: Southeast University Address before: 210000 Jiangsu city Nanjing Province four pailou No. 2 Applicant before: Southeast University |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |