CN111147611B - 参考附加网络地址转换表提供快速分组转发的电子设备 - Google Patents

参考附加网络地址转换表提供快速分组转发的电子设备 Download PDF

Info

Publication number
CN111147611B
CN111147611B CN201911071274.9A CN201911071274A CN111147611B CN 111147611 B CN111147611 B CN 111147611B CN 201911071274 A CN201911071274 A CN 201911071274A CN 111147611 B CN111147611 B CN 111147611B
Authority
CN
China
Prior art keywords
address
packet
processor
electronic device
fast forwarding
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.)
Active
Application number
CN201911071274.9A
Other languages
English (en)
Other versions
CN111147611A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN111147611A publication Critical patent/CN111147611A/zh
Application granted granted Critical
Publication of CN111147611B publication Critical patent/CN111147611B/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2557Translation policies or rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了一种参考附加网络地址转换表提供快速分组转发的电子设备。该电子设备,包括:第一转换表,其存储第一地址和第二地址的信息;第二转换表,其响应于满足条件,基于第一转换表存储第一地址和第二地址的信息;至少一个处理器,其被配置为基于第一转换表将第一分组的第一地址转换为第二地址;以及转发管理器,其响应于接收到包括第一地址的第二分组并且第一地址和第二地址的信息被存储在第二转换表中,在将第二分组分配给所述至少一个处理器之前,基于第二转换表将第二分组的第一地址转换为第二地址。

Description

参考附加网络地址转换表提供快速分组转发的电子设备
相关申请的交叉引用
本申请要求2018年11月5日提交于韩国知识产权局的韩国专利申请No.10-2018-0134227的优先权,该申请的公开内容整体以引用方式并入本文中。
技术领域
与示例实施例一致的设备涉及一种电子设备,更具体地,涉及一种用于执行网络地址转换的电子设备。
背景技术
最近,已使用了各种类型的电子设备。电子设备根据包括在电子设备中的电子电路的操作来执行其自己的功能,以向用户提供服务。电子设备可在独自操作时或在与另一电子设备通信时向用户提供服务。
当若干电子设备经由网络彼此通信时,一个电子设备可直接与另一电子设备通信。可替代地,在一些情况下,一个电子设备可经由第三电子设备与第二电子设备通信。在这种情况下,中间的第三电子设备可在第一电子设备和第二电子设备之间执行网络地址转换。
由于对互联网协议(IP)资源的限制,由两个电子设备处理的网络地址(例如,IP地址)可能彼此不同。可执行网络地址转换来映射不同的网络地址以将一个网络地址转换为另一网络地址。根据网络地址转换,可从预期的源装置向预期的目的地装置传送分组。
然而,执行网络地址转换可能花费较长时间,这可能使通信性能劣化。对大量数据进行通信的需求需要高通信性能。在这方面,为了通信大量数据,减少执行网络地址转换所花费的时间是可取的。
发明内容
一个或更多个示例实施例可提供一种电子设备,其能够参考附加网络地址转换表执行快速分组转发,而不执行需要相当长时间的网络地址转换。
在示例实施例的一方面,提供了一种电子设备,包括:第一转换表,其被配置为存储第一地址的信息和第二地址的信息;第二转换表,其被配置为响应于满足一条件,基于第一转换表存储第一地址的信息和第二地址的信息;至少一个处理器,其被配置为响应于在满足条件之前接收到包括第一地址的第一分组,基于第一转换表将第一分组的第一地址转换为第二地址;以及转发管理器,响应于接收到包括第一地址的第二分组并且第一地址的信息和第二地址的信息被存储在第二转换表中,在将第二分组分配给所述至少一个处理器之前,基于第二转换表将第二分组的第一地址转换为第二地址。
在示例实施例的一方面,提供了一种电子设备,包括:第一转换表,其被配置为响应于满足第一条件,存储第一地址和第二地址的信息;转发管理器,其被配置为响应于接收到包括第一地址的第一分组并且第一地址的信息和第二地址的信息被存储在第一转换表中,基于第一转换表将第一分组的第一地址转换为第二地址;缓冲器,其被配置为存储包括第二地址的第一分组以及指示第一分组的第一地址已被转换为第二地址的签名;以及至少一个处理器,其被配置为基于签名处理包括第二地址的第一分组并在不进行附加地址转换的情况下输出经过处理的第一分组。
在示例实施例的一方面,提供了一种电子设备,包括:至少一个处理器,其被配置为执行从第一分组的第一地址到第二地址的第一地址转换,并在源装置和目的地设备之间的通信中输出第一分组;以及转发管理器,其被配置为响应于满足与通信关联的条件,执行从第二分组的第一地址到第二地址的第二地址转换,其中,响应于转发管理器执行第二地址转换,所述至少一个处理器被配置为在不执行第一地址转换的情况下输出第二分组。
在示例实施例的一方面,提供了一种电子设备,包括:多个处理器,其被配置为响应于从外部接收到均包括第一地址的第一分组,将第一分组中的每一个的第一地址转换为第二地址,并且响应于在接收的第一分组中的一个中满足一条件,从缓冲器接收包括第二地址的第二分组,该第二分组基于第一分组中的所述一个;以及接口电路,其被配置为将均包括第二地址的第一分组和第二分组输出到目的地设备,其中,所述条件是输出第一分组中的所述一个的带宽大于参考值。
附图说明
通过参照附图详细描述其示例实施例,上述和其它目的和特征将变得显而易见。
图1是示出根据一些示例实施例的包括网络地址转换器的网络系统的示例配置的框图。
图2和图3是示出与图1的网络系统关联的示例实现方式的概念图。
图4是示出与图1的网络地址转换器关联的示例配置的框图。
图5是用于描述图4的电子设备的示例配置和操作的框图。
图6是用于描述图4的电子设备的示例操作的概念图。
图7和图8是描述图4的电子设备的示例操作的流程图。
图9是示出存储在图4的缓冲器中的信息的示例配置的概念图。
图10是示出图4的处理器分配器的示例配置的概念图。
图11是用于描述与图4的电子设备的主转换处理关联的示例操作的概念图。
图12是示出存储在图4的主网络地址转换(NAT)表中的信息的示例配置的概念图。
图13是用于描述与图4的电子设备的主转换处理关联的示例操作的概念图。
图14是描述与图4的电子设备的主转换处理关联的示例操作的流程图。
图15是描述图4的电子设备的示例操作的流程图。
图16是示出存储在图4的用于快速转发的NAT表中的信息的示例配置的概念图。
图17和图18是用于描述与图4的电子设备的快速转发处理关联的示例操作的概念图。
图19和图20是描述与图4的电子设备的快速转发处理关联的示例操作的流程图。
图21是用于描述图4的处理器分配器的示例操作的概念图。
图22是描述图4的电子设备的示例操作的流程图。
图23和图24是用于描述图4的电子设备的示例操作的概念图。
图25是示出与图1的网络地址转换器关联的示例配置的框图。
具体实施方式
下面,将参照附图详细且清楚地描述一些示例实施例,使得本领域技术人员可容易地实现本公开。
将理解,尽管本文中可使用术语第一、第二等来描述各种元件,但这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件相区分。除非另外明确地说明,否则对单数的任何引用可包括复数。另外,除非明确地相反描述,否则诸如“包括”或“包含”的表达将被理解为意指包括所述的元件但不排除任何其它元件。另外,诸如“部分”、“单元”或“模块”等的术语应该被理解为执行至少一个功能或操作并且可被具体实现为硬件、软件或其组合的单元。
诸如“…中的至少一个”的表达在一列元素之后时修饰整列元素,而不修饰该列中的各个元素。例如,表达“a、b和c中的至少一个”应该被理解为仅包括a、仅包括b、仅包括c、包括a和b二者、包括a和c二者、包括b和c二者、包括a、b和c全部、或者上述示例的任何变型。
图1是示出根据一些示例实施例的包括网络地址转换器120和140的网络系统100的示例配置的框图。
网络系统100可包括经由网络130连接的电子设备110和150。网络130可提供用于传送遵循各种有线/无线协议(诸如,以太网、长期演进(LTE)、全球微波接入互操作性(WIMAX)、码分多址(CDMA)等)进行通信的数据/信号的有线/无线信道。
电子设备110和150中的每一个可以是诸如(但不限于)台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴装置、视频游戏机、工作站、服务器、电动车辆、家用电器、医疗装置等的各种电子设备之一。电子设备110和150可在经由网络130彼此通信时交换数据/信号,以向用户提供服务。
例如,电子设备110和150可被配置成服务器-客户端结构。可替代地,电子设备110和150可以是等同级别的两个终端装置。本公开不限于此,电子设备110和150的配置可不同地改变或修改。
例如,在电子设备110和150之间交换的数据/信号可以以分组(packet)的形式传送。分组的报头可包括与初始生成分组的源装置的网络地址(例如,互联网协议(IP)地址)和最终要接收分组的目的地装置的网络地址关联的信息。可基于包括在报头中的网络地址信息将分组从预期的源装置传送到预期的目的地装置。
由于存在对IP资源的限制,所以可以分别给出内部IP地址和外部IP地址。在这方面,网络地址转换器120可在电子设备110和网络130之间执行网络地址转换,并且网络地址转换器140可在电子设备150和网络130之间执行网络地址转换。
网络地址转换器120可将由电子设备110处理的IP地址与由网络地址转换器120处理的IP地址进行映射,以在两个IP地址之间执行网络地址转换。网络地址转换器140可将由电子设备150处理的IP地址与由网络地址转换器140处理的IP地址进行映射,以在两个IP地址之间执行网络地址转换。
网络地址转换器120和140可基于转换后的IP地址经由针对电子设备110和150的网络130彼此通信。网络地址转换器120和140可基于转换后的IP地址与原始IP地址之间的映射关系与电子设备110和150通信。因此,可在电子设备110和150之间将分组从预期的源装置传送到预期的目的地装置。
例如,网络地址转换器120和140与电子设备110和150之间的通信可遵循诸如通用串行总线(USB)、外围组件互连快速(PICe)、移动PCIe(M-PCIe)、火线(Firewire)、蓝牙、近场通信(NFC)、无线保真(Wi-Fi)等的各种有线/无线接口协议来执行。
网络地址转换器120和140可采用诸如网络地址转换(NAT)方案、NAT64方案、客户侧转换器(cLAT)方案、提供商侧转换器(pLAT)方案等的各种地址转换方案中的至少一个,以执行网络地址转换。
然而,可容易地理解,本公开不限于参照图1描述的示例,并且本公开可被不同地改变或修改以执行网络地址转换和分组转发,这将在下面描述。
图2和图3是示出与图1的网络系统100关联的示例实现方式的概念图。
参照图2,图1的网络系统100可包括图2的网络系统100a。例如,图1的电子设备110和网络地址转换器120可包括电子设备210和通信仲裁器220。电子设备210可经由通信仲裁器220连接到网络130。通信仲裁器220可为电子设备210执行网络地址转换。
例如,电子设备210可以是台式计算机,并且通信仲裁器220可以是诸如路由器、交换机、集线器、无线接入点(WAP)等的电子设备之一。例如,电子设备210可遵循诸如USB、PCIe、Wi-Fi等的接口协议与通信仲裁器220通信,并且通信仲裁器220可遵循诸如以太网、Wi-Fi、WIMAX等的通信协议连接到网络130。
参照图3,图1的网络系统100可包括图3的网络系统100b。例如,电子设备110和网络地址转换器120可包括电子设备310和电子设备320。电子设备310可经由电子设备320连接到网络130。电子设备320可为电子设备310执行网络地址转换。
例如,电子设备310可以是膝上型计算机或平板计算机,电子设备320可以是智能电话。例如,电子设备310可遵循诸如USB、Wi-Fi等的接口协议与电子设备320通信,并且电子设备320可遵循诸如LTE、CDMA、Wi-Fi等的通信协议连接到网络130。
网络地址转换器120可以是专门用于对通信进行仲裁并执行网络地址转换的专用装置(例如,通信仲裁器220)。可替代地,网络地址转换器120可以是能够为另一电子设备执行网络地址转换以及能够自己经由网络130主动地通信的通用装置(例如,电子设备320)。本公开不限于此,并且网络地址转换器120的实现方式可不同地改变或修改。
已经针对图1的电子设备110和网络地址转换器120描述了图2和图3。然而,可容易地理解,也可针对图1的电子设备150和网络地址转换器140应用图2和图3的描述。另外,可容易地理解,网络系统100的配置可与网络系统100a和100b的配置不同地改变或修改。提供图1至图3以方便更好地理解,并且图1和图3不旨在限制本公开。
例如,当电子设备320连接到无线通信网络时,电子设备310可通过栓接(tether)到电子设备320(例如,遵循诸如USB或Wi-Fi的接口协议)来访问无线通信网络。在这种情况下,尽管由电子设备320执行网络地址转换,但是执行地址搜索、地址转换、分组过滤和分组转发可能花费相当长的时间。
由于此原因,电子设备310和无线通信网络之间的通过栓接的通信的性能可能远低于电子设备320和无线通信网络之间的直接通信的性能(例如,栓接可支持直接通信中的可用的带宽的约50%的带宽)。可能需要通信大量数据,并且栓接的低性能可能不足以对大量数据进行通信。
因此,示例实施例可执行快速分组转发,其花费减少的时间来执行网络地址转换。因此,通信性能可提高,并且可快速地将分组从源装置传送到目的地装置。本文中,可容易地理解,栓接仅是提供以方便更好地理解本公开的示例,并且示例实施例可用于伴随网络地址转换的所有类型的通信。
图4是示出与图1的网络地址转换器120或140关联的示例配置的框图。
在一些示例实施例中,图1的网络地址转换器120或140可实现于电子设备1000中。电子设备1000可实现于能够执行网络地址转换的任何类型的装置中。例如,电子设备1000可以是诸如图2的通信仲裁器220的专用装置。可替代地,例如,电子设备1000可以是诸如图3的电子设备320的通用装置,并且可在网络130和电子设备310之间执行网络地址转换。
下面,将描述网络130和电子设备310之间的网络地址转换以方便更好地理解,但本公开不限于此。
在一些示例实施例中,电子设备1000可包括接收接口电路1100、快速转发管理器1200、用于快速转发的NAT表1300(以下称为“快速转发NAT表1300”)、处理器分配器1400、中央处理块CPB、主NAT表1700和发送接口电路1800。
接收接口电路1100可与源装置通信以接收从源装置传送的分组。例如,接收接口电路1100可经由网络130连接到源装置,并且可接收从源装置传送的分组RPK。接收接口电路1100可遵循由接收接口电路1100支持的接口协议(例如,RmNet)来接收分组RPK。
接收接口电路1100可包括用于接收和处理接收到的分组RPK的各种硬件电路(例如,模拟电路、逻辑电路等)。接收接口电路1100可包括缓冲器1110。接收接口电路1100可将接收到的分组RPK暂时存储在缓冲器1110中。
快速转发管理器1200可确定是否针对分组RPK提供快速转发。快速转发NAT表1300可存储用于为分组RPK提供快速转发的信息。快速转发管理器1200可参考快速转发NAT表1300来提供快速转发。
中央处理块CPB可包括处理器1500和缓冲器1600。处理器1500可对分组RPK执行各种处理以准备要输出到目的地装置的分组(例如,分组TPK)。缓冲器1600可存储已由处理器1500处理或要由处理器1500处理的信息。例如,缓冲器1600可存储与分组RPK和TPK关联的信息。
处理器1500可为分组RPK执行网络地址转换。主NAT表1700可存储用于为分组RPK执行网络地址转换的信息。处理器1500可参考缓冲器1600和主NAT表1700将包括在分组RPK中的地址转换(或映射)到另一地址。
处理器1500可包括被配置为执行程序代码的指令集的处理器核。当在用户空间或内核空间上执行软件和/或固件的程序代码时,处理器1500可处理由程序代码请求的指令集的操作,使得程序代码预期的操作被执行。为此,处理器1500的处理器核可包括能够处理各种算术/逻辑运算的通用和/或专用硬件电路。
在示例实施例中,当不针对分组RPK提供快速转发时,处理器1500可执行主转换处理PMT的操作。另一方面,当针对分组RPK提供快速转发时,处理器1500可执行快速转发处理PFF的操作,而不执行主转换处理PMT。下面将详细描述这样的示例实施例。
处理器分配器1400可在处理器1500之中选择要对分组RPK进行处理的处理器。处理器分配器1400可将分组RPK分配给所选的处理器并将分组RPK提供给缓冲器1600,使得所选的处理器对分组RPK进行处理。
发送接口电路1800可接收由处理器1500准备的分组TPK。发送接口电路1800可包括缓冲器1810。发送接口电路1800可将准备的分组TPK暂时存储在缓冲器1810中。
发送接口电路1800可连接到目的地装置(例如,电子设备310)。发送接口电路1800可与目的地装置通信,使得缓冲器1810中的经过处理器1500处理的分组TPK被输出到目的地装置。发送接口电路1800可遵循由发送接口电路1800支持的接口协议(例如,USB或Wi-Fi)将分组TPK输出到目的地装置。发送接口电路1800可包括用于处理和输出分组TPK的各种硬件电路(例如,模拟电路、逻辑电路等)。
缓冲器1110、1600和1810中的每一个可包括被配置为存储信息或数据的存储器元件。例如,缓冲器1110、1600和1810中的每一个可包括易失性存储器(诸如,静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等)和/或非易失性存储器(诸如,相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)等)。
图5是用于描述图4的电子设备1000的示例配置和操作的框图。
例如,图4的处理器1500可包括图5的八(8)个处理器1510至1580。本公开不限于处理器1510至1580,并且包括在处理器1500中的处理器的数量可根据电子设备1000的设计不同地改变或修改。然而,为了方便更好地理解,在以下描述中将假设处理器1500包括八个处理器1510至1580。
处理器1510至1580中的每一个可处理由程序代码请求的指令集的操作。例如,处理器1510至1580可处理与主转换处理PMT和快速转发处理PFF关联的操作。
调度器1505可调度要由处理器1510至1580处理的任务,并且可将任务分配给处理器1510至1580。例如,调度器1505可将用于执行主转换处理PMT和快速转发处理PFF的任务分配给处理器1510至1580。调度器1505可根据处理器分配器1400和处理器1510至1580的操作执行任务调度和任务分配。
可与各个处理器1510至1580对应地提供队列1511、1521、1531、1541、1551、1561、1571和1581。队列1511至1581可根据调度器1505的请求管理要由各个处理器1510至1580处理的任务列表。
处理器1510至1580可参考各个队列1511至1581处理分配给处理器1510至1580的任务。处理器1510至1580可基于存储在缓冲器1600中的数据和信息执行用于处理所分配的任务的操作。
图6是用于描述图4的电子设备1000的示例操作的概念图。图7是描述图4的电子设备1000的示例操作的流程图。
参照图6,连接管理器CM可在由处理器1500执行的程序代码中实现。随着连接管理器CM被执行,处理器1500可检测目的地装置(例如,电子设备310)是否连接到电子设备1000(图7的S110)。当目的地装置未连接(图7的S110处“否”)时,可不执行进一步的操作。
当处理器1500检测到连接(图7的S110处“是”)时,处理器1500可确定检测到的连接是否与发送接口电路1800关联(图7的S120)。例如,当检测到的连接不与发送接口电路1800关联时(例如,当检测到与接收接口电路110的连接时)(图7的S120处“否”),可不执行进一步的操作。
当处理器1500检测到装置经由发送接口电路1800连接(图7的S120处“是”)时,处理器1500可针对连接的装置将快速转发NAT表1300初始化。在初始化中,处理器1500可请求快速转发NAT表1300移除存储在快速转发NAT表1300中的先前条目。
处理器1500可获得连接的装置的装置信息(图7的S140)。例如,装置信息可包括支持连接的装置和发送接口电路1800之间的通信的接口协议(例如,USB、Wi-Fi等)的信息。装置信息可包括连接的装置的内部配置的信息(例如,连接的装置的IP地址和端口、连接的装置的媒体访问控制(MAC)地址等)。
此外,装置信息可包括为了识别连接的装置而参考的信息(例如,装置类型、装置标识符等)。装置信息可被存储在可由处理器1500访问的缓冲器1600和/或另一存储器中。
处理器1500可将连接的装置配置为目的地装置(图7的S150)。因此,处理器1500可进行操作以将从源装置接收的分组转发到目的地装置。另外,处理器1500可为连接的目的地装置启用快速转发处理PFF(图7的S160)。
图8是描述图4的电子设备1000的示例操作的流程图。
在源装置经由接收接口电路1100(以及网络130)连接到电子设备1000并且目的地装置经由发送接口电路1800连接到电子设备1000之后,可经由电子设备1000执行源装置和目的地装置之间的通信。接收接口电路1100可接收从源装置传送的分组RPK,并且可将分组RPK缓冲在缓冲器1110中(S210)。
响应于接收到分组RPK,可发生用于处理分组接收的中断。响应于该中断,可将分组RPK从缓冲器1110复制或移动到缓冲器1600(S220)。可替代地,在一些情况下,缓冲器1110中的分组RPK可由处理器1500访问而无需复制或移动分组RPK。
快速转发管理器1200可参考快速转发NAT表1300确定是否需要针对分组RPK进行快速转发(S230)。当不需要快速转发(S230处“否”)时,处理器1500可执行主转换处理PMT(S300)。
当需要快速转发(S230处“是”)时,处理器1500可执行快速转发处理PFF而不执行主转换处理PMT(S500)。如下面将描述的,快速转发管理器1200可在对分组RPK进行处理被分配给处理器1500之前预先对分组RPK执行预处理,以提供快速地址转换。因此,可以不需要主转换处理PMT。
当执行主转换处理PMT或快速转发处理PFF时,处理器1500可对分组RPK进行处理以生成要输出到目的地装置的分组TPK。缓冲器1600可暂时存储经过处理的分组TPK。处理器1500可引起中断以将缓冲器1600的分组TPK复制或移动到缓冲器1810(S240)。
发送接口电路1800可将分组TPK缓冲在缓冲器1810中,并且可将分组TPK输出到目的地装置。因此,可经由电子设备1000将分组从源装置传送到目的地装置(S250)。
图9是示出存储在图4的缓冲器1600中的信息的示例配置的概念图。
缓冲器1600可存储分组的报头和数据。例如,分组的报头可包括与用于传送分组的通信协议的类型、分组的长度、为了检查分组错误而参考的校验和、和/或分组的生存时间(TTL)等相关联的信息。另外,分组的报头可包括与源装置的IP地址和端口以及目的地装置的IP地址和端口相关联的信息。此外,分组的报头可包括为了对分组进行通信而参考的各种信息。
缓冲器1600可存储预期通过分组传送的数据。
缓冲器1600可包括与接收接口电路1100和发送接口电路1800支持的接口协议关联的信息。例如,缓冲器1600可包括与在接收接口电路1100处接收分组RPK以及从发送接口电路1800输出分组TPK相关联的接口协议的信息(例如,遵循RmNet接口协议接收分组RPK,以及遵循Wi-Fi接口协议输出分组TPK)。因此,分组可伴随有与接收和输出分组相关联的接口协议的类型的信息。
缓冲器1600可存储快速转发的签名。当通过快速地址转换和快速转发处理PFF传送分组时,缓冲器1600可存储与分组对应的签名。处理器1500可参考签名确定分组需要快速转发处理PFF。这将在下面详细描述。
例如,签名可包括用于指示快速转发处理PFF的比特。例如,签名可存储在预留区域或回调区域中。可替代地,例如,签名可包括在分组的报头的预留字段中。本公开不限于此,签名的配置可不同地改变或修改以请求处理器1500执行快速转发处理PFF。
图10是示出图4的处理器分配器1400的示例配置的概念图。
处理器分配器1400可包括散列(Hash)模块1410和选择器1430。要由处理器1500处理的分组可输入到散列模块1410和选择器1430。例如,分组可从接收接口电路1100或缓冲器1600输入到处理器分配器1400。
散列模块1410可对接收的分组执行散列操作。分组可伴随有与接收和输出分组关联的接口协议的类型的信息。散列模块1410可对指示接口协议的类型之一的值执行散列操作。
选择器1430可基于散列操作的结果在处理器1500之中选择要处理接收的分组的处理器。因此,可基于由接收接口电路1100或发送接口电路1800支持的接口协议的类型来选择要处理接收的分组的处理器。
选择器1430可基于散列操作的结果输出接收的分组,使得接收的分组被分配给所选的处理器。当处理器分配器1400从选择器1430输出分组时,调度器1505可在与所选的处理器对应的队列中对任务进行排队,使得所选的处理器对分组进行处理。
例如,当用于接收或输出分组的接口协议是RmNet时,对分组进行处理可被分配给处理器1510、1520和1530中的一个。同样,当用于接收或输出分组的接口协议是Wi-Fi、USB、PCIe或另一协议时,对分组进行处理可被分配给处理器1540、处理器1550、处理器1560、处理器1570或处理器1580。提供此示例以方便更好地理解,并非旨在限制本公开。
处理器分配器1400可包括被配置为执行本公开中所描述的操作的硬件电路(例如,模拟电路、逻辑电路等)。例如,散列模块1410可包括被配置为执行散列操作的逻辑电路,并且选择器1430可包括被配置为提供与散列操作的结果对应的输出路径的解复用器。另选地,在一些情况下,散列模块1410和选择器1403的一些操作可在由处理器执行的软件和/或固件的程序代码中实现。
图11和图13是用于描述与图4的电子设备1000的主转换处理PMT关联的示例操作的概念图。图12是示出存储在图4的主NAT表1700中的信息的示例配置的概念图。图14是描述与图4的电子设备1000的主转换处理PMT关联的示例操作的流程图。
参照图8和图11,接收接口电路1100可从源装置接收分组RPK(图8的S210)。分组RPK可包括作为源装置的IP地址的第一地址(例如,下面所描述的内部源IP地址)。缓冲在缓冲器1110中的分组RPK可被复制或移动到缓冲器1600(图8的S220)。
在源装置和目的地装置之间的通信发起之后的早期通信中,可能尚不满足执行快速转发处理PFF的条件(图8的S230处“否”),并且可在条件满足之前接收到分组RPK。因此,在早期通信中,可针对分组RPK执行主转换处理PMT(图8的S300)。图8的操作S300可包括图14的操作S310至S370。
返回参照图11和图14,处理器分配器1400可在处理器1500之中分配要处理接收的分组RPK的处理器。还未执行网络地址转换,在这方面,处理器分配器1400可基于与接收分组RPK关联的接口协议(例如,接收接口电路1100所支持的接口协议)的类型选择处理器(图14的S310)。例如,当遵循接收接口电路1100处的RmNet接口协议接收分组RPK时,对分组RPK进行处理可被分配给图5的处理器1510(参照图10)。应该注意的是,图5中的处理器1510至1580之中的处理器1510被描述为执行下面的示例实施例中的操作,但这仅是示例性的,而非限制本公开。根据示例实施例的与主转换处理PMT关联的操作可由图5中的任一个处理器1500执行。
当处理器分配器1400和调度器1505进行操作时,与对分组RPK进行处理关联的任务可在与处理器1510对应的队列1511中排队(图14的S315)。处理器1510可开始主转换处理PMT以为分组RPK执行网络地址转换。
首先,处理器1510可检查分组RPK的报头(图14的S320)。例如,处理器1510可检查分组RPK中是否存在错误、分组RPK的数据是否丢失、分组RPK的次序是否适当等。
接下来,处理器1510可钩挂(hook)与转换分组RPK的地址关联的过滤器。例如,当在处理器1500上运行Linux内核时,可在处理器1500中钩挂网络过滤器的前路由过滤器、转发过滤器和后路由过滤器。
前路由过滤器、转发过滤器和后路由过滤器可基于各个过滤器中定义的规则参考主NAT表1700的信息对分组RPK进行处理(例如,路由、转发或丢弃)。然而,提供此示例以方便更好地理解,而非旨在限制本公开。钩挂的过滤器、功能或过程可根据处理器1500的操作条件不同地改变或修改。
例如,可在处理器1510中钩挂前路由过滤器(图14的S330),并且可基于前路由过滤器中定义的规则对分组RPK进行处理。处理器1510可针对分组RPK构建连接跟踪,并且可从主NAT表1700搜索与分组RPK对应的条目(图14的S332)。
参照图12,例如,主NAT表1700可存储内部源IP地址、内部源端口、外部源端口、外部源IP地址、目的地IP地址和目的地端口的信息。可管理这些地址和端口以在一个条目中彼此对应或映射。主NAT表1700可存储信息而不管执行快速转发处理PFF的条件。
主NAT表1700可在被配置为基于对应关系或映射关系来存储地址和端口并向处理器1500输出请求的信息的硬件模块中实现。可替代地,主NAT表1700的一些或所有信息可被插入到由处理器1500执行的程序代码中并且可被存储在存储器(例如,缓冲器1600)中。
返回参照图11,图5的处理器1510可搜索主NAT表1700以确定与分组RPK的内部源IP地址对应的目的地IP地址是不是电子设备1000的本地地址。因此,处理器1510可确定是否为目的地装置转发分组RPK(图14的S334)。当不转发分组RPK时(例如,当目的地IP地址是本地地址时)(图14的S334处“否”),处理器1510可在电子设备1000中使用分组RPK(图14的S335)。
当要转发分组RPK时(例如,当目的地IP地址不是本地地址时)(图14的S334处“是”),处理器1510可为分组RPK执行网络地址转换并且可确定目的地装置(图14的S336)。
处理器1510可参考主NAT表1700将分组RPK的第一地址(例如,内部源IP地址)转换为第二地址(例如,外部源IP地址)。例如,参照图12,当分组RPK包括内部源IP地址“192.168.0.3”和内部源端口“60000”时,处理器1510可将分组RPK的内部源IP地址和内部源端口转换为外部源IP地址“1.1.1.1”和外部源端口“50003”。
返回参照图11,响应于网络地址被转换,处理器1510可更新分组RPK的报头(图14的S338)。可在处理器1510中钩挂转发过滤器和后路由过滤器(图14的S340和S350),并且可基于转发过滤器和后路由过滤器中定义的规则来对分组RPK进行处理。从电子设备1000输出到目的地装置的分组也可由后路由过滤器处理。
处理器1510可将MAC报头添加到分组RPK(图14的S355)。MAC报头可包括诸如目的地装置的MAC地址的信息。例如,处理器1510可参考响应于目的地装置的连接获得的装置信息生成MAC报头(参照图6)。
基于处理器1510通过图14的操作S320至S355对分组RPK的处理(包括网络地址转换),可准备要输出到目的地装置的分组TPK。分组TPK可被缓冲在缓冲器1600中。缓冲器1600中的分组TPK可包括从第一地址转换的第二地址。
业务(traffic)状态监测TSM可在由处理器1500执行的程序代码中实现。响应于业务状态监测TSM执行,处理器1510可监测均包括第二地址的分组(包括分组TPK)的业务状态(图14的S360)。例如,处理器1510可监测诸如分组的数量、分组的总数据量、输出分组所需的带宽、分组的错误、通信错误等的各种状态。
参照图13,处理器1510可在处理器1500之中选择要处理对缓冲器1600的分组TPK进行输出的处理器。要处理对分组TPK进行输出的处理器可固定,或者可在一个或更多个空闲或可用处理器之中选择。另外,可根据各种条件来选择要处理对分组TPK进行输出的处理器。
例如,可选择处理器1580以处理对分组TPK进行输出。在这种情况下,可发生从处理器1510到处理器1580的切换,使得处理器1580处理将包括第二地址的分组TPK输出到目的地装置。响应于分配处理器1580,可将与对分组TPK进行输出关联的任务在与处理器1580对应的队列1581中排队(图14的S370)。
分组发送管理器TM可在由处理器1500执行的程序代码中实现。可发生中断以分配处理器1580,并且处理器1580可响应于该中断执行分组发送管理器TM。响应于分组发送管理器TM的执行,处理器1580可将缓冲在缓冲器1600中的分组TPK复制或移动到缓冲器1810(图8的S240)。
发送接口电路1800可将包括第二地址的分组TPK输出到目的地装置(图8的S250)。可在执行快速转发处理PFF的条件满足之前,在接收一个或更多个分组时继续进行参照图8和图11至图14描述的主转换处理PMT。
图15是描述图4的电子设备1000的示例操作的流程图。
在上述示例中,处理器1510可监测均包括第二地址的分组的业务状态。处理器1510可基于监测的业务状态来确定执行快速转发处理PFF的条件。例如,当输出分组所需的带宽变得大于参考值或阈值时,可满足执行快速转发处理PFF的条件。
在这方面,处理器1510可确定监测的带宽是否大于参考值或阈值(S410)。当监测的带宽不大于参考值或阈值(S410处“否”)时,可不执行快速转发处理PFF。
当在对分组进行通信时监测的带宽变得大于参考值或阈值时(S410处“是”),可触发快速转发处理PFF。为此,处理器1510可将与分组关联的条目添加到快速转发NAT表1300(S430)。快速转发NAT表1300将参照图16来描述。
本公开不限于上述示例,执行快速转发处理PFF的条件可不同地改变或修改。例如,当分组的数量变得大于参考数量时或者当分组的全部累积的数据量变得大于参考量时,可满足执行快速转发处理PFF的条件。例如,当分组具有高优先级时或者当需要对分组进行快速处理时(例如,当分组与安全问题或系统管理关联时),可满足执行快速转发处理PFF的条件。例如,可响应于用户的请求或对操作策略的请求而满足执行快速转发处理PFF的条件。操作S410可根据执行快速转发处理PFF的条件不同地改变或修改。
图16是示出存储在图4的快速转发NAT表1300中的信息的示例配置的概念图。
快速转发NAT表1300可基于主NAT表1700存储地址和端口的信息。例如,快速转发NAT表1300可存储内部源IP地址、内部源端口、外部源端口、外部源IP地址、目的地IP地址和目的地端口的信息。可管理这些地址和端口以在一个条目中彼此对应或映射。
在一些示例实施例中,快速转发NAT表1300可管理与目的地装置的一些装置信息或所有装置信息一致的地址和端口的信息。例如,可在快速转发NAT表1300中管理目的地装置的与地址和端口对应的MAC地址。
当满足执行快速转发处理PFF的条件时,可存储快速转发NAT表1300的信息。例如,参照图16,在从具有内部源IP地址“192.168.0.3”和内部源端口“60000”的源装置向具有目的地IP地址“3.3.3.3”和目的地端口“30001”的目的地装置对分组进行通信时,通信带宽可变得大于参考值。在这种情况下,在处理器1500的控制下,可将相关地址和端口的信息从主NAT表1700提供给快速转发NAT表1300。另外,在处理器1500的控制下,可将目的地装置的装置信息从缓冲器1600提供给快速转发NAT表1300。
存储在快速转发NAT表1300中的条目可表示与条目对应的通信被频繁地执行或可表示与条目对应的通信伴随有大量数据,因此需要高通信性能。为了实现高通信性能,可预先准备快速转发NAT表1300以使得在处理器1500参考主NAT表1700之前快速转发管理器1200可参考快速转发NAT表130。
快速转发NAT表1300可在被配置为基于对应关系或映射关系存储地址和端口并将请求的信息输出到快速转发管理器1200的硬件模块中实现。可替代地,快速转发NAT表1300的一些信息或所有信息可被插入到由处理器执行的程序代码中并且可被存储在存储器中。
图17和图18是用于描述与图4的电子设备1000的快速转发处理PFF关联的示例操作的概念图。图19和图20是描述与图4的电子设备1000的快速转发处理PFF关联的示例操作的流程图。
参照图8和图17,类似于主转换处理PMT,接收接口电路1100可从源装置接收分组RPK(图8的S210)。分组RPK可包括作为源装置的IP地址的第一地址(例如,内部源IP地址)。分组RPK可被提供给快速转发管理器1200。
在一些示例实施例中,快速转发管理器1200可包括表搜索器1210、转换器1230和封装器1250。快速转发管理器1200可包括被配置为执行下面所描述的操作的硬件电路(例如,模拟电路、逻辑电路等)。可替代地,在示例实施例中,快速转发管理器1200的一些操作可在由处理器执行的软件和/或固件的程序代码中实现。
图8的操作S230可包括图19的操作S231至S235。快速转发管理器1200可确定快速转发处理PFF是否启用(图19的S231)。当快速转发处理PFF未启用(图19的S231处“否”)时,可执行主转换处理PMT(图8的S300)。
当快速转发处理PFF启用(图19的S231处“是”)时,表搜索器1210可搜索快速转发NAT表1300以确定与分组RPK的第一地址匹配的条目是否已存储在快速转发NAT表1300中(图19的S233)。当快速转发NAT表1300中不存在匹配条目(图19的S235处“否”)时,可执行主转换处理PMT(图8的S300)。
当快速转发NAT表1300中存在匹配条目(图19的S235处“是”)时,可执行快速转发处理PFF(图8的S500)。例如,在接收包括内部源IP地址“192.168.0.3”的分组RPK之前,可满足执行快速转发处理PFF的条件。在这种情况下,可在快速转发NAT表1300存储与分组RPK匹配的条目之后接收分组RPK(参照图16)。图8的操作S500可包括图20的操作S503至S510的快速转发预处理和图20的操作S515至S570的快速转发处理PFF。
返回参照图17,转换器1230可参考快速转发NAT表1300将分组RPK的第一地址转换为第二地址(例如,外部源IP地址)(图20的S503)。当网络地址被转换时,封装器1250可更新分组RPK的报头。另外,封装器1250可参考快速转发NAT表1300(或缓冲器1600的装置信息)将MAC报头添加到分组RPK,并且可为分组RPK确定目的地装置(图20的S505)。
快速转发管理器1200可参考快速转发NAT表1300为分组RPK执行网络地址转换。因此,可准备要输出到目的地装置的分组RPK_F。分组RPK_F可对应于图11和图13的分组TPK。然而,分组RPK_F可由快速转发管理器1200而不是由处理器1500从分组RPK变换。
分组RPK_F可被缓冲在缓冲器1600中(图20的S507)。缓冲器1600中的分组RPK_F可包括由快速转发管理器1200从第一地址转换的第二地址。
当快速转发管理器1200将分组RPK的第一地址转换为第二地址时,快速转发管理器1200可生成要由处理器1500参考的签名SGN。签名SGN可指示分组RPK_F的地址已经从第一地址转换为第二地址。签名SGN可以是参照图9描述的快速转发的签名。
当缓冲器1600存储包括第二地址的分组RPK_F时,缓冲器1600还可存储与分组RPK_F对应的签名SGN(图20的S507)。处理器1500可基于签名SGN确定针对分组RPK_F的网络地址转换已经完成并且确定要通过使用快速转发处理PFF对分组RPK_F进行处理。
处理器分配器1400可接收分组RPK_F。处理器分配器1400可在处理器1500之中分配要对分组RPK_F进行处理的处理器。网络地址转换可能已经完成,因此,处理器分配器1400可确定目的地装置。在这方面,处理器分配器1400可基于与对分组RPK_F进行输出关联的接口协议的类型(例如,由发送接口电路1800支持的接口协议)来选择处理器(图20的S510)。
例如,当要遵循Wi-Fi接口协议从发送接口电路1800输出分组RPK_F时,对分组RPK_F进行处理可被分配给处理器1540(参照图10)。在快速转发管理器1200完成网络地址转换之后分配的处理器1540可不与由接收接口电路1100支持的接口协议关联。
基于处理器分配器1400和调度器1505的操作,与对分组RPK_F进行处理关联的任务可在与处理器1540对应的队列1541中排队(图20的S515)。在对分组RPK_F进行处理被分配给处理器1540之前,可能已经执行针对分组RPK_F的网络地址转换。因此,处理器1540可(例如,从缓冲器1600)接收包括第二地址的分组RPK_F,而不针对分组RPK_F将第一地址转换为第二地址。
处理器1540可针对分组RPK_F开始快速转发处理PFF。处理器1540可检查与分组RPK_F对应的签名SGN是否存储在缓冲器1600中(图20的S530)。基于存储在缓冲器1600中的签名SGN,处理器1540可对包括第二地址的分组RPK_F进行处理,使得分组RPK_F在没有附加地址转换的情况下输出到目的地装置。
换言之,处理器1540可进行处理以简单地将分组RPK_F转发到目的地装置。因此,在处理器1540接收到包括第二地址的分组RPK_F之后,与对分组的地址进行转换关联的过滤器可不钩挂在处理器1500中(或者处理器1500可执行与对分组的地址进行转换关联的过滤器的脱钩)。
参照图18,处理器1540可在处理器1500之中选择要处理对缓冲器1600的分组RPK_F进行输出的处理器。要处理对组RPK_F进行输出的处理器可固定,或者可在一个或更多个空闲或可用处理器之中选择。另外,可根据各种条件来选择要处理对分组RPK_F进行输出的处理器。
例如,可选择处理器1580以处理对分组RPK_F进行输出。在这种情况下,可发生从处理器1540向处理器1580的切换,使得处理器1580处理将包括第二地址的分组RPK_F输出到目的地装置。响应于处理器1580被分配,与输出分组RPK_F关联的任务可在与处理器1580对应的队列1581中排队(图20的S570)。
响应于由处理器1580执行分组发送管理器TM,处理器1580可将缓冲在缓冲器1600中的分组RPK_F复制或移动到缓冲器1810(图8的S240)。发送接口电路1800可将包括第二地址的分组RPK_F输出到目的地装置(图8的S250)。
当快速转发管理器1200执行快速转发预处理以处理网络地址转换时,处理器1580可处理对分组RPK_F进行输出而无需主转换处理PMT的网络地址转换。当执行快速转发处理PFF的条件满足时,参照图8和图17至图20描述的快速转发处理PFF可继续针对接收的一个或多个分组执行。
快速转发NAT表1300可包括响应于执行快速转发处理PFF的条件被满足而添加的条目。因此,快速转发NAT表1300的大小可小于主NAT表1700的大小。例如,当快速转发NAT表1300的大小与主NAT表1700的大小相同时,由于两个重复的表1300和1700,开销可增加。在示例性实施例中,包括在快速转发NAT表1300中的条目数量可小于包括在主NAT表1700中的条目数量,从而避免开销增加。然而,这仅是示例性的,并非限制本公开。
图21是用于描述图4的处理器分配器1400的示例操作的概念图。
如参照图10所述,处理器分配器1400可基于接口协议的类型选择要对分组进行处理的处理器。在一些示例实施例中,除了接口协议的类型之外,处理器分配器1400还可基于要执行的快速转发处理PFF来选择要对分组进行处理的处理器。例如,当在处理器分配器1400处接收的分组要利用快速转发处理PFF被处理时,处理器分配器1400可将对分组进行处理分配给处理器1570。
为此,例如,处理器分配器1400可参考缓冲器1600中的签名SGN。可替代地,例如,除了指示与接收和输出分组关联的接口协议的类型的值之外或者代替指示与接收和输出分组关联的接口协议的类型的值,分组可伴随有用于请求快速转发处理PFF的值。在此示例中,处理器分配器1400可对用于请求快速转发处理PFF的值执行散列操作,以选择处理器1570对分组进行处理。
图22是描绘图4的电子设备1000的示例操作的流程图。
在图15的示例中,当满足执行快速转发处理PFF的条件时,处理器1510可将相关条目添加到快速转发NAT表1300(S430)。接下来,在执行快速转发处理PFF时,处理器1510可监测是否满足移除条件(S610)。
移除条件可以是停止或终止快速转发处理PFF并移除添加到快速转发NAT表1300的相关条目的条件。例如,当与由快速转发处理PFF处理的分组关联的源装置和目的地装置之间的通信会话到期时,移除条件可满足。
本公开不限于上述示例,移除条件可不同地改变或修改。例如,当主NAT表1700中的对应条目被移除或者由于通信错误或故障而难以执行快速转发处理PFF时,可满足移除条件。在一些情况下,当增加的带宽或增加的数据量变得小于参考值或阈值时,可满足移除条件。例如,可响应于用户的请求或对操作策略的请求而满足移除条件。
当不满足移除条件(S610处“否”)时,可继续快速转发处理PFF。当满足移除条件(S610处“是”)时,可在处理器1500的控制下从快速转发NAT表1300移除相关条目(S630)。因此,可移除存储在快速转发NAT表1300中的第一地址和第二地址的信息。
接下来,可通过主转换处理PMT对均包括与从快速转发NAT表1300移除的条目对应的第一地址的分组进行处理(图8的S300)。在这方面,处理器1500可接收包括未转换为第二地址的第一地址的分组,并且缓冲器1600可存储包括第一地址而没有签名SGN的分组。
图23是用于描述图4的电子设备1000的示例操作的概念图。
在示例实施例中,附加网络地址转换表(例如,快速转发NAT表1300)可与主NAT表1700分开使用。当接收到分组RPK时,两个不同处理中的一个可基于与分组RPK对应的条目是否存储在快速转发NAT表1300中来执行。
当与分组RPK对应的条目未存储在快速转发NAT表1300中时,处理器1500可参考主NAT表1700执行主转换处理PMT。处理器1500可通过主转换处理PMT为分组RPK执行网络地址转换,并且可输出经过处理的分组TPK。
当与分组RPK对应的条目存储在快速转发NAT表1300中时,快速转发管理器1200可执行快速转发预处理。在快速转发预处理中,在对分组进行处理被分配给处理器1500之前,快速转发管理器1200可预先参考快速转发NAT表1300为分组RPK执行网络地址转换。因此,快速转发管理器1200可生成包括转换的第二地址的分组RPK_F。
接下来,处理器1500可在没有附加地址转换的情况下转发分组RPK_F。处理器1500可通过快速转发处理PFF输出转发的分组RPK_F。
基于图11和图17之间的比较以及图14和图20之间的比较,可理解,快速转发预处理和快速转发处理PFF按照比主转换处理PMT更简单和更快速的方式执行。快速转发管理器1200处理网络地址转换所花费的时间可比处理器1500处理网络地址转换所花费的时间更短。快速转发处理PFF可在没有附加地址转换的情况下使用在快速转发预处理中变换的分组RPK_F。
因此,快速转发处理PFF可减少执行网络地址转换所花费的时间,并且可将分组快速地从源装置传送到目的地装置。结果,快速转发处理PFF可提高通信性能,并且可以以高通信性能对大量数据进行通信。
由于快速转发处理PFF提供更高的通信性能,所以在快速转发管理器1200执行快速转发预处理之后将分组输出到目的地装置所需的带宽可大于在处理器1500执行主转换处理PMT之后将分组输出到目的地装置所需的带宽。
图24是用于描述图4的电子设备1000的示例操作的概念图。
如上所述,可基于与接收分组关联的接口协议(例如,RmNet)来选择为主转换处理PMT分配的处理器(例如,处理器1510或处理器1520)。可基于与输出分组关联的接口协议(例如,Wi-Fi)来选择为快速转发处理PFF分配的处理器(例如,处理器1540或处理器1550)。在一些情况下,可基于快速转发处理PFF的请求来选择为快速转发处理PFF分配的处理器(例如,处理器1570)。
另外,可选择要处理对分组进行输出的处理器(例如,处理器1580),使得所选处理器不同于执行主转换处理PMT的处理器和/或执行快速转发处理PFF的处理器。因此,分配有对分组进行分组的任务的处理器可与分配有接收和输出分组的任务的处理器分离。以这种方式,例如,当一个处理器完全负责输出分组时,防止输出分组的次序可能变得乱序。
在示例实施例中,与分组关联的处理可在若干处理器上分布地执行。例如,通过主转换处理PMT将分组的第一地址转换为第二地址、对包括第二地址的分组进行处理使得分组将被转发到目的地装置、以及向发送接口电路1800提供包括第二地址的分组可在处理器1500的不同处理器上分布地分配。因此,可防止过多的负载集中在特定处理器上,并且可有效地使用处理器资源。
图25是示出与图1的网络地址转换器120或140关联的示例配置的框图。
在一些示例实施例中,图1的网络地址转换器120和/或140可实现于电子设备2000中。除了电子设备1000的组件之外,电子设备2000还可包括接收接口电路2100、快速转发管理器2200、快速转发NAT表2300、处理器分配器2400和发送接口电路2800。
接收接口电路1100、快速转发管理器1200、快速转发NAT表1300、处理器分配器1400、中央处理块CPB、主NAT表1700和发送接口电路1800可根据参照图4至图24描述的示例实施例执行主转换处理PMT和/或快速转发处理PFF,因此可输出从分组RPK1变换的分组TPK1。
接收接口电路2100、快速转发管理器2200、快速转发NAT表2300、处理器分配器2400和发送接口电路2800可与接收接口电路1100、快速转发管理器1200、快速转发NAT表1300、处理器分配器1400和发送接口电路1800基本上相同或相似地被配置和进行操作。
接收接口电路2100、快速转发管理器2200、快速转发NAT表2300、处理器分配器2400、中央处理块CPB、主NAT表1700和发送接口电路2800可根据参照图4至图24描述的示例实施例执行主转换处理PMT和/或快速转发处理PFF,因此可输出从分组RPK2变换的分组TPK2。
电子设备2000可经由接收接口电路1100和发送接口电路2800连接到第一装置。电子设备2000可从第一装置接收分组RPK1并且可将分组TPK2输出到第一装置。电子设备2000可经由接收接口电路2100和发送接口电路1800连接到第二装置。电子设备2000可从第二装置接收分组RPK2并且可将分组TPK1输出到第二装置。因此,主转换处理PMT和快速转发处理PFF可按照双向方式执行。
根据示例实施例,执行网络地址转换所花费的时间可减少,并且可将分组快速地从源装置传送至目的地装置。因此,可提高通信性能。
本文中所描述的组件、元件、模块或单元中的至少一个可被具体实现为执行上述的根据实施例的各个功能的各种数量的硬件、软件和/或固件结构。例如,这些组件、元件或单元中的至少一个可使用诸如存储器、处理器、逻辑电路、查找表等的直接电路结构,其可通过一个或更多个微处理器或其它控制设备的控制执行各个功能。另外,这些组件、元件或单元中的至少一个可专门由模块、程序或部分代码具体实现,其中,代码包含用于执行指定的逻辑功能并由一个或更多个微处理器或其它控制设备执行的一个或更多个可执行指令。另外,这些组件、元件或单元中的至少一个还可包括或由诸如执行各个功能的中央处理单元(CPU)、微处理器等的处理器实现。这些组件、元件或单元中的两个或更多个可被组合成一个单个组件、元件或单元,其执行所组合的两个或更多个组件、元件或单元的所有操作或功能。另外,这些组件、元件或单元中的至少一个的至少一部分功能可由这些组件、元件或单元中的另一个执行。此外,尽管在一些框图中未示出总线,但组件、元件或单元之间的通信可通过总线执行。上述实施例的功能方面可在一个或更多个处理器上执行的算法中实现。此外,由块或处理操作表示的组件、元件或单元可采用任何数量的用于电子配置、信号处理和/或控制、数据处理等的现有技术。
尽管上面描述了一些示例实施例,但本公开的范围不限于此,本领域普通技术人员对所附权利要求中定义的构思进行的各种修改和改进应被理解为落在本公开的范围内。

