网络地址转换设备及通信方法

文档序号:7757489阅读:317来源:国知局
专利名称:网络地址转换设备及通信方法
技术领域
本发明涉及一种通信设备及通信方法,尤其是关于一种网络地址转换(Network Address Traslation, NAT)设备及通信方法。
背景技术
网络地址转换(Network Address Traslation, NAT)协议被广泛应用于各种类型 hternet接入方式的网络中。借助于NAT协议,内部网络通过NAT设备(如路由器)发送数据包时,内部网络的私有IP地址被转换为公有IP地址。一个内部网络只需使用少量IP 地址即可实现该内部网络中所有计算机与hternet的通信需求,从而减少对公网IP地址的占用。为了防止外部网络对内部网络的攻击,NAT设备(如路由器)会阻止其它网络终端设备主动发送的连接请求数据包进入内部网络。但是这种做法会导致无法建立内部网络中的计算机与其它网络终端设备的正常通信。为了解决这种问题,内部网络中的计算机可以利用网络服务器作媒体与其它网络终端设备进行通信。这样,内部网络中的计算机与其它网络终端设备通信过程中来往的所有数据包由网络服务器代为转发。这种通信方法的不足之处在于,由网络服务器向不同网络的终端设备转发数据包会造成通信过程中的时间延迟。

发明内容
鉴于以上内容,有必要提供一种网络地址转换(Network Address Traslation, NAT)设备,可以在建立不同网络的终端设备之间的通信过程中允许其他网络发送的请求连接数据包穿越该NAT设备,减少通信过程中的时间延迟。此外,还有必要提供一种通信方法,可以在建立不同网络的终端设备之间的通信过程中允许其他网络发送的请求连接数据包穿越该NAT设备,减少通信过程中的时间延迟。一种NAT设备,该NAT设备与第一客户端及网络服务器通信连接,该网络服务器还与第二客户端通信连接。该NAT设备接收第一客户端发送的会话邀请数据包,并请求网络服务器转发该会话邀请数据包至第二客户端。网络服务器转发第二客户端回复的响应邀请数据包至该NAT设备,该NAT设备将该响应邀请数据包发送至第一客户端。该NAT设备接收第一客户端发送的会话连接数据包,并请求网络服务器转发该会话连接数据包至第二客户端,该NAT设备接收第二客户端发送的会话响应数据包并阻止该会话响应数据包穿越该网络地址转换设备,检查该会话连接数据包中的源端口号是否与所述会话响应数据包中的目的端口号相同。若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号相同,则该NAT设备允许所述会话响应数据包穿越该NAT设备到达第一客户端。若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号不同,则该NAT设备继续阻止所述会话响应数据包穿越该NAT设备。
—种通信方法,应用于NAT设备。该方法包括(A)接收第一客户端发送的会话邀请数据包,并请求网络服务器转发该会话邀请数据包至第二客户端;(B)接收网络服务器转发的第二客户端回复的响应邀请数据包,并将该响应邀请数据包发送至第一客户端;(C) 接收第一客户端发送的会话连接数据包,并请求网络服务器转发该会话连接数据包至第二客户端;(D)接收第二客户端发送的会话响应数据包并阻止该会话响应数据包穿越该NAT 设备;(E)再次接收第一客户端发送的会话连接数据包,并检查该会话连接数据包中的源端口号是否与所述会话响应数据包中的目的端口号相同;及(F)若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号相同,则允许所述会话响应数据包穿越该 NAT设备到达第一客户端,若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号不同,则继续阻止所述会话响应数据包穿越该NAT设备。相较于现有技术,本发明提供的NAT设备及通信方法,可以在建立不同网络的终端设备之间的通信过程中允许其他网络发送的请求连接数据包穿越该NAT设备,减少通信过程中的时间延迟。


图1是本发明网络地址转换(Network Address Traslation, NAT)设备较佳实施例的应用环境图。图2是利用图1中所示NAT设备建立不同网络中客户端之间的通信的示意图。图3是本发明通信方法较佳实施例的流程图。主要元件符号说明
计算机10,40NAT设备20网络服务器30
具体实施例方式参阅图1所示,是本发明网络地址转换(Network Address Traslation,NAT)设备较佳实施例的应用环境图。图1中所示的计算机10及40位于不同的网络中,例如计算机 10 (第一客户端)可能位于一个局域网1,而计算机40 (第二客户端)位于另外一个局域网 2。计算机10通过NAT设备20及网络服务器30与计算机40进行通信。在本实施例中,该 NAT设备20为路由器,该网络服务器30为Windows Live Messenger网络服务器。在其他实施例中,所述NAT设备20也可以为交换机、服务器或其他具有网络地址转换功能的设备。NAT设备20将计算机10的私有IP地址转换为外网(例如因特网)中的公有IP 地址,从而减少局域网中的计算机对外网中公有IP地址的占用。在本实施例中,参阅图2中所示,“client 1”代表计算机10,“client 2”代表计算机40。NAT设备20接收计算机10发送的各种数据包,例如会话邀请数据包“ Invite client 2”,会话连接数据包“UDP session src port = x”,并请求网络服务器30转发计算机10发送的这些数据包至计算机40。其中src port = x代表计算机10在局域网1中的源端口号,UDP是her Datagram Protocol的简称。网络服务器30转发计算机10发送的这些数据包至计算机40,并转发计算机40回复的数据包,例如图2所示的响应邀请数据包“Acc印t invitation” 至计算机 10。NAT设备20还用于阻挡其他网络中客户端装置,例如局域网2中的计算机40,直接向计算机10发送的请求连接数据包,例如“UDP session des = χ src = y”(其中des = X表示目的端口号,src = y表示源端口号),以避免计算机10受到不明数据包的攻击。例如,NAT设备20在接收到“UDP session des = χ src = y”的数据包后,产生一个hternet 控制消息协议(Internet Control Message Protocol, ICMP)数据包。ICMP数据包用于在网络中的设备,例如计算机10、40、NAT设备20、网络服务器30,之间传递控制消息,告知网络通不通、主机是否可达、路由是否可用等网络本身的消息。例如,图2中所示的ICMP数据包“ICMP with unreachable χ”表示计算机40请求连接的端口 χ不可到达。但是在本实施例中,NAT设备20并不将该ICMP数据包发送给计算机40,而是分析计算机40向计算机10再次发送的请求连接数据包及计算机10发起的会话连接数据包中的端口号。当计算机40再次向计算机10发送的请求连接数据包中的目的端口号与计算机 10发起的会话连接数据包中的源端口号相同时,NAT设备20允许计算机40发送的请求连接数据包穿越NAT设备20,到达计算机10,从而建立计算机10与40之间的通信。之后,计算机10及40在通信过程中传递的通信消息,例如计算机10向计算机40发送的消息“UDP session des = y src = χ with video conference payload,,,及计算机 40 向计算机 10 发送的消息“UDP session des = χ src = y with video conference payload,,,可以直接到达对方,不再需要网络服务器30进行中转,从而可以减少通信过程中的时间延迟。参阅图3所示,是本发明通信方法较佳实施例的流程图。步骤S31,NAT设备20接收计算机10(第一客户端)发送的会话邀请数据包 "Invite client 2”,并请求网络服务器30转发该会话邀请数据包至计算机40 (第二客户端)。步骤S33,NAT设备20接收网络服务器30转发的计算机40回复的响应邀请数据包“Accept invitation”,并将该响应邀请数据包发送至计算机10。步骤S35,NAT设备20接收计算机10发送的会话连接数据包“UDP session src port = x”,该会话连接数据包包括计算机10在局域网1中的端口号,例如src port = χ 表示计算机10在局域网1中的端口号为χ。步骤S37,NAT设备20请求网络服务器30转发该会话连接数据包至计算机40。步骤S39,NAT设备20接收计算机40发送的会话响应数据包“UDP session des =x src = y”,该数据包包括发送该数据包的计算机40在局域网2中的源端口号(例如 src = y)及该数据包期望到达的目的端口号(例如des = x)。为了避免计算机10受到不明数据包的攻击,NAT设备20阻止其他网络中客户端装置,包括局域网2中的计算机40,向计算机10发送的所有包括请求连接的端口信息的数据包,例如该计算机40发送的会话响应数据包"UDP session des = χ src = y,,。步骤S41,NAT设备20接收计算机40发送的会话响应数据包“UDP session des =χ src = y”后,产生一个ICMP数据包“ICMP with unreachable χ”表示计算机40请求连接的端口 χ不可到达,但是暂时并不将该ICMP数据包发送给计算机40,而是再次接收计算机10发送的会话连接数据包“UDP session src port = χ”。步骤S43,NAT设备20分析计算机40向计算机10发送的会话响应数据包及计算机 10发起的会话连接数据包中的端口号,检查该会话响应数据包中的目的端口号是否与该会话连接数据包中的源端口号相同。如果该会话响应数据包中的目的端口号与该会话连接数据包中的源端口号相同,例如该会话响应数据包中的目的端口号“des = X”,该会话连接数据包中的源端口号“src port = x”,则表明计算机40是计算机10期望建立通信的客户端装置,流程进入步骤S45,NAT设备20允许该会话响应数据包“UDP session des = χ src =1”穿越该NAT设备20到达计算机10,从而建立计算机10与计算机40之间的通信。在步骤S43,如果NAT设备20检查发现该会话响应数据包中的目的端口号与该会话连接数据包中的源端口号不同,则表明计算机40不是计算机10期望建立通信的客户端装置,流程进入步骤S47,NAT设备20阻止该会话响应数据包“UDP session des = χ src =y”发送至计算机10。例如,NAT设备20将产生的ICMP数据包“ICMP with unreachable x”发送至计算机40,通知计算机40请求连接的端口 χ不可到达。之后,流程结束。
权利要求
1.一种网络地址转换设备,该网络地址转换设备与第一客户端及网络服务器通信连接,该网络服务器还与第二客户端通信连接,其特征在于,该网络地址转换设备用于接收第一客户端发送的会话邀请数据包,并请求网络服务器转发该会话邀请数据包至第二客户端;接收网络服务器转发的第二客户端回复的响应邀请数据包,并将该响应邀请数据包发送至第一客户端;接收第一客户端发送的会话连接数据包,并请求网络服务器转发该会话连接数据包至第二客户端,该会话连接数据包包括第一客户端的源端口号;接收第二客户端发送的会话响应数据包并阻止该会话响应数据包穿越该网络地址转换设备,该会话响应数据包包括源端口号及目的端口号;再次接收第一客户端发送的会话连接数据包,并检查该会话连接数据包中的源端口号是否与所述会话响应数据包中的目的端口号相同;及若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号相同,则允许所述会话响应数据包穿越该网络地址转换设备到达第一客户端,若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号不同,则继续阻止所述会话响应数据包穿越该网络地址转换设备。
2.如权利要求1所述的网络地址转换设备,其特征在于,该网络地址转换设备在阻止所述会话响应数据包穿越该网络地址转换设备时,产生一个hternet控制协议数据包,当检查得到所述会话连接数据包中的源端口号与该会话响应数据包中的目的端口号不同时, 将该hternet控制协议数据包发送至第二客户端,告知该第二客户端请求的端口不可到达。
3.如权利要求1所述的网络地址转换设备,其特征在于,该网络地址转换设备为路由器,交换机或服务器。
4.一种通信方法,应用于网络地址转换设备,该网络地址转换设备与第一客户端及网络服务器通信连接,该网络服务器还与第二客户端通信连接,其特征在于,该方法包括接收第一客户端发送的会话邀请数据包,并请求网络服务器转发该会话邀请数据包至第二客户端;接收网络服务器转发的第二客户端回复的响应邀请数据包,并将该响应邀请数据包发送至第一客户端;接收第一客户端发送的会话连接数据包,并请求网络服务器转发该会话连接数据包至第二客户端,该会话连接数据包包括第一客户端的源端口号;接收第二客户端发送的会话响应数据包并阻止该会话响应数据包穿越该网络地址转换设备,该会话响应数据包包括源端口号及目的端口号;再次接收第一客户端发送的会话连接数据包,并检查该会话连接数据包中的源端口号是否与所述会话响应数据包中的目的端口号相同;及若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号相同,则允许所述会话响应数据包穿越该网络地址转换设备到达第一客户端,若该会话连接数据包中的源端口号与所述会话响应数据包中的目的端口号不同,则继续阻止所述会话响应数据包穿越该网络地址转换设备。
5.如权利要求4所述的通信方法,其特征在于,该方法还包括在阻止所述会话响应数据包穿越该网络地址转换设备时,产生一个hternet控制协议数据包,当检查得到所述会话连接数据包中的源端口号与该会话响应数据包中的目的端口号不同时,将该^ternet控制协议数据包发送至第二客户端,告知该第二客户端请求的端口不可到达。
6.如权利要求4所述的通信方法,其特征在于,该网络地址转换设备为路由器,交换机或服务器。
全文摘要
本发明提供一种网络地址转换设备(Network Address Translation,NAT)及通信方法。该NAT设备请求网络服务器转发第一客户端发送的会话邀请数据包至第二客户端,并发送网络服务器转发的第二客户端回复的响应邀请数据包至第一客户端。该NAT设备还请求网络服务器转发第一客户端发送的会话连接数据包至第二客户端,并阻止第二客户端发送的会话响应数据包穿越该NAT设备,检查会话连接数据包中的源端口号是否与会话响应数据包中的目的端口号相同。若会话连接数据包中的源端口号与会话响应数据包中的目的端口号相同,则允许会话响应数据包穿越该NAT设备到达第一客户端。若会话连接数据包中的源端口号与会话响应数据包中的目的端口号不同,则继续阻止会话响应数据包穿越该NAT设备。
文档编号H04L29/12GK102377834SQ20101025893
公开日2012年3月14日 申请日期2010年8月20日 优先权日2010年8月20日
发明者张耀文, 黄彦融 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1