亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

VLAN知識總結

2025-03-21 09:47:17
4
0

第一章 vlan的基本概念

1.1 vlan的作用

虛擬局域網VLAN是一組邏輯上的設備和用戶,這些設備和用戶并不受物理網段的限制,可以根據功能、部門及應用等因素將它們組織起來,相互之間的通信就好像它們在同一個網段中一樣,由此得名虛擬局域網。VLAN是一種比較新的技術,工作在OSI參考模型的第2層和第3層,一個VLAN就是一個廣播域,VLAN之間的通信是通過第3層的路由器來完成的。 

1.2 vlan的實現原理

當VLAN交換機接收到數據后,會對數據的部分內容進行檢查,并與一個VLAN配置數據庫(該數據庫含有靜態配置的或者動態學習而得到的MAC地址等信息)中的內容進行比較后,確定數據去向,如果數據要發往一個VLAN設備(VLAN-aware),一個標記(Tag)或者VLAN標識就被加到這個數據上,根據VLAN標識和目的地址,VLAN交換機就可以將該數據轉發到同一VLAN上適當的目的地;如果數據發往非VLAN設備(VLAN-unaware),則VLAN交換機發送不帶VLAN標識的數據。 

1.3 vlan的分類

a.基于端口的VLAN 
b.基于MAC地址的VLAN 
c.基于路由的VLAN  
d.基于策略的VLAN 

1.4 vlan幀結構

每一個支持802.1Q協議的主機,在發送數據包時,都在原來的以太網楨頭中的源地址后增加了一個4字節的802.1Q楨頭,之后接原來以太網的長度或類型域,關于以太網楨頭的封裝格式,參見以太網方面的培訓教材。
 
  這4個字節的802.1Q標簽頭包含了2個字節的標簽協議標(TPID--Tag Protocol Identifier,它的值是8100),和兩個字節的標簽控制信息(TCI--Tag Control Information),TPID是IEEE定義的新的類型,表明這是一個加了802.1Q標簽的本文,圖2顯示了802.1Q標簽頭的詳細內容。
 
  LAN Identified( VLAN ID ): 這是一個12位的域,指明VLAN的ID,一共4096個,每個支持802.1Q協議的主機發送出來的數據包都會包含這個域,以指明自己屬于哪一個VLAN,目前TNETX 3270只支持32個VLAN。
  Canonical Format Indicator( cfi ):這一位主要用于總線型的以太網與FDDI、令牌環網交換數據時的楨格式,TNETX 3270忽略此位。
  Priority:這3 位指明楨的優先級。一共有8種優先級,主要用于當交換機阻塞時,優先發送哪個數據包。TNETX 3270和TNETX 4090只支持一種優先級,所以這一位也沒有用,
 

第二章 重要結構

2.1 /include/linux/if_vlan.h

在/include/linux/if_vlan.h中定義vlan相關的基本數據結構
//每一個支持802.1q協議的主機,在發送數據包時,都在原來的以太網幀頭中的源地址后增加了一個4字節的802.1q幀頭
#define VLAN_HLEN    4        /* The additional bytes (on top of the Ethernet header)
* that VLAN requires.
*/
//VLAN以太網頭部的地址長度字節
#define VLAN_ETH_ALEN    6        /* Octets in one ethernet addr */
//VLAN以太網頭部的長度字節
#define VLAN_ETH_HLEN    18        /* Total octets in header. */
//VLAN以太網不含CRC校驗的數據最小長度
#define VLAN_ETH_ZLEN    64        /* Min. octets in frame sans FCS */
 
/*備注以太網的情況
#define ETH_ALEN    6               /*以太網地址,即MAC地址,6字節*/
#define ETH_HLEN    14              /*以太網頭部的總長度*/
#define ETH_ZLEN    60              /*不含CRC校驗的數據最小長度*/
#define ETH_DATA_LEN    1500        /*幀內數據的最大長度*/
#define ETH_FRAME_LEN   1514        /*不含CRC校驗和的最大以太網數據長度*/
*/
/*
 * According to 802.3ac, the packet can be 4 bytes longer. --Klika Jan
 */
//VLAN幀內數據的最大長度
#define VLAN_ETH_DATA_LEN    1500    /* Max. octets in payload */
//VLAN中不含CRC校驗和的最大以太網數據長度
#define VLAN_ETH_FRAME_LEN    1518    /* Max. octets in frame sans FCS */
 
/*
 * struct vlan_hdr - vlan header
 * @h_vlan_TCI: priority and VLAN ID
 * @h_vlan_encapsulated_proto: packet type ID or len
 */
struct vlan_hdr {
    __be16    h_vlan_TCI;    //TCI:802.1q標簽頭部分的priority and vlan id,標簽控制信息
    __be16    h_vlan_encapsulated_proto;  //包類型ID或者長度
};
 
/**
 * struct vlan_ethhdr - vlan ethernet header (ethhdr + vlan_hdr)
 * @h_dest: destination ethernet address
 * @h_source: source ethernet address
 * @h_vlan_proto: ethernet protocol (always 0x8100)
 * @h_vlan_TCI: priority and VLAN ID
 * @h_vlan_encapsulated_proto: packet type ID or len
 */
struct vlan_ethhdr {
    unsigned char    h_dest[ETH_ALEN];  
    unsigned char    h_source[ETH_ALEN];  
    __be16        h_vlan_proto;             //以太網協議
    __be16        h_vlan_TCI;               //標簽控制信息
    __be16        h_vlan_encapsulated_proto;//包類型ID或者長度
};
 
 
0條評論
作者已關閉評論
c****6
14文章數
3粉絲數
c****6
14 文章 | 3 粉絲
c****6
14文章數
3粉絲數
c****6
14 文章 | 3 粉絲
原創

