Pull to refresh
0

Высокоскоростной протокол передачи файлов – Aspera FASP

Reading time9 min
Views21K


В настоящее время, в век популярности Интернет и разнообразного контента, в том числе медийного, размер которого в HD-качестве может занимать несколько Гигабайт, наиболее остро встала проблема скоростной передачи файлов по сети. В качестве примера можно рассмотреть работу новостной телестудии, где репортер, находясь на другом континенте, должен быстро передать снятый в высоком качестве репортаж в центральную студию для обработки и запуска в эфир. Понятно, что здесь скорость передачи играет ключевую роль, поскольку новость уже не будет новостью, если она появится через пару дней.

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

Первое, что приходит на ум — это воспользоваться протоколом FTP. И, действительно, FTP, работающий на базе Transmission Control Protocol (TCP), будет отлично справляться, если потребуется передавать файлы на небольшие расстояния или по “хорошей” сети. Но в приведенных выше примерах скорость протокола FTP будет очень низкой из-за неэффективной работы TCP на сетях с задержками и потерей пакетов. Увеличение канала при этом не решает проблему, и дорогой канал остается не утилизированным.

У протокола Aspera FASP нет недостатков TCP, и он максимально утилизирует любой доступный канал, увеличивая скорость передачи данных по сравнению с FTP в сотни раз. До появления Aspera, данные записывались на жесткие диски или ленты и передавались курьерами, что не очень быстро, кроме того существовал риск потери данных.

FASP – это высокоскоростной протокол для передачи файлов с гарантированной доставкой, разработанный и запатентованный компанией Aspera (www.asperasoft.com). В 2014 году корпорация IBM покупает компанию Aspera и решение попадает в облачное подразделение IBM.

Аббревиатура FASP расшифровывается как fast, adaptive, secure protocol, что в переводе с английского означает быстрый, адаптивный и безопасный протокол. Быстрый, потому что эффективно использует всю доступную полосу пропускания; адаптивный, потому что адаптируется под состояние сети и при этом “дружественен” для другого трафика; а безопасный, потому что использует шифрование как при передаче, так и в “состоянии покоя”.

Для того, чтобы понять преимущества FASP, давайте вспомним как работает протокол TCP. В 70-х годах прошлого века перед учеными поставили задачу разработать протокол, который сможет перенести ядерный удар. Требовалось создать протокол, который смог бы безопасно передавать данные. Поэтому при создании TCP основные усилия были направлены на создание механизма именно надежной, а не скоростной передачи. В те годы не было ни мобильных, ни спутниковых сетей, а единственный трансатлантический канал из США в Европу имел скорость 64 Кбит/сек, что показывает состояние технологии на тот период. TCP был разработан так, что скорость передачи обратно пропорциональна расстоянию между конечными точками. Кроме того, в случае потери пакетов TCP считает, что канал перегружен, и самостоятельно уменьшает скорость передачи. Производительность TCP снижается с ростом расстояния передачи и из-за низкого качества сети. Чем больше расстояние, тем больше задержка, и тем ниже скорость передачи. Задержку обычно измеряют величиной Round-Trip Time (RTT). Это время, которое потребуется на отправку пакета и получение подтверждения от получателя. Задержка возникает из-за законов физики, ограничивающих скорость света или электромагнитного сигнала. Например, задержка при передаче по спутниковым сетям может достигать 800 мс. Более того, при передаче на большие расстояния по глобальной сети Интернет (WAN) пакет должен пройти через большое количество маршрутизаторов прежде, чем его получит получатель. Маршрутизатору требуется время на обработку пакета, а если он настроен неправильно или перегружен, может произойти потеря пакета. Чем выше количество потерянных пакетов, тем более затратной по времени становится передача. На рисунке 1 показано, что TCP имеет хорошую производительность в локальных сетях (LAN) относительно доступной пропускной способности сети, но, при этом, чем больше RTT и потеря пакетов, тем ниже будет производительность передачи.

Также, производительность протокола TCP не растет с увеличением канала. Другими словами, если у вас медленная передача на канале в 10 Мбит/c, нет никаких гарантий, что при увеличении канала до 1 Гбит/c скорость вырастет. Конечно, если необходимо передать файл на соседнюю улицу, рост производительности будет заметен, но, если стоит задача передать данные на большие расстояния, то увеличение канала до 1 Гбит/c, скорее всего, мало чем поможет.


Рисунок 1 Производительность TCP

TCP — сессионный протокол, т.е. при передаче он устанавливает соединение, как видно на рисунке 2. все отправленные пакеты получают подтверждение в виде ACK-пакетов. Задержка (RTT) составляет разницу во времени между отправкой пакета и получением подтверждения (ACK).


