信息处理装置和方法、程序、以及记录介质的制作方法

文档序号:7960291阅读:215来源:国知局
专利名称:信息处理装置和方法、程序、以及记录介质的制作方法
技术领域
本发明涉及一种信息处理装置和方法、程序、以及记录介质,特别是涉及能够正确计算数据通信中的发送接收终端之间的传送往返延迟的信息处理装置和方法、程序、以及记录介质。
背景技术
目前,有如下的信息处理系统利用包(packet)通信从发送终端向接收终端进行例如动态图像数据的实时流动(streaming)。另外,伴随近年来的网络频带的增大(网络的高速化),已能够进行利用UDP(User Datagram Protocol用户数据报协议)的因特网流动。UDP与TCP不同,没有速率控制的结构,因此,期待利用由RFC3448规定的TFRC(TCP Friendly Rate ControlTCP友好的速率控制)等速率控制结构而可在因特网内与TCP共存的通信方法。
在TCP中,根据预先设定的超时时间、和伴随包的发送接收所测量的发送接收终端之间的传送往返延迟(RTTRound TripTime往返延迟),进行包丢失的判断。例如,在设定的超时时间内来自接收终端的确认响应包没有到达时,判断为包被废弃,控制发送速率等来进行阻塞回避。即,当利用因特网进行动态图像数据的流动等时,期待在UDP中也为了与TCP同样地进行速率控制而计算RTT。
图1是说明现有的RTT测量方法的图。在该图中,由接收终端2接收从发送终端1经由网络3发送的数据包,与接收终端2接收的数据包对应的确认响应包从接收终端2经由网络3发送到发送终端1,并由发送终端1接收。
发送终端1,在自身安装的软件或者硬件的应用程序层中,在数据包上赋予时间戳(time stamp)后,经过作为应用程序层的下位层的传输层至数据链路层(TCP/IP、MAC(Media AccessControl介质存取控制)等)的处理发送数据包。而且,从接收终端2发送、并由发送终端1接收的确认响应包,也与发送时相反,经过作为传输层至数据链路层(TCP/IP、MAC(Media AccessControl介质存取控制)等)的处理,被应用程序层取得,来计算RTT。
在发送终端1的应用程序层中,将在数据包上赋予时间戳的时刻设为时刻Tts。将在接收终端2中接收到数据包的时刻、发送确认响应包的时刻分别设为Trr、Trx。另外,在发送终端1中,将在应用程序层取得确认响应包的时刻设定为Tc,当将各时刻表示为时间序列时如图2所示。在该图中,纵轴是时间轴,设时间在图中从上向下经过。
从而,在发送终端1中,RTT根据下式进行计算。
RTT=Tc-Tts另外,如果将从接收终端2接收数据包后到发送确认响应包为止耗费了哪种程度的时间记述到确认响应包送回,就能够如下式那样更正确地计算RTT。
RTT=(Tc-Tts)-(Trx-Trr)由此计算的RTT用于上述发送速率的控制等通信处理中的各种控制。另外,还提出了根据RTT动态地变更与ARQ(AutomaticRepeat Request自动重发请求)、FEC(Forward Error Collection前向纠错)等错误校正有关的处理的技术(例如参照专利文献1)。
专利文献1日本特开2003-179580号公报

