新四季網

Gtp數據包的快速轉發處理方法

2023-05-30 18:52:01

專利名稱:Gtp數據包的快速轉發處理方法
技術領域:
本發明涉及一種無線數據通信技術,更確切地說是涉及GTP(GPRSTunnel Protocol通用無線分組業務隧道協議)協議數據包的一種快速轉發處理方法。本發明的轉發處理方法,應用於GPRS(通用無線分組業務)骨幹網設備SGSN(GPRS支持節點)和GGSN(網關GPRS支持節點,SGSN和GGSN可統稱為GSNGPRS支持節點)上的GTP協議數據包轉發處理,相對於基於傳統TCP/IP(Transmission Control Protocol/Internet Protocol傳輸控制協議/網際互聯協議)協議棧的轉發處理方法,GTP協議數據包的轉發效率明顯得以提高,GSN設備的吞吐量也相應大幅度提高。
參見

圖1並結合參見圖2所示的GPRS傳輸平面示意圖,移動臺(MS)與基站子系統(BSS)之間的信息傳輸通過Um接口模塊進行,基站子系統(BSS)與GPRS支持節點(SGSN)之間的信息傳輸通過Gb接口模塊進行,GPRS支持節點(SGSN)與網關GPRS支持節點(GGSN)之間的信息傳輸通過Gn接口模塊進行,網關GPRS支持節點(GGSN)與外部分組數據網之間的信息傳輸通過Gi接口模塊進行。移動臺MS(手機用戶)數據在GPRS骨幹網內部是封裝在GTP數據包中傳輸的,因此,提高GSN(SGSN或GGSN)設備的吞吐量主要需通過快速轉發GTP數據包來實現。
正如圖2中所示,在實現傳統GSN時,GTP協議是通過標準TCP/IP(傳輸控制協議/網際互聯協議)協議棧,即通過調用標準Socket API(網絡編程接口)函數來發送和接收GTP數據包的。換句話說,Socket協議層作為協議棧GTP層(應用層)和底層TCP/IP(傳輸層、鏈路層)的中間層,是應用發送和接收數據包以及通過相應的選項對數據包收、發進行控制的界面。
圖4所示的數據發送與應用實施控制過程,表達了數據發送時所涉及的TCP/IP協議棧中的各個元素及它們之間的關係。圖5所示的數據接收過程,表達了數據接收時所涉及的TCP/IP協議棧中的各個元素及它們之間的關係(需要說明的是圖4、圖5中分別示出的GTP-U快速發送接口函數、GTP-U快速接收接口函數是為實現本發明的快速轉發技術而增加的函數模塊,除此以外的部分就是傳統方式下GTP數據包發送與接收處理的示意過程)。
結合參見圖2、圖4,在傳統方式下,發送GTP數據包的過程是當位於Gn接口一側的GTP層收到從Gi接口進入GGSN並要發送到對端SGSN的數據包時,它首先調用GTP的一個處理函數,在該數據包所屬PDP(分組數據協議)上下文中找到SGSN地址;然後,調用socket接口函數Sendto向該SGSN的3386埠發送出去;隨即進入圖4所示的處理流程。圖4中,用實心箭頭表示對目標函數模塊的選擇,用空心箭頭表示對目標函數模塊的參數輸入,圖中除GTP-U快速發送接口函數框及公用接口(協議開關表)框代表的是單個函數或結構模塊外,其餘框均代表作為協議實現的一組函數模塊。
1.在傳統socket層,依次調用內部接口函數Sendto、SendIt、So_send分別進行「將數據所在緩衝區參數封裝到MSGHDR結構中」、「為拷貝數據創建UIO結構」和「將數據拷貝並封裝到MBUF結構中(預留了數據包頭空間)」等操作,並進行構造地址信息MBUF、檢查發送socket狀態和數據包合法性等工作;最後,由So_send函數調用協議開關表中的對應輸出函數udp_output進入UDP(用戶數據報協議)層處理。
2.在UDP層,首先對連接狀態、目的地址消息等進行合法性檢查、選擇本地埠號,然後對數據包帖頭、進行校驗和計算並填充UDP頭、IP頭的幾個欄位,最後調用ip_output函數,進入IP層處理。
3.在IP層,數據包需經歷多次判斷,如判斷是否為廣播數據包、多播數據包,有沒有IP選項等,然後通過查找外出路由表並通過相應接口發送出去。
可以發現,這種數據包發送過程在對GGSN設備進行整體實現時存在幾個明顯的缺陷,導致處理效率低下,具體表現在以下五個方面一.從圖2的傳輸平面可以看出,目前GTP只承載在UDP上,並且GTP-U數據包既不是多播、廣播數據包,也不需要IP選項等,因此,將GTP數據包的發送建立在標準TCP/IP協議棧上,其處理過程中的冗餘現象就很嚴重,特別是在socket層含有大量與TCP等相關的操作,在UDP、IP層存在多種判斷分支,因此在要求每秒處理幾十萬數據包的情況下,這些操作與判斷所佔用的處理時間就不容忽視了;二.儘管數據包在Gi接口到Gn接口之間流經整個GGSN設備的過程中,可以始終以MBUF(UNIX內核數據格式)形式存在,但傳統socket層仍然需要進行大量的如數據結構轉換、數據拷貝、數據包類型判斷等耗時的操作;三.按照TCP/IP標準協議棧要求,對數據包帖頭是在不同層進行的,這樣就會對每個數據包多次作動態申請內存,而在電信級要求的GGSN設備中,該操作本身就會消耗大量的處理時間;四.由於在GTP-C上下文激活時,每個MS用戶的PDP(Packet Data Protocol分組數據協議)上下文中已經包含有確定的四元組信息,包括本地IP位址、本地埠號、對端IP位址及目的埠號,因此,和該用戶相關的隨後數據包的UDP+IP首部中就有相當的欄位內容已經在GTP層確定,即圖1中從手機到欲訪問數據網接入點的路徑已經確定,但是底層TCP/IP協議仍然對每個數據包每次都自己構造四元組信息和進行相關的合法性檢查;五.由於GTP-U並沒有重傳機制,因此對大部分UDP數據包的校驗與計算可以不進行,因為針對整個數據包的UDP校驗與計算是相當耗費資源的。
結合參見圖2、圖5,在傳統方式下,GGSN接收來自SGSN的GTP數據包並處理、轉發到Gi接口模塊。
圖5中,用空心箭頭表示目標函數模塊的參數輸入,圖中除GTP-U快速接收接口函數框代表的是單個函數或結構外,其餘框均代表作為協議實現的一組函數模塊。可見,在GGSN協議棧本身接收GTP包的處理過程中會出現多次分發,如從IP層經公用接口分發到UDP層,UDP層再按照數據包中的埠號依次找到對應的接收socket,並掛到它的接收緩衝區中等。
一般地,GTP作為應用任務,採用如下方法接收和轉發上行數據包每隔固定的時間間隔,調用recv函數從socket的接收緩衝區中讀出「所有在該時間間隔內由協議棧任務獲取的數據包」,並存放到GTP任務自己的緩衝區中;然後再對緩衝區中各個數據包按照TID(Tunnel ID隧道標識)查找SDB(SubscriberDataBase:用戶資料庫)並發送到接口Gi處理模塊。
圖6中示出傳統方式下接收GTP數據包的過程。圖中用斜線框表示GTP任務從協議棧任務socket緩衝區中讀出數據包的處理,用灰色框表示GTP任務對自己緩衝區中數據包的處理,用平行於時間軸的無色框表示協議棧任務從網絡接口接收數據包,用垂直於時間軸的無色框表示每個時刻GTP數據包緩衝區的情況,這裡假設GTP任務緩衝區的最大長度為5個數據包。
在該圖中,假設第一個時間間隔內,協議棧任務獲取2個數據包,並存放到自己的socket緩衝區中,間隔時間到後,GTP任務從中讀出並處理掉這2個數據包;在第二個時間間隔內,協議棧任務獲取了5個數據包,間隔時間到後,GTP任務從socket緩衝區中讀出這5個數據包但只處理掉其中的3個數據包;在第三個時間間隔內,協議棧任務又獲取了4個數據包,但由於GTP數據包緩衝區只剩下3個數據包的空間,所以GTP任務從socket緩衝區中讀出3個數據包並在下一個時間間隔到之前處理掉了緩衝區中的4個數據包,…。
這裡,將數據包先存放到GTP任務自己的數據包緩衝區中是為了避免對單個數據包的處理會長時間佔用CPU。
可見,同樣地,在這種數據包的接收過程中也存在接收效率低下的明顯缺陷,具體表現在以下四個方面一.所有數據包在網絡協議棧處理任務與GTP任務中兩次排隊,不僅使可排隊的數據包數目受到Socket緩衝區和GTP緩衝區的雙重限制,而且排隊操作重複;二.出於產品通用性方面的考慮,標準Socket API本身(recv函數)的處理效率常常很低,甚至比GTP其他處理還耗時(圖6中示意出該特點,即對單個數據包處理時,斜線框長度大於灰色框長度),當數據包越多時,有效處理效率(即將數據包發送到Gi接口模塊)則越低;三.由於數據包是在網絡協議處理任務(協議棧任務)與GTP任務兩個任務之間傳遞的,GTP任務只能每隔固定的時間間隔讀取socket緩衝區中的數據包進行處理,而恰恰是這個固定時間間隔造成了某些間隔中GTP處理能力的過剩,如圖6中的第一個時間間隔內,而另外一些間隔中因出現處理能力不足則造成丟包,如圖6中的第三個時間間隔內只處理了3個數據包,當緊接著再讀入4個數據包時出現緩衝區滿,被迫丟包,如此產生的積累效應,即使GTP數據包緩衝區開得很大,這種情形也會出現;四.如前所述,在協議棧任務本身接收GTP包的處理過程中,會出現多次分發,如圖5中示出的IP層輸入函數IP_Input在結束之前分發到UDP層輸入函數UDP_Input,UDP層在按照數據包中的埠號依次找到對應的接收socket,並掛到它的接收緩衝區中,而實際上GTP層常常在固定的埠號(直接反映同時支持的協議版本號)上接收數據包,而和數據包進入時的網絡接口和SOCKET結構並不相關,在數據包接收過程中的這些上傳分發操作,包括所使用的SOCKET結構是無用的。
綜上所述,在傳統GSN的實現中,GTP模塊通過標準socket API與TCP/IP底層協議棧發生關係,具體地,在發送數據包的過程中,當有數據包經過GTP處理需要從GGSN發送到對端SGSN時,GTP最終會利用socket API標準發送函數將其發送出去,而該過程存在影響效率的缺陷;在接收數據包過程中,作為應用任務,GTP不得不採用每隔固定的時間間隔從socket的接收緩衝區中讀出所有網絡協議處理任務在該時間間隔內放在GTP緩衝區中數據包的方法進行GTP-U數據包的收集,其過程中也存在明顯的接收效率低下的問題。
實現本發明目的的技術方案是這樣的一種GTP數據包的快速轉發處理方法,包括GTP協議棧的數據包發送與數據包接收處理方法,其特徵在於A.所述GTP數據包的發送進一步包括以下處理步驟a.將原本由SOCKET中間層完成的一些操作及一些準備工作上提到GTP應用層,利用GTP-U快速發送準備函數完成;b.在SOCKET中間層,利用新增的SOCKET層處理函數對數據包進行處理並越過UDP傳輸層;c.在IP層,利用新增的IP層快速發送處理函數對數據包進行處理並通過網絡接口進行數據發送;B.所述GTP數據包的接收進一步包括以下處理步驟d.GTP應用層進行準備工作,註冊GTP-U快速接收處理的回調函數;
e.在網絡接口收到數據包並為其創建MBUF結構時,在首部預留一空間,用於構造數據包的UDP頭和IP頭;f.在GTP數據包到達UDP傳輸層後,利用修改定製後的原UDP層輸入處理函數對數據包進行處理,並越過SOCKET中間層,直接調用GTP應用層的回調函數將數據包直接投遞到GTP任務的緩衝區中。
所述步驟a中上提到GTP應用層的操作,包括a1.GTP任務在初始化時創建發送用SOCKET結構,並通過調用相應函數獲取該SOCKET結構的指針,單獨存儲;a2.在每個用戶的分組數據協議(PDP)上下文確定後,按隧道標識(TID)向用戶資料庫(SDB)存入該用戶與數據轉發相關的信息。
所述步驟a2中,所述的與數據轉發相關的信息至少包括合法的發送到對端的通用無線分組業務(GPRS)支持節點(GGSN)的IP位址、埠號及本地的IP位址及埠號。
所述步驟a中,還包括在數據包發送時GTP應用層執行的操作,包括a3.從Gi接口模塊接收下行MBUF數據包;a4.取數據包長度,並檢查數據包是否含有合法數據;a5.對含有合法數據的數據包帖用戶數據報協議(UDP)頭和IP頭;a6.參考用戶資料庫(SDB)並參照虛擬的抽象頭模板,進行用戶數據報協議(UDP)頭和IP頭欄位計算與填充。
所述步驟a6中所指的抽象頭模板,實際上是數據包UDP頭和IP頭欄位中包括IP首部長度、IP版本號、服務類型、生存時間、傳輸層協議號、源IP位址、目的IP位址、源埠號及目的埠號的欄位值的集合,這些欄位值是從用戶資料庫(SDB)的相關欄位中提取或計算出來的,然後一一填充到數據包相應欄位中。
所述步驟b中,新增的SOCKET層處理函數是針對GTP-U的快速發送接口函數,該函數的處理進一步包括
b1.對包括高水平位的設置、SOCKET狀態的發送SOCKET本身及GTP數據包進行檢查;b2.針對「對當前數據包關閉路由」和「從指定接口進行發送」選項進行相應操作;b3.對GTP信令進行UDP校驗與計算,和在指定了「對當前數據包進行UDP校驗與計算」選項時,對當前數據包進行UDP校驗與計算;b4.取出存儲在UDP傳輸層協議控制塊中的包括IP選項、IP多播選項信息,直接調用新增的IP層處理函數對數據包進行進一步處理;b5.針對「對當前數據包關閉路由」和「從指定接口進行發送」選項進行相應操作;b6.根據IP層處理函數的返回值相應返回。
所述步驟c中新增的IP層處理函數是針對GTP-U的快速發送IP接口函數,該函數的處理進一步包括c1.填充其他IP頭欄位並選擇輸出接口;c2.通過該輸出接口發送數據包;c3.根據底層處理函數的返回值相應返回。
所述步驟c3中的返回是「發送成功與否」的結果指示。
所述步驟d中GTP應用層註冊的GTP-U快速接收處理回調函數的主要操作包括d1.按信令包或數據包區分每個接收到的GTP數據包,並送入相應的緩衝隊列中;d2.釋放CPU,使隊列中的GTP數據包可以被處理轉發到Gi接口模塊。
所述的步驟f中的修改是在原UDP層輸入處理函數UDP_input函數上進行定製、修改,該函數的處理進一步包括f1.丟棄數據包中仍含有的IP選項;f2.取出IP頭和用戶數據報文協議(UDP)頭,丟棄已經發生數據丟失的數據包;f3.根據數據包的目的埠號決定處理方式,如果發現是GTP包,則進行相應處理,否則按照UDP_input函數原有流程對其進行後續的處理。
所述步驟f3中對GTP數據包進行的操作包括f31.如果是GTP信令包,則進行校驗和計算,否則按照「對當前數據包進行UDP校驗與計算」的選項設置,對當前數據包選擇性地進行校驗和計算;f32.去掉數據包中的用戶數據報協議(UDP)和IP包頭,直接調用所述GTP任務註冊的回調函數將數據包直接投遞到GTP任務的緩衝區中。
本發明的方法,是根據GTP特點裁剪GSN設備底層TCP/IP協議棧,從而實現快速轉發GTP數據包的處理流程,可大大提高設備處理核心代碼的效率和提高GSN設備的吞吐量。
傳統GTP協議棧SOCKET、UDP層處理曾經一度成為數據轉發速度的瓶頸,如果採用本發明的優化方法,就可使該部分瓶頸得到突破,能完全達到IP、鏈路層的快速處理性能,同時也達到了在提高GTP轉發性能的情況下承載更多業務的效果。
圖2是GPRS傳輸平面示意圖。
圖3是本發明為GTP數據包快速轉發而優化的GTP協議棧結構及處理流程示意圖。
圖4是GGSN設備數據發送及應用實施控制過程示意圖。
圖5是GGSN設備數據接收過程示意圖。
圖6是傳統方式下接收並處理GTP數據包的過程及效果示意圖。
圖7是本發明快速接收並處理GTP數據包的過程及效果示意圖。
具體實施例方式
本發明進行GTP數據包快速發送的總體方案是首先提取出對每個用戶的所有數據包都進行的與發送相關的操作,並以「發送準備工作」的方式在發送之前完成;然後調用GTP-U快速發送接口函數進行發送。本發明進行GTP數據包快速接收的總體方案是協議棧任務在UDP層獲取到數據包時並不投遞到SOCKET緩衝區,而是通過調用GTP任務的回調函數直接投遞到GTP任務的緩衝區中。
參見圖3,本發明為實現快速轉發GTP-U數據包,對GTP協議棧進行了優化設計。協議棧結構包括GTP應用層、SOCKET中間層、UDP傳輸層和IP網絡層,及網絡接口。
圖中用下行箭頭表示數據的快速發送流程。首先將原本由SOCKET中間層完成的一些操作及一些準備工作上提到GTP層完成;在SOCKET中間層,根據數據包發送特點,利用新增的SOCKET層處理函數對數據包進行處理並越過UDP傳輸層;在IP網絡層,根據數據包發送特點,利用新增的IP層處理函數(快速發送轉發函數)對數據包進行處理,並通過網絡接口進行數據發送。
圖中用上行箭頭表示數據的快速接收流程。在來自網絡接口的數據包被預留頭空間並逐步到達UDP層後,經過修改定製的原UDP層輸入處理函數會越過SOCKET層,直接通過GTP任務註冊的回調函數,即GTP-U快速接收接口函數,將其直接投遞到GTP任務的緩衝區中。
參見圖4,本發明在SOCKET層上新增一接口函數,即GTP-U快速發送接口函數,該函數作為增加到API庫中的新函數,集成了原來SOCKET和UDP層的處理,但只含有「為GTP應用服務的、只針對MBUF數據包」的處理,並且不進行數據發送時的UDP校驗與計算某些無關選項的處理。IP層的發送「定製操作」則簡化為「只為GTP應用服務」,通過在IP層增加新函數實現。
本發明的快速發送過程可分為三個大步驟進行,包括第一大步驟發送結構準備。
GTP-U任務在初始化時創建發送用的Socket,並通過GetSock函數獲取該Socket結構的指針,進行單獨存儲;在每個用戶的PDP(分組數據協議)上下文確定後,將該用戶的與數據轉發相關的信息存入用戶資料庫(SDBSubscriber DateBase)中,該相關的信息包括對端SGSN的IP位址、埠號,本地IP位址、埠號等。
第二大步驟在數據包發送過程中對GTP-U模塊進行處理。
每當GTP-U模塊從Gi接口的IP模塊接收到下行MBUF數據包並提交到Socket層前,先進行如下處理取數據包長度,檢查數據包是否含有合法數據;對數據包帖UDP+IP頭;參考用戶資料庫(SDB),並參照抽象頭模板進行UDP+IP頭欄位計算和填充(此處的「抽象頭」模板是並不實際存在的,而是表示一種從SDB相關欄位提取或計算的操作,以節約存儲空間),該抽象頭模板包括IP首部長度,IP版本號,服務類型,生存時間,傳輸層協議號,源IP位址,目的IP位址,源埠號,目的埠號。
第三大步驟在數據包發送過程中,TCP/IP協議棧進行處理,包括GTP-U數據包完成帖UDP+IP頭的處理後,通過「GTP-U快速發送接口函數」進行數據包的發送,主要包括對發送Socket本身(如高水平位等的設置、Socket狀態等)及GTP數據包進行檢查;針對「對當前數據包關閉路由」和「從指定接口進行發送」選項進行相應操作;對GTP信令進行UDP校驗和計算,和在指定了「對當前數據包進行UDP校驗與計算」選項時,對當前數據包進行UDP校驗與計算;
取出存儲在UDP傳輸層協議控制塊中的包括IP選項、IP多播選項信息,直接調用新增的IP層處理函數對數據包進行進一步處理,該函數填充其他IP頭欄位並選擇輸出接口,然後通過IP層把數據包發送出去;針對「對當前數據包關閉路由」和「從指定接口進行發送」選項進行相應操作;根據IP層處理函數的返回值相應返回(由於本函數隻適用於UDP數據包,將不返回實際發送的字節數,而是「發送成功與否」的結果指示,因為UDP數據包必須一次性發送出去)。
參見圖5,本發明在UDP協議層上新增一接口,GTP-U快速接收接口函數。
本發明的快速接收過程由兩大步驟組成第一步驟利用UDP模塊對接收過程中的數據包進行處理IP層根據協議開關表(公用接口)將GTP數據包交給UDP模塊的UDP_Input函數後,進行如下處理丟棄數據包中仍含有的IP選項;取出IP頭和UDP頭,對已經發生數據丟失的數據包進行丟棄處理;根據數據包目的埠號決定處理方式,如果是GTP包,則首先區分其是否是信令包,是信令包的就進行校驗和計算,否則按照「對當前數據包進行UDP校驗與計算」選項設置,對當前數據包有選擇地進行校驗和計算;然後去掉UDP+IP包頭,調用GTP-U快速接收接口函數進行快速接收處理;對除GTP包以外的其他數據包按原有操作進行處理;第二步驟在數據包接收過程中利用GTP-U模塊進行的處理對每個接收到的GTP-U數據包,首先區分其是信令包還是數據包,並將它們送入相應隊列中;釋放CPU,使隊列中的GTP數據包可以處理轉發到Gi接口模塊。
參見圖7,與圖6所示對照,圖7中示例出GTP數據包快速接收過程,圖中用灰色框表示GTP任務對自己緩衝區中數據包的處理,是一種不受時間間隔限制的處理。在快速接收方式下,協議棧任務在UDP層獲取的數據包並不投遞到socket的緩衝區中,而是通過調用GTP任務的回調函數直接投遞到GTP任務的緩衝區中(結合參見圖5)。由於繞過了socket層處理並取消了固定時間間隔處理的限制,使GGSN設備的無效處理大為減少,使可處理的數據包數及可提供的業務量大幅度增加。
除此之外,通過一些技術手段,還可明顯提高轉發速度。例如,上面提到的,鏈路層在數據包從Gi接口或Gn接口進入GGSN設備時,在構造後的MBUF首部預留適當空間,這樣對所有上層協議的幀頭處理就不再需要動態申請內存空間。在具體產品開發時還可以利用底層OS的特點,通過測試找到原來標準SocketAPI函數,對UDP層處理過程中的耗時操作集中進行研究,在功能保持不變的情況下儘可能去掉這些耗時操作,例如,非搶佔作業系統下在操作前後暫時提升與恢復任務優先級。
經在CPCI機框上測量並統計優化前後分別發送和接收數據包長度都為256位元組的3萬、5萬、10萬和20萬個數據包時SOCKET+UDP層的處理時間,和在1秒之內完成四種(優化前發送、快速發送、優化前接收及快速接收)處理的數據包數量的上限(數據誤差±10ms),測量結果如下表中所示,所列數據充分證明了採用本發明優化方法後,大大提高了發送、接收的轉發速度,和提高了單位時間內處理數據包的數量。

