CN1671094B - 对假超时的响应 - Google Patents

对假超时的响应 Download PDF

Info

Publication number
CN1671094B
CN1671094B CN2005100559280A CN200510055928A CN1671094B CN 1671094 B CN1671094 B CN 1671094B CN 2005100559280 A CN2005100559280 A CN 2005100559280A CN 200510055928 A CN200510055928 A CN 200510055928A CN 1671094 B CN1671094 B CN 1671094B
Authority
CN
China
Prior art keywords
data
network
transmission
value
send
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2005100559280A
Other languages
English (en)
Other versions
CN1671094A (zh
Inventor
谭焜
张黔
朱文武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1671094A publication Critical patent/CN1671094A/zh
Application granted granted Critical
Publication of CN1671094B publication Critical patent/CN1671094B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/14Arrangements for detecting or preventing errors in the information received by using return channel in which the signals are sent back to the transmitter to be checked ; echo systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

假超时(STO)响应允许发送设备在检测STO之后适当地调整拥塞状态参数并维持包流。由于STO的发生会伴随数据丢失,因此通过维持先前的可用带宽值并根据返回的确认增加发送主机能够发送的极限值,STO响应结合了假超时和丢失事件。特别是,每次从接收主机处接收到确认表明数据包的成功传输,该极限值就被增加发送主机能发送的数据段的最大大小。因此,一个实际数据流能被适当地维持,与此同时避免进一步的数据丢失以及已被接收主机成功接收的数据包的不必要的重发。

Description

对假超时的响应
技术领域
本发明涉及无线广域网中响应假超时的技术。
背景技术
在诸如GPRS(通用分组无线业务)的无线环境中,众所周知重发定时器常常假终止,即使在没有实际的传输数据丢失时也会起动不必要的一个或多个数据包的重发。此类“假超时”,正如所知的那样(又被称为“STO”),通常归咎于传输控制协议(下文中“TCP”)栈中的限制。
无线网络中的假超时有各种原因,包括,例如,具有更高优先级的数据包竞争传输带宽的出现会引起假传输超时;持久可靠的无线链路层在不良无线电连接上多次重复重发数据包以致TCP发送主机超时;或者由于繁忙的反向信道,接收主机无法以及时的方式向发送主机发送一个确认消息(下文中“ACK”)。
在TCP栈中,MSS(“最大段大小”)表明发送主机能够以单个包、或段向接收主机发送的数据的最大数量(以字节表示)。一般而言,为了效率起见,发送主机根据MSS发送数据包。TCP窗口(下文中“窗口”)涉及在从接收主机接收关于所发送的数据的确认(也称为一“ACK”)之前发送主机能够发送的数据的数量。
ACK是从接收主机发送至发送主机用以确认传输数据的接收的通信代码。此外,在接收到数据的每个TCP段之后,ACK会从接收主机传输至发送主机。另一种情况是,若接收到无序数据包,则ACK能选择性地从接收主机传输至发送主机。接收到的数据包在被称为选择性确认(下文中“SACK”)的扩展TCP头部的选项中报告。无论如何,TCP无法区别ACK或SACK是响应最初传输的数据段还是重发的数据段而生成的。
通常,在超时出现时,TCP栈默认重发还未确认的相当于整个窗口的数据。然而,如上所述,并非所有超时都是由数据丢失引起的。因此,自动重发会致使带宽不必要地用于重发已经成功接收的数据。从而,网络连接的完整性就被降低了。
此类数据TCP段的自动重发会妨碍“信息包守恒原则”,该原则规定了在先前传输的数据在被确认为已经接收或被证实已经丢失之前数据不得引入网络。显然,假超时之后TCP段的任何自动重发都不符合信息包守恒原则。
发明内容
描述了用于响应无线网络中经历的假超时的技术。当发生假超时时,一个所述响应是为在拥塞状态参数下继续来自发送主机的数据流直至或除非已经证实数据丢失。特别地,依照接收的确认拥塞状态值被恢复且数据以逐渐增加的流速继续传输。恢复拥塞状态值包括恢复在超时之前发现的可用带宽以及恢复接收确认之前能被传输的数据的数量限定的默认值。后者的值被认为是拥塞窗口。由于传输数据流继续,拥塞窗口的任何增加都依赖于来自接收主机的确认的接收。这是因为确认表明了数据包从发送主机流向接收主机且没有在网络上丢失。
附图说明
详细描述将参照附图进行说明。图中,标记最左边的数字表明标记首次出现的图。不同图中相同标记的使用表明了类似或相同项。
图1示出带有实现用于响应假超时的技术的设备,在无线网络上通信的设备。
图2示出了用于实现在此所述示例实施例的通信环境。
图3是用于响应假超时的过程的流程图。
图4-6示出用于响应图3所示假超时过程的一方面的示例。
图7示出能用于实现在此所述技术的一般计算机网络环境。
具体实施方式
以下描述涉及响应无线网络中经历的假超时的技术。由于超时并非始终指示数据丢失,因此按照网络资源,在假超时时数据自动重发可能是浪费的响应。在后面示例中使用的保守响应通过维持来自发送主机的确实的数据流直至,或除非,数据被证实丢失,来避免多余的数据传输。响应包括恢复拥塞状态值以及根据接收的确认增加拥塞窗口大小。拥塞窗口(又称为“cwnd”)是一个状态变量,它限定发送主机在接收确认之前能够在网络上传输的数据数量。
在此描述的示例实施例可利用各种网络协议,包括公共和/或私人协议中的任意一个。实施例是作为示例,而非以任何方式进行限定。
图1示出了一个示例性结构100,其中网络102使能客户设备105、110、115和120,以及服务器设备125之间的通信。网络102旨在表示各种常用网络拓扑和类型中的任意一种,可包括有线和/或无线网络。网络102还能利用各种常用网络协议中的任意一种,包括公共和/或专用协议。网络102可包括例如因特网以及一个或多个局域网(LAN)的至少一部分。
客户机设备105可包括各种常用计算设备中的任一种,包括台式个人计算机(PC),工作站、大型计算机、Internet设备、以及游戏控制台。与网络102相关联的客户设备还可进一步包括个人数字助理(PDA)110、膝上型计算机115、以及蜂窝式电话120等等,它们可与网络102通过有线和/或无线链路通信。此外还有,客户机设备105、110、115和120的一个或多个可包括相同类型设备,或不同类型设备。
服务器设备125能向计算设备105、110、115和120提供各种数据和/或功能性中的任意一种。该数据可是公开可用的或者受限制的,例如,仅限于特定用户或仅当支付了适当的费用才可用。服务器设备125是网络服务器、应用程序服务器、web叶、或其任意组合中的至少一个。服务器设备125是内容源的任意设备,而客户设备105、110、115和120包括能接收此类内容的任意设备。客户或服务器设备的示例实施例参照图7在下文中进行更详细描述。
客户机设备105、110、115、120和服务器设备125中的任意一个根据在此所述的示例实施例可作为发送主机或接收主机。为进行说明,而非以任何形式进行限制,客户机设备115是一个经由网络102向一个接收主机传输数据的发送主机。发送主机115包括处理器117,该处理器对应在此所述的示例实施例实现假超时响应。
对应图1的网络102的协议包括但不限于TCP/IP(传输控制协议/互联网协议),其中TCP是一个用于实现端到端连接错误检测和校正的基于链接、面向信息流的传输服务。当数据从发送主机115传输到接收主机时,假超时在网络102中并非时常发生的,该网络可以是无线广域网。本领域中熟练的技术人员能理解在传输处理中此类超时的任何影响。然而,假超时的发生并不必然表示数据包的丢失或拥塞。
假超时响应119以不自动重发数据的方式处理假超时。当然,若发现假超时(STO),则假超时响应119通过恢复拥塞状态值并维持来自发送主机的确实数据流来响应STO。也就是说,来自发送主机的数据流不包括任何重发的数据包,直至或除非数据丢失被证实。
更为特别的是,假超时响应119指示TCP栈恢复缓慢启动阈值(也称为“sstresh”)到其检测到超时之前的值并逐渐增加拥塞窗口“cwnd”。存储缓慢启动阈值“sstresh”是与用于控制数据传输的经估计的可用带宽相关的状态变量,且再次,拥塞窗口“cwnd”是限制发送主机在接收确认“ACK”之前能够在网络上传输的数据数量的状态变量。在超时发生之后,拥塞窗口被设置为MSS,且重发第一个未确认的包。尽管如此,若证明重发是不必要的,即,最初的传输已经由接收主机成功的接收,则发送主机停止重发其他超时包。此外,由于ACK是超时数据包成功传输的表示,因此拥塞窗口在接收ACK时增加最大段大小(MSS)(即,cwnd=cwnd+MSS)。就是说,由于ACK提供了使网络路径重新生效所需的准确数据,因此,接收ACK就表示能被传输的数据数量能够被增加。
图2更详细地示出了发送主机115的处理器117。处理器117包括数据包发送器205,它利用如TCP协议向接收主机发送数据包。在数据包从发送器205传输之后,传输定时器/超时检测器210跟踪时间。因此,在数据包传输之后,当预定的时间量,例如,500毫秒过去而没有对应数据包的ACK在发送主机115处被接收回来时,传输定时器/超时检测器210检测到超时。若超时被确定为是假超时时,超时响应处理器215执行超时响应过程119(见图1),该过程是一个“带有重新分包的假超时检测”(下文中称为“STORDER”)响应。图4-6更详细地描述了超时响应过程119。图2所示的处理模块可以如所示的那样实现,独立地,或以其各种组合实现。
图3示出响应假超时的超时响应过程119。过程119被说明为一组框,每个框代表至少一个实现该过程所执行的操作。这些操作可以通过软件、硬件、固件、或其任意组合实现。此外,为了讨论的目的,过程119在数据包的传输在出现超时是从发送主机115到接收主机的情况下进行描述。
在305,发送主机115发现超时情况。在检测到超时时,发送主机115保存310对应于直至超时发现时从发送主机115传输的数据包的最高序列号。所保存的序列号可用作随后数据包传输的基准点。于是,第一个没有确认的包被重发。在接收到第一个来自接收主机的确认时,作出该超时是依照本领域中已知技术生成的假超时(STO)的决定315。此类技术的示例包括,但不限于,于2004年1月15日向美国专利和商标事务所提交的待批的美国申请号10/758,510中描述的技术,且因此不在此描述该技术。
图4-6示出在检测315到STO时进行的示例协议响应119。特别是,在此描述的STODER响应不是通过自动重发数据包或通过默认拥塞控制状态处理对STO响应,而是根据包守恒原则实现响应。
图4示出在STODER响应中的初始操作。因为STO的检测315(见图3)不必基于数据包的丢失被预测,因此拥塞状态值被恢复405以维持来自发送主机115的确实数据流。被传输的下一个数据包的参数被设为与被发送的先前发送的数据包完全相等直至STO检测的点。该点可称为“STODER恢复点”(下文中“SRP”)。缓慢启动阈值”ssthresh”被恢复为与其在超时发生之前的值完全相等,而拥塞窗口“cwnd”被设为最大段大小的两倍(即,cwnd=2*MSS)。这与用于不超过两个数据包大小的拥塞窗口的初始值的已知TCP原则相一致。
在缺乏数据包已经丢失的证实时,按照包守恒原则要求没有先前传输的数据被重发。也就是说,在这个时候,连续的数据流是要仅包括新传输的数据包。因此,在410,发送主机115通过传输直至两个新的数据包到达接收主机来维持数据流。应该注意在网络上传输的用于维持数据流的新数据包的数量可以随协议发展而不同。
在415,发送主机115设置一个“管道”值,它是网络上待完成的字节数量的发送方的估计。在此阶段,管道值被设为等于到目前为止的最大序列号(即,snd.max)和还未确认的最低序列号(即,snd.una)之间的差,加上最大段大小(MSS):
pipe=MSS+snd.max-snd.una
增加MSS是为了计算超时的第一数据包的重发。
在420,发送主机115接收确认(ACK)。随后的过程受ACK是否推进实际数据流或它是否是副本ACK(duplicate ACK)的影响。若它表示在接收主机处已经成功接收了传输的数据,则ACK推进实际数据流。副本ACK是没有累积确认任何新数据而仅仅在其确认字段内重复Snd.una的ACK。
图5仍是ACK在发送主机115处被接收420(见图4)之后的STODER响应的示例实施例。作出有关接收的ACK是否确认覆盖SRP的一个序列号的决定505。若对应ACK的序列号覆盖SRP(ACK Seq.No>SRP)(即,自505的“是”分支起),则STODER响应终止507。
否则,作出有关ACK是否确认数据小于SRP的决定510,即,ACK是否确认了某些新的数据而没有覆盖SRP。此类ACK表示某些数据包已经离开了网络。因此,在这种情况的实际决定之后(即,自510的“是”分支起),管道值被调整用以反映待完成包的减少。此外,由于ACK表示某些数据已经在接收主机处成功接收,因此当接收到ACK时,若拥塞窗口“cwnd”小于缓慢启动阈值“ssthresh”(即,cwnd<ssthresh),则拥塞窗口“cwnd”可以通过向拥塞窗口“cwnd”增加最大段大小“MSS”而打开(即,cwnd=cwnd+MSS)。随后,为了维持一致的数据流,若管道值小于拥塞窗口“cwnd”(即,pipe<cwnd),则新的数据包,即没有被传输的数据,就能被传输。
否则,作出ACK是否为“副本ACK”的确定520,也就是说,ACK具有相同的序列号或是小于未确认数据的最低序列号,即snd.una。在副本ACK确定之后(即,自520的“是”分支起),网络中未完成数据的数量的评估通过重新设置522管道值为初始管道值减去最大段大小“MSS”(即,pipe=pipe-MSS)来调整。
此外,若副本ACK包括一个选择性确认数据段小于SRP的数据段且拥塞窗口“cwnd”小于缓慢启动阈值(即,cwnd<ssthresh)的SACK块,则拥塞窗口“cwnd”通过向拥塞窗口的当前值“cwnd”增加最大段大小“MSS”(即,cwnd=cwnd+MSS)而重新设置。随后,为了维持一致的数据流,若管道值小于拥塞窗口“cwnd”(即,pipe<cwnd)传输新的数据包。
否则,当作出已经接收到3个副本ACK的决定530时,可以推测性地假设数据包已经从网络上丢失(即,自530的“是”分支起)。因此,当接收到第三个副本ACK时,由于没有接收到ACK而丢失的数据包能被从发送主机115重发525,。此外,由于检测到了丢失,所以缓慢启动阈值“ssthresh”状态值以及拥塞窗口“cwnd”状态值被重新设置527。特别是,当接收到第三个副本ACK时,缓慢启动阈值被减少其初始值的一半(即,ssthresh=ssthresh/2),而拥塞窗口被设为拥塞窗口和缓慢启动阈值中的较小的一个(即,cwnd=min(cwnd,ssthresh))。当作出有关三个副本ACK的否定确定530时,过程返回505。
除了重发丢失数据之外,对STO的响应由此转换到基于SACK的缓慢启动恢复过程。
图6示出基于SACK的缓慢启动恢复过程。在缓慢启动阈值状态值和拥塞窗口状态值被重新设置(见527)之后,发送主机115处的ACK的接收作出有关接收的ACK是否确认覆盖SRP的一个序列号的决定605,即对应于任意待完成数据的ACK是否还没有确认。因此,若对应ACK的序列号覆盖了SRP(即,自605的“是”分支起),则STODER响应终止607。
否则,作出关于ACK确认数据是否小于在SRP处所示数据的决定610,即ACK是否为“部分ACK”。在基于SACK的缓慢启动恢复阶段(即,自610的“是”分支起)中的第一个部分ACK的决定615导致了SRP之下所有数据包都丢失的假定结论。因此通过重新设置管道值为将重发的数据大小(retran_data)加上发送的数据直至部分ACK减去SRP(snd.max-SRP)确定的时候,并选择性确认在SRP之上的数据包(sacked_pkts above SRP),以避免620重发的突发:
pipe=retran_data+(snd.max-SRP)-(sacked_pkts above SRP)
此外,拥塞窗口“cwnd”被调整为窗口与管道值加上2*MSS的初始窗口值之间的最小的值:
                 cwnd=min(cwnd,pipe+(2*MSS))
然后数据以在SRP之下的数据包的形式被发送625,它们被认为是丢失了。
部分ACK的随后的接收使状态值被重新设置630,包括管道值被重新设置为初始管道值减去已确认数据的大小(即,pipe=pipe-data_acked)且若“cwnd”小于“ssthresh”,则拥塞窗口cwnd被重新设置为拥塞窗口cwnd加上最大段大小“MSS”(即,cwnd=cwnd+MSS)。为了维持一致数据流、数据,例如被部分确认的最老的数据接着从发送主机115被重发625,假定管道值小于拥塞窗口(即,pipe<cwnd)。
部分ACK的否定决定610意味着ACK是一个副本ACK。因此,管道值被设置635为管道值减去MSS(即,pipe=pipe-MSS)。若在第一个部分ACK之前副本ACK被接收且ACK包含一个选择性确认SRP之下的数据的SACK块而且拥塞窗口小于缓慢启动阈值(即,cwnd<ssthresh),则拥塞窗口增加最大段大小“MSS”(即,cwnd=cwnd+MSS)。为了维持一致数据流,丢失数据或新数据从发送主机115传输625,假定管道值小于拥塞窗口。
要注意,在第二个重发超时的情况下,上述响应过程被终止,而已知的缓慢启动过程开始。
图7示出一般计算机环境700,它可以用于实现在此所述的技术。计算机环境700仅是计算环境的一个示例,且并非试图提议任何有关使用范围或计算机和网络结构功能性的限定。也不应认为计算机环境700对在示例计算机环境700中举例说明的任何组件中的一个或组合具有任何依赖性或要求。
计算机环境700包括通用计算机702形式的计算设备。计算机702的组件可包括,但不限于,一个或多个处理器或处理单元704,系统存储器706,以及把各种系统组件包括处理器704耦合至系统存储器706的系统总线708。
系统总线708代表任意几种类型总线结构中的一个或多个,包括存储总线或存储控制器、外围总线、加速图形接口、以及利用各种总线结构中的任一种的处理器或本地总线。作为示例,此类结构包括工业标准结构(ISA)总线、微通道体系结构(MCA)总线、扩展工业标准结构(EISA)总线,视频电子标准协会(VESA)本地总线,外设部件互连(PCI)总线又称为Mezzanine总线,PCI快速总线、通用串行总线(USB)、安全数字(SD)总线、或IEEE 1394,即,Firewire总线。
计算机702可包括各种计算机可读介质。此类介质可以是计算机702能够访问的任意可用介质,且包括易失性和非易失性的、可移动和不可移动的介质。
系统存储器706包括诸如随机存取存储器(RAM)710的易失性存储器;和/或诸如只读存储器(ROM)712或闪存RAM的非易失性存储器形式的计算机可读介质。基本输入输出系统(BIOS)714,包括有助于诸如在启动期间计算机702的元件之间传输信息的基本例程被存储在ROM 712或闪存RAM内。RAM 710通常包括处理单元714能立即访问的和/或当前在上面运行的数据和/或程序模块。
计算机702也可包括其他可移动/不可移动介质、易失性/非易失性计算机存储介质。作为示例,图7举例说明了从不可移动、非易失性磁性介质(未示出)读取并向其中写入的硬盘驱动器716,从可移动、非易失性磁性磁盘720(例如,软盘)读取并向其中写入的磁盘驱动器718、以及从可移动、非易失性光盘724诸如CD-ROM、DVD-ROM或其他光学介质中读取和/或向其中写入的光盘驱动器722。硬盘驱动器716、磁盘驱动器718、以及光盘驱动器722每一个都通过一个或多个数据介质接口725连接到系统总线708。换句话说,硬盘驱动器716、磁盘驱动器718、以及光盘驱动器722能通过一个或多个接口(未示出)连接到系统总线708。
磁盘驱动器及其相关计算机可读介质为计算机702提供了计算机可读指令、数据结构、程序模块、以及其他数据的非易失性存储器。尽管示例举例说明了硬盘716、可移动磁盘720、以及可移动光盘724,应该意识到可存储计算机能够访问的数据的其他类型的计算机可读介质,如磁带盒或其他磁性存储设备、闪存卡、CD-ROM、数字通用磁盘(DVD)或其他光学存储器、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)等等,都能被用来实现示例计算系统和环境。
在硬盘716、磁盘720、光盘724,ROM 712、和/或RAM 710上能够存储任意数量的程序模块,包括举例来说,操作系统726,一个或多个应用程序728、其他程序模块730、以及程序数据730。此类操作系统726,一个或多个应用程序728、其他程序模块730、以及程序数据732(或其某些组合)中的任意一个可实现支持分布式文件系统的所有或部分常驻组件。
用户可以通过输入设备如键盘734和定位设备736(如,鼠标)向计算机702输入指令和信息。其他输入设备738(未特别示出)可包括麦克风、操纵杆、游戏垫、卫星接收天线、串行端口、扫描仪等等。这些和其他输入设备通过耦合至系统总线708的输入输出接口740连接至处理单元704,但是也可以通过其他接口和总线结构连接,如并行端口、游戏端口、或通用串行总线(USB)。
监视器742或其他类型显示设备也可以通过接口,如视频分配器744,连接至系统总线708。除监视器742之外,其他输出外围设备可包括如扬声器(未示出)和打印机746的组件,它们可以通过I/O接口740连接至计算机702。
计算机702可以在使用逻辑连接到如远程计算机748的一个或多个远程计算机的网络化环境中运行。作为示例,远程计算设备748可以是PC、便携式计算机、服务器、路由器、网络计算机、对等设备或其他公共网络节点等等。远程计算设备748以包括在此所述与计算机702相关的多个或所有元件和特性的便携式计算机举例说明。另一方面,计算机702也能够在一个非网络化环境中运行。
在计算机702和远程计算机748之间的逻辑连接被描述为局域网(LAN)750和通用广域网(WAN)752。此类网络环境常见于办公室、企业范围的计算机网络、内部局域网、和因特网。
当在LAN网络环境中实现时,计算机702经由网络接口或适配器754连接至局域网750。当在WAN网络环境中实现时,计算机702常包括调制解调器756或其他用于经由广域网752建立通信的设备。对于计算机702可以内置或外置的调制解调器756可通过I/O接口或其他适当的机制连接至系统总线702。所示的网络连接仅是示例,也可以使用在计算机702和708之间至少建立一条通信链路的其他手段。
在网络化环境中,诸如以计算环境700所举例说明的,所述的有关计算机702的程序模块、或其部分,能够存储在远程存储器设备中。作为示例,远程应用程序758驻留在远程计算机748的存储设备中。为了举例说明,应用或程序以及其他可执行程序组件如操作系统在此举例作为离散模块,尽管众所周知这些程序和组件在不同的时间被驻留在计算设备702的各种存储组件之中,且至少能够被计算机的一个数据处理器执行。
各种模块和技术在此可描述为可由一个或多个计算机或其他设备执行的计算机可执行指令如程序模块的通用形式。通常,程序模块包括例程、程序、对象、组件、数据结构等等,用于执行特定任务或实现特定抽象数据类型。一般而言,程序模块的功能性可如同在各个实施例中所述的那样是组合的或分布式的。
这些模块和技术的实现可以存储在某些形式的计算机可读介质上或通过其传输。计算机可读介质可以是计算机能够访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括“计算机存储介质”以及“通信介质”。
“计算机存储介质”包括以任意方式或技术实现的用于存储如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性和非易失性,可移动和不可移动的介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用磁盘(DVD)或其他光学介质、磁带盒、磁带、磁性磁盘存储器或其他磁性存储设备、或能用于存储所需信息并能由计算机访问的任何其他介质。
“通信介质”通常提存为计算机可读指令、数据结构、程序模块、或调制数据信号中的如载波或其他传输机制的其他数据。通信介质也包括任意信息传递介质。术语“调制数据信号”表示具有一个或多个特征集或以在信号中编码信息的方式改变的信号。作为非限制性示例,通信介质包括有线介质如有线网络或直接线路连接、和无线介质如声学的、RF、红外的、和其他无线介质。上面的任意组合也包括在计算机可读介质的范畴之内。
贯穿本说明书引用了“一个实施例”、“一实施例”或“示例实施例”表示特别描述的特征、结构、或特性的被包含在本发明的至少一个实施例中。因此,这种措词的使用可能不仅仅指一个实施例。此外,所述的特征、结构、或特性可以任意适当的方式在一个或多个实施例中组合。
然而,本领域技术人员能够理解本发明可以无需一个或多个特定细节、或者以其他方法、资源、材料等等实践。在其他情况下,未详细示出或描述众所周知的结构、资源、或操作只是为了避免混淆发明诸方面。
尽管本发明的示例实施例和应用已经进行了说明和描述,应该理解本发明并不限于上述的精确配置和资源。对于本领域中熟练的技术人员而言,各种修订、更改、以及外观变化可以在在此揭示的本发明方法和系统的排列、操作、以及细节中实现而不背离本发明的范围。