Claims (24)

1.一种电子设备,包括:
第一转换表,其被配置为存储第一地址的信息和第二地址的信息;
第二转换表,其被配置为响应于满足用于快速转发处理的条件,基于所述第一转换表存储包括第一地址的信息和第二地址的信息的条目;
至少一个处理器,其被配置为:监测各自包括第二地址的分组的业务状态,基于监测的业务状态确定是否满足所述条件,响应于满足所述条件而启用所述快速转发处理并将与所监测的分组相关联的条目添加到所述第二转换表中,并且响应于在满足所述条件之前接收到包括第一地址的第一分组,基于所述第一转换表将所述第一分组的第一地址转换为第二地址;以及
转发管理器,其被配置为响应于启用所述快速转发处理并且响应于接收到包括第一地址的第二分组并且所接收到的第二分组中包括的第一地址的信息已被存储在所述第二转换表中,基于所述第二转换表将所述第二分组的第一地址转换为第二地址,
其中,所述至少一个处理器被配置为接收包括转换后的第二地址的所述第二分组,而不针对所述第二分组进行基于所述第一转换表的从第一地址到第二地址的转换。
2.根据权利要求1所述的电子设备,还包括:
接口电路,其被配置为与目的地设备通信并且被配置为将由所述至少一个处理器处理的所述第一分组和所述第二分组输出到所述目的地设备。
3.根据权利要求2所述的电子设备,其中
响应于检测到所述目的地设备与所述接口电路连接,所述至少一个处理器还被配置为获得装置信息,所述装置信息指示所述目的地设备的内部配置和支持所述目的地设备与所述接口电路之间的通信的接口协议中的至少一个。
4.根据权利要求3所述的电子设备,其中
所述第二转换表还被配置为存储与所述目的地设备的所有装置信息或一些装置信息对应的第一地址的信息和第二地址的信息。
5.根据权利要求1所述的电子设备,其中,所述至少一个处理器还被配置为:
在满足所述条件之前输出所述包括第二地址的分组。
6.根据权利要求5所述的电子设备,其中,当输出所述包括第二地址的分组中的至少一个所需的带宽大于参考值时,满足所述条件。
7.根据权利要求1所述的电子设备,其中,所述转发管理器还被配置为生成签名,所述签名指示所述第二分组的第一地址已被转换为第二地址。
8.根据权利要求1所述的电子设备,还包括:
第一接口电路,其被配置为基于第一接口协议从源装置接收所述第一分组和所述第二分组,所述第一分组和所述第二分组均包括第一地址;以及
第二接口电路,其被配置为基于第二接口协议将所述第一分组和所述第二分组输出到目的地设备,所述第一分组和所述第二分组均包括第二地址。
9.根据权利要求8所述的电子设备,其中,基于所述第二接口协议的类型在所述至少一个处理器之中选择第一处理器,所述第一处理器被配置为将包括第二地址的所述第二分组转发到所述目的地设备。
10.一种电子设备,包括:
第一转换表,其被配置为响应于满足用于快速转发处理的第一条件,存储包括第一地址的信息和第二地址的信息的条目;
至少一个处理器,其被配置为:监测各自包括第二地址的分组的业务状态,基于监测的业务状态确定是否满足所述第一条件,并且响应于满足所述第一条件,启用所述快速转发处理并将与所监测的分组相关联的条目添加到所述第一转换表中;
转发管理器,其被配置为响应于启用所述快速转发处理并且响应于接收到包括第一地址的第一分组并且所接收到的第一分组中包括的第一地址的信息已被存储在所述第一转换表中,基于所述第一转换表将所述第一分组的第一地址转换为第二地址;
缓冲器,其被配置为存储包括第二地址的所述第一分组以及指示所述第一分组的第一地址已被转换为第二地址的签名,
其中,所述至少一个处理器还被配置为基于所述签名处理包括第二地址的所述第一分组并在不进行附加地址转换的情况下输出经过处理的第一分组。
11.根据权利要求10所述的电子设备,其中,所述至少一个处理器包括:
第一处理器,其被配置为基于所述签名处理包括第二地址的所述第一分组,以及
第二处理器,其被配置为响应于从所述第一处理器切换为所述第二处理器,将经过处理的包括第二地址的所述第一分组输出到目的地装置。
12.根据权利要求11所述的电子设备,其中
基于与输出所述第一分组关联的接口协议的类型,在所述至少一个处理器之中选择所述第一处理器。
13.根据权利要求10所述的电子设备,其中
响应于满足第二条件,从所述第一转换表中移除第一地址的信息和第二地址的信息。
14.根据权利要求13所述的电子设备,其中
所述第二条件是:与所述第一分组关联的源装置和目的地设备之间的通信会话到期。
15.根据权利要求13所述的电子设备,其中
响应于从所述第一转换表中移除第一地址的信息和第二地址的信息并且接收到包括第一地址的第二分组,所述缓冲器被配置为存储包括第一地址的所述第二分组而不存储所述签名。
16.根据权利要求15所述的电子设备,还包括:
第二转换表,其被配置为存储第一地址的信息和第二地址的信息而不管是否满足所述第一条件,其中
所述至少一个处理器被配置为响应于不满足所述第一条件,基于所述第二转换表将所述第二分组的第一地址转换为第二地址。
17.一种电子设备,包括:
至少一个处理器,其被配置为监测各自包括第二地址的分组的业务状态,基于监测的业务状态确定是否满足用于快速转发处理的条件,响应于确定满足所述条件而启用快速转发处理,并且响应于未启用快速转发处理而执行从第一分组的第一地址到第二地址的第一地址转换,并在源装置和目的地设备之间的通信中输出所述第一分组;并且
转发管理器,其被配置为响应于启用所述快速转发处理,执行从第二分组的第一地址到第二地址的第二地址转换,
其中,响应于所述转发管理器执行所述第二地址转换,所述至少一个处理器被配置为在不执行所述第一地址转换的情况下输出所述第二分组。
18.根据权利要求17所述的电子设备,其中
在所述转发管理器执行所述第二地址转换之后的将所述第二分组输出到所述目的地设备的带宽大于在所述至少一个处理器执行所述第一地址转换之后的将所述第一分组输出到所述目的地设备的带宽。
19.根据权利要求17所述的电子设备,其中
所述转发管理器被配置为在比所述至少一个处理器执行所述第一地址转换的时间段更短的时间段执行所述第二地址转换。
20.一种电子设备,包括:
处理器,其被配置为:响应于接收到均包括第一地址的第一分组,将所述第一分组中的每一个的第一地址转换为第二地址,并且响应于在接收所述第一分组时满足用于快速转发处理的条件而启用所述快速转发处理;
转发管理器,其被配置为响应于启用所述快速转发处理而将第二分组的地址从第一地址转换为所述第二地址;以及
接口电路,其被配置为与目的地设备通信,使得均包括第二地址的所述第一分组和所述第二分组被输出到所述目的地设备,其中
所述处理器接收包括转换后的第二地址的所述第二分组而不针对所述第二分组进行从第一地址到第二地址的地址转换,并且
输出所述第二分组的带宽大于输出所述第一分组的带宽。
21.根据权利要求20所述的电子设备,其中,所述处理器包括:
第一处理器,其被配置为将所述第一分组中的每一个的第一地址转换为第二地址;第二处理器,其被配置为处理所述第二分组,使得均包括第二地址的所述第二分组被转发到所述目的地装置;以及第三处理器,其被配置为向所述接口电路提供均包括第二地址的所述第一分组和所述第二分组,所述第一处理器、所述第二处理器和所述第三处理器彼此不同。
22.根据权利要求20所述的电子设备,其中
所述第一分组和所述第二分组中的每一个包括与接收和输出所述第一分组和所述第二分组关联的接口协议的类型的信息,并且所述电子设备还包括:
处理器分配器,其被配置为对指示所述接口协议的类型之一的值执行散列操作,并且被配置为基于所述散列操作的结果从所述处理器之中选择被配置为处理所述第一分组和所述第二分组中的每一个的处理器。
23.根据权利要求22所述的电子设备,其中,所述处理器分配器被配置为:
基于与接收所述第一分组关联的第一接口协议的类型来选择被配置为处理所述第一分组的第四处理器,以及
基于与输出所述第二分组关联的第二接口协议的类型来选择被配置为处理所述第二分组的第五处理器。
24.根据权利要求20所述的电子设备,其中
响应于接收到所述第二分组,所述处理器被配置为执行与转换分组的地址关联的过滤器的脱钩。
CN201911071274.9A 2018-11-05 2019-11-05 参考附加网络地址转换表提供快速分组转发的电子设备 Active CN111147611B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0134227 2018-11-05
KR1020180134227A KR102526770B1 (ko) 2018-11-05 2018-11-05 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치