VLAN知識總結

2025-03-21 09:47:17
4
0

第一章 vlan的基本概念

1.1 vlan的作用

虛擬局域網VLAN是一組邏輯上的設備和用戶,這些設備和用戶并不受物理網段的限制,可以根據功能、部門及應用等因素將它們組織起來,相互之間的通信就好像它們在同一個網段中一樣,由此得名虛擬局域網。VLAN是一種比較新的技術,工作在OSI參考模型的第2層和第3層,一個VLAN就是一個廣播域,VLAN之間的通信是通過第3層的路由器來完成的。 

1.2 vlan的實現原理

當VLAN交換機接收到數據后,會對數據的部分內容進行檢查,并與一個VLAN配置數據庫(該數據庫含有靜態配置的或者動態學習而得到的MAC地址等信息)中的內容進行比較后,確定數據去向,如果數據要發往一個VLAN設備(VLAN-aware),一個標記(Tag)或者VLAN標識就被加到這個數據上,根據VLAN標識和目的地址,VLAN交換機就可以將該數據轉發到同一VLAN上適當的目的地;如果數據發往非VLAN設備(VLAN-unaware),則VLAN交換機發送不帶VLAN標識的數據。 

1.3 vlan的分類

a.基于端口的VLAN 
b.基于MAC地址的VLAN 
c.基于路由的VLAN  
d.基于策略的VLAN 

1.4 vlan幀結構

每一個支持802.1Q協議的主機,在發送數據包時,都在原來的以太網楨頭中的源地址后增加了一個4字節的802.1Q楨頭,之后接原來以太網的長度或類型域,關于以太網楨頭的封裝格式,參見以太網方面的培訓教材。
 
  這4個字節的802.1Q標簽頭包含了2個字節的標簽協議標(TPID--Tag Protocol Identifier,它的值是8100),和兩個字節的標簽控制信息(TCI--Tag Control Information),TPID是IEEE定義的新的類型,表明這是一個加了802.1Q標簽的本文,圖2顯示了802.1Q標簽頭的詳細內容。
 
  LAN Identified( VLAN ID ): 這是一個12位的域,指明VLAN的ID,一共4096個,每個支持802.1Q協議的主機發送出來的數據包都會包含這個域,以指明自己屬于哪一個VLAN,目前TNETX 3270只支持32個VLAN。
  Canonical Format Indicator( cfi ):這一位主要用于總線型的以太網與FDDI、令牌環網交換數據時的楨格式,TNETX 3270忽略此位。
  Priority:這3 位指明楨的優先級。一共有8種優先級,主要用于當交換機阻塞時,優先發送哪個數據包。TNETX 3270和TNETX 4090只支持一種優先級,所以這一位也沒有用,
 

第二章 重要結構

2.1 /include/linux/if_vlan.h

在/include/linux/if_vlan.h中定義vlan相關的基本數據結構
//每一個支持802.1q協議的主機,在發送數據包時,都在原來的以太網幀頭中的源地址后增加了一個4字節的802.1q幀頭
#define VLAN_HLEN    4        /* The additional bytes (on top of the Ethernet header)
* that VLAN requires.
*/
//VLAN以太網頭部的地址長度字節
#define VLAN_ETH_ALEN    6        /* Octets in one ethernet addr */
//VLAN以太網頭部的長度字節
#define VLAN_ETH_HLEN    18        /* Total octets in header. */
//VLAN以太網不含CRC校驗的數據最小長度
#define VLAN_ETH_ZLEN    64        /* Min. octets in frame sans FCS */
 
/*備注以太網的情況
#define ETH_ALEN    6               /*以太網地址,即MAC地址,6字節*/
#define ETH_HLEN    14              /*以太網頭部的總長度*/
#define ETH_ZLEN    60              /*不含CRC校驗的數據最小長度*/
#define ETH_DATA_LEN    1500        /*幀內數據的最大長度*/
#define ETH_FRAME_LEN   1514        /*不含CRC校驗和的最大以太網數據長度*/
*/
/*
 * According to 802.3ac, the packet can be 4 bytes longer. --Klika Jan
 */
//VLAN幀內數據的最大長度
#define VLAN_ETH_DATA_LEN    1500    /* Max. octets in payload */
//VLAN中不含CRC校驗和的最大以太網數據長度
#define VLAN_ETH_FRAME_LEN    1518    /* Max. octets in frame sans FCS */
 
/*
 * struct vlan_hdr - vlan header
 * @h_vlan_TCI: priority and VLAN ID
 * @h_vlan_encapsulated_proto: packet type ID or len
 */
struct vlan_hdr {
    __be16    h_vlan_TCI;    //TCI:802.1q標簽頭部分的priority and vlan id,標簽控制信息
    __be16    h_vlan_encapsulated_proto;  //包類型ID或者長度
};
 
/**
 * struct vlan_ethhdr - vlan ethernet header (ethhdr + vlan_hdr)
 * @h_dest: destination ethernet address
 * @h_source: source ethernet address
 * @h_vlan_proto: ethernet protocol (always 0x8100)
 * @h_vlan_TCI: priority and VLAN ID
 * @h_vlan_encapsulated_proto: packet type ID or len
 */
struct vlan_ethhdr {
    unsigned char    h_dest[ETH_ALEN];  
    unsigned char    h_source[ETH_ALEN];  
    __be16        h_vlan_proto;             //以太網協議
    __be16        h_vlan_TCI;               //標簽控制信息
    __be16        h_vlan_encapsulated_proto;//包類型ID或者長度
};
 
 
文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0