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

文档序号:9451575阅读:831来源:国知局
不同版本互联网协议客户端之间的通信方法和系统的制作方法
【技术领域】
[0001] 本发明涉及通信技术,尤其是一种不同版本互联网协议客户端之间的通信方法和 系统。
【背景技术】
[0002] 中国电信当前正积极推进用户、网络以及互联网内容从第四版本互联网协议 (IPv4,简称:v4)向第六版本互联网协议(IPv6,简称:v6)演进,目前采用了如轻型双栈 (DS-Lite)、网络地址转换(NAT) 444等过渡技术。但这些技术的引入,主要解决的是如何在 IPv6网络上传递IPv4用户与传统互联网服务器间的通信,如何避免IPv4地址短缺等情况。 其它一些新型的过渡技术,如NAT64, 一般也主要考虑如何实现IPv6用户访问IPv4互联网 服务器上的资源。
[0003] 上述所有过渡技术都没有考虑如何实现基于客户端的IPv4用户与IPv6用户间的 直接通信。在现有实现IPv4用户与IPv6用户通信的一种方式中,内容提供商(CP)只能通 过在其服务器侧自行部署实现IPv4与IPv6 (表示为:IPv4/IPv6或v4/v6)协议转换、流量 中转的设备来完成上述两类用户间的直接通信,IPv4用户向IPv6用户发送通信报文时,由 IPv4用户与该设备的IPv4地址通信,该设备提取IPv4用户通信报文中的应用层数据,再通 过其IPv6地址与IPv6用户通信;IPv6用户向IPv4用户发送通信报文时的流程同理。该 实现IPv4用户与IPv6用户通信的方式至少存在以下问题:由CP来部署这样的设备,一方 面会因为该设备部署较少或者部署位置不合适造成客户端与客户端(C/C)间通信的流量 绕转,另一方面也需要花费大量精力来处理网络层面的协议转换,从而加重了 IPv4向IPv6 演进的成本。
[0004] 在现有实现IPv4用户与IPv6用户通信的另一种方式中,基于通过中继网络地址 翻译(NAT)实现的穿透(Traversal UsingRelayNAT,TURN)客户端(Client)与 TURN 服务 器(Server)之间的通信模型,通过提前获取通信对端另一协议族的地址来实现IPv4用户 与IPv6用户间的直接通信。其中的TURN Client与TURN Server可以表示为TURN Client/ TURN Server间的通信模型。该TURN Client/TURN Server通信模型存在的问题是:没有考 虑本架构如何被其他CP采用,以协助CP完成v4/v6客户端之间的通信。

【发明内容】

