JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

共用一個媒介:多工

一條纜線、一根光纖、一片空氣,卻同時承載成千上萬段通話。多工就是讓眾多訊號共用單一媒介、又不互相踐踏的訣竅:按頻率切、按時間切,或按光的顏色切。

為什麼要共用?

拉一條線或鋪一根光纖都很貴;空氣中的無線電頻譜有限且需要授權。所以實體層裡最寶貴的資源就是媒介本身,我們負擔不起為每段通話專拉一條纜線。多工就是這一族技巧:讓許多彼此獨立的訊號同時走過同一個共用媒介,而另一端有個對應的「解多工」步驟,把它們乾淨地分開。

想像一條四線道高速公路。路是一個共用媒介,但許多車能不相撞地前進,因為它們各走分開的車道(一種空間切分),或在匯流處輪流通過(一種時間切分)。多工對一條線做的事情一樣,只是這些車道是由頻率、由時槽、或由光的顏色構成。關鍵是:這是實體層裡關於「共用一條連結」的概念,別跟更上層的傳輸層機制混淆——在那裡,連接埠號把許多應用程式多工到同一台主機上。同一個詞,建築物裡不同樓層。

FDM:每個人都有自己的頻率車道

最古老的方案是分頻多工。媒介的總頻寬(它可用頻率的範圍,以赫茲計)被切成一條條狹窄的子頻帶,每個訊號被調變升到自己的子頻帶上,整段期間都待在那裡。這正是上一篇寬頻概念的實際應用:把每段通話舉到不同的載波頻率上,它們就能共存而永不相觸,因為各自佔據頻譜的不同部分。

你到處都會遇到 FDM。每個 FM 電台各擁有一個你轉到的頻率;你家的纜線在同一條同軸電纜的不同頻段上同時承載電視頻道與你的網路;Wi-Fi 把它的頻段切成多個通道,好讓相鄰的路由器互相避開。為了防止鄰居互相滲漏,FDM 在子頻帶之間留下一段沒用的保護頻帶,也就是一小段空著的頻率緩衝,這也是為什麼你永遠拿不到完整理論頻寬的原因之一。

TDM:每個人都有自己的輪次

分時多工以相反的方式共用媒介:它不給每個訊號一片永久的頻率,而是給每個訊號整個頻段、但只在一小段時間裡,並以嚴格重複的輪轉進行。來源 1 拿時槽 1,來源 2 拿時槽 2,依此類推;走完最後一個來源後,整個週期(一個訊框)再重複。因為輪次每秒繞回來好幾千次,每段通話感覺起來都是連續的,儘管它其實是以快速的爆量方式在傳輸。

FDM (split by frequency)        TDM (split by time)
  freq                            time runs left to right
  high [==== user C ====]         | A | B | C | A | B | C |...
   |   [==== user B ====]         [___ one frame ___] repeats
  low  [==== user A ====]         each user owns the WHOLE band
       all flow at the same time  but only inside its own slot
FDM 給每位使用者一條頻率車道、全程使用;TDM 給每位使用者全部頻率,但只在它重複出現的時槽裡。

這裡有個必須誠實說的陷阱。在經典的同步 TDM 裡,某個來源的時槽即使沒東西要送也被保留著,所以一段閒置的通話會浪費它的輪次,連結就跑在容量之下。統計式 TDM 修正了這點:把每個空時槽交給此刻真正有資料的人,擠出更多有用的傳輸量;但它接著需要在每段爆量資料上貼個標籤,說明它屬於誰——這就是封包交換的種子。所以「整齊的保留時槽」這幅畫面其實是個簡化,真正講求高效率的連結會刻意打破它。

WDM:一根光纖裡的許多顏色

光纖上,同樣的 FDM 概念以一個漂亮的轉折與新名字再度登場:分波多工。不同波長的光,其實就是不同頻率的光,我們的眼睛把它讀成不同的顏色。WDM 在同一根玻璃光纖裡同時送下許多彼此獨立的資料流,每一流各騎一種顏色的雷射光。這些顏色彼此穿過而不互相干擾,而光纖另一端一個像稜鏡的裝置再把它們分開,每個接收端拿一種顏色。

全球網際網路骨幹靠這個達到驚人的容量。單一光纖可承載數十甚至數百種顏色(密集 WDM),而每種顏色本身又用上一篇的QAM等技巧跑一個高速調變訊號。數百種顏色乘以每色數十 Gbps,一條髮絲般細的玻璃就承載每秒許多 Tbps。WDM 其實就是用光做的 FDM:一樣是頻率車道的原理,只是搬到可用頻寬極其龐大的光學頻段。

讓一個訊號走過一條多工連結

讓我們跟著一通電話走過一條 TDM 連結、從頭到尾,好讓機制變得具體。把輸入合在一起的裝置叫多工器(mux);把它們分開的裝置叫解多工器(demux)。兩者必須在計時上完全一致,因為在 TDM 裡,唯一告訴解多工器「某段爆量資料屬於誰」的線索,就是它精確的抵達時刻。

  1. 幾位通話者同時餵入多工器;多工器在重複的訊框裡給每人指定一個固定的時槽編號(通話者 3 永遠落在時槽 3)。
  2. 每一個訊框,多工器抓取通話者 3 一小塊語音位元、放進時槽 3,再移到時槽 4,把組好的訊框送上共用媒介。
  3. 這些位元以一條合併的高速串流跨越媒介;媒介既不知道、也不在乎裡面交錯著好幾段通話。
  4. 在另一端,解多工器用一個同步標記鎖定訊框的起點,數過各個時槽,把落在時槽 3 的內容複製到通話者 3 的輸出線上。
  5. 一個時槽一個時槽地重組起來,通話者 3 聽到的是一段順暢的對話,從不會察覺自己的聲音其實是以數千段微小的爆量資料、與陌生人輪流傳送的。

現在你能看出為什麼這些方案讓人想起前幾個階段「明信片與信封」的比喻,但又低了一層。多工不加任何位址;它給每段通話一個被保留的頻率、顏色或時槽,而接收端純粹靠「訊號出現在哪裡或何時」來解多工。這正是上層所立足的整個地基:等到一個訊框、一個封包或一段串流抵達它們時,「把一塊銅、玻璃或空氣分給眾多說話者共用」這件麻煩事,早已在這下面被解決了。