LAN 沒有你想的那麼簡單:工程師常信的區網迷思清單
dreamstation.systems (via HN) · 2026-09-06
背景:把假設倒過來寫成謬誤
個人站台 dreamstation.systems 的站主 Robin 發布了一份條列式清單,仿效「Falsehoods programmers believe about X」的寫法傳統,把工程師對區域網路(LAN)常見的錯誤假設,逐條寫成「謬誤」句型。文章開頭特別聲明:每一條謬誤「有時候可能成立,有時候不成立」——也就是說,清單的目的不是斷言恆假,而是提醒這些假設不能盡信。整份清單依主題分成 NAT、通訊協定、MAC 位址、連線與效能、DHCP、IP 位址六大類。
核心內容:六大類常見謬誤
其中 NAT 類的謬誤最密集,包括「我只在一層 NAT 之後」「有 RFC 1918 位址就代表在 NAT 之後」「NAT 只翻譯表頭裡的位址與埠」,以及「IPv6 主機不會被 NAT」。這些句子刻意成對出現(同時列出「我的 LAN 有 NAT」與「沒有 NAT」),提醒兩種假設都可能出錯。
- 通訊協定:認定 LAN 上只跑 IPv4、甚至只跑「標準」協定——現實中 IPX/SPX、AppleTalk、NetBEUI、SNA 都可能同時存在,而且你未必知道網路上實際在跑什麼。
- MAC 位址:MAC 位址「應該」全球唯一,但實際上不是;不同的 MAC 不代表不同裝置,可能只是同一裝置的不同網路介面,而且 MAC 位址其實可以被更改。
- 連線與效能:同一個子網不保證兩台主機能直接互通,Wi-Fi 與 Ethernet 用戶端也未必是對等的區網成員,LAN 上每台裝置的 MTU 也未必相同。
- DHCP:網路上不一定只有一台 DHCP 伺服器,拿到的 IP 位址也不保證在使用期間不變,
169.254.0.0/16位址不必然代表 DHCP 失敗。 - IP 位址:每台主機不一定只有一個 IP,LAN 也未必真的使用 RFC 1918 私有位址,甚至未必使用 IP 位址。
延伸:排查連線問題時的對照表
整份清單沒有附上案例或修正建議,單純逐條列出假設本身,讀起來更像是排查詭異連線問題時可拿來對照的檢查清單——NAT 疊多層、MAC 位址被虛擬化平台重複使用、DHCP 伺服器不只一台,都是教材裡很少講清楚的細節。
從 7% 降到 0.7%:一個字元修好的效能問題
randomascii.wordpress.com (via Lobsters) · 2026-09-05
背景:一個函式吃掉 7% CPU 卻查不出原因
前 Google/Valve/Microsoft 工程師 Bruce Dawson 在個人部落格 Random ASCII 上,回顧了自己經手過、最終都只靠把某個數值改成 0 就解決的兩起效能除錯案例。第一起發生在原始 Xbox(CPU 為 733 MHz)的一款遊戲上:效能分析器顯示一個矩陣轉換函式吃掉了 7% 的 CPU 時間,是整張效能圖表上最大的尖峰,而且這個函式早已被前人改寫成組合語言。Dawson 又找出幾處可能的優化點,但直接在遊戲裡量測改善幅度時雜訊太大,很難判斷是否真的有效。
核心內容:測試工具比遊戲本身快了 10 倍
為了精準量測,他寫了一個測試工具分別驅動新舊版本的程式碼,量出新版確實比舊版快了約 10%。但真正關鍵的發現是:同一段程式碼放進測試工具裡執行,速度比放在遊戲裡快了約十倍(900%)——這個落差才是問題真正的線索。原始 Xbox 允許開發者把記憶體配置成「不可快取(non-cacheable)」屬性,專為 GPU 寫入資料設計,能避免快取污染,但代價是絕對不能被 CPU 讀取。
Dawson 檢查後發現,這個函式用到的資料結構被誤配置在不可快取記憶體裡。他找到配置記憶體時那個標錯的旗標值,把它改成 0,CPU 佔用率立刻從 7% 掉到約 0.7%。他那週的狀態報告寫著:「調查花了 39.999 小時、寫程式花了 0.001 小時——巨大的成功。」
延伸:磁碟快取被 0xFFFFFFFF 撐爆
Dawson 另外提到一起自己發現、但由他人修好的案例:筆電磁碟快取莫名頻繁被清空,追查後發現某款外接備份硬碟的驅動程式把 SectorSize 設成 0xFFFFFFFF(代表「磁區大小未知」),Windows 核心把這個值解讀成 4 GiB,配置出一塊巨大暫時記憶體,把磁碟快取整個擠掉。修法同樣是把這個常數改成 0。
用 PS5 落選晶片組一台遊戲主機:AMD BC-250 改機全紀錄
devquasar.com (via HN) · 2026-09-05
背景:PS5 淘汰晶片的第二人生
DevQuasar 站主 Csaba Kecskemeti 在 2025 年 11 月 27 日發表文章,記錄他把 AMD BC-250 改造成遊戲主機的過程。BC-250 的核心是沒通過 PlayStation 5 規格、被「刷掉」的 APU——這些晶片沒被丟棄,而是由 ASRock 設計成挖礦用單板電腦,原本以 12 張一組做成 4U 機架式挖礦伺服器銷售。隨著 GPU 挖礦退燒,大量二手 BC-250 流入市場,2025 年 11 月的 eBay 行情約 $70–$100 美元,足以拿來玩 Cyberpunk 2077。
| 項目 | 規格 |
|---|---|
| CPU | 6 核 Zen 2(12 執行緒) |
| GPU | RDNA 2,24 組 CU(完整版 PS5 為 36 CU) |
| 記憶體 | 16 GB GDDR6,CPU/GPU 共用,無獨立 DDR 插槽 |
| I/O | DisplayPort、USB 2.0/3.0、Ethernet、M.2 NVMe、8-pin PCIe 電源 |
核心內容:開箱即用是不可能的
要讓這張挖礦板變成能打電動的主機,得同時動硬體與韌體,不是插上電源就能玩。
- 拆解散熱鰭片:原廠是封閉式伺服器鰭片,想用一到兩顆 120mm 風扇提供足夠氣流,得破壞性地把鰭片打開,並更換散熱膏與導熱墊。
- 刷 BIOS 解鎖 VRAM:16 GB 統一記憶體預設在 CPU/GPU 間分配(例如 8GB/8GB),得刷入解鎖版
3.00BIOS,在 Chipset 選單把 UMA 模式設為指定值,強制分配512 MB當作 VRAM,遊戲效能才會可玩。 - 改用 Linux:Windows 缺乏對應顯示驅動,作者改用 Manjaro Linux,Steam for Linux 版本可以直接運作。
- 3D 列印機殼:自行設計含電源供應器的機殼,做出隨身版與迷你 PC 版兩種造型。
延伸:整理成公開的改機指南
作者把整套流程——BIOS 刷寫工具、VRAM 解鎖設定、散熱鰭片開孔法、機殼 3D 模型——整理進 GitHub 專案 amd_bc-250_how-to,BIOS 刷寫沿用了另一社群專案 kenavru/BC-250 的 EFI Flasher 工具。實測顯示這塊板子可跑 Cyberpunk 2077、GTA V、CS2、Hitman 3,達到可玩的畫面更新率,對應這個價位已相當出乎意料。
原始來源:Falsehoods Programmers Believe About LANs、Knowing Where to Type 'Zero'、The "$60 Gaming PC" – AMD BC-250