Какие порты использует discord

Обновлено: 01.07.2024

Любой пользователь Discord может столкнуться с проблемой, когда подключение к игровому серверу не прекращается. Программа по-прежнему активна, а чат находится на этапе подключения. Так Дискорд висит бесконечно долго, подключение может длиться часами, а так и не увенчаться успехом.

Что собой представляет Discord?

Уже многие знают, что Дискорд – это голосовой мессенджер, часто используется для связи между членами игровой команды. Распространяется бесплатно. Стабильно работает не только на компьютерах, но и смартфонах, планшетах. Помимо функции связи, поддерживает стриминг, выполняет роль доски объявлений. На сегодняшний день Discord работает на всех популярных системах.

К текущему моменту у Дискорд уже свыше 90 млн. пользователей, которые постоянно пользуются приложением. Мессенджер приглянулся многим благодаря обилию функций и удобной их реализацией.

Почему идёт бесконечное соединение с каналом в Discord?

Перманентное подключение к серверам – это самая распространённая ошибка, часто поражающая игровой мессенджер.

Что становится причиной:

  • Проблемы с подключением к интернету со стороны клиента;
  • Чат не работает или функционирует неполноценно;
  • Брандмауэр Windows или другое средство защиты блокирует соединение с серверами;
  • Система заражена вирусным кодом;
  • В Windows отсутствуют все нужные обновления;
  • Время в системе установлено неверно или указан неправильный часовой пояс;
  • Установлено прокси-приложение.

Зная все вероятные причины долгой загрузки Дискорда, есть возможность их устранить.

Тестирование интернет-подключения

Самым первым действием стоит проверить наличие подключения и его стабильность. Это несложно сделать, открывая популярные веб-ресурсы и наблюдая за реакцией браузера. Лучше проверить поведение веб-обозревателя хотя бы на 5 сайтах, бывает, что плохо работает интернет с IP-адресами других стран. Если всё работает исправно, скорее всего проблема не в интернете.

При появлении каких-то торможений и долгих загрузок сайтов стоит перезапустить компьютер и Wi-Fi-маршрутизатор. Если ничего не помогает, следует обратиться к провайдеру.

Проверка исправности серверов Дискорда

Есть сайт, который фиксирует жалобы пользователей на доступность к разным популярным веб-ресурсам. Ссылка на сайт.

Нужно удостовериться, что сервера Дискорд доступны, об этом легко сделать вывод, если другие пользователи не жалуются на них. Ещё один вариант – спросить у друга, работает ли у него Discord.

Временное отключение брандмауэра, антивируса

Одной из частых проблем является блокировка IP-адреса игрового сервера или порта, отвечающего за подключение к Дискорду. Заблокировать подключение способны: встроенный брандмауэр и антивирусное ПО. Простейший способ проверить, что проблема в них – временно отключить антивирус с брандмауэром. Если после выключения всё заработает, следует добавить Discord в белый список или исключения.

Поставить все нужные обновления

Для стабильной работы мессенджера нужно иметь все обновления для Windows. В первую очередь нужно удостовериться, что стоит обновление KB2533623 (для «семёрки»). Без него Дискорд не будет работать исправно. Желательно установить все доступные обновления и проверить устранение ошибки.

Проверка правильности установленного времени

Если долгое время Дискорд пытается подключиться к серверам, рекомендуется проверить настройки времени. Важно иметь правильно установленный пояс, дату и время. Для этого следует навести курсор на значок времени с датой внизу экрана. Затем нужно сделать ПКМ и выбрать «Настройка даты и времени».


Все данные в этом разделе должны быть актуальными для конкретного региона проживания.

Завершение процесса Discord

Как показывает практика, это довольно эффективный метод. Нужно всего лишь убить процесс мессенджера через «Диспетчер задач» или консоль. Чтобы завершить процесс через командную строку, нужно сделать ПКМ по «Пуску» и выбрать консоль с правами администратора. В появившееся окно следует ввести taskkill /F /IM discord.exe и нажать Enter. Теперь нужно лишь перезагрузить приложение.


