欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

報文分片傳輸方法和裝置與流程

文檔序號:12623786閱讀:608來源:國知局
報文分片傳輸方法和裝置與流程

本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及到一種報文分片傳輸方法和裝置。



背景技術(shù):

隨著虛擬化服務(wù)器部署的不斷增加,虛擬化技術(shù)不光在計算資源和內(nèi)存資源上不斷深入與變革,在I/O性能方面也不斷進行著變革。在現(xiàn)階段的虛擬化過程當中,處理器和內(nèi)存的虛擬化更為徹底,I/O資源(主要是網(wǎng)絡(luò)設(shè)備)逐漸變成新的瓶頸。當越來越多的不同性質(zhì)的虛擬機跑在同一臺物理服務(wù)器上時,各個虛擬機的進出數(shù)據(jù)全部跑在同一個網(wǎng)絡(luò)通道上。如果沒有網(wǎng)絡(luò)設(shè)備虛擬化技術(shù),安全隔離和服務(wù)質(zhì)量保證就無從談起。

網(wǎng)絡(luò)設(shè)備虛擬化技術(shù)主要有硬件實現(xiàn)和軟件實現(xiàn)兩種方式,對于不支持虛擬化的網(wǎng)絡(luò)設(shè)備,只能采用軟件實現(xiàn)的方式,但是軟件實現(xiàn)的方式弊端很多。首先就是開銷太大,普通萬兆網(wǎng)絡(luò)設(shè)備在現(xiàn)有的多虛擬機的環(huán)境下就已經(jīng)耗費了很多資源,更不用說要高效、精確地模擬各個虛擬機的傳輸隊列。而且軟件實現(xiàn)效率不高。對于支持虛擬化的網(wǎng)絡(luò)設(shè)備(主要是單根I/O虛擬化技術(shù)‐SRIOV),虛擬化網(wǎng)絡(luò)設(shè)備在不破壞現(xiàn)有業(yè)務(wù)的前提下,為每個虛擬機提供了一個模擬真實的網(wǎng)絡(luò)通道,這個模擬出來的虛擬通道不光是對虛擬機透明,而且還要給每個虛擬機提供非虛擬化環(huán)境下的一切網(wǎng)絡(luò)特性。只有在這樣的環(huán)境中,上層應(yīng)用在向虛擬化的遷移過程當中,不需要針對網(wǎng)絡(luò)環(huán)境的變更而做出改變。因此,硬件虛擬化已經(jīng)是網(wǎng)絡(luò)設(shè)備虛擬化的一個趨勢。

在實現(xiàn)網(wǎng)絡(luò)設(shè)備虛擬化的過程中,如何使得各個虛擬機都能獲得有保證的網(wǎng)絡(luò)傳輸質(zhì)量是一個關(guān)鍵。網(wǎng)絡(luò)傳輸質(zhì)量主要包括網(wǎng)絡(luò)帶寬以及網(wǎng)絡(luò)延時,如果在傳輸處理層面以每個虛擬機需要傳輸?shù)恼麄€傳輸控制協(xié)議(Transmission Control Protocol,TCP)報文來作為一個最小的處理單元,對于其它的虛擬機來說網(wǎng)絡(luò)延時太大。

為了解決上網(wǎng)絡(luò)延時的問題,一般的設(shè)計都是把處理包的顆粒度縮小到一個分片報文的數(shù)據(jù)包大小,也就是說,將TCP報文有效載荷(TCP Payload)切片成至少兩個分片,每次傳輸一個分片,從而實現(xiàn)對TCP報文的分片傳輸。具體的,網(wǎng)絡(luò)設(shè)備首先從主機內(nèi)存中獲取TCP報文的報文頭并存儲于本地,然后每次進行分片傳輸時,從主機內(nèi)存中讀取一個分片報文的有效載荷,并將本地存儲的報文頭和讀取的有效載荷組成一個分片報文,通過物理通道傳輸出去。

