CN109842609B - 用于网络地址转换的通信系统和方法 - Google Patents
用于网络地址转换的通信系统和方法 Download PDFInfo
- Publication number
- CN109842609B CN109842609B CN201811425221.8A CN201811425221A CN109842609B CN 109842609 B CN109842609 B CN 109842609B CN 201811425221 A CN201811425221 A CN 201811425221A CN 109842609 B CN109842609 B CN 109842609B
- Authority
- CN
- China
- Prior art keywords
- header
- address
- packet
- memory
- address translation
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2525—Translation at a client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
一种用于网络地址转换的通信系统和方法。提供了一种被配置为执行地址转换的通信系统和通信系统的转换地址的方法。被配置为通过网络收发包的通信系统包括:调制解调器电路,被配置为将所述包调制为将被发送到网络的发送信号,或将来自网络的接收信号解调为所述包;和地址转换电路,被配置为:对所述包的网络地址进行转换,其中,地址转换电路包括:嵌入式存储器,被配置为从存储了所述包的外部存储器接收所述包的头,第一转换器,被配置为对所述头的格式进行转换,以及第二转换器,被配置为对包括在所述头中的地址进行转换。
Description
本申请要求2017年11月27日在韩国知识产权局提交的序列号为10-2017-0159685的韩国专利申请的优先权权益以及2018年10月10日在韩国知识产权局提交的序列号为10-2018-0120606韩国专利申请的优先权权益,所述两个申请的公开通过引用全部合并于此。
技术领域
本发明构思的各种示例实施例涉及通信系统,更具体地,涉及被配置为执行用于数据通信的网络地址转换的通信系统的硬件结构、通信装置、转换网络地址的方法,和/或其非暂时性计算机可读介质。
背景技术
用于数据通信的通信装置或通信系统可通过使用网络地址转换技术与具有不同地址系统的网络或通信装置进行通信。网络地址转换技术可包括客户端转换器(CLAT)和网络地址转换(NAT)。CLAT可以是将IPv4地址转换为IPv6地址或将IPv6地址转换为IPv4地址,以便主机可经由IPv6网络与IPv4主机或IPv6主机自由通信的技术。NAT可以指通过路由器或等效网络装置收发网络流量并通过路由器重写互联网协议(IP)包的传输协议的端口号以及源和目的地的IP地址的技术。当执行网络地址转换时,由于IP包被改变,因此必须更新IP头或传输协议头的校验和。
发明内容
本发明构思的各种示例实施例提供了被配置为有效地执行地址转换的通信系统、通信装置、通信系统的地址转换方法,和/或其非暂时性计算机可读介质。
根据本发明构思的至少一个示例实施例的一方面,提供了一种被配置为通过网络收发至少一个包的通信系统。所述通信系统包括:调制解调器电路,被配置为将所述至少一个包调制为将被发送到网络的发送信号,或将来自网络的接收信号解调为所述至少一个包;和地址转换电路,被配置为:对所述至少一个包的网络地址进行转换,其中,对所述至少一个包的网络地址进行转换的操作包括:从存储所述至少一个包的外部存储器接收所述至少一个包的头,并将所述至少一个包的头存储在包括在所述通信系统中的嵌入式存储器中,对所述至少一个包的头的格式进行转换,以及对包括在所述至少一个包的头中的地址进行转换。
根据本发明构思的至少一个示例实施例的另一方面,提供了一种装置,包括:存储器;通信处理器,被配置为:对通过网络接收的第一包的网络地址进行转换,并将包括转换后的网络地址的第二包存储在存储器中;以及应用处理器,被配置为:从存储器接收第二包,驱动应用程序,以及处理第二包。
根据本发明构思的至少一个示例实施例的另一方面,提供了一种包括通信功能的应用处理器。所述应用处理器包括:至少一个处理器,被配置为执行应用程序;存储器,被配置为由所述至少一个处理器访问;和地址转换电路,被配置为:对包括在从网络接收的至少一个包的第一头中的网络地址进行转换,以符合应用程序的地址系统,并将包括转换后的网络地址的第二头存储在存储器中。
根据本发明构思的至少一个示例实施例的另一方面,提供了一种通信系统的网络地址转换方法。所述方法包括:使用至少一个处理器将通过网络接收的第一互联网协议(IP)包存储在第一存储器中,第一IP包包括头和网络地址;使用所述至少一个处理器将存储在第一存储器中的第一IP包的头复制到所述至少一个处理器的内部缓冲器;使用所述至少一个处理器对包括在第一IP包中的网络地址进行转换;和使用所述至少一个处理器存储第二IP包,其中,第二IP包包括头和转换后的网络地址。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的各种示例实施例,其中:
图1是根据至少一个示例实施例的通信装置的框图;
图2是示出根据至少一个示例实施例的地址转换电路的操作的示图;
图3是根据至少一个示例实施例的互联网协议(IP)包的结构的示图;
图4A和图4B示出根据一些示例实施例的IP包的IP头;
图5示出根据至少一个示例实施例的IP包的传输控制协议(TCP)头;
图6A是根据至少一个示例实施例的地址转换电路的第一转换器的实施示例的框图;
图6B是根据至少一个示例实施例的操作图6A的第一转换器的方法的流程图;
图7A是根据至少一个示例实施例的地址转换电路的第二转换器的实施示例的框图;
图7B是根据至少一个示例实施例的操作图7A的第二转换器的方法的流程图;
图8示出了根据至少一个示例实施例的转换表;
图9A和图9B是示出根据至少一个示例实施例的第二转换器的转换IP地址的方法的示图;
图10是根据至少一个示例实施例的地址转换电路的框图;
图11是根据至少一个示例实施例的通信处理器的框图;
图12是根据至少一个示例实施例的通信装置的框图;
图13A示出了根据至少一个示例实施例的通信装置中的IP包的移动;
图13B示出了根据至少一个示例实施例的通信装置中的IP包的移动;以及
图14是根据至少一个示例实施例的应用处理器的框图。
具体实施方式
图1是根据至少一个示例实施例的通信装置10的框图。
参照图1,通信装置10可以是被配置为与至少一个其他电子装置执行数据通信的电子装置。例如,通信装置10可以是智能电话、平板个人计算机(PC)、膝上型计算机、无人机、数码相机、可穿戴计算机、物联网(IoT)装置、车辆驾驶装置、虚拟现实装置,增强现实装置和/或各种其他智能装置中的一个。此外,通信装置10可以是被配置为通过有线/无线网络与外部电子装置执行数据通信的各种电子装置中的一个。
参照图1,通信装置10可包括通信处理器100、应用处理器200和/或存储器300,但不限于此。此外,通信装置10还可包括其他硬件和/或软件组件,诸如显示模块和/或输入/输出(I/O)模块等。
应用处理器200可驱动(例如,执行)通信装置10的操作系统(OS)201和/或各种应用程序202,以控制连接到应用处理器200的多个硬件和/或软件组件,处理和计算包括多媒体数据的各种数据。在至少一个示例实施例中,应用处理器200可以由片上系统(SoC)、FPGA、多核处理器、多处理器系统等实现。
通信处理器100可以在与通过网络连接的其他电子装置通信期间收发(例如,发送和/或接收)数据。在数据收发处理中,通信处理器100可向应用处理器200发送数据并从应用处理器200接收数据。当通信装置10通过网络接收数据时,例如,当通信装置10执行数据下载操作时,通信处理器100可将接收到的数据发送到应用处理器200,并且应用处理器200可执行数据处理操作,诸如数据计算和存储操作。相反,当通信装置10通过网络发送数据时,例如,当通信装置10执行数据上传操作时,应用处理器200可将将被上传的数据发送到通信处理器110,然后通信处理器100可通过网络发送数据。例如,当通信装置10执行视频流传输操作时,通信处理器100可将接收到的数据发送到应用处理器200,并且应用处理器200可对从通信处理器100接收的数据进行处理并在屏幕上显示经过处理的数据。根据至少一个示例实施例,通信处理器100和应用处理器200可实现在单个处理器中。另外,根据一些示例实施例,通信处理器100和/或应用处理器200可实现在两个或更多个处理器中。
存储器300可存储从应用处理器200和/或通信处理器100接收的指令或数据或由应用处理器200产生的指令或数据,但不限于此。存储器300可以由易失性存储器实现,例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等。然而,本发明构思的示例实施例不限于此,并且存储器300可包括非易失性存储器,诸如闪存、磁性RAM(MRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)和/或阻抗RAM(ReRAM)等。存储器300可以指存储器芯片、和/或包括多个存储器芯片的存储器模块、和/或包括在通信装置10中的存储器装置。
如上所述,由于在通信处理器100和应用处理器200之间频繁地发送和接收数据,因此存储器300可以作为可由通信处理器100和应用处理器200访问的共享存储器进行操作。通信处理器100和应用处理器200可通过存储器300发送和接收数据。
在至少一个示例实施例中,存储器300可包括第一区域AR1、第二区域AR2和第三区域AR3等,但是不限于此,并且在其他示例实施例中,存储器300可具有更大数量的区域或更小数量的区域。在至少一个示例实施例中,第一区域AR1、第二区域AR2和第三区域AR3可以是可以在存储器芯片和/或存储器模块中物理地和/或逻辑地彼此分开的区域。在至少一个示例实施例中,第一区域AR1、第二区域AR2和第三区域AR3可以是在通信装置10中可以物理地彼此区分的存储器装置。
根据至少一个示例实施例,第一区域AR1可以是通信处理器100的专用区域,其中,通信处理器100的专用区域由通信处理器100专用。第二区域AR2可以在通信处理器100和应用处理器200之间共享。例如,第二区域AR2可以是用于通信处理器100和应用处理器200之间的处理器间通信(IPC)的共享区域。第三区域AR3可以是应用处理器200的专用区域,其中,应用处理器200的专用区域由应用处理器200专用。然而,示例实施例不限于此,并且存储器300的各个区域可以以其他配置/关系来布置。
同时,在根据至少一个示例实施例的通信装置10中,通信处理器100可包括地址转换电路120。地址转换电路120可由硬件电路或硬件电路和软件的组合来实现。地址转换电路120可确定对通过网络收发的数据的网络地址的转换是否是期望的和/或必要的。如果确定对数据的网络地址的转换是期望的和/或必要的,则地址转换电路120可基于网络地址转换技术来转换数据的网络地址。
数据可以作为一种互联网协议(IP)包被发送和/或接收,地址转换电路120可转换IP包的网络地址(例如,可对包括在IP包中的网络地址和/或与IP包相关联的网络地址进行转换)。地址转换电路120可将通过网络接收到的IP包的目的地地址转换为适用于应用程序202的地址系统的地址,和/或将将通过网络被发送的IP包的源地址转换为适用于网络的地址系统的地址。
在至少一个示例实施例中,地址转换电路120可支持作为网络地址转换技术的客户端转换器(CLAT)和网络地址转换(NAT)。CLAT可以是用于将IP包的IPv4头转换为IP包的IPv6头和/或将IPv6头转换为IPv4头,使得通信装置10可以通过基于特定互联网协议(例如,IPv6或IPv4等)的网络自由地与其他通信装置进行通信的IP头格式转换技术。NAT可以是用于将私有IP地址(和/或与私有网络、本地网络、内联网等相关联的内部IP地址)转换为公共IP地址(和/或全球IP地址,例如,可经由互联网、跨网络等访问的IP地址),或者相反地,将公共IP地址转换为私有IP地址的IP地址转换技术。可根据NAT来改变源地址和/或目的地地址的IP地址值和端口号。
例如,地址转换电路120可将具有转换后的网络地址(例如,目的地地址等)的IP包写入(和/或复制)到存储器300的第二区域AR2,但不限于此。应用处理器200可访问存储器300的第二区域AR2,并基于转换后的网络地址来处理IP包。在处理应用处理器200的IP包的操作期间,IP包可被复制到存储器300的第三区域AR3,但不限于此。
此外,根据一些示例实施例,当IP包是由应用处理器200提供的时,IP包可存储在存储器300的第二区域AR2中,并且地址转换电路120可从存储器300的第二区域AR2读取IP包,并转换IP包的网络地址。具有转换后的网络地址的IP包可存储在通信处理器100的专用存储器中,例如,存储器300的第一区域AR1,但不限于此。
如上所述,当通信处理器100将IP包发送到应用处理器200和/或从应用处理器200接收IP包时,由于基于硬件的地址转换电路120执行网络地址转换,因此应用处理器200可以不需要执行用于网络地址转换的附加操作。因此,可减少应用处理器200的负荷,并可减少IP包被写入(和/或被复制)到存储器300的次数或IP包从存储器300被读取的次数。
图2是示出根据至少一个示例实施例的地址转换电路120的操作的示图。假设从网络接收IP包,即,地址转换电路120是接收路径。
参照图2,地址转换电路120可包括第一转换器121、第二转换器122和/或本地存储器123,但不限于此。
经由网络发送和接收的IP包可包括头和有效载荷等。例如,第一IP包PK0可包括第一头HD0和第一有效载荷PL0。头可包括网络地址(在下文中,称为IP地址)和控制信息,有效载荷可包括数据。
通过网络接收的IP包PK0至IP包PKN-1可以被存储在第一存储器310中,其中N是自然数。例如,第一存储器310可以是图1的存储器300的第一区域AR1(即,通信处理器100的专用区域)等。
可读取存储在第一存储器310中的IP包PK0至IP包PKN-1的头HD,并且可将读取的头HD存储在本地存储器123中。在至少一个示例实施例中,地址转换电路120可从第一存储器310读取头HD,并可基于头HD的地址和长度信息以例如直接存储器访问(DMA)方式将头HD存储在本地存储器120中,其中,头HD的地址和长度信息是基于指示IP包PK0至IP包PKN-1在第一存储器310中被存储的位置的描述信息所获得的。
本地存储器123可由SRAM或寄存器来实现。然而,本发明构思的示例实施例不限于此,并且本地存储器123可由各种存储器来实现。本地存储器123也可被称为本地缓冲器。尽管图2示出了本地存储器123包括在地址转换电路120中的示例,但是本发明构思的示例实施例不限于此。在另一示例实施例中,本地存储器123可以是通信处理器(参照图1中的100)的嵌入式存储器,并且也可以是与地址转换电路120分离设置的存储器。
第一转换器121和第二转换器122可访问本地存储器123并对存储在本地存储器123中的头HD0至头HDN-1的IP地址进行转换。第一转换器121可作为预处理器进行操作,而第二转换器122可作为后处理器进行操作。第一转换器121可在第二转换器122之前进行操作,第二转换器122可在第一转换器121的操作完成后进行操作。
第一转换器121可改变IP包的头格式(和/或转换、产生新的头等)并改变IP包的IP版本。第一转换器121可从本地存储器123读取头HD0至头HDN-1,并确定例如对头HD0至头HDN-1中的每一个的IP版本进行改变是否是期望的和/或必要的。当改变IP版本是期望的和/或必要的时,第一转换器121可例如通过将头的格式改变为另一版本(例如,另一IP协议版本,诸如IPv4、IPv6等),来将头HD0至头HDN-1的格式转换为其他格式,并将IP版本改变为另一IP版本。头可包括各种字段(例如,多个字段),并且当头格式改变时,第一转换器121可改变头的这些字段中的至少一些字段。
在至少一个示例实施例中,第一转换器121可支持CLAT功能,并将包括在IP包的头中的互联网协议版本4(IPv4)头格式转换为互联网协议版本6(IPv6)头格式,和/或将IPv6头格式转换为IPv4头格式。改变后的头可再次存储在本地存储器123中。例如,当网络支持IPv6地址系统,并且使用通过网络接收的IP包的数据的主机(例如,图1中的应用程序202等)支持IPv4地址时,第一转换器121可将包括在IP包的头中的IPv6地址转换为IPv4地址。
第二转换器122执行IP地址转换。第二转换器122可从本地存储器123读取头,例如,头HD0至头HDN-1(或由第一转换器121改变的头),并确定对头HD0至头HDN-1中的每一个的IP地址进行转换是否是期望的和/或必要的。当对头HD0至头HDN-1中的每一个的IP地址进行转换是期望的和/或必要的时,第二转换器122可改变IP地址中的地址值(例如,指示源地址和/或目的地地址的值)和传输协议的端口号(例如,传输控制协议(TCP)或用户数据报协议(UDP)的端口号等)。
在至少一个示例实施例中,第二转换器122可支持NAT功能,并可将公共IP地址转换为私有IP地址,和/或将私有IP地址转换为公共IP地址。例如,当通信装置10执行网络共享和/或作为路由器进行操作时,第二转换器122可将通过网络接收的IP包的公共IP地址转换为私有IP地址。改变后的头可再次存储在本地存储器123中。
可通过改变第一转换器121的IP版本和/或通过改变第二转换器122的IP地址值来改变头HD0至头HDN-1,改变后的头(例如,NHD0至NHDN-1(或多个NHD))可存储在(和/或复制到)第二存储器320中。例如,第二存储器320可以是图1的存储器300的第二区域AR2(即,通用处理器100)与应用处理器200之间的共享区域。在至少一个示例实施例中,改变后的多个头NHD可以以例如DMA方式从本地存储器123被读取,并存储在第二存储器320中。同时,IP包PK0至IP包PKN-1的有效载荷(例如,PL0至PLN-1(或多个PL))可以以DMA方式从第一存储器310被读取,并被存储在第二存储器320中。因此,具有转换后的IP地址的IP包PK0a至IP包PKN-1a可存储在第二存储器320中。应用处理器200可访问第二存储器320并对具有转换后的地址的IP包PK0a至IP包PKN-1a进行处理。
尽管已经描述了假设地址转换电路120是接收路径的至少一个示例实施例,但是当地址转换电路120是传输路径时,第一转换器121和第二转换器122的操作可以与第一转换器121和第二转换器122的上述操作类似。然而,当地址转换电路120是传输路径时,由应用处理器200存储在第二存储器320中的IP包的头可从第二存储器320被读取,并可被存储在本地存储器123中,并且第一转换器121和第二转换器122可改变分别包括在头中的IP地址。在这种情况下,第二转换器122可作为预处理器进行操作。在第二转换器122的操作完成后,第一转换器121可作为后处理器进行操作。在具有转换后的地址的IP包被存储在第一存储器310中后,IP包可通过网络被发送到其他装置。
图3是根据至少一个示例实施例的IP包PK的结构的示图。
参照图3,根据至少一个示例实施例,IP包PK可包括头HD和/或有效载荷PL等,但是不限于此。头HD可包括IP头H1和/或TCP头H2(或UDP头等),有效载荷PL可包括提供给应用程序的数据DT和/或由应用程序产生的数据DT。在图2中,IP包PK的IP头H1和TCP头H2可被存储在本地存储器123中。第一转换器121可改变IP头H1以改变IP版本,IP头H1和TCP头H2可被改变使得第二转换器122可转换IP地址。
图4A和图4B示出根据一些示例实施例的IP包的IP头。图4A示出IPv4包的头,图4B示出IPv6包的基础头。
参照图4A,IPv4包的头H1_IPv4(在下文中,称为IPv4头)可包括针对以下项的各个字段:版本、IP头长度IHL、服务类型ToS、总长度、标识符、标志、片段偏移、生存时间、协议、头校验和、源地址、目的地地址、选项和填充,但是不限于此。源地址和目的地地址中的每一个可具有32比特的长度,但是不限于此,并且选项和填充的长度是可变的。
参照图4B,IPv6包的头H1_IPv6(在下文中,称为IPv6头)可包括针对以下项的各个字段:版本、流量分类、流标签、有效载荷长度、下一个头、跳跃限制、源地址和目标地址,但是不限于此。源地址和目的地地址中的每一个可具有128比特的长度,但是不限于此。
参照图4A和图4B,IPv4头H1_IPv4可包括12个基本字段,IPv6头H1_IPv6可包括8个基本字段,但是不限于此。然而,IPv6包除了可包括基本头(即,IPv6头H1_IPv6)之外,还可包括扩展头。在IPv6头H1_IPv6中,下一个头字段可指下一个头的类型等。可在下一个头中指示的头可以是IPv6扩展头或TCP(或UDP等)头,其中,TCP头是上层头。当不使用扩展头时,TCP(或UDP等)头可位于下一个头中。
IPv4头H1_IPv4和IPv6头H1_IPv6可同样包括针对版本、源地址和目的地地址等的字段。然而,如上所述,IPv6头H1_IPv6的源地址和目的地地址中的每一个的长度(即,128比特)可以是IPv4头H1_IPv4的源地址和目的地地址中的每一个的长度(即,32比特)的4倍。
当IPv4头H1_IPv4被转换为IPv6头H1_IPv6时,包括在IPv4头H1_IPv4中的针对IP头长度IHL、标识符、标志、片段偏移、头校验和、选项和填充等的字段可以被删除,针对流标签的字段可以被添加。相反地,当IPv6头H1_IPv6被转换为IPv4头H1_IPv4时,针对流标签的字段可以被删除,针对IP头长度IHL、标识符、标志、片段偏移、头校验和、选项和填充等的字段可以被添加。IPv4头H1_IPv4的针对服务类型ToS、总长度、协议、生存时间的字段以及IPv6头H1_IPv6的针对流量分类、有效载荷长度、下一个头和跳跃限制的字段可以相互转换。
参照图2描述的地址转换电路120的第一转换器121可将IPv4头H1_IPv4转换为IPv6头H1_IPv6,或可将IPv6头H1_IPv6转换为IPv4头H1_IPv4。
图5示出根据至少一个示例实施例的IP包的TCP头。
参照图5,TCP头H2_TCP可包括针对以下项的各个字段:源端口、目的地端口、序列号、确认号、数据偏移、保留字段‘保留’、6比特标志、窗口大小、TCP校验和、紧急指针、选项和/或填充等。类似于TCP头H2_TCP,作为传输协议的UDP头可包括针对源端口、目的地端口、UDP长度和/或UDP校验和等的各个字段。
参照图2描述的地址转换电路120的第二转换器122可改变图4A和图4B的IP头(例如,IPv4头H1_IPv4或IPv6头H1_IPv6)的源地址值和/或目的地地址值以及TCP头H2_TCP(或UDP头等)的源端口和/或目的地端口,并将私有IP地址转换为公共IP地址,和/或相反地将公共IP地址转换为私有IP地址。
图6A是根据至少一个示例实施例的地址转换电路的第一转换器121的实施示例的框图,图6B是根据至少一个示例实施例的操作图6A的第一转换器121的方法的流程图。将描述第一转换器121将IPv6头转换为IPv4头的情况作为示例。
参照6A,第一转换器121可包括第一过滤器11、IP转换器12和/或第一IP头校验和计算器13等。在至少一个示例实施例中,第一转换器121的第一过滤器11、IP转换器12和/或IP头校验和计算器13可以由硬件逻辑电路实现,但不限于此。
参照图6A和图6B,第一转换器121可读取存储在本地存储器123中的头HD(S110)。第一转换器121可以顺序地读取头HD0至头HDN-1。如上面参照图3所描述的,头HD可包括IP头H1和TCP头H2。在操作S110中,第一转换器121可从本地存储器123读取IP头H1。第一转换器121可对读取的头HD执行头格式转换。
第一过滤器11可分析读取的头HD,并确定IP版本转换是否是期望的和/或必要的(S120)。第一过滤器11可基于期望的和/或预定的过滤器组(例如,期望的和/或预设的字段)确定头HD的IP版本,并确定对头HD的头格式进行改变是否是期望的和/或必要的。例如,第一过滤器11可确认头HD的版本字段并确定头HD是IPv6头。第一过滤器11可基于不同的期望的和/或预设的字段(例如,流量分类和/或目的地地址等)确定是否要将IPv6头转换为IPv4头。例如,如果基于目的地地址确定了IP包被提供给被配置为支持IPv4的应用,则第一过滤器11可确定对头HD的头格式进行转换是期望的和/或必要的。
如果第一过滤器11确定IP版本转换是期望的和/或必要的,则IP转换器12可改变头HD的IP头格式(S130)。为了改变IP头格式,IP转换器12可选择将要改变的字段并改变所选择的字段。IP转换器12可基于诸如无状态互联网协议/互联网控制消息协议(IP/ICMP)转换(SSIT)、网络地址转换-协议转换(NAT-PT)和/或堆栈中的块(BIS)等的方法来执行IP头格式转换。
随后,IP头校验和计算器13可更新IP头校验和(S140)。在操作S130中,由于IP头格式被改变,因此第一IP头校验和计算器13可基于具有改变后的格式的IP头H1来计算IP头校验和,并基于计算出的值来更新IP头校验和。
例如,当IPv6头被转换为IPv4头时,第一IP头校验和计算器13可计算IP头校验和,并将计算出的值提供给IPv4头的头校验和字段。因此,可更新IP头校验和,并可完成IP头格式转换,即,IP版本转换。
第一转换器121可将具有改变后的头格式的头NHD存储在本地存储器123中(S150)。例如,第一转换器121可将从IPv6头转换为IPv4头的头NHD存储在本地存储器123中。
在操作S120中,如果第一过滤器11确定IP版本转换是不期望的和/或不必要的,则可结束对头HD的头格式转换。可对存储在本地存储器123中的头HD0至头HDN-1顺序执行包括上述操作S110至操作S150的头格式转换。尽管图6A示出了本地存储器123的IPv6头HD0至IPv6头HDN-1被转换为新的IPv4头HD0至IPv4头HDN-1的情况,但是本发明构思的示例实施例不限于此。如上所述,头HD0至头HDN-1可以按需要被转换,并且头HD0至头HDN-1中的一些可以不被转换。
存储在本地存储器123中的转换后的头HD0至头HDN-1可以以DMA方式被复制到第一存储器(参照图2中的310)和/或第二存储器(参照图2中的320)。此外,可由第二转换器(参照图2中的122)对转换后的头HD0至头HDN-1执行IP地址转换。
图7A是根据至少一个示例实施例的地址转换电路的第二转换器122的实施示例的框图,图7B是根据至少一个示例实施例的操作图7A的第二转换器122的方法的流程图。
参照图7A,第二转换器122可包括第二过滤器21、地址转换器22、IP头校验和计算器23和/或TCP头校验和计算器24等,但不限于此。可使用硬件逻辑电路实现第二过滤器21、地址转换器22、IP头校验和计算器23和TCP头校验和计算器24,但不限于此。在至少一个示例实施例中,可由一个头校验和计算电路实现IP头校验和计算器23和TCP头校验和计算器24,但不限于此。
参照图7A和图7B,第二转换器122可读取存储在本地存储器123中的头HD(S210)。第二转换器122可顺序地读取头HD0至头HDN-1。如上参照图3所描述的,头HD可包括IP头H1和TCP头H2等。在操作S210中,第二转换器122可从本地存储器123读取IP头H1和TCP头H2等。
第二转换器122可执行下文描述的操作并对包括在读取的头HD中的IP地址进行转换。第二转换器122可将通过网络接收的IP包的公共IP地址转换为私有IP地址,和/或将将要通过网络被发送的IP包(即,由AP提供的IP包)的私有IP地址转换为用于网络的公共IP地址。
第二过滤器21可分析读取的头HD,并确定IP地址转换(例如,地址值的转换等)是否是期望的和/或必要的(S220)。第二过滤器21可基于期望的和/或预定的过滤器组来对头HD进行过滤,并确定IP地址转换是否是期望的和/或必要的。在至少一个示例实施例中,IP地址的源地址和/或目的地地址可被包括在过滤器组中。例如,当将要通过网络被发送的IP包的源地址没有被包括在用于网络的公共IP地址区域(例如,IP地址范围和/或子网掩码)中时,第二过滤器21可确定IP地址转换是期望的和/或必要的。在另一示例中,当通过网络接收的IP包的目的地地址没有被包括在由图1的通信装置10提供的本地IP地址区域(例如,IP地址范围和/或子网掩码)中时,第二过滤器21可确定IP地址转换是期望的和/或必要的。
如果第二过滤器21确定IP地址转换是期望的和/或必要的,则地址转换器22可改变包括在头HD中的地址值和端口号(S230)。如参照图4A至图5所描述的,地址值可被包括在针对IP头(例如,图4A的IPv4头H1_IPv4或图4B的IPv6头H1_IPv6)的源地址和/或目的地地址的字段中,端口号可包括在针对TCP头或UDP头(例如,图5的TCP头H2_TCP)的源端口或目的地端口的字段中。地址转换器22可改变源地址值和源端口号,和/或改变目的地地址值和目的地端口号。因此,地址转换器22可将公共IP地址转换为私有IP地址,和/或将私有IP地址转换为公共IP地址。地址转换器22可将IP地址和转换后的IP地址之间的关系(即,私有IP地址和公共IP地址之间的关系)存储在转换表中。
图8示出了根据至少一个示例实施例的转换表TT。
参照图8,转换表TT可包括可彼此对应的公共IP地址PUA和私有IP地址PRA。例如,具有地址值‘10.0.0.2’和端口号‘3327’的私有IP地址PRA可与具有地址值‘135.26.32.7’和端口号‘5003’的公共IP地址PUA对应。具有地址值‘10.0.0.3’和端口号‘3327’的私有IP地址PRA可与具有地址值‘135.26.32.7’和端口号‘5002’的公共IP地址PUA对应。地址转换器22可以在IP地址转换期间产生并使用转换表TT。
回到参照图7A和图7B,IP头校验和计算器23可更新IP头校验和,TCP头校验和计算器24可更新TCP头校验和(或UPD头校验和等)(S240)。然而,当头HD是IPv6头时,可以不执行IP头校验和的更新。
在操作S230中,由于地址值被改变,因此IP头校验和计算器23可基于包括改变后的地址值的IP头来计算IP头校验和,并基于计算出的值来更新IP头校验和。此外,在操作S230中,由于端口号被改变,因此TCP头校验和计算器24可基于包括改变后的端口号的TCP头来计算TCP头校验和,并基于计算出的值来更新TCP头校验和。因此,可完成IP转换。
第二转换器122可将具有改变后的IP地址值的头NHD存储在本地存储器123中(S250)。例如,第二转换器122可再次将从公共IP地址改变为私有IP地址的IP地址值的头NHD,或从私有IP地址反向地改变为公共IP地址的IP地址值的头NHD存储在本地存储器123中。
同时,在操作S220中,如果第二过滤器21确定IP地址转换是不期望的和/或不必要的,则可结束对头HD的IP地址转换。可对存储在本地存储器123中的头HD0至头HDN-1顺序地执行(或并行执行)包括上述操作S210至操作S250的IP地址转换(即,头转换)。尽管图7A示出了本地存储器123的头HD0至头HDN-1被转换为具有转换后的IP地址的新的头HD0至头NDN-1的情况,但是本发明构思的示例实施例不限于此。如上所述,头HD0至头HDN-1可以按需要被转换,并且头HD0至头HDN-1中的一些可以不被转换。
存储在本地存储器123中的头HD0至头HDN-1可被存储在第一存储器(参照图2中的310)中和/或第二存储器(参照图2中的320)中,和/或可经由第一转换器(参照图1中的121)对存储在本地存储器123中的头HD0至头HDN-1执行头格式转换。
图9A和图9B是示出根据一些示例实施例的第二转换器的转换IP地址的方法的示图。图9A示出在发送路径中私有IP地址到公共IP地址的转换,图9B示出在接收路径中接收到的公共IP地址到私有IP地址的转换。
参照图9A,从主机接收的IP包的源IP地址S可以是具有地址值‘10.0.0.2’和端口号‘3327’的私有IP地址,目的地IP地址D可以是具有地址值‘128.119.40.186’和端口号‘80’的公共IP地址。当源IP地址S与由特定网络提供的公共IP地址区域(例如,IP地址范围和/或子网掩码)不对应时,第二转换器122(例如,第二转换器122的地址转换器(参照图7A中的22))可执行将源IP地址S转换为公共IP地址的IP地址转换操作。
第二转换器122可将源IP地址S的地址值‘10.0.0.2’和端口号‘3327’分别改变为地址值‘135.26.32.7’和端口号‘5003’,并将源IP地址S转换为公共IP地址。私有IP地址及其对应的公共IP地址可被存储在转换表TT中。具有转换后的源IP地址S’和目的地IP地址D的IP包可通过网络被发送到目的地(例如,服务器或另一电子装置等)。
参照图9B,从网络接收的IP包的源IP地址S可以是具有地址值‘128.119.40.186’和端口号‘80’的公共IP地址,并且目的地IP地址D可以是具有地址值‘135.26.32.7’和端口号‘5003’的公共IP地址。当目的地IP地址D与由本地网络提供的私有IP地址区域(例如,IP地址范围和/或子网掩码)不对应时,第二转换器122可执行将公共IP地址转换为私有IP地址的IP地址转换操作。
第二转换器122可参照转换表TT将目的地IP地址D的地址值‘135.26.32.7’和端口号‘5003’分别转换为地址值‘10.0.0.2’和端口号‘3327’,并将目的地IP地址D转换为源IP地址。具有转换后的目的地IP地址D’和源IP地址S的IP包可被发送到主机。
图10是根据至少一个示例实施例的地址转换电路120a的框图。
参照图10,地址转换电路120a可包括本地存储器123、第一转换器121a、第二转换器122a和/或头校验和计算器123a等,但不限于此。
第一转换器121a可包括第一过滤器11和/或IP转换器12等。第一转换器121a的第一过滤器11和IP转换器12的操作可以与图6A的第一过滤器11和IP转换器12的操作相同。此外,第二转换器122a可包括第二过滤器21和/或地址转换器22等。第二转换器122a的第二过滤器21和地址转换器22的操作可以与图7A的第二过滤器21和地址转换器22的操作相同。
当第一转换器121a转换IP头的格式和/或当第二转换器122a转换IP地址时,头校验和计算器123a可更新头校验和。
头校验和计算器123a可包括IP头校验和计算器31和/或TCP头校验和计算器32等。当第一转换器121a转换IP头的格式时,IP头校验和计算器31可基于IP头的转换后的格式来计算IP头校验和,并更新TCP头校验和。
此外,当第二转换器122a转换IP地址时,IP头校验和计算器31可基于包括改变后的地址值的IP头来更新IP头校验和,TCP头校验和计算器32可基于包括改变后的端口号的TCP头来计算TCP头校验和,并更新TCP头校验和。
在至少一个示例实施例中,地址转换电路120a的第一转换器121a和第二转换器122a中的每一个可以不包括头校验和计算器,但是附加头校验和计算器123a可以在第一转换器121a的头格式转换期间以及在第二转换器122a的IP地址转换期间计算头校验和,但是示例实施例不限于此。
图11是根据至少一个示例实施例的通信处理器100a的框图。
参照图11,通信处理器110a可包括至少一个处理器110、RAM 130、调制解调器150、地址转换电路120、DMA控制器140和/或存储器接口160等,但示例实施例不限于此。此外,通信处理器110a还可包括其他组件。在至少一个实施例中,通信处理器110a可由单个芯片组实现,但不限于此。通信处理器110a的组件可通过总线170发送和接收数据。
处理器110可控制通信处理器110a的全部操作,并可由中央处理器(CPU)、微处理器(MP)或数字信号处理器(DSP)等实现。在至少一个示例实施例中,处理器110可由多核处理器(例如,双核处理器或四核处理器)实现,或可以是多处理器。
RAM 130可以用作操作存储器、缓冲存储器和/或高速缓存存储器等。例如,用于控制通信处理器110a的软件或固件可被加载到RAM 130。RAM 130可由易失性存储器(诸如DRAM和SRAM等)和/或电阻存储器(诸如PRAM、MRAM、FeRAM和ReRAM等)实现。
调制解调器150可将IP包转换为适合于通过网络发送的信号,和/或将通过网络接收的信号转换为IP包。调制解调器150可对IP包编码和调制,并将IP包转换为发送信号。此外,调制解调器150可对通过网络接收的接收信号进行解调制和解码,并将接收信号转换为IP包。调制解调器150可对信号放大和滤波,并与被配置为转换信号的频率的RF芯片进行通信。RF芯片可通过天线将发送信号发送到网络和/或从网络接收接收信号。
存储器接口160可经由处理器110和/或DMA控制140的控制将数据发送到存储器300和/或从存储器300读取数据,但不限于此。
存储器300可由与通信处理器(例如,通信芯片)100a不同的装置(例如,存储器芯片或存储器模块等)来实现。然而,本发明构思的示例实施例不限于此。在至少一个示例实施例中,存储器300可以是通信处理器100a的嵌入式存储器。通过调制解调器150接收的或将要接收的IP包可被存储在存储器300中。在至少一个示例实施例中,通信处理器100a和应用处理器(参照图1中的200)可访问存储器300。存储器300可包括:通信处理器100a的专用区域、共享区域以及应用处理器200的专用区域。
DMA控制器140可支持通信处理器100a的组件之间的数据传输,并控制在没有处理器110的介入的情况下将在通信处理器100a的组件之间将直接传输的数据。在至少一个示例实施例中,DMA控制器140可将存储在存储器300中的IP包的头发送到地址转换电路120,和/或将由地址转换电路120转换的头发送到存储器300。此外,DMA控制器140可发送存储器300的多个区域(例如,通信处理器100a的专用区域、共享区域以及应用处理器200的专用区域)中的IP包的有效载荷。
地址转换电路120可对通过网络发送和接收的IP包的网络地址进行转换。参照图2和图10所描述的地址转换电路120和120a可被应用于通信处理器100a。
地址转换电路120可接收存储在存储器300中的IP包的头,并经由DMA控制器140的控制对包括在头中的网络地址进行转换。地址转换电路120可对头的格式(即,IP版本)进行转换或执行IP地址转换。
当地址转换电路120作为接收路径进行操作时,地址转换电路120可对头的格式进行转换,然后执行IP地址转换。当地址转换电路120作为发送路径进行操作时,地址转换电路120可执行IP地址转换,然后对头的格式进行转换。地址转换电路120可经由DMA控制器140的控制将转换后的头存储在存储器300的共享区域(或与应用处理器共享的存储器)中,和/或将转换后的头存储在通信处理器100a的专用区域中。例如,当地址转换电路120作为接收路径进行操作时,地址转换电路120可将转换后的头存储在存储器300的共享区域中,使得应用处理器可使用转换后的头。当地址转换电路120作为发送路径进行操作时,地址转换电路120可将转换后的头存储在通信处理器100a的专用区域中,使得由应用处理器提供的并且包括转换后的头的IP包可通过调制解调器150被发送到网络,其中,通信处理器100a的专用区域被包括在存储器300中。
如上所述,通信处理器100a的地址转换电路120可以在从网络接收的IP包被提供给应用处理器(参照图1中的200)之前,对IP包的网络地址进行转换。此外,通信处理器100a的地址转换电路120可以在由应用处理器200提供的IP包被发送到网络之前,对IP包的网络地址进行转换。
图12是根据至少一个示例实施例的通信装置10a的框图。
参照图12,通信装置10a可通过网络(例如,全球网络)20向至少一个电子装置30和/或服务器40等发送数据(例如,IP包),并从至少一个电子装置30和/或服务器40等接收数据(例如,IP包)。通信装置10a也可作为路由器进行操作。通信装置10a可通过本地网络将通过网络20接收的IP包发送到另一电子装置50。此外,通信装置10a可通过网络20将从其他电子装置50接收的IP包发送到电子装置30或服务器40。
通信装置10a可包括:通信处理器100、应用处理器200、存储器300、输入/输出(I/O)元件400和/或DMA控制器500等,但不限于此。此外,通信装置10a还可包括其他组件。通信装置10a的组件可通过总线600发送和接收数据。
I/O元件400可提供用户接口,并可包括输入单元(诸如触摸板、键盘和/或输入按钮等)和/或输出单元(诸如显示器和扬声器等)。
DMA控制器500可支持通信装置10a的组件之间的数据传输,并控制在没有应用处理器200的介入的情况下在通信装置10a的组件之间将直接传输的数据。在至少一个示例实施例中,DMA控制器500可控制在通信处理器100、应用处理器200和存储器300中将要发送的IP包。此外,DMA控制器500可将存储在存储器300中的IP包的头发送到通信处理器100的地址转换电路120,和/或将由地址转换电路120转换后的头发送到存储器300。在至少一个示例实施例中,通信处理器100和应用处理器200中的每一个都可包括DMA控制器。
通过网络20接收的IP包的网络地址可以被转换,并且包括转换后的网络地址的IP包可被存储在存储器300中。通信处理器100可以对IP包的网络地址进行转换,以符合可以由应用处理器200的应用程序202或其他电子装置50识别的地址系统。应用处理器200可从存储器300读取包括转换后的网络地址的IP包,应用程序202可对IP包进行处理。此外,其他电子装置50可通过本地网络60对包括转换后的网络地址的IP包进行处理。
此外,通信处理器100可对由应用处理器200和/或其他电子装置50提供的IP包的网络地址进行转换,以符合网络20的地址系统,并将包括转换后的网络地址的IP包发送到网络20。
在根据至少一个示例实施例的通信装置10a中,通信处理器100可对网络地址进行转换,使得应用处理器200可以不需要执行额外的网络地址转换。因此,应用处理器200的处理和/或存储器负荷可以减少,和/或可以变得更有效,并且通信装置10a的性能得到改善。
图13A示出了根据至少一个示例实施例的通信装置中的IP包的移动。图13B示出了根据比较示例的通信装置中的IP包的移动。图13A和图13B示出从网络接收的IP包在硬件区域(例如,通信处理器CP)和软件区域(例如,应用处理器AP)中的移动。
参照图13A,可通过网络接收IP包(S11),并可将接收到的IP包PK0至IP包PKN-1存储在硬件区域的第一存储器310中。
地址转换电路120可对IP包的网络地址进行转换(S12)。如参照图2至图9B所描述的,地址转换电路120可接收IP包的头并对头格式或IP地址进行转换。地址转换电路120可将包括转换后的网络地址的IP包(例如,IP包NPK0至IP包NPKN-1)复制到(或存储在)第二存储器320(例如,共享存储器)(S13)。
随后,IP包NPK0至IP包NPKN-1可由软件区域处理。驱动器203可将存储在第二存储器320中的IP包NPK0至IP包NPKN-1复制到套接字缓冲器(S14)。例如,套接字缓冲器可以是应用处理器AP专用的第三存储器330的一部分。
应用程序202可从套接字缓冲器读取IP包NPK0至IP包NPKN-1(S15)。
参照图13B,可通过网络接收IP包(S21),并可将接收到的IP包PK0至IP包PKN-1存储在硬件区域的第一存储器310a中。可将IP包PK0至IP包PKN-1复制到第二存储器320a(例如,共享存储器)(S22)。
此后,IP包PK0至IP包PKN-1可由软件区域处理。驱动器203a可将存储在第二存储器320a中的IP包PK0至IP包PKN-1复制到套接字缓冲器(S23)。例如,套接字缓冲器可以是应用处理器AP专用的第三存储器330a的一部分,但不限于此。同时,IP包PK0至IP包PKN-1的地址系统可能不符合被配置为对IP包PK0至IP包PKN-1进行处理的应用程序202的地址系统。因此,头转换器204a(例如,守护程序)可从套接字缓冲器读取IP包PK0至IP包PKN-1,和/或对IP包PK0至IP包PKN-1的网络地址进行转换(S25)。头转换器204a和/或驱动器203a可将具有转换后的网络地址的IP包NPK0至IP包NPKN-1重新复制到套接字缓冲器(S26)。随后,应用程序202a可从套接字缓冲器读取IP包NPK0至IP包NPKN-1(S27)。
当根据至少一个示例实施例的图13A的通信装置中的IP包的移动与根据比较示例的图13B的通信装置中的IP包的移动比较时,在根据至少一个示例实施例的通信装置中,基于硬件的地址转换电路120可提前执行网络地址转换,使得应用处理器AP可以不需要执行地址转换。因此,可以减少应用处理器AP的处理和/或存储器负荷。此外,可以减少IP包被复制到存储器的次数,从而提高IP包的处理速度。
图14是根据至少一个示例实施例的应用处理器200a的框图。
因为应用处理器200a中集成了调制解调器的功能,所以图14的应用处理器200a可被称为ModAP。
参照图14,应用处理器200a可由片上系统(SoC)实现,并可包括CPU 210、RAM 220、DMA控制器230、调制解调器240、地址转换电路250和/或存储器控制器260等。此外,应用处理器200a还可包括其他组件,例如,电路管理单元、显示控制器和/或传感器等。SoC的组件可通过总线270发送和接收数据。
CPU 210可控制应用处理器200a的全部操作。CPU 210可处理和/或执行存储在RAM(或ROM)220中的至少一个程序(例如,计算机可读指令等)和/或数据,并可控制应用处理器200a的组件的操作。在至少一个示例实施例中,CPU 210可由多核处理器、多个互联处理器、分布式处理系统和/或云计算处理系统等实现。多核处理器可以是包括至少两个独立核的单独的计算组件。
RAM 220可暂时地存储程序(例如,操作系统、应用的程序及其计算机可读指令等)、数据或指令。例如,存储在存储器300中的程序和/或数据可经由CPU 210的控制或启动代码被暂时存储在RAM 220中。RAM 220可由DRAM、SRAM等实现。
DMA控制器230可支持应用处理器200a的组件之间的数据传输,并可控制在没有CPU 210的介入的情况下在应用处理器200a的组件之间将直接传输的数据。
为了执行有线和/或无线通信,调制解调器240可根据有线和/或无线环境对将要被发送的数据进行调制,并恢复接收的数据。调制解调器240可与RF芯片245执行数字通信,但是不限于此。
RF芯片245可将通过天线接收的高频信号转换为低频信号,并将转换后的低频信号发送到调制解调器240。此外,RF芯片245可将从调制解调器240接收的低频信号转换为高频信号,并可通过天线将转换后的高频信号发送到无线网络。此外,RP芯片245可对信号进行放大和/或滤波。
此外,调制解调器240、地址转换器250和存储器控制器260的操作可以与图11的调制解调器150、地址转换电路120和存储器接口160的操作相同或类似。因此,将省略其重复描述。
如上所述,根据至少一个示例实施例的应用处理器200a可包括被配置为执行通信功能的一些组件(例如,调制解调器240和地址转换电路250)。在这种情况下,由于地址转换电路250提前执行网络地址转换,因此CPU 210可以不需要执行地址转换。可以减少CPU 210的负荷,并且可以减少IP包被复制到存储器300的次数,因此,可以提高IP包的处理速度。因此,可以改善应用处理器200a的性能。
虽然已经参照本发明的各种示例实施例具体示出和描述了本发明构思,但是将理解的是,在不脱离权利要求的精神和范围的情况下,可以进行形式和细节上的各种改变。
Claims (20)
1.一种被配置为通过网络收发至少一个包的通信系统,所述通信系统包括:
调制解调器电路,被配置为:将所述至少一个包调制为将被发送到网络的发送信号,或将来自网络的接收信号解调为所述至少一个包;和
地址转换电路,被配置为:对所述至少一个包的网络地址进行转换,其中,对所述至少一个包的网络地址进行转换的操作包括:
从存储所述至少一个包的外部存储器接收所述至少一个包的头,并将所述至少一个包的头存储在包括在所述通信系统中的嵌入式存储器中,
对所述至少一个包的头的格式进行转换,以及
对包括在所述至少一个包的头中的地址进行转换,
其中,响应于地址转换电路作为接收路径进行操作,地址转换电路还被配置为:将改变后的头存储在包括在所述通信系统中的共享存储器中,
其中,共享存储器被配置为在地址转换电路和外部应用处理器之间被共享,使得地址转换电路和外部应用处理器能够通过共享存储器发送和接收数据。
2.如权利要求1所述的通信系统,其中,地址转换电路包括第一转换电路和第二转换电路。
3.如权利要求1所述的通信系统,其中,地址转换电路还被配置为:将包的头从根据互联网协议IP的版本的第一格式改变为根据IP的另一版本的第二格式。
4.如权利要求1所述的通信系统,其中,地址转换电路还被配置为:将包的IP地址从公共IP地址转换为私有IP地址,或将包的IP地址从私有IP地址转换为公共IP地址。
5.如权利要求1所述的通信系统,其中,地址转换电路还被配置为:将包的有效载荷直接存储到共享存储器中而不将包的有效载荷存储到嵌入式存储器中。
6.如权利要求1所述的通信系统,其中,地址转换电路还被配置为:
基于期望的第一过滤项确定是否期望进行格式转换;
响应于期望进行格式转换,将包括在头中的多个字段中的至少一些字段改变为对应于目标IP版本;以及
基于转换后的格式更新头的IP头校验和字段。
7.如权利要求1所述的通信系统,其中,地址转换电路还被配置为:
基于期望的第二过滤项确定是否期望进行地址转换;
基于确定是否期望进行地址转换的结果,改变包括在头中的IP地址值和端口号;以及
基于改变后的IP地址值和改变后的端口号,更新头的IP头校验和字段以及传输协议头校验和字段。
8.如权利要求1所述的通信系统,其中,响应于地址转换电路作为接收路径进行操作,地址转换电路还被配置为:对所述至少一个包进行预处理,并对所述至少一个包进行后处理,
其中,响应于地址转换电路作为发送路径进行操作,地址转换电路还被配置为:对所述至少一个包进行预处理,并对所述至少一个包进行后处理。
9.一种包括通信功能的装置,包括:
存储器;
通信处理器,被配置为:对通过网络接收的第一包的网络地址进行转换,并将包括转换后的网络地址的第二包存储在存储器中;以及
应用处理器,被配置为:从存储器接收第二包,驱动应用程序,以及处理第二包,
其中,通信处理器包括地址转换电路,地址转换电路包括:
嵌入式存储器,被配置为存储第一包的头;
第一地址转换电路,被配置为:对包括在第一包的头中的互联网协议IP头的IP版本进行转换;和
第二地址转换电路,被配置为:对包括在第一包的头中的IP地址进行转换,
其中,响应于地址转换电路作为接收路径进行操作,地址转换电路还被配置为:将第二头存储在包括在存储器中的共享存储器中,
其中,共享存储器被配置为在地址转换电路和应用处理器之间被共享,使得地址转换电路和应用处理器能够通过共享存储器发送和接收数据。
10.如权利要求9所述的装置,其中,
第一包包括头和有效载荷,第一包被存储在包括在存储器中的第一专用存储器中;
通信处理器还被配置为:将第一包的头复制到嵌入式存储器,并对包括在第一包的头中的网络地址进行转换。
11.如权利要求9所述的装置,其中,第一地址转换电路还被配置为:将包括在第一包的头中的IPv4头转换为IPv6头,或者将包括在第一包的头中的IPv6头转换为IPv4头。
12.如权利要求9所述的装置,其中,第二地址转换电路还被配置为:将包括在第一包的头中的公共IP地址转换为私有IP地址。
13.如权利要求9所述的装置,其中,响应于第一地址转换电路对第一包执行IP版本转换操作,第二地址转换电路还被配置为:对第一包执行IP地址转换操作。
14.如权利要求9所述的装置,其中,应用处理器还被配置为:将存储在存储器中的第二包复制到包括在存储器中的第二专用存储器。
15.一种包括通信功能的应用处理器,所述应用处理器包括:
至少一个处理器,被配置为执行应用程序;
存储器,被配置为由所述至少一个处理器访问;和
地址转换电路,被配置为:将包括在从网络接收的至少一个包的第一头中的网络地址转换为符合应用程序的地址系统,并将包括转换后的网络地址的第二头存储在存储器中,
其中,地址转换电路包括缓冲器,所述缓冲器被配置为接收所述至少一个包的第一头并存储第一头,
地址转换电路还被配置为对第一头的格式进行转换并对包括在第一头中的地址进行转换,
其中,响应于地址转换电路作为接收路径进行操作,地址转换电路还被配置为:将第二头存储在存储器中的共享存储器中,
其中,共享存储器被配置为在地址转换电路和所述至少一个处理器之间被共享,使得地址转换电路和所述至少一个处理器能够通过共享存储器发送和接收数据。
16.如权利要求15所述的应用处理器,其中,地址转换电路还被配置为:更新第一包的IP头校验和。
17.一种通信系统的网络地址转换方法,所述方法包括:
使用至少一个处理器将通过网络接收的第一互联网协议IP包存储在第一存储器中,其中,第一IP包包括头和网络地址;
使用所述至少一个处理器将存储在第一存储器中的第一IP包的头复制到所述至少一个处理器的内部缓冲器;
使用所述至少一个处理器对包括在第一IP包中的网络地址进行转换;和
使用所述至少一个处理器存储第二IP包,其中,第二IP包包括头和转换后的网络地址,
其中,对包括在第一IP包中的网络地址进行转换的步骤包括:
将头的当前格式转换为第二格式;和
将包括在头中的当前IP地址转换为第二IP地址,
其中,响应于所述至少一个处理器作为接收路径进行操作,存储第二IP包的步骤包括:将第二IP包存储在包括在所述通信系统中的共享存储器中,
其中,共享存储器被配置为在所述至少一个处理器和外部应用处理器之间被共享,使得所述至少一个处理器和外部应用处理器能够通过共享存储器发送和接收数据。
18.如权利要求17所述的方法,其中,对头的当前格式进行转换的步骤包括:
基于第一过滤器组确定是否期望对头的当前格式进行转换;
基于确定的结果,将头的IP头的格式从根据IP的一个版本的第一格式转换为根据IP的另一版本的第二格式;以及
更新IP头的校验和。
19.如权利要求17所述的方法,其中,对包括在头中的当前IP地址进行转换的步骤包括:
基于第二过滤器组确定是否期望对当前IP地址进行转换;
基于确定的结果,改变包括在头中的IP头的地址值和包括在头中的传输协议头的端口号;以及
更新IP头的校验和以及传输协议头的校验和。
20.如权利要求17所述的方法,还包括:
使用所述至少一个处理器将第二IP包复制到套接字缓冲器;以及
使用所述至少一个处理器执行应用程序,并对第二IP包进行处理。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0159685 | 2017-11-27 | ||
KR20170159685 | 2017-11-27 | ||
KR1020180120606A KR102610823B1 (ko) | 2017-11-27 | 2018-10-10 | 네트워크 어드레스 변환을 위한 통신 시스템 및 방법 |
KR10-2018-0120606 | 2018-10-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109842609A CN109842609A (zh) | 2019-06-04 |
CN109842609B true CN109842609B (zh) | 2023-04-07 |
Family
ID=66845552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811425221.8A Active CN109842609B (zh) | 2017-11-27 | 2018-11-27 | 用于网络地址转换的通信系统和方法 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR102610823B1 (zh) |
CN (1) | CN109842609B (zh) |
TW (1) | TWI791691B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336836B (zh) * | 2019-08-06 | 2021-10-15 | 郑州信大捷安信息技术股份有限公司 | 一种网络过滤服务系统及方法 |
CN113014679B (zh) * | 2019-12-19 | 2022-11-01 | 成都鼎桥通信技术有限公司 | 通信方法、装置及系统 |
CN111614661A (zh) * | 2020-05-19 | 2020-09-01 | 展讯通信(上海)有限公司 | 一种通信装置 |
CN112165539B (zh) * | 2020-09-23 | 2022-11-04 | 浙江农林大学暨阳学院 | 一种IPv6地址转换方法 |
TWI783709B (zh) * | 2021-10-05 | 2022-11-11 | 瑞昱半導體股份有限公司 | 網路封包轉換方法 |
TWI825923B (zh) * | 2022-08-16 | 2023-12-11 | 皓德盛科技有限公司 | 用於金融交易的現場可程式化邏輯閘陣列 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509021A (zh) * | 2002-12-19 | 2004-06-30 | 华为技术有限公司 | 实现网络地址转换的方法 |
CN1529481A (zh) * | 2003-10-14 | 2004-09-15 | �й���ѧԺ�����о��� | 网络处理器内部实现分布式应用层转换网关的方法 |
WO2010052180A1 (en) * | 2008-11-10 | 2010-05-14 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for implementing generic access network functionality in a wireless communication device |
CN104885412A (zh) * | 2012-12-20 | 2015-09-02 | 英特尔公司 | 卸载联接相关的通信处理 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020101859A1 (en) * | 2000-09-12 | 2002-08-01 | Maclean Ian B. | Communicating between nodes in different wireless networks |
US7095716B1 (en) * | 2001-03-30 | 2006-08-22 | Juniper Networks, Inc. | Internet security device and method |
US6947971B1 (en) * | 2002-05-09 | 2005-09-20 | Cisco Technology, Inc. | Ethernet packet header cache |
US20050117605A1 (en) * | 2003-07-22 | 2005-06-02 | Innomedia Pte Ltd. | Network address and port translation gateway with real-time media channel management |
US7440405B2 (en) * | 2005-03-11 | 2008-10-21 | Reti Corporation | Apparatus and method for packet forwarding with quality of service and rate control |
US8265069B2 (en) * | 2005-06-23 | 2012-09-11 | Nokia Corporation | System, terminal, method, and computer program product for establishing a transport-level connection with a server located behind a network address translator and/or firewall |
TW200814679A (en) * | 2006-06-14 | 2008-03-16 | Divitas Networks Inc | Code-based echo cancellation |
JP5281912B2 (ja) * | 2009-01-29 | 2013-09-04 | 通研電気工業株式会社 | プロトコル変換装置及び遠隔監視制御システム |
US9160707B2 (en) * | 2010-10-22 | 2015-10-13 | Telefonaktiebolaget L M Ericsson (Publ) | Differentiated handling of network traffic using network address translation |
CN102255982A (zh) * | 2011-07-21 | 2011-11-23 | 电子科技大学 | 一种IPv4/IPv6转换网关以及转换方法 |
CN103024089B (zh) * | 2011-09-20 | 2016-02-17 | 中国电信股份有限公司 | 网络地址转换方法和设备 |
CN102984300B (zh) * | 2012-12-13 | 2015-11-18 | 北京邮电大学 | 一种4-6-4混合协议网络中分布式网关系统和访问方法 |
US8934489B2 (en) * | 2013-01-31 | 2015-01-13 | Gemtek Technology Co., Ltd. | Routing device and method for processing network packet thereof |
US9698825B2 (en) * | 2014-10-22 | 2017-07-04 | Quest Software Inc. | Fast update of data packet checksums |
-
2018
- 2018-10-10 KR KR1020180120606A patent/KR102610823B1/ko active IP Right Grant
- 2018-11-27 TW TW107142254A patent/TWI791691B/zh active
- 2018-11-27 CN CN201811425221.8A patent/CN109842609B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509021A (zh) * | 2002-12-19 | 2004-06-30 | 华为技术有限公司 | 实现网络地址转换的方法 |
CN1529481A (zh) * | 2003-10-14 | 2004-09-15 | �й���ѧԺ�����о��� | 网络处理器内部实现分布式应用层转换网关的方法 |
WO2010052180A1 (en) * | 2008-11-10 | 2010-05-14 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for implementing generic access network functionality in a wireless communication device |
CN104885412A (zh) * | 2012-12-20 | 2015-09-02 | 英特尔公司 | 卸载联接相关的通信处理 |
Also Published As
Publication number | Publication date |
---|---|
CN109842609A (zh) | 2019-06-04 |
TW201926975A (zh) | 2019-07-01 |
KR20190062166A (ko) | 2019-06-05 |
KR102610823B1 (ko) | 2023-12-07 |
TWI791691B (zh) | 2023-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109842609B (zh) | 用于网络地址转换的通信系统和方法 | |
JP4651692B2 (ja) | ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー | |
JP4722157B2 (ja) | ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー | |
JP4840943B2 (ja) | ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー | |
US11483280B2 (en) | Method of translating IP packet for tethering service, communication system and electronic device for performing the same | |
WO2017000593A1 (zh) | 报文处理方法及装置 | |
US9912637B2 (en) | Use of packet header extension for layer-3 direct server return | |
US10516544B2 (en) | Extranet connectivity in LISP networks | |
US11489810B2 (en) | Intelligently routing a response packet along a same connection as a request packet | |
CN114501593B (zh) | 网络切片接入方法、装置、系统和存储介质 | |
JP2017534989A (ja) | ファイルアクセス方法、システム、及びホスト | |
CN106507414B (zh) | 报文转发方法及装置 | |
CN113132202A (zh) | 一种报文传输方法及相关设备 | |
CN111711705B (zh) | 基于代理节点作双向nat实现网络连接的方法和装置 | |
US10749842B2 (en) | Communication system and method for network address translation | |
US10560421B2 (en) | Stateful LISP subscription for overlapping subnetworks | |
WO2016175872A1 (en) | Network based service discovery via unicast messages | |
US8849949B1 (en) | Providing proxy service during access switch control plane software upgrade | |
US9535851B2 (en) | Transactional memory that performs a programmable address translation if a DAT bit in a transactional memory write command is set | |
US20170149663A1 (en) | Control device, communication system, control method, and non-transitory recording medium | |
US10250559B2 (en) | Reversible mapping of network addresses in multiple network environments | |
US20230198846A1 (en) | System and method for distributed management of communication devices | |
CN113726723B (zh) | 基于udp的数据传输方法、装置及设备 | |
WO2024001549A1 (zh) | 地址配置方法和电子设备 | |
TWI663856B (zh) | 網路資源分配伺服器及網路資源分配方法 |
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 |