|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2007/5/31 2:17 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [分享]最後,回歸Hub與Switch Hub效率討論
- : 謝謝你嚕~@@"...
: 我查過上篇都沒有說...>"<
快速的說法是, Switch Hub 比 一般 Hub 還要有效率, 更加的高級就是了! 很多人用簡單的除法說什麼 5 ports/10Mbps 的 一般Hub, 每一個電腦只能分到 10/5=2Mbpe, 那是錯誤的! 說什麼 Switch Hub 可以使每台電腦都接收/傳送 10Mbps的頻寬, 也錯誤! 正確的說, 是 Switch Hub 如果是 5 Ports, 假設是 a b c d e 好了, 那其中要是 a 剛好只跟 b討資料, c 剛好只跟 d 討資料, e 電腦沒人用, 那麼頻寬的分配是 a=10Mbps b=10Mbps c=10Mbps d=10Mbps 那如果 b, c, d, e 都同時向 a 討資料, 那麼頻寬就變成10Mbps/4=2.5Mbps Mbps=Million bit per second (百萬 bit 每秒) 所以變化也滿多的, 假設 a, b 同時跟 c 討資料, c 又跟 d 討資料, e又跟 a 討資料. 那就會變成 : a--->e d--->c c--->a c--->b
由此看來, 其中 c 最受歡迎, c 的資料就有二個人要. b和 e 最可憐, 硬碟裡可能什麼都沒有, 所以沒人要他的資料. d 最獨立, 沒有向其他 4 台電腦索取資料, 還提供資料給 c電腦, 所以d可能是 Server. 那麼頻寬就變成, a=10/4=2.5Mbps b=10/4=2.5Mbps c=10/4=2.5Mbps d=10/4=2.5Mpbs e=10/4=2.5Mpbs
所以就算是 Switch Hub, 遇到牽扯一堆的時候, 也是跟普通 Hub一樣. 每個都一樣了, 即使 d看起來跟別人牽扯的最少, 但就是因為 d給c資料. 問題就出在 c, c 牽扯最多, 導致 5 台電腦的分享頻寬都一樣了, 都要分掉.
如果今天其中二個都只跟對方相互取資料, 那麼就可以享有 10Mbps的全速. 也就是互相深愛對方, 各自都沒有在跟別人牽扯, 這樣就可達到 Switch 的功能. 這樣最好的情況就是 有 4 ports 可以享受 各自獨立的 10Mbps, 其中一 port 必須 不動作. 應該是如此, 講錯的話請指教. 所以買 Switch Hub 應該買偶數的 ports 數目, 5, 7, 9 這些都不要買. 買4, 6, 8, 16, 偶數的 Switch Hub. 推薦 3Com 和 SMC的 Hub.
> > > 基本上來說,meeds兄的解釋並沒有錯。 > > > 在討論這個問題時,除了Ethernet的存取方式外,還需注意switch硬體的function, > > > switch再處理traffic時基本上有兩種模式,store-and-forward和cut-through, > > 沒有錯嗎? 你的乙太網路設備 Switch 哪一款式能夠讓 b,c,d,e 同時去存取 a 啊? > > > 不論何種模式,當b,c,d,e同時存取a時,一開始b,c,d,e都可以充分利用10mbps的頻寬, > > 這就是笑話了, 誰都知道在乙太網路裡面 b,c,d,e 是不可能同時存取 a 的 > > 你居然還能充分利用 10Mbps 的頻寬 你的 Switch 超猛的 @_@ > 可能是我表達的不夠清楚,所謂bcde同時存取a,指的是在initializing的時候, > bcde同時丟traffic給a,traffic當然是先到switch,再由switch forward給a, > 當然switch不可能把bcde的packet同時丟給a,一定是packet-by-packet > (以process-switching為準,先不予考慮fast-switching的情況)。 > > 連接到下面這段, 居然掰出 b,c,d,e 一共灌了 40Mbps 給 a 的笑話~~ > 請容許我說明白一點,所謂bcde灌了40mbps給a的意思是,bcde總共有40mbps的 > traffic進到switch backplane fabric,然而port A的bandwidth只有10mbps, > 當然無法消化switch backplane內的40mbps traffic,所以剩下的traffic就 > 存在port A的output queue裡面,當output queue的buffer滿了(oversubscription), > packet開始被drop。 > > > b,c,d,e一共40mbps的traffic流到a port的buffer處理,但實際上a port的頻寬 > > > 也只有10mbps,所以a port的buffer滿了,data開始被drop,同時因為a port的loading > > > 超出負荷,switch也會在b,c,d,e port發出notification,使得b,c,d,e四台機器 > > > 減緩資料送出的速度,因此當b,c,d,e同時存取a時,意味著b,c,d,e共同share a的10mbps > > > 以長期看來,b,c,d,e確實只能使用2.5mbps。 > > 上面這一段是你掰的吧~~ 笑痛我了.. > 這一段本人的詮釋並不嚴謹,在此說聲抱歉。但我可沒亂掰!!! > 所謂的port B,C,D,E會發出notification,指的是IEEE 802.3Z flow control on > gigabit ethernet port,cisco catalyst 6000 switch支援, > 請參考: > http://www.cisco.com/univercd/cc/td/doc/product/lan/cat6000 > /sw5_1/cnfigide/ether.htm#xtocid1934811 > 就算今天我們的switch沒有flow control好了,沒關係,我們還有TCP, > TCP總算有error control和flow control了吧,a必須將b的packet處理完後, > 回應給b一個ack,b才會繼續傳資料給a,從一個微觀的角度來看,第一秒處理b, > 第二秒處理c,第三秒處理d,第四秒處理e,第五秒才能再處理b,從b的角度來看, > 四秒內只有一秒能傳資料(a給b一個ack,b才會繼續傳),相對來說,頻寬只用了1/4。 > TCP/IP的運作邏輯請參考: > http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ip.htm#xtocid2236316 > > > > 但這並不代表剩下的7.5mbps平白無故消失,7.5mbps還是可以運用在 > > > 其他的traffic pattern,譬如上internet或是存取另外一個f。 > > 哇 @_@ 更猛! 以上的笑話已經夠爆笑了, 居然還可以掰出被 drop 的資料還有其他 > > 運用咧~~ > > 哪來半路跑來這亂掰講笑話的? 大家看看笑笑就好 哈 我笑痛了.. > 請容許我說的更明白一點, > 這裡所說的被drop的資料指的是b傳給a的資料, > 當port A 的output queue overflow之後被drop的,而B->A的traffic flow > 只用到2.5mbps的utilization,port B的bandwidth有10mbps,但由於port A > 的滿載,使得B->A只能用2.5mbps,那剩下的7.5mbps當然可以用於其他的 > traffic pattern,說的再詳細一點,就是一秒傳資料給a,三秒傳資料到internet > (假設沒人跟他搶internet),如此便可將port B的utilization達到100%。 > 因此,在Design Network時,通常會採取hierarchical design,access layer > 採用10或100,distribution lay採用100或1000,如此作為access layer流量 > 聚集點的distribution layer方能有效率的處理四面八方匯聚來的traffic。 > > 如果你還是不能認同我的說法,或許你可以參考參考Cisco出版的 > CCNP/CCDP--Building Cisco Multilayer Switched Networks(P.56-59) > 天瓏書局有。
> > > 基本上來說,meeds兄的解釋並沒有錯。 > > > 在討論這個問題時,除了Ethernet的存取方式外,還需注意switch硬體的function, > > > switch再處理traffic時基本上有兩種模式,store-and-forward和cut-through, > > 沒有錯嗎? 你的乙太網路設備 Switch 哪一款式能夠讓 b,c,d,e 同時去存取 a 啊? > > > 不論何種模式,當b,c,d,e同時存取a時,一開始b,c,d,e都可以充分利用10mbps的頻寬, > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > 這就是笑話了, 誰都知道在乙太網路裡面 b,c,d,e 是不可能同時存取 a 的 > > 你居然還能充分利用 10Mbps 的頻寬 你的 Switch 超猛的 @_@ > > 連接到下面這段, 居然掰出 b,c,d,e 一共灌了 40Mbps 給 a 的笑話~~ > > airbone兄講的沒錯 > 你所說的乙太網路是指之前的 coaxial cable (10base2,10base5) > 那類的shared LAN, 所以主機使用單一channel去進行communication. > 所以在MAC層是採取CSMA/CD的方式.換句話說,同時間只有 > 單一主機能使用網路.否則會有collision. 可是 自從有了switch 及 UTP 後,單一 > shared medium的限制也被移除,(使用UTP有四對線,10baseT和100baseTX是使用其中兩條 > TX/RX)也開始有了全雙工的名詞 > full-duplex 是移除三項早期ethernet的特性 > 1.carrier sense: full-duplex 下,主機不需要偵測carrier 訊號 > 2.multiple access: 因為Host跟switch之間可以分別用TX/RX互相傳資料 > 3.collision detection: 同上,因為分別用TX/RX傳資料也就沒有collision的情況發生 > > 換句話講,在ful-duplex之下,已經沒有CSMA/CD > 所以b,c,d,e如果要傳資料給a 時,理論上可以到達極速(只有在剛開始那微小的時間點內) > 所以data 都在放在output queue裡(假設是使用store-and-forward方式),switch為了防止 > buffer overflow,它可以開始drop packets,如果b,c,d,e上層是使用TCP等有flow control > 的protocol, 上層的protocol會因為packet loss而調整packet送到data link的速度. > 或者switch也可以送出 PAUSE Frame(full-duplex裡,屬於MAC層),請sending host降低傳送 > 速度. > > > > b,c,d,e一共40mbps的traffic流到a port的buffer處理,但實際上a port的頻寬 > > > 也只有10mbps,所以a port的buffer滿了,data開始被drop,同時因為a port的loading > > > 超出負荷,switch也會在b,c,d,e port發出notification,使得b,c,d,e四台機器 > > > 減緩資料送出的速度,因此當b,c,d,e同時存取a時,意味著b,c,d,e共同share a的10mbps > > > 以長期看來,b,c,d,e確實只能使用2.5mbps。 > > 上面這一段是你掰的吧~~ 笑痛我了.. > > > 但這並不代表剩下的7.5mbps平白無故消失,7.5mbps還是可以運用在 > > > 其他的traffic pattern,譬如上internet或是存取另外一個f。 > > 哇 @_@ 更猛! 以上的笑話已經夠爆笑了, 居然還可以掰出被 drop 的資料還有其他 > > 運用咧~~ > > ----------- > > 哪來半路跑來這亂掰講笑話的? 大家看看笑笑就好 哈 我笑痛了.. > airbone 兄說的沒錯 > 如果 a 跟 b互傳,在100base-TX, full-duplex下總頻寬可以達到200Mbps.可是並不是說 > a --> b = 200Mbps 或 b --> a = 200Mbps 或 a -> b + b -> a = 200Mbps > 而是指 a->b 最多 100Mbps, b->a 最多 100Mbps, 同時間總和 200Mbps > > 總而言之, 在full-duplex下,Any host 的 outgoing 或 incoming data 是不受彼此干擾 > 最主要的原因是不採用CSMA/CD的存取方式. 只switch夠powerful, incoming/outgoing都 > 可以在同一時間達到極速,而不受到跟幾台主機同時連線的限制 > > For more information, the following book is a great reference. > The Switch Book: The Complete Guide to LAN Switching Technology > by Rich Seifert > John Wiley & Sons > ISBN: 0471345865
> > : 對不起 插個花 請教一下.. > > : 全雙工 是不是指 "同時間可以上下傳一起動作" ? > > : A port 還是有可能 " 同時接收 " 到 B.C port 送給 A port 的資料. > > : (如果不受 CSMA/CD 限制) > > : 可以再說明一下 為何 使用 ful-duplex之下,已經沒有CSMA/CD ? > > 還是有collision 啦,不信用 Sniffer 自已看看 > > 對相同電腦作存取 > > 這樣不就知了嗎? > > full-duplex是用於end-to-end,即switch-to-switch or switch-to-pc, > 中間沒有hub,上傳和下傳走不同對的線,可以同時進行, > 由於是end-to-end,switch的port是dedicate給client,所以該client在上下傳時 > 根本沒人跟他搶。若是多人存取同一台server,只要server和switch之間是full-deplex > 就像是一條雙線道,上傳有上傳的路,下傳有下傳的路。 > 基於full-duplex上下傳可同時進行及end-to-end(沒有其他人在競爭media access) > 的特性,full-duplex不會有collision也不需要CSMA/CD。
> : full-duplex是用於end-to-end,即switch-to-switch or switch-to-pc, > : 中間沒有hub,上傳和下傳走不同對的線,可以同時進行, > > 上傳和下傳走不同對的線並非full duplex的必要條件。 > 1000BASE-T的上傳和下傳在full duplex下還是走同一對線(它四對線全用到), > 當然代價就是複雜的信號處理電路來把這兩種信號分出來。 > > : 由於是end-to-end,switch的port是dedicate給client,所以該client在上下傳時 > : 根本沒人跟他搶。若是多人存取同一台server,只要server和switch之間是full-deplex > : 就像是一條雙線道,上傳有上傳的路,下傳有下傳的路。 > : 基於full-duplex上下傳可同時進行及end-to-end(沒有其他人在競爭media access) > : 的特性,full-duplex不會有collision也不需要CSMA/CD。 > > 在使用UTP的情形下,對transmitter而言,collision就是在它傳送封包時, > 發現同時有別的封包的信號進來。這時候它會送出jam並重新安排下一次的傳送。 > 在full duplex下,MAC不會理會physical layer電路所產生的collision detect, > 因此就不會有jam及重新傳送。所以嚴格來說,應該說MAC會忽略collision。
> > 我互通的意思是指可以 route 的互通,所以小弟認為 VLAN 要互通需要 > > Layer 3 Switch. 各個 Virtual LAN 可以由 Layer 3 Switch 而達到 > > 互通. > > 您用的 Layer 2 應該是直接做 port trunking (例如 CISCO 的 InterLink) > > 這樣吧? > > 對了...吵了半天,沒有人知道這才是正確答案嗎?? > L2 Switch 能切 VLAN 是基本的軟體功能~~ > 每個 VLAN 之間沒有透過 Routing Module 的 Work 會通才怪 .. > 所以,這位 Siklo 兄說的是對的 .. > 事實上,以 Cisco implementation 而言,1顆 26XX的小 Router > 加上隨便一款小 Switch 就可以做 InterVLAN Routing 了 .. > 總之,VLAN 要互通本來就要透過 Layer 3 Function。 > > 至於什麼是 L3 Switch ,你們真的有用過嗎?沒用過就不用吵了 ... > 因為光讀書上的東東是沒有用的 ... > 不要跟我說 L3 Switch 可以跑 L2 Switching + L3 Routing ... > 這是大錯特錯 ...... > 有人聽過 L3 Switching 這東西嗎? L3 Switch 就是用來做這個 Function 的 .. > 什麼是 L3 Switching 呢?「Hardware-Base Routing」是也~~ > 降子懂了吧!?拿 Cisco來說(因為我只熟 Cisco :p),只要能支援 MLSP 的 > Switch,都叫 L3 Switch,即使沒有內建 RSM或RSFC,都還是.... > 請大家先仔細想好,「[1;33mHardware-Base[m [1;37mRouting[m」的定義好嗎?? > 再來討論什麼是 L3 Switch? > > 還有,透過 ISL 做 Trunk 並不是讓不同的 VLANs 互通,而是讓「不同」 > Switch 上擁有「相同」的「VLAN ID」的 VLAN 相通。
HUB是所有PORT共用一個頻寬,SWITCH則各PORT獨立一個頻寬。假如以100Mbits為例, 則HUB 之各個PORT是如何分享頻寬,假設各PORT均在使用中,則各PORT分享到多少頻 寬,可否舉例說明? 以上述為例,則SWITCH各PORT享受到多少頻寬?
嗯﹐概念上不大正確。
HUB 和 SWITCH 的分別﹐不在頻寬的‘切割’﹐而在於對頻寬的‘使用時機’﹐其中最 大分別是﹕在 HUB 上面﹐同一時間內﹐只能有一個 port 進行傳送﹐而在 switch 則 允許所有 port 同時傳送。
如果今天﹐連接 5 台機器在 switch 上面﹐如果 abcd 都同時向 e 傳送數據﹐那 abcd 送出的數據﹐都會先被 queue 起來﹐然後 switch 會用自己的 CPU 進行處理﹐ 將 queue 中的數據處理掉﹔而換成 hub﹐那麼﹐a 在送的話﹐bcd 都要等﹐如果 b 在 送的話﹐acd 都要等....
小弟對於這段話 很感興趣
連接 5 台機器在 switch 上面﹐如果 abcd 都同時向 e 傳送數據﹐那 abcd 送出的數 據﹐都會先被 queue 起來﹐然後 switch 會用自己的 CPU 進行處理﹐將 queue 中的 數據處理掉.
請教的是.不管switch 如何處理.始終要送出資料給 abcd.這時跟hub 的傳送有分別嗎 ? switch 送給a的同時.b or c or d 還能同時間接收 e 的封包嗎 ? 如果不能. 以上面的例子.小弟看不出跟 hub 在這段時間內.跟switch 有何分別. 請指教.
有啊﹐就是改善了 carry sensce 的等待啊(請重新參考 CSMA/CD 這個技術)﹐這樣說 好了﹐如果 abcd 同時給 e 送數據﹐而且 a 又同時向 b 送﹐而 f 和 g 也嘗試在送 數據。
這時候﹐a 只要將給 e 的數據往 switch 丟之後﹐那就可以繼續向 b 丟下一個了﹐而 同時 bcd 也可以向 e 送﹐以及 f 也可以向 g 丟數據。
如果換成 hub 呢﹐當 a 向 e 送的時候﹐那麼 b 要等﹐然後輪到 c 和 d﹐而 a 向 b 送的﹐也要等 d 送完﹐連 f 到 g 的也要等就是了。
不知道能看到它們的分別嗎﹖假如以每 1 秒為一個運算週期來看﹐我們可以發現﹕
用 switch 的(理想)情形如下面﹕ 第一秒﹕abcd->e,f->g 第二秒﹕a->b (完成)
而用 hub 呢﹕ 第一秒﹕a->e 第二秒﹕b->e 第三秒﹕c->e 第四秒﹕d->e 第五秒﹕f->g 第六秒﹕a->b (完成)
不過﹐請留意﹐以上是假設的理想狀態﹐而且單純針對 carry sensce (也就是 node 到 switch)的部份﹐至於 collision detect﹐還有 switch 處理完 queue 之後將數據 送給 nodes 的部份尚未考慮進來。
我不敢確定﹐但我猜 e 自己的接收還是受到接收順序限制的﹐就算如此﹐以比較 switch port 送至 nodes 的時間﹐最長的佇列只是 switch 到 e 的時間﹐而在它完成 之前﹐其它的 queue 已經清空了(我想這要看 switch 的處理能力而定吧)﹔但換成 hub 的話﹐其它 queue 就沒同時處理的可能﹐也只能是 FIFO 處理。
假如各主機﹐同時又開了一堆連線分別和不同主機連線﹐就更複雜了﹐但我可以肯定一 點是﹐連線越多﹐switch 越有發揮的價值﹐用 hub 則只能更慘。
如果您一定要強調從 e 送封包出來給 abcd (而不是 abcd 同時向 e 送)﹐那光就 CS 來說﹐的確沒什麼分別﹐但只這單純是 local 端送出封包的順序限制而已﹐似乎不應 該扯上 switch 和 hub。
還有﹐以上說的全是在 haff-duplex 的情形下發生﹐而在 full-duplex 下面則不是這 樣的﹐不過﹐就不能用 hub 了。
|
|
|
討論串
|