不同版本互联网协议客户端之间的通信方法和系统的制作方法_3

文档序号:9451575阅读:来源:国知局
送给第二主机上的CP客户端的第一数据流时,基于第二映射表项对第一数据流进行地址 和协议的转换后转发给第二主机上的CP客户端;接收到第二主机上的CP客户端基于上述 另一版本的中继地址发送给第一主机上的CP客户端的第二数据流时,基于第一映射表项 对第二数据流进行地址和协议的转换后转发给第一主机上的CP客户端。
[0065] 在本发明上述不同版本互联网协议客户端之间的通信方法的一个具体示例中,上 述一个版本IP地址具体为IPv4地址,相应地,上述一个版本的中继地址包括中继IPv4地 址和端口号;上述另一版本IP地址具体为IPv6地址,相应地,上述另一版本的中继地址包 括中继IPv6地址和端口号。
[0066] 在本发明上述不同版本互联网协议客户端之间的通信方法的另一个具体示例中, 图3所示的操作160中,基于第二映射表项对第一数据流进行地址和协议的转换后转发给 第二主机上的CP客户端具体可以是:将第一数据流从IPv4协议转换为IPv6协议,并查询 第二映射表项,获取第一数据流中作为目的地址的中继IPv4地址和端口号对应的第二主 机使用的IPv6地址和端口号,根据该第二主机使用的IPv6地址和端口号,将IPv6协议的 第一数据流转发给第二主机上的CP客户端。
[0067] 同理,图3所示的操作160中,基于第一映射表项对第二数据流进行地址和协议的 转换后转发给第一主机上的CP客户端具体可以是:将第二数据流从IPv6协议转换为IPv4 协议,并查询第一映射表项,获取第二数据流中作为目的地址的中继IPv6地址和端口号对 应的第一主机使用的IPv4地址和端口号,根据该第一主机使用的IPv4地址和端口号,将 IPv4协议的第二数据流转发给第一主机上的CP客户端。
[0068] 图4为本发明不同版本互联网协议客户端之间的通信方法一个应用实施例的流 程图。图5为图4所示应用实施例的通信架构示意图。该应用实施例中,Host A作为本发 明实施例中的第一主机,采用IPv4地址,Host A上耦合设置有CPl客户端和CP2客户端; Host B作为本发明实施例中的第二主机,采用IPv6地址,Host B上也耦合设置有CPl客户 端和CP2客户端,以下以Host A与Host B上CPl客户端之间的通信为例对本发明进行示例 性说明。参见图4与图5,该应用实施例的流程包括:
[0069] 210,用户A启动Host A上的CPl客户端,CPl客户端向CPl服务器发送第一注册 请求,该第一注册请求中包括用户A的用户信息和Host A使用的IPv4地址(表示为Pub_ Av4)信息。
[0070] 其中的用户信息具体可以是用户的账号相关信息,例如QQ登录时的用户帐号和 密码信息。
[0071] 220,用户B启动Host B上的CPl客户端,CPl客户端向CPl服务器发送第二注册 请求,该第二注册请求中包括用户B的用户信息和Host B使用的IPv6地址(表示为Pub_ Bv6)信息。
[0072] 其中,操作210与220之间不存在执行顺序限制,二者可以同时执行,也可以以任 意先后顺序执行,本实施例附图4仅给出其中一种情况。
[0073] 本领域技术人员知道,主机使用的IP地址即分配给其用户的IP地址。
[0074] 230, CPl服务器发现用户A与用户B为好友关系、但Host A与Host B使用的IP 地址属于不同的地址族时,作为TURN客户端,向TURN服务器发送映射请求,其中包括Pub_ Av4 和 Pub_Bv6。
[0075] 在实际应用中,每个用户信息中都包括一个好友关系信息(例如QQ中的好友列 表),通过用户A、B中的一个用户信息中的好友关系信息即可获知用户A、B是否为好友关 系。
[0076] 240, TURN服务器从为该TURN服务器配置的地址池中,针对Pub_Av4分配一个中 继IPv6地址(表示为Relay_Av6)和端口号,针对Pub_Bv6分配一个中继IPv4地址(表示 为Relay_Bv4)和端口号。
[0077] 250, TURN服务器在映射表中建立Host A使用的Pub_Av4、端口号和向其分配的 Relay_Av6与端口号之间的第一映射表项,建立Host B使用的Pub_Bv6、端口号和向其分配 的Relay_Bv4与端口号之间的第二映射表项,并向CP服务器返回向Host A分配的Relay_ Av6与端口号、向Host B分配的Relay_Bv4和端口号信息。
[0078] 如下表1所7K,为TURN服务器中映射表的一个具体结构TK例,其中,第1行为第一 映射表项,第2行为第二映射表项。
[0081] 260, CPl服务器将向Host A分配的Relay_Av6地址与端口号作为Host A上CPl客 户端的IPv6地址与端口号发送给Host B上的CPl客户端,将向Host B分配的Relay_Bv4 和端口号作为Host B上CPl客户端的IPv4地址发送给Host A上的CPl客户端。
[0082] 这样,Host A上的CPl客户端接收到的是TURN服务器发给它的、代表Host B上 CPl客户端的Relay_IPv4地址;Host B上的CPl客户端接收到的是TURN服务器发给它的、 代表Host A上CPl客户端的Relay_Av6地址。此后,Host A和Host B上的CPl客户端可 以通过如下操作,经TURN服务器进行通信,由于TURN服务器的存在,Host A与Host B上 的CPl客户端感知不到对方的存在,通信双方无地址族差异感知。
[0083] 270, Host A上的CPl客户端基于Relay_Bv4和端口号向Host B上的CPl客户端 发送第一数据流时,由于Relay_Bv4是TURN服务器的IPv4地址,该第一数据流发送到TURN 服务器,TURN服务器将第一数据流从IPv4协议转换为IPv6协议,并查询第二映射表项, 获取第一数据流中作为目的地址的Relay_Bv4地址和端口号(例如表1中的Relay_Bv4, PortY)对应的Host B使用的Pub_Bv6地址和端口号(例如表1中的Pub_Bv6, PortB),根 据该Host B使用的Pub_Bv6地址和端口号,将IPv6协议的第一数据流转发给Host B上的 CPl客户端。
[0084] 280, Host B上的CPl客户端基于Relay_Av6和端口号向Host A上的CPl客户端 发送第二数据流时,由于Relay_Av6是TURN服务器的IPv6地址,该第二数据流发送到TURN 服务器,TURN服务器将第二数据流从IPv6协议转换为IPv4协议,并查询第一映射表项, 获取第二数据流中作为目的地址的Relay_Av6地址和端口号(例如表1中的Relay_Av6, PortX')对应的Host A使用的Pub_Av4地址和端口号(例如表1中的Pub_Av4, PortA),根 据该Host A使用的Pub_Av4地址和端口号,将IPv4协议的第二数据流转发给Host A上的 CPl客户端。
[0085] 其中,操作270与280不存在执行顺序限制,基于各自记载的相应触发条件触发执 行。本实施例附图4仅提供其中一个示例。
[0086] 对于Host A与Host B上CP2客户端之间的通信也可以采用类似图4所示的流程, 只需开放与CP服务器与TURN服务器之间的接口,即可共用运营商TURN服务器的协议转换 功能。
[0087] 在具体应用中,为了减少不同地址族客户端之间的流量绕转,运营商部署可以部 署多个覆盖区域不同的TURN服务器。根据本发明不同版本互联网协议客户端之间的通信 方法另一个实施例,在此场景下,操作120中,CP服务器发现第一用户与第二用户为好友关 系、但第一主机与第二主机使用的IP地址属于不同的地址族时,可以从多个TURN服务器中 选择一个对第一主机与第二主机之间数据流转发路径最短的一个TURN服务器,然后作为 TURN客户端向选择的TURN服务器发送映射请求。从而使得CP服务器可以选择合理的TURN 服务器来提供不同地址族客户端之间的数据流量中转服务,以最大可能降低流量远程绕转 的概率。
[0088] 具体地,选择一个对第一主机与第二主机之间数据流转发路径最短的一个TURN 服务器可以通过如下方式实现:分别计算第二主机使用的IPv6地址与多个TURN服务器中 每一个TURN服务器之间的距离,例如分别对第二主机使用的IPv6地址与多个TURN服务器 中每一个TURN服务器地址进行异或(XOR)运算,来选择与第二主机使用的IPv6地址之间 距离最小的TURN服务器。由于IPv6地址前缀可包含使用该IPv6地址的节点(例如终端 或主机)所处的地理位置信息(如所在省或者区县)。IPv6地址与某个TURN服务器IPv6 地址进行XOR运算的值越小,代表这两个地址的前缀相同位数越多,距离也就越近。
[0089] 在实现本发明的过程中,发明人发现,IPv4地址空间小,无法编入更多的地址信 息;而IPv6
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1