CN200410095513.1
2004.11.25
CN1622536A
2005.06.01
终止
无权
未缴年费专利权终止IPC(主分类):H04L 12/56申请日:20041125授权公告日:20090916终止日期:20131125|||授权|||实质审查的生效|||公开
H04L12/56; H04L1/08; H04L29/06; H04L29/14
株式会社NTT都科摩;
三宅基治
日本国东京都
2003.11.28 JP 2003-399988
中科专利商标代理有限责任公司
朱进桂
一种用于控制数据发送的发送器设备,其把包含唯一编号的数据块发送给接收器设备,在重发已发送的段之后、收到了包含该重发的数据块的编号的应答的情况下,使该发送器设备发送要在已发送的段之后发送的随后段,直到预定数量。
1. 一种发送器设备,包括:第一发送装置,用于在把顺序信息写到每个数据块之后,通过通信网络接连地将所述数据块发送给接收器设备,直到预定数量,所述顺序信息显示所述数据块的顺序;接收装置,用于从所述接收器设备接收对一个或多个所述数据块的收到进行确认的应答,所述应答包含所述接收器设备下一次要接收的数据块的顺序信息;第一重发装置,用于重发所述数据块之一,在重发超时到期之前相对于所述数据块之一的所述应答还没有被所述接收装置收到;以及第二发送装置,用于在通过所述第一重发装置执行所述数据块的重发之后所述接收装置收到了包含该重发的数据块的顺序信息的应答的情况下,发送在由所述第一发送装置发送的所述数据块之后等待发送的随后数据块,其中由所述第二发送装置发送的多个所述随后数据块被限于预定数量。2. 一种发送器设备,包括:发送装置,用于在把顺序信息写到每个数据块之后,通过通信网络接连地将所述数据块发送给接收器设备,直到由拥塞窗口大小定义的数量,所述顺序信息显示所述数据块的顺序;接收装置,用于从所述接收器设备接收对一个或多个所述数据块的收到进行确认的应答,所述应答包含所述接收器设备下一次要接收的数据块的顺序信息;第一重发装置,用于重发所述数据块之一,在重发超时到期之前相对于所述数据块之一的所述应答还没有被所述接收装置收到;减小装置,用于在通过所述第一重发装置执行所述数据块的所述重发的情况下,将所述拥塞窗口大小减小到预定值;以及控制装置,用于在通过所述第一重发装置执行所述数据块的重发之后所述接收装置收到了包含该重发的数据块的顺序信息的应答的情况下,根据预定算法增大所述拥塞窗口大小,以及发送在由所述发送装置发送的所述数据块之后等待发送的随后数据块。3. 根据权利要求1或2所述的发送器设备,其中,当根据所述应答中包含的信息,判定所述应答是从所述接收器设备发送的、作为对在所述通信网络中在发送期间已经被复制或分片的数据块的收到的响应时,所述接收装置丢弃所述应答。4. 根据权利要求1或2所述的发送器设备,进一步包括:第二重发装置,用于在根据所述应答中包含的信息判定由所述第一重发装置发送的所述数据块没有被所述接收器设备收到的情况下;以及在通过所述第一重发装置的所述数据块的所述重发之后发送的所述随后数据块被所述接收器设备收到的情况下,重发由所述第一重发装置发送的所述数据块。5. 根据权利要求1或2所述的发送器设备,进一步包括:计算装置,用于获得被所述接收装置收到的应答的数量,所述应答包含了由所述第一重发装置重发的所述数据块的顺序信息;以及第二重发装置,用于在由所述计算装置获得的所述数量超过了根据在通过所述第一重发装置执行所述数据块的所述重发之前发送的所述数据块的数量而获得的值的情况下,重发具有所述顺序信息的数据块。6. 根据权利要求1或2所述的发送器设备,其进一步包括:计时装置,用于在通过所述第一重发装置执行所述数据块的所述重发的时候,开始测量时间;以及第二重发装置,用于在由所述计时装置测量的所述时间达到预定时间之前所述接收装置没有收到包含顺序信息的应答的情况下,重发由所述第一重发装置重发的所述数据块,其中所述顺序信息顺序地在由所述第一重发装置重发的所述数据块的顺序信息之后。7. 一种发送器设备,包括:存储装置;发送装置,用于在把顺序信息写到每个数据块之后,通过通信网络接连地将所述数据块发送给接收器设备,直到由拥塞窗口大小定义的数量,所述顺序信息显示所述数据块的顺序;接收装置,用于从所述接收器设备接收对一个或多个所述数据块的收到进行确认的应答,所述应答包含所述接收器设备下一次要接收的数据块的顺序信息;第一重发装置,用于在包含相同顺序信息的应答被接收预定次数的情况下,重发具有所述顺序信息的数据块,其中所述顺序信息识别由所述发送装置发送的一个所述数据块;计时装置,用于在通过所述第一重发装置执行所述数据块的重发的时候,开始测量时间;第二重发装置,用于在由所述计时装置测量的所述时间达到预定时间之前所述接收装置没有收到对由所述第一重发装置重发的所述数据块的收到进行确认的应答的情况下,重发由所述重发装置重发的所述数据块;减小装置,用于在通过所述第二重发装置执行所述数据块的重发的时候,在把所述拥塞窗口大小存储在所述存储装置中之后,减小所述拥塞窗口大小;以及控制装置,用于在通过所述第二重发装置重发所述数据块之后所述接收装置收到了包含由所述第二重发装置重发的所述数据块的顺序信息的应答的情况下,根据预定算法增大所述拥塞窗口大小,所述预定算法把根据所述存储装置中存储的所述拥塞窗口大小确定的值作为初始值,以及发送在由所述发送装置发送的所述数据块之后等待发送的随后数据块。
用于控制数据发送的发送器设备 技术领域 本发明涉及一种在重发超时的情况下保持高效数据通信的技术。 背景技术 传输控制协议(TCP)是一种广泛用于发送器设备和接收器设备之间的数据通信的通信协议。发送器设备把要发送给接收器设备的数据分成多个部分,数据的每一部分都具有预定的数据量(data size),并作为数据块(以下称为“段”)被发送。每段都包含数据的分割部分(divided portion)以及附加到该分割部分上的唯一报头(header),在该报头中包括用于唯一识别每一段中包含的数据的分割部分的顺序号。这样编号的段按升序被顺序地发送给接收器设备。一旦接收器设备收到一个段,该接收器设备就返回用于确认该段收到的通信消息(以下称为“应答”)。在应答中,写有接收器设备期望下一次接收的段的顺序号(以下称为“应答号”)。当一个段安全地被接收器设备收到时,应答号应该大于收到的段的顺序号。在发送器设备处接收这种应答,使得能够判定发送的段是否已经安全地被接收器设备收到。只有在收到相对于已发送的段的应答之后,发送器设备才将随后的段发送给接收器设备。 然而,在用于发送器设备和接收器设备之间的数据通信的通信网络中发生拥塞的情况下,在重发超时到期之前,从发送器设备发送的段有时没有到达接收器设备。当在自从段被发送时的预定时间周期内,发送器设备没有收到应答,则发送器设备就认为段丢失了(即“段丢失”)。然后,发送器设备对显然丢失的段执行重发。因而,当根据TCP执行通信时,确保了通信的可靠性。 然而,以确保可靠性为代价,使数据发送效率降低了。为了在数据发送的可靠性和效率之间获得平衡,TCP规定:在没有从接收器设备收到应答的情况下,可以接连地从发送器设备发送段,直到某一数量;以及每当收到相对于已发送的段的应答,就递增可以发送的段的数量。这种段发送方法被称为“窗口控制”,并且接连地发送的段的数量被称为“拥塞窗口大小”。 当在这种窗口控制被执行的情况下、发生了重发超时,则发送器设备从还没有被应答的已发送的段当中重发最旧的段(即具有最小顺序号的段),并将拥塞窗口大小减小到最小值(例如对应于一段的字节值),否则该拥塞窗口大小将造成大量的段流入到已经拥塞的网络状态。在拥塞窗口大小曾经减小之后,每当发送器设备收到相对于已发送的段的应答时,发送器设备就根据预定算法再次增大拥塞窗口大小。 当发送器设备根据TCP增大拥塞窗口大小时,使用两种类型的算法,缓慢启动(Slow Start)算法和拥塞避免(Congestion Avoidance)算法。缓慢启动算法按指数规律增大拥塞窗口大小,而拥塞避免算法线性增大拥塞窗口大小。根据TCP发送段的发送器设备一般执行缓慢启动算法,直到拥塞窗口大小达到预定阈值为止,并且在拥塞窗口大小达到该预定阈值之后,执行拥塞避免算法。从而,避免了按照TCP的数据通信中的拥塞。 根据TCP发送段的发送器设备,不仅由重发超时的发生,而且还由具有相同应答号的多个应答(以下称为“复制应答(ACK)”),例如3个应答,来触发重发段。由复制ACK触发的段重发无需等待重发超时的到期就可以被执行,因此被称为“快速重发(Fast Retransmit)”算法。当快速重发算法被执行时,拥塞窗口大小被减小到预定大小,例如在快速重发时的当前窗口大小的二分之一,并且每当收到相对于已发送的段的应答时,就根据拥塞避免算法再次增大这样曾经减小的拥塞窗口大小。这被称为“快速恢复(Fast Recovery)”,这是因为没有事先执行缓慢启动算法,就利用拥塞避免算法来增大拥塞窗口大小。因而,或者由重发超时的发生或者由复制ACK的收到,来触发发送器设备根据TCP重发段。 然而,重发超时和复制ACK的收到彼此独立地发生;例如,在根据快速重发算法重发了段之后,当等待来自接收器设备的、相对于刚刚根据快速重发算法重发的段的应答时,会由于超时到期而发生重发超时。在这种情况下,在根据快速重发算法进行重发的时候,拥塞窗口大小被减小到预定值,然后在随后地重发超时的时候,再次被减小到最小值。其结果是,数据发送效率大大降低了。 在日本专利申请待审公开JP 2001-352339中,以及在“响应TCP中的快速超时(Responding to Fast Timeouts in TCP)”(Reiner Ludwig,IETF,URL:http://www.atm.tut.fi/list-archive/ietf-announce/msg10793.html,July 24,2002)中,提出了用于这种问题的技术。 JP 2001-352339提出一种技术,用于当发送器设备判定重发超时无效的时候恢复拥塞窗口大小,其中在最近的重发超时发生的时候,拥塞窗口大小被减小到最小值。特别是,使接收器设备向发送器设备报告以下事件:相同的段被一式两份地收到。在发送器设备收到这种报告的情况下,发送器设备将拥塞窗口大小增大到预定值。在常规方法中,在作为重发超时发生的结果而执行段的重发的情况下,两个相同的段,最初发送的段和重发的段,被发送给接收器设备。如果这两个段的每一个都安全地被接收器设备收到,则由超时触发的段重发将变得不必要,因而由重发超时触发的拥塞窗口大小的减小也将变得不必要。JP 2001-352339中提出的技术使发送器设备能够恢复该曾经减小的拥塞窗口大小,由此能够避免拥塞窗口大小的任何不需要的、不必要的减小。 根据Ludwig提出的技术,在重发超时到期之前从接收器设备收到了一个或两个复制的应答、并且在重发超时到期之后进一步收到了一个或两个复制的应答的情况下,使发送器设备执行快速恢复算法。 然而,即使JP 2001-352339中提出的算法被应用,在发送器设备从接收器设备收到用于通知发送器设备关于收到了两个相同段的报告之前,第二重发超时也可能发生。更详细地,如果在收到应答之前、根据当前的拥塞窗口尺寸从发送器设备发送大量的段(以下称为原始段),并且作为第一重发超时的结果而重发一个原始段,则在原始段被接收器设备收到之后,该重发的段将被接收器设备收到。结果,在从接收器设备收到报告之前,即在判定第一超时有效之前,第二重发超时可能到期。图9是这种情况的一个例子,其中具有顺序号500、1000、1500、2000和2500的5段从发送器设备被发送,并且相对于具有顺序号500的段的重发超时到期了,导致了第一段(500)的重发。如图9所示,在具有顺序号1000至2500的4段被接收器设备收到之后,该重发的段(500)到达接收器设备。然后,在发送器设备从接收器设备收到关于已经收到两个相同的段(500)的报告之前,相对于该重发的段(500)的第二重发超时很可能发生。 同样,Ludwig提出的技术仅适于很有限的情况:在重发超时到期之前一个或两个应答被收到,以及在重发超时发生之后,一个或多个应答被收到。 发明内容 鉴于上述情形提出了本发明,本发明的目的是,在拥塞被推断为无关紧要的情况下提高数据发送效率,而不加剧网络拥塞。图9显示了无关紧要的拥塞的例子。在该例子中,在段从发送器设备被重发给接收器设备之后,具有该重发的段的顺序号的应答被接收。如果连接发送器设备和接收器设备的网络遭受了严重的拥塞,并且大量的段已经丢失,则将收不到这种应答。换句话说,通信网络处于拥塞状态,但是拥塞的程度相对地无关紧要。 在一方面,本发明提供一种发送器设备,该发送器设备包括:第一发送装置,用于在把顺序信息写到每个数据块之后,通过通信网络接连地将数据块发送给接收器设备,直到预定数量,该顺序信息显示数据块的顺序;接收装置,用于从接收器设备接收对一个或多个数据块的收到进行确认的应答,该应答包含接收器设备下一次要接收的数据块的顺序信息;第一重发装置,用于重发所述数据块之一,其中在重发超时到期之前相对于该数据块的应答还没有被接收装置收到;以及第二发送装置,用于在通过第一重发装置执行数据块的重发之后接收装置收到了包含该重发的数据块的顺序信息的应答的情况下,发送在由第一发送装置发送的数据块之后等待发送的随后数据块,其中由该第二发送装置发送的多个随后数据块被限于预定数量。 在另一方面,本发明提供一种发送器设备,该发送器设备包括:发送装置,用于在把顺序信息写到每个数据块之后,通过通信网络接连地将数据块发送给接收器设备,直到由拥塞窗口大小定义的数量,该顺序信息显示数据块的顺序;接收装置,用于从接收器设备接收对一个或多个数据块的收到进行确认的应答,该应答包含接收器设备下一次要接收的数据块的顺序信息;第一重发装置,用于重发所述数据块之一,其中在重发超时到期之前相对于所述数据块之一的应答还没有被接收装置收到;减小装置,用于在通过第一重发装置执行数据块的重发的情况下,将拥塞窗口大小减小到预定值;以及控制装置,用于在通过第一重发装置执行数据块的重发之后接收装置收到了包含该重发的数据块的顺序信息的应答的情况下,根据预定算法增大拥塞窗口大小,以及发送在由发送装置发送的数据块之后等待发送的随后数据块。 在又一方面,本发明提供一种发送器设备,该发送器设备包括:存储装置;发送装置,用于在把顺序信息写到每个数据块之后,通过通信网络接连地将数据块发送给接收器设备,直到由拥塞窗口大小定义的数量,该顺序信息显示数据块的顺序;接收装置,用于从接收器设备接收对一个或多个数据块的收到进行确认的应答,该应答包含接收器设备下一次要接收的数据块的顺序信息;第一重发装置,用于在包含相同顺序信息的应答被接收预定次数的情况下,重发具有该顺序信息的数据块,其中该顺序信息识别由发送装置发送的一个数据块;计时装置,用于在通过第一重发装置执行数据块的重发的时候,开始测量时间;第二重发装置,用于在由计时装置测量的时间达到预定时间之前接收装置没有收到对由第一重发装置重发的数据块的收到进行确认的应答的情况下,重发由重发装置重发的数据块;减小装置,用于在通过第二重发装置执行数据块的重发的时候,在把拥塞窗口大小存储在存储装置中之后,减小该拥塞窗口大小;以及控制装置,用于在通过第二重发装置重发数据块之后接收装置收到了包含由第二重发装置重发的数据块的顺序信息的应答的情况下,根据预定算法增大拥塞窗口大小,该预定算法把根据存储装置中存储的拥塞窗口大小确定的值作为初始值,以及发送在由发送装置发送的数据块之后等待发送的随后数据块。 本发明进一步提供一种程序产品,用于使计算机设备执行由以上的每一个发送器设备中提供的装置所执行的功能;以及记录介质,其存储这种程序产品。本发明也提供一种控制数据发送的方法,该方法包括由每个发送器设备执行的步骤。 在拥塞被推断为无关紧要的情况下,本发明提高数据发送效率,而不进一步加剧网络拥塞。 附图说明 图1显示了包括根据本发明第一实施例的发送器设备20的通信系统的配置的例子。 图2显示了发送器设备20的硬件配置的例子。 图3显示了在发送器设备20和接收器设备30之间的通信顺序的例子。 图4所示流程图显示了由发送器设备20的控制单元100执行的数据发送操作的流程。 图5显示了包括根据本发明第二实施例的发送器设备40的通信系统的配置的例子。 图6所示流程图显示了由发送器设备40的控制单元100执行的拥塞窗口大小控制操作的流程。 图7描述了发送器设备40的拥塞窗口大小的变化。 图8描述了根据修改2的发送器设备的拥塞窗口大小的变化。 图9显示了在发送器设备和接收器设备之间的通信顺序的例子。 具体实施方式 以下,将参考附图来说明本发明的优选实施例。 A:第一实施例 A-1:配置 图1所示为根据本发明的第一实施例的通信系统的总体配置的例子。该通信系统包括:连接到通信网络10的发送器设备20,和接收器设备30。通信网络10是例如因特网,并且包括诸如路由器、网关等的中继设备。通信网络10根据预定的通信协议(在该实施例中为传输控制协议(TCP))中继交换的数据。在该实施例中,将描述通信网络10是因特网的情况,但是如果通信网络能够根据预定的通信协议在发送器设备20和接收器设备30之间中继数据,则通信网络可以是局域网(LAN)、移动分组通信网、诸如无线LAN的无线通信网络,或者其它任何类型的通信网络。同样,在该实施例中,将描述以下例子,其中当通过通信网络10在发送器设备与接收器设备30之间执行通信时,遵循TCP通信协议。本发明意义上的通信协议不限于TCP,而可以是任何通信协议,只要该通信协议规定了:诸如顺序号的顺序信息用于证实已发送的数据块是否已经到达其目的地,以及在预定的重发超时到期之前没有得到证实的情况下,重发已发送的数据块。 发送器设备20和接收器设备30是连接到通信网络10上的个人计算机(以下称为PC),并且能够根据TCP、通过通信网络10来执行通信。虽然在该实施例中,将说明发送器设备20和接收器设备30是根据TCP来执行通信的PC的情况,但是发送器设备20和/或接收器设备30可以是个人数字助理(PDA)、根据TCP执行通信的移动电话、或其它任何计算机设备,只要它能够根据预定的通信协议来执行通信。 图1所示的通信系统与根据TCP执行通信的常规通信系统不同。在图1所示的通信系统中,在发送器设备20在由于重发超时而重发段之后收到包含作为应答号的重发段顺序号的应答的情况下,应该紧跟已发送的段之后的段(以下称为随后段)被发送。每当发送器设备20收到包含重发段的顺序号的应答时,随后段就被发送,直到发送的随后段的数量达到预定的段数(以下称为发送上限,并且在该实施例中被确定为“2”)为止。 现在将参考图2来描述发送器设备20的配置。如图2所示,发送器设备20包括:控制单元100;通信接口(以下称为IF)单元110;存储单元120;以及总线130,用于中继在以上单元之间交换的数据。 控制单元100例如是中央处理器(CPU),并且通过读并执行在存储单元120中存储的软件来控制发送器设备20的其它单元。通信IF单元110被连接到通信网络10;它通过通信网络10接收已发送的段,将接收的段传递给控制单元100,以及将从控制单元100传来的段发送到通信网络10。 如图2所示,存储单元120具有易失性存储器120a和非易失性存储器120b。易失性存储器120a是例如随机存取存储器(RAM),并且被根据软件操作的控制单元100用作工作区。易失性存储器120a存储显示被发送给接收器设备30的随后段的数量的数据(以下称为发送计数器)。非易失性存储器120b是例如硬盘,并且至少存储以下数据的每一个:要发送给接收器设备30的发送数据;显示拥塞窗口大小的初始值的数据;显示重发超时值的数据;以及显示发送上限的数据。在该实施例中,发送数据被存储在非易失性存储器120b中,但是也有可能由用户利用诸如键盘或鼠标的输入单元(未显示),来输入这种数据。类似,在该实施例中,显示重发超时值的数据被存储在非易失性存储器120b中,但是也有可能使控制单元100在段发送之前执行,例如分组因特网Groper(“PING”),由此根据为响应“PING”所需的时间来获得重发超时值。 在非易失性存储器120b中进一步存储了:操作系统(OS)软件,用于使控制单元100操作;以及数据发送软件,用于根据TCP将数据发送给接收器设备30。 一旦在非易失性存储器120b中存储的软件被执行,控制单元100就提供以下功能。 当发送器设备20被接通时,控制单元100首先从非易失性存储器120b中读出并执行OS软件。在OS软件下运行的控制单元100行使功能,以控制发送器设备20的每个单元,以及控制从非易失性存储器120b中读出并执行其它软件的功能。当OS软件被执行并运行时,一旦控制单元100从接收器设备30收到发送存储器120b中存储的数据的请求,控制单元100就从非易失性存储器120b中读出并执行数据发送软件。 根据数据发送软件操作的控制单元100提供以下四种功能,在根据TCP发送段的常规发送器设备中也提供了这四种功能。第一功能是段发送功能:通过把要发送给接收器设备30的数据分成具有预定数据量的部分来产生段,以及按照分配给每段的顺序号的升序来发送由拥塞窗口大小定义的多个段。第二功能是启动测量时间的计时功能,它由通过段发送功能的段发送来触发。第三功能是接收从接收器设备30发送的应答的接收功能。在应答中写有接收器设备30下一次应该接收的段的顺序号。第四功能是重发功能:重发已经通过段发送功能发送的段中的一段,在由计时功能测量的时间达到重发超时值之前,相对于该段的应答还没有被接收功能收到。 当根据数据发送软件操作时,控制单元100又提供一种本发明特有的功能。该功能是随后段发送功能:在发送器设备20通过重发功能重发段之后通过接收功能收到包含重发的段的顺序号的应答的情况下,根据发送上限来发送多个段。 如上所述,发送器设备20的硬件配置和一般计算机设备的硬件配置相同,但是发送器设备20通过使控制单元100执行存储单元120中存储的软件,而拥有本发明特有的功能,以及和根据TCP发送段的常规发送器设备相同的功能。 虽然在本发明实施例中,利用软件模块来实现以上功能,但是也有可能利用具有与软件模块中提供的相同的功能的硬件模块,来配置发送器设备20。 A-2:操作 现在,将参考附图来描述由第一实施例的发送器设备20执行的操作,并尤其集中在展示发送器设备20的特性的操作上。在以下的操作的例子中,发送器设备20的控制单元100根据以上的数据发送软件进行操作,并且已经将具有顺序号500、1000、1500、2000和2500的总共5段发送给接收器设备30,如图3所示。在此,假设具有顺序号500的段已经丢失,并且结果重发超时到期了。在以上给出的情况下,在控制单元100收到了包含由于重发超时而重发的段的顺序号的应答的情况下,控制单元100执行操作,如图4所示。 将省略由控制单元100执行的、直到重发段的步骤的操作,这是因为该操作和由根据TCP发送段的常规发送器设备所执行的操作相同。 在该例子中,当以下描述的操作开始时,发送计数器被设置为“0”;即,如果发生重发超时,则重发计数器被初始化。 如图4所示,控制单元100首先判定,通过通信IF单元110收到的应答是否包含与由于重发超时发生而重发的段的顺序号相同的顺序号(步骤SA1)。在步骤SA1的判定结果为“否”的情况下,控制单元100执行与常规发送器设备所执行的操作相同的操作(步骤SA2)。特别是,控制单元100根据预定算法(例如缓慢启动(Slow Start)算法)来递增拥塞窗口大小,并发送与由更新的拥塞窗口大小所定义的数相对应的随后段。 在步骤SA1的判定结果为“是”的情况下,控制单元100执行步骤SA3和步骤SA3之后的处理。在图3所示的操作例子中,由于重发超时而重发的段的顺序号是“500”;并且在重发超时发生之后从接收器设备30发送的应答中所包含的顺序号是“500”。因此,在步骤SA1中判定为“是”,结果,执行步骤SA3和步骤SA3以后的处理。 在步骤SA3中,控制单元100判定已发送的随后段的数量是否已达到发送上限。特别是,控制单元100将非易失性存储器120b中存储的、被设置为发送上限的值和易失性存储器120a中存储的发送计数器的值进行比较。在发送上限的值和发送计数器的值相同的情况下(步骤SA3;是),判定由发送上限定义的数量的随后段已经被发送。在该情况下,控制单元100重复步骤SA1和SA1之后的处理。在步骤SA3中判定结果为“否”的情况下,控制单元100发送一个随后段,并使发送计数器的值递增1(步骤SA4),并重复步骤SA1和步骤SA1之后的处理。 在该操作例子中,在操作开始时发送计数器被设置为“0”,并且上限值为“2”;因此,在重发超时发生之后,控制单元100相对于发送的、包含顺序号“500”的最先两个应答来执行步骤SA4的处理。即,如图3所示,两个随后段(具有顺序号“3000”的段和具有顺序号“3500”的段)被发送给接收器设备30。 A-3:第一实施例的效果 如上所述,因为在拥塞被估计为无关紧要的情况下,即在收到了包含和由于重发超时而重发的段的顺序号相同的顺序号的应答的情况下,发送随后段,因此根据第一实施例,数据发送效率提高了。进一步,因为随后段的数量被限制为预定数,因此通信网络10中的网络拥塞将不再进一步恶化。 段的重发不但可以由重发超时触发,而且可以由第一重发算法触发,在该第一重发算法中复制的ACK(应答)被发送器设备接收。因而,在根据第一重发算法重发了段之后、收到了包含和重发的段相同的顺序号的应答的情况下,可以执行根据该实施例的随后段重发。 B:第二实施例 B-1:配置 现在,将参考附图来描述本发明的第二实施例。图5所示为具有第二实施例的发送器设备的通信系统的总体配置的例子。图5所示的通信系统与图1的通信系统的不同之处在于,提供了发送器设备40来代替发送器设备20。以下的描述将集中在发送器设备40上。 发送器设备40的硬件配置和图2所示的发送器设备20的硬件配置相同,但是发送器设备40的非易失性存储器120b中存储的数据发送软件与发送器设备20中存储的数据发送软件不同。因而,发送器设备40的控制单元100拥有与提供给发送器设备20的控制单元100的功能所不同的功能。特别是,除了上述的段发送功能、计时功能、接收功能和段重发功能以外,还向发送器设备40的控制单元100提供窗口大小减小功能和控制功能。 通过窗口大小减小功能,在由于重发超时发生而通过段重发功能重发段的时候,当前的拥塞窗口大小被写入并存储在易失性存储器120a中,并且拥塞窗口大小被减小到预定值(例如,拥塞窗口大小的最小值)。 通过控制功能,在通过段重发功能重发了段之后,每当通过接收功能收到具有与重发的段相同的顺序号的应答时,就根据将保存的拥塞窗口大小作为初始值的预定算法,来递增拥塞窗口大小。这种预定算法的例子是拥塞避免(Congestion Avoidance)算法。 在第二实施例中,利用软件模块在发送器设备中实现本发明特有的功能,但是也有可能利用具有和软件模块中所提供的相同的功能的硬件模块,来配置发送器设备40。 B-2:操作 现在,将描述由第二实施例的发送器设备40执行的操作,特别是用于描述该实施例的区别特征的操作。在以下描述的示例操作中,给出了和第一实施例相同的情形,如图3所示。在该例子中,具有顺序号500、1000、1500、2000和2500的5段从发送器设备40被发送给接收器设备30,并且具有顺序号500的段丢失了,导致了重发超时。以下将参考图6来描述,在重发超时发生之后一旦收到具有和重发的段相同的顺序号的应答时,由控制单元100执行的操作。 图6所示流程图显示了,在由于重发超时发生而重发段之后收到具有和重发的段相同的顺序号的应答的情况下,由发送器设备40的控制单元100执行的操作。图6所示的流程图与图3所示的流程图的不同之处在于,步骤SA3和SA4的处理被步骤SB3至SB5所代替。以下,将重点描述步骤SB3至SB5的处理。 当在步骤SA1中判定为“是”时,即从接收器设备30收到的应答中包含了和重发的段相同的顺序号的情况下,执行步骤SB3的处理。在步骤SB3中,发送器设备40的控制单元100判定是否是在重发超时之后第一次收到应答。当在步骤SB3中判定为“是”时,控制单元100使拥塞窗口大小的值递增到易失性存储器120a中存储的保存窗口大小的二分之一(步骤SB4)。相反,当在步骤SB3中判定为“否”时,则根据拥塞避免算法来递增拥塞窗口大小(步骤SB5)。 根据该实施例,在由于重发超时而重发段之后,每当发送器设备40的控制单元100收到具有和重发的段相同的顺序号的应答时,该控制单元100就执行如图7所示的快速恢复(Fast Recovery)算法。 在该实施例中,一旦收到第一应答,就开始增大根据快速恢复算法的拥塞窗口大小,但是也有可能在收到具有和重发的段相同的顺序号的预定数量应答(例如3个应答)之后,开始增大根据快速恢复算法的拥塞窗口大小。这样,如果收到的应答数量小于3,则可以根据第一实施例中所述的操作来发送随后段,并随后根据当前的第二实施例中所述的操作来增大拥塞窗口大小。因此,通过这样组合第一实施例和第二实施例,进一步提高了数据发送效率。 在第二实施例中,从重发超时发生起,具有二分之一拥塞窗口大小的初始值的快速恢复算法就被启动。然而,初始值不限于拥塞窗口大小的二分之一,而可以是拥塞窗口大小的三分之一或四分之一,或者是可以根据自从重发超时发生时的拥塞窗口大小所获得的其它任何值。 进一步,一旦收到具有和重发的段相同的顺序号的应答,就可以执行缓慢启动算法,然后执行拥塞避免算法,而不是执行快速恢复算法。在该情况下,从拥塞窗口大小的最小值开始执行缓慢启动算法,以及因此,保存的窗口大小不需要存储在易失性存储器120a中。 B-3:第二实施例的效果 如上所述,在第二实施例中,在发送器设备在由于重发超时而重发段之后、收到包含重发的段的顺序号的应答的情况下,执行快速恢复算法。在常规通信系统中,重发超时之后的这种应答被简单地丢弃,并且拥塞窗口大小不增大。即使当拥塞窗口大小被增大,如同Ludwig中,也必须满足特殊的条件。相比较,根据第二实施例,每当收到应答时,就执行快速恢复算法,从而使拥塞窗口大小增大。因而,在避免了通信网络10中的现有拥塞状态的恶化的同时,提高了数据发送效率。 根据该实施例的快速恢复算法不仅可以由重发超时来触发,而且可以由一旦收到复制ACK就执行的第一重发算法来触发。因而,在根据第一重发算法重发段之后收到了包含和重发的段相同的顺序号应答的情况下,可以执行快速恢复算法。 C:修改 对于以上所述的本发明的优选实施例,可以想象以下的修改。 C-1:修改1 在第一实施例中,每当发送器设备在由于重发超时而重发段之后收到了包含重发的段的顺序号的应答时,就使该发送器设备一个接一个地发送随后段,直到预定数量为止,但是也有可能一次发送多个段,直到发送的随后段的数量达到预定数量为止。如果段的数量被限制为预定数量,则一次可以发送任何数量的随后段,直到属于重发的段被应答为止。 C-2:修改2 在第二实施例中,如果在根据快速重发算法重发了段之后在快速恢复算法正在被执行的期间重发超时发生了,然后收到了包含重发的段的应答,则拥塞窗口大小最初可以被增大到自从重发超时发生时的值,然后根据快速恢复算法被增大。 特别是,使发送器设备将自从重发超时发生时的拥塞窗口大小存储为保存的窗口大小。在发送器设备收到了包含属于重发的段的顺序号的应答的情况下,拥塞窗口大小被初始化为该保存的窗口大小,然后快速恢复算法第二次被执行。这样,即使在快速恢复期间发生了重发超时,快速恢复也可以继续,就好像没有发生重发超时,如图8所示。 在该修改中,拥塞窗口大小被增大到自从重发超时发生时的值,但是也有可能将拥塞窗口增大到自从重发超时发生时的值的两倍、乃至二分之一,或者是可以根据自从重发超时发生时的拥塞窗口大小、或者自从刚刚第二次快速恢复之前的拥塞窗口大小来确定的其它任何值。 C-3:修改3 在根据TCP执行的通信中,在除段丢失以外的情况下,有可能从接收器设备发送复制ACK。例如,在通信网络中,段被复制或被分片,结果具有相同顺序号的多个段到达接收器设备,导致了发送器设备收到了具有相同顺序号的多个应答。如果根据包括这种发送的应答的复制ACK,而不是根据段丢失,来在发送器设备处判定通信网络中的拥塞状态是否为无关紧要,则不能正确地查明网络拥塞状态。为了避免进行有缺陷的判定,可以促使接收器设备根据段中包含的信息(例如写入“IP Options(IP选项)”字段中的数据),来判定在通信网络中收到的段是否已经在发送期间被复制或被分片,然后在把显示判定结果的附录数据添加到应答上之后,使接收器设备发送该应答给发送器设备。在应答中包含有附录数据的情况下,使发送器设备丢弃收到的应答。这样,有可能避免由段复制或分片造成的有害影响。 C-4:修改4 在第一实施例中,在由于重发超时而重发段之后、收到了包含重发的段的顺序号的应答的情况下,随后段被发送,直到预定数量,而在第二实施例中,根据预定算法来增大拥塞窗口大小,以便实现随后段的发送。 然而,因为重发的段也可能经历段丢失,因此重发的段不一定到达接收器设备。为了应付这种情况,可以根据相对于已重发的段的重发超时来执行进一步的段重发。特别是,可以提供计时装置,在由于重发超时而重发段的时候,该计时装置开始测量时间;并且如果在由该计时装置测量的时间超过预定时限之前,没有收到包含大于重发的段的顺序号的应答,则再次重发段。这样,即使属于重发的段丢失了,段也被第二次重发。 作为选择,在由于重发超时而重发段之后并且在随后段正在被发送的期间,包含有重发的段的顺序号的复制ACK的数量超过了预定数量的情况下,可以进一步重发已重发的段。该预定数量可以是,例如根据在重发的段之后发送的随后段的数量来计算的值,这是因为收到超过预定数量的复制ACK意味着,属于重发的段还没有被接收器设备收到,而是在重发的段之后发送的随后段已经被接收器设备收到。假定从发送器设备发送的段很可能按发送的顺序到达接收器设备,则可以推断重发的段已经丢失。因而,一旦收到了超过预定数量的复制ACK,就可检测重发的段的丢失,由此使得能够重发已重发的段,而无需等待相对于已重发的段的重发超时。 也有可能利用诸如选择性应答(SACK)选项或时标选项的公知技术,来检测是否随后段已被接收器设备收到而重发的段还没有被接收器设备收到,由此重发已重发的段。在使用时标选项的情况下,一旦从发送器设备发送段,就将显示发送时间的时标写入段中,并且使接收器设备返回应答,收到的时标被复制并写入该应答中。在重发段的情况下,重发时间被存储在发送器设备中,并且在收到具有显示了比存储的重发时间更迟的时间的时标的应答的情况下,已重发的段被再次发送,由此使得在已重发的段丢失的情况下,能够有效地重发已重发的段。 在上述的SACK选项、时标选项或者用作预定数量的已发送随后段的数量当中,作为预定数量的已发送随后段的数量最优选地作为判定是否要重发已重发的段的基础。即,虽然可以通过利用三种不同选项的任何一种选项进行判定,来获得相同的效果,但是如上所述,使用随后段的数量是优选的,这是因为不需要在接收器设备中提供附加的功能。相反,使用SACK选项或者时标选项,则需要向接收器设备提供额外的功能,以使得接收器设备能够将SACK选项或时标添加到应答上。 C-5:修改5 在第一和第二实施例中,要发送给接收器设备的发送数据被分成每个部分都具有预定数据量的多个部分,以产生段,并由此发送产生的段。从发送器设备发送给接收器设备的数据单位不限于段,而可以是分组、帧或其它任何单位,只要数据块包含分割数据的一部分和用于唯一识别该分割部分的顺序号。 C-6:修改6 在以上的第一和第二实施例中,数据发送软件被预先存储在非易失性存储器120b中,用于实现根据本发明的发送器设备的功能。然而,数据发送软件可以被存储在诸如只读存储器光盘(CD-ROM)的计算机设备可读记录介质中,使得数据发送软件被安装在一般的计算机设备中。因而,现有通信系统中的发送器设备可以拥有和本发明的发送器设备相同的功能。
《用于控制数据发送的发送器设备.pdf》由会员分享,可在线阅读,更多相关《用于控制数据发送的发送器设备.pdf(27页珍藏版)》请在专利查询网上搜索。
一种用于控制数据发送的发送器设备,其把包含唯一编号的数据块发送给接收器设备,在重发已发送的段之后、收到了包含该重发的数据块的编号的应答的情况下,使该发送器设备发送要在已发送的段之后发送的随后段,直到预定数量。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1