Повторная установка Дискорда

Часто помогает избавиться от продолжительного подключения, особенно в случаях, где файлы приложения повреждены.

Важный момент! Просто удалить и установить Дискорд – не поможет. Нужно удалить ещё и временные, пользовательские данные приложения.

Руководство к действию:

  1. Запустить «Программы и компоненты», затем удалить Дискорд.
  2. Нажать комбинацию Win + R, ввести %appdata% и нажать Enter.
  3. Найти каталог с названием Discord и удалить его.
  4. Снова запустить строку «Выполнить» и вставить %LocalAppData%.
  5. Убрать папку с названием Discord.
  6. Перезапустить компьютер, скачать программу по ссылке и установить её.

Поиск вирусов в системе

В обязательном порядке следует проверить наличие в Windows вирусного заражения. При этом не стоит использовать уже установленный антивирус. Лучше загрузить антивирусные сканеры, вроде Dr.Web или AdwCleaner. Несложно догадаться, как поступать с вирусами.

Выключение прокси

Если в системе установлено приложение для прокси-доступа, нужно его выключить. Следует нажать на комбинацию Win + R, вставить inetcpl.cpl и нажать клавишу Ввод. Дальше стоит перейти к вкладке «Подключения» и кликнуть внутри неё на «Настройки сети». Стоит снять флажок рядом с пунктом, отвечающим за использование прокси (если галочка стоит).

Иногда необходимо открыть порты роутера или брандмауэр чтобы соединения работали лучше. Например, чтобы сыграть в определенную онлайн-видеоигру, использовать некоторые программы для загрузки через P2P или торрент и т. Д. В этой статье мы сосредоточимся на видеозвонков и какие порты надо открывать, чтобы они работали как можно лучше, без сокращений и с хорошей скоростью.

Почему вам следует оптимизировать видеозвонки

Открытые порты для видеозвонков: какие открывать

Способ общения сильно изменился благодаря Интернету, и, несомненно, широко используются видеозвонки. Есть много программ, которые мы можем использовать на обоих мобильных устройств и компьютеры , Такие, как Skype, Знакомьтесь или С зумом. Однако иногда они могут работать со сбоями, и вам необходимо принять меры.

Обычно проблемы с подключением эти программы возникают из-за низкой скорости Интернета, плохой конфигурации системы или устаревшего оборудования. Но может случиться так, что порты в маршрутизаторе или брандмауэре закрыты, и это не позволяет им работать с максимальной производительностью.

Если эти порты закрыты, это как если бы возникло узкое место. Соединение не могло войти нормально, и мы не могли правильно совершить видеозвонок. Были бы порезы, плохой имидж или даже невозможность наладить общение.

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

Порты, используемые программами видеозвонков

Мы собираемся показать, какие порты мы должны учитывать для основных приложений. Это поможет нам избежать раздражающих сокращений, когда мы увидим, что видеозвонок не работает должным образом, и мы хотим его максимально оптимизировать.

Какие порты открывать в Скайпе

Skype несомненно, одно из наиболее часто используемых приложений для видеозвонков. Это программа, которую мы можем установить как на компьютер, так и на мобильный телефон. Если мы хотим оптимизировать сигнал и заставить его работать как можно лучше, помимо конфигурации, чтобы всегда устанавливать официальные и безопасные приложения, мы можем открыть порты.

Если мы используем программу безопасности, такую ​​как брандмауэр, мы должны убедиться, что она правильно настроена с этими открытыми портами. Это позволит соединению быть плавным и работать без перебоев.


Порты для Meet работают лучше

Еще одно популярное приложение для видеозвонков - Встречаться . Как и в предыдущем случае, помимо правильной настройки, установки официальных программ и обеспечения безопасности, мы также должны убедиться, что соответствующие порты открыты.

Meet требуется TCP-порт 443 быть открытым, а также UDP порты 19302-19309. Первый - общий для веб-трафика, API, отчетов, журналов загрузки и т. Д. Остальные - это порты, отвечающие за мультимедийный трафик, что очень важно для видеозвонков.

