国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于多核轉(zhuǎn)發(fā)網(wǎng)絡(luò)地址端口轉(zhuǎn)換的端口分配方法和裝置的制造方法

      文檔序號:9691132閱讀:470來源:國知局
      用于多核轉(zhuǎn)發(fā)網(wǎng)絡(luò)地址端口轉(zhuǎn)換的端口分配方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種多核轉(zhuǎn)發(fā)網(wǎng)絡(luò)地址端口轉(zhuǎn)換(Network Address Port Translat1n,NAPT)的端口分配方法和裝置。
      【背景技術(shù)】
      [0002]NAPT是將數(shù)據(jù)包的源互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址轉(zhuǎn)換成另一個(gè)指定的IP地址,同時(shí)對初始源端口進(jìn)行端口地址轉(zhuǎn)換(Port Address Translat1n,PAT),主要作用于從防火墻內(nèi)部網(wǎng)絡(luò)訪問外部網(wǎng)絡(luò)的情況,隱藏內(nèi)部網(wǎng)絡(luò)使用的IP地址,一定程度上保障私有網(wǎng)絡(luò)安全。
      [0003]對于網(wǎng)絡(luò)安全廠商,NAPT的實(shí)現(xiàn)主要就是在網(wǎng)絡(luò)地址轉(zhuǎn)換(Network AddressTranslat1n,NAT)的IP資源池中選擇一個(gè)合法IP地址,并選擇一個(gè)未用的端口號(1024-65535)。如何高性能的查找未用端口號,就是NAPT的性能關(guān)鍵點(diǎn)。
      [0004]隨著科技的不斷發(fā)展,現(xiàn)在的防火墻已普遍使用多核處理器。相關(guān)技術(shù)中,在多核轉(zhuǎn)發(fā)場景下都是使用加鎖的方式和普通的查找算法來確定NAPT的端口分配策略,但是,這種端口分配策略使得多核轉(zhuǎn)發(fā)NAPT性能有待提升。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
      [0006]為此,本發(fā)明的一個(gè)目的在于提出一種用于多核轉(zhuǎn)發(fā)NAPT的端口分配方法,該方法可以提升多核轉(zhuǎn)發(fā)NAPT的性能。
      [0007]本發(fā)明的另一個(gè)目的在于提出一種用于多核轉(zhuǎn)發(fā)NAPT的端口分配裝置。
      [0008]為達(dá)到上述目的,本發(fā)明第一方面實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配方法,包括:接收到報(bào)文后,在CHJ獨(dú)立占用的獨(dú)立資源池中查找是否存在未分配的端口號;如果所述獨(dú)立資源池中存在未分配的端口號,則在所述未分配的端口號中確定匹配的端口號,并將所述匹配的端口號分配給所述報(bào)文;如果所述獨(dú)立資源池中不存在未分配的端口號,則在多核共有的共有資源池中查找是否存在未分配的端口號;如果所述共有資源池中存在未分配的端口號,則在所述未分配的端口號中確定匹配的端口號,并將所述匹配的端口號分配給所述報(bào)文;如果所述共有資源池中不存在未分配的端口號,選擇可用CPU,并將所述報(bào)文轉(zhuǎn)發(fā)給所述可用CHJ進(jìn)行處理。
      [0009]本發(fā)明第一方面實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配方法,通過為每個(gè)CPU分配獨(dú)立資源池,可以使得多核之間在NAPT資源分配時(shí)互不干擾,性能達(dá)到每核線性增長;通過在獨(dú)立資源池中的資源不足時(shí)再從共有資源池中分配端口號,可以通過較低的復(fù)雜度實(shí)現(xiàn)端口資源的分配,保證連接可以被及時(shí)分配到可用的資源,從而提升多核轉(zhuǎn)發(fā)NAPT性能。
      [0010]為達(dá)到上述目的,本發(fā)明第二方面實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配裝置,包括:第一查找模塊,用于接收到報(bào)文后,在CHJ獨(dú)立占用的獨(dú)立資源池中查找是否存在未分配的端口號;第一分配模塊,用于在所述獨(dú)立資源池中存在未分配的端口號時(shí),在所述未分配的端口號中確定匹配的端口號,并將所述匹配的端口號分配給所述報(bào)文;第二查找模塊,用于在所述獨(dú)立資源池中不存在未分配的端口號時(shí),在多核共有的共有資源池中查找是否存在未分配的端口號;第二分配模塊,用于在所述共有資源池中存在未分配的端口號時(shí),在所述未分配的端口號中確定匹配的端口號,并將所述匹配的端口號分配給所述報(bào)文;轉(zhuǎn)發(fā)模塊,用于在所述共有資源池中不存在未分配的端口號時(shí),選擇可用CPU,并將所述報(bào)文轉(zhuǎn)發(fā)給所述可用CHJ進(jìn)行處理。
      [0011]本發(fā)明第二方面實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配裝置,通過為每個(gè)CPU分配獨(dú)立資源池,可以使得多核之間在NAPT資源分配時(shí)互不干擾,性能達(dá)到每核線性增長;通過在獨(dú)立資源池中的資源不足時(shí)再從共有資源池中分配端口號,可以通過較低的復(fù)雜度實(shí)現(xiàn)端口資源的分配,保證連接可以被及時(shí)分配到可用的資源,從而提升多核轉(zhuǎn)發(fā)NAPT性能。
      [0012]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
      【附圖說明】
      [0013]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
      [0014]圖1是本發(fā)明一實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配方法的流程示意圖;
      [0015]圖2是本發(fā)明實(shí)施例中在未分配的端口號中確定匹配的端口號的流程示意圖;
      [0016]圖3是本發(fā)明實(shí)施例中判斷是否在局部域中分配端口號的流程示意圖;
      [0017]圖4是本發(fā)明另一實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配方法的流程示意圖;
      [0018]圖5是本發(fā)明另一方面實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配裝置的結(jié)構(gòu)示意圖;
      [0019]圖6是本發(fā)明另一方面實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配裝置的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0020]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
      [0021]圖1是本發(fā)明一實(shí)施例提出的用于多核轉(zhuǎn)發(fā)NAPT的端口分配方法的流程示意圖,該方法包括:
      [0022]S11:接收到報(bào)文后,在CPU獨(dú)立占用的獨(dú)立資源池中查找是否存在未分配的端口號。
      [0023]例如,對應(yīng)多核中的每個(gè)中央處理器(Central Processing Unit,CPU),該CPU接收到報(bào)文后,可以先在自身對應(yīng)的獨(dú)立資源池中查找是否存在未分配的端口號。
      [0024]本實(shí)施例中,資源池可以包括:獨(dú)立資源池和共有資源池。獨(dú)立資源池的個(gè)數(shù)與CHJ的總數(shù)相同,分別與每個(gè)CPU對應(yīng)。共有資源池是一個(gè),是多個(gè)CPU共有的資源池。
      [0025]端口號的范圍是0到65535,但是,由于相關(guān)規(guī)定中已將0到1023這個(gè)范圍分配給指定服務(wù)。故而對于NAPT而言,實(shí)際上可以用來分配的端口號是1024到65535這一范圍。
      [0026]本實(shí)施例中,將1024到65535這一范圍分為獨(dú)立資源池和共有資源池,且獨(dú)立資源池中占用的端口號的個(gè)數(shù)相同。
      [0027]假設(shè)參與轉(zhuǎn)發(fā)的CPU個(gè)數(shù)為4個(gè),分別為CPU0-CPU3,他們可以分配并使用的端口號為1024-65536,共有64512個(gè),假設(shè)共有資源池中端口號是15360個(gè),除此之外的端口號共49152個(gè),四個(gè)CPU均被分配12288個(gè),因此,每個(gè)資源池內(nèi)的端口號的情況分別是:
      [0028]CPU0對應(yīng)的獨(dú)立資源池:1024-13111;
      [0029]CPU1對應(yīng)的獨(dú)立資源池:13312-25599;
      [0030]CPU2對應(yīng)的獨(dú)立資源池:25600-37887 ;
      [0031 ] CPU3對應(yīng)的獨(dú)立資源池:37888-50175 ;
      [0032]共有資源池:50176-65536。
      [0033]因此,假設(shè)CPU0接收到報(bào)文后,可以先在CPU0對應(yīng)的獨(dú)立資源池(端口號是13312-25599)中查找是否存在未分配的端口號。
      [0034]S12:如果所述獨(dú)立資源池中存在未分配的端口號,則在所述未分配的端口號中確定匹配的端口號,并將所述匹配的端口號分配給所述報(bào)文。
      [0035]例如,CPU0經(jīng)過查找判斷出在13312-25599這一范圍內(nèi)存在未分配的端口號,則可以從中選擇出一個(gè)未分配的端口號分配給報(bào)文。
      [0036]—些實(shí)施例中,參見圖2,在所述未分配的端口號中確定匹配的端口號,包括:
      [0037]S21:獲取上次分配的端口號,確定與所述上次分配的端口號相鄰的下一個(gè)端口號。
      [0038]例如,可以對每次分配的端口號進(jìn)行記錄,因此在記錄信息中可以獲取上次分配的端口號。初始時(shí)可以從每個(gè)CPU對應(yīng)的獨(dú)立資源池的最小端口號開始分配。
      [0039]例如,CPU0獲取上次分配的端口號是1024,則與上次分配的端口號相鄰的
      當(dāng)前第1頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1