3

Мне интересно, как Skype может отправлять файлы напрямую пользователям, которые обычно находятся за брандмауэром? Как это работает, так как мне нужно разработать нечто подобное, когда один локальный веб-сервер (за брандмауэром) должен иметь возможность отправлять / передавать файлы напрямую на другой идентичный?

Я понимаю, что должен быть какой-то общедоступный центральный сервер, через который оба обнаруживают друг друга, и я планирую иметь такой, но как после этого происходит прямое соединение?

Спасибо

1 ответ1

9

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

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

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

Итак, в основном, сообщение выглядит так:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .