Hacker News Digest

Тег: #network-protocols

Постов: 3

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

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

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

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

Heartbeats in Distributed Systems (arpitbhayani.me)

В распределенных системах одна из фундаментальных задач — определение работоспособности узлов. Механизмы сердцебиений (heartbeats) решают эту проблему, отправляя периодические сигналы для подтверждения активности узлов. В отличие от монолитных приложений, где всё работает в одном процессе, распределенные системы охватывают множество машин, сетей и дата-центров, что усложняет мониторинг. Сердцебиения помогают различать действительно неработающие узлы и те, что временно замедлены из-за перегрузки сети.

Основные компоненты системы сердцебиений: отправитель, который регулярно генерирует сигналы; получатель, отслеживающий время последнего сигнала; интервал отправки (обычно 1-10 секунд); и порог таймаута (обычно в 2-3 раза больше интервала). Кодовые примеры показывают реализацию как отправителя, так и монитора. Интервалы и таймауты требуют баланса между быстрым обнаружением сбоев и устойчивостью к временным задержкам сети.

by sebg • 13 ноября 2025 г. в 13:43 • 131 points

ОригиналHN

#distributed-systems#heartbeats#network-protocols#gossip-protocols#kubernetes#nomad#swim#epidemic-broadcast-trees

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

  • Проблема высокой нагрузки от частых heartbeat-сообщений (2000 msg/sec для 1000 узлов) требует оптимизации или альтернативных подходов.
  • Gossip-протоколы и динамическая настройка интервалов эффективнее статичных heartbeats для масштабируемости и снижения нагрузки.
  • Важность учета сетевых задержек (p99), топологии и поведенческого анализа узлов вместо простого мониторинга статуса.
  • Рекомендации по ресурсам: изучение SWIM, Epidemic broadcast trees, использование Kubernetes probes или инструментов вроде Nomad.
  • Опасность "зомби-нод" (медленных/неправильно работающих) выше, чем полностью мертвых узлов для стабильности системы.

Love C, hate C: Web framework memory problems (alew.is)

Разработчик выложил на Hacker News фреймворк на C, и я, как исследователь безопасности, сразу заметил три классические ошибки: не проверяемый Content-Length, переполнение при копировании тела запроса и переполнение при записи ответа. Пример кода показывает, как непроверенное поле Content-Length используется как размер для malloc и memcpy, что может привести к утечке памяти или чтению за пределы буфера. Подобные проблемы встречаются везде, где C-фреймворки принимают ввод из сети или файловой системы.

by OneLessThing • 10 октября 2025 г. в 03:39 • 132 points

ОригиналHN

#c#web-frameworks#memory-management#security-vulnerabilities#buffer-overflow#network-protocols#hacker-news#artificial-intelligence

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

  • Обсуждение крутится вокруг того, что «хороший код на C» должен минимизировать выделение памяти и избегать atoi() и strdup() без проверки ошибок, что приводит к уязвимостям.
  • Участники спорят о том, насколько критичны эти проблемы в контексте обучения и использования ИИ-помощи, и о том, что новички в C могут не осознавать эти ловушки.
  • Обсуждается влияние ИИ на качество кода и безопасность, а также то, что влияние ИИ на обучение языкам может маскировать проблемы, которые иначе были бы очевидны.
  • Участники также обсуждают, что влияние ИИ на обучение языкам и на то, что это может привести к проблемам, если человек не понимает, что делает ИИ, и что это может быть опасно.
  • В обсуждении также поднимается вопрос о том, что ИИ может быть использован для аудита кода и нахождения проблем, и о том, что это может быть использовано для улучшения качества кода.