TWI727493B - 一種閘道器控制晶片及其網路封包處理方法 - Google Patents
一種閘道器控制晶片及其網路封包處理方法 Download PDFInfo
- Publication number
- TWI727493B TWI727493B TW108140639A TW108140639A TWI727493B TW I727493 B TWI727493 B TW I727493B TW 108140639 A TW108140639 A TW 108140639A TW 108140639 A TW108140639 A TW 108140639A TW I727493 B TWI727493 B TW I727493B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- type
- network packet
- network
- layer
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/12—Setup of transport tunnels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/04—Network layer protocols, e.g. mobile IP [Internet Protocol]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/16—Gateway arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一種閘道器控制晶片及其網路封包處理方法。閘道器控制晶片用於:擷取網路封包;判斷網路封包係上行IP隧道網路封包;判斷上行IP隧道網路封包之封包類型;擷取相應於封包類型之封包操作列表,其中,封包操作列表紀錄複數封包操作;以及執行封包操作以處理網路封包。
Description
本發明係關於一種網路裝置控制晶片及其網路封包處理方法,尤其是關於一種閘道器控制晶片及其網路封包處理方法。
習知網路技術中,IP隧道(IP Tunneling)可讓用戶端以及伺服端經由特定通道進行通訊,而於此通道之資料傳輸中,原有網路封包需經過特定之額外封裝。惟目前現有之IP隧道技術,皆係由軟體完成原有網路封包之額外封裝,因此,網路封包之處理速度將會受到軟體之限制。
有鑑於此,本發明的目的在於提供一種用於閘道器控制晶片之網路封包處理方法,包含:擷取網路封包;判斷網路封包係上行IP隧道網路封包;判斷上行IP隧道網路封包之封包類型;擷取相應於封包類型之封包操作列表,其中,封包操作列表紀錄複數封包操作;以及執行封包操作以處理網路封包。
本發明另提供一種閘道器控制晶片,包含處理單元以及儲存單元。儲存單元儲存程式。程式執行後,處理單元:擷取網路封包;判
斷網路封包係上行IP隧道網路封包;判斷上行IP隧道網路封包之封包類型;擷取相應於封包類型之封包操作列表,其中,封包操作列表紀錄複數封包操作;以及執行封包操作以處理網路封包。
1:閘道器
10:閘道器控制晶片
101:處理單元
103:儲存單元
105:暫存器
109:匯流排
8:伺服端
9:用戶端
90:網路封包
LS:封包操作列表
PG:程式
S701~S705:步驟
S801~S811:步驟
結合附圖閱讀以下詳細描述會最佳地理解本發明之態樣。應注意,各種特徵可能未按比例繪製。事實上,可出於論述清楚起見,而任意地增大或減小各種特徵之尺寸。
圖1為本發明之一些實施例之閘道器控制晶片之方塊圖。
圖2為本發明之一些實施例之閘道器控制晶片之使用示意圖。
圖3A至圖3G為本發明之一些實施例之網路封包之操作示意圖。
圖4A至圖4H為本發明之一些實施例之網路封包之操作示意圖。
圖5A至圖5C為本發明之一些實施例之網路封包之操作示意圖。
圖6為本發明之一些實施例之閘道器控制晶片之方塊圖。
圖7為本發明之一些實施例之網路封包處理方法之流程圖。
圖8A至圖8B為本發明之一些實施例之網路封包處理方法之流程圖。
以下揭示內容提供用於實施所提供之主題之不同特徵的許
多不同實施例或實例。下文描述組件及配置之特定實例以簡化本發明。當然,此等組件及配置僅為實例且不意欲為限制性的。在本發明中,在以下描述中提及第一特徵形成於第二特徵上方或上可包括第一特徵與第二特徵直接接觸地形成的實施例,且亦可包括額外特徵可在第一特徵與第二特徵之間形成,使得第一特徵與第二特徵可能不直接接觸的實施例。另外,本發明可在各種實例中重複附圖標號及/或字母。此重複係出於簡化及清楚之目的,且本身並不指示所論述之各種實施例及/或組態之間的關係。
在下文更詳細地論述本發明之實施例。然而,應瞭解,本發明提供可在廣泛多種特定情境中體現之許多適用的概念。所論述特定實施例僅為說明性的且並不限制本發明之範疇。
此外,為了易於描述,諸如「在......之下」、「在......下方」、「在......上方」、「上部」、「下部」、「左側」、「右側」及其類似術語之空間相對術語可在本文中用於描述一個元件或特徵與另一(或多個)元件或特徵之如圖式中所說明的關係。除圖式中所描繪之定向以外,空間相對術語意欲涵蓋裝置在使用或操作中之不同定向。設備可以其他方式定向(旋轉90度或處於其他定向),且本文中所使用之空間相對描述詞可同樣相應地進行解譯。應理解,當元件被稱為「連接至」或「耦接至」另一元件時,該元件可直接連接至或耦接至另一元件,或可存在介入元件。
闡述本發明之廣泛範疇的數值範圍及參數為近似值,且可儘可能精確地報告特定實例中闡述之數值。然而,一些數值可含有由各別測試量測值中發現之標準差必然引起的某些誤差。此外,如本文中所使用,術語「約」通常意謂在給定值或範圍之±10%、±5%、±1%或±0.5%內。替代地,一般熟習此項技術者認為,術語「約」意謂在平均值之可接
受標準誤差內。除在操作/工作實例中以外,或除非以其他方式明確指定,否則數值範圍、量、值及百分比(諸如,本文中所揭示之材料數量、持續時間、溫度、操作條件、量之比率及其類似者之彼等者)中之所有應理解為在所有情況下由術語「約」修飾。因此,除非有相反指示,否則本發明及所附申請專利範圍中所闡述之數值參數為可變化之近似值。至少,應根據所報導之有效數位之數字且藉由應用一般捨位技術理解各數值參數。範圍可在本文中表現為自一個端點至另一端點或在兩個端點之間。除非另外指定,否則本文中所揭示之所有範圍包括端點。術語「大體上共面」可指沿著同一平面處於數微米(μm)內(諸如,沿著同一平面處於10μm內、5μm內、1μm內或0.5μm內)之兩個表面。在稱數值或特性「大體上」相同時,該術語可指該等值處於該等值之平均值的±10%、±5%、±1%或±0.5%內。
針對IP隧道之網路封包所需之額外封裝,本發明提供一種閘道器控制晶片10。如此,透過額外之硬體設置加速封裝處理過程。請參閱圖1,其係本發明一些實施例之閘道器控制晶片10之方塊圖。閘道器控制晶片10包含一處理單元101以及一儲存單元103。處理單元101以及儲存單元103透過一匯流排109電性連接。透過匯流排109,處理單元101可執行儲存單元103儲存之一程式PG。程式PG執行時,處理單元101執行網路封包處理功能。相關網路封包處理功能將於下文中進一步闡述。
請一併參閱圖2,其係本發明之閘道器控制晶片10之操作示意圖。如圖所示,閘道器控制晶片10設置於一閘道器1上,用於處理轉遞至閘道器1之網路封包。具體而言,閘道器1分別透過區域網路LAN以及廣域網路WAN連接一客戶端9以及一伺服端8,當閘道器晶片10之程式
PG執行時,引發處理單元101自區域網路LAN或廣域網路WAN擷取一網路封包90。
於一些實施例中,當處理單元101判斷網路封包90係為客戶端9欲傳送至伺服端8之一上行IP隧道網路封包時,閘道器控制晶片10需於傳送網路封包90前,針對網路封包90再次進行處理。其中,由於不同類型之上行IP隧道網路封包具有不同之封包內容,因此,不同類型之上行IP隧道網路封包需對應不同之封包處理操作步驟。據此,於確定網路封包90係為上行IP隧道網路封包後,閘道器控制晶片10之處理單元101需先進一步判斷上行IP隧道網路封包之一封包類型90T。
接著,於判斷上行IP隧道網路封包之封包類型90T後,處理單元101便可針對封包類型90T,於儲存單元103中擷取相應此封包類型90T之一封包操作列表LS。其中,封包操作列表LS紀錄複數封包操作,用於處理封包類型90T之網路封包。據此,處理單元101執行封包操作列表LS紀錄之封包操作,以進一步處理網路封包90,並透過閘道器1之傳輸介面將網路封包90傳送至伺服端8。
於一些實施例中,封包類型90T包含一點對點隧道協定(Point to Point Tunneling Protocol,PPTP)類型、一第二層隧道協定(Layer 2 Tunneling Protocol,L2TP)類型或一雙堆疊簡化(Dual-Stack Lite,DS-Lite)類型。針對不同類型,複數封包操作包含:插入外層標頭操作、變更封包以太類型操作、封包長度更新操作、通用路由封裝(Generic Routing Encapsulation,GRE)資料或IP辨識碼(IP identification,IPID)更新操作、第三層(Layer 3,L3)檢查碼更新操作、第四層(Layer 4,L4)檢查碼更新操作或其組合。以下將分別就
PPTP類型、L2TP類型及DS-Lite類型對應之封包操作做進一步說明。
於一些實施例中,當封包類型90T判斷為PPTP類型時,網路封包90需要以下操作以進行進一步之處理:插入外層標頭操作、變更封包以太類型操作、封包長度更新操作、GRE資料或IPID更新操作以及L3檢查碼更新操作。其中,前述操作以各種可能之組合紀錄於封包操作列表LS。
更詳細來說,當網路封包90之封包類型90T係為PPTP類型時,處理單元101擷取封包操作列表LS,並依序執行封包操作列表LS紀錄之封包操作如下:(1)插入外層標頭操作;(2)變更封包以太類型操作;(3)封包長度更新操作;(4)GRE資料或IPID更新操作;(5)L3檢查碼更新操作;(6)封包長度更新操作;以及(7)GRE資料或IPID更新操作。換句話說,處理單元101於擷取封包操作列表LS後,依序執行所紀錄之封包操作(1)到(7),以針對網路封包90進行進一步之處理。
於一些實施例中,封包操作列表LS同時紀錄相應於前述封包操作之複數操作參數,處理單元101根據複數操作參數依序執行前述封包操作(1)到(7),以進一步處理網路封包90。以下將透過圖3A至圖3G以及範例,詳細說明前述封包操作(1)到(7)搭配操作參數之執行過程。
舉例而言,基於PPTP協定,一些PPTP類型之網路封包除了原網路封包90之內容外,還進一步包含長度20位元組之IPv4標頭、長度16位元組之GRE標頭以及長度4位元組之點對點協議(Point to Point Protocol,PPP)標頭,因此,針對網路封包90,需要額外插入長度40位元組之外層標頭(包含IPv4標頭、GRE標頭以及PPP標頭)。
據此,請參考圖3A及3B,處理單元101執行(1)插入外層標頭操作時,對應之起始位址操作參數為原網路封包90之以太種類欄位(ethertype)後之位址,而長度操作參數為40(單位為位元組)。換言之,基於前述二操作參數,當(1)插入外層標頭操作執行時,處理單元101於網路封包90原本紀錄之以太種類欄位後,插入長度為40位元組之外層標頭。接著,處理單元101執行(2)變更封包以太類型操作,將網路封包90原本紀錄之以太種類欄位變更為0x0800(即IPv4以太類型)。
接著,請參考圖3C,處理單元101執行(3)封包長度更新操作時,對應之起始位址操作參數為外層標頭偏移值2(單位為位元組)後之位址,而長度操作參數為2(單位為位元組)。另外,此操作更有對應之附加操作參數0(代表加法運算元)以及附加數值參數40。換言之,基於前述四操作參數,當(3)封包長度更新操作執行時,處理單元101於外層標頭偏移2位元組之位址後,針對長度2位元組之資料(即圖3C網路封包90斜線部分)進行更新,而更新之動作主要係將原資料之數值加40。須說明,圖3C中,網路封包90斜線部分為總長度欄位。
接著,請參考圖3D,處理單元101執行(4)IPID更新操作時,對應之起始位址操作參數為外層標頭偏移值4(單位為位元組)後之位址。換言之,基於前述操作參數,當(4)IPID更新操作執行時,處理單元101於外層標頭偏移4位元組之位址後,針對IPID欄位紀錄之內容,利用相應網路傳輸介面之封包索引值進行更新。須說明,圖3D中,網路封包90斜線部分為IPID欄位,長度為2位元組。
接著,請參考圖3E,處理單元101執行(5)L3檢查碼更新操作時,對應之起始位址操作參數為外層標頭偏移值10(單位為位元
組)後之位址。換言之,基於前述操作參數,當(5)L3檢查碼更新操作執行時,處理單元101重新針對現有之網路封包90內容做L3檢查碼之運算,並以運算之結果更新外層標頭偏移10位元組後之L3檢查碼欄位。須說明,圖3E中,網路封包90斜線部分為L3檢查碼欄位,長度為2位元組。
接著,請參考圖3F,處理單元101執行(6)封包長度更新操作時,對應之起始位址操作參數為外層標頭偏移值24(單位為位元組)後之位址,而長度操作參數為2(單位為位元組)。另外,此操作更有對應之附加操作參數為0(代表加法運算元)以及附加數值參數為4。換言之,基於前述四操作參數,當(6)封包長度更新操作執行時,處理單元101於外層標頭偏移24位元組之位址後,針對長度2位元組之資料(即圖3F網路封包90斜線部分)進行更新,而更新之動作主要係將原資料之數值加上4。須說明,圖3F中,網路封包90斜線部分為GRE負載長度欄位。
接著,請參考圖3G,處理單元101執行(7)GRE資料更新操作時,對應之起始位址操作參數為外層標頭偏移值28(單位為位元組)。換言之,基於前述操作參數,當(7)GRE資料更新操作執行時,處理單元101於外層標頭偏移28位元組之位址後,針對GRE序列號碼/確認(ACK)號碼欄位紀錄之內容利用相應網路傳輸介面之封包索引值進行更新。須說明,圖3G中,網路封包90斜線部分為GRE序列號碼/確認號碼欄位。
於一些實施例中,當封包類型90T判斷為L2TP類型時,網路封包90需要以下操作以進行進一步之處理:插入外層標頭操作、變更封包以太類型操作、封包長度更新操作、GRE資料或IPID更新操作、L3檢查碼更新操作以及L3檢查碼更新操作。其中,前述操作以各種可能之組
合紀錄於封包操作列表LS。
更詳細來說,當網路封包90之封包類型90T係為L2TP類型時,處理單元101擷取封包操作列表LS,並依序執行封包操作列表LS紀錄之封包操作如下:(1)插入外層標頭操作;(2)變更封包以太類型操作;(3)封包長度更新操作;(4)GRE資料或IPID更新操作;(5)L3檢查碼更新操作;(6)封包長度更新操作;(7)封包長度更新操作;以及(8)L4檢查碼更新操作。換句話說,處理單元101於擷取封包操作列表LS後,依序執行所紀錄之封包操作(1)到(8),以針對網路封包90進行進一步之處理。
於一些實施例中,封包操作列表LS同時紀錄相應於前述封包操作之複數操作參數,處理單元101根據複數操作參數依序執行前述封包操作(1)到(8),以進一步處理網路封包90。以下將透過圖4A至圖4H以及範例,詳細說明前述封包操作(1)到(8)搭配操作參數之執行過程。
舉例而言,基於L2TP協定,一些L2TP類型之網路封包除了原網路封包90之內容外,還進一步包含長度20位元組之IPv4標頭、長度8位元組之UDP標頭、長度8位元組之L2TP標頭以及長度4位元組之PPP標頭,因此,針對網路封包90,需要額外插入長度40位元組之外層標頭(包含IPv4標頭、UDP標頭、L2TP標頭以及PPP標頭)。
據此,請參考圖4A及4B,處理單元101執行(1)插入外層標頭操作時,對應之起始位址操作參數為原網路封包90之以太種類欄位後之位址,而長度操作參數為40(單位為位元組)。換言之,基於前述二操作參數,當(1)插入外層標頭操作執行時,處理單元101於網路封包
90原本紀錄之以太種類欄位後,插入長度為40位元組之外層標頭。接著,處理單元101執行(2)變更封包以太類型操作,將網路封包90原本紀錄之以太種類欄位變更為0x0800(即IPv4以太類型)。
接著,請參考圖4C,處理單元101執行(3)封包長度更新操作時,對應之起始位址操作參數為外層標頭偏移值2(單位為位元組)後之位址,而長度操作參數為2(單位為位元組)。另外,此操作更有對應之附加操作參數0(代表加法運算元)以及附加數值參數為40。換言之,基於前述四操作參數,當(3)封包長度更新操作執行時,處理單元101於外層標頭偏移2位元組之位址後,針對長度2位元組之資料(即圖4C網路封包90斜線部分)進行更新,而更新之動作主要係將原資料之數值加40。須說明,圖4C中,網路封包90斜線部分為總長度欄位。
接著,請參考圖4D,處理單元101執行(4)IPID更新操作時,對應之起始位址操作參數為外層標頭偏移值4(單位為位元組)後之位址。換言之,基於前述操作參數,當(4)IPID更新操作執行時,處理單元101於外層標頭偏移4位元組之位址後,針對IPID欄位紀錄之內容,利用相應網路傳輸介面之封包索引值進行更新。須說明,圖4D中,網路封包90斜線部分為IPID欄位,長度為2位元組。
接著,請參考圖4E,處理單元101執行(5)L3檢查碼更新操作時,對應之起始位址操作參數為外層標頭偏移值10(單位為位元組)後之位址。換言之,基於前述操作參數,當(5)L3檢查碼更新操作執行時,處理單元101重新針對現有之網路封包90內容做L3檢查碼之運算,並以運算之結果更新外層標頭偏移10位元組後之L3檢查碼欄位。須說明,圖4E中,網路封包90斜線部分為L3檢查碼欄位,長度為2位元組。
接著,請參考圖4F,處理單元101執行(6)封包長度更新操作時,對應之起始位址操作參數為外層標頭偏移值24(單位為位元組)後之位址,而長度操作參數為2(單位為位元組)。另外,此操作更有對應之附加操作參數為0(代表加法運算元)以及附加數值參數為20。換言之,基於前述四操作參數,當(6)封包長度更新操作執行時,處理單元101於外層標頭偏移24位元組之位址後,針對長度2位元組之資料(即圖4F網路封包90斜線部分)進行更新,而更新之動作主要係將原資料之數值加上20。須說明,圖4F中,網路封包90斜線部分為UDP標頭長度欄位。
接著,請參考圖4G,處理單元101執行(7)封包長度更新操作時,對應之起始位址操作參數為外層標頭偏移值30(單位為位元組)後之位址,而長度操作參數為2(單位為位元組)。另外,此操作更有對應之附加操作參數為0(代表加法運算元)以及附加數值參數為12。換言之,基於前述四操作參數,當(7)封包長度更新操作執行時,處理單元101於外層標頭偏移30位元組之位址後,針對長度2位元組之資料(即圖4G網路封包90斜線部分)進行更新,而更新之動作主要係將原資料之數值加上12。須說明,圖4G中,網路封包90斜線部分為L2TP標頭長度欄位。
接著,請參考圖4H,處理單元101執行(8)L4檢查碼更新操作時,對應之起始位址操作參數為外層標頭偏移值26(單位為位元組)後之位址。換言之,基於前述操作參數,當(8)L4檢查碼更新操作執行時,處理單元101重新針對現有之網路封包90內容做L4檢查碼之運算,並以運算之結果更新外層標頭偏移26位元組後之L4檢查碼欄位。須
說明,圖4H中,網路封包90斜線部分為L4檢查碼欄位,長度為2位元組。
於一些實施例中,當封包類型90T判斷為DS-Lite類型時,網路封包90需要以下操作以進行進一步之處理:插入外層標頭操作、變更封包以太類型操作以及封包長度更新操作。其中,前述操作以各種可能之組合紀錄於封包操作列表LS。
更詳細來說,當網路封包90之封包類型90T係為DS-Lite類型時,處理單元101擷取封包操作列表LS,並依序執行封包操作列表LS紀錄之封包操作如下:(1)插入外層標頭操作;(2)變更封包以太類型操作;以及(3)封包長度更新操作。換句話說,處理單元101於擷取封包操作列表LS後,依序執行所紀錄之封包操作(1)到(3),以針對網路封包90進行進一步之處理。
於一些實施例中,封包操作列表LS同時紀錄相應於前述封包操作之複數操作參數,處理單元101根據複數操作參數依序執行前述封包操作(1)到(3),以進一步處理網路封包90。以下將透過圖5A至圖5C以及範例,詳細說明前述封包操作(1)到(3)搭配操作參數之執行過程。
舉例而言,基於DS-Lite協定,一些DS-Lite類型之網路封包除了原網路封包90之內容外,還進一步包含長度40位元組之IPv6標頭,因此,針對網路封包90,需要額外插入長度40位元組之外層標頭(包含IPv6標頭)。
據此,請參考圖5A及5B,處理單元101執行(1)插入外層標頭操作時,對應之起始位址操作參數為原網路封包90之以太種類欄位後之位址,而長度操作參數為40(單位為位元組)。換言之,基於前述二
操作參數,當(1)插入外層標頭操作執行時,處理單元101於網路封包90原本紀錄之以太種類欄位後,插入長度為40位元組之外層標頭。接著,處理單元101執行(2)變更封包以太類型操作,將網路封包90原本紀錄之以太種類欄位變更為0x86dd(即IPv6以太類型)。
接著,請參考圖5C,處理單元101執行(3)封包長度更新操作時,對應之起始位址操作參數為外層標頭偏移值4(單位為位元組)後之位址,而長度操作參數為2(單位為位元組)。另外,此操作更有對應之附加操作參數0(代表加法運算元)以及附加參數為數值40。換言之,基於前述四操作參數,當(3)封包長度更新操作執行時,處理單元101於外層標頭偏移4位元組之位址後,針對長度2位元組之資料(即圖5C網路封包90斜線部分)進行更新,而更新之動作主要係將原資料之數值加40。須說明,圖5C中,網路封包90斜線部分為總長度欄位。
上述主要係由閘道器控制晶片10完成上行IP隧道網路封包傳送前之處理。於一些實施例中,部分IP隧道網路封包於傳送過程中,相應之封包序列號碼(sequence number)以及封包確認(acknowledge)號碼會產生變動,因此,閘道器控制晶片10可透過額外之暫存器儲存最新之封包序列號碼以及封包確認號碼,俾利軟硬體判斷封包傳送之最新狀態,並維持封包傳送正常。
請參考圖6,其係本發明一些實施例之閘道器控制晶片10之方塊圖。閘道器控制晶片10更包含一暫存器105。處理單元101、儲存單元103以及暫存器105透過匯流排109電性連接。透過匯流排109,處理單元101可執行儲存單元103儲存之程式PG。程式PG執行時引發處理單元101執行網路封包狀態更新功能。相關網路封包狀態更新功能將於下文中
進一步闡述。
於一些實施例中,暫存器105儲存GRE序列號碼、GRE確認號碼以及IPID,用於紀錄網路封包傳遞之最新狀態。具體而言,當處理單元101於前述實施例中判斷網路封包90之封包類型90T為PPTP類型後,會利用暫存器105中儲存之GRE序列號碼、GRE確認號碼以及IPID,於相應之封包操作中更新網路封包90之GRE序列號碼、GRE確認號碼以及IPID。
接著,當處理單元101透過閘道器1之傳輸介面將網路封包90傳送至伺服端8後,處理單元101更新暫存器105之GRE序列號碼(例如:將GRE序列號碼加上數值1)以及更新暫存器105之IPID(例如:將IPID加上數值1)。另一方面,當閘道器1接收伺服端8傳送給客戶端9之一下行PPTP網路封包後,閘道器控制晶片10之處理器101擷取此下行PPTP網路封包,並以此下行PPTP網路封包之GRE序列號碼更新暫存器105之GRE確認號碼。
於一些實施例中,暫存器105儲存IPID,用於紀錄網路封包傳遞之最新狀態。具體而言,當處理單元101於前述實施例中判斷網路封包90之封包類型90T為L2TP類型後,會利用暫存器105中儲存之IPID,於相應之封包操作中更新網路封包90之IPID。接著,當處理單元101透過閘道器1之傳輸介面將網路封包90傳送至伺服端8後,處理單元101更新暫存器105之IPID(例如:將IPID加上數值1)。
本發明之一些實施例包含網路封包處理方法,其流程圖如圖7所示。這些實施例之網路封包處理方法由一閘道器控制晶片(如前述實施例之閘道器控制晶片10)實施。方法之詳細操作如下。
首先,執行步驟S701,擷取一網路封包。執行步驟S702,判斷網路封包是否為上行IP隧道網路封包。若否,執行步驟S701,擷取另一網路封包。若是,執行步驟S703,判斷上行IP隧道網路封包之一封包類型。接著,執行步驟S704,擷取相應於封包類型之一封包操作列表。其中,封包操作列表紀錄複數封包操作。執行步驟S705,執行封包操作以處理網路封包。
本發明之一些實施例包含網路封包處理方法,其流程圖如圖8A至圖8B所示。這些實施例之網路封包處理方法由一閘道器控制晶片(如前述實施例之閘道器控制晶片10)實施。方法之詳細操作如下。
首先,執行步驟S801,擷取一網路封包。執行步驟S802,判斷網路封包為上行IP隧道網路封包或下行IP隧道網路封包。其中,於本實施例中,IP隧道網路封包之封包類型係為PPTP類型、L2TP類型或DS-Lite類型。若是下行IP隧道網路封包,執行步驟S803,判斷下行IP隧道網路封包是否為PPTP類型,若是,執行步驟S804,更新暫存器之GRE確認號碼,隨後執行步驟S801擷取另一網路封包。若否,則直接執行步驟S801,擷取另一網路封包。
另一方面,當步驟S802判斷網路封包為上行IP隧道網路封包,執行步驟S805,判斷上行IP隧道網路封包之一封包類型。若上行IP隧道網路封包之封包類型為PPTP,執行步驟S806,擷取相應於PPTP類型之封包操作列表。隨後,執行S807,根據封包操作列表之複數操作參數執行封包操作列表之複數封包操作,以處理網路封包。
若上行IP隧道網路封包之封包類型為L2TP,執行步驟S808,擷取相應於L2TP類型之封包操作列表。隨後,執行S809,根據封
包操作列表之複數操作參數執行封包操作列表之複數封包操作,以處理網路封包。若上行IP隧道網路封包之封包類型為DS-Lite,執行步驟S810,擷取相應於DS-Lite類型之封包操作列表。隨後,執行S811,根據封包操作列表之複數操作參數執行封包操作列表之複數封包操作,以處理網路封包。
需特別說明,步驟S807之詳細操作包含前述實施例之閘道器控制晶片10針對PPTP類型執行之封包操作(1)到(7),步驟S809之詳細操作包含前述實施例之閘道器控制晶片10針對L2TP類型執行之封包操作(1)到(8),步驟S811之詳細操作包含前述實施例之閘道器控制晶片10針對DS-Lite類型執行之封包操作(1)到(3),於此不再贅述。
另外,於前述步驟執行完畢後,代表網路封包已處理完畢,因此,可執行額外步驟傳送網路封包,並可基於前述實施例閘道器控制晶片10之技術,執行額外步驟以更新暫存器之內容,俾利軟硬體判斷網路封包傳送之最新狀態,以維持封包傳送正常。
上述之實施例僅用來例舉本發明之實施態樣,以及闡釋本發明之技術特徵,並非用來限制本發明之保護範疇。任何熟悉此技術者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,本發明之權利保護範圍應以申請專利範圍為準。
S701~S705:步驟
Claims (7)
- 一種用於一閘道器控制晶片之網路封包處理方法,包含:擷取一網路封包;判斷該網路封包是一上行IP隧道網路封包;判斷該上行IP隧道網路封包之一封包類型,其中,該封包類型包含一點對點隧道協定(Point to Point Tunneling Protocol,PPTP)類型、一第二層隧道協定(Layer 2 Tunneling Protocol,L2TP)類型或一雙堆疊簡化(Dual-Stack Lite,DS-Lite)類型;擷取相應於該封包類型之一封包操作列表,其中,該封包操作列表紀錄複數封包操作以及相應於該等封包操作之複數操作參數,其中,該等封包操作包含一插入外層標頭操作、一變更封包以太類型操作、一封包長度更新操作、一通用路由封裝(Generic Routing Encapsulation,GRE)資料或IP辨識碼(IP identification,IPID)更新操作、一第三層(Layer 3,L3)檢查碼更新操作、一第四層(Layer 4,L4)檢查碼更新操作或其組合;以及根據該等操作參數執行該等封包操作以處理該網路封包。
- 如請求項1所述之網路封包處理方法,其中,該封包類型係為該點對點隧道協定類型,該等封包操作包含該插入外層標頭操作、該變更封包以太類型操作、該封包長度更新操作、該通用路由封裝資料或IP辨識碼更新操作以及該第三層檢查碼更新操作。
- 如請求項1所述之網路封包處理方法,其中,該封包類型係為該雙堆疊簡化類型,該等封包操作包含該插入外層標頭操作、該變更封包以太類型操作以及該封包長度更新操作。
- 如請求項1所述之網路封包處理方法,其中,該封包類型係為該點對點隧道協定類型,該網路封包處理方法更包含:以一暫存器之通用路由封裝(Generic Routing Encapsulation,GRE)序列號碼更新該上行IP隧道網路封包之通用路由封裝序列號碼;以該暫存器之通用路由封裝確認號碼更新該上行IP隧道網路封包之通用路由封裝確認號碼;以該暫存器之IP辨識碼(IP identification,IPID)更新該上行IP隧道網路封包之IP辨識碼。
- 如請求項4所述之網路封包處理方法,更包含:傳送該網路封包;更新該暫存器之通用路由封裝序列號碼;更新該暫存器之IP辨識碼。
- 如請求項1所述之網路封包處理方法,其中,該封包類型係為該第二層隧道協定類型,該網路封包處理方法更包含:以一暫存器之IP辨識碼(IP identification,IPID)更新該上行IP隧道網路封包之IP辨識碼。
- 一種閘道器控制晶片,包含:一處理單元;一儲存單元,用於儲存一程式,其中,該程式執行後,該處理單元:擷取一網路封包;判斷該網路封包是一上行IP隧道網路封包;判斷該上行IP隧道網路封包之一封包類型,其中,該封包類型包含一點對點隧道協定(Point to Point Tunneling Protocol,PPTP)類型、一第二層隧道協定(Layer 2 Tunneling Protocol,L2TP)類型或一雙堆疊簡化(Dual-Stack Lite,DS-Lite)類型;擷取相應於該封包類型之一封包操作列表,其中,該封包操作列表紀錄複數封包操作以及相應於該等封包操作之複數操作參數,其中,該等封包操作包含一插入外層標頭操作、一變更封包以太類型操作、一封包長度更新操作、一通用路由封裝(Generic Routing Encapsulation,GRE)資料或IP辨識碼(IP identification,IPID)更新操作、一第三層(Layer 3,L3)檢查碼更新操作、一第四層(Layer 4,L4)檢查碼更新操作或其組合;以及根據該等操作參數執行該等封包操作以處理該網路封包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140639A TWI727493B (zh) | 2019-11-08 | 2019-11-08 | 一種閘道器控制晶片及其網路封包處理方法 |
US16/818,607 US11153120B2 (en) | 2019-11-08 | 2020-03-13 | Gateway controlling chip and network packet processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140639A TWI727493B (zh) | 2019-11-08 | 2019-11-08 | 一種閘道器控制晶片及其網路封包處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI727493B true TWI727493B (zh) | 2021-05-11 |
TW202119792A TW202119792A (zh) | 2021-05-16 |
Family
ID=75847209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140639A TWI727493B (zh) | 2019-11-08 | 2019-11-08 | 一種閘道器控制晶片及其網路封包處理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11153120B2 (zh) |
TW (1) | TWI727493B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201002010A (en) * | 2008-06-27 | 2010-01-01 | Hon Hai Prec Ind Co Ltd | Network address translation device and packet processing method thereof |
WO2012048210A1 (en) * | 2010-10-07 | 2012-04-12 | Qualcomm Incorporated | Tunneled direct link setup through a tunnel |
US20170041136A1 (en) * | 2015-08-06 | 2017-02-09 | Trend Micro Incorporated | Identification of an application based on packet size |
US20180262599A1 (en) * | 2017-03-10 | 2018-09-13 | Microsoft Technology Licensing, Llc | Packet processor in virtual filtering platform |
US20190013967A1 (en) * | 2015-07-17 | 2019-01-10 | Nec Corporation | Communication system, communication device, communication method, terminal, non-transitory medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015018323A1 (en) * | 2013-08-05 | 2015-02-12 | Huawei Technologies Co., Ltd. | Method for packet tunneling through software defined network, method of intelligently controlling flow of a packet through software defined network and system |
US9602338B2 (en) | 2013-12-20 | 2017-03-21 | Nec Corporation | System and method for network packet event characterization and analysis |
-
2019
- 2019-11-08 TW TW108140639A patent/TWI727493B/zh active
-
2020
- 2020-03-13 US US16/818,607 patent/US11153120B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201002010A (en) * | 2008-06-27 | 2010-01-01 | Hon Hai Prec Ind Co Ltd | Network address translation device and packet processing method thereof |
WO2012048210A1 (en) * | 2010-10-07 | 2012-04-12 | Qualcomm Incorporated | Tunneled direct link setup through a tunnel |
US20120087356A1 (en) * | 2010-10-07 | 2012-04-12 | Qualcomm, Incorporated | Tunneled direct link setup through a tunnel |
US20190013967A1 (en) * | 2015-07-17 | 2019-01-10 | Nec Corporation | Communication system, communication device, communication method, terminal, non-transitory medium |
US20170041136A1 (en) * | 2015-08-06 | 2017-02-09 | Trend Micro Incorporated | Identification of an application based on packet size |
US20180262599A1 (en) * | 2017-03-10 | 2018-09-13 | Microsoft Technology Licensing, Llc | Packet processor in virtual filtering platform |
Also Published As
Publication number | Publication date |
---|---|
TW202119792A (zh) | 2021-05-16 |
US20210144027A1 (en) | 2021-05-13 |
US11153120B2 (en) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7899048B1 (en) | Method and apparatus for remotely monitoring network traffic through a generic network | |
TWI452877B (zh) | 網路直接記憶體存取 | |
CN107682370B (zh) | 创建用于嵌入的第二层数据包协议标头的方法和系统 | |
US20070064737A1 (en) | Receive coalescing and automatic acknowledge in network interface controller | |
US9270575B2 (en) | Service node using services applied by an application node | |
US20070237157A1 (en) | Methods of resolving datagram corruption over an internetworking protocol | |
US20170359448A1 (en) | Methods and systems for creating protocol header for embedded layer two packets | |
US9769116B2 (en) | Encapsulating traffic while preserving packet characteristics | |
US20030195973A1 (en) | Methods, systems, and computer program products for processing a packet with layered headers using a data structure that positionally relates the layered headers | |
US9961147B2 (en) | Communication apparatus, information processor, communication method, and computer-readable storage medium | |
WO2022142390A1 (zh) | 报文封装、解封装方法、装置、存储介质及电子装置 | |
CN108282391A (zh) | 一种vxlan报文分片方法和装置 | |
TWI727493B (zh) | 一種閘道器控制晶片及其網路封包處理方法 | |
US7420991B2 (en) | TCP time stamp processing in hardware based TCP offload | |
WO2016068944A1 (en) | Tunnel encapsulation | |
US11115506B2 (en) | Inner VXLAN tunnel packet detection | |
US10917502B2 (en) | Method for using metadata in internet protocol packets | |
CN108259294A (zh) | 报文处理方法及装置 | |
CN104683211A (zh) | 一种对虚拟网络隧道加速的方法及系统 | |
CN113839946B (zh) | 一种IPSec传输的异常检测方法、装置及可读存储介质 | |
KR100449809B1 (ko) | 다중 보안 서비스를 제공하는 개선된 아이피 계층에서의패킷 보호 방법 | |
Praptodiyono et al. | The Impacts of Transmitting IPv6 Packets Using Jumbo Frame on The Network Performance | |
US20240106740A1 (en) | Method and apparatus for packet forwarding, network node and storage medium | |
WO2023193471A1 (zh) | 地址设置方法、装置、存储介质及电子装置 | |
Jansen et al. | Measured comparative performance of TCP stacks |