經在GGSN設備上基於VOS作業系統實現TCP/IP協議棧,並採用本發明的快速發送與接收的優化方案,在保持TCP/IP協議棧原有功能和Socket API標準接口函數的情況下,完全達到了提高GTP數據包吞吐量的目的。
權利要求
1.一種GTP數據包的快速轉發處理方法,包括GTP協議棧的數據包發送與數據包接收處理方法,其特徵在於A.所述GTP數據包的發送進一步包括以下處理步驟a.將原本由SOCKET中間層完成的一些操作及一些準備工作上提到GTP應用層,利用GTP-U快速發送準備函數完成;b.在SOCKET中間層,利用新增的SOCKET層處理函數對數據包進行處理並越過UDP傳輸層;c.在IP層,利用新增的IP層快速發送處理函數對數據包進行處理並通過網絡接口進行數據發送;B.所述GTP數據包的接收進一步包括以下處理步驟d.GTP應用層進行準備工作,註冊GTP-U快速接收處理的回調函數;e.在網絡接口收到數據包並為其創建MBUF結構時,在首部預留一空間,用於構造數據包的UDP頭和IP頭;f.在GTP數據包到達UDP傳輸層後,利用修改定製後的原UDP層輸入處理函數對數據包進行處理,並越過SOCKET中間層,直接調用GTP應用層的回調函數將數據包直接投遞到GTP任務的緩衝區中。
2.根據權利要求1所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟a中上提到GTP應用層的操作,包括a1.GTP任務在初始化時創建發送用SOCKET結構,並通過調用相應函數獲取該SOCKET結構的指針,單獨存儲;a2.在每個用戶的分組數據協議(PDP)上下文確定後,按隧道標識(TID)向用戶資料庫(SDB)存入該用戶與數據轉發相關的信息。
3.根據權利要求2所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟a2中,所述的與數據轉發相關的信息至少包括合法的發送到對端的通用無線分組業務(GPRS)支持節點(GGSN)的IP位址、埠號及本地的IP位址及埠號。
4.根據權利要求1所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟a中,還包括在數據包發送時GTP應用層執行的操作,包括a3.從Gi接口模塊接收下行MBUF數據包;a4.取數據包長度,並檢查數據包是否含有合法數據;a5.對含有合法數據的數據包帖用戶數據報協議(UDP)頭和IP頭;a6.參考用戶資料庫(SDB)並參照虛擬的抽象頭模板,進行用戶數據報協議(UDP)頭和IP頭欄位計算與填充。
5.根據權利要求4所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟a6中所指的抽象頭模板,實際上是數據包UDP頭和IP頭欄位中包括IP首部長度、IP版本號、服務類型、生存時間、傳輸層協議號、源IP位址、目的IP位址、源埠號及目的埠號的欄位值的集合,這些欄位值是從用戶資料庫(SDB)的相關欄位中提取或計算出來的,然後一一填充到數據包相應欄位中。
6.根據權利要求1所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟b中,新增的SOCKET層處理函數是針對GTP-U的快速發送接口函數,該函數的處理進一步包括b1.對包括高水平位的設置、SOCKET狀態的發送SOCKET本身及GTP數據包進行檢查;b2.針對「對當前數據包關閉路由」和「從指定接口進行發送」選項進行相應操作;b3.對GTP信令進行UDP校驗與計算,和在指定了「對當前數據包進行UDP校驗與計算」選項時,對當前數據包進行UDP校驗與計算;b4.取出存儲在UDP傳輸層協議控制塊中的包括IP選項、IP多播選項信息,直接調用新增的IP層處理函數對數據包進行進一步處理;b5.針對「對當前數據包關閉路由」和「從指定接口進行發送」選項進行相應操作;b6.根據IP層處理函數的返回值相應返回。
7.根據權利要求1所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟c中新增的IP層處理函數是針對GTP-U的快速發送IP接口函數,該函數的處理進一步包括c1.填充其他IP頭欄位並選擇輸出接口;c2.通過該輸出接口發送數據包;c3.根據底層處理函數的返回值相應返回。
8.根據權利要求7所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟c3中的返回是「發送成功與否」的結果指示。
9.根據權利要求1所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟d中GTP應用層註冊的GTP-U快速接收處理回調函數的主要操作包括d1.按信令包或數據包區分每個接收到的GTP數據包,並送入相應的緩衝隊列中;d2.釋放CPU,使隊列中的GTP數據包可以被處理轉發到Gi接口模塊。
10.根據權利要求1所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述的步驟f中的修改是在原UDP層輸入處理函數UDP_input函數上進行定製、修改,該函數的處理進一步包括f1.丟棄數據包中仍含有的IP選項;f2.取出IP頭和用戶數據報文協議(UDP)頭,丟棄已經發生數據丟失的數據包;f3.根據數據包的目的埠號決定處理方式,如果發現是GTP包,則進行相應處理,否則按照UDP_input函數原有流程對其進行後續的處理。
11.根據權利要求10所述的一種GTP數據包的快速轉發處理方法,其特徵在於所述步驟f3中對GTP數據包進行的操作包括f31.如果是GTP信令包,則進行校驗和計算,否則按照「對當前數據包進行UDP校驗與計算」的選項設置,對當前數據包選擇性地進行校驗和計算;f32.去掉數據包中的用戶數據報協議(UDP)和IP包頭,直接調用所述GTP任務註冊的回調函數將數據包直接投遞到GTP任務的緩衝區中。
全文摘要
本發明涉及一種應用於GPRS骨幹網GGSN、SGSN設備中GTP協議棧的優化處理方法,可快速轉發數據包,提高設備吞吐量。其中,快速發送包括首先將原本由SOCKET中間層完成的一些操作及一些準備工作上提到GTP層完成;然後在SOCKET中間層,利用新增的SOCKET層處理函數(GTP-U快速發送接口函數)對數據包進行處理並越過UDP傳輸層;最後在IP層,利用新增的IP層處理函數對數據包進行處理,並通過網絡接口進行數據發送,兩個新增的接口函數都充分利用了GTP數據包及其發送時的特點;快速接收包括在來自網絡接口的數據包到達UDP層後,經過修改定製的原UDP層輸入處理函數越過SOCKET層,直接通過GTP任務註冊的回調函數,即GTP-U快速接收接口函數,將其直接投遞到GTP任務的緩衝區中。
文檔編號H04L29/06GK1412987SQ0113629
公開日2003年4月23日 申請日期2001年10月15日 優先權日2001年10月15日
發明者楊寧 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