一種報文修改方法及裝置的制造方法
【專利摘要】本發(fā)明提供一種報文修改方法及裝置,所述方法應用于NAT設備,所述方法包括:收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征;若所述訪問請求報文攜帶目標特征,則將所述訪問請求報文攜帶的目標特征進行修改;將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。因此可以避免與TCP服務器的PAWS機制產(chǎn)生沖突,從而使訪問請求報文順利建立TCP連接,保證用戶正常訪問網(wǎng)絡。
【專利說明】
一種報文修改方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種報文修改方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)不斷發(fā)展以及網(wǎng)絡應該的急劇增多,IPv4地址枯竭已經(jīng)嚴重影響到網(wǎng)絡的發(fā)展,因此NAT (Network Address Translat1n,網(wǎng)絡地址轉(zhuǎn)換)技術(shù)應運而生。NAT技術(shù)可以使用戶主機在局域網(wǎng)內(nèi)部通過私網(wǎng)地址來實現(xiàn)互訪,并且可以通過將私網(wǎng)地址轉(zhuǎn)換為公網(wǎng)地址的方式來實現(xiàn)用戶主機訪問外網(wǎng),由于私網(wǎng)地址在不同局域網(wǎng)內(nèi)能夠重復利用,因此可以緩解IPv4地址不足的問題。實際應用中為了節(jié)省公網(wǎng)地址,NAT設備通常將多個訪問請求報文中的源地址轉(zhuǎn)換為一個或幾個公網(wǎng)地址,使這些訪問請求報文通過轉(zhuǎn)換后的公網(wǎng)地址來訪問外網(wǎng)。
[0003]然而,當訪問請求報文中攜帶TCP (Transmiss1n Control Protocol傳輸控制協(xié)議)時間戳選項時,經(jīng)過源端的NAT設備的地址轉(zhuǎn)換,轉(zhuǎn)換后的訪問請求報文可能與TCP服務器的 PAWS (Protect Against Wrapped Sequence numbers,防止序列號重復)機制相沖突,導致部分訪問請求報文無法建立TCP連接,從而影響用戶正常訪問網(wǎng)絡。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種報文修改方法及裝置來解決經(jīng)過NAT轉(zhuǎn)換后訪問請求報文無法建立TCP連接的問題。
[0005]具體地,本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
[0006]—種報文修改方法,所述方法應用于NAT設備,所述方法包括:
[0007]收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征;
[0008]若所述訪問請求報文攜帶目標特征,則將所述訪問請求報文攜帶的目標特征進行修改;
[0009]將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0010]進一步的,所述判斷所述訪問請求報文是否攜帶目標特征,包括:
[0011]判斷所述訪問請求報文是否攜帶時間戳選項。
[0012]進一步的,所述將所述訪問請求報文攜帶的目標特征進行修改,包括:
[0013]將所述訪問請求報文攜帶的時間戳選項中的狀態(tài)修改為Ν0Ρ。
[0014]進一步的,所述方法還包括:
[0015]若所述訪問請求報文未攜帶目標特征,則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0016]進一步的,所述方法還包括:
[0017]判斷所述訪問請求報文是否為SYN報文,若是則判斷所述訪問請求報文是否攜帶目標特征,否則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0018]基于相同的構(gòu)思,本發(fā)明還提供一種報文修改裝置,所述裝置應用于NAT設備,所述裝置包括:
[0019]第一判斷單元,應用在收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征;
[0020]特征修改單元,用于在所述訪問請求報文攜帶目標特征時,將所述訪問請求報文攜帶的目標特征進行修改;
[0021]報文轉(zhuǎn)發(fā)單元,用于將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0022]進一步的,所述第一判斷單元,具體用于判斷所述訪問請求報文是否攜帶時間戳選項。
[0023]進一步的,所述特征修改單元,具體用于將所述訪問請求報文攜帶的時間戳選項中的狀態(tài)修改為NOP。
[0024]進一步的,所述報文轉(zhuǎn)發(fā)單元,還用于在所述訪問請求報文未攜帶目標特征時,將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0025]進一步的,所述裝置還包括:
[0026]第二判斷單元,用于判斷所述訪問請求報文是否為SYN報文,若是則判斷所述訪問請求報文是否攜帶目標特征,否則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0027]由此可見,本發(fā)明可以通過修改訪問請求報文攜帶的目標特征,再將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后發(fā)送到服務器,以避免與服務器的PAWS機制產(chǎn)生沖突,從而使訪問請求報文順利建立TCP連接,保證用戶正常訪問網(wǎng)絡。
【附圖說明】
[0028]圖1是本發(fā)明一種示例性實施方式中的一種報文修改方法的處理流程圖;
[0029]圖2是本發(fā)明一種示例性實施方式中的另一種報文修改方法的處理流程圖;
[0030]圖3是本發(fā)明一種示例性實施方式中的報文修改裝置所在的NAT設備的硬件結(jié)構(gòu)圖;
[0031]圖4是本發(fā)明一種示例性實施方式中的一種報文修改裝置的邏輯結(jié)構(gòu)圖。
【具體實施方式】
[0032]為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種報文修改方法及裝置,可以通過修改訪問請求報文攜帶的目標特征,再將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后發(fā)送到TCP服務器,以避免與TCP服務器的PAWS機制產(chǎn)生沖突,從而使訪問請求報文順利建立TCP連接,保證用戶正常訪問網(wǎng)絡。
[0033]請參考圖1,是本發(fā)明一種示例性實施方式中的一種報文修改方法的處理流程圖,所述方法應用于NAT設備,所述方法包括:
[0034]步驟101、收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征;
[0035]在本實施例中,當該NAT設備收到訪問請求報文時,可以判斷該訪問請求報文中是否攜帶了目標特征。
[0036]步驟102、若所述訪問請求報文攜帶目標特征,則將所述訪問請求報文攜帶的目標特征進行修改;
[0037]當該NAT設備確認該訪問請求報文中攜帶目標特征后,可以將該訪問請求報文中攜帶的目標特征進行修改,以避免與服務器發(fā)生沖突。
[0038]步驟103、將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0039]NAT設備將目標特征修改完成后,可將該修改后的訪問請求報文進行NAT轉(zhuǎn)換,然后轉(zhuǎn)發(fā)到TCP服務器。
[0040]由此可見,本發(fā)明可以通過修改訪問請求報文攜帶的目標特征,再將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后發(fā)送到服務器,以避免與服務器的PAWS機制產(chǎn)生沖突,從而使訪問請求報文順利建立TCP連接,保證用戶正常訪問網(wǎng)絡。
[0041]在本發(fā)明可選的實施例中,該訪問請求報文攜帶的目標特征可以是時間戳選項。因此該NAT設備在收到訪問請求報文后,可以判斷所述訪問請求報文中是否攜帶時間戳選項。如果該訪問請求報文攜帶了時間戳選項,該NAT設備則可以將該訪問請求報文中的時間戳選項的狀態(tài)修改為NOP狀態(tài),以表示該訪問請求報文的時間戳的狀態(tài)為空。
[0042]由于現(xiàn)有技術(shù)中,TCP服務器會記錄相同IP地址發(fā)起的TCP連接請求中最新的時間戳。如果TCP服務器收到一個TCP報文的時間戳小于當前記錄中的最新時間戳,那么TCP服務器認為該TCP報文是對已經(jīng)發(fā)送過的TCP報文的重傳,從而將其忽略,導致服務端不響應用戶主機的TCP連接請求。
[0043]本發(fā)明通過將訪問請求報文攜帶的TCP時間戳選項修改為NOP狀態(tài),以表示該訪問請求報文的時間戳的狀態(tài)為空。TCP服務器收到時間戳選項為NOP狀態(tài)的訪問請求報文后,則不會進行時間戳校驗,從而使使用同一公網(wǎng)地址的多個訪問請求報文可以正常進行TCP連接。
[0044]此外,若NAT設備確定該訪問請求報文未攜帶目標特征,則無需進行時間戳修改,而將該訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0045]在本發(fā)明可選的實施例中,NAT設備在收到訪問請求報文后,還可以判斷該訪問請求報文是否為TCP協(xié)議中的SYN報文。若是,則繼續(xù)判斷所述訪問請求報文是否攜帶目標特征;若否,則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。因此,本發(fā)明可以通過對SYN報文的篩選進一步提高報文的查找效率及準確率。
[0046]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,結(jié)合圖2的報文修改處理流程圖,對本發(fā)明所述方案作進一步地詳細說明。NAT設備對報文修改的過程如下:
[0047]步驟201、接收用戶主機發(fā)送的訪問請求報文;
[0048]步驟202、判斷該訪問請求報文是否為TCP報文,若是,則轉(zhuǎn)步驟203,若否,則轉(zhuǎn)步驟 206 ;
[0049]步驟203、判斷該訪問請求報文是否為SYN報文,若是,則轉(zhuǎn)步驟204,若否,則轉(zhuǎn)步驟 206 ;
[0050]步驟204、判斷該訪問請求報文中是否攜帶時間戳選項,若是,則轉(zhuǎn)步驟205,若否,則轉(zhuǎn)步驟206 ;
[0051 ] 步驟205、將該訪問請求報文的時間戳選項修改為NOP狀態(tài),轉(zhuǎn)步驟206 ;
[0052]步驟206、將訪問請求報文進行NAT轉(zhuǎn)換后,轉(zhuǎn)發(fā)到TCP服務器。
[0053]由此可見,本發(fā)明可以通過將TCP報文中的SYN報文攜帶的時間戳選項修改為空狀態(tài),再對修改后的報文進行NAT轉(zhuǎn)換并發(fā)送到TCP服務器,以避免TCP服務器對該報文進行時間戳校驗,從而避免與TCP服務器的PAWS機制產(chǎn)生沖突,因此可以順利建立TCP連接,保證用戶正常訪問網(wǎng)絡。
[0054]基于相同的構(gòu)思,本發(fā)明還提供一種報文修改裝置,所述裝置可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,本發(fā)明的報文修改作為一個邏輯意義上的裝置,是通過其所在NAT設備的CPU將存儲器中對應的計算機程序指令讀取后運行而成。
[0055]請參考圖3及圖4,是本發(fā)明一種示例性實施方式中的一種報文修改裝置400,所述裝置應用于NAT設備,所述裝置基本運行環(huán)境包括CPU,存儲器以及其他硬件,從邏輯層面上來看,所述裝置400包括:
[0056]第一判斷單元401,用于在收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征;
[0057]特征修改單元402,用于在所述訪問請求報文攜帶目標特征時,將所述訪問請求報文攜帶的目標特征進行修改;
[0058]報文轉(zhuǎn)發(fā)單元403,用于將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0059]可選的,所述第一判斷單元401,具體用于判斷所述訪問請求報文是否攜帶時間戳選項。
[0060]可選的,所述特征修改單元402,具體用于將所述訪問請求報文攜帶的時間戳選項中的狀態(tài)修改為NOP。
[0061]可選的,所述報文轉(zhuǎn)發(fā)單元403,還用于在所述訪問請求報文未攜帶目標特征時,將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0062]可選的,所述裝置還包括:
[0063]第二判斷單元404,用于判斷所述訪問請求報文是否為SYN報文,若是則判斷所述訪問請求報文是否攜帶目標特征,否則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
[0064]綜上所述,本發(fā)明可以通過修改訪問請求報文攜帶的目標特征,再將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后發(fā)送到TCP服務器,以避免與服務器的PAWS機制產(chǎn)生沖突,從而可使訪問請求報文順利建立TCP連接,保證用戶正常訪問網(wǎng)絡。
[0065]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
【主權(quán)項】
1.一種報文修改方法,其特征在于,所述方法應用于NAT設備,所述方法包括: 收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征; 若所述訪問請求報文攜帶目標特征,則將所述訪問請求報文攜帶的目標特征進行修改; 將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述訪問請求報文是否攜帶目標特征,包括: 判斷所述訪問請求報文是否攜帶時間戳選項。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述訪問請求報文攜帶的目標特征進行修改,包括: 將所述訪問請求報文攜帶的時間戳選項中的狀態(tài)修改為NOP。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 若所述訪問請求報文未攜帶目標特征,則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 判斷所述訪問請求報文是否為SYN報文,若是則判斷所述訪問請求報文是否攜帶目標特征,否則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。6.一種報文修改裝置,其特征在于,所述裝置應用于NAT設備,所述裝置包括: 第一判斷單元,應用在收到訪問請求報文時,判斷所述訪問請求報文是否攜帶目標特征; 特征修改單元,用于在所述訪問請求報文攜帶目標特征時,將所述訪問請求報文攜帶的目標特征進行修改; 報文轉(zhuǎn)發(fā)單元,用于將修改后的訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述第一判斷單元,具體用于判斷所述訪問請求報文是否攜帶時間戳選項。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述特征修改單元,具體用于將所述訪問請求報文攜帶的時間戳選項中的狀態(tài)修改為NOP09.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述報文轉(zhuǎn)發(fā)單元,還用于在所述訪問請求報文未攜帶目標特征時,將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述裝置還包括: 第二判斷單元,用于判斷所述訪問請求報文是否為SYN報文,若是則判斷所述訪問請求報文是否攜帶目標特征,否則將所述訪問請求報文經(jīng)過NAT轉(zhuǎn)換后轉(zhuǎn)發(fā)到TCP服務器。
【文檔編號】H04L29/12GK105939396SQ201510340183
【公開日】2016年9月14日
【申請日】2015年6月17日
【發(fā)明人】李洪吉, 陳偉
【申請人】杭州迪普科技有限公司