Dropbox: взгляд изнутри |
Здравствуйте, гость ( Авторизация | Регистрация )
Dropbox: взгляд изнутри |
20.12.2012 - 14:35
Сообщение
#1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Goddess Bunny Текущее настроение: Вст. ник | Цитата Группа: Супер Стар Сообщений: 2564 Регистрация: 15.02.2007 Пользователь №: 8842 Из: Екатеринбург Награды: 8 Подарки: 17 Репутация: 127 |
В этой статье я расскажу о внутреннем устройстве популярного сервиса облачного хранения Dropbox. В частности, будет затронуто устройство протокола Dropbox, а также показана статистика его использования в некоторых странах Европы. Кроме этого, я сравню его с другими сервисами, такими как iCloud, Google Drive и SkyDrive. Статья сугубо техническая. Не будет никаких сводных таблиц со стоимостью за Гб и анализом того, сколько еще можно получить за приглашенных «друзей». Текст основан на научной статье “Dropbox изнутри: Изучаем сервисы облачного хранения” (Inside Dropbox: Understanding Personal Cloud Storage Services). PDF В последние несколько лет произошел огромный скачок популярности сервисов облачного хранения данных. В гонке вооружений участвуют все крупные игроки и несколько молодых стартапов. В основном, вся информация о внутреннем устройстве сервисов и реальных цифрах их использования — это тайна за семью печатями. Нас кормят только данными, прошедшими через отдел маркетинга, что, безусловно, несколько отличается от реальности. Поэтому давайте копнем поглубже вместе с ребятами Idilio Drago, Anna Sperotto, Marco Mellia, Ramin Sadre, Maurizio M. Munafò и Aiko Pras — авторами исследования. ВступлениеDropbox клиент разработан в основном на языке Python с использованием сторонних библиотек, таких как librsync. Клиент поддерживает все основные ОС: Windows, Mac, Linux. Использование Python однозначно говорит о том, что клиент разрабатывался с учетом облегченного портирования на различные платформы. Основной элемент системы — это блок (chunk) размером до 4 Mb. В случае, если файл большего размера, он разбивается на несколько блоков, и каждый блок воспринимается системой независимо от других. Для каждого блока вычисляется SHA256 хеш, и эта информация является частью метаинформации о файле. Dropbox уменьшает объем передаваемых данных за счет передачи только разницы между измененными блоками файла. Кроме того, локально он содержит всю метаинформацию по файлам, которую синхронизирует с сервером и передает только изменения с прошлой версии (incremental updates). Dropbox использует два типа серверов: управляющий (control) и сервер данных (data storage). Сервера управления находятся под контролем Dropbox, сервера данных — это сервера Амазона (Amazon S3, EC2). Для коммуникациями с серверами во всех случаях используется HTTPS. Доменные имена, используемые Dropbox, всегда заканчиваются на dropbox.com. В таблице ниже приведены поддомены для управляющих серверов и серверов данных.
Dropbox: изнутриПоскольку Dropbox использует HTTPS для шифрования всего трафика между серверами, простой перехват не даст никакой полезной информации. Для исследования мы устанавливали Squid и направляли весь трафик с компьютера под Linux на этот прокси. Также на прокси поставили SSL-bump, чтобы можно было расшифровывать SSL. Последним шагом устанавливаем самоподписанный сертификат на Squid и изменяем сертификат внутри запущенного Dropbox приложения. Данная конфигурация позволяет расшифровать и просмотреть трафик Dropbox. Иллюстрация показывает протокол, используемый Dropbox для загрузки локально измененных блоков на свои сервера. После регистрации клиента на управляющих серверах clientX.dropbox.com, команда list получает изменения в метаданных, которые показывают разницу между локальной копией и тем, что находится на сервере. Как только происходит локальное изменение файлов, Dropbox вызывает команду commit_batch (client-lb.dropbox.com) и посылает измененные метаданные на сервер. После этого сервер отвечает, какие блоки ему необходимы, используя команду need_blocks, и клиент отсылает эти блоки на Amazon (dl-clientX.dropbox.com). Сохранение каждого блока подтверждается командой ОК. После этого локальный клиент еще раз раз посылает команду commit_batch на сервер и получает подтверждение, что все блоки получены. Транзакции сохранения данных могут выполняться параллельно. Протокол управленияDropbox использует следующие группы управляющих серверов:
Набор данных и популярность клиентовМы избрали пассивный способ наблюдения за Dropbox. Для сбора трафика использовался open source инструмент Tstat. Tstat позволяет собирать разнообразную информацию о ТСР, предоставляя сведения более, чем о сотне разнообразных параметров соединения. Для анализа Dropbox мы предприняли несколько дополнительных шагов. Поскольку Dropbox использует HTTPS, мы установили, что имя во всех сертификатах, используемых Dropbox — *.dropbox.com. Это было важно для правильной классификации трафика. Мы пополнили открытую информацию записями с серверов DNS, к которым обращались клиенты. Таким образом мы связали IP адреса и имена серверов. Tstat возвращал незашифрованную информацию об устройстве и именах директорий, которыми обменивался клиент и сервер уведомлений. Данные были получены с помощью установки Tstat в 4 точках в Европе. Записи с точек, обозначенных как Home 1 и Home 2, составляют данные пользователей известного интернет-провайдера (ISP), предоставляющего интернет по ADSL и оптическому кабелю. Данные, обозначенные как Campus 1 и Campus 2, были собраны в университетах. Исследования проводились с 24 Марта 2012 по 5 Мая 2012.
Ниже приведен график, который показывает, сколько различных IP адресов связывалось с облачным сервисом хранения хотя бы раз в день. Второй график показывает, сколько данных было передано на это облачное хранилище в день. Хотелось бы обратить внимание на следующее:
Для сравнения приведем данные использования сервисов YouTube и Dropbox в Campus 2. Таблица показывает суммарный трафик Dropbox, который мы отследили в ходе наших измерений.
Анализ трафикаГрафики показывают куммулятивную функцию распределения для различного количества блоков. Оказалось, что более, чем в 80% процентах случаев, количество блоков при сохранении данных не превышает 10. График для данных с точки Home 2 существенно отличается от остальных, так как здесь мы наблюдали одного клиента, который постоянно, на протяжении нескольких дней, пересылал одни и те же блоки. Анализ полученных данных показывает, что основной сценарий использования Dropbox — это постоянная работа с небольшими, постоянно изменяемыми файлами. Как мы рассмотрели выше, Dropbox использует центральные сервера для хранения данных. Это сразу наводит на вопрос о скорости работы сервиса для пользователей, которые находятся географически далеко от серверов. Максимальная скорость, которую мы наблюдали, была близка к 10 Mbit/s и наблюдалась на файлах с размером больше 1 Mb. Средняя скорость для Campus 2 была: запись — 462 kbits/s и чтение — 797 kbits/s. Для Campus 1: запись — 359 kbits/s и чтение — 783 kbits/s. Также из графиков видно, что скорость существенно зависит от количества блоков: чем больше блоков, тем ниже скорость. Изменения в Dropbox 1.4.0Начиная с версии 1.4.0, Dropbox добавил две новые команды: store_batch и retrieve_batch, что позволяет работать с несколькими блоками одновременно. Это улучшение должно существенно улучшить пропускную способность сервиса. Количество устройствГрафик показывает количество установок Dropbox у пользователей дома. Примерно в 60% случаев у пользователей существует только 1 устройство с Dropbox. У 25% пользователей дома есть 2 устройства, использующих Dropbox. Среднее время использованияГрафик показывает среднее время использования Dropbox. Анализируя время использования, мы смотрели, сколько времени клиент поддерживал связь с сервером уведомлений. Поскольку клиент всегда держит это соединение открытым либо открывает его заново, это хороший способ оценить время использования. Из графика видно, что время использования Dropbox в большинстве случаев меньше 4 часов. Исключение составляет Campus 1, где много рабочих компьютеров и компьютеров, работающих постоянно. Исходные данныеВы можете загрузить исходные данные, которые использовались в этой статье для дальнейшего анализа. (Исходные данные). Хочу обратить внимание, что оригинальная статья содержит больше информации. В ней могут быть ответы на вопросы, которые могут возникнуть у вас после прочтения. -------------------- В Интернете тебя встречают по аватару, а провожают по умению обособлять запятыми деепричастные обороты. Мои друзья - аморальные ублюдки! Но я люблю их не за это... Не пускайте детей в интернет. Интернет от детей тупеет ©Ничто не предвещало беды - кот спал в кресле, мухи совокуплялись на отвесных поверхностях, я ел борщ...© Если вас положили в воду и начали размешивать, знайте – вас разводят! © бНОПНЯ вЭлкам for great justice frequently asked questionsОт нефиг делать, на досуге, слова рифмую я друг с другом. Вчера, в подъезде, слово бал - я феерично станцевал © Пастор *”``”*°•. ۞☯Церковная лавка☯۞.•°*”`”*°•. Такие парни, как я, на футбол без бензопилы и канистры бензина не ходят - не интересно.© Сколько бы обо мне не говорили плохого, мне всегда есть, что добавить.© -------------------- Подарки: (Всего подарков: 17 ) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
19.12.2012 - 19:05
Сообщение
#2
|
|
Я нарисую свой мир яркими красками,даже если в руках будет уголь Текущее настроение: Вст. ник | Цитата Группа: Творцы Сообщений: 25230 Регистрация: 10.03.2008 Пользователь №: 17393 Награды: Нет Подарки: 310 Пол: ? Репутация: 3533 |
У меня нет вопросов. Юзаю уже пол года. Всё отлично, всем довольна.
-------------------- Подарки: (Всего подарков: 310 ) |
|
|
|
|
20.12.2012 - 7:27
Сообщение
#3
|
|
Верю в чудеса Текущее настроение: Вст. ник | Цитата Группа: Творцы Сообщений: 23040 Регистрация: 1.06.2007 Пользователь №: 10971 Награды: 131 Подарки: 194 Пол: ? Репутация: 2809 |
В годы студенчества - самый лучший файлообменник. Сколько он повидал сканов лекций, ответников и курсовых. Ууууууууух.
-------------------- Передать смысл моей жизни, то же самое, что сыграть ногтями на доске пятую симфонию Бетховена. -------------------- Подарки: (Всего подарков: 194 ) |
|
|
|
|
Текстовая версия | Сейчас: 29.03.2024 - 5:37 |