一種pat模式下的端口復用方法及網(wǎng)絡地址轉換設備的制作方法
【專利摘要】本發(fā)明公開了一種PAT模式下的端口復用方法及網(wǎng)絡轉換設備,該方法包含:步驟101)采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄;步驟102)根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則可復用所述待分配本地端口;若存在,則重新分配本地端口直至所述待分配本地端口、目的IP地址和目的端口與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失??;其中,所述本地端口復用記錄利用本地端口、目的IP地址和目的端口三元組唯一標識內(nèi)網(wǎng)與外網(wǎng)之間的數(shù)據(jù)流。本發(fā)明的方法提升了本地端口的利用效率,節(jié)約端口資源。
【專利說明】—種PAT模式下的端口復用方法及網(wǎng)絡地址轉換設備
【技術領域】
[0001]本發(fā)明屬于計算機網(wǎng)絡【技術領域】,它是一種PAT模式下的端口復用方法。
【背景技術】
[0002]網(wǎng)絡地址轉換(NAT, Network Address Translation)是用于將互聯(lián)網(wǎng)地址(IP地址)從一個地址域映射到另一個地址域的標準方法。利用NAT技術,可以允許采用私有地址的企業(yè)內(nèi)部網(wǎng)絡(Intranet)的主機能夠透明地連接到外部的互聯(lián)網(wǎng)(Internet)中去,而該內(nèi)部主機無需擁有合法注冊的IP地址。NAT技術可以用來解決目前日益嚴峻的IP地址不足的問題,同時,它還提供了內(nèi)部網(wǎng)絡與外部網(wǎng)絡的隔離,隱藏并保護內(nèi)部網(wǎng)絡的主機。
[0003]互聯(lián)網(wǎng)工程任務組(TheInternet Engineering Task Force,簡稱 IETF)規(guī)定的私有地址的范圍為10/8,172.16/12,192.168/16三個部分。當采用私有地址的內(nèi)部局域網(wǎng)想與外部Internet實現(xiàn)通信的時候,用戶只需要在內(nèi)部局域網(wǎng)和Internet之間設置NAT技術以及由少量合法IP地址組成的IP地址池,就可以解決大量內(nèi)部主機訪問外部Internet的需求。
[0004]目前,NAT技術的實現(xiàn)方式主要包括以下三種:靜態(tài)轉換、動態(tài)轉換和端口地址轉換。其中,靜態(tài)轉換就是將內(nèi)部網(wǎng)絡的私有IP地址轉換為公有合法的IP地址時,IP地址的對應關系是一對一的,是不變的,即某個私有IP地址只能轉換為某個固定的公有IP地址。動態(tài)轉換,就是將內(nèi)部網(wǎng)絡的私有地址轉換為公有地址時,IP地址對應關系式不確定的,隨機的,所有被授權訪問Internet的私有地址,可隨機轉換為地址池內(nèi)的合法地址。端口地址轉換(以下簡稱PAT, PortAddress Translation)是同時轉換數(shù)據(jù)報文的IP地址和相應端口的地址轉換技術。它可以把多個內(nèi)部主機發(fā)送的數(shù)據(jù)報文的源IP地址轉換成為同一個外部IP地址,利用不同的TCP/UDP端口號進行區(qū)分。因此,采用PAT方式,內(nèi)部網(wǎng)絡的所有主機均可共享一個或多個(通常為多個)合法外部IP地址實現(xiàn)Internet的訪問,從而可以最大限度地節(jié)約IP地址資源。
[0005]在現(xiàn)有PAT技術的實現(xiàn)中,內(nèi)部網(wǎng)絡主機的IP地址和端口二元組必須與網(wǎng)絡轉換設備的IP地址和端口二元組一一對應,網(wǎng)絡轉換設備的端口無法復用。隨著各種類型數(shù)碼設備的普及,內(nèi)網(wǎng)設備對外訪問的連接數(shù)目日益增加,現(xiàn)有的PAT模式下的端口分配方式將無法滿足大量用戶的應用對地址轉換的需求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于,為克服上述問題,本發(fā)明提供一種PAT模式下的端口復用方法及網(wǎng)絡轉換設備,本發(fā)明提供的方法可將目的IP地址和端口不同的多個內(nèi)網(wǎng)IP地址和端口分配到網(wǎng)絡轉換設備上的同一端口。
[0007]為實現(xiàn)上述目的,本發(fā)明提供了一種PAT模式下的端口復用方法,所述方法為:
[0008]步驟101)采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄;
[0009]步驟102 )根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則可復用所述待分配本地端口 ;若存在,則重新分配本地端口直至所述待分配本地端口、目的IP地址和目的端口與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失??;
[0010]其中,所述本地端口復用記錄利用本地端口、目的IP地址和目的端口三元組唯一標識內(nèi)網(wǎng)與外網(wǎng)之間的數(shù)據(jù)流。
[0011]上述本地端口復用記錄可采用散列集合、散列表和關聯(lián)數(shù)組的方式進行保存。
[0012]上述方法還包含:當端口分配成功后,根據(jù)本地端口、目的IP地址和目的端口生成記錄并加入所述本地端口復用記錄中。
[0013]上述方法還包含:
[0014]釋放分配端口時,根據(jù)本地端口、目的IP地址和目的端口刪除所述本地端口復用記錄中對應記錄信息。
[0015]上述本地端口包含:本地邏輯端口號或由本地IP地址和本地端口的組合得到的組合端口號;且所述復用方法既可實時分配本地端口,也可離線預分配本地端口。
[0016]為了實現(xiàn)上述方法,本發(fā)明提供了一種網(wǎng)絡地址轉換設備,其特征在于,所述設備包含:
[0017]端口復用信息管理模塊,用于采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄;且該模塊通過建立保存本地端口復用記錄的哈希集合和用于端口分配的哈希表;其中,所述哈希集合利用本地端口、目的IP地址和目的端口三元組生成哈希鍵值,所述哈希表利用目的IP地址和目的端口二元組生成哈希鍵值,待分配的本地端口作為對應的哈希表表項;
[0018]端口分配模塊,用于根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則能復用所述待分配本地端口 ;若存在,則重新分配本地端口直至所述待分配本地端口、目的IP地址和目的端口與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失敗。
[0019]上述設備還包含:第一驅動模塊,用于當端口分配成功后,驅動端口復用信息建立模塊根據(jù)本地端口、目的IP地址和目的端口生成記錄并加入所述本地端口復用記錄中。和第二驅動模塊,用于釋放分配端口時根據(jù)本地端口、目的IP地址和目的端口驅動端口復用信息建立模塊刪除所述本地端口復用記錄中對應記錄信息。
[0020]上述本地端口包含:本地邏輯端口號或由本地IP地址和本地端口的組合得到的組合端口號;且所述復用方法既可實時分配本地端口,也可離線預分配本地端口。
[0021]與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:節(jié)約端口資源。在現(xiàn)有的地址轉換方法中,如果網(wǎng)絡地址轉換設備的合法公共IP地址和端口被分配用于一對一的地址轉換,則該地址及端口不能復用。用本發(fā)明的方法,不同目的地址和端口的數(shù)據(jù)包可復用已分配的本地端口,降低了組網(wǎng)的費用,提高了使用NAT組網(wǎng)的靈活性,且實現(xiàn)簡單。
【專利附圖】
【附圖說明】
[0022]圖1是本發(fā)明所述方法的實施例流程圖;
[0023]圖2_a是本發(fā)明實施例采用的哈希集合的示意圖。
[0024]圖2_b是本發(fā)明實施例采用的哈希表的示意圖。【具體實施方式】
[0025]下面結合附圖和具體實施例對本發(fā)明作進一步詳細描述。
[0026]本發(fā)明提供一種PAT模式下的端口復用方法,采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄,根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則可復用所述待分配本地端□。
[0027]其中,利用本地端口、目的IP地址和目的端口三元組唯一標識內(nèi)網(wǎng)與外網(wǎng)之間的數(shù)據(jù)流。
[0028]其中,所述本地端口復用記錄可采用散列集合、散列表和關聯(lián)數(shù)組的方式進行保存。
[0029]其中,分配本地端口時,根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則端口分配成功,否則,重新分配本地端口直至所述三元組與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失敗。
[0030]其中,端口分配成功后,根據(jù)本地端口、目的IP地址和目的端口生成記錄并加入所述本地端口復用記錄;釋放分配端口時,根據(jù)本地端口、目的IP地址和目的端口刪除所述本地端口復用記錄中對應記錄。
[0031]其中,所述本地端口包含但不僅限于本地邏輯端口號,本地IP地址和本地端口的組合也可采用所述復用方法進行分配。
[0032]其中,所述復用方法既可實時分配本地端口,也可離線預分配本地端口。
[0033]實施例
[0034]在本實施例中,假設應用端口地址轉換(PAT)方式,對內(nèi)網(wǎng)主機的數(shù)據(jù)包進行端口地址轉換,網(wǎng)絡地址轉換設備上一段連續(xù)的端口號可用于端口分配。
[0035]圖1是本發(fā)明所述方法的實施例流程圖。如圖1所示,需要經(jīng)過如下步驟:
[0036]步驟SI,在網(wǎng)絡地址轉換設備上建立用于保存本地端口復用記錄的哈希集合和用于端口分配的哈希表。
[0037]在步驟SI中,如圖2_a所示,用于保存本地端口復用記錄的哈希集合利用本地端口、目的IP地址和目的端口三元組生成哈希鍵值。如圖2-b所示,用于端口分配的哈希表利用目的IP地址和目的端口二元組生成哈希鍵值,待分配的本地端口作為對應的哈希表表項。
[0038]步驟S2,接收端口處理請求,如果是端口分配請求,轉步驟S3,如果是端口釋放請求,轉步驟S15。
[0039]步驟S3,根據(jù)目的IP地址和目的端口生成哈希鍵值KEYl。
[0040]步驟S4,判斷步驟SI中所述哈希表中是否有KEY1,若沒有,轉步驟S5,否則,轉步驟S7。
[0041]步驟S5,以本地起始端口作為轉換端口。
[0042]步驟S6,以KEYl為鍵值,本地起始端口加I為表項加入步驟SI所述哈希表中,轉步驟S13。[0043]步驟S7,在步驟SI所述哈希表中獲取KEYl對應本地端口。
[0044]步驟S8,根據(jù)步驟S7所述本地端口、目的IP地址和目的端口生成哈希鍵值KEY2。
[0045]步驟S9,判斷步驟SI所述哈希集合中是否含有KEY2,若不含有,轉步驟S10,否則,轉步驟SI I。
[0046]步驟S10,以步驟S7所述本地端口作為轉換端口,轉步驟S13。
[0047]步驟S11,將本地端口值加1,若當前本地端口值大于本地結束端口值,則將本地端口值修改為本地起始端口值,并判斷是否已經(jīng)遍歷完所有本地端口,若是,轉步驟S12,否貝U,轉步驟S8。
[0048]步驟S12,分配失敗,操作結束。
[0049]步驟S13,根據(jù)步驟S5、步驟SlO所述轉換端口、目的IP地址和目的端口生成哈希鍵值KEY3。
[0050]步驟S14,在步驟SI中所述哈希集合中插入KEY3,操作結束。
[0051]步驟S15,根據(jù)本地端口、目的IP地址和目的端口生成哈希鍵值KEY4。
[0052]步驟S16,在步驟SI中所述哈希集合中刪除KEY4,操作結束。
[0053]綜上所述,本發(fā)明提供了一種PAT模式下的端口復用方法,具體采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄,根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則可復用所述待分配本地端口。其中,上述方案利用本地端口、目的IP地址和目的端口三元組唯一標識內(nèi)網(wǎng)與外網(wǎng)之間的數(shù)據(jù)流。
[0054]上述本地端口復用記錄可采用散列集合、散列表和關聯(lián)數(shù)組的方式進行保存。當分配本地端口時,根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則端口分配成功,否則,重新分配本地端口直至所述三元組與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失敗。
[0055]當端口分配成功后,根據(jù)本地端口、目的IP地址和目的端口生成記錄并加入所述本地端口復用記錄;釋放分配端口時,根據(jù)本地端口、目的IP地址和目的端口刪除所述本地端口復用記錄中對應記錄。
[0056]上述本地端口包含但不僅限于本地邏輯端口號,本地IP地址和本地端口的組合也可采用所述復用方法進行分配。
[0057]上述復用方法既可實時分配本地端口,也可離線預分配本地端口。
[0058]本發(fā)明中的實施例僅為本發(fā)明的較佳實施例,并非用于限于本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種PAT模式下的端口復用方法,所述方法為:步驟101)采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄;步驟102)根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則可復用所述待分配本地端口 ;若存在,則重新分配本地端口直至所述待分配本地端口、目的IP地址和目的端口與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失??; 其中,所述本地端口復用記錄利用本地端口、目的IP地址和目的端口三元組唯一標識內(nèi)網(wǎng)與外網(wǎng)之間的數(shù)據(jù)流。
2.根據(jù)權利要求1所述的PAT模式下的端口復用方法,其特征在于,所述本地端口復用記錄采用散列集合、散列表和關聯(lián)數(shù)組的方式進行保存。
3.根據(jù)權利要求1所述的PAT模式下的端口復用方法,其特征在于,所述方法還包含: 當端口分配成功后,根據(jù)本地端口、目的IP地址和目的端口生成記錄并加入所述本地端口復用記錄中。
4.根據(jù)權利要求1所述的PAT模式下的端口復用方法,其特征在于,所述方法還包含: 釋放分配端口時,根據(jù)本地端口、目的IP地址和目的端口刪除所述本地端口復用記錄中對應記錄信息。
5.根據(jù)權利要求1所述的PAT模式下的端口復用方法,其特征在于,所述本地端口包含:本地邏輯端口號或由本地IP地址和本地端口的組合得到的組合端口號。
6.一種網(wǎng)絡地址轉換設備,其特征在于,所述設備包含: 端口復用信息管理模塊,用于采用本地端口、目的IP地址和目的端口三元組保存本地端口復用記錄; 端口分配模塊,用于根據(jù)待分配本地端口、目的IP地址和目的端口三元組判斷所述本地端口復用記錄中是否存在重復記錄,若不存在,則能復用所述待分配本地端口 ;若存在,則重新分配本地端口直至所述待分配本地端口、目的IP地址和目的端口與本地端口復用記錄無重復,則端口分配成功,或本地端口已全部分配,則端口分配失敗。
7.根據(jù)權利要求6所述的網(wǎng)絡地址轉換設備,其特征在于,所述端口復用信息管理模塊建立保存本地端口復用記錄的哈希集合和用于端口分配的哈希表;其中,所述哈希集合利用本地端口、目的IP地址和目的端口三元組生成哈希鍵值,所述哈希表利用目的IP地址和目的端口 二元組生成哈希鍵值,待分配的本地端口作為對應的哈希表表項。
8.根據(jù)權利要求6所述的網(wǎng)絡地址轉換設備,其特征在于,所述設備還包含: 第一驅動模塊,用于當端口分配成功后,驅動端口復用信息建立模塊根據(jù)本地端口、目的IP地址和目的端口生成記錄并加入所述本地端口復用記錄中。
9.根據(jù)權利要求6所述的網(wǎng)絡地址轉換設備,其特征在于,所述設備還包含: 第二驅動模塊,用于釋放分配端口時根據(jù)本地端口、目的IP地址和目的端口驅動端口復用信息建立模塊刪除所述本地端口復用記錄中對應記錄信息。
10.根據(jù)權利要求6所述的PAT模式下的端口復用系統(tǒng),其特征在于,所述本地端口包含:本地邏輯端口號或由本地IP地址和本地端口的組合得到的組合端口號。
【文檔編號】H04L29/12GK103945014SQ201310022034
【公開日】2014年7月23日 申請日期:2013年1月21日 優(yōu)先權日:2013年1月21日
【發(fā)明者】劉磊, 彭飛, 鄭艷偉, 劉孝勝 申請人:中國科學院聲學研究所, 北京海力匯通數(shù)字系統(tǒng)技術有限公司