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
Related Papers
Migrating a production AI agent to GPT-5.6: 2.2x faster, 27% cheaper
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
What xAI's Grok build CLI sends to xAI: A wire-level analysis
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: Recursive Multi-Agent Orchestration for Deep-and-Wide Web Search
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
Show HN: Reverse-engineering web apps into agent tools
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
Show HN: FableCut – A browser video editor AI agents can drive (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.