Claims (24)

1.一种用于响应假超时的方法,其特征在于,包括:
调整拥塞状态值,
其中所述调整拥塞状态值包括:
恢复一缓慢启动阈值,其中所述缓慢启动阈值是与用于控制数据传输的所估计的可用带宽相关的状态变量;
设置管道值,其中所述管道值是网络上待完成的字节数量的发送方的估计,且其中设置所述管道值包括把发送主机能发送的最大段大小加至到目前为止发送的最大序列号与还未确认的最低序列号间的差上;以及
重新设置拥塞窗口的初始值;
根据所调整的拥塞状态值在网络上维持数据流;以及
当先前传输的数据被认为已在网络上丢失时,重发先前传输的数据,
其中如果所述管道值小于拥塞窗口则传输新数据。
2.如权利要求1所述的方法,其特征在于,所述缓慢启动阈值是一个在超时之前检测到的可用带宽值。
3.如权利要求1所述的方法,其特征在于,所述重新设置拥塞窗口的初始值包括将拥塞窗口设置为最大数据段大小的两倍。
4.如权利要求1所述的方法,其特征在于,根据所述调整的拥塞状态值维持数据流包括:
发送数据包;
接收确认;以及
通过增加发送主机能够发送的最大数据段大小来重新设置拥塞窗口。
5.如权利要求1所述的方法,其特征在于,当先前传输的数据被认为已在网络上丢失时重发先前传输的数据包括当3个副本确认被发送主机接收时重发先前传输的数据。
6.如权利要求5所述的方法,其特征在于,还包括实现缓慢启动恢复过程。
7.如权利要求5所述的方法,其特征在于,还包括实现缓慢启动恢复过程,其包括:
重新调整管道值;以及
根据所接收的确认的模式重新设置拥塞窗口的大小。
8.一种用于在网络上响应假超时的方法,其特征在于,包括:
恢复拥塞状态值,包括设置发送主机在接收确认之前能在网络上发送的数据极限值;
维持来自发送主机的数据流;以及
在接收到一个确认时,重新设置发送主机在接收确认之前能在网络上发送的数据极限值,
其中恢复拥塞状态值包括:
恢复在假超时之前可用带宽的阈值;以及
调整管道值,所述管道值是对在假超时之前网络待完成的数据的估计,且设置所述管道值包括把发送主机能发送的最大段大小加至到目前为止发送的最大序列号与还未确认的最低序列号间的差上,
其中如果所述管道值小于拥塞窗口则传输新数据。
9.如权利要求8所述的方法,其特征在于,发送主机在接收确认之前能在网络上发送的所述数据极限值被设置为发送主机能够发送的最大数据段大小的两倍。
10.如权利要求8所述的方法,其特征在于,发送主机在接收确认之前能在网络上发送的所述数据极限值,在接收到一个确认后,通过增加发送主机能够发送的最大数据段大小而被重新设置。
11.如权利要求8所述的方法,其特征在于,还包括当先前在网络上传输的数据被证实在网络上丢失时重发数据。
12.如权利要求11所述的方法,其特征在于,当接收到3个副本确认时,先前在网络上传输的数据被证实在网络上丢失。
13.如权利要求8所述的方法,其特征在于,还包括根据缓慢启动恢复过程维持数据流。
14.一种响应假超时的方法,包括一旦检测到网络上超时时:
调整拥塞状态值;
在网络上维持数据流;以及
当先前传输的数据被确定为已在网络上丢失时,重发先前发送的数据,
其中调整拥塞状态值包括:调整对网络上待完成的数据量的估计为发送主机能发送的最大段大小加上到目前为止发送的最大序列号与还未确认的最低序列号间的差,
其中如果所述估计小于拥塞窗口则传输新数据。
15.如权利要求14所述的方法,其特征在于,所调整拥塞状态值包含:
限制发送主机在接收确认之前能发送的数据量为发送主机能发送的最大数据段大小的两倍。
16.如权利要求15所述的方法,其特征在于,所在网络上维持数据流包含:
把发送主机在接收确认之前能发送的数据量增加发送主机能够发送的最大数据段大小。
17.如权利要求14所述的方法,其特征在于,当先前传输的数据被确定为在网络上丢失时,所述重发先前传输数据包含:
启动缓慢启动过程。
18.一种用于假超时恢复的装置,其特征在于,包括:
发送数据包的发送器;
检测超时的传输定时器;以及
维持数据流直至数据被确认在网络上丢失的响应处理器,
其中所述响应处理器是用于:
调整拥塞状态值;
根据所述调整的拥塞状态值在网络上维持数据流;以及
当先前传输的数据被认为在网络上丢失时,重发先前传输的数据,
其中调整拥塞状态值是为了:
设置发送主机在接收确认之前能发送的数据量的极限值为发送主机能发送的最大数据段大小的两倍,
其中如果一管道值小于拥塞窗口则传输新数据,其中所述管道值是网络上待完成的字节数量的发送方的估计,且其中设置所述管道值包括把发送主机能发送的最大段大小加至到目前为止发送的最大序列号与还未确认的最低序列号间的差上,且
其中维护所述数据流直到数据被证实在网络上丢失。
19.如权利要求18所述的装置,其特征在于,根据所述调整的拥塞状态值在网络上维持数据流是为了:
在接收确认时,通过增加发送主机能够发送的数据段大小重新设定发送主机在接收确认之前能发送的数据量的极限值;以及
在网络上传输数据。
20.如权利要求18所述的装置,其特征在于,当先前传输的数据被认为在网络上丢失时重发先前传输的数据是为了在接收3个副本确认时重发先前传输的数据。
21.如权利要求18所述的装置,其特征在于,该装置是为了进一步处理缓慢启动恢复。
22.一种用于响应假超时的处理器,其特征在于,包括:
用于调整拥塞状态值的装置,包括用于设置管道值的装置,其中管道值是网络上待完成的数据量的估计且设置所述管道值包括把发送主机能发送的最大段大小加至到目前为止发送的最大序列号与还未确认的最低序列号间的差上;
用于根据所述调整的拥塞状态值在网络上维持数据流的装置;以及
用于当先前传输的数据被认为在网络上丢失时,重发先前传输的数据的装置,
其中如果所述管道值小于拥塞窗口则传输新数据。
23.如权利要求22所述的处理器,其特征在于,用于根据所述调整的拥塞状态值在网络上维持数据流的所述装置在接收到确认后,通过增加发送主机能够发送的最大数据段大小重新设置发送主机在接收确认之前能发送的数据量的极限值,并继续在网络上传输数据。
24.如权利要求22所述的处理器,其特征在于,重发先前传输数据的所述装置在接收到3个副本的确认时重发先前传输的数据。
CN2005100559280A 2004-03-15 2005-03-15 对假超时的响应 Expired - Fee Related CN1671094B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/800,897 US7397759B2 (en) 2004-03-15 2004-03-15 Response for spurious timeout
US10/800,897 2004-03-15