Publications (2)

Publication Number Publication Date
CN111147611A CN111147611A (zh) 2020-05-12
CN111147611B true CN111147611B (zh) 2023-08-22

Family

ID=70459285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911071274.9A Active CN111147611B (zh) 2018-11-05 2019-11-05 参考附加网络地址转换表提供快速分组转发的电子设备

Country Status (3)

Country Link
US (1) US11271897B2 (zh)
KR (1) KR102526770B1 (zh)
CN (1) CN111147611B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114598633B (zh) * 2022-03-21 2022-08-26 四川省商投信息技术有限责任公司 一种大型路由信号高效率传输的控制方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651721A (zh) * 2008-08-14 2010-02-17 百度在线网络技术(北京)有限公司 网络地址转换设备类型的判断方法和系统
CN102299976A (zh) * 2010-06-28 2011-12-28 微软公司 分布式和可缩放的网络地址转换

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333250B1 (ko) * 1998-10-05 2002-05-17 가나이 쓰토무 패킷 중계 장치
KR100388091B1 (ko) 2001-01-11 2003-06-18 주식회사 엔에스텍 아이피 그룹별로 서로 다른 대역폭 서비스를 제공하는라우터 및 그 라우팅 방법
US7254639B1 (en) * 2002-05-20 2007-08-07 Cisco Technology, Inc. Methods and apparatus for directing packets among a group of processors
JP2004172932A (ja) * 2002-11-20 2004-06-17 Hitachi Ltd データ配信システム
JP2004364141A (ja) * 2003-06-06 2004-12-24 Hitachi Communication Technologies Ltd Ipアドレス変換装置およびパケット転送装置
KR100748090B1 (ko) 2005-12-07 2007-08-09 한국전자통신연구원 고속 라우터에서의 패킷 처리 장치 및 그 방법
US10033650B2 (en) 2010-06-08 2018-07-24 Brocade Communication Systems Llc Preserving quality of service across trill networks
EP2426876A1 (en) 2010-09-03 2012-03-07 Adaptive Mobile Security Ltd Dynamic network address translation system and method
EP2673927A4 (en) * 2011-02-08 2016-08-24 Sierra Wireless Inc METHOD AND DATA-TRANSFER SYSTEM BETWEEN NETWORK DEVICES
US9900799B2 (en) 2011-08-16 2018-02-20 Qualcomm Incorporated Reverse link control to reduce forward link latency
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US20150304427A1 (en) * 2014-04-22 2015-10-22 Alcatel-Lucent Canada, Inc. Efficient internet protocol security and network address translation
KR20150133509A (ko) 2014-05-20 2015-11-30 삼성전자주식회사 데이터 플로우 관리 방법 및 전자 장치
US9654389B2 (en) 2014-07-21 2017-05-16 Cisco Technology, Inc. Order-sensitive communications in packet reordering networks
CA2973991C (en) * 2015-01-14 2023-02-14 Hughes Network Systems, Llc Determining link conditions of a client lan/wan from measurement point to client devices and application servers of interest
JP2016149698A (ja) * 2015-02-13 2016-08-18 富士通株式会社 パケット通信装置およびパケット受信処理方法
US10104002B2 (en) * 2016-03-18 2018-10-16 Cisco Technology, Inc. Method and system for network address re-use in network address translation
US10454758B2 (en) * 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10237183B2 (en) 2016-10-03 2019-03-19 Guavus, Inc. Detecting tethering in networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651721A (zh) * 2008-08-14 2010-02-17 百度在线网络技术(北京)有限公司 网络地址转换设备类型的判断方法和系统
CN102299976A (zh) * 2010-06-28 2011-12-28 微软公司 分布式和可缩放的网络地址转换

Also Published As

Publication number Publication date
US11271897B2 (en) 2022-03-08
CN111147611A (zh) 2020-05-12
US20200145371A1 (en) 2020-05-07
KR102526770B1 (ko) 2023-04-28
KR20200051196A (ko) 2020-05-13

Similar Documents

Publication Publication Date Title
US20220224657A1 (en) Technologies for accelerating edge device workloads
US11010198B2 (en) Data processing system having a hardware acceleration plane and a software plane
US10296392B2 (en) Implementing a multi-component service using plural hardware acceleration components
US9672167B2 (en) Resource management for peripheral component interconnect-express domains
CN106688208B (zh) 利用机架规模架构中的池化存储器进行的网络通信
JP6846891B2 (ja) 仮想ルータクラスタ、データ転送方法および装置
US10606651B2 (en) Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit
EP3267322B1 (en) Scalable direct inter-node communication over peripheral component interconnect-express (pcie)
EP3314544A1 (en) Deep neural network partitioning on servers
JPWO2008117470A1 (ja) 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
CN111371694B (zh) 一种分流方法、装置和系统、处理设备和存储介质
Abbasi et al. A performance comparison of container networking alternatives
CN111147611B (zh) 参考附加网络地址转换表提供快速分组转发的电子设备
US11283723B2 (en) Technologies for managing single-producer and single consumer rings
US8478877B2 (en) Architecture-aware allocation of network buffers
CN104571934A (zh) 一种内存访问的方法、设备和系统
WO2014022424A1 (en) Phase-based packet prioritization
JP6036445B2 (ja) 通信システム、中継装置、通信方法、及びプログラム
CN112104565A (zh) 一种实现报文转发的方法、系统及设备
JP2015184960A (ja) 情報処理システム及び制御方法、並びにコンピュータ・プログラム
CN116938936A (zh) 负载均衡集群中的数据包处理方法、装置及设备
KR20210074196A (ko) 매니코어 시스템에서 패킷 처리 가속화 방법 및 장치

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