<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>TCP/IP</title>
    <description/>
    <link>https://tproger.ru/tag/tcp-ip</link>
    <atom:link href="https://tproger.ru/tag/tcp-ip/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Wed, 07 Oct 2026 13:09:01 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>TCP/IP</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Энтузиаст поднял веб-сервер… на одноразовом вейпе</title>
      <link>https://tproger.ru/news/entuziast-podnyal-veb-server--na-odnorazovoj-vejpe</link>
      <comments>https://tproger.ru/news/entuziast-podnyal-veb-server--na-odnorazovoj-vejpe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/entuziast-podnyal-veb-server--na-odnorazovoj-vejpe</guid>
      <description><![CDATA[<p>Энтузиаст запустил веб-сервер на одноразовом вейпе: ARM Cortex-M0+ с 3 КБ ОЗУ поднял TCP/IP, HTTP и JSON-ответы без Wi-Fi и Ethernet</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/entuziast-podnyal-veb-server--na-odnorazovoj-vejpe">Энтузиаст поднял веб-сервер… на одноразовом вейпе</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Wi-Fi]]></category>
      <category><![CDATA[ARM]]></category>
      <category><![CDATA[TCP/IP]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 16 Sep 2025 04:52:09 GMT</pubDate>
      <content:encoded><![CDATA[<p>Энтузиаст под ником BogdanTheGeek <a href="https://bogdanthegeek.github.io/blog/projects/vapeserver/">запустил</a> полноценный HTTP-сервер на микроконтроллере из одноразового вейпа. Причем сервер умеет обслуживать страницы, обрабатывать запросы и даже возвращает JSON-ответы.</p><p>Все это — на чипе с 3 КБ оперативной и 24 КБ флеш-памяти, без сетевого интерфейса, Wi-Fi или Ethernet.</p><h2>Откуда там вообще чип?</h2><p>Автор проекта рассказывает, что давно коллекционировал одноразовые вейпы, но со временем устройства начали попадаться с куда более интересной начинкой.</p><p>Вместо обычного черного эпоксидного «блоба» он обнаружил маркированный микроконтроллер PUYA C642F15, позже идентифицированный как PY32F002B с ARM Cortex-M0+ частотой 24 МГц.</p><p>Вейпы, по сути, оказались носителями полностью программируемых микроконтроллеров.</p><h2>Как он вывел это в сеть?</h2><p>Wi-Fi, Ethernet или даже Bluetooth в таких устройствах, разумеется, нет. Но автор воспользовался семихостингом — механизмом отладки, при котором отладчик может отправлять и принимать данные через подключенный JTAG/SWD интерфейс.</p><p>Далее он применил довольно хакерское решение: использовал pyOCD для создания telnet-порта с выходом семихостинга, затем через socat пробросил это в виртуальное TTY-устройство, поверх него поднял SLIP (Serial Line Internet Protocol). Да, тот самый, из эпохи dial-up.</p><p>После этого на Linux можно было поднять IP-интерфейс sl0 и назначить IP-адрес — теперь микроконтроллер был виден как узел локальной сети.</p><h2>А веб-сервер?</h2><p>В качестве TCP/IP-стека был выбран uIP — крайне легкий вариант от Contiki OS, специально рассчитанный на 8- и 16-битные микроконтроллеры.</p><p>Он же включает в себя минимальный HTTP-сервер. После небольшой адаптации под семихостинг и исправления проблем с выравниванием памяти на ARM все заработало.</p><p>Причем не просто «заработало», а заработало удивительно быстро: после оптимизации буферов и избавления от побайтной передачи, RTT упали до 20 мс, а загрузка страницы — до 160 мс.</p><p>Несмотря на сверхограниченные ресурсы (всего 3 КБ RAM, из которых почти половина уже занята сервером), автор сумел:</p><ul><li>организовать буферизацию и кольцевой буфер;</li><li>запустить TCP/IP-стек и веб-сервер;</li><li>реализовать подсчет посещений и возврат JSON-ответов;</li><li>полностью уместить все в оставшиеся ~20КБ флеша.</li></ul><p>Он даже добавил простую статистику: уникальный ID микроконтроллера и количество посещений со времени последнего «краша».</p><h2>Зачем это все?</h2><p>Как отмечает сам автор, цель была не в создании полезного веб-сервера, а в демонстрации возможностей предельно скромного «железа», которое в обычной жизни просто выбрасывается.</p><p>Иными словами — это искусство, хакерская эстетика и демонстрация инженерной изобретательности.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышел Linux 6.16 — Rust все глубже проникает в ядро. Что еще интересного в обновлении</title>
      <link>https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii</link>
      <comments>https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii</guid>
      <description><![CDATA[<p>Вышел Linux 6.16: Rust теперь поддерживает драйверы и GPU, XFS и Ext4 ускорились, а ядро научилось передавать звук даже в спящем режиме</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii">Вышел Linux 6.16 — Rust все глубже проникает в ядро. Что еще интересного в обновлении</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[TCP/IP]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 30 Jul 2025 09:41:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Линус Торвальдс назвал новый релиз «спокойным, маленьким и, честно говоря, не таким уж интересным» — и это, по его мнению, отлично.</p><p>Но в действительности в <b>Linux 6.16</b> есть <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/?h=v6.16">сразу несколько</a> значимых улучшений, особенно для разработчиков и системных админов.</p><h2>Rust теперь умеет работать с драйверами и GPU</h2><p>Rust всё глубже проникает в ядро:</p><ul><li>В 6.16 появились биндинги к <b>драйверному ядру</b> и <b>PCI</b> — можно писать драйверы на Rust.</li><li>Поддержка Rust‑абстракций добавлена в <b>Direct Rendering Manager (DRM)</b> — включая ioctl, управление памятью и инфраструктуру драйверов для <b>AMD</b>, <b>NVIDIA</b> и <b>Intel</b>.</li><li>Улучшена работа с <b>крейтами</b> — станет проще собирать и встраивать модули на Rust.</li></ul><p>Код ядра по-прежнему в основном пишется на C, но Rust уверенно занимает своё место в системной разработке.</p><h2>Большие апдейты файловых систем</h2><ul><li><b>XFS</b> теперь поддерживает <b>атомарную запись многоблочных данных</b> — это важно для баз данных и отказоустойчивых систем.</li><li><b>Ext4</b> получил поддержку <b>больших folio</b>, ускорение коммитов и <b>атомарную запись для bigalloc</b> — это дало до <b>+37% скорости</b> на последовательных I/O-нагрузках.</li></ul><h2>Устройство спит — музыка играет</h2><p>Теперь <b>можно передавать звук через USB даже во сне</b>. Буквально при спящем режиме устройства. Это давно было в Android, теперь и в основном ядре.</p><h2>Прокачали безопасность</h2><ul><li>Добавлена поддержка <b>Intel TXT</b> и <b>TDX</b> — технологий для защищённых вычислений.</li><li>Улучшения в <b>AMD SEV-SNP</b> — безопасная виртуализация и шифрование памяти.</li></ul><h2>Новый уровень оптимизации под железо</h2><ul><li>Поддержка <b>Intel APX</b>: 32 единиц x86‑регистра вместо 16. Больше регистров — больше производительности.</li><li>Новый флаг <b>CONFIG_X86_NATIVE_CPU</b> — можно собирать ядро, оптимизированное под конкретный процессор. Полезно как для энтузиастов, так и для корпоративных девопсов.</li></ul><h2>Для ИИ, VPN и high-speed сетей</h2><p>В новой версии ядра улучшена поддержка <b>видеокарт NVIDIA Blackwell</b> — их уже используют в ИИ‑решениях на Linux. Также нашлось место переработке <b>TCP/IP</b> и <b>DMABUF</b> — меньше нагрузки на CPU, быстрее работа сетевых интерфейсов.</p><p><b>OpenVPN</b> стал быстрее — хоть и не обогнал WireGuard, но сократил отставание.</p>]]></content:encoded>
    </item>
    <item>
      <title>IPv6: что это и зачем</title>
      <link>https://tproger.ru/translations/ipv4-vs-ipv6</link>
      <comments>https://tproger.ru/translations/ipv4-vs-ipv6?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/ipv4-vs-ipv6</guid>
      <description><![CDATA[<p>IPv6 заменяет IPv4 из-за нехватки адресов. Он имеет преимущества в масштабируемости и возможностях. Отличия IPv4 и IPv6 существенны.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/ipv4-vs-ipv6">IPv6: что это и зачем</a>»</p>]]></description>
      <category><![CDATA[Сетевые протоколы]]></category>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[TCP/IP]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 20 Jul 2018 06:55:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>Многие слышали про последнюю версию протокола IP — IPv6, которая должна заменить IPv4. Однако зачем нужна эта замена? Разбираемся в вопросе, попутно рассматривая разницу между обеими версиями и преимущества новой.</p><h2>Зачем менять IPv4 на что-то другое?</h2><p>Потому что адресов IPv4 уже не хватает.</p><p>IP-уровень стека протоколов TCP/IP — наиболее важная часть всей архитектуры Интернета. Тем не менее вскоре после запуска IPv4 стали очевидны его ограничения в плане масштабируемости и возможностей. IPv4 для работы необходимо несколько надстроек вроде ICMP и ARP. К середине 1990-х разработали замену IPv4 — IPv6. Требований к Интернету становилось всё больше, а IPv6 отвечал им лучше, чем предыдущая версия.</p><h2>Каковы самые очевидные отличия IPv4 и IPv6?</h2><ul><li>128 бит в IPv6-адресе представляют собой восемь 16-битных шестнадцатеричных блоков, разделённых двоеточиями. Например, 2dfc:0:0:0:0217:cbff:fe8c:0. Традиционной формой записи IPv4 адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длина маски подсети. Например, 192.168.0.0/16.</li><li>В IPv4 для мультивещания зарезервирована подсеть 224.0.0.0/4. IPv6 для этой цели использует встроенное адресное пространство FF00::/8;</li><li>IPv4 использует широковещательные адреса для передачи широковещательных пакетов, IPv6 — многоадресные группы;</li><li>IPv4 использует 0.0.0.0 в качестве неопределённого адреса, а 127.0.0.1 для создания адреса обратной связи (loopback). В IPv6 используются :: и ::1 соответственно;</li><li>IPv4 использует глобально уникальные публичные адреса для трафика и «частные» адреса, IPv6 — глобально уникальные юникаст-адреса и локальные адреса (FD00::/8).</li></ul><h2>Чем IPv6 лучше?</h2><p>Преимущества IPv6 перед IPv4:</p><ul><li>Более эффективная маршрутизация без фрагментации пакетов;</li><li>Встроенная технология Quality of Service (QoS), которая определяет чувствительные к задержке пакеты;</li><li>Устранение NAT для расширения адресного пространства с 32 до 128 бит;</li><li>Встроенная поддержка IPsec (использование IPsec опционально);</li><li>Автоконфигурация адресов для упрощения администрирования сети;</li><li>Улучшенная структура заголовка с меньшими затратами на обработку.</li></ul><h2>IPv6 более безопасен, чем IPv4?</h2><p>Нет, в теории они одинаково безопасны.</p><p>После запуска IPv6 появилась встроенная возможность шифровать интернет-трафик с помощью распространённого (но не настолько, как SSL) стандарта шифрования IPSec, который не даёт прочитать содержимое трафика при его перехвате. Однако шифрование и расшифровка данных требует оборудования, которое стоит денег. К тому же IPSec можно реализовать и на IPv4, что в теории означает, что IPv4 и IPv6 одинаково безопасны.</p><p>Некоторые эксперты <a href="http://www.fastlaneus.com/blog/2011/08/28/people-say-that-ipv6-is-safer-and-faster-than-ipv4-the-reality-can-be-very-different-why/">утверждают</a>, что пока переход не завершён, пользователи шестой версии находятся в большей опасности, чем пользователи четвёртой. Провайдеры могут использовать IPv6-туннели для предоставления пользователям IPv4 доступа к IPv6-контенту. Злоумышленники могут использовать эти туннели для проведения своих атак.</p><p>Ещё одна потенциальная проблема связана с автоконфигурацией — новой функцией IPv6. Она позволяет устройствам самостоятельно назначать себе IP-адрес на основе MAC-адреса, что может быть использовано сторонними лицами для отслеживания определённых пользователей. Тем не менее на устройствах под управлением популярных операционных систем уже установлены расширения конфиденциальности, поэтому для большинства людей это не будет проблемой.</p><h2>IPv6 быстрее IPv4?</h2><p>Скорость интернета с IPv6 не будет сильно отличаться от скорости с IPv4. С одной стороны, работа IPv6 должна быть быстрее из-за более простого формата. Однако во время перехода некоторые методы вроде IPv6-туннелей будут создавать дополнительную задержку при преобразовании запросов в IPv4 и наоборот.</p><h2>Так почему бы просто не перейти на IPv6?</h2><p>Основная причина — стоимость. Для обновления всех серверов, маршрутизаторов и коммутаторов, которые всё это время зависели только от IPv4, требуется уйма денег и времени.</p><p>Кроме того, чтобы справиться с нехваткой адресов, провайдеры назначают пользователям динамический адрес, который может меняться при подключении к другой сети. После отключения от сети устройства освобождают свой адрес, делая его доступным для других устройств. По сути вы арендуете, но не владеете адресом. Это сильно замедляет переход с IPv4 на IPv6.</p><p>Но это не значит, что IPv6 не распространяется. Напротив, он используется параллельно с IPv4. Как сообщает Google, около 14% его пользователей используют IPv6. А по заявлениям провайдера Comcast, в Соединённых Штатах уже половина пользователей используют IPv6.</p><h2>Резюмируем</h2><p>Нельзя сказать, что IPv6 быстрее и безопаснее, но у него есть ряд преимуществ вроде более эффективной маршрутизации без фрагментации пакетов, встроенной поддержки IPsec и автоконфигурации адресов. А из-за ограниченности адресного пространства IPv4 переход на него неизбежен.</p>]]></content:encoded>
    </item>
  </channel>
</rss>