Publications (2)

Publication Number Publication Date
CN1671094A CN1671094A (zh) 2005-09-21
CN1671094B true CN1671094B (zh) 2010-08-18

Family

ID=34838876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100559280A Expired - Fee Related CN1671094B (zh) 2004-03-15 2005-03-15 对假超时的响应

Country Status (7)

Country Link
US (1) US7397759B2 (zh)
EP (1) EP1578070B1 (zh)
JP (1) JP4589764B2 (zh)
KR (1) KR101130479B1 (zh)
CN (1) CN1671094B (zh)
AT (1) ATE424674T1 (zh)
DE (1) DE602005013016D1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7623464B2 (en) * 2004-07-09 2009-11-24 Cisco Technology, Inc. Rapid protocol failure detection
EP1771742B1 (en) * 2004-07-29 2017-07-12 Dell Products L.P. High performance tcp for systems with infrequent ack
US7903546B2 (en) * 2005-01-14 2011-03-08 Cisco Technology, Inc. Detecting unavailable network connections
JP4445012B2 (ja) * 2005-03-25 2010-04-07 富士通株式会社 パケットの配信帯域制御方法、配信装置及び映像配信システム
US7965771B2 (en) * 2006-02-27 2011-06-21 Cisco Technology, Inc. Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
US8218654B2 (en) * 2006-03-08 2012-07-10 Cisco Technology, Inc. Method for reducing channel change startup delays for multicast digital video streams
US8031701B2 (en) 2006-09-11 2011-10-04 Cisco Technology, Inc. Retransmission-based stream repair and stream join
US8418016B2 (en) 2006-10-05 2013-04-09 Ntt Docomo, Inc. Communication system, communication device, and communication method
US7937531B2 (en) 2007-02-01 2011-05-03 Cisco Technology, Inc. Regularly occurring write back scheme for cache soft error reduction
US8769591B2 (en) 2007-02-12 2014-07-01 Cisco Technology, Inc. Fast channel change on a bandwidth constrained network
US7940644B2 (en) * 2007-03-14 2011-05-10 Cisco Technology, Inc. Unified transmission scheme for media stream redundancy
US20080253369A1 (en) 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
US8205140B2 (en) * 2007-05-10 2012-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for the use of network coding in a wireless communication network
US8787153B2 (en) 2008-02-10 2014-07-22 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
US8495238B1 (en) * 2008-05-28 2013-07-23 Google Inc. Facilitating self-tuning traffic shaping without a central traffic manager
US8019899B2 (en) * 2008-08-28 2011-09-13 Yahoo! Inc. Delivering partially processed results based on system metrics in network content delivery systems
US8971241B2 (en) * 2008-09-30 2015-03-03 Qualcolmm Incorporated Techniques for supporting relay operation in wireless communication systems
US9203564B2 (en) * 2008-10-20 2015-12-01 Qualcomm Incorporated Data transmission via a relay station in a wireless communication system
US8607114B2 (en) * 2008-12-05 2013-12-10 Ntt Docomo, Inc. Communication device and communication method
US8274886B2 (en) * 2009-10-28 2012-09-25 At&T Intellectual Property I, L.P. Inferring TCP initial congestion window
US8625622B2 (en) * 2009-12-25 2014-01-07 Cisco Technology, Inc. Increasing transmission rate to a remote device in response to attributing information loss as not being a result of network congestion
WO2012132283A1 (ja) * 2011-03-28 2012-10-04 日本電気株式会社 通信装置およびその通信制御方法
CN102664867B (zh) * 2012-03-15 2014-11-19 南京邮电大学 一种卫星通信系统中的传输协议的增强方法
US9413797B2 (en) * 2013-04-23 2016-08-09 Gurulogic Microsystems Oy Data communication system and method
CN104202257B (zh) * 2014-09-12 2017-07-21 大连大学 一种基于带宽估计的卫星网络拥塞控制方法
GB201621854D0 (en) * 2016-12-21 2017-02-01 British Telecomm Managing congestion response during content delivery
CN110199505B (zh) 2016-12-21 2022-11-18 英国电讯有限公司 确定通信链路的带宽
CN110192394B (zh) 2016-12-21 2023-10-20 英国电讯有限公司 通过网络传送媒体内容的方法和服务器
US11711553B2 (en) 2016-12-29 2023-07-25 British Telecommunications Public Limited Company Transmission parameter control for segment delivery
CN108574644B (zh) * 2017-09-15 2021-05-14 北京金山云网络技术有限公司 一种tcp连接恢复方法、装置、电子设备及存储介质
CN110266446B (zh) * 2019-05-15 2022-05-20 网宿科技股份有限公司 一种基于sack模式调整乱序时长的方法和装置
CN114785462A (zh) * 2022-04-13 2022-07-22 广州国巡机器人科技有限公司 一种防丢包的通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1354575A (zh) * 2000-11-22 2002-06-19 深圳市中兴通讯股份有限公司 一种应用于双网容错系统的通讯方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046672B2 (en) * 2000-11-16 2006-05-16 Microsoft Corporation Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers
US7099273B2 (en) * 2001-04-12 2006-08-29 Bytemobile, Inc. Data transport acceleration and management within a network communication system
FR2830397B1 (fr) 2001-09-28 2004-12-03 Evolium Sas Procede pour ameliorer les performances d'un protocole de transmission utilisant un temporisateur de retransmission
US7609640B2 (en) * 2003-12-19 2009-10-27 Nokia Corporation Methods and applications for avoiding slow-start restart in transmission control protocol network communications
US7310682B2 (en) * 2004-01-08 2007-12-18 Lsi Corporation Systems and methods for improving network performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1354575A (zh) * 2000-11-22 2002-06-19 深圳市中兴通讯股份有限公司 一种应用于双网容错系统的通讯方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Sarolahti et al..F-RTO:AN Enhanced Recovery Algorithm for TCPRetransmission Timeouts.ACM SIGCOMM Computer Communications Review33 2.2003,33(2),51-63.
Sarolahti et al..F-RTO:AN Enhanced Recovery Algorithm for TCPRetransmission Timeouts.ACM SIGCOMM Computer Communications Review33 2.2003,33(2),51-63. *

