会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 对等网络 / 一种基于UDT的对等网络数据传输方法

一种基于UDT的对等网络数据传输方法

申请号 CN201510635205.1 申请日 2015-09-30 公开(公告)号 CN105227276B 公开(公告)日 2018-07-27
申请人 河南大学; 发明人 郑逢斌; 陈小潘; 葛强; 左宪禹; 韩志杰; 许苗新;
摘要 本发明公开了种基于UDT的对等网络数据传输方法,包括以下步骤:A、客户端与服务器建立连接,成为对等网络中拥有唯ID标识的个节点;B、客户端作为接受节点,与保存有自身所需资源的多个发送节点建立连接;C、多个发送节点分别向接收节点发送包含不同资源内容的数据包,且发送节点根据发送数据的类型决定为发送信道分配的带宽大小;D、接收节点接收包含所需资源内容的数据包,并通知发送节点重传丢失的数据包。本发明通过区分对等网络节点间传输的数据类型,对实时数据和普通数据的传输采取不同的发送及接收方式,有效提高了实时数据的传输速率及传输可靠性。
权利要求

1.一种基于UDT的对等网络数据传输方法,其特征在于,包括以下步骤:

A、客户端向服务器发送连接请求,通过四次握手协议与服务器建立连接后,客户端获得一个唯一的ID标志,成为对等网络中的一个节点,然后进入步骤B;

B、客户端向服务器发送含有所需资源信息的请求,服务器根据客户端发送的请求从自身保存的节点列表中选择含有该所需资源信息的所有节点,并将所选节点的ID号反馈至客户端,客户端根据接收到的多个资源节点的ID号,向所有节点ID号对应的资源节点发送握手请求数据包,并设定将要建立连接的资源节点的个数N,资源节点接收到握手请求数据包后分别向客户端发送握手回应数据包,客户端根据最先接收到的N个握手回应数据包,对应的与发出上述握手回应数据包的N个资源节点建立连接,其中客户端作为接收节点,与客户端建立连接的多个资源节点作为发送节点,然后进入步骤C;

C、步骤B中的多个发送节点分别向接收节点发送包含不同资源内容的数据包,数据包中添加数据类型标志位,数据类型标志位用于区分实时数据和普通数据,当发送节点没有接收其它节点发来的数据时,发送节点的发送信道占用全部带宽,当发送节点同时接收其它节点发来的数据时,若发送节点发送的数据为实时数据,发送节点为发送信道分配1/2以上的带宽,若发送节点发送的数据为普通数据,发送节点为发送信道分配1/2以下的带宽,然后进入步骤D;

D、接收节点接收包含所需资源内容的数据包,当有数据包丢失时,将丢失数据包的序号存入接收端丢失链表中,接收节点根据丢失数据包的数据类型标志位判断其数据类型,若丢失数据包为实时数据,直接将丢失数据包的序号从接收端丢失链表中删除,接收节点向发送节点发送该丢失数据包的丢弃信号,即通知发送节点不需重传该数据包,若丢失的数据包为普通数据,接收节点向发送节点发送否定应答信号,通知发送节点重传该数据包。

2.如权利要求1所述的一种基于UDT的对等网络数据传输方法,其特征在于: 所述的步骤B中客户端向资源节点发送握手请求数据包时,若资源节点设有防火墙,则由服务器代替客户端向资源节点转发握手请求数据包,进行NAT穿透,资源节点接收到握手请求数据包后向客户端发送握手响应数据包。

说明书全文

一种基于UDT的对等网络数据传输方法

技术领域

[0001] 本发明涉及流媒体点播系统中的对等网络节点通信技术领域,尤其涉及一种基于UDT的对等网络数据传输方法。

背景技术

[0002] 目前,主流的在线传输协议通常在传输层采用TCP协议,但TCP协议存在如下缺点:首先,TCP不能进行NAT(Network Address Translator,网络地址转换)穿透,而对等网络的内部节点与外部网络进行正常通信时,可能需要使用NAT穿透技术,若采用复用TCP协议的其它传输协议,需要在应用层添加代码,实现过程相当复杂;其次,TCP是面向接连的可靠传输层协议,但在线传输例如视频点播等主要要求画面流畅,TCP的拥塞控制算法能够保证传输的可靠性,但对于实时数据来说,重传丢失数据包的意义不大,TCP不停的重发数据只能加剧网络拥塞,造成视频播放卡顿,影响用户体验。
[0003] UDT是一种基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT),UDP是面向无连接的不可靠传输协议,本身具有NAT穿透功能,用其传输实时数据能够保证传输速度。将UDT应用于对等网络的数据传输,可同时支持可靠的数据流传输和部分可靠的数据报传输,但传输时对于实时数据和普通数据无区分,当进行在线传输时不能保证实时数据的即时性要求。

发明内容

