CN1606860A - 控制分组片段的地址翻译的方法和装置 - Google Patents
控制分组片段的地址翻译的方法和装置 Download PDFInfo
- Publication number
- CN1606860A CN1606860A CNA028222245A CN02822224A CN1606860A CN 1606860 A CN1606860 A CN 1606860A CN A028222245 A CNA028222245 A CN A028222245A CN 02822224 A CN02822224 A CN 02822224A CN 1606860 A CN1606860 A CN 1606860A
- Authority
- CN
- China
- Prior art keywords
- packet
- fragments
- grouping
- address
- deviant
- 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.)
- Pending
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/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
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
本发明描述了一种方法和装置的实施例,所述方法和装置通过管理伴有地址翻译的分组分段,改善了网络性能。在所述分组的所有分组片段都被接收(502)后,这些分组片段被翻译(504)并被转发(506)。
Description
背景技术
分组分段(fragmentation)涉及一种例如在希望提供更高级别的服务时,减少将信息传送通过网络的延迟时间的通信技术。然而,传统的分组分段技术可能不能如所期望的那样有效地利用分组分段。特别是当分组分段与地址翻译结合起来使用时,这种情况格外明显。因此,需要改进网络中分组分段的实施。
附图说明
在权利要求部分具体指出了视为本发明实施例的主题,并对此提出了明确的权利要求。然而,结合附图,参考下列详细的描述,将对本发明的实施例,包括其组成和操作方法,连同其目的、特点和优点有更好的理解。
图1是适于实现本发明一个实施例的系统的框图。
图2是根据本发明一个实施例的网络的框图。
图3是根据本发明一个实施例的节点的框图。
图4是根据本发明一个实施例的分组分段管理器(PFM)的框图。
图5是根据本发明一个实施例,由PFM执行的处理逻辑的第一方框流程图。
图6是根据本发明一个实施例的用于PFM的处理逻辑的第二方框流程图。
图7是根据本发明一个实施例的用于PFM的处理逻辑的第三方框流程图。
具体实施方式
在下面的详细描述中,阐释了许多具体的细节,从而提供对本发明的实施例的充分理解。然而,本领域的技术人员将会理解,没有这些具体的细节也可以实现本发明的实施例。此外,没有详细描述公知的方法、过程、组件和电路,以免模糊本发明的上述实施例。
本发明的各实施例可以改善通信网络例如分组交换网络的性能。本发明的一个实施例通过改进对分组分段的管理,从而改善了分组交换网络的性能。这里所说的分组分段指的是将一个信息分组拆分成一系列分组片段(fragment),这些分组片段一般小于原始分组。
更具体地说,本发明的一个实施例结合地址翻译来对分组分段进行管理。这里所说的地址翻译指的是将大量地址转换成更少的或单个的地址,以及相反的过程。结果,就可以提高网络的整体容量和性能。由此,用户可以受益于对网络应用和服务更快的响应时间。
分组交换一直都是进行语音和数据通信的有效技术。这里所说的分组交换指的是以较短的分组形式在网络上传送信息。这里所说的分组指的是有限长度的一组信息,其长度一般用比特或字节来表示。分组长度的一个例子可以是1000字节。网络通常包括多个通过通信介质互连的节点。这些节点能够使用一个或多个协议,通过通信介质将信息传送到其它节点。这里所说的节点可以包括能够传送信息的任何设备,例如计算机、服务器、交换机、路由器、桥、网关等等。通信介质可以是能够运载信息信号的任何介质,例如双绞线、同轴电缆、光纤、无线电频率等等。协议可以包括一组指令,通过这组指令在通信介质上传送信息信号。例如,协议可能是分组交换协议,例如1981年9月通过的Internet Engineering TaskForce(IETF)标准7,Request For Comment(RFC)793所定义的传输控制协议(TCP)(“TCP规范”),以及1981年9月通过的IETF标准5,RFC791所定义的因特网协议(IP)(“IP规范”),这两种规范(在此合称为“TCP/IP规范”)都可以从“
www.ietf.org”得到。
分组交换网络可以包括源节点、目的地节点和大量中间节点。源节点可包括发起用于传递到目的地节点的一组信息的节点。信息可包括能够表示为信号的任何数据,所述信号例如是电信号、光信号、声信号等等。这里所说的信息的例子可包括从语音会话、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、图形、图像、视频、文本等而来的数据。目的地节点可包括接收信息的节点。中间节点可包括将信息从源节点传送到目的地节点的节点。
在操作中,源节点可以以分组的形式,通过一个或多个中间节点将信息发送到目的地节点。源节点将一组信息拆分成一系列分组。每个分组可以包括所述信息的一部分再加上一些控制信息。所述控制信息可以帮助网络中的中间节点将每个分组路由到目的地节点。源节点通过网络发送分组,其中中间节点接收分组,暂时存储它们,并将它们传送到下一中间节点。这一过程连续发生,直到目的地节点最终接收到整个系列的分组,并使用这些分组再现来自源节点的信息为止。
然而,如果分组具有与之相关的较高优先级,那么通过中间节点传送分组将变得复杂起来。可以向信息指定不同级别的优先级。当具有较高优先级的信息通过网络时,它可以受到优先处置。较高优先级信息的例子可以包括时间敏感性信息,例如从语音消息而来的信息。如果携带语音信息的分组在网络中被延迟,那么,接收方可能感觉到超出正常电话交谈的自然停顿和节奏的空白时段。另一方面,对网络中的时间延迟不那么敏感的信息,例如电子邮件消息或语音消息,通常具有较低的优先级。如果携带电子邮件消息的分组被延迟,那么除非延迟过长,否则预期的接收者一般都不会注意到这个延迟。因此,中间节点通常能够确定分组的优先级级别,并相应地处理它。由于低优先级的分组不需要优先处置,所以对这些分组的传输可能相对简单。但是,传输高优先级的分组可能就要采用额外的技术来减小网络中的延迟。分组分段就是一种用于减小高优先级分组的网络延迟的技术。
在本发明的一个实施例中,分组分段指的是将一个信息分组拆分成一系列分组片段。每个分组片段一般具有小于原始分组的长度。这里所说的长度指的是组成所述分组或分组片段的信息的比特数或字节数。例如,一个原始分组的长度可能是1500字节,而分组片段的长度可能是100字节。每个分组片段可包含来自原始分组的信息的一部分再加上片段头部。这里所说的片段头部包括代表控制信息的一个或多个比特,所述控制信息可以帮助另一个节点将分组片段重新组装成原始分组。
分组分段是一种用于减小高优先级分组的网络延迟的技术。更具体地说,分组片段的使用允许中间节点在低优先级的分组片段之间传送具有高优先级的分组片段。例如,中间节点可接收第一和第二分组,而所述第一分组的优先级比第二分组低。第一分组例如可以包括来自电子邮件消息的信息。第二分组例如可以包括来自语音会话的信息。中间节点可在一个发送队列中存储第一和第二分组。这里所说的发送队列指的是在网络设备准备好发送之前用于存储分组的存储器。可按先入先出(FIFO)结构来建立发送队列。这里所说的FIFO指的是这样一种存储结构,其中按从最近存储到最早存储的顺序来排列分组,并且其中,按从最早存储的分组到最近存储的分组的顺序,从存储器中取出每一个分组。例如,杂货店里的队伍一般都象FIFO一样工作,其中,队伍中的第一个人就是下一个在收款处将被服务的人。因此,如果在中间节点处早于第二分组接收到了第一分组,那么中间节点可将第二分组存储在发送队列中的第一分组之后。这意味着在将第一分组完全发送出去之前,不会发送第二分组。然而,对第一分组的传输可能引入第二分组无法忍受的某种程度的延迟。换言之,传输第一分组可能占用了很长时间,以致于第二分组不能在可接受的时间范围内到达其目的地节点。使用分组分段后,中间节点就能够在发送队列中,在来自第一分组的分组片段之间插入来自第二分组的分组片段,从而将第一分组造成的延迟时间减少到可接受的程度。
以示例的方式可能更好解释上述的发送队列问题。假设第一分组的长度是1500字节。此外,假设网络设备可以通过工作在约64千比特每秒(kbps)的连接速度上的连接来发送第一分组。传输第一分组将花去大约200毫秒(ms),或者每字节约占用0.13ms。假设第二分组包括来自语音会话的信息,其最多可以忍受4ms的延迟。如果在发送队列中第二分组位于第一分组之后,那么当整个第一分组正被发送时,第二分组将被延迟200ms,这远远超过了第二分组4ms的延迟忍受程度。结果,第二分组将迟后到达目的地节点。然而,如果中间节点采用了分组分段,那么第一分组就可以被拆分成长度小于1500字节的多个分组片段。例如,可将第一分组拆分成每个长30字节的分组片段。传输来自第一分组的30字节分组片段将占用约3.99ms。因此,中间节点可以在第一分组的一个分组片段被完全发送出去之后中断第一分组的传输,从而将第二分组的传输延迟减小到4ms以下。
当与地址翻译一同使用时,分组分段可能格外有问题。一类地址翻译可能被称为网络地址翻译(NAT)。NAT使得局域网(LAN)使用一组用于内部流量的地址和另一组用于外部流量的地址。NAT设备可位于LAN与因特网交汇之处,以完成所有想要的IP地址翻译。NAT可通过隐藏内部IP地址来提供一类防火墙。NAT也可使一家公司能够使用更多的内部IP地址。由于这些IP地址仅在内部使用,所以减少了和其它公司及组织的IP地址发生冲突的可能。NAT也可允许一家公司将多个网络连接合并成单个因特网连接。
然而,与地址翻译一同使用的分组分段的传统实现方案并不令人满意。地址翻译可能需要来自分组头部的信息,例如端口号,其可用于标识用来传送分组的连接。然而,当分组被分段时,一般只有第一片段保留着包含(多个)适当端口号的有效头部。因为也可以按照乱序,甚至倒序来发送片段,所以可能很难找到用于地址翻译的(多个)适当的端口号。对这个问题的一种可能的解决方案就是重新组装分组片段,从分组头部中取出端口号,然后再次将分组分解成多个分组片段,以通过指定的端口号传送。然而,这种组装/分解式的分段处理可能加重处理器和存储器的工作负担,从而可能影响网络设备例如路由器的分组转发性能。那么,减少在通过网络设备转发分组之前执行分段处理的需要,按照这种方式来管理分组分段,本发明的实施例就可以减少以上问题和其它一些问题,下面将更具体地来描述这些实施例。
值得注意的是,说明书中提及的“一个实施例”或“实施例”在上下文中都意味着与该实施例有关的某一具体的特点、结构或特性包括在本发明至少一个实施例中。说明书中不同地方出现的“在一个实施例中”并一定指的是同一个实施例。
详细地参考附图,在通篇中都用相同的标号来表示相同的部件,在图1中示出了适于实现本发明一个实施例的系统。图1是系统100的框图,其包括通过连接104与网络106相连的源节点102。网络设备例如路由器110通过连接108与网络106相连。路由器110与LAN 112相连。LAN112包括节点1、2和N,分别指定为节点114、116和118。路由器110表示可执行地址翻译(例如NAT)的任何网络设备。虽然图1示出了有限数量的网络节点,但是可以理解,在系统100中可以使用任意数量的网络节点,并且仍然落入本发明的范围内。此外,这里所说的术语“连接”和“互连”及其变换用语可以指物理连接和/或逻辑连接。
图2是根据本发明一个实施例的网络的框图。图2图示了可代表网络106的网络200。网络200包括中间节点202,其通过连接204与中间节点206相连。中间节点202例如可以从源节点例如源节点102接收信号。中间节点206可以向目的地节点例如网络节点114、116或118发送信号。虽然在图2中只示出了两个中间节点,但是可以理解,在网络200中可以使用任意数量的中间节点,并仍落入本发明的范围内。
在本发明的一个实施例中,中间节点可以执行分组分段。中间节点可以根据任何常见的分组分段协议执行分组分段。例如,可以根据以下协议来进行分组分段:1999年9月公布的IETF建议标准“The Multi-ClassExtension To Multi-Link PPP”,RFC 2686,可从“
www.ietf.org”得到(“MCML规范”);在1997年12月通过,由FRF标准12定义的“Frame Relay Fragmentation Implementation Agreement”,可从“
www.frforum.com”得到(“FRF.12规范”);和IP规范。虽然本发明的实施例可以使用IP规范、MCML规范或FRF.12规范中所定义的分组分段协议,但是可以理解,可以使用任何分组分段协议,并仍落入本发明的范围内。
图3是根据本发明一个实施例的节点的框图。图3中示出的节点300可以代表一个NAT设备,例如路由器110。NAT设备可以根据以下标准来执行NAT,例如2001年1月公布的、由RFC 3022定义的名称为“Traditional IP Network Address Translator”的信息规范(“NAT规范”),根据这里所阐述的原则对其进行修改。
节点300可以包括计算机平台。在本发明的这个实施例中,节点300包括处理器302、输入/输出(I/O)适配器304、操作员接口306、存储器3l0、监视模块318和调度模块320。存储器310可以存储计算机程序指令和数据。处理器302可以执行存储在存储器310中的程序指令,并处理其中的数据。I/O适配器304可以与其它设备通信,并通过连接324将数据传入及传出中间节点300。操作员接口306可在用户和OS 316之间提供接口。操作员接口306可在用户和OS 316之间传送命令,并向用户提供状态信息。所有这些元件都通过总线308互连,其允许数据在各个元件之间相互传递。I/O适配器304可以代表一个或多个I/O适配器或者可连接到局域网或广域网例如网络200上的网络接口。因此,连接324可以表示到网络的连接或者到其它设备的直接连接。可以理解,节点300可以具有例如I/O适配器304和连接324那样的任意数量的I/O适配器和连接,并仍落入本发明的范围内。
处理器302可以是能够提供实现本发明的实施例所需的速度和功能的任何类型的处理器。例如,处理器302可以是Intel公司、Motorola、Compaq、AMD公司和Sun微系统公司制造的处理器系列中的一个。
存储器310可包括能够存储适于由处理器执行的指令的任何介质。这样一些介质的例子包括但不限于只读存储器(ROM)、随机访问存储器(RAM)、可编程ROM、可擦除可编程ROM、电可擦除可编程ROM、动态RAM、磁盘(例如,软盘和硬盘)、光盘(例如CD-ROM)和可存储数字信息的任何其它设备。在一个实施例中,可用压缩和/或加密格式将指令存储在介质上。这里所使用的短语“适于由处理器执行的”意在涵盖以压缩和/或加密格式存储的指令、以及在被处理器执行前由安装程序编译或安装的指令。此外,节点300可以通过其它I/O控制器包含各种组合的机器可读存储设备,这些存储设备可被处理器302访问,并能够存储计算机程序指令和数据的组合。
在本发明的一个实施例中,存储器310包括操作系统316、程序分区312和数据分区314。程序分区312可存储用于实现这里所述各个节点的功能的程序指令,并允许处理器302执行这些程序指令,所述节点例如是源节点102、中间节点202和206以及路由器110。数据分区314可存储在执行程序指令期间所要使用的数据。
I/O适配器304可以是网络接口,其包括适于使用一组预期的通信协议、服务和操作过程来控制网络设备之间的通信信号的任何技术。在本发明的一个实施例中,I/O适配器304根据TCP/IP规范进行操作。在本发明的另一个实施例中,I/O适配器304根据1994年7月通过的、由IETF标准51,RFC 1661定义的Point-To-Point协议(PPP)进行操作,所述协议可从“
www.ietf.org”得到。在本发明的另一个实施例中,I/O适配器304可以根据各种帧中继标准进行操作,例如由Frame Relay Forum(FRF)标准11定义的“Voice Over Frame Relay Implementation Agreement”,1997年5月通过(1999年3月增补了附件J)可从“
www.frforum.org”得到(“FRF.11规范”)。在本发明的另一个实施例中,I/O适配器304可以根据各种VOIP标准进行操作,例如1998年2月采纳的InternationalTelecommunications Union Telecommunications(ITU-T)RecommendationH.323,可从“
www.itu.int”得到(“H.323规范”)。在本发明的另一个实施例中,I/O适配器304可以根据1996年1月公布的,由IETF建议标准RFC 1889定义的“Real Time Protocol(RTP):A Transport Protocol ForReal Time Applications”(“RTP规范”)进行操作,所述协议可从“
www.ietf.org”得到。在本发明的另一个实施例中,I/O适配器304可以1999年3月公布的,由IETF建议标准RFC 2543定义的“SIP:SessionInitiation Protocol”(“SIP规范”)进行操作,所述协议可从“
www.ietf.org”得到。这些只是例子而已,在替换的实施例中还可以使用其它的协议。
I/O适配器304也包括连接器,用于将I/O适配器304与适合的通信介质连接起来。本领域的技术人员将会理解,I/O适配器304可以通过任何适合的通信介质来接收信息信号,所述通信介质例如是双绞线、同轴电缆、光纤、无线电频率等等。
图4是根据本发明一个实施例的程序分区的框图。图4中所示的程序分区可以表示程序分区312,该程序分区具有分组分段管理器(PFM)400。在这个实施例中,PFM 400可包含用于管理NAT设备例如路由器110的分组分段的程序指令。更具体地说,PFM 400可以使用四组程序指令,这里分别称为收集模块402、验证模块404、翻译模块406和通信模块408。当然,本发明的范围并不限于特定的这些指令组。
参考图5-7和相应的例子来进一步描述系统100、200和300,以及模块400、402、404、406和408的操作。虽然这里给出的图5-7可包括特定的处理逻辑,但是可以理解,该处理逻辑仅仅提供了如何实现这里所描述的整体功能的例子。此外,在给定的处理逻辑中的每个操作都不一定要按给出的顺序来执行,除非另外指出。
图5是根据本发明的一个实施例,由分组分段管理器(PFM)执行的处理逻辑的第一流程框图。处理逻辑500所示出的方法为地址翻译管理分组分段。在框502接收具有第一地址的分组的多个分组片段。在框504,不必将分组片段重新组装成所述分组,就可以将第一地址翻译成第二地址。在框506,可以使用第二地址来发送所述分组片段。
图6是根据本发明的一个实施例,由分组分段管理器(PFM)执行的处理逻辑的第二流程框图。处理逻辑600所示出的方法为地址翻译管理分组分段,更具体地说,这是一种将第一地址翻译成第二地址的方法。在框602可以识别具有分组头部的分组片段。所述分组头部例如可以含有分组标识符、翻译信息和分组长度。在框604,确定是否已经接收到所述分组的所有分组片段。在框606,从分组头部中取出翻译信息。在框608,可以使用该翻译信息将第一地址翻译成第二地址。
翻译信息可以是将一个地址翻译成另一个地址所需的任何信息。例如,许多NAT设备可以使用端口号来执行地址翻译。
在本发明的一个实施例中,每个分组片段可以包括一个分组片段头部。分组片段头部可包括例如分组标识符、尚余比特(more bit)和偏移值。可以使用分组片段头部中的“尚余比特”来确定是否已经接收到所述分组的所有分组片段。更具体地说,可对每个分组片段的分组片段头部进行评估,以确定“尚余比特”的状态。这里所说的“尚余比特”可以指标志位字段,其作为分组片段头部的一部分而包含于其中。尚余比特可指示后面是否跟随着更多的分组片段。如果一个分组片段的尚余比特被设定为表示还有更多分组片段的预定位置(例如,“1”或“0”),那么该分组片段可以和具有相同分组标识符的其它分组片段存储在一起。一般,除了最后一个分组片段之外,所有的分组片段都设置有尚余比特。这里所说的术语“分组标识符”是指用于某一分组的标识符,从该分组中生成了所述分组片段。使用所存储的每一个分组片段的偏移值来确定是否已经接收到所述分组的所有分组片段。这里所说的术语“偏移值”可包括这样一个值,其指示了分组片段的数据在原始(即,未分段的)分组中的位置。例如,在本发明的一个实施例中,偏移值可以按字节除以8后的值来指定原始分组位置。
在本发明的一个实施例中,仅使用分组片段头部的偏移值来确定是否已经接收到所述分组的所有分组片段。来自某一分组的第一分组片段的偏移值一般为0,因为它表示原始分组中的首位置。因此,可对每一分组片段进行评估,以确定该分组片段的偏移值。具有相同分组标识符并具有不同于0的偏移值的那些分组片段可由NAT设备来存储。使用所存储的分组片段的偏移值来确定是否已经接收到所述分组的所有分组片段。
图7是根据本发明的一个实施例,由分组分段管理器(PFM)执行的处理逻辑的第三流程框图。处理逻辑700所示出的方法使用所存储的分组片段的偏移值来确定是否已经接收到所述分组的所有分组片段。在框702可收集用于所存储的分组片段的偏移值。在框704可取出所述分组片段源于的那个分组的分组长度。使用该分组长度,就可以确定所述分组的所有位置是否已被收集到的偏移值填满。
更具体地说,可对偏移值进行评估,以确定在起始位置和结束位置之间是否存在任何空隙或缺失的位置。所述起始位置可由偏移值0来表示,而结束位置可由分组长度来表示。例如,如果分组长度是1500字节,那么最后的分组片段应当具有这样的适当的值,其表示原始的1500字节中最后的字节(即8比特)位置。可对收集到的偏移值进行评估,以确定所存储的分组片段的偏移值是否代表了原始分组的所有位置。
由于资源限制,可设置终止条件来防止分组片段的额外存储或收集。
例如,上限可以设置成根据存储器或处理限制所能收集的分组片段的数量。也可以设置一个定时器来释放(release或free)已存在一定时间、但没有收集到它的所有对等分组片段的那些片段。在本发明的一个实施例中,在接收到某一分组的所有分组片段之前就可能检测到终止条件。可设定根据某些终止条件做出某些动作,例如如果在预定的时间段内没有收集到所有的分组片段,则释放一些分组片段。
使用以下的例子可对系统100、200和300,以及模块400、402、404、406和408的操作做进一步的描述。假设源节点正通过中间节点202向作为LAN 112一部分的目的地节点例如节点114发送分组。中间节点202接收分组,实施分组分段以减少通过网络106的延迟时间。
根据IP规范来执行分组分段。所述分组被拆分为若干分组片段,第一分组片段具有带端口号的分组头部,所述端口号表示该分组的目的地地址。剩余的分组片段都包括分组片段头部,其包括分组标识符22、尚余比特和偏移值,所述尚余比特为1,表示后面还有更多的比特,而所述偏移值表示所述分组片段所运送的数据在原始分组中的位置。
通过路由器110将所述分组片段发送到LAN 112。路由器110根据NAT规范执行NAT。路由器110包括分组分段管理器(PFM),例如PFM 400。PFM 400的收集模块402从中间节点202接收分组片段。收集模块402可以执行对分组片段的某些管理功能,例如从一系列分组片段中的第一分组片段中取出分组长度,并取出每个分组片段的分组标识符、尚余比特和偏移值。收集模块402也可以管理多个队列,其中每个队列代表由分组标识符标识的特定分组的分组片段。所述队列例如可由分区存储器按预定的方式来管理,其中每个部分代表了一个分组的分组片段。例如,还可以通过在系统存储器或共享存储器中建立分组片段的一个链接列表来管理队列。可使用任何一种用于维护分组的分组片段的逻辑或物理队列的常见技术,并仍落入本发明的范围内。这些信息的一部分可被传递到验证模块404。
验证模块404可以使用从收集模块402接收的偏移值和分组长度来验证是否已接收到某一特定分组的所有分组片段。每个偏移值可以表示原始分组的起始位置和结束位置之间的一个位置。结束位置例如可由分组长度来表示。例如,验证模块404可保存一张按位置段索引的验证表,并当收集模块402收集到分组片段时填写这张表。例如,可用字节除以8的值来表示位置段。一旦填写了所有的表条目,验证模块404就可以向翻译模块406发送消息,以开始NAT处理。可以使用一个定时器来确定在定时器超时之前是否存在空的表条目。如果这种情况发生,则验证模块404向通信模块408发送消息,释放所有已排队的分组片段,以供系统或网络使用。例如,可以使用IP规范所定义的普通的组装/分解分组分段处理对已排队的分组片段进行处理。
翻译模块406可从验证模块404接收验证消息并开始NAT处理。NAT处理可实现为翻译模块406的一部分,或者可由翻译模块406从路由器110的另一个部分中调用。翻译模块406可以使用来自分组头部的翻译信息来将原始的外部目的地地址翻译成新的内部目的地地址,以供例如LAN 112使用。翻译信息例如包括端口号,它是随一系列分组片段中的第一分组片段一同发送的分组头部的一部分。新的内部目的地地址可以是针对LAN 112的节点114的目的地地址。翻译模块406可以将新的内部目的地地址传递到通信模块408,并向收集模块402传送消息以将分组片段队列的起始地址发送到通信模块408。
通信模块408可以使用新的内部目的地地址和队列起始地址以开始向节点114发送分组片段。传统的NAT设备将首先把分组片段组装成原始分组,执行NAT,然后将带有新地址的原始分组分解成若干分组片段以传向节点114。形成对比的是,通信模块408只是用新的目的地地址修改每一个分组片段头部,并开始向节点114发送已排队的分组片段。
虽然如上所述已说明了本发明各个实施例的某些特点,但是本领域的技术人员将会做出很多修改、替换、改变和等同变换。因此,应当理解,所附权利要求应覆盖落入本发明实施例的精神和范围内的所有这些修改和改变。
Claims (21)
1.一种为地址翻译管理分组分段的方法,包括:
接收具有第一地址的分组的多个分组片段;
将所述第一地址翻译成第二地址,而不必将所述分组片段重新组装成所述分组;并且
使用所述第二地址发送所述分组片段。
2.如权利要求1所述的方法,其中,所述翻译包括:
识别具有分组头部的分组片段,其中所述分组头部具有分组标识符、翻译信息和分组长度;
确定是否已接收到所述分组的所有分组片段;
从所述分组头部中取出翻译信息;并且
使用所述翻译信息将所述第一地址翻译成所述第二地址。
3.如权利要求2所述的方法,其中,所述翻译信息包括端口号。
4.如权利要求2所述的方法,其中,每一个分组片段包括具有所述分组标识符、尚余比特和偏移值的分组片段头部,并且所述确定包括:
存储每一个具有所述分组标识符和被设置为预定值的所述尚余比特的分组片段;并且
使用所述偏移值来确定是否已接收到所述分组的所有分组片段。
5.如权利要求4所述的方法,其中,每一个偏移值代表所述分组片段在所述分组中的位置,并且所述的使用所述偏移值来确定是否已接收到所述分组的所有分组片段包括:
收集所述偏移值;
取出所述分组长度;并且
使用所述分组长度来确定所述分组的所有位置是否已被所述收集到的偏移值填满。
6.如权利要求2所述的方法,其中,每一个分组片段包括具有所述分组标识符、尚余比特和偏移值的分组片段头部,并且所述确定包括:
存储每一个具有所述分组标识符并且所述偏移值不等于0的分组片段;并且
使用所述偏移值来确定是否已接收到所述分组的所有分组片段。
7.如权利要求6所述的方法,其中,每一个偏移值代表所述分组片段在所述分组中的位置,并且所述的使用所述偏移值来确定是否已接收到所述分组的所有分组片段包括:
收集所述偏移值;
取出所述分组长度;并且
使用所述分组长度来确定所有位置是否已被所述收集到的偏移值填满。
8.如权利要求5所述的方法,其中,每一个偏移值以字节除以8的值来表示所述分组片段在所述分组中的位置。
9.如权利要求7所述的方法,其中,每一个偏移值以字节除以8的值来表示所述分组片段在所述分组中的位置。
10.如权利要求1所述的方法,还包括:
在接收到所述分组的所有所述分组片段之前检测到发生终止条件;并且
根据所述检测结果,释放所述分组片段。
11.一种为地址翻译管理分组分段的分组分段管理器,包括:
收集模块,用于收集并存储具有第一地址的分组的多个分组片段;
验证模块,用于验证是否已接收到所述分组的所有分组片段;和
翻译模块,用于从所述分组片段之一中取出翻译信息,并使用所述翻译信息将所述第一地址翻译成第二地址。
12.如权利要求11所述的分组分段管理器,还包括通信模块,用于将所述分组片段发送到所述第二地址。
13.一种为地址翻译设备管理分组分段的系统,包括:
源节点,用于发送具有第一地址的分组的多个分组片段;和
中间节点,用于接收所述分组片段,并将所述第一地址翻译成第二地址,而不必将所述分组片段重新组装成所述分组。
14.如权利要求13所述的系统,还包括具有所述第二地址的目的地节点,其接收所述分组片段,并将所述分组片段重新组装成所述分组。
15.一种为地址翻译设备管理分组分段的系统,包括:
适于管理分组分段的计算机平台;
所述平台还适于接收具有第一地址的分组的多个分组片段,将所述第一地址翻译成第二地址,而不必将所述分组片段重新组装成所述分组,并使用所述第二地址发送所述分组片段。
16.如权利要求15所述的系统,其中,所述平台还适于通过下述操作来执行所述翻译:识别具有分组头部的分组片段,其中所述分组头部具有分组标识符、翻译信息和分组长度;确定是否已接收到所述分组的所有分组片段;从所述分组头部中取出翻译信息;并使用所述翻译信息将所述第一地址翻译成所述第二地址。
17.如权利要求15所述的系统,其中,所述平台还适于通过收集来自每一分组片段的偏移值,取出所述分组的分组长度,并使用所述分组长度来确定所述分组的所有位置是否已被所述收集到的偏移值填满,从而使用所述偏移值来确定是否已接收到所述分组的所有分组片段。
18.一种物件,包括:
存储介质;
所述存储介质包括所存储的指令,当由处理器执行时,这些指令导致接收具有第一地址的分组的多个分组片段,将所述第一地址翻译成第二地址,而不必将所述分组片段重新组装成所述分组,并使用所述第二地址发送所述分组片段。
19.如权利要求18所述的物件,其中,所存储的指令在由处理器执行时,还通过识别具有分组头部的分组片段,其中所述分组头部具有分组标识符、翻译信息和分组长度,确定是否已接收到所述分组的所有分组片段,从所述分组头部中取出翻译信息,并使用所述翻译信息将所述第一地址翻译成所述第二地址,从而导致所述翻译。
20.如权利要求19所述的物件,其中,所存储的指令在由处理器执行时,还通过收集来自每一分组片段的偏移值,取出所述分组的分组长度,并使用所述分组长度来确定所述分组的所有位置是否已被所述收集到的偏移值填满,从而导致使用所述偏移值来确定是否已接收到所述分组的所有分组片段。
21.如权利要求18所述的物件,其中,所存储的指令在由处理器执行时,还导致:在接收到所述分组的所有所述分组片段之前检测到发生终止条件;并根据所述检测结果,释放所述分组片段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/015,959 US7298745B2 (en) | 2001-11-01 | 2001-11-01 | Method and apparatus to manage packet fragmentation with address translation |
US10/015,959 | 2001-11-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1606860A true CN1606860A (zh) | 2005-04-13 |
Family
ID=21774554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028222245A Pending CN1606860A (zh) | 2001-11-01 | 2002-10-29 | 控制分组片段的地址翻译的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7298745B2 (zh) |
EP (1) | EP1442585A1 (zh) |
CN (1) | CN1606860A (zh) |
TW (1) | TWI239169B (zh) |
WO (1) | WO2003039107A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008067738A1 (fr) * | 2006-12-04 | 2008-06-12 | Huawei Technologies Co., Ltd. | Procédé de transfert de message de fragmentation, système de communication et dispositif de tunnel |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030128701A1 (en) * | 2002-01-09 | 2003-07-10 | Nokia Corporation | Method of and apparatus for directing packet entities |
AU2002239208A1 (en) * | 2002-03-22 | 2003-10-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability |
US9088494B2 (en) * | 2002-06-26 | 2015-07-21 | Avaya Communication Israel Ltd. | Packet fragmentation prevention |
US8325717B2 (en) * | 2003-07-30 | 2012-12-04 | Foundry Networks, Llc | Method and system for IP fragmentation handling |
US7558890B1 (en) * | 2003-12-19 | 2009-07-07 | Applied Micro Circuits Corporation | Instruction set for programmable queuing |
US7606933B2 (en) * | 2004-02-11 | 2009-10-20 | Cray Canada Corporation | Shared memory and high performance communication using interconnect tunneling |
US20060013258A1 (en) * | 2004-07-13 | 2006-01-19 | International Business Machines Corporation | System, apparatus and method of improving network data traffic between interconnected high-speed switches |
US7685319B2 (en) * | 2004-09-28 | 2010-03-23 | Cray Canada Corporation | Low latency communication via memory windows |
US7633972B1 (en) * | 2005-03-01 | 2009-12-15 | Nortel Networks Limited | Dynamic packet concatenation |
CN101365154B (zh) * | 2007-08-10 | 2011-07-20 | 上海贝尔阿尔卡特股份有限公司 | 自适应、可扩展分段索引添加/检测方法及装置 |
US7715362B1 (en) | 2007-11-23 | 2010-05-11 | Juniper Networks, Inc. | Identification fragment handling |
CN101616072A (zh) * | 2008-06-26 | 2009-12-30 | 鸿富锦精密工业(深圳)有限公司 | 网络地址转换装置及其封包处理方法 |
US8433283B2 (en) | 2009-01-27 | 2013-04-30 | Ymax Communications Corp. | Computer-related devices and techniques for facilitating an emergency call via a cellular or data network using remote communication device identifying information |
JP5164953B2 (ja) * | 2009-06-17 | 2013-03-21 | アラクサラネットワークス株式会社 | インタネットワーク装置 |
JP5782698B2 (ja) * | 2009-11-20 | 2015-09-24 | ソニー株式会社 | 通信装置、プログラム、および通信方法 |
US9185073B2 (en) | 2011-10-06 | 2015-11-10 | Qualcomm Incorporated | Systems and methods for data packet processing |
US20140006644A1 (en) * | 2012-06-28 | 2014-01-02 | Lsi Corporation | Address Remapping Using Interconnect Routing Identification Bits |
US11570098B2 (en) | 2016-07-05 | 2023-01-31 | Six Impossible Things Before Breakfast Limited | Systems, apparatuses and methods for cooperating routers |
US10841222B2 (en) * | 2016-07-05 | 2020-11-17 | Ologn Technologies Ag | Systems, apparatuses and methods for network packet management |
US10859339B2 (en) | 2018-11-13 | 2020-12-08 | Qtm, Llc | Archery riser and method |
US12063583B2 (en) | 2021-04-26 | 2024-08-13 | Arrcus Inc. | Use of IP networks for routing of cellular data packets |
US11632692B2 (en) | 2021-04-26 | 2023-04-18 | Arrcus Inc. | Use of IP networks for routing of cellular data packets |
US12114250B2 (en) | 2021-04-26 | 2024-10-08 | Arrcus Inc. | Selective importing of UE addresses to VRF in 5G networks |
US11849381B2 (en) | 2021-04-26 | 2023-12-19 | Arrcus Inc. | Use of IP networks for routing of cellular data packets |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815516A (en) * | 1996-04-05 | 1998-09-29 | International Business Machines Corporation | Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation |
SE513828C2 (sv) | 1998-07-02 | 2000-11-13 | Effnet Group Ab | Brandväggsapparat och metod för att kontrollera nätverksdatapakettrafik mellan interna och externa nätverk |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6453357B1 (en) * | 1999-01-07 | 2002-09-17 | Cisco Technology, Inc. | Method and system for processing fragments and their out-of-order delivery during address translation |
US6742045B1 (en) * | 1999-07-02 | 2004-05-25 | Cisco Technology, Inc. | Handling packet fragments in a distributed network service environment |
US6650641B1 (en) * | 1999-07-02 | 2003-11-18 | Cisco Technology, Inc. | Network address translation using a forwarding agent |
US6714985B1 (en) * | 2000-04-28 | 2004-03-30 | Cisco Technology, Inc. | Method and apparatus for efficiently reassembling fragments received at an intermediate station in a computer network |
US6888838B1 (en) * | 2000-11-16 | 2005-05-03 | Tensilica, Inc. | Fast IP route lookup with configurable processor and compressed routing table |
US7760737B2 (en) * | 2000-11-30 | 2010-07-20 | Audiocodes, Inc. | Method for reordering and reassembling data packets in a network |
US7292530B2 (en) * | 2000-12-29 | 2007-11-06 | Intel Corporation | Method and apparatus to manage packet fragmentation |
US7089320B1 (en) * | 2001-06-01 | 2006-08-08 | Cisco Technology, Inc. | Apparatus and methods for combining data |
-
2001
- 2001-11-01 US US10/015,959 patent/US7298745B2/en not_active Expired - Fee Related
-
2002
- 2002-10-16 TW TW091123820A patent/TWI239169B/zh active
- 2002-10-29 CN CNA028222245A patent/CN1606860A/zh active Pending
- 2002-10-29 WO PCT/US2002/034711 patent/WO2003039107A1/en not_active Application Discontinuation
- 2002-10-29 EP EP02776364A patent/EP1442585A1/en not_active Ceased
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008067738A1 (fr) * | 2006-12-04 | 2008-06-12 | Huawei Technologies Co., Ltd. | Procédé de transfert de message de fragmentation, système de communication et dispositif de tunnel |
Also Published As
Publication number | Publication date |
---|---|
US20030081605A1 (en) | 2003-05-01 |
EP1442585A1 (en) | 2004-08-04 |
WO2003039107A1 (en) | 2003-05-08 |
TWI239169B (en) | 2005-09-01 |
US7298745B2 (en) | 2007-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1606860A (zh) | 控制分组片段的地址翻译的方法和装置 | |
KR100922654B1 (ko) | 패킷 처리용 시스템 및 방법 | |
CN1254940C (zh) | 执行网络路由选择的方法和装置 | |
US7292530B2 (en) | Method and apparatus to manage packet fragmentation | |
US6940864B2 (en) | Network access traffic sorter | |
KR100551859B1 (ko) | 패킷 처리 장치 | |
CN1631008A (zh) | 调度消息处理的方法和设备 | |
CN1586059A (zh) | 利用数字信号处理器来创建分组的方法和设备 | |
JP2005529503A (ja) | パケット・ヘッダを圧縮する方法と装置 | |
CN1518298A (zh) | 虚拟输出队列(VoQ)管理方法和装置 | |
US7035250B2 (en) | System for organizing voice channel data for network transmission and/or reception | |
US8184649B2 (en) | Method for transmitting data available in the form of data packets | |
EP2070264B1 (en) | Methods, systems, and computer program products for throttling network address translation (nat) learning traffic in a voice over ip device | |
JP3865175B2 (ja) | Ipアドレス変換装置 | |
CN1809064A (zh) | 在wcdma系统中接收ip的网络互通设备和网络互通方法 | |
CN1309230C (zh) | 电信信令消息穿越私网边界传递的系统和方法 | |
US7369548B2 (en) | Communicating information using a configurable protocol | |
Chukarin et al. | Performance evaluation of the stream control transmission protocol | |
CN1293737C (zh) | 在通讯中央处理器上实现多种协议处理的方法 | |
Krzyzanowski | Modes of connection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |