用于在不可靠环境中启用报头压缩来提供网络数据恢复优化的方法和装置的制作方法

文档序号:7947150阅读:168来源:国知局
专利名称:用于在不可靠环境中启用报头压缩来提供网络数据恢复优化的方法和装置的制作方法
技术领域
本发明一般地涉及通过数据通信网络传输数据,更具体地涉及使用报头压缩的传送控制协议/因特网协议(TCP/IP)数据分组传输,该报头压缩优选地是一类在本领域中已知为V.Jacobson报头压缩的报头压缩技术,该V. Jacobson报头压缩在1990年2月的IETF RFC 1144“Compressing TCP/IP Headers for Low-Speed Serial Links”(V-J报头压缩)中有描述。
背景技术
TCP/IP报头压缩(V-J报头压缩)能通过串行连接的点对点协议(PPP)链路将TCP/IP报头从40个字节压缩到三个至四个字节之少。使用这样的报头压缩技术对于在如下的媒体可靠环境中的吞吐量而言通常不成问题,在这一环境中传送的数据很少由于物理干扰和其它破坏而丢失或者失真。
然而,在不可靠传输链路环境中,比如在无线数据传输环境中,噪声通常是猝发的。因而,数据分组丢失的出现很是普遍。例如,在第一代无线码分多址(CDMA)中,无线链路协议(RLP)被用作为在PPP层以下用于数据传送的链路层。RLP是最佳努力型协议,而且对于丢失帧仅进行少数几轮恢复。另外,如果RLP无法恢复丢失帧则它会将损坏帧递送到较高层。
V-J报头压缩依赖于先前接收的依次正确分组以便从压缩TCP/IP报头中恢复信息。结果,如果在CDMA无线数据传送期间启用TCP/IPV-J报头压缩,则单个数据分组丢失可能造成对所有随后接收的数据分组进行解码的失败。随后接收的分组的总大小(字节)可能达到整个广告的TCP接收器窗大小。由于在TCP报头部分中的不正确恢复的TCP顺序号,所以解码失败被指示为不正确的TCP检验和。
RFC 1144的第4.2部分标题为“Error Recovery(错误恢复)”,而且提出了用于使解压缩器在CRC错误出现之后再次开始生成有效分组的技术。
目前,静默地丢弃那些具有不正确TCP校验和的数据分组(尽管数据有效载荷仍然正确)。另外,由于数据分组被接收器静默地丢弃,所以没有向回发送TCP确认(ACK)分组以触发对等TCP(即数据发送方)快速重发/恢复算法。这一问题造成浪费空中信道资源也造成较低的数据传送吞吐量。
图1示出了典型的TCP/IP/PPP协议栈实施。假设存在有要求递送到对等应用的成块用户数据1。用户数据1先被递送到TCP层2。TCP层2可以将成块用户数据1分段成数个分段。对于每个分段,TCP层2将数据放入帧的有效载荷中,而且将它与TCP报头2A一起打包到TCP帧中。图2示出了常规TCP帧格式,该格式在报头部分中具有16比特的校验和部分。接着,TCP层2将整个TCP帧递送到IP层3。IP层3将整个TCP帧视为数据,而且将它置入帧的有效载荷部分中,添加IP报头3A,由此生成IP帧。图3示出了具有16比特报头校验和的常规IP帧格式。IP帧然后被递送到PPP层4而且置入PPP有效载荷部分中和打包到具有PPP报头4A的PPP帧中。图4示出了具有16比特帧校验顺序(即具有16比特CRC校验的FCS)的常规PPP帧格式。PPP帧被递送到较低层以传递到对等实体。例如,在第一代无线CDMA系统中该较低层是RLP层和IS2000/IS-95物理层。
从图2和图3可以看出IP报头和TCP报头均包括20个字节。如果启用V-J报头压缩,则TCP/IP报头的全部40个字节可以压缩到约三个字节(一个字节的标志比特,两个字节的TCP校验和)至四个字节以便仅传送帧之间的差异。
在无线环境中,数据传送常常可以用以下示例性方式进行
帧编号1234567XXYZZZZ其中X指示接收的良好依次帧;Y指示由于RLP层数据丢失或者破坏而破坏的PPP帧;以及Z指示接收的非依次帧。
对于破坏的第3号Y帧,在该帧中的一些字节(或者比特)可能丢失或者更改,造成该帧通常无法通过PPP FEC校验。结果,此帧将在PPP层中丢弃。
在关闭V-J报头压缩后,Z帧(第4、5、6和7号帧)将具有良好的PPP层FCS、良好的IP报头校验和以及TCP校验和。每当它接收Z帧时,TCP接收器就会将该帧存储于缓冲器中。它也将TCP ACK包发送回到数据发送方以便通知发送方它已经接收上至分组编号3的所有数据分组。例如,当数据接收器接收四个Z帧比如第4、5、6和7号帧时,它会将全都具有同一确认分组编号2的四个TCP ACK帧发送回到数据发送方。当数据发送方接收三个或者更多的确认同一分组编号2的连续TCP ACK帧时,它将立即知道第3号分组丢失。数据发送方然后将立即重发第3号数据分组而且仅重发第3号分组。当数据接收器接收破坏的第3号帧时,它发送TCP ACK以确认上至第7号帧的所有数据。因而,所有Z帧都是有用的。这又称为如在RFC 2581中定义的TCP快速重发和快速恢复算法。几乎所有TCP协议栈都实施有这一算法。
现在考虑开启(启用)V-J报头压缩的情况,第4、5、6和7号帧仍将全都具有良好的PPP层帧校验和(FCS),而且被传递到IP层。在IP层中,由于用于一个TCP连接的所有分组具有相同的IP报头信息,所以IP报头可以被成功地恢复,而IP报头检验也是正确的。结果,数据可以传递到TCP层。然而,由于第3号帧丢失,而且由于TCP层依赖于依次帧以便对TCP顺序号进行解码,所以所有Z帧将表现不良的TCP层报头,这造成错误的TCP校验和。这些Z帧因此被立即丢弃。因而,虽然Z帧全都包含良好数据,但是它们却由于无法正确地恢复TCP报头而被认为是不良的,因此不予以使用。另外,没有TCP ACK帧发送回到数据发送方,而且没有触发TCP快速重发和快速恢复算法。在这一情况下,要求数据发送方通过依赖于它的重发定时器到时来重发所有的第4、5、6和7号帧,这可能在发生重发之前造成显著延迟。在这一延迟时段期间没有传输数据,造成了数据传送吞吐量减少。
因此可以理解,当TCP/IP分组由于开启了V-J报头压缩而丢失时,结果指示了TCP校验和对于TCP窗分段的其余分段而言是不正确的。结果,TCP层2静默地丢弃具有不正确校验和的分组,由此浪费了网络信道容量。由于信道带宽保留在无线通信系统如现代蜂窝型通信系统中是重要的考虑,所以这一问题对于用户和网络运营商而言均造成了许多缺点。

发明内容
根据这些教导的当前优选实施例来解决上述和其它问题而且实现其它优点。
本发明提供了一种方法、一种设备如移动台和一种有形地实施机器可读指令程序的信息承载介质,该指令可由数字处理装置执行用来进行接收数据分组的操作。在这一情况下,该操作包括检验所接收的数据分组的正确性;存储被发现具有不正确TCP层报头校验和的数据分组,而且用信号发送所接收的数据分组的源;以及响应于接收先前接收的不正确数据分组的另一实例,检验所接收的数据分组的另一实例的正确性,而且如果正确则使用从检验所接收的数据分组的另一实例的报头正确性中获得的信息来重新检验先前被发现不正确的至少一个存储数据分组的正确性。所接收的数据分组的正确性优选地通过使用PPP层FCS校验和、IP层报头校验和以及TCP层校验和来检验。数据分组报头优选地通过使用V-J报头压缩技术来压缩。
响应于重新检验至少一个存储数据分组的正确性,该操作还包括将确认发送到所接收的数据分组的源以检验非依次地接收数据分组以便触发数据发送方的快速重发和快速恢复算法。
在本发明的一个优选的但不是限制性的实施例中,数字处理装置形成移动台的一部分,而数据分组是通过无线信道接收的TCP/IP/PPP数据分组。


在结合附图来阅读时,在以下优先具体实施方式
的详细描述中,这些教导的上述和其它方面变得更为清楚明显,在附图中图1图示了典型和常规的TCP/IP/PPP协议栈架构;图2图示了常规TCP帧格式;图3图示了常规IP帧格式;图4图示了常规PPP帧格式;图5图示了在有数据猝发错误和启用报头压缩时用于FTP上传的常规TCP传输的数据传送时间/顺序曲线图;图6图示了根据本发明在有数据脉冲错误和启用报头压缩时用于FTP上传的TCP传输的数据传送时间/顺序曲线图;图7是包括适合于实践本发明的移动台在内的无线通信系统的简化框图;以及图8是对于形成图7移动台之一部分的TCP/IP功能的操作进行描绘的逻辑流图。
具体实施例方式
通过引用将1990年2月的IETF RFC 1144“Compressing TCP/IPHeaders for Low-Speed Serial Links”(V-J报头压缩)之公开结合于此。
作为介绍并且参照图7,示出了适合于实践本发明的无线通信系统10的实施例的简化框图。无线通信系统10包括至少一个移动台(MS)100。图7也示出了示例性网络运营商20,例如具有用于连接到电信网络如公共分组数据网络或者PDN的节点30;至少一个基站控制器(BSC)40或者等效装置;以及多个收发器基站(BTS)50,又称为基站(BS),根据预定空口标准在前向或者下行链路方向上将物理和逻辑信道传输到移动台100。反向或者上行链路通信路径也存在于从移动台100到网络运营商之间,该通信路径运送源自于移动台的接入请求和业务。小区与每个BTS 50相关联,其中一个小区将在任何给定时间都被视为服务小区,而一个或多个相邻小区将被视为邻居小区。较小小区(例如微小区)也是可用的。
空中接口标准可以遵循于任何适当标准或者协议,而且可以实现语音业务和数据业务两者,比如具有数据业务功能的因特网70接入和网页下载。在本发明的当前优选实施例中,空中接口标准兼容于码分多址(CDMA)空中接口标准,比如已知为cdma2000的标准,不过这并不是对本发明之实践的限制。
移动台100通常包括控制单元或者控制逻辑,比如微控制单元(MCU)120,该MCU具有耦合到显示器140的输入的输出和耦合到键盘或者小键盘160的输出的输入。移动台100可以是手持无线电话,比如蜂窝电话或者个人通信器。移动台100也可以包含于在使用中连接到另一设备的卡或者模块之内。例如,移动台10可以包含于PCMCIA或者相似类型的卡或者模块之内,该卡或者模块在使用期间安装于便携数据处理器如膝上型计算机或者笔记本计算机或者甚至是可由用户佩戴的计算机之内。
假设MCU 120包括或者耦合到某一类型的存储器130,比如用于存储操作程序和其它信息的非易失性存储器以及用于暂时存储所需数据、便笺式存储器、接收的分组数据、待传输的分组数据等的易失性存储器。存储器130的一部分形成了用于对具有不正确TCP校验和的接收的分组进行缓冲的分组缓冲器130A,这一点将在下面进一步讨论。假设该操作程序出于本发明的目的而使得MCU 120能够执行用以实施根据本发明的方法所需要的软件例程、层和协议。例如,假设该操作程序可操作用于实施如图1-4中指示的TCP、IP和PPP层和协议以及用于至少实施对接收的V-J报头压缩的分组进行解压缩的解压缩算法。这样,为方便起见而将MCU 120示出为包括TCP/IP功能120A和报头压缩和/解压缩功能,比如V-J报头功能块120B。该操作程序也通常提供经由显示器140和小键盘160与用户的适当用户接口(UI)。虽然未示出,但是通常提供麦克风和扬声器以便使得用户能够以常规方式进行语音呼叫。
一般来说,存储器130的至少一部分可以被视为有形地实施机器可读指令程序的信息承载介质,该指令可由数字处理装置(在这一情况下是MCU 120)执行用来根据本发明进行接收数据分组的操作。
移动台100也包含无线部分,该无线部分包括数字信号处理器(DSP)180或者等效高速处理器或逻辑;以及无线收发器,包括发送器200和接收器220,二者均耦合到天线240以便与网络运营商通信。提供至少一个本地振荡器如频率合成器(SYNTH)260以便调谐收发器。通过天线240发送和接收数据,比如数字化的语音和分组数据。
根据本发明,每当TCP/IP功能120A接收具有不正确TCP校验和的分组时,TCP第2层将TCP ACK分组发送回到对等TCP以确认当前预期数据分组(RCV→NXT)。这就触发对等TCP的快速重发机制。此外,取代了静默地丢弃那些具有不正确校验和的分组,TCP/IP功能120A将那些具有不正确TCP校验和的分组存储于数据缓冲器130A中。随后,当TCP/IP功能120A接收预期的正确分组(RCV→NXT)时,TCP/IP功能120A使用当前接收指针来检验在分组缓冲器130A中缓冲的一个或多个分组的报头校验和。如果缓冲的TCP/IP分组的校验和是正确的,则TCP/IP功能120A则以与正确接收的TCP/IP分组一样的正常方式来使用这些分组。它也将ACK包发送回到发送方以确认所有当前接收的正确数据以便于从错误状况中快速恢复。
如下所示为示例性和非限制性的伪代码实施,该实施与V-J报头功能120B和分组缓冲器130相结合地描述了TCP/IP功能120A的操作(同时对图8的逻辑流图进行参照,而且注意本发明的实施只需修改TCP数据接收部分)DO{
IF(V-J报头压缩开启)AND(TCP校验和对于这一分组而言是不正确的){TCP功能120A将ACK分组立即发送到发送方,其中将ACK_SEQ设置为当前正确接收的指针RCV→NXT;TCP/IP功能120A将具有正确校验和的分组缓冲于分组缓冲器130A中。
}}WHILE(每个后续接收的分组具有不正确的TCP校验和)IF(接收正确的TCP分组(RCV→NXT)(*备注){修改RCV→NXT。使用当前RCV→NXT指针对缓冲的第一分组的TCP顺序号进行更新,然后重新计算缓冲的TCP分组的TCP校验和。
IF(在重新计算之后正确地对缓冲的分组TCP校验和进行了解码)使用所解码的分组作为正确TCP/IP分组,更新RCV→NXT指针,使用所更新的RCV→NXT指针对缓冲的TCP/IP分组中的其余分组进行解码。
}TCP/IP功能120A将TCP ACK分组发送回到对等TCP以通知当前RCV→NXT指针的值。丢弃缓冲分组中的其余分组并清除缓冲器。
备注由于TCP是面向连接的可靠数据传送协议,所以应当最终接收预期RCV→NXT,否则应当放弃数据/文件传送。
图5图示了在有一些数据猝发错误和启用报头压缩时用于FTP上传的常规TCP传输的数据传送时间/顺序曲线图。X轴以秒代表时间,而Y轴代表以字节表示的相对TCP顺序号。中心实线代表在传送的实际数据,而上方细线是与一些具体时间对应的TCP广告窗限。下方细线是接收的TCP ACK的瞬间。数据猝发错误在X轴上出现于约5秒、16秒、21秒、31秒和41秒处。可以看出,每当出现错误时,TCP须重发在发生错误之后已经传输的所有数据分组。这一现有技术图可以与图6进行对照,图6图示了在有数据触发错误和启用报头压缩时根据本发明用于FTP上传(到MS100)的TCP传输的数据传送时间/顺序曲线图。注意本发明的益处在关闭报头压缩时也仍然可以获得。数据脉冲错误在X轴上出现于约1.8秒、10秒、11秒、12秒、14秒、17秒、30秒和31秒处。在这一情况下可以观察到,每当出现错误时,TCP只需重发丢失的数据分组。这就获得了减少颇多的传送时间和高得多的吞吐量。因此可以发现通过运用本发明实质地改进了数据吞吐量。
上述过程使得TCP快速重发/恢复过程能够在开启V-J报头压缩时进行操作。上述过程也在CDMA无线的和其它内在不可靠的数据传输环境中(例如在如下数据传输环境中,该环境利用了受到突发和冲激噪声以及其它信道破坏之影响的传输信道)改进了数据吞吐量。
尽管在执行上述过程期间TCP/IP功能120A将趋于比正常发送更多的TCP ACK分组,但是由于大多数的数据传送通常是单向的(例如在MS 100进行下载或者上传的任何给定时间),所以这对于使用较为不忙的信道(例如在下载分组到下行链路信道上的MS 100时的上行链路信道)来将额外TCP ACK分组发送回到对等TCP的整体业务量不会造成严重影响。此外,如果正在进行同时传送,则TCP/IP功能120A可以将ACK消息捎带面(piggy)到另一消息上。
以上描述已经通过示例性和非限制性的例子提供了对于发明人当前构思用来实现本发明的最佳方法和装置的完全和启发性描述。然而,根据结合附图和所附权利要求来阅读的以上描述,各种改型和变化对于本领域技术人员来说可以变得显然。仅作为一些例子,上述发明可以使用于利用了比如但不限于浏览器、JavaTM和网络层高速数据(HSD)应用这样的套接服务器代码的任一类设备或者产品中。而且,本领域技术人员可以尝试使用类似的或等效的算法,报头压缩技术和网络协议。另外,尽管上面主要在移动台的背景中进行描述,但是应当理解,使用固网以及其它无线和有线基础结构的装备和设备也可以将本发明的教导付诸实践,而且这些教导广义地适用于通过受到信道破坏之影响的信道来接收数据分组的任何设备。然而,本发明教导的所有这些和类似改型都仍将落入本发明的范围之内。
而且,本发明的一些特征在没有其它特征的对应运用时仍然可以加以运用而不失其优点。于是,以上描述应当被视为仅对本发明的原理进行说明而不对本发明进行限制。
权利要求
1.一种信息承载介质,有形地实施机器可读指令的程序,所述指令可由数字处理装置执行用来进行接收数据分组的操作,所述操作包括检验所接收的数据分组的正确性;存储被发现具有不正确TCP层校验和的数据分组,而且用信号发送所述接收数据分组的源;以及响应于接收先前接收的不正确数据分组的另一实例,检验所接收的所述数据分组的另一实例正确性,而且如果正确则使用从检验所接收的所述数据分组的另一实例的报头正确性中获得的信息来重新检验先前被发现不正确的至少一个存储数据分组的正确性。
2.如权利要求1所述的信息承载介质,其中所述接收数据分组的正确性通过PPP层FCS校验和、IP层报头校验和以及TCP层校验和来检验。
3.如权利要求1所述的信息承载介质,其中所述报头的正确性通过获得TCP层校验和来检验。
4.如权利要求1所述的信息承载介质,其中数据分组报头被压缩。
5.如权利要求1所述的信息承载介质,其中数据分组报头使用V-J报头压缩技术来压缩。
6.如权利要求1所述的信息承载介质,还包括响应于重新检验至少一个存储数据分组的正确性,将确认发送到所述接收数据分组的所述源,以检验包括所述先前存储数据分组在内的所述数据分组被正确地接收。
7.如权利要求1所述的信息承载介质,其中所述数字处理装置形成移动台的一部分,以及其中所述数据分组是通过无线信道接收的TCP/IP/PPP数据分组。
8.一种用以接收数据分组的方法,包括检验所接收的数据分组的正确性;存储被发现具有不正确TCP层校验和的数据分组,而且用信号发送所述接收数据分组的源;以及响应于接收先前接收的不正确数据分组的另一实例,检验所接收的所述数据分组的另一实例正确性,而且如果正确则使用从检验所接收的所述数据分组的另一实例的报头正确性中获得的信息来重新检验先前被发现不正确的至少一个存储数据分组的正确性。
9.如权利要求8所述的方法,其中所述接收数据分组的正确性通过PPP层FCS校验和、IP层报头校验和以及TCP层校验和来检验。
10.如权利要求8所述的方法,其中所述报头的正确性通过获得TCP层校验和来检验。
11.如权利要求8所述的方法,其中所述数据分组报头被压缩。
12.如权利要求8所述的方法,其中所述数据分组报头使用V-J报头压缩技术来压缩。
13.如权利要求8所述的方法,还包括响应于重新检验至少一个存储数据分组的正确性,将确认发送到所述接收数据分组的所述源以检验包括所述先前存储数据分组在内的所述数据分组被正确地接收。
14.如权利要求8所述的方法,其中所述方法由形成移动台一部分的数字处理装置执行,以及其中所述数据分组是通过无线信道接收的TCP/IP/PPP数据分组。
15.一种设备,包括用以通过信道接收数据分组的接口,还包括协作用以执行如下操作的数据处理器和存储器检验所接收的数据分组的正确性;存储被发现不正确的数据分组,而且用信号发送所述接收数据分组的源;以及响应于接收先前接收的不正确数据分组的另一实例,检验所接收的所述数据分组的另一实例的正确性,而且如果正确则使用从检验所接收的所述数据分组的另一实例的报头的正确性中获得的信息来重新检验先前被发现不正确的至少一个存储数据分组的正确性。
16.如权利要求15所述的设备,其中所述接收数据分组的正确性通过使用PPP层FCS校验和、IP层报头校验和以及TCP层校验和来检验。
17.如权利要求15所述的设备,其中所述报头的正确性通过获得TCP层校验和来检验。
18.如权利要求15所述的设备,其中所述数据分组报头被压缩。
19.如权利要求15所述的设备,其中所述数据分组报头使用V-J报头压缩技术来压缩。
20.如权利要求15所述的设备,还包括响应于重新检验至少一个存储数据分组的正确性,将确认发送到所述接收数据分组的所述源以检验包括所述先前存储数据分组在内的所述数据分组被正确地接收。
21.如权利要求15所述的设备,其中所述设备包括移动台,以及其中所述数据分组是通过无线信道接收的TCP/IP/PPP数据分组。
22.一种装置,包括用于通过信道接收数据分组的装置;用于检验所接收的数据分组的正确性的装置;用于存储被发现不正确的数据分组的装置;以及用于用信号发送所述接收数据分组的源的装置,所述检验装置用于响应于接收先前接收的不正确数据分组的另一实例,检验所接收的所述数据分组的另一实例正确性,而且如果正确则使用从检验所接收的所述数据分组的另一实例的报头的正确性中获得的信息来重新检验先前被发现不正确的至少一个存储数据分组的正确性。
23.如权利要求22所述的装置,其中所述接收数据分组的正确性通过使用PPP层FCS校验和、IP层报头校验和以及TCP层校验和来检验。
24.如权利要求22所述的装置,其中所述报头的正确性通过获得TCP层校验和来检验。
25.如权利要求22所述的装置,其中数据分组报头被压缩。
26.如权利要求22所述的装置,其中数据分组报头使用V-J报头压缩技术来压缩。
27.如权利要求22所述的装置,还包括用于执行如下操作的装置响应于对至少一个存储数据分组的正确性的重新检验,将确认发送到所述接收数据分组的所述源以检验包括被发现不正确的所述至少一个存储数据分组在内的数据分组被正确地接收。
28.如权利要求22所述的装置,实施为移动台,其中数据分组包括通过无线信道接收的TCP/IP/PPP数据分组。
全文摘要
公开了一种方法、一种设备如移动台和一种有形地实施机器可读指令程序的信息承载介质,该指令可由数字处理装置执行用来进行接收数据分组的操作。在这一情况下,该操作包括检验所接收的数据分组的正确性;存储被发现具有不正确TCP层报头校验和的数据分组,而且用信号发送所接收的数据分组的源;以及响应于接收先前接收的不正确数据分组的另一实例,检验所接收的数据分组的另一实例的正确性,而且如果正确则使用从检验所接收的数据分组的另一实例的报头的正确性中获得的信息来重新检验先前被发现不正确的至少一个存储数据分组的正确性。所接收的数据分组的正确性优选地通过使用PPP层FCS校验和、IP层报头校验和以及TCP层校验和来检验。数据分组报头优选地通过使用V-J报头压缩技术来压缩。
文档编号H04L29/06GK1961520SQ200580017598
公开日2007年5月9日 申请日期2005年3月31日 优先权日2004年4月5日
发明者杨凤鸣, 贺涛 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1