對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2007/5/31 2:17:24
: 謝謝你嚕~@@"...
: 我查過上篇都沒有說...>"<
快速的說法是, 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 了。
: 我查過上篇都沒有說...>"<
快速的說法是, 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 了。