專利名稱:分組通信裝置的制作方法
技術領域:
本發(fā)明涉及一種連接至采用TCP(傳輸控制協(xié)議)的非對稱分組通信信道的分組通信裝置。
背景技術:
這里將描述一種傳統(tǒng)的分組通信方法,其中的移動通信系統(tǒng)中實施采用TCP的非對稱通信信道。圖1的方框圖表示該移動通信系統(tǒng)的結構。
在該移動通信系統(tǒng)中,如圖1所示,移動終端900通過無線基站裝置901與網絡(即IP網)902連接,該網絡902利用因特網協(xié)議(IP)傳輸數(shù)據(jù)分組。網絡(IP網)902中的服務器903通過應用TCP的非對稱通信信道與移動終端900進行數(shù)據(jù)分組通信。
也就是說,移動終端900通過無線基站裝置901接收服務器903通過IP網902發(fā)送的數(shù)據(jù)分組,并通過無線基站裝置901經IP網902向服務器903返回一個ACK分組。但是,移動終端900通過其接收數(shù)據(jù)分組的下行鏈路信道911具有比該終端900通過其返回ACK分組的上行鏈路信道912更高的信道速率。
圖2示出了該TCP分組格式。如圖2所示,一個TCP分組包括包頭1001和負載1002。包頭1001包括源端口號區(qū)1011;目標端口號區(qū)1012;序列號區(qū)1013;ACK數(shù)目區(qū)1014;包頭備用區(qū)1015;備用區(qū)1016;控制標識區(qū)1017;窗口大小區(qū)1018;TCP校驗和區(qū)1019;及緊急指針區(qū)1020。負載1002包括數(shù)據(jù)區(qū)1021。
下面簡要解釋一下序列號區(qū)1013、ACK數(shù)目區(qū)1014和窗口大小區(qū)1018。序列號區(qū)1013包括一個序列號SN,其指示整個數(shù)據(jù)流中的一個數(shù)據(jù)分組中包括的第一個數(shù)據(jù)的位置。
該控制標識區(qū)1017中的ACK標識指示ACK數(shù)目區(qū)1014中包括一個ACK數(shù)目AN。ACK數(shù)目區(qū)1014僅當存在ACK標識時有效。
為了向服務器903指示正確接收到的數(shù)據(jù)分組的源,ACK數(shù)目區(qū)1014中設置的ACK數(shù)目AN是接收端的移動終端900下一步期望接收的數(shù)據(jù)分組的序列號SN。即假定該數(shù)據(jù)分組在形成了一個連續(xù)數(shù)據(jù)流的接收數(shù)據(jù)分組中具有最新序列號SN,該數(shù)據(jù)分組的負載大小被加到了該序列號SN上,則該ACK數(shù)目AN指示該相加的結果值。附帶的,該數(shù)據(jù)分組的負載大小即數(shù)據(jù)區(qū)1021的大小。
當源端服務器903執(zhí)行窗口控制時使用窗口大小區(qū)1018。即,當接收端的移動終端900返回一個ACK分組時,在窗口大小區(qū)1018中設置一個指示移動終端900能夠接收以該ACK數(shù)目AN開始的數(shù)據(jù)分組的范圍的值并將該值報告給服務器903。
圖3示出服務器903的窗口控制。圖3中,在步驟S1110,服務器903設置一個大小為7的傳輸窗口大小作為傳輸窗口大小1110,并相應的根據(jù)該傳輸窗口大小1110通過數(shù)據(jù)分組1107順序地傳輸數(shù)據(jù)分組1101。另外,在圖3中,陰影區(qū)表示已經發(fā)送但還沒有被確認接收的數(shù)據(jù)分組。白色部分表示還沒有發(fā)送的數(shù)據(jù)分組。斜線部分表示已經被確認接收的數(shù)據(jù)分組。
在下一步驟S1111,服務器903接收ACK分組并因而確認該移動終端900已經接收到數(shù)據(jù)分組1101。服務器903根據(jù)從移動終端900接收的ACK分組的ACK數(shù)目AN和窗口大小獲取移動終端900能夠接收的數(shù)據(jù)分組的開始數(shù)目和數(shù)據(jù)分組數(shù)目,并與該數(shù)據(jù)分組數(shù)目的成比例的更新傳輸窗口。
在下一步驟S1112,服務器903發(fā)送更新后的傳輸窗口中的數(shù)據(jù)分組1108。
圖4是表示圖1所示的移動終端900在應用TCP的非對稱通信信道中執(zhí)行傳統(tǒng)的分組通信的方框圖。如圖4所示,圖1所示的移動終端900具有IP部分1210、TCP部分1220、應用部分1230、傳輸緩存器1240和讀取器1241。TCP部分1220具有數(shù)據(jù)分組接收器1221。
IP部分1210對通過下行鏈路信道911接收的IP分組執(zhí)行IP處理,并發(fā)送結果至數(shù)據(jù)分組接收器1221。另外,IP部分1210在從數(shù)據(jù)分組接收器1221中接收的ACK分組中增加IP包頭,并發(fā)送結果至傳輸緩存器1240。
數(shù)據(jù)分組接收器1221對從IP部分1210接收的數(shù)據(jù)分組執(zhí)行TCP處理,并發(fā)送結果至應用部分1230,并且,每接收一個數(shù)據(jù)分組,就指示一個ACK標識及產生一個設置了ACK數(shù)目AN和窗口大小的ACK分組,并發(fā)送該ACK分組至IP部分1210。以下的描述假定,每一個ACK分組,在窗口大小區(qū)1018中都有一個說明,說明接收ACK分組的服務器903通過更新ACK數(shù)目AN更新傳輸窗口,并且隨后該ACK數(shù)目AN將單獨被考慮。
應用部分1230是指一個用于處理用戶分組的應用層。
傳輸緩存器1240累加從IP部分1210接收的ACK分組。讀取器1241根據(jù)上行鏈路信道912的信道速率從傳輸緩存器1240中讀取該ACK分組,并發(fā)送該ACK分組至上行鏈路信道。
接下來,參考圖5和6,描述圖1所示的移動通信系統(tǒng)中利用TCP進行分組通信的步驟。圖5的序列圖示出了圖1所示的服務器903和移動終端900間執(zhí)行傳統(tǒng)的分組通信的步驟。圖6示出在圖5所示的從步驟S1362到步驟S1365期間圖4所示的傳輸緩存器1240的狀態(tài)。
為便于解釋,圖5中,對于所有的數(shù)據(jù)分組,設負載大小為1(字節(jié)),傳輸窗口大小為7。服務器903和移動終端900之間的箭頭表示分組傳輸及傳輸?shù)姆较?,該箭頭的角度表示服務器903和移動終端900間的傳輸延遲。
圖6中,示出了這樣一種情況,在圖5所示的步驟S1362至步驟S1365期間,移動終端900產生的ACK分組在傳輸緩存器1240中累加并通過讀取器1241發(fā)送到上行鏈路信道912。讀取器1241的右邊代表傳輸緩存器1240,左邊代表上行鏈路信道912。
在步驟A1381,服務器903根據(jù)傳輸窗口的大小7序列的發(fā)送7個數(shù)據(jù)分組(從數(shù)據(jù)分組801(SN=1)到數(shù)據(jù)分組807(SN=7))。
在步驟S1361,移動終端900接收第一個數(shù)據(jù)分組(SN=1)并立即在下面的步驟S1362產生ACK分組1341。從步驟S1362到步驟S1365的期間代表數(shù)據(jù)分組被接收直到ACK分組產生的處理延時。在ACK分組1341的ACK數(shù)目區(qū),ACK數(shù)目AN被設定,其即是期望接下來接收的數(shù)據(jù)分組的序列號SN2。
如圖6所示,產生的ACK分組1341(AN=2)在傳輸緩存器1240中累加。傳輸緩存器1240中沒有等待時間,因此讀取器1241立即開始向上行鏈路信道921發(fā)送ACK分組1341。在ACK分組1341的傳輸過程中移動終端900接收下一數(shù)據(jù)分組802(SN=2)。在下一步驟S1363,移動終端900產生ACK分組1342(AN=3)并將其累加在傳輸緩存器1240中。
因此,如圖6所示,ACK分組1341(AN=2)仍在傳輸過程中,因此重新產生的ACK分組1342需要在傳輸緩存器1240中等待。
在下一步驟S1364,再一次,移動終端900響應于接收到的數(shù)據(jù)分組1303(SN=3)產生一個ACK分組。但是,如圖6所示,由于ACK分組1341(AN=2)的傳輸仍在進行,因此新近產生的ACK分組1343(AN=4)等待在之前等待的ACK分組1342后傳輸。
然后,在步驟S1365,讀取器1241完成了ACK分組1341(AN=2)的傳輸,并同時開始傳輸正在等待的ACK分組1342(AN=3)。步驟S1362和步驟S1365間的間隔也即讀取器1241需要向上行鏈路信道912發(fā)送ACK分組的時間。
從步驟S1365開始的傳輸延時在整個ACK分組1341(AN=2)被服務器903接收到前是必需的。換句話說,服務器903在步驟S1382接收ACK分組1341(AN=2),其中傳輸延時的時間在步驟S1365之后已經過去了,并且,基于此,發(fā)送下一數(shù)據(jù)分組1308(SN=8)。
讀取器1241在步驟S 1366完成ACK分組1342(AN=3)的發(fā)送,并在同時開始發(fā)送ACK分組1343(AN=4)。這在圖6中沒有示出。
服務器903在步驟S1383接收ACK分組1342(AN=3),其中傳輸延時的時間在步驟S1366之后已經過去,并且,基于此,發(fā)送下一數(shù)據(jù)分組809(SN=9)。
下文中,每次讀取器1241完成一個ACK分組的傳送,就開始傳送已經在傳輸緩存器1240中等待的ACK分組。圖5僅示出在步驟S1367傳送ACK分組1343(AN=4)。
服務器903在步驟S1384接收ACK分組1343(AN=4),其中傳輸延時的時間在步驟S1367之后已經過去,并且,基于此,發(fā)送下一數(shù)據(jù)分組810(SN=10)。下文中,同樣,每次服務器903接收一個ACK分組,就開始傳送一個新的數(shù)據(jù)分組。
因此,當移動終端產生一個新的ACK分組,該分組具有最新的接收確認信息(即序列號SN)。然而,該新產生的ACK分組臨時存儲在傳輸緩存器1240中并在所有更早產生的ACK分組都已被發(fā)送完之后發(fā)送。換句話說,只要ACK分組存儲在存儲緩存器1240中,移動終端900就不能向服務器903發(fā)送最新的接收確認信息(即序列號SN)。
另一方面,當服務器903發(fā)送數(shù)據(jù)分組807(SN=7)時,服務器903將已經發(fā)送了該傳輸窗口大小的數(shù)據(jù)分組。之后,服務器903接收一個新的分組,校驗該ACK數(shù)目AN并通過一個分組更新該傳輸窗口,然后發(fā)送一個新的分組。
因此,服務器903發(fā)送完該傳輸窗口大小的數(shù)據(jù)分組后,服務器903能夠發(fā)送數(shù)據(jù)分組的時間周期等于移動終端900發(fā)送一個ACK分組所需要的時間,如步驟S1382,S1383,S1384所示。
一般的TCP采用延遲ACK技術,如在非專利文獻1中披露的,以減小要發(fā)送的ACK分組的數(shù)量。
通過利用這種延遲ACK技術,在移動終端900處,平均ACK分組產生間隔加倍,服務器903每隔接收一個數(shù)據(jù)分組的時間產生一個ACK分組。移動終端900發(fā)送的每個ACK分組中包含兩個數(shù)據(jù)分組的接收確認信息。
因此,以這種延遲ACK技術,在移動終端900處,存儲在傳輸緩存器1240中的ACK分組的數(shù)目減少到一半,在服務器903處,響應于一個ACK分組接收的傳輸窗口的更新寬度變?yōu)閮蓚€分組?;静僮髋c之前參考圖5和圖6描述的通信步驟相同。
然而,當分組通信是在應用了TCP的非對稱信道中執(zhí)行時,根據(jù)上述通信步驟,就出現(xiàn)了問題,服務器903在已經發(fā)送了傳輸窗口大小的數(shù)據(jù)分組之后,不能在一定水平之上獲得平均傳輸TCP吞吐量。
原因是服務器903每隔移動終端900發(fā)送一個ACK分組所需的時間更新該傳輸窗口,以及響應于一個ACK分組接收的傳輸窗口的更新寬度恒定為一個分組。這是因為一個ACK分組僅包含了一個分組的接收確認信息。
例如,即使下行鏈路信道911的信道速率增加到期望的大于平均傳輸吞吐量,傳輸窗口的更新間隔也不會改變,響應于一個ACK分組的接收的傳輸窗口的更新寬度也不會改變。因此,平均傳輸TCP吞吐量也不會改變。
當延遲ACK技術應用于上述分組通信中時,在服務器903處,響應于一個ACK分組接收的傳輸窗口的更新寬度變?yōu)閮蓚€分組,從而改善了平均傳輸TCP吞吐量??墒牵瑐鬏敶翱诘母麻g隔不會從傳送一個ACK分組所需的時間變化。
因此,利用延遲ACK技術或增加下行鏈路信道的信道速率僅僅能夠在一定程度上改善平均傳輸TCP吞吐量,仍然不能實現(xiàn)系統(tǒng)所期望的吞吐量。
發(fā)明內容
本發(fā)明就是要解決這些問題。因此本發(fā)明的一個目標是提供一種分組通信裝置,能夠對ACK分組執(zhí)行傳輸約束控制,當該分組通信裝置與服務器進行非對稱分組通信時,該服務器獲得系統(tǒng)期望獲得的平均傳輸TCP吞吐量。
根據(jù)本發(fā)明的一個方面,一個分組通信裝置通過一個高速接收信道接收數(shù)據(jù)分組并通過一個低速發(fā)送信道上發(fā)送ACK分組到非對稱分組信道,該分組通信裝置具有保持器,保持被發(fā)送的ACK分組的大小和發(fā)送信道的信道速率;計算器,根據(jù)該ACK分組的大小和該傳輸信道的信道速率計算一個ACK分組產生間隔;計數(shù)器,在一個周期內重復計數(shù)所計算的ACK分組產生間隔并在每個周期期滿時輸出一個期滿信號;和發(fā)送器,每當該期滿信號被輸入,產生與在期滿信號被接收期間接收到的數(shù)據(jù)分組有關的一個包含最新接收確認信息的ACK分組,并發(fā)送該ACK分組至傳輸級。
根據(jù)本發(fā)明的另一方面,一種分組通信裝置通過一個高速接收信道接收數(shù)據(jù)分組并通過一個低速發(fā)送信道發(fā)送一個ACK分組至非對稱分組信道,該分組通信裝置具有累加器,順序地累加每次數(shù)據(jù)分組被接收到時產生的ACK分組并順序地發(fā)送到ACK分組之前從其累積的傳輸級;和累加控制器,當一個新近產生的ACK分組在該累加器中累加時,該控制器比較即刻之前的最新累加的ACK分組與該新的ACK分組以確定是否該ACK分組匹配或不匹配,并且當該分組不匹配時,丟棄該即刻之前的ACK分組并累加該新的ACK分組,當該ACK分組匹配時,附加地累加該新的ACK分組至該累加器。
圖1是示出一種用于解釋傳統(tǒng)的應用TCP至非對稱通信信道的分組通信方法的移動通信系統(tǒng)的結構方框圖。
圖2示出一種TCP分組格式。
圖3是表示服務器的窗口控制。
圖4是表示其中圖1所示的移動終端執(zhí)行傳統(tǒng)的應用TCP至非對稱信道的分組通信的結構方框圖。
圖5是一個表示圖1示出的服務器和移動終端間進行傳統(tǒng)的分組通信的過程中的通信步驟的序列框圖。
圖6解釋了圖5中的步驟S1362至步驟S1365間的間隔期間圖12中的傳輸緩存器的狀況。
圖7是表示用于解釋根據(jù)本發(fā)明的實施例1的應用TCP至非對稱信道的分組通信方法的移動通信系統(tǒng)的結構方框圖。
圖8是表示圖7中的移動終端執(zhí)行根據(jù)本發(fā)明的實施例1的應用TCP至非對稱信道的分組通信的結構方框圖。
圖9是表示圖8所示的操作部操作的流程圖。
圖10是解釋根據(jù)本發(fā)明的一個實施例在圖7所示的服務器和移動終端間執(zhí)行分組通信的通信步驟的序列框圖。
圖11是解釋在圖10的步驟S462和步驟S464之間的間隔期間傳輸緩存器中的狀況。
圖12是表示用于解釋根據(jù)本發(fā)明的實施例2的應用TCP至非對稱信道的分組通信方法的移動通信系統(tǒng)的結構方框圖。
圖13是表示圖12中的移動終端執(zhí)行根據(jù)本發(fā)明的實施例2的應用TCP至非對稱信道的分組通信的結構方框圖。
圖14是表示圖13所示的寫入器的操作的流程圖。
具體實施例通過借助附圖在下文中將描述本發(fā)明的優(yōu)選實施例。但本發(fā)明并不僅限于這些實施例,而是可以在不脫離本發(fā)明的范圍的情況下進行各種修改。
本發(fā)明的主旨是,當通信終端與服務器進行非對稱分組通信時,允許該通信終端采用下面的方法(1)-(3)限制ACK分組的傳輸,以使得該服務器能夠獲得系統(tǒng)所期望的平均傳輸TCP吞吐量。
(1)該通信終端根據(jù)在一個傳輸信道上將要發(fā)送的ACK分組的大小和該傳輸信道的信道速率計算一個ACK分組產生間隔;在計算的該ACK分組產生間隔期間不響應接收的數(shù)據(jù)分組;每當該ACK分組產生間隔期滿,產生一個包含最新接收確認信息的ACK分組;并發(fā)送該ACK分組至一個在該ACK分組傳輸級提供的傳輸緩存器。在該傳輸緩存器中,該ACK分組被沒有等待的讀取并在該傳輸信道上傳送。
(2)該通信終端在該ACK分組產生級具有一個ACK分組傳輸緩存器,用于存儲每接收到一個數(shù)據(jù)分組時產生的ACK分組;比較該ACK分組傳輸緩存器中等待傳輸?shù)腁CK分組的ACK數(shù)目和重新產生的ACK分組的ACK數(shù)目;根據(jù)特定的規(guī)則去除該正在等待的ACK分組;并從該ACK分組緩存器中發(fā)送該新的ACK分組至在ACK分組傳輸系統(tǒng)中提供的傳送緩存器。
(3)該通信終端具有一個計數(shù)器,計數(shù)(1)和(2)中的ACK分組傳輸?shù)臄?shù)目;比較新近產生的ACK分組的ACK數(shù)目和之前的ACK分組的ACK數(shù)目;根據(jù)比較的結果,當該ACK的數(shù)目不匹配時復位計數(shù)器,當該ACK的數(shù)目匹配時更新該計數(shù)器;計數(shù)具有相同的ACK分組數(shù)目的連續(xù)ACK分組的次數(shù);如果該計數(shù)值大于預定的值,丟棄該新近產生的ACK分組。通過這種方式,冗余的ACK分組的產生和傳輸在傳輸錯誤頻繁發(fā)生的情況下就被抑制了。
接下來,將結合附圖描述本發(fā)明的實施例。
(實施例1)圖7是表示用于解釋根據(jù)本發(fā)明的實施例1的應用TCP至非對稱信道的分組通信方法的移動通信系統(tǒng)的結構方框圖。
在該移動通信系統(tǒng)中,如圖7所示,移動終端100通過無線基站裝置101與利用因特網協(xié)議(IP)轉發(fā)分組的網絡(IP網)102連接。服務器103位于網絡(IP網)102中,與應用TCP至非對稱信道的移動終端100進行分組通信。
換句話說,移動終端100通過無線基站裝置101接收從服務器103向IP網102發(fā)送的數(shù)據(jù)分組,并通過無線基站裝置101和IP網102向服務器103返回一個ACK分組。但是,移動終端100通過其接收數(shù)據(jù)分組的下行鏈路信道111的信道速率大于移動終端100通過其返回ACK分組的上行鏈路信道112的信道速率。
圖8是表示圖7中的移動終端執(zhí)行根據(jù)本發(fā)明的實施例1的應用TCP至非對稱信道的分組通信的結構方框圖。如圖8所示,圖7示出的移動終端100具有IP部分210、TCP部分220、應用部分230、傳輸緩存器240、讀取器241、控制器250和操作部251。TCP部分220具有數(shù)據(jù)分組接收器221、延遲ACK定時器部分223。
IP部分210對通過下行鏈路信道111接收的IP分組執(zhí)行IP處理,并發(fā)送結果至數(shù)據(jù)分組接收器221。另外,IP部分210在從數(shù)據(jù)分組接收器221中接收的ACK分組中增加IP包頭,并發(fā)送結果至傳輸緩存器240。
傳輸緩存器240累加從IP部分210接收的ACK分組。讀取器241根據(jù)上行鏈路信道112的信道速率從傳輸緩存器240中讀取該ACK分組,并發(fā)送該ACK分組至上行鏈路信道112。
控制器250保持上行鏈路信道112的信道速率(ru[比特/秒])和將被發(fā)送的ACK分組的大小(SA[字節(jié)]),并將其發(fā)送至操作部251。
操作部251從控制器250接收上行鏈路信道112信道速率和將要發(fā)送的ACK分組的大小,計算8*SA/ru[秒],這是一個ACK分組在讀取器241中的傳輸間隔,并發(fā)送該計算的結果至延遲ACK定時器223。
延遲ACK定時器223設置從操作部251接收到的計算結果作為該ACK分組產生間隔的定時周期,并在每次延遲ACK定時器223計數(shù)該ACK分組產生間隔時,發(fā)送一個延遲ACK定時器期滿通知給數(shù)據(jù)分組接收器221并復位該定時器。
數(shù)據(jù)分組接收器221發(fā)送從IP部分210接收的該數(shù)據(jù)分組至應用部分230,該應用部分230是一個處理用戶分組的應用層。因此數(shù)據(jù)分組接收器221不是在每接收一個數(shù)據(jù)分組時產生一個ACK分組。而是數(shù)據(jù)分組接收器221在每次從延遲ACK定時器223接收一個延遲ACK定時器期滿通知時產生一個ACK分組。
這里,數(shù)據(jù)分組接收器221接收至少一個數(shù)據(jù)分組并在其后從延遲ACK定時器223接收一個延遲ACK定時器期滿通知。當接收到一個延遲ACK定時器期滿通知時,數(shù)據(jù)分組接收器221產生一個具有即刻之前接收的數(shù)據(jù)分組的序列號SN的下一序列號SN作為它的ACK號AN的ACK分組,并發(fā)送該ACK分組至IP部分210。通過這種方式,ACK分組傳輸?shù)臄?shù)量被限制了。
另外,數(shù)據(jù)分組接收器221不僅對從IP部分210接收的數(shù)據(jù)分組執(zhí)行TCP處理并發(fā)送處理的結果至應用部分230,而且還通過觀察接收到的數(shù)據(jù)分組的序列號監(jiān)視是否發(fā)生丟失。當檢測到一個數(shù)據(jù)分組丟失,數(shù)據(jù)分組接收器221在檢測到丟失后立即發(fā)送一個ACK分組至IP部分210。
圖9是表示圖8所示的操作部操作的流程圖。在圖9中,操作部251從控制器250獲取將被發(fā)送的ACK分組的大小和上行鏈路信道112的信道速率(步驟ST301);計算該ACK分組產生間隔8*SA/ru[秒],這樣ACK分組不在傳輸緩存器240中累加(步驟ST301);并向延遲ACK定時器223報告該計算的ACK分組產生間隔(步驟ST302)。通過這種方式,在操作部251計算的該ACK分組產生間隔被設置為延遲ACK定時器223的周期。
順帶,操作部251可以通過下面的方法確定該被設定為延遲ACK定時器223的定時器周期的ACK分組產生間隔。即,ACK分組帶寬占用率α定義了期望的平均ACK分組傳輸率和上行鏈路信道112的信道速率間的比率,操作部251可以將上述的計算結果(8*SA/ru[秒])乘以α并發(fā)送該計算結果(8*α*SA/ru[秒])至延遲ACK定時器223。
接下來,結合圖10和圖11示出在圖7所示的移動通信系統(tǒng)中利用TCP執(zhí)行分組通信過程中的通信步驟。圖10是解釋根據(jù)本發(fā)明的一個實施例在圖7所示的服務器103和移動終端100間執(zhí)行分組通信的通信步驟的序列框圖。圖11是解釋在圖10示出的步驟S462和步驟S464之間的間隔期間傳輸緩存器240的狀況。
這里,圖10中為了便于解釋,對于所有的數(shù)據(jù)分組,負載大小為1(字節(jié)),傳輸窗口大小為7。另外,發(fā)送一個ACK分組所需的時間就是延遲ACK定時器的周期。順帶,服務器103和移動終端100間的箭頭表示分組傳輸及傳輸?shù)姆较?,箭頭的角度表示服務器103和移動終端100間的傳輸延遲。
另外,圖11示出了在圖10所示的步驟S462和步驟S464之間的期間,移動終端100產生的ACK分組在傳輸緩存器240中被累加,并通過讀取器241被發(fā)送到上行鏈路信道112。順帶,讀取器124的右邊代表傳輸緩存器240,左邊代表上行鏈路信道112。
參考圖10,從步驟S462到步驟S463的期間,示為“延遲ACK定時器操作”,從步驟S463到步驟S464的期間,從步驟S464到步驟S465的期間,及其他期間均是延遲ACK定時器223的周期并被設定為發(fā)送一個ACK分組所需的時間。當延遲ACK定時器223期滿時而不是其他時間執(zhí)行該ACK分組產生操作。相應的,服務器103和移動終端100間的分組通信執(zhí)行如下在步驟S481,服務器103根據(jù)傳輸窗口的大小“7”順序地向移動終端100發(fā)送7個數(shù)據(jù)分組,即數(shù)據(jù)分組401(SN=1)至數(shù)據(jù)分組407(SN=7)。
在步驟S461,移動終端100接收第一個數(shù)據(jù)分組401(SN=1)。在下面的步驟S462,延遲ACK定時器223第一次期滿。ACK分組441由此產生。在ACK分組441中,ACK號AN設定為序列號SN“2”,該序列號是期望接收的下一數(shù)據(jù)分組的序列號SN。產生的ACK分組441(AN=2)如圖11所示在傳輸緩存器240中累加。在傳輸緩存器240中沒有等待時間,讀取器241立即開始向上行鏈路信道112傳送。
同時,在步驟S462,延遲ACK定時器223重新開始并對第二次期滿的步驟S463計數(shù)。在步驟S462到步驟S463期間,延遲ACK定時器223一直在運行,ACK分組441(AN=2)的傳輸也在進行。數(shù)據(jù)分組402(SN=2)和數(shù)據(jù)分組403(SN=3)在此期間被接收,但不產生ACK分組。
在步驟S463,延遲ACK定時器223期滿,ACK分組441(AN=2)的傳輸結束。從步驟S463開始的傳輸延遲時間需要持續(xù)到ACK分組441(AN=2)全部被服務器103接收到。也就是說,服務器103在步驟S482接收ACK分組441(AN=2),傳輸延遲時間從步驟S463開始經過。這是傳輸窗口的7個數(shù)據(jù)分組都已被發(fā)送,并且因此服務器103開始傳輸操作,同時更新該傳輸窗口。
在步驟S482,服務器103從ACK分組441(AN=2)的ACK數(shù)AN識別一個數(shù)據(jù)分組(即,第一數(shù)據(jù)分組401(SN=1))的接收,更新該傳輸窗口為一個分組,并發(fā)送下一數(shù)據(jù)分組408(SN=8)。
在延遲ACK定時器223期滿的步驟S463,移動終端100產生一個ACK分組。但是,移動終端100已經接收到了不只一個數(shù)據(jù)分組并因此產生ACK分組442(AN=4),其是根據(jù)數(shù)據(jù)分組403(SN=3)被接收到后,延遲ACK定時器223期滿前期望接收到的下一數(shù)據(jù)分組(SN=4)產生的,并在傳輸緩存器240中累加ACK分組442。
但是,到那時,由讀取器241之前讀取的ACK分組441(AN=2)的傳輸已經結束。因此,在傳輸緩存器240中沒有等待時間的,在步驟S463讀取器241立即開始傳輸該分組442(AN=4)至上行鏈路信道112。
同時,在步驟S463,延遲ACK定時器223重新開始并對下一次期滿的步驟S464計數(shù)。在步驟S463到步驟S464期間,延遲ACK定時器223一直在運行,ACK分組442(AN=4)的傳輸也在進行。數(shù)據(jù)分組404(SN=4)和數(shù)據(jù)分組405(SN=5)在此期間被接收,但不產生ACK分組。
在步驟S464,延遲ACK定時器223期滿,ACK分組442(AN=4)的傳輸結束。從步驟S464開始的傳輸延遲時間需要持續(xù)到ACK分組442(AN=4)全部被服務器103接收到。也就是說,服務器103在步驟S483接收ACK分組442(AN=4),傳輸延遲時間從步驟S464開始經過。
此時,AN=4,服務器103識別兩個數(shù)據(jù)分組(即,數(shù)據(jù)分組402(SN=2)和數(shù)據(jù)分組403(SN=3))的接收,更新該傳輸窗口為兩個分組,并順序地發(fā)送兩個數(shù)據(jù)分組409(SN=9)和410(SN=10)。
在延遲ACK定時器223期滿的步驟S464,移動終端100產生一個ACK分組。但是,移動終端100已經接收到了不只一個數(shù)據(jù)分組并因此產生ACK分組443(AN=6),其是根據(jù)數(shù)據(jù)分組405(SN=5)被接收到后,延遲ACK定時器223期滿前期望接收到的下一數(shù)據(jù)分組(SN=6)產生的,在傳輸緩存器240中累加該ACK分組443。
但是,到那時,由讀取器241之前讀取的ACK分組442(AN=4)的傳輸已經結束。因此,在傳輸緩存器240中沒有等待時間的,在步驟S464讀取器241立即開始傳輸該ACK分組443(AN=6)至上行鏈路信道112。
同時,在步驟S464,延遲ACK定時器223重新開始并對下一次期滿的步驟S465計數(shù)。在步驟S464到步驟S465期間,延遲ACK定時器223一直在運行,ACK分組443(AN=6)的傳輸也在進行。數(shù)據(jù)分組406(SN=6)和數(shù)據(jù)分組407(SN=7)在此期間被接收,但不產生ACK分組。
在步驟S465,延遲ACK定時器223期滿,ACK分組443(AN=6)的傳輸結束。從步驟S465開始的傳輸延遲需要持續(xù)到ACK分組443(AN=6)全部被服務器103接收到。也就是說,服務器103在步驟S484接收ACK分組443(AN=6),傳輸延遲時間從步驟S465開始經過。
此時,AN=6,服務器103識別兩個分組(即,數(shù)據(jù)分組404(SN=4)和數(shù)據(jù)分組405(SN=5))的接收,更新該傳輸窗口為兩個分組,并順序地發(fā)送兩個數(shù)據(jù)分組411(SN=11)和412(SN=12)。之后,同樣的操作在移動終端100和服務器103間重復。
因此,根據(jù)本發(fā)明的實施例1,移動終端100根據(jù)發(fā)送一個ACK分組所需的時間確定ACK分組的產生間隔,在上一ACK分組已向上行鏈路信道112發(fā)送結束的時刻產生一個新的ACK分組,并開始發(fā)送該新的ACK分組至上行鏈路信道112,這樣傳輸緩存器240中ACK分組的累加被抑制。
當移動終端100產生一個ACK分組,移動終端100在其ACK分組中包含最新的接收確認信息,這樣向上行鏈路信道112的傳輸能夠立即開始,向服務器103報告該最新的接收確認信息所需的時間相比于現(xiàn)有技術可以大大縮短。
因此,服務器103每隔移動終端100需要發(fā)送一個ACK分組所需的時間接收一個ACK分組,并根據(jù)該ACK分組內包含的接收確認信息更新傳輸窗口。根據(jù)實施例1,因此能夠增加響應于一個ACK分組的接收的傳輸窗口的更新寬度。
例如,如果下行鏈路信道911的信道速率增加至期望的更大的平均傳輸吞吐量,移動終端100接收的數(shù)據(jù)分組的數(shù)量在延遲ACK定時器運行期間增加,與此相應,更多的接收確認信息包含在一個ACK分組中。結果,服務器響應于一個ACK分組的接收更新的傳輸窗口寬度增加,從而能夠實現(xiàn)系統(tǒng)所期望的平均傳輸TCP吞吐量。
(實施例2)圖12是表示用于解釋根據(jù)本發(fā)明的實施例2的應用TCP至非對稱信道的分組通信方法的移動通信系統(tǒng)的結構方框圖。圖12中與圖7所示的結構相同的部分被標以相同的附圖標記。下面的解釋側重于特別與實施例2相關的部分。
圖1示出的移動通信系統(tǒng)提供移動終端600而不是圖7所示的移動終端100。移動終端600的結構示于圖13。
圖13是表示圖12中的移動終端執(zhí)行根據(jù)本發(fā)明的實施例2的應用TCP至非對稱信道的分組通信的結構方框圖。圖13中與圖8所示的結構相同的部分被標以相同的附圖標記。下面的解釋側重于特別與實施例2相關的部分。
圖13所示的移動終端600從圖8所示的結構中去掉了控制器250和操作部251,用TCP部分720替換了TCP部分220。TCP部分720具有數(shù)據(jù)分組接收器721、寫入器722和ACK分組傳輸緩存器723。
數(shù)據(jù)分組接收器721對從IP部分210接收的數(shù)據(jù)分組執(zhí)行TCP處理,并發(fā)送結果至應用部分230,并且每接收到一個數(shù)據(jù)分組時,產生一個其中設置了ACK數(shù)目AN的ACK分組,并發(fā)送該ACK分組至寫入器722。
寫入器722在ACK分組傳輸緩存器723中寫入新產生的及從數(shù)據(jù)分組接收器721接收到的該ACK分組。在該寫入過程中,寫入器722比較新產生的ACK分組和即刻之前的ACK分組(在傳輸緩存器723中最后寫入的ACK分組)間的ACK分組數(shù)目AN。
當比較的結果顯示不匹配時,可能是新產生的ACK分組中暗含了在即刻之前的ACK分組中包含的接收確認信息,因此寫入器722從ACK分組傳輸緩存器723中去除了即刻之前的ACK分組,并向ACK分組傳輸緩存器723中寫入新產生的ACK分組。
此時,例如,即刻之前的ACK分組的ACK數(shù)目AN是10而新產生的ACK分組的ACK數(shù)目AN是20,即刻之前的ACK分組包含的接收確認信息表明移動終端600已經接收到了序列號SN小于9的數(shù)據(jù)分組。同時,新產生的ACK分組包含的接收確認信息表明移動終端600接收到了序列號SN小于19的數(shù)據(jù)分組。也就是說,新產生的ACK分組中暗含了包含在即刻之前的ACK分組中包含的接收確認信息。該即刻之前的ACK分組因此被去除了。
另一方面,當比較的結果顯示匹配時,可能是新產生的ACK分組是一個具有與即刻之前的ACK分組相同ACK數(shù)目的冗余的ACK分組,因此寫入器722在傳輸緩存器723中寫入了新產生的ACK分組。
在ACK分組傳輸緩存器723中寫入的ACK分組被從ACK傳輸緩存器723以其寫入順序讀取并被發(fā)送給IP部分210。
接下來,下面將結合附圖14描述寫入器722的操作。圖14是表示圖12所示的寫入器的操作的流程圖。在圖14中,寫入器722確定新產生的ACK分組是否已經被從數(shù)據(jù)分組接收器721接收到(步驟ST801)。如果確定的結果是該ACK分組還沒有接收到(步驟ST801否),該處理被終止。如果該ACK分組已經被接收到(步驟ST801是),該過程進行到步驟ST802,確定該即刻之前的ACK分組是否存在于ACK分組傳輸緩存器723中。
如果步驟ST802中比較的結果表明該即刻之前的ACK分組沒有存在于ACK分組傳輸緩存器723中(步驟ST802否),處理進行到步驟ST805。如果該即刻之前的ACK分組存在于ACK分組傳輸緩存器723中(步驟ST802是),處理進行到步驟ST803。
步驟ST803比較新產生的ACK分組和即刻之前的ACK分組間的ACK數(shù)目AN,并確定該ACK數(shù)目AN是否匹配。即,步驟ST803確定該新產生的ACK分組是否是一個冗余的分組。作為確定的結果,如果該新產生的ACK分組是一個冗余的ACK分組(步驟ST803是),該處理進行到步驟ST805。如果新產生的該ACK分組不是一個冗余的ACK分組(步驟ST803否),處理進行到步驟ST804。
步驟ST804去除存在于ACK分組傳輸緩存器723中的該即刻之前的ACK分組并進行到步驟ST805。步驟ST805在ACK分組傳輸緩存器723中寫入新產生的ACK分組并結束該處理。
根據(jù)實施例2的分組通信步驟基本與圖10和11所示的根據(jù)實施例1的分組通信步驟相同,這里不再解釋。只是ACK分組產生的觸發(fā)改變。在兩種情況下,在發(fā)送ACK分組的過程中均可能獲得最新的信息。
因此,根據(jù)實施例2,在移動終端800的TCP部分中提供的ACK分組傳輸緩存器723在一個舊的ACK分組上寫入一個新的ACK分組,因此只存在一個包含最新接收確認信息的ACK分組。當一個ACK分組的傳輸結束,讀取器741接收來自ACK分組傳輸緩存器723的ACK分組,并開始向上行鏈路信道112發(fā)送該ACK分組,這樣最新的接收確認信息可以報告給服務器103。
服務器103以移動終端600發(fā)送一個ACK分組所需的時間為間隔接收一個分組,并根據(jù)包含在該ACK分組中的接收確認信息更新傳輸窗口。因此,如果例如下行鏈路信道111的信道速率增加到所期望的更大的平均傳輸吞吐量,寫入ACK分組傳輸緩存器中的ACK分組的數(shù)量也增加。但是,該ACK分組而不是最后寫入的ACK分組被丟棄,最后寫入的ACK分組中包含了更多的接收確認信息。結果,由服務器103響應于一個ACK分組的接收而更新的傳輸窗口寬度增加,這樣系統(tǒng)所期望的平均傳輸TCP吞吐量能夠實現(xiàn)。
如果移動終端100和600中的數(shù)據(jù)分組接收器221和721檢測到一個數(shù)據(jù)分組丟失,則產生與即刻之前的ACK分組具有相同ACK數(shù)目AN的幾個冗余的分組。這種情況下,根據(jù)TCP算法,為了使服務器103檢測由接收冗余的ACK分組引起的擁塞,三個連續(xù)的冗余ACK分組就已足夠。
因此,數(shù)據(jù)分組接收器221和721具有一個計數(shù)器,其計數(shù)ACK分組傳輸?shù)臄?shù)量,比較新近產生的ACK分組和即刻之前的ACK分組的ACK數(shù)目,如果比較的結果顯示不匹配時復位該計數(shù)器,如果比較的結果顯示匹配則更新該計數(shù)器,從而計數(shù)有多少具有相同數(shù)目連續(xù)的ACK分組。相應的,如果該計數(shù)值大于一個閾值,則新產生的ACK分組可以丟棄。
通過這種方式,當一個數(shù)據(jù)分組丟失被檢測到并且N(N>3)個或更多個冗余的ACK分組被連續(xù)產生時,第N個之后的冗余的ACK分組被丟棄,不需要傳送到IP部分210,這樣冗余ACK分組的產生和傳輸?shù)膱?zhí)行是在傾向抑制傳輸錯誤及不相關的ACK分組的傳輸進一步抑制的情況下。
移動終端100和600的硬件結構是任意的并不受任何限制。例如,移動終端100和600可通過一個具有CPU和存儲設備(ROM、RAM、硬盤及其他存儲介質)的計算機實施。如果移動終端100和600通過一個計算機實施,則CPU執(zhí)行一個程序,該程序中移動終端100和600的操作被編程,移動終端100和600執(zhí)行預定的操作。
本申請是基于日本專利申請NO.2003-163214,其全部內容在此引入作為參考。
工業(yè)應用性可以執(zhí)行抑制ACK分組傳輸?shù)目刂?,以在服務器上獲得系統(tǒng)所期望的平均傳輸TCP吞吐量。
權利要求
1.一種分組通信裝置,通過一個高速接收信道接收數(shù)據(jù)分組并通過一個低速發(fā)送信道發(fā)送ACK分組到非對稱分組信道,該分組通信裝置包括保持器,保持被發(fā)送的ACK分組的大小和發(fā)送信道的信道速率;計算器,根據(jù)該ACK分組的大小和該傳輸信道的信道速率計算一個ACK分組產生間隔;計數(shù)器,在一個周期內重復計數(shù)所計算的ACK分組產生間隔并在每個周期期滿時輸出一個期滿信號;和發(fā)送器,每當該期滿信號被輸入,產生與在期滿信號被接收期間接收到的數(shù)據(jù)分組有關的一個包含最新接收確認信息的ACK分組,并發(fā)送該ACK分組至傳輸級。
2.一種分組通信裝置,通過一個高速接收信道接收數(shù)據(jù)分組并通過一個低速發(fā)送信道發(fā)送一個ACK分組至非對稱分組信道,該分組通信裝置包括累加器,順序地累加每次數(shù)據(jù)分組被接收到時產生的ACK分組并順序地發(fā)送到ACK分組之前從其累積的傳輸級;和累加控制器,當一個新近產生的ACK分組在該累加器中累加時,該控制器比較即刻之前的最新累加的ACK分組與該新的ACK分組以確定是否該ACK分組匹配或不匹配,并且當該分組不匹配時,丟棄該即刻之前的ACK分組并累加該新的ACK分組,當該ACK分組匹配時,附加地累加該新的ACK分組至該累加器。
3.如權利要求1所述的分組通信裝置,進一步包括計數(shù)器,計數(shù)發(fā)送ACK分組的次數(shù);更新器,比較最新產生的ACK分組和即刻之前產生的ACK分組,并當該ACK分組不匹配時復位該計數(shù)器,當該ACK分組匹配時更新該計數(shù)器;當該計數(shù)器的計數(shù)值超出了一個設定值時丟棄該最新產生的ACK分組的部分。
4.如權利要求2所述的分組通信裝置,進一步包括計數(shù)器,計數(shù)發(fā)送ACK分組的次數(shù);更新器,比較最新產生的ACK分組和即刻之前產生的ACK分組,并當該ACK分組不匹配時復位該計數(shù)器,當該ACK分組匹配時更新該計數(shù)器;當該計數(shù)器的計數(shù)值超出了一個設定值時丟棄該最新產生的ACK分組的部分。
全文摘要
移動終端(100)包括計算部分(251),根據(jù)由控制部分(250)保持的傳輸線的線速度和發(fā)送的ACK分組的大小,計算ACK分組產生間隔;延遲ACK定時器(223),重復計時所計算的ACK分組產生間隔作為一個周期,并在每次該周期期滿時輸出一個期滿信號;數(shù)據(jù)分組接收部分(221),在每次期滿信號被輸入時,產生一個包含與在期滿信號被接收期間接收到數(shù)據(jù)分組相關的最新接收確認信息的ACK分組,并通過IP部分(210)發(fā)送該ACK分組至傳輸緩存器(240)。
文檔編號H04L29/06GK1833422SQ20048002280
公開日2006年9月13日 申請日期2004年6月9日 優(yōu)先權日2003年6月9日
發(fā)明者石森貴之, 樋口信一, 飯?zhí)锝∫焕?申請人:松下電器產業(yè)株式會社