Открыв эти порты, мы можем гарантировать, что соединение будет работать правильно при использовании Meet. Это позволит избежать раздражающих порезов или обнаружить, что изображение нечеткое. Мы должны применять его независимо от того, какой тип устройства мы используем и какой брандмауэр мы установили.

Встречайте видеоолламадас

Оптимизировать масштабирование при открытии портов

Освободи Себя то же самое происходит с Zoom как и в предыдущих случаях. Это также широко используемая услуга, позволяющая поддерживать постоянный контакт с другими пользователями как дома, так и на рабочем уровне. Всегда нужно учитывать настройки для оптимизации производительности, но мы также можем поговорить о портах.

Кроме того, в качестве более конкретных портов мы должны открыть TCP-порты 8801 и 8802 , так же как UDP-порты 3478, 3479, 8801 и 8802 . Все они повлияют на соединение и позволят нам без особых проблем совершить видеозвонок.

Zoom va a mejorar la seguridad

Открытые порты для Discord

Мы также хотим поговорить о Раздор , это еще одна программа для видеозвонков. Мы можем оптимизировать соединение, если мы убедимся, что определенные порты открыты, что-то важное, чтобы не было разрезов и чтобы изображение было четким.

Если у нас настроен брандмауэр, например, на компьютере, для нормального использования Discord мы должны убедиться, что эти порты открыты в брандмауэре и не блокируются.

Порты, которые нужно открыть для FaceTime

Еще одна программа FaceTime . У него также есть много пользователей, которые ежедневно совершают видеозвонки. Мы также можем убедиться, что у нас есть открытые порты, необходимые для правильной работы соединения.

В этом случае мы должны убедиться, что у нас есть TCP-порт 443 открытый, в дополнение к UDP-порты 53, 80, 5223 и 16393-16472 . С их помощью мы можем заставить его работать как можно лучше, и чтобы ужасные порезы не появлялись, когда мы звоним. Это может повлиять как на FaceTime, так и на любое другое используемое нами приложение этого типа.

Короче говоря, это основные порты, которые мы должны открывать, когда используем приложения для видеозвонков, подобные этим, о которых мы упоминали. Если мы используем брандмауэр, нам нужно будет правильно его настроить, чтобы он не блокировал соединение, что может помешать нормальной доставке изображения.

Discord быстро стал золотым стандартом для создания игровых сообществ и сообществ любителей с момента своего первого запуска в 2015 году. Он имеет ряд полезных функций, которые позволяют пользователям оставаться на связи удаленно с друзьями и единомышленниками с незнакомцами, с совместным использованием экрана и голосом или видеосвязь предлагается бесплатно.


Что такое ошибка Discord «Подключение RTC» и что ее вызывает?

Если вы видите «RTC подключение» на Discord, это обычно означает, что существует проблема, которая не позволяет протоколу WebRTC (Web Real-Time Communication) создать соединение между вами и серверами Discord, чтобы разрешить ваш голосовой чат.

Другие проблемы, такие как обычная ошибка «нет маршрута», связаны с этой же проблемой, когда Discord не может установить соединение между вашим компьютером и его серверами. Без стабильного соединения Discord с вашим компьютером любая попытка установить соединение для голосовой или видеосвязи будет неудачной.


Хотя иногда проблемой может быть сбой Discord, большинство пользователей обнаруживают, что ошибка Discord «RTC подключения» указывает на проблему с локальной сетью. В первую очередь, перезагрузка вашего ПК обычно является хорошим первым шагом, так как это заставит ваш компьютер повторно подключиться к вашей локальной сети.

Все от заблокированные сетевые порты Однако поврежденный кеш DNS может привести к сбою голосовой связи Discord. Если перезагрузка компьютера не работает, и вы уверены, что ваше интернет-соединение стабильно, вам может потребоваться выполнить следующие действия, чтобы голосовое общение в Discord снова заработало.

Проверить статус службы Discord

