Claude를 User Space IP Stack으로 써서 Ping에 응답시키면 얼마나 빠를까?
How Fast Does Claude, Acting as a User Space IP Stack, Respond to Pings?
TL;DR Highlight
Claude Code에게 IP 패킷을 직접 파싱하고 ICMP echo reply를 구성하도록 시켜서 실제로 ping에 응답하게 만든 실험으로, 'Markdown이 곧 코드이고 LLM이 프로세서'라는 아이디어를 네트워크 스택 수준까지 밀어붙인 재미있는 사례다.
Who Should Read
LLM의 범용 코드 실행 가능성에 흥미를 느끼는 개발자, 또는 네트워크 프로토콜과 LLM 에이전트를 함께 다루는 시스템 엔지니어.
Core Mechanics
- 저자인 Adam Dunkels는 Claude Code에게 ping-respond.md라는 Markdown 파일을 작성하게 했고, 이 파일이 일종의 '프로그램'으로서 Claude가 실행하는 방식으로 동작한다.
- Claude는 TUN 디바이스(운영체제가 제공하는 가상 네트워크 인터페이스)에서 raw IP 패킷을 16진수 문자열로 읽어, IP 헤더와 ICMP 헤더를 바이트 단위로 직접 파싱한다. 라이브러리나 별도 스크립트 없이 Claude의 추론 능력만으로 처리한다.
- IPv4 헤더의 version, IHL, TTL, checksum, 출발지/목적지 IP 등을 필드별로 파싱하고, ICMP 타입이 0x08(echo request)인지 확인한 뒤 0x00(echo reply)으로 바꿔 응답 패킷을 만든다.
- IP 헤더 checksum과 ICMP checksum을 1의 보수(one's complement) 합산 알고리즘으로 직접 계산해 패킷을 조립한다. Claude가 hex 연산을 단계별로 수행하는 것이 핵심이다.
- 완성된 reply 패킷을 다시 TUN 디바이스에 write해서 실제 ping reply로 전달하는 데 성공했다. 즉 일반 ping 명령어로 Claude에 ping을 날리면 응답이 돌아온다.
- 응답 속도는 당연히 일반 IP 스택보다 훨씬 느리고 토큰 낭비가 심하지만, 저자가 탐구하려는 건 속도가 아니라 'LLM이 low-level 네트워크 프로토콜 명세를 이해하고 실행할 수 있는가'라는 가능성이다.
- 저자는 이 실험을 통해 Markdown 문서 자체가 LLM이 실행하는 코드가 될 수 있다는 아이디어를 네트워크 스택 수준의 저수준 영역까지 확장할 수 있다는 점을 보여줬다.
Evidence
- 저자 Adam Dunkels는 실제로 lwIP와 uIP라는 경량 IP 스택과 C64용 OS Contiki를 만든 임베디드 네트워킹 전문가라는 배경 정보가 댓글로 공유됐다. 그래서 이 실험이 단순한 장난이 아니라 IP 스택을 깊이 이해하는 사람의 시도라는 반응이 많았다.
- 한 보안 엔지니어가 LLM을 IDS(침입 탐지 시스템)로 쓰려 했다는 사례가 댓글에 언급됐는데, 동료 개발자가 'BPF(커널 수준의 고성능 패킷 필터링 기술)를 쓰라고 말렸다'는 경험을 공유하며 LLM으로 네트워크 스택을 대체하려는 시도의 실용성에 의문을 제기했다.
- 'Anthropic이 부하 분산을 위해 모델을 조정할 수 있는데 1000번 ping을 날리면 몇 번이나 정확하게 응답할까?'라는 안정성 의문이 제기됐다. 실험적 성공이 재현 가능한지 모른다는 점이 지적됐다.
- '작은 로컬 모델을 쓰면 훨씬 빨랐을 것'이라는 댓글과, '이걸 JIT 컴파일처럼 발전시켜서 ping이 많아지면 Claude가 알아서 프로그램을 작성해 처리하도록 하면 어떨까'라는 창의적 아이디어도 나왔다.
- 댓글에서 RFC 1149(비둘기를 이용한 IP 전송 프로토콜 실험)가 링크로 공유됐고, 누군가는 'IP over Slop Generators RFC를 기대한다'는 유머로 이 실험의 황당함을 표현했다.
How to Apply
- LLM이 low-level 프로토콜 명세를 얼마나 정확히 따를 수 있는지 평가하고 싶다면, ping-respond.md처럼 Markdown으로 작성된 단계별 프로토콜 명세를 Claude Code에게 주고 실제 패킷 처리를 시켜보면 명세 해석 능력을 직접 측정할 수 있다.
- 네트워크 패킷 분석 도구(Wireshark 등)의 출력 결과를 LLM에게 넘겨서 TCP throughput 분석이나 이상 패킷 설명을 요청하는 데 응용할 수 있다. 댓글에서도 이 방향의 활용 가능성이 언급됐다.
- Markdown 파일로 복잡한 알고리즘 명세(예: 체크섬 계산, 헤더 파싱)를 작성하고 Claude Code에게 step-by-step으로 실행하도록 지시하는 패턴을 자신의 프로젝트에서 테스트해볼 수 있다. 단, 토큰 비용과 속도 트레이드오프를 반드시 고려해야 한다.
- 실제 프로덕션에서는 이 방식 대신 Claude가 BPF 프로그램이나 기존 라이브러리를 사용하는 코드를 생성하도록 유도하는 것이 현실적이다. LLM을 '실행기'가 아닌 '코드 생성기'로 쓰는 방향이 속도와 비용 면에서 훨씬 효율적이다.
Code Example
# ping-respond.md 핵심 구조 (요약)
## Step 1: TUN 디바이스에서 패킷 읽기
echo "READ" > /tmp/tun_cmd && timeout 35 cat /tmp/tun_resp
# -> hex 문자열 반환 예: 4500003c1c4640004001...
## Step 2~3: IPv4 + ICMP 헤더 파싱 (Claude가 hex를 직접 파싱)
# offset 0: Version(4) + IHL(5) -> 헤더 길이 = 5*4 = 20 bytes
# offset 9: Protocol = 0x01 (ICMP 확인)
# ICMP offset 0: Type = 0x08 (echo request 확인)
## Step 4: Reply 패킷 조립
# - TTL을 64(0x40)으로 설정
# - src/dst IP 스왑
# - ICMP type을 0x00으로 변경
# - IP checksum과 ICMP checksum을 1의 보수 합산으로 재계산
## Step 5: TUN 디바이스에 쓰기
echo "WRITE 4500003c..." > /tmp/tun_cmd && timeout 5 cat /tmp/tun_resp
# -> "OK" 반환되면 성공Terminology
관련 논문
OpenKnowledge – Obsidian/Notion의 오픈소스 AI-first 대안
Git 기반 동기화와 Claude/Codex/Cursor 연동을 내장한 로컬 우선 마크다운 에디터로, AI 에이전트의 두 번째 뇌(LLM Wiki)로 활용할 수 있는 오픈소스 도구다.
Unfireable Safety Kernel: AI 에이전트를 위한 Execution-Time AI Alignment
AI 에이전트가 자신의 안전장치를 우회할 수 없도록, 에이전트 프로세스 바깥에 수학적으로 증명된 강제 통제 게이트를 배치하는 아키텍처
RubyLLM: 주요 AI 프로바이더를 모두 지원하는 Ruby 프레임워크
OpenAI, Claude, Gemini 등 주요 AI 프로바이더를 단일 인터페이스로 통합한 Ruby 프레임워크로, Rails 통합과 에이전트 기능까지 지원해 Ruby 개발자가 AI 기능을 빠르게 붙일 수 있다.
Qwen-AgentWorld: 범용 에이전트를 위한 Language World Model
Alibaba Qwen 팀이 AI 에이전트가 행동 결과를 미리 시뮬레이션할 수 있는 'Language World Model'을 공개했다. 에이전트 훈련과 실행 경로 검증에 새로운 패러다임을 제시하는 연구다.
SHERLOC: Code Repair Agent를 위한 구조화된 Diagnostic Localization 프레임워크
버그 위치만 알려주는 게 아니라 '왜, 어떻게 고쳐야 하는지'까지 진단 리포트를 생성해서 코드 수정 에이전트의 성능을 높이는 training-free 프레임워크
peerd – 브라우저에서 완전히 실행되는 AI Agent Harness
백엔드 서버 없이 Chrome/Firefox 확장 프로그램으로만 동작하는 AI 에이전트 실행 환경으로, 브라우저 탭을 직접 조작하고 WASM Linux VM까지 구동할 수 있어 프라이버시와 보안을 동시에 챙길 수 있다.