Also Published As

Publication number Publication date
US7397759B2 (en) 2008-07-08
ATE424674T1 (de) 2009-03-15
EP1578070A1 (en) 2005-09-21
DE602005013016D1 (de) 2009-04-16
US20050201279A1 (en) 2005-09-15
JP2005269643A (ja) 2005-09-29
KR101130479B1 (ko) 2012-03-27
KR20060043648A (ko) 2006-05-15
EP1578070B1 (en) 2009-03-04
JP4589764B2 (ja) 2010-12-01
CN1671094A (zh) 2005-09-21

Similar Documents

Publication Publication Date Title
CN1671094B (zh) 对假超时的响应
EP2290865B1 (en) Cooperation of arq protocols at physical and link layers for wireless communications
CN100399282C (zh) 智能网络适配器的状态恢复及故障修复
Floyd et al. Rfc3782: The newreno modification to tcp's fast recovery algorithm
Floyd et al. The NewReno modification to TCP's fast recovery algorithm
JP5694993B2 (ja) 通信装置及び通信方法
JP5523350B2 (ja) Tcpフロー制御のための方法及び装置
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
Bhandarkar et al. Improving the robustness of TCP to non-congestion events
US8607114B2 (en) Communication device and communication method
USRE43151E1 (en) Acknowledging data transmissions in the presence of multiple shared-communications channels
US6996105B1 (en) Method for processing data packet headers
US10461892B2 (en) Low latency communications
Ratnam et al. Effect of local retransmission at wireless access points on the round trip time estimation of TCP
EP3574600B1 (en) Communication protocol packet retransmission
WO2001053956A2 (en) System and method for communication between devices in a computer system
JP2005167352A (ja) 送信装置およびプログラム
Zabir et al. A proposal for efficient TCP flow control over satellite networks
JP2004222271A (ja) 伝送制御方法、通信装置、通信システム及びプログラム
Blanton ICIR/ICSI
Allman et al. Network Working Group S. Bhandarkar Request for Comments: 4653 ALN Reddy Category: Experimental Texas A&M University
Gurtov Network Working Group S. Floyd Request for Comments: 3782 ICSI Obsoletes: 2582 T. Henderson Category: Standards Track Boeing
JP2006074251A (ja) フロー制御方法、通信機器、及びtcp通信システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150515

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150515

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100818

Termination date: 20200315

CF01 Termination of patent right due to non-payment of annual fee