歡迎來到通訊的世界!
你有沒有想過,你的電腦是如何把一張貓咪相片傳送到手機的?或者數據是如何在幾毫秒內跨越全球的?這一切都歸結於通訊 (communication) 的基本原理。在本章中,我們將揭開面紗,看看數據到底是如何從甲點移動到乙點的。無論你是科技達人還是剛入門的新手,這些筆記都將幫助你掌握電腦之間如何「對話」的基本知識。如果有些術語乍聽之下像外星語言,請不用擔心,我們會一步步為你拆解!
1. 通訊方式:數據如何傳輸
在數據傳輸之前,硬件需要決定「如何」發送比特 (bits)。主要有兩種方式:串行傳輸 (Serial) 和 並行傳輸 (Parallel)。
串行傳輸與並行傳輸
串行傳輸是在單條線路上,每次發送一個比特的數據。想像一條單線道公路,車輛(比特)必須排成一條直線,依次前進。
並行傳輸則是透過多條線路,同時發送多個比特。想像一條八線道的公路,八輛車可以同時並排前進。
為什麼串行傳輸通常更好?
你可能會認為並行傳輸能同時發送更多比特,所以速度更快,對吧?但事實上,對於任何超過幾厘米的傳輸距離,串行傳輸才是贏家。原因如下:
1. 串擾 (Crosstalk):在並行傳輸中,線路排列緊密。電信號可能會「洩漏」到相鄰的導線中,造成干擾(這稱為串擾)。
2. 偏斜 (Skew):在並行傳輸中,由於各條導線的長度無法完全相同,比特到達的時間可能會出現細微差異。這種情況會導致數據「亂掉」(這稱為偏斜)。
3. 成本:串行傳輸只需要一條線,在長距離傳輸時成本要低得多!
同步傳輸與異步傳輸
發送方和接收方如何保持同步呢?
同步傳輸 (Synchronous Transmission):數據以穩定、連續的流傳輸。發送方和接收方由一個共享時鐘信號 (shared clock signal) 進行同步。這就像兩個人跟著節拍器,步調完美一致地行進。
異步傳輸 (Asynchronous Transmission):數據在準備好時以「突發方式 (bursts)」傳送。為了確保接收方不會混淆,會使用起始位 (Start bit) 和停止位 (Stop bit)。
起始位與停止位的作用
在異步傳輸中,接收方處於「睡眠」狀態,直到偵測到起始位。這個位元會提醒接收方數據即將到來,並讓它將時鐘與發送方同步。在發送數據(通常為 7 或 8 個比特)後,會發送一個停止位來標記該字符的結束。這給了接收方在下一組數據到達前一個小小的「喘息機會」。
重點複習:
• 串行:一次一個比特,一條線(更適合長距離)。
• 並行:一次多個比特,多條線(會受到偏斜和串擾問題困擾)。
• 異步:使用起始位/停止位來保持傳輸秩序。
2. 通訊基礎:測量流量
要了解連接的「好壞」,我們需要定義一些特定的術語。這些就是數位道路上的「車速表」和「規則」。
關鍵定義
• 波特率 (Baud Rate):每秒信號變化的次數。
• 比特率 (Bit Rate):每秒傳輸的比特數量。
• 頻寬 (Bandwidth):通訊通道的最大容量(以赫茲 Hertz 為單位)。它告訴我們「可以」發送多少數據。
• 延遲 (Latency):動作與結果之間的時間延遲(即「lag」)。
• 協議 (Protocol):一組讓兩台設備能夠溝通的規則。沒有協議,設備就無法理解傳輸數據的格式。
比特率 vs. 波特率(最大的困惑點!)
很多學生以為兩者相同,但其實不然!
比特率可以高於波特率。 如何做到?因為單次「信號變化」可以代表多於一個比特。
比喻:想像一個人揮舞旗幟。如果他只能向上或向下揮動,每次揮動就是 1 個比特。但如果他使用四種不同顏色的旗幟,那麼每一次揮動就可以代表 2 個比特(00, 01, 10, 或 11)。揮動的次數是波特率,而傳遞的信息總量則是比特率!
關係:比特率與頻寬
這裡有一個非常簡單的規則要記住:比特率與頻寬成正比。
如果你增加頻寬(可用頻率的範圍),你就可以增加比特率(發送數據的總量)。把頻寬想像成水管的寬度——水管越寬,每秒能流過的水(比特)就越多。
數學公式:
\( \text{比特率} = \text{波特率} \times \text{單次信號變化所代表的比特數} \)
你知道嗎?
在高端網絡中,我們使用複雜的信號編碼技術將多個比特打包進單一次信號變化中。這就是為什麼我們即使透過舊式的銅線,也能獲得超快的網速!
總結:關鍵要點
如果起初覺得這些很複雜,請不要擔心! 只要記住這些考試的「黃金法則」:
• 串行傳輸優於並行傳輸,因為它避免了偏斜和串擾問題。
• 異步通訊使用起始位/停止位來「喚醒」接收方。
• 波特率是指信號變化;比特率是指實際的數據量。
• 頻寬是潛力;比特率是結果。
• 協議至關重要,因為它是設備用來協定溝通規則的「語言」。
要避免的常見錯誤: 千萬不要說「並行傳輸更好,因為它更快」。在現代電腦科學中,串行傳輸實際上快得多,因為我們可以在不會導致數據亂掉的情況下,將其時鐘頻率調得更高!