Hacker News Digest

Тег: #tcp

Постов: 4

TCP, the workhorse of the internet (cefboud.com) 🔥 Горячее

TCP — невидимый герой интернета, обеспечивающий надежную передачу данных вопреки его ненадежности. В то время как IP-адрес доставляет пакеты на нужный компьютер, TCP через порты направляет их правильным приложениям, как письма в квартиры одного здания. Протокол скрывает от разработчиков хаос сети: потерю, повреждение, дублирование и переупорядочивание пакетов, позволяя приложениям просто работать.

Ключевые механизмы TCP — контроль потока и перегрузки — предотвращают коллапс сети. Контроль потока через буфер приема и "окно" определяет, сколько данных может обработать получатель. Контроль перегрузки избегает повторной отправки потерянных пакетов, усугубляющих congestion collapse. В 1986 году интернет замедлился до 40 бит/с из-за этой проблемы. TCP с механизмами "back off" спасает сеть от саморазрушения, позволяя нам наслаждаться стабильным соединением.

by signa11 • 15 ноября 2025 г. в 06:37 • 327 points

ОригиналHN

#congestion-control#flow-control#http-3#ip#network-architecture#network-protocols#quic#sctp#tcp#udp

Комментарии (149)

  • TCP считается оптимальным решением для надежного потока данных над ненадежным дейтаграммным уровнем, но имеет ограничения: маленькое окно для современных скоростей и проблемы с безопасностью.
  • Альтернативы (SCTP, QUIC, RUDP) обсуждаются как решения для мультиплексирования потоков и улучшения производительности, но сталкиваются с проблемами поддержки и сложности.
  • Технически возможно создание собственных протоколов поверх IP, но маршрутизаторы и NAT часто требуют TCP/UDP или блокируют другие протоколы.
  • Простота TCP объясняется ограничениями старых компьютеров, а управление перегрузкой тогда было неочевидным решением.
  • HTTP/3 (QUIC) набирает популярность как замена TCP для веба, но его сложность вызывает опасения.

Entire Linux Network stack diagram (2024) (zenodo.org) 🔥 Горячее

Опубликована подробная диаграмма стека сети Linux, созданная Hrvoje Horvat из Ericsson Nikola Tesla. Диаграмма охватывает все уровни сетевого стека: виртуализацию и контейнеры, сокеты, TCP/UDP и нижние уровни с GRO, RPS, RFS и GSO, планировщик сети, NetFilter, управление трафиком, драйверы устройств и функции, ускоренные сетевой картой. Каждый раздел содержит советы по оптимизации и статистику.

Диаграмма доступна в формате PDF (5.4 МБ) и является частью книги "Operativni sustavi i računalne mreže - Linux u primjeni". На момент публикации материал получил 515 просмотров и 380 загрузок. Работа распространяется под лицензией Creative Commons Attribution 4.0 International, что позволяет свободно использовать и распространять диаграмму при обязательном указании автора.

by hhutw • 20 октября 2025 г. в 03:33 • 530 points

ОригиналHN

#containers#iptables#linux#netfilter#networking#tcp#udp#virtualization

Комментарии (45)

  • Диаграмма показывает, как пакет проходит через iptables и Netfilter, что вызвало обсуждение о сложности и важности визуализации в Linux.
  • Участники обсуждали, что такие диаграммы редко охватывают контейнеры и виртуализацию, и что отсутствие обновлений может сделать их устаревшими.
  • Были вопросы о доступности этих диаграм на разных языках и о том, где можно найти больше информации о книге, из которой они были взяты.
  • Также обсуждались вопросы о том, как эти диаграммы могут быть использованы в образовательных целях и о том, что делает их такими полезными для понимания сложных систем.
  • В конце, обсуждалось, что такие диаграммы могут быть трудны для чтения в формате PDF и что было бы полезно иметь SVG версию.

SSH3: Faster and rich secure shell using HTTP/3 (github.com) 🔥 Горячее 💬 Длинная дискуссия