Прежде чем проверять любые другие настройки, вы должны подтвердить, что проблема на вашей стороне. Сбои в работе Discord случаются нечасто, но время от времени они не позволяют пользователям использовать платформу. Это может быть небольшой сбой, который мешает голосовой и видеосвязи, или он может помешать вам подключиться к общей услуге.


  1. На той же странице прокрутите вниз и откройте категорию «Голос». Откроется список серверных регионов. Убедитесь, что ваш регион указан как Рабочий. Если это не так, вы можете временно переключиться на другой регион, чтобы обойти это, выполнив действия, описанные ниже.


Если у Discord возникли проблемы, отойдите на час или два. В большинстве случаев проблема должна быть решена к тому времени, когда вы вернетесь.

Отключитесь от VPN и откройте сетевые порты

Если вы используете виртуальную частную сеть (VPN) на своем ПК, возможно, это блокирует ваше соединение с сервером Discord, вызывая ошибку «RTC подключения» в процессе. Точно так же, если вы используете сетевой брандмауэр (или брандмауэр Windows), закрытые порты могут помешать правильной работе Discord.


Discord использует случайный порт UDP от 50 000 до 65 535 для установления голосовой связи. Однако ваш ПК или Mac обычно автоматически разрешает доступ к этому случайному порту. Это одно из преимуществ протокола WebRTC. В противном случае вам может потребоваться настроить маршрутизатор, чтобы разрешить это.

Хотя не рекомендуется просто открывать такой огромный диапазон портов, вы можете использовать переадресацию портов на вашем роутере для направления этого трафика на один порт или диапазон портов, который вы можете отслеживать (и ограничивать) входящий трафик только в Discord.

Однако, если вы используете VPN, и трафик заблокирован, вам может потребоваться отключиться и использовать Discord без него. В качестве альтернативы вы можете внести определенные порты в белый список, если это позволяет служба, но вам нужно будет проконсультироваться со своей службой VPN, чтобы убедиться, что это возможно.

Изменение региона сервера Discord, звуковой подсистемы и настроек качества обслуживания (QoS)

В Discord есть ряд настроек, которые могут повлиять на голосовое общение. Например, серверы Discord сгруппированы в серверные регионы, что обеспечивает минимальную задержку между пользователями и серверами Discord. Однако, если в вашем регионе есть проблемы, вы можете временно переключиться в другой регион, чтобы решить проблему.

Вы также можете изменить качество обслуживания (QoS) Discord и настройки аудиоподсистемы. Это, вероятно, снизит общее качество, но должно помочь установить соединение, если ошибка Discord «RTC Connecting» постоянна. Однако вы сможете изменить эти конкретные настройки только в настольном приложении Discord.

  1. Чтобы изменить регион сервера в браузере или в настольном приложении Discord, откройте приложение (или посетите сайт Discord) и войдите в систему. После того, как вы вошли в систему, выберите имя своего сервера в верхнем левом углу, затем выберите в меню «Настройки сервера».

  1. В меню «Обзор сервера» нажмите кнопку «Изменить» для параметра «Регион сервера», чтобы переключить сервер на другой регион сервера Discord. Однако это возможно только в том случае, если вы являетесь администратором на этом сервере, и этот параметр применяется ко всем подключенным пользователям.


  1. Если вы используете настольное приложение, вы можете изменить качество обслуживания и настройки аудиоподсистемы. Для этого откройте приложение и выберите шестеренку настроек в левом нижнем углу.
  1. В меню выберите «Голос и видео» в категории «Настройки приложения». Слева убедитесь, что установлен ползунок «Включить высокий приоритет пакета качества обслуживания», переключив его в положение «Выкл.».


  1. В том же меню прокрутите вниз до раздела Audio Subsystem. В раскрывающемся меню переключитесь со стандартного на устаревший.


Очистить кеш DNS

