通信方法、通信裝置以及通信程序的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及在多個通信裝置之間進行的通信。
【背景技術(shù)】
[0002]隨著云計算的普及而要求通信的高速化,但是由于企業(yè)的全球化等使得進行數(shù)據(jù)收發(fā)的通信裝置彼此之間的距離變得越來越遠。在使用傳輸控制協(xié)議(TCP)等對在通信中丟失的數(shù)據(jù)包進行重發(fā)的方式來進行通信時,發(fā)送側(cè)的通信裝置使用來自接收側(cè)的通信裝置的確認響應(yīng)數(shù)據(jù)包來決定接下來發(fā)送的數(shù)據(jù)的大小、是否進行重發(fā)。發(fā)送側(cè)的通信裝置和接收側(cè)的通信裝置之間的線路的往返時延(Round Trip Time,RTT)隨著發(fā)送側(cè)的通信裝置與接收側(cè)的通信裝置之間距離變大而變長。因此,在使用了 TCP的通信中,當(dāng)發(fā)送側(cè)的通信裝置與接收側(cè)的通信裝置之間的距離變長時,導(dǎo)致通信速度變慢。另一方面,在使用糾錯的通信方式中,發(fā)送側(cè)的通信裝置除了發(fā)送包含所發(fā)送的數(shù)據(jù)的數(shù)據(jù)包之外還發(fā)送冗余數(shù)據(jù)包。當(dāng)發(fā)生數(shù)據(jù)包丟包時,接收側(cè)的通信裝置使用冗余數(shù)據(jù)包來恢復(fù)丟失的數(shù)據(jù)包中包含的數(shù)據(jù)。因此,通過使用糾錯的通信,能夠防止因重發(fā)而產(chǎn)生的延遲,但由于發(fā)送冗余數(shù)據(jù)包,所以會產(chǎn)生吞吐量降低這樣的問題。
[0003]作為相關(guān)技術(shù),提出了一種如下所述的通信裝置:測量當(dāng)使用冗余數(shù)據(jù)包時在通信中發(fā)生的抖動、以及使用重發(fā)丟失數(shù)據(jù)包的方式時在通信中發(fā)生的抖動,并使用抖動較小的通信方式來發(fā)送數(shù)據(jù)(例如,專利文獻I)。并且,還提出了一種使用狀態(tài)參數(shù)、連接參數(shù)來決定糾錯機制的方法(例如,專利文獻2)。這里,狀態(tài)參數(shù)是指帶寬、容許的延遲時間等根據(jù)使用數(shù)據(jù)的應(yīng)用而被要求的質(zhì)量信息。另外,連接參數(shù)是與指通信連接相關(guān)的信息。
[0004]專利文獻1:國際公開第2007/061087號
[0005]專利文獻2:日本特表2002 - 507369號公報
[0006]若在重發(fā)通信中丟失的數(shù)據(jù)包的方式中,發(fā)送側(cè)的通信裝置與接收側(cè)的通信裝置的距離變大,則由于往返時延增大,所以存在通信速度降低的問題。另一方面,在發(fā)送糾錯所使用的冗余數(shù)據(jù)包的方式中,能夠防止由于重發(fā)處理引起的通信速度降低,但由于發(fā)送冗余數(shù)據(jù)包,所以會產(chǎn)生吞吐量降低的問題。
[0007]在可能使用的通信方式中采用抖動小的方式進行通信的通信裝置中,能夠使發(fā)送各數(shù)據(jù)包所花費的時間的變動變小,但是通信不能夠高速化。另外,在使用狀態(tài)參數(shù)等來決定糾錯機制的方法中,使用根據(jù)應(yīng)用而被要求的質(zhì)量信息來決定通信方式。因此,存在當(dāng)不清楚質(zhì)量信息時不能恰當(dāng)選擇通信方式的問題。因此,使用質(zhì)量信息來決定通信方式的方法不能應(yīng)用于對非特定的應(yīng)用所使用的數(shù)據(jù)進行轉(zhuǎn)發(fā)的通信裝置。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的在于,在一個方式中提供一種防止吞吐量降低并抑制延遲的方法。
[0009]使用實施方式涉及的通信方法的網(wǎng)絡(luò)包括:第I通信裝置、第2通信裝置以及第3通信裝置。所述第2通信裝置從由所述第I通信裝置接收到的數(shù)據(jù)包中確定作為向所述第3通信裝置轉(zhuǎn)發(fā)的數(shù)據(jù)包的轉(zhuǎn)發(fā)數(shù)據(jù)包。所述第2通信裝置測量從所述第I通信裝置接收所述轉(zhuǎn)發(fā)數(shù)據(jù)包的間隔。所述第2通信裝置將所述轉(zhuǎn)發(fā)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述第3通信裝置。所述第2通信裝置從所述第3通信裝置接收對所述轉(zhuǎn)發(fā)數(shù)據(jù)包的接收狀況進行通知的通知信息。所述第2通信裝置使用所述通知信息,在向所述第3通信裝置轉(zhuǎn)發(fā)的數(shù)據(jù)包中,選擇作為沒有從所述第3通信裝置通知接收成功的數(shù)據(jù)包的對象數(shù)據(jù)包。當(dāng)從所述第I通信裝置接收所述轉(zhuǎn)發(fā)數(shù)據(jù)包的間隔超過閾值時,所述第2通信裝置將所述對象數(shù)據(jù)包以能夠糾錯的形式再次發(fā)送給所述第3通信裝置。
[0010]本發(fā)明能夠防止吞吐量降低,也能夠抑制延遲。
【附圖說明】
[0011]圖1是表示實施方式涉及的通信方法的例子的圖。
[0012]圖2是表示網(wǎng)絡(luò)的例子的圖。
[0013]圖3是表示通信裝置的構(gòu)成的例子的圖。
[0014]圖4是表示通信裝置的硬件結(jié)構(gòu)的例子的圖。
[0015]圖5是表示通信方法的例子的時序圖。
[0016]圖6是表不發(fā)送表的例子的圖。
[0017]圖7是表示數(shù)據(jù)包的格式的例子的圖。
[0018]圖8是表示TCP報頭和UDP報頭的格式的例子的圖。
[0019]圖9是表示通信裝置間的數(shù)據(jù)包的收發(fā)的例子的圖。
[0020]圖10是表示控制響應(yīng)數(shù)據(jù)包中包含的信息的例子的圖。
[0021 ]圖11是表示發(fā)送表的更新例的圖。
[0022]圖12是表示基于發(fā)送數(shù)據(jù)的種類的數(shù)據(jù)包的發(fā)送模式的例子的圖。
[0023]圖13是表示通信裝置的處理的例子的圖。
[0024]圖14是說明通信裝置的處理的例子的流程圖。
[0025]圖15是說明數(shù)據(jù)包的接收的定時例的圖。
[0026]圖16是表不發(fā)送表的變形例的圖。
[0027]圖17是表示網(wǎng)絡(luò)的例子的圖。
【具體實施方式】
[0028]圖1表示實施方式涉及的通信方法的例子。在圖1的例子中,終端向通信裝置B發(fā)送數(shù)據(jù)包。通信裝置A將從終端接收到的數(shù)據(jù)包轉(zhuǎn)發(fā)給通信裝置B。圖1中的粗箭頭表示多個數(shù)據(jù)包。在圖1中,“P”字母與數(shù)字的組合表示從終端發(fā)送來的數(shù)據(jù)包,P后面跟著的數(shù)字用于表示數(shù)據(jù)包的序列編號。白箭頭表示接收側(cè)接收失敗的數(shù)據(jù)包以在發(fā)送側(cè)再次發(fā)送的通信方式進行的通信。以下,有時將在接收側(cè)接收失敗的數(shù)據(jù)包從發(fā)送側(cè)再次發(fā)送的通信方式記載為“重發(fā)機制”的通信方式。另一方面,包含繪點的箭頭用于表示以發(fā)送糾錯中使用的冗余數(shù)據(jù)包的方式進行的通信。在以下的說明中,將發(fā)送糾錯中使用的冗余數(shù)據(jù)包的方式記載為“糾錯機制”的通信方式。
[0029](I)終端以重發(fā)機制的通信方式向通信裝置B發(fā)送PO?P9999的數(shù)據(jù)包。這里,通信裝置A能夠接收從終端發(fā)送來的全部數(shù)據(jù)包。
[0030](2)通信裝置A以重發(fā)機制的方式將從終端接收到的數(shù)據(jù)包轉(zhuǎn)發(fā)到通信裝置B。此時,通信裝置B針對從通信裝置A發(fā)送來的數(shù)據(jù)包中的PlOO數(shù)據(jù)包的接收失敗。
[0031](3)終端以重發(fā)機制的通信方式向通信裝置B發(fā)送P10000?P19999的數(shù)據(jù)包。
[0032](4)通信裝置B以規(guī)定的時間間隔向通信裝置A發(fā)送用于通知數(shù)據(jù)包的接收狀況的控制響應(yīng)數(shù)據(jù)包(Ack) ο控制響應(yīng)數(shù)據(jù)包記錄有生成控制響應(yīng)數(shù)據(jù)包的時刻的接收狀況。在圖1的例子中,通信裝置B將通知針對PlOO的接收失敗的控制響應(yīng)數(shù)據(jù)包發(fā)送到通信裝置A。通信裝置A識別為PO?P99和PlOl?P9999成功發(fā)送到通信裝置B、PlOO向通信裝置B的發(fā)送失敗。
[0033](5)在從通信裝置B發(fā)送控制響應(yīng)數(shù)據(jù)包起到結(jié)束控制響應(yīng)數(shù)據(jù)包的處理的期間,通信裝置A再以重發(fā)機制的方式將從終端接收到的數(shù)據(jù)包P10000?P19999轉(zhuǎn)發(fā)給通信裝置B。
[0034](6)設(shè)從終端向通信裝置B的數(shù)據(jù)包的發(fā)送被中斷。在從終端向通信裝置B的數(shù)據(jù)包的發(fā)送被中斷的期間,由于通信裝置A不從終端接收數(shù)據(jù)包,因此從通信裝置A向通信裝置B的新數(shù)據(jù)包的轉(zhuǎn)發(fā)也被中斷。當(dāng)不從終端接收數(shù)據(jù)包的期間超過規(guī)定閾值Th時,通信裝置A判定為新數(shù)據(jù)包向通信裝置B的轉(zhuǎn)發(fā)處理中斷的期間超過閾值Th。這里,閾值Th被設(shè)定為比往返時延(RTT)短的時間。當(dāng)新數(shù)據(jù)包的轉(zhuǎn)發(fā)處理中斷的期間超過閾值Th時,通信裝置A將無法確認轉(zhuǎn)發(fā)成功的數(shù)據(jù)包使用糾錯機制的發(fā)送方法重發(fā)給通信裝置B。在該時刻,由于通信裝置A不從通信裝置B接收新的控制響應(yīng)數(shù)據(jù)包,因此不知道P10000?P19999是否發(fā)送成功。進而,通信裝置A認識到在步驟(4)中PlOO的數(shù)據(jù)包轉(zhuǎn)發(fā)失敗。鑒于此,通信裝置A以糾錯機制方式將PlOO和P10000?P19999的數(shù)據(jù)包重發(fā)給通信裝置B。
[0035]通信裝置B利用從通信裝置A重發(fā)來的數(shù)據(jù)包,能夠接收PlOO和P10000?P19999。由于在步驟(6),以糾錯機制方式從通信裝置A發(fā)送數(shù)據(jù)包,因此通信裝置B能夠使用冗余數(shù)據(jù)包等來恢復(fù)接收失敗的數(shù)據(jù)包。
[0036](7)終端新將數(shù)據(jù)包P20000?P29999發(fā)送給通信裝置A。于是,通信裝置A利用重發(fā)機制的通信方法將P20000?P29999轉(zhuǎn)發(fā)給通信裝置B。
[0037]這樣,當(dāng)不接收新的轉(zhuǎn)發(fā)對象的數(shù)據(jù)包的期間超過閾值時,通信裝置A判定為數(shù)據(jù)包的轉(zhuǎn)發(fā)能夠使用的空閑頻帶增加。鑒于此,在進行新的數(shù)據(jù)包轉(zhuǎn)發(fā)的空閑期間,將無法確認轉(zhuǎn)發(fā)成功的數(shù)據(jù)包以糾錯機制的通信方法再次轉(zhuǎn)發(fā)。因此,對于正在等待控制響應(yīng)數(shù)據(jù)包的數(shù)據(jù)包而言,可以不必等待控制響應(yīng)數(shù)據(jù)包的達到而進行重發(fā)處理。因此,對于正在等待控制響應(yīng)數(shù)據(jù)包的數(shù)據(jù)包并且第I次發(fā)送失敗的數(shù)據(jù)包而言,可在經(jīng)過往返時延(RTT)之前進行重發(fā)。因此,使用本實施方式涉及的通信方法時,即便RTT變長,也能夠抑制延遲。
[0038]其中,在以下的說明中,設(shè)通信裝置A和通信裝置B之間的往返時延是從測量通信所花費的時間而使用的數(shù)據(jù)包(測量數(shù)據(jù)包)的發(fā)送時刻到測量數(shù)據(jù)包的響應(yīng)數(shù)據(jù)包的接收時刻為止的時間。例如,從由通信裝置A向通信裝置B發(fā)送了第I測量數(shù)據(jù)包到作為第I測量數(shù)據(jù)包的響應(yīng)通信裝置A接收到從通信裝置B發(fā)送來的第2測量數(shù)據(jù)包的時刻為止的時間是通信裝置A和通信裝置B之間的RTT。
[0039]可是,本實施方式涉及的通信裝置通過在進行新的數(shù)據(jù)包的轉(zhuǎn)發(fā)的空閑期間進行的重發(fā)來發(fā)送冗余數(shù)據(jù)包,但在以重發(fā)機制方式通信的期間不發(fā)送冗余數(shù)據(jù)包。因此,在本實施方式涉及的通信方法中,能夠?qū)⒂捎谌哂鄶?shù)據(jù)包的發(fā)送而引起的吞吐量的降低抑制到很小。
[0040]此外,在圖1的例子中,為了易于理解,示例性說明了從終端向通信裝置B發(fā)送數(shù)據(jù)包的情形,但來自終端的數(shù)據(jù)包也可以經(jīng)過通信裝置B轉(zhuǎn)發(fā)到其他裝置。
[0041]<網(wǎng)絡(luò)的例子和裝置構(gòu)成>
[0042]圖2表示使用本實施方式涉及的通信裝置10的網(wǎng)絡(luò)的例子。圖2表示終端I和數(shù)據(jù)中心3中的服務(wù)器4通過廣域網(wǎng)(WAN) 2進行通信的情形的網(wǎng)絡(luò)的例子。數(shù)據(jù)中心3中包含有通信裝置1b和服務(wù)器4。另外,終端I經(jīng)過通信裝置1a訪問WAN2。這里,通信裝置1a以及通信裝置1b能夠作為WAN高速化裝置進行工作。其中,終端I的數(shù)量和數(shù)據(jù)中心3中包含的服務(wù)器4的數(shù)量是任意的。
[0043]圖3表示通信裝置10的構(gòu)成的例子。通信裝置10具有:發(fā)送部11、接收部12、收發(fā)部13、轉(zhuǎn)發(fā)處理部14、重發(fā)處理部15、數(shù)據(jù)包處理部16、接收數(shù)據(jù)包管理部17、頻帶算出部18和轉(zhuǎn)換部20。轉(zhuǎn)換部2