Skype позволяет нам делать звонки с хорошей слышимостью, независимо от нашего местонахождения, отправлять мгновенные сообщения, переключаться между текстовой и голосовой связью, делать видеовызовы, устанавливать конференц-связь, передавать файлы и звонить на городские и мобильные номера за малую долю от той суммы, которую мы бы потратили, используя обычный телефон. Skype действительно совершает революцию в человеческом общении, им пользуются более 42 млн. человек, но знаете ли вы как работает этот сервис?
Skype – это разновидность клиента для голосовой связи через Интернет (VoIP), основанного на пиринговой (Р2Р) технологии. Разработчики утверждают, что Skype обеспечивает лучшее качество передачи голоса, чем аналогичные приложения, такие как MSN или Yahoo Messenger.
В сети Skype существует два типа машин: обычный хост (Skype-клиент) и супер-узел (Super Node, SN). Обычный хост – это компьютер обычного пользователя, на который установлено приложение Skype и который подключен к сети. Супер-узлы – конечный адресат для обычных хостов. Иными словами, обычные хосты подключаются к супер-узлам. Супер-узлом может стать любой компьютер с публичным IP и надлежащей конфигурацией оборудования.
Само понятие супер-узлов было введено для пиринговых сетей третьего поколения. Они позволили улучшить показатели поиска, снизить задержку передачи файлов, повысить масштабируемость сети, а также расширили возможность возобновления прерванных закачек и одновременной загрузки сегментов одного файла из нескольких источников (пиров). В основном супер-узлы помогают обычным хостам соединяться друг с другом и служат эффективными проводниками зашифрованного сетевого трафика. Супер-узлы отвечают также за «глобальную индексацию». Эта технология позволяет выполнять поиск других пользователей в сети. Skype гарантирует, что вы сможете найти пользователя, если он зарегистрирован и входил в систему в течение последних 72 часов.
Для успешного запуска Skype обычный хост должен подключиться к супер-узлу и зарегистрироваться на специальном логин-сервере. Логин-сервер является единственным нераспределенным узлом сети, ее центром, где хранятся имена и пароли всех пользователей Skype. Все супер-узлы подключаются к логин-серверу, чтобы проверить имя пользователя и пароль клиента.
Чтобы программа Skype знала, к какому из супер-узлов ей подключаться, в нее загружена таблица с IP-адресами и соответствующими портами супер-узлов. Эта таблица называется хост-кэш. Каждый раз, когда вы загружаете Skype, приложение считывает данные из хост-кэша, берет первый IP-адрес и порт оттуда и пытается подключиться к этому супер-узлу. Если соединиться по какой-либо причине не удается (супер-узел в оффлайне, или не является более частью сети и т.д.), то приложение считывает следующую строку из таблицы. В случае если она не сможет подключиться ни к одному из IP-адресов, то пользователь получит ошибку при запуске. Таким образом, хост-кэш должен содержать как минимум одну работающую запись для того, чтобы Skype мог подключиться и заработать.
Что интересно в сети Skype, так это ее способность к «самомодификации». Если у вас установлено приложение, ваш компьютер может превратиться в супер-узел, и вы об этом даже не узнаете, потому что эти возможности не имеют заметного влияния на производительность компьютера. Супер-узлы в основном хранят адреса пользователей Skype (до нескольких сотен), не передавая голосовых или текстовых данных и не участвуя в файлообменных процессах. Получается, что чем больше пользователей Skype появляется онлайн, больше супер-узлов становятся доступны для расширения пропускной способности сети.
Видео- и голосовая связь по Skype устанавливается через протокол UDP. Если оба Skype-клиента имеют реальные IP-адреса, то трафик между ними идет напрямую по UDP. Если же один или оба абонента находятся за брандмауэром или маршрутизатором и не имеют реального IP адреса, то они посылают голосовой трафик другому онлайновому узлу Skype. Здесь также используется UDP или другой протокол - TCP.
Поток голосовых данных (то есть ваша речь) сжимается на компьютере специальным кодеком и разбивается на так называемые пакеты (одна секунда разговора - это примерно в 140 голосовых пакетов). Прибывать к месту назначения они могут разными путями: окончательная сборка данных все равно выполняется в конечной точке. По дороге пакеты могут теряться - тогда голос собеседника может ненадолго пропадать (UDP не гарантирует доставку пакетов, но это позволяет ему гораздо быстрее и эффективнее доставлять данные). Интересен тот факт, что даже если обе стороны не говорят, обмен голосовыми пакетами тем не менее продолжается. Целью этих так называемых «пакетов молчания» является поддержание соединения.
Что касается безопасности и конфиденциальности, Skype использует Advanced Encryption Standard (симметричный алгоритм блочного шифрования), известный как «Рэйндал» (Rijndael), применяемый также правительственными организациями США для защиты конфиденциальных данных.
Использование всех вышеописанных технологий и есть секрет успеха Skype. Специальные кодеки сжимают голосовой поток так, что связь можно обеспечивать даже при медленном интернет-соединении. Skype без проблем работает на компьютерах с брандмауэром. Наконец, Skype обеспечивает высокий уровень безопасности: все, что передается через сеть, шифруется и даже если злоумышленники перехватят передаваемые данные, расшифровать их не удастся. А еще Skype очень симпатично выглядит и невероятно просто в настройке. Убедиться в этом просто: зайдите на Skype.com, скачайте приложение и попробуйте позвонить!
По материалам: papatoto.com
Переводчик: Надежда Пахмутова