Как клиент Skype для бизнеса Online доступен за брандмауэром или маршрутизатором NAT?

Я пытаюсь понять, как работает Skype для бизнеса Online на сетевом уровне.

В SBO все серверы находятся где-то в облаке MS. Как клиент, у меня есть интернет-соединение, поэтому я могу общаться с серверами, сигнализировать о своем состоянии, инициировать звонки и так далее.

Но как сервер достигает моего клиента, когда кто-то связывается со мной, и мой клиент обычно находится за маршрутизатором NAT и / или межсетевым экраном, который не разрешает входящие соединения?

Будет ли это просто не работать в этом случае, или клиент использует такие методы, как опрос сервера (длительный опрос или аналогичный), поэтому все сетевые подключения всегда инициируются клиентом?

1 ответ

Решение

Для базового обзора подключения с высоты птичьего полета я могу порекомендовать эту статью с Deeplink в соответствующую часть.

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

Что касается того, как это работает, я не нашел официальных документов от Microsoft, но обычно такие соединения работают так:

Способ отправки мгновенных сообщений заключается в том, что клиент (Skype для бизнеса) открывает TCP-соединение с сервером обмена сообщениями. Это соединение должно оставаться открытым до тех пор, пока телефон включен. К счастью, TCP-соединение не использует абсолютно никакой полосы пропускания, когда ничего не передает, поэтому не тратит много данных, радиопередатчик может отключиться и т. Д.

Соединение может оставаться открытым неограниченно долго, однако за NAT инфраструктура NAT хранит таблицу открытых соединений, которые она обрабатывает, и отбрасывает соединения, которые простаивали в течение некоторого времени, обычно 10-15 минут. Ни один конец не получает уведомление об этом. Таким образом, это выполняется путем отправки пакета поддержки TCP, который обновляет запись в таблице соединений NAT оператора. Это стоит всего около 50 байтов или около того, и это нужно делать каждые несколько минут.

Что касается VoIP, то насколько я знаю, что ICE используется, вы можете проверить эту действительно хорошую статью Джеффа Шерца.

Другие вопросы по тегам