亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于單向數(shù)據(jù)包的tcp連接建立方法及裝置的制作方法

文檔序號:7870937閱讀:258來源:國知局
專利名稱:一種基于單向數(shù)據(jù)包的tcp連接建立方法及裝置的制作方法
技術領域
本發(fā)明涉及互聯(lián)網(wǎng)技術,尤其涉及一種基于單向數(shù)據(jù)包的TCP連接建立方法及裝置。
背景技術
隨著互聯(lián)網(wǎng)的飛速發(fā)展,對網(wǎng)絡應用層業(yè)務數(shù)據(jù)的分析和處理的需求與日俱增。特別地,在提高業(yè)務數(shù)據(jù)的有效性和解決業(yè)務數(shù)據(jù)的性能瓶頸方面,面臨著嚴峻的考驗和挑戰(zhàn)?,F(xiàn)有的處理網(wǎng)絡應用層業(yè)務數(shù)據(jù)的技術存在某些缺陷。在某些網(wǎng)絡部署環(huán)境下,由于存在數(shù)據(jù)丟包嚴重的現(xiàn)象,使網(wǎng)絡應用層的數(shù)據(jù)接收不完整,導致業(yè)務數(shù)據(jù)無法處理或處理錯誤。在諸如運營商和大型高校場景之類的網(wǎng)絡流量較大的環(huán)境中,如何準確且詳細地處理應用層業(yè)務數(shù)據(jù)是一個棘手的問題,而純粹從硬件角度解決問題是被迫無奈的選擇。在只提供單向數(shù)據(jù)流量的特殊網(wǎng)絡部署場景下,需要在此基礎上完成對應用層業(yè)務數(shù)據(jù)的處理?,F(xiàn)有的互聯(lián)網(wǎng)應用層業(yè)務數(shù)據(jù)處理模型是建立在完整數(shù)據(jù)連接的基礎上,并且依賴于網(wǎng)絡通信協(xié)議承載。為了維護連接的狀態(tài)和保證數(shù)據(jù)的正確有效,需要較多的條件,控制邏輯比較復雜,管理成本也相對較高。正因如此,在應用層的業(yè)務數(shù)據(jù)處理過程中只要任何一個小環(huán)節(jié)出錯,都會導致數(shù)據(jù)連接不完整,進而降低業(yè)務數(shù)據(jù)的有效性。現(xiàn)有技術應對這類問題的解決思路更多是從應用層出發(fā),增加業(yè)務邏輯,修改業(yè)務算法。這樣的解決方法不可避免地 會導致復雜度和維護成本的增加,而且僅有不甚明顯的量變技術效果,沒有產(chǎn)生質變。綜上所述,可見現(xiàn)有的應用層數(shù)據(jù)的處理技術是基于完整的TCP數(shù)據(jù)連接,它具有局限性大,處理邏輯復雜,維護成本高,耗費資源多等缺點。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能夠克服至少上述缺陷之一的基于單向數(shù)據(jù)包的TCP連接建立方法及裝置。在本發(fā)明的第一方面,提供了一種基于單向數(shù)據(jù)包的TCP連接建立方法,包括通過網(wǎng)絡獲取數(shù)據(jù)包;過濾掉一個方向上的數(shù)據(jù)包,得到第一單向數(shù)據(jù)包;根據(jù)所述單向數(shù)據(jù)包中的三次握手標志對將所述單向數(shù)據(jù)包中含有三次握手標志的數(shù)據(jù)過濾掉,得到第二單向數(shù)據(jù)包;以及根據(jù)應用層邏輯創(chuàng)建與所述單向數(shù)據(jù)包對應的單向TCP連接,以便通過所述單向連接將所述第二單向數(shù)據(jù)包交由應用層處理。在本發(fā)明的第二方面,提供了一種基于單向數(shù)據(jù)包的TCP連接建立裝置,包括數(shù)據(jù)包獲取模塊,用于通過網(wǎng)絡獲取數(shù)據(jù)包;第一過濾模塊,用于過濾掉一個方向上的數(shù)據(jù)包,得到第一單向數(shù)據(jù)包;第二過濾模塊,用于根據(jù)所述單向數(shù)據(jù)包中的三次握手標志對將所述單向數(shù)據(jù)包中含有三次握手標志的數(shù)據(jù)過濾掉,得到第二單向數(shù)據(jù)包;以及TCP連接建立模塊,用于根據(jù)應用層邏輯創(chuàng)建與所述單向數(shù)據(jù)包對應的單向TCP連接,以便通過所述單向連接將所述第二單向數(shù)據(jù)包交由應用層處理。在第三方面,本發(fā)明提供了一種服務器,包括數(shù)據(jù)包獲取模塊,用于通過網(wǎng)絡獲取數(shù)據(jù)包;第一過濾模塊,用于過濾掉一個方向上的數(shù)據(jù)包,得到第一單向數(shù)據(jù)包;第二過濾模塊,用于根據(jù)所述單向數(shù)據(jù)包中的三次握手標志對將所述單向數(shù)據(jù)包中含有三次握手標志的數(shù)據(jù)過濾掉,得到第二單向數(shù)據(jù)包;以及TCP連接建立模塊,用于根據(jù)應用層邏輯創(chuàng)建與所述單向數(shù)據(jù)包對應的單向TCP連接,以便通過所述單向連接將所述第二單向數(shù)據(jù)包交由應用層處理。本發(fā)明通過建立基于單向數(shù)據(jù)包的TCP連接,在網(wǎng)絡數(shù)據(jù)丟包和大量流的環(huán)境下,提高了應用層業(yè)務數(shù)據(jù)處理的有效性,本發(fā)明的單向TCP連接依賴條件少、處理邏輯簡單、維護成本低、占用資源少,有更大的靈活性。


