
集線器(hub)
- hub工作在OSI的第一層,發(fā)給 hub 的數(shù)據(jù)包會廣播給所有的端口
- hub的是直接的物理連接到每一臺設備的網(wǎng)卡,所有有較低的連接丟失風險,因為hub是所有設備共享帶寬的一個設備,所以它是半-雙工的,所以他會存在沖突,同時發(fā)給hub的入站和出站包會存在沖突,需要算法解決沖突,因此hub的性能相對會差一些
- hub本質上是一個多端口中繼器,它不管包的內容,只是簡單的把某個端口收到的包,再廣播給其他所有的端口,所以,一臺主機發(fā)給另外一臺主機的內容會被其他無關的主機監(jiān)聽到。有安全問題
網(wǎng)橋(bridge)

- 物理世界橋是用來連接一個河的兩邊,而計算機世界橋是用來連接兩個物理網(wǎng)段的網(wǎng)絡
- bridge和switch都工作在OSI的數(shù)據(jù)第二層(數(shù)據(jù)鏈路層),數(shù)據(jù)包會根據(jù)MAC地址來發(fā)給指定的端口,不存在hub的那種不管三七二一就廣播帶來的安全問題
- 橋會跟蹤插到他的接口上的網(wǎng)絡的所有主機的地址,當橋的一端的這個網(wǎng)絡的數(shù)據(jù)包發(fā)到橋,橋會過濾機制,保證屬于這一端的網(wǎng)絡的數(shù)據(jù)包留在本地,而不會被無辜的轉發(fā)到對面網(wǎng)絡(因為本地包,不是發(fā)給橋對面的)
- 當橋接受到網(wǎng)絡發(fā)出來的包的地址不屬于橋的這一端,那么他會發(fā)到對面去。但是,實際上它并不知道對面是否存在這個地址,只是猜測既然不在這邊,那么可能在對面,然后如果對面網(wǎng)絡還有其他橋,那么它會發(fā)現(xiàn)這個包不在自己這里,又會把包發(fā)到其他橋的對面去,所以一個包要到達目的地址所在的主機,需要經(jīng)過多個橋
- 因為上面這一點,廣播和多播(比如arp這種找所有人要地址的包)的這類流量必須經(jīng)過網(wǎng)絡上的所有橋,那么所有的主機都是有機會讀到這個廣播包的,而網(wǎng)絡那么大(特別是橋越多的網(wǎng)絡),其實很多包是和自己無關的,那么就會有可能引起廣播風暴,從而阻止了單播的流量(就是目的明確的包)
交換機(switch)
其實switch本身就是一種bridge,它具備老式bridge的功能,但是解決了一些它的問題
switch克服了hub的缺點,他可以為每個接入的主機設備分配專用的帶寬,提供全-雙工的的連接,他利用MAC地址表來做數(shù)據(jù)包的轉發(fā)決策,用ASICS和內容尋址寄存器(CAM)表來提高幀的處理率
switch集hub和bridge的所長于一身,將hub的多端口功能和橋的過濾功能集中在一起使用,只允許目標設備才能見到單播的數(shù)據(jù)包,所以不會像橋一樣可能會阻止單播包
交換機允許冗余鏈接,并且由于為網(wǎng)橋開發(fā)的生成樹協(xié)議(STP),廣播和多播運行不會引起風暴
交換機跟蹤每個接口中的MAC地址,因此它們可以將流量僅快速發(fā)送到包的目的地
因為上面的這些特點,switch具備更高的性能和安全性
switch總的來講,有一下優(yōu)點:
switch是即插即用設備。一旦第一個數(shù)據(jù)包到達,他們便開始學習接口或端口以到達所需的地址,然后用做后續(xù)的過濾用。
switch提供了一種簡單的方法來連接以不同速度運行的網(wǎng)段,例如10 Mbps,100 Mbps,1GB和10GB網(wǎng)絡
交換機正在取代網(wǎng)絡內部的路由器,因為它們在以太網(wǎng)網(wǎng)絡上轉發(fā)幀的速度快10倍以上
bridge和switch的其他區(qū)別
- 古老bridge只有2到4個端口,而switch其實是一種高性能的多端口的bridge,可以多達幾百個端口,本質上switch也是一個bridge設備,它用具備bridge的功能
- 古老的bridge是的包轉發(fā)是基于軟件的,而后來研發(fā)的switch則是基于硬件來研發(fā),用芯片來做包的轉發(fā)決策,性能遠比老的bridge優(yōu)越
- 新的switch可以具有多個生成樹實例。而老式bridge只能有一個。
那么為什么switch沒有繼續(xù)使用bridge這個名字呢,因為早期的生產(chǎn)商生產(chǎn)的bridge不符合IEEE的規(guī)范(規(guī)范從來沒有定時bridge只有2個端口),后來者未免與他相提并論,后來干脆不用bridge這個詞,直接改用switch,但本質是更好的對規(guī)范的實現(xiàn)。
那么以上的這3個物理設備的概念,對應的也存在虛擬的軟件實現(xiàn),如虛擬的bridge網(wǎng)橋,虛擬的交換機,如docker和k8s這種分布式的軟件,經(jīng)常會使用bridge來建立子網(wǎng)以及和宿主機通信等功能