由于一個報文頭包括以太網(wǎng)層頭、網(wǎng)絡(luò)協(xié)議層頭和傳輸控制協(xié)議層頭,長度較大,因此需要很大的片上存儲空間來存儲各個隊列的報文頭。假設(shè)網(wǎng)絡(luò)設(shè)備最大支持的報文頭是1千字節(jié),那么對于支持128個隊列的網(wǎng)絡(luò)設(shè)備來說,單是存儲報文頭就需要總共占用網(wǎng)絡(luò)設(shè)備128千字節(jié)的片上存儲資源。

因此,現(xiàn)有的報文分片傳輸方案,在分片傳輸過程中占用的存儲空間較大,造成了網(wǎng)絡(luò)設(shè)備的存儲資源緊張。



技術(shù)實現(xiàn)要素:

本發(fā)明的主要目的為提供一種報文分片傳輸方法,旨在分片傳輸過程中減小存儲空間的占用。

為達以上目的,發(fā)明人經(jīng)仔細研究發(fā)現(xiàn),報文分片傳輸過程中,在報文全部傳輸完畢之前,報文的報文頭和報文內(nèi)容均一直存儲在主機內(nèi)存當中。有鑒于此,本發(fā)明主要采取以下發(fā)明構(gòu)思:網(wǎng)絡(luò)設(shè)備在進行報文分片傳輸時,通過不予存儲報文的報文頭,而是在每次分片時重復(fù)讀取報文頭的方式,來減少需要的芯片存儲資源。

一方面,本發(fā)明提出一種報文分片傳輸方法,所述方法包括以下步驟:

獲取報文的第一指示符并存儲,所述第一指示符用于標識所述報文的報文頭的存儲位置;

每次分片時,根據(jù)所述第一指示符讀取所述報文頭,并讀取一個分片報文的有效載荷;

將所述報文頭和所述有效載荷組成分片報文后予以傳輸。

進一步地,所述獲取報文的第一指示符并存儲的步驟包括:

獲取所述報文的指示符和所述報文頭的長度,所述指示符包括第一指示符;

根據(jù)所述報文頭的長度從所述指示符中提取出第一指示符并存儲。

進一步地,所述讀取一個分片報文的有效載荷的步驟包括:

當首次進行分片時,根據(jù)所述報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷,并記錄所述有效載荷分片結(jié)束的位置;

當后續(xù)進行分片時,根據(jù)所述報文頭的長度和最大數(shù)據(jù)分段值,從所述有效載荷分片結(jié)束的位置開始讀取一個分片報文的有效載荷,當所述報文尚未全部傳輸完畢時,更新所述有效載荷分片結(jié)束的位置。

進一步地,所述根據(jù)所述第一指示符讀取所述報文頭的步驟包括:

根據(jù)所述第一指示符獲取所述報文頭的存儲位置,根據(jù)所述存儲位置從主機內(nèi)存中讀取所述報文頭。

進一步地,所述方法還包括:當所述報文全部傳輸完畢時,刪除所述第一指示符。

另一方面,本發(fā)明同時一種報文分片傳輸裝置,所述裝置包括:

獲取模塊,用于獲取報文的第一指示符并存儲,所述第一指示符用于標識所述報文的報文頭的存儲位置;

讀取模塊,用于每次分片時,根據(jù)所述第一指示符讀取所述報文頭,并讀取一個分片報文的有效載荷;

傳輸模塊,用于將所述報文頭和所述有效載荷組成分片報文后予以傳輸。

進一步地,所述獲取模塊用于:

獲取所述報文的指示符和所述報文頭的長度,所述指示符包括第一指示符;根據(jù)所述報文頭的長度從所述指示符中提取出第一指示符并存儲。

進一步地,所述讀取模塊用于:

當首次進行分片時,根據(jù)所述報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷,并記錄所述有效載荷分片結(jié)束的位置;

當后續(xù)進行分片時,根據(jù)所述報文頭的長度和最大數(shù)據(jù)分段值,從所述有效載荷分片結(jié)束的位置開始讀取一個分片報文的有效載荷,當所述報文尚未全部傳輸完畢時,更新所述有效載荷分片結(jié)束的位置。

