您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页一种优化无线视频TCP传输的方法[发明专利]

一种优化无线视频TCP传输的方法[发明专利]

来源:五一七教育网
(19)中华人民共和国国家知识产权局

*CN101765004A*

(10)申请公布号 CN 101765004 A(43)申请公布日 2010.06.30

(12)发明专利申请

(21)申请号 2008102077.2(22)申请日 2008.12.25

(71)申请人上海寰创通信科技有限公司

地址200241 上海市闵行区东川路555号6

号楼602室(72)发明人吴亮 李贤平 尚涛 高凤春(74)专利代理机构上海科盛知识产权代理有限

公司 31225

代理人赵志远(51)Int.Cl.

H04N 7/24(2006.01)H04L 29/06(2006.01)H04L 1/00(2006.01)

权利要求书 3 页 说明书 6 页 附图 1 页

(54)发明名称

一种优化无线视频TCP传输的方法(57)摘要

本发明涉及一种优化无线视频TCP传输的方法,该方法包括:采集RTT信息;接收报文的处理;设置重传定时器;重传定时器的超时处理;构造ACK报文的处理。与现有技术相比,本发明的实现原理简单,对于无线视频TCP传输的多数场合有效;此外,本发明视频编码器,视频显示中心等终端节点设备完全透明,功能模块部署容易,即可用于层2交换设备,也可用于层3路由设备。

CN 101765004 ACN 101765004 ACN 101765006 A

权 利 要 求 书

1/3页

1.一种优化无线视频TCP传输的方法,其特征在于,该方法包括:

(1)采集RTT信息;(2)接收报文的处理;(3)设置重传定时器;

(4)重传定时器的超时处理;(5)构造ACK报文的处理。

2.根据权利要求1所述的一种优化无线视频TCP传输的方法,其特征在于,所述的采集RTT信息的步骤包括:

(1)在收到应答某报文的ACK时,取出发送该报文的时间;(2)当前时间减去“发送时间”,得到RTT_now;(3)该TCP连接的RTT值记录为RTT,初始值为0;(4)重新计算RTT,依据当前RTT值和RTT_now的加权平均取值。3.根据权利要求1所述的一种优化无线视频TCP传输的方法,其特征在于,所述的接收报文的处理包括:

(1)如果接收到的报文不是TCP报文,则不做处理;(2)检测报文方向是“从无线侧来”,还是“从有线侧来”;(3)若报文方向是“从无线侧来”,则进行以下步骤:a.报文带有TCP标志RST或者FIN,则表示实际TCP连接已经结束,查找本地对应的实体,发完缓冲的报文;

b.报文中带有TCP标志SYN与ACK,则表示由有线侧发起创建了该TCP连接,无线侧进行响应,此时创建本地对应的实体;

c.报文中带有SYN标志,则表示由无线侧发起创建了该TCP连接,此时创建本地对应的实体;

d.报文中带有ACK标志,则表示无线侧对接收报文的应答,进入“ACK应答”处理;(4)若报文方向是“从有线侧来”,则进行以下步骤:a.报文中同时带有标志SYN与ACK,或仅带有ACK,则说明此为有线侧发来的新连接,进入“DATA缓存处理”;

b.报文中带有标志SYN,则说明此为有线侧发起的新的连接,进入“DATA缓存处理”。4.根据权利要求3所述的一种优化无线视频TCP传输的方法,其特征在于,所述的“ACK应答”的处理包括:

(1)获取TCP连接对应的本地实体,若本地实体不存在,则不做处理返回;(2)若该连接由无线侧发起,且本地实体等待监听“3次握手中的ACK报文“,则将本地实体状态设置为“建立完成”态,记录ACK序号为“记录的ACK序号”;

(3)对于其他状态:a.若报文中的“ACK序号”小于“记录的ACK序号”,则认为是异常情况;b.若报文中的“ACK序号”大于“记录的ACK序号”,则认为数据接收方又收到了数据包:

i.清空对应于“记录的ACK序号”与“ACK序号”之间的缓存报文;ii.更新“记录的ACK序号”为“ACK序号”;

2

CN 101765004 ACN 101765006 A

权 利 要 求 书

2/3页

iii.重新计算RTT;

iv.复位重发定时器;c.若报文中的“ACK序号”等于“记录的ACK序号”,则认为这是重复ACK,代表接收方报告了报文丢失:

i.获取可能的SACK选项;ii.循环缓冲的报文:若报文在SACK丢失报告中,且现在距该报文发送时间大于2倍连接的RTT时间,则重发报文该报文;

