避免网络地址冲突的系统和方法

文档序号:7625084阅读:227来源:国知局
专利名称:避免网络地址冲突的系统和方法
技术领域
本发明一般涉及用于避免网络地址冲突的系统、方法和计算机可读介质,更具体地涉及用于避免网络地址冲突例如由设置在多个活动网络内的计算机设备所遇到的网络地址冲突的有利的系统、方法和计算机程序产品。
背景技术
今天的漫游职员可能需要从各种地点例如客户的办公室、该职员的家中、场外会见地点、咖啡店等等访问存储在其雇主的专用通信网络内的公司信息和应用。该漫游用户可能是在进行销售访问时需要最新预发布产品的信息的推销员。或者可能地,该漫游职员需要与另一漫游职员相互协作以发展一套推销说辞。IBM的Websphere Everyplace Connection Manager(WECM)是一种使移动设备能够访问远程专用网络以及允许局域网(LAN)中的移动设备访问广域网(WAN)的软件应用。如IBM的WECM的应用通常利用虚拟专用网(VPN)来建立在该移动设备和存在于雇主的专用通信网络中的资源之间的通信连接。
虚拟专用网是远程办公室或个人用户可利用公共电信基础设施例如因特网或公共交换电话网(PSTN)来获得对其组织的网络的安全访问的一种方法。可将虚拟专用网与只能由一个组织使用的昂贵的自有或租用线路系统相对照。VPN的目标是向组织提供与昂贵的自有或租用线路系统同样的能力,但其成本却远为低廉。
可在点对点网络或对等网络上建立VPN。在点对点网络中,通常使用一点对点协议(PPP)来将网络地址分配给VPN客户。在对等网络中,通常使用一动态主机配置协议(DHCP)来将网络地址分配给VPN客户。
在与目标网络建立会话期间,VPN服务器将嵌入在网际协议(IP)地址中的网络地址分配给VPN客户。在VPN客户本身不在网络上的典型操作中,VPN客户利用分配的IP地址来访问目标网络中的信息资源。但是,当VPN客户在今天的移动工作人员环境中正变得更为普遍,并且今天的移动计算机从现有网络例如存在于当地咖啡店等等的网络访问VPN时,要求VPN客户在其上运行的移动计算机设备以多个IP地址操作。
在过去,只有路由器或网桥通常需要多个网络地址以在多个网络上通信。通常,路由器和网桥不是移动的,因此它们的网络地址一般是静态指定的。与路由器和网桥不同,今天的移动计算机设备可能连接到本地无线网络和远程VPN网络这两者,其中这两个网络提供自动的或动态的网络地址。
无论是在PPP协议、DHCP协议、或专有协议中,当连接到一预先存在的网络的VPN客户试图建立与目标网络的会话时,目标网络的VPN服务器会试图将一网络地址分配给该VPN客户,而该VPN客户已经由在该起始网络中运行该VPN客户的计算机设备利用。结果,会发生网络地址冲突,并通常使得两个网络都无法由该VPN客户运行于其上的计算机设备所访问。如果所述预先存在的网络是由管理所述目标网络的同一管理实体所管理的,则其地址分配方案将为该管理实体所了解,于是该管理实体可根据该已知的地址分配方案来分配网络地址以避免冲突,因为该管理实体了解每个网络。然而,在各网络由不同的管理实体所管理时,单个实体不了解两个网络的地址分配方案,从而冲突更容易发生。

发明内容
在其若干方面中,由于由服务器计算机提供的各网络地址的潜在冲突,本发明认识到,需要提供一种用于消除或减少客户计算机在多个通信网络上通信时试图利用同一网络地址的风险。本发明还认识到,需要系统、方法和计算机可读介质来解决网络地址的潜在冲突的风险。此外,本发明认识到消除客户计算机在多个通信网络上通信时试图利用同一网络地址的风险的价值。
在其若干方面中,本发明提供了用于避免当计算机在连接到起始网络的情况下试图访问目标网络时的网络地址冲突的系统、方法、和计算机程序产品。为此,该方法包括以第一地址在起始网络上标识计算机。该第一地址包括第一网络地址。该计算机随后请求连接到目标网络。响应于该连接请求,将具有第二网络地址的第二地址返回给该计算机。比较所述第一网络地址和第二网络地址,以确定是否存在冲突。如果存在,则报告该第二网络地址处于冲突中。作为例子,可请求并比较另一网络地址,直到获得一非冲突的网络地址,从而避免了冲突。
从以下详细描述和附图,显然可以更完整地理解本发明以及本发明的进一步的特征和优点。


