新四季網

一種tcp數據傳輸方法、tcp卸載引擎及系統的製作方法

2023-10-17 18:09:19 4

一種tcp數據傳輸方法、tcp卸載引擎及系統的製作方法
【專利摘要】本發明的實施例提供一種傳輸控制協議TCP數據傳輸方法、TCP卸載引擎及系統,涉及通信領域,能夠減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據的資源以及減少傳輸延遲的效果。該方法包括:TCP卸載引擎接收遠程設備發送的TCP數據;對所述TCP數據進行TCP卸載;識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU或所述CPU下發的存儲位置信息對應的存儲設備。本發明實施例應用於TCP數據傳輸。
【專利說明】—種TCP數據傳輸方法、TCP卸載引擎及系統
【技術領域】
[0001]本發明涉及通信領域,尤其涉及一種傳輸控制協議TCP數據傳輸方法、TCP卸載引擎及系統。
【背景技術】
[0002]傳輸控制協議和網際協議協議(TransmissionControl ProtocoI/InternetProtocol,簡稱TCP/IP)是網際網路中最基本的通信協議。但傳統的TCP/IP技術在處理網絡數據傳輸時,需要佔用大量的中央處理器(Central Processing Unit,簡稱CPU)資源。這是因為對TCP數據的處理,大多是通過軟體處理方式,即由運行於處理器之上的TCP/IP協議棧進行處理,軟體處理方式主要包括三方面:協議處理、中斷處理和數據複製,給系統帶來了龐大的開銷。
[0003]近年來,視頻流量的增長佔網絡流量增長的主要部分,另外,網絡存儲的應用範圍越來越廣,這兩類網絡應用對帶寬、響應時間的要求越來越高。但是由於這兩類網絡應用大多採用TCP傳輸,因此對TCP數據的處理成為一個主要的瓶頸。這兩類網絡應用還有一個特點,即CPU沒有必要對其傳輸的所有數據進行處理,例如對於文件內容、視頻編碼格式、視頻內容等TCP數據,而傳統的方法需要將所有的TCP數據交由CPU進行處理,增加了存儲複製的開銷,同時增加了 CPU對傳送的數據進行處理帶來的額外負擔。
[0004]為了滿足網絡流量和網絡通信速度的飛速增長,一種將TCP數據的處理移到硬體上實現的技術應運而生,即TCP卸載引擎(TCP offload engine,簡稱TOE)技術。
[0005]TOE技術旨在減輕CPU處理TCP/IP的消耗,為此,將處理TCP/IP過程中比較繁瑣的工作交由TOE處理,例如TCP建鏈斷鏈、亂序重組等TCP應答和狀態管理。現有的TOE設計採用了零複製套接字的技術,在接收過程中,TOE收到的數據從TOE緩存直接通過DMA (Direct Memory Access直接內存訪問)到用戶緩存空間;發送過程中,待發數據從用戶緩存空間直接通過DMA到TOE緩存,TOE負責將數據打包成TCP報文發送。零複製套接字技術避免了數據在用戶緩存空間和協議棧之間的搬移,減少對CPU的佔用。但是,在發送數據和接收數據時,TOE還是會將所有數據都通過TOE的內存與用戶緩存空間進行傳輸,仍然會佔用較大的CPU開銷以及可能存在較大的傳輸延時。且對於接收的數據,CPU需要對全部數據進行解析後才能提取出必須CPU處理的數據,然後交給應用程式或協議棧處理,增加了 CPU的處理開銷。

【發明內容】