進一步地,所述讀取模塊用于:根據(jù)所述第一指示符獲取所述報文頭的存儲位置,根據(jù)所述存儲位置從主機內(nèi)存中讀取所述報文頭。

進一步地,還包括刪除模塊,所述刪除模塊用于:當所述報文全部傳輸完畢時,刪除所述第一指示符。

本發(fā)明實施例所提供的一種報文分片傳輸方法,通過存儲標識報文的報文頭的存儲位置的第一指示符,每次分片傳輸時根據(jù)第一指示符重復(fù)從主機內(nèi)存讀取報文頭即可,無需存儲報文頭。由于第一指示符的長度遠遠小于報文頭的長度,因此減小了對存儲空間的占用,極大的節(jié)省了存儲空間。同時,由于存儲的是第一指示符而非報文頭,因此能夠支持更長的報文頭,即可以分片傳輸具有更長報文頭的報文,擴大了應(yīng)用范圍。

附圖說明

圖1是本發(fā)明第一實施例的報文分片傳輸方法的流程圖;

圖2是本發(fā)明實施例中對報文進行分片處理的原理示意圖;

圖3是本發(fā)明第二實施例的報文分片傳輸方法的流程圖;

圖4是是本發(fā)明第三實施例的報文分片傳輸裝置的模塊示意圖;

圖5是本發(fā)明第四實施例的報文分片傳輸裝置的模塊示意圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。

具體實施方式

應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。

本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。

本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的網(wǎng)絡(luò)設(shè)備,其包括但不限于計算機、網(wǎng)絡(luò)主機、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基于云計算(Cloud Computing)的大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。本發(fā)明的實施例中,網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計算機網(wǎng)絡(luò)通信以及基于藍牙、紅外傳輸標準的近距無線傳輸方式。

本發(fā)明實施例的報文分片傳輸方法,主要應(yīng)用于TCP報文的分片傳輸,當然,也可以應(yīng)用于其它需要分片傳輸?shù)膱笪摹?/p>

本發(fā)明實施例的數(shù)據(jù)傳輸方法和裝置,主要應(yīng)用于網(wǎng)絡(luò)設(shè)備。當然,也可以應(yīng)用于各種終端設(shè)備,如手機、平板等移動終端,個人電腦、便攜式電腦等計算機設(shè)備。

實施例一

參照圖1,提出本發(fā)明第一實施例的報文分片傳輸方法,所述方法包括以下步驟:

S11、獲取報文的第一指示符并存儲。

如圖2所示,一個報文由報文頭(包括以太網(wǎng)層頭,網(wǎng)絡(luò)協(xié)議層頭以及傳輸控制協(xié)議層頭)和報文內(nèi)容組成。報文在內(nèi)存中的存儲位置由一個或者多個指示符來標識(圖2中的報文有五個指示符),每個指示符表示一塊內(nèi)存空間,包括起始地址以及長度。報文的指示符至少包括第一指示符,一般還包括第二指示符,第一指示符用于標識報文的報文頭在主機內(nèi)存中的存儲位置,第二指示符用于標識報文的報文內(nèi)容在主機內(nèi)存中的存儲位置。第一指示符和第二指示符可能有一個、兩個或者多個,如圖2所示,指示符1、指示符2和指示符3為第一指示符,用于標識報文頭的存儲位置;指示符4和指示符5為第二指示符,用于標識報文內(nèi)容的存儲位置。

根據(jù)圖2可以看出,每個分片報文都由報文頭和一部分報文的有效載荷組成,所述有效載荷即報文內(nèi)容。

本發(fā)明實施例中,當需要分片傳輸某一個報文時,網(wǎng)絡(luò)設(shè)備首先獲取該報文的第一指示符,并將該第一指示符存儲于本地。

具體的,網(wǎng)絡(luò)設(shè)備先從主機內(nèi)存獲取報文的指示符和報文頭的長度,然后根據(jù)報文頭的長度從報文的指示符中提取出第一指示符并存儲。由于每個指示符表示一塊內(nèi)存空間,包含起始地址以及長度,因此網(wǎng)絡(luò)設(shè)備可以根據(jù)報文頭的長度從多個指示符中識別出第一指示符。如圖2所示,指示符1、指示符2和指示符3為第一指示符,網(wǎng)絡(luò)設(shè)備獲取指示符1、指示符2和指示符3并存儲于內(nèi)部。

S12、每次分片時,根據(jù)第一指示符讀取報文的報文頭,并讀取一個分片報文的有效載荷。

本發(fā)明實施例中,每次進行分片時,都需要根據(jù)第一指示符獲取報文頭在主機內(nèi)存中的存儲位置,根據(jù)獲取的存儲位置從主機內(nèi)存中讀取報文頭。同時,通過以下方式讀取一個分片報文的有效載荷:

當首次進行分片時,根據(jù)報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷,并記錄有效載荷分片結(jié)束的位置;當后續(xù)進行分片時,根據(jù)報文頭的長度和最大數(shù)據(jù)分段值,從有效載荷分片結(jié)束的位置開始讀取一個分片報文的有效載荷,當報文尚未全部傳輸完畢時,更新有效載荷分片結(jié)束的位置。

最大數(shù)據(jù)分段值即一個分片報文的最大數(shù)據(jù)長度,其大小可以根據(jù)需要設(shè)置。由于一個分片報文由報文頭和有效載荷組成,因此,一個分片報文的有效載荷的長度,即最大數(shù)據(jù)分段值減去報文頭的長度的差值。

可選地,報文的有效載荷即報文內(nèi)容,有效載荷分片結(jié)束的位置即報文內(nèi)容分片結(jié)束的位置。如圖2所示,報文內(nèi)容部分的兩段虛線的位置即兩次分片記錄和更新的有效載荷分片結(jié)束的位置,它們將報文內(nèi)容分片成三部分,前面兩部分為最大數(shù)據(jù)分段(其長度等于最大數(shù)據(jù)分段值減去報文頭的長度的差值),最后一部分小于或等于最大數(shù)據(jù)分段。當?shù)谝淮畏制瑫r,從報文內(nèi)容的起始位置(左側(cè))開始讀取有效載荷,直到左起第一個虛線位置為止,并將該第一個虛線位置記錄為有效載荷分片結(jié)束的位置;當?shù)诙畏制瑫r,從第一個虛線位置開始讀取有效載荷,直到左起第二個虛線位置為止,并將有效載荷分片結(jié)束的位置更新為該第二個虛線位置;當?shù)谌畏制瑫r,從第二個虛線位置開始讀取有效載荷,由于剩余的報文內(nèi)容的長度小于或等于最大數(shù)據(jù)分段,因此一直讀取到分段內(nèi)容結(jié)束位置為止。

S13、將報文頭和有效載荷組成分片報文后予以傳輸。

在一次分片傳輸過程中,當讀取到報文頭和一個分片報文的有效載荷后,就將讀取到的報文頭和有效載荷組合成一個分片報文,并將該分片報文通過物理通道發(fā)送出去。如圖2所示,第一次分片時,報文頭與左起第一部分報文內(nèi)容組合成分片報文1;第二次分片時,報文頭與左起第二部分報文內(nèi)容組合成分片報文2;第三次分片時,報文頭與左起第三部分報文內(nèi)容組合成分片報文3。

當完成一次分片傳輸后,如果報文尚未全部傳輸完畢,則返回步驟S12,繼續(xù)進行下一次分片傳輸,直到報文全部傳輸完畢。

進一步地,當報文全部傳輸完畢后,立即刪除該報文的第一指示符,以避免第一指示符占用存儲空間。在某些實施例中,也可以將第一指示符以覆蓋存儲的方式存儲于特定位置,即后一次存儲的數(shù)據(jù)覆蓋前一次存儲的數(shù)據(jù),這樣即使不刪除存儲的第一指示符,也不會導(dǎo)致存儲的第一指示符越積越多而占用大量存儲空間。