Чтобы решить эту проблему, вам необходимо очистить кеш DNS на вашей платформе.

  1. Пользователи Windows могут сделать это, открыв новое окно PowerShell. Щелкните правой кнопкой мыши меню «Пуск» и выберите для этого Windows PowerShell (Admin). В окне PowerShell введите ipconfig / flushdns и нажмите Enter для подтверждения.


  1. На Mac откройте новое окно терминала и введите sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder, чтобы сделать то же самое, выбрав Enter, чтобы запустить команду.


  1. После очистки кеша попытайтесь сделать еще один голосовой вызов в Discord, чтобы убедиться, что он снова работает. Вы также можете использовать тест средства устранения неполадок WebRTC, чтобы убедиться, что ваш браузер правильно настроен для разрешения вызовов WebRTC (например, голосовых вызовов Discord).


Решение общих проблем с Discord

Хотя устранение ошибки «RTC подключения» в Discord может раздражать, описанные выше шаги должны помочь решить ее большинству пользователей. Другие проблемы Discord, такие как зависание экрана подключения во время входа в систему или проблемы с голосом робота во время чата, также можно устранить, выполнив аналогичные шаги, например, изменив регион сервера и настройки QoS.

Если вы настроили своего собственного бота Discord и хотите максимально использовать возможности сервиса, возможно, вам стоит подумать об установке бота Discord. Эти боты улучшают функциональность Discord, предоставляя вам дополнительные функции модерации, если вы имеете дело с непослушными пользователями, или позволяя вам воспроизводить свою собственную музыку, чтобы оживить ситуацию.


С самого начала мы так спланировали инженерные и продуктовые решения, чтобы Discord хорошо подходил для голосовых чатов во время игры с друзьями. Эти решения позволили сильно масштабировать систему, обладая небольшой командой и ограниченными ресурсами.

В статье рассматриваются различных технологии, которые использует Discord для аудио/видеочатов.

Для ясности всю группу пользователей и каналов мы будем называть «группа» (guild) — в клиенте они называются «серверами». Вместо этого здесь термин «сервер» относится к нашей серверной инфраструктуре.

Каждый аудио/видеочат в Discord поддерживает много участников. Мы наблюдали, как в больших групповых чатах тысяча человек разговаривают по очереди. Такая поддержка требует клиент-серверной архитектуры, потому что одноранговая пиринговая сеть становится непомерно дорогой при увеличении числа участников.

Маршрутизация сетевого трафика через серверы Discord также гарантирует, что ваш IP-адрес никогда не виден — и никто не запустит DDoS-атаку. У маршрутизация через серверы есть и другие преимущества: например, модерация. Администраторы могут быстренько отключить звук и видео нарушителям.

Discord работает на многих платформах.

  • Веб (Chrome/Firefox/Edge и т. д.)
  • Автономное приложение (Windows, MacOS, Linux)
  • Телефон (iOS/Android)

Аудио и видео в Discord работает на WebRTC. Таким образом, браузерное приложение полагается на реализацию WebRTC в браузере. Однако приложения для десктопов, iOS и Android используют единый мультимедийный движок C++, построенный поверх собственной библиотеки WebRTC, специально адаптированной к потребностям наших пользователей. Это означает, что некоторые функции в приложении работают лучше, чем в браузере. Например, в наших нативных приложениях мы можем:

  • Обойти приглушение громкости в Windows по умолчанию, когда все приложения автоматически приглушаются при использовании гарнитуры. Это нежелательно, когда вы с друзьями пошли в рейд и координируете действия в чате Discord.
  • Использовать собственный регулятор громкости вместо глобального микшера операционной системы.
  • Обрабатывать исходные аудиоданные для обнаружения голосовой активности и трансляции звука и видео в играх.
  • Уменьшате пропускную способность и потребление ресурсов CPU в периоды тишины — даже в самых многочисленных голосовых чатов в любой момент времени одновременно говорят всего несколько человек.
  • Обеспечить общесистемную функциональность режима «рации» (push to talk).
  • Отправлять вместе с аудио- видеопакетами дополнительную информацию (например, индикатор приоритета в чате).

В Discord голосовая и видеосвязь инициируется путём ввода голосового канала или вызова. То есть связь всегда инициируется клиентом — это снижает сложность клиентской и серверной части, а также повышает устойчивость к ошибкам. В случае сбоя инфраструктуры участники могут просто повторно подключиться к новому внутреннему серверу.

Под нашим контролем

Контроль нативной библиотеки позволяет реализовать некоторые функции иначе, чем в браузерной реализации WebRTC.

Во-первых, WebRTC полагается на протокол Session Description Protocol (SDP) для согласования аудио/видео между участниками (до 10 КБ на каждый обмен пакетами). В собственной библиотеке для создания обоих потоков — входящего и исходящего — используется API более низкого уровня от WebRTC ( webrtc::Call ). При подключении к голосовому каналу происходит минимальный обмен информацией. Это адрес и порт сервера бэкенда, метод шифрования, ключи, кодек и идентификация потока (около 1000 байт).


Кроме того, для определения наилучшего маршрута между участниками WebRTC использует Interactive Connectivity Establishment (ICE). Поскольку у нас каждый клиент подключается к серверу, нам не нужен ICE. Это позволяет обеспечить гораздо более надёжное соединение, если вы находитесь за NAT, а также сохранить ваш IP-адрес в секрете от других участников. Клиенты периодически пингуются, чтобы файрвол сохранял открытое соединение.

Наконец, WebRTC использует Secure Real-time Transport Protocol (SRTP) для шифрования носителей. Ключи шифрования устанавливаются с помощью протокола Datagram Transport Layer Security (DTLS) на основе стандартного TLS. Встроенная библиотека WebRTC позволяет реализовать собственный транспортный уровень с помощью webrtc::Transport API.

Вместо DTLS/SRTP мы решили использовать более быстрое шифрование Salsa20. Кроме того, мы не отправляем аудиоданные в периоды тишины — частое явление, особенно в больших чатах. Это приводит к значительной экономии пропускной способности и ресурсов CPU, однако и клиент, и сервер должны быть готовы в любой момент прекратить приём данных и переписать порядковые номера аудио/видеопакетов.

Поскольку веб-приложение использует браузерную реализацию WebRTC API, тут нельзя отказаться от SDP, ICE, DTLS и SRTP. Клиент и сервер обмениваются всей необходимой информацией (менее 1200 байт при обмене пакетами) — и у клиентов на основе этой информации устанавливается сессия SDP. Бэкенд отвечает за устранение различий между десктопными и браузерными приложениями.

На бэкенде работает несколько сервисов для голосовых чатов, но мы сосредоточимся на трёх: Discord Gateway, Discord Guilds и Discord Voice. Все наши сигнальные серверы написаны на Elixir, что позволяет многократно повторно использовать код.

При подключении к голосовому каналу статус подключения отображается объектом состояния голосовой связи. Клиент обновляет этот объект по шлюзовому подключению.


При подключении к голосовому каналу вам назначают один из серверов Discord Voice. Он отвечает за передачу звука каждому участнику канала. Все голосовые каналы в группе назначаются одному серверу. Если вы первый в чате, сервер Discord Guilds отвечает за назначение сервера Discord Voice всей группе с помощью описанного ниже процесса.

Назначение сервера Discord Voice

Каждый сервер Discord Voice периодически сообщает о своём состоянии и нагрузке. Эта информация помещается в систему обнаружения сервисов (мы используем etcd), как обсуждалось в предыдущей статье.

Сервер Discord Guilds следит за системой обнаружения сервисов и назначает группе наименее используемый сервер Discord Voice в данном регионе. Когда он выбран, все объекты состояния голосовой связи (также поддерживаемые сервером Discord Guilds) передаются на сервер Discord Voice, чтобы тот мог настроить переадресацию аудио/видео. Клиенты уведомляются о выбранном сервере Discord Voice. Тогда клиент открывает второе соединение WebSocket с голосовым сервером (мы называем его голосовым соединением WebSocket), которое используется для настройки переадресации мультимедиа и индикации речи.

Сервер Discord Voice содержит два компонента: сигнальный модуль и блок ретрансляции мультимедиа, называемый блоком избирательной пересылки, SFU (selective forwarding unit). Сигнальный модуль полностью контролирует SFU и отвечает за генерацию идентификаторов потоков и ключей шифрования, перенаправление индикаторов речи и т. д.

Наш SFU (на C++) отвечает за направление аудио- и видеотрафика между каналами. Он разработан своими силами: для нашего конкретного случая SFU обеспечивает максимальную производительность и, таким образом, самую большую экономию. При модерации нарушителей (отключение звука на сервере), их аудиопакеты не обрабатываются. SFU также работает мостом между нативными и браузерными приложениями: он реализует транспорт и шифрование и для браузера и для нативных приложений, преобразуя пакеты в процессе передачи. Наконец, SFU отвечает за обработку протокола RTCP, который используется для оптимизации качества видео. SFU собирает и обрабатывает отчёты RTCP от получателей — и уведомляет отправителей, какая полоса доступна для передачи видео.

Поскольку напрямую из интернета у нас доступны только сервера Discord Voice, речь пойдёт о них.

Сигнальный модуль непрерывно контролирует SFU. Если тот сбоит, он мгновенно перезапускается с минимальной паузой в обслуживании (несколько потерянных пакетов). Состояние SFU восстанавливается сигнальным модулем без какого-либо взаимодействия с клиентом. Хотя сбои SFU редки, мы используем тот же механизм для обновления SFU без перерывов в обслуживании.

Когда падает сервер Discord Voice, он не отвечает на пинг — и удаляется из системы обнаружения сервисов. Клиент также замечает сбой сервера из-за разрыва голосового соединения WebSocket, тогда он запрашивает пинг голосового сервера через шлюзовое соединение WebSocket. Сервер Discord Guilds подтверждает сбой, консультируется с системой обнаружения сервисов и назначает группе новый сервер Discord Voice. Затем Гильдии Discordов отправляют все объекты состояния голоса на новый голосовой сервер. Все клиенты получают уведомление о новом сервере и подключаются к нему для запуска настройки мультимедиа.

Довольно часто серверы Discord Voice попадают под DDoS (мы видим это по быстрому увеличению входящих IP-пакетов). В этом случае мы выполняем такую же процедуру, как при сбое сервера: удаляем его из системы обнаружения сервисов, выбираем новый сервер, переводим на него все объекты состояния голосовой связи и уведомляем клиентов о новом сервере. Когда DDoS-атака утихает, сервер возвращается обратно в систему обнаружения служб.

Если владелец группы решает выбрать новый регион для голоса, мы выполняем очень похожую процедуру. Сервер Discord Guilds выбирает наилучший доступный голосовой сервер в новом регионе, консультируясь с системой обнаружения сервисов. Затем он переводим на него все объекты состояния голосовой связи и уведомляем клиентов о новом сервере. Клиенты разрывают текущее соединение WebSocket со старым сервером Discord Voice и создают новое соединение с новым сервером Discord Voice.

Вся инфраструктура Discord Gateway, Discord Guilds и Discord Voice поддерживает горизонтальное масштабирование. Discord Gateway и Discord Guilds работают в облаке Google.

У нас более 850 голосовых серверов в 13 регионах (размещёнными более чем в 30 дата-центрах) по всему миру. Такая инфраструктура обеспечивает большую избыточность на случай сбоев в дата-центрах и DDoS. Мы работаем с несколькими партнёрами и используем свои физические серверы в их дата-центрах. Совсем недавно добавили регион Южной Африки. Благодаря инженерным усилиям как в клиентской, так и в серверной архитектуре, теперь Discord способен обслуживать одновременно более 2,6 миллиона пользователей голосового чата с исходящим трафиком более 220 Гбит/с и 120 млн пакетов в секунду.

Мы постоянно следим за качеством голосовой связи (метрики поступают с клиентской стороны на серверы бэкенда). В будущем эта информация поможет в автоматическом обнаружении и устранении деградаций.

Для скринкастов нужно ещё больше полосы, чем для видео, из-за более высокого FPS и разрешения, чем у обычной веб-камеры. Мы сейчас работаем над поддержкой аппаратное кодирования видео в десктопном приложении.

Читайте также: