Идея звучит абсурдно: что будет, если попросить модель Claude Code выступить в роли сетевого стека пользователя? Исследователи проверили это на практике. Система должна была читать пакеты IP по байту и обрабатывать их так, будто это настоящий сетевой стек. В итоге можно было выполнить команду ping адресата, и модель ответила корректным пакетом подтверждения. Это действительно трата токенов, но весело и интересно проверить границы концепции, где Markdown считается кодом, а большая языковая модель — процессором, исполняющим его.
Авторы попросили Claude создать команду ping-respond.md, которая выступала бы как родной стек IP на уровне пользователя. Модель написала скрипт, использующий устройство /dev/tun0 и Python-помощник для считывания данных. Весь процесс делился на этапы. Сначала нужно было прочитать пакет и сохранить его в виде строки с шестнадцатеричными символами. Затем модель должна была вручную парсить заголовок IPv4: определять версию, длину, TTL и протокол, который должен быть ICMP. Если тип не соответствовал эхо-запросу, всё останавливалось.
Далее следовал разбор заголовка ICMP. Нужно было проверить тип (должен быть 8) и код (0), а также сохранить идентификатор и номер последовательности. Для создания ответа модель должна была сконструировать новый пакет. В заголовке IP нужно было поменять местами исходный и целевой адреса, установить TTL в 64 и пересчитать контрольную сумму. Контрольную сумму считали, складывая 16-битные слова, сворачивая переполнение и беря обратное дополнение до единицы. Это делалось вручную без калькуляторов.
В части ICMP ответа меняли тип на 0 (эхо-ответ) и снова считали контрольную сумму, учитывая изменение первого байта. Наконец, пакет собирали: заголовок IP с новой суммой и сообщение ICMP с исправленным checksum. Модель отправляла результат обратно через команду echo в /tmp/tun_cmd.
Тесты показали работающий результат. При отправке одного пакета на адрес 172.16.0.2 с задержкой в 300 секунд, ответ пришел ровно. В логах отображались исходные и ответные шестнадцатеричные строки, промежуточные суммы контрольных сумм и финальный пакет. Время ответа составило около 45 секунд. Модель использовалась версия Haiku 4.5. Результат подтвердил, что даже такие низкоуровневые задачи можно решить через текстовые промпты, хотя скорость оставляет желать лучшего.