集線器,交換機,路由器的做用

集線器(Hub) —— 工做在物理層

信號在線路中傳播會進行衰減,集線器的做用就是對信號進行再生放大,從而擴大了網絡的傳輸距離。從功能就能夠看出,集線器是工做在物理層的。並且從下圖中能夠看出,使用集線器的網絡是總線型網絡,那麼當一臺計算機發送消息時,全部的計算機都會收到消息。並且有一個問題就是有可能多臺主機同時發送消息,那麼這些信號在總線上相遇就會發生衝突,因此就須要使用"載波監聽多點接入/碰撞檢測(CSMA/CD)"。html

使用集線器的網絡叫作共享式網絡,該網絡的全部主機都屬於同一個衝突域,即一臺計算機發送消息,其它的計算機都可以收到。並且同一時刻只可以有一臺計算機發送消息(爲了防止衝突)。網絡

雖說在共享式網絡中其它計算機也可以收到不是發給本身的信息,可是計算機會識別該信息是否是發送給本身的,若是不是那麼就會丟棄。post

 

交換機(Switch)  —— 工做在數據鏈路層

前言——交換機轉發的消息叫作幀。spa

集線器的信道利用率過低了,因此就出現了交換機。交換機很不少個端口,每一個端口都可以鏈接一臺計算機,當計算機A向計算機B發送信息時,會在內部創建起一條臨時性的數據傳輸通道,若是有多臺計算機同時通訊,那麼就會維護多條通道。那麼能夠看出交換機的每一個端口就是一個衝突域,若是該端口只鏈接了一臺計算機,那麼就至關於沒有衝突。htm

 

每臺計算機都有一個網卡適配器,每一個網卡適配器都有一個MAC地址,該地址是全球惟一的。路由

當計算機A向計算B發送幀時,就會根據幀首部包含的目的主機MAC地址,將幀從合適的端口轉發出去。那麼交換機怎麼知道從哪一個端口把幀轉發出去呢?get

交換機會在內部維護一個MAC地址表,其中包含了每一個端口對應的主機的MAC地址。交換機在轉發幀時,就會查找該MAC地址表,而後將幀從合適的端口轉發出去。博客

那麼交換機是如何獲得這個MAC地址表的呢?it

靜態MAC地址表:當把一臺計算機鏈接上交換機時,由管理員填寫該表,從而造成MAC地址表。class

動態MAC地址表:當把一臺計算機B鏈接上交換機時,什麼事都不用作,當有計算機A向計算機B發送幀時,若是交換機不可以在MAC地址表中找到幀首部的目的MAC地址對應的是哪一個端口,那麼就會向全部的端口(除了發送幀的那個端口除外)發送該消息,而後只要計算機B迴應了幀,交換機就知道哪一個端口鏈接了計算機B,那麼交換機就會在MAC地址表中記錄下來。

 

路由器(Router)  —— 工做在網絡層

前言——路由器轉發的消息叫作IP數據報。

交換機是工做在數據鏈路層的,也即交換機只能轉發局域網內的幀。若是網絡A的主機想要發消息給網絡B的主機就須要路由器了。

若是網絡A的主機1想要想網絡B的主機2發送消息,那麼主機1必須在IP數據報的首部加上源IP地址和目標IP地址,那麼路由器A會根據目標IP地址將IP數據報轉發到路由器B。路由器B接收到該IP數據報後,會將該IP數據報封裝成幀,而後在幀的首部加上主機B的MAC地址做爲目的地址,而後把該消息轉發給主機B,或者轉發給交換機,由交換機轉發給主機B。

那麼路由器A怎麼知道把IP數據包從哪一個端口送出去呢?路由器內部維護了一張路由表,它知道把IP數據報從哪一個端口發出去。這個就不詳細說了,太複雜了。

那麼路由器B怎麼知道某個IP地址對應了哪一個主機,且該主機的MAC地址是什麼呢?

路由器內部維護了一張arp表,即地址解析協議表,它知道哪一個IP地址對應了哪一個MAC地址。

①若是arp表中存在該IP地址所對應的表項,那麼根據該表項,直接將IP數據包加上相應的首部封裝成幀。

②若是arp表中不存在該IP地址所對應的表項,那麼路由器發送一個廣播幀,將幀首部的目的MAC地址設爲FFFFFFFFFFFF,交換機收到該幀後,發現其目的MAC地址是FFFFFFFFFFFF,就會將該幀從全部的端口(除了發送該幀的端口除外)轉發出去,當計算機收到該幀後,就會把本身的IP地址和MAC地址都發送給路由器,這樣路由器就生成了arp表了。而後再根據該錶轉發IP數據報。

注:計算機接收的幀只有兩種,①幀首部的目的MAC地址和本身的MAC地址一致;②幀首部的目的MAC地址是廣播地址FFFFFFFFFFFF。(這裏不考慮組播的狀況)

 

該文章在個人我的博客地址是:http://www.alphaway.org/post-456.html

相關文章
相關標籤/搜索