[发明专利]TCP协议的传输方法、装置和系统在审
申请号: | 201410817885.4 | 申请日: | 2014-12-24 |
公开(公告)号: | CN104580171A | 公开(公告)日: | 2015-04-29 |
发明(设计)人: | 张鹏;张昕 | 申请(专利权)人: | 北京高森明晨信息科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L1/00 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 100020 北京市朝阳区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | tcp 协议 传输 方法 装置 系统 | ||
技术领域
本发明涉及通信领域,尤其涉及一种TCP协议的传输方法、装置和系统。
背景技术
随着通信技术飞速发展,数据传输协议也得到快熟的应用。TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP采用滑动窗口进行拥塞控制来适应网络状况的变化,同时实现端到端结点之间的可靠数据传输。
TCP中使用的拥塞控制技术一般采用滑动窗口机制还可对网络进行拥塞控制,将网络中的分组(TCP报文段作为其数据部分)数量维持在一定的数量之下,当超过该数值时,网络的性能会急剧恶化。传输层的拥塞控制有慢开始(Slow-Start)、拥塞避免(Congestion Avoidance)、快重传(Fast Retransmit)和快恢复(Fast Recovery)四种算法。
大量数据报涌入同一交换节点(如路由器),导致该节点资源耗尽而必须丢弃后面到达的数据报时发生拥塞。因此发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。因此,每一个TCP连接需要有以下两个状态变量:其一是接收端窗口rwnd(receiver window)又称为通知窗口(advertised window)。这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在TCP报文的首部中的窗口字段,传送给发送端。其二是拥塞窗口cwnd(congestion window)。cwnd是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。
在以太网的环境下,当发送端不知道对方窗口大小的时候,便直接向网络发送多个报文段,直至收到对方通告的窗口大小为止。但如果在发送方和接收方有多个路由器和较慢的链路时,就可能出现一些问题,一些中间路由器必须缓存分组,并有可能耗尽存储空间,这样就会严重降低TCP连接的吞吐量。
现有技术在解决传输拥塞和数据延迟时,通过快重传和快恢复机制解决。如有时一条TCP连接会因等待重传计时器的超时而空闲较长的时间。为此以后又增加了两个新的拥塞控制算法。假定发送端发送了一个报文段M1~M4共4个报文段。假定由于网络拥塞使M3丢失了。接收端后来收到下一个M4,发现其序号不对,但仍收下放在缓存中,同时发出确认,不过发出的是重复的ACK2共(不能够发送ACK4,因为ACK4表示M4和M3都已经收到了)。发送端接着发送M5和M6。接收端收到了M5和M6后,也还要分别发出重复的ACK2。这样,发送端共收到了接收端的四个ACK2,其中三个是重复的。
快重传算法规定,发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应立即重传丢失的报文段M3而不必继续等待为M3设置的重传计时器的超时。若倒数第三个分组丢失了,TCP只能收到两次重复ACK,因为后续没有分组可以触发新的ACK了。这时,只能通过超时计时器检测到丢包,这比三次ACK方式要慢很多。
因此,会造成数据包传输延迟增大,带宽利用率下降。当一条TCP连接用来传输数据量比较大且连续,且传输完就直接关闭,TCP尾部丢包的后果,相比来说不是很严重。但是,TCP连接上传输的数据通常是不连续的,即数据分很多次传输,且每次的数据量不是很大。例如,在浏览网页时,分布式文件系统中请求数据块时,TCP连接上传输的数据时不连续的。更严重的时,很多时候用户对时延比较敏感,如浏览网页。TCP尾部丢包的后果会严重影响用户体验质量。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种TCP协议的传输方法、装置和系统。所述技术方案如下:
第一方面,本发明实施例提供的TCP协议的传输方法,所述方法包括:
发送一条TCP连接的若干TCP数据包;
当任一TCP数据包为所述TCP连接的尾部数据包时,根据接收端对所述任一TCP数据包的响应消息,继续发送至少一个冗余数据包;
根据接收端对冗余数据包的响应消息,停止发送冗余包。
优选地,所述冗余包是一条TCP连接的尾部最后一个数据包。
优选地,所述冗余包是一条TCP连接的尾部最后一个数据包中一段字节。
优选地,所述方法还包括:
根据丢包率确定发送冗余包的数量。
优选地,所述发送一条TCP连接若干TCP数据包时,所述方法还包括:
每次判断若干TCP数据包是否为一条TCP连接的尾部数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京高森明晨信息科技有限公司,未经北京高森明晨信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410817885.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理方法和装置
- 下一篇:一种负载均衡处理装置