圖1是現(xiàn)有技術的處理網(wǎng)絡應用層業(yè)務數(shù)據(jù)的流程圖;圖2是現(xiàn)有技術的TCP連接的示意圖;圖3是根據(jù)本 發(fā)明實施例的處理網(wǎng)絡應用層業(yè)務數(shù)據(jù)的流程圖;圖4是根據(jù)本發(fā)明實施例的TCP連接的流程圖;圖5是根據(jù)本發(fā)明實施例的TCP連接的示意圖;以及圖6是根據(jù)本發(fā)明實施例的基于單向數(shù)據(jù)包的TCP連接建立裝置的示意圖。
具體實施例方式下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。為了更清晰地理解本發(fā)明與現(xiàn)有技術的區(qū)別,在下面通過對圖1和圖2來描述現(xiàn)有技術中處理網(wǎng)絡應用層業(yè)務數(shù)據(jù)的流程。圖1是現(xiàn)有技術的處理網(wǎng)絡應用層業(yè)務數(shù)據(jù)的流程圖。在步驟101,通過網(wǎng)絡從數(shù)據(jù)鏈路層獲取數(shù)據(jù)包,數(shù)據(jù)鏈路層例如是對應客戶端的設備驅動程序、網(wǎng)卡等。在步驟102,對接收的數(shù)據(jù)包進行IP分片重組。數(shù)據(jù)鏈路層具有最大傳輸單元(Maximum Transmission Unit, MTU)的特性,MTU限制了數(shù)據(jù)巾貞的最大長度,各種網(wǎng)絡類型具有不同的MTU限制。因此,在網(wǎng)絡層需要將數(shù)據(jù)包分為多片,使其每一片的長度都小于或等于MTU。相應地,在接收到數(shù)據(jù)包后,在網(wǎng)絡層也需要根據(jù)網(wǎng)絡協(xié)議將數(shù)據(jù)包中的數(shù)據(jù)分片進行分片重組。在步驟103,對分片重組后的數(shù)據(jù)包進行TCP流重組。在步驟104,根據(jù)TCP流重組將數(shù)據(jù)提供給應用層進行處理。圖2是現(xiàn)有技術的TCP連接的示意圖。如圖2所示,整個TCP連接可以分為連接建立階段(三次握手)、數(shù)據(jù)傳輸階段和連接釋放階段(四次揮手)??蛻舳讼蚍斩税l(fā)送同步序列編號(Synchronize Sequence Numbers, SYN),等待服務端確認;服務端收到SYN,后向客戶端發(fā)送自己的SYN和確認信號ACK ;客戶端收到服務端發(fā)送的SYN+ACK后,向服務端發(fā)送確認信號ACK ;如此完成三次握手,建立連接。連接建立之后,客戶端和服務端之間開始相互傳輸數(shù)據(jù)。當客戶端完成其數(shù)據(jù)傳輸任務之后,向服務端發(fā)送FIN信號以終止客戶端向服務端的數(shù)據(jù)傳輸;服務端接收到FIN,向客戶端返回一個確認信號ACK ;客戶端收到服務端發(fā)送的確認信號之后將不能再向服務端發(fā)送數(shù)據(jù),服務端在其數(shù)據(jù)傳輸任務完成之后向客戶端發(fā)送FIN以終止服務端向客戶端的數(shù)據(jù)傳輸;客戶端接收到服務端發(fā)送的FIN信號之后,向服務端發(fā)送ACK信號以確認,服務端收到確認信號之后不能再向客戶端傳輸數(shù)據(jù);如此完成四次握手,客戶端和服務端之間的連接被終止。圖3是根據(jù)本發(fā)明實施例的處理網(wǎng)絡應用層業(yè)務數(shù)據(jù)的流程圖。在步驟301,通過網(wǎng)絡從數(shù)據(jù)鏈路層獲取數(shù)據(jù)包,例如設備驅動程序、網(wǎng)卡等工作在數(shù)據(jù)鏈路層。在步驟302,對接收到的數(shù)據(jù)包進行過濾,過濾掉一個方向上的數(shù)據(jù)包??梢栽诮邮斩?服務端預先建立簡單的規(guī)則,通過數(shù)據(jù)包中的IP地址信息來判斷數(shù)據(jù)包的方向。比如,某數(shù)據(jù)包中包含的發(fā)起端的IP地址不屬于服務端的IP地址,則將該數(shù)據(jù)包視為上行方向,例如該數(shù)據(jù)包的方向是從客戶端到服務端。可見,根據(jù)某些應用層業(yè)務的特性,可以過濾掉上行數(shù)據(jù)或者下行數(shù)據(jù),過濾后的數(shù)據(jù)包為單向數(shù)據(jù)包。在步驟303,根據(jù)單向數(shù)據(jù)包中的三次握手標志對單向數(shù)據(jù)包進行過濾,過濾掉其中含有三次握手標志的數(shù)據(jù),以放寬TCP連接建立的條件。在步驟304,對過濾后的數(shù)據(jù)包進行IP分片重組。IP分片重組是本領域技術人員所熟知的技術,且在對現(xiàn)有技術的描述中已經(jīng)有所闡述,因此不再贅述以免模糊本發(fā)明。在步驟305,根據(jù)應用層`的會話維護條件來建立TCP連接。由于在步驟303中已經(jīng)去除了含有三次握手標志的數(shù)據(jù),因此在TCP連接的建立過程中不用再進行三次握手檢查,只需依賴應用層的會話維護條件來創(chuàng)建連接。在步驟306,基于TCP連接對分片重組后的數(shù)據(jù)包進行TCP流重組,以便交由應用層進行后續(xù)處理。在步驟307,斷開TCP連接,由于在步驟303中已經(jīng)去除了含有三次握手標志的數(shù)據(jù),因此在TCP流的連接建立過程中不用再進行四次揮手檢查,只需進行單向揮手檢查即可。圖4是根據(jù)本發(fā)明實施例的TCP連接的流程圖。圖5是根據(jù)本發(fā)明實施例的TCP連接的示意圖。下面,結合圖4和圖5來描述根據(jù)本發(fā)明實施例的TCP流重組的詳細過程。在步驟401,引入應用層邏輯來創(chuàng)建單向連接。由于在數(shù)據(jù)包過濾中去掉了含有三次握手標志的數(shù)據(jù),無法再依靠三次握手標志來維護數(shù)據(jù)狀態(tài),所以在此不再使用三次握手來創(chuàng)建連接。替代地,根據(jù)應用層邏輯來創(chuàng)建單向連接,即在此依賴于應用層的會話維護條件來創(chuàng)建單向連接。進一步,如果分片重組后的數(shù)據(jù)包是上行數(shù)據(jù)包,則創(chuàng)建從客戶端到服務端的單向連接;反之亦然。如圖5中所示,在連接建立之后,就可以進行從客戶端到服務端的單向數(shù)據(jù)傳輸。在步驟402,將單向連接分為更細粒度的會話。具體地,如果該連接中存在多個會話,則將該連接細分為多個會話,每個會話可以包含多個數(shù)據(jù)包。應當指出,將單向連接分為更細粒度的會話是一個優(yōu)選的步驟,并不是實現(xiàn)本發(fā)明的技術方案所必須的。在步驟403,選擇屬于某類會話的數(shù)據(jù)包進行TCP流重組。TCP流重組是將根據(jù)等待機制,將無序到來的數(shù)據(jù)包重組還原為一個完整的TCP流數(shù)據(jù)。TCP流重組是本領域技術人員所熟知的,因此不再贅述以免模糊本發(fā)明。盡管將連接劃分為更細粒度的會話是可選的,然后通過劃分和選擇重組,可以更好地適應應用層的業(yè)務需求。比如,在上網(wǎng)行為管理的情況下,如果應用層業(yè)務只關心用戶的上網(wǎng)行為,則可以不進行上述細分即可處理與上網(wǎng)行為相關的數(shù)據(jù)包;而如果應用層業(yè)務也關心用戶的上網(wǎng)內(nèi)容,則可以先進行上述的劃分,再處理與上網(wǎng)行為和上網(wǎng)內(nèi)容都相關的會話中的數(shù)據(jù)包。在步驟404,采用單向揮手檢查結束單向連接。因為之前建立的TCP連接是單向連接并且之前已經(jīng)過濾掉了一個方向上的數(shù)據(jù),所以采用單向的揮手標志FIN來結束該連接。從圖5中也可以看出,只要服務端接收到客戶端發(fā)送的結束信號FIN,服務端將不再接收客戶端發(fā)送的數(shù)據(jù),從而完成連接釋放階段。

圖6是根據(jù)本發(fā)明實施例的基于單向數(shù)據(jù)包的TCP連接建立裝置的示意圖。數(shù)據(jù)包獲取模塊通過網(wǎng)絡從數(shù)據(jù)鏈路層獲取數(shù)據(jù)包,例如設備驅動程序、網(wǎng)卡等工作在數(shù)據(jù)鏈路層。第一過濾模塊對接收到的數(shù)據(jù)包進行過濾,過濾掉一個方向上的數(shù)據(jù)包??梢栽诮邮斩?服務端預先建立簡單的規(guī)則,通過數(shù)據(jù)包中的IP地址信息來判斷數(shù)據(jù)包的方向。t匕如,某數(shù)據(jù)包中包含的發(fā)起端的IP地址不屬于服務端的IP地址,則將該數(shù)據(jù)包視為上行方向,例如該數(shù)據(jù)包的方向是從客戶端到服務端。可見,根據(jù)某些應用層業(yè)務的特性,可以過濾掉上行數(shù)據(jù)或者下行數(shù)據(jù),過濾后的數(shù)據(jù)包為單向數(shù)據(jù)包。第二過濾模塊根據(jù)單向數(shù)據(jù)包中的三次握手標志對單向數(shù)據(jù)包進行過濾,過濾掉其中含有三次握手標志的數(shù)據(jù),以放寬TCP連接建立的條件。IP分片重組模塊對過濾后的數(shù)據(jù)包進行IP分片重組。IP分片重組是本領域技術人員所熟知的技術,且在對現(xiàn)有技術的描述中已經(jīng)有所闡述,因此不再贅述以免模糊本發(fā)明。TCP連接建立模塊根據(jù)應用層的會話維護條件來建立TCP連接。由于在第二過濾模塊中已經(jīng)去除了含有三次握手標志的數(shù)據(jù),因此在TCP連接的建立過程中不用再進行三次握手檢查,只需依賴應用層的會話維護條件來創(chuàng)建連接。進一步,如果分片重組后的數(shù)據(jù)包是上行數(shù)據(jù)包,則創(chuàng)建從客戶端到服務端的單向連接;反之亦然。在連接建立之后,就可以進行從客戶端到服務端的單向數(shù)據(jù)傳輸。TCP流重組模塊基于TCP連接對分片重組后的數(shù)據(jù)包進行TCP流重組,以便交由應用層進行后續(xù)處理。應當指出,在TCP流重組之前還可以將單向連接分為更細粒度的會話。具體地,如果該連接中存在多個會話,則將該連接細分為多個會話,每個會話可以包含多個數(shù)據(jù)包。應當指出,將單向連接分為更細粒度的會話是一個優(yōu)選的步驟,并不是實現(xiàn)本發(fā)明的技術方案所必須的。盡管將連接劃分為更細粒度的會話是可選的,然后通過劃分和選擇重組,可以更好地適應應用層的業(yè)務需求。比如,在上網(wǎng)行為管理的情況下,如果應用層業(yè)務只關心用戶的上網(wǎng)行為,則可以進行上述細分以處理與上網(wǎng)行為相關的會話中的數(shù)據(jù)包;而如果應用層業(yè)務也關心用戶的上網(wǎng)內(nèi)容,則可以不進行上述的劃分,即處理與上網(wǎng)行為和上網(wǎng)內(nèi)容都相關的會話中的數(shù)據(jù)包。TCP連接斷開模塊斷開TCP連接,由于在步驟303中已經(jīng)去除了含有三次握手標志的數(shù)據(jù),因此在TCP流的連接建立過程中不用再進行四次揮手檢查,只需進行單向揮手檢查即可。具體地,采用單向的揮手標志FIN來結束單向連接。換言之,只要服務端接收到客戶端發(fā)送的結束信號FIN,服務端將不再接收客戶端發(fā)送的數(shù)據(jù),從而完成連接釋放階段。專業(yè)人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電 可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內(nèi)所公知的任意其它形式的存儲介質中。以上所述的具體實施方式
,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施方式
而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種基于單向數(shù)據(jù)包的TCP連接建立方法,包括 通過網(wǎng)絡獲取數(shù)據(jù)包; 過濾掉一個方向上的數(shù)據(jù)包,得到第一單向數(shù)據(jù)包; 根據(jù)所述單向數(shù)據(jù)包中的三次握手標志對將所述單向數(shù)據(jù)包中含有三次握手標志的數(shù)據(jù)過濾掉,得到第二單向數(shù)據(jù)包;以及 根據(jù)應用層邏輯創(chuàng)建與所述單向數(shù)據(jù)包對應的單向TCP連接,以便通過所述單向連接將所述第二單向數(shù)據(jù)包交由應用層處理。
2.根據(jù)權利要求1所述的方法,還包括 用單向揮手檢查來結束所述單向連接。
3.根據(jù)權利要求1所述的方法,還包括 對所述第二單向數(shù)據(jù)包進行IP分片重組。
4.根據(jù)權利要求1所述的方法,還包括 在所述單向TCP連接建立之后,對所述第二單向數(shù)據(jù)包進行TCP流重組。
5.根據(jù)權利要求1所述的方法,還包括 將所述單向TCP連接劃分為多個會話,每個會話中包括一個或多個數(shù)據(jù)包; 按照預定義規(guī)則選擇一個或多個會話中的數(shù)據(jù)包進行TCP流重組。
6.根據(jù)權利要求2所述的方法,其中,所述單向揮手檢查是檢查是否接收到一個方向上的TCP FIN標志,如果接收到所述TCP FIN標志,則結束所述單向連接。
7.根據(jù)權利要求1所述的方法,其中,所述一個方向是數(shù)據(jù)上行方向或數(shù)據(jù)下行方向。
8.根據(jù)權利要求1所述的方法,其中,所述應用層邏輯是應用層的會話維護條件。
9.一種基于單向數(shù)據(jù)包的TCP連接建立裝置,包括 數(shù)據(jù)包獲取模塊,用于通過網(wǎng)絡獲取數(shù)據(jù)包; 第一過濾模塊,用于過濾掉一個方向上的數(shù)據(jù)包,得到第一單向數(shù)據(jù)包; 第二過濾模塊,用于根據(jù)所述單向數(shù)據(jù)包中的三次握手標志對將所述單向數(shù)據(jù)包中含有三次握手標志的數(shù)據(jù)過濾掉,得到第二單向數(shù)據(jù)包;以及 TCP連接建立模塊,用于根據(jù)應用層邏輯創(chuàng)建與所述單向數(shù)據(jù)包對應的單向TCP連接,以便通過所述單向連接將所述第二單向數(shù)據(jù)包交由應用層處理。
10.一種服務器,包括如權利要求9所述的基于單向數(shù)據(jù)包的TCP連接建立裝置。
全文摘要
本發(fā)明涉及一種基于單向數(shù)據(jù)包的TCP連接建立方法及裝置,所述方法包括通過網(wǎng)絡獲取數(shù)據(jù)包;過濾掉一個方向上的數(shù)據(jù)包,得到第一單向數(shù)據(jù)包;根據(jù)所述單向數(shù)據(jù)包中的三次握手標志對將所述單向數(shù)據(jù)包中含有三次握手標志的數(shù)據(jù)過濾掉,得到第二單向數(shù)據(jù)包;以及根據(jù)應用層邏輯創(chuàng)建與所述單向數(shù)據(jù)包對應的單向TCP連接,以便通過所述單向連接將所述第二單向數(shù)據(jù)包交由應用層處理。本發(fā)明通過建立基于單向數(shù)據(jù)包的TCP連接,在網(wǎng)絡數(shù)據(jù)丟包和大量流的環(huán)境下,提高了應用層業(yè)務數(shù)據(jù)處理的有效性,本發(fā)明的單向TCP連接依賴條件少、處理邏輯簡單、維護成本低、占用資源少,有更大的靈活性。
文檔編號H04L29/06GK103067394SQ20121058755
公開日2013年4月24日 申請日期2013年2月7日 優(yōu)先權日2013年2月7日
發(fā)明者張磊, 張嚴 申請人:北京網(wǎng)康科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1