发明内容
然而,现有的RTT计算方法在发送终端1的应用程序层中,数据包被赋予时间戳的时刻或者在应用程序层中取得确认响应包的时刻,被作为包的发送时刻或者接收时刻而计算RTT,但是正确的是,经作为应用程序层的下位层的传输层至数据链路层(TCP/IP、MAC等)的处理而将数据包送出到网络3的时刻为包的发送时刻,在发送终端1的物理层中从网络3取出确认响应包的时刻为包的接收时刻。即,现有的RTT计算方法没有考虑由发送终端1内部的处理产生的传送延迟。
与此相对,伴随近年来的宽带网络的普及,迫切需要重新研究RTT的计算方法。即,以往,因特网等例如个人利用的廉价网络的频带(传送速度)中,数十Kbps~数百Kbps是主流,与网络3的传送延迟相比,终端内的处理所需的时间小(短)到能够忽略的程度,但是,近年来,接近1Gbps的频带的利用变得足够廉价,与以往相比网络上能够利用的频带显著扩大。另一方面,发送终端1内的数据的传送速度(处理速度)与以往相比很难说显著提高。
另外,例如,当包含在发送终端1的应用程序中的图像数据的压缩编码等处理负荷高的程序正在运行时,RTT的计算处理将延迟,无法正确且适时地算出RTT。
因而,与包通过网络3所需的时间相比,不能说包经过应用程序层至数据链路层的处理向网络3发送或者从网络3接收所需的时间小(短)到能够忽略的程度,今后还需要考虑发送终端1内部的传送延迟而计算RTT。
本发明是鉴于这样的状况完成的,能够正确地计算数据通信中的发送接收终端之间的传送往返延迟。
本发明的信息处理装置,通过网络与其他信息处理装置进行通信,其特征在于,具备指示单元,指示用于得到来自前述其他信息处理装置的响应的第一包的发送;第一生成单元,生成第一时间戳,该第一时间戳包含将根据前述指示单元的指示生成的前述第一包送出到前述网络时的时刻;第二生成单元,生成第二时间戳,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出单元,根据前述生成的前述第一以及第二时间戳,算出前述信息处理装置与前述其他信息处理装置之间的传送往返延迟。
本发明的信息处理方法,是通过网络与其他信息处理装置进行通信的信息处理装置的信息处理方法,其特征在于,包含指示步骤,指示用于得到来自前述其他信息处理装置的响应的第一包的发送;第一生成步骤,生成第一时间戳,该第一时间戳包含将根据前述指示步骤的处理的指示生成的前述第一包送出到前述网络时的时刻;第二生成步骤,生成第二时间戳,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出步骤,根据前述生成的前述第一以及第二时间戳,算出前述信息处理装置与前述其他信息处理装置之间的传送往返延迟。
本发明的程序,使通过网络与其他信息处理装置进行通信的信息处理装置执行信息处理,其特征在于,使计算机执行指示控制步骤,控制用于得到来自前述其他信息处理装置的响应的第一包的发送指示;第一生成控制步骤,控制第一时间戳的生成,该第一时间戳包含将根据前述指示控制步骤的处理的指示生成的前述第一包送出到前述网络时的时刻;第二生成控制步骤,控制第二时间戳的生成,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出控制步骤,根据前述生成的前述第一以及第二时间戳,控制前述信息处理装置与前述其他信息处理装置之间的传送往返延迟的算出。
本发明的记录介质,记录有程序,该程序使通过网络与其他信息处理装置进行通信的信息处理装置执行信息处理,其特征在于,该程序使计算机执行指示控制步骤,控制用于得到来自前述其他信息处理装置的响应的第一包的发送指示;第一生成控制步骤,控制第一时间戳的生成,该第一时间戳包含将根据前述指示控制步骤的处理的指示生成的前述第一包送出到前述网络时的时刻;第二生成控制步骤,控制第二时间戳的生成,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出控制步骤,根据前述生成的前述第一以及第二时间戳,控制前述信息处理装置与前述其他信息处理装置之间的传送往返延迟的算出。
在本发明的信息处理装置和方法、程序以及记录介质中,指示作为为了得到来自其他信息处理装置的响应而发送到其他信息处理装置的包的第一包的发送,将根据指示生成的第一包送出到网络时的时刻作为第一包的发送时刻,生成包含发送时刻的第一时间戳;将从网络取得作为对第一包的响应而从其他信息处理装置发送的包的第二包时的时刻作为第二包的接收时刻,生成包含接收时刻的第二时间戳,取得第一以及第二时间戳,并根据取得的第一以及第二时间戳,算出前述信息处理装置与其他信息处理装置之间的传送往返延迟。
根据本发明能够正确地计算数据通信中的发送接收终端之间的传送往返延迟。


图1是说明现有的RTT计算方法的例子的图。
图2是将在图1的发送终端和接收终端中进行的处理时刻按时间序列表示的图。
图3是表示与应用本发明的通信系统的一个实施方式有关的结构例的图。
图4是将在图1的发送终端和接收终端中进行的处理时刻按时间序列表示的图。
图5是表示图3的发送装置的内部结构例的框图。
图6是表示由图5的CPU执行的软件的功能结构例的框图。
图7是说明RTT计算处理的流程图。
图8是说明RTT计算处理的流程图。
图9是表示由图5的CPU执行的软件的其他功能结构例的框图。
图10是说明RTT计算处理的其他例子的流程图。
图11是说明包发送处理的例子的流程图。
图12是说明包接收处理的例子的流程图。
图13是说明RTT算出处理的例子的流程图。
图14是表示预测网络阻塞来进行传送速率控制的通信系统的例子的框图。
图15是用于说明一对包方法的图。
符号说明100通信系统;101发送装置;102接收装置;103网络;151CPU;159通信部;161可移动介质;201应用程序;202设备驱动器;203MAC;221包发送部;222时间戳保持部;223包接收部;224命令控制部;225包生成部;226流信息保持部;227流确定部;228RTT测量部;242时间戳通知部;244时间戳赋予部。
具体实施例方式
下面参照