相對于存儲報文頭的方式,本發(fā)明實施例只存儲標識報文頭的存儲位置的第一指示符,每次分片時通過第一指示符從主機內(nèi)存讀取報文頭。假設(shè)網(wǎng)絡(luò)設(shè)備和上層軟件商定第一指示符最多三個,且每個指示符為16字節(jié),當有128個隊列時,最多占用的存儲空間為16*3*128=6千字節(jié),遠遠低于存儲報文頭時占用的128千字節(jié)的存儲空間,節(jié)省了大量的芯片存儲空間。同時,由于存儲的是第一指示符而非報文頭,因此能夠支持更長的報文頭,即可以分片傳輸具有更長報文頭的報文,擴大了應(yīng)用范圍。

實施例二

參照圖3,提出本發(fā)明第二實施例的報文分片傳輸方法,本實施例以傳輸TCP報文為例,所述方法包括以下步驟:

S21、網(wǎng)絡(luò)設(shè)備服務(wù)目標隊列,獲取目標隊列中的TCP報文的第一指示符并存儲。

具體的,當上層軟件需要網(wǎng)絡(luò)設(shè)備通過報文分片傳輸方法發(fā)送一個TCP報文時,網(wǎng)絡(luò)設(shè)備將發(fā)送TCP報文的任務(wù)加入目標隊列中。網(wǎng)絡(luò)設(shè)備采用輪詢算法輪流服務(wù)各個隊列。當網(wǎng)絡(luò)設(shè)備服務(wù)目標隊列時,首先獲取該目標隊列中的TCP報文的第一指示符,并將該第一指示符存儲于本地。

本步驟S21獲取第一指示符的方法與第一實施例中的步驟S11相同,在此不再贅述。

S22、網(wǎng)絡(luò)設(shè)備根據(jù)第一指示符讀取TCP報文的報文頭,并讀取第一個分片報文的有效載荷,將報文頭和有效載荷組成一個分片報文后予以傳輸。

本步驟S22中,網(wǎng)絡(luò)設(shè)備進行第一次分片,根據(jù)第一指示符獲取報文頭在主機內(nèi)存中的存儲位置,根據(jù)獲取的存儲位置從主機內(nèi)存中讀取報文頭;同時,根據(jù)報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷(如圖2中左起第一個最大數(shù)據(jù)分段的報文內(nèi)容),并記錄有效載荷分片結(jié)束的位置(如圖2中左起第一個虛線的位置)。然后將獲取的報文頭和有效載荷組成一個分片報文(如圖2中的分片報文1),通過物理通道發(fā)送出去。

S23、網(wǎng)絡(luò)設(shè)備服務(wù)其它隊列。

當完成目標隊列中TCP報文的第一次分片傳輸后,網(wǎng)絡(luò)設(shè)備根據(jù)一定的輪詢算法開始服務(wù)其它隊列。

S24、網(wǎng)絡(luò)設(shè)備再次服務(wù)目標隊列,判斷TCP報文是否全部傳輸完畢。當傳輸完畢時,執(zhí)行步驟S26;當沒有傳輸完畢時,執(zhí)行步驟S25。

具體的,當網(wǎng)絡(luò)設(shè)備再次服務(wù)目標隊列時,首先判斷TCP報文是否全部傳輸完畢??蛇x地,網(wǎng)絡(luò)設(shè)備檢測TCP報文中是否還有剩余的有效載荷需要傳輸;當還有剩余的有效載荷時,則判斷TCP報文沒有全部傳輸完畢;當沒有剩余的有效載荷時,則判斷TCP報文已全部傳輸完畢。

在某些實施例中,網(wǎng)絡(luò)設(shè)備也可以在完成一次分片傳輸后立即判斷TCP報文是否全部傳輸完畢,當全部傳輸完畢時,則不再記錄(首次分片)或更新(非首次分片)有效載荷分片結(jié)束的位置。

當TCP報文已全部傳輸完畢時,則執(zhí)行步驟S25,繼續(xù)進行分片傳輸;當TCP報文沒有全部傳輸完畢時,則執(zhí)行步驟S26。

