Re: [問答] 關於router的capacity

看板Network作者 (Birdy)時間13年前 (2012/09/22 00:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《rusynth (stw)》之銘言: : 請問,router的capacity的意思是? : router可以處理的資料量?還是router的buffer大小? : 封包只要經過router就會有delay? : 還是資料輸入量大於router的capacity才會開始產生delay? 這是一個很大的問題, 而且必須對設備的架構有一定瞭解才行 transmission delay/propagation delay 只跟電路速率/距離有關, 這部份 delay 應該算是固定的, 應該不是原 po 要問的 會變動的部份包括 processing delay 以及 queuing delay processing delay 是指 router 檢查封包並且決定去路花費的時間 queuing delay 是指封包在 queue 裡面排隊等待送出花費的時間 不同類型的設備會有不同的特性, 軟體處理的 router 容量會受限於 CPU 的處理能力, 檢查速度不夠快就會有封包排隊等待的情形(通常 發生在小封包數量很多的情形下). 這類設備的 queue 通常就是主記 憶體直接切一塊, 容量可能設定到很大(可能儲存達數秒的封包). 往好的方面想來不及處理也不至於丟包, 但是另一方面如果 CPU 持續 滿載, 結果就是會等到塞滿才開始丟包(能放多少封包就會延遲多久). 用 switch fabric 的 router 交換能力增強很多, 但同樣還是有背板 容量的限制. 這類設備上 queue 成本就高多了, 除了少數高階設備會 設計專門的 packet buffer 外, fabric 一旦塞爆很快就會開始丟包. (有些設備甚至可能完全沒有 ingress queue, 來不及處理就馬上丟) 處理完畢之後, 決定好去路的封包會送到 egress queue, 封包會在 裡面排隊等待由介面送出, 等待的時間就是 queuing delay. 例如流量從十個平均流量各 60Mbps 的 GbE 介面進來(總流量 600Mbps), 最後要由一個 GbE 介面送出. 乍看之下介面利用率才到 60% 而已, 應該是輕鬆愉快才對? 但是世界沒有那麼美好, 流量的特性往往很不平均, 很有可能在 0.1 秒 內傳了 60Mbit(實際速度 600Mbps), 另外 0.9 秒則 idle, 同一段時間 只要再有另外一個介面進來的資料稍微多一點, 就會有封包開始排隊了 更極端的情況不只是 queuing delay 而已, 因為規劃 queue 的時候是用 最大的封包來計算(不管封包多小一樣都要佔用 1500bytes 甚至更大), 所以小封包佔用的空間可能是實際流量的好幾倍, 一旦 queue 用完就會 出現 output queue drop. 實務上看過流量才到 300~400Mbps 就開始丟 包的... 一整個悲劇 因為設備可能還要支援 QoS(意思就是會有不只一個 queue), 再加上在 硬體裡設計 queue 的位置不一, 真實情形往往會比上面講的再複雜一些, 但是基本原理不會變. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.86.100.157
文章代碼(AID): #1GN9m2CQ (Network)
討論串 (同標題文章)
文章代碼(AID): #1GN9m2CQ (Network)