1、前言
說來慚愧,我是學軟件出生的,誤打誤撞去了一家搞網絡設備的公司。本來對網絡不熟悉,只知道一些基礎的知識。雖然在公司主要是搞應用層開發,但是畢竟是網絡公司,不懂網絡肯定是不行的。為此要很下心來學習一些網絡知識,從最基本的開始。網絡設備最重要的是對報文轉發和控制。高性能搞並發的轉發報文需要很強的技術。目前炒的比較火的sdn(軟件定義網絡),將網絡轉發和控制分開,移到應用層。技術很先進,容易跟蹤定位問他。例如intel的開發的dpdk,目前已經被很多公司采用。今天從簡單的二層口和三層口學習起。
2、計算機網絡
學過計算機網絡的人都知道,網絡是分層次的。執行流程與郵局非常類似。例如從省寄信到某個鄉村,郵局順序一次是省郵局、市郵局、縣郵局、鎮郵局。一級一級的,最終送到鄉村。iso給出網絡標准是七層,而實際網絡則是四層,即物理層、數據鏈路層、網絡層、應用層。傳統的網絡設備通常工作在數據鏈路層和網絡層,例如交換機、路由器。而目前有些網絡控制設備則工作在應用層,這種設備用於對應用層的報文進行分析,進行應用識別和審計。
3、二層設備和三層設備
二層設備是工作數據鏈路層的設備。二層交換機可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,並將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。具體的工作流程如下:
(1) 當交換機從某個端口收到一個數據包,它先讀取包頭中的源MAC地址,這樣它就知道源MAC地址的機器是連在哪個端口上的;
(2) 再去讀取包頭中的目的MAC地址,並在地址表中查找相應的端口;
(3) 如表中有與這目的MAC地址對應的端口,把數據包直接復制到這端口上;
(4) 如表中找不到相應的端口則把數據包廣播到所有端口上,當目的機器對源機器回應時,交換機又可以學習一目的MAC地址與哪個端口對應,在下次傳送數據時就不再需要對所有端口進行廣播了。
不斷的循環這個過程,對於全網的MAC地址信息都可以學習到,二層交換機就是這樣建立和維護它自己的地址表。
三層設備是工作在網絡層的設備。路由器是最常用的三層設備,利用不同網絡的ID號(即IP地址)來確定數據轉發的地址。IP地址是在軟件中實現的,描述的是設備所在的網絡,有時這些第三層的地址也稱為協議地址或者網絡地址。