[0006]本發明的實施例提供一種傳輸控制協議TCP數據傳輸方法、TCP卸載引擎及系統,能夠減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據的資源以及減少傳輸延遲的效果。
[0007]為達到上述目的,本發明的實施例採用如下技術方案:
[0008]第一方面,提供一種傳輸控制協議TCP數據傳輸方法,包括:[0009]TCP卸載引擎接收遠程設備發送的傳輸控制協議TCP數據;
[0010]對所述TCP數據進行TCP卸載;
[0011]識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU或所述CPU下發的存儲位置信息對應的存儲設備。
[0012]在第一方面的一種可能實現方式中,所述識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU或所述CPU下發的存儲位置信息對應的存儲設備包括:
[0013]識別所述TCP卸載後的數據;
[0014]根據識別結果將所述TCP卸載後的數據中的信令數據或關鍵數據發送至CPU,其中所述關鍵數據為除所述信令數據和所述內容數據外其他需要CPU處理的數據;
[0015]根據識別結果將所述TCP卸載後的數據中的內容數據發送至所述CPU下發的存儲位置信息對應的存儲設備。
[0016]第二方面,提供一種傳輸控制協議TCP數據傳輸方法,包括:
[0017]獲取CPU指示的數據;
[0018]將所述數據進行TCP封裝並發送至遠程設備。
[0019]在第二方面的第一種可能實現方式中,所述獲取CPU指示的數據包括:接收CPU發送的存儲位置信息;讀取所述存儲位置信息指定的存儲空間中的內容數據;
[0020]相應地,所述將所述數據進行TCP封裝並發送至遠程設備包括:將所述內容數據進行TCP封裝並發送至遠程設備。
[0021]在第二方面的第二種可能實現方式中,所述獲取CPU指示的數據包括:接收CPU發送的信令淨荷數據;
[0022]相應地,所述將所述數據進行TCP封裝並發送至遠程設備包括:將所述信令淨荷數據進行TCP封裝並發送至遠程設備。
[0023]第三方面,提供一種傳輸控制協議TCP卸載引擎,包括狀態管理單元,解析單元和發送單元;其中:
[0024]所述狀態管理單元,用於接收遠程設備的TCP數據,對所述TCP數據進行TCP卸載;
[0025]解析單元,用於識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU下發的存儲位置信息對應的存儲設備或通過所述狀態管理單元發送至所述 CPU ;
[0026]所述狀態管理單元,還用於獲取CPU指示的數據並將所述數據進行TCP封裝;
[0027]所述發送單元,用於接收所述狀態管理單元TCP封裝後的數據並發送至遠程設備。
[0028]在第三方面的第一種可能實現方式中,所述解析單元,具體用於識別所述TCP卸載後的數據,根據識別結果將所述TCP卸載後的數據中的內容數據發送至所述CPU下發的存儲位置信息對應的存儲設備或通過所述狀態管理單元將所述TCP卸載後的數據中的信令數據或所述關鍵數據發送至CPU,其中所述關鍵數據為除所述信令數據和所述內容數據外其他需要CPU處理的數據。
[0029]根據第三方面或第三方面的第一種可能實現方式,在第三方面的第二種可能實現方式中,所述狀態管理單元,具體用於接收CPU發送的所述存儲位置信息並發送至所述發送單元;接收所述發送單元發送的內容數據,並對所述內容數據進行TCP封裝並通過所述發送單元發送至遠程設備;所述發送單元,具體用於接收所述狀態管理單元發送的所述存儲位置信息,讀取所述存儲位置信息指定的存儲空間中的內容數據並將所述內容數據發送至所述狀態管理單元。
[0030]根據第三方面的任一種可能實現方式,在第三方面的第三種可能實現方式中,所述狀態管理單元,具體用於接收CPU發送的信令淨荷數據,並將所述信令淨荷數據進行TCP封裝;
[0031]所述發送單元,具體用於接收所述狀態管理單元發送的所述TCP封裝後的信令淨荷數據並發送至遠程設備。
[0032]第四方面,提供一種數據傳輸系統,包括本地設備和遠程設備,
[0033]所述本地設備包括通過數據總線連接的CPU,上述任一所述傳輸控制協議TCP卸載引擎及存儲設備。
[0034]本發明實施例提供的一種傳輸控制協議TCP數據傳輸方法、TCP卸載引擎及系統,通過TCP卸載引擎對不同類型的數據分別處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP數據佔用的資源以及減少傳輸延遲的效果。
【專利附圖】

【附圖說明】
[0035]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0036]圖1為本發明實施例提供的一種傳輸控制協議TCP數據傳輸方法流程示意圖;
[0037]圖2為本發明實施例提供的另一種傳輸控制協議TCP數據傳輸方法流程示意圖;
[0038]圖3為本發明實施例提供的又一種傳輸控制協議TCP數據傳輸方法流程示意圖;
[0039]圖4為本發明實施例提供的再一種傳輸控制協議TCP數據傳輸方法流程示意圖;
[0040]圖5為本發明實施例提供的一種傳輸控制協議TCP卸載引擎結構示意圖;
[0041]圖6為本發明實施例提供的一種數據傳輸系統結構示意圖;
[0042]圖7為本發明實施例提供的另一種數據傳輸系統結構示意圖;
[0043]圖8為本發明實施例提供的一種傳輸控制協議TCP數據傳輸方法應用流程示意圖;
[0044]圖9為本發明實施例提供的另一種傳輸控制協議TCP數據傳輸方法應用流程示意圖。
【具體實施方式】
[0045]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0046]本發明實施例提供一種傳輸控制協議TCP數據傳輸方法,如圖1所示,所述方法包括:
[0047]10UTCP卸載引擎接收遠程設備發送的TCP數據。
[0048]當然所述遠程設備包括:伺服器,終端設備等。
[0049]102、TCP卸載引擎對所述TCP數據進行TCP卸載。
[0050]所述TCP卸載為數據傳輸過程中的協議處理,包括計算校驗和用於維護TCP可靠性傳輸的重傳、亂序報文重組等。
[0051]103、TCP卸載引擎識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU或所述CPU下發的存儲位置信息對應的存儲設備。
[0052]示例性的,通過TCP卸載引擎卸載後的數據可以分成信令數據、關鍵數據和內容數據,其中關鍵數據為除信令數據和內容數據外其他需要CPU處理的數據,這裡可以為運用於數據傳輸和TCP卸載引擎上的業務軟體必須獲取並處理的數據,例如flash視頻(flash video,簡稱fIv)元數據,其中flash指多媒體(macromedia)公司推出的交互式矢量圖和網絡動畫的標準。
[0053]進一步可選的,步驟103包括:TCP卸載引擎識別TCP卸載後的數據,根據識別結果將TCP卸載後的數據中的信令數據或關鍵數據發送至CPU,其中關鍵數據為除信令數據和內容數據外其他需要CPU處理的數據;將TCP卸載後的數據中的內容數據發送至CPU下發的存儲位置信息對應的存儲設備。
[0054]本發明實施例提供的傳輸控制協議TCP數據傳輸方法,TCP卸載引擎直接將接收到的報文數據進行TCP卸載分類,將分類後的數據中需要由CPU處理的信令數據和關鍵數據交由CPU處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,少了 CPU對數據的處理步驟和頻率,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效果。
[0055]本發明實施例提供另一種傳輸控制協議TCP數據傳輸方法,如圖2所示,所述方法包括:
[0056]201、TCP卸載引擎獲取CPU指示的數據。
[0057]202、TCP卸載引擎將所述數據進行TCP封裝並發送至遠程設備。
[0058]同樣的所述遠程設備包括:伺服器,終端設備等。
[0059]本發明實施例提供傳輸控制協議TCP數據傳輸方法,TCP卸載弓I擎根據CPU發送指示對數據進行處理,減少了 CPU對數據的處理步驟,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效果。
[0060]201中所述CPU指示的數據可以是內容數據,也可以是信令淨荷數據。
[0061]在圖2所示的傳輸控制協議TCP數據傳輸方法基礎上,可選的,參照圖3所示,所述方法具體包括:
[0062]301、TCP卸載引擎接收CPU發送的存儲位置信息。
[0063]302、TCP卸載引擎讀取所述存儲位置信息指定的存儲空間中的內容數據。
[0064]303、TCP卸載引擎將所述內容數據進行TCP封裝並發送至遠程設備。
[0065]在圖2所示的傳輸控制協議TCP數據傳輸方法基礎上,可選的,參照圖4所示,所述方法具體包括:
[0066]401、TCP卸載引擎接收CPU發送的信令淨荷數據;
[0067]402、TCP卸載引擎將所述信令淨荷數據進行TCP封裝並發送至遠程設備。
[0068]所述TCP卸載引擎通過對CPU發送的不同類型的數據進行不同的方式處理並發送,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效果。
[0069]本發明實施例提供一種傳輸控制協議TCP卸載引擎,如圖5所示,包括狀態管理單元51、解析單元52和發送單元53,其中:
[0070]所述狀態管理單元51,用於接收遠程設備的TCP數據,對所述TCP數據進行TCP卸載;
[0071 ] 所述解析單元52,用於識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU下發的存儲位置信息對應的存儲設備或通過狀態管理單元51發送至所述CPU ;
[0072]所述狀態管理單元51,還用於獲取CPU指示的數據並將所述數據進行TCP封裝;
[0073]所述發送單元53,用於接收所述TCP封裝後的數據並發送至遠程設備。
[0074]可選的,所述解析單元52,具體用於識別所述TCP卸載後的數據,根據識別結果將TCP卸載後的數據中的內容數據發送至CPU下發的存儲位置信息對應的存儲設備或通過所述狀態管理單元51將TCP卸載後的數據中的信令數據或關鍵數據發送至CPU,其中關鍵數據為除信令數據和內容數據外其他需要CPU處理的數據。
[0075]所述關鍵數據可以為運用於數據傳輸和TCP卸載引擎上的業務軟體必須獲取並處理的數據,例如flv元數據。
[0076]所述TCP卸載引擎識別TCP卸載後的數據,將需要由CPU處理的信令數據和關鍵數據交由CPU處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效果。
[0077]此外,可選的所述狀態管理單元51,具體用於接收CPU發送的所述存儲位置信息並發送至所述發送單元53 ;接收所述發送單元53發送的內容數據,並對所述內容數據進行TCP封裝並通過所述發送單元53發送至遠程設備;所述發送單元53,具體用於接收所述狀態管理單元發送的所述存儲位置信息,讀取所述存儲位置信息指定的存儲空間中的內容數據並將所述內容數據發送至所述狀態管理單元51。
[0078]這裡由TCP卸載引擎根據CPU下發的位置信息數據將存儲設備中的內容數據發送至遠程設備,避免了因CPU直接參與對內容數據的處理而產生的內容數據在TCP卸載引擎和CPU之間的搬移,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效
果O
[0079]可選的,所述狀態管理單元51,具體還用於接收CPU發送的信令淨荷數據,並將信令淨荷數據進行TCP封裝;
[0080]所述發送單元53,具體還用於將TCP封裝後的內容數據發送至遠程設備。
[0081]由所述TCP卸載引擎將CPU發送的信令淨荷數據進行封裝,減少了 CPU處理TCP/IP數據的步驟,從而達到降低CPU處理TCP/IP數據的資源以及減少傳輸延遲的效果。
[0082]本發明實施例提供的一種數據傳輸系統,參照圖6所示,所述系統包括網絡連接的本地設備I和遠程設備2,所述本地設備I包括通過數據總線連接的CPU61、如本發明圖5所示的TCP卸載引擎62及存儲設備63。
[0083]其中,所述TCP卸載引擎62用於接收遠程設備I發送的傳輸控制協議TCP數據;對所述TCP數據進行TCP卸載;識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU61或所述CPU61下發的存儲位置信息對應的存儲設備63。
[0084]所述TCP卸載引擎62具體用於識別所述TCP卸載後的數據;根據識別結果將所述卸載後的TCP數據中的信令數據或關鍵數據發送至CPU61,其中所述關鍵數據為除所述信令數據和所述內容數據外其他需要CPU處理的數據;根據識別結果將所述卸載後的數據中的內容數據發送至所述CPU61下發的存儲位置信息對應的存儲設備63。
[0085]本發明實施例提供的數據傳輸系統,通過所述TCP卸載引擎識別TCP卸載後的數據,將需要由CPU處理的信令數據和關鍵數據交由CPU處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效果。
[0086]此外,TCP卸載引擎62還用於獲取CPU指示的數據;將所述數據進行TCP封裝並發送至遠程設備2。
[0087]其中,所述TCP卸載引擎62具體用於接收CPU61發送的存儲位置信息數據;讀取所述存儲位置信息數據指定的存儲空間中的內容數據;將所述內容數據進行TCP封裝並發送至遠程設備2。
[0088]由所述TCP卸載引擎根據CPU下發的位置信息數據將存儲設備中的內容數據發送至遠程設備,避免了因CPU直接參與對內容數據的處理而產生的內容數據在TCP卸載引擎和CPU之間的搬移,從而達到降低CPU處理TCP/IP數據佔用的資源以及降低傳輸延遲的效
果O
[0089]所述TCP卸載引擎62具體還用於接收CPU61發送的信令淨荷數據;將所述信令淨荷數據進行TCP封裝並發送至遠程設備2。
[0090]由所述TCP卸載引擎將CPU發送的信令淨荷數據進行封裝,減少了 CPU處理TCP/IP數據的步驟,從而達到降低CPU處理TCP/IP數據的資源以及減少傳輸延遲的效果。
[0091]在圖6所示系統基礎上,本發明的實施例還提供另一種數據傳輸系統,參照圖7所示,所述系統包括網絡連接的本地設備I和遠程設備2,所述本地設備I包括通過數據總線連接的CPU71、TCP卸載引擎72及存儲設備73,
[0092]如圖7所示,所述CPU71包括,TOE驅動單元711、應用程式單元712和SOCKET單元713 ;所述TCP卸載引擎72包括,狀態管理單元721、解析單元722和發送單元723 ;所述存儲設備73,包括存儲控制器731和存儲器732 ;
[0093]CPU71通過TOE驅動單元711與TCP卸載引擎72連接,所述TOE驅動單元711包括對TOE的操作控制軟體,CPU71通過TOE驅動單元711建立與TOE的連接向TOE發出控制指令,這裡CPU71通過TOE驅動單元711直接與TOE的狀態管理單元進行數據交互,CPU端的應用程式單元712通過套接字方式(其中套接字方式採用如圖7所示的SOCKET單元713實現)調用TOE驅動,進而實現CPU與TOE之間的數據交互,其中TCP卸載引擎72的工作方法可以參考圖7對應的實施例這裡不再贅述。
[0094]本發明實施例提供的數據傳輸系統,通過TCP卸載引擎對不同類型的數據分別處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP數據佔用的資源以及減少傳輸延遲的效果。
[0095]示例性的,如圖8所示,採用本發明實施例提供的TCP數據傳輸方法、TCP卸載引擎及系統對超文本傳送協議(Hypertext Transport Protocol,簡稱HTTP)視頻攝入存儲過程的CPU與TCP卸載引擎及遠程設備的數據交互可以採用以下流程:
[0096]80KCPU向TCP卸載引擎下發建立TCP連結命令,命令內容包括遠程設備的IP位址、TCP埠及本地IP位址、TCP埠 ;
[0097]802、遠程設備與TCP卸載引擎完成三次握手。
[0098]所述三次握手包括:
[0099]第一次握手:建立連接時,TCP卸載引擎發送SYN(Synchronize SequenceNumbers,同步序列編號)包到遠程設備,其中包括TCP卸載引擎的SYN,並進入SYN發送狀態,等待遠程設備確認;
[0100]第二次握手:遠程設備收到所述SYN包,必須確認TCP卸載引擎的SYN,同時所述遠程設備發送一個SYN確認包,其中包括遠程設備的SYN和確認信息,確認信息為:TCP卸載引擎的SYN+1,此時所述遠程設備進入SYN回復狀態;第三次握手:TCP卸載引擎收到所述遠程設備的SYN確認包,向所述遠程設備發送確認包,所述確認包發送完畢,TCP卸載引擎和所述遠程設備進入連接成功狀態,完成三次握手。
[0101]803、TCP卸載引擎向CPU上報連接成功命令。
[0102]804、CPU下發會話層或表示層或應用層信令淨荷,TCP卸載引擎將所述信令淨荷封裝成信令報文發送至遠程設備。
[0103]所述步驟804為採用上述實施例中401和402,首先,TCP卸載引擎接收CPU發送的會話層或表示層或應用層信令淨荷,其次、TCP卸載引擎將所述信令淨荷進行TCP封裝,封裝成信令報文並發送至遠程設備,所述信令淨荷可以為會話層HTTP獲取信令,HTTP獲取信令是HTTP協議中用於向特定的資源發起請求的一種方法。
[0104]805、遠程設備在接收到TCP卸載引擎發送的會話層或表示層或應用層信令報文後,向TCP卸載引擎發送信令報文響應;TCP卸載引擎對信令報文響應卸載生成信令淨荷響應並發送至CPU。
[0105]這裡採用上述實施例中如圖1所示的方法,首先,TCP卸載引擎接收遠程設備發送的會話層或表示層或應用層信令報文響應(當然這裡的信令報文響應為HTTP響應),TCP卸載引擎對所述信令報文響應進行TCP卸載得到信令淨荷響應;其次、TCP卸載引擎將卸載後的數據進行分類識別,這裡識別的結果只有信令數據即所述信令淨荷響應,TCP卸載引擎將所述信令淨荷響應發送至CPU。
[0106]806,CPU接收到信令報文淨荷,解析並處理信令報文淨荷後,向TCP卸載引擎下發內容數據存儲位置信息。
[0107]807、遠程設備將TCP數據報文發送至TCP卸載引擎,TCP卸載引擎完成應答、並對所述TCP數據報文進行亂序重排等TCP卸載處理,並對卸載後的數據進行分類識別。
[0108]所述TCP數據報文主要為內容數據報文,當然內容數據報文經TCP卸載後得到對應的內容數據,這裡內容數據可以為媒體數據;同時所述TCP數據報文也包括和內容數據相關的關鍵數據報文,當然關鍵數據報文經TCP卸載後得到對應的關鍵數據,例如當媒體數據為flv視頻格式時,關鍵數據為flv元數據,當媒體數據為無損音頻壓縮編碼(FreeLossless Audio Codec,簡稱FLAC)格式時,關鍵數據為FLAC元數據。
[0109]808、TCP卸載引擎將識別的內容數據發送至CPU指定的存儲設備的存儲空間。
[0110]所述存儲設備可以為內存、硬碟等;
[0111]所述步驟807和808的處理過程可以採用上述實施例中如圖1所述的方法進行處理,這裡TCP卸載引擎完成應答後(這裡的應答一般為確認信息),根據上述實施例提供的方法,首先TCP卸載引擎接收遠程設備發送的數據報文卸載,其次、TCP卸載引擎將卸載後的數據進行分類識別,這裡識別的結果包括內容數據、關鍵數據,最後TCP卸載引擎將內容數據(當然參照807,這裡的內容數據可以為媒體數據即攝入的視頻數據)發送到步驟806中CPU發送的內容數據存儲位置信息對應的存儲設備進行存儲;並將關鍵數據發送到CPU。
[0112]809、遠程設備在發送完TCP數據報文後,TCP卸載引擎發起與遠程設備四次握手斷開連接。
[0113]由於TCP連接是全雙工的,因此遠程設備與TCP卸載引擎斷開連接時每個方向都必須單獨關閉數據流的發送,這個原則是當一方完成它的數據發送任務後就發送一個結束信息來終止這個方向的連接。當一方收到一個結束信息只意味著這一方不能接收數據,但仍能發送數據。因此首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。因此四次握手過程如下:
[0114]第一次握手:TCP卸載引擎發送一個結束信息至遠程設備,用來關閉TCP卸載引擎到遠程設備的數據傳送。第二次握手:遠程設備收到這個結束信息,回復一個確認信息。第三次握手:遠程設備關閉與TCP卸載引擎的連接,發送一個結束信息給TCP卸載引擎。第四次握手:TCP卸載引擎回復一個確認信息給遠程設備。
[0115]810、TCP卸載引擎向CPU上報斷開連接信息。
[0116]在以上過程中通過TCP卸載引擎對傳輸的不同類型的數據分別處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及減少傳輸延遲的效果。
[0117]具體的,TCP卸載弓I擎在對HTTP視頻攝入存儲過程中,直接根據CPU下發的內容數據的位置信息將遠程設備發送的內容數據進行存儲,而內容數據不必再通過CPU的處理,減少TCP卸載引擎和CPU之間的數據搬移;此外在與遠程設備的報文交互過程中,直接對收到的報文進行卸載和識別,減少了 CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及減少傳輸延遲的效果。
[0118]示例性的,如圖9所示,採用本發明實施例提供的TCP數據傳輸方法、TCP卸載引擎及系統對HTTP視頻流化過程的CPU與TCP卸載引擎及遠程設備的數據交互可以採用以下流程:
[0119]90KCPU向TCP卸載引擎下發建立TCP監聽埠命令,命令內容包括本地IP位址和TCP埠 ;
[0120]902、遠程設備與TCP卸載引擎完成三次握手。
[0121]所述三次握手過程可以參考802,在此不再贅述。
[0122]903、TCP卸載引擎向CPU上報連接成功命令。
[0123]904、遠程設備發送會話層或表示層或應用層信令報文,TCP卸載引擎將所述信令報文進行TCP卸載和分類識別,將識別的信令淨荷上傳至CPU ;
[0124]該步驟為採用上述實施例中如圖1所示的方法,首先,TCP卸載引擎接收遠程設備發送的會話層或表示層或應用層信令報文,當然這裡的信令報文為可以為會話層HTTP獲取信令,其次,TCP卸載引擎將所述信令報文進行TCP卸載,卸載成信令淨荷並發送至CPU,當然這裡的信令報文為HTTP獲取報文。
[0125]905、CPU在接收到TCP卸載引擎發送的所述信令淨荷後,向TCP卸載引擎發送信令淨荷響應。
[0126]906、TCP卸載引擎對所述信令淨荷響應進行TCP封裝,並發送至遠程設備。
[0127]這裡以上步驟905和906可以採用上述實施例中如圖3所示的方法,首先,TCP卸載引擎接收CPU發送的信令淨荷響應(當然這裡的信令淨荷響應為HTTP響應),TCP卸載引擎對所述信令淨荷響應進行TCP封裝得到信令報文響應;其次、TCP卸載引擎將封裝後的所述信令報文響應發送至遠程設備。
[0128]907、CPU向TCP卸載引擎下發讀取內容數據的位置信息。
[0129]908、TCP卸載引擎通過所述CPU下發的位置信息,讀取所述位置信息指示的存儲設備中包含的內容數據。
[0130]909,TCP卸載引擎將所述讀取的內容數據進行TCP封裝成內容數據報文並發送至遠程設備。
[0131]當然在視頻流化的過程中這裡的內容數據主要為媒體流數據,內容數據報文主要為媒體數據報文。
[0132]以上步驟907、908和909的處理過程可以採用上述實施例中如圖3所述的方法進行處理,TCP卸載引擎接收到CPU發送的存儲位置信息後,首先根據存儲位置信息讀取對應的存儲設備中的內容數據,其次,TCP卸載引擎將讀取的數據進行TCP封裝,並將封裝後的內容數據發送至遠程設備。
[0133]進一步的,遠程設備在接收到報文形式的數據包以後回復確認信息響應。
[0134]910、TCP卸載引擎在發送完數據後與遠程設備進行四次握手斷開連接。
[0135]其中四次握手的過程可以參考步驟809,這裡不再贅述。
[0136]911、TCP卸載引擎向CPU上報斷開連接信息。
[0137]在以上過程中通過TCP卸載引擎對傳輸的不同類型的數據分別處理,減少TCP卸載引擎和CPU之間的數據搬移,同時減少CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及減少傳輸延遲的效果。
[0138]具體的,TCP卸載引擎在對HTTP視頻攝入存儲過程中,直接根據CPU下發的內容數據的位置信息將內容數據封裝並發送,而不必再將內容數據在通過CPU的處理,減少TCP卸載引擎和CPU之間的數據搬移;此外在與遠程設備的報文交互過程中直接對收到的報文進行卸載和識別,減少了 CPU對數據的解析工作,從而達到降低CPU處理TCP/IP數據佔用的資源以及減少傳輸延遲的效果。
[0139]本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成,前述的程序可以存儲於一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。[0140]以上所述,僅為本發明的【具體實施方式】,但本發明的保護範圍並不局限於此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述權利要求的保護範圍為準。
【權利要求】
1.一種傳輸控制協議TCP數據傳輸方法,其特徵在於,包括: TCP卸載引擎接收遠程設備發送的TCP數據; 對所述TCP數據進行TCP卸載; 識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU或所述CPU下發的存儲位置信息對應的存儲設備。
2.根據權利要求1所述方法,其特徵在於,所述識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU或所述CPU下發的存儲位置信息對應的存儲設備包括: 識別所述TCP卸載後的數據; 根據識別結果將所述TCP卸載後的數據中的信令數據或關鍵數據發送至CPU,其中所述關鍵數據為除所述信令數據和所述內容數據外其他需要CPU處理的數據; 根據識別結果將所述TCP卸載後的數據中的內容數據發送至所述CPU下發的存儲位置信息對應的存儲設備。
3.一種傳輸控制協議TCP數據傳輸方法,其特徵在於,包括: 獲取CPU指示的數據; 將所述數據進行TCP封裝並發送至遠程設備。
4.根據權利要求3所述的方法,其特徵在於, 所述獲取CPU指示的數據包括:接收CPU發送的存儲位置信息;讀取所述存儲位置信息指定的存儲空間中的內容數據; 相應地,所述將所述數據進行TCP封裝並發送至遠程設備包括:將所述內容數據進行TCP封裝並發送至遠程設備。
5.根據權利要求3所述的方法,其特徵在於,所述獲取CPU指示的數據包括:接收CPU發送的信令淨荷數據; 相應地,所述將所述數據進行TCP封裝並發送至遠程設備包括:將所述信令淨荷數據進行TCP封裝並發送至遠程設備。
6.一種傳輸控制協議TCP卸載引擎,其特徵在於,包括狀態管理單元,解析單元和發送單元;其中: 所述狀態管理單元,用於接收遠程設備的TCP數據,對所述TCP數據進行TCP卸載; 解析單元,用於識別所述TCP卸載後的數據,並根據識別結果將所述TCP卸載後的數據發送至CPU下發的存儲位置信息對應的存儲設備或通過所述狀態管理單元發送至所述CPU ; 所述狀態管理單元,還用於獲取CPU指示的數據並將所述數據進行TCP封裝; 所述發送單元,用於接收所述狀態管理單元TCP封裝後的數據並發送至遠程設備。
7.根據權利要求6所述的TCP卸載引擎,其特徵在於, 所述解析單元,具體用於識別所述TCP卸載後的數據,根據識別結果將所述TCP卸載後的數據中的內容數據發送至所述CPU下發的存儲位置信息對應的存儲設備或通過所述狀態管理單元將所述TCP卸載後的數據中的信令數據或所述關鍵數據發送至CPU,其中所述關鍵數據為除所述信令數據和所述內容數據外其他需要CPU處理的數據。
8.根據權利要求6或7所述的TCP卸載引擎,其特徵在於,所述狀態管理單元,具體用於接收CPU發送的所述存儲位置信息並發送至所述發送單元;接收所述發送單元發送的內容數據,並對所述內容數據進行TCP封裝並通過所述發送單元發送至遠程設備;所述發送單元,具體用於接收所述狀態管理單元發送的所述存儲位置信息,讀取所述存儲位置信息指定的存儲空間中的內容數據並將所述內容數據發送至所述狀態管理單元。
9.根據權利要求6至8任一項所述的TCP卸載引擎,其特徵在於, 所述狀態管理單元,具體用於接收CPU發送的信令淨荷數據,並將所述信令淨荷數據進行TCP封裝; 所述發送單元,具體用於接收所述狀態管理單元發送的所述TCP封裝後的信令淨荷數據並發送至遠程設備。
10.一種數據傳輸系統,其特徵在於,包括本地設備和遠程設備, 所述本地設備包括通過數據總線連接的CPU,如權利要求6至9任一項所述的傳輸控制協議TCP卸載引擎及存儲設備 。
【文檔編號】H04L29/06GK103546424SQ201210237465
【公開日】2014年1月29日 申請日期:2012年7月10日 優先權日:2012年7月10日
【發明者】羅海, 胡新宇, 魏啟坤, 張亮 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