# 網絡基本功(二):細說交換機
**轉載請在文首保留原文出處:EMC中文支持論壇**[https://community.emc.com/go/chinese](https://community.emc.com/go/chinese) [](http://service.weibo.com/share/share.php?title=%23ECN%e4%b8%ad%e6%96%87%e6%94%af%e6%8c%81%e8%ae%ba%e5%9d%9b%23 %e7%bd%91%e7%bb%9c%e5%9f%ba%e6%9c%ac%e5%8a%9f%ef%bc%88%e4%b8%89%ef%bc%89%ef%bc%9a%e7%bb%86%e8%af%b4VLAN%e4%b8%8eTrunk@EMC%e6%98%93%e5%ae%89%e4%bf%a1%e4%b8%ad%e5%9b%bd%e6%8a%80%e6%9c%af%e7%a4%be%e5%8c%ba&url=https://community.emc.com/message/834012#834012)
## 介紹
本節介紹交換機的幀轉發技術,MAC地址表的維護方式,三種幀轉發模式,以及沖突域和廣播域。
## 更多信息
**幀轉發:**
**網絡及電信中的交換概念**
以太網上的幀包含源MAC地址與目的MAC地址。交換機從源設備接收到幀并快速發往目的地址。交換的基本概念指基于以下兩條準則做出決策的設備:
+ 進入(ingress)端口
+ 目的地址
術語**ingress**用于描述幀通過特定端口進入設備,**egress**用于描述設備通過特定端口離開設備。交換機做出轉發決定的時候,是基于進入端口以及消息的目的地址的。
LAN交換機維護一張表,通過這張表決定如何轉發數據流。LAN交換機唯一智能部分是利用這張表基于消息的進入端口和目的地址來轉發。一個LAN交換機中只有一張定義了地址和端口的主交換表;因此,**無論進入端口如何,同一目的地址的消息永遠從同一出口離開。**
MAC地址表的動態更新
一個交換機要知道使用哪一個端口傳送幀,首先必須學習各端口有哪些設備。隨著交換機學習到端口與設備的關系,它建立起一張MAC地址表,或內容可尋址寄存表(CAM)。CAM是一種應用于高速查找應用的特定類型的memory。交換機將連接到它的端口的設備的MAC地址記錄到MAC表中,然后利用表中信息將幀發送至輸出端口設備,該端口已指定給該設備。
記住交換機操作模式的一句簡單的話是:**交換機學習“源地址”,基于“目的地址”轉發**。幀進入交換機時,交換機“學習”接收幀的源MAC地址,并將此地址添加到MAC地址表中,或刷新已存在的MAC地址表項的老化寄存器;后續報文如果**去往**該MAC地址,則可以根據此表項轉發。幀轉發時,交換機檢查目的MAC地址并與MAC地址表中地址進行比較。如果地址在表中,則轉發至表中與MAC地址相**對應的端口**。如果沒有在表中找到目的MAC地址,交換機會轉發到除了進入端口以外的所有端口泛洪(flooding)。有多個互連交換機的網絡中,MAC地址表對于一個連接至其他交換機的端口記錄多個MAC地址。
以下步驟描述了更新MAC地址表的方法:
1\. 交換機在port 1接收到來自PC 1的幀。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91297/image002.jpg)
2\. 交換機檢查源MAC地址并與MAC地址表相比較。
+ 如果地址不在表中,則交換機在MAC地址表中將PC 1的源MAC地址關聯到進入端口(port 1)。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91298/image003.jpg)
+ 如果已經存在該源地址的MAC地址表項,則交換機重置老化計時器。通常一個表項會保持5分鐘。
3\. 交換機記錄源地址信息之后,檢查目的地址
+ 如果目的MAC地址不在表項中或如果它是一個廣播MAC地址,則交換機把該幀泛洪(flood)至除了進入端口以外的所有端口。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91299/image004.jpg)
4\. 目標設備(PC 3)返回目的地址為PC 1的單播幀。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91300/image005.jpg)
5\. 交換機地址表中輸入PC 3的源MAC地址以及進入端口的端口號。在表項中找到該幀的目的地址及關聯的輸出端口。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91301/image006.jpg)
6\. 交換機現在可以在源和目標設備之間傳送幀而無需泛洪,因為地址表中已有指定關聯端口的表項。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91302/image007.jpg)
**交換機轉發方式:**
**存儲轉發交換(Store-and-Forward)**
運行在存儲轉發模式下的交換機在發送信息前要把整幀數據讀入內存并檢查其正確性。盡管采用這種方式比采用直通方式更花時間,但采用這種方式可以存儲轉發數據,從而保證其準確性。由于運行在存儲轉發模式下的交換機不傳播錯誤數據,因而更適合大型局域網。存儲轉發模式有兩大主要特征區別于直通轉發模式:
差錯控制:
使用存儲轉發技術的交換機對進入幀進行差錯控制。在進入端口接收完整一幀之后,交換機將數據報最后一個字段的幀校驗序列(frame check sequence, FCS)與自己的FCS進行比較。FCS校驗過程用以幫助確保幀沒有物理及數據鏈路錯誤,如果該幀校驗正確,則交換機轉發。否則,丟棄。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91303/image008.jpg)
自動緩存:
存儲轉發交換機通過進入端口緩存,支持不同速率以太網的混合連接。例如,接收到一個以1Gb/s速率發出的幀,轉發至百兆以太網端口,就需要使用存儲轉發方式。當進入與輸出端口速率不匹配時,交換機將整幀內容放入緩存中,計算FCS校驗,轉發至輸出緩存之后將幀發出。
Cisco的主要交換方式是存儲轉發交換。
**直通交換(Cut-Through)**
直通交換的一個優勢是比存儲轉發技術更為快速。采用直通模式的交換機會在接收完整個數據包之前就讀取幀頭,并決定把數據發往哪個端口。不用緩存數據也不用檢查數據的完整性。這種交換方式有兩大特點:快速幀轉發以及無效幀處理。
快速幀轉發:
如下圖所示,一旦交換機在MAC地址表中查找到目的MAC地址,就立刻做出轉發決定。而無需等待幀的剩余部分進入端口再做出轉發決定。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91304/image009.jpg)
使用直通方式的交換機能夠快速決定是否有必要檢查幀頭的更多部分,以針對額外的過濾目的。例如,交換機可以檢查前14個字節(源MAC地址,目的MAC,以太網類型字段),以及對之后的40字節進行檢查,以實現IPv4三層和四層相關功能。
無效幀處理:
對于大多數無效幀,直通方式交換機并不將其丟棄。錯誤幀被轉發至其他網段。如果網絡中出現高差錯率(無效幀),直通交換可能會對帶寬造成不利影響,損壞以及無效幀會造成帶寬擁塞。在擁塞情況下,這種交換機必須像存儲轉發交換機那樣緩存。
**無碎片轉發(Fragment Free)**
無碎片轉發是直通方式的一種改進模式。交換機轉發之前檢查幀是否大于64字節(小于則丟棄),以保證沒有碎片幀。無碎片方式比直通方式擁有更好的差錯檢測,而實際上沒有增加延時。它比較適合于高性能計算應用,即進程到進程延時小于10毫秒的應用場景。
**交換機域:**
交換機比較容易混淆的兩個術語是沖突域和廣播域。這一段講述這兩個影響LAN性能的重要概念。
**沖突域**
設備間共享同一網段稱為沖突域。因為該網段內兩個以上設備同時嘗試通訊時,可能發生沖突。使用工作在數據鏈路層的交換機可將各個網段的沖突域隔離,并減少競爭帶寬的設備數量。交換機的每一個端口就是一個新的網段,因為插入端口的設備之間無需競爭。結果是每一個端口都代表一個新的沖突域。網段上的設備可以使用更多帶寬,沖突域內的沖突不會影響到其他網段,這也成為**微網段**。
如下圖所示,每一個交換機端口連接到一臺主機,每一個交換機端口代表一個隔離的沖突域。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-832621-91305/image010.jpg)
**廣播域**
盡管交換機按照MAC地址過濾大多數幀,它們并不能過濾廣播幀。LAN上的交換機接收到廣播包后,必須對所有端口泛洪。互連的交換機集合形成了一個廣播域。網絡層設備如路由器,可隔離二層廣播域。路由器可同時隔離沖突和廣播域。
當設備發出二層廣播包,幀中的目的MAC地址被設置為全二進制數,廣播域中的所有設備都會接收到該幀。二層廣播域也稱為MAC廣播域。MAC廣播域包含LAN上所有接收到廣播幀的設備。廣播通信比較多時,可能會帶來廣播風暴。特別是在包含不同速率的網段,高速網段產生的廣播流量可能導致低速網段嚴重擁擠,乃至崩潰。
- 介紹
- 網絡基本功(一):細說網絡傳輸
- 網絡基本功(二):細說交換機
- 網絡基本功(三):細說VLAN與Trunk
- 網絡基本功(四):細說路由(上)
- 網絡基本功(五):細說路由(下)
- 網絡基本功(六):鏈路聚合
- 網絡基本功(七):細說IP地址與子網
- 網絡基本功(八):細說TCP滑動窗口
- 網絡基本功(九):細說TCP重傳
- 網絡基本功(十):細說TCP確認機制
- 網絡基本功(十一):TCP窗口調整與流控
- 網絡基本功(十二):細說Linux網絡配置(上)
- 網絡基本功(十三):細說Linux網絡配置(下)
- 網絡基本功(十四):細說診斷工具ping
- 網絡基本功(十五):細說網絡性能監測與實例(上)
- 網絡基本功(十六):細說網絡性能監測與實例(下)
- 網絡基本功(十七):細說tcpdump的妙用(上)
- 網絡基本功(十八):細說tcpdump的妙用(下)
- 網絡基本功(十九):細說NAT原理與配置
- 網絡基本功(二十):細說ICMP和ARP
- 網絡基本功(二十一):細說HTTP(上)
- 網絡基本功(二十二):細說HTTP(下)
- 網絡基本功(二十三):Wireshark抓包實例診斷TCP連接問題
- 網絡基本功(二十四):Wireshark抓包實例分析TCP重傳
- 網絡基本功(二十五):Wireshark抓包實例分析TCP重復ACK與亂序
- 網絡基本功(二十六):Wireshark抓包實例分析TCP窗口及reset
- 網絡基本功(二十七):Wireshark抓包實例分析HTTP問題(上)
- 網絡基本功(二十八):Wireshark抓包實例分析HTTP問題(下)
- 網絡基本功(二十九):Wireshark抓包實例診斷數據庫常見問題
- 網絡基本功(三十):細說DNS(上)
- 網絡基本功(三十一):細說DHCP