Ускорение передачи данных по UDP в файловой почте
Сегодня в Интернете используются два основных протокола: TCP и UDP. TCP - это рабочая лошадка Интернета. Ускорение передачи данных UDP - это чистокровная лошадь, созданная для скорости.
Что такое TCP?
В этот протокол встроены механизмы надежности, то есть отправитель автоматически повторно передаст TCP-пакет получателю, если он каким-то образом потерялся в пути.
TCP: основа Интернета
Брандмауэры, маршрутизаторы и коммутаторы в значительной степени оптимизированы под TCP-трафик, что делает TCP естественным выбором для большинства задач, выполняемых сегодня в Интернете. Веб-браузеры, клиенты электронной почты, Facebook, Instagram, Snapchat, биржевые тикеры, Spotify, Slack и FTP-клиенты - вот некоторые из приложений, которые обычно используют TCP. Если вы используете решение для передачи файлов через браузер, то более чем вероятно, что оно использует TCP.
Обеспечение надежности: Роль сообщений Ack в TCP
Когда получатель получает пакет TCP, в ответ отправляется сообщение ACK (Acknowledge), подтверждающее отправителю, что пакет был получен правильно. Этот относительно простой механизм делает протокол TCP очень надежным и простым в использовании для разработчиков.
Отправка ACK-сообщений отправителю может серьезно ограничить производительность (поскольку отправитель должен дождаться ACK от пакета-1 перед отправкой пакета-2). Чтобы устранить некоторые проблемы TCP, за прошедшие годы в протокол было внесено множество усовершенствований.
Масштабируемый размер окна
Позволяет отправителю одновременно отправлять несколько пакетов и ожидать несколько ответов ACK. Данные, отправленные, но еще не подтвержденные ACK, часто называют данными в полете. У отправителя есть ограничение на количество данных в полете, что означает, что отправитель не должен отправлять данные получателю быстрее, чем приемник может их обработать.
Дросселирование полосы пропускания
По сути, это позволяет 10-мегабитному клиенту взаимодействовать с 1000-мегабитным сервером, не перегружая его трафиком. В TCP это основано на идее, что в любой момент времени в полете должно находиться только определенное количество данных.
Выборочные ACK
Позволяет получателю получать ACK-пакеты в любом порядке. Если пакет-1 был потерян, это не помешает отправить пакет-2 и получить ACK до повторной отправки пакета-1.
Недостатки TCP
При отправке TCP-трафика на большое географическое расстояние производительность значительно падает. Поскольку трафик (и ACK) должен пройти через большее количество маршрутизаторов и сетевой инфраструктуры, чтобы добраться до получателя, ему требуется больше времени.
Это время называется задержкой. Если вы просматриваете веб-сайт, расположенный в одной стране, задержка иногда составляет всего 10 миллисекунд. При просмотре веб-сайта, расположенного на другом континенте, вы сразу увидите, что страницы загружаются дольше из-за увеличенной задержки.
Проблема задержки TCP становится чрезвычайно очевидной при передаче файлов через континенты. Отправитель и получатель могут иметь потрясающие 1000/1000-мегабитные соединения, но при передаче файлов получать только 10 мегабит эффективной пропускной способности сети из-за задержки, которая не позволяет им эффективно взаимодействовать при использовании TCP.
Что такое UDP?
UDP - это родной брат TCP. Основное отличие заключается в том, что пакет UDP никогда не получает ответа. Отправитель не знает, дошел ли UDP-пакет до получателя, поэтому этот протокол нельзя назвать надежным. Но он молниеносно быстр, так как не требует ответа на запрос.
UDP: Приоритет скорости над надежностью
UDP отлично подходит для видеозвонков и онлайн-игр. В этих случаях не имеет значения, если несколько пакетов UDP будут отброшены. Пакеты UDP отправляются непрерывно, поэтому вы не заметите этого в видеопотоке. В онлайн-играх вы получите новый UDP-пакет с последними обновлениями в течение нескольких миллисекунд. Потеря нескольких пакетов UDP время от времени не является проблемой. Гораздо важнее передавать данные быстро и с минимальной задержкой.
Повышение надежности UDP для передачи файлов
Изначально UDP может показаться ужасным выбором для передачи файлов. Полное отсутствие надежности может привести к тому, что поврежденные файлы будут повсюду из-за потерянных UDP-пакетов. Отсутствие дросселирования полосы пропускания приведет к тому, что клиенты будут переполнены трафиком и, по сути, уйдут в оффлайн. Чтобы UDP был полезен для передачи файлов, он должен быть надежным так же, как TCP. Для начала отброшенные пакеты должны быть отправлены повторно, а также должна быть предусмотрена возможность дросселирования полосы пропускания. Также необходимо решить проблему безопасности.
Filemail UDP Transfer Acceleration Protocol
Filemail UDP Acceleration Protocol (UAP) - это специализированный протокол передачи файлов, построенный на базе UDP и обеспечивающий молниеносную скорость передачи данных даже в условиях высоких задержек. Он легко превосходит все протоколы на базе TCP, такие как HTTP и FTP, особенно при отправке файлов на большие географические расстояния, где задержка превышает 50 мс.
В 200 раз быстрее
Бенчмарки показывают, что ускорение передачи данных Filemail UDP иногда до 200 раз быстрее, чем FTP, HTTP и другие методы передачи данных, основанные на TCP.
Filemail UAP создавался снизу вверх с одной целью: чрезвычайно быстрая передача файлов из пункта А в пункт Б наиболее безопасным и надежным способом. Ниже приведены некоторые характеристики этого революционного протокола.
Эффективная пропускная способность при передаче файлов из Европы в Австралию через 21 сетевой переход. Оба конца подключены по соединению 1000/1000 Мбит.
Неофициальные сравнения с решениями IBM Aspera, GlobalScape и Signiant для передачи данных по протоколу UDP показывают, что Filemail работает быстрее практически во всех случаях. Некоторые различия в производительности могут быть связаны с тем, что Filemail использует аппаратное ускорение - в частности, набор инструкций AES-NI. Кроме того, протоколы IBM Aspera и Signiant используют отдельный TCP-канал (SSH) для дросселирования пропускной способности, отправки ACK и т. д. Filemail UAP не полагается на более медленный протокол TCP - он использует UDP для передачи данных, ACK'ing, дросселирования полосы пропускания и шифрования.
Безопасность
Весь трафик данных UDP защищен шифрованием AES Galois/Counter Mode (AES-GCM). Это золотой стандарт шифрования на сегодняшний день, который гарантирует, что передаваемые данные не могут быть перехвачены третьей стороной. Каждая сессия передачи данных имеет отдельный ключ, обмен которым между клиентом и сервером осуществляется с помощью шифрования Ривеста-Шамира-Адлемана (RSA).
Аппаратное ускоренное шифрование
Filemail UAP использует набор инструкций AES-NI, представленный AMD и Intel несколько лет назад. Этот набор инструкций позволяет Filemail UAP использовать выделенные аппаратные компоненты для шифрования и дешифрования данных. Это значительно повышает скорость передачи данных. AES-NI поддерживается в таких операционных системах, как Microsoft Windows, macOS, Linux, iOS и Android. Производители оборудования, такие как Intel, AMD, ARM, VIA, Atmel, Samsung, Qualcomm, NXP и Broadcom, также поддерживают его.
Требования к программному и аппаратному обеспечению
Filemail UAP написан на низкоуровневом языке C++ и может работать практически на всех устройствах и операционных системах. В настоящее время доступны бинарные версии для Windows, macOS и Linux. Filemail Desktop - это наш флагманский инструмент передачи данных, использующий UAP. Также доступны консольные приложения. Filemail UAP был сильно оптимизирован и занимает очень мало памяти - всего несколько мегабайт, при этом максимально увеличивая пропускную способность. Кроме того, при отправке файлов на максимальной скорости он обычно использует менее 5 % процессора.
Двунаправленное ускорение переноса
Filemail UAP используется как при загрузке, так и при скачивании файлов с помощью Filemail Desktop. Это означает, что вы, ваши клиенты и деловые партнеры могут воспользоваться преимуществами этой технологии.
Начало работы с Filemail UDP Transfer Acceleration
Filemail UDP Transfer Acceleration интегрирован в наше приложение Filemail Desktop и включается автоматически при отправке и загрузке файлов. Ускорение передачи данных по протоколу UDP доступно на тарифных планах Business и Enterprise.