CN1838636A - 用于使数据包穿越网络地址转换装置的方法和装置 - Google Patents

用于使数据包穿越网络地址转换装置的方法和装置 Download PDF

Info

Publication number
CN1838636A
CN1838636A CNA2006100585788A CN200610058578A CN1838636A CN 1838636 A CN1838636 A CN 1838636A CN A2006100585788 A CNA2006100585788 A CN A2006100585788A CN 200610058578 A CN200610058578 A CN 200610058578A CN 1838636 A CN1838636 A CN 1838636A
Authority
CN
China
Prior art keywords
port
nat device
stun
nat
computer
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
CNA2006100585788A
Other languages
English (en)
Other versions
CN100561976C (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.)
Logitech Europe SA
Original Assignee
Logitech Europe SA
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 Logitech Europe SA filed Critical Logitech Europe SA
Publication of CN1838636A publication Critical patent/CN1838636A/zh
Application granted granted Critical
Publication of CN100561976C publication Critical patent/CN100561976C/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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/2517Translation of Internet protocol [IP] addresses using port numbers
    • 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
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • 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
    • H04L61/2578NAT traversal without involvement of the NAT server

Abstract

一种由一网络地址转换(NAT)装置后面的一内部计算机特征化所述NAT装置的方法,其包括创建复数个套接口;分别将所述复数个套接口绑定到复数个端口;将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;如果没有从所述STUN服务器接收到回应,那么确定所述NAT装置确实支持UDP数据包;且如果从所述STUN服务器中的每一个接收到一回应,那么确定所述NAT装置的一组NAT特征。

Description