SSH3 — это новая реализация SSH, построенная поверх HTTP/3 и QUIC вместо традиционного TCP. Она обещает значительно более низкую задержку установки соединения, многопоточность и встроенную поддержку мультиплексирования. Это позволяет ускорить интерактивные сессии, особенно в условиях нестабильных сетей.

Проект также включает улучшенные возможности, такие как передача файлов через HTTP и использование современных криптографических алгоритмов. Уже есть черновик IETF и техническая статья на arXiv, демонстрирующая производительность и совместимость. SSH3 может стать практичной альтернативой для DevOps и удалённого управления.

by tempaccount420 • 27 сентября 2025 г. в 14:27 • 492 points

ОригиналHN

#bash#cryptography#devops#github#http3#ietf#quic#ssh#tcp

Комментарии (248)

  • Скептицизм по поводу заявлений о скорости: некоторые участники сомневаются в значительном преимуществе SSH3, отмечая, что основная задержка часто связана не с установкой соединения, а с настройкой сессии (PAM и т.д.).
  • Критика имени "SSH3" и интеграции в HTTP: многие считают название неудачным и выражают сожаление по поводу поглощения прикладных протоколов HTTP, что увеличивает сложность и потенциальные риски безопасности.
  • Обеспокоенность безопасностью и аудируемостью: новая, не испытанная в боях реализация вызывает опасения; участники подчеркивают необходимость тщательного аудита перед использованием в production.
  • Вопросы к практической полезности и статусу проекта: обсуждается отсутствие commits за последний год, целесообразность поддержки OAuth для входа на сервер и необходимость таких функций, как миграция соединений.
  • Технические аспекты и потенциальные преимущества: отмечается возможность решения проблемы head-of-line blocking за счёт мультиплексирования в QUIC/HTTP3, а также преимущества скрытия сервера за HTTP-прокси.

Traps to Developers (qouteall.fun)

  • CSS

    • min-width: auto (по умолчанию) имеет приоритет над flex-shrink, overflow: hidden, width: 0; задайте min-width: 0.
    • Горизонталь и вертикаль различаются: width: auto растягивается, height: auto по содержимому; margin: 0 auto центрирует по горизонтали, но не по вертикали (в flex-direction: column работает).
    • BFC (display: flow-root) предотвращает схлопывание margin и «обнуление» высоты родителя с float-потомками.
    • Новый stacking context создают transform, filter, opacity, position: fixed/sticky, z-index + absolute/relative и др.; z-index действует только внутри контекста.
    • На мобильных 100vh включает скрытые панели; используйте 100dvh.
    • position: absolute ориентируется на ближайший «positioned» ancestor, а не на родителя.
    • float не работает внутри flex/grid-родителя.
    • Процентные width/height не работают, если размер родителя не задан.
    • display: inline игнорирует width, height, вертикальные margin.
    • Пробелы между inline-block элементами рендерятся; в flex/grid — нет.
    • box-sizing: content-box (по умолчанию) не включает padding/border; включите border-box.
    • Указывайте width/height у <img> для предотвращения CLS.
    • Загрузка файлов не показывается в DevTools; используйте chrome://net-export/.
    • Внутри <script> строка </script> ломает парсинг.
  • Unicode

    • Отличайте code point и grapheme cluster (последнее — то, что видит пользователь).

by qouteall • 16 августа 2025 г. в 10:34 • 232 points

ОригиналHN

#css#flexbox#go#html#java#javascript#kotlin#regex#tcp#unicode

Комментарии (100)

  • Маршрутизаторы могут тихо обрывать простаивающие TCP-соединения; настройте TCP-keepalive или HTTP-заголовки.
  • Возвращать null из Optional<T> — антипаттерн; Kotlin и аннотации уже решают это.
  • UTF-16 в Java/C#/JS — деталь реализации; в Go строки — просто байты.
  • min-width: auto работает не везде; CSS-свойства нельзя читать изолированно.
  • Регексы, YAML, LF/CRLF, rm -rf $DIR/ — каждый язык/платформа имеет свои подводные камни.