0具有測(cè)量部21、選擇部22和閾值計(jì)算部23。
[0044]當(dāng)通信裝置10將數(shù)據(jù)包向WAN2中含有的裝置或其他通信裝置10發(fā)送時(shí)使用發(fā)送部11。發(fā)送部11將從轉(zhuǎn)發(fā)處理部14、重發(fā)處理部15和接收數(shù)據(jù)包管理部17等輸入的數(shù)據(jù)包向目的地發(fā)送。接收部12從WAN2中含有的裝置或其他通信裝置10接收數(shù)據(jù)包。接收部12將接收到的數(shù)據(jù)包輸出給數(shù)據(jù)包處理部16。當(dāng)通信裝置10與終端1、服務(wù)器4之間收發(fā)數(shù)據(jù)包時(shí)使用收發(fā)部13。收發(fā)部13將從終端I接收到的數(shù)據(jù)包輸出到選擇部22。
[0045]轉(zhuǎn)發(fā)處理部14使用重發(fā)機(jī)制的通信方法將從選擇部22輸入的數(shù)據(jù)包轉(zhuǎn)換為用于向WAN2發(fā)送的數(shù)據(jù)包并輸出給發(fā)送部11。重發(fā)處理部15使用糾錯(cuò)機(jī)制的通信方法將從選擇部22輸入的數(shù)據(jù)包轉(zhuǎn)換為用于向WAN2發(fā)送的數(shù)據(jù)包并輸出到發(fā)送部11。關(guān)于數(shù)據(jù)包的格式將后述。
[0046]當(dāng)通信裝置10從通過(guò)WAN2而連接的其他通信裝置10接收到數(shù)據(jù)包時(shí),數(shù)據(jù)包處理部16、接收數(shù)據(jù)包管理部17和頻帶算出部18對(duì)其進(jìn)行處理。數(shù)據(jù)包處理部16將從其他通信裝置10接收到的數(shù)據(jù)包轉(zhuǎn)換為能夠向終端1、服務(wù)器4發(fā)送的形式。數(shù)據(jù)包處理部16將處理完畢的數(shù)據(jù)包輸出至收發(fā)部13。于是,收發(fā)部13將目的地為終端1、服務(wù)器4的數(shù)據(jù)包發(fā)送給終端1、服務(wù)器4。
[0047]接收數(shù)據(jù)包管理部17監(jiān)控?cái)?shù)據(jù)包處理部16中的接收狀況。例如,接收數(shù)據(jù)包管理部17確定當(dāng)前正在接收的數(shù)據(jù)包的序列ID的最大值和已經(jīng)接收到的數(shù)據(jù)包的序列ID。關(guān)于序列ID將后述。接收數(shù)據(jù)包管理部17使用所確定的信息來(lái)生成目的地為發(fā)送側(cè)的通信裝置10的控制響應(yīng)數(shù)據(jù)包。接收數(shù)據(jù)包管理部17將控制響應(yīng)數(shù)據(jù)包輸出到發(fā)送部11。
[0048]當(dāng)通信裝置10從通過(guò)WAN2而連接的其他通信裝置10接收數(shù)據(jù)包時(shí),頻帶算出部18計(jì)算出數(shù)據(jù)包的接收所使用的帶寬。頻帶算出部18將得到的帶寬通知給接收數(shù)據(jù)包管理部17。
[0049]測(cè)量部21測(cè)量通信裝置10未從終端I接收數(shù)據(jù)包的期間的長(zhǎng)度。當(dāng)通信裝置10從終端I接收數(shù)據(jù)包時(shí),測(cè)量部21將測(cè)量值復(fù)位為O。
[0050]選擇部22將從收發(fā)部13輸入的數(shù)據(jù)包輸出到轉(zhuǎn)發(fā)處理部14。并且,選擇部22通過(guò)確定通信裝置10轉(zhuǎn)發(fā)到其他通信裝置10的數(shù)據(jù)包和從發(fā)送目的地的通信裝置10接收了控制響應(yīng)(Ack)的數(shù)據(jù)包,來(lái)監(jiān)控?cái)?shù)據(jù)包的發(fā)送狀況。當(dāng)通信裝置10未從終端I接收數(shù)據(jù)包的期間T超過(guò)閾值Th時(shí),選擇部22在發(fā)送完畢的數(shù)據(jù)包中選擇未接收Ack的數(shù)據(jù)包。換言之,選擇部22選擇作為糾錯(cuò)機(jī)制的重發(fā)處理對(duì)象的數(shù)據(jù)包。選擇部22將選擇出的數(shù)據(jù)包輸出到重發(fā)處理部15。閾值計(jì)算部23計(jì)算出選擇部22在判定中使用的閾值Th,并將得到的閾值輸出到選擇部22。并且,選擇部22監(jiān)控從發(fā)送部11發(fā)送數(shù)據(jù)包的最新的時(shí)刻。
[0051]圖4表示通信裝置10的硬件結(jié)構(gòu)的例子。通信裝置10具有處理器31、存儲(chǔ)器32、總線(xiàn)35、外部存儲(chǔ)裝置36和網(wǎng)絡(luò)連接裝置39。并且,作為選項(xiàng),通信裝置10也可以具有:輸入裝置33、輸出裝置34、介質(zhì)驅(qū)動(dòng)裝置37。通信裝置10可以通過(guò)例如計(jì)算機(jī)等實(shí)現(xiàn)。
[0052]處理器31可以是包含中央處理單元(CPU)的任意處理電路。處理器31作為轉(zhuǎn)發(fā)處理部14、重發(fā)處理部15、數(shù)據(jù)包處理部16、接收數(shù)據(jù)包管理部17、頻帶算出部18和轉(zhuǎn)換部20進(jìn)行工作。其中,處理器31例如可執(zhí)行存儲(chǔ)在外部存儲(chǔ)裝置36的程序。存儲(chǔ)器32適當(dāng)?shù)卮鎯?chǔ)通過(guò)處理器31的工作而得到的數(shù)據(jù)、處理器31的處理所采用的數(shù)據(jù)。網(wǎng)絡(luò)連接裝置39被用于與其他裝置通信,作為發(fā)送部11、接收部12和收發(fā)部13進(jìn)行動(dòng)作。
[0053]例如,輸入裝置33被實(shí)現(xiàn)為按鈕、鍵盤(pán)或鼠標(biāo),輸出裝置34被實(shí)現(xiàn)為顯示器等??偩€(xiàn)35將處理器31、存儲(chǔ)器32、輸入裝置33、輸出裝置34、外部存儲(chǔ)裝置36、介質(zhì)驅(qū)動(dòng)裝置37和網(wǎng)絡(luò)連接裝置39之間連接成能夠相互進(jìn)行數(shù)據(jù)的收發(fā)。外部存儲(chǔ)裝置36存儲(chǔ)程序、數(shù)據(jù)等,將存儲(chǔ)的信息恰當(dāng)?shù)靥峁┙o處理器31等。介質(zhì)驅(qū)動(dòng)裝置37能夠?qū)⒋鎯?chǔ)器32、外部存儲(chǔ)裝置36的數(shù)據(jù)輸出到便攜式存儲(chǔ)介質(zhì)38,另外,能夠從便攜式存儲(chǔ)介質(zhì)38讀取程序、數(shù)據(jù)等。這里,便攜式存儲(chǔ)介質(zhì)38可以是包括軟盤(pán)、光盤(pán)(MO)、可讀寫(xiě)光盤(pán)(CD-R)或可讀寫(xiě)數(shù)字多功能光盤(pán)(DVD-R)的能夠攜帶的任意存儲(chǔ)介質(zhì)。
[0054]<第I實(shí)施方式>
[0055]以下,說(shuō)明在圖2所示的網(wǎng)絡(luò)中終端I和服務(wù)器4之間進(jìn)行通信的情況下的通信裝置10的處理。圖5是表示通信方法的例子的時(shí)序圖,分為圖5的(A)?(E)來(lái)說(shuō)明通信裝置1a以及通信裝置1b中進(jìn)行的處理。在以下的例子中,通信裝置1a與終端I之間收發(fā)TCP數(shù)據(jù)包,通信裝置1b與服務(wù)器4之間收發(fā)TCP數(shù)據(jù)包。另外,以通信裝置1a向通信裝置1b發(fā)送數(shù)據(jù)的情況為例。并且,在第I實(shí)施方式中,為了易于理解,通信裝置1a和通信裝置1b使用WAN2中設(shè)置的專(zhuān)用線(xiàn)來(lái)進(jìn)行通信。并且,為了易于區(qū)分是通信裝置1a和通信裝置1b哪一個(gè)的動(dòng)作,在通信裝置10中的部分的編號(hào)之后記錄進(jìn)行該處理的通信裝置10的編號(hào)所含的字母。例如,測(cè)量部21a是通信裝置1a所含的測(cè)量部21,接收數(shù)據(jù)包管理部17b是通信裝置1b所含的接收數(shù)據(jù)包管理部17。
[0056](A)從終端I接收到的數(shù)據(jù)包的轉(zhuǎn)發(fā)處理
[0057]首先,終端I將目的地為服務(wù)器4的數(shù)據(jù)發(fā)送到通信裝置10a。在終端I和通信裝置1a之間的通信中,如圖5的(al)所示,使用TCP協(xié)議來(lái)進(jìn)行,適當(dāng)?shù)剡M(jìn)行確認(rèn)響應(yīng)、重發(fā)處理。當(dāng)開(kāi)始與終端I通信時(shí),通信裝置1a將用于唯一識(shí)別正進(jìn)行TCP通信的終端I的識(shí)別編號(hào)(TCP應(yīng)用識(shí)別符)分配給在與終端I之間的通信所使用的連接(connect1n)。
[0058]這里,設(shè)數(shù)據(jù)包PO?P19999被連續(xù)地向通信裝置1a發(fā)送。通信裝置1a的測(cè)量部21a在每次通信裝置1a從終端I接收數(shù)據(jù)包時(shí)將未接收數(shù)據(jù)包的期間的長(zhǎng)度復(fù)位為O。發(fā)送側(cè)的通信裝置1a的選擇部22a從收發(fā)部13a取得數(shù)據(jù)包PO并制成發(fā)送表(圖5的(a2)、 (a3))。
[0059]圖6(a)表示發(fā)送表的例子。發(fā)送表保持從終端I接收到的數(shù)據(jù)包。收發(fā)部13a將數(shù)據(jù)包PO輸出給選擇部22a。此時(shí),由于數(shù)據(jù)包PO是從終端I轉(zhuǎn)發(fā)給服務(wù)器4的對(duì)象數(shù)據(jù)包,所以選擇部22a對(duì)數(shù)據(jù)包PO附加表示為發(fā)送中的標(biāo)志。以下,有時(shí)將表示為發(fā)送中的標(biāo)志記載為“發(fā)送中標(biāo)志”。并且,選擇部22a針對(duì)從終端I接收到的各數(shù)據(jù)包,按每個(gè)TCP應(yīng)用識(shí)別符將序列ID分配為表示經(jīng)過(guò)相同的連接而接收到的數(shù)據(jù)包的順序的識(shí)別符。選擇部22a將經(jīng)過(guò)以TCP應(yīng)用識(shí)別符識(shí)別的連接而最初接收到的數(shù)據(jù)包的序列ID設(shè)為O,按成為接收到的數(shù)據(jù)包的順序的方式分配序列ID。在以下的說(shuō)明中,為了易于理解,以從終端I發(fā)送來(lái)的最初的數(shù)據(jù)包的序列編號(hào)為O的情況為例來(lái)進(jìn)行說(shuō)明。因此,在以下的例子中,數(shù)據(jù)包的TCP報(bào)頭中的序列編號(hào)與分配給數(shù)據(jù)包的序列ID是相同的值。選擇部22a生成以分配給數(shù)據(jù)包PO的序列ID作為鍵值的哈希表來(lái)存儲(chǔ)數(shù)據(jù)包PO。并且,選擇部22a將從收發(fā)部13a輸入的數(shù)據(jù)包PO與TCP應(yīng)用識(shí)別符以及序列ID建立對(duì)應(yīng)并輸出到轉(zhuǎn)發(fā)處理部 14a。
[0060]當(dāng)接收到Pl?P9999的數(shù)據(jù)包時(shí),也與PO時(shí)相同地進(jìn)行處理。因此,選擇部22a通過(guò)處理數(shù)據(jù)包PO?P9999,而具有存儲(chǔ)了圖6 (a)所示的信息的哈希表。并且,選擇部22a將數(shù)據(jù)包PO?P9999輸出給轉(zhuǎn)發(fā)處理部14a。轉(zhuǎn)發(fā)處理部14a將從選擇部22a輸入的數(shù)據(jù)包轉(zhuǎn)換為轉(zhuǎn)發(fā)數(shù)據(jù)包(圖5的(a4))。
[0061]圖7是表示數(shù)據(jù)包的格式的例子的圖。圖7是表示通信裝置1a與通信裝置1b之間收發(fā)的數(shù)據(jù)包的例子。以下,有時(shí)將通信裝置1a與通信裝置1b之間數(shù)據(jù)收發(fā)所使用的數(shù)據(jù)包記錄為“轉(zhuǎn)發(fā)數(shù)據(jù)包”。圖7(a)是數(shù)據(jù)的轉(zhuǎn)發(fā)中所使用的數(shù)據(jù)包的格式的例子。數(shù)據(jù)的轉(zhuǎn)發(fā)中所使用的轉(zhuǎn)發(fā)數(shù)據(jù)包包括:互聯(lián)網(wǎng)協(xié)議(IP)報(bào)頭、用戶(hù)數(shù)據(jù)協(xié)議(UDP)報(bào)頭、協(xié)議ID信息、數(shù)據(jù)報(bào)頭和數(shù)據(jù)。IP報(bào)頭和UDP報(bào)頭的格式如各自的協(xié)議規(guī)定那樣。協(xié)議ID存儲(chǔ)用于判定轉(zhuǎn)發(fā)數(shù)據(jù)包是用于數(shù)據(jù)的轉(zhuǎn)發(fā)還是用于數(shù)據(jù)的重發(fā)的信息。如圖7(c)所示,數(shù)據(jù)報(bào)頭包括:TCP應(yīng)用識(shí)別符、序列ID和數(shù)據(jù)包ID。數(shù)據(jù)是通過(guò)轉(zhuǎn)發(fā)數(shù)據(jù)包發(fā)送的數(shù)據(jù)。
[0062]圖7(d)是表示從選擇部22a輸入到轉(zhuǎn)發(fā)處理部14a的數(shù)據(jù)包的例子的圖。從選擇部22a輸入到轉(zhuǎn)發(fā)處理部14a的數(shù)據(jù)包包括:IP報(bào)頭、TCP報(bào)頭以及數(shù)據(jù)。轉(zhuǎn)發(fā)處理部14a不變更從選擇部22a輸入的數(shù)據(jù)包的IP報(bào)頭。
[0063]TCP報(bào)頭中包含的信息要素的例子在圖8(a)中示出。TCP報(bào)頭包括:發(fā)送源端口號(hào)、目的地端□號(hào)、序列編號(hào)、確認(rèn)響應(yīng)編號(hào)、數(shù)據(jù)偏移、保留區(qū)域、控制位、窗□大小、校驗(yàn)和、緊急指針和選項(xiàng)。另一方面,如圖8(b)所示,UDP報(bào)頭包括:發(fā)送源端口號(hào)、目的地端口號(hào)、數(shù)據(jù)段大小和校驗(yàn)和。
[0064]鑒于此,當(dāng)數(shù)據(jù)包PO被從選擇部22a輸入時(shí),轉(zhuǎn)發(fā)處理部14a從數(shù)據(jù)包PO的TCP報(bào)頭取得發(fā)送源端口號(hào)、目的地端口號(hào)和序列編號(hào)。轉(zhuǎn)發(fā)處理部14a將取得的發(fā)送源端口號(hào)和目的地端口號(hào)設(shè)定為轉(zhuǎn)發(fā)數(shù)據(jù)包的UDP報(bào)頭的發(fā)送源端口號(hào)和目的地端口號(hào)。轉(zhuǎn)發(fā)處理部14a使由選擇部22a通知的TCP應(yīng)用的識(shí)別符和序列ID包含在數(shù)據(jù)報(bào)頭。轉(zhuǎn)發(fā)處理部14將從終端I接收到的數(shù)據(jù)包的TCP報(bào)頭中所含的序列編號(hào)作為數(shù)據(jù)包ID記錄在數(shù)據(jù)報(bào)頭。
[0065]并且,轉(zhuǎn)發(fā)處理部14a將協(xié)議ID設(shè)定為表示數(shù)據(jù)的轉(zhuǎn)發(fā)的值。轉(zhuǎn)發(fā)處理部14a將數(shù)據(jù)包PO的數(shù)據(jù)作為轉(zhuǎn)發(fā)數(shù)據(jù)包的數(shù)據(jù),來(lái)設(shè)定數(shù)據(jù)段大小與校驗(yàn)和。通過(guò)以上的處理,轉(zhuǎn)發(fā)處理部14a將數(shù)據(jù)包PO轉(zhuǎn)換為包含有由數(shù)據(jù)包PO發(fā)送來(lái)的數(shù)據(jù)的轉(zhuǎn)發(fā)數(shù)據(jù)包。轉(zhuǎn)發(fā)處理部14a將生成的轉(zhuǎn)發(fā)數(shù)據(jù)包輸出給發(fā)送部IIa(圖5的(a5))。
[0066]圖9表示通信裝置1a與通信裝置1b之間的數(shù)據(jù)包的收發(fā)的例子。發(fā)送部Ila將從轉(zhuǎn)發(fā)處理部14a輸入的轉(zhuǎn)發(fā)數(shù)據(jù)包發(fā)送給通信裝置1b (圖5的(a6))。選擇部22a將發(fā)送部Ila發(fā)送了轉(zhuǎn)發(fā)數(shù)據(jù)包的時(shí)刻存儲(chǔ)為最終發(fā)送時(shí)刻。圖9的轉(zhuǎn)發(fā)數(shù)據(jù)包(UO)表示從數(shù)據(jù)包PO轉(zhuǎn)換后的轉(zhuǎn)發(fā)數(shù)據(jù)包。此外,對(duì)于通信裝置1a轉(zhuǎn)發(fā)給通信裝置1b的數(shù)據(jù)包,也與數(shù)據(jù)包PO相同,進(jìn)行轉(zhuǎn)發(fā)處理部14a中的轉(zhuǎn)換處理以及由發(fā)送部Ila進(jìn)行發(fā)送的發(fā)送處理。設(shè)圖9中從通信裝置1a發(fā)送給通信裝置1b的各數(shù)據(jù)包是附帶有與緊接在U之后的數(shù)字相同的值的序列ID的轉(zhuǎn)發(fā)數(shù)據(jù)包。其中,每當(dāng)從通信裝置1a發(fā)送轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),選擇部22a便將最終發(fā)送時(shí)刻更新為新的發(fā)