图1示出了其中可有利地使用本发明的示例性网络环境。
图2的示例性流程图示出了在图1的网络环境中根据本发明接收用于VPN会话的网际协议(IP)地址的消息流。
图3A的表包含由图2的地址请求者接收的用于图1的起始网络的示例性IP地址和网络掩码。
图3B的表包含发送自图2的远程地址服务器的地址确认中携带的示例性IP地址和网络掩码。
图3C和3D的表包含来自图2的远程地址服务器的第二地址确认中携带的第二示例性IP地址和网络掩码。
图4的流程图示出了根据本发明避免网络地址冲突的方法。
具体实施例方式
现在将参照附图更全面地描述本发明,在附图中示出了本发明的几个当前优选实施例。然而,本发明可体现为多种形式,而不应被理解为局限于这里提出的实施例。相反,提供这些实施例是为了本公开的充分和完整,以及将本发明的范围完全告知本领域的技术人员。
如本领域的技术人员将理解的,本发明可体现为方法、系统、或计算机可读介质。因此,本发明可采取硬件实施例、软件实施例或结合了软件和硬件方面的实施例的形式。此外,本发明可采取在计算机可用存储介质上的计算机程序产品的形式,所述计算机可用存储介质具有包含在其中的计算机可用程序代码。可利用任何合适的计算机可读介质,包括硬盘、CD-ROM、光存储设备、快闪存储器、磁存储设备或类似物。
用于完成根据本发明的操作的计算机程序代码或“代码”可以面向对象的编程语言例如JAVA、Smalltalk、JavaScript、Visual Basic、TSQL、Perl、C、C++或以各种其他编程语言编写。本发明的软件实施例并不依赖于使用特定编程语言的实现。该代码的各部分可完全在由一中间服务器利用的一个或多个系统上执行。
该代码可部分在服务器上并部分在客户设备中的客户上执行,或者可完全在一个或多个服务器上或在通信网络中一中间点处的代理服务器上执行。关于前一种情况,图1示出了其中可有利地使用本发明的示例性系统100。系统100包括一客户设备140,例如膝上型计算机、手持式计算机、其任何其他基于计算机的包含中央处理单元(CPU)、处理器、并可执行计算机程序代码的设备。客户设备140可通过无线或有线连接经由专用网络130A例如一LAN、WAN或其他内联网连接到路由器120A,或者该连接可通过因特网经由因特网服务提供商(ISP)完成。
在所示的例子中,可操作客户设备140以通过到服务器120B的无线或有线连接而连接到第二专用网络130B例如一LAN、WAN或其他内联网。服务器120A和120B提供已知的网络地址转换(NAT)功能,并执行网络地址分配协议例如DHCP、PPP或类似物。通过网络地址分配协议,服务器120A和120B为计算机提供网络地址,以分别逻辑连接到网络130A和130B。服务器120A和120B通过公共网络110例如因特网或公共交换电话网(PSTN)进行通信。
对于图1所示的示例性实施例,服务器120B是VPN服务器。该VPN服务器在允许客户设备140连接到其网络130B之前提供了附加的安全性和授权功能。在本发明的优选实施例中,客户设备根据本发明的教导执行客户代码160以请求访问网络130B,并且VPN服务器120B根据本发明的教导执行服务器代码150以提供对网络130B的访问。客户代码160的例子将包括被修改以根据本发明的教导操作的Nortel的Contivity客户端、Cisco的VPN客户端、和IBM的Websphere Everywhere ConnectionManager客户端及类似物的修改版本。服务器代码150的例子将包括如以下更详细讨论的Nortel的Contivity服务器、Cisco的VPN服务器、和IBM的Websphere Everywhere Connection Manager服务器或类似物的修改版本。在目前讨论的该整个例子中,应理解术语“起始网络”指网络130A,且术语“目标网络”指网络130B。
图2的示例性流程图200示出了在图1的网络环境中根据本发明接收用于VPN会话的网际协议(IP)地址的消息流。本地地址服务器210可适宜地与图1中的路由器120A类似。地址请求者220可适宜地与图1中的客户设备140类似。远程地址服务器230可适宜地与图1中的VPN服务器120B类似。
在操作中,地址请求者220发送地址请求消息235来从本地地址服务器210请求IP地址,以便在由本地地址服务器210服务的网络即起始网络上进行通信。以已知的方式,本地地址服务器210发送包含IP地址A的地址确认消息240。此外,该地址确认消息240包含指示网络类别的网络掩码(network mask或net mask)。
在本技术领域中公知的是网络掩码可包括三个类别之一。A类对应于网络掩码255.0.0.0,其参照四字节IP地址的第一个字节来指定网络地址,并允许16,000,000个网络设备或主机在一A类网络中操作。B类对应于网络掩码255.255.0.0,其参照四字节IP地址的前两个字节来指定网络地址,并允许65,534个网络设备在一B类网络中操作。C类对应于网络掩码255.255.255.0,其参照四字节IP地址的前三个字节来指定网络地址,并允许254个网络设备在一C类网络中操作。IP地址和网络掩码的组合确定了实际的网络地址。在这个例子中,假设在地址确认中发送了A类网络掩码,从而在IP地址A中携带了网络地址X。
在接收到IP地址A时,起始网络中的其他设备开始知道地址请求者具有IP地址A。例如,如果咖啡店外的顾客走进来浏览因特网或给咖啡店中的其他顾客发送即时消息,则该顾客的客户设备将使用IP地址A发起消息。如果该顾客希望访问其雇主的VPN,例如图1中的目标网络130B,则地址请求者220将发送地址请求消息245给远程地址服务器230。虽然未在该流程图中示出,该地址请求消息245在到达远程地址服务器230之前物理地通过本地地址服务器210。远程地址服务器230在不知道在起始网络中正使用的IP地址的情况下,向地址请求者220发送地址确认消息250。地址确认消息250包含例如具有A类网络掩码的IP地址B,从而产生了包含在IP地址B中的网络地址X。
根据本发明的教导,所述地址请求者比较在IP地址B中携带的网络地址与IP地址A的网络地址,并确定这两个IP地址都在使用同一网络地址X。结果,在本发明的一个实施例中,地址请求者220向远程地址服务器230发送具有原因代码“网络在使用中”的地址否定确认消息255。在接收到否定确认消息255时,远程地址服务器230选择一不同的网络地址,并发送具有带有网络地址Y的IP地址C的地址确认消息260。应注意,由远程地址服务器230发送的IP地址不必具有与目标网络相同的网络地址。因此,网络地址Y通常不同与图1中所示的专用网络地址10.10.10.0。
可使用多种技术来确定一不同的网络地址。例如,可通过以一固定量递增或递减前一个网络地址,通过将前一个网络地址左移或右移一位,或通过从预指定地址的池中选择一地址,来计算不同的网络地址。此外,可通过将网络掩码完全改变到不同的类别来确定不同的网络地址。根据本发明的教导,服务器代码150认可“网络在使用中”原因代码,并根据前面讨论的示例性技术或某种其他适当的技术来确定不同的网络地址。
可使用其他利用不同的消息名称或不同的消息字段的消息流,例如当使用DHCP协议时的CHCPREQUEST和DHCPDECLINE消息,来获得同样的结果,并且本发明不应局限于所描述的示例性消息流。CHCPREQUEST和DHCPDECLINE消息在R.Droms,RFC 2131,“Dynamic Host Configuration Protocol”,Networking Group,BucknellUniversity,March 1997中有更详细的描述。但是,优选的是由地址请求者确定是否产生了冲突。根据本发明的教导,客户代码160确定是否产生了冲突。否则,地址服务器将为每一次地址请求者的连接尝试执行不必要的和繁重的计算,而这种功能本来可容易地分散给每个个别的地址请求者。
图3A的表300包含了在图2的地址确认240中携带的示例性IP地址和网络掩码。在以上联系图2描述的消息流中,地址确认消息240包含IP地址192.168.1.1和网络掩码255.0.0.0,从而产生一字节的网络地址192.0.0.0。
图3B的表310包含了在发送自远程地址服务器230的地址确认消息250中携带的示例性第一IP地址和网络掩码。在以上联系图2描述的消息流中,地址确认消息250包含IP地址192.168.1.50和网络掩码255.0.0.0,从而产生一字节的网络地址192.0.0.0。根据本发明的地址请求者220比较从本地地址服务器210接收到的网络地址和从远程地址服务器230接收到的网络地址,并确定存在着网络地址冲突。根据本发明的地址请求者220向远程地址服务器230发送例如具有原因代码“网络在使用中”的地址否定确认消息255。
图3C和3D的表320和330包含了在来自图2的远程地址服务器230的地址确认消息260中携带的第二示例性IP地址和一可选的网络掩码。在以上联系图2描述的消息流中,地址确认消息260包含IP地址193.165.1.50和网络掩码255.0.0.0,从而产生一字节的网络地址193.0.0.0。地址请求者220确定该地址是非冲突的网络地址。
图4的流程图示出了根据本发明避免网络地址冲突的方法。开始于步骤410,地址请求者接收到用于在第一网络中操作的第一网络地址。进行到步骤420,地址请求者请求用于在第二网络中操作的第二网络地址。在步骤430,接收到第二网络地址。在步骤440,确定在第一网络地址和第二网络地址之间是否存在冲突。如果没有冲突,则该方法400结束,并且地址请求者使用第一网络地址在第一网络上通信,并使用第二网络地址在第二网络上通信。如果发生冲突,例如,第一网络地址和第二网络地址相同,则该方法进行到步骤450。在步骤450,该方法报告地址冲突。该步骤可以多种方式实现。在一种方法中,在地址确认消息中提供一原因代码。根据另一种方法,可发送一全新的消息来指示发生了冲突。作为进一步的选择,可在现有的地址确认消息中添加一新的字段。
在步骤460,确定与第二网络地址不同的第三网络地址。进行到步骤470,接收到第三网络地址。于是,根据本发明的地址请求者利用第三网络地址来与第二网络通信。
权利要求
1.一种用于避免网络地址冲突的系统,该系统包括用于分配用于访问目标网络的地址的服务器;起始网络;与起始网络连接的计算机,该计算机在该起始网络上以第一地址标识,该第一地址具有第一网络地址,该计算机请求到所述目标网络的连接,所述服务器响应于该计算机的请求向该计算机返回具有第二网络地址的第二地址,该计算机比较该第一网络地址和该第二网络地址以确定是否存在冲突,在确定在该第一网络地址和该第二网络地址之间存在冲突时,该计算机报告该第二网络地址处于冲突中。
2.根据权利要求1的系统,其中所述服务器是虚拟专用网(VPN)服务器。
3.根据权利要求1的系统,其中所述服务器响应于所述计算机的报告生成不同的网络地址。
4.根据权利要求1的系统,其中所述计算机通过在地址确认消息中指定原因代码来报告所述第二网络地址处于冲突中。
5.根据权利要求3的系统,其中所述服务器通过从预指定地址的池中选择不同的网络地址来生成所述不同的网络地址。
6.根据权利要求3的系统,其中所述服务器通过在所述第一地址上执行数学运算来生成所述不同的网络地址。
7.一种用于避免网络地址冲突的方法,该方法包括以第一地址标识起始网络上的计算机,该第一地址具有第一网络地址;请求到所述目标网络的连接;响应于所述请求步骤返回具有第二网络地址的第二地址;比较该第一网络地址和该第二网络地址以确定是否存在冲突;以及在确定在该第一网络地址和该第二网络地址之间存在冲突时,报告该第二网络地址处于冲突中。
8.根据权利要求7的方法,其中所述请求步骤进一步包括通过虚拟专用网(VPN)服务器来请求连接。
9.根据权利要求7的方法,进一步包括响应于所述报告步骤生成不同的网络地址。
10.根据权利要求7的方法,其中所述报告步骤进一步包括在地址确认消息中指定原因代码。
11.根据权利要求9的方法,其中所述生成步骤进一步包括从预指定地址的池中选择所述不同的网络地址。
12.根据权利要求9的方法,其中所述生成步骤进一步包括在所述第一地址上执行数学运算来确定所述不同的网络地址。
13.一种计算机可读介质,其内容致使计算机系统避免网络地址冲突,该计算机系统具有客户程序和服务器程序,该计算机系统执行以下步骤以第一地址标识起始网络上的计算机,该第一地址具有第一网络地址;由所述客户程序发送对于到目标网络的连接的请求;响应于所述请求在该客户程序处接收具有第二网络地址的第二地址;由该客户程序比较该第一网络地址和该第二网络地址以确定是否存在冲突;以及在确定在该第一网络地址和该第二网络地址之间存在冲突时,向所述服务器程序报告该第二网络地址处于冲突中。
14.根据权利要求13的计算机可读介质,其中所述发送步骤进一步包括通过虚拟专用网(VPN)服务器来请求连接。
15.根据权利要求13的计算机可读介质,进一步包括响应于所述报告步骤由所述服务器程序生成不同的网络地址。
16.根据权利要求13的计算机可读介质,其中所述报告步骤进一步包括在地址确认消息中指定原因代码。
17.根据权利要求15的计算机可读介质,其中所述生成步骤进一步包括从预指定地址的池中选择所述不同的网络地址。
18.根据权利要求15的计算机可读介质,其中所述生成步骤进一步包括在所述第一地址上执行数学运算来确定所述不同的网络地址。
全文摘要
提供了用于在计算机与起始网络连接的情况下试图访问目标网络时避免网络地址冲突的技术。为此,计算机请求用于在目标网络中操作的网络地址。在接收到所请求的网络地址时,确定是否在用于在起始网络中操作的网络地址和所请求的网络地址之间存在冲突。如果发生冲突,则确定与所请求的网络地址不同的一不同网络地址。在接收到该不同网络地址时,该计算机利用该不同网络地址来访问目标网络,从而避免与用于在起始网络中操作的网络地址的冲突。
文档编号H04L29/12GK1761263SQ20051010839
公开日2006年4月19日 申请日期2005年10月13日 优先权日2004年10月14日
发明者I·M·黑宁格, J·D·卡里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1