CN1638320A - 接收设备和方法、程序、与记录媒体 - Google Patents
接收设备和方法、程序、与记录媒体 Download PDFInfo
- Publication number
- CN1638320A CN1638320A CNA2005100041407A CN200510004140A CN1638320A CN 1638320 A CN1638320 A CN 1638320A CN A2005100041407 A CNA2005100041407 A CN A2005100041407A CN 200510004140 A CN200510004140 A CN 200510004140A CN 1638320 A CN1638320 A CN 1638320A
- Authority
- CN
- China
- Prior art keywords
- grouping
- send request
- nack
- packet
- show
- 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.)
- Granted
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
- H04L47/431—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR] using padding or de-padding
Abstract
公开了其中根据丢失率的变化简单的和快速地执行丢失分组的恢复的接收设备和接收方法。分组分析部分检测分组丢失,以及重发处理部分把包括用于识别发生丢失的分组的识别信息的分组信息登记到NACK表。当由分组分析部分检测到分组丢失时,NACK产生部分产生NACK分组,用来请求对于其分组信息被登记在所述重发请求表中的未到达的分组的重发。网络输入/输出部分把NACK分组发送到发送设备。本发明还可应用于例如接收流动的数据的接收设备。
Description
技术领域
本发明涉及接收设备和方法、程序、与记录媒体,更具体地,涉及其中丢失的分组可以根据丢失率的变化被简单地和快速地恢复的接收设备和方法、程序、与记录媒体。
背景技术
通过互联网执行的实时通信典型地使用UDP(用户数据报协议)。
然而,UDP是在可靠度方面不安全的协议,因为即使数据在互联网上丢失或损坏,数据也不能被恢复。例如,在互联网上有时发生发送的分组没有到达它的目的地的分组丢失。具体地,在所有的发送的分组中间,分组丢失可能平均以1%到3%的比率发生,以及最高以10%的比率发生。
因此,在互联网上使用UDP进行的实时通信需要一种用于恢复丢失的分组的机制。
然而,当关于在互联网上丢失的丢失分组发出重发请求时,没有安全性体现在,响应于重发请求重发的重发分组不失败地到达,但有可能重发分组再次丢失。
即使重发分组被丢失,但通过在保证实时特性的时间间隔内重复执行关于丢失的分组的重发,数据流质量仍旧可以增强。换句话说,为了增强数据流质量,必须检测包括重发分组的分组的丢失,以及重复地发出对于未到达的分组的重发请求。
例如,在日本专利公开号Hei 7-221789(此后称为专利文件1)、日本专利公开号Hei 9-191314(此后称为专利文件2)、或日本专利公开号2002-84338(此后称为专利文件3)中公开了考虑实时特点执行重发控制的、相关技术的系统。系统是基于这样的概念,分组丢失率可被抑制到足够低的数值,即使不考虑重发分组的丢失。这是因为即使分组丢失率是10%,如果重发请求被发出一次,则显现的丢失率降低到1%。
然而,由于实际的丢失率可被恢复的总量是变化的,为了确保显现的丢失率降低到固定的范围内,作为对于网络的限制,必须满足实际的丢失率必须保持在事先确定的范围内的条件。而且,在专利文件1、专利文件2、和专利文件3中公开的系统没有包括任何对抗重发分组丢失的对抗措施。
同时,日本专利公开号2001-119437(此后称为专利文件4)公开了数据传输方法,其中发送器一侧把有关执行重发的次数的信息嵌入到接着的分组,以使得接收机一侧检测重发分组的分组丢失和重复地发出重发请求。然而,按照专利文件4的方法,发送器一侧必须保持有关重发次数的信息,以及这使得分析分组格式的过程和分组大大地复杂。
而且,按照专利文件4的方法,不管丢失率,有关重发次数的信息总是加到分组。所以专利文件4的方法也有一个问题,在发送器一侧或接收机一侧处理的附加开销是高的。
日本专利公开号2003-169040(此后称为专利文件5)公开了一种系统,其中在分组丢失的时刻,发出第一重发请求,以及在周期性的时间间隔后,检查未到达的分组。因此,即使在重发分组被丢失的情形下,重复地发出重发请求。专利文件5的系统在结构上比起专利文件4的方法的结构更简单。然而,在专利文件5的系统中,由于第二个和接着的重发请求在重发时间到来之前不被发出,在经常发生分组丢失的情形下,如果用于计数至重发时间的时间的定时器数值没有被设置为适当的数值,则对于丢失分组的重发请求被不适当地执行。另一方面,如果定时器数值过低,则重发请求被经常发出,虽然丢失率是低的。
专利文件5公开了对于当定时器数值过低时的问题的解决方案。按照这个解决方案,在NACK(否定应答)分组(这是用于请求重发的重发请求分组)被发送的时间以后的来回时间(RTT)的时间间隔内同一个NACK分组不再发送。为了实施这个解决方案,必须保持关于所有的NACK分组的发送时间。而且,必须在检验未到达的分组时确定未到达的分组是否在重现时间之前及时到达以及还确定相应于未到达的分组的NACK分组是否在过去的RRT时间内被发送。这使得接收机终端处理复杂化。
用于重复执行重发请求的可能的其他方法是,估计在重发请求从接收机一侧发出后和重发分组到达接收机一侧的时间间隔,以及当检测到重发分组在估计的到达时间之前到达时,再次发出重发请求。然而,按照描述的方法,必须根据定时器执行控制,用于检测在每个估计的时间间隔重发分组是否到达。通常,在作为软件程序引入执行接收过程的设备的情形下,上述的根据定时器的这样的控制加上很高的负荷。因此,在经常发出重发请求的情形下,CPU(中央处理机)的大部分容量被使用于定时器过程,也就是关于所有的这样的重发请求的时间的过程。这使得分组接收的过程或以分组形式发送的数据的显示过程停止,导致数据的重现质量的恶化。
因此,对于包括在专利文件1到5中公开的技术的现有技术,很难根据丢失率的变化自适应地减小接收设备的负荷和增强重发性能。
发明内容
本发明的目的是提供其中丢失分组可以根据分组丢失率自适应地恢复丢失分组的接收设备和方法、程序、与记录媒体。
按照本发明的一个方面,提供了用于接收从发送设备接连地发送的分组的接收设备,包括检测部分,用于检测分组丢失;登记部分,用于把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表;重发请求分组产生部分,用于当由检测部分检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发;以及重发请求分组发送部分,用于把重发请求分组发送到发送设备。
按照本发明的另一个方面,提供了用于接收从发送设备接连地发送的分组的接收方法,包括检测分组丢失的检测步骤;把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表的登记步骤;当由检测步骤检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发的重发请求分组产生步骤;以及把重发请求分组发送到发送设备的重发请求分组发送步骤。
按照本发明的再一个方面,提供了用于允许计算机执行用于接收从发送设备接连地发送的分组的接收处理过程的程序,包括检测分组丢失的检测步骤;把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表的登记步骤;当由检测步骤检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发的重发请求分组产生步骤;以及把重发请求分组发送到发送设备的重发请求分组发送步骤。
按照本发明的又一个方面,提供了其上记录用于允许计算机执行用于接收从发送设备接连地发送的分组的接收处理过程的程序的记录媒体,程序包括检测分组丢失的检测步骤;把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表的登记步骤;当由检测步骤检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发的重发请求分组产生步骤;以及把重发请求分组发送到发送设备的重发请求分组发送步骤。
在接收设备和方法、程序、与记录载体中,检测分组的丢失,以及把把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表。然后,当检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发。
通过接收设备和方法、程序、与记录载体,可以根据丢失率自适应地执行分组丢失的恢复。
当结合附图,阅读以下的说明和所附权利要求时,就明白本发明的以上的及其他的目的、特征和优点,在附图中,相同的部件或单元用相同的标号表示。
附图说明
图1是显示本发明应用到的通信系统的结构的例子的方框图;
图2是显示图1所示的发送设备的结构的例子的方框图;
图3是显示由图2所示的分组产生部分产生的分组的格式的图;
图4是显示图1所示的接收设备的结构的例子的方框图;
图5是显示图4所示的NACK表的项目的图;
图6是显示由图4所示的NACK产生部分产生的NACK分组的格式的图;
图7是显示发送设备的分组发送过程的流程图;
图8是显示发送设备的重发分组发送过程的流程图;
图9是显示接收设备的分组接收过程的流程图;
图10是显示在图9的步骤S25的NACK处理过程的流程图;
图11是显示在图10的步骤S31的丢失分组处理过程的流程图;
图12是显示在图10的步骤S32的NACK表更新处理过程的流程图;
图13是显示在图12的步骤S52的输入过程的流程图;
图14是显示图1所示的接收设备的结构的另一个例子的方框图;
图15是显示图14所示的NACK表的项目的图;
图16是显示在图9的步骤S25,图14所示的重发处理部分的NACK处理过程的流程图;
图17是显示在图16的步骤S71的丢失分组处理过程的流程图;
图18是显示在图16的步骤S74的NACK表更新处理过程的流程图;
图19是显示在图18的步骤S92的输入过程的流程图;
图20是显示在图19的步骤S104的NACK产生确定处理过程的流程图;
图21是显示在计数值的上限值是2的情形下计数值和重发请求的变化的示意图;
图22是显示在丢失率与丢失间隔之间的关系的示意图;以及
图23是显示执行本发明应用到的程序的计算机的硬件结构的例子的方框图。
具体实施方式
在详细描述用于实现本发明的最好模式之前,先描述在所附权利要求中阐述的几个特征与下面描述的优选实施例的具体的部件之间的关系。然而,应当指出,即使在说明书中阐述的用于实现本发明的某些模式没有在下面的相应的关系的说明中被描述,这并不表示用于实现本发明的某些模式是在本发明的范围或精神以外。相反,即使用于实现本发明的模式在在下面的相应的关系的说明中被描述为是在本发明的范围或精神内,这也不表示该模式不在不同于本发明的某些其他发明的范围或精神内。
而且,以下的说明不表示在本技术说明书中公开的所有的发明。换句话说,以下的说明并不否认在技术说明书中公开的、但在本专利申请的权利要求中未阐述的本发明的存在,也就是,说明不否认在分开的专利申请中对于专利归档的本发明的存在,或由于以后的修改的结果,说明可以附加地被包括在本专利申请中。
按照本发明,提供了接收设备。接收设备(例如,图4的接收设备4)接收从发送设备接连地发送的分组,以及包括检测部分(例如,图4所示的分组分析部分22),用于检测分组丢失。接收设备还可包括登记部分(例如,图4所示的重发处理部分26),用于把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表(例如,图4所示的NACK表)。接收设备还可包括重发请求分组产生部分(例如,图4所示的NACK产生部分28),用于当由检测部分检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发。接收设备还可包括重发请求分组发送部分(例如,图4所示的网络输入/输出部分21),用于把重发请求分组发送到发送设备。
接收设备还可包括来回时间测量部分(例如,图4所示的RTT测量部分25),用于测量在重发请求分组被发送到发送设备(例如,图2所示的发送设备2)后直至相应于其重发由重发请求分组进行请求的分组的重发分组从发送设备到达接收设备为止的时间间隔的来回时间。接收设备还可包括来重现判别部分(例如,图4所示的RTT测量部分25),用于把作为在执行未到达的分组的重现之前允许的时间间隔的重现允许时间间隔与来回时间互相进行比较,以判别相应于未到达的分组的重发分组是否在重发分组的重现时间之前及时到达。接收设备还可包括删除部分(例如,图13的程序的处理步骤S62),用于把在重发分组的重现时间之前未及时到达的、未到达的分组的分组信息从重发请求表中删除。
接收设备还可包括重发分组接收部分(例如,图4所示的网络输入/输出部分21),用于接收从发送设备发送的、和相应于其重发由重发请求分组请求的分组的重发分组。接收设备还可包括删除部分(例如,图9的程序的处理步骤S23),用于把相应于由重发分组接收部分接收的重发分组的未到达分组的分组信息从重发请求表(例如,图4所示的NACK表27)中删除。
优选地,重发请求分组产生部分(例如,图4所示的NACK产生部分28)对于其分组信息被登记在重发请求表(例如,图4所示的NACK表27)中的所有的未到达分组产生重发请求分组。
接收设备还可包括丢失间隔计算部分(例如,图14所示的丢失间隔测量部分29),用于计算作为在发生分组丢失的时间之间的时间间隔的丢失间隔,以及设置部分(例如,图16的程序的处理步骤S73),用于根据计算的丢失间隔设置阈值。
接收设备还可包括来回时间测量部分(例如,图4所示的RTT测量部分25),用于测量在重发请求分组被发送到发送设备后直至相应于其重发由重发请求分组进行请求的分组的重发分组从发送设备到达接收设备为止的时间间隔的来回时间。以及设置部分(例如,图14的重发处理部分26),用于根据测量的来回时间设置阈值。
接收设备还可包括复位部分(例如,图20的程序的处理步骤S113),用于复位关于其重发由重发请求分组进行请求的未到达的分组的计数值。
按照本发明,提供了接收方法。接收方法(例如,图9的分组接收过程)是用于接收从发送设备接连地发送的分组的方法,以及包括检测分组丢失的检测步骤(例如,图9的程序的处理步骤S24)。接收方法还可包括登记步骤(例如,图11的程序的处理步骤S43),把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表。接收方法还可包括重发请求分组产生步骤(例如,例如,图13的程序的处理步骤S63),当由检测部分检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发。接收方法还可包括重发请求分组发送步骤(例如,图10的程序的处理步骤S33),把重发请求分组发送到发送设备。
按照本发明,提供了程序。程序(例如,图9的分组接收过程)是用于允许计算机执行用于接收从发送设备接连地发送的分组的接收处理过程的程序,以及包括检测分组丢失的检测步骤(例如,图9的程序的处理步骤S24)。接收方法还可包括登记步骤(例如,图11的程序的处理步骤S43),把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表。接收方法还可包括重发请求分组产生步骤(例如,例如,图13的程序的处理步骤S63),当由检测部分检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在重发请求表中的未到达的分组的重发。接收方法还可包括重发请求分组发送步骤(例如,图10的程序的处理步骤S33),把重发请求分组发送到发送设备。
程序可被记录在记录媒体上。
下面,描述本发明的实施例。
图1显示本发明被应用到的通信系统的结构的例子。
图1的通信系统包括输出设备1、发送设备2、分组交换网络3、接收设备4和显示设备5。
输出设备1典型地拾取图像,和把从拾取的图像得到的图像数据提供到发送设备2。
发送设备2把从输出设备1提供给它的图像数据存储在预定的系统的分组,以产生分组,以及把按照数据流系统的分组通过分组交换网络3发送到接收设备4。而且,发送设备2接收从接收设备4通过分组交换网络4发送给它的NACK分组以及通过分组交换网络3把其重发由NACK分组进行请求的分组作为重发分组发送到接收设备4。
分组交换网络3例如是由互联网形成的传输线。应当指出,分组交换网络3不一定必须是互联网,而可以是任何网络,只要它能发送此后描述的格式的分组。
接收设备4接收从发送设备2通过分组交换网络4发送给它的分组以及把放置在分组中的图像数据提供给显示设备5,以便在显示设备5上被显示。而且,接收设备4检测分组的丢失和用于请求通过分组交换网络3重发丢失分组到发送设备的NACK分组。
显示设备5显示从接收设备4提供给它的图像数据。
应当指出,对于输出设备1,例如视频摄像机、数码照相机、VHS(家庭视频系统)、DVD(数字通用盘)播放器、卫星调谐器或CATV(有线电视)机顶盒,它可以输出按照NTSC(国家电视标准委员会)系统的连续多媒体数据(时间上连续的数据)。
图2显示图1的发送设备的结构的例子。
参照图2,所显示的发送设备2包括输入部分11、分组产生部分12、网络输入/输出部分13、重发控制部分14、重发缓存器15和NACK分析部分16。
输入部分11获取从输出设备1提供给它的图像数据,执行预定的处理,诸如,例如对于图像数据的压缩,以及把最后得到的图像数据提供到分组产生部分12。应当指出,在输出设备1是输出DV(数字视频)摄像机等等的压缩的图像数据的类型的情形下,输入部分11执行某些不同于对于图像数据进行压缩的其他的预定的处理,以及把最后得到的图像数据提供到分组产生部分12。
分组产生部分12产生在其中放置有从输入部分11提供给它的图像数据和适合于网络传输的分组,以及把分组提供给网络输入/输出部分13和重发缓存器15。
这里,参照图3描述由分组产生部分12产生的分组的格式。
图3所示的分组格式是用于由IETF(互联网工程任务组)发布的RFC(对于注解的请求)3550(”RTP:A Transport Protocol forReal-time Applications”,July 2003)所规定的RTP(实时输送协议)分组的格式,以适合于分发实时数据。
在分组的顶部,放置由图3的”V”代表的2比特的版本信息。版本信息表示分组的版本。
由图3的”P”代表的1比特的填充物被放置在紧接着版本信息,以及后面跟随1比特的扩展信息。控制信息由图3的”X”代表。在分组中放置有扩展报头情形下,扩展信息被设置为预定值。
CSRC(贡献源)计数值被放置在分组中紧接着控制信息。CSRC计数值由图3的”CC”代表。CSRC计数值代表CSRC识别号的数目。
紧靠在CSRC计数值放置的1比特的制作器信息由资料规定。制作器信息由图3的”M”代表。
紧靠在制作器信息放置的7比特的有用负载类型是用于规定分组的格式的信息。有用负载类型由图3的”PT”代表。
顺序号(Sequence number)是紧接着有用负载类型放置的16比特的信息。顺序号是代表分组重现的次序号的号数,以及对于每次发送加增量1。顺序号被使用来检测分组丢失以及修改分组的顺序次序。
紧接着顺序号放置的32比特的时间印记是代表被放置在分组中数据流时间的第一个八位位组被采样的时间。
SSRC(同步源)识别号(Identifier)是紧接着时间印记放置的32比特的信息,它代表被放置在分组中流动的数据的源。
在分组中,流动的数据被紧接着SSRC识别号放置。在图3上,“数据”代表流动的数据。
回过来参照图2,分组从分组产生部分12被提供到网络输入/输出部分13,以及重发分组从重发控制部分14被提供到网络输入/输出部分13。网络输入/输出部分13把来自分组产生部分12的分组和来自重发控制部分14的重发分组通过分组交换网络3发送到接收部分4。而且,网络输入/输出部分13接收从接收部分4通过分组交换网络3发送给它的NACK分组或此后描述的RTT测量分组。网络输入/输出部分13把接收的NACK分组提供到NACK分析部分16。网络输入/输出部分13把接收的RTT测量分组通过分组交换网络3发送到接收部分4。
作为其重发由来自NACK分析部分16的NACK分组进行请求的分组的识别信息的顺序号被提供到重发控制部分14。重发控制部分14从重发缓存器15读出由NACK分析部分16提供给它的顺序号的分组。重发控制部分14把从重发缓存器15读出的分组提供到网络输入/输出部分13,以使得把分组作为重发分组从网络输入/输出部分13通过分组交换网络3发送到接收设备4。
重发缓存器15存储从分组产生部分12提供给它的分组,准备用于可能的以后的重发。
NACK分析部分16分析从网络输入/输出部分13提供给它的NACK分组,以识别其重发由NACK分组进行请求的分组的顺序号以及把顺序号提供给重发控制部分14。
图4显示图1所示的接收设备的结构的例子。
参照图4,接收部分包括网络输入/输出部分21、分组分析部分22、输出缓存器23、输出部分24、RTT测量部分25、重发处理部分26、NACK表27、和NACK产生部分28。
接收设备4接收从发送设备2通过分组交换网络3发送给它的、包括重发分组的分组,以及把接收的分组提供到分组分析部分22。而且,网络输入/输出部分21把从RTT测量部分25提供给它的RTT测量分组通过分组交换网络3发送到发送部分2。网络输入/输出部分21接收由发送设备2响应于RTT测量分组的发送通过分组交换网络3发送给它的RTT测量分组,以及把接收的RTT测量分组提供到RTT测量部分25。而且,网络输入/输出部分21把从NACK产生部分28提供给它的NACK分组通过分组交换网络3发送到发送部分2。
分组分析部分22把从网络输入/输出部分21提供给它的分组提供给输出缓存器23,以便把它存储在输出缓存器23。而且,分组分析部分22分析从网络输入/输出部分21提供给它的当前的分组,以判别当前的分组是否为重发分组,以及执行分组丢失检测。如果分组分析部分22判别当前的分组是重发分组,则它把重发分组的顺序号提供给重发处理部分26。
而且,如果分组分析部分22检测分组的丢失,则它计算丢失的分组的顺序号和分组的时间印记,以及把它们提供给重发处理部分26。
输出缓存器23临时存储从分组分析部分22提供给它的分组。
输出部分24从被存储在输出缓存器23的分组中提取图像数据,以及把图像数据提供给显示设备5,以便在显示设备5上被显示。如果从分组提取的图像数据是压缩形式的,则输出部分24按照相应于压缩系统的解压缩系统解压缩(译码)图像数据,以及把解压缩(译码)的图像数据提供给显示设备5,以便在显示设备5上被显示。
应当指出,图像(帧)的图像数据通常被分开地放置在多个分组。在这种情形下,输出部分24执行从输出缓存器23读出具有表示相同的时间的时间印记的分组和重新组合该一个图像的图像数据的过程。
重发分组可能到达,但迟于其中包括被放置在重发分组中的数据的、该一个图像的图像数据的重现时间。在这种情形下,该图像的图像数据受到数据丢失的影响,输出部分24也执行用于补偿丢失的掩蔽操作。
RTT测量部分25周期地或非周期地产生RTT测量分组,以及把RTT测量分组提供到网络输入/输出部分21,以便从网络输入/输出部分21发送。应当指出,发送的数据被放置在RTT测量分组中。
而且,RTT测量部分25接收已由网络输入/输出部分21接收的、和从网络输入/输出部分21被提供到RTT测量部分25的RTT测量分组。然后,RTT测量部分25从RTT测量分组的接收的时间和被放置在RTT测量分组这的发送时间计算来回时间RTT,以及把来回时间RTT提供到重发处理部分26。这里,来回时间RTT可被看作为接收设备4发送NACK分组以后直至相应于其重发由NACK分组进行请求的分组的重发分组从发送设备2被发送到接收设备4为止的时间间隔。
重发处理部分26把被登记在NACK分组表27中的、没有到达的、未到达分组的顺序号提供到NACK产生部分28,这样,NACK产生部分28产生用于对于被识别具有顺序号的分组的重发进行请求的NACK分组。
而且,重发处理部分26把从分组分析部分22提供给它的、已丢失的分组的顺序号和时间印记作为关于分组的分组信息附加地登记到NACK表27的新的项目中。
而且,如果重发分组的顺序号被从分组分析部分22接收,则重发处理部分26从NACK表27中删除其中登记包括顺序号的分组信息的项。因此,考虑还没有到达接收设备4的、未到达分组的分组信息被登记在NACK表27中。
而且,重发处理部分26计算重现允许时间间隔,该重现允许时间间隔是在其分组信息被登记在NACK表27的、未到达的分组的重现被执行之前从未示出的时钟部分获得的现在的时间。然后,重发处理部分26把重现允许时间间隔与从RTT测量部分25被提供到它的来回时间互相进行比较,以判别相应于未到达的分组的重发分组是否在重现时间之前及时到达。然而,如果相应于未到达的分组的重发分组没有在重现时间之前及时到达,则从NACK表27中删除其中登记未到达的分组的分组信息的项目。
NACK表27在重发处理部分26的控制下存储未到达的分组的分组信息。
这里,参照图5描述NACK表27的项目。
在图5中显示的NACK表27包括两个项目。对于每一个未到达的分组产生一个项目,以及在每个项目中,登记未到达的分组的顺序号和重现时间(时间印记),作为未到达的分组的分组信息。在图5中显示的NACK表27中,未到达的分组的顺序号被登记在左边,而未到达的分组的重现时间被登记在右边。在图5上,其顺序号为2和其重现时间为3003的一个未到达的分组以及其顺序号为5和其重现时间为9009的另一个未到达的分组被登记。
回过来参照图4,NACK产生部分28产生用于对于从重发处理部分26被提供到它的顺序号的分组的重发进行请求的NACK分组,以及把产生的NACK分组提供到网络输入/输出部分21,以使得NACK分组从网络输入/输出部分21通过分组交换网络3被发送到发送设备2。
现在参照图6描述由NACK产生部分28产生的NACK分组。
图6上显示的NACK分组是作为用于控制RTP的会话的协议的RTCP的RTCP(RTP控制协议)分组以及具有32比特的RTCP报头。
紧接着RTCP报头,从重发处理部分26接连地提供的顺序号被接连地描述在16个比特中。以图6的NACK分组格式描述多个顺序号。在多个顺序号以这种方式被描述在一个NACK分组的情形下,有可能减小在接收设备4的处理中的附加开销,以及允许有效地处理。应当指出,也有可能在一个NACK分组中描述一个顺序号。
图7显示图2的发送设备的分组发送过程。图7的分组发送过程在图像数据从输出设备1被提供到发送设备2时开始。
参照图7,首先在步骤S1,输入部分11获取从输出设备1提供给它的图像数据,执行预定的处理,诸如对于获取的图像数据的压缩,以及把最终得到的图像数据提供到分组产生部分12。
在步骤S2,在其中从输入部分11提供的图像数据被放置在有用负载的情形下,分组产生部分12产生图3的格式的分组(RTP分组),以及把分组提供给网络输入/输出部分13。
在步骤S3,网络输入/输出部分13把从分组产生部分12提供到它的分组通过分组交换网络3发送到接收设备4。
在步骤S4,分组产生部分12把在步骤S2产生的分组提供给重发缓存器15,以便被存储器重发缓存器15。然后,发送设备2的过程结束。
图8显示图2的发送设备的重发分组发送过程。图8的重发分组发送过程在从接收设备4通过分组交换网络3发送的NACK分组被网络输入/输出部分13接收和被提供到NACK分析部分16时开始。
参照图8,首先在步骤S11,NACK分析部分16分析来自网络输入/输出部分13的NACK分组,得到其重发被请求的分组的顺序号,以及把得到的顺序号提供到重发控制部分14。
在步骤S12,重发控制部分14从重发缓存器15读出与由NACK分析部分16提供给它的顺序号相同的顺序号的分组,以及把读出的分组提供到网络输入/输出部分13。
在步骤S13,网络输入/输出部分13把从重发控制部分14提供给它的分组作为重发分组通过分组交换网络3发送到接收设备4。然后,发送设备2的过程接收。
图9显示接收设备4的分组接收过程。图9的分组接收过程在从发送设备2通过分组交换网络3发送的分组被网络输入/输出部分21接收和被提供到分组分析部分22时开始。
参照图9,首先在步骤S21,分组分析部分22分析来自网络输入/输出部分21的当前的分组,提取分组的顺序号。
在步骤S22,分组分析部分22根据从当前的分组提取的顺序号,判别当前的分组是否为重发分组。
如果在步骤S22判别:当前的分组不是重发分组,则处理过程进到步骤S24。在步骤S24,分组分析部分22根据从当前的分组提取的顺序号,判别是否发生分组丢失。
应当指出,分组分析部分22存储作为至今接收的分组的顺序号中间的最大值的最大的顺序号数。因此,通过比较当前的分组号的顺序号与至今接收的分组中间的最大顺序号,执行在步骤S22的关于当前的分组是否为重发分组的判别和在步骤S24的关于是否发生分组丢失的的判别。具体地,在步骤S22和在步骤S24的判别按照如RFC3550附录A.1update_seq()表示的算法来执行。
更具体地,如果当前的分组的顺序号比最大顺序号大1,则分组分析部分22判别当前的分组是由于发送设备2执行的图7的分组发送过程的结果发送的分组(正常的分组)。
然而,如果当前的分组的顺序号比最大顺序号大1以上(即,大于2或更多),则分组分析部分22判别对于应答在当前的分组之前发送的分组发生分组丢失。
另一方面,如果当前的分组的顺序号小于最大顺序号,则分组分析部分22判别当前的分组是重发分组。
当在步骤S24判别出分组丢失已发生时,即,当当前的分组是正常的分组以及当前的分组的顺序号比最大顺序号大2或更多时,则分组分析部分22把作为正常的分组的当前的分组提供到输出缓存器23。分组分析部分22计算其中发生分组丢失的分组的顺序号和时间印记,以及把计算的顺序号和时间印记提供到重发处理部分26。此后,处理过程从步骤S24进到步骤S25。
在步骤S25,重发处理部分26使用从分组分析部分22接收的、其中发生分组丢失的分组的顺序号和时间印记执行此后描述的NACK过程。此后,过程进到步骤S26。
然而,如果在步骤S24判别没有发生分组丢失,也就是,如果当前的分组是其顺序号比最大顺序号大1的正常分组,则分组分析部分22把当前的分组提供到输出缓存器23。此后,处理过程进到步骤S26。
另一方面,如果在步骤S22判别当前的分组是重发分组,则分组分析部分22把重发分组的顺序号提供到重发处理部分26。而且,分组分析部分22把作为当前的分组的重发分组提供到输出缓存器23。此后,处理过程从步骤S22进到步骤S23。
在步骤S23,重发处理部分16搜索NACK表,找出其中登记具有与从分组分析部分22提供给它的重发分组的顺序号相同的顺序号的分组信息的项目,以及从NACK表27擦除该项目。然而,如果NACK表27不包括其中描述与重发分组的顺序号相同的顺序号的项目,则重发处理部分26不执行处理过程。然后,处理过程从步骤S23进到步骤S26。
在步骤S26,输出缓存器23存储从分组分析部分22提供给它的分组(正常分组或重发分组)。然后,处理过程结束。
图10显示在图9的步骤S25的NACK处理过程。
参照图10,在步骤S31,重发处理部分26执行此后对于已丢失和其顺序号和时间印记由分组分析部分22提供的分组(丢失分组)描述的丢失分组过程。
在接着的步骤S32,重发处理部分26执行此后描述的NACK表更新过程。然后,在步骤S33,网络输入/输出部分21把NACK分组以诸如此后描述的那样的方式发送到发送设备2。此后,处理过程返回到图2的分组接收过程的程序。
图11显示在图10的步骤S31的丢失分组处理过程。
参照图11,首先在步骤S41,重发处理部分26接收来自RTT测量部分25的最近的来回时间RTT。而且,在步骤S41,重发处理部分26从其顺序号和印记已从分组分析部分22接收的当前的丢失分组的重现时间(重现允许时间)减去当前的时间,以计算在当前的丢失分组的重现时间之前的重现允许时间间隔。然后,重发处理部分26在步骤S41判别当前的丢失分组的重现允许时间是否等于或大于来回时间RTT。应当指出,丢失分组的重现时间可以从来自分组分析部分22的丢失分组的时间印记被识别。
如果在步骤S41判别当前的丢失分组的重现允许时间不等于或大于来回时间RTT,则重发处理部分26返回处理过程到图10的NACK处理过程的原先的程序,而不执行任何处理。具体地,在这种情形下,即使执行NACK分组的发送作为来自接收设备4的、对于当前的丢失分组的重发的请求,判断接收设备4接收仅仅在来回时间RTT消逝后相应于丢失分组的重发分组,以及不能在重发分组的重现时间之前,及时接收发送分组。所以,重发处理部分26不执行关于丢失分组的任何过程。
另一方面,如果在步骤S41判别当前的丢失分组的重现允许时间等于或大于来回时间RTT,则重发处理部分26把从分组分析部分22提供给它的丢失分组的顺序号提供给NACK产生部分28。此后,处理过程进到步骤S42。
在步骤S42,NACK产生部分28产生其中描述从重发处理部分26提供的丢失分组的顺序号的NACK分组,以及把NACK分组提供到网络输入/输出部分21。
在步骤S43,重发处理部分26把从分组分析部分22提供给它的当前的丢失分组的顺序号和时间印记附加地登记到NACK表27的新的项中。此后,处理过程返回到图10的NACK处理过程的原先的程序。
图12显示在图10的步骤S32的NACK表更新处理过程。
参照图12,重发处理部分26在步骤S51判别对于NACK表27的所有的项是否已执行下面描述的、在步骤52的项目处理。如果在步骤S51判别还没有对于NACK表27的所有的项执行项目处理,则重发处理部分28确定到目前为止还没有成为项目处理的目标的、NACK表27的那些项目之一作为提到的项目。此后,处理过程进到步骤S52。在步骤S52,对于NACK表27的提到的项执行项目处理。此后处理过程进到步骤S51,这样重复类似的处理过程。
另一方面,如果如果在步骤S51判别已对于NACK表27的所有的项执行项目处理,则处理过程返回到图10的NACK处理过程的原先的程序。
图13显示在图12的步骤S52的输入过程。
参照图13,在步骤S61,重复处理部分26类似于图11的步骤S41接收来自RTT测量部分25的最近的来回时间RTT。而且,重发处理部分26从其顺序号和印记已从分组分析部分22从提到的项目的分组信息的时间印记识别相应于提到的项目的未到达的分组(其分组信息被登记在提到的项目中的未到达的分组)的重现时间。然后,重发处理部分26以类似于图11的步骤S41的方式计算相应于提到的项目的未到达分组的重现允许时间间隔。
而且,在步骤S61,重发处理部分26判别相应于提到的项目的未到达分组的重现允许时间间隔是否等于或大于从RTT测量部分25提供给它的来回时间RTT。如果在步骤S61判别相应于提到的项目的未到达分组的重现允许时间间隔不等于或大于来回时间RTT,也就是,即使在发出对于相应于提到的项目的未到达分组的重发的请求的情形下,重发分组没有在重现时间之前及时到达,处理过程进到步骤S62。在步骤S62,重发处理部分26从NACK表中擦除提到的项目。此后,处理过程返回到图12的NACK表更新处理过程的原先的程序。
另一方面,如果在步骤S61判别相应于提到的项目的未到达分组的重现允许时间间隔等于或大于来回时间RTT,则重发处理部分26从NACK表中读出未到达的分组的顺序号,以及把顺序号提供给NACK产生部分28。此后,处理过程进到步骤S63。
在步骤S63,NACK产生部分28产生NACK分组,其中描述从重发处理部分26提供的丢失分组的顺序号,以及把NACK分组提供到网络输入/输出部分21。此后,处理过程返回到图12的NACK表更新处理过程。
应当指出,在图11的步骤S42和图13的步骤S63,可以产生各个NACK分组,或可以产生其中放置有要被放置在各个NACK分组中的所有的顺序号的单个NACK分组。
如上所述,丢失分组的分组信息被登记在NACK表27中,以及当检测到分组丢失时,产生和发送用于对于其分组信息被登记在NACK表27中的未到达分组的重发进行请求的NACK分组。所以,NACK分组可以通过单个处理过程被发送,不需要用于每个NACK分组的定时器,以及此外,NACK分组要被发送的次数可以根据分组丢失的频率(的改变)自适应地改变,以及分组丢失可被简单地和快速地恢复。具体地,当分组丢失的频率是低时,可以抑制NACK分组的浪费的发送,以及当分组丢失的频率是高时,可以以适合于分组丢失频率的次数发送NACK分组。
图14显示图1所示的接收设备4的结构的另一个例子。
参照图14,接收设备4被显示为以上参照图4描述的接收设备4的修正方案,但与接收设备4的不同点仅仅在于,它附加地包括丢失间隔测量部分29。
然而,应当指出,当重发处理部分26接收来自分组分析部分22的丢失分组的顺序号和时间印记时,重发处理部分26把发生分组丢失的分组丢失信息提供给丢失间隔测量部分29。
丢失间隔测量部分29根据来自重发处理部分26的分组丢失信息确定在以前的分组丢失与当前的丢失的发生的时间之间的丢失间隔,以及把丢失间隔提供给重发处理部分26。
重发处理部分26从来自丢失间隔测量部分29的丢失间隔和来自RTT测量部分25的来回时间确定对于用于计数分组丢失的检测次数的计数值的上限值。而且,当丢失分组的顺序号和时间印记是从分组分析部分22提供时,重发处理部分26产生其中丢失分组的顺序号和时间印记被计数器加增量的丢失分组的分组信息,以及把产生的顺序号和时间印记附加地登记在NACK表27的新的项目中。而且,当检测到丢失分组时,重发处理部分26把被登记在NACK表27的所有的项目中的分组信息的计数值加增量1。
而且,重发处理部分26把被登记在NACK表27的项目中的未到达分组的分组信息的计数值与上限值互相进行比较。然后,重发处理部分26把相应于其计数值高于上限值的分组信息的那些未到达分组的顺序号提供给NACK产生部分28,以及把相应的计数值复位到零。
图15显示图14所示的NACK表27的项目。
如上所述,图14上显示的重发处理部分把其中计数值被加到丢失分组的顺序号和时间印记的分组信息登记到NACK表27的项目中。所以,在图15所示的NACK表27的项目中,不仅仅每个未到达分组的顺序号和重现时间被登记在类似于图5所示的NACK表27,而且计数值也被登记。
图16显示图14所示的重发处理部分26的NACK处理过程(图9的步骤S25)。
参照图16,在步骤S71,重发处理部分26执行对于其顺序号和时间印记由分组分析部分22提供的丢失分组此后描述的丢失分组处理过程。
在步骤S72,重发处理部分26更新被存储在其中构建的存储器(未示出)的丢失间隔。具体地,重发处理部分26从丢失间隔测量部分29得到最近的丢失间隔,以及根据最近的丢失间隔更新被存储在存储器中的丢失间隔。
为了重发处理部分26在步骤72更新丢失间隔,例如,其中用从丢失间隔测量部分29得到的最近的丢失间隔更新被存储在存储器中的丢失间隔的方法、其中使用指数加权移动平均(EWMA)的另一个方法、等等是可提供的。按照其中使用指数加权移动平均的方法,其中更新后的丢失间隔用Intervalnew表示,当前被存储在存储器中的丢失间隔用Intervalprev表示,以及来自丢失间隔测量部分29的最近的丢失间隔用Intervalcurrent表示,更新后的丢失间隔Intervalnew表示按照下面的表示式(1)进行计算:
Intervalnew=(1-α)×Intervalprev.+αIntervalcurrent ......(1)
其中参数α是具有被设置为大于0而小于1的数值的调节的参数(0<α<1)。当调节参数α增加时,来自丢失间隔测量部分29的最近的丢失间隔反映在更新后的丢失间隔上的比值增加。如果丢失间隔是通过使用指数加权移动平均被更新,则到现在为止的丢失间隔可被平均。
在丢失间隔被调节后,重发处理部分26将处理过程从步骤S72进到S73。
在步骤S73,重发处理部分26从在步骤S72计算的、在更新后的丢失间隔和来自从RTT测量部分25提供的来回时间RTT确定对于计数值的上限值。其中计数值的上限值用N表示,重发处理部分26在步骤S73,按照以下表示式(2)确定计数值的上限值:
其中[X]代表X的最大整数(其分数部分被截断),它不超过数值X。例如,[0.9]是0,以及[1]是1,而[1.1]是1。应当指出,由表示式(2)确定的、计数值的上限值代表在来回时间内发生的丢失分组的发生次数的平均。在重发处理部分26在步骤S73这样地确定计数值的上限值后,处理过程进到步骤S74。
在步骤S74,重发处理部分26执行此后描述的NACK表更新过程。然后,在步骤S75,网络输入/输出部分21把在步骤S71和S75以此后描述的方式产生的NACK分组发送到发送设备2。此后,处理过程返回到图9所示的NACK处理过程的程序。
图17显示在图16的步骤S71的丢失分组处理过程。应当指出,在图17的步骤S81到S83的处理过程分别类似于在图11的步骤S41到S43的处理过程。
然而,在步骤S83,作为丢失分组的分组信息,不仅仅丢失分组的顺序号和时间印记,而且还有计数值被附加地登记在NACK表27的新的项目中。此后,处理过程进到步骤S84。
在步骤S84,重发处理部分26把在步骤S83登记到NACK表27的丢失分组的分组信息中的计数值初始化为零。此后,处理过程返回到图16的NACK处理过程的程序。
图18显示在图16的步骤S74的NACK表更新处理过程。应当指出,在图18的步骤S91和S92的处理过程分别类似于在图12的步骤S51和S52的处理过程。
然而,应当指出,在步骤S92的输入过程的内容部分地不同于在图12的步骤S52的输入过程的内容。
所以,在图18的步骤S92的输入过程参照图19进行描述。应当指出,在图19的流程图上,在图19的步骤S101和S102的处理过程类似于在图13的步骤S61和S62的处理过程,所以,它们的重叠的说明在这里被省略,以避免冗余。
在步骤S103,重发处理部分26把被登记在NACK表27的提到的项目中的计数值加增量1。此后,处理过程进到步骤S104。
当检测到分组丢失时执行图19的输入处理过程,因此,被登记在NACK表27的项目中的计数值,在步骤S103,每次检测到分组丢失时被加增量1。
在步骤S104,重发处理部分26执行NACK产生确定过程,此后,处理过程返回到图18的NACK表更新过程的程序。
图20显示在图19的步骤S104的NACK产生确定处理过程。
参照图20,重发处理部分26在步骤S111判别被登记在提到的项目的分组信息中的计数值是否等于或大于在图16的步骤S73决定的计数值的上限值N。如果在步骤S111判别提到的项目的的计数值不等于或大于计数值的上限值N,则处理过程返回到图19的输入过程的程序。换句话说,如果提到的项目的的计数值不等于或大于计数值的上限值N,则不发出对于相应于提到的项目的未到达的分组的重发请求。
另一方面,如果在步骤S111判别提到的项目的的计数值等于或大于计数值的上限值N,则重发处理部分26把相应于提到的项目的未到达的分组的顺序号提供给NACK产生部分28。然后,处理过程进到步骤S112。
在步骤S112,NACK产生部分28产生其中描述从重发处理部分26提供给它的未到达分组的顺序号的NACK分组,以及把NACK分组提供到网络输入/输出部分21。
在步骤S113,重发处理部分26把提到的项目的计数值初始化(复位)为零。此后,处理过程返回到图19的输入处理过程的程序。
应当指出,在图17的步骤S82和图20的步骤S112,可以产生各个NACK分组,或可以产生其中放置有要被放置在各个NACK分组中的所有的顺序号的单个NACK分组。
现在参照图21描述当计数值的上限值被确定为2时计数值和重发请求的变化。
在图21上,在来回时间RTT内由接收设备4检测到三次分组丢失,即,分组丢失L0、L1和L2。如果现在为了简化说明起见,假设在分组丢失L0和L1之间以及在L1和L2之间的丢失间隔是互相相等的,则从以上给出的表示式(2),计数值的上限值被确定为2。
当分组丢失L0发生时,接收设备4初始化相应于分组丢失L0的未到达分组P0的计数值(在图17的步骤S84)。而且,接收设备4产生NACK分组作为对于未到达的分组P0的重发请求(在图17的步骤S82),以及把NACK分组发送到发送设备2。
然后,当分组丢失L1发生时,接收设备4初始化相应于分组丢失L1的未到达分组P1的计数值为零(在图17的步骤S84)。而且,接收设备4把被登记在NACK表27中的未到达的分组P0的计数值0加增量1,因此成为1(在图19的步骤S103)。而且,接收设备4产生NACK分组作为对于未到达的分组P1的重发请求(在图17的步骤S82),以及把NACK分组发送到发送设备2。应当指出,在刚才描述的情形下,由于未到达分组P0的计数值1<计数值的上限值,不发出关于未到达分组P0的重发请求。
此后,当分组丢失L2发生时,接收设备4初始化相应于分组丢失L2的未到达分组P2的计数值为零(在图17的步骤S84)。然后,接收设备4把未到达的分组P0的和P1的计数值各个地加增量1(在图19的步骤S103)。结果,未到达的分组P0的计数值变为等于上限值2,而未到达的分组P1的计数值变为1。因此,当分组丢失L2发生时,接收设备4产生NACK分组作为相应于未到达的分组P2的重发请求(在图17的步骤S82),以及产生NACK分组作为相应于未到达的分组P2的重发请求(在图20的步骤S112)。然后接收设备4把这样产生的NACK分组发送到发送设备2。应当指出,在现在的情形下,由于未到达分组P1的计数值1<计数值的上限值,不发出相应于未到达分组P1的重发请求。
而且,响应于关于未到达分组P0的重发请求的发出,接收设备4初始化关于未到达分组P0的计数值为零(在图20的步骤S113)。
现在,参照图22描述图14所示的丢失间隔测量部分29的另一个丢失间隔测量方法。
图14的丢失间隔测量部分29通过实际的测量确定丢失间隔时间。丢失间隔测量部分29也可以从代表由发送设备2发送的分组在分组交换网络3上受到分组丢失等等与在接收设备4处成为未到达的分组的比率的丢失率(丢失概率)与数据流频带(被使用来在分组交换网络3是传输分组的传输频带)确定丢失间隔时间。
其中丢失概率用r[%]表示,丢失间隔用T[s]表示,以及每秒发送的分组数目用N[分组/s]表示,在丢失率r与丢失间隔T之间的关系由以下表示式(3)代表:
而且,其中图2的分组产生部分12产生的分组的平均尺寸用P[KB]表示,在每秒发送的分组数目N与数据流使用的带宽B[Mbps]之间的关系由以下表示式(3)代表:
通过表示式(4)的变换,得到以下的表示式(5):
从表示式(3)和表示式(5)的两个关系表示,可以得到以下的表示式(6):
通常,互联网上发送的分组的平均分组尺寸大约是1[KB]。所以,如果在丢失率r与丢失间隔T之间的关系,在分组产生部分12产生的分组的平均尺寸P是1的假设下,按照以上表示式(6)进行计算,则得到诸如图22所示的那样的曲线图。
在图22上,横轴代表丢失率(丢失概率)r以及纵轴代表丢失间隔(丢失间隔时间)T。
当数据流带宽B的大小相对于同一个丢失率r增加时,丢失间隔T减小。丢失间隔测量部分29可以确定丢失率r,然后通过使用图22的曲线,从所确定的丢失率r确定丢失间隔T。
如上所述,当分组丢失发生时,被登记在NACK表27中的未到达分组的计数值被加增量1,以及当最终得到的计数值等于或大于从丢失间隔和来回时间RTT确定的上限值N时,发出关于相应于计数值的未到达分组的重发请求。
因此,在丢失间隔足够短于来回时间RTT的情形下,可以避免这样的情形:关于同一个丢失分组的多个NACK分组被接连地发送,这样在关于某个发生大分子第一NACK丢失分组被发送后,立即发送第二个NACK分组。换句话说,在丢失间隔是短的以及从而丢失率r是高的情形下,可以避免NACK分组的无用的发送。结果,可以抑制分组交换网络3上的业务量的增加。
另一方面,在丢失间隔比起来回时间RTT是足够长的情形下,也就是,在丢失率r是低的情形下,NACK分组的发送频率变为很高。结果,可以快速地得到重发分组。
虽然上述的处理过程序列可以用硬件来执行,但它也可以用软件来执行。
在上述的处理过程序列用软件来执行的情形下,例如,发送设备2和接收设备4例如可以由诸如图23所示的那样的计算机来形成。
参照图23,中央处理机(CPU)41按照被存储在ROM(只读存储器)42中的程序或从贮存部分48被装载到RAM(随机存取存储器)43中的程序执行各种处理。
另外,大于CPU41执行处理所必须的数据被适当地存储在RAM43中。
CPU41、ROM42、和RAM43通过总线44互相连接。输入/输出接口45也被连接到总线44。
包括键盘、鼠标等等的输入部分46、包括显示单元等等的输出部分47、由硬盘等等形成的贮存部分48、通信部分49等等被连接到输入/输出接口45。
而且,作为偶尔的要求,驱动器50被连接到输入/输出接口45。磁盘51、光盘52、磁-光盘53、半导体存储器54等等被适当地装载到驱动器50,以及从装载的媒体读出的计算机程序,作为偶尔的要求,被安装在贮存部分48。
在由软件执行处理过程序列的情形下,构建软件的程序从程序贮存媒体被安装到与专用的硬件合作的计算机,或例如安装到通用的个人计算机,它可以通过安装各种程序而执行各种功能。
用于存储被安装在计算机和可被计算机执行的程序的程序贮存媒体被形成为封装媒体,诸如,如图23所示,磁盘51(包括软盘)、光盘52(包括CDROM(紧凑盘-只读存储器)和DVD(数字通用盘))、磁-光盘53(包括MD(迷你盘))(登记的注册商标)、半导体存储器54等等或ROM42或贮存部分48的部件的硬盘,其中临时或永久存储程序。程序到程序贮存媒体的贮存是通过利用有线或无线通信媒体,诸如局域网、互联网或数字卫星广播,作为偶尔要求,通过诸如路由器或调制解调器的接口被执行的。
应当指出,在本技术说明书中,描述被记录在程序贮存媒体上的程序的步骤可以但不一定必须以所描述的次序的时间序列被处理,以及包括被并行地或各个地执行的处理过程而不用按时间序列被处理。
而且,在本技术说明书中,术语“系统“被使用来代表由多个设备组成的整个设备。
应当指出,虽然在上述的实施例中,互联网被采用作为分组交换网络3,但本发明并不限于此,而是可以采用任何其他的有线或无线通信电路。
而且,输出设备1,除了上述的视频摄像机以外,还可包括话筒、具有无线电广播接收功能的无线电盒式录音机、CD(紧凑盘)播放器、MD播放器等等。而且,要从发送设备2发送到接收设备4的数据可以是音频数据。
而且,在上述的实施例中,在作为标准协议的RTP中被使用的、图4所示的RTP分组被采用作为要由分组产生部分12产生的分组,以便保证与其他设备的相互连接性。然而,要由分组产生部分12产生的分组并不限于此,而是可以使用任何其他的分组,只要它包括顺序号和时间印记(或相应于它们的信息)。
而且,虽然在上述的实施例中NACK分组的发送是由图14的接收设备4响应于丢失间隔和来回时间RTT而进行控制的,但它也可以以不同的方式被控制。例如,当分组丢失发生时,接收设备4把关于所有的未到达分组的NACK分组发送到发送设备2。发送设备2因此测量它接连地接收从接收设备4发送到NACK分组的时间间隔作为丢失间隔,因此,响应于测量的丢失间隔和来回时间RTT控制重发分组的发送。
Claims (11)
1.一种用于接收从发送设备接连地发送的分组的接收设备,包括:
检测部分,用于检测分组丢失;
登记部分,用于把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表;
重发请求分组产生部分,用于当由所述检测部分检测到分组丢失时产生重发请求分组,用来请求对于其分组信息被登记在所述重发请求表中的未到达的分组的重发;以及
重发请求分组发送部分,用于把重发请求分组发送到所述发送设备。
2.按照权利要求1的接收设备,还包括:
来回时间测量部分,用于测量作为在重发请求分组被发送到所述发送设备后直至相应于其重发由重发请求分组进行请求的分组的重发分组从所述发送设备到达所述接收设备为止的时间间隔的来回时间;
重现判别部分,用于把作为在执行未到达的分组的重现之前允许的时间间隔的重现允许时间间隔与来回时间互相进行比较,以判别相应于未到达的分组的重发分组是否在重发分组的重现时间之前及时到达;以及
删除部分,用于把在重现时间之前未及时到达的未到达的分组的分组信息从所述重发请求表中删除。
3.按照权利要求1的接收设备,还包括:
重发分组接收部分,用于接收从所述发送设备发送的、并相应于其重发由重发请求分组请求的分组的重发分组;以及
删除部分,用于把相应于由所述重发分组接收部分接收的重发分组的未到达分组的分组信息从所述重发请求表中删除。
4.按照权利要求1的接收设备,其中所述重发请求分组产生部分对于其分组信息被登记在所述重发请求表中的所有的未到达分组产生重发请求分组。
5.按照权利要求1的接收设备,其中分组信息还包括计数值,用于计数由所述检测部分检测到丢失的次数,以及所述重发请求分组产生部分对于具有其计数值不小于阈值、且被登记在所述重发请求表中的分组信息的那些未到达分组产生重发请求分组。
6.按照权利要求5的接收设备,还包括:
丢失间隔计算部分,用于计算作为在发生分组丢失的时间之间的时间间隔的丢失间隔;以及
设置部分,用于根据计算的丢失间隔设置阈值。
7.按照权利要求5的接收设备,还包括:
来回时间测量部分,用于测量作为在重发请求分组被发送到所述发送设备后直至相应于其重发由重发请求分组进行请求的分组的重发分组从所述发送设备到达所述接收设备为止的时间间隔的来回时间;以及
设置部分,用于根据测量的来回时间设置阈值。
8.按照权利要求5的接收设备,还包括:复位部分,用于复位关于其重发由重发请求分组进行请求的未到达的分组的计数值。
9.一种用于接收从发送设备接连地发送的分组的接收方法,包括:
检测分组丢失的检测步骤;
把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表的登记步骤;
当由检测步骤检测到分组丢失时产生重发请求分组以便请求对于其分组信息被登记在重发请求表中的未到达的分组的重发的重发请求分组产生步骤;以及
把重发请求分组发送到所述发送设备的重发请求分组发送步骤。
10.一种用于允许计算机执行用于接收从发送设备接连地发送的分组的接收方法的程序,包括:
检测分组丢失的检测步骤;
把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表的登记步骤;
当由检测步骤检测到分组丢失时产生重发请求分组以便请求对于其分组信息被登记在重发请求表中的未到达的分组的重发的重发请求分组产生步骤;以及
把重发请求分组发送到所述发送设备的重发请求分组发送步骤。
11.一种其上记录用于允许计算机执行用于接收从发送设备接连地发送的分组的接收方法的计算机可读程序的记录媒体,该程序包括:
检测分组丢失的检测步骤;
把包括用于识别发生丢失的分组的识别信息的分组信息登记到重发请求表的登记步骤;
当由检测步骤检测到分组丢失时产生重发请求分组以便请求对于其分组信息被登记在重发请求表中的未到达的分组的重发的重发请求分组产生步骤;以及
把重发请求分组发送到所述发送设备的重发请求分组发送步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004002646 | 2004-01-08 | ||
JP2004002646A JP4452983B2 (ja) | 2004-01-08 | 2004-01-08 | 受信装置および方法、プログラム、並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1638320A true CN1638320A (zh) | 2005-07-13 |
CN100364258C CN100364258C (zh) | 2008-01-23 |
Family
ID=34805313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100041407A Expired - Fee Related CN100364258C (zh) | 2004-01-08 | 2005-01-07 | 接收设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8155035B2 (zh) |
JP (1) | JP4452983B2 (zh) |
KR (1) | KR101122202B1 (zh) |
CN (1) | CN100364258C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101390348B (zh) * | 2006-05-22 | 2012-01-04 | 松下电器产业株式会社 | 通信终端装置、组播通信系统、数据重发方法及重发请求方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4452983B2 (ja) * | 2004-01-08 | 2010-04-21 | ソニー株式会社 | 受信装置および方法、プログラム、並びに記録媒体 |
US20060291395A1 (en) * | 2005-06-28 | 2006-12-28 | Nokia Corporation | Packet transmission control method and apparatus |
GB2428534B (en) * | 2005-07-20 | 2010-06-02 | Agilent Technologies Inc | Measurement system and method of measuring a transit metric |
DE102005062575B4 (de) * | 2005-12-27 | 2009-02-12 | Oce Printing Systems Gmbh | Verfahren und Vorrichtung zum Übertragen von Daten über eine Datenverbindung von einem Sender zu einem Empfänger mittels Pakete |
KR100772528B1 (ko) * | 2006-09-29 | 2007-11-01 | 한국전자통신연구원 | 유/무선 네트워크에서 효율적인 패킷 재전송 방법 및 장치 |
US8223628B2 (en) * | 2007-01-10 | 2012-07-17 | Lantiq Deutschland Gmbh | Data transmission method, transmitter, receiver, transceiver and transmission system |
WO2008097148A1 (en) | 2007-02-07 | 2008-08-14 | Telefonaktiebolaget Lm Ericsson (Publ) | A method and a device for improved retransmissions |
US7693070B2 (en) * | 2007-03-15 | 2010-04-06 | International Business Machines Corporation | Congestion reducing reliable transport packet retry engine |
US9686045B2 (en) * | 2007-04-04 | 2017-06-20 | Lantiq Beteiligungs-GmbH & Co. KG | Data transmission and retransmission |
US7782851B2 (en) * | 2007-06-26 | 2010-08-24 | At&T Intellectual Property I, L.P. | System and method of detecting lost video data packets |
US8379083B1 (en) * | 2008-07-17 | 2013-02-19 | Sprint Communications Company L.P. | Simultaneous viewing and reliable recording of multimedia content over a network |
JP5207895B2 (ja) * | 2008-09-17 | 2013-06-12 | キヤノン株式会社 | 送信装置、受信装置、及び方法、プログラム |
US20100097931A1 (en) * | 2008-10-21 | 2010-04-22 | Shakeel Mustafa | Management of packet flow in a network |
EP2432161B1 (en) * | 2010-09-16 | 2015-09-16 | Deutsche Telekom AG | Method of and system for measuring quality of audio and video bit stream transmissions over a transmission chain |
US20120099717A1 (en) * | 2010-10-26 | 2012-04-26 | Geoffrey Langos | Systems and methods for integrating information from voice over internet protocol systems and social networking systems |
JP6241622B2 (ja) * | 2012-11-28 | 2017-12-06 | パナソニックIpマネジメント株式会社 | 受信端末および受信方法 |
US9197572B2 (en) * | 2013-03-15 | 2015-11-24 | The Regents Of The University Of California | Throughput enabled rate adaptation in wireless networks |
US9673937B2 (en) * | 2015-10-12 | 2017-06-06 | International Business Machines Corporation | Adaptive network communication protocols |
CN106899380B (zh) * | 2015-12-19 | 2020-03-17 | 联芯科技有限公司 | 一种volte视频电话传输方法及其系统 |
JP2018046506A (ja) * | 2016-09-16 | 2018-03-22 | ルネサスエレクトロニクス株式会社 | 通信装置及び通信方法 |
US11405148B2 (en) | 2017-02-27 | 2022-08-02 | Nec Corporation | Communication system, communication device, method, and recording medium of program |
CN110730053A (zh) * | 2019-09-09 | 2020-01-24 | 晶晨半导体(深圳)有限公司 | 一种基于ts格式和udp传输方式的网络丢包重传方法 |
CN110649994B (zh) * | 2019-09-27 | 2022-03-22 | 北京奇艺世纪科技有限公司 | 数据传输控制方法及相关设备、存储介质 |
DE102020202226A1 (de) | 2020-02-20 | 2021-08-26 | Iba Ag | Verfahren sowie Übertragungssystem zur Übermittlung von Messdaten |
CN113037440B (zh) * | 2021-05-25 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 数据重传处理方法、装置、计算机设备和存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3426144B2 (ja) * | 1998-11-16 | 2003-07-14 | シャープ株式会社 | マルチメディア通信装置 |
KR100416996B1 (ko) * | 1999-05-10 | 2004-02-05 | 삼성전자주식회사 | 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법 |
US6629285B1 (en) * | 2000-01-04 | 2003-09-30 | Nokia Corporation | Data transmission |
JP2001211145A (ja) * | 2000-01-25 | 2001-08-03 | Mitsubishi Electric Corp | 伝送システム及び伝送方法 |
JP3730480B2 (ja) * | 2000-05-23 | 2006-01-05 | 株式会社東芝 | ゲートウェイ装置 |
EP1204249A4 (en) * | 2000-06-23 | 2007-05-16 | Mitsubishi Electric Corp | PACKET RETRANSMISSION METHOD AND SYSTEM |
JP2002084338A (ja) * | 2000-07-07 | 2002-03-22 | Matsushita Electric Ind Co Ltd | データ送信装置、データ受信装置、およびデータ通信システム |
JP2002124992A (ja) * | 2000-08-10 | 2002-04-26 | Kddi Corp | マルチキャストによるデータファイル配信方法 |
JP3821636B2 (ja) * | 2000-08-21 | 2006-09-13 | 松下電器産業株式会社 | 通信端末装置、基地局装置および無線通信方法 |
JP2003060699A (ja) * | 2001-08-14 | 2003-02-28 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークにおける再送制御方法 |
CN1411198A (zh) * | 2001-09-25 | 2003-04-16 | 义隆电子股份有限公司 | 无线通信中数据丢失的检测与恢复的方法及系统 |
US7126917B2 (en) * | 2001-11-08 | 2006-10-24 | Motorola, Inc. | Method for dynamically adjusting the number of retransmissions and NAKs in a communications system implementing TCP/IP |
JP3912091B2 (ja) * | 2001-12-04 | 2007-05-09 | ソニー株式会社 | データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム |
JP3757857B2 (ja) * | 2001-12-12 | 2006-03-22 | ソニー株式会社 | データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム |
US6850769B2 (en) * | 2002-02-14 | 2005-02-01 | Qualcomm Incorporated | Method and apparatus for adaptive measurement of round-trip time in ARQ protocols and using the same for controlling flow of data in a communication system |
KR20040000336A (ko) * | 2002-06-24 | 2004-01-03 | 마츠시타 덴끼 산교 가부시키가이샤 | 패킷 전송 장치와 그 방법, 트래픽 컨디셔너, 우선 제어기구 및 패킷 셰이퍼 |
EP1383281A1 (en) * | 2002-07-19 | 2004-01-21 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Method for calculating a transmission window size |
WO2005018170A1 (en) * | 2003-08-19 | 2005-02-24 | Ntt Docomo, Inc. | Accurate control of transmission information in ad hoc networks |
JP4452983B2 (ja) * | 2004-01-08 | 2010-04-21 | ソニー株式会社 | 受信装置および方法、プログラム、並びに記録媒体 |
-
2004
- 2004-01-08 JP JP2004002646A patent/JP4452983B2/ja not_active Expired - Fee Related
- 2004-12-30 US US11/024,421 patent/US8155035B2/en not_active Expired - Fee Related
-
2005
- 2005-01-06 KR KR20050001171A patent/KR101122202B1/ko not_active IP Right Cessation
- 2005-01-07 CN CNB2005100041407A patent/CN100364258C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101390348B (zh) * | 2006-05-22 | 2012-01-04 | 松下电器产业株式会社 | 通信终端装置、组播通信系统、数据重发方法及重发请求方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20050073555A (ko) | 2005-07-14 |
KR101122202B1 (ko) | 2012-03-19 |
US8155035B2 (en) | 2012-04-10 |
CN100364258C (zh) | 2008-01-23 |
JP4452983B2 (ja) | 2010-04-21 |
JP2005198055A (ja) | 2005-07-21 |
US20050169199A1 (en) | 2005-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1638320A (zh) | 接收设备和方法、程序、与记录媒体 | |
CN1841984A (zh) | 通信处理装置、数据通信系统以及通信处理方法 | |
CN1165140C (zh) | 标题压缩分组的传输方法和设备 | |
CN100340098C (zh) | 家庭网络服务器及系统、数字广播发送方法和无线终端 | |
CN1855889A (zh) | 发射和接收系统,发射设备和方法,接收设备和方法 | |
CN1645783A (zh) | 发送/接收系统、发射机和发送方法、接收机和接收方法、记录媒体和程序 | |
CN1855935A (zh) | 信息处理装置和方法、程序、以及记录介质 | |
CN1557072A (zh) | 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统 | |
CN1929422A (zh) | 通信处理设备、通信控制方法及计算机程序 | |
CN1863168A (zh) | 发射和接收系统,发射器,发射发法,接收器,接收方法 | |
CN1754364A (zh) | 发射/接收系统、发射设备和方法及接收设备和方法 | |
CN1656750A (zh) | 协议、信息处理系统和方法、信息处理设备和方法、记录介质和程序 | |
CN1742480A (zh) | 信息处理装置、信息处理方法和计算机程序 | |
CN1934865A (zh) | 调整编码器和解码器中缓冲器的大小 | |
CN1751518A (zh) | 图像编码方法 | |
CN1574719A (zh) | 用于网络通信的知道时间的最大努力的填孔再试方法和系统 | |
CN1736107A (zh) | 视频发送系统、视频发送装置、视频接收装置和视频发送方法 | |
CN1375966A (zh) | 用实时包传输状态和传输路径阻塞状态的通信质量控制 | |
CN1757191A (zh) | 前向纠错的方法和系统 | |
CN101043296A (zh) | 请求重传数据的方法、数据重传方法和数据传输系统 | |
CN102572411A (zh) | 发送设备、发送方法和程序 | |
CN1631017A (zh) | 发送装置、接收装置和发送/接收装置 | |
CN1757214A (zh) | 发送/接收系统、发送装置和方法、接收装置和方法、记录介质和程序 | |
CN1650560A (zh) | 编码分组传送接收方法及其装置以及程序 | |
CN102572410A (zh) | 发送设备、发送方法和程序 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080123 Termination date: 20160107 |