iii.取出缓冲队列中的第一个报文;d.更新TCP连接使用的窗口大小;e.清除报文中的ACK标志;f.返回。

5.根据权利要求4所述的一种优化无线视频TCP传输的方法,其特征在于,所述的取出缓冲队列中的第一个报文包括:

(1)若该报文序号大于“ACK序号”,则转入步骤d;(2)若该报文序号不等于“ACK序号”,则转入步骤d;(3)若设置了重发该报文,则转入步骤d;

(4)若当前时间距离该TCP连接的本地实体发送报文的时间超过2倍的RTT,则重发该报文;

(5)若报文中给出窗口大小发生变化,或ACK报文中包含有数据部分,则转入步骤d;(6)丢弃接收到的ACK报文。

6.根据权利要求3所述的一种优化无线视频TCP传输的方法,其特征在于,所述的“DATA缓存”的流程包括:

(1)获取到对应TCP连接的本地实体,若如果本地实体不存在,则创建对应实体;(2)若报文中带有SYN标志,则进入“等待连接建立”状态;(3)若报文中不带有SYN标志,则进行以下步骤:a.若报文序号大于“记录的ACK序号”,则缓存报文到本地实体的队列;b.此为异常情况,让报文通过中间实体。

7.根据权利要求1所述的一种优化无线视频TCP传输的方法,其特征在于,所述的设置重传定时器包括:

(1)获取缓冲队列的第一包;(2)若报文空或报文对应的序号,不是“记录的ACK序号”,则删除重传定时器,并返回;(3)修改重传定时器的超时时间为该报文上次的发送时间加上2倍的RTT时间。8.根据权利要求1所述的一种优化无线视频TCP传输的方法,其特征在于,所述的重传定时器的超时处理包括:

(1)获取缓冲队列的第一包;(2)若报文空或对应的序号,不是“记录的ACK序号”,则返回;(3)重新发送取出的报文,重传定时器的超时时间为该报文上次的发送时间加上2倍的RTT时间。

9.根据权利要求1所述的一种优化无线视频TCP传输的方法,其特征在于,所述的构造

3

CN 101765004 ACN 101765006 A

权 利 要 求 书

3/3页

ACK报文的处理包括:

(1)初始的ACK报文应答序号为:TCP连接建立时发送方的起始序号;(2)记录接收到TCP接连的发送数据报文的序号;(3)周期性地构造ACK报文:

a.ACK报文应答序号=ACK报文应答序号+依据应答周期和期望速率计算出的报文字节数;

b.若“ACK报文应答序号”大于最近的“发送数据报文的序号”,则设置“ACK报文应答序号”为最近的“发送数据报文的序号”;

c.构造ACK报文,其中应答序号为本地实体的“ACK报文应答序号”,报文发往有线网络一侧。

4

CN 101765004 ACN 101765006 A

说 明 书

一种优化无线视频TCP传输的方法

1/6页

技术领域

[0001]

本发明涉及在以无线网络为承载的TCP视频业务中,采用中间节点在TCP连接中

监控,修改,注入相应报文的方法,尤其涉及一种优化无线视频TCP传输的方法。

背景技术

[0002] TCP连接要获得稳定带宽的一个重要因素是稳定的RTT(传输往返延时)值。如果RTT频繁变化,TCP无法准确估计出延时时间,因此可能一个短暂的临时的延时增加就导致TCP降低发送速率。现在无线网络由于有链路层的纠错或者重传机制,表现为在空中链路上的丢包率并不高,而在此类网络中最大的三个问题是:(一)延时突然增长。切换,底层重传,数据被阻塞都可能导致传输延时的突然增长。当它发生时,TCP协议看到的RTT延时可能是正常值的数倍。当延时突长发生时,发送方长时间无法收到ACK,因此重传定时器超时,数据重发。事实上此时的重发是没有必要的。随后发送方马上收到ACK,发送方无法判别哪个是重发的ACK,触发发送方的“慢启动”过程,在慢启动过程中造成数据发送的突发流,接着又引起拥塞控制。(二)RTT和带宽频繁变化。RTT和带宽频繁变化,无线环境中链路质量由于干扰,信号衰弱等原因,导致数据重传,RTT变化和带宽变化很大。例如WCDMA中的RLC层为了保证按序投递报文,会多次重传。(三)有线和无线链路混合构成传输路径。有线链路和无线链路的特性不同,针对TCP协议的优化难以同时适用于有线和无线链路。在高宽带的无线视频监控的应用中,对无线带宽的稳定性提出了很高要求,TCP连接实际的传输带宽的下降,必然影响到视频监控的效果。若传输带宽下降较大,视频的接收方会出现图像的抖动,迟滞,甚至马赛克等现象。发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷,提供一种高效可靠的优化无线视频TCP传输的方法。