用于使数据包穿越网络地址转换装置的方法和装置
技术领域
本发明涉及计算机网络中的通信,且更明确地说,本发明涉及一种使数据包穿越网络地址转换装置的系统和方法。
背景技术
由于近年来因特网的使用已在增长,所以新指配的可用因特网协议(IP)地址迅速下降。更具体地说,当前由IP第4版(IPv4)指定的指配给新的因特网用户的因特网协议(IP)地址的数目迅速下降。IPv4指定每个IP地址使用4个字节。指定16字节IP定址的较新的IP第6版(IPv6)已将实施用于因特网用途,但不期望在接下来的几年中实施。
由于IPv6不计划用于接下来的几年内,且由于可用IP地址在下降,所以已经研究出临时解决办法通过使用已开发出的有限数目的当前可用IP地址来增加可连接到因特网的计算机的数目。提供到因特网的计算机连接的一个临时解决办法包括将IP地址暂时指配到连接计算机。此解决办法包括在因特网连接期间将一IP地址指配到一计算机且在因特网连接已结束后取消指配所述IP地址。
提供到因特网的计算机连接的其它临时解决办法包括使用网络地址转换(NAT)技术。NAT技术包括将用于一个网络内的IP地址转换为另一网络内使用的不同IP地址。一个网络通常是指内部网络且通常包括局域网(LAN)、广域网(WAN)或可由公司、教育机构、政府机关或类似组织使用的类似网络。其它网络通常是指外部网络且可为LAN、WAN、因特网或其它网络类型。当前NAT技术使用三组内部IP地址,其可保留用于内部网络且不用于外部网络上。通常,NAT装置将外发数据包中的内部IP地址映射到一个或一个以上映射IP地址且不将引入数据包中的映射IP地址映射回内部IP地址中。举例来说,随着数据包离开内部网络(例如,公司LAN),数据包通过NAT装置,其将内部IP地址(例如,10.0.0.1)映射到公司的映射IP地址(例如,198.60.42.12)。
NAT装置通常还将由部网络上的内部计算机使用的内部端口映射到外部网络上使用的外部端口(有时称作映射的)。端口转换通常被称作网络端口转换(NPT)。为方便起见,本文所使用的术语NAT包括NPT。
虽然NAT经配置以允许若干内部计算机经由单映射IP地址而连接外部网络,但这些内部计算机中的一个或一个以上可能不知道其在一NAT装置“后面”(即,NAT装置通信地耦合在内部计算机与外部计算机之间)或可能不知道内部计算机前面的NAT装置的特征。如果内部计算机不知道其是否在一NAT装置后面或不知道所述内部计算机前面的NAT装置的特征,那么可能妨碍内部计算机从外部计算机接收通信(例如,数据包)。举例来说,从外部计算机发送到内部计算机的数据包可能丢弃,因为内部计算机可能不能够通知外部计算机NAT装置的特征。更具体地说,如果外部计算机使用NAT装置不接受的端口,那么外部计算机发送的数据包可能被NAT装置丢弃。即,数据包将不穿越NAT装置。如果,或者,内部计算机可将内部计算机前面的NAT装置的特征传送到外部计算机,那么外部计算机可使用所述信息来发送数据包,所述数据包具有将允许数据包由NAT装置传递到内部计算机的适当选定的IP地址和端口号。
因此,需要一种用于特征化NAT装置以使改进的数据包穿越NAT装置的系统和方法。
发明内容
本发明提供用于网络通信的计算机网络,且更明确地说,提供由网络地址转换(NAT)装置后面的内部计算机特征化所述NAT装置的系统和方法。
根据一个实施例,操作所述内部计算机的方法包括创建复数个套接口,和分别将所述复数个套接口绑定到复数个端口。复数个STUN(UDP对NAT的简单穿越)请求以UDP(用户数据报协议)数据包的形式被传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联。如果没有从STUN服务器接收到回应,那么内部计算机断定NAT装置确实支持UDP数据包,且如果从所述STUN服务器中的每一个接收到一回应,那么内部计算机断定所述NAT装置的一组NAT特征。
根据一特定实施例,复数个STUN服务器至少包括第一、第二和第三STUN服务器。传输所述复数个STUN请求的步骤包括:i)将第一STUN请求和第二STUN请求传输到第一STUN服务器;ii)将第三STUN请求传输到第二STUN服务器;和iii)将第四STUN请求传输到第三STUN服务器。第一STUN请求与所述复数个套接口中的第一套接口相关联,且第二、第三和第四STUN请求与所述复数个套接口中的第二套接口相关联。
根据另一实施例,所述方法进一步包括:如果从第一STUN服务器接收到至少一个回应,且没有从第二STUN服务器接收到一回应,那么确定NAT装置的进入数据包过滤特征为异常。根据另一实施例,所述方法进一步包括:i)从第一STUN服务器接收第一回应,其中所述第一回应包括由NAT装置映射的且与第二套接口相关联的第一映射端口;ii)从第二STUN服务器接收第二回应,其中所述第二回应包括由NAT装置映射的且与第二套接口相关联的第二映射端口;iii)如果第一映射端口与第二映射端口相同,那么确定NAT装置的端口分配行为是锥形;和iv)如果第一映射端口与第二映射端口相同,那么确定NAT装置的端口分配行为是端口敏感对称。
根据一个实施例,提供一计算机系统,其经配置以特征化计算机前面的网络地址转换(NAT)。计算机系统包括一web启用装置,其经配置以:i)创建复数个套接口;ii)分别将所述复数个套接口绑定到复数个端口;iii)将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;iv)如果没有从STUN服务器接收到回应,那么确定NAT装置确实支持UDP数据包;和v)如果从STUN服务器中的每一个接收到一回应,那么确定NAT装置中的一组NAT特征。
根据另一实施例,提供一计算机系统,其包括第一网络;所述第一网络上的第一网络地址转换(NAT)装置;第一网络上的至少一第一web启用装置,其中第一web启用装置操作地耦合到第一NAT装置且操作地在第一NAT装置后面,且第一web启用装置经配置以:i)创建复数个套接口;ii)分别将所述复数个套接口绑定到复数个套接口;iii)将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;且iv)如果从STUN服务器中的每一个接收到一回应,那么确定第一NAT装置的一组NAT特征。
对此发明内容和以下具体实施方式中所描述的特点和优势的进一步理解并非无所不包的,且明确地说,根据说明书、附图和权利要求书,所属领域的一般技术人员将明了很多附加特点和优势。
附图说明
图1是根据本发明的一个实施例的网络系统的简图;
图2是根据本发明的另一实施例的网络系统的简图;
图3是高阶层流程图,其具有用于使内部计算机确定其是否在NAT装置后面的步骤;
图4是高阶层流程图,其具有提供对确定由NAT装置指配的映射端口是递增还是随机的概观的步骤;
图5是高阶层流程图,其具有提供对确定NAT装置将端口指配为内外递增还是内外随机的概观的步骤;
图6是高阶层流程图,其具有用于由内部计算机进一步特征化NAT装置的步骤;和
图7是高阶层流程图,其具有用于使内部计算机确定连续套接口之间的单套接口增量的步骤。
具体实施方式
介绍和概观
本文中出于容易理解的目的而使用标题,且不应理解成限制本发明的所述实施例。另外,所附图式仅为说明的目的而描绘本发明的选定实施例。从以下讨论、权利要求书和所附图式中,所属领域的技术人员将易于认识到,在不脱离本发明的范畴和界限的前提下,可利用本文所揭示的结构和方法的替代实施例。
图1是根据本发明的一个实施例的网络系统100的简图。网络系统100包括:耦合到内部网络110的至少一个内部计算机105;耦合到外部网络120的至少一个外部计算机115;和将所述内部网络耦合到所述外部网络的网络地址转换(NAT)装置125。所述内部计算机可包括个人计算机、服务器、主机或经配置以耦合到所述内部网络的任何Web启用装置。所述内部网络可包括局域网(LAN)、广域网(WAN)、虚拟LAN或类似网络。所述外部计算机可包括个人计算机、服务器、主机或经配置以耦合到所述外部网络的任何Web启用装置。所述外部网络可包括LAN、WAN、虚拟LAN、因特网或类似网络。
根据一个实施例,内部计算机105经配置以检测并特征化NAT装置125。对NAT装置的特征的确定允许内部计算机和外部计算机建立对等通信链路以用于交换UDP数据包。内部计算机和外部计算机可交换UDP数据包以用于对等文件传送。对等通常涉及在不使用数据包上载并接着传送到的中央服务器的前提下传送文件。
文件传送可包括传送多种文件类型,例如媒体文件(音频、视频、音频/视觉)、文本消息、语音消息(例如,用于Web电话)和类似物。
根据一个实施例,外部网络包括一组STUN(UDP到NAT的简单横跨)服务器130。根据STUN协议操作的STUN服务器通常安置在Web(例如,万维网)中以发现并特征化装置,例如NAT装置。虽然图1中所示的所述组的STUN服务器包括三个STUN服务器130a、130b和130c(如本文所指),但一组可包括一个或一个以上部件。下文进一步详细描述STUN服务器。根据一些实施例,NAT装置可形成另一电子系统127(例如防火墙装置、路由器或类似物)的一部分,或NAT装置可为独立装置,其可耦合到防火墙装置、路由器或类似物。根据一替代实施例,装置125可为防火墙装置且经配置以执行本文所述的方法。根据所述实施例,装置127可为防火墙的外壳或可为防火墙经配置以与其一起操作的路由器。
图2是根据本发明的另一实施例的网络系统200的简图。类似编号方案用于识别与图1中所示的那些元件相同或类似的元件。网络系统200与网络系统100不同之处在于外部计算机125,类似于内部计算机105,可能在NAT装置205之后。内部网络和外部网络可经由网络210(例如另一LAN、另一WAN、因特网或类似物)而耦合。为说明性目的而描述前文所述的网络系统。所属领域的技术人员将知道经配置以如下文所述进行操作的很多网络系统,且这些其它网络系统均被认为在目前所述的本发明的范畴和界限内。根据一个实施例,外部网络120和网络210中的一者或两者可包括一组STUN服务器。根据一些实施例,NAT装置205可形成另一电子系统207(例如防火墙装置、路由器或类似物)的一部分,或NAT装置可为独立装置,其可耦合到防火墙装置、路由器或类似物。根据一替代实施例,装置205可为防火墙装置并经配置以执行本文所述的方法。根据所述实施例,装置207可为防火墙的外壳或可为防火墙经配置以与其一起操作的路由器。
根据一个实施例,内部计算机和/或外部计算机可不知道它们是否位于NAT装置后面且/或可不知道它们前面的NAT装置的特征。举例来说,内部计算机105可不知道i)NAT装置125的因特网协议(IP)地址分配行为;ii)NAT装置的端口分配行为;iii)NAT装置的端口指配行为;和/或iv)NAT装置的引入数据包过滤。如果内部计算机不知道其是否位于NAT装置后面或不知道所述内部计算机前面的所述NAT装置的特征,那么可能妨碍内部计算机接收从外部计算机发送的数据包。举例来说,如果内部计算机和外部计算机试图建立对等通信,那么如果这些计算机不知道NAT装置的前文所述的特征的话,从外部计算机发送到内部计算机的数据包可能被NAT装置125丢弃。本发明的实施例是针对这些问题和其它问题。
NAT装置特征的描述
如上文简要描述,NAT装置具有多种特征i)端口分配行为;ii)端口指配行为;和iii)引入数据包过滤。下文详细描述这些特征。应了解,出于示范性目的而描述所述特征,且NAT装置可具有其它特征,计算机可经配置以根据本文所述的方法确定所述其它特征。
根据本发明的一个实施例,内部计算机和/或外部计算机经配置以确定它们关联NAT装置的特征并将所述特征的信息传输给其它计算机,以使得从一个计算机发送到另一计算机的数据包可穿越另一计算机的NAT装置而不被丢弃。下文详细描述由内部计算机和/或外部计算机执行的用来确定这些特征的方法。
现在进一步详细描述端口分配行为。端口分配行为包括由NAT装置使用的一组规则,其用于当来自内部网络的数据包被发送到外部网络时映射端口。三个主要端口分配行经描述并包括:i)锥形;ii)地址敏感对称;和iii)端口敏感对称。
锥形:由计算机(例如,内部计算机)从相同内部IP地址和端口(即,ip:端口)发送的数据包被NAT装置映射到相同外部ip:端口。映射通常指NAT装置将内部网络上的由内部计算机使用的IP地址和/或端口转换为外部网络上使用的IP地址和/或端口。映射通常还指NAT装置将从外部网络接收的IP地址和端口转换为内部网络上的由内部计算机使用的IP地址和端口。根据锥形特征,映射从内部ip:端口(假定A)发送到目标计算机ip:端口(假定D)的数据包,以使得A被映射到X,其中X是NAT装置的ip:端口。如果内部计算机使用ip:端口A来将数据包发送到不同目标ip:端口(假定E),那么NAT装置维持相同的A到X映射。即,NAT装置使用相同IP地址和端口来将数据包发送到ip:端口D和ip:端口E。因此如果数据包由ip:端口D和ip:端口E发送到ip:端口X,那么从ip:端口D和ip:端口E返回的数据包将穿越NAT装置(即,由NAT装置导向ip:端口A处的内部计算机)。如果使用除了ip:端口D和ip:端口E之外的ip:端口的外部计算机试图将数据包发送到ip:端口A上的内部计算机,那么NAT装置将丢弃这些数据包。IP地址和端口通常称为套接口。更具体地说,套接口是IP地址和端口的描述符。如所属领域中所广泛了解,每个端口与用于标识所述端口的端口号相关联,且端口有时由它们的相关端口号来称谓。
地址敏感对称:由计算机(例如,内部计算机)从相同内部IP地址和端口发送到相同目标IP地址的数据包被NAT装置映射到相同映射IP地址和端口。即如果目标IP地址保持相同,但是目标端口改变,那么NAT装置使用相同映射。如果目标IP地址改变,那么NAT装置产生新的端口映射。举例来说,从使用ip:端口(假定A)的内部计算机发送到外部ip:端口(假定D:M)的数据包被NAT装置映射,以使得A被映射到X,且X映射到D,其中X是NAT装置的ip:端口。地址敏感对称NAT装置在映射中包括目标IP地址但不包括目标端口。如果内部计算机使用ip:端口A来将数据包发送到不同目标ip:端口(假定D:N),那么NAT装置维持A映射到X且X映射到D的相同映射。如果内部计算机使用ip:端口A来将数据包发送到不同目标ip:端口(假定J:K),那么NAT装置创建新的映射,以使得A映射到ip:端口(假定Y),且Y映射到J。
端口敏感对称:由计算机(例如,内部计算机)从相同内部IP地址和端口发送到相同目标IP地址和端口的数据包被映射到相同映射IP地址和端口。即,如果目标IP地址或目标端口改变,那么NAT装置创建新的端口映射。举例来说,从使用ip:端口A的内部计算机发送到使用ip:端口D:M的外部计算机的数据包的套接口被NAT装置映射,以使得A映射到X,且X映射到D:M,其中X是NAT装置的ip:端口。端口敏感对称NAT装置在映射中包括目标IP地址和端口。如果内部计算机使用ip:端口A来将数据包发送到不同目标ip:端口D:N,那么创建新的映射,其中A映射到Y,且Y映射到D:N。
端口指配行为包括由NAT装置使用的一组规则,其用于指配外部端口映射。四个主要端口指配行为经描述并包括:i)递增;ii)随机;iii)内外递增和iv)内外随机。
递增:如果产生内部ip:端口到外部ip:端口的新的映射,那么NAT装置递增地选择下一可用外部端口。举例来说,NAT装置可将外部端口递增1、2、5或类似数目以用于新的映射。递增外部端口的NAT装置通常经配置以存储一表,其由NAT装置维持以存储并追踪外部端口的状态。
随机:如果NAT装置创建内部ip:端口到外部ip:端口的新的映射,那么NAT装置从一队列中选择下一可用外部端口。所述队列包括可指配的端口号。重新指配的端口号返回到所述队列。由于端口号并非以固定次序重新指配,所以这些端口号并非以固定次序进入所述队列。因此,在指配若干个端口号后,随后的端口号的指配实质上是随机的。
内外递增:内部计算机使用的内部端口与NAT装置映射的外部端口相同。举例来说,内部地址和端口可为192.168.1.1:5000且由NAT装置映射的外部地址和端口可为64.3.3.3:5000。如果NAT装置为相同的内部端口产生新的映射,那么NAT装置会使端口号递增一固定增量,例如1、2、3等等。即,如果NAT装置为相同内部端口产生不同的外部端口,那么NAT装置应用上文所述的递增规则以产生外部端口。举例来说,初始内部地址和端口可为192.168.1.1:7000,且NAT装置映射的外部地址和端口可为64.3.3.3:7000,且初始内部地址和端口192.168.1.1:7000的随后映射可为外部地址和端口64.3.3.3:7001,其中端口7000递增1到7001。
内外随机:内部端口与外部端口相同。想到外部端口为由NAT装置映射以用于外部网络上的端口。如果NAT装置为相同内部端口产生新的外部端口映射,那么NAT装置应用上文所述的随机规则以产生新的外部端口映射。
引入数据包过滤通常指由NAT装置使用的一组规则,其用于允许数据包从外部计算机通过NAT装置穿越到内部计算机或阻挡数据包从外部计算机通过NAT装置穿越到内部计算机。三个主要引入数据包过滤行为包括:i)无引入数据包过滤;ii)地址敏感数据包过滤;和iii)端口敏感数据包过滤。
无引入数据包过滤:经配置以不过滤引入数据包的NAT装置通常不会使引入数据包起源于其的计算机生效。即,使用ip:端口(假定D)的任何外部计算机可通过将数据包发送到由NAT装置分配的映射的ip:端口X来将数据包发送到使用ip:端口(假定A)的内部计算机。
地址敏感数据包过滤:NAT装置的数据包过滤,其经配置以检验包括于引入数据包中的IP地址来确定数据包是否应被允许穿越NAT装置而进入内部网络。使用ip:端口(假定D:M)的任何外部计算机可通过将引入数据包发送到由NAT装置分配的映射ip:端口(假定X)来将所述数据包发送到使用ip:端口(假定A)的内部计算机,但仅在使用ip:端口A的内部计算机先前已将一数据包发送到使用IP地址D的外部计算机时。
端口敏感数据包过滤:NAT装置的数据包过滤,其经配置以检验包括于引入数据包中的IP地址和端口来确定数据包是否应被允许穿越NAT装置而进入内部网络。使用ip:端口(假定D:M)的任何外部计算机可通过将引入数据包发送到由NAT装置分配的映射ip:端口(假定X)来将所述数据包发送到使用ip:端口(假定A)的内部计算机,但仅在使用ip:端口A的内部计算机先前已将一数据包发送到ip:端口D:M上的外部计算机时。
除前文所述的主要引入数据包过滤规则之外,NAT装置可经配置以使用被称作异常数据包过滤的第二数据包过滤规则。所述异常数据包过滤可启用或禁用,且可应用到地址敏感数据包过滤和/或端口敏感数据包过滤中。
异常数据包过滤:NAT装置的数据包过滤,其经配置以在第一数据包从ip:端口(假定D:M)上的目标计算机到达后修改引入数据包过滤,以使得仅允许来自D:M的数据包被允许穿越NAT装置而进入内部网络。
NAT装置分类
如上文简要描述,内部计算机105和外部计算机115中的一者或两者可经配置以确定这些计算机前面的个别NAT装置的前文所述的特征。内部计算机和外部计算机中的一者或两者可进一步经配置以确定它们是否位于NAT装置后面。举例来说,内部计算机和外部计算机可经配置以确定它们是否位于相同网络上的相同NAT装置后面。内部计算机和外部计算机前面的NAT装置的经确定的特征的信息(或关于缺少NAT装置的信息)经彼此发送,以使得数据包可由这些计算机进行交换而所述数据包不被NAT装置丢弃。由于内部计算机和/或外部计算机经配置以使用经传送的信息来预测可由NAT装置映射的下一端口,所以所述信息在本文被称作端口预测信息。如果正确预测下一映射端口,那么计算机可将数据包发送到所述由NAT装置使用的下一映射端口,且所发送的数据包将穿越NAT装置并到达所希望的计算机接收端。
图3是高阶层流程图,其具有让内部计算机确定其是否在NAT装置后面的步骤。虽然以下描述讨论由内部计算机执行的流程图步骤,但外部计算机也可经配置以执行所述流程图的步骤来确定其是否在NAT装置后面。
根据一个实施例,内部计算机经配置以产生一套接口(假定L0),并将所述套接口绑定到一端口。L0的内部IP地址和绑定到L0的本地端口由内部计算机存储。为方便起见,绑定到L0的本地端口被称作L0端口号。所述端口可由内部计算机随机选择。举例来说,内部计算机可选择0与65535之间的端口。根据一个实施例,内部计算机经配置以选择从5000到65535(包括5000和65535)的端口。如果内部计算机运行MicrosoftTMWindowsTM操作系统,那么通过选择5000或5000以上的一端口,WindowsTM操作系统将类似地选择5000或5000以上的端口。在产生套接口L0并选择端口后,内部计算机经配置以将STUN请求发送到STUN服务器130a(步骤300)。可根据用户数据报协议(UDP)或所属领域的技术人员将易于知道的其它协议来发送所述STUN请求。
通常,STUN服务器经配置以将回应发送回将stun请求发送到所述STUN服务器的内部计算机(步骤305)。所述回应包括从其发送STUN请求的映射IP地址和映射端口。因此,回应包括由NAT装置从发送STUN请求的计算机所使用的内部IP地址和端口映射的映射IP地址和映射端口。
在STUN请求从内部计算机发送到STUN服务器后,内部计算机经配置以等待STUN服务器的回应。如果从STUN服务器接收到回应,那么由内部计算机存储映射IP地址和映射端口(步骤310)。为方便起见,L0套接口的映射端口在本文被称作E0端口号。进一步回应接收到来自STUN服务器的回应,内部计算机经配置以设定内部旗标,其指示NAT装置支持UDP数据包或用于特征化的其它数据包类型。
内部计算机经配置以比较内部IP地址与映射IP地址(步骤320)。如果内部IP地址与映射IP地址相同,那么内部计算机经配置以断定其不在NAT装置后面。否则,如果内部IP地址与映射IP地址不同,那么内部计算机经配置以断定其在NAT装置后面。具体地说,如果这些IP地址不同,那么内部计算机可断定NAT装置已经将内部计算机使用的内部IP地址映射到外部网络上的NAT装置使用的映射IP地址(有时称作外部IP地址)
或者,如果内部计算机在预定时间间隔中(例如,在约250毫秒内或几乎250毫秒时)不从STUN服务器接收一回应,那么内部计算机经配置以重新发送STUN请求(步骤300)。STUN请求可在预定时间周期内(例如3秒)以预定时间间隔重复发送到STUN服务器。如果在所述预定时间周期后,没有从STUN服务器接收到回应,那么本地计算机经配置以断定NAT装置不具有UDP网络能力(步骤325)。即,UDP数据包被NAT装置阻挡。如果内部计算机断定NAT装置不支持UDP数据包,那么NAT装置的特征化被中断。内部计算机可经配置以设定一内部旗标以指示NAT装置不支持UDP数据包(例如,UPD支持=假)或用于特征化过程的其它数据包类型。如果在预定时间周期内从STUN服务器接收到回应,那么内部计算机执行上文的存储步骤310和比较步骤315。
根据一个实施例,使用由内部计算机产生的另一套接口(假定L1)的内部计算机可重复流程图的步骤。内部计算机可经配置以将新的端口(假定L1端口号)绑定到L1套接口。所述L1端口号可由内部计算机随机产生。可由内部计算机存储套接口L1的内部IP地址和L1端口号。如果内部计算机不接收对在预定时间周期内发送到STUN服务器130a的STUN请求的回应,那么设定内部旗标以指示NAT装置不支持UDP数据包(例如,UPD支持=假)或由内部计算机用于特征化NAT装置的接着由内部计算机使用的其它数据包类型。如果内部计算机从STUN服务器接收到回应,那么由内部计算机设定内部旗标以指示NAT装置支持UDP数据包(例如,UPD支持=真)或由内部计算机使用的其它数据包类型。同样,由内部计算机存储通过STUN服务器的回应而返回到内部计算机的映射IP地址和映射端口。为方便起见,L0套接口的映射端口被称作E1端口号。
根据一个实施例,内部计算机经配置以比较E0端口号与E1端口号来确定由NAT装置指配的映射端口是递增的还是随机的。上文详细描述了递增和随机的端口指配。
图4是高阶层流程图,其具有提供前文所述的比较的概观的步骤。在400处,内部计算机确定E0端口号是否小于E1端口号,并计算E1端口号与E0端口号之间的差值。如果E0端口号小于E1端口号,且E1端口号与E0端口号之间的差值小于选定端口增量(例如,20、10、5或类似数目),那么内部计算机经配置以确定NAT装置以递增的方式指配端口(上文详细描述),否则确定NAT装置随机地指配端口。内部计算机经配置以设定旗标(例如,套接口间端口指配行为)以依据前文所述的比较结果(例如,套接口间端口指配行为=递增或随机)来指示NAT装置经配置而以递增方式或随机方式指配端口。
在确定NAT装置是以随机方式还是以递增方式指配端口后,内部计算机经配置以确定NAT装置是将端口指配为内外递增还是内外随机(上文详细描述NAT装置的内外特征)。
图5是高阶层流程图,其具有提供前文所述的对NAT装置特征的确定的概观的步骤。在500处,内部计算机经配置以确定E0端口号是否与L0端口号相同,且E1端口号是否与L1端口号相同。如果这些端口相同,那么在505处,内部计算机检查按序指配的套接口的端口指配行为是否为递增的方式。如果这些端口相同,且端口指配行为是递增的方式,那么内部计算机(步骤510)经配置以断定NAT装置的端口指配行为是内外递增(上文详细描述)。或者,如果这些端口相同,但端口指配行为是随机的,那么内部计算机(步骤515)经配置以断定端口指配行为是内外随机的(上文详细描述)。如果E0端口号与L0端口号,和/或E0端口号与E1端口号不相同,那么内部计算机(步骤520)经配置以断定端口指派行为是随机的且不是内外递增(步骤525),或递增的且不是内外随机的(步骤530)。套接口间端口指配行为可由内部计算机修改以反映前文所述的比较结果。举例来说,套接口间端口指配行为可依据比较结果而被设定为内外随机或内外递增。
根据一个实施例,在针对L0和L1套接口的STUN请求发送到STUN服务器130b后,内部计算机经配置以根据图3的流程图的步骤通过使用(例如)套接口L1将STUN请求发送到STUN服务器130b。如果内部计算机在预定时间周期内不从STUN服务器130b接收回应,那么内部计算机经配置以断定NAT为异常NAT装置(上文详细描述)。由内部计算机存储NAT装置的此特征的信息(例如,异常=真)。如果从STUN服务器接收到回应,那么内部计算机经配置以存储根据回应而返回的映射端口。此映射端口称作E2端口号。
根据另一实施例,内部计算机经配置以根据图3的流程图的步骤通过使用(例如)套接口L1将另一STUN请求发送到STUN服务器130c。如果内部计算机在预定时间周期内不从STUN服务器130c接收回应,那么内部计算机经配置以确认NAT装置为异常NAT装置。如果从STUN服务器接收到回应,那么内部计算机经配置以存储根据回应而返回的映射端口。此映射端口称作E3端口号。
图6是高阶层流程图,其具有使内部计算机进一步特征化NAT装置的步骤。在600处,如果确定NAT装置为异常NAT装置,那么内部计算机经配置以停止特征化所述NAT装置,且断定端口分配行为和端口指配行为是未知的。可设定与特征相关联的旗标以反映NAT装置的这些未知特征。在605处,内部计算机经配置以比较E1端口号与E2端口号。如果这些端口号相同(610),那么确定NAT装置的端口分配行为是锥形(上文详细描述)。如果这些端口号不相同(615),那么确定端口分配行为是端口敏感的。
图7是高阶层流程图,其具有让内部计算机确定连续套接口之间的单套接口增量的步骤。即,所述步骤由内部计算机执行以确定由NAT装置映射的连续映射端口的递增值(例如,1、5、10等)。在700处,内部计算机经配置以确定:
i)E1端口号是否小于E2端口号;
ii)E2端口号是否小于E3端口号;
iii)E1端口号与E2端口号之间的差值是否小于选定端口增量(例如,20、10、5或类似数目);和
iv)E2端口号与E3端口号之间的差值是否小于选定端口增量(例如,20、10、5或类似数目)。
如果内部计算机从上文的四个比较中得到正的查找结果,那么内部计算机经配置以确认NAT装置以递增方式映射外部端口(步骤705)。另外,内部计算机经配置以将连续套接口的单套接口增量设定为E3端口号减去E2端口号(步骤710)。如果内部计算机从上文的四个比较中的一个或一个以上中得到负的查找结果,那么在715处,内部计算机经配置以确定:
i)E2端口号是否小于E3端口号;和
ii)E2端口号与E3端口号之间的差值是否小于选定端口增量(例如,20、10、5或类似数目)。
如果内部计算机从前文的两个比较中得到正的查找结果,那么内部计算机确认NAT装置以递增的方式映射外部端口(步骤705)。另外,内部计算机经配置以将连续套接口的单套接口增量设定为E3端口号减去E2端口号(步骤710)。如果内部计算机从前文的两个比较中的一个或两个中得到负的查找结果,那么内部计算机经配置以断定NAT装置以随机方式映射端口(步骤720),且将单套接口增量设定为未知(步骤725)。
在执行前文所述的对NAT装置的特征的确定中的一个或多个后,内部计算机经配置以根据对特征的确定而设定若干内部旗标并设定若干内部变量。所述内部旗标和所述内部变量被称作端口预测信息。所述端口预测信息包括:
i)UDP预测的外部端口号;
ii)UDP预测的内部端口号;
iii)映射IP地址
iv)内部IP地址;
v)单套接口增量;
vi)端口分配行为(例如,锥形、端口敏感对称等),和
vii)UPD预测的套接口。
所述UDP预测的外部端口号是内部计算机预测NAT装置将创建的下一映射端口。UPD预测的内部端口号是内部计算机预测其将创建的下一端口。所述映射IP地址由外部网络上的NAT装置使用。所述内部IP地址由内部网络上的内部计算机使用。所述单套接口增量是由NAT装置创建的连续映射端口和/或连续映射IP地址之间的预测增量。上文详细描述所述端口分配行为。所述UPD预测的套接口是内部计算机将使用的预测套接口。
下文描述8组替代端口预测信息。一旦端口预测信息由内部计算机确定,内部计算机就可经配置以将端口预测信息传送到外部计算机,以使得外部计算机可使用所述信息来将数据包发送到映射端口,所述映射端口的数据包将穿越NAT装置。下文详细描述端口预测信息的传输。
根据端口预测信息的第一实施例,如果内部计算机确定NAT装置不支持UDP数据包或用于特征化NAT装置的其它数据包,那么内部计算机经配置以断定与外部计算机的UDP对等连接是不可能的,且可经配置以建立与外部计算机通信的另一方法。
根据端口预测信息的第二实施例,如果内部计算机确定其不在NAT装置后面,且所述NAT装置为异常NAT装置,那么内部计算机经配置以产生新的套接口(假定L2)并将所述套接口绑定到随机端口(例如,5000与65535之间的端口)。接着内部计算机存储绑定到套接口L2的本地端口号(例如)作为L2端口号。另外,因为没有安置NAT装置,所以内部计算机经配置以将UDP预测的外部端口号设定为L2端口号,以将L2端口号映射到映射端口号。内部计算机进一步经配置以将UDP预测的内部端口号设定为L2端口号。
根据端口预测信息的第三实施例,如果内部计算机确定其不在NAT装置后面,且所述NAT装置不是异常NAT装置,那么内部计算机经配置以将UDP预测外部端口号设定为L1端口号,且经配置以将UDP预测的内部端口号设定为L1端口号。
根据端口预测信息的第四实施例,如果内部计算机确定其在NAT装置后面,且所述NAT装置具有锥形的端口分配行为,那么内部计算机经配置以将UDP预测的外部端口号设定为E1端口号;将UDP预测的套接口设定为L1套接口;且将UDP预测的内部端口号设定为L1端口号。
根据端口预测信息的第五实施例,如果内部计算机确定其在NAT装置后面,所述NAT装置具有非锥形的端口分配行为,且套接口间端口指配行为是内外的,那么内部计算机经配置以产生新的套接口(假定2)并将所述套接口L2绑定到端口号(例如,随机端口号)(假定L2端口号),内部计算机经配置以存储所述端口号。接着内部计算机经配置以将UDP预测的外部端口号设定为L2端口号,将UDP预测的套接口设定为L2,且将UDP预测的内部端口号设定为L2端口号。
根据端口预测信息的第六实施例,如果内部计算机确定其在NAT装置后面,所述NAT装置具有非锥形的端口分配行为,端口指配行为是递增且非内外的,那么内部计算机经配置以预测将由NAT装置创建的下一映射端口。
为详细阐述,如果E1端口号与E2端口号之间的差值与E2端口号与E3端口号之间的差值相同,那么内部计算机经配置以将UDP预测的外部端口号设定为E3端口号加上单套接口增量(即,E3端口号减去E2端口号)。另外,内部计算机经配置以将UDP预测套接口设定为L1,并将UDP预测的内部端口号设定为L1端口号。
或者,如果E1端口号与E2端口号之间的差值与E2端口号与E3端口号之间的差值不相同,那么内部计算机经配置以将UDP预测的外部端口号设定为E3端口号加上单套接口增量(即,E3端口号减去E2端口号),另外,内部计算机经配置以将UDP预测的套接口设定为L1套接口,并将UDP预测的内部端口号设定为L1端口号。
根据端口预测信息的第七实施例,如果内部计算机确定其在NAT装置后面,所述NAT装置具有非锥形的端口分配行为,端口指配行为是递增且非内外的,那么内部计算机经配置以产生新的套接口(假定L2),并将所述新的套接口绑定到端口号(例如,随机端口号)(假定L2端口号),内部计算机经配置以存储所述端口号。接着内部计算机经配置以将UDP预测的外部端口号设定为E1端口号加上单套接口增量(即,E3端口号减去E2端口号),将UDP预测的套接口设定为L2,且将UDP预测的内部端口号设定为L2端口号。
根据端口预测信息的第八实施例,如果内部计算机确定其在NAT装置后面,所述NAT装置具有非锥形的端口分配行为,端口指配行为不是递增且非内外的,那么内部计算机经配置以将UDP预测的外部端口号设定为E0端口号,将UDP预测的套接口设定为L0,且将UDP预测的内部端口号设定为E0端口号。
根据一个实施例,内部计算机经配置以将端口预测信息传输到外部计算机以与外部计算机建立UDP对等通信链路。所述端口预测信息可通过内部计算机与外部计算机之间的反向通道传送以确保端口预测信息不会被与外部计算机相关联的NAT装置阻挡。所述反向通道是经由一通信链路(可为有线或无线)连接两个对等物的通信装置。反向通道通常由一服务器作主机。两个对等物均可经由通信链路连接到服务器,其有助于端口预测信息的传送。端口预测信息可由外部计算机用于确定内部计算机是否在NAT装置后面,或预测将由NAT装置创建的下一端口以将数据包发送到预测的端口。在接收到端口预测信息后或在接收到此信息前,外部计算机可经配置以确定外部计算机前面的NAT装置(例如NAT装置205)的特征。外部计算机可执行前文的高阶层流程图中的一个或一个以上的步骤以确定NAT装置的特征或存在。外部计算机接着可设定一组内部旗标和内部变量(即,端口预测信息),并将此端口预测信息传输到内部计算机。
根据一个实施例,如果内部计算机和外部计算机从所接收的端口预测信息确定它们具有相同的映射IP地址,那么内部计算机和外部计算机都在相同的NAT装置后面。这些计算机接着将经配置以将UDP预测的内部端口号用于数据包共享。根据前文所述的实施例,如果数据包穿越NAT装置,那么在内部与外部计算机之间建立对等通信链路。
根据替代实施例,如果外部计算机确定内部计算机在具有锥形端口分配行为的NAT装置后面,那么由外部计算机用于将数据包发送到内部计算机的端口是UDP预测的外部端口号。内部计算机可类似地经配置以将数据包发送到外部计算机前面的NAT装置的UDP预测的端口号。根据前文所述的实施例,如果数据包穿越NAT装置,那么在内部与外部计算机之间建立对等通信链路。
或者,如果外部计算机确定内部计算机在对称的NAT装置后面,那么外部计算机可经配置以基于从内部计算机接收到的端口预测信息中的由外部计算机接收的单套接口增量而使用复数个不同端口将数据包发送到内部计算机。举例来说,外部计算机可经配置以经由五个不同端口将五个数据包发送到内部计算机。所述五个不同端口可包括UDP预测的外部端口号加上单套接口增量、UDP预测的外部端口号加上两倍的单套接口增量、UDP预测的外部端口号加上三倍的单套接口增量等等。内部计算机可类似地经配置以使用预测的端口号的增量将若干数据包发送到外部计算机。根据前文所述的实施例,如果数据包穿越NAT装置,那么在内部与外部计算机之间建立对等通信链路。
应了解,上文所述的实例和实施例仅为了说明性目的,且所属领域的技术人员将提出参照所述实例和实施例的各种修改或改变,且所述各种修改和改变包括于此申请案的精神和界限以及所附权利要求书的范畴内。举例来说,本文所述的防火墙装置可经配置以大体上类似于以各种方式描述的NAT装置操作,尽管防火墙装置不可经配置以执行网络地址转换且其可或不可经配置以执行端口地址转换。所属领域的技术人员广泛了解防火墙装置的功能且本文将不再作详细描述,除了应注意防火墙装置经配置以在网络阶层、应用层阶层和类似阶层处操作以阻挡数据包通过防火墙,除非它们匹配一组规则。防火墙管理者可界定所述组规则或所述组规则可为一组默认规则。所述规则可包括本文所述的数据包过滤规则(例如,异常规则)。根据另一实例,本文所述的一个或一个以上NAT装置可经配置以与一个或一个以上防火墙装置一起操作以执行NAT并提供防火墙过滤。所属领域的技术人员广泛了解NAT装置与防火墙装置的相互操作且本文将不再作进一步详细描述。因此,不应将上文的描述看作限制由权利要求书界定的本发明的范畴。

Claims (28)

1.一种由一网络地址转换(NAT)装置后面的一内部计算机特征化所述NAT装置的方法,所述方法包含:
创建复数个套接口;
分别将所述复数个套接口绑定到复数个端口;
将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;
如果没有从所述STUN服务器接收到回应,那么确定所述NAT装置确实支持UDP数据包;和
如果从所述STUN服务器中的每一个接收到一回应,那么确定所述NAT装置的一组NAT特征。
2.根据权利要求1所述的方法,其中所述复数个回应至少包括一第一回应和在所述第一回应后接收到的一第二回应。
3.根据权利要求2所述的方法,其进一步包含:
如果在所述第一回应中接收到的一第一映射端口小于在所述第二回应中接收到的一第二映射端口,且如果所述第一映射端口减去所述第二映射端口小于一选定数目,那么确定所述NAT装置的一端口指配行为是递增;且
如果所述第一映射端口大于或等于所述第二映射端口且/或如果所述第一映射端口减去所述第二映射端口大于或等于所述选定数目,那么确定所述NAT装置的所述端口指配行为是随机。
4.根据权利要求3所述的方法,其中所述复数个套接口包括至少一第一套接口和一第二套接口,其分别与包括在所述复数个端口中的一第一端口和一第二端口相关联。
5.根据权利要求4所述的方法,其进一步包含:
如果所述NAT装置的一端口指配行为是递增,如果所述第一映射端口与所述第一端口相同,且如果所述第二映射端口与所述第二端口相同,那么确定所述NAT装置的所述端口指配行为是内外递增;和
如果所述NAT装置的一端口指配行为是随机,如果所述第一映射端口与所述第一端口相同,且如果所述第二映射端口与所述第二端口相同,那么确定所述NAT装置的所述端口指配行为是内外随机。
6.根据权利要求1所述的方法,其中:
所述复数个STUN服务器至少包括第一、第二和第三STUN服务器,且传输所述复数个STUN请求的所述步骤包括:
将一第一STUN请求和一第二STUN请求传输到所述第一STUN服务器;
将一第三STUN请求传输到所述第二STUN服务器;和
将一第四STUN请求传输到所述第三STUN服务器,
其中所述第一STUN请求与所述复数个套接口中的一第一套接口相关联,且所述第二、第三和第四STUN请求与所述复数个套接口中的一第二套接口相关联。
7.根据权利要求6所述的方法,其进一步包含:如果从所述第一STUN服务器接收到至少一个回应且没有从所述第二STUN服务器接收到一回应,那么确定所述NAT装置的一进入数据包过滤特征为异常。
8.根据权利要求6所述的方法,其进一步包含:
从所述第一STUN服务器接收一第一回应,其中所述第一回应包括由所述NAT装置映射的且其与所述第二套接口相关联的一第一映射端口;
从所述第二STUN服务器接收一第二回应,其中所述第二回应包括由所述NAT装置映射的且与所述第二套接口相关联的一第二映射端口;
如果所述第一映射端口与所述第二映射端口相同,那么确定所述NAT装置的一端口分配行为是锥形;和
如果所述第一映射端口与所述第二映射端口相同,那么确定所述NAT装置的所述端口分配行为是端口敏感对称。
9.根据权利要求8所述的方法,其进一步包含:
从所述第三STUN服务器接收一第三回应,其中所述第三回应包括由所述NAT装置映射的且与所述第二套接口相关联的一第三映射端口;
如果所述第一映射端口小于所述第二映射端口,
如果所述第二映射端口小于所述第三映射端口,且
如果所述第一映射端口与所述第二映射端口之间的所述差值小于一选定端口增量,
那么将一单套接口增量设定为第二映射端口与所述第三映射端口之间的所述差值。
10.根据权利要求9所述的方法,其进一步包含:
从所述第三STUN服务器接收一第三回应,其中所述第三回应包括由所述NAT装置映射的且与所述第二套接口相关联的一第三映射端口;
如果所述第二映射端口小于所述第三映射端口,且
如果所述第二映射端口与所述第三映射端口之间的所述差值小于一选定端口增量,
那么将一单套接口增量设定为第二映射端口与所述第三映射端口之间的差值。
11.根据权利要求10所述的方法,其进一步包含:通过一反向通道将一组端口预测信息传输到一外部计算机,其中所述端口预测信息包括所述单套接口增量、所述端口分配行为、所述第一端口、所述第二端口、所述第一映射端口、所述第二映射端口和所述第三映射端口中的一者或多者。
12.根据权利要求11所述的方法,其进一步包含:
所述外部计算机基于包括在所述组NAT特征中的一个或一个以上要素预测所述NAT将选择的一组随后端口;和
将一组数据包从所述外部计算机传输到使用所述随后端口的所述NAT装置和内部计算机。
13.根据权利要求11所述的方法,其进一步包含:
如果所述端口分配行为是锥形,那么经由所述第一映射端口将数据包从所述外部计算机发送到所述内部计算机。
14.根据权利要求11所述的方法,其进一步包含:如果所述端口分配行为是地址敏感对称或端口敏感对称,那么经由所述内部计算机的一IP地址和是由所述NAT装置映射的一最后端口的增量的复数个预测端口将数据包从所述外部计算机发送到所述内部计算机,其中所述增量包括所述单套接口增量的数倍。
15.根据权利要求14所述的方法,其中如果所述数据包中的至少一个穿越所述NAT装置到达所述内部计算机,那么在所述内部计算机与所述外部计算机之间建立一对等连接。
16.根据权利要求1所述的方法,其进一步包含:通过一反向通道将所述组NAT特征传输到一外部计算机。
17.根据权利要求16所述的方法,其进一步包含:
所述外部计算机基于所述组NAT特征预测所述NAT将映射的一组随后端口;和经由所述随后端口将一组数据包从所述外部计算机传输到所述NAT装置和内部计算机。
18.一种计算机系统,其经配置以特征化一网络地址转换(NAT)装置,以使得所述计算机经由一内部网络而耦合到所述NAT装置,且所述计算机在所述NAT装置后面,所述计算机系统包含:
一web启用装置,其经配置以:
创建复数个套接口;
分别将所述复数个套接口绑定到复数个端口;
将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;
如果没有从所述STUN服务器接收到回应,那么确定所述NAT装置确实支持UDP数据包;和
如果从所述STUN服务器接中的每一个收到一回应,那么确定所述NAT装置的一组NAT特征。
19.一种计算机系统,其包含:
一第一网络;
所述第一网络上的一第一网络地址转换(NAT)装置;
所述第一网络上的至少一第一web启用装置,其中
所述第一web启用装置操作地耦合到所述第一NAT装置且操作地在所述第一NAT装置后面,且
所述第一web启用装置经配置以:
创建复数个套接口;
分别将所述复数个套接口绑定到复数个端口;
将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;且
如果从所述STUN服务器中的每一个接收到一回应,那么确定所述第一NAT装置的一组NAT特征。
20.根据权利要求19所述的计算机系统,其进一步包含:
一第二网络,其操作地耦合到所述NAT装置;和
至少一第二web启用装置,其耦合到所述第二网络并经配置以从所述第一web启用装置接收所述组NAT特征,其中
基于所述NAT特征,所述第二web启用装置经配置以预测由所述第一NAT装置映射的一组随后映射端口,并在所述组随后映射端口上将一组数据包发送到所述第一NAT装置,
如果所述数据包中的一个被发送到由所述NAT装置映射的一随后映射端口,那么此数据包经配置以穿越所述NAT装置。
21.根据权利要求20所述的计算机系统,其进一步包含:
所述第二网络上的一第二NAT装置,其中
所述第二网络启用装置在所述第二NAT装置后面,且
所述第二web启用装置经配置以:
创建另外复数个套接口;
分别将所述另外复数个套接口绑定到另外复数个端口;
将用户数据报协议(UDP)数据包中的另外复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述其它套接口中的一个相关联;且
如果从所述STUN服务器中的每一个接收到一回应,那么确定所述第二NAT装置的一组NAT特征。
22.根据权利要求21所述的计算机系统,其进一步包含:
一第三网络,其安置在所述第一NAT装置与所述第二NAT装置之间。
23.根据权利要求22所述的计算机系统,其中所述第三网络是因特网。
24.根据权利要求23所述的计算机系统,其进一步包含操作地耦合到所述第二网络并经配置以接收所述STUN请求的复数个STUN服务器。
25.一种由一防火墙装置后面的一内部计算机特征化所述防火墙装置的方法,所述方法包含:
创建复数个套接口;
分别将所述复数个套接口绑定到复数个端口;
将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;
如果没有从所述STUN服务器接收到回应,那么确定所述防火墙装置确实支持UDP数据包;和
如果从所述STUN服务器中的每一个接收到一回应,那么确定所述防火墙装置的一组防火墙特征。
26.根据权利要求25所述的方法,其中所述复数个回应包括至少一第一回应和在所述第一回应后接收到的一第二回应。
27.一种计算机系统,其包含:
一第一网络;
所述第一网络上的一防火墙装置;
所述第一网络上的至少一第一web启用装置,其中
所述第一web启用装置操作地耦合到所述防火墙装置且操作地在所述防火墙装置后面,且
所述第一web启用装置经配置以:
创建复数个套接口;
分别将所述复数个套接口绑定到复数个端口;
将用户数据报协议(UDP)数据包中的复数个STUN请求传输到复数个STUN服务器,其中每个STUN请求与所述套接口中的一个相关联;且
如果从所述STUN服务器中的每一个接收到一回应,那么确定所述防火墙装置的一组防火墙特征。
28.根据权利要求27所述的计算机系统,其进一步包含:
一第二网络,其操作地耦合到所述防火墙装置;和
至少一第二web启用装置,其耦合到所述第二网络并经配置以从所述第一web启用装置接收所述组防火墙特征,其中
基于所述防火墙特征,所述第二web启用装置经配置以预测由所述防火墙装置映射的一组随后映射端口,并在所述组随后映射端口上将一组数据包发送到所述防火墙装置,
如果所述数据包中的一个被发送到由所述防火墙装置映射的一随后映射端口,那么此数据包经配置以穿越所述防火墙装置。
CNB2006100585788A 2005-03-22 2006-03-22 用于使数据包穿越网络地址转换装置的方法和装置 Active CN100561976C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/088,030 US7738468B2 (en) 2005-03-22 2005-03-22 Method and apparatus for packet traversal of a network address translation device
US11/088,030 2005-03-22

Publications (2)

Publication Number Publication Date
CN1838636A true CN1838636A (zh) 2006-09-27
CN100561976C CN100561976C (zh) 2009-11-18

Family

ID=37015893

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100585788A Active CN100561976C (zh) 2005-03-22 2006-03-22 用于使数据包穿越网络地址转换装置的方法和装置

Country Status (3)

Country Link
US (2) US7738468B2 (zh)
CN (1) CN100561976C (zh)
DE (1) DE102006012614B4 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000181A1 (fr) * 2007-06-27 2008-12-31 Huawei Technologies Co., Ltd. Procédé servant à acquérir des ressources transversales, un nœud pair à pair et un système pair à pair
CN101179581B (zh) * 2007-12-13 2010-06-09 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
WO2013086869A1 (zh) * 2011-12-13 2013-06-20 华为技术有限公司 一种互联方法、装置和系统

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224985B2 (en) * 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) * 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US7738468B2 (en) * 2005-03-22 2010-06-15 Logitech Europe S.A. Method and apparatus for packet traversal of a network address translation device
US8619765B2 (en) * 2005-06-13 2013-12-31 Cisco Technology, Inc. Automatic reconfiguration of layer 3 device to layer 2 device upon detection of upstream NAT/NAPT device
KR100758971B1 (ko) * 2006-05-09 2007-09-14 주식회사 케이티프리텔 스턴 바인딩 프로토콜을 확장한 스턴 바인딩 메시지를이용하여 서로 다른 ip 도메인 간의 연동을 위한 통신시스템, 응용 계층 게이트웨이 장치, 스턴 서버 및 통신방법
US8204065B2 (en) 2006-09-29 2012-06-19 Avaya Ecs Ltd. Network address translation in session initiation protocol based application
US8533339B2 (en) * 2006-10-13 2013-09-10 Cisco Technology, Inc. Discovering security devices located on a call path and extending bindings at those discovered security devices
US20080122932A1 (en) * 2006-11-28 2008-05-29 George Aaron Kibbie Remote video monitoring systems utilizing outbound limited communication protocols
US8069251B2 (en) * 2007-06-01 2011-11-29 Adobe Systems Incorporated System and/or method for client-driven server load distribution
US8631155B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Network address translation traversals for peer-to-peer networks
US8239548B2 (en) 2007-07-17 2012-08-07 Adobe Systems Incorporated Endpoint discriminator in network transport protocol startup packets
US8145698B1 (en) 2008-01-03 2012-03-27 Adobe Systems Incorporated Self organizing peer-to-peer system, method, and/or apparatus
US8171147B1 (en) 2008-02-20 2012-05-01 Adobe Systems Incorporated System, method, and/or apparatus for establishing peer-to-peer communication
US8341401B1 (en) 2008-05-13 2012-12-25 Adobe Systems Incorporated Interoperable cryptographic peer and server identities
US8312147B2 (en) * 2008-05-13 2012-11-13 Adobe Systems Incorporated Many-to-one mapping of host identities
US20090319674A1 (en) * 2008-06-24 2009-12-24 Microsoft Corporation Techniques to manage communications between relay servers
GB0821236D0 (en) * 2008-11-20 2008-12-31 Nec Corp Client-server communications in mobile radio communications device
US9160794B2 (en) * 2008-12-04 2015-10-13 Microsoft Technology Licensing, Llc Network address translators (NAT) type detection techniques
US8750112B2 (en) * 2009-03-16 2014-06-10 Echostar Technologies L.L.C. Method and node for employing network connections over a connectionless transport layer protocol
US8601567B2 (en) * 2009-05-08 2013-12-03 At&T Intellectual Property I, L.P. Firewall for tunneled IPv6 traffic
US8949444B1 (en) * 2009-07-14 2015-02-03 Juniper Networks, Inc. Flow control scheme for parallel flows
US9083587B2 (en) * 2009-08-21 2015-07-14 Cisco Technology, Inc. Port chunk allocation in network address translation
US8964567B2 (en) * 2011-07-21 2015-02-24 Microsoft Technology Licensing, Llc Wireless synchronization testing
US9742728B2 (en) * 2011-08-30 2017-08-22 Sonus Networks, Inc. Determining expiration time of bindings for network address translation devices
EP2815551B1 (en) 2012-02-14 2020-01-15 Intel Corporation Peer to peer networking and sharing systems and methods
CN103297552B (zh) * 2012-03-02 2016-05-25 百度在线网络技术(北京)有限公司 传递客户端IPv4地址及端口至后端服务器的方法及装置
CN102611766A (zh) * 2012-04-09 2012-07-25 苏州工业园区云视信息技术有限公司 基于NAT实现两个VoIP实体媒体互通的方法
US10412122B1 (en) * 2016-01-22 2019-09-10 Cisco Technology, Inc. Dynamic per-session NAT-behavior selection
CN109040344A (zh) * 2018-09-20 2018-12-18 杭州智块网络科技有限公司 一种nat穿透方法、装置、设备及存储介质
WO2021096497A1 (en) * 2019-11-13 2021-05-20 Unify Patente Gmbh & Co. Kg Method of determining a location of a client in a private network and communication network
US11128636B1 (en) 2020-05-13 2021-09-21 Science House LLC Systems, methods, and apparatus for enhanced headsets
CN115022279A (zh) * 2022-06-02 2022-09-06 京东科技信息技术有限公司 内网穿透方法和装置

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3017456A (en) * 1958-03-24 1962-01-16 Technicolor Corp Bandwidth reduction system for television signals
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
GB2267624B (en) * 1992-05-05 1995-09-20 Acorn Computers Ltd Image data compression
US5778143A (en) * 1993-01-13 1998-07-07 Hitachi America, Ltd. Method and apparatus for the selection of data for use in VTR trick playback operation in a system using progressive picture refresh
JPH06237451A (ja) * 1993-02-10 1994-08-23 Hitachi Ltd 動画通信方式および端末装置
CA2160343C (en) * 1993-04-13 2002-07-16 Peter J. Ahimovic System for computer supported collaboration
JPH0795571A (ja) 1993-09-27 1995-04-07 Oki Electric Ind Co Ltd 画像符号化装置、画像復号化装置及び多地点間データ伝送方法
US5592225A (en) * 1993-09-30 1997-01-07 Matsushita Electric Industrial Co., Ltd. Device and method for controlling coding
US5991308A (en) * 1995-08-25 1999-11-23 Terayon Communication Systems, Inc. Lower overhead method for data transmission using ATM and SCDMA over hybrid fiber coax cable plant
JP3068002B2 (ja) 1995-09-18 2000-07-24 沖電気工業株式会社 画像符号化装置、画像復号化装置及び画像伝送システム
US5790180A (en) * 1995-12-28 1998-08-04 At&T Corp. Video telephone call handling system and method
US5740278A (en) * 1996-02-16 1998-04-14 Cornell Research Foundation, Inc. Facsimile-based video compression method and system
US5990852A (en) * 1996-10-31 1999-11-23 Fujitsu Limited Display screen duplication system and method
US6061739A (en) * 1997-11-26 2000-05-09 International Business Machines Corp. Network address assignment using physical address resolution protocols
JP3905969B2 (ja) 1998-01-30 2007-04-18 株式会社東芝 動画像符号化装置および動画像符号化方法
US6058421A (en) * 1998-02-04 2000-05-02 3Com Corporation Method and system for addressing network host interfaces from a cable modem using DHCP
US6775276B1 (en) * 1998-05-27 2004-08-10 3Com Corporation Method and system for seamless address allocation in a data-over-cable system
US6826620B1 (en) * 1998-08-26 2004-11-30 Paradyne Corporation Network congestion control system and method
US6243749B1 (en) * 1998-10-08 2001-06-05 Cisco Technology, Inc. Dynamic network address updating
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks
US6654891B1 (en) * 1998-10-29 2003-11-25 Nortel Networks Limited Trusted network binding using LDAP (lightweight directory access protocol)
US6614781B1 (en) * 1998-11-20 2003-09-02 Level 3 Communications, Inc. Voice over data telecommunications network architecture
US6766519B1 (en) * 1999-03-26 2004-07-20 Emc Corporation Generic software interface for hardware environments having executing code registers itself and the code for a next suboperation
US6222529B1 (en) * 1999-05-05 2001-04-24 Shareware, Inc. Method and apparatus for providing multiple sessions on a single user operating system
AU2001249821A1 (en) 2000-04-07 2001-10-30 Broadcom Homenetworking, Inc. A transceiver method and signal therefor embodied in a carrier wave for a frame-based communications network
US20020059587A1 (en) * 2000-05-24 2002-05-16 Virtual Clinic, Inc. Method and apparatus for providing personalized services
US20050125532A1 (en) * 2000-05-26 2005-06-09 Gur Kimchi Traversing firewalls and nats
GB2366464A (en) 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
WO2002032009A1 (en) * 2000-10-09 2002-04-18 Koninklijke Philips Electronics N.V. Method and apparatus for the communication of information with power control
US20020067405A1 (en) * 2000-12-04 2002-06-06 Mcdiarmid James Michael Internet-enabled portable audio/video teleconferencing method and apparatus
US6973484B1 (en) * 2000-12-29 2005-12-06 3Pardata, Inc. Method of communicating data in an interconnect system
US7272650B2 (en) * 2001-04-17 2007-09-18 Intel Corporation Communication protocols operable through network address translation (NAT) type devices
US6842484B2 (en) * 2001-07-10 2005-01-11 Motorola, Inc. Method and apparatus for random forced intra-refresh in digital image and video coding
US7107464B2 (en) * 2001-07-10 2006-09-12 Telecom Italia S.P.A. Virtual private network mechanism incorporating security association processor
BR0212000A (pt) * 2001-08-23 2004-09-28 Polycom Inc Sistema e método para ocultação de erro de vìdeo
US6904040B2 (en) * 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US6693663B1 (en) * 2002-06-14 2004-02-17 Scott C. Harris Videoconferencing systems with recognition ability
US7640549B2 (en) * 2002-07-22 2009-12-29 Agilent Technologies, Inc. System and method for efficiently exchanging data among processes
US7301951B2 (en) * 2002-07-31 2007-11-27 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network
US20040022222A1 (en) * 2002-07-31 2004-02-05 Allister Clisham Wireless metropolitan area network system and method
US7302496B1 (en) * 2002-11-12 2007-11-27 Cisco Technology, Inc. Arrangement for discovering a localized IP address realm between two endpoints
US7899932B2 (en) 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7283489B2 (en) * 2003-03-31 2007-10-16 Lucent Technologies Inc. Multimedia half-duplex sessions with individual floor controls
CN1282246C (zh) * 2003-09-01 2006-10-25 上海宏力半导体制造有限公司 可阻断寄生损失电流的高功率射频集成电路及其制造方法
US7886057B2 (en) 2003-10-20 2011-02-08 Logitech Europe S.A. Method and apparatus for communicating data between two hosts
US7636805B2 (en) 2003-10-20 2009-12-22 Logitech Europe S.A. Method and apparatus for communicating data between two hosts
US7634146B2 (en) * 2003-10-20 2009-12-15 Logitech Europe S.A. Methods and apparatus for encoding and decoding video data
US7826526B2 (en) 2003-10-20 2010-11-02 Logitech Europe S.A. Methods and apparatus for encoding and decoding video data
US8116370B2 (en) 2003-10-20 2012-02-14 Logitech Europe S.A. Methods and apparatus for encoding and decoding video data
US7328282B2 (en) * 2003-10-23 2008-02-05 International Business Machines Corporation Aspect oriented web service invocation
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US7738468B2 (en) * 2005-03-22 2010-06-15 Logitech Europe S.A. Method and apparatus for packet traversal of a network address translation device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000181A1 (fr) * 2007-06-27 2008-12-31 Huawei Technologies Co., Ltd. Procédé servant à acquérir des ressources transversales, un nœud pair à pair et un système pair à pair
US8601140B2 (en) 2007-06-27 2013-12-03 Huawei Technologies Co., Ltd. Method for acquiring traversal resource, peer to peer node and peer to peer system
CN101179581B (zh) * 2007-12-13 2010-06-09 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
WO2013086869A1 (zh) * 2011-12-13 2013-06-20 华为技术有限公司 一种互联方法、装置和系统

Also Published As

Publication number Publication date
DE102006012614B4 (de) 2011-08-18
US7738468B2 (en) 2010-06-15
US20100220721A1 (en) 2010-09-02
CN100561976C (zh) 2009-11-18
US7957406B2 (en) 2011-06-07
US20060215652A1 (en) 2006-09-28
DE102006012614A1 (de) 2007-02-15

Similar Documents

Publication Publication Date Title
CN1838636A (zh) 用于使数据包穿越网络地址转换装置的方法和装置
CN1158615C (zh) 对流媒体服务器实现负载均衡的方法和设备
CN1217520C (zh) 用于转换因特网协议地址的装置和使用它的家庭网络系统
KR101028138B1 (ko) 가정 네트워크 중의 지능화 정보 가전 및 그 서브 설비에 어드레스를 분배하는 방법
CN1498489A (zh) 网络通信
CN1501659A (zh) 通信装置、边界路由器装置、服务器装置、通信系统和通信方法
CN1728671A (zh) 服务器设备及其控制方法和使用该服务器建立连接的方法
CN1863157A (zh) 穿越nat实现网络通信的方法及装置
CN1913528A (zh) 基于特征码的p2p数据报文检测方法
CN101800690B (zh) 一种使用地址池实现源地址转换的方法和装置
CN1792069A (zh) 用于提供包括多种电子设备的虚拟工作区的技术
CN101056234A (zh) 家庭网络中为智能信息家电分配地址的方法
EP2773079A2 (en) Device and method for access control list conversion
CN103201989A (zh) 控制数据传输的方法、装置和系统
CN101075991A (zh) 实现多议题讨论组及接收消息的方法、客户端与服务器
CN1926840A (zh) 在至少两台计算设备间建立连接时的地址和端口号提取
CN1713642A (zh) 数据传输系统、通信协议转换底座、地址转换方法及程序
CN101032130A (zh) 通信终端装置、电器设备、以及通信方法
CN1946061A (zh) 一种快速处理报文的方法及装置
CN1777118A (zh) 非法机器的连接位置确定装置以及连接位置确定方法
CN1741504A (zh) 基于应用的流量控制方法及进行应用流量控制的网络设备
CN101075964A (zh) 一种以路由器接口地址实现端口重定向的方法及其系统
CN104113484A (zh) 报文的转发处理方法及装置
CN104579939A (zh) 网关的保护方法和装置
CN101060488A (zh) 通信设备用连接装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant