home.social

#сетевое_программирование — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #сетевое_программирование, aggregated by home.social.

  1. Своя почта против Gmail

    В первой статье я рассказывал историю «деда из деревни», который вместе с внуком поднял свой почтовый сервер вместо Gmail — на обычном VPS, с доменом, DNS‑записями и всеми сопутствующими приключениями. Эта иллюстрация продолжает ту линию: дед-айтишник и внук уже не просто радуются первому письму, а разбираются, что происходит с их маленьким сервером в большом почтовом мире.

    habr.com/ru/articles/1027950/

    #email #emailмаркетинг #emailрассылки #email_оповещения #сетевое_администрирование #сетевое_оборудование #сетевое_программирование #сетевое_устройство

  2. Своя почта против Gmail

    В первой статье я рассказывал историю «деда из деревни», который вместе с внуком поднял свой почтовый сервер вместо Gmail — на обычном VPS, с доменом, DNS‑записями и всеми сопутствующими приключениями. Эта иллюстрация продолжает ту линию: дед-айтишник и внук уже не просто радуются первому письму, а разбираются, что происходит с их маленьким сервером в большом почтовом мире.

    habr.com/ru/articles/1027950/

    #email #emailмаркетинг #emailрассылки #email_оповещения #сетевое_администрирование #сетевое_оборудование #сетевое_программирование #сетевое_устройство

  3. Своя почта против Gmail

    В первой статье я рассказывал историю «деда из деревни», который вместе с внуком поднял свой почтовый сервер вместо Gmail — на обычном VPS, с доменом, DNS‑записями и всеми сопутствующими приключениями. Эта иллюстрация продолжает ту линию: дед-айтишник и внук уже не просто радуются первому письму, а разбираются, что происходит с их маленьким сервером в большом почтовом мире.

    habr.com/ru/articles/1027950/

    #email #emailмаркетинг #emailрассылки #email_оповещения #сетевое_администрирование #сетевое_оборудование #сетевое_программирование #сетевое_устройство

  4. Своя почта против Gmail

    В первой статье я рассказывал историю «деда из деревни», который вместе с внуком поднял свой почтовый сервер вместо Gmail — на обычном VPS, с доменом, DNS‑записями и всеми сопутствующими приключениями. Эта иллюстрация продолжает ту линию: дед-айтишник и внук уже не просто радуются первому письму, а разбираются, что происходит с их маленьким сервером в большом почтовом мире.

    habr.com/ru/articles/1027950/

    #email #emailмаркетинг #emailрассылки #email_оповещения #сетевое_администрирование #сетевое_оборудование #сетевое_программирование #сетевое_устройство

  5. Решаем архитектурную проблему nginx с HTTP/3: опыт Angie и магия eBPF

    Для пользователя может показаться, что переход с HTTP/2 на HTTP/3 — это просто замена TCP на UDP в конфиге. Но для серверного ПО с многопроцессной архитектурой этот шаг превращается в настоящую «головную боль». Классическая схема с accept() , на которой годами строилась работа с TCP‑соединениями, в мире QUIC попросту не существует. Пакеты летят в UDP‑порт, и ядро ОС больше не знает, какому именно рабочему процессу их отдать. В оригинальном nginx это привело к тому, что поддержка HTTP/3 уже долгое время остается «экспериментальной» и ограниченной: она страдает от проблем с обрывами сессий при миграции клиентов и деградации сервиса при обновлении конфигурации. Для многих это стало стоп‑фактором для внедрения протокола в реальный продакшен. В этой статье мы расскажем, как в Angie 1.11 нам удалось устранить эти фундаментальные недостатки. Мы не просто добавили поддержку протокола, а пересмотрели механику взаимодействия с ядром. Путь от простых хешей до создания полноценного аналога accept() для QUIC с помощью BPF‑программ позволил нам заявить: реализация HTTP/3 в Angie закончена, лишена «детских болезней» nginx и полностью готова к эксплуатации в высоконагруженных средах. Добро пожаловать под капот современного транспорта данных.

    habr.com/ru/articles/989748/

    #http3 #nginx #quic #сетевое_программирование #ebpf #bpf #angie #h3 #многопроцессность #udp

  6. Решаем архитектурную проблему nginx с HTTP/3: опыт Angie и магия eBPF

    Для пользователя может показаться, что переход с HTTP/2 на HTTP/3 — это просто замена TCP на UDP в конфиге. Но для серверного ПО с многопроцессной архитектурой этот шаг превращается в настоящую «головную боль». Классическая схема с accept() , на которой годами строилась работа с TCP‑соединениями, в мире QUIC попросту не существует. Пакеты летят в UDP‑порт, и ядро ОС больше не знает, какому именно рабочему процессу их отдать. В оригинальном nginx это привело к тому, что поддержка HTTP/3 уже долгое время остается «экспериментальной» и ограниченной: она страдает от проблем с обрывами сессий при миграции клиентов и деградации сервиса при обновлении конфигурации. Для многих это стало стоп‑фактором для внедрения протокола в реальный продакшен. В этой статье мы расскажем, как в Angie 1.11 нам удалось устранить эти фундаментальные недостатки. Мы не просто добавили поддержку протокола, а пересмотрели механику взаимодействия с ядром. Путь от простых хешей до создания полноценного аналога accept() для QUIC с помощью BPF‑программ позволил нам заявить: реализация HTTP/3 в Angie закончена, лишена «детских болезней» nginx и полностью готова к эксплуатации в высоконагруженных средах. Добро пожаловать под капот современного транспорта данных.

    habr.com/ru/articles/989748/

    #http3 #nginx #quic #сетевое_программирование #ebpf #bpf #angie #h3 #многопроцессность #udp

  7. Решаем архитектурную проблему nginx с HTTP/3: опыт Angie и магия eBPF

    Для пользователя может показаться, что переход с HTTP/2 на HTTP/3 — это просто замена TCP на UDP в конфиге. Но для серверного ПО с многопроцессной архитектурой этот шаг превращается в настоящую «головную боль». Классическая схема с accept() , на которой годами строилась работа с TCP‑соединениями, в мире QUIC попросту не существует. Пакеты летят в UDP‑порт, и ядро ОС больше не знает, какому именно рабочему процессу их отдать. В оригинальном nginx это привело к тому, что поддержка HTTP/3 уже долгое время остается «экспериментальной» и ограниченной: она страдает от проблем с обрывами сессий при миграции клиентов и деградации сервиса при обновлении конфигурации. Для многих это стало стоп‑фактором для внедрения протокола в реальный продакшен. В этой статье мы расскажем, как в Angie 1.11 нам удалось устранить эти фундаментальные недостатки. Мы не просто добавили поддержку протокола, а пересмотрели механику взаимодействия с ядром. Путь от простых хешей до создания полноценного аналога accept() для QUIC с помощью BPF‑программ позволил нам заявить: реализация HTTP/3 в Angie закончена, лишена «детских болезней» nginx и полностью готова к эксплуатации в высоконагруженных средах. Добро пожаловать под капот современного транспорта данных.

    habr.com/ru/articles/989748/

    #http3 #nginx #quic #сетевое_программирование #ebpf #bpf #angie #h3 #многопроцессность #udp

  8. Решаем архитектурную проблему nginx с HTTP/3: опыт Angie и магия eBPF

    Для пользователя может показаться, что переход с HTTP/2 на HTTP/3 — это просто замена TCP на UDP в конфиге. Но для серверного ПО с многопроцессной архитектурой этот шаг превращается в настоящую «головную боль». Классическая схема с accept() , на которой годами строилась работа с TCP‑соединениями, в мире QUIC попросту не существует. Пакеты летят в UDP‑порт, и ядро ОС больше не знает, какому именно рабочему процессу их отдать. В оригинальном nginx это привело к тому, что поддержка HTTP/3 уже долгое время остается «экспериментальной» и ограниченной: она страдает от проблем с обрывами сессий при миграции клиентов и деградации сервиса при обновлении конфигурации. Для многих это стало стоп‑фактором для внедрения протокола в реальный продакшен. В этой статье мы расскажем, как в Angie 1.11 нам удалось устранить эти фундаментальные недостатки. Мы не просто добавили поддержку протокола, а пересмотрели механику взаимодействия с ядром. Путь от простых хешей до создания полноценного аналога accept() для QUIC с помощью BPF‑программ позволил нам заявить: реализация HTTP/3 в Angie закончена, лишена «детских болезней» nginx и полностью готова к эксплуатации в высоконагруженных средах. Добро пожаловать под капот современного транспорта данных.

    habr.com/ru/articles/989748/

    #http3 #nginx #quic #сетевое_программирование #ebpf #bpf #angie #h3 #многопроцессность #udp

  9. Сетевой чат в Unity: Часть 3 — Звуки и продвинутые функции

    Третья часть из серии статей на тему создания сетевого чата в Unity с использованием Netcode for GameObjects . Добавляем звуковые уведомления, приватные сообщения и продвинутые функции. Научимся добавлять звуки для новых сообщений, создавать систему приватных сообщений, автоответчик, фильтр слов и сохранение истории. Интегрируем все с существующим кодом из первых двух частей. Все с подробными объяснениями и готовым кодом.

    habr.com/ru/articles/935080/

    #unity #unity3d #c# #сетевое_программирование #многопользовательские_игры #gamedev #netcode #чат #просто_о_сложном

  10. Сетевой чат в Unity: Часть 2 — Команды, эмодзи и форматирование

    Вторая часть из серии статей на тему создания сетевого чата в Unity с использованием Netcode for GameObjects . Добавляем команды, эмодзи и форматирование - превращаем простой чат в полноценный командный центр! Научимся создавать систему команд /help , /color , /roll , обрабатывать эмодзи :) → 😊 и форматировать текст жирный , курсив . Все с подробными объяснениями и готовым кодом.

    habr.com/ru/articles/933338/

    #unity #c# #netcode #сетевое_программирование #многопользовательские_игры #просто_о_сложном #чат #gamedev

  11. Сетевой чат в Unity: Часть 1 — Основы и простой интерфейс

    Просто о сложном: первая часть из серии статей на тему создания сетевого чата в Unity с использованием Netcode for GameObjects . Для тех, кто начинает разбираться в сетевой логике.

    habr.com/ru/articles/922740/

    #unity #unity3d #c# #сетевое_программирование #многопользовательские_игры #gamedev #netcode #чат #rpc #просто_о_сложном

  12. Как запустить LTE TDD, когда инфраструктуры нет, но очень хочется?

    Всем привет! Меня зовут я сам прихожу Денис Вдовин, я системный архитектор в отделе мультисервисных (пакетных) сетей компании РТК-Сервис, и мне бы хотелось рассказать одну историю, которая началась с салата еще в зимние каникулы. В ней в разных пропорциях смешались ISIS, QoS, загадочный PTPv2, распределение Пуассона, теория массового обслуживания и LTE TDD, отчего она показалась мне крайне интересна и достойна публикации отдельной статьей. Сей трактат, направленный на решение конкретной прикладной проблемы, будет довольно длинным и с каждым листом А4 сложность для понимания будет нарастать. Затрагиваются, казалось бы, совсем далекие друг от друга галактики, поэтому если вы где-то не смогли уследить за руками факира — это норма. Главное, что в конце вас ждет награда - мы научимся вычислять джиттер на обычном калькуляторе по графикам из Заббикса. Поехали! Поехали

    habr.com/ru/companies/rtk_serv

    #lte_tdd #qos #ptpv2 #isis #базовые_станции #телеком #телекоммуникационное_оборудование #сетевая_инфраструктура #сетевое_администрирование #сетевое_программирование

  13. Как запустить LTE TDD, когда инфраструктуры нет, но очень хочется?

    Всем привет! Меня зовут я сам прихожу Денис Вдовин, я системный архитектор в отделе мультисервисных (пакетных) сетей компании РТК-Сервис, и мне бы хотелось рассказать одну историю, которая началась с салата еще в зимние каникулы. В ней в разных пропорциях смешались ISIS, QoS, загадочный PTPv2, распределение Пуассона, теория массового обслуживания и LTE TDD, отчего она показалась мне крайне интересна и достойна публикации отдельной статьей. Сей трактат, направленный на решение конкретной прикладной проблемы, будет довольно длинным и с каждым листом А4 сложность для понимания будет нарастать. Затрагиваются, казалось бы, совсем далекие друг от друга галактики, поэтому если вы где-то не смогли уследить за руками факира — это норма. Главное, что в конце вас ждет награда - мы научимся вычислять джиттер на обычном калькуляторе по графикам из Заббикса. Поехали! Поехали

    habr.com/ru/companies/rtk_serv

    #lte_tdd #qos #ptpv2 #isis #базовые_станции #телеком #телекоммуникационное_оборудование #сетевая_инфраструктура #сетевое_администрирование #сетевое_программирование

  14. Как запустить LTE TDD, когда инфраструктуры нет, но очень хочется?

    Всем привет! Меня зовут я сам прихожу Денис Вдовин, я системный архитектор в отделе мультисервисных (пакетных) сетей компании РТК-Сервис, и мне бы хотелось рассказать одну историю, которая началась с салата еще в зимние каникулы. В ней в разных пропорциях смешались ISIS, QoS, загадочный PTPv2, распределение Пуассона, теория массового обслуживания и LTE TDD, отчего она показалась мне крайне интересна и достойна публикации отдельной статьей. Сей трактат, направленный на решение конкретной прикладной проблемы, будет довольно длинным и с каждым листом А4 сложность для понимания будет нарастать. Затрагиваются, казалось бы, совсем далекие друг от друга галактики, поэтому если вы где-то не смогли уследить за руками факира — это норма. Главное, что в конце вас ждет награда - мы научимся вычислять джиттер на обычном калькуляторе по графикам из Заббикса. Поехали! Поехали

    habr.com/ru/companies/rtk_serv

    #lte_tdd #qos #ptpv2 #isis #базовые_станции #телеком #телекоммуникационное_оборудование #сетевая_инфраструктура #сетевое_администрирование #сетевое_программирование

  15. Как запустить LTE TDD, когда инфраструктуры нет, но очень хочется?

    Всем привет! Меня зовут я сам прихожу Денис Вдовин, я системный архитектор в отделе мультисервисных (пакетных) сетей компании РТК-Сервис, и мне бы хотелось рассказать одну историю, которая началась с салата еще в зимние каникулы. В ней в разных пропорциях смешались ISIS, QoS, загадочный PTPv2, распределение Пуассона, теория массового обслуживания и LTE TDD, отчего она показалась мне крайне интересна и достойна публикации отдельной статьей. Сей трактат, направленный на решение конкретной прикладной проблемы, будет довольно длинным и с каждым листом А4 сложность для понимания будет нарастать. Затрагиваются, казалось бы, совсем далекие друг от друга галактики, поэтому если вы где-то не смогли уследить за руками факира — это норма. Главное, что в конце вас ждет награда - мы научимся вычислять джиттер на обычном калькуляторе по графикам из Заббикса. Поехали! Поехали

    habr.com/ru/companies/rtk_serv

    #lte_tdd #qos #ptpv2 #isis #базовые_станции #телеком #телекоммуникационное_оборудование #сетевая_инфраструктура #сетевое_администрирование #сетевое_программирование

  16. Сетевые технологии с нуля [или почти с нуля]: подборка книг

    Рассказываем, какие книги в открытом доступе наглядно разъясняют принципы построения сетей. Описываем руководства, ставшие обязательной к прочтению классикой, и что дать почитать по теме тем, кто только знакомится с ней.

    habr.com/ru/companies/vasexper

    #vas_experts #сетевые_технологии #сетевое_программирование #книги_по_сетям #профессиональная_литература

  17. Получение информации о системе и сети с помощью Python

    В предыдущей публикации, посвящённой извлечению системной информации с помощью Python ( habr.com/ru/articles/864830/ ) был отмечен высокий читательский интерес. В настоящей статье предлагается расширенное рассмотрение методов программирования и получения данных, выходящих за рамки системной информации и анализа сетевых пакетов. Настоящее статья будет структурировано по следующему принципу "теория-практика".

    habr.com/ru/articles/866788/

    #python #автоматизация #системное_администрирование #системное_программирование #сетевое_администрирование #сетевое_программирование

  18. Что делать, чтобы правильные вёдра правильно протекали: иерархический Token Bucket для XDP-программ в eBPF

    Всем привет! Это Сергей Качеев, старший разработчик в отделе сетевой инфраструктуры Yandex Infrastructure. Наша команда создаёт технологии, на которых работают сервисы Яндекса. В прошлый раз я рассказал целый сетевой детектив о том, как мы искали баг, который убивал DNS‑сервер Unbound . И сегодня я расскажу не менее интересную историю. Мне на развитие попала XDP eBPF‑программа, которая защищает DNS‑серверы от выхода из строя под слишком большой нагрузкой (другими словами, от DDoS). На ядре 5.4 алгоритм защиты был основан на EWMA ‑статистике с вероятностными дропами, которые постоянно контролировались из Control Plane. Это делало eBPF‑программу неавтономной. К тому же если Control Plane падал, то сервер оставался в состоянии последнего удачного обновления eBPF. Это нужно было исправлять — было решено заменить это всё на Token Bucket. Этот момент и будем считать отправной точкой в нашей истории.

    habr.com/ru/companies/yandex/a

    #xdp #ebpf #token_bucket #htb #алгоритмы #сетевое_программирование #linux_kernel

  19. Что делать, чтобы правильные вёдра правильно протекали: иерархический Token Bucket для XDP-программ в eBPF

    Всем привет! Это Сергей Качеев, старший разработчик в отделе сетевой инфраструктуры Yandex Infrastructure. Наша команда создаёт технологии, на которых работают сервисы Яндекса. В прошлый раз я рассказал целый сетевой детектив о том, как мы искали баг, который убивал DNS‑сервер Unbound . И сегодня я расскажу не менее интересную историю. Мне на развитие попала XDP eBPF‑программа, которая защищает DNS‑серверы от выхода из строя под слишком большой нагрузкой (другими словами, от DDoS). На ядре 5.4 алгоритм защиты был основан на EWMA ‑статистике с вероятностными дропами, которые постоянно контролировались из Control Plane. Это делало eBPF‑программу неавтономной. К тому же если Control Plane падал, то сервер оставался в состоянии последнего удачного обновления eBPF. Это нужно было исправлять — было решено заменить это всё на Token Bucket. Этот момент и будем считать отправной точкой в нашей истории.

    habr.com/ru/companies/yandex/a

    #xdp #ebpf #token_bucket #htb #алгоритмы #сетевое_программирование #linux_kernel

  20. Что делать, чтобы правильные вёдра правильно протекали: иерархический Token Bucket для XDP-программ в eBPF

    Всем привет! Это Сергей Качеев, старший разработчик в отделе сетевой инфраструктуры Yandex Infrastructure. Наша команда создаёт технологии, на которых работают сервисы Яндекса. В прошлый раз я рассказал целый сетевой детектив о том, как мы искали баг, который убивал DNS‑сервер Unbound . И сегодня я расскажу не менее интересную историю. Мне на развитие попала XDP eBPF‑программа, которая защищает DNS‑серверы от выхода из строя под слишком большой нагрузкой (другими словами, от DDoS). На ядре 5.4 алгоритм защиты был основан на EWMA ‑статистике с вероятностными дропами, которые постоянно контролировались из Control Plane. Это делало eBPF‑программу неавтономной. К тому же если Control Plane падал, то сервер оставался в состоянии последнего удачного обновления eBPF. Это нужно было исправлять — было решено заменить это всё на Token Bucket. Этот момент и будем считать отправной точкой в нашей истории.

    habr.com/ru/companies/yandex/a

    #xdp #ebpf #token_bucket #htb #алгоритмы #сетевое_программирование #linux_kernel

  21. Реверс алгоритма поиска устройств в сети

    При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожидая что одно или несколько устройств отправят соответствующий ответ. Я быстро отказался от этой задумки, ведь подобный брутфорс будет сильно нагружать сеть, да и сам алгоритм не самый быстрый. Других идей по реализации на тот момент у меня не было. Мне предоставили копию другого клиента, где поиск осуществляется моментально по нажатию одноимённой кнопки, а приложение в табличном виде выводит IP и MAC-адреса с рядом другой информации об обнаруженных матрицах, если таковые нашлись. Эти данные затем могут быть использованы для подключения, конфигурации и отправки команд на найденные устройства. Не имея исходного кода, я подготовил дизассемблеры, отладчики и hex-редакторы, готовясь к глубокому анализу и разбору проприетарного алгоритма поиска, чтобы реализовать что-то подобное уже в своей программе.

    habr.com/ru/articles/830582/

    #декомпиляция #дизассемблирование #обратная_разработка #winapi #сокеты #сетевое_программирование #низкоуровневое_программирование #ida_pro #x64dbg

  22. Реверс алгоритма поиска устройств в сети

    При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожидая что одно или несколько устройств отправят соответствующий ответ. Я быстро отказался от этой задумки, ведь подобный брутфорс будет сильно нагружать сеть, да и сам алгоритм не самый быстрый. Других идей по реализации на тот момент у меня не было. Мне предоставили копию другого клиента, где поиск осуществляется моментально по нажатию одноимённой кнопки, а приложение в табличном виде выводит IP и MAC-адреса с рядом другой информации об обнаруженных матрицах, если таковые нашлись. Эти данные затем могут быть использованы для подключения, конфигурации и отправки команд на найденные устройства. Не имея исходного кода, я подготовил дизассемблеры, отладчики и hex-редакторы, готовясь к глубокому анализу и разбору проприетарного алгоритма поиска, чтобы реализовать что-то подобное уже в своей программе.

    habr.com/ru/articles/830582/

    #декомпиляция #дизассемблирование #обратная_разработка #winapi #сокеты #сетевое_программирование #низкоуровневое_программирование #ida_pro #x64dbg

  23. Реверс алгоритма поиска устройств в сети

    При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожидая что одно или несколько устройств отправят соответствующий ответ. Я быстро отказался от этой задумки, ведь подобный брутфорс будет сильно нагружать сеть, да и сам алгоритм не самый быстрый. Других идей по реализации на тот момент у меня не было. Мне предоставили копию другого клиента, где поиск осуществляется моментально по нажатию одноимённой кнопки, а приложение в табличном виде выводит IP и MAC-адреса с рядом другой информации об обнаруженных матрицах, если таковые нашлись. Эти данные затем могут быть использованы для подключения, конфигурации и отправки команд на найденные устройства. Не имея исходного кода, я подготовил дизассемблеры, отладчики и hex-редакторы, готовясь к глубокому анализу и разбору проприетарного алгоритма поиска, чтобы реализовать что-то подобное уже в своей программе.

    habr.com/ru/articles/830582/

    #декомпиляция #дизассемблирование #обратная_разработка #winapi #сокеты #сетевое_программирование #низкоуровневое_программирование #ida_pro #x64dbg

  24. Точно в цель. Обзор коммутатора Zyxel XMG1915-18EP

    Для чего нужен хороший коммутатор? Коммутатор нужен для сети. Хороший чтобы было хорошо. Такой простой ответ вроде подходит на все случаи жизни. Но на практике предстоит ответить ещё на целый ряд вопросов.

    habr.com/ru/companies/zyxel/ar

    #сетевые_технологии #zyxel #точка_доступа_wifi #сетевое_оборудование #сетевое_администрирование #сетевая_безопасность #сетевая_инфраструктура #сетевое_программирование #network

  25. Как раз вовремя. Обзор точки доступа Wi-Fi 7 — Zyxel WBE660S

    Есть технические средства, опередившие своё время. Есть те, которые появились с некоторым опозданием, таких большинство. И есть предметы и устройства, которые появились как раз вовремя. Об одном таком и пойдет речь в нашем обзоре. Итак, наш герой на сегодня — Zyxel WBE660S 3-диапазонная точка доступа Wi-Fi 7.

    habr.com/ru/companies/zyxel/ar

    #сетевые_технологии #zyxelточка_доступаwifi #сетевое_оборудование #сетевое_администрирование #сетевая_безопасность #сетевая_инфраструктура #сетевое_программирование #network