CN112653639A - 一种基于多线程交互处理的IPv6报文分片重组方法 - Google Patents

一种基于多线程交互处理的IPv6报文分片重组方法 Download PDF

Info

Publication number
CN112653639A
CN112653639A CN202011517543.2A CN202011517543A CN112653639A CN 112653639 A CN112653639 A CN 112653639A CN 202011517543 A CN202011517543 A CN 202011517543A CN 112653639 A CN112653639 A CN 112653639A
Authority
CN
China
Prior art keywords
fragment
message
thread
reassembly
information
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
CN202011517543.2A
Other languages
English (en)
Other versions
CN112653639B (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.)
Beijing Huahuan Electronics Co Ltd
Original Assignee
Beijing Huahuan Electronics 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 Beijing Huahuan Electronics Co Ltd filed Critical Beijing Huahuan Electronics Co Ltd
Priority to CN202011517543.2A priority Critical patent/CN112653639B/zh
Publication of CN112653639A publication Critical patent/CN112653639A/zh
Application granted granted Critical
Publication of CN112653639B publication Critical patent/CN112653639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses

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

本发明公开了一种基于多线程交互处理的IPv6报文分片重组方法,该方法包括:分片重组报文接收的分片报文,根据解析分片报文获取的分片信息,并在作为全局变量的hash表中进行查找;根据查找获取到的分片重组信息,将该分片报文保存到全局变量中;若收包线程与hash表查找到的表项所保存的收包线程不一致,则将该分片报文送入线程调度模块,由线程调度模块调度至其它收包线程对收到的同一类分片进行重组,若一致,则在分片重组模块进行重组,对重组完成后的报文进行普通报文的处理。该方法能提高重组和转发效率,并能使线程状态发生切换不进入阻塞状态,也减少了上下文切换带来的资源浪费。

Description

一种基于多线程交互处理的IPv6报文分片重组方法
技术领域
本发明涉及通信领域,尤其涉及一种基于多线程交互处理的IPv6报文分片重组方法。
背景技术
作为下一代网络的基础技术协议,IPv6诞生的目的就是为解决IPv4网络地址面临枯竭的问题。近年来,随着工业互联网、物联网、5G等技术的不断发展,对IP地址空间的需求越来越大。从IPv6开始商用到从国家层面推动网络全面改造支持IPv6以来,我国已有数以亿计的IPv6终端设备接入,未来5年间将有数百亿物联网终端接入。到2025年,我国在网络规模、用户规模和流量规模三个关键性指标方面将成为世界第一。
随着服务器单机性能的飞跃式提升,单机处理百万千万的并发成为可能,网络功能虚拟化技术应运而生。通过统一标准的高性能服务器、交换机和存储硬件,网络功能虚拟化技术不仅能提供优化的数据平面处理能力,同时也适用于控制平面的管理部署,实现软硬件分离,在保证性能的情况下极大地降低了设备成本、能耗和管理部署的复杂度。为避免传统的分片重组处理需要在内核态和用户态之间切换拷贝带来的CPU性能损耗,多数设备制造商实现的网络功能虚拟化方案能在用户空间提供数据的高速转发和处理。
网络技术的不断发展,使网络中各个转发节点的设备处理性能需要不断的提高,而复杂的业务应用和更长的IPv6报文使得网络中转发处理的多是分片报文。所以需要进一步提高分片报文的处理能力以保证更高的数据处理性能。
多核多线程实现分片报文的高性能处理,一般是将分片报文送到多个核心多个线程,从而实现分片重组性能的提升。为了网络平台的高性能和高吞吐,首先需要避免多个核心访问同一个内存地址或者数据结构,但是多线程接收分片报文使得各个核心线程之间必须同步内存数据信息,才能保证分片重组的准确性,而目前多线程重组分片报文时,存在线程状态发生切换进入阻塞状态影响重组性能的问题。
发明内容
基于现有技术所存在的问题,本发明的目的是提供一种基于多线程交互处理的IPv6报文分片重组方法,能解决现有网络功能虚拟化技术中通过软件处理数据分片报文中,多线程重组分片报文时,存在线程状态发生切换进入阻塞状态影响重组性能的问题。
本发明的目的是通过以下技术方案实现的:
本发明一种基于多线程交互处理的IPv6报文分片重组方法,包括以下步骤:
步骤1,分片重组模块接收某一收包线程发送的分片报文,所述分片报文为该收包线程识别到目的地址是本机地址的分片报文后,发送的分片报文;
步骤2,所述分片重组模块对所接收的分片报文进行解析得到分片信息,根据所述分片信息在作为全局变量的hash表内进行查找是否存在标识该分片报文重组的对应表项;
步骤3,如果所述步骤2找到标识该分片报文重组的对应表项,则检查该分片报文是否超时,若未超时则更新分片到达时间并向所述分片重组模块返回分片重组信息,执行步骤4;
如果所述步骤2未找到标识该分片报文重组的对应表项,则检查分片数量是否超过最大分片限制,若未超过则将包含收包线程的分片信息存入所述hash表;
步骤4,若在作为全局变量的hash表内找到已有与该分片报文对应的分片重组信息,且该分片重组信息包含的收包线程与该分片报文的收包线程不一致,则将该分片报文送入线程调度模块,并同步更新所述hash表内的分片重组信息,并由所述线程调度模块调度至由其它收包线程对收到的同一类分片报文进行重组处理,所述线程调度模块中,采用自旋锁使各收包线程一直处于活跃状态;
若该分片重组信息包含的收包线程与该分片报文的收包线程一致,则继续在该分片重组模块更新缓存的分片重组信息后,进行重组处理;
步骤5,重组完成后,将完整IPv6报文信息送入后续处理。
由上述本发明提供的技术方案可以看出,本发明实施例提供的基于多线程交互处理的IPv6报文重组方法,其有益效果为:
通过以hash表作为全局变量,根据收包线程收到的分片报文的分片重组信息进行hash查找后,将该分片保存到全局变量中;若收包线程与hash表查找到的表项所保存的收包线程一致,则在该分片重组模块内进行重组;若收包线程不一致,则将该分片报文送入线程调度模块,使其他收包线程对收到的同一类分片报文进行重组,重组完成后进行普通IPv6报文的处理。并通过在线程调度模块使用自旋锁的方式来保证多线程切换的安全,自旋锁实现简单,并且只针对分片重组模块使用,同时分片报文处理时所占用锁的时间并不长,使得采用自旋锁带来的性能提升远大于其自身不足带来的影响。该方法能使线程状态发生切换不进入阻塞状态,也减少了多线程中单个线程的上下文切换带来的资源浪费。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的分片重组方法整体流程图;
图2为本发明实施例提供的分片重组方法中分片重组模块的处理流程图;
图3为本发明实施例提供的分片重组方法中hash查表的流程图。
具体实施方式
下面结合本发明的具体内容,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
如图1、2所示,本发明实施例提供一种基于多线程交互处理的IPv6报文分片重组方法,包括以下步骤:
步骤1,分片重组模块接收某一收包线程发送的分片报文,所述分片报文为该收包线程识别到目的地址是本机地址的分片报文后,发送的分片报文;
步骤2,所述分片重组模块对所接收的分片报文进行解析得到分片信息,根据所述分片信息在作为全局变量的hash表内进行查找是否存在标识该分片报文重组的对应表项;
步骤3,如果所述步骤2找到标识该分片报文重组的对应表项,则检查该分片报文是否超时,若未超时则更新分片到达时间并向所述分片重组模块返回分片重组信息,执行步骤4;
如果所述步骤2未找到标识该分片报文重组的对应表项,则检查分片数量是否超过最大分片限制,若未超过则将包含收包线程的分片信息存入所述hash表;
步骤4,若在作为全局变量的hash表内找到已有与该分片报文对应的分片重组信息,且该分片重组信息包含的收包线程与该分片报文的收包线程不一致,则将该分片报文送入线程调度模块,并同步所述hash表内的更新分片重组信息,并由所述线程调度模块调度至由其它收包线程对收到的同一类分片报文进行重组处理,所述线程调度模块中,采用自旋锁使各收包线程一直处于活跃状态;
若该分片重组信息包含的收包线程与该分片报文的收包线程一致,则继续在该分片重组模块更新缓存的分片重组信息后,进行重组处理;
步骤5,重组完成后,将完整IPv6报文信息送入后续处理。
上述方法的步骤1还包括,若某一收包线程识别到目的地址不是本机地址的分片报文,且在路由转发表中查找到该分片报文的对应转发信息,则将该分片报文送入虚拟分片重组模块,同步更新分片重组信息后直接转发该分片报文。
上述方法的步骤2中,对所接收的分片报文进行解析得到分片信息包括:IPv6头部信息和扩展头部信息。其中,IPv6头部信息包括:报文的目的IP地址、源IP地址、分片标识符和下一报头的类型信息。
上述方法中,根据所述分片信息组成查找所述hash表的关键字,利用所述关键字在作为全局变量的hash表内进行查找是否存在标识该分片报文重组的对应表项;
所述关键字中包含目的IP地址所在的转发表索引,所述转发表索引根据收包接口确定。
上述方法的步骤3包括:
将新的分片信息存入所述hash表时,使用有界索引扩展所述hash表进行多线程间无锁查找和修改操作的互斥,若存入失败则重复进行查找与存入操作,直至新的分片信息正常保存至所述hash表。
上述方法的步骤4还包括:
当该分片报文是本次重组过程的第一个报文,且为首片分片,则重组由本收包线程执行;若该分片报文非报文的首片分片,则将该分片报文的分片重组信息送入所述线程调度模块,交由其他它收包线程执行重组。因为分片报文的转发过程受网络质量的影响,导致到达下一跳节点时可能出现乱序,即分片报文的首片分片在其他分片之后到达下一跳节点,所以收包线程将收到的第一个分片报文送到分片重组模块后,分片重组模块会检查该分片报文是否为首片分片。具体的,当该分片是本次重组过程的第一个报文,在将分片存入缓存时,若该分片非报文的首片分片,即偏移量不为0时,将分片信息送入线程调度模块,而不是做丢弃处理。
上述方法的步骤1中,所述某一收包线程通过异步方式将分片报文发送至所述分片重组模块。
上述方法中,线程调度模块使用Barrier线程屏障方式同步主线程与其他收包线程。
下面对本发明实施例具体作进一步地详细描述。
图1所示为本发明实施例提供的基于多线程交互处理的IPv6报文分片重组方法的整体流程图,其中,收包线程识别接收的是否为IPv6报文,若不是IPv6报文,则将报文送到IPv4模块进行处理;如果是IPv6报文,则判断报文目的地址是否为本机的IP地址,若不是本机的IP地址,则直接交由IPv6转发模块查找转发表进行转发;分片的重组只在所有分片到达目的地址的节点时进行,因此只判断目的地址是否是本机IP地址即可;解析分片报文提取报文头信息,若报文头的下一报头(Next header)类型为分片扩展报头,则将该分片报文送入分片重组模块进行处理。
优选的,收包线程通过异步方式将分片报文送到分片重组模块,确保收包处理的效率;
图2所示为本发明实施例提供的分片重组方法中分片重组模块的处理流程图,其中,分片报文进入分片重组模块后,校验IPv6报文头部信息以及扩展报文头部信息是否正确,然后根据提取的IPv6报文头部信息(包括目的IP地址、源IP地址、分片标识符、目的IP所在的转发表索引以及下一报头类型)组成hash查表所需要的key值;
所有线程收到的分片报文都由全局变量ip6_reass_main保存,该全局变量的成员变量包括各个收包线程所能接收的最大分片数、最大分片长度和分片间的最大间隔时间等配置,还包括各个收包线程各自的数据结构per_thread_data,用来保存各个收包线程接收的所有分片重组信息,分片信息包括:分片信息ip6_reass_t,本收包线程收到的分片数reass_n和锁状态等。另外,所有收包线程的分片信息ip6_reass_t都保存在全局变量ip6_reass_main的hash成员中。
图3所示为本发明实施例的分片重组方法中hash查表的流程图,其中,接前述说明,若在全局变量ip6_reass_main的hash表中未查找到相同key值的分片,则在per_thread_data保存的分片信息链表中新增本次的分片对象ip6_reass_t,然后将本次的分片索引reass_index和收包线程owner_thread_index作为数据内容保存到全局变量ip6_reass_main的hash表中;若因为其他线程已经在hash表中保存了具有相同key值的分片导致保存失败,则重新进行查表保存操作;若是其他原因导致的保存失败,则直接返回错误;
若在全局变量ip6_reass_main的hash表中查找到相同key值的分片,则根据hashvalue中的收包线程owner_thread_index和分片索引reass_index,在数据结构per_thread_data中查找对应的分片对象ip6_reass_t,检查hash value中的收包线程owner_thread_index与本次分片的收包线程索引thread_index是否一致,若不一致,则将线程调度标志位do_handoff置位,并返回分片对象ip6_reass_t;若收包线程一致,则比较本次分片的收包时间和分片对象ip6_reass_t上次记录的收包时间戳,间隔大于所设置的收包最大间隔时间,说明分片超时,需要丢弃本次分片并释放之前保存的分片对象ip6_reass_t,在数据结构per_thread_data保存的分片信息链表中新增本次的分片对象ip6_reass_t,然后将本次的分片索引reass_index和收包线程owner_thread_index作为数据内容保存到全局变量ip6_reass_main的hash表中;若未超时,则更新分片对象ip6_reass_t的收包时间戳,返回分片对象ip6_reass_t;
查表正确返回分片对象ip6_reass_t后,检查线程调度标志位do_handoff是否置位,若置位,则将分片送入线程调度模块同步处理;若标志位do_handoff未置位,则根据分片信息对缓存中已收到的分片进行重组,更新分片信息。
如图2所示,本收包线程重组处理本次分片后检查重组是否完成,完成后的报文是否需要送入线程调度模块,由首片分片的收包线程处理该完整报文。
分片对象ip6_reass_t使用成员变量first_bi标记是否是一个新的分片重组,在hash查表中只有未查找到key值对应的分片对象ip6_reass_t,在数据结构per_thread_data保存的分片信息链表中新增分片的对象ip6_reass_t时对first_bi初始化置为-1,然后在重组时将本次分片的缓存地址索引值赋给first_bi;分片对象ip6_reass_t使用成员变量last_packet标记分片是否是最后一个分片报文,last_packet置位时重组处理后校验报文长度是否正确,若校验正确则重组完成,将完整报文送入后续流程处理。
在hash查表步骤中,新建一个分片对象ip6_reass_t时,将本次分片的收包线程索引thread_index赋值给owner_thread_index,与分片索引reass_index作为hash value保存到hash表中。而新建分片对象的报文可能并非首片分片,所以首片分片的收包线程使用sendout_thread_index作为标记;当重组完成后,完整报文需要通过首片分片的收包线程送入下一处理模块;当报文重组完成且校验正确后,检查分片对象ip6_reass_t保存的收包线程owner_thread_index与首片分片的收包线程sendout_thread_inde是否x一致,若不一致,则将完整报文交由sendout_thread_index收包线程处理。
优选的,线程调度模块则使用Barrier线程屏障方式来同步主线程与其他收包线程;使用自旋锁确保线程一直处于active状态,避免状态切换带来的性能损耗。
多线程收包交互处理的报文重组方法,采用共享内存的方式,各线程间直接访问彼此的数据,尽可能提高分片的重组效率,本发明方法使用一套简单但有效的线程安全机制,来保护临界区数据访问的安全性。
定义全局变量frame_queue_mains用于保存所有收包线程对象,在全局变量frame_queue_mains中定义变量per_thread_data用于保存各个收包线程的私有数据。其他的变量还包括:
module_index:线程调度能访问的模块索引,如分片重组模块;
frame_queue_nums:每个线程队列能处理的最大个数,也就是队列能存入的最大分片数;
frame_queue_t:每个线程对应的数据结构,指针数组类型;
在分片重组模块需要将分片报文送入线程调度模块时,线程调度模块的入队逻辑所需要的信息包括:线程索引thread_index,分片报文buffer地址,分片ip6_reass_main对应的队列索引frame_queue_index,待处理的分片报文buffer数组长度n_packets,以及发生拥塞时将分片报文丢弃的标志位。
分片报文进入线程调度模块,根据队列索引frame_queue_index获取全局变量frame_queue_mains数据结构,根据线程索引thread_index获取线程的私有数据per_thread_data。
循环处理所有n_packets(表示分片报文个数)个分片报文:获取分片报文要送到的下一线程索引;当线程索引和下一线程索引不一致时,先判断是否出现拥塞,若出现拥塞,则记录报文并将报文丢弃,继续处理下一个分片报文;获取线程frame_queue_t中的数据元素,即线程的私有数据per_thread_data的数据元素,统计per_thread_data中所有需要进行线程调度的分片报文数,更新各统计标志,继续处理下一分片报文;当循环处理的n_packets个分片报文中需要线程调度的分片数达到最大256个时,将所有256个分片报文数据送入线程调度的数据队列,做调度处理并将线程调度标志位check_frame_queues置位;即使循环处理的分片报文数n_packets未达到最大256个,在所有n_packets个分片循环处理完成,仍然将n_packets中需要进行线程调度的分片报文送入处理队列,并将check_frame_queues置位。
在线程的运行过程中都需要thread_barrier_check检查是否有线程正在访问临界区,若有则线程自旋等待,没有则检查线程调度标志位check_frame_queues是否置位,若check_frame_queues置位,则进入出队列调度流程,遍历frame_queue_mains中的每个队列中的分片报文。
出队列流程中,将分片报文送到指定的线程处理,之后将分片报文送给指定的模块继续下一步处理,发送给哪个模块由全局变量frame_queue_mains中的模块索引module_index定义,分片报文处理中模块索引module_index指定为分片重组模块。
如图2所示的流程图,分片报文经过线程调度在分片重组模块重组完成后,送到ip6_input模块进入正常不分片报文的处理流程。
本发明为不使线程状态发生切换而进入阻塞状态,也为了减少上下文切换带来的资源讯号,线程调度使用自旋锁的方式来保证线程安全。尽管自旋锁存在持锁时间较长会严重影响获取锁的操作,过多的消耗CPU资源。但是自旋锁实现简单,并且只在分片重组模块中使用,同时分片报文处理时所占用锁的时间并不长,使得采用自旋锁带来的性能提升远大于其自身不足带来的影响。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (9)

1.一种基于多线程交互处理的IPv6报文分片重组方法,其特征在于,包括以下步骤:
步骤1,分片重组模块接收某一收包线程发送的分片报文,所述分片报文为该收包线程识别到目的地址是本机地址的分片报文后,发送的分片报文;
步骤2,所述分片重组模块对所接收的分片报文进行解析得到分片信息,根据所述分片信息在作为全局变量的hash表内进行查找是否存在标识该分片报文重组的对应表项;
步骤3,如果所述步骤2找到标识该分片报文重组的对应表项,则检查该分片报文是否超时,若未超时则更新分片到达时间并向所述分片重组模块返回分片重组信息,执行步骤4;
如果所述步骤2未找到标识该分片报文重组的对应表项,则检查分片数量是否超过最大分片限制,若未超过则将包含收包线程的分片信息存入所述hash表;
步骤4,若在作为全局变量的hash表内找到已有与该分片报文对应的分片重组信息,且该分片重组信息包含的收包线程与该分片报文的收包线程不一致,则将该分片报文送入线程调度模块,并同步更新所述hash表内的分片重组信息,并由所述线程调度模块调度至由其它收包线程对收到的同一类分片报文进行重组处理,所述线程调度模块中,采用自旋锁使各收包线程一直处于活跃状态;
若该分片重组信息包含的收包线程与该分片报文的收包线程一致,则继续在该分片重组模块更新缓存的分片重组信息后,进行重组处理;
步骤5,重组完成后,将完整IPv6报文信息送入后续处理。
2.根据权利要求1所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述步骤1还包括,若某一收包线程识别到目的地址不是本机地址的分片报文,且在路由转发表中查找到该分片报文的对应转发信息,则将该分片报文送入虚拟分片重组模块,同步更新分片重组信息后直接转发该分片报文。
3.根据权利要求1或2所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述步骤2中,对所接收的分片报文进行解析得到分片信息包括:IPv6头部信息和扩展头部信息。
4.根据权利要求3所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述IPv6头部信息包括:报文的目的IP地址、源IP地址、分片标识符和下一报头的类型信息。
5.根据权利要求1或2所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,根据所述分片信息组成查找所述hash表的关键字,利用所述关键字在作为全局变量的hash表内进行查找是否存在标识该分片报文重组的对应表项;
所述关键字中包含目的IP地址所在的转发表索引,所述转发表索引根据收包接口确定。
6.根据权利要求1或2所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述步骤3包括:
将新的分片信息存入所述hash表时,使用有界索引扩展所述hash表进行多线程间无锁查找和修改操作的互斥,若存入失败则重复进行查找与存入操作,直至新的分片信息正常保存至所述hash表。
7.根据权利要求1或2所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述步骤4还包括:
当该分片报文是本次重组过程的第一个报文,且为首片分片,则重组由本收包线程执行;若该分片报文非报文的首片分片,则将该分片报文的分片重组信息送入所述线程调度模块,交由其他它收包线程执行重组。
8.根据权利要求1或2所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述步骤1中,所述某一收包线程通过异步方式将分片报文发送至所述分片重组模块。
9.根据权利要求1或2所述的基于多线程交互处理的IPv6报文分片重组方法,其特征在于,所述线程调度模块使用Barrier线程屏障方式同步主线程与其他收包线程。
CN202011517543.2A 2020-12-21 2020-12-21 一种基于多线程交互处理的IPv6报文分片重组方法 Active CN112653639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011517543.2A CN112653639B (zh) 2020-12-21 2020-12-21 一种基于多线程交互处理的IPv6报文分片重组方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011517543.2A CN112653639B (zh) 2020-12-21 2020-12-21 一种基于多线程交互处理的IPv6报文分片重组方法

Publications (2)

Publication Number Publication Date
CN112653639A true CN112653639A (zh) 2021-04-13
CN112653639B CN112653639B (zh) 2022-10-14

Family

ID=75358421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011517543.2A Active CN112653639B (zh) 2020-12-21 2020-12-21 一种基于多线程交互处理的IPv6报文分片重组方法

Country Status (1)

Country Link
CN (1) CN112653639B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032335A (zh) * 2021-05-24 2021-06-25 北京世纪好未来教育科技有限公司 文件访问方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014015498A1 (zh) * 2012-07-26 2014-01-30 华为技术有限公司 报文发送方法、接收方法、装置及系统
CN103608775A (zh) * 2011-06-29 2014-02-26 华为技术有限公司 利用线程处理数据的方法及装置
CN106941457A (zh) * 2016-01-04 2017-07-11 普天信息技术有限公司 基于多核处理器的ip报文分片重组的方法及装置
CN110300074A (zh) * 2019-06-06 2019-10-01 北京左江科技股份有限公司 一种ip报文分片重组方法
CN111831403A (zh) * 2019-04-23 2020-10-27 中兴通讯股份有限公司 一种业务处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103608775A (zh) * 2011-06-29 2014-02-26 华为技术有限公司 利用线程处理数据的方法及装置
WO2014015498A1 (zh) * 2012-07-26 2014-01-30 华为技术有限公司 报文发送方法、接收方法、装置及系统
CN106941457A (zh) * 2016-01-04 2017-07-11 普天信息技术有限公司 基于多核处理器的ip报文分片重组的方法及装置
CN111831403A (zh) * 2019-04-23 2020-10-27 中兴通讯股份有限公司 一种业务处理方法和装置
CN110300074A (zh) * 2019-06-06 2019-10-01 北京左江科技股份有限公司 一种ip报文分片重组方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈俊 等: "多线程并行程序数据竞争静态检测方法", 《计算机工程与设计》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032335A (zh) * 2021-05-24 2021-06-25 北京世纪好未来教育科技有限公司 文件访问方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112653639B (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
US11811660B2 (en) Flow classification apparatus, methods, and systems
Miao et al. Silkroad: Making stateful layer-4 load balancing fast and cheap using switching asics
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
US8515965B2 (en) Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
Nilsson et al. Fast address lookup for Internet routers
US9755947B2 (en) Hierarchical self-organizing classification processing in a network switch
US9727508B2 (en) Address learning and aging for network bridging in a network processor
US7564847B2 (en) Flow assignment
US7313142B2 (en) Packet processing device
Perino et al. Caesar: A content router for high-speed forwarding on content names
US8369334B2 (en) Internet real-time deep packet inspection and control device and method
US7930516B1 (en) Linked list traversal with reduced memory accesses
Che et al. DRES: Dynamic range encoding scheme for TCAM coprocessors
US8767757B1 (en) Packet forwarding system and method using patricia trie configured hardware
US20060242313A1 (en) Network content processor including packet engine
US20070168377A1 (en) Method and apparatus for classifying Internet Protocol data packets
US20140153575A1 (en) Packet data processor in a communications processor architecture
US20140047188A1 (en) Method and Multi-Core Communication Processor for Replacing Data in System Cache
CN111131050A (zh) 流表的匹配方法及装置
CN112653639B (zh) 一种基于多线程交互处理的IPv6报文分片重组方法
CN112600882B (zh) 一种基于共享内存通信模式的硬件加速方法
Wan et al. Fastup: Fast tcam update for sdn switches in datacenter networks
Ding et al. A split architecture approach to terabyte-scale caching in a protocol-oblivious forwarding switch
US7324438B1 (en) Technique for nondisruptively recovering from a processor failure in a multi-processor flow device
JP4823331B2 (ja) ネットワーク接続装置及びスイッチング回路装置、並びにアドレス学習処理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant