用于互连两个子网络的设备和方法

文档序号:7794166阅读:286来源:国知局
用于互连两个子网络的设备和方法
【专利摘要】一种用于将两个子网络互连的互连设备,其中UPnP设备在上述子网络上相连:确定UPnP设备的服务器的实际IP地址和端口号;将端口号分配给每个服务器,与毫微微蜂窝式基站的UPnP设备以及与局域网的UPnP设备建立(402)连接;在通过上述连接之一接收的帧中利用互连设备的IP地址和由互连设备分配给上述服务器的端口号替换(413)每个服务器的实际IP地址和端口号;以及在上述接收的帧中利用对应服务器的IP地址和端口号替换(413)互连设备的每个IP地址和由互连设备分配给服务器的端口号。
【专利说明】用于互连两个子网络的设备和方法
[0001]本发明涉及在第一子网络与第二子网络互连的背景中根据UPnP标准实施交换,其中第一子网络为连接有网关的本地网络,该网关将第一子网络与第三子网络(如,因特网)相连接。
[0002]在移动电话领域中,femtocell (毫微微蜂窝式基站)为移动电话蜂窝系统中的基站,其提供有线的无线电覆盖范围并且通常用于家用用途。基站(被称为femto)负责管理移动电话操作者的网络通过因特网网关(英文为“Internet gateway (互联网网关)”)与femtocell 的连接。
[0003]本文中将考虑根据如在来自UPnP论坛的2008年十月15号的文件“UPnP设备架构1.1”或其修订版之一中定义的UPnP(英文为“Universal Plug n’Play (通用即插即用)”)标准的设备。鉴于因特网网关不了解由femto遮蔽的femtocell,所以不存在任何的使得本地网络中的UPnP设备和f emtoce 11的UPnP移动终端了解彼此并接触的路由规则。此外,因为本地网络与femtocell之间的地址域不同,所以如果本地网络的UPnP设备向能够在femtocell上路由的IP (如在标准文件RFC 791中定义的,英文为“ Internet Protocol (网络协议)”)发送帧,则这将导致因特网网关在因特网上传送这些帧,而这是不期望的行为。
[0004]应注意,UPnP标准定义了可通过UDP(如在标准文件RFC 768中描述的,英文为“User Datagram Protocol (用户数据报协议)”)或通过TCP (如在标准文件RFC 793中定义的,英文为“Transmiss1n Control Protocol (传输控制协议)”)传送的HTTP(如在标准文件RFC2616中定义的,英文为“Hyper Text Transfer Protocol (超文本传输协议)”)格式的数据交换。
[0005]在通过互连设备互连的两个子网络并且一个子网络连接至不了解其他子网络的网关的情况中出现这种问题。这可以是当互连设备为IP桥并且这两个子网络为LAN(英文为“Local Area Network(局域网)”)类型时的情况。这种问题还在网关允许本地网络与又一子网络互连时发生,其中上述的又一子网络为因特网或支持IP传输的另一技术。
[0006]期望的是克服现有技术的各缺点。更具体地,期望的是提供允许在位于femto两侧的UPnP设备之间交换数据和发现服务的解决方案。还期望提供这样的解决方案,其使得能够为了这些要求修改UPnP协议并且使得能够保护网关(如,因特网网关)的当前行为。
[0007]本发明涉及用于将第一子网络与第二子网络互连的互连方法,所述第一子网络为与网关相连接的本地网络,所述网关将所述第一子网络与第三子网络连接,所述第一子网络和所述第二子网络适于能够与UPnP设备进行连接,每个所述UPnP设备包括与IP地址和端口号相关联的至少一个服务器。该方法使得将第一子网络与第二子网络互连的所述互连设备执行以下步骤:为所述第一子网络和所述第二子网络确定UPnP设备的服务器的实际IP地址和端口号;为每个所述服务器分配端口号;在接收到与由所述互连设备分配给一个所述服务器的端口号相对应的连接请求时,在所述互连设备与所述一个服务器之间以及在所述互连设备与发送所述连接请求的所述UPnP设备之间建立连接;以及在由所述互连设备通过所述连接之一接收的至少一个帧中:利用所述互连设备的能够用于在所述第一子网络和所述第二子网络中不与属于所述帧所发送自的子网络的服务器相连接的子网络上路由数据的IP地址以及由所述互连设备分配给属于所述帧所发送自的子网络的所述服务器的端口号替换属于所述帧所发送自的子网络的所述服务器的每个实际IP地址和端口号;以及利用对应服务器的IP地址和端口号替换所述互连设备的能够在所述帧所发送自的子网络上使用的每个IP地址与由所述互连设备分配给服务器的端口号。
[0008]这种双连接以及替换成对IP地址和端口号的实施允许在位于互连设备两侧的UPnP设备之间发现服务和交换数据,其中在这种双连接中,互连设备执行中继装置的作用。此外,UPnP协议未被修改并且网关(如因特网网关)的当前行为被保护。
[0009]根据具体的实施方式,所述互连设备从由所述服务器在UPnP发现阶段中传输的UDP数据报确定所述服务器的实际IP地址和端口号,以及对于每个所述UDP数据报,所述互连设备执行以下步骤:利用所述互连设备的能够用于在所述第一子网络和所述第二子网络中未与属于所述UDP数据报所发送自的子网络的服务器相连接的子网络上路由数据的IP地址以及由所述互连设备分配给属于所述UDP数据报所发送自的子网络的所述服务器的所述端口号替换属于所述UDP数据报所发送自的子网络的所述服务器的每个实际IP地址和端口号;以及利用对应服务器的IP地址和端口号替换所述互连设备的能够在所述UDP数据包所发送自的子网络上使用的每个IP地址和由所述互连设备分配给服务器的端口号。
[0010]根据具体的实施方式,所述互连设备首先在所述第一子网络和所述第二子网络中的每个上订购在UPnP发现阶段中传输的多播UDP数据报所发送至的预定IP地址和端口号,并且收听传输至所述互连设备的所述IP地址及由所述互连设备分配给所述服务器的所述端口号的UDP数据报。这涉及构成这些多播UDP数据报的响应的单播UDP数据报和多播m)P数据报。
[0011]根据具体的实施方式,第二子网络为femtocell,以及当互连设备在femtocell中检测到存在UPnP移动终端时,互连设备在第一子网络和第二子网络中的每个上订购所述预定的IP地址和端口号。
[0012]根据具体的实施方式,所述互连设备从通过TCP帧传送的HTTP帧确定所述服务器的实际IP地址和端口号,其中由所述互连设备通过所述连接接收所述TCP帧。
[0013]根据具体的实施方式,互连设备执行以下步骤:检查服务器的实际端口号是否已由所述互连设备分配给另一服务器;在所述服务器的实际端口号已由所述互连设备分配给另一服务器的情况下,将同一端口号分配给所述服务器作为所述实际端口号;否则将另一端口号分配给所述服务器。
[0014]根据具体的实施方式,所述互连设备分析HTTP报头,所述HTTP报头处于由所述互连设备通过所述连接之一接收的所述帧中,以及仅当所述HTTP报头的CONTENT-TYPE字段为文本类型时,所述互连设备执行帧修改。
[0015]根据具体的实施方式,所述互连设备分析HTTP报头,所述HTTP报头处于由所述互连设备通过所述连接之一接收的所述帧中,以及如果HOST字段存在于上述HTTP报头中,所述互连设备执行以下步骤:如果包括在所述HOST字段中的IP地址为服务器地址,则利用所述互连设备的IP地址来替换包括在所述HOST字段中的所述IP地址,其中所述互连设备的所述IP地址能够用于在所述第一子网络和所述第二子网络中未与所述服务器相连接的子网络上路由数据;如果包括在所述HOST字段中的所述IP地址为所述互连设备的IP地址,则利用建立有所述连接并且与所述第一子网络和所述第二子网络中未与所述帧所接收自的子网络相连接的服务器的IP地址来替换包括在所述HOST字段的所述IP地址。
[0016]根据具体的实施方式,在建立了所述连接之后,所述互连设备执行以下步骤:激活具有预定持续时间的计时器;验证至少一个所述帧是否由所述互连设备通过至少一个所述连接接收的;以及当在所述计时器到期之前所述互连设备通过至少一个所述连接未接收到帧时,关闭所述连接。
[0017]根据具体的实施方式,所述互连设备还在通过所述连接之一接收到用于所述连接的连接关闭请求时关闭所述连接。
[0018]根据具体的实施方式,第二子网络为femtocell,以及所述网关为因特网网关。
[0019]本发明还涉及用于将第一子网络与第二子网络互连的互连设备,所述第一子网络为与网关相连接的本地网络,所述网关将所述第一子网络与第三子网络连接,所述第一子网络和所述第二子网络适于能够与UPnP设备进行连接,每个所述UPnP设备包括至少一个与IP地址和端口号相关联的服务器。所述互连设备包括:确定装置,用于为所述第一子网络和所述第二子网络确定UPnP设备的服务器的实际IP地址和端口号;分配装置,用于为每个所述服务器分配端口号;建立装置,用于在接收到与由所述互连设备分配给一个所述服务器的端口号相对应的连接请求时,在所述互连设备与所述一个服务器之间以及在所述互连设备与发送所述连接请求的所述UPnP设备之间建立连接;接收装置,用于通过所述连接之一接收至少一个帧;用于利用所述互连设备的能够用于在所述第一子网络和所述第二子网络中不与属于所述帧所发送自的子网络的服务器相连接的子网络上路由数据的IP地址以及由所述互连设备分配给属于所述帧所发送自的子网络的所述服务器的端口号替换属于所述帧所发送自的子网络的所述服务器的每个实际IP地址和端口号的装置;以及用于利用对应服务器的IP地址和端口号替换所述互连设备的能够在所述帧所发送自的子网络上使用的每个IP地址和由所述互连设备分配给服务器的端口号的装置。
[0020]根据具体的实施方式,所述互连设备包括:发现助手模块,适于分析和修改在UPnP发现阶段中由服务器传输的UDP数据报;地址转换模块,适于分析和修改由服务器通过所述连接传输的HTTP帧。
[0021]根据具体的实施方式,第二子网络为femtocell,以及所述网关为因特网网关。
[0022]本发明还涉及计算机程序,为了由处理器读取,该计算机程序可存储在媒介上和/或从通信网络下载。该计算机程序包括用于当该计算机程序由处理器执行时实施上述方法的指令。本发明还涉及包括这种计算机程序的存储装置。
[0023]通过阅读下面参照附图给出的示例性实施方式的描述,本发明的上述及其他特征将更清楚地呈现,在附图中:
[0024]-图1示意性示出了可用于实施本发明的通信网络;
[0025]-图2示意性示出了通信网络的femto的架构的示例;
[0026]-图3示意性示出了由femto实施的HTTP服务器发现算法;
[0027]-图4示意性示出了由femto实施的用于修改通过TCP连接传输的HTTP帧的算法;
[0028]-图5示意性示出了由femto实施的用于从对应于HTTP服务器的IP地址和端口号获得由femto分配的端口号的算法;
[0029]-图6示意性示出了由femto实施的用于从由femto分配的端口号获得与HTTP服务器相对应的IP地址和端口号的算法。
[0030]在下文中,本发明实施在LAN类型的第一子网络与femtocell类型的第二子网络进行互连的背景中,并且第一子网络与因特网网关相连接。如上文所提到的,本发明还可实施在第一子网络与第二子网络进行互连的背景中,例如第一子网络和第二子网络均为LAN类型,网关将第一子网络和第二子网络之一与第三子网络相连接,其中第三子网络提供包在IP层的路由并且不了解第一子网络和第二子网络中另一子网络。
[0031]图1示意性示出了可用于实施本发明的通信网络100。通信网络100包括LAN类型的第一子网络101和femtocell (毫微微蜂窝式基站)类型的第二子网络102。第一子网络101和第二子网络102通过基站111互连,其中基站111负责管理第二子网络102。因此基站111为第一子网络101与第二子网络102之间的互连设备。下文中基站111被称为femto,第一子网络被称为LAN以及第二子网络被称为femtocell。
[0032]LAN 101例如为根据以太网标准(如由IEEE 802.3定义)或根据由IEEE 802.11定义的WiFi标准的网络。
[0033]因特网网关110连接至LAN 101并且使得LAN 101能够与因特网103互连。因特网网关110在LAN 101与因特网103之间路由IP包。还优选通过DHCP (如在标准文件RFC1531及其修订版中所定义的,英文为“Dynamic Host Configurat1n Protocol (动态主机配置协议)”)实现IP主机的动态配置功能。
[0034]LAN 101还连接有至少一个实施UPnP标准的设备140和141。优选地,设备140为 UPnP 控制点(英文为 “UPnP control point (UPnP 控制点),,)。
[0035]femtocell 102连接有至少一个同样实施UPnP标准的移动终端130和131。
[0036]femto 111包括第一模块121,第一模块121被称为发现助手并使得与LAN 101相连接的UPnP设备能够发现与femtocell 102相连接的UPnP移动终端及其UPnP服务,反之亦然。femto 111包括第二模块122,第二模块122被称为HTTP NAT (NAT的英文为“NetworkAddress Translator (网络地址转换器)”或法文为“Traducteur d’Adresse R6seau (网络地址转换器)”)并提供与LAN 101相连接的UPnP设备和与femtocell 102相连接的UPnP移动终端之间的通信,反之亦然。术语HTTP NAT来源于在传输层以及在HTTP层进行地址转换的事实。下文中将参照图3至图6详细描述发现助手121和HTTP NAT 122的操作。
[0037]图2示意性示出了 femto 111的架构的示例。femto 111包括通过通信总线210连接的以下装置:处理器或CPU (英文为“Central Processing Unit (中央处理单元)”)200 ;随机存取存储器RAM(英文为“Random Access Memory (随机存取存储器)”)201 ;只读存储器R0M(英文为“Read Only Memory (只读存储器)”)202 ;存储单元或存储媒介读取器,如硬盘驱动器HDD (英文为“Hard Disk Drive (硬盘驱动器)”)203 ;通信接口 204,用于形成femtocell 102并与移动终端130,131进行通信;以及通信接口 205,用于与LAN 101相连接并与设备140,141进行通信。
[0038]处理器200能够执行从ROM 202、外部存储器(未示出)、存储媒介(如HDD 203)或通信网络加载到RAM 201中的指令。当femtolll被供能时,处理器200能够从RAM 201读取指令并执行这些指令。来自计算机程序的这些指令致使通过处理器200实施下面将描述的算法中的一些或全部。下面将描述的算法中的一些或者全部可通过由可编程机器(如DSP (英文为“Digital Signal Processor (数字信号处理器)”)或微控制器)执行一组指令来以软件形式实施,或者可通过由机器或专用部件(如FPGA (英文为“FieId-ProgrammabIeGate Array (现场可编程门阵列)”)或 ASIC (英文为“Applicat1n-Specific IntegratedCircuit(专用集成电路)”))以硬件形式实施。
[0039]图3示意性示出了通过femto 111实施的用于发现HTTP服务器的算法。在图1的背景中,更具体地,通过发现助手121来实施该算法。
[0040]在步骤301中,发现助手121在femtocell 102和LAN 101上订购IP多播地址和端口,其中UPnP设备向该端口发送发现消息。根据UPnP标准,该IP地址为“239.255.255.250”,并且该端口号为 “1900”。因此,当与 femtocell 102 或 LAN 101 相连接的UPnP设备启动发现阶段时,发现助手121接收每个对应的UDP帧。这是因为,根据UPnP标准,通过SSDP协议(英文为“Simple Service Discovery Protocol (简单服务发现协议)”)传输关于发现的帧,即以HTTP格式封装在UDP数据报中。
[0041]在具体的实施方式中,当femto 111检测到femtocell 102中存在UPnP移动终端时,发现助手121在femtocell 102和LAN 101上执行这些订购。
[0042]在后面的步骤302中,发现助手121接收旨在用于IP地址“239.255.255.250”和端口号“ 1900”的多播UDP帧。
[0043]在后面的步骤303中,发现助手121在接收的帧中寻找HTTP服务器。发现助手121然后对接收的UDP帧进行扫描,以检测属于子网络、femtocell 102或LAN 101的设备的IP地址,其中该接收的UDP帧从该子网络、femtocell 102或LAN 101发出。具体地,发现助手121分析LOCAT1N字段。如果该IP地址伴随有端口,则检测到HTTP服务器并且向HTTP NAT 122提供由该IP地址和该端口号所形成的组。HTTP NAT 122然后返回端口号,在后面的步骤304中发现助手121获得该端口号。下面将参照图5描述由HTTP NAT 122进行的端口号的分配。
[0044]在后面的步骤305中,发现助手121以这样的方式来修改接收的UDP帧:通过利用femto的IP地址和HTTP NAT 122所提供的端口号分别替换检测到的HTTP服务器的IP地址和端口号。femto的该IP地址为在子网络、femtocell 102或LAN 101上分配给femto的IP地址而不是检测到的HTTP服务器所连接至的IP地址。这些因为femto 111具有两个IP地址,一个IP地址用于在femtocell 102中路由IP帧,另一个IP地址用于在LAN 101中路由IP帧。重复步骤303至步骤305,直到已完全分析了接收的帧。
[0045]在后面的步骤306中,发现助手121在其他子网络、femtocell 102或LAN 101上发送修改的UDP帧,即非步骤302中的UDP帧所来自的子网络。
[0046]在后面的步骤307中,发现助手121确定步骤305中的接收的UDP帧是否需要响应。这就是具有搜索消息(英文为“搜索消息(search message) ”,根据UPnP标准,搜索消息还被称为M-SEARCH消息)的情况。如果步骤305中的接收的UDP帧需要响应,执行步骤308 ;否则发现助手121等待新的多播UDP帧,并且重复步骤302。
[0047]在步骤308中,发现助手121收听传输至femto 111的IP地址和分配给HTTP服务器的端口号的UDP数据报,并接收期望的响应。然后在后面的步骤309中,发现助手121在接收的响应中搜索HTTP服务器。发现助手121对接收的响应进行扫描,以检测设备的IP地址。如果该IP地址不是femto 111的IP地址并且伴随有端口,则检测到HTTP服务器并向HTTP NAT 122提供由该IP地址和该端口号所形成的组。HTTP NAT 122然后返回端口号,在后面的步骤310中发现助手121获得该端口号。如果该IP地址是femto 111的IP地址,则向HTTP NAT 122提供该IP地址和响应中与该IP地址相关联的端口号。HTTP NAT122反过来提供由HTTP服务器的实际IP地址和端口号所形成的组。
[0048]在后面的步骤311中,发现助手121通过利用由HTTP NAT 122提供的端口号和femto 111的用于在未与检测到的HTTP服务器相连接的子网络上路由IP帧的IP地址分别替换检测到的HTTP服务器的端口号和IP地址来修改接收的响应,或通过利用HTTP服务器的实际IP地址和端口号分别替换femto 111的IP地址及相关联的端口号来修改接收的响应。重复步骤309至步骤311,直到已完全分析了接收的响应。
[0049]在后面的步骤312中,发现助手121在其他子网络、femtocell 102或LAN 101上发送修改的响应,即非步骤308中的响应所来自的子网络。然后发现助手121等待新的多播UDP帧,并且重复步骤302。
[0050]以这种方式,在子网络、femtocell 102或LAN 101之一上启动的发现阶段通过femto 111扩展至其他子网络。通过利用femto 111的适当IP地址和由femto 111分配的端口号替换由子网络的设备的IP地址和端口号所形成的组,每个UPnP服务从femto 111的另一侧来观察就像是由femto 111实施的。
[0051]图4示意性示出了由femto 111实施的用于修改在UPnP标准的背景下通过TCP连接交换的HTTP帧的算法。在图1的背景中,更具体地,通过HTTP NAT 122来实施该算法。
[0052]在步骤401中,HTTP NAT 122接收来自存在于子网络、femtocelll02或LAN 101之一上的控制点或UPnP设备的TCP连接请求。这是因为,在发现阶段之外,在UPnP标准的背景下交换的消息使用TCP/IP协议。该连接请求发送至femto并且指定端口号。然后HTTPNAT122寻找之前分配有该端口号的HTTP服务器,这指示实际所要发送至的HTTP服务器。
[0053]在后面的步骤402中,HTTP NAT 122与femto每一侧上的UPnP设备建立连接。换句话说,在请求UPnP设备与femto 111之间建立第一 TCP连接,在femto 111与实际所要发送至的HTTP服务器之间建立第二 TCP连接,femto 111在这些TCP连接之间执行中继装置的作用。对于HTTP NAT 122来说,这些连接相互关联。
[0054]在后面的步骤403中,HTTP NAT 122启动具有预定持续时间的计时器并等待TCP帧。如果在该计时器到期时HTTP NAT 122未接收到任何TCP帧,则HTTP NAT 122在步骤405中在TCP中继装置的背景中关闭两个相关联的连接。因此仅维持了实际有用的TCP连接。如果HTTP NAT 122从HTTP服务器或UPnP控制点接收到连接关闭请求,则情况也是如此。然后算法结束。否则,当接收到至少一个TCP帧时,HTTP NAT 122执行步骤404。
[0055]在后面的步骤404中,HTTP NAT 122从UPnP设备140或从UPnP移动终端130接收TCP帧,以及在后面的步骤406中,HTTP NAT 122分析TCP帧,以判断该TCP帧是否为HTTP帧的第一 TCP帧。如果该TCP帧为HTTP帧的第一 TCP帧,则HTTP NAT 122接收TCP帧,直到恢复了整个HTTP报头。HTTP NAT 122分析该报头,以确定CONTENT-TYPE字段是否指示“文本(text),,类型的 MIME (英文为 “Multipurpose Internet Mail Extens1ns (多目的网络邮件扩充)”)。这是因为在UPnP标准的背景中交换的消息的CONTENT-TYPE字段指示“文本(法文为“texte (文本)”)”类型的MME扩充。这样允许在修改IP地址及相关联的端口的背景中不扫描不涉及UPnP标准的帧,并因此保护了 HTTP NAT 122的资源。因此,在后面的步骤407中,HTTP NAT 122检查CONTENT-TYPE字段是否指示“文本”类型的MME扩充。如果CONTENT-TYPE字段指示“文本”类型的MME扩充,则执行步骤409 ;否则执行步骤408。
[0056]在步骤408中,HTTP NAT 122通过其他子网络重传输接收的TCP帧数据而不进行任何改变。因为可通过多个TCP帧来接收HTTP帧,所以这些帧的数据通过其他网络进行重传输而没有改变。HTTP NAT122然后等候新的数据,并重复步骤403。
[0057]在步骤409中,HTTP NAT 122恢复整个HTTP帧,其中可通过多个TCP帧来接收该HTTP 帧。CONTENT-LENGTH 字段使得 HTTP NAT 122 能够确定 HTTP 帧的大小。HTTP NAT 122在恢复的HTTP帧中搜索HTTP服务器。HTTP NAT 122对接收的HTTP帧进行扫描,以检测设备的IP地址。如果该IP地址是femto 111的IP地址,则该IP地址以及接收的HTTP帧中与该IP地址相关联的端口号使得HTTP NAT 122能够发现由HTTP服务器的实际IP地址和端口号所形成的组。如果该IP地址不是femto 111的IP地址并且伴随有端口,则检测到HTTP服务器。然后HTTP NAT 122在后面的步骤410中确定是否已知该HTTP服务器,即例如是否之前由发现助手121检测到该HTTP服务器。如果HTTP服务器对于HTTP NAT 122是已知的,则执行步骤413,否则执行步骤411。
[0058]根据femto 111的在未与检测到的HTTP服务器相连接的子网络上可用的IP地址和分配的端口号,在步骤411中,HTTP NAT 122向检测到的HTTP服务器分配端口号并在步骤412中将检测到的HTTP服务器增加至已知HTTP服务器列表中。这样使得能够在数据通过在TCP帧中传送的HTTP协议进行交换的过程中直接发现UPnP设备。然后执行步骤413。
[0059]在步骤413中,HTTP NAT 122通过利用由HTTP NAT 122提供的端口号和femto111的在未与HTTP服务器相连接的子网络上可用的IP地址分别替换检测到的HTTP服务器的端口号和IP地址来修改接收的响应,或通过利用HTTP服务器的实际IP地址和端口号替换femtolll的IP地址及相关联的端口号来修改接收的响应。重复步骤409至步骤413,直到已完全分析了接收的HTTP帧。
[0060]特殊情况涉及HTTP报头的HOST字段,因为其包括IP地址但不包括端口。然后HTTP NAT 122按如下方式处理HOST字段。如果是UPnP设备或UPnP移动终端在子网络之一上的IP地址,则其替换为femto 111的能够在其他子网络上进行路由的IP地址。如果是femto的IP地址,则其由相关的HTTP服务器的IP地址进行替换。在这种情况下,HTTPNAT 122不需要端口号,因为HOST字段可仅表示具有相关联的TCP连接的设备之一。如果包括在HOST字段中的IP地址为HTTP服务器地址,则HTTP NAT 122利用互连设备的IP地址来替换该IP地址,其中互连设备的IP地址能够用于在未与上述HTTP服务器相连接的子网络上路由数据。如果包括在HOST字段中的IP地址为femto 111的IP地址,则HTTP NAT122利用建立有连接并且与非HTTP帧所接收自的子网络相连接的服务器的IP地址来替换该IP地址。
[0061 ] 根据对HTTP帧做出的改变,CONTENT-LENGTH字段可能必须改变,以表示HTTP帧的新的大小。
[0062]在后面的步骤414中,HTTP NAT 122在其他子网络、femtocell 102或LAN 101上发送修改的HTTP帧,即非在步骤404中的HTTP帧所来自的子网络。HTTP帧通过TCP协议,通过存在于femto 111与其他子网络上的UPnP设备或UPnP移动终端之间的连接进行传送。HTTP NAT 122然后等候新的数据,并重复步骤403。
[0063]图5示意性示出了由femto 111实施的用于从HTTP服务器的实际IP地址和端口号获得由femto 111分配的端口号的算法。在图1的背景中,更具体地,通过HTTP NAT 122来实施该算法。
[0064]在步骤501中,HTTP NAT 122获得由HTTP服务器的实际IP地址和端口号所形成的组。该信息在步骤303或在步骤309中由发现系统121提供,或在步骤409中由HTTP NAT122获得。
[0065]在后面的步骤502中,HTTP NAT 122找出该HTTP服务器是否列在HTTP NAT 122已知的HTTP服务器列表中。根据分配至HTTP NAT 122的端口号以及femto 111的在未与HTTP服务器相连接的子网络上可用的IP地址,该列表包括HTTP NAT 122已知的HTTP服务器的成对的IP地址和端口号。
[0066]在后面的步骤502中,HTTP NAT 122确定HTTP服务器是否是已知的。如果HTTP服务器是已知的,则执行步骤504 ;否则执行步骤506。
[0067]在步骤504中,HTTP NAT 122向该HTTP服务器分配端口号。例如,如果HTTP服务器的端口号还未分配给同一子网络上的另一 HTTP服务器并且存在于HTTP NAT 122已知的HTTP服务器列表中,则HTTP NAT 122保持该HTTP服务器的端口号;否则HTTP NAT 122分配另一端口号,该另一端口号还未分配给处于同一子网络上且存在于列表中的HTTP服务器。根据由HTTP NAT 122分配的端口号以及femto 111的在未与HTTP服务器相连接的子网络上可用的IP地址,在后面的步骤505中,HTTP NAT 122将该HTTP服务器增加至HTTPNAT 122已知的HTTP服务器列表中,即HTTP NAT 122存储HTTP服务器的实际IP地址和端口号。然后执行步骤506。
[0068]在步骤506中,HTTP NAT 122至少返回HTTP NAT 122已分配至HTTP服务器的端□号。
[0069]图6示意性示出了由femto 111实施的用于从由femto 111分配的端口号和femto 111的IP地址获得HTTP服务器的实际IP地址和端口号的算法。在图1的背景中,更具体地,通过HTTP NAT 122来实施该算法。
[0070]在步骤601中,HTTP NAT 122获得HTTP NAT 122之前分配给HTTP服务器的端口号以及femto 111的与该端口相关联的IP地址。该信息在步骤309由发现助手121提供,或在步骤409中由HTTP NAT122获得。
[0071]在后面的步骤602中,根据femto 111的该IP地址以及由HTTP NAT 122分配的该端口号,HTTP NAT 122找出哪个HTTP服务器列在HTTP NAT 122已知的HTTP服务器列表中。
[0072]在后面的步骤603中,HTTP NAT 122返回如列在HTTP NAT 122已知的HTTP服务器列表中的HTTP服务器的实际IP地址和端口号所形成的组。
【权利要求】
1.一种用于将第一子网络与第二子网络互连的互连方法,所述第一子网络为连接有网关(110)的本地网络(101),所述网关将所述第一子网络与第三子网络连接,所述第一子网络和所述第二子网络能够与UPnP设备(130 ;140)进行连接,每个所述UPnP设备包括至少一个与IP地址和端口号相关联的服务器,其特征在于,将所述第一子网络与所述第二子网络互连的互连设备(111)执行以下步骤: -为所述第一子网络和所述第二子网络确定(303 ;309 ;409)UPnP设备的服务器的实际IP地址和端口号; -为每个所述服务器分配(504)端口号; -在接收到与由所述互连设备分配给一个所述服务器的端口号相对应的连接请求时,在所述互连设备与所述一个服务器之间以及在所述互连设备与发送所述连接请求的所述UPnP设备之间建立(402)连接; 以及,在由所述互连设备通过所述连接之一接收的至少一个帧中: -利用所述互连设备的能够用于在所述第一子网络和所述第二子网络中不与属于所述帧所发送自的子网络的服务器相连接的子网络上路由数据的IP地址以及由所述互连设备分配给属于所述帧所发送自的子网络的所述服务器的端口号替换(413)属于所述帧所发送自的子网络的所述服务器的每个实际IP地址和端口号; -利用对应服务器的IP地址和端口号替换(413)所述互连设备的能够在所述帧所发送自的子网络上使用的每个IP地址和由所述互连设备分配给服务器的端口号。
2.根据权利要求1所述的互连方法,其特征在于,所述互连设备从由所述服务器在UPnP发现阶段中传输的UDP数据报确定所述服务器的实际IP地址和端口号,以及对于每个所述UDP数据报,所述互连设备执行以下步骤: -利用所述互连设备的能够用于在所述第一子网络和所述第二子网络中未与属于所述UDP数据报所发送自的子网络的服务器相连接的子网络上路由数据的IP地址以及由所述互连设备分配给属于所述UDP数据报所发送自的子网络的所述服务器的所述端口号替换(305 ;311)属于所述UDP数据报所发送自的子网络的所述服务器的每个实际IP地址和端□号; -利用对应服务器的IP地址和端口号替换(305 ;311)所述互连设备的能够在所述UDP数据报所发送自的子网络上使用的每个IP地址和由所述互连设备分配给服务器的端口号。
3.根据权利要求2所述的互连方法,其特征在于,所述互连设备首先在所述第一子网络和所述第二子网络中的每个上订购(301)在所述UPnP发现阶段中传输的多播UDP数据报所发送至的预定IP地址和端口号,并且收听传输至所述互连设备的所述IP地址及由所述互连设备分配给所述服务器的所述端口号的UDP数据报。
4.根据权利要求3所述的互连方法,其特征在于,所述第二子网络为毫微微蜂窝式基站(102),当所述互连设备检测到所述毫微微蜂窝式基站中存在UPnP移动终端时,所述互连设备在所述第一子网络和所述第二子网络中的每个上订购所述预定IP地址和端口号。
5.根据权利要求1至5中任一项所述的互连设备,其特征在于,所述互连设备从通过TCP帧传送的HTTP帧确定(409)所述服务器的实际IP地址和端口号,其中由所述互连设备通过所述连接接收所述TCP帧。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述互连设备执行以下步骤: -检查服务器的实际端口号是否已由所述互连设备分配给另一服务器; -在所述服务器的实际端口号已由所述互连设备分配给另一服务器的情况下,将同一端口号分配给所述服务器作为所述实际端口号; -否则将另一端口号分配给所述服务器。
7.根据权利要求1至6中任一项所述的互连方法,其特征在于,所述互连设备分析(406)HTTP报头,所述HTTP报头处于由所述互连设备通过所述连接之一接收的所述帧中,以及所述互连设备仅当所述HTTP报头的CONTENT-TYPE字段为文本类型时进行帧修改。
8.根据权利要求1至7中任一项所述的互连方法,其特征在于,所述互连设备分析HTTP报头,所述HTTP报头处于由所述互连设备通过所述连接之一接收的所述帧中,以及如果HOST字段存在于所述HTTP报头中,则所述互连设备执行以下步骤: -如果包括在所述HOST字段中的IP地址为服务器地址,则利用所述互连设备的IP地址来替换包括在所述HOST字段中的所述IP地址,其中所述互连设备的所述IP地址能够用于在所述第一子网络和所述第二子网络中未与所述服务器相连接的子网络上路由数据;以及 -如果包括在所述HOST字段中的所述IP地址为所述互连设备的IP地址,则利用建立有所述连接并且与所述第一子网络和所述第二子网络中非所述帧所接收自的子网络相连接的服务器的IP地址来替换包括在所述HOST字段的所述IP地址。
9.根据权利要求1至8中任一项所述的互连方法,其特征在于,在建立所述连接之后,所述互连设备执行以下步骤: -激活具有预定持续时间的计时器; -验证至少一个所述帧是否由所述互连设备通过至少一个所述连接接收的; -当在所述计时器到期之前所述互连设备通过至少一个所述连接未接收到帧时,关闭所述连接。
10.根据权利要求9所述的互连方法,其特征在于,所述互连设备还在通过所述连接之一接收到用于所述连接的连接关闭请求时关闭所述连接。
11.根据权利要求1至10中任一项所述的互连方法,其特征在于,所述第二子网络为毫微微蜂窝式基站(102),以及所述网关为因特网网关。
12.—种用于将第一子网络与第二子网络互连的互连设备(111),所述第一子网络为连接有网关(110)的本地网络(101),所述网关(110)将所述第一子网络与第三子网络连接,所述第一子网络和所述第二子网络适于能够与UPnP设备(130;140)进行连接,每个所述UPnP设备包括至少一个与IP地址和端口号相关联的服务器,其特征在于,所述互连设备包括: -确定装置,用于为所述第一子网络和所述第二子网络确定UPnP设备的服务器的实际IP地址和端口号; -分配装置,用于为每个所述服务器分配端口号; -建立装置,用于在接收到与由所述互连设备分配给一个所述服务器的端口号相对应的连接请求时,在所述互连设备与所述一个服务器之间以及在所述互连设备与发送所述连接请求的所述UPnP设备之间建立连接; -接收装置,用于通过所述连接之一接收至少一个帧;以及 -用于利用所述互连设备的能够用于在所述第一子网络和所述第二子网络中不与属于所述帧所发送自的子网络的服务器相连接的子网络上路由数据的IP地址以及由所述互连设备分配给属于所述帧所发送自的子网络的所述服务器的端口号替换属于所述帧所发送自的子网络的所述服务器的每个实际IP地址和端口号的装置;以及 -用于利用对应服务器的IP地址和端口号替换所述互连设备的能够在所述帧所发送自的子网络上使用的每个IP地址和由所述互连设备分配给服务器的端口号的装置。
13.根据权利要求12所述的互连设备,其特征在于,所述互连设备包括: -发现助手模块(121),适于分析和修改在UPnP发现阶段中由服务器传输的UDP数据报;以及 -地址转换模块(122),适于分析和修改由服务器通过所述连接传输的HTTP帧。
14.根据权利要求12和13中任一项所述的互连设备,其特征在于,所述第二子网络为毫微微蜂窝式基站(102),以及所述网关为因特网网关。
15.—种计算机程序,其特征在于,所述计算机程序包括指令,所述指令用于当所述计算机程序由互连设备的处理器执行时,通过所述互连设备实施根据权利要求1-11中任一项所述的方法。
16.—种存储装置,其特征在于,所述存储装置存储计算机程序,所述计算机程序包括指令,所述指令用于当所述程序由互连设备的处理器执行时通过所述互连设备实施根据权利要求1-11中任一项所述的方法。
【文档编号】H04L12/28GK104488232SQ201380038692
【公开日】2015年4月1日 申请日期:2013年5月17日 优先权日:2012年5月22日
【发明者】史蒂芬·科林 申请人:萨热姆通信宽带简易股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1