S25、網(wǎng)絡(luò)設(shè)備根據(jù)第一指示符再次讀取TCP報文的報文頭,并讀取第N(N≥2)個分片報文的有效載荷,將報文頭和有效載荷組成一個分片報文后傳輸出去。

本步驟S25中,網(wǎng)絡(luò)設(shè)備進行第N(N≥2)次分片,根據(jù)第一指示符重復(fù)讀取目標隊列中TCP報文的報文頭,并讀取第N(N≥2)個分片報文的有效載荷,將報文頭和有效載荷組成一個分片報文后通過物理通道傳輸出去。當本次分片傳輸完成后,返回步驟S23,轉(zhuǎn)而服務(wù)其它隊列,如此循環(huán)往復(fù),直至該TCP報文全部傳輸完畢。

舉例而言,如圖2所示,當網(wǎng)絡(luò)設(shè)備進行第二次分片時,根據(jù)第一指示符獲取報文頭在主機內(nèi)存中的存儲位置,根據(jù)獲取的存儲位置從主機內(nèi)存中讀取報文頭;同時,跳到第一次分片時記錄的有效載荷分片結(jié)束的位置(左起第一個虛線),根據(jù)報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷(左起第二個最大數(shù)據(jù)分段的報文內(nèi)容),并更新有效載荷分片結(jié)束的位置為左起第二個虛線的位置。然后將獲取的報文頭和有效載荷組成一個分片報文(分片報文2),通過物理通道發(fā)送出去。

當網(wǎng)絡(luò)設(shè)備進行第三次分片時,根據(jù)第一指示符獲取報文頭在主機內(nèi)存中的存儲位置,根據(jù)獲取的存儲位置從主機內(nèi)存中讀取報文頭;同時,跳到第二次分片時更新的有效載荷分片結(jié)束的位置(左起第二個虛線),根據(jù)報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷,由于圖2中剩余的報文內(nèi)容的長度小于最大數(shù)據(jù)分段的長度,因此讀取剩余的所有報文內(nèi)容作為一個分片報文的有效載荷。然后將獲取的報文頭和有效載荷組成一個分片報文(分片報文2),通過物理通道發(fā)送出去。

由于圖2中第三次分片為最后一次分片,此時,可以不必更新有效載荷分片結(jié)束的位置,而是直接記錄或標記TCP報文已沒有剩余的有效載荷需要傳輸或者TCP報文已全部傳輸完畢。當然,也可以更新有效載荷分片結(jié)束的位置為報文內(nèi)容的終止位置,后續(xù)可以據(jù)此判斷TCP報文已全部傳輸完畢。

S26、網(wǎng)絡(luò)設(shè)備刪除TCP報文的第一指示符。

當判斷該TCP報文已全部傳輸完畢時,網(wǎng)絡(luò)設(shè)備則刪除TCP報文的第一指示符,以及時騰出存儲空間,該TCP報文的傳輸流程結(jié)束。

從而,網(wǎng)絡(luò)設(shè)備通過存儲標識TCP報文的報文頭的存儲位置的第一指示符,每次分片傳輸時根據(jù)第一指示符重復(fù)從主機內(nèi)存讀取報文頭即可,無需存儲報文頭。由于第一指示符的長度遠遠小于報文頭的長度,因此減小了對存儲空間的占用,極大的節(jié)省了網(wǎng)絡(luò)設(shè)備的存儲空間。同時,由于存儲的是第一指示符而非報文頭,因此能夠支持更長的報文頭,即網(wǎng)絡(luò)設(shè)備可以分片傳輸具有更長報文頭的報文,擴大了應(yīng)用范圍。

實施例三

參照圖4,提出本發(fā)明第三實施例的報文分片傳輸裝置,所述裝置主要應(yīng)用于網(wǎng)絡(luò)設(shè)備,包括獲取模塊、讀取模塊和傳輸模塊,其中:

獲取模塊:用于獲取報文的第一指示符并存儲,該第一指示符用于標識報文的報文頭的存儲位置。

具體的,獲取模塊先從主機內(nèi)存獲取報文的指示符和報文頭的長度,然后根據(jù)報文頭的長度從報文的指示符中提取出第一指示符并存儲。由于每個指示符表示一塊內(nèi)存空間,包含起始地址以及長度,因此獲取模塊可以根據(jù)報文頭的長度從多個指示符中識別出第一指示符。如圖2所示,指示符1、指示符2和指示符3為第一指示符,獲取模塊獲取指示符1、指示符2和指示符3并存儲于內(nèi)部。

讀取模塊:用于每次分片時,根據(jù)第一指示符讀取報文頭,并讀取一個分片報文的有效載荷。

具體的,每次進行分片時,讀取模塊獲取本地存儲的第一指示符,根據(jù)第一指示符獲取報文頭在主機內(nèi)存中的存儲位置,根據(jù)獲取的存儲位置從主機內(nèi)存中讀取報文頭。同時,通過以下方式讀取一個分片報文的有效載荷:

當首次進行分片時,讀取模塊根據(jù)報文頭的長度和最大數(shù)據(jù)分段值讀取一個分片報文的有效載荷,并記錄有效載荷分片結(jié)束的位置;當后續(xù)進行分片時,根據(jù)報文頭的長度和最大數(shù)據(jù)分段值,從有效載荷分片結(jié)束的位置開始讀取一個分片報文的有效載荷,當報文尚未全部傳輸完畢時,更新有效載荷分片結(jié)束的位置。

當進行最后一次分片時,讀取模塊可以不必更新有效載荷分片結(jié)束的位置,而是直接記錄或標記TCP報文已沒有剩余的有效載荷需要傳輸或者TCP報文已全部傳輸完畢。當然,也可以更新有效載荷分片結(jié)束的位置為報文內(nèi)容的終止位置,后續(xù)可以據(jù)此判斷TCP報文已全部傳輸完畢。

最大數(shù)據(jù)分段值即一個分片報文的最大數(shù)據(jù)長度,其大小可以根據(jù)需要設(shè)置。由于一個分片報文由報文頭和有效載荷組成,因此,一個分片報文的有效載荷的長度,即最大數(shù)據(jù)分段值減去報文頭的長度的差值。

可選地,報文的有效載荷即報文內(nèi)容,有效載荷分片結(jié)束的位置即報文內(nèi)容分片結(jié)束的位置。如圖2所示,報文內(nèi)容部分的兩段虛線的位置即兩次分片記錄和更新的有效載荷分片結(jié)束的位置,它們將報文內(nèi)容分片成三部分,前面兩部分為最大數(shù)據(jù)分段(其長度等于最大數(shù)據(jù)分段值減去報文頭的長度的差值),最后一部分小于或等于最大數(shù)據(jù)分段。當?shù)谝淮畏制瑫r,讀取模塊從報文內(nèi)容的起始位置(左側(cè))開始讀取有效載荷,直到左起第一個虛線位置為止,并將該第一個虛線位置記錄為有效載荷分片結(jié)束的位置;當?shù)诙畏制瑫r,讀取模塊從第一個虛線位置開始讀取有效載荷,直到左起第二個虛線位置為止,并將有效載荷分片結(jié)束的位置更新為該第二個虛線位置;當?shù)谌畏制瑫r,讀取模塊從第二個虛線位置開始讀取有效載荷,由于剩余的報文內(nèi)容的長度小于或等于最大數(shù)據(jù)分段,因此一直讀取到分段內(nèi)容結(jié)束位置為止。

最后,讀取模塊將本次分片獲取的報文頭和有效載荷發(fā)送給傳輸模塊。

傳輸模塊:用于將報文頭和有效載荷組成分片報文后予以傳輸。

具體的,傳輸模塊接收到報文頭和的有效載荷后,就將讀取到的報文頭和有效載荷組合成一個分片報文,并將該分片報文通過物理通道發(fā)送出去。如圖2所示,第一次分片時,報文頭與左起第一部分報文內(nèi)容組合成分片報文1;第二次分片時,報文頭與左起第二部分報文內(nèi)容組合成分片報文2;第三次分片時,報文頭與左起第三部分報文內(nèi)容組合成分片報文3。

