專利名稱:信息處理裝置和方法、程序、以及記錄介質的制作方法
技術領域:
本發明涉及一種信息處理裝置和方法、程序、以及記錄介質,特別是涉及能夠正確計算數據通信中的發送接收終端之間的傳送往返延遲的信息處理裝置和方法、程序、以及記錄介質。
背景技術:
目前,有如下的信息處理系統利用包(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日
發明者久曾神宏, 普天間智 申請人:索尼株式會社