[0004] 本发明的目的可以通过以下技术方案来实现:一种优化无线视频TCP传输的方法,其特征在于,该方法包括:

[0003] [0005] [0006] [0007] [0008] [0009] [0010] [0011] [0012] [0013] [0014]

(1)采集RTT信息;

(2)接收报文的处理;(3)设置重传定时器;

(4)重传定时器的超时处理;(5)构造ACK报文的处理。

所述的采集RTT信息的步骤包括:(1)在收到应答某报文的ACK时,取出发送该报文的时间;(2)当前时间减去“发送时间”,得到RTT_now;(3)该TCP连接的RTT值记录为RTT,初始值为0;(4)重新计算RTT,依据当前RTT值和RTT_now的加权平均取值。

5

CN 101765004 ACN 101765006 A[0015]

说 明 书

2/6页

所述的接收报文的处理包括:

[0016] (1)如果接收到的报文不是TCP报文,则不做处理;[0017] (2)检测报文方向是“从无线侧来”,还是“从有线侧来”;[0018] (3)若报文方向是“从无线侧来”,则进行以下步骤:[0019] a.报文带有TCP标志RST或者FIN,则表示实际TCP连接已经结束,查找本地对应的实体,发完缓冲的报文;

[0020] b.报文中带有TCP标志SYN与ACK,则表示由有线侧发起创建了该TCP连接,无线侧进行响应,此时创建本地对应的实体;[0021] c.报文中带有SYN标志,则表示由无线侧发起创建了该TCP连接,此时创建本地对应的实体;

[0022] d.报文中带有ACK标志,则表示无线侧对接收报文的应答,进入“ACK应答”处理;[0023] (4)若报文方向是“从有线侧来”,则进行以下步骤:[0024] a.报文中同时带有标志SYN与ACK,或仅带有ACK,则说明此为有线侧发来的新连接,进入“DATA缓存处理”;

[0025] b.报文中带有标志SYN,则说明此为有线侧发起的新的连接,进入“DATA缓存处理”。

[0026] 所述的“ACK应答”的处理包括:[0027] (1)获取TCP连接对应的本地实体,若本地实体不存在,则不做处理返回;[0028] (2)若该连接由无线侧发起,且本地实体等待监听“3次握手中的ACK报文“,则将本地实体状态设置为“建立完成”态,记录ACK序号为“记录的ACK序号”;[0029] (3)对于其他状态:[0030] a.若报文中的“ACK序号”小于“记录的ACK序号”,则认为是异常情况;[0031] b.若报文中的“ACK序号”大于“记录的ACK序号”,则认为数据接收方又收到了数据包:

[0032] i.清空对应于“记录的ACK序号”与“ACK序号”之间的缓存报文;[0033] ii.更新“记录的ACK序号”为“ACK序号”;[0034] iii.重新计算RTT;[0035] iv.复位重发定时器;[0036] c.若报文中的“ACK序号”等于“记录的ACK序号”,则认为这是重复ACK,代表接收方报告了报文丢失:

[0037] i.获取可能的SACK选项;[0038] ii.循环缓冲的报文:若报文在SACK丢失报告中,且现在距该报文发送时间大于2倍连接的RTT时间,则重发报文该报文;

[0039] iii.取出缓冲队列中的第一个报文;[0040] d.更新TCP连接使用的窗口大小;[0041] e.清除报文中的ACK标志;[0042] f.返回。

[0043] 所述的取出缓冲队列中的第一个报文包括:[0044] (1)若该报文序号大于“ACK序号”,则转入步骤d;

6

CN 101765004 ACN 101765006 A[0045]

说 明 书

3/6页

(2)若该报文序号不等于“ACK序号”,则转入步骤d;[0046] (3)若设置了重发该报文,则转入步骤d;

[0047] (4)若当前时间距离该TCP连接的本地实体发送报文的时间超过2倍的RTT,则重发该报文;

[0048] (5)若报文中给出窗口大小发生变化,或ACK报文中包含有数据部分,则转入步骤d;

[0049] (6)丢弃接收到的ACK报文。[0050] 所述的“DATA缓存”的流程包括:[0051] (1)获取到对应TCP连接的本地实体,若如果本地实体不存在,则创建对应实体;[0052] (2)若报文中带有SYN标志,则进入“等待连接建立”状态;[0053] (3)若报文中不带有SYN标志,则进行以下步骤:[0054] a.若报文序号大于“记录的ACK序号”,则缓存报文到本地实体的队列;[0055] b.此为异常情况,让报文通过中间实体。[0056] 所述的设置重传定时器包括:[0057] (1)获取缓冲队列的第一包;[0058] (2)若报文空或报文对应的序号,不是“记录的ACK序号”,则删除重传定时器,并返回;

[0059] (3)修改重传定时器的超时时间为该报文上次的发送时间加上2倍的RTT时间。[0060] 所述的重传定时器的超时处理包括:[0061] (1)获取缓冲队列的第一包;[0062] (2)若报文空或对应的序号,不是“记录的ACK序号”,则返回;[0063] (3)重新发送取出的报文,重传定时器的超时时间为该报文上次的发送时间加上2倍的RTT时间。

[00] 所述的构造ACK报文的处理包括:[0065] (1)初始的ACK报文应答序号为:TCP连接建立时发送方的起始序号;[0066] (2)记录接收到TCP接连的发送数据报文的序号;[0067] (3)周期性地构造ACK报文:

[0068] a.ACK报文应答序号=ACK报文应答序号+依据应答周期和期望速率计算出的报文字节数;[0069] b.若“ACK报文应答序号”大于最近的“发送数据报文的序号”,则设置“ACK报文应答序号”为最近的“发送数据报文的序号”;[0070] c.构造ACK报文,其中应答序号为本地实体的“ACK报文应答序号”,报文发往有线网络一侧。

[0071] 与现有技术相比,本发明的实现原理简单,对于无线视频TCP传输的多数场合有效;此外,本发明视频编码器,视频显示中心等终端节点设备完全透明,功能模块部署容易,即可用于层2交换设备,也可用于层3路由设备。附图说明

[0072]

图1是本发明一种优化无线视频TCP传输的方法的示意图。

7

CN 101765004 ACN 101765006 A

说 明 书

4/6页

具体实施方式

[0073] 以下结合具体实施例对本发明做进一步说明。[0074] 如图1所示,视频显示中心A,无线设备IB,无线设备IIC(作为无线网络的组成部分),视频编码器D,视频编码器D将远端的模拟视频信号编码成数字的IP报文,这些IP业务报文通过无线网络传输到无线网络和有线网络的边界设备(这里的无线设备IA),然后再经过有线网络传到“视频显示中心A”。

[0075] 在高宽带的无线视频监控的应用中,对无线带宽的稳定性提出了很高要求,TCP连接实际的传输带宽的下降,必然影响到视频监控的效果。若传输带宽下降较大,视频的接收方会出现图像的抖动,迟滞,甚至马赛克等现象。本专利采用了创新的方法,提出了一种轻量级的解决方法,无需修改终端设备,可完全解决上述问题。[0076] 在TCP连接经过的中间节点上,安装用于优化TCP性能的模块。该模块首先通过监听TCP建立连接的三次握手交互,建立对应连接的本地实体。然后该实体截取TCP连接中接收者上报的带有ACK标志的报文,并去除报文中ACK标志。该实体构造ACK报文发给TCP连接中的发送方,以控制发送方均匀地发送数据。该实体将缓存发送者的数据报文,针对接收者上报的重复ACK报文,判断出丢失的报文,然后重发这些报文。如果接收者的ACK报文在一定时间内没有收到,该实体将重发自己缓存区的第一个报文,以帮助TCP连接检测错误。

基本流程:

[0078] 接收报文的处理:

[0079] (1)如果接收到的报文不是TCP报文,不做处理。[0080] (2)确定报文方向是“从无线侧来”的,还是从“从有线侧来”[0081] (3)如果报文方向为“从无线侧来”。[0082] a)报文带有TCP标志RST或者FIN:表示实际TCP连接已经结束。查找本地对应的实体,发完缓冲的报文。

[0083] b)报文中带有TCP标志SYN和ACK(同时):表示由有线侧发起创建了该TCP连接,无线侧进行响应。此时创建本地对应的实体。[0084] c)报文中带有SYN标志:表示由无线侧发起创建了该TCP连接,此时创建本地对应的实体。

[0085] d)报文中带有ACK标志:表示无线侧对接收报文的应答。进入“ACK应答”处理。[0086] (4)如果报文方向为“从有线侧来”。[0087] a)报文中带有标志SYN和ACK(同时),或者ACK,说明此为有线侧发来的新连接,进入“DATA缓存”处理。

[0088] b)报文中带有标志SYNC,说明此为有线侧发起的新的连接,进入“DATA缓存”处理。

[00] “DATA缓存”的流程:

[0077]

(1)获取到对应TCP连接的本地实体。如果本地实体不存在,则创建对应实体。[0091] (2)如果报文中带有SYN标志,进入“等待连接建立”状态。[0092] (3)否则:

[0090]

8

CN 101765004 ACN 101765006 A[0093] [0094] [0095] [0096] [0097]

说 明 书

5/6页

a)如果报文序号大于“记录的ACK序号”,则缓存报文到本地实体的队列。

b)此为异常情况。让报文通过中间实体。“ACK应答”的处理:

(1)获取TCP连接对应的本地实体。如购本地实体不存在,则不做处理返回。(2)如果该连接由“无线侧发起”,且本地实体等待监听“3次握手中的ACK报文”,

将本地实体状态设置为“建立完成”态。记录ACK序号为“记录的ACK序号”。

[0098] (3)对于其他状态:[0099] a)如果报文中的“ACK序号”小于“记录的ACK序号”,认为是异常情况[0100] b)如果报文中的“ACK序号”大于“记录的ACK序号”,认为数据接收方又收到一些数据包。

[0101] i.清空对应于“记录的ACK序号”和“ACK序号”之间的缓存报文[0102] ii.更新“记录的ACK序号”为“ACK序号”[0103] iii.重新计算RTT[0104] iv.复位重发定时器[0105] c)如果报文中的“ACK序号”等于“记录的ACK序号”,认为这是重复ACK,代表接收方报告了报文丢失。

[0106] i.获取可能的SACK选项[0107] ii.循环缓冲的报文:如果报文在SACK丢失报告中,且现在距该报文发送时间大于2倍连接的RTT时间,则重发报文该报文。[0108] iii.取出缓冲队列中的第一个报文,[0109] 1.该报文序号大于“ACK序号”:转步骤d)[0110] 2.该报文序号不等于“ACK序号”:转步骤d)[0111] 3.如果设置了该重发该报文,转步骤d)

[0112] 4.如果当前时间距离该TCP连接的本地实体发送报文的时间,超过2倍的RTT,则重发该报文。

[0113] 5.如果报文中给出窗口大小发生变化。或者ACK报文中还有数据部分,转步骤d)[0114] 6.丢弃接收到的ACK报文

[0115] d)更新TCP连接使用的窗口大小[0116] e)清除报文中的ACK标志

f)返回

[0118] 设置重传定时器的过程:[0119] (1)获取缓冲队列的第一包

[0120] (2)如果报文空或者报文对应的序号,不是“记录的ACK序号”。那么删除重传定时器。返回。

[0121] (3)修改重传定时器的超时时间为该报文上次的发送时间加上2倍的RTT时间。[0122] 重传定时器的超时处理:[0123] (1)获取缓冲队列的第一包。[0124] (2)那么报文空或者对应的序号,不是“记录的ACK序号”,返回

[0125] (3)重新发送取出的报文。重传定时器的超时时间为该报文上次的发送时间加上

[0117]

9

CN 101765004 ACN 101765006 A

说 明 书

6/6页

2倍的RTT时间。

[0126] 计算RTT的过程:

[0127] (1)在收到应答某报文的ACK时,取出发送该报文的时间。[0128] (2)当前时间减去“发送时间”,得到RTT_now[0129] (3)该TCP连接的RTT值记录为RTT,初始值为0[0130] (4)重新计算RTT,依据当前RTT值和RTT_now的加权平均取值。[0131] 构造ACK报文的处理:

[0132] (1)初始的ACK报文应答序号为:TCP连接建立时发送方的起始序号。[0133] (2)记录接收到TCP接连的发送数据报文的序号。[0134] (3)周期性地构造ACK报文:

[0135] a)ACK报文应答序号=ACK报文应答序号+依据应答周期和期望速率计算出来的报文字节数。[0136] b)如果“ACK报文应答序号”大于最近的“发送数据报文的序号”,设置“ACK报文应答序号”为最近的“发送数据报文的序号”。[0137] c)构造ACK报文,其中应答序号为本地实体的““ACK报文应答序号”。报文发往有线网络一侧。

[0138] [0139] [0140] [0141] [0142] [0143] [0144] [0145]

TCP(Transmission Control Protocol):传输控制协议;RTT(Round Trip Time):往返传输时间;ACK:Acknowledge确认标志;RST:Reset复位标志;FIN:Finish结束标志;SYN:Synchronize同步标志;RLC:Radio Link Control无线链路控制;WCDMA:Wideband Code Division Multiple Access宽带码分多工存取。

10

CN 101765004 ACN 101765006 A

说 明 书 附 图

1/1页

图1

11

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务