CN1319303C - 通信设备,传输控制方法,和程序产品 - Google Patents
通信设备,传输控制方法,和程序产品 Download PDFInfo
- Publication number
- CN1319303C CN1319303C CNB2004100317855A CN200410031785A CN1319303C CN 1319303 C CN1319303 C CN 1319303C CN B2004100317855 A CNB2004100317855 A CN B2004100317855A CN 200410031785 A CN200410031785 A CN 200410031785A CN 1319303 C CN1319303 C CN 1319303C
- Authority
- CN
- China
- Prior art keywords
- data
- affirmation
- sequence number
- sementation
- segmentation
- 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
Links
- 230000006854 communication Effects 0.000 title claims abstract description 97
- 238000004891 communication Methods 0.000 title claims abstract description 96
- 230000005540 biological transmission Effects 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims description 13
- 230000011218 segmentation Effects 0.000 claims description 162
- 238000012546 transfer Methods 0.000 claims description 57
- 238000012790 confirmation Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 17
- 230000003111 delayed effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000005713 exacerbation Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/187—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种通信设备,包括:用于经过分组通信网发送多个数据分段的发送装置,每个数据分段包括一个序列号,数据分段是以序列号顺序发送的;用于接收指示目的地设备请求通信设备下一个发送的数据分段的确认的接收装置;用于在当原始数据分段发送之后过去了预定的时间时,通信设备没有接收到包括一个大于一个包括在重发数据分段中的序列号的确认号的确认的情况下,改变传输率并且重发这个数据分段的重发装置;用于确定下一个要发送的后续数据分段,和用于根据确认的种类以及包括在确认中的信息控制传输率的控制装置。
Description
技术领域
本发明涉及一种在通信网中控制数据重发的通信设备。
背景技术
利用TCP(传输控制协议)的通信系统以被广泛使用。在这些系统中,可以使用诸如服务器设备之类的设备将数据分割成多个数据分段,每个数据分段包括一个包含标识该分段的序列号的首部。服务器设备按照数据分段的序列号顺序将数据分段发送到客户设备。当客户设备接收到来自服务器设备的一个数据分段时,客户设备将接收到的数据分段的确认发送到服务器设备。确认包括一个指示下一个要发送的数据分段的序列号的确认号。以这种方式,在TCP下通信的服务器设备可以确认接收到发送的数据分段。
但是,在上述的通信过程中,客户设备有可能不能接收到从服务器设备发送的数据分段。也就是说,分段可能在到达客户设备的途中丢失(此后称为“数据分段丢失”)。如果发生数据分段丢失,那么客户设备将不向服务器设备发送分段接收的确认。为了避免在TCP下进行通信时过长的通信延迟,将一个预定时间值设定为从服务器设备发送数据分段到接收到对应于在发射装置发送的数据分段的确认的超时值(此后称为“重发超时”)。如果发生重发超时,那么假设发送的数据分段已经丢失,从而重新发送数据分段。
如上所述,一个数据分段的确认包括一个指示下一个要发送的数据分段的序列号的确认号。在以下的说明中,术语“重发超时”除了具有上述的意义之外,也用于指示发生重发超时时的数据分段的重发。
通过将上述接收到对应于前一个数据分段的确认之后发送后一个数据分段的方法用于TCP下的通信,可以提高通信的可靠性。但是,这种方法存在的问题是,它可能造成数据传输率降低。克服这个问题的一种解决方案是,使TCP服务器设备发送多个数据分段,而不等待确认的接收;和每次服务器设备接收到一个对应于发送的数据分段的确认时,增加连续发送的数据分段数。将这种发送数据分段的方法称为“窗口控制”,并且把连续发送的数据分段的数量称为“拥挤窗口大小”。当在窗口控制下发生重发超时时,服务器设备重发丢失的数据分段,并且将拥挤窗口大小减小到最小值。每当服务器设备接收到对应于发送的数据分段的确认时,服务器设备根据一种预定算法(例如,缓慢启动算法和拥挤避免算法)增大拥挤窗口大小。这是为了防止大量数据分段流入通信网造成的拥挤恶化。缓慢启动算法是一种指数增大拥挤窗口大小的算法,而拥挤避免算法是一种线性增大拥挤窗口大小的算法。将根据缓慢启动算法增大拥挤窗口大小的过程称为“缓慢启动过程”,并且将根据拥挤避免算法增大拥挤窗口大小的过程称为“拥挤避免过程”。在一般情况下,在拥挤窗口大小达到一个给定阈值之前,遵守TCP的通信系统执行缓慢启动过程,而在拥挤窗口大小超过给定阈值之后,执行拥挤避免过程。
移动分组通信系统是一种符合如上所述的TCP的通信系统。这种移动通信系统包括一个在移动分组通信网与客户设备之间的无线通信路径。在这种系统中,如果无线电波环境发生恶化,发送的数据分段可以在移动通信系统中保持相对较长时间的暂停。在发生重发超时之后无线电波环境恢复的情况下,客户设备接收暂停的数据分段。
在这种情况下,客户设备接收到暂停的数据分段(此后称为“原始数据分段”)和重发的数据分段。客户设备向服务器设备发送两个确认:一个对应于原始数据分段的确认,和另一个对应于重发数据分段的确认。但是,除了它们的发送时间之外,这两个确认之间没有差别。因此,当服务器设备接收到第一个确认时,服务器设备不能识别确认是对应于原始数据分段还是重发数据分段。在现有技术中,假设确认对应于重发数据分段,并且假设原始数据分段已经丢失。根据这种假设,服务器设备重发暂停数据分段之后的数据分段,而不管客户设备实际上已经接收到数据分段。
如上所述,在涉及到超时之后的重发的情况下,现有技术存在着以下问题。即,在现有技术中,由于现有技术需要一定的时间根据缓慢启动算法和拥挤避免算法中的每一个来恢复拥挤窗口大小,所以通过量降低。此外,在现有技术中,重发客户设备已经接收到的数据分段,造成网络业务量增加。
发明内容
本发明的目的是要解决上述现有技术的问题。也就是说,本发明允许能够适当地控制传输率,而不会增大信息量,不会不适当地降低传输率,和不进行不必要的数据分段重发。
本发明提供了一种通信设备,包括:发送装置,用于经过分组通信网将多个数据分段发送到目的地设备,所述多个数据分段中的每一个包括一个序列号,所述多个数据分段按照序列号顺序发送;接收装置,用于接收指示所述目的地设备下一个要接收的数据分段的确认;重发装置,用于改变传输率,和用于在发送装置发送了所述多个数据分段中的一个数据分段之后过去了预定的时间时,通信设备没有接收到包括大于包括在所述多个数据分段中所述一个数据分段中的序列号的确认号的确认的情况下,重发所述多个数据分段中的所述一个数据分段;和控制装置,用于确定下一个要发送的后续数据分段,并且用于根据确认的种类和包括在确认中的信息控制传输率,以发送后续的数据分段。
在一个优选实施例中,重发装置在重发了所述多个数据分段中的所述一个数据分段之后,当接收装置在接收到预定数量的全都包括相同的确认号的确认时,重发装置再次重发多个数据分段中的所述一个数据分段;和在接收装置接收到一个包括紧接着包括在已经被发送的数据分段中最大序列号之后的确认号的确认的情况下,控制装置根据紧接着预定时间过去之前的时间点的传输率更新传输率。
在另一个优选实施例中,在已经重发了所述多个数据分段中的所述一个数据分段之后,当接收装置接收到预定数量的全都包括相同确认号的选择的确认时,重发装置再次重发所述多个数据分段中的所述一个数据分段,选择的确认进一步包括用于识别接收的数据分段的选择确认信息,所述多个数据分段中的所述一个数据分段是由选择的确认信息识别的;和在接收装置接收到一个包括紧接着包括在已经发送的数据分段中的最大序列号之后的确认号的确认的情况下,控制装置根据紧接着预定时间过去之前的时间点的传输率更新传输率。
在又一个优选实施例中,在接收装置接收到包括一个等于一个序列号的确认号的确认的情况下,控制装置根据紧接着预定时间过去之前的时间点的传输率更新传输率,所述序列号是一个大于包括在重发装置重发的所述多个数据分段中所述一个数据分段中的序列号的预定号码。
在再一个优选实施例中,在接收装置接收到包括一个大于一个序列号的确认号的确认的情况下,重发装置再次重发所述多个数据分段中的所述一个数据分段,所述序列号是一个大于包括在重发装置重发的所述多个数据分段中的所述一个数据分段中的序列号的预定号码;和在接收装置接收到包括一个紧接在一个包括在已经发送的数据分段中的最大序列号之后的确认号的确认的情况下,控制装置将传输率更新到小于紧接着预定时间过去之前的时间点的传输率。
在再一个优选实施例中,在接收装置接收到包括一个等于一个序列号的确认号的确认的情况下,控制装置将传输率更新到小于紧接着预定时间过去之前的时间点的传输率,所述序列号是一个大于包括在重发装置重发的所述多个数据分段中的所述一个数据分段中的序列号的预定号码。
本发明还提供了一种传输控制方法,包括步骤:经过分组通信网向目的地设备发送多个数据分段,所述多个数据分段中的每一个数据分段包括一个序列号,所述多个数据分段被按序列号顺序发送;接收指示所述目的地设备下一个要接收的数据分段的确认;当在发送步骤中发送了所述多个数据分段中的一个数据分段之后过去了预定时间时,通信设备没有接收到包括一个大于一个包括在所述多个数据分段中的所述一个数据分段中的序列号的确认号的确认的情况下,改变传输率,并且重发多个数据分段中的这个数据分段;确定下一个要发送的后续数据分段;和根据确认的种类和包括在确认中的信息来控制传输率,以发送后续数据分段。
本发明也提供了一种使计算机执行该传输控制方法的程序产品。
附图说明
以下根据附图详细说明本发明的优选实施例,其中:
图1是表示根据本发明第一实施例的通信系统1的配置的方框图;
图2示出了通过基于TCP的分组通信系统通信的数据分段的数据结构;
图3是表示这六个参数的相互关系的示意图;
图4是表示根据第一实施例的服务器设备10的配置的方框图;
图5是表示根据第一实施例的服务器设备10和客户设备50之间的分组通信的操作的顺序图;
图6是表示根据第一实施例的服务器设备10中的分组通信的操作的流程图;
图7是说明拥挤窗口的示意图;
图8是表示根据本发明第二实施例的服务器设备10和客户设备50之间的分组通信的操作的顺序图;
图9是表示根据第二实施例的服务器设备10中的分组通信的操作的流程图;
图10是表示根据本发明第三实施例的服务器设备10和客户设备50之间的分组通信的操作的顺序图;
图11是表示根据第三实施例的服务器设备10中的分组通信的操作的流程图;
图12是表示根据本发明第四实施例的服务器设备10和客户设备50之间的分组通信的操作的顺序图;
图13是表示根据第四实施例的服务器设备10中的分组通信的操作的流程图;
图14是表示根据第四实施例的服务器设备10和客户设备50之间的分组通信的操作的顺序图;和
图15是表示根据第四实施例的服务器设备10和客户设备50之间的分组通信的操作的顺序图。
具体实施方式
以下参考附图说明本发明的优选实施例。在所有附图中,具有相同功能的机构分别相同的参考号表示。
1.第一实施例
1-1.通信系统1的配置
图1是显示根据本发明第一实施例的通信系统1的配置的方框图。通信终端40连接到客户设备50,并且执行与客户设备50的分组通信。移动分组通信网30给移动分组通信网30服务的通信终端40提供分组通信服务。服务器设备10经过互联网20、移动分组通信网30、和通信终端40执行与客户设备50的分组通信。在本实施例中,服务器设备10根据TCP执行与客户设备50的分组通信,从而发送数据分段。
1-2.基于TCP的分组通信
在说明本实施例之前,先说明基于TCP的分组通信。图2示出了通过基于TCP的分组通信通信的数据分段的数据结构。在本说明书中,数据分段的源和目的地分别是服务器设备10和客户设备50。每个数据分段具有一个首部,首部包括指示数据分段在数据序列中的顺序的序列号。服务器设备10以序列号顺序向客户设备50发送多个数据分段。客户设备50响应接收的数据分段,发送确认。确认包括一个首部,首部包含一个指示客户设备50预期下一个接收的数据分段的序列号的确认号。
当满足以下两个条件中的每一个时,服务器设备估计发生了数据分段丢失,并且重发丢失的数据分段。第一个条件是,自从服务器设备10发送了数据分段起过去了预定的时间(此后称为“重发超时持续时间”),而没有接收到来自客户设备50的对应于发送的数据分段的确认。第二个条件是,接收到预定数量(例如,三个)的全都具有相同确认号的确认。将这些确认称为“复制确认”。根据第二个条件的数据分段的重发不依赖于重发超时。即,如果服务器设备10接收到三个复制确认,那么服务器设备10立即重发对应于相同确认号的数据分段。由于执行重发而无需等待重发超时持续时间过去,因而将根据第二条件的重发称为“快重发”。
此外,为了保证可靠性,TCP具有两种用于响应网络的通信状态以及丢失数据分段的重发控制数据传输率的控制机制。一个是“拥挤控制”,另一个是“流控制”。在一般情况下,流控制是指响应一个目的地(在本例中是客户设备50)的传输率的控制;而拥挤控制是指响应网络通信状态的传输率的控制。以下详细说明服务器设备10执行的每个控制机制。
服务器设备10存储至少六个参数,snd_max,snd_nxt,snd_una,snd_wnd,snd_cwnd,和sstresh。拥挤控制是通过发送多个根据这些参数标识的数据分段执行的。图3是显示这六个参数的相互关系的图表。snd_max给出了已经发送的数据分段中的一个包括最大序列号的数据分段的序列号(例如,图3中的序列号“3000”)。snd_nxt给出了下一个要发送或重发送的数据分段的序列号(例如,图3中的序列号“3500”)。snd_una给出了已经发送的数据分段中最近未答复的序列号(例如,图3中的序列号“2000”)。snd_cwnd给出了服务器设备10没有接收到以前发送的数据分段的确认时可能发送的数据分段数。即,snd_cwnd代表“拥挤窗口大小”,并且是一个由服务器设备10控制的值。相反,snd_wnd代表一个从客户设备50通知的通告窗口大小;并且通告窗口大小的值指示客户设备50的可用缓存器接收空间,并且用字节表示。服务器设备10根据执行的那一个窗口控制,使用通告窗口大小snd_wnd和拥挤窗口大小snd_cwnd中最小的一个作为发送窗口大小。结果,发送窗口大小决不会超过通告窗口大小,并且发送到客户设备50的数据分段数量决不会超过客户设备50的可用缓存器空间。服务器设备10通过把参数snd_wnd设置到通告窗口大小执行流控制。
服务器设备10通过把拥挤窗口大小snd_cwnd更新到适当的值来执行拥挤控制。一个数据分段用一个被称作最大分段大小(Maximum SegmentSize,此后称为“MSS”)的单位表示,其中把1 MSS的默认大小定为512字节;并且,例如,snd_cwnd具有1 MSS作为其初始值。每当接收到一个发送数据分段的确认时,服务器设备10根据一种其中指数递增发送的数据分段数量的缓慢启动算法增加snd_cwnd的值,直到该值达到一个预定的阈值sstresh(例如,65,535字节)。当snd_cwnd的值达到阈值sstresh时,服务器设备10根据拥挤避免算法增加snd_cwnd的值,直到检测到一个数据分段丢失并且没有达到客户设备50。
当服务器设备10检测到数据丢失时,服务器设备10通过更新sstresh和snd_cwnd的值,降低传输率。更具体地讲,将sstresh的值设置到检测到数据分段丢失时的sstresh值的一半。此外,使拥挤窗口大小最小,即,把snd_cwnd的值设置到1 MSS。更新后的操作,根据是通过重发超时还是通过复制确认检测到数据分段丢失而不同。
在通过重发超时检测到数据分段丢失的情况下,用snd_una的值更新snd_nxt的值,并且发送具有snd_nxt的值的序列号的数据分段。然后,每当接收到重发数据分段的确认时,服务器设备10利用上述缓慢启动算法增加拥挤窗口大小。
在通过复制确认检测到数据分段丢失的情况下,服务器设备10根据上述快重发来重发丢失的数据分段。
此外,在服务器设备10遵守快恢复算法的情况下,当检测到数据分段丢失时,服务器设备10用snd_cwnd的值的一半更新snd_cwnd的值。然后,每当接收到重发数据分段的确认时,服务器设备10利用上述缓慢启动控制算法增加拥挤窗口大小snd_cwnd。服务器设备10利用拥挤窗口大小snd_cwnd发送已经发送的数据分段中的一个包括最大序列号的数据分段后面的数据分段。
1-3.服务器设备10的配置
接下来,说明服务器设备10的配置。服务器设备10的配置方式与标准计算机相同,因此,仅参考图4说明与本实施例有关的那些组件。
CPU 100执行存储在存储单元105中的程序,从而控制服务器设备10的每个组件。CPU 100包括定时器100a,定时器100a在CPU 100设置的预定时间过去时,输出一个触发信号。在本实施例中,定时器100a在重发超时持续时间过去时,输出触发信号。存储单元105包括RAM(随机存取存储器)102,ROM(只读存储器)103,和HDD(硬盘驱动器)104。ROM 103存储用于致使CPU 100控制数据分段发送的程序。CPU 100通过以下方式控制数据分段发送。
当服务器设备10接收到包括与重发超时之后重发的一个数据分段的序列号相同的确认号的确认时,CPU 100估计该确认与重发数据分段相对应。进一步估计一些数据分段已经到达客户设备50,和一些数据没有到达客户设备50。在这里,如果服务器设备10接收到复制确认,那么服务器设备10根据上述快重发来重发包括与丢失数据分段相同序列号的序列号的数据分段。当服务器设备10接收到一个指示客户设备50已经接收到所有丢失数据分段的确认时,服务器设备10从紧接着已经发送的数据分段中具有最大序列号的数据分段后面的一个数据分段开始发送数据分段。将snd_cwnd的值设置到紧接着检测到重发超时之前存储的值。因此,服务器设备10可以用紧接着检测到超时之前的时间点的传输率发送数据分段。
1-4.操作
在这一节中说明根据本实施例的通信系统1的操作。
图5是表示服务器设备10与客户设备50之间的分组通信的操作的顺序图。图6是表示根据本实施例的服务器设备10中的分组通信的操作的流程图。
在本实施例中,最初将拥挤窗口大小snd_cwnd设置到4 MSS。首先,服务器设备10向客户设备50发送分别具有序列号“500”,“1000”,“1500”,和“2000”的数据分段。以后,将这些数据分段分别称为“原始数据分段”S1-S4。
在原始数据分段S1丢失和没有到达客户设备50,并且由于通信中断而使原始数据分段S2-S4在到达客户设备50之前暂停发送的情况下,通信恢复之后客户设备50顺序地接收到原始数据分段S2-S4。因此,原始数据分段S2-S4到达客户设备50的所需时间被延迟。
当客户设备50接收到原始数据分段S2时,客户设备50向服务器设备10发送确认R2,确认R2包括指示客户设备50请求接收原始数据分段S1的确认号“500”。
在客户设备50顺序地接收到原始数据分段S3和S4之后,客户设备50向服务器10发送分别用于原始数据分段S3和S4的确认R3和R4。这些确认R3和R4也包括序列号“500”。
然后,服务器10顺序地接收这些确认R2-R4。
现在,参考图6说明服务器设备10执行的操作。
服务器设备10的CPU 100发送原始数据分段S2-S4。如图7中所示,CPU100可以控制上述参数。在这一时间点,snd_una,snd_max,snd_nxt,snd_cwnd,snd_wnd,和sstresh的值分别是“500”,“2000”,“2500”,“4MSS”,“100 MSS”和“65535字节”。
在发送数据分段之后,CPU 100等待原始数据分段S1的确认。在等待确认中,CPU 100在定时器100a设置重发超时持续时间,以致使定时器100a测量过去的时间。
然后,CPU 100确定是否接收到任何确认。当确定为“否”时,CPU 100接下来通过定时器100a确定是否发生重发超时。在后面的确定中确定为“否”的情况下,例程返回到前一个确定。在重发超时发生之前,只要没有接收到确认,CPU 100反复进行确定。
在此假设由于数据分段S1已丢失并且数据分段S2和S3的到达被延迟,在服务器设备10接收到确认R2之前,过去的时间达到重发超时持续时间。也就是说,假设CPU 10检测到重发超时(步骤C10)。在这种情况下,CPU 100估计所有原始数据分段S1-S4都已经丢失而没有到达客户设备50。结果,CPU 100重置定时器100a,并且根据上述拥挤控制算法更新sstresh和snd_cwnd的值。更具体地讲,将sstresh的值更新到“2 MSS”,这是snd_cwnd的值“4 MSS”的一半。此外,响应重发超时,将snd_cwnd的值更新到“1MSS”,这是窗口大小的最小值。CPU 100将snd_cwnd的以前的值“4 MSS”存储在RAM 102中。
CPU 100将具有序列号“500”的数据分段(图5中的重发数据分段S’1)重发到客户设备50(步骤C11)。
接下来,CPU 100确定是否接收到任何确认,并且在确定为“否”的情况下,CPU 100接着通过定时器100a确定是否发生超时。当后面的确定为“否”时,例程返回到前面的确定。此后,在超时发生之前,只要没有接收到确认,CPU 100反复进行确定。
当服务器设备10接收到确认R2时(步骤C12),CPU 100确定接收的确认R2是一个复制确认,并且确认R2对应于该重发数据分段。因此,估计并未丢失所有发送的数据分段,并且客户设备50已经接收到一些发送的数据分段。
服务器设备10接收到确认R3和R4时,CPU 100执行上述的快重发。然后,CPU 100将包括序列号“500”的数据分段(图5中的重发数据分段S”1)重发到客户设备50(步骤C13)。
以上图5中所述的操作如下。即,在服务器设备10中,由于发生重发超时,因而发送重发数据分段S’1,然后,接收确认R2至R4,并且最终根据快重发发送重发数据分段S”1。另一方面,在客户设备50中,接收重发数据分段S’1,和包括一个指示下一个接收的数据分段的确认号“2500”的确认R’1。
再次参考图6,当服务器设备100接收到确认R’1时(步骤C14),CPU 100确定客户设备50已经接收到发送的具有序列号“500”,“1000”,“1500”,和“2000”的所有数据分段。结果,CPU 100用存储在RAM 104中的、紧接着重发超时之前的时间点的snd_cwnd的值更新拥挤窗口大小snd_cwnd的值。在本实施例中,将拥挤窗口大小snd_cwnd从“1 MSS”更新到“2 MSS”,这是存储值“4 MSS”的一半。此外,将阈值sstresh的值更新到与snd_cwnd相同的值。在本实施例中,将snd_cwnd的值更新到“2 MSS”。发送的数据分段的数量是2。然后,CPU 100将包括序列号“2500”和“3000”的两个数据分段发送到客户设备50。如图5中所示,服务器设备10把原始数据分段S5和S6发送到客户设备50。
服务器10如上所述控制对客户设备50发送数据分段的传输率。
根据本实施例,由于服务器设备10仅发送客户设备50没有接收到的那些数据分段,因而减少了冗余重发量。
在现有技术中,由于在检测到重发超时之后,根据缓慢启动算法,将窗口大小减小到最小值,从而使得传输率减小到大大低于需要的传输率。相反,在根据本实施例的发明中,拥挤窗口大小snd_cwnd是根据紧接着超时之前的时间点的snd_cwnd的值更新的。因此,即使在发生重发超时之后,服务器设备10也能够在适当的传输率发送数据分段。
2.第二实施例
本实施例涉及使用SACK(选择性确认)选项的分组通信。为了避免冗余,省略了对与第一实施例中说明的相同的组件的说明。此外,相同的组件使用相同的参考号表示。
SACK信息是一种将数据分段丢失之后接收的,并且没有到达客户设备50的数据分段通知给服务器设备10的类型的信息。SACK信息包括在图2中所示的首部中的一个选项字段中。例如,SACK信息“SACK=1500_2999”指示客户设备50已经接收到包括从1500至2999的序列号的数据分段。
通常,根据本实施例的操作如下:服务器设备10在重发超时之后重发一个数据分段。当服务器设备10接收到包括与重发的数据分段的序列号相同的确认号并且也包括SACK信息的复制确认时,服务器设备10执行上述的快重发,并且重发SACK信息标识的丢失数据分段。此后,当服务器设备10接收到一个显示客户设备50已经接收到所有丢失数据分段的确认时,CPU100将拥挤窗口大小snd_cwnd的值更新到紧接着重发超时之间的时间点的snd_cwnd的值。因此,将数据分段的传输率设置到紧接着超时之前的时间点的传输率。
服务器设备10的ROM 103存储用于使服务器设备10执行这些操作的传输控制程序。
图8是表示服务器设备10与客户设备50之间的分组通信的操作的顺序图。图9是表示服务器设备10中的分组通信的操作的流程图。如上所述,相同的组件用相同的参考号表示。利用相同的参考号说明与第一实施例中相同的步骤。
在本实施例中,拥挤窗口大小最初设置到6 MSS。如图8中所示,服务器设备10将分别具有序列号“500”,“1000”,“1500”,“2000”,“2500”,和“3000”的数据分段发送到客户设备50。此后,将这些数据分段分别称为“原始数据分段”S11-S16。在这里,假设原始数据分段S11和S12已经丢失和没有到达客户设备50,并且在一些延迟之后客户设备50顺序地接收到原始数据分段S13-S16。
在这种情况下,当客户设备50接收到原始数据分段S13时,客户设备50将对应于原始数据分段S13的确认R13发送到服务器设备10。确认R13包括一个与原始数据分段S11的序列号相同的确认号“500”。确认R13也包括一个指示客户设备50已经接收到原始数据分段S13的SACK信息“SACK=1500_1999”。此后,当客户设备50接收到原始数据分段S14-S16时,客户设备50顺序地将每个分别对应于原始数据分段S14-S16的确认R14-R16发送到服务器设备10。所有这些确认R14-R16也包括与原始数据分段的序列号相同的确认号“500”。确认R14,R15和R16也分别包括SACK信息“SACK=1500_2499”,“SACK=1500_2999”,和“SACK=1500_3499”。
因此,服务器设备10顺序地接收这些确认R13-R16。
现在参考图9说明上述服务装置10执行的操作。
服务器设备10的CPU 100发送原始数据分段S11-S16。在这个时间点,也将拥挤窗口大小snd_cwnd和阈值sstresh分别设置到“6 MSS”和“65535字节”。
在本实施例中,原始数据分段S1和S2丢失并且没有到达客户设备50,而原始数据分段S14-S16已经在一些延迟之后被客户设备50接收。结果,过去的时间达到重发超时持续时间;即,CPU 100检测到重发超时(步骤C20)。在这种情况下,CPU 100重发包括序列号“500”的数据分段(重发数据分段S’11)。客户设备50接收重发的数据分段S’11,并且响应数据分段S’11将确认R13发送到服务器设备10。当服务器设备10接收到确认R13时,CPU 100估计该重发的数据分段已经被客户设备50接收。
CPU 100接收(步骤C22)每个都包括确认号“500”的复制确认(确认R13-R15)。在本实施例中,这些确认也包括SACK信息,并且CPU 100根据SACK信息确定下一个要发送的数据分段(步骤C24)。例如,当服务器设备10接收到包括SACK信息“SACK=1500_2499”,“SACK=1500_2999”,和“SACK=500_3499”的确认时,CPU 100确定下一个要发送的数据分段是包括序列号“500”和“1000”的数据分段,即,原始数据分段S11和S12。将拥挤窗口大小设置到1 MSS,然后,CPU 100根据快重发将包括序列号“500”的数据分段(图8中的重发数据分段S”11)重发到客户设备50(步骤C24)。此后,当服务器设备10接收到确认R16时,CPU重发包括序列号“1000”的数据分段(图8中的重发数据分段S’12)(步骤C24)。
当客户设备50接收到重发数据分段S”12时,所有发送的数据分段都被接收到。结果,客户设备50将一个确认(图8中的确认R’16)发送到服务器设备10。确认R’16包括对应于一个紧接着发送的数据分段后面的数据分段的确认号“3500”。由于客户设备50已经接收到所有丢失数据分段,因而确认R’16不包括SACK信息。
当服务器设备10接收到确认R’16时(步骤C25),CPU 100将拥挤窗口大小snd_cwnd的值更新到紧接着超时之前的时间点的snd_cwnd的值(步骤C26),这与第一实施例的情况相同。接着,CPU 100将snd_cwnd的值设置到snd_cwnd的值的一半,并且把sstresh的值更新到snd_cwnd的值。在本实施例中,snd_cwnd的值从“6 MSS”更新到“3 MSS”,并且sstresh的值更新到“3 MSS”。在这个时间点,拥挤窗口大小,即,要发送的数据分段数是3。接下来,CPU 100将具有序列号“3500”,“4000”,和“4500”的三个数据分段(图8中的数据分段S17-S19)发送到客户设备50。
3.第三实施例
本实施例涉及使用SACK选项的分组通信的另一个例子。
在本实施例中,服务器设备10不响应复制确认执行快重发。这与第二实施例不同。根据本实施例的一般操作如下。即,当服务器设备10在向客户设备50重发了一个包括一个序列号的数据分段之后,接收到一个包括与发送的数据分段的序列号相同的确认号并且也包括SACK信息的确认时,CPU 100估计客户设备50已经接收到重发的数据分段。也就是说,服务器设备10估计客户设备50已经接收到一些数据分段,并且一些数据分段已经丢失而没有到达客户设备50。然后,CPU 100根据包括在超时之后的重发的数据分段中的序列号和包括在接收的确认中的SACK信息,确定下一个发送的数据分段。然后,CPU 100根据紧接着超时之前的时间点的snd_cwnd的值,更新拥挤窗口大小snd_cwnd的值。因此,将数据分段的传输率设置到紧接着超时之前的传输率。
图10是示出了服务器设备10与客户设备50之间的分组通信的操作的顺序图。图11是表示在根据本实施例的服务器设备10中的分组通信的操作的流程图。
在本实施例中,最初将拥挤窗口大小设置到6 MSS。如图10中所示,服务器设备10向客户设备50发送分别具有序列号“500”,“1000”,“1500”,“2000”,“2500”和“3000”的数据分段。此后,分别将这些数据分段称为“原始数据分段”S21-S26。在此,假设原始数据分段S21和S22已经丢失而没有到达客户设备50,并且客户设备50在一些延迟之后已经按顺序接收到原始数据分段S23-S26。
在这种情况下,客户设备50向服务器设备10发送包括SACK信息的确认R23-R26,这与第二实施例的情况相同。
由于原始数据分段S23-S26到达客户设备50被延迟,因而这些确认R23-R26在一些延迟之后被服务器设备10按顺序接收。
因此,服务器设备10的CPU 100检测到对应于包括序列号“500”的数据分组的确认的重发超时(步骤C30),并且重发包括序列号“500”的数据分段(图10中的重发数据分段S’21)(步骤C31)。在检测到重发超时之后,阈值sstresh和拥挤窗口大小snd_cwnd的值分别是“3 MSS”和“1 MSS”。将紧接着超时之前的时间点的sstresh“65535字节”和snd_cwnd“6 MSS”的值存储在RAM 102中。
当CPU 100接收到包括确认号“500”的确认R23时(步骤C32),CPU 100执行以下操作。
首先,CPU 100分析包括在确认R23中的SACK信息(步骤C33)。由于在这种情况下SACK信息是“SACK=1500_1999”,所以CPU 100估计原始数据分段S23已经被客户设备50接收。此外,根据SACK信息,CPU 100估计每个都具有小于1500的序列号的原始数据分段S21和S22已经丢失和没有到达客户设备50。结果,由于已经重发了原始数据分段S21(图10中的重发数据分段S’21),CPU 100重发原始数据分段S22。也就是说,CPU 100重发了包括序列号“1000”的数据分段(图10中的重发数据分段S’22)。
当CPU 100接收到包括确认号“500”和SACK信息“SACK=1500_2499”的确认R24时,CPU 100重发紧接着前面重发的数据分段之后的一个数据分段,这与接收确认R23的情况相同。因此,只要CPU 100接收到一个确认时,CPU 10总是重发紧接着前面重发的数据分段之后的一个数据分段,直到接收到包括对应于下一个要发送的数据分段的序列号“3500”的确认。
当CPU 100接收到包括确认号“3500”的确认时(图10中的确认R’26),CPU 100将阈值sstresh和拥挤窗口大小snd_cwnd的值更新到存储在RAM102中的、在紧接着超时之前的时间点的那些值。CPU 100进一步根据存储在RAM 102中的值更新sstresh和snd_cwnd的值。例如,将snd_cwnd的值更新到“3 MSS”,这个值是存储的值“6 MSS”的一半。此外,将sstresh的值更新到与snd_cwnd值相同的值“3 MSS”。
因此,CPU 100根据紧接着重发超时之前的时间点的传输率控制分组通信的传输率。
4.第四实施例
本实施例涉及使用延迟确认算法的分组通信。
在使用延迟确认算法的分组通信中,接收到数据分段的客户设备50暂停确认的发送。在本实施例中,客户设备50发送一个对应于两个数据分段的确认,这个确认被称为“延迟确认”。即,当客户设备50顺序接收到两个数据分段时,客户设备50发送一个包括指示紧接着两个接收的数据分段中后面一个之后的一个数据分段的序列号的确认。在接收到前一个数据分段之后过去了预定时间的情况下,客户设备50向服务器设备10发送一个仅对应于一个数据分段的确认。
当服务器设备10接收到延迟确认时,CPU 100估计包括具有与该确认号相同的序列号的一个数据分段之前的两个数据分段已经被客户设备50收到。
在本实施例的以下说明中,确认号A代表包括在一个在已经重发一个数据分段之后接收的确认中的确认号;序列号B代表一个包括在一个在重发数据分段之后按顺序第二个发送的数据分段中的序列号(即,当重发了包括序列号“500”的数据分段时,B=“1500”);序列号C代表已经发送的数据分段中的最大序列号。
根据本实施例的一般操作如下。即,当服务器设备10接收到包括确认号A的确认时,CPU 100首先确定A是否大于B或等于B。如果A大于B,那么CPU 100进一步确定A是否等于C。在A等于B,即,A=B的情况下,CPU 100估计较小的拥挤造成了重发超时,并且没有数据分段丢失和没有到达客户设备50。然后,CPU 100用紧接着超时之前的时间点的snd_cwnd的存储值更新用户窗口大小snd_cwnd的值。从而,服务器设备10根据紧接着超时之前的时间点的传输率设置了分组通信的传输率。
在A大于B,即,A>B的情况下,估计发生了严重恶化,例如:(a)丢失了数据分段或确认,或(b)到达顺序颠倒。然后,CPU 100将拥挤窗口大小snd_cwnd更新到紧接着超时之前的时间点的snd_cwnd的存储值的一半。从而,服务器设备10将分组通信的传输率设置到小于紧接着超时之前的时间点的传输率。
因此,服务器设备10控制了发送数据分段的传输率。
4-1.操作的第一实例
图12是表示根据本实施例的服务器设备10与客户设备50之间的分组通信的操作的顺序图。图13是表示服务器设备10中的分组通信的操作的流程图。
在本实例中,最初把拥挤窗口大小设置到6 MSS。如图12中所示,服务器设备10向客户设备50发送分别具有序列号“500”,“1000”,“1500”,“2000”,“2500”,和“3000”的数据分段。此后,将这些数据分段分别称为“原始数据分段”S41-S46。在此,假设原始数据分段S41和S42在一些延迟之后被客户设备50接收,原始数据分段S43-S46被客户设备50正常接收。
当客户设备50接收到原始数据分段S41和S42时,客户设备50发送对应于这两个数据分段的确认R42。确认R42包括确认号“1500”,这个确认号与包括在紧接着原始数据分段S42之后的数据分段中的序列号相同。在此,进一步假设由于服务器设备10在一些延迟之后接收到确认R42,所以服务器设备10检测到重发超时。
现在参考图13说明服务器设备10执行的操作。
服务器设备10的CPU 100发送原始数据分段S41-S46。在这个时间点,拥挤窗口大小snd_cwnd和阈值sstresh的值分别是“6 MSS”和“65535字节”。
当CPU 100检测到原始数据分段S41的重发超时时,CPU 100估计原始数据分段S41已经丢失而没有到达客户设备50。然后,CPU 100重置定时器100a并且根据上述拥挤控制算法更新阈值sstresh和拥挤窗口大小snd_cwnd的值。在本实施例中,将sstresh更新到“3 MSS”,这是snd_cwnd值的一半;并且用最小值,“1 MSS”,更新snd_cwnd的值。把紧接着超时之前的时间点的sstresh的值“65535字节”和snd_cwnd值“6 MSS”存储在RAM 102中。
然后,CPU 100向客户设备50重发(步骤C42)包括序列号“500”的数据分段(重发数据分段S’41)。
当CPU 100接收到(步骤C43)确认R42时,CPU 100根据确认号A,序列号B,和序列号C进行确定。在本示例中,A,B,和C分别是1500,1500,和3500。
首先,CPU 100确定A是否等于B,或A是否大于B。在本实例中,CPU 100确定A等于B。
结果是,它估计确认R42对应于原始数据分段S41和S42。即,它估计没有数据分段丢失,并且客户设备50已经接收到原始数据分段S41和S42。因此,CPU 100确定不需要服务器设备10降低传输率。在步骤C45,CPU 100将snd_cwnd和sstresh的值更新到存储在RAM 102中的、紧接着超时之前的时间点的值。在本实施例中,将拥挤窗口大小snd_cwnd的值从“1 MSS”更新到“6 MSS”,并且也把阈值sstresh的值从3 MSS更新到65535字节。因此,更新了分组通信的传输率,以便等于紧接着超时之间的时间点的传输率。接下来,CPU 100将snd_cwnd的值从6 MSS增加到7 MSS。在这个时间点,拥挤窗口大小是7 MSS,已经发送的数据分段数是7,并且服务器设备10已经接收到对应于七个发送的数据分段中的三个数据分段的确认。下一次可以发送的数据分段数是3。这是由于服务器设备10还没有接收到对应于剩下的四个数据分段的确认。
CPU 100向客户设备50发送紧接着已经发送的数据分段S37之后的三个数据分段。在本实例中,CPU 100发送分别包括序列号3500,4000,和4500的三个数据分段(图11中的原始数据分段S47和S48)。
在现有技术中,没有将snd_cwnd和sstresh的值更新到紧接着超时之前的时间点的值。snd_cwnd和sstresh的值分别保持在1 MSS和3 MSS。尽管没有发生数据丢失,下一个要发送的数据分段数,即,窗口大小被设置到1 MSS,这是最小值。相反,由于适当地更新了snd_cwnd和sstresh的值,因而不会将窗口大小设置到不合适的狭窄。
4-2.操作的第二实例
图14是表示根据本实施例的第二示例的服务器设备10与客户设备50之间的分组通信的操作的顺序图。
在本实例中,拥挤窗口最初设置到6 MSS。如图14中所示,服务器设备10向客户设备50发送分别具有序列号“500”,“1000”,“1500”,“2000”,“2500”,和“3000”的数据分段。此后,将这些数据分段分别称为“原始数据分段”S51-S56。在此,假设原始数据分段S51和S55已经丢失并且没有到达客户设备50,并且客户设备50接收到原始数据分段S52-S54和S56。
在此,假设客户设备50首先接收原始数据分段S52,并且在客户设备50接收到下一个数据分段之前已经过去了预定时间。在这种情况下,客户设备50向服务器设备10发送仅对应于原始数据分段S52的确认R52。确认R53包括指示下一个要接收的数据分段的确认号“500”。
此后,客户设备50接收原始数据分段S53和S54,并且向服务器设备10发送包括确认号“500”的确认R54。接下来,由于原始数据分段S55已经丢失并且没有到达客户设备50,客户设备50在预定时间内仅接收到原始数据分段S56。客户设备50向服务器设备10发送包括确认号“500”的确认R56。
在本实施例的第二实例中,进一步假设由于无线通信环境恶化,确认R52,R54,和R56已经丢失并且没有到达服务器设备10。
现在参考图13说明上述服务器设备10执行的操作。
在步骤C41,服务器设备10的CPU 100检测到重发超时。CPU 100将拥挤窗口大小snd_cwnd更新到“1 MSS”,并且向客户设备50重发(步骤C42)包括序列号“500”的数据分段(重发数据分段S’51)。CPU 100将紧接着超时时间点之前的snd_cwnd和sstresh的值,分别是“6 MSS”和“65535字节”,存储在RAM 102中。
再参考图14,当客户设备50接收到重发数据分段S’51时,客户设备50发送包括一个指示下一个要接收的数据分段的确认号2500的确认R’51。
在步骤C44,CPU 100确定A是否大于B。如果A大于B,那么CPU 100在步骤C46进一步确定A是否等于C,或A是否等于B。在本实施例的这个实例中,A,B和C分别是2500,1500,和3500。因此,确定A大于B,并且A不等于C。
在这种情况下,估计在通信环境中发生了严重恶化,结果确定应当降低传输率。因此,CPU 100将拥挤窗口大小snd_cwnd的值更新(步骤C47)到小于存储在RAM 102中的、紧接着超时之前时间点的值。在这个时间点,本实例中的拥挤窗口大小是3 MSS,对应于确认的已经发送的,而没有接收到的数据分段数是2,因此服务器设备10下一次可以发送的数据分段数是1。
然后,CPU 100重发包括序列号“2500”的数据分段(图14中的重发数据分段S’55),这个序列号“2500”与包括在确认R’51中的确认号相同。
再参考图14,当客户设备50接收到重发数据分段S’55时,客户设备50发送包括指示下一个接收的数据分段的确认号3500的确认R’55。
再参考图13,当服务器设备10接收到包括确认号3500的确认R’55时,它估计客户设备50已经接收到所有发送的数据分段S51-S56,这些数据分段的最大序列号是3000。结果,CPU 10确定下一个要发送的数据分段是包括序列号3500的数据分段。为了发送后续数据分段,CPU 100将拥挤窗口大小snd_cwnd的值更新到小于存储在RAM 102中的、紧接着超时之前的时间点的值。例如,将snd_cwnd的值更新到存储值的一半。在本实例中,将snd_cwnd的值从6 MSS更新到3 MSS。此外,CPU 100将sstresh的值从65535字节更新到32767字节,这是存储值的一半。
然后,CPU 100利用窗口大小3发送数据分段,即,CPU 100发送分别包括序列号“3500”,“4000”,和“4500”的三个数据分段(图14中的原始数据分段S57,S58,和S59)。
如上所述,在通信环境严重恶化的情况下,由于将snd_cwnd和sstresh的值更新到低于在紧接着超时之前的时间点存储的值,因而将传输率控制到适当的传输率。
4-3.操作的第三示例
图15是表示根据本实施例的第三实例的服务器设备10与客户设备50之间的分组通信的操作的顺序图。
这个实例在下面的点与第二示例不同。即,当客户设备50接收到包括序列号“500”的重发数据分段S’61时,客户设备50向服务器设备10发送包括确认号“3500”的确认R’66。因此,作为在步骤C44和C46确定的结果,确定在通信环境中发生了严重恶化,与上述第二实例相同,结果确定应当降低传输率。
在本实例中,服务器设备10的CPU 100在数据分段S66之后,不重发数据分段,而是发送包括序列号“3500”的数据分段。为了发送这个数据分段,CPU 100将拥挤窗口大小snd_cwnd和阈值sstresh的值更新到低于存储在RAM 102中的、紧接着超时之前的时间点的值。例如,将值更新到存储值的一半。即,将snd_cwnd的值从“6 MSS”更新到“3 MSS”。然后,CPU100发送分别包括序列号“3500”,“4000”,和“4500”的三个数据分段(图15中的原始数据分段S67,S68,和S69)。
在根据上述实施例的发明中,不需要把诸如时间标记选项之类的信息加到数据分段或确认中。此外,不需要对服务器设备10或客户设备50进行实质性的系统改变。也可以使用现有的个人计算机或移动电话作为客户设备50。因此,本发明给用户提供了适当的通信费用。
5.改进
本发明不限于上述实施例,熟悉本领域的人员知道可以有各种不同的改进,而不脱离实施例中提出的发明的精神和范围。
在上述实施例中,尽管分组通信是参考TCP说明的,但是实施例中定义的发明并不限于在TCP下使用,并且可以将其它通信协议用于分组通信。
在上述实施例中,客户设备50经过通信终端40与服务器设备10通信。通信系统的配置并不限于上述的配置,并且客户设备50可以利用无线通信,因而可以不用通信终端40与服务器设备10通信。
根据快速恢复算法,在快速重发之后,服务器设备10可以发送在一个包括具有已经发送的数据分段中最大序列号的数据分段之后的数据分段。在这种情况下,当服务器设备10接收到一个包括紧跟随在一个包括已经发送的数据分段中最大序列号的数据分段之后的确认号的确认时,服务器设备10更新拥挤窗口大小snd_cwnd和阈值sstresh。
Claims (7)
1.一种通信设备,包括:
发送装置,用于经过分组通信网将多个数据分段发送到目的地设备,所述多个数据分段中的每一个包括一个序列号,所述多个数据分段按照序列号顺序发送;
接收装置,用于接收指示所述目的地设备下一个要接收的数据分段的确认;
重发装置,用于改变传输率,和用于在发送装置发送了所述多个数据分段中的一个数据分段之后过去了预定的时间时,通信设备没有接收到包括大于包括在所述多个数据分段中所述一个数据分段中的序列号的确认号的确认的情况下,重发所述多个数据分段中的所述一个数据分段;和
控制装置,用于确定下一个要发送的后续数据分段,并且用于根据确认的种类和包括在确认中的信息控制传输率,以发送后续的数据分段。
2.根据权利要求1所述的通信设备,其中:
重发装置在重发了所述多个数据分段中的所述一个数据分段之后,当接收装置在接收到预定数量的全都包括相同的确认号的确认时,重发装置再次重发多个数据分段中的所述一个数据分段;和
在接收装置接收到一个包括紧接着包括在已经被发送的数据分段中最大序列号之后的确认号的确认的情况下,控制装置根据紧接着预定时间过去之前的时间点的传输率更新传输率。
3.根据权利要求1所述的通信设备,其中:
在已经重发了所述多个数据分段中的所述一个数据分段之后,当接收装置接收到预定数量的全都包括相同确认号的选择的确认时,重发装置再次重发所述多个数据分段中的所述一个数据分段,选择的确认进一步包括用于识别接收的数据分段的选择确认信息,所述多个数据分段中的所述一个数据分段是由选择的确认信息识别的;和
在接收装置接收到一个包括紧接着包括在已经发送的数据分段中的最大序列号之后的确认号的确认的情况下,控制装置根据紧接着预定时间过去之前的时间点的传输率更新传输率。
4.根据权利要求1所述的通信设备,其中:
在接收装置接收到包括一个等于一个序列号的确认号的确认的情况下,控制装置根据紧接着预定时间过去之前的时间点的传输率更新传输率,所述序列号是一个大于包括在重发装置重发的所述多个数据分段中所述一个数据分段中的序列号的预定号码。
5.根据权利要求1所述的通信设备,其中:
在接收装置接收到包括一个大于一个序列号的确认号的确认的情况下,重发装置再次重发所述多个数据分段中的所述一个数据分段,所述序列号是一个大于包括在重发装置重发的所述多个数据分段中的所述一个数据分段中的序列号的预定号码;和
在接收装置接收到包括一个紧接在一个包括在已经发送的数据分段中的最大序列号之后的确认号的确认的情况下,控制装置将传输率更新到小于紧接着预定时间过去之前的时间点的传输率。
6.根据权利要求1所述的通信设备,其中:
在接收装置接收到包括一个等于一个序列号的确认号的确认的情况下,控制装置将传输率更新到小于紧接着预定时间过去之前的时间点的传输率,所述序列号是一个大于包括在重发装置重发的所述多个数据分段中的所述一个数据分段中的序列号的预定号码。
7.一种传输控制方法,包括步骤:
经过分组通信网向目的地设备发送多个数据分段,所述多个数据分段中的每一个数据分段包括一个序列号,所述多个数据分段被按序列号顺序发送;
接收指示所述目的地设备下一个要接收的数据分段的确认;
当在发送步骤中发送了所述多个数据分段中的一个数据分段之后过去了预定时间时,通信设备没有接收到包括一个大于一个包括在所述多个数据分段中的所述一个数据分段中的序列号的确认号的确认的情况下,改变传输率,并且重发多个数据分段中的这个数据分段;
确定下一个要发送的后续数据分段;和
根据确认的种类和包括在确认中的信息来控制传输率,以发送后续数据分段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003124527 | 2003-03-25 | ||
JP2003124527A JP4283589B2 (ja) | 2003-03-25 | 2003-03-25 | 通信装置、通信制御方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1533083A CN1533083A (zh) | 2004-09-29 |
CN1319303C true CN1319303C (zh) | 2007-05-30 |
Family
ID=32821665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100317855A Expired - Fee Related CN1319303C (zh) | 2003-03-25 | 2004-03-25 | 通信设备,传输控制方法,和程序产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7296206B2 (zh) |
EP (1) | EP1463228B1 (zh) |
JP (1) | JP4283589B2 (zh) |
CN (1) | CN1319303C (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1771702A (zh) * | 2003-04-10 | 2006-05-10 | 皇家飞利浦电子股份有限公司 | 多媒体消息传递方法和系统 |
JP4244159B2 (ja) * | 2003-05-16 | 2009-03-25 | 株式会社エヌ・ティ・ティ・ドコモ | 受信装置、通信システムおよびプログラム |
KR100529931B1 (ko) | 2003-12-09 | 2005-11-22 | 엘지전자 주식회사 | 무선 네트워크망을 통해 통신하는 서버 시스템 |
US20050262184A1 (en) * | 2004-05-21 | 2005-11-24 | Naveen Cherukuri | Method and apparatus for interactively training links in a lockstep fashion |
US7711878B2 (en) * | 2004-05-21 | 2010-05-04 | Intel Corporation | Method and apparatus for acknowledgement-based handshake mechanism for interactively training links |
US7623464B2 (en) * | 2004-07-09 | 2009-11-24 | Cisco Technology, Inc. | Rapid protocol failure detection |
WO2006007870A1 (en) * | 2004-07-23 | 2006-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Data unit sender control method |
US7903546B2 (en) * | 2005-01-14 | 2011-03-08 | Cisco Technology, Inc. | Detecting unavailable network connections |
JP4697525B2 (ja) | 2005-04-20 | 2011-06-08 | ソニー株式会社 | 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム |
WO2007007383A1 (ja) * | 2005-07-08 | 2007-01-18 | Fujitsu Limited | 送信装置、受信装置、情報通信方法 |
JP2007081678A (ja) * | 2005-09-13 | 2007-03-29 | Ntt Docomo Inc | データ中継装置及びデータ中継方法 |
US8036101B2 (en) * | 2006-05-08 | 2011-10-11 | Samsung Electronics Co., Ltd | Retransmission apparatus and method for high-speed data processing |
JP4832957B2 (ja) * | 2006-05-23 | 2011-12-07 | 株式会社エヌ・ティ・ティ・ドコモ | 到達確認型ブロードキャスト配信方法、及びブロードキャスト配信サーバ |
CN101502152A (zh) * | 2006-06-20 | 2009-08-05 | 株式会社Ntt都科摩 | 移动通信系统中使用的无线通信装置及方法 |
WO2007148629A1 (ja) * | 2006-06-20 | 2007-12-27 | Ntt Docomo, Inc. | 移動通信システムで使用される無線通信装置及び無線通信方法 |
CN101047484B (zh) * | 2006-06-21 | 2010-10-13 | 华为技术有限公司 | 一种传输层重传方法和系统 |
WO2008043390A1 (en) * | 2006-10-09 | 2008-04-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for use in a communications network |
US8015313B2 (en) * | 2008-03-04 | 2011-09-06 | Sony Corporation | Method and apparatus for managing transmission of TCP data segments |
FR2941830A1 (fr) * | 2009-01-30 | 2010-08-06 | Ixel | Procede pour le transfert sequentiel d'une suite de donnees entre une unite emettrice et une unite receptrice |
WO2010109748A1 (ja) * | 2009-03-25 | 2010-09-30 | 三菱電機株式会社 | 信号伝送装置 |
US8325623B1 (en) | 2010-02-16 | 2012-12-04 | Google Inc. | System and method for reducing latency during data transmissions over a network |
JP2012059136A (ja) * | 2010-09-10 | 2012-03-22 | Oki Electric Ind Co Ltd | 業務支援システム、業務支援方法及びプログラム |
CN102427452B (zh) * | 2011-12-06 | 2014-07-30 | 北京星网锐捷网络技术有限公司 | 同步报文发送方法、装置和网络设备 |
WO2013139010A1 (zh) * | 2012-03-21 | 2013-09-26 | 华为技术有限公司 | 确认包的处理方法、设备及系统 |
US9660924B2 (en) * | 2012-04-16 | 2017-05-23 | Hewlett Packard Enterprise Development Lp | Determining a maximal size of packets |
US9130843B2 (en) * | 2012-05-18 | 2015-09-08 | Alcatel Lucent | Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source |
CN102694631B (zh) * | 2012-05-23 | 2015-03-18 | 华为技术有限公司 | 一种用于控制数据传输的方法和装置 |
US9118569B2 (en) * | 2013-04-06 | 2015-08-25 | Citrix System, Inc. | Systems and methods for TCP Westwood hybrid approach |
US20140341098A1 (en) * | 2013-05-15 | 2014-11-20 | Qualcomm Incorporated | Access point response to ps-poll |
US20140355623A1 (en) * | 2013-06-03 | 2014-12-04 | Futurewei Technologies, Inc. | Transmission Control Protocol (TCP) Connection Control Parameter In-Band Signaling |
US9253681B1 (en) * | 2014-06-18 | 2016-02-02 | Sprint Spectrum L.P. | Physical resource block allocation for TTI bundling |
US10999012B2 (en) | 2014-11-07 | 2021-05-04 | Strong Force Iot Portfolio 2016, Llc | Packet coding based network communication |
US9992088B1 (en) | 2014-11-07 | 2018-06-05 | Speedy Packets, Inc. | Packet coding based network communication |
US9992126B1 (en) | 2014-11-07 | 2018-06-05 | Speedy Packets, Inc. | Packet coding based network communication |
US10320526B1 (en) | 2014-11-07 | 2019-06-11 | Strong Force Iot Portfolio 2016, Llc | Packet coding based network communication |
US9979664B2 (en) | 2015-07-07 | 2018-05-22 | Speedy Packets, Inc. | Multiple protocol network communication |
US9825733B1 (en) | 2014-11-07 | 2017-11-21 | Speedy Packets, Inc. | Packet coding based network communication |
JP6409558B2 (ja) * | 2014-12-19 | 2018-10-24 | 富士通株式会社 | 通信装置、中継装置、および、通信制御方法 |
CN106230561A (zh) * | 2016-07-22 | 2016-12-14 | 努比亚技术有限公司 | 数据收集方法、装置及系统 |
WO2018114519A1 (en) * | 2016-12-21 | 2018-06-28 | British Telecommunications Public Limited Company | Managing congestion response during content delivery |
US11190430B2 (en) | 2016-12-21 | 2021-11-30 | British Telecommunications Public Limited Company | Determining the bandwidth of a communication link |
EP3563575B1 (en) | 2016-12-29 | 2024-04-10 | British Telecommunications public limited company | Transmission parameter control for segment delivery |
EP4344156A3 (en) * | 2017-08-10 | 2024-05-22 | Samsung Electronics Co., Ltd. | Method and apparatus for data processing in wireless communication system |
CN107864135A (zh) * | 2017-11-07 | 2018-03-30 | 山东网智物联网科技有限公司 | 物联网通信方法、装置及物联网通信的实现装置 |
CN107800519B (zh) * | 2017-11-20 | 2020-12-01 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
CN110324256B (zh) * | 2019-05-13 | 2022-10-14 | 西南交通大学 | 一种流式数据传输控制方法 |
CN113162862A (zh) * | 2020-01-23 | 2021-07-23 | 华为技术有限公司 | 拥塞控制方法及装置 |
US10806206B1 (en) | 2020-02-12 | 2020-10-20 | John P. Ryan | Venting system for hats |
CN113489575A (zh) * | 2021-06-25 | 2021-10-08 | 阿波罗智联(北京)科技有限公司 | 一种数据传输方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1153583A (zh) * | 1995-05-09 | 1997-07-02 | 诺基亚电信公司 | 采用滑动窗口数据流量控制的数据传输系统 |
WO2000051296A1 (en) * | 1999-02-22 | 2000-08-31 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for improved data transfer in packet-switched communication networks |
US6151696A (en) * | 1995-01-19 | 2000-11-21 | Starburst Communications Corporation | Data transmission |
WO2001097438A2 (en) * | 2000-06-14 | 2001-12-20 | Nokia Inc. | Performance enhancement of transmission control protocol (tcp) for wireless network applications |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440545A (en) * | 1993-08-02 | 1995-08-08 | Motorola, Inc. | Packet delivery system |
JPH07253936A (ja) * | 1994-01-27 | 1995-10-03 | Toshiba Corp | タイムアウト処理回路およびそれを用いた受信装置 |
CN1122539A (zh) * | 1994-09-06 | 1996-05-15 | 摩托罗拉公司 | 重建和传送分段消息的方法 |
JPH08186571A (ja) * | 1994-12-28 | 1996-07-16 | Fujitsu Ltd | Atmセル損失検出制御方式 |
US5533021A (en) * | 1995-02-03 | 1996-07-02 | International Business Machines Corporation | Apparatus and method for segmentation and time synchronization of the transmission of multimedia data |
US5742765A (en) * | 1996-06-19 | 1998-04-21 | Pmc-Sierra, Inc. | Combination local ATM segmentation and reassembly and physical layer device |
US5956341A (en) * | 1996-12-13 | 1999-09-21 | International Business Machines Corporation | Method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment |
US6446028B1 (en) * | 1998-11-25 | 2002-09-03 | Keynote Systems, Inc. | Method and apparatus for measuring the performance of a network based application program |
US6831912B1 (en) * | 2000-03-09 | 2004-12-14 | Raytheon Company | Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links |
ATE267502T1 (de) * | 2000-07-05 | 2004-06-15 | Roke Manor Research | Verfahren zum betreiben eines puffers für das wiederzusammenstellen von paketen und netzwerk- router |
US7099273B2 (en) * | 2001-04-12 | 2006-08-29 | Bytemobile, Inc. | Data transport acceleration and management within a network communication system |
WO2003043288A1 (en) * | 2001-11-13 | 2003-05-22 | Ems Technologies, Inc. | Enhancements for tcp perfomance enhancing proxies |
US7116634B1 (en) * | 2001-12-21 | 2006-10-03 | Cisco Technology, Inc. | TCP sequence number recovery in a redundant forwarding system |
-
2003
- 2003-03-25 JP JP2003124527A patent/JP4283589B2/ja not_active Expired - Fee Related
-
2004
- 2004-03-23 US US10/807,505 patent/US7296206B2/en not_active Expired - Fee Related
- 2004-03-24 EP EP20040007062 patent/EP1463228B1/en not_active Expired - Lifetime
- 2004-03-25 CN CNB2004100317855A patent/CN1319303C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151696A (en) * | 1995-01-19 | 2000-11-21 | Starburst Communications Corporation | Data transmission |
CN1153583A (zh) * | 1995-05-09 | 1997-07-02 | 诺基亚电信公司 | 采用滑动窗口数据流量控制的数据传输系统 |
WO2000051296A1 (en) * | 1999-02-22 | 2000-08-31 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for improved data transfer in packet-switched communication networks |
WO2001097438A2 (en) * | 2000-06-14 | 2001-12-20 | Nokia Inc. | Performance enhancement of transmission control protocol (tcp) for wireless network applications |
Also Published As
Publication number | Publication date |
---|---|
EP1463228A3 (en) | 2007-01-17 |
EP1463228A2 (en) | 2004-09-29 |
US20050013246A1 (en) | 2005-01-20 |
CN1533083A (zh) | 2004-09-29 |
US7296206B2 (en) | 2007-11-13 |
EP1463228B1 (en) | 2012-12-26 |
JP2004297742A (ja) | 2004-10-21 |
JP4283589B2 (ja) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1319303C (zh) | 通信设备,传输控制方法,和程序产品 | |
EP1393489B1 (en) | Method and receiver for improved data packet transfer in a transmission protocol with repeat requests | |
CN100334825C (zh) | 通信方法 | |
US7505412B2 (en) | Transmission control method and system | |
JP4607339B2 (ja) | フレキシブル無線リンク制御プロトコル | |
US7539174B2 (en) | Mobile communication system, mobile station device, and network-side device | |
US20070064668A1 (en) | Method and apparatus for improving transmission delay of status report in a wireless communications system | |
JPWO2008044653A1 (ja) | 通信システム、通信装置、通信方法 | |
US7334175B2 (en) | Method for driving retransmission timer in mobile telecommunications system using radio link protocol | |
JP2003274445A (ja) | 無線パケット通信装置および無線パケット通信方法 | |
EP1427127A2 (en) | Communication control method, communication system and communication apparatus that can improve throughput | |
JPH0338942A (ja) | 伝送クラス自動割当方式 | |
Kulkarni | Performance analysis of HDLC protocol operating in asynchronous balanced mode |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070530 Termination date: 20150325 |
|
EXPY | Termination of patent right or utility model |