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
관련 논문
adamsreview: Claude Code용 멀티 에이전트 PR 코드 리뷰 파이프라인
Claude Code에서 최대 7개의 병렬 서브 에이전트가 각각 다른 관점으로 PR을 리뷰하고, 자동 수정까지 해주는 오픈소스 플러그인이다. 기존 /review나 CodeRabbit보다 실제 버그를 더 많이 잡는다고 주장하지만 커뮤니티에서는 복잡도와 실효성에 대한 회의론도 나왔다.
AI Agent를 위한 Git: re_gent
AI 코딩 에이전트(Claude Code 등)가 수행한 모든 툴 호출을 자동으로 추적하고, 어떤 프롬프트가 어느 코드 줄을 작성했는지 blame까지 가능한 버전 관리 도구다.
Agent-Native CLI를 위한 설계 원칙 10가지
AI 에이전트가 CLI 도구를 더 잘 사용할 수 있도록 설계하는 원칙들을 정리한 글로, 에이전트가 CLI를 도구로 활용하는 빈도가 높아지면서 이 설계 방식이 실용적으로 중요해지고 있다.
Agent-harness-kit: MCP 기반 멀티 에이전트 워크플로우 오케스트레이션 프레임워크
여러 AI 에이전트가 서로 역할을 나눠 협업할 수 있도록 조율하는 scaffolding 도구로, Vite처럼 설정 없이 빠르게 멀티 에이전트 파이프라인을 구성할 수 있다.
Tilde.run – AI Agent를 위한 트랜잭션 기반 버전 관리 파일시스템 샌드박스
AI 에이전트가 실제 프로덕션 데이터를 건드려도 롤백할 수 있는 격리된 샌드박스 환경을 제공하는 도구로, GitHub/S3/Google Drive를 하나의 버전 관리 파일시스템으로 묶어준다.
FlexSQL: 유연한 탐색과 실행으로 더 나은 Text-to-SQL Agent 만들기
고정된 파이프라인 대신 추론 중 언제든 DB를 탐색·실행할 수 있는 Text-to-SQL 에이전트로 Spider2.0 벤치마크에서 gpt-o3, DeepSeek-R1 기반 시스템을 더 작은 모델로 능가