Linux 二層協議架構組織

2021-09-09 00:24:31 字數 1520 閱讀 7494

本文主要講解了linux 二層協議架構組織,使用的核心的版本是2.6.32.27

為了方便理解,本文採用整體流程圖加偽**的方式從核心高層面上梳理了linux 二層協議架構組織,希望可以對大家有所幫助。閱讀本文章假設大家對c語言有了一定的了解

linux中1層2層標準化及在linux系統中的實現位置如下所示

1層和2a層(mac)層體現了不同網路介質的區別,在linux的裝置驅動中實現;2b層(llc)則對上提供了統一的介面,在linux的核心中實現該部分

linux在網路架構中的活動形式如下

1-4層是在核心中進行的,交付應用程式處理的資料報文是在使用者空間進行的,具體的情參考我的前兩篇部落格

linux核心二層資料報接收流程

linux核心資料報的傳送傳輸

對於llc層的協議控制資訊及擴充套件資訊如下

所有的協議報文,都通過鏈路層的協議指示標明三層需要哪個協議例項處理,通過eth_type_trans() 就可以知道了,我們分析一下源**

/*某一mac協議型別的全部網路裝置都是使用相同的---xx_type_trans,

* 如 tr_type_trans() --- 令牌環王

* fddi_type_trans() --- fddi網路

*/__be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)

else if (1 /*dev->flags&iff_promisc */ )

; /*如果長度大於1536(最大幀長度),那麼他是802.3相容乙太網卡,協議欄位在eth->h_proto中標識*/

if (ntohs(eth->h_proto) >= 1536)

return eth->h_proto;

rawp = skb->data;

if (*(unsigned short *)rawp == 0xffff)

return htons(eth_p_802_3);

/* * real 802.2 llc,

* 802.2的協議頭返回後,被當做三層報文處理,

* 協議處理被雜湊在ptype_base中,協議處理函式為p8022_rcv()

* 對應的三層協議可以通過 register_8022_client() 將自己的處理函式註冊到p8022_rcv()中

* 如果 register_8022_client(0xaa, snap_rcv)就將snap的三層處理函式註冊進去了

*/return htons(eth_p_802_2);

}

二層架構與三層架構記述

二層架構的缺點 如果功能不需要經常變化或修改,則是乙個比較好而且快的實現方式.但是在使用者介面,都是通過sqldatasource控制項來連線資料來源的,並將sql語句直接寫入到各個頁面的html 中 因此帶來的問題是 sql語句與html 的混合程式設計,不利於各類開發人員的分工合作,如頁面設計人...

網路交換網路實驗 二層架構

一 實驗拓撲 二 實驗過程 1 介面部分 1.建立vlan 2.介面劃入vlan 3.trunk幹道 分流預設基於源目ip 4.配置幹道 2 生成樹 1.配置 2.調根埠 sw1 stp instance 1 root primary sw1 stp instance 2 root secondar...

trill大二層 TRILL大二層網路解決方案

資料中心的高速匯流排 trill 大二層網路解決方案 zdnet 出處 部落格 2012 07 12 06 12 在雲計算時代下,資料中心內部一般採用分布式架構處理海量資料儲存 挖掘 查詢 搜尋等相 關業務,伺服器和伺服器之間需要進行大量的協同工作,在伺服器之間產生了大量的東西向流量。其次,資料中心...