Pinging an LLM: Claude as a User Space IP Stack

Pinging an LLM: Claude as a User Space IP Stack

在網路領域中,「ping」是最基本的連通性測試。它是一個精簡且高效的過程,由核心的網路堆疊在微秒內處理。但如果你將那高度優化的 C 程式碼替換成大型語言模型 (LLM) 會發生什麼事呢?

輕量級 IP 堆疊 lwIP 和 uIP 的創作者 Adam Dunkels 最近進行了一項思想實驗,看看 Claude 是否可以作為使用者空間的 IP 堆疊運作。目標既簡單又荒謬:指示一個 LLM 以位元組為單位讀取原始 IP 封包,解析它們,並手動建構一個有效的 ICMP echo reply——這一切都不使用外部函式庫或腳本。

The Architecture of an LLM IP Stack

為了實現這一點,Dunkels 開發了一個名為 ping-respond.md 的指令。這個 Markdown 檔案作為一組指令(本質上是一個「程式」)供 Claude 執行。該過程分為幾個離散的步驟:

  1. Packet Acquisition: Claude 執行一個 bash 指令來從 TUN device 讀取原始十六進位字串(透過一個 Python helper)。
  2. IPv4 Parsing: Claude 手動解析十六進位字串以識別版本、IHL (Internet Header Length)、TTL 和協定。它必須驗證協定是否為 0x01 (ICMP)。
  3. ICMP Parsing: 模型識別 ICMP 類型(對於 echo request 而言必須是 0x08)並提取識別碼和序列號。
  4. Manual Packet Construction: 這是最密集的部分。Claude 必須交換來源與目的地的 IP 地址,並使用 16 位元一補數算術來手動計算 IP 和 ICMP 校驗和 (checksums)。
  5. Transmission: 結果產生的十六進位字串會被寫回 TUN device。

至關重要的是,指令禁止使用 Python 或任何計算機工具。Claude 被要求「展示其運算過程」以進行校驗和計算,將 LLM 的推理過程視為 CPU 的 ALU (Arithmetic Logic Unit)。

The Results: A Very Slow Pong

使用 Claude 3.5 Haiku 模型,實驗成功了。Claude 正確解析了傳入的封包,執行了十六進位算術,並回傳了有效的回覆。

然而,效能表現如預期般糟糕。往返時間 (RTT) 測得約為 42.5 秒

雖然這在網路術語中是永恆的長度,但 Dunkels 指出,這仍然比一些更極端的歷史網路實驗還要快,例如 RFC 1149(透過聲學耦合器壓縮 IP 封包)。

Community Reaction and Technical Debate

該實驗在 Hacker News 上引起了各種反應,從對技術好奇心的欽佩到對資源浪費的沮喪。

The "LLM as Processor" Paradigm

一些觀察者將其視為「LLM 作為處理器」概念的概念驗證。透過僅憑推理來成功實作一個低階層協定堆疊,該模型展示了嚴格遵守技術規範和複雜手動算術的能力。

Efficiency vs. Curiosity

並非所有人都感到印象深刻。一些使用者說,將雲端託管的 LLM 用於此類任務是浪費 token 和運算資源。一位評論者指出:

"If you wonder why your Copilot subscription has new limits... it's because of PhDs like Adam... he preferred to waste the service we all use just to produce a weak blog post."

其他人建議,使用小型本地模型或透過建立一個利用實際 IP 函式庫而非手動推理的「agent skill」會更有效率地。

Practical Applications?

雖然 ping 實驗是一種新奇事物,但一些使用者推測了更具實用性(儘管仍然很慢)的應用。一個建議是使用 LLM 來分析 TCP 吞吐量,透過將 Wireshark dumps 重新定向到模型進行高階層分析。相反,安全工程師警告不要將 LLM 用於即時任務,例如入侵偵測系統 (IDS),並建議 BPF (Berkeley Packet Filter) 仍然是處理封包的唯一明智選擇。

Conclusion

將 LLM 轉變為網路堆疊是一項荒謬的練習,但它突顯了我們如何看待「程式碼」的一個迷人轉變。在這個實驗中,Markdown 指令是原始碼,而 LLM 的推理視窗是處理器。雖然它永遠不會取代核心層級的 IP 堆疊,但它展示了現代模型在處理低階層二進位數據和協定邏輯時令人驚訝的靈活性。

Sources