專利名稱:數(shù)據(jù)通信方法和信息處理設備的制作方法
技術領域:
本公開涉及一種數(shù)據(jù)通信方法和信息處理設備,其能夠在服務器設備和客戶端設備之間建立多個TCP (傳輸控制協(xié)議)連接并且通過所述多個TCP連接來傳遞為每個規(guī)定單元劃分的每條數(shù)據(jù)。
背景技術:
在現(xiàn)有技術中,存在在因特網(wǎng)上通過HTTP (超文本傳輸協(xié)議)傳遞來自服務的網(wǎng)頁和內(nèi)容的廣泛使用的方法。例如,可能通過HTTP執(zhí)行數(shù)據(jù)的下載(GET)或上載(PUT)。一般而言,在單個TCP上執(zhí)行HTTP。TCP是能夠進行異步雙向通信的傳輸。在 HTTP中,作為客戶端的信息處理設備和作為服務器的信息處理設備通過單個TCP連接交換對下載(GET)或上載(PUT)數(shù)據(jù)的請求或者對請求的答復。具體地,客戶端傳送上載請求 (PUT請求),并且然后在PUT請求之后傳送要上載的數(shù)據(jù)。另一方面,當客戶端傳送下載請求(GET請求)時,服務器傳送對GET請求的答復,并且在答復之后傳送要下載的數(shù)據(jù)。這里,在帶寬充分大并且其中延遲較大的環(huán)境下每一個TCP的吞吐量依賴于TCP 的流控制的方法。這里,通過每套接字(s0Cket)/RTT(往返時間,分組的往返所必要的時間)的接收緩沖器大小來獲得最大吞吐量。當由于上述因素限制TCP的最大吞吐量時,在帶寬充分大并且其中延遲較大的環(huán)境下,存在不能充分展示鏈路的原本能力的擔憂。由于該原因,已建議了 SPDY,其是替代HTTP作為因特網(wǎng)內(nèi)容的通信協(xié)議的標準 (例如,參考在因特網(wǎng)URL :http //www, chromium, org/spdy (在2010年10月18日搜索的) 上的在線文檔“SPDY”)。在SPDY中,改進在于通過改變HTTP的層而可能有效地甚至在一個TCP上傳送因特網(wǎng)的各種內(nèi)容。SPDY提供了解決由HTTP導致的問題的線索(例如,需要完成請求序列中的數(shù)據(jù)通信等等)以及使得瀏覽器能夠執(zhí)行有效的預讀取的線索。此外,已提出了利用HTTP通過使用多個TCP連接并行傳送數(shù)據(jù)的方法(例如,參照日本未審專利申請公布No. 2005-57482)。
發(fā)明內(nèi)容
然而,預讀取僅在能夠進行預讀取的情境中是有效的,并且在許多情況下,難以執(zhí)行預讀取。在因特網(wǎng)URL ;http://www. chromium, org/spdy (在2010年10月18日搜索的) 上的在線文檔“SPDY”的描述中,難以傳送比TCP的吞吐量的上限大的數(shù)據(jù)。此外,在日本未審專利申請公布No. 2005-57482中,假定同時發(fā)送的數(shù)據(jù)流是單個的。因而,難以同時處理多個請求以及改變其順序。此外,由于TCP連接的數(shù)目是恒定的,所以難以動態(tài)地限制資源以及應對環(huán)境改變。此外,在日本未審專利申請公布 No. 2005-57482中,沒有考慮在TCP斷開連接時的數(shù)據(jù)的恢復??紤]到上述情形,期望提供一種能夠基于HTTP增加數(shù)據(jù)通信速度的數(shù)據(jù)通信方法和信息處理設備。根據(jù)本公開的實施例,提供了一種在第一信息處理設備和第二信息處理設備之間
3建立多個TCP (傳輸控制協(xié)議)連接并且通過多個所建立的TCP連接來傳遞為每個規(guī)定單元劃分的每條數(shù)據(jù)的數(shù)據(jù)通信方法。所述第一信息處理設備通過向所述第二信息處理設備通知連接上限信息、并且通過改變被通知的連接上限信息來動態(tài)地改變與所述第二信息處理設備的TCP連接數(shù)目,所述連接上限信息表示要與所述第二信息處理設備建立的TCP連接的數(shù)目的上限。根據(jù)本公開的所述實施例,通過動態(tài)地增加或減少TCP連接的數(shù)目,能夠控制吞吐量。例如在以下情況中,對TCP連接的數(shù)目的動態(tài)控制是有利的。在其中單個所述第一信息處理設備(服務器設備)和多個所述第二信息處理設備(客戶端設備)幾乎同時執(zhí)行通信的情況下,由于所述第一信息處理設備的處理能力的限制,每一個第二信息處理設備能夠提供的吞吐量是有限的。當?shù)诙畔⑻幚碓O備的數(shù)目增加時,通過降低到所連接的第二信息處理設備的吞吐量,可能使它們等于到新的第二信息處理設備的吞吐量。由此,可能在多個第二信息處理設備間同等地執(zhí)行服務。優(yōu)選地,所述第一信息處理設備應依據(jù)連接上限信息的改變而順序地更新命令順序信息,并且應該向所述第二信息處理設備傳送所述信息。優(yōu)選地,所述第二信息處理設備應該基于所接收的命令順序信息識別出來自所述第一信息處理設備的最近的連接上限信息。當由所述第一信息處理設備傳送的多條不同連接上限信息通過不同的TCP連接到達所述第二信息處理設備時,所述多條連接上限信息的到達順序可能不同于其傳送的順序。在這種情況下,即使當隨后傳送的最近的連接上限信息比先前傳送的連接上限信息早到達時,所述第二信息處理設備也能夠基于所述命令順序信息識別出最近的連接上限信息的通知。優(yōu)選地,所述第一信息處理設備應該向每條已劃分數(shù)據(jù)的頭部添加連接上限信息和命令順序信息,并且應該向所述第二信息處理設備傳送所述信息。當連接上限信息和命令順序信息被添加到頭部時,所述第一信息處理設備不必與已劃分數(shù)據(jù)分開地向所述第二信息處理設備傳送請求以通知連接上限信息。此外,所述第二信息處理設備能夠在必要時參考各條已劃分數(shù)據(jù)的頭部直接識別出連接信息的更新。優(yōu)選地,所述第二信息處理設備應該向所述第一信息處理設備傳送包括用于指定數(shù)據(jù)的數(shù)據(jù)指定信息的傳送請求。優(yōu)選地,所述第一信息處理設備應該將在所接收的傳送請求中包括的數(shù)據(jù)指定信息所指定的數(shù)據(jù)劃分成用于每個規(guī)定單元的各條,應該將數(shù)據(jù)指定信息添加到每條已劃分數(shù)據(jù)的頭部,并且應該將所述數(shù)據(jù)傳送到所述第二信息處理設備。所述第二信息處理設備能夠參考添加到每條已劃分數(shù)據(jù)的頭部的數(shù)據(jù)指定信息而不管各條已劃分數(shù)據(jù)的接收順序來恢復具有相同數(shù)據(jù)指定信息的每條已劃分數(shù)據(jù)的數(shù)據(jù)。例如,當下載多條數(shù)據(jù)時,所述第二信息處理設備可能按照對一個數(shù)據(jù)被劃分到的數(shù)據(jù)條與另一個數(shù)據(jù)被劃分到的數(shù)據(jù)條進行混合的順序來接收所述一個數(shù)據(jù)被劃分到的數(shù)據(jù)條和所述另一個數(shù)據(jù)被劃分到的數(shù)據(jù)條。即使在這種情況下,所述第二信息處理設備也能夠參考用于指定每條數(shù)據(jù)的數(shù)據(jù)指定信息來恢復用于具有相同數(shù)據(jù)指定信息的每條已劃分數(shù)據(jù)的多條數(shù)據(jù)。優(yōu)選地,所述第一信息處理設備應該進一步將用于識別沒有被劃分的數(shù)據(jù)的上下文的上下文識別信息添加到每條已劃分數(shù)據(jù)的頭部。由此,不管接收各條已劃分數(shù)據(jù)的順序如何,所述第二信息處理設備能夠參考上下文識別信息來按照正確順序恢復數(shù)據(jù)。根據(jù)本公開的另一個實施例,一種信息處理設備包括能夠連接到網(wǎng)絡的網(wǎng)絡連接部件和改變裝置。當通過所述網(wǎng)絡連接部件建立與不同信息處理的多個TCP (傳輸控制協(xié)議)連接、 并且通過多個所建立的TCP連接傳遞為每個規(guī)定單元劃分的每條數(shù)據(jù)時,所述改變裝置通過向不同信息處理通知連接上限信息、并且通過改變要通知的連接上限信息來動態(tài)地改變與不同信息處理的TCP連接的數(shù)目,所述連接上限信息表示要與不同信息處理建立的TCP 連接的數(shù)目的上限。根據(jù)本公開的該實施例,能夠基于HTTP增加數(shù)據(jù)通信的速度。
圖1是圖示根據(jù)本公開的實施例的數(shù)據(jù)通信系統(tǒng)的配置的圖;圖2是圖示客戶端設備和服務器設備的功能性配置的框圖;圖3是圖示在客戶端設備從服務器設備下載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法的順序圖;圖4是圖示在客戶端設備向服務器設備上載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法的順序圖;圖5是圖示在數(shù)據(jù)通信的動作(下載)中在增加TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的順序圖;圖6是圖示在數(shù)據(jù)通信的動作(上載)中在增加TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的順序圖;圖7是圖示在數(shù)據(jù)通信的動作中在減少TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的順序圖;圖8是圖示在客戶端設備向服務器設備傳送GET請求并且在從服務器設備獲取響應之前進一步傳送PUT請求的情況下的數(shù)據(jù)通信方法(流水線技術pipelining)的順序圖;圖9是圖示在客戶端設備向服務器設備傳送GET請求并且在從服務器設備獲取響應之前進一步傳送分開的GET請求的情況下的數(shù)據(jù)通信方法(流水線技術)的順序圖;圖10是圖示客戶端設備的硬件配置的框圖;以及圖11是圖示服務器設備的硬件配置的框圖。
具體實施例方式在下文中,將參考附圖描述本公開的實施例。數(shù)據(jù)通信系統(tǒng)的配置圖1是圖示根據(jù)本公開的實施例的數(shù)據(jù)通信系統(tǒng)的配置的圖。信息處理系統(tǒng)100具有服務器設備300和一個或多個客戶端設備200??蛻舳嗽O備200和服務器設備300通過全局網(wǎng)絡101彼此連接通信。應指出的是,在下文中將僅僅描述多個客戶端設備200中的一個客戶端設備200??蛻舳嗽O備200和服務器設備300中的每一個被配置為包括諸如PC (個人計算機)的信息處理設備,并且能夠通過使用TCP連接而通過HTTP來傳遞數(shù)據(jù)。例如,客戶端設備200通過HTTP向服務器設備300傳送數(shù)據(jù)上載請求(在下文中稱為“HTTP PUT請求”或簡稱為“PUT請求”,并且隨后向服務器設備300傳送要上載的數(shù)據(jù)。此外,客戶端設備200通過HTTP向服務器設備300傳送數(shù)據(jù)下載請求(在下文中稱為 "HTTP GET請求”或簡稱為“GET請求”。當接收到GET請求時,服務器設備300向客戶端設備200傳送要下載的數(shù)據(jù)。以這樣的方式,客戶端設備200能夠向服務器設備300上載數(shù)據(jù)和從服務器設備300下載數(shù)據(jù)(所謂的云計算)??蛻舳嗽O備和服務器設備的功能性配置圖2是圖示客戶端設備和服務器設備的功能性配置的框圖??蛻舳嗽O備200具有客戶端側并行通信部件201、客戶端側收集通信部件202、客戶端側分發(fā)通信部件203、客戶端側通信部件204、瀏覽器205和UI (用戶接口)206。UI 206是用于在客戶端設備200和用戶之間交換信息的接口。瀏覽器205響應于從用戶接收通過UI 206輸入的請求而執(zhí)行HTTP處理,并且執(zhí)行用于分析內(nèi)容的處理等??蛻舳瞬⑿型ㄐ挪考?01通過建立多個TCP連接而執(zhí)行用于發(fā)起并行通信的處理寸??蛻舳藗确职l(fā)通信部件203執(zhí)行用于通過使用多個TCP連接經(jīng)由客戶端側通信部件204來分發(fā)傳送HTTP事務的處理等??蛻舳藗仁占ㄐ挪考?02執(zhí)行用于通過收集由客戶端側通信部件204經(jīng)由多個 TCP連接接收的內(nèi)容(塊)而執(zhí)行恢復的處理等。服務器設備300具有服務器側并行通信部件301、服務器側收集通信部件302、服務器側分發(fā)通信部件303、服務器側通信部件304、web服務器306和后端服務305。Web服務器306基于HTTP執(zhí)行用于在客戶端設備200的瀏覽器205上顯示數(shù)據(jù)等的處理。后端服務305執(zhí)行對用戶通過瀏覽器205請求的命令的處理等。服務器側并行通信部件301 (改變裝置)執(zhí)行用于響應于從客戶端側并行通信部件201接收并行通信的請求而指定適合于傳送和接收數(shù)據(jù)的TCP連接數(shù)目的上限的處理寸。服務器側分發(fā)通信部件303執(zhí)行用于通過使用多個TCP連接經(jīng)由服務器側通信部件304分發(fā)傳送HTTP事務的處理等。服務器側收集通信部件302執(zhí)行用于通過收集由服務器側通信部件304經(jīng)由多個 TCP連接接收的內(nèi)容(塊)而執(zhí)行恢復的處理等。數(shù)據(jù)通信方法接下來,將描述根據(jù)實施例的數(shù)據(jù)通信方法。將以下列項的次序給出描述。1.在客戶端設備200從服務器設備300下載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法;2.在客戶端設備200向服務器設備300上載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法;3.在數(shù)據(jù)通信的動作(下載)中增加TCP連接數(shù)目的情況下的數(shù)據(jù)通信方法;
4.在數(shù)據(jù)通信的動作(上載)中增加TCP連接數(shù)目的情況下的數(shù)據(jù)通信方法;5.在數(shù)據(jù)通信的動作中減少TCP連接數(shù)目的情況下的數(shù)據(jù)通信方法;6.在客戶端設備200向服務器設備300傳送GET請求并且在從服務器設備300獲取響應之前進一步傳送PUT請求的情況下的數(shù)據(jù)通信方法(流水線技術);7.在客戶端設備200向服務器設備300傳送GET請求并且在從服務器設備300獲取響應之前進一步傳送分開的GET請求的情況下的數(shù)據(jù)通信方法(流水線技術);8.從TCP連接的無意連接斷開中恢復數(shù)據(jù)的方法(下載時);9.從TCP連接的無意連接斷開中恢復數(shù)據(jù)的方法(上載時)。1.在客戶端設備從服務器設備下載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法當從瀏覽器205接收到HTTP請求(內(nèi)容接收請求)時,客戶端側并行通信部件 201按照以下次序開始并行通信傳送HTTP GET請求(步驟S101);接收HTTP響應頭部部分(步驟S102);建立第二和隨后的TCP連接(步驟S105至S107);以及向客戶端側收集通信部件202和客戶端側分發(fā)通信部件203通知已建立的TCP連接。應注意的是,在所有情況下,從客戶端設備200向服務器設備300發(fā)起下面將描述的TCP連接的建立。原因在于增加從客戶端設備200到服務器設備300的連接被建立的可能性。一般而言,用于允許建立連接的環(huán)境條件比用于等待連接的環(huán)境條件更寬松。例如, 假定下面的環(huán)境在設備和網(wǎng)絡101之間存在用于控制從外部到內(nèi)部的通信的網(wǎng)關。網(wǎng)關通過阻止不適當?shù)耐ㄐ艁肀3謨?nèi)部環(huán)境健康。為了等待連接,網(wǎng)關應該允許通信到總是固定的端口,因而有必要提供單獨的計數(shù)器措施以阻止到該端口地址的不期望通信。另一方面,為了建立連接,僅在存在從內(nèi)部到外部的通信時,可以僅允許從外部到內(nèi)部的用于其答復的通信。作為答復阻止從不適當發(fā)送方發(fā)送的通信是容易的。如上所述,通過設置容易構建為客戶端側條件的環(huán)境,該方法容易地被應用于作為正常用戶訪問的服務的模型。圖3是圖示在客戶端設備從服務器設備下載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法的順序圖。此外,圖中的每個實線箭頭表示通過客戶端側通信部件204和服務器側通信部件 304在客戶端側并行通信部件201和服務器側并行通信部件301之間的通信。圖中的每個點劃線箭頭表示通過客戶端側通信部件204和服務器側通信部件304在客戶端側收集通信部件202和服務器側分發(fā)通信部件303之間的通信。當從瀏覽器205接收到內(nèi)容接收請求時,客戶端側并行通信部件201建立第一 TCP 連接#0(在下文中稱為“主連接#0”)??蛻舳藗炔⑿型ㄐ挪考?01生成HTTP GET請求,其中向其傳輸編碼頭部(在下文中簡稱為“TE頭部”)分配值“mtcp”。客戶端側并行通信部件201通過客戶端側通信部件204使用主連接#0來向服務器設備300傳送所生成的HTTP GET請求(步驟S101)。當通過服務器側通信部件304從客戶端側并行通信部件201接收到HTTP GET請求時,服務器側并行通信部件301向后端服務305發(fā)出數(shù)據(jù)傳送請求。通過請求的URL來指定目標數(shù)據(jù)的位置。后端服務305將從客戶端設備200請求的數(shù)據(jù)存儲在服務器側分發(fā)通信部件303的發(fā)送緩沖器(圖中未示出)中。然后,服務器側并行通信部件301通過服務器設備300發(fā)出獨特的會話 icKsession-id)。此外,服務器側并行通信部件301確定適合于傳送HTTP GET請求所請求下載的數(shù)據(jù)的TCP連接的數(shù)目的上限(例如,在每一個TCP 3Mbps以8Mbps流送內(nèi)容的環(huán)境下,數(shù)目是幻。服務器側并行通信部件301生成HTTP響應Q000K)作為對HTTP GET請求的響應,其表示會話id和TCP連接數(shù)目的上限值。向HTTP響應Q000K)的TE頭部分配值“mtcp”。服務器側并行通信部件301通過服務器側通信部件304使用主連接#0來向客戶端設備200傳送所生成的HTTP響應O000K)(步驟S102)。然后,服務器側并行通信部件 301向服務器側分發(fā)通信部件303通知由接收的HTTP GET請求所請求下載的數(shù)據(jù)。這里,HTTP響應Q000K)包括MTCP會話頭部。MTCP會話頭部的語法如下“MTCP -Session,x‘ "session-id",”tid[“,”con]。這里“session-id”是指定屬于相同會話的連接的整數(shù)。“tid”(傳輸ID,數(shù)據(jù)指定信息)是用于指定要傳送的數(shù)據(jù)的整數(shù),即指定事務的整數(shù),并且在單個會話的持續(xù)期間使用唯一的值。“con”(連接上限信息)是一整數(shù),該整數(shù)表示服務器設備300通過其能夠對應于客戶端設備200的TCP連接數(shù)目的上限(最大數(shù)目)。此外,“con”對于特定會話中的第一事務的情況是必不可少的,但是如果其使用與先前值相同的值,則可以被省略。此外,服務器設備300確定連接的適當數(shù)目(連接數(shù)目的上限)。原因在于與客戶端設備200相比,應該處理到多個客戶端設備200的多個連接的服務器設備300容易受處理能力的限制所影響。在圖的步驟S102中,示出了其中設置“tid = 1”和“con = 4”的示例。也就是說, 能夠看出,該事務是第一事務(“tid = 1”),并且服務器設備300通過其能夠對應于客戶端設備200的TCP連接數(shù)目的上限是4 ( "con = 4”)。服務器側分發(fā)通信部件303將由后端服務305存儲在發(fā)送緩沖器中的數(shù)據(jù)劃分成塊(chunk),并且分別向塊分配順序號。然后,服務器側分發(fā)通信部件303通過服務器側通信部件304使用主連接#0向設備200傳送被分配順序號的多個塊(步驟S103和S104)。 此外,直到客戶端側并行通信部件201建立第二和隨后的(在該示例中,最大4) TCP連接為止,服務器側分發(fā)通信部件303通過服務器側通信部件304使用主連接#0向客戶端設備 200傳送相應塊。這里,在每個塊中寫入塊頭部。塊頭部的語法如下chunk-size ;seq = chunk~seq[ ;con = η ;cseq = cmd-seq] [;start = start-seq ;tid = t_id]。 這里, “chimk-seq”表示相應塊的長度?!癱himk-Seq”(上下文識別信息)表示用于識別在沒有被劃分的原始數(shù)據(jù)中的位置關系的塊順序號(序列號)。此外,第一塊的“chimk-seq”是隨機值,并且即使隨后的塊通過任何TCP連接(在此,主連接#0)傳遞,在其中也寫入在數(shù)據(jù)劃分前在其順序中遞增的值。作為被寫入為開始指令的值的“start-seq”表示在事務中的第一塊的chunk-seq?!皌id”表示包括在HTTP響應(2000K)中的tid的值。此外,后面將描述 “η” 和 “cmd-seq”。在圖的步驟S103 中,示出了其中設置“chunk-seq :la21,,、“start-seq :la21” 禾口 "tid = 1”的示例。也就是說,可以看出,塊的順序號是la21( "chunk-seq :la21”),事務中的第一塊的順序號是la21( “start-seq :la21”),以及事務是第一事務(“tid = 1,,)。然后,在圖的步驟S104中,在具有順序號la21的塊之后,傳送具有順序號la22 (“chimk-seq la22”)的塊。應該注意的是,在圖中,在步驟S104中傳送的塊的塊頭部被部分省略。客戶端側收集通信部件202通過客戶端側通信部件204使用主連接#0接收從服務器設備300傳送的相應塊??蛻舳藗仁占ㄐ挪考?02具有接收緩沖器(圖中未示出),并且臨時將所接收的塊存儲在接收緩沖器中。另一方面,當通過客戶端側通信部件204從服務器側并行通信部件301接收到 HTTP響應Q000K)時(步驟S102),客戶端側并行通信部件201檢查MTCP會話頭部中包括的“con”的值。也就是說,客戶端側并行通信部件201檢查服務器設備300通過其能夠對應于客戶端設備200的TCP連接的數(shù)目的上限。當確定“con”是2或更大時,客戶端側并行通信部件201建立第二和隨后的TCP連接(下文中稱為“輔連接”)。在該示例中,由于 "con = 4”,所以客戶端側并行通信部件201建立包括主連接#0的總共4個TCP連接。也就是說,客戶端側并行通信部件201建立3個輔連接#1、#2和#3??蛻舳藗炔⑿型ㄐ挪考?201通過客戶端側通信部件204分別使用所建立的輔連接#1、#2和#3來并行地向服務器側并行通信部件301傳送HTTP CONNECT (HTTP連接)請求(步驟S105至S107)。此外,正常情況下,客戶端側并行通信部件201建立輔連接,使得連接的數(shù)目達到由在MTCP會話頭部中包括的“con”的值指定的上限。然而,例如,在缺乏對單獨處理足夠的處理能力這樣的情況下,可能難以建立指定數(shù)目的輔連接。在這種情況下,客戶端側并行通信部件201可以建立在上限的范圍中可允許的數(shù)目的輔連接。在此,客戶端側并行通信部件201向HTTP CONNECT請求的MTCP會話頭部的值分配在步驟S102接收的會話id,并且向TE頭部分配“mtcp”。服務器側并行通信部件301通過服務器側通信部件304分別使用輔連接#1、#2和 #3接收HTTP CONNECT請求。服務器側并行通信部件301參考通過由所接收的HTTP CONNECT 請求指示的會話id確定輔連接屬于哪個主連接。在該示例中,服務器側并行通信部件301 通過參考由分別通過輔連接#1、#2和#3接收的HTTP CONNECT請求指示的會話id確定輔連接#1、#2和#3屬于主連接#0。此外,當缺乏相應的會話id時,或當輔連接的數(shù)目超過上限時,服務器側并行通信部件301通過服務器側通信部件304向客戶端設備200傳送錯誤。 之后,服務器側并行通信部件301通過服務器側通信部件304分別使用輔連接#1、#2和#3 并行地向客戶端設備200傳送HTTP響應Q000K)(步驟S108至S110)。然后,服務器側并行通信部件301向服務器側收集通信部件302和服務器側分發(fā)通信部件303通知所建立的輔連接#1、#2和#3。當通過客戶端側通信部件204接收到相應HTTP響應Q000K)時,客戶端側并行通信部件201向客戶端側收集通信部件202和客戶端側分發(fā)通信部件203通知所建立的輔連接#1、#2和#3。至此完成開始并行通信的處理。當從服務器側并行通信部件301接收到輔連接#1、#2和#3的建立的通知時,月艮務器側分發(fā)通信部件303通過服務器側通信部件304使用任意TCP連接(主和輔連接#0、 #1、#2和#3)并行地向客戶端設備200傳送被分配順序號的多個塊(步驟Slll至S120)。此外,服務器側分發(fā)通信部件303監(jiān)視用于每個TCP連接(主和輔連接#0、#1、#2 和#;3)的發(fā)送套接字緩沖器。然后,當在任意一個TCP連接的發(fā)送套接字緩沖器中出現(xiàn)未使用空間時,服務器側分發(fā)通信部件303可以進一步將屬于服務器側分發(fā)通信部件303的發(fā)送緩沖器的未發(fā)送數(shù)據(jù)劃分成塊,并且可以將數(shù)據(jù)移到出現(xiàn)未使用空間的發(fā)送套接字緩沖器。在圖中,服務器側分發(fā)通信部件303向服務器側通信部件304傳送預先在步驟 S103禾口 S104中通過“chunk-seq :la21”和“chunk-seq la22”指示的相應塊。因此,由服務器側分發(fā)通信部件303連續(xù)向服務器側通信部件304傳送的塊的每個“chimk-seq” (順序號)可以依次地用la23Ua24Ua25, · · ·、la^i、la2b、和la2c表示。例如,作為在步驟 S112 中傳送的塊的塊頭部,設置了 “chunk-seq :la24”、“start-seq :la21” 和 “tid = 1”。 也就是說,可以看出,塊的順序號是laM( "chunk-seq la24”),事務中的第一塊的順序號是la21( “start-seq:la21”),以及所述事務是第一事務("tid = 1”)。應該注意的是, 在圖中,在步驟Slll至S120中傳送的塊的塊頭部被部分省略。此外,在下面的圖中,一些塊頭部被部分省略。客戶端側收集通信部件202通過客戶端側通信部件204使用主和輔連接#0、#1、 #2和#3接收從服務器設備300傳送的相應塊??蛻舳藗仁占ㄐ挪考?02不管使用哪個 TCP連接(主和輔連接#0、#1、#2和#3)都將所接收的塊臨時存儲在接收緩沖器中??蛻舳藗仁占ㄐ挪考?02收集塊到某種程度,并且然后向瀏覽器205提供順序號連續(xù)的塊序列作為所接收數(shù)據(jù)??蛻舳藗仁占ㄐ挪考?02重復該處理。此外,如果連接沒有斷開但是存在其中順序號被省略的部分,則客戶端側收集通信部件202等待被省略塊從服務器設備300的到達,同時將在省略之后接收的塊存儲在接收緩沖器中。服務器側分發(fā)通信部件303通過服務器側通信部件304向客戶端設備200傳送單個數(shù)據(jù)被劃分成的多個塊中的被分配最后順序號的塊(步驟S120)。之后,服務器側分發(fā)通信部件303通過服務器側通信部件304使用主連接#0向客戶端設備200傳送零塊(步驟 S121)。這里,零塊是僅具有塊頭部而沒有數(shù)據(jù)的塊。零塊的形式例如如下0 ;[COn = η ; cseq = cmd-seq] ;last = last-seq。“l(fā)ast-seq”表示單個數(shù)據(jù)被劃分到的多個塊的最后順序號,即單個事務中的最后塊的順序號。此外,后面將描述“η”和“cmd-seq”??蛻舳藗仁占ㄐ挪考?02通過客戶端側通信部件204接收從服務器設備300傳送的零塊。當接收到零塊時,客戶端側收集通信部件202確定接收到所有塊,并且向瀏覽器 205通知數(shù)據(jù)接收完成。由此,終止單個事務。隨后,進一步執(zhí)行分開的事務(步驟S122至S127)。在下面的描述中,將省略或簡要描述與上述的數(shù)據(jù)通信方法的處理相同的處理,并且描述將集中于其間的差異。在圖的步驟S123中,示出了其中在HTTP響應Q000K)中設置“tid = 2”和“con =4”的示例。也就是說,可以看出,事務是第二事務(“tid = 2”),并且服務器設備300 通過其能夠對應于客戶端設備200的TCP連接數(shù)目的上限是4( "con = 4”),與上述相同。 因此,客戶端設備200不必新建立輔連接,并且可以繼續(xù)使用與上述相同的4個TCP連接 (主和輔連接#0、#1、#2和#3)。2.在客戶端設備向服務器設備上載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法圖4是圖示在客戶端設備向服務器設備上載數(shù)據(jù)的情況下的數(shù)據(jù)通信方法的順序圖。瀏覽器205響應于從用戶接收到通過UI 206輸入的內(nèi)容傳送請求,而向客戶端側并行通信部件201通知內(nèi)容傳送請求,并且分派要傳送到客戶端側分發(fā)通信部件203的發(fā)送緩沖器(圖中未示出)的數(shù)據(jù)。當從瀏覽器205接收到內(nèi)容傳送請求時,客戶端側并行通信部件201建立第一 TCP連接#0 (主連接#0)??蛻舳藗炔⑿型ㄐ挪考?01生成HTTP PUT 請求,其中向其TE頭部分配值“mtcp”??蛻舳藗炔⑿型ㄐ挪考?01通過客戶端側通信部件204使用主連接#0來向服務器設備300傳送所生成的HTTP PUT請求(步驟S201)。在此,在建立主連接#0之后的第一 HTTP PUT請求包括Expect頭部。Expect頭部的值是 “100-continue”。當通過服務器側通信部件304從客戶端側并行通信部件201接收到HTTP PUT請求時,服務器側并行通信部件301通過服務器設備300發(fā)出唯一的會話id。此外,服務器側并行通信部件301確定適合于傳送HTTP PUT請求所請求上載的數(shù)據(jù)的TCP連接數(shù)目的上限。服務器側并行通信部件301生成HTTP響應(100-Continue)作為對HTTP PUT請求的響應,其表示會話id、tid和con (TCP連接的數(shù)目的上限)。向HTTP響應(100-Continue) 的TE頭部分配值“mtcp”。服務器側并行通信部件301通過服務器側通信部件304使用主連接#0來向客戶端設備200傳送所生成的HTTP響應(100-Continue)(步驟S202)。這里,HTTP響應(100-Continue)包括指定屬于相同會話的連接的 "session-id";指定事務的“tid” ;表示TCP連接的數(shù)目的上限的“con”等。在圖的步驟S202中,示出了其中設置“tid = 3”和“con = 4”的示例。也就是說, 能夠看出,該事務是第三事務(“tid = 3”),并且服務器設備300通過其能夠對應于客戶端設備200的TCP連接的數(shù)目的上限是4 ( "con = 4”)。當通過客戶端側通信部件204從服務器側并行通信部件301接收到HTTP響應 (100-Continue)時(步驟S202),客戶端側并行通信部件201檢查MTCP會話頭部中包括的 “con”的值,并且建立第二和隨后的TCP連接??蛻舳藗炔⑿型ㄐ挪考?01通過客戶端側通信部件204分別使用所建立的輔連接#1、#2和#3來并行地向服務器側并行通信部件301 傳送 HTTP CONNECT 請求(步驟 S203 至 S205)。服務器側并行通信部件301通過服務器側通信部件304分別使用輔連接#1、#2和 #3接收HTTP CONNECT請求。服務器側并行通信部件301參考通過所接收的HTTP CONNECT 請求所指示的會話id來確定輔連接屬于哪個主連接。之后,服務器側并行通信部件301通過服務器側通信部件304分別使用輔連接#1、#2和#3并行地向客戶端設備200傳送HTTP 響應O000K)(步驟S206至S208)。然后,服務器側并行通信部件301向服務器側收集通信部件302和服務器側分發(fā)通信部件303通知所建立的輔連接#1、#2和#3。當通過客戶端側通信部件204接收到相應HTTP響應Q000K)時,客戶端側并行通信部件201向客戶端側收集通信部件202和客戶端側分發(fā)通信部件203通知所建立的輔連接#1、#2和#3。至此完成開始并行通信的處理。當接收到通知時,客戶端側分發(fā)通信部件203將由瀏覽器205分派在發(fā)送緩沖器中的數(shù)據(jù)劃分成塊,并且分別向塊分配順序號。然后,客戶端側分發(fā)通信部件203通過客戶端側通信部件204使用主和輔連接#0、#1、#2和#3向服務器設備300傳送被分配順序號的多個塊(步驟S209到S218)。服務器側收集通信部件302通過服務器側通信部件304使用主和輔連接#0、#1、 #2和#3接收從客戶端設備200傳送的相應塊。服務器側收集通信部件302不管使用哪個 TCP連接(主和輔連接#0、#1、#2和#3)都臨時將所接收的塊存儲在接收緩沖器中。服務器側收集通信部件302收集塊到某種程度,并且然后向web服務器306提供順序號連續(xù)的塊序列作為所接收數(shù)據(jù)。服務器側收集通信部件302重復該處理。此外,如果連接沒有斷開但是存在其中順序號被省略的部分,則服務器側收集通信部件302等待被省略塊從客戶
11端設備200的到達,同時將在省略之后接收的塊存儲在接收緩沖器中??蛻舳藗确职l(fā)通信部件203通過客戶端側通信部件204向服務器設備300傳送在單個數(shù)據(jù)被劃分成的多個塊中的被分配最后順序號的塊(步驟S218)。之后,客戶端側分發(fā)通信部件203通過客戶端側通信部件204使用主連接#0向服務器設備300傳送零塊(步驟 S219)。服務器側收集通信部件302通過服務器側通信部件304接收從客戶端設備200傳送的零塊。當接收到零塊時,服務器側收集通信部件302確定接收到所有塊,并且向服務器側通信會話301通知數(shù)據(jù)接收完成。當接收到數(shù)據(jù)接收完成的通知時,服務器側并行通信部件301生成HTTP響應 (2000K),并且通過服務器側通信部件304使用主連接#0向客戶端設備200傳送HTTP響應 (2000K)(步驟 S220)。當通過客戶端側通信部件204接收到相應HTTP響應Q000K)時,客戶端側并行通信部件201確定完成數(shù)據(jù)的上載。由此,終止單個事務。之后,進一步執(zhí)行單獨事務(步驟S221至S227)。在圖的步驟S222中,示出了其中在HTTP響應(IOO-Continue)中設置“tid = 4”和“con = 4”的示例。也就是說,可以看出,事務是第四事務(“tid = 4”),并且服務器設備300通過其能夠對應于客戶端設備 200的TCP連接的數(shù)目的上限是4( "con = 4”),與上述相同。因此,客戶端設備200不必新建立輔連接,并且可以繼續(xù)使用與上述相同的4個TCP連接(主和輔連接#0、#1、#2和 #3)。3.在數(shù)據(jù)通信的動作(下載)中增加TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法圖5是圖示在數(shù)據(jù)通信的動作(下載)中增加TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的順序圖。首先,客戶端設備200和服務器設備30執(zhí)行開始并行通信的處理(步驟SlOl至 S110)。然后,服務器側分發(fā)通信部件303通過服務器側通信部件304使用任意TCP連接 (主和輔連接#0、#1、#2和#3)并行地向客戶端設備200傳送被分配順序號的多個塊(步驟 Slll 至 S114)。這里,后端服務306確定能夠為客戶端設備200執(zhí)行處理的TCP連接的數(shù)目的上限增加。在這種情況下,后端服務316向服務器側并行通信設備301通知TCP連接的數(shù)目的上限的增加,并且服務器側并行通信設備301向服務器側分發(fā)通信部件303通知TCP連接數(shù)目的上限的增加。當接收到通知時,服務器側通信部件303如下重寫塊頭部,該塊頭部被附加到下一次要傳送到客戶端設備200的塊。如上所述,塊頭部的語法如下=Chimk-Size ; seq = chunk~seq[ ;con = η ;cseq = cmd-seq] [ ;start = start-seq ;tid = t-id]。月艮務器側分發(fā)通信部件303向“con = η”分配TCP連接的數(shù)目的上限(例如“con = 5”),其被包括在從服務器側并行通信部件301發(fā)送的通知中。此外,服務器側分發(fā)通信部件303向 “cmd-seq”分配值,該值通過遞增前一 cmd-seq來獲得。應注意的是,其第一值被設置為隨機值。服務器側分發(fā)通信部件303通過使用任意TCP連接(例如主連接#0)向客戶端設備 200發(fā)送附加了重寫的塊頭部的塊(步驟S301)。這里,“cmd-seq”是表示用于依據(jù)連接上限信息的改變而順序更新的連接數(shù)目改變的請求順序的整數(shù)。在根據(jù)實施例的并行通信中,由服務器側分發(fā)通信部件303傳送到服務器側通信部件304的數(shù)據(jù)(多個塊)可以通過不同的TCP連接到達客戶端側收集通信部件202。在這種情況下,數(shù)據(jù)的到達順序可能改變。例如,假定服務器側分發(fā)通信部件 303按照包括被分配“con = 1”和“cmd-seq = 1”的塊頭部的塊Α、包括被分配“con = 4” 和“cmd-seq = 2”的塊頭部的塊B、和包括被分配“con = 2”和“cmd-seq = 3”的塊頭部的塊C的次序向服務器側通信部件304傳送塊。然而,假定客戶端側收集通信部件202按照塊 A( "con = 1”、“cmd-seq = 1 ”)、塊 C( “con = 2","cmd-seq = 3”)和塊 B( "con = 4”、“cmd-seq = 2”)的次序通過客戶端側通信部件204接收塊??蛻舳藗仁占ㄐ挪考?202將包括在多個所接收的塊中的cmd-seq的值彼此進行比較,并且確定被設置了最大值的cmd-seq。然后,客戶端側收集通信部件202確定包括被設置了最大值的cmd-seq的塊頭部表示最新的con。如上所述,通過設置cmd-seq,即使在數(shù)據(jù)的到達順序改變時,客戶端側收集通信部件202也能確定TCP連接的數(shù)目的最新上限??蛻舳藗仁占ㄐ挪考?02通過客戶端側通信部件204從服務器側分發(fā)通信部件 303接收塊,并且然后檢查塊頭部的cmd-seq的值??蛻舳藗仁占ㄐ挪考?02確定與先前的值不同的值被設置為cmd-seq,并且然后向客戶端側并行通信部件201通知塊頭部的con 的值,即TCP連接的數(shù)目的上限。客戶端側并行通信部件201從客戶端側收集通信部件202獲取TCP連接的數(shù)目的上限,并且然后建立新的TCP連接(輔連接#4)。客戶端側并行通信部件201通過客戶端側通信部件204分別使用新建立的輔連接#4并行地向服務器側并行通信部件301傳送HTTP CONNECT 請求(步驟 S302)。當通過服務器側通信部件304使用輔連接#4接收到HTTP CONNECT請求時,服務器側并行通信部件301通過服務器側通信部件304使用輔連接#4向客戶端設備200傳送 HTTP響應Q000K)(步驟S303)。然后,服務器側并行通信部件301向服務器側收集通信部件302和服務器側分發(fā)通信部件303通知所建立的輔連接#4。當通過客戶端側通信部件204接收到相應HTTP響應Q000K)時,客戶端側并行通信部件201向客戶端側收集通信部件202和客戶端側分發(fā)通信部件203通知所建立的輔連接#4。當從服務器側并行通信部件301接收到輔連接#4的建立的通知時,服務器側分發(fā)通信部件303通過服務器側通信部件304使用任意TCP連接(主和輔連接#0、#1、#2、#3和 #4)并行地向客戶端設備200傳送被分配順序號的多個塊,并且最后通過使用主連接#0向客戶端設備200傳送零塊(步驟S304至S309)。4.在數(shù)據(jù)通信的動作(上載)中增加TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法圖6是圖示在數(shù)據(jù)通信的動作(上載)中增加TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的順序圖。首先,客戶端設備200和服務器設備30執(zhí)行開始并行通信的處理(步驟S201至 S208)。然后,客戶端側分發(fā)通信部件203通過客戶端側通信部件204使用任意TCP連接 (主和輔連接#0、#1、#2和#3)并行地向服務器設備300傳送被分配順序號的多個塊(步驟 S209 至 S212)。這里,服務器側并行通信部件301確定能夠在服務器設備300上為客戶端設備200 執(zhí)行處理的TCP連接數(shù)目的上限增加。在這種情況下,服務器側并行通信部件301生成HTTP響應(100-Continue),其具有其中向con分配TCP連接數(shù)目的新上限的MTCP會話頭部。服務器側并行通信部件301通過服務器側通信部件304使用主連接#0向客戶端設備200傳送所生成的HTTP響應(100-Continue)(步驟S401)。當通過客戶端側通信部件204從服務器側并行通信部件301接收到HTTP響應 (100-Continue)(步驟S401)時,客戶端側并行通信部件201檢查包括在MTCP會話頭部中的“con”的值。也就是說,客戶端側并行通信部件201檢查與服務器設備300相兼容的TCP 連接的數(shù)目的上限,并且然后建立新的TCP連接(在該示例中,輔連接#4)。客戶端側并行通信部件201通過客戶端側通信部件204分別使用新建立的輔連接#4并行地向服務器側并行通信部件301傳送HTTP CONNECT請求(步驟S402)。服務器側并行通信部件301通過服務器側通信部件304使用輔連接#4接收HTTP CONNECT請求。之后,服務器側并行通信部件301通過服務器側通信部件304使用輔連接 #4并行向客戶端設備200傳送HTTP響應Q000K)(步驟S403)。然后,服務器側并行通信部件301向服務器側收集通信部件302和服務器側分發(fā)通信部件303通知所新建立的輔連
接#4。當通過客戶端側通信部件204接收到相應HTTP響應Q000K)時,客戶端側并行通信部件201向客戶端側收集通信部件202和客戶端側分發(fā)通信部件203通知所建立的輔連接#4。當從客戶端側并行通信部件201接收到輔連接#4的建立的通知時,客戶端側分發(fā)通信部件203通過服務器側通信部件304使用任意TCP連接(主和輔連接#0、#1、#2、#3 和#4)并行地向客戶端設備200傳送被分配順序號的多個塊,并且最后通過客戶端側通信部件204使用主連接#0向服務器設備300傳送零塊(步驟S404至S409)。當通過服務器側通信部件304接收到從客戶端設備200傳送的零塊,服務器側收集通信部件302確定接收到所有塊,并且向服務器側并行通信部件301通知數(shù)據(jù)接收完成。 當接收到數(shù)據(jù)接收完成的通知時,服務器側并行通信部件301生成HTTP響應Q000K),并且通過服務器側通信部件使用主連接#0向客戶端設備200傳送HTTP響應Q000K)(步驟 S410)。5.在數(shù)據(jù)通信的動作中減少TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法圖7是圖示在數(shù)據(jù)通信的動作中減少TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的順序圖。在此將描述在數(shù)據(jù)通信的動作(下載)中減少TCP連接的數(shù)目的情況下的數(shù)據(jù)通
信方法。首先,客戶端設備200和服務器設備30執(zhí)行開始并行通信的處理(步驟SlOl至 S110)。然后,服務器側分發(fā)通信部件303通過服務器側通信部件304使用任意TCP連接 (主和輔連接#0、#1、#2和#3)并行地向客戶端設備200傳送被分配順序號的多個塊(步驟 Slll 至 S114)。這里,服務器側并行通信設備301確定在服務器設備300側上能夠為客戶端設備 200執(zhí)行處理的TCP連接數(shù)目減少。在這種情況下,為了減少TCP連接的數(shù)目,必須停止使用要減少的TCP連接的數(shù)據(jù)通信。否則,發(fā)生數(shù)據(jù)丟失。為了防止發(fā)生數(shù)據(jù)丟失,通過下面的方法來減少TCP連接的數(shù)目。
服務器側并行通信部件301向服務器側分發(fā)通信部件303發(fā)出減少TCP連接的數(shù)目的通知。當接收到通知時,服務器側分發(fā)通信部件303通過服務器側通信部件304使用要減少的輔連接向客戶端設備200傳送零塊。這里,零塊的形式例如如下“0 ;con = η ;cseq =cmd-seq,,。該示例示出下面的情況當目前使用四個TCP連接(包括主連接)時,通過斷開它們中的兩個輔連接來設置兩個TCP連接。服務器側分發(fā)通信部件303任意地選擇兩個輔連接(例如輔連接#2和#3)作為斷開連接目標。服務器側分發(fā)通信部件303通過服務器側通信部件304使用所選擇的輔連接#2和#3向客戶端設備200傳送被分配con = 2的零塊 (步驟 S50U S502)。此外,在通過主連接執(zhí)行下載/上載之后傳遞正常塊。然而,即使在完成下載/上載之后,也可以在任意時刻從服務器設備300向客戶端設備200傳送零塊。當通過服務器側通信部件304向客戶端設備200傳送零塊時,服務器側分發(fā)通信部件303停止使用作為斷開連接目標的輔連接#2和#3傳輸新的塊。然后,服務器側分發(fā)通信部件303等待客戶端設備200斷開輔連接#2和#3。然而,由于用于PUT的塊可能從客戶端側分發(fā)通信部件203到達服務器側收集通信部件302,服務器側收集通信部件302處于對塊接收的備用,直到斷開輔連接#2和#3。原因在于考慮下面的情況客戶端設備200在與服務器側分發(fā)通信部件303傳送零塊的時間基本相同的時間上開始上載處理。也就是說, 原因在于,在這樣的情況下,在零塊到達客戶端設備200之前,客戶端側分發(fā)通信部件203 可能通過使用輔連接#2和#3向客戶端側通信部件204傳送用于上載的塊。此后,服務器側分發(fā)通信部件303通過服務器側通信部件304使用除斷開的輔連接#2和#3外的任意TCP連接(主和輔連接#0和#1)并行地向客戶端設備200傳送多個塊(步驟S503和S504)。之后,服務器側分發(fā)通信部件303通過服務器側通信部件304使用主連接#0向客戶端設備200傳送零塊(步驟S505)。至此已給出了在數(shù)據(jù)通信的動作(下載)中減少TCP連接的數(shù)目的情況下的數(shù)據(jù)通信方法的描述,但是在數(shù)據(jù)通信的動作(上載)中,可執(zhí)行如下的處理。也就是說,如果正在傳送用于上載的塊,則客戶端側分發(fā)通信部件203響應于接收到零塊而停止傳送新的塊。然后,客戶端側分發(fā)通信部件203檢查所傳送的塊到達服務器設備300,并且斷開作為斷開連接目標的連接。此外,客戶端側分發(fā)通信部件203檢查所傳送的塊到達服務器設備 300的技術可能以存在諸如TCP的可靠傳輸為前提。根據(jù)實施例,通過動態(tài)增加或減少輔連接的數(shù)目,能夠控制吞吐量。例如在以下情況中,對輔連接的數(shù)目的動態(tài)控制是有利的。假定路徑的鏈路速度是L并且單個TCP連接的吞吐量是T。在該假定下,當建立η 個連接(其中η是滿足條件nT< L的最大自然數(shù))時,可能獲得最大吞吐量。應注意,盡管將η設置為等于或大于上述條件,但是由于鏈路速度L的限制而發(fā)生錯誤,并且因此難以獲得該吞吐量。此外,例如,在類似流送可以確定必要吞吐量(其用Q表示并且滿足Q <L)的情況下,建立數(shù)目等于或大于該吞吐量所必要的數(shù)目的連接是無效的。在這種情況下,可以建立m個TCP連接,其中m是滿足條件mT > Q的最小數(shù))。此外,在單個服務器設備300和多個客戶端設備200幾乎同時執(zhí)行通信的情況下,由于服務器設備300的處理能力的限制,每個客戶端設備200可以被提供的吞吐量是有限的。當客戶端設備200的數(shù)目增加時,通過降低到連接的客戶端設備200的吞吐量,可能使得它們等于到新客戶端設備200的吞吐量。由此,可能在多個客戶端設備200中同等地執(zhí)行服務。6.在客戶端設備向服務器設備傳送GET請求并且在從服務器設備獲取響應之前進一步傳送PUT請求的情況下的數(shù)據(jù)通信方法(流水線技術)。首先,將描述現(xiàn)有技術中的HTTP流水線技術。HTTP流水線技術是其中客戶端傳送HTTP請求并且在與先前的HTTP請求對應的響應到達之前發(fā)送接下來的HTTP請求的技術。當服務器兼容流水線技術時,接下來的HTTP在服務器側排隊,并且隨后被處理,并且然后返回HTTP響應。如上所述,HTTP流水線技術能夠在不等待響應的情況下發(fā)送下一請求,但是響應的順序與請求的順序相同。原因在于難以同時處理在單個TCP中的不同請求的信息條。由此,出現(xiàn)問題,原因在于例如,如果處理單個請求花費時間,則對每一個原本花費短處理時間的其它請求進行響應也花費時間。圖8是圖示在客戶端設備向服務器設備傳送GET請求并且在從服務器設備獲取響應之前進一步傳送PUT請求的情況下的數(shù)據(jù)通信方法(流水線技術)的順序圖。在圖中,每個實線箭頭表示通過客戶端側通信部件204和服務器側通信部件304 在客戶端側并行通信部件201和服務器側并行通信部件301之間的通信(下載)。圖中的每個點劃線箭頭表示通過客戶端側通信部件204和服務器側通信部件304在客戶端側收集通信部件202和服務器側分發(fā)通信部件303之間的通信(下載)。每個點線(dotted-line) 箭頭表示通過客戶端側通信部件204和服務器側通信部件304在客戶端側并行通信部件 201和服務器側并行通信部件301之間的通信(上載)。圖中的每個劃線(dashed-line)箭頭表示通過客戶端側通信部件204和服務器側通信部件304在客戶端側分發(fā)通信部件203 和服務器側收集通信部件302之間的通信(上載)。首先,客戶端側并行通信201通過客戶端側通信部件204向服務器設備300傳送 HTTP GET請求(步驟S601)。客戶端側并行通信部件201在從服務器設備300獲取對HTTP GET請求的響應之前通過客戶端側通信部件204向服務器設備300傳送HTTP PUT請求(步驟 S602)。在該示例的步驟S603中,示出了在HTTP響應Q000K)中設置了 “tid = 5”的示例。也就是說,可以看出,事務是第五事務(“tid = 5”)。此外,在步驟S607、S608和 S617-S622中,在下載數(shù)據(jù)的每個塊中設置了 “tid = 5”。另一方面,在該示例的步驟S612中,示出了在HTTP響應(IOO-Continue)中設置了“tid = 6”的示例。也就是說,可以看出,事務是第六事務(“tid = 6”)。此外,在步驟 S613-S615中,在上載數(shù)據(jù)的每個塊中設置了 “tid = 6”。在此,關注于所傳遞的塊,首先,在步驟S607和S608中,對下載目標數(shù)據(jù)的一部分的塊(tid = Q進行下載。接下來,在步驟S613至S616中,對上載目標數(shù)據(jù)的所有塊(tid =6)進行上載。最后,在步驟S617至S623中,對下載目標數(shù)據(jù)的剩余塊(tid = 5)進行下載。在實施例中,不必按照以下次序執(zhí)行數(shù)據(jù)通信下載屬于下載目標數(shù)據(jù)的所有塊,然后上載屬于上載目標數(shù)據(jù)的所有塊。
在實施例中,向塊分別分配事務ID(tid)。由此,當接收側(在上載的情況下為服務器設備300,在下載的情況下為客戶端設備200)參考事務ID,能夠不管數(shù)據(jù)通信的順序如何而恢復用于具有相同事務ID(tid)的每個塊的數(shù)據(jù)。例如,當下載多條數(shù)據(jù)時,客戶端設備200可能按照一個數(shù)據(jù)被劃分到的數(shù)據(jù)條與另一個數(shù)據(jù)被劃分到的數(shù)據(jù)條被混合的順序接收作為一個數(shù)據(jù)被劃分到的數(shù)據(jù)條的塊以及另一個數(shù)據(jù)被劃分到的數(shù)據(jù)條的塊。即使在該情況下,客戶端設備200也能夠參考用于指定每條數(shù)據(jù)的tid恢復用于具有相同tid 的每個塊的多條數(shù)據(jù)。在實施例中,在用流水線技術傳送HTTP請求之后,事務ID(tid)指示連接用于哪個事務(哪個請求)。由此,在現(xiàn)有技術中,應該按照請求的順序返回HTTP響應的頭部,但是在實施例中,如果必要能夠改變數(shù)據(jù)的傳輸順序或并行地傳送和接收多個內(nèi)容。7.在客戶端設備向服務器設備傳送GET請求并且在從服務器設備獲取響應之前進一步傳送單獨的GET請求的情況下的數(shù)據(jù)通信方法(流水線技術)。圖9是圖示在客戶端設備向服務器設備傳送GET請求并且在從服務器設備獲取響應之前進一步傳送單獨的GET請求的情況下的數(shù)據(jù)通信方法(流水線技術)的順序圖。在圖中,每個實線箭頭表示客戶端設備200和服務器設備300之間的通信(下載某個數(shù)據(jù))。圖中的每個雙點的劃線(chain-double-dashed-line)箭頭表示客戶端設備 200和服務器設備300之間的通信(下載某個數(shù)據(jù))。圖中的每個點劃線箭頭表示建立輔連接的處理。首先,客戶端側并行通信201通過客戶端側通信部件204向服務器設備300傳送第一 HTTP GET請求(稱為HTTP GET請求1)(步驟S701)。客戶端側并行通信部件201在從服務器設備300獲取對HTTP GET請求1的響應之前通過客戶端側通信部件204向服務器設備300傳送第二 HTTP GET請求(稱為HTTP GET請求2)(步驟S702)。在該示例的步驟S703中,示出了在HTTP響應Q000K)中設置了 “tid = 1”的示例。也就是說,可以看出,事務是第一事務(“tid= 1”)。此外,在步驟S716至S720中, 在下載數(shù)據(jù)的每個塊中設置了 “tid = 1”。另一方面,在該示例的步驟S710中,示出了在HTTP響應Q000K)中設置了 “tid =2”的示例。也就是說,可以看出,事務是第二事務(“tid = 2”)。此外,在步驟S711至 S714中,在下載數(shù)據(jù)的每個塊中設置了 “tid = 2”。以HTTP GET請求的順序返回HTTP響應Q000K)。因此,客戶端側并行通信部件 201能夠參考HTTP響應Q000K)的頭部來驗證哪個事務ID被分配給其自己發(fā)出的HTTP GET請求。在此,關注于通信的塊,首先,在步驟S711至S715中,下載由HTTP GET請求2指定的下載目標數(shù)據(jù)的塊(tid =幻。接下來,在步驟S716至S720中,下載由HTTP GET請求 1指定的下載目標數(shù)據(jù)的塊(tid = 1)。在實施例中,不必按照以下次序執(zhí)行數(shù)據(jù)通信下載屬于由HTTP GET請求1指定的下載目標數(shù)據(jù)的塊,然后下載屬于由HTTP GET請求2指定的下載目標數(shù)據(jù)的塊。在實施例中,向塊分別分配事務ID(tid)。因而,當作為接收側的客戶端設備200參考事務ID(tid)時,能夠不管數(shù)據(jù)通信的順序如何而恢復用于具有相同事務ID的每個塊的數(shù)據(jù)。更具體地,將關注于使用輔連接#1的通信,給出描述。首先,客戶端側收集通信部
17件202通過客戶端側通信部件204接收seq la^start :la25tid:2的塊(步驟S712)。客戶端側收集通信部件202確定所述塊是HTTP GET請求2的第二塊。之后,客戶端側收集通信部件202通過客戶端側通信部件204接收seq :la22start :la21tid :1的塊(步驟S717)。 客戶端側收集通信部件202確定通過輔連接#1對與HTTP GET請求2相關的數(shù)據(jù)(塊)的接收剛剛完成,并且當前塊是HTTP GET請求1的第二塊。在實施例中,為了指示發(fā)送的數(shù)據(jù)對應于哪個請求,將tid額外地寫入在塊中,所述tid表示發(fā)送數(shù)據(jù)的連接用于哪個事務。由此,在用流水線技術傳送HTTP請求之后,事務ID(tid)指示連接用于哪個事務(哪個請求),由此接收側設備能夠不管數(shù)據(jù)通信的順序如何而恢復數(shù)據(jù)。以此方式,如果必要傳輸側設備能夠改變數(shù)據(jù)傳輸?shù)捻樞蚧虿⑿械匕l(fā)送多個內(nèi)容。8.從TCP連接的無意連接斷開中恢復數(shù)據(jù)的方法(下載時)接下來,將給出關于多個輔連接中的一些由于諸如通信故障的另一側通信裝置的情形而無意地斷開連接的情況的描述。在這樣的情況下,能夠以以下方式維護數(shù)據(jù)的完整。首先,將描述服務器設備300的處理。當一個或多個輔連接斷開時,服務器側分發(fā)通信部件303通過服務器側通信部件304挑選其它連接向客戶端設備200重新傳送在使用斷開的輔連接的傳輸期間存在的塊。另一方面,客戶端側收集通信部件202參考通過客戶端側通信部件204接收的塊的“chimk-seq”。服務器側分發(fā)通信部件303可以確定塊傳送失敗并且重新傳送該同一塊。在這種情況下,如果雙向傳輸實際上是成功的,則客戶端側收集通信部件202可以冗余地獲取該同一塊。然而,客戶端側收集通信部件202能夠通過參考每個所獲取的塊的“chimk-seq”來識別冗余的塊,因而能夠忽略被冗余獲取的塊中的一個。接下來,將描述客戶端設備200的處理。當一個或多個輔連接斷開時,客戶端側并行通信部件201將會話id指定為與第一會話id相同,并且通過使用HTTP CONNECT重新建立輔連接,除非其超過能夠被允許建立的連接的數(shù)目的上限。當在使用斷開的連接的傳輸期間存在塊時,期望通過使用包括由服務器設備300新建立的輔連接的連接中的任何一個重新傳送塊。如上所述,客戶端側收集通信部件202能夠通過參考每個塊的“chimk-seq”來檢測冗余塊。在沒有傳輸?shù)那闆r中,可以通過重新發(fā)出HTTP GET請求并且通過Range (范圍)頭部僅僅指定丟失塊的位置來解決上述問題。此外,通過上述的流水線技術處理,即使在原始HTTP GET請求結束之前,客戶端側并行通信部件201也能夠通過客戶端側通信部件 204并行地傳送補充HTTP GET請求。9.從TCP連接的無意連接斷開來恢復數(shù)據(jù)的方法(上載時)首先,將描述客戶端設備200的處理。當一個或多個輔連接斷開時,客戶端側并行通信部件201將會話id指定為與第一會話id相同,并且通過使用HTTP CONNECT重新建立輔連接,除非其超過能夠被允許建立的連接的數(shù)目的上限。當在使用斷開的連接的傳輸期間存在塊時,客戶端側分發(fā)通信部件203通過客戶端側通信設備204使用包括新建立的輔連接的連接中的任何一個來重新傳送塊。服務器側收集通信部件302能夠通過參考每個獲取的塊的“chimk-seq”來識別冗余塊,因而能夠忽略被冗余地獲取的塊中的一個。接下來,將描述服務器設備300的處理。即使當一個或多個輔連接斷開時,服務器側收集通信部件302也通過使用剩余連接而繼續(xù)如同它通過服務器側通信部件304 —樣接收數(shù)據(jù)。當在使用斷開的連接的傳輸期間存在塊時,期望通過客戶端設備200使用剩余連接重新傳送塊。服務器側收集通信部件302能夠通過參考每個獲取的塊的“chimk-seq”來識別冗余塊,因而能夠忽略被冗余地獲取的塊中的一個。當在接收零塊時存在數(shù)據(jù)(塊) 丟失時,服務器側收集通信部件302能夠通過服務器側通信部件304向客戶端設備200傳送HTTP錯誤??蛻舳嗽O備的硬件配置接下來,將描述客戶端設備200和服務器設備300的硬件配置。圖10是圖示客戶端設備的硬件配置的框圖。在客戶端設備200中,CPU (中央處理單元)612通過系統(tǒng)總線613連接到輸入操作部件601、客戶端側通信部件204、存儲部件604、解碼部件605、顯示部件606、介質接口部件608、R0M(只讀存儲器)610、和RAM(隨機存取存儲器)611。輸入操作部分601具有各種鍵。用戶通過使用輸入操作部件601來輸入各種命令或數(shù)據(jù)。通過系統(tǒng)總線613將由用戶從輸入操作部件601輸入的各種命令提供給CPU 612??蛻舳藗韧ㄐ挪考?04處理與全局網(wǎng)絡101的連接。存儲部件604被形成為HDD、SSD等。將客戶端側通信部件204通過網(wǎng)絡101下載的內(nèi)容數(shù)據(jù)存儲在存儲部件604中。解碼部件605對從存儲部件604讀取的內(nèi)容數(shù)據(jù)進行解碼,并且恢復數(shù)字視頻數(shù)據(jù)和數(shù)字音頻數(shù)據(jù)。通過系統(tǒng)總線613將所恢復的數(shù)字視頻數(shù)據(jù)提供給顯示部件606,并且通過系統(tǒng)總線613將數(shù)字音頻數(shù)據(jù)提供給揚聲器部件607。顯示部件606包括例如具有諸如IXD (液晶顯示器)的顯示屏的顯示單元、驅動顯示單元的顯示控制電路等。顯示部件606顯示從用戶輸入的指令、數(shù)據(jù)的確認、各種狀態(tài)寸。介質接口部件608能夠配置有諸如光盤的可移動介質614,并且能夠將內(nèi)容數(shù)據(jù)等記錄在可移動介質614中??梢苿咏橘|614的示例包括可記錄DVD、可重寫DVD、藍光盤寸。ROM 610是其中永久地存儲用于由客戶端設備200執(zhí)行軟件處理的程序、數(shù)據(jù)等的只讀存儲器。此外,可以將程序存儲在存儲部件604中。RAM 611是可寫易失性存儲器,其用于加載由CPU 612執(zhí)行的程序和代碼、或寫入程序的工作數(shù)據(jù)。CPU 612共同地執(zhí)行客戶端設備200的各部件的控制、并控制在各部件之間的數(shù)據(jù)交換。CPU 612從ROM 610向RAM 611加載通過客戶端設備200執(zhí)行軟件處理所需要的程序,并且通過其分析執(zhí)行程序。如上所述,通過使用典型的計算機硬件來配置客戶端設備200。此外,存儲在ROM 610中的程序使得客戶端設備200的計算機硬件作用為圖2中所示的相應模塊。服務器設備的硬件配置圖11是圖示服務器設備的硬件配置的框圖。在服務器設備300中,CPU(中央處理單元)512通過系統(tǒng)總線513連接到輸入操作部件501、服務器側通信部件304、存儲部件504、顯示部件506、R0M (只讀存儲器)510、和 RAM (隨機存取存儲器)511。輸入操作部件501具有各種鍵。服務器管理員通過使用輸入操作部件501來輸入各種命令或數(shù)據(jù)。通過系統(tǒng)總線513將由服務器管理員從輸入操作部件501輸入的各種命令提供給CPU 512。服務器側通信部件304(網(wǎng)絡連接部件)處理與全局網(wǎng)絡101的連接。存儲部件504被形成為HDD、SSD等。將服務器側通信部件304通過網(wǎng)絡101上載的內(nèi)容數(shù)據(jù)存儲在存儲部件504中。顯示部件506包括例如具有諸如IXD (液晶顯示器)的顯示屏的顯示單元、驅動顯示單元的顯示控制電路等。顯示部件506顯示從用戶輸入的指令、數(shù)據(jù)的確認、各種狀態(tài)寸。介質接口部件508能夠配置有諸如光盤的可移動介質614??梢苿咏橘|614的示例包括可記錄DVD、可重寫DVD、藍光盤等。ROM 510是其中永久地存儲用于由服務器設備300執(zhí)行軟件處理的程序、數(shù)據(jù)等的只讀存儲器。此外,可以將程序存儲在存儲部件504中。RAM 511是可寫易失性存儲器,其用于加載由CPU 512執(zhí)行的程序和代碼、或寫入程序的工作數(shù)據(jù)。CPU 512共同地執(zhí)行服務器設備300的各部件的控制、并控制在各部件之間的數(shù)據(jù)交換。CPU 512從ROM 510向RAM 511加載通過服務器設備300執(zhí)行軟件處理所需要的程序,并且通過其分析執(zhí)行程序。存儲在ROM 510中的程序使得服務器設備300的計算機硬件作用為圖2中所示的相應模塊。本公開包含與在2010年10月27日向日本專利局提交的日本優(yōu)先權專利申請JP 2010-240691中公開的主題相關的主題,其整個內(nèi)容由此通過引用被合并于此。本領域技術人員應理解,在所附權利要求或其等同物的范圍內(nèi)的情況下,可以基于設計需求和其它因素進行各種修改、組合、子組合和替代。
權利要求
1.一種在第一信息處理設備和第二信息處理設備之間建立多個TCP(傳輸控制協(xié)議) 連接并且通過多個所建立的TCP連接來傳遞為每個規(guī)定單元劃分的每條數(shù)據(jù)的數(shù)據(jù)通信方法,其中,所述第一信息處理設備通過向所述第二信息處理設備通知連接上限信息、并且通過改變要通知的所述連接上限信息來動態(tài)地改變與所述第二信息處理設備的TCP連接的數(shù)目,所述連接上限信息表示要與所述第二信息處理設備建立的TCP連接的數(shù)目的上限。
2.根據(jù)權利要求1所述的數(shù)據(jù)通信方法,其中,所述第一信息處理設備依據(jù)所述連接上限信息的改變而順序地更新命令順序信息,并且向所述第二信息處理設備傳送所述信息,其中,所述第二信息處理設備基于所接收的命令順序信息識別出來自所述第一信息處理設備的最近的連接上限信息。
3.根據(jù)權利要求2所述的數(shù)據(jù)通信方法,其中,所述第一信息處理設備向每條已劃分數(shù)據(jù)的頭部添加所述連接上限信息和所述命令順序信息,并且向所述第二信息處理設備傳送所述信息。
4.根據(jù)權利要求3所述的數(shù)據(jù)通信方法,其中,所述第二信息處理設備向所述第一信息處理設備傳送包括用于指定數(shù)據(jù)的數(shù)據(jù)指定信息的傳送請求,以及其中,所述第一信息處理設備將在所接收的傳送請求中包括的數(shù)據(jù)指定信息所指定的數(shù)據(jù)劃分成用于每個規(guī)定單元的條,將所述數(shù)據(jù)指定信息添加到每條已劃分數(shù)據(jù)的頭部, 并且將所述數(shù)據(jù)傳送到所述第二信息處理設備。
5.根據(jù)權利要求4所述的數(shù)據(jù)通信方法,其中,所述第一信息處理設備進一步將用于識別沒有被劃分的數(shù)據(jù)的上下文的上下文識別信息添加到每條已劃分數(shù)據(jù)的頭部。
6.一種信息處理設備,包括能夠連接到網(wǎng)絡的網(wǎng)絡連接部件;以及改變裝置,當通過所述網(wǎng)絡連接部件建立與不同信息處理的多個TCP (傳輸控制協(xié)議) 連接、并且通過多個所建立的TCP連接傳遞為每個規(guī)定單元劃分的每條數(shù)據(jù)時,所述改變裝置通過向所述不同信息處理通知連接上限信息、并且通過改變要通知的所述連接上限信息來動態(tài)地改變與所述不同信息處理的TCP連接的數(shù)目,所述連接上限信息表示要與不同信息處理建立的TCP連接的數(shù)目的上限。
全文摘要
提供了一種在第一信息處理設備和第二信息處理設備之間建立多個TCP(傳輸控制協(xié)議)連接并且通過多個所建立的TCP連接來傳遞為每個規(guī)定單元劃分的每條數(shù)據(jù)的數(shù)據(jù)通信方法。在該方法中,所述第一信息處理設備通過向所述第二信息處理設備通知表示要與所述第二信息處理設備建立的TCP連接數(shù)目的上限的連接上限信息、并且通過改變要被通知的所述連接上限信息來動態(tài)地改變與所述第二信息處理設備的TCP連接的數(shù)目。
文檔編號H04L29/06GK102457573SQ20111031958
公開日2012年5月16日 申請日期2011年10月20日 優(yōu)先權日2010年10月27日
發(fā)明者吉川典史, 尾上淳, 影山雄一 申請人:索尼公司