本发明的实施方式。
图3是表示与应用了本发明的通信系统的一个实施方式有关的结构例的图。
在图3中,通信系统100是如下的系统由发送装置101、接收装置102、以及因特网等网络103构成,发送装置101和接收装置102通过网络103发送接收数据。例如,发送装置101将动态图像等的数据做成包,作为数据包流动发送给接收装置102,接收装置102接收数据包来再现动态图像。另外,接收装置102将与发送装置101发送的数据包对应的确认响应包发送给发送装置101。
此外,在确认响应包中记述有接收装置102接收到数据包的时刻以及接收装置102发送确认响应包的时刻等RTT计算所需的信息,在此,将从接收装置102向发送装置101发送的包中、对于从发送装置101发送而接收到的数据包,接收装置102作为响应进行回答的包称为确认响应包。
发送装置101接收从接收装置102发送的确认响应包,计算发送装置101和接收装置102之间的传送往返延迟(RTTRound TripTime往返延迟)。而且,发送装置101根据RTT和基于RTT设定的超时时间,进行包丢失的判断,如果在设定的超时时间内从接收装置102的确认响应包没有到达,则判断为包被废弃,变更发送速率等而进行阻塞回避的处理。
在此,将从发送装置101发送的包的包大小设为s、RTT设为R、丢失率(0~1.0)设为p、超时时间设为t_RTO、确认响应包的发送比例(每几个包返回一个确认响应)设为b时,发送速率X例如能够如式(1)进行计算。
式1X=sR×2×b×p3+(t_RTO×(3×3×b×p8×p×(1+32×p2)))---(1)]]>
其中,包大小s和确认响应包的发送比例b(通常1或2)是常数,t_RTO通常是4×RTT,因此,可知由网络中的包丢失率和RTT决定发送速率。
发送装置101例如根据这样计算的发送速率X,控制自身的发送速率等来进行阻塞回避的处理。
图4是说明当计算上述RTT时在发送装置101和接收装置102之间进行的处理和时间经过的图。在该图中,纵轴是时间轴,在发送装置101和接收装置102中进行的处理与进行该处理的时刻一起被示出,设图中时间从上向下经过。
发送装置101在时刻Tts为了计算RTT而请求数据包的发送,在时刻Txx该数据包被送出到网络103。
接收装置102在时刻Trr接收经网络103发送过来的数据包,在时刻Trx将与接收到的数据包对应的确认响应包送出到网络103。
之后,发送装置101在时刻Trx从网络取出(取得)经网络103发送过来的确认响应包进行接收,在时刻Tc根据接收到的确认响应包开始RTT的计算。
当利用现有的窄频带网络时,在通信系统100中,与由网络103产生的延迟相比,发送装置101内的处理所需的时间小(短)到能够忽略的程度。
但是,伴随近年来宽带网络的普及,网络103的频带变得充分宽(被高速化),为了正确计算RTT,发送装置101内的处理所需的时间变得不能忽略。
因此,在本发明中,考虑发送装置101内的处理所需的时间而计算RTT。即,目前,没有考虑发送装置101内的处理所需的时间而在时刻Tts近似为发送了数据包、并在时刻Tc近似为接收到确认响应包而计算RTT,但是在本发明中,作为在时刻Txx发送数据包、并在时刻Txr接收到确认响应包而计算RTT。这样,能够计算考虑了发送装置101内的处理所需的时间的更正确的RTT。
图5是表示发送装置101的内部结构例的框图。在该图中,CPU(Central Processing Unit中央处理器)151,根据存储在ROM(Read Only Memory只读存储器)152中的程序、或者从存储部158加载到RAM(Random Access Memory随机存储器)153中的程序,执行各种处理。在RAM153中还适当存储CPU151执行各种处理所需的数据等。
CPU151、ROM152、以及RAM153通过总线154相互连接。在该总线154上还连接有输入输出接口155。
在输入输出接口155上连接有由键盘、鼠标等构成的输入部156、由CRT(Cathode Ray Tube阴极射线管)、LCD(LiquidCrystal display液晶显示器)等构成的显示器、以及扬声器等构成的输出部157、由硬盘等构成的存储部158、由调制解调器、LAN卡等网络接口卡等构成的通信部159。通信部159通过包含因特网的网络进行通信处理。
在输入输出接口155上还根据需要连接驱动器160,被适当安装磁盘、光盘、光磁盘、或者半导体存储器等可移动介质161,从它们读出的计算机程序根据需要被安装到存储部158。
图6是表示由图5的CPU151执行的软件的功能结构例的框图。此外,“权利要求书”中的“指示单元”例如能够由图6的应用程序201实现,“第一生成单元”例如能够由图6的时间戳赋予部244实现,“第二生成单元”例如能够由图6的时间戳赋予部244实现,算出单元例如能够由图6的应用程序201实现。
在该图中,由CPU151执行的软件由应用程序201、设备驱动器202、以及MAC(Media Access Control介质存取控制)203三个层构成。
应用程序201是表示包含控制对接收装置102进行的数据的发送接收等一系列应用程序等的层的程序组,根据需要控制RTT的计算、和RTT的计算所需处理的执行。应用程序201在OSI参照模型中与比包含网络层的网络层更上位的各层对应。
设备驱动器202是表示例如包含控制与发送装置101的通信部159对应的网络接口卡等通信设备的程序的层的程序组,根据来自应用程序201的指示,执行包的发送或接收、或者后述的时间戳的提供等处理。此外,设备驱动器202在OSI参照模型中与数据链路层对应。
MAC203表示包含由设备驱动器202控制的通信设备的功能模块的层,实际上,也可以设置成网络接口卡等硬件。MAC203根据设备驱动器202的控制向网络103送出(发送)包,还从网络103取出(接收)包,并且,赋予(生成)表示发送或者接收的包的发送时刻或者接收时刻的时间戳。此外,MAC203在OSI参照模型中与数据链路层(但是一部分是物理层)对应。
应用程序201被设置在设备驱动器202上,使用图中用圆表示的作为三个接口的接口A至C,与设备驱动器202之间进行数据发送接收。
在应用程序201中包含有由一系列程序等构成的TCP/IP的协议栈,其中,该一系列程序执行例如用于进行与接收装置102的TCP/IP通信或者UDP通信的包的生成、送达确认、数据量的控制等。例如,经过根据TCP/IP协议栈的处理,将作为从发送装置101发送的数据的与接收装置102之间发送接收的动态图像的数据等,发送给网络103或者从网络103接收。此外,构成TCP/IP协议栈的一系列程序例如装入到通常流通的OS(Operating System操作系统)等中,实际上还进行与UDP通信有关的处理,但是在此称为TCP/IP的协议栈。
接口A或者B是利用于用来将包发送到网络103或者从网络103接收包的处理中所需的数据发送接收的接口,例如构成为与包含在应用程序201中的TCP/IP的协议栈等对应。即,接口A或者B例如构成为与通常正在流通的网络接口卡的驱动软件等接口相同。
接口C是在根据应用程序201的指示提供时间戳的处理所需的数据发送接收中使用的接口,在经TCP/IP的协议栈等处理进行的向网络103发送包或者从网络103接收包的处理中不使用。因此,当将设备驱动器202以及MAC203安装到发送装置101上时,没有必要变更包含在应用程序201中的TCP/IP的协议栈等。
当进行RTT的计算时,应用程序201通过接口A向包发送部221输出发送包的指示(图4的时刻Tts),包发送部221控制MAC包发送部241,赋予MAC地址,生成数据包,并送出到网络103。此时,送出的数据包经由时间戳赋予部244,在时间戳赋予部244中取得基于计时部245输出值的当前时刻,生成表示发送时刻(图4的时刻Txx)的时间戳,输出到时间戳通知部242。此外,计时部245既可以根据内置于发送装置101的定时器等计时当前时刻,也可以根据经网络103取得的来自其他装置的信息来计时当前时刻。
时间戳通知部242向时间戳保持部222通知表示数据包发送时刻的时间戳,时间戳保持部222将其保持(存储)。
另外,从网络103经由时间戳赋予部244取出从接收装置102发送的确认响应包,由MAC包接收部243、以及包接收部223接收。此时,在时间戳赋予部244取得基于计时部245输出值的当前时刻,生成表示接收时刻(图4的时刻Txr)的时间戳,并输出到时间戳通知部242。
时间戳通知部242向时间戳保持部222通知表示确认响应包的接收时刻的时间戳,时间戳保持部222将其保持(存储)。
当包接收部223通过接口B向应用程序201提供确认响应包、并且通知确认响应包的接收时,应用程序201通过接口C向时间戳保持部222输出时间戳的取得请求,从时间戳保持部222取得表示数据包的发送时刻的时间戳、和表示确认响应包的接收时刻的时间戳,例如利用式(2)计算RTT。
RTT=(Txr-Txx)-(Trx-Trr)…(2)接着,参照图7和图8的流程图,说明参照图6上述的发送装置101的各部的RTT计算处理。该处理例如既可以以规定间隔定期地执行,也可以根据用户的指示等执行。
在步骤S101中,应用程序201向包发送部221指示用于计算RTT的数据包的发送(图4的时刻Tts)。由此,包发送部221控制MAC包发送部241,赋予MAC地址,生成数据包,并输出到时间戳赋予部244。
在步骤S102中,时间戳赋予部244根据计时部245的输出值取得当前时刻,赋予时间戳。此时,生成表示数据包的发送时刻(图4的时刻Txx)的时间戳,输出到时间戳通知部242。
在步骤S103中,时间戳赋予部244将数据包送出到网络103。在此,由接收装置102接收(图4的时刻Trr)送出到网络103的数据包,另外,接收装置102通过网络103将与接收到的数据包对应的确认响应包发送给发送装置101(图4的时刻Trx)。
在步骤S104中,时间戳通知部242将由步骤S102的处理赋予的时间戳通知(输出)给时间戳保持部222。
在步骤S105中,时间戳保持部222保持(存储)由步骤S104的处理通知的时间戳。由此,在时间戳保持部222中存储表示数据包的发送时刻(图4的时刻Txx)的时间戳。
在图8的步骤S106中,时间戳赋予部244从网络103取出(接收)与由步骤S103的处理送出的数据包对应而由接收装置102发送的确认响应包。由此,由MAC包接收部243、以及包接收部223接收确认响应包。
在步骤S107中,时间戳赋予部244根据计时部245的输出值取得当前时刻,赋予时间戳。此时,生成表示确认响应包的接收时刻(图4的时刻Txr)的时间戳,输出到时间戳通知部242。
在步骤S108中,时间戳通知部242向时间戳保持部222通知(输出)由步骤S107的处理赋予的时间戳。
在步骤S109中,时间戳保持部222保持(存储)由步骤S108的处理通知的时间戳。由此,在时间戳保持部222中存储表示确认响应包的接收时刻(图4的时刻Txr)的时间戳。
在步骤S110中,包接收部223向应用程序201提供确认响应包,通知确认响应包的接收。
在步骤S111中,应用程序201取得存储在时间戳保持部222中的表示数据包的发送时刻(图4的时刻Txx)的时间戳、和表示确认响应包的接收时刻(图4的时刻Txr)的时间戳。
在步骤S112中,应用程序201根据由步骤S111的处理取得的时间戳、和确认响应包的记述内容,例如利用式(2)计算RTT(图4的时刻Tc)。
这样计算RTT。由此,可使不包含作为在发送装置101内部的处理所需的时间的图4的时刻Tts和时刻Txx的差、以及时刻Txr和时刻Tc的差,正确地计算RTT。
另外,使得在应用程序201和设备驱动器202之间分别设置包的发送或者接收处理所需的数据发送接收中使用的接口(接口A或者B)、和提供时间戳的处理所需的数据发送接收中使用的接口(接口C),因此,用户例如仅通过在现有的发送装置101中装入MAC203(网络接口卡)以及与其对应的设备驱动器202,就能够进行处理使得可正确计算RTT。
另外,以上说明了由应用程序201计算RTT的例子,但是也可以由设备驱动器202计算RTT。
图9是表示由设备驱动器202计算RTT时的、由图5的CPU151执行的软件的功能结构例的框图。该图是与图6对应的框图,与图6对应的部分标记有相同的符号。此外,“权利要求书”中的“流信息存储单元”例如能够由图9的流信息保持部226实现,“判断单元”例如能够由图9的流确定部227实现,“执行控制单元”例如能够由图9的应用程序201实现,“接口”例如能够由图9的接口A、B、C实现。
在图9中,设备驱动器202的结构与图6的情况不同。即,在图9的框图中,新设置有命令控制部224至RTT测量部228。
命令控制部224通过接口C接收来自应用程序201的RTT计算(测量)的指示,控制包生成部225,生成RTT的计算所需的数据包。
包生成部225将生成的包输出到MAC包发送部241,经过时间戳赋予部244送出到网络103,并且将生成的包的流信息输出到流信息保持部226。在此,流信息是用于确定RTT计算所需的数据包的信息,例如是数据包的目的地地址(此时是接收终端102的地址)、以及数据包的种类(例如,ICMP(Internet Control MessageProtocol网间控制报文协议)Echo RequestICMP回应请求)等信息。
另外,从时间戳通知部242向RTT测量部228通知被送出的数据包的时间戳(数据包的发送时刻图4的时刻Txx)。
另一方面,从网络103接收的由接收装置102发送的包,经过时间戳赋予部244从MAC包接收部243提供给流确定部227。流确定部227检查从MAC包接收部243提供的包的发送源地址(是否是接收终端102的地址)、以及包的种类(是否是ICMP EchoReply(ICMP回应回复))等信息,与登记在流信息保持部226中的流信息进行比较。
而且,根据比较结果,流确定部227判断从MAC包接收部243提供的包是否是与为了计算RTT而发送的数据包对应的确认响应包,当判断为该包是与为了计算RTT而发送的数据包对应的确认响应包时,从时间戳保持部222取得该包的时间戳(确认响应包的接收时刻图4的时刻Txr),与该包一起输出到RTT测量部228。
RTT测量部228取得表示数据包的发送时刻的时间戳、和表示确认响应包的接收时刻的时间戳,例如利用式(2)计算RTT,将计算结果输出到命令控制部224。
命令控制部224通过接口C向应用程序201输出RTT计算完成的通知和计算结果。
在图9的例子的情况下,在应用程序201和设备驱动器202之间,通过接口A或者B进行伴随与RTT计算相关的处理之外的通信的数据发送接收。
接着参照图10的流程图说明与图9的框图对应的RTT计算处理的例子。
在步骤S151中,设备驱动器202判断是否由应用程序201指示了RTT的测量,待机到判断为被指示为止。通过接口C有来自应用程序201的RTT测量指示时(图4的Tts),处理进入步骤S152。
在步骤S152中,设备驱动器202参照图11执行后述的包发送处理。由此,对接收装置102发送用于计算RTT的数据包。
步骤S152的处理后,在步骤S153中,设备驱动器202参照图12执行后述的包接收处理。由此,对应于由步骤S152的处理发送的数据包,接收由接收装置102发送的确认响应包。
步骤S153的处理后,在步骤S154中,设备驱动器202参照图13执行后述的RTT算出处理。由此,计算基于由步骤S152的处理发送的数据包的发送时刻、和基于由步骤S153的处理接收到的确认响应包的接收时刻的RTT,计算结果被输出到应用程序201。
接着参照图11的流程图,说明图10的步骤S152的包发送处理的详细情况。
在步骤S201中,命令控制部224向包生成部225指示生成用于计算RTT的数据包。
在步骤S202中,包生成部225生成用于计算RTT的数据包。此时,生成目的地是接收装置102地址的ICMP Echo Request(回应请求)的包。另外,生成的数据包由MAC包发送部241赋予MAC地址,输出到时间戳赋予部244。
在步骤S203中,流信息保持部226登记(存储)流信息。由此,作为数据包的流信息,存储包的目的地地址、包的种类等信息。
在步骤S204中,时间戳赋予部244根据计时部245的输出值取得当前时刻,赋予时间戳。此时,生成表示数据包的发送时刻(图4的时刻Txx)的时间戳,输出到时间戳通知部242。
在步骤S205中,时间戳赋予部244将数据包送出到网络103。在此,由接收装置102接收(图4的时刻Trr)送出到网络103的数据包,另外,接收装置102通过网络103向发送装置101发送(图4的时刻Trx)与接收到的数据包对应的确认响应包。
在步骤S206中,时间戳通知部242向时间戳保持部222通知(输出)由步骤S204的处理赋予的时间戳。
在步骤S207中,时间戳保持部222保持(存储)由步骤S206的处理通知的时间戳。由此,在时间戳保持部222中存储表示数据包的发送时刻(图4的时刻Txx)的时间戳。
这样发送数据包。
接着,参照图12的流程图,说明图10的步骤S153的包接收处理的详细情况。
在步骤S221中,时间戳赋予部244从网络103取出(接收)由接收装置102发送的包。由此,该包经MAC包接收部243输出到流确定部227。
在步骤S222中,时间戳赋予部244根据计时部245的输出值取得当前时刻,赋予时间戳。此时,生成表示由步骤S221的处理接收到的包的接收时刻(成为图4的时刻Txr的候选的时刻)的时间戳,输出到时间戳通知部242。
在步骤S223中,时间戳通知部242向时间戳保持部222通知(输出)由步骤S222的处理赋予的时间戳。
在步骤S224中,时间戳保持部222保持(存储)由步骤S223的处理通知的时间戳。在该时刻,还没有进行流信息的判断,因此,该时间戳作为对确认响应包的接收时刻进行表示的时间戳的候选,存储到时间戳保持部222。
在步骤S225中,流确定部227判断由步骤S221的处理接收到的包是否是登记了流信息的包。此时,流确定部227检查从MAC包接收部243供给的包的例如发送源地址、以及包的种类,与登记在流信息保持部226中的流信息进行比较。当该包的发送源地址是接收终端102的地址、且该包的种类是ICMP Echo Reply(回应回复)时,该包被判断为是登记了流信息的包,处理进入步骤S227。
在步骤S227中,流确定部227将由步骤S221的处理接收到的包作为与为了计算RTT而发送的数据包对应的确认响应包,从时间戳保持部222取得该包的时间戳(确认响应包的接收时刻图4的时刻Txr),与该时间戳一起输出到RTT测量部228,并通知确认响应包的接收。
另一方面,在步骤S225中,当该包被判断为不是被登记有流信息的包时,处理进入步骤S226,时间戳保持部222废弃该包的时间戳。另外,此时,该包(由步骤S221的处理接收到的包)不是与为了计算RTT而发送的数据包对应的确认响应包,因此,被输出到包接收部223,并通过接口B向应用程序201提供包的数据。
这样接收确认响应包。
接着,参照图13的流程图,说明图10的步骤S154的RTT算出处理的详细情况。
在步骤S251中,RTT测量部228取得表示数据包的发送时刻(图4的时刻Txx)的时间戳、和表示确认响应包的接收时刻(图4的时刻Txr)的时间戳。
在步骤S252中,RTT测量部228根据由步骤S251的处理取得的时间戳、和确认响应包的记述内容,例如利用式(2)计算RTT。
在步骤S253中,RTT测量部228将根据步骤S252的处理得到的RTT的计算结果输出到命令控制部224。
在步骤S254中,命令控制部224将由步骤S253的处理输出的RTT的计算结果提供给应用程序201,并将表示RTT的计算完成的信息输出到应用程序201。
这样算出RTT。由此,可使不包含作为在发送装置101内部的处理所需的时间的图4的时刻Tts和时刻Txx的差、以及时刻Txr和时刻Tc的差,正确地计算RTT。
另外,使得在应用程序201和设备驱动器202之间分别设置伴随与RTT计算有关的处理之外的通信的数据发送接收中使用的接口(接口A或者B)、和伴随与RTT计算有关的处理之外的通信的数据发送接收中使用的接口(接口C),因此,用户例如仅通过在现有的发送装置101中装入MAC203(网络接口卡)以及与其对应的设备驱动器202,就能够进行处理使得可正确计算RTT。
并且,由设备驱动器202进行RTT的计算,应用程序201只进行对设备驱动器202进行RTT计算的指示、以及接收被计算的RTT供给的处理即可,因此,能够有效地利用CPU、存储器等发送装置101的资源。另外,即使由进行包含在应用程序201中的图像数据的压缩编码等的程序使CPU、存储器等发送装置101的资源被大量使用、发送装置101的处理负荷为高的状态,也不会导致RTT的计算处理延迟,其结果,能够更正确且适时地算出RTT。
此外,以上说明了由发送装置101进行RTT计算的例子,但是,当然也是可以使接收装置102为与发送装置101相同的结构,并由接收装置102进行RTT计算的。另外,这样计算的RTT能够作为动态地变更与上述发送速率的控制、ARQ(Automatic RepeatRequest自动重发请求)、FEC(Forward Error Collection前向纠错)等错误校正有关的处理时的指标(参考值)而使用。
另外,本发明不限于RTT的计算,能够通过使用表示上述数据包的发送时刻(图4的时刻Txx)的时间戳、和表示确认响应包的接收时刻(图4的时刻Txr)的时间戳,进行正确的传送控制。例如,也能够将本发明应用于预测网络的阻塞而进行数据传送速率控制的通信系统。
图14是表示其他数据通信系统中的数据发送装置331以及数据接收装置332的结构的框图。
数据发送装置331以及数据接收装置332按照作为实时数据传输协议的RTP(Real-time Transport Protocol实时传输协议),进行数据的交换(授受)。假设由例如利用影像和声音数据进行远距离会议的应用程序等利用RTP,以适合实时的方式传输影像、声音数据为目的进行设计。在RTP中,数据以时间单位被分割为包进行发送。另外,RTP是不进行包丢失对策、传送时间保证等的UDP(User Datagram Protocol用户数据报协议)类型的协议,通常与RTCP(RTP Control Protocol实时传输控制协议)的通信状态报告配套使用。
另外,网络333既可以是例如在组织内管理的LAN(LocalArea Network局域网),也可以是结合了所谓因特网那样的不确定多数的网络的大规模网络,或者,还可以是连接规定的发送装置和接收装置的专用线路。
数据发送装置331的数据生成部341例如生成声音、图像、影像、文本数据、或者它们的混合数据,提供给数据发送部342。由发送速率控制部345控制此时生成的数据量。
将从数据生成部341供给的数据作为RTP包发送的情况下,数据发送部342例如每隔5秒间隔等规定时间,附加RTCP的SR(Sender Report发送方报告)包,通过网络333发送到数据接收装置332。SR包是指用于数据发送侧的发送接收统计的报告,记载有表示数据传送状况的信息。
SR包中包含有NTP(Network Time Protocol网络时间协议)时间戳、以及RTP时间戳。
数据接收部343接收从数据接收装置332发送的、RT CP中的RR(Receiver Report接收方报告)包。RR包是用于来自数据接收侧的接收统计的报告。
速率控制命令接收部344通过网络333从数据接收装置332接收速率控制命令,提供给发送速率控制部345。
发送速率控制部345根据从速率控制命令接收部344供给的速率控制命令,生成发送速率控制信号,并提供给数据生成部341。
数据接收装置332的数据接收部351通过网络333从数据发送装置331接收SR包以及RTP包,将RTP包的例如影像、声音、文本等数据提供给数据处理部352,并且,将RTP包的接收时刻、时间戳、包大小、序列号等预测阻塞所需的信息提供给阻塞预测部353。
数据处理部352对从数据接收部351提供的数据执行处理。具体地讲,数据处理部352对提供的数据,执行例如解码处理、解扰(デスクランブル)处理、显示处理、或者声音再现处理等。
数据发送部354对从数据发送装置331发送的RTP包,生成RR包,通过网络333发送到数据发送装置331。
阻塞预测部353根据从数据接收部351供给的信息,预测数据传送线路的阻塞,基于其结果根据需要设定数据接收速率(即数据接收装置332接收的数据的数据传送速率),生成速率控制命令,并提供给速率控制命令发送部355。
速率控制命令发送部355将从阻塞预测部353供给的速率控制命令作为RTCP的APP(Application defined RTCP packet应用程序限定的RTCP包),通过网络333发送到数据发送装置331。APP是指应用程序扩展用的包。
在这样进行速率控制的通信系统中,如果在数据发送装置331或者数据接收装置332上安装例如上述MAC(网络接口卡)203和与其对应的设备驱动器202,并考虑根据数据发送装置331或者数据接收装置332的内部处理产生的传送延迟而能够正确地取得RTP包的时间戳,就能够更正确地预测阻塞进行适当的速率控制。
或者,另外利用本发明还能够提高网络频带的测量精度。
例如,在从服务器向客户机通过因特网实时进行动态图像数据等的流动的情况下,在从服务器到客户机(用户)的网络之间,如果不按照最低传输速率进行传输,则会超出网络容量进行传输,将产生包丢失。在此,将从服务器到客户机的网络之间具有最低链路速度的链路,称为网络的瓶颈链路。
即,当进行流动时,服务器有必要推测瓶颈链路的速度,作为该瓶颈链路速度的推测方法,例如有称为一对包(Packet Pair)的方法。
该一对包方法是瓶颈链路的频带预测方式之一,例如,如图15所示,从发送侧(服务器)对接收侧(客户机),不空出发送间隔以所谓连续(back-to-back)来传输两个包大小相等的包1、2,根据网络的传送延迟测量瓶颈链路的频带。
在该图中,纵轴表示时刻。即,时刻T1s表示包1的传输结束的服务器侧的时刻,时刻T1表示完成包1的接收的客户机侧的时刻。同样地,时刻T2s表示包2的传输结束的服务器侧的时刻,时刻T2表示完成包2的接收的客户机侧的时刻。
从服务器通过节点1、2向客户机传输一个紧接在另一个之后的一对的包1、2时,在节点1和节点2之间,包向时间轴方向延伸。该节点1和节点2之间是瓶颈链路。
客户机通过测量第一个包1的到达时刻T1和第二个包2的到达时间T2,按照下式能够算出瓶颈链路的频带B。在此,S表示包1以及包2的尺寸(大小)。
频带B=S/(T2-T1)在这样进行频带测量的通信系统中,如果向客户机安装例如上述MAC(网络接口卡)203和与其对应的设备驱动器202,考虑根据客户机的内部处理产生的传送延迟而能够正确地取得包1以及包2的时间戳(到达时刻),就能够进行更正确的频带测量。
以上说明了发送接收动态图像数据的例子,但是发送接收的数据并不限于动态图像数据。另外,网络103不限于因特网等具备有线设备的网络,例如,也可以是由蓝牙(Bluetooth)等无线通信技术实现的网络。
此外,上述的一系列处理既可以由硬件执行,也可以由软件执行。由软件执行上述一系列处理时,构成该软件的程序可通过因特网等网络、或通过由可移动介质(例如图5的可移动介质161)等构成的记录介质安装。
此外,该记录介质不仅包含由与装置主体分开、为了向用户发送程序而发布的、记录有程序的磁盘(包含软盘(プロツピデイスク是注册商标))、光盘(包含CD-ROM(Compact Disk-Read OnlyMemory光盘只读存储器)、DVD(Digital Versatile Disk数字多功能光盘))、光磁盘(包含MD(Mini-Dsik迷你光盘)(MD是注册商标))、或者由半导体存储器等组成的可移动介质161构成的记录介质,还包含由以预先装入装置主体的状态发送给用户的、记录有程序的ROM、包含在存储部中的硬盘等构成的记录介质。
在本说明书中执行上述一系列处理的步骤不仅包含根据记载的顺序按时间序列进行的处理,还包含未必按时间序列进行处理而并行或者单独执行的处理。
权利要求
1.一种信息处理装置,通过网络与其他信息处理装置进行通信,其特征在于,具备指示单元,指示用于得到来自前述其他信息处理装置的响应的第一包的发送;第一生成单元,生成第一时间戳,该第一时间戳包含将根据前述指示单元的指示生成的前述第一包送出到前述网络时的时刻;第二生成单元,生成第二时间戳,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出单元,根据前述生成的前述第一以及第二时间戳,算出前述信息处理装置与前述其他信息处理装置之间的传送往返延迟。
2.根据权利要求1所述的信息处理装置,其特征在于,还具备流信息存储单元,该流信息存储单元存储包含与前述第一包的目的地地址以及包的种类有关的信息的流信息。
3.根据权利要求2所述的信息处理装置,其特征在于,还具备判断单元,该判断单元比较与从前述网络取得的包的发送源地址以及包的种类有关的信息、和存储在前述流信息存储单元中的流信息,判断从前述网络取得的包是否是前述第二包。
4.根据权利要求1所述的信息处理装置,其特征在于,还具备执行控制单元,该执行控制单元控制前述传送往返延迟的计算的执行。
5.根据权利要求4所述的信息处理装置,其特征在于,前述执行控制单元设置在网络层或网络层以上的层,前述指示单元、前述第一及第二生成单元、以及前述算出单元设置在数据链路层或数据链路层以下的层。
6.根据权利要求5所述的信息处理装置,其特征在于,前述执行控制单元还控制与前述其他信息处理装置的数据发送接收的执行,与和前述指示单元之间进行的前述传送往返延迟计算的执行有关的数据交换,使用的接口和进行与前述其他信息处理装置的数据发送接收的执行有关的数据交换的接口不同。
7.一种信息处理方法,是通过网络与其他信息处理装置进行通信的信息处理装置的信息处理方法,其特征在于,包含指示步骤,指示用于得到来自前述其他信息处理装置的响应的第一包的发送;第一生成步骤,生成第一时间戳,该第一时间戳包含将根据前述指示步骤的处理的指示生成的前述第一包送出到前述网络时的时刻;第二生成步骤,生成第二时间戳,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出步骤,根据前述生成的前述第一以及第二时间戳,算出前述信息处理装置与前述其他信息处理装置之间的传送往返延迟。
8.一种程序,使通过网络与其他信息处理装置进行通信的信息处理装置执行信息处理,其特征在于,使计算机执行指示控制步骤,控制用于得到来自前述其他信息处理装置的响应的第一包的发送指示;第一生成控制步骤,控制第一时间戳的生成,该第一时间戳包含将根据前述指示控制步骤的处理的指示生成的前述第一包送出到前述网络时的时刻;第二生成控制步骤,控制第二时间戳的生成,该第二时间戳包含从前述网络取得第二包时的时刻,该第二包是作为对前述第一包的响应由前述其他信息处理装置发送的;算出控制步骤,根据前述生成的前述第一以及第二时间戳,控制前述信息处理装置与前述其他信息处理装置之间的传送往返延迟的算出。
9.一种记录介质,记录有权利要求8所述的程序。
全文摘要
提供一种信息处理装置和方法、程序、以及记录介质,使得能够正确计算数据通信中的发送接收终端之间的传送往返延迟。经包发送部(221)、MAC包发送部(241),发送到接收装置的数据包被送出到网络(103)时,时间戳赋予部(244)赋予包含包的发送时刻的时间戳。当从网络(103)取出从接收装置发送的确认响应包时,时间戳赋予部(244)赋予包含包的发送时刻的时间戳。包的发送时刻和接收时刻的时间戳被时间戳保持部(222)保持,用于传送往返延迟的算出。本发明能够应用于视频服务器。
文档编号H04N7/24GK1855935SQ20061007623
公开日2006年11月1日 申请日期2006年4月19日 优先权日2005年4月19日
发明者久曾神宏, 普天间智 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1