发明内容
本发明提供一种基于NAT地址转换的数据传输方法和设备,以在PIMSSM网络中实现NAT穿越。
为了达到上述目的,本发明提供一种基于NAT地址转换的数据传输方法,应用于包括组播源设备、接收者设备、NAT设备和管理服务器的PIM SSM网络中,所述管理服务器记录有组播源设备的标识与内网IP地址之间的对应关系,该方法包括以下步骤:
所述管理服务器接收来自所述接收者设备的数据请求报文,所述数据请求报文中携带请求查看的组播源设备的标识;
所述管理服务器通过所述组播源设备的标识查询所述对应关系得到所述组播源设备的内网IP地址,并为所述组播源设备分配外网IP地址;
所述管理服务器将所述组播源设备的外网IP地址和所述组播源设备对应的组播组地址通知给所述接收者设备,由所述接收者设备利用所述组播源设备的外网IP地址和组播组地址向所述组播源设备发送加入报文;以及,
所述管理服务器将所述组播源设备的外网IP地址和内网IP地址通知给所述NAT设备,由所述NAT设备记录所述组播源设备的外网IP地址和内网IP地址之间的对应关系,并在接收到所述加入报文后,将所述加入报文中的所述组播源设备的外网IP地址转换为所述组播源设备的内网IP地址,并将转换后的加入报文发送给所述组播源设备。
所述管理服务器记录有组播源设备的标识与内网IP地址之间的对应关系,具体包括:
所述管理服务器接收来自所述组播源设备的注册请求报文,所述注册请求报文中携带所述组播源设备的标识与内网IP地址;
在所述组播源设备注册成功后,所述管理服务器记录所述组播源设备的标识与内网IP地址之间的对应关系。
当所述接收者设备停止查看所述组播源设备的数据后,所述方法还包括:所述管理服务器接收来自所述接收者设备的节目停止报文,所述节目停止报文中携带停止查看的组播源设备的标识;
所述管理服务器通过所述组播源设备的标识获得所述组播源设备的内网IP地址和外网IP地址;
所述管理服务器回收所述组播源设备的外网IP地址,并通知所述NAT设备删除记录的所述组播源设备的外网IP地址和内网IP地址之间的对应关系。
一种基于NAT地址转换的数据传输方法,应用于包括组播源设备、接收者设备、NAT设备和管理服务器的PIM SSM网络中,该方法包括以下步骤:
所述NAT设备接收所述管理服务器通知的所述组播源设备的外网IP地址和内网IP地址,所述组播源设备的外网IP地址为所述管理服务器分配的;
所述NAT设备记录所述组播源设备的外网IP地址和内网IP地址之间的对应关系;
所述NAT设备接收来自所述接收者设备的加入报文,所述加入报文请求加入的源地址为所述管理服务器通知给所述接收者设备的所述组播源设备的外网IP地址,所述加入报文请求加入的组播组地址为所述管理服务器通知给所述接收者设备的所述组播源设备对应的组播组地址;
所述NAT设备利用所述对应关系将所述加入报文中的所述组播源设备的外网IP地址转换为所述组播源设备的内网IP地址,并将转换后的加入报文发送给所述组播源设备。
当所述接收者设备停止查看所述组播源设备的数据后,所述方法还包括:所述NAT设备接收来自所述管理服务器的删除所述组播源设备的外网IP地址和内网IP地址之间的对应关系的通知;
所述NAT设备删除自身记录的所述组播源设备的外网IP地址和内网IP地址之间的对应关系。
一种管理服务器,应用于包括组播源设备、接收者设备、NAT设备和所述管理服务器的PIM SSM网络中,所述管理服务器包括:
记录模块,用于记录组播源设备的标识与内网IP地址之间的对应关系;
接收模块,用于接收来自所述接收者设备的数据请求报文,所述数据请求报文中携带请求查看的组播源设备的标识;
处理模块,用于通过所述组播源设备的标识查询所述对应关系得到所述组播源设备的内网IP地址,并为所述组播源设备分配外网IP地址;
发送模块,用于将所述组播源设备的外网IP地址和所述组播源设备对应的组播组地址通知给所述接收者设备,由所述接收者设备利用所述组播源设备的外网IP地址和组播组地址向所述组播源设备发送加入报文;以及,
将所述组播源设备的外网IP地址和内网IP地址通知给所述NAT设备,由所述NAT设备记录所述组播源设备的外网IP地址和内网IP地址之间的对应关系,并在接收到所述加入报文后,将所述加入报文中的所述组播源设备的外网IP地址转换为所述组播源设备的内网IP地址,并将转换后的加入报文发送给所述组播源设备。
所述接收模块,还用于接收来自所述组播源设备的注册请求报文,所述注册请求报文中携带所述组播源设备的标识与内网IP地址;
所述记录模块,具体用于在所述组播源设备注册成功后,记录所述组播源设备的标识与内网IP地址之间的对应关系。
当所述接收者设备停止查看所述组播源设备的数据后,
所述接收模块,还用于接收来自所述接收者设备的节目停止报文,所述节目停止报文中携带停止查看的组播源设备的标识;
所述处理模块,还用于通过所述组播源设备的标识获得所述组播源设备的内网IP地址和外网IP地址,并回收所述组播源设备的外网IP地址;
所述发送模块,还用于通知所述NAT设备删除记录的所述组播源设备的外网IP地址和内网IP地址之间的对应关系。
一种NAT设备,应用于包括组播源设备、接收者设备、所述NAT设备和管理服务器的PIM SSM网络中,所述NAT设备包括:
接收模块,用于接收所述管理服务器通知的所述组播源设备的外网IP地址和内网IP地址,所述组播源设备的外网IP地址为所述管理服务器分配的;
以及接收来自所述接收者设备的加入报文,所述加入报文请求加入的源地址为所述管理服务器通知给所述接收者设备的所述组播源设备的外网IP地址,所述加入报文请求加入的组播组地址为所述管理服务器通知给所述接收者设备的所述组播源设备对应的组播组地址;
记录模块,用于记录所述组播源设备的外网IP地址和内网IP地址之间的对应关系;
发送模块,用于利用所述对应关系将所述加入报文中的所述组播源设备的外网IP地址转换为所述组播源设备的内网IP地址,并将转换后的加入报文发送给所述组播源设备。
当所述接收者设备停止查看所述组播源设备的数据后,
所述接收模块,还用于接收来自所述管理服务器的删除所述组播源设备的外网IP地址和内网IP地址之间的对应关系的通知;
所述记录模块,还用于删除自身记录的所述组播源设备的外网IP地址和内网IP地址之间的对应关系。
与现有技术相比,本发明至少具有以下优点:当在PIM SSM网络中存在用于进行NAT转换的设备时,可保证组播数据穿越NAT而不受影响,从而在PIM SSM网络中实现NAT穿越,简化网络规划和网络维护。
具体实施方式
本发明提出一种基于NAT地址转换的数据传输方法,如图2所示,为本发明应用场景示意图,该方法应用于包括组播源设备(如组播源1、2、3)、接收者设备(即客户端)、NAT设备和管理服务器(即视频节目管理服务器)的PIM SSM网络(如IPTV等视频点播应用场景下使用PIM SSM技术的网络)中。NAT设备用于实现任意两个网络间进行访问时的地址转换,这两个网络分别称为内部网络(内网)和外部网络(外网),且组播源设备位于内网,接收者设备和管理服务器位于外网;通常情况下,私网为内网,公网为外网。
本发明中,管理服务器上需要记录各组播源设备的标识与其内网IP地址之间的对应关系。具体的,在组播源设备需要穿越NAT设备到管理服务器上进行注册时,该组播源设备需要向管理服务器发送注册请求报文,该注册请求报文中携带组播源设备的标识(如设备名称)与内网IP地址;之后,管理服务器可接收到来自组播源设备的注册请求报文,虽然注册请求报文的IP报文头中的源地址被NAT转换为外网地址,但是注册请求报文中携带的内网IP地址并没用被修改,因此在组播源设备注册成功后,该管理服务器可以获知并记录组播源设备的标识与内网IP地址之间的对应关系。
基于管理服务器上记录的组播源设备的标识与内网IP地址之间的对应关系,如图3所示,该基于NAT地址转换的数据传输方法包括以下步骤:
步骤301,接收者设备向管理服务器发送数据请求报文,该数据请求报文中携带请求查看的组播源设备的标识。
具体的,当接收者设备需要利用组播来查看某一组播源设备的数据(即视频流)时,会向管理服务器发送数据请求报文,该数据请求报文中携带请求查看的组播源设备的标识,以请求查看该组播源设备的视频流。
步骤302,管理服务器接收来自接收者设备的数据请求报文,并通过组播源设备的标识得到该组播源设备的内网IP地址。
具体的,由于管理服务器上记录了组播源设备的标识与内网IP地址之间的对应关系,因此在接收到数据请求报文后,可直接利用组播源设备的标识为索引查询该对应关系,以得到组播源设备的内网IP地址。
步骤303,管理服务器为组播源设备分配外网IP地址。
本发明中,在接收到数据请求报文后,管理服务器还需要在自身IP Pool(池)中选择一个IP地址分配给组播源设备,并将该IP地址作为该组播源设备的外网IP地址。
步骤304,管理服务器将组播源设备的外网IP地址和组播源设备对应的组播组地址通知给接收者设备,并将组播源设备的外网IP地址和内网IP地址通知给NAT设备。
具体的,管理服务器可通过数据请求报文的响应报文将组播源设备的外网IP地址以及该组播源设备所设置的组播组地址发送给接收者设备,以通知接收者设备其所要请求的组播源设备的数据的组播组地址和组播源地址。此外,在将组播源设备的外网IP地址和内网IP地址通知给NAT设备后,NAT设备会接收到管理服务器通知的组播源设备的外网IP地址和内网IP地址,并还需要记录组播源设备的外网IP地址和内网IP地址之间的对应关系。
步骤305,接收者设备利用组播源设备的外网IP地址和组播组地址向组播源设备发送加入报文。
具体的,接收者设备在接收到组播源设备的外网IP地址和组播源设备对应的组播组地址后,得知其所要请求的组播源设备的数据的组播组地址和组播源地址,从而可直接发送IGMP(Internet Group Management Protocol,Internet组管理协议)加入报文,以请求加入到组播源设备上。
进一步的,与接收者设备直连的网络设备(如路由器等设备,为接收者设备的DR)在接收到IGMP加入报文后,会向组播源设备方向发送PIM加入报文(以加入报文为例),其与NAT设备之间接收到该加入报文的网络设备均直接按照现有实现进行处理即可,且该加入报文会被发送到NAT设备上。
步骤306,NAT设备接收来自接收者设备的加入报文,该加入报文为(S,G)加入报文,S为组播源设备的外网IP地址,G为组播源设备对应的组播组地址;因此,该加入报文请求加入的源地址为组播源设备的外网IP地址,加入报文请求加入的组播组地址为组播源设备对应的组播组地址。
步骤307,NAT设备利用外网IP地址和内网IP地址之间的对应关系将加入报文中的组播源设备的外网IP地址转换为组播源设备的内网IP地址。
具体的,NAT设备在外网接口接收到加入报文后,可以从加入报文中获得组播源设备的外网IP地址,从而可通过组播源设备的外网IP地址查询外网IP地址和内网IP地址之间的对应关系,得到组播源设备的内网IP地址。
步骤308,NAT设备将转换后的加入报文发送给组播源设备,即NAT设备从内网接口向外发送加入报文。需要注意的是,该加入报文请求加入的源地址为组播源设备的内网IP地址,该加入报文请求加入的组播组地址为组播源设备对应的组播组地址。
本发明中,通过上述处理过程,可以将加入报文发送到组播源设备上;需要注意的是,发送给组播源设备的加入报文为IGMP加入报文,网络设备之间发送的是PIM加入报文。
进一步的,利用加入报文传输过程中所建立的表项,组播源设备可以将组播数据传输到NAT设备的内网接口上;NAT设备的内网接口收到该组播数据后,可根据收到的组播数据的源IP地址,查找外网IP地址和内网IP地址之间的对应关系,将组播数据的源IP地址替换为组播源设备的外网IP地址,并从外网接口向外发送出去,从而最终将组播数据发送到接收者设备上。
本发明中,当接收者设备停止查看组播源设备的数据后,则接收者设备会发送IGMP离开报文,通知外网中的各网络设备删除相关组播表项。此外,接收者设备还需要向管理服务器发送节目停止报文(用于通知停止查看组播源设备的数据),该节目停止报文中携带停止查看的组播源设备的标识。
管理服务器在接收到节目停止报文后,可利用停止查看的组播源设备的标识,获得该组播源设备的内网IP地址和外网IP地址,从而可回收组播源设备的外网IP地址,并通知NAT设备删除记录的组播源设备的外网IP地址和内网IP地址之间的对应关系。
进一步的,NAT设备会接收到来自管理服务器的NAT表项删除消息,该NAT表项删除消息用于通知NAT设备删除组播源设备的外网IP地址和内网IP地址之间的对应关系;之后,NAT设备可删除自身记录的组播源设备的外网IP地址和内网IP地址之间的对应关系。
以下结合一个具体的应用对本发明进行进一步的说明。
1、在组播源1注册时,管理服务器记录组播源1的标识(以组播源1为例)与内网IP地址(以192.168.0.10为例)之间的对应关系。
2、客户端(即接收者设备)向管理服务器发送数据请求报文,该数据请求报文中包含所查看的组播源设备的标识(即组播源1)。
3、管理服务器利用标识组播源1得到对应的内网IP地址为192.168.0.10。
4、管理服务器为组播源1分配外网IP地址(以200.0.0.10为例),该IP地址200.0.0.10为管理服务器在自身IP Pool中选出的IP地址。
5、管理服务器向客户端返回响应报文,该响应报文中包括分配的外网IP地址200.0.0.10和组播组地址(以236.0.0.1为例)。
此外,管理服务器还需要将组播源1的内网IP地址192.168.0.10和外网IP地址200.0.0.10通知给NAT设备,由NAT设备建立192.168.0.10和200.0.0.10之间的对应关系,后续有源地址为192.168.0.10的组播数据,则NAT设备需要将源地址转换为200.0.0.10进行发送。
6、客户端利用得到的组播源1的外网IP地址200.0.0.10和组播组地址236.0.0.1,向组播源1的方向上发送加入报文,且该加入报文要加入的(S,G)是(200.0.0.10,236.0.0.1)。
7、NAT设备在接收到加入报文后,利用自身所记录的192.168.0.10和200.0.0.10之间的对应关系,将S由200.0.0.10替换为192.168.0.10,并向内网中的组播源1发送加入报文,(S,G)是(192.168.0.10,236.0.0.1)。
8、组播源1开始发送组播数据,该组播数据的(S,G)为(192.168.0.10,236.0.0.10);由于之前NAT设备已经向内网中的组播源1发送过相应的加入报文,因此该组播数据会顺利到达NAT设备的内网接口。
NAT设备的内网接口收到(S,G)为(192.168.0.10,236.0.0.10)的组播数据后,查看192.168.0.10与200.0.0.10之间的对应关系,将组播数据的源地址替换为200.0.0.10,并从外网接口发送出去,此时(S,G)为(200.0.0.10,236.0.0.1)。由于客户端已经向NAT设备发送过加入报文,因此该组播数据会顺利到达客户端处。
9、在客户端停止查看组播数据时,会通知管理服务器自身停止查看组播源1的组播数据了,且客户端会向外网中发送(S,G)离开消息。
管理服务器在收到客户端的停止查看通知后,通知NAT设备删除相关表项,通知消息中包含有组播源1的内网IP地址192.168.0.10和外网IP地址200.0.0.10;之后,NAT设备删除之前记录的192.168.0.10和200.0.0.10之间的对应关系;且NAT设备还需要向内网中的组播源1发送(S,G)离开消息。
基于与上述方法同样的发明构思,本发明还提出了一种管理服务器,应用于包括组播源设备、接收者设备、NAT设备和所述管理服务器的PIM SSM网络中,如图4所示,所述管理服务器包括:
记录模块11,用于记录组播源设备的标识与内网IP地址之间的对应关系;
接收模块12,用于接收来自所述接收者设备的数据请求报文,所述数据请求报文中携带请求查看的组播源设备的标识;
处理模块13,用于通过所述组播源设备的标识查询所述对应关系得到所述组播源设备的内网IP地址,并为所述组播源设备分配外网IP地址;
发送模块14,用于将所述组播源设备的外网IP地址和所述组播源设备对应的组播组地址通知给所述接收者设备,由所述接收者设备利用所述组播源设备的外网IP地址和组播组地址向所述组播源设备发送加入报文;以及,
将所述组播源设备的外网IP地址和内网IP地址通知给所述NAT设备,由所述NAT设备记录所述组播源设备的外网IP地址和内网IP地址之间的对应关系,并在接收到所述加入报文后,将所述加入报文中的所述组播源设备的外网IP地址转换为所述组播源设备的内网IP地址,并将转换后的加入报文发送给所述组播源设备。
所述接收模块12,还用于接收来自所述组播源设备的注册请求报文,所述注册请求报文中携带所述组播源设备的标识与内网IP地址;
所述记录模块11,具体用于在所述组播源设备注册成功后,记录所述组播源设备的标识与内网IP地址之间的对应关系。
当所述接收者设备停止查看所述组播源设备的数据后,
所述接收模块12,还用于接收来自所述接收者设备的节目停止报文,所述节目停止报文中携带停止查看的组播源设备的标识;
所述处理模块13,还用于通过所述组播源设备的标识获得所述组播源设备的内网IP地址和外网IP地址,并回收所述组播源设备的外网IP地址;
所述发送模块14,还用于通知所述NAT设备删除记录的所述组播源设备的外网IP地址和内网IP地址之间的对应关系。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明还提出了一种NAT设备,应用于包括组播源设备、接收者设备、所述NAT设备和管理服务器的PIM SSM网络中,如图5所示,所述NAT设备包括:
接收模块21,用于接收所述管理服务器通知的所述组播源设备的外网IP地址和内网IP地址,所述组播源设备的外网IP地址为所述管理服务器分配的;
以及接收来自所述接收者设备的加入报文,所述加入报文请求加入的源地址为所述管理服务器通知给所述接收者设备的所述组播源设备的外网IP地址,所述加入报文请求加入的组播组地址为所述管理服务器通知给所述接收者设备的所述组播源设备对应的组播组地址;
记录模块22,用于记录所述组播源设备的外网IP地址和内网IP地址之间的对应关系;
发送模块23,用于利用所述对应关系将所述加入报文中的所述组播源设备的外网IP地址转换为所述组播源设备的内网IP地址,并将转换后的加入报文发送给所述组播源设备。
当所述接收者设备停止查看所述组播源设备的数据后,
所述接收模块21,还用于接收来自所述管理服务器的删除所述组播源设备的外网IP地址和内网IP地址之间的对应关系的通知;
所述记录模块22,还用于删除自身记录的所述组播源设备的外网IP地址和内网IP地址之间的对应关系。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。