[0004] 本发明的目的在于提供一种基于UDT的对等网络数据传输方法,能够提高对等网络节点间实时数据的传输效率,保证在线传输的可靠性。
[0005] 为实现上述目的,本发明采用的技术方案是:
[0006] 一种基于UDT的对等网络数据传输方法,包括以下步骤:A、客户端向服务器发送连接请求,通过四次握手协议与服务器建立连接后,客户端获得一个唯一的ID标志,成为对等网络中的一个节点,然后进入步骤B;
[0007] B、客户端向服务器发送含有所需资源信息的请求,服务器根据客户端发送的请求从自身保存的节点列表中选择含有该所需资源信息的所有节点,并将所选节点的ID号反馈至客户端,客户端根据接收到的节点ID号与多个资源节点建立连接,其中客户端作为接收节点,与客户端建立连接的多个资源节点作为发送节点,然后进入步骤C;
[0008] C、步骤B中的多个发送节点分别向接收节点发送包含不同资源内容的数据包,数据包中添加数据类型标志位,数据类型标志位用于区分实时数据和普通数据,当发送节点没有接收其它节点发来的数据时,发送节点的发送信道占用全部带宽,当发送节点同时接收其它节点发来的数据时,若发送节点发送的数据为实时数据,发送节点为发送信道分配1/2以上的带宽,若发送节点发送的数据为普通数据,发送节点为发送信道分配1/2以下的带宽,然后进入步骤D;
[0009] D、接收节点接收包含所需资源内容的数据包,当有数据包丢失时,将丢失数据包的序号存入接收端丢失链表中,接收节点向发送节点发送否定应答信号,通知发送节点重传该数据包。
[0010] 所述的步骤D中接收节点根据丢失数据包的数据类型标志位判断其数据类型,若丢失数据包为实时数据,直接将丢失数据包的序号从接收端丢失链表中删除,接收节点向发送节点发送该丢失数据包的丢弃信号,即通知发送节点不需重传该数据包,若丢失的数据包为普通数据,接收节点向发送节点发送否定应答信号,通知发送节点重传该数据包。
[0011] 所述的步骤B中客户端接收到多个资源节点的ID号,客户端向所有节点ID号对应的资源节点发送握手请求数据包,并设定将要建立连接的资源节点的个数N,资源节点接收到握手请求数据包后分别向客户端发送握手回应数据包,客户端根据最先接收到的N个握手回应数据包,对应的与发出上述握手回应数据包的N个资源节点建立连接。
[0012] 所述的步骤B中客户端向资源节点发送握手请求数据包时,若资源节点设有防火墙,则由服务器代替客户端向资源节点转发握手请求数据包,进行NAT穿透,资源节点接收到握手请求数据包后向客户端发送握手响应数据包。
[0013] 本发明将UDT协议应用于对等网络的数据传输,使其能够同时支持可靠的数据流传输和部分可靠的数据报传输,并通过区分对等网络节点间传输的数据类型,对实时数据和普通数据的传输采取不同的发送方式,有效提高了实时数据的传输速率及传输可靠性。

附图说明

[0014] 图1为本发明的流程示意图。

具体实施方式

[0015] 如图1所示,本发明所述的一种基于UDT的对等网络数据传输方法,包括以下步骤:A、客户端向服务器发送连接请求,通过四次握手协议与服务器建立连接后,客户端获得一个唯一的ID标志,成为对等网络中的一个节点,然后进入步骤B。
[0016] B、客户端向服务器发送含有所需资源信息的请求,服务器根据客户端发送的请求从自身保存的节点列表中选择含有该所需资源信息的所有节点,并将所选节点的ID号反馈至客户端,客户端根据接收到的节点ID号与多个资源节点建立连接,其中客户端作为接收节点,与客户端建立连接的多个资源节点作为发送节点,然后进入步骤C。
[0017] 步骤B中因客户端接收到的是服务器保存的所有包含所需资源信息的节点ID号,为了提高建立连接的效率,客户端可向所有节点ID号对应的资源节点发送握手请求数据包,同时设定将要与之建立连接的资源节点的个数N。若资源节点设有防火墙,则由服务器代替客户端向资源节点转发握手请求数据包,资源节点接收到握手请求数据包后分别向客户端发送握手响应数据包。客户端根据最先接收到的N个握手回应数据包,对应的与发出上述握手回应数据包的N个资源节点建立连接。
[0018] C、步骤B中的多个发送节点分别向接收节点发送包含不同资源内容的数据包,数据包中添加数据类型标志位,数据类型标志位用于区分实时数据和普通数据,当发送节点没有接收其它节点发来的数据时,发送节点的发送信道占用全部带宽,当发送节点同时接收其它节点发来的数据时,若发送节点发送的数据为实时数据,发送节点为发送信道分配1/2以上的带宽,若发送节点发送的数据为普通数据,发送节点为发送信道分配1/2以下的带宽,然后进入步骤D。
[0019] 步骤C中,由于采用UDT协议的对等网络节点可能具有多个套接字,发送节点在发送数据的同时也可以从其它节点接收数据,若发送节点发送的数据为实时数据,而实时数据的传输对实时性要求很高,故应优先保证发送节点和接收节点间的实时数据传输速率,即通过判断发送节点是否在从其它节点接收数据以及发送节点正在发送的数据类型,来决定分配给发送信道的带宽,以充分保证实时数据的传输速率。
[0020] D、接收节点接收包含所需资源内容的数据包,当有数据包丢失时,将丢失数据包的序号存入接收端丢失链表中,接收节点向发送节点发送否定应答信号,通知发送节点重传该数据包。
[0021] 由于实时数据的传输要求实时到达,故若实时数据在传输过程中丢失,发送节点重传数据的意义不大,反而会加重网络传输负担,甚至导致网络的拥堵。步骤D中接收节点可根据丢失数据包的数据类型标志位判断其数据类型,若丢失数据包为实时数据,直接将丢失数据包的序号从接收端丢失链表中删除,接收节点向发送节点发送该丢失数据包的丢弃信号,即通知发送节点不需重传该数据包,若丢失的数据包为普通数据,接收节点向发送节点发送否定应答信号,通知发送节点重传该数据包。
[0022] 本发明中接收节点通过区分丢失数据包的数据类型,选择性地向发送节点发送丢失数据包的否定应答信号,使发送节点重传的丢失数据包仅限于普通数据,有利于提高实时数据传输的效率,特别是对于视频点播等在线数据的传输,可达到更好的播放效果。本发明通过区分对等网络节点间传输的数据类型,对实时数据和普通数据的传输采取不同的发送及接收方式,有效提高了实时数据的传输速率及传输可靠性。