国产精品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>

      一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法

      文檔序號(hào):9455837閱讀:1283來(lái)源:國(guó)知局
      一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及眾核服務(wù)器的網(wǎng)絡(luò)結(jié)構(gòu)領(lǐng)域,具體是一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法。
      【背景技術(shù)】
      [0002]傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)包的負(fù)載均衡和預(yù)解析方法,是通過(guò)CPU的處理能力進(jìn)行數(shù)據(jù)包的解析,將解析結(jié)果分發(fā)到對(duì)應(yīng)的處理模塊,這種方法在解析大流量的數(shù)據(jù)包時(shí),會(huì)占用較大的CPU資源并且導(dǎo)致處理模塊的處理能力下降。
      [0003]現(xiàn)有傳統(tǒng)方法中,通常采取選用幾臺(tái)眾核服務(wù)器,然后每一臺(tái)眾核服務(wù)器對(duì)應(yīng)一個(gè)多核處理器(TILERA CPU),通過(guò)一臺(tái)交換機(jī)進(jìn)行多臺(tái)眾核服務(wù)器之間的信息交換,這樣做占用的空間資源以及功耗會(huì)比較大。
      [0004]傳統(tǒng)方法采用的多核可編程智能包引擎(MPIPE),主要功能是進(jìn)行數(shù)據(jù)流的分發(fā)即把相同的數(shù)據(jù)流分發(fā)到同一個(gè)TILERA CPU核,缺點(diǎn)是沒(méi)有預(yù)處理功能。

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

      [0005]本發(fā)明針對(duì)上述問(wèn)題,為了最大程度的提高數(shù)據(jù)包的處理能力,充分利用MPIPE的處理能力,加入了預(yù)處理功能,解析協(xié)議類(lèi)型以及數(shù)據(jù)長(zhǎng)度等并把結(jié)果傳送給對(duì)應(yīng)的TILERA CPU 核。
      [0006]—種網(wǎng)絡(luò)數(shù)據(jù)包的負(fù)載均衡和預(yù)解析方法建立于一臺(tái)眾核服務(wù)器上,具體包括I個(gè)交換芯片和2個(gè)MPIPE ;交換芯片具有外接接口 XGBE,每個(gè)MPIPE分別對(duì)應(yīng)I個(gè)具有36核的TILERA CPU,依次標(biāo)記為O核一 35核;
      [0007]—種網(wǎng)絡(luò)數(shù)據(jù)包的負(fù)載均衡和預(yù)解析方法,具體包括以下步驟:
      [0008]步驟一、在眾核服務(wù)器下配置交換芯片;
      [0009]交換芯片具有多個(gè)物理端口,平均分別對(duì)應(yīng)2個(gè)MPIPE,從每個(gè)MPIPE對(duì)應(yīng)的物理端口中任選一個(gè)組成邏輯端口,通過(guò)trunk命令進(jìn)行邏輯端口的綁定;
      [0010]步驟二、輸入的數(shù)據(jù)包經(jīng)過(guò)外接接口 XGBE進(jìn)入交換芯片后,平均分給2個(gè)MPIPE ;
      [0011]數(shù)據(jù)包經(jīng)過(guò)交換芯片的邏輯端口后,如果數(shù)據(jù)包的目的IP和源IP相同,將數(shù)據(jù)包分發(fā)到同一個(gè)物理端口,進(jìn)而轉(zhuǎn)發(fā)到物理端口對(duì)應(yīng)的MPIPE,從而將數(shù)據(jù)包平均分給2個(gè)MPIPE ;
      [0012]步驟三、每個(gè)MPIPE將數(shù)據(jù)包轉(zhuǎn)發(fā)到對(duì)應(yīng)的TILERA CPU上,并進(jìn)行數(shù)據(jù)包預(yù)解析;
      [0013]預(yù)解析具體步驟如下:
      [0014]步驟301、判斷數(shù)據(jù)包的IP協(xié)議頭是否為IPV4或者IPV6,如果不是跳轉(zhuǎn)到步驟306,否則進(jìn)入步驟302。
      [0015]步驟302、解析IP協(xié)議頭記錄的源IP,目的IP,以及協(xié)議類(lèi)型。
      [0016]步驟303、判斷協(xié)議類(lèi)型是否為T(mén)CP或者UDP,如果是,進(jìn)入步驟304,否則跳轉(zhuǎn)到步驟 306。
      [0017]步驟304、解析TCP協(xié)議或者UDP協(xié)議中的信息,并且把信息存放到預(yù)解析結(jié)果中。
      [0018]步驟305、解析IP協(xié)議后續(xù)的數(shù)據(jù)并且進(jìn)行字符串比較,把比較結(jié)果存放到預(yù)解析結(jié)果中。
      [0019]步驟306、把預(yù)解析結(jié)果發(fā)送給TILERA CPU。
      [0020]步驟四、在每個(gè)TILERA CPU上調(diào)用pthread_create庫(kù)函數(shù)創(chuàng)建36個(gè)數(shù)據(jù)包處理線程;
      [0021]步驟五、為每個(gè)數(shù)據(jù)包處理線程分別綁定一個(gè)TILERA CPU核;
      [0022]步驟六、將數(shù)據(jù)包的預(yù)解析結(jié)果分發(fā)到對(duì)應(yīng)的數(shù)據(jù)包處理線程。
      [0023]配置邏輯端口的hash算法,針對(duì)具有相同目的IP和源IP的數(shù)據(jù)包,計(jì)算數(shù)據(jù)包的id值,根據(jù)id值判斷,將相同id值的數(shù)據(jù)包傳輸給綁定的同一個(gè)數(shù)據(jù)包處理線程。
      [0024]步驟七、36個(gè)處理線程分別通過(guò)調(diào)用庫(kù)函數(shù)gx1_mpipe_iqueue_try_peek接收數(shù)據(jù)包并且得到預(yù)解析結(jié)果,保存源IP和目的IP。
      [0025]本發(fā)明的優(yōu)點(diǎn)與積極效果在于:
      [0026]I) 一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法,在眾核服務(wù)器下使用交換芯片進(jìn)行各個(gè)TILERA CPU之間的負(fù)載均衡,通過(guò)MPIPE實(shí)現(xiàn)TILERA CPU核之間的負(fù)載均衡。對(duì)于處理線程不需要再解析數(shù)據(jù)包,只需要對(duì)需要關(guān)注的數(shù)據(jù)包里面的域進(jìn)行處理;操作更加簡(jiǎn)便,最大程度的提高數(shù)據(jù)包的處理能力。
      [0027]2) 一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法,為各個(gè)線程綁定TILERA CPU核,實(shí)現(xiàn)了并行處理數(shù)據(jù)包。
      [0028]3) 一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法,通過(guò)配置邏輯端口的hash算法,對(duì)于相同目的IP+源IP的數(shù)據(jù)包分發(fā)到同一個(gè)物理端口,實(shí)現(xiàn)TILERA CPU之間的負(fù)載均衡,提高了眾核服務(wù)器數(shù)據(jù)包處理能力。
      【附圖說(shuō)明】
      [0029]圖1是本發(fā)明網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析的示意圖;
      [0030]圖2是本發(fā)明一種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法的流程圖;
      [0031]圖3為本發(fā)明預(yù)解析具體步驟的流程圖;
      [0032]圖4是本發(fā)明處理線程分別接收數(shù)據(jù)包并預(yù)解析的示意圖;
      【具體實(shí)施方式】
      [0033]下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
      [0034]—種網(wǎng)絡(luò)數(shù)據(jù)包負(fù)載均衡和預(yù)解析方法,采用一臺(tái)眾核服務(wù)器,如圖1所示,包括I個(gè)交換芯片,2個(gè)多核處理器(TILERA CPU)和2個(gè)多核可編程智能包引擎(MPIPE);
      [0035]通過(guò)眾核服務(wù)器上的交換芯片進(jìn)行數(shù)據(jù)包負(fù)載均衡到各個(gè)多核處理器,在各個(gè)TILERA CPU上通過(guò)MPIPE實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的接收以及負(fù)載均衡,并且將預(yù)解析結(jié)果發(fā)送到指定的TILERA CPU核上。通過(guò)trunk命令以及hash算法的規(guī)則實(shí)現(xiàn)負(fù)載均衡。
      [0036]輸入的數(shù)據(jù)包經(jīng)過(guò)外接接口 XGBE進(jìn)入交換芯片后,被平均分成兩部分,對(duì)應(yīng)進(jìn)入兩個(gè)MPIPE中,MPIPE進(jìn)行平均分發(fā),把具有相同目的IP和源IP的數(shù)據(jù)包分發(fā)到同一個(gè)TILERA CPU 核。
      [0037]—種網(wǎng)絡(luò)數(shù)據(jù)包的負(fù)載均衡和預(yù)解析方法,如附圖2所示,具體步驟如下:
      [0038]步驟一、在眾核服務(wù)器下配置交換芯片;
      [0039]交換芯片具有多個(gè)物理端口,平均分別對(duì)應(yīng)2個(gè)MPIPE,從每個(gè)MPIPE對(duì)應(yīng)的物理端口中任選一個(gè)組成邏輯端口,通過(guò)trunk命令進(jìn)行邏輯端口的綁定;
      [0040]首先、登陸眾核服務(wù)器的交換芯片,并進(jìn)入配置交互界面。
      [0041 ] 把PC機(jī)和眾核服務(wù)器配置在同一個(gè)網(wǎng)段,在PC上通過(guò)telnet命令登陸眾核服務(wù)器的交換芯片的配置交互界面,配置交互界面選用現(xiàn)有的CLI (命令行界面)。
      [0042]然后、通過(guò)trunk命令把交換芯片的多個(gè)物理端口綁定為一個(gè)邏輯端口。
      [0043]例如利用trunk命令進(jìn)行端口綁定如下:
      [0044]trunk add id = I Rtag = 6 pbmp = xel5, xel6, xel7
      [0045]把物理端口 xel5,xel6, xl7綁定為一個(gè)邏輯端口。
      [0046]每個(gè)MPIPE分別對(duì)應(yīng)3個(gè)物理端口,如:第一個(gè)MPIPE對(duì)應(yīng)物理端口 I,物理端口 2和物理端口 3 ;第二個(gè)MPIPEl對(duì)應(yīng)物理端口 4,物理端口 5,物理端口 6 ;
      [0047]選取物理端口 I和物理端口 4組成一個(gè)邏輯端口 ;保證了數(shù)據(jù)流經(jīng)過(guò)邏輯端口平均分配到2個(gè)MPIPE ;
      [0048]如果選取物理端口 I,物理端口 2,物理端口 3和物理端口 4組成一個(gè)邏輯端口,保證了分到第一個(gè)MPIPE的是四分之三的數(shù)據(jù)流,第二個(gè)MPIPE的是四分之一的數(shù)據(jù)流。
      [0049]步驟二、輸入的數(shù)據(jù)包經(jīng)過(guò)外接接口 XGBE進(jìn)入交換芯片后,平均分給2個(gè)MPIPE ;
      [0050]數(shù)據(jù)包經(jīng)過(guò)交換芯片的邏輯端口后,對(duì)于相同目的IP+源IP的數(shù)據(jù)包分發(fā)到同一個(gè)物理端口,進(jìn)而轉(zhuǎn)發(fā)到物理端口對(duì)應(yīng)的MPIPE,從而將數(shù)據(jù)包平均分給2個(gè)MPIPE。
      [0051]交換芯片采用hash算法,將數(shù)據(jù)包平均分配給2個(gè)物理端口:物理端口 I和物理端口 4,經(jīng)過(guò)物理端口進(jìn)入到2個(gè)MPIPE。
      [0052]id = hash_fun (srcip, dstip,srcmac,dstmac)。
      [0053]hash_fun表示通過(guò)CRC循環(huán)冗余檢驗(yàn)算法實(shí)現(xiàn),srcip表示源IP,dstip表示目的IP,srcmac表示源MAC,dstmac表示目的MAC,id為通過(guò)規(guī)則算法得到的值。
      [0054]步驟三、每個(gè)MPIPE將數(shù)據(jù)包轉(zhuǎn)發(fā)到對(duì)應(yīng)的TILERA CPU上;并且進(jìn)行數(shù)據(jù)包預(yù)解析;
      [0055]如圖3所示,預(yù)解析具體步驟如下:
      [0056]步驟301、判斷數(shù)據(jù)包的IP協(xié)議頭是否為IPV4或者IPV6,如果不是跳
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1