本發(fā)明實施例的報文分片傳輸裝置,通過存儲標識報文的報文頭的存儲位置的第一指示符,每次分片傳輸時根據(jù)第一指示符重復(fù)從主機內(nèi)存讀取報文頭即可,無需存儲報文頭。由于第一指示符的長度遠遠小于報文頭的長度,因此減小了對存儲空間的占用,極大的節(jié)省了存儲空間。同時,由于存儲的是第一指示符而非報文頭,因此能夠支持更長的報文頭,即可以分片傳輸具有更長報文頭的報文,擴大了應(yīng)用范圍。

實施例四

參照圖5,提出本發(fā)明第四實施例的報文分片傳輸裝置,本實施例在第三實施例的基礎(chǔ)上增加了一刪除模塊,所述刪除模塊用于:當報文全部傳輸完畢時,刪除第一指示符。

可選地,刪除模塊可以檢測TCP報文中是否還有剩余的有效載荷需要傳輸;當還有剩余的有效載荷時,則判斷TCP報文沒有全部傳輸完畢;當沒有剩余的有效載荷時,則判斷TCP報文已全部傳輸完畢。

可選地,刪除模塊可以通過檢測是否有TCP報文已沒有剩余的有效載荷需要傳輸或者TCP報文已全部傳輸完畢的記錄或標記來判斷報文是否全部傳輸完畢。

可選地,刪除模塊可以通過檢測有效載荷分片結(jié)束的位置是否為報文內(nèi)容的終止位置來判斷報文是否全部傳輸完畢。

可選地,當報文已沒有剩余的有效載荷需要傳輸時(如讀取模塊讀取有效載荷時讀取到報文內(nèi)容的結(jié)束位置時),讀取模塊則通知刪除模塊,刪除模塊收到通知后,則判斷報文已全部傳輸完畢。

從而,通過刪除第一指示符,及時騰出了存儲空間,防止第一指示符占用存儲空間。

在某些實施例中,也可以省略刪除模塊,而是由獲取模塊將第一指示符以覆蓋存儲的方式存儲于特定位置,即后一次存儲的數(shù)據(jù)覆蓋前一次存儲的數(shù)據(jù),這樣即使不刪除存儲的第一指示符,也不會導(dǎo)致存儲的第一指示符越積越多而占用大量存儲空間。

本領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用計算機中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機程序,這些計算機程序選擇性地激活或重構(gòu)。這樣的計算機程序可以被存儲在設(shè)備(例如,計算機)可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD‐ROM、和磁光盤)、ROM(Read‐Only Memory,只讀存儲器)、RAM(Random Access Memory,隨機存儲器)、EPROM(Erasable Programmable Read‐Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read‐Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。

本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。

本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。

以上參照附圖說明了本發(fā)明的優(yōu)選實施例,并非因此局限本發(fā)明的權(quán)利范圍。本領(lǐng)域技術(shù)人員不脫離本發(fā)明的范圍和實質(zhì),可以有多種變型方案實現(xiàn)本發(fā)明,比如作為一個實施例的特征可用于另一實施例而得到又一實施例。凡在運用本發(fā)明的技術(shù)構(gòu)思之內(nèi)所作的任何修改、等同替換和改進,均應(yīng)在本發(fā)明的權(quán)利范圍之內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
涞水县| 涡阳县| 乾安县| 三门峡市| 广州市| 广宁县| 来宾市| 亳州市| 伊宁县| 徐州市| 屏山县| 望奎县| 城固县| 游戏| 法库县| 喀喇沁旗| 合川市| 丰原市| 南华县| 固镇县| 友谊县| 宾川县| 东辽县| 惠来县| 大丰市| 云浮市| 天等县| 聊城市| 汉川市| 遂平县| 南皮县| 阳曲县| 寻甸| 凤庆县| 临海市| 蛟河市| 称多县| 焉耆| 丰原市| 石嘴山市| 交口县|