LLM에 핑 보내기: Claude를 사용자 공간 IP 스택으로

네트워킹 세계에서 "ping"은 가장 기본적인 진단 도구로, 연결성을 확인하기 위해 응답을 요청하는 간단한 요청입니다. 보통 이 과정은 마이크로초 단위로 발생하며, 고도로 최적화된 커널 수준 코드에 의해 처리됩니다. 그런데 전체 네트워크 스택을 대형 언어 모델(LLM)로 교체하면 어떻게 될까요?

Adam Dunkels는 lwIP와 uIP 스택을 만든 사람으로, 최근 Claude가 사용자 공간 IP 스택으로 동작할 수 있는지 실험했습니다. 목표는 효율성이 아니라 탐구였습니다: LLM이 원시 IP 패킷을 바이트 단위로 읽고, 프로토콜 로직을 추론하며, 내부 추론 능력만으로 유효한 바이너리 응답을 구성할 수 있을까요?

실험: 코드로서의 Markdown

실험의 핵심 전제는 Markdown이 일종의 명령 집합(코드)으로 사용될 수 있고, LLM이 그 코드를 실행하는 프로세서 역할을 한다는 아이디어입니다. 이를 위해 Dunkels는 ping-respond.md라는 명령을 만들었습니다. 이 문서는 Claude에게 단일 ICMP 에코 요청을 처리하기 위한 엄격한 운영 매뉴얼을 제공합니다.

운영 워크플로우

Claude는 네트워크 트래픽을 처리하기 위해 다음의 6단계 프로세스를 따르도록 지시받았습니다:

  1. Read: TUN 장치에서 원시 패킷 하나를 읽는 bash 명령을 실행합니다 (Python 헬퍼를 통해).
  2. Parse IPv4 Header: 헥스 문자열을 수동으로 디코딩하여 버전, IHL, TTL, 프로토콜을 식별합니다(프로토콜이 ICMP인지 확인).
  3. Parse ICMP Header: 에코 요청 타입을 식별하고 식별자와 시퀀스 번호를 추출합니다.
  4. Construct Reply: 소스와 목적지 IP를 수동으로 교환하고, TTL을 업데이트하며—가장 중요한—16비트 1의 보수 연산을 사용해 IP와 ICMP 체크섬을 계산합니다.
  5. Write: 결과 헥스 문자열을 TUN 장치에 다시 보냅니다.
  6. Report: 트랜잭션을 요약합니다.

특히 Claude는 Python, bc 또는 외부 계산기 도구를 사용하는 것이 금지되었습니다. 모든 산술 연산은 모델의 추론 과정 내에서 수행되어야 하며, 디버깅을 위해 작업 과정이 표시되어야 했습니다.

결과: 매우 느린 Pong

Claude 3.5 Haiku를 사용한 실험은 성공했습니다. 모델은 들어오는 헥스 문자열을 올바르게 파싱하고, 체크섬에 필요한 바이너리 산술을 수행했으며, 적절히 포맷된 ICMP 에코 응답을 반환했습니다.

하지만 성능은 예상대로 끔찍했습니다. 단일 ping에 대한 왕복 시간(RTT)은 약 42,593 milliseconds—42초가 넘었습니다. 네트워킹 관점에서 이는 영원에 가깝지만, Dunkels는 이것이 전설적인 RFC 1149(비둘기를 이용해 IP 패킷을 전송하는 방식)보다 여전히 빠르다고 언급했습니다.

커뮤니티 반응 및 기술 토론

이 실험은 Hacker News 커뮤니티에서 다양한 반응을 일으켰으며, 매혹에서부터 자원 낭비에 대한 좌절까지 다양한 의견이 제시되었습니다.

"Stochastic Parrot" vs. Logic Engine

일부 관찰자는 이번 실험이 LLM이 단순히 "멍청한 자동 완성기"라는 개념에 도전한다고 지적했습니다. 다단계 바이너리 산술을 수행하고 엄격한 프로토콜 사양을 준수하는 능력은 단순 패턴 매칭을 넘어선 논리적 추론 수준을 시사합니다.

효율성 및 실용성

반대로, 많은 댓글러들은 접근 방식의 명백한 비효율성을 지적했습니다. 한 사용자는 동료가 LLM을 침입 탐지 시스템(IDS)으로 사용하려 했다고 언급하며, 대신 BPF(Berkeley Packet Filter)를 사용하도록 권고했습니다:

"I begged him to use BPF and stop wasting sprint cycles trying to reinvent a shittier slower wheel."

다른 제안으로는 "에이전트 스킬"을 활용해 LLM이 패킷을 처리하는 특수 스크립트를 작성·실행하도록 하는 것이 있었습니다. 이는 추론 토큰 내에서 로직을 수행하는 대신, LLM을 processor에서 compiler 역할로 이동시키는 접근법입니다.

"Fun"의 비용

실험은 토큰 사용 윤리 문제도 다루었습니다. 일부 사용자는 "터무니없는" 실험에 고성능 클라우드 모델을 사용하는 것에 불만을 표시했으며, 전 세계 속도 제한에 영향을 주지 않도록 로컬 모델을 사용하는 것이 더 적절했을 것이라고 제안했습니다.

결론

LLM을 네트워크 스택으로 사용하는 것은 실제 프로덕션에서는 실용적이지 않지만, 현대 모델의 유연성을 강력히 보여주는 시연이었습니다. 충분히 상세한 사양이 주어지면 LLM이 저수준 시스템 프로세스를 시뮬레이션할 수 있음을 증명합니다. 이는 LLM을 챗봇에서 가상 머신으로 변모시키지만, 그 지연 시간은 비둘기가 광섬유보다 빠르게 보일 정도입니다.

Sources