Здравствуйте, гость ( Авторизация | Регистрация )


> Dropbox: взгляд изнутри
Пастор
сообщение 20.12.2012 - 14:35
Сообщение #1
  


Goddess Bunny
******

Текущее настроение:

Вст. ник | Цитата

Группа: Супер Стар
Сообщений: 2564
Регистрация: 15.02.2007
Пользователь №: 8842
Из: Екатеринбург

Награды: 8



Репутация:   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. В таблице ниже приведены поддомены для управляющих серверов и серверов данных.

Поддомен Хостинг Описание
client-lb/clientX Dropbox Meta data
notifyX Dropbox Notifications
api Dropbox API control
www Dropbox Web servers
d Dropbox Event logs
dl Amazon Direct links
dl-clientX Amazon Client storage
dl-debugX Amazon Back traces
dl-web Amazon Web storage
api-content Amazon API storage


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 использует следующие группы управляющих серверов:

  • Уведомления (notifications).
    Dropbox держит постоянное открытое TCP соеденинение с серверами уведомлений (notifyX.dropbox.com). Это необходимо для получения информации об изменении файлов, которое могло произойти на других клиентах. По сравнению с другим трафиком, эта информация не шифруется. Используется задержка HTTP ответа для быстрого уведомления клиентов (push mechanism). Клиент посылает запрос, и сервер задерживает ответ примерно на 60 секунд. По истечении 60 секунд, клиент немедленно посылает следующий запрос на сервер. Если ответ сформирован раньше, то сервер отвечает немедленно.
  • Управление метаданными (meta-data administration)
    Сервера управления метаданными отвечают не только за информирование об изменениях в блоках и файлах, но также и за авторизацию (authentication) клиента. Для этих серверов используются следующие доменные имена: client-lb.dropbox.com, clientX.dropbox.com. Кроме этого, сервера управления могут контролировать поведение клиента. В момент эксперимента было замечено, что сервера могут указать клиенту максимальное количество блоков, которое он может посылать на сервер. Это используется для управления трафиком, который генерирует клиент.
  • Системные сообщения (system logs)
    сервера предоставляются Амазоном и имеют название dl-debug.dropbox.com; остальные сообщения идут непосредственно на Dropbox d.dropbox.com.


Набор данных и популярность клиентов

Мы избрали пассивный способ наблюдения за 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 адресов Обьем данных (GB)
Campus 1 Wired 400 5,320
Campus 2 Wired/Wireless 2,528 55,054
Home 1 FTTH/ADSL 18,785 509,909
Home 2 ADSL 13,723 301,448

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



Второй график показывает, сколько данных было передано на это облачное хранилище в день.



Хотелось бы обратить внимание на следующее:
  • Несмотря на большое количество устройств, использующих iCloud, количество данных, передаваемое на этот сервис, соизмеримо с другими сервисами.
  • В момент появления Google Drive, трафик, передаваемый на этот сервис, сделал большой скачок и приблизился к iCloud; в то же время количество инсталляций программы оставалось минимальным.

Для сравнения приведем данные использования сервисов YouTube и Dropbox в Campus 2.



Таблица показывает суммарный трафик Dropbox, который мы отследили в ходе наших измерений.

Campus 1 Campus 2 Home 1 Home 2 Всего
Запросов 167,189 1,902,824 1,438,369 693,086 4,204,666
Обьем (GB) 146 1,814 1,153 506 3,624
Устройств 283 6,609 3,350 1,313 11,561

Анализ трафика

Графики показывают куммулятивную функцию распределения для различного количества блоков.



Оказалось, что более, чем в 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, где много рабочих компьютеров и компьютеров, работающих постоянно.

Исходные данные


Вы можете загрузить исходные данные, которые использовались в этой статье для дальнейшего анализа. (Исходные данные).

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



My Signature
В Интернете тебя встречают по аватару, а провожают по умению обособлять запятыми деепричастные обороты.

Мои друзья - аморальные ублюдки! Но я люблю их не за это...
Не пускайте детей в интернет. Интернет от детей тупеет ©

Ничто не предвещало беды - кот спал в кресле, мухи совокуплялись на отвесных поверхностях, я ел борщ...©

Если вас положили в воду и начали размешивать, знайте – вас разводят! ©
бНОПНЯ вЭлкам for great justice frequently asked questions

От нефиг делать, на досуге, слова рифмую я друг с другом. Вчера, в подъезде, слово бал - я феерично станцевал © Пастор

*”``”*°•. ۞☯Церковная лавка☯۞.•°*”`”*°•.
Такие парни, как я, на футбол без бензопилы и канистры бензина не ходят - не интересно.©

Сколько бы обо мне не говорили плохого, мне всегда есть, что добавить.©


--------------------
Подарки: (Всего подарков: 17 )
Подарок
Подарил(а): львица
Подарок
Подарил(а): Мэри
Подарок
Подарил(а): Мэри
Go to the top of the page
 
+Quote Post
 
 
Start new topic
Ответов
Бес в ребро
сообщение 19.12.2012 - 19:05
Сообщение #2
  


Я нарисую свой мир яркими красками,даже если в руках будет уголь
********

Текущее настроение:

Вст. ник | Цитата

Группа: Старейшины
Сообщений: 5230
Регистрация: 10.03.2008
Пользователь №: 17393

Награды: Нет

Пол: ?


Репутация:   3540  
 
 
У меня нет вопросов. Юзаю уже пол года. Всё отлично, всем довольна.


--------------------
Подарки: (Всего подарков: 319 )
Подарок
Подарил(а): tutturu!
Подарок
Подарил(а): Nele
Go to the top of the page
 
+Quote Post
 
Foxik
сообщение 20.12.2012 - 7:27
Сообщение #3
  


Верю в чудеса
**********

Текущее настроение:

Вст. ник | Цитата

Группа: Творцы
Сообщений: 23040
Регистрация: 1.06.2007
Пользователь №: 10971

Награды: 131

Пол: ?


Репутация:   2809  
 
 
В годы студенчества - самый лучший файлообменник. Сколько он повидал сканов лекций, ответников и курсовых. Ууууууууух.


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


--------------------
Подарки: (Всего подарков: 195 )
Go to the top of the page
 
+Quote Post
 

Reply to this topicStart new topic


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
 






Moderation Panel
 
 

 

Подарок форуму

100 рублей

500 рублей

1000 рублей

10000 рублей

 


Яндекс цитирования







Текстовая версия Сейчас: 7.12.2019 - 23:33