如何淺顯易懂地解釋USB-HUB的原理?

如果一個USB 3.0介面通過USB-HUB變為3個介面,那麼傳輸速度是否會降低?

其工作原理又是怎樣的?

希望獲得淺顯易懂的解釋。


先回答速度降低的問題:

理論上說,一定會降低,實際情況是,不一定。

USB Hub的下游各個介面會平分上游介面帶寬,加上USB Hub本身也需要傳輸控制信號,所以下游各個設備的帶寬是必然要小於上游設備的總帶寬。

實際情況是,現在主流的USB 3.0設備都很難佔滿總帶寬(5Gbps),比如主流的3.0 U盤大概只有100MB~200MB/s的傳輸速度,摺合帶寬也不到2Gbps,所以實際情況是不一定。

USB Hub的原理比較複雜,USB協議規範里最複雜的部分就是Hub的章節,USB Hub與網路設備(乙太網)的Hub原理相差很多,如果真要類比的話,複雜度大概相當於網路的設備里的路由器。

USB協議中有控制傳輸、Bulk傳輸、中斷傳輸、同步傳輸四種模式,其中:

控制傳輸用於傳輸控制設備一級的指令;

Bulk傳輸(中文名可能叫批傳輸)主要用於傳輸USB各種大塊數據,比如U盤讀寫的數據;

中斷傳輸,用於傳輸小塊數據,滑鼠鍵盤主要使用中斷傳輸;

同步傳輸,用於傳輸實時性不夠強的數據,也就是說不保證可靠性,部分USB音頻設備使用這種傳輸;

USB Hub負責整合下游設備的各種傳輸信號,其中同步傳輸有一定限制,如果超過總帶寬的某個比例(記憶中是20%),那麼超出比例的同步傳輸將被丟棄;中斷傳輸和控制傳輸佔用的是保留帶寬,不允許丟棄;Bulk傳輸佔用剩下的帶寬,如果沒有同步傳輸,那麼Bulk傳輸大概能佔到90%以上的總帶寬。

USB Hub整合數據以後向上游設備發送,如果上游還有USB Hub,那麼上游的設備還會繼續做同樣的操作。另外,需要說明的是,通常來說主機上的USB介面,本身就是一個Root Hub,如果一個PC上有多個介面,可能是多個介面共用一個控制器,每個控制器上有一個Root Hub。

所以USB Hub相當於重新封裝了各種數據包,類似於網路設備里的路由器,而不像交換機或者集線器(Hub)那麼簡單。

同時USB Hub自身還是一個USB設備,負責向上級彙報自己的下級有多少個設備,它本身也要佔用一些帶寬周期性彙報自己的狀態。

具體的USB Hub規範,能寫幾十頁,請自行參考USB協議規範,英文的,很長很長。


推薦閱讀:

TAG:互聯網 | USB | USB30 |