[0005] 本发明实施例所要解决的技术问题是:提供一种不同版本互联网协议客户端之间 的通信方法和系统,以协助CP服务器完成v4/v6客户端之间的通信,降低IPv4向IPv6演 进的成本和难度。
[0006] 本发明实施例提供的一种不同版本互联网协议客户端之间的通信方法,包括:
[0007] 第一主机上的内容提供商CP客户端向CP服务器发送第一注册请求,该第一注册 请求中包括第一用户的用户信息和第一主机使用的一个版本互联网协议IP地址信息;第 二主机上的CP客户端向所述CP服务器发送第二注册请求,该第二注册请求中包括第二用 户的用户信息和第二主机使用的另一版本IP地址信息;第一主机和第二主机上的CP客户 端属于同一个CP的CP客户端;
[0008] CP服务器发现第一用户与第二用户为好友关系、但第一主机与第二主机使用的 IP地址属于不同的地址族时,作为通过中继网络地址翻译实现的穿透TURN客户端向TURN 服务器发送映射请求,该映射请求中包括所述一个版本IP地址信息和所述另一版本IP地 址信息;
[0009] TURN服务器从自身配置的地址池中,向所述第一主机分配另一版本的中继地址, 向所述第二主机分配一个版本的中继地址;
[0010] TURN服务器在映射表中建立第一主机使用的一个版本IP地址、端口号和所述另 一版本的中继地址之间的第一映射表项,建立第二主机使用的另一版本IP地址、端口号和 所述一个版本的中继地址之间的第二映射表项,并向所述CP服务器返回所述另一版本的 中继地址和所述一个版本的中继地址;所述中继地址包括中继IP地址和端口号;
[0011] CP服务器将所述另一版本的中继地址作为第一主机的地址信息发送给第二主机 上的CP客户端,将所述一个版本的中继地址作为第二主机的地址信息发送给第一主机上 的CP客户端;
[0012] TURN服务器接收到第一主机上的CP客户端基于所述一个版本的中继地址发送给 第二主机上的CP客户端的第一数据流时,基于所述第二映射表项对所述第一数据流进行 地址和协议的转换后转发给第二主机上的CP客户端;接收到第二主机上的CP客户端基于 所述另一版本的中继地址发送给第一主机上的CP客户端的第二数据流时,基于所述第一 映射表项对所述第二数据流进行地址和协议的转换后转发给第一主机上的CP客户端。
[0013] 基于上述方法的另一个实施例中,所述一个版本IP地址为第四版本互联网协议 IPv4地址,所述一个版本的中继地址包括中继IPv4地址和端口号;
[0014] 所述另一版本IP地址为第六版本互联网协议IPv6地址,所述另一版本的中继地 址包括中继IPv6地址和端口号。
[0015] 基于上述方法的另一个实施例中,基于所述第二映射表项对所述第一数据流进行 地址和协议的转换后转发给第二主机上的CP客户端包括:
[0016] 将所述第一数据流从IPv4协议转换为IPv6协议,并查询第二映射表项,获取第一 数据流中作为目的地址的中继IPv4地址和端口号对应的第二主机使用的IPv6地址和端口 号,根据该第二主机使用的IPv6地址和端口号,将IPv6协议的第一数据流转发给第二主机 上的CP客户端;
[0017] 基于所述第一映射表项对所述第二数据流进行地址和协议的转换后转发给第一 主机上的CP客户端包括:
[0018] 将所述第二数据流从IPv6协议转换为IPv4协议,并查询第一映射表项,获取第二 数据流中作为目的地址的中继IPv6地址和端口号对应的第一主机使用的IPv4地址和端口 号,根据该第一主机使用的IPv4地址和端口号,将IPv4协议的第二数据流转发给第一主机 上的CP客户端。
[0019] 基于上述方法的另一个实施例中,通信网络中包括多个TURN服务器时,还包括:
[0020] CP服务器发现第一用户与第二用户为好友关系、但第一主机与第二主机使用的 IP地址属于不同的地址族时,从多个TURN服务器中选择一个对第一主机与第二主机之间 数据流转发路径最短的一个TURN服务器;
[0021 ] 所述作为TURN客户端向TURN服务器发送映射请求具体为:向选择的TURN服务器 发送映射请求。
[0022] 基于上述方法的另一个实施例中,选择一个对第一主机与第二主机之间数据流转 发路径最短的一个TURN服务器包括:
[0023] 分别计算第二主机使用的IPv6地址与所述多个TURN服务器中每一个TURN服务 器之间的距离,选择与第二主机使用的IPv6地址之间距离最小的TURN服务器。
[0024] 基于上述方法的另一个实施例中,分别计算第二主机使用的IPv6地址与所述多 个TURN服务器中每一个TURN服务器之间的距离包括:
[0025] 分别对第二主机使用的IPv6地址与所述多个TURN服务器中每一个TURN服务器 地址进行异或XOR运算。
[0026] 本发明实施例提供的一种不同版本互联网协议客户端之间的通信系统,包括TURN 服务器、作为TURN客户端的CP服务器、使用一个版本IP地址的第一主机和使用另一版本 IP地址的第二主机,第一主机和第二主机上分别耦合设置有同一个CP的CP客户端;
[0027] 所述第一主机上的CP客户端,用于向CP服务器发送第一注册请求,该第一注册请 求中包括第一用户的用户信息和第一主机使用的一个版本IP地址信息;
[0028] 所述第二主机上的CP客户端,用于向所述CP服务器发送第二注册请求,该第二注 册请求中包括第二用户的用户信息和第二主机使用的另一版本IP地址信息;
[0029] 所述CP服务器,用于发现第一用户与第二用户为好友关系、但第一主机与第二主 机使用的IP地址属于不同的地址族时,作为TURN客户端向TURN服务器发送映射请求,该 映射请求中包括所述一个版本IP地址信息和所述另一版本IP地址信息;以及将TURN服务 器返回的另一版本的中继地址作为第一主机的地址信息发送给第二主机上的CP客户端, 将TURN服务器返回的一个版本的中继地址作为第二主机的地址信息发送给第一主机上的 CP客户端;
[0030] 所述TURN服务器,用于从自身配置的地址池中,向所述第一主机分配另一版本的 中继地址,向所述第二主机分配一个版本的中继地址;在映射表中建立第一主机使用的一 个版本IP地址、端口号和所述另一版本的中继地址之间的第一映射表项,建立第二主机使 用的另一版本IP地址、端口号和所述一个版本的中继地址
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1