Рисунок 2 Обмен пакетами TCP

Количество пакетов, которые может отправить TCP в момент времени определяется механизмом под названием окно TCP (TCP Sliding Window). Окно TCP управляется алгоритмом предотвращения перегрузки AIMD (Adaptive Increase Multiplicative Decrease) и контролем передачи (Flow Control), регулируя скорость отправки пакетов. Благодаря этому TCP может «быть уверен» в том, что пакеты отправляются не быстрее, чем их может принять получатель. Как показано на рисунке 3, благодаря окну TCP, отправитель может одновременно высылать несколько пакетов, но, при этом, если не будет получено подтверждение, TCP заблокирует передачу любых последующих пакетов.


Рисунок 3 TCP Sliding Window

В случае обнаружения потери пакета/подтверждения, отправитель, используя AIMD алгоритм, уменьшает размер окна TCP вдвое или до нуля. Ситуация, когда отправитель не дожидается подтверждения доставки и уменьшает окно передачи, наиболее часто проявляется при передаче на большие расстояния, т.е. в сетях с большим RTT. При этом, если произойдет еще и потеря пакетов, скорость передачи уменьшится практически до нуля. Если представить скорость передачи протокола TCP в виде графика, получится так называемая “пилообразная” функция (sawtooth pattern).


Рисунок 4 TCP AIMD “Sawtooth” Pattern

Как видно на рисунке 4, по причине использования в TCP алгоритма предотвращения перегрузок AIMD скорость передачи в TCP возрастает до тех пор, пока не случается “перегрузка”, в результате чего скорость резко падает, и “пилообразный” процесс постоянно повторяется, не давая протоколу TCP полностью утилизировать доступный канал. В интернете есть инструменты, которые позволяют оценить эффективную скорость передачи по TCP (http://asperasoft.com/performance_calculator/). Например, на сети с пропускной способностью 100 Мбит/с, RTT=150 мс и потерей пакетов 1,5% скорость передачи будет меньше 1 Мбит/c, при этом не важно какой будет канал: 100 Мбит/с или 1 Гбит/сек, т.к. скорость передачи в TCP зависит от величины RTT и потери пакетов.

Протокол FASP


Транспортный протокол Aspera FASP, в отличие от TCP, отлично работает в любой сети, обеспечивая гарантированную доставку. Этот протокол эффективно передает данные неограниченного объёма по глобальной сети Интернет, спутниковым и мобильным каналам, и при этом не снижает свой эффективности в сетях с повышенным RTT и потерей пакетов. Протокол обеспечивает максимальную скорость и механизм предотвращения перегрузки, а также контроль политик передачи, безопасность и надежность.


Рисунок 5 Производительность FASP

При работе в локальной сети разница между TCP и FASP не существенна, но, как только в сети между двумя конечными точками увеличивается RTT и потеря пакетов, производительность FASP становится существенно лучше, (рисунок 5). FASP передает данные быстрее, максимальным образом используя доступный канал передачи. При этом нет никаких ограничений в теоретической максимальной скорости передачи, которая скорее может быть ограничена аппаратными ресурсами, например, производительностью дисковой подсистемы. Передача по протоколу TCP показывает “пилообразный” график, чего вы никогда не увидите в FASP, где скорость передачи выйдет на заданный уровень (Target Rate) и будет его придерживаться вне зависимости от наличия потерянных пакетов. Конечно, потерянные данные будут переданы заново, но это не окажет влияния на производительность передачи. Используя Aspera FASP можно гарантировать предсказуемое время передачи независимо от качества сети.

Протокол FASP работает на базе протокола UDP (User Datagram Protocol) на транспортном уровне модели OSI, а, так как UDP не гарантирует доставку, то алгоритмы предотвращения перегрузки и управление передачей реализованы на прикладном уровне.

FASP не использует механизм окна TCP и не зависит от расстояния передачи. Передача начинается на определённой скорости и отправляет данные на скорости, рассчитанной математическим алгоритмом. Протокол FASP использует механизм негативных подтверждений (NACK); это означает, что, при наличии потерянного пакета, получатель сообщит, что не получил этот пакет, при этом отправитель будет продолжать передачу. FASP, в отличие от TCP, не ожидает получения подтверждения, прежде чем выслать следующие данные. Поскольку для передачи файлов не важно, в какой последовательности придут пакеты, передача данных не останавливается при потерях пакетов, как это происходит в TCP. Данные эффективно продолжают передаваться на высокой скорости. Отправитель заново вышлет лишь потерянный пакет, а не все окно пакетов, как в TCP, не останавливая при этом текущую передачу. Использование протокола FASP позволяет свести к минимуму передачу служебной информации (overhead), позволяя получить цифру меньше, чем 0,1% при 30%-й потере пакетов.


Рисунок 6 Утилита сравнения производительности Aspera и TCP

На рисунке 6 приведено сравнение скорости передачи файла, размером в 100 Гбайт в сети с пропускной способностью 100 Мбит/c, RTT равным 150 мс, и 2%-й потерей пакетов. Как видно, эффективная скорость передачи файлов равна 98 Мбит/c при использовании Aspera FASP, и 0,7 Мбит/c при использовании протокола TCP.

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

Доступная полоса пропускания канала определяется на основе механизма управления скоростью FASP. Адаптированный механизм управления скоростью в протоколе FASP на постоянной основе отсылает пробные пакеты, с помощью которых измеряется так называемая задержка нахождения в очереди (queueing delay). Т.е., когда пакет попадает на маршрутизатор, его нужно обработать и переслать. Т.к. маршрутизатор может обработать один пакет в единицу времени, то, при получении пакета раньше, чем его сможет обработать маршрутизатор, пакет помещается в очередь. Таким образом, формируется задержка нахождения в очереди. FASP использует измеренные значения задержки нахождения в очереди как главный индикатор перегрузки сети (или дисковой подсистемы). Сеть постоянно опрашивается, скорость передачи увеличивается при уменьшении значения задержки нахождения в очереди ниже целевого значения (показывает, что канал не полностью утилизирован и необходимо поднять скорость) и уменьшается при увеличении размера задержки нахождения в очереди выше заданного уровня (показывает, что канал полностью утилизирован и возможна перегрузка). Постоянно отсылая в сеть пробные пакеты, FASP получает точные значения задержки в очереди на всем маршруте передачи. При увеличении задержки в очереди, сессия FASP уменьшает скорость передачи пропорционально разнице между целевой и текущей задержкой в очереди, позволяя не перегружать сеть. При снижении нагрузки на сеть, сессия FASP быстро увеличивает скорость пропорционально целевой задержке, утилизируя при этом почти 100% доступной пропускной способности канала.

Кроме эффективной утилизации канала, основанной на измерении задержек в механизме управления скоростью, FASP позволяет равномерно делить полосу пропускания с другим трафиком TCP, а также задавать приоритеты на различные передачи файлов.

Альтернативные технологии и FASP


На сегодняшний день существуют различные технологии ускорения передачи данных по WAN, например, технология сжатия (пр. Riverbed, Silverpeak). Данная технология заключается в компрессии файлов у отправителя и дальнейшей декомпрессии у получателя. Т.е., на самом деле, вы не ускоряете передачу данных в чистом виде, а просто пересылаете меньше данных по сети WAN. Но возможны сценарии, когда файлы не могут быть сжаты, или они уже заархивированы или зашифрованы — в этом случае роста производительности не произойдет.

Другая технология — это Traffic Shaping. В ней на разные типы траффика выставляется разный приоритет. Например, имеет смысл выставить высокий приоритет на трафик приложений, с которыми работает команда менеджеров по продажам, поскольку этот трафик является критичным для бизнеса. Трафику из системы SAP или электронной почты можно задать средний приоритет, а просмотру WEB страниц низкий. Понятно, что это позволяет настроить качество сервиса на определенные задачи, но этот метод не имеет никакого отношения к ускорению передачи данных.
Еще один метод ускорения передачи – это кэширование. Идея данного способа заключается в том, чтобы кэшировать данные, которые часто передаются по сети. Программно-аппаратный комплекс, который стоит на стороне отправителя опрашивает программно-аппаратный комплекс на стороне получателя на предмет наличия у него передаваемого файла или его части, и, в случае, если они имеются, то файл не передается, а извлекается из кэша. Недостатками этого метода являются дорогое оборудование: программно-аппаратный комплекс, который нужно установить в каждой локации, и подход “все или ничего” (метод не работает в случаях, если объект не найден в кэше или был изменен).

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

Подводя итог, приведем основные технологические преимущества Aspera:
• Возможность пересылать очень объемные файлы (от 500 Гбайт до нескольких Тбайт). Клиенты Aspera регулярно отправляют файлы размером больше 1 ТБ как в облачное, так и в локальное хранилище, передавая больше 10 ТБ в одной сессии.
• Передача на огромные расстояния в сетях с большой задержкой (round-trip time) и потерей пакетов. Например, компания BGI передала геномные данные между США и Китаем на скорости 10 Гбит/сек. (http://phys.org/news/2012-06-bgi-genomic-gigabits-china.html).
• Гарантированная и предсказуемая доставка файлов неограниченного объёма на большие расстояния и на максимальной скорости.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+9
Comments20

Articles

Information

Website
www.ibm.com
Registered
Founded
Employees
1,001–5,000 employees