在物理传输介质中断时改善tcp数据传输进程的方法

文档序号:7937531阅读:460来源:国知局
专利名称:在物理传输介质中断时改善tcp数据传输进程的方法
技术领域
本发明涉及一种在物理传输介质中断时改善TCP数据传输进程的方法。
当前,许多数据通信应用,如互联网连接或EMAIL,通常都将传输控 制协议(TCP)与互联网协议(IP)同时使用。
TCP是一关于数据是如何在通信参与者,通常是计算机,之间交换的 协定(协议)。所有现代计算机的操作系统都熟知TCP并且将其用于与其 他计算机间的数据传输。其是互联网协议族的成员之一,互联网的基础。 与无连接UDP (用户数据表协议)不同,TCP在一网络连接的两个端点(接 口)之间构建一虚拟信道。数据可以在此信道上双向传输。在大多数情况 下,TCP依赖于IP (互联网协议),这就是为什么经常有TCP/IP协议这样 的说法。其位于OSI参考模型的第四层。
需要被传输的数据被分成小的分组(IP数据分组)并被传输。TCP标 准所定义的原理保证在传输中丢失的分组以及没有被确收的分组会被重新 传输。
如图2所示,根据TCP原理, 一个数据接收设备,即所谓的客户端10,
以及
4一个数据提供设备,即所谓的服务器12间的连接发生。客户端10发起连 接并从服务器12提取数据。服务器12使得数据可用并负责将数据全部传 送至客户端10。为了建立一个连接,客户端首先向服务器12传送一个请求 消息,SYN。服务器12通过一确认消息SYN ACK作出应答。客户端10 继而类似的发出一确认消息ACK。在建立一个TCP连接的过程中,用到了 一种所谓的三向握手。希望建立连接的通信参与者,在此即客户端IO,向 另一方发送一个带有一个序列码的SYN分组(从同步)。在此过程中,这 些序列码对于为一个完整的传输作按照正确顺序的且无重复的备份是重要 的。问题是一个分组的SYN比特被设置在分组报头中。起始序列码可以是 任何码——通常是依据各TCP实现而产生的随机选择的码。
目标设备,在此是服务器12,接收该分组并送上一单独的SYN分组作 为对该起始序列码的回答,该单独的分组也同样是随机的且独立于客户端 IO的起始序列码的。同时,所述服务器通过将客户端的序列码加一以对该 第一 SYN分组进行确收并将其在报头的ACK部分送回。客户端10最终通 过将其自身的ACK分组发送至服务器来对该SYN ACK分组进行确收。该 进程也被称为"前向确收"。连接就这样建立了。
在此时连接建立且服务器向客户端发送预定义数量的数据分组。数据 分组的数量是在客户端与服务器此前在建立连接时商定的。这样数据分组 传送完毕后,在此为数据n和数据n+l,客户端通过一额外的"ACK"消 息作为响应,在此为ACKn+2,并借此给出下次希望接受哪些数据分组这样的信息。服务器12等待此来自客户端 的"ACK n+2"消息。当服务器接收到该"ACK n+2"消息后,服务器向 客户端IO传送下一组数据分组。
图3和5中示出了 TCP连接的中断。如果,例如,服务器12在一个 预定义的等待时间段Tw内没有接收到该"ACKn+2"消息,则所述服务器 再次传送上一个没有被客户端确收的数据分组,即本例中的数据n+l。此 包括等待以及在必要时重复发送数据分组的程序被多次重复。客户端10的 等待数据时间随着重复次数的增加而增长。典型的是,服务器12在开始时 等待"ACKn+2"消息几秒(例如2至3秒)。继而,由于等待时间段通常 在两次重复之间加倍,因此会将等待时间段Tw增加大约一分钟。
图4表示了连接断开的控制,连接断开的发生于连接建立相似。不同 于SYN比特,这里使用FIN比特,该比特为客户端10指出再没有数据发 自服务器12。对该分组的确收由客户端10通过ACK完成。FIN分组的接 收者最后代表自己发送一个FIN分组,该分组也被确收。
尽管实际上使用了四向,在断开连接时还是三向握手,因为从服务器 至客户端的ACK和FIN操作被归类为一向。此外,縮短的时间方法是可 能的,在此种方法中,ACK以及FIN被精确地打包于同一分组内,就像建 立连接时那样。报文段最大生存时间(MSL)是指一个报文段在其被抛弃 前能够在网络上停留的最长时间。当一个通信订户在移动通信网络上使用数据通信应用时,例如Email, 数据连接被中断的概率远高于例如在固定网络上建立的数据连接。当移动 通信网络上的数据连接被中断时,即使物理信道在中断发生后立刻可用, 数据连接也一直会处于中断状态直到TCP的重复程序有效并且数据传输被 重复。
本发明的目的在于提出一种当物理传输介质发生中断时,改善TCP数 据传输进程的方法。结果是,当物理介质发生中断时,TCP连接恢复所用 的时间应该减小。
该任务通过权利要求1所记载的发明的特征得以解决。
从属权利要求中记载了本发明的优选实施方式,以及附加的有益特点。
按照本发明,当传送ACK消息时,在客户端启动一默认时间为T1的 计时器,并且,如果在时间T1过后客户端没有从服务器接收到其他数据分 组,则向服务器重复地发送相同的该ACK消息。
本发明因此基于这样的事实,即客户端识别到来自服务器的数据流被 中断,且从而以相对高的重复频率向服务器再次传送最后一个ACK消息。 服务器则能够立刻对此作出响应并继续数据传送。这样,对同一ACK消息的重复传送就成为可能,条件是客户端保存每 个"ACK"消息至少直至一个ACK消息必须被重发。
优选的是,时间T1,即等待来自服务器的数据时间,可以由客户端设定。
对于无问题的建立连接流程和断开连接流程,在连接和建立和断开过 程中不启动定时器。
进一步的,需要规定的是,在客户端同一SYN消息的重复传送次数由 一计数器C1进行计数。当超过一默认阈值后,就不再向服务器发送具有相 同内容的SYN消息。
本发明的有益效果是显而易见的-
到目前为止,在发生物理介质的中断后,对终端用户的数据传输一直 中断直到TCP标准中定义的重复程序开始执行。这需要好几秒。通过本发 明,在物理介质重新可用后数据传输还处于中断的时间得到减小。该时间 由定时器的值T1确定且可以由终端用户设定。如果客户端识别到数据传输 结束,则客户端不在使用上述程序。
本设备或者依据本发明的方法可以安装于一个移动通信网络上的代理 服务器上并且通过该移动通信网络控制。
下面,将结合附图对本发明作进一步说明。本发明的其他特征以及有 益效果将通过附图以及后续说明变得显而易见。

图1简要示出了在发生物理传送介质中断时TCP数据传输进程的根据 本发明的过程。
图2简要示出了建立TCP连接的过程(现有技术)
图3简要示出了TCP连接中断的过程(现有技术)。
图4简要示出了断开TCP连接的过程(现有技术)。
图5简要示出了发生物理传送介质中断时TCP数据传输进程的标准过 程(现有技术)。
图2至5已经在说明书的概述部分进行了阐述。在此引入相应段落。
根据本发明的方法,对连接的建立以及连接的断开的检测没有发生变 化,仍如上面基于图2至4的表述。TCP标准中的定义是, 一个连接的建 立由客户端10通过发送一个IP分组而起始,在此情况下,"SYN"比特设 置于TCP部分中。服务器12继而应答一个分组,该分组中"SYN"和"ACK" 比特设置于该分组的TCP部分中。该客户端10继而应答一个分组,该分 组中"ACK"设置于TCP部分中。当这三条消息在客户端10和服务器12 间传输完毕后,就开始实际的数据传送。在数据传送结束时,服务器12在最后一个数据分组中设置一个"Fin" 比特。客户端继而传送一个ACK。为了实施本发明,客户端使用该信息停 止对数据传送的检测。连接此后默认断开。
借助图1可以注意到,为了检测数据流的中断,按照本发明在客户端 10上安装了一个定时器14以监测该连接。该定时器14的设定时间Tl是 可调的。定时器14仅在实际数据传送时被使用,在连接建立和连接断开阶 段则不使用。
一旦客户端10通过"ACK"消息确认连接的建立,定时器14就被启动, 当收到ACK消息之后的来自服务器的数据定时器即停止。
如果在时间段T1内没有从服务器12接收到数据(在此为数据n+l), 客户端即认为数据流被中断并且触发一预定义的动作。根据本发明,客户 端10保存每个发送至服务器的"ACK"至少直至从服务器12接收到了后 续数据并需要发送新的ACK消息。
客户端10的这一数据流中断时的预定义动作的目的是快速恢复连接。 如果发送"新"的ACK消息,则先前存储的ACK消息即被删除并被新的所 代替。如果客户端10已经注意到,由于Tl已经因没有从服务器12收到数 据而过期,而使得数据流(数据n+l)被中断,则客户端10将最后一个存 储的"ACK"消息再次发送到服务器12并再等待一段时间Tl以确定是否 从服务器12接收到了数据。另外,在客户端可以实现一个计数器16用来计算在发生数据传输中断 时,向服务器12发送同样的ACK消息的次数。如果计数器16达到一个预 设的阈值,则客户端IO就停止重复发送ACK消息。这样就可以应用传统 的TCP标准了。
权利要求
1.一种在物理传输介质发生中断时改善TCP数据传输进程的方法,其中,客户端(10)和服务器(12)之间的TCP连接建立后,从服务器(12)向客户端(10)传送一个数据分组,其中,客户端(10)通过传送一个分配给该数据分组的确认消息,ACK消息,来确认从服务器(12)收到了该数据分组,其中,当客户端(10)传送ACK消息时,启动一个默认时间为T1的定时器(14),且如果客户端(10)在时间T1到时后仍没有从服务器(12)接收到后续数据分组,则将ACK消息重复发送至服务器(12)。
2. 根据权利要求1所述的方法,其特征在于客户端(10)对每个经传送的"ACK"消息进行存储至少直至一个ACK消息必须被重发。
3. 根据权利要求1或2所述的方法,其特征在于能够在客户端(10)对时间T1进行设置。
4. 根据权利要求1至3中任意一项所述的方法,其特征在于在建立连接或清除连接的过程中定时器(14)不被激活。
5. 根据权利要求1至4中任意一项所述的方法,其特征在于:在客户端(IO)的重复传送同一 ACK消息的次数由一个计数器(16)进行计数,且当其超过一默认的阈值时,就不再向服务器(12)发送具有相同内容的后续ACK消息了。
6. 根据权利要求1至5中任意一项所述的方法,其特征在于该方法安装于移动通信网络的一个代理服务器上并通过移动通信网络进行控制。
7. —种装置,用于实施权利要求1至5中任意一项的当物理传输介质发生中断时改善TCP数据传输进程的方法,其特征在于在客户端(10)安装有一个定时器(14)用于记录从服务器(12)发出的数据传输的中断。
8. 根据权利要求7所述的装置,其特征在于在客户端设置一计数器(16)用于对向服务器(12)传送的具有相同内容的ACK消息进行计数。
9. 根据权利要求7或8所述的装置,其特征在于该装置安装于移动通信网络的一个代理服务器上,且能够通过移动通信网络进行控制。
10. —种数据处理程序,其具有一程序代码,该程序代码在一数据处理装置上执行根据权利要求1至6中任意一项的方法。
11. 一种数据处理程序产品,其包括可在一数据处理装置上执行用于实施根据权利要求1至6中任意一项的方法的程序代码。
全文摘要
一种当物理传输介质发生中断时改善TCP数据传输进程的方法,其中,客户端(10)和服务器(12)之间的TCP连接建立后,从服务器(12)向客户端(10)传送一个数据分组,其中,客户端(10)通过传送一个分配给该数据分组的确认消息,ACK消息,来确认从服务器(12)收到了该数据分组,其中,当客户端(10)传送ACK消息时,启动一个默认时间为T1的定时器(14),且如果客户端(10)在时间T1到时后仍没有从服务器(12)接收到后续数据分组,则将ACK消息重复发送至服务器(12)。
文档编号H04L29/06GK101682611SQ200880011768
公开日2010年3月24日 申请日期2008年2月28日 优先权日2007年3月7日
发明者雷米·克莱奥 申请人:T-移动国际股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1