[发明专利]数据传输方法和数据传输终端有效
申请号: | 201210156136.2 | 申请日: | 2012-05-18 |
公开(公告)号: | CN103428240A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 王中飞;陈志武 | 申请(专利权)人: | 深圳市腾讯计算机系统有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;曾旻辉 |
地址: | 518057 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据传输 方法 终端 | ||
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据传输方法和数据传输终端。
背景技术
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。基于TCP的数据传输过程大概可以分为慢启动、拥塞避免、快速恢复和超时重传几个阶段。
具体的,TCP连接刚建立时处于慢启动状态,此时TCP的拥塞窗口以一个特定的值为初始值,每收到一个ACK(确认),则拥塞窗口就加一,这样,TCP的拥塞窗口会以指数的速度很快的增长到一个比较大的值。当拥塞窗口超过了设定的拥塞阈值,则TCP进入拥塞避免状态,在拥塞避免状态中,发送窗口中的所有包都收到ACK,则拥塞窗口加一,则拥塞窗口会以一个线性的速度缓慢增长。当在某一时刻出现了重复的ACK,意味着有些发送的包丢失,没能达到接收端,则TCP进入快速恢复状态,重传丢失的包,同时倍数降低TCP的拥塞窗口的值。当发出的全部的包在一定时间内都收到不到ACK的话,则认为进入了极度拥塞,TCP进入超时重传状态,则将TCP的拥塞窗口降为一,重传所有发出的包。
对于TCP短连接来说,整个连接一般会在慢启动阶段就结束;对于TCP长连接来说,整个数据传输过程会不断在以上几个阶段往复进行。
为了提高TCP数据传输的速度,传统的方法通常是增大拥塞窗口的初始值,或加快慢启动中拥塞窗口的增长速度,使得TCP能够更加快速的达到网络的最大容量。然而,传统的这种方法仅考虑拥塞窗口如何增长,比较单一。且对于一些下载类的长连接(如视频播放服务中,客户端需从视频服务器下载视频数据),仅仅加快慢启动中的拥塞窗口的增长速度并不能很好的提高TCP数据传输的速度。
发明内容
基于此,有必要提供一种能提高数据传输速度的数据传输方法。
一种数据传输方法,包括以下步骤:建立TCP连接;获取与所述TCP连接对应的接收端具有同源网络地址的TCP连接的网络特性数据;根据所述网络特性数据计算TCP拥塞窗口;根据所述TCP拥塞窗口与所述接收端进行数据传输。
在其中一个实施例中,所述获取与所述TCP连接对应的接收端具有同源网络地址的TCP连接的网络特性数据的步骤为:获取所述TCP连接对应的接收端的网络地址;从缓存中查询与所述网络地址对应的网络特性数据。
在其中一个实施例中,所述方法还包括:在所述TCP连接结束时获取所述TCP连接的网络特性数据和对应的接收端的网络地址,将所述获取的网络特性数据和所述网络地址对应更新至缓存中。
在其中一个实施例中,所述网络特性数据为丢包率和/或往返时延。
在其中一个实施例中,所述网络特性数据为丢包率,所述在所述TCP连接结束时获取所述TCP连接的网络特性数据和对应的接收端的网络地址,将所述获取的网络特性数据和所述网络地址对应更新至缓存中的步骤为:在所述TCP连接结束时获取所述TCP连接的丢包率和所述对应的接收端的网络地址,根据所述丢包率和历史丢包率,计算出新的丢包率并将其和对应的网络地址更新至缓存中。
在其中一个实施例中,所述网络特性数据为丢包率;所述根据网络特性数据计算TCP拥塞窗口的步骤包括:根据所述丢包率计算拥塞阈值,根据所述拥塞阈值和丢包率计算快速恢复阶段的TCP拥塞窗口;和/或,根据所述丢包率计算超时重传阶段的TCP拥塞窗口的初始值;和/或,根据所述丢包率计算拥塞阈值,根据所述丢包率和拥塞阈值计算慢启动阶段的TCP拥塞窗口的初始值。
在其中一个实施例中,所述拥塞阈值、所述快速恢复阶段的TCP拥塞窗口的下降速度、所述超时重传阶段的TCP拥塞窗口的初始值和所述慢启动阶段的TCP拥塞窗口的初始值分别与所述丢包率成反比。
此外,还有必要提供一种能提高数据传输速度的数据传输终端。
一种数据传输终端,包括:TCP连接建立模块,用于与接收端建立TCP连接;数据获取模块,用于获取与所述TCP连接对应的接收端具有同源网络地址的TCP连接的网络特性数据;数据处理模块,用于根据所述网络特性数据计算TCP拥塞窗口;数据传输模块,用于根据所述TCP拥塞窗口与所述接收端进行数据传输。
在其中一个实施例中,所述数据传输终端为视频服务器,所述接收端为视频客户端;所述数据传输模块用于根据所述TCP拥塞窗口与所述视频客户端进行视频数据的传输。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯计算机系统有限公司,未经深圳市腾讯计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210156136.2/2.html,转载请声明来源钻瓜专利网。