gre採用了tunnel(隧道)技術,是vpn(virtual private network)的第三層隧道協議。tunnel是乙個虛擬的點對點的連線,提供了一條通路使封裝的資料報文能夠在這個通路上傳輸,並且在乙個tunnel的兩端分別對資料報進行封裝及解封裝。
gre加封裝過程如下:
1、router a 收到x 協議報文後,首先交由x 協議處理
2、x 協議檢查報文頭中的目的位址域來確定如何路由此包
3、若報文的目的位址要經過tunnel 才能到達,則裝置將此報文發給相應的tunnel 介面
4、tunnel 口收到此報文後進行gre 封裝,在封裝ip 報文頭後,裝置根據此ip 包的目的位址及路由表對報文進行**,從相應的網路介面傳送出去。
5、router a
根據封裝的
ip報文頭的目的位址,查詢路由表,對封裝後的報文進行**。
gre協議實際上是一種封裝協議,它提供了將一種協議的報文封裝在另一種協議報文中的機制,使報文能夠在異種網路中傳輸。異種報文傳輸的通道稱為tunnel(隧道)。
gre隧道不能配置二層資訊,但
可以配置ip位址。gre利用為隧道指定的實際物理介面完成**,**過程如下:
(1) 所有發往遠端vpn的原始報文,首先被傳送到隧道源端;
(2) 原始報文在隧道源端進行gre封裝,填寫隧道建立時確定的隧道源位址和目的位址,然後再通過公共ip網路**到遠端vpn網路。
gre封裝後的報文格式:
圖1.gre協議棧
圖2.gre封裝格式
gre解封裝過程:與加封裝過程相反
(1)routerb 從tunnel 介面收到ip報文
,檢查目的位址
(2)如果發現目的地是本路由器
,則routerb 剝掉此報文的ip 報頭,交給gre 協議處理(進行檢驗金鑰、檢查校驗和
及報文的序列號等)
(3)gre 協議完成相應的處理後,剝掉gre 報頭,再交由x 協議對此資料報進行後續的**處理。
注:gre
收發雙方的加封裝、解封裝處理,以及由於封裝造成的資料量增加,會導致使用
gre後裝置的資料**效率有一定程度的下降。
總結起來,gre的封裝過程如下:當報文需要經由隧道介面處理時,ip層的輸出函式呼叫tunnel介面的輸出函式進行加封裝處理。加封裝處理結束後,再進行ip**。gre隧道對端的解封裝過程如下:當ip層接收到gre報文,檢查到外層ip報文頭部中的協議號是47時(udp為17,tcp為6,icmp為1),那麼,ip層輸入入口函式會根據協議開關表,直接調
用gre的解封裝處理函式,對gre解封裝。解封裝完成後,再將原始資料報文送入ip輸入佇列中,以便進行進一步的傳輸。
**:參考:
資料報封裝解封裝過程
5.6 埠號的作用及常用的協議埠號有哪些 5.7 ip模組 5.8 基礎路由和交換技術 5.1 osi七層模式 osi七層模式 5.2 tcp ip協議棧 tcp ip協議棧 5.3 描述tcp協議狀態機及三次握手四次揮手過程 tcp協議狀態機及三次握手四次揮手過程 5.4 loopback網絡卡功...
OSI模型中的資料封裝與解封裝過程
資料封裝 data encapsulation 籠統地講,就是把業務資料對映到某個封裝協議的淨荷中,然後填充對應協議的包頭,形成封裝協議的資料報,並完成速率適配。同樣,會話層 傳輸層 網路層 假設用tcp傳輸,則是tcp資料 ip包頭 資料鏈路層 把上一層的tcp資料 ip包頭統一稱為幀資料,幀頭 ...
封裝與解封裝
封裝與解封裝 封裝動作 從高層往低層依次封裝,在每一層使用特定的協議,對資料進行處理,在資料前新增特定的協議報頭。封裝原則 1 每一層在上一層資料前新增協議報頭 2 新增完協議報頭的整體,就是該層的pdu 3 每一層的pdu對於下一層來說就是上層資料 每一層的上層資料就是上層的pdu pdu 協議資...