從示波器到 Wireshark:一段 UDP 的探索故事
我展示了如何從示波器上的原始電壓波形開始,一路經過物理層同步與 8b/10b 解碼,最終實現 UDP 封包解析的完整過程。
背景
這篇文章記錄了 Oxide Computer Company 的工程師 Matt Keeter 如何從物理層(L1)出發,透過示波器擷取電壓訊號,一路解碼至傳輸層(L4)的 UDP 封包。作者在追蹤伺服器管理網路的硬體臭蟲時,利用主動差分探棒從交換器晶片上直接讀取 QSGMII 介面的 5 GHz 高速訊號,並透過自行編寫的 Rust 程式解析 8b/10b 編碼,最終將原始波形還原成 Wireshark 可讀取的網路封包。
社群觀點
Hacker News 的討論核心主要聚焦於作者提到的採樣率數據。針對文中宣稱在示波器上以 1 TSPS(每秒一兆次採樣)進行擷取,社群成員展開了技術性的辯論與質疑。Retr0id 首先指出,目前的硬體技術似乎難以達到如此驚人的即時採樣率,隨後多位專業網友如 KK7NIL 與 HunterWare 補充了業界現況,指出頂級的 Keysight UXR 系列約可達 256 GS/s,而文中使用的 Tektronix 6 系列在實務上通常限制在 25 至 50 GS/s 之間。
關於 1 TSPS 數據的來源,社群普遍認為這可能是「插補採樣」(Interpolated)或是「等效時間採樣」(Equivalent-time sampling)的結果。nativeit 解釋,等效採樣技術能透過多次觸發重複性訊號來重建極高解析度的波形,使頻寬遠超實際採樣率。然而,Retr0id 隨即反駁,網路封包並非重複性訊號,因此無法直接套用此技術。Aurornis 則提出折衷觀點,認為在硬體除錯時,開發者通常會利用 SDK 工具讓連接埠重複發送相同的測試資料,藉此達成等效採樣的條件。
此外,也有網友如 Junk_Collector 提出更為極端的硬體配置想像,認為若要真正達到兆級採樣,可能需要透過精密的多路複用器與線路補償技術,將多台高階示波器的通道進行偏移與整合,且必須在特定的電力環境下才能運作。整體而言,社群對作者深入底層的除錯精神表示讚賞,但對於文中採樣規格的精確定義與達成手段抱持高度的技術審視。
延伸閱讀
- Tektronix 官方應用筆記:關於即時示波器與等效時間採樣技術的原理說明。