Ускорение передачи данных по UDP в файловой почте
![Ускорение передачи данных по протоколу udp в файловой почте](https://filemail.b-cdn.net/cms/filemail_udp_transfer_acceleration_03a38ad004.webp)
Сегодня в Интернете используются два основных протокола: TCP и UDP. TCP - это рабочая лошадка Интернета. Ускорение передачи данных UDP - это чистокровная лошадь, созданная для скорости.
Что такое TCP?
В этот протокол встроены механизмы надежности, то есть отправитель автоматически повторно передаст TCP-пакет получателю, если он каким-то образом потерялся в пути.
TCP: основа Интернета
Брандмауэры, маршрутизаторы и коммутаторы в значительной степени оптимизированы под TCP-трафик, что делает TCP естественным выбором для большинства задач, выполняемых сегодня в Интернете. Веб-браузеры, клиенты электронной почты, Facebook, Instagram, Snapchat, биржевые тикеры, Spotify, Slack и FTP-клиенты - вот некоторые из приложений, которые обычно используют TCP. Если вы используете решение для передачи файлов через браузер, то более чем вероятно, что оно использует TCP.
![TCP](https://filemail.b-cdn.net/cms/tcp_b627ea6eb1.webp)
Обеспечение надежности: Роль сообщений Ack в TCP
Когда получатель получает TCP-пакет, в ответ отправляется сообщение ACK (Acknowledge), подтверждающее отправителю, что пакет был получен правильно. Этот относительно простой механизм делает протокол TCP очень надежным и простым в использовании для разработчиков.
Отправка ACK-сообщений отправителю может серьезно ограничить производительность (поскольку отправитель должен дождаться ACK от пакета-1 перед отправкой пакета-2). Чтобы устранить некоторые проблемы TCP, за прошедшие годы в протокол было внесено множество усовершенствований.
![Сообщения ACK](https://filemail.b-cdn.net/cms/ack_messages_1x_142f32f21d.webp)
![масштабируемый размер окна](https://filemail.b-cdn.net/cms/scalable_window_size_x2_694a6071e0.webp)
Масштабируемый размер окна
Позволяет отправителю одновременно отправлять несколько пакетов и ожидать несколько ответов ACK. Данные, отправленные, но еще не подтвержденные ACK, часто называют данными в полете. У отправителя есть ограничение на количество данных в полете, что означает, что отправитель не должен отправлять данные получателю быстрее, чем приемник может их обработать.
![дросселирование пропускной способности](https://filemail.b-cdn.net/cms/bandwidth_throttling_x2_4d545dc7b3.webp)
Дросселирование полосы пропускания
По сути, это позволяет 10-мегабитному клиенту взаимодействовать с 1000-мегабитным сервером, не перегружая его трафиком. В TCP это основано на идее, что в любой момент времени в полете должно находиться только определенное количество данных.
![выборочные акки](https://filemail.b-cdn.net/cms/selective_acks_x2_f2093631de.webp)
Выборочные ACK
Позволяет получателю получать ACK-пакеты в любом порядке. Если пакет-1 был потерян, это не помешает отправить пакет-2 и получить ACK до повторной отправки пакета-1.
Недостатки TCP
При отправке TCP-трафика на большое географическое расстояние производительность значительно падает. Поскольку трафик (и ACK) должен пройти через большее количество маршрутизаторов и сетевой инфраструктуры, чтобы добраться до получателя, ему требуется больше времени.
Это время называется задержкой. Если вы просматриваете веб-сайт, расположенный в одной стране, задержка иногда составляет всего 10 миллисекунд. При просмотре веб-сайта, расположенного на другом континенте, вы сразу увидите, что страницы загружаются дольше из-за увеличенной задержки.
Проблема задержки TCP становится чрезвычайно очевидной при передаче файлов через континенты. Отправитель и получатель могут иметь потрясающие 1000/1000-мегабитные соединения, но при передаче файлов получать только 10 мегабит эффективной пропускной способности сети из-за задержки, которая не позволяет им эффективно взаимодействовать при использовании TCP.
![Задержка TCP](https://filemail.b-cdn.net/cms/tcp_latency_f6630aa347.webp)
Что такое UDP?
UDP - это родной брат TCP. Основное отличие заключается в том, что пакет UDP никогда не получает ответа. Отправитель не знает, дошел ли UDP-пакет до получателя, поэтому этот протокол нельзя назвать надежным. Но он молниеносно быстр, так как не требует ответа на запрос.
UDP: Приоритет скорости над надежностью
UDP отлично подходит для видеозвонков и онлайн-игр. В этих случаях не имеет значения, если несколько пакетов UDP будут потеряны. Пакеты UDP отправляются непрерывно, поэтому вы не заметите этого в видеопотоке. В онлайн-играх вы получите новый UDP-пакет с последними обновлениями в течение нескольких миллисекунд. Потеря нескольких пакетов UDP время от времени не является проблемой. Гораздо важнее передавать данные быстро и с минимальной задержкой.
![Высокая скорость передачи данных по протоколу UDP](https://filemail.b-cdn.net/cms/udp_fast_transfer_rates_448141da3b.webp)
Повышение надежности UDP для передачи файлов
Изначально UDP может показаться ужасным выбором для передачи файлов. Полное отсутствие надежности может привести к тому, что поврежденные файлы будут повсюду из-за потерянных UDP-пакетов. Отсутствие дросселирования полосы пропускания приведет к тому, что клиенты будут переполнены трафиком и, по сути, уйдут в оффлайн. Чтобы UDP был полезен для передачи файлов, он должен быть надежным так же, как TCP. Для начала отброшенные пакеты должны быть отправлены повторно, а также должна быть предусмотрена возможность дросселирования полосы пропускания. Также необходимо решить проблему безопасности.
![Надежный UDP](https://filemail.b-cdn.net/cms/reliable_udp_894982fe2b.webp)
Filemail UDP Transfer Acceleration Protocol
Filemail UDP Acceleration Protocol (UAP) - это специализированный протокол передачи файлов, построенный на основе UDP и обеспечивающий молниеносную скорость передачи данных даже в средах с высокой задержкой. Он легко превосходит все протоколы на базе TCP, такие как HTTP и FTP, особенно при отправке файлов на большие географические расстояния, где задержка превышает 50 мс.
В 200 раз быстрее
Бенчмарки показывают, что ускорение передачи данных Filemail UDP иногда до 200 раз быстрее, чем FTP, HTTP и другие методы передачи данных, основанные на TCP.
Filemail UAP создавался снизу вверх с одной целью: чрезвычайно быстрая передача файлов из пункта А в пункт Б наиболее безопасным и надежным способом. Ниже приведены некоторые характеристики этого революционного протокола.
![Диаграмма UDP Filemail](https://filemail.b-cdn.net/cms/filemail_udp_chart_d8542f25ab.webp)
Эффективная пропускная способность при передаче файлов из Европы в Австралию через 21 сетевой переход. Оба конца подключены по соединению 1000/1000 Мбит.
Неофициальные сравнения с решениями IBM Aspera и Signiant на основе UDP-передачи показывают, что Filemail быстрее практически во всех случаях. Некоторое различие в производительности может быть связано с тем, что Filemail использует аппаратное ускорение - в частности, набор инструкций AES-NI. Кроме того, протоколы IBM Aspera и Signiant используют отдельный TCP-канал (SSH) для дросселирования пропускной способности, отправки ACK и т. д. Filemail UAP не полагается на более медленный протокол TCP - он использует UDP для передачи данных, ACK'ing, дросселирования полосы пропускания и шифрования.
![надёжная защита](https://filemail.b-cdn.net/cms/robust_security_2defcb1641.webp)
Безопасность
Весь трафик данных UDP защищен шифрованием AES Galois/Counter Mode (AES-GCM). Это золотой стандарт шифрования на сегодняшний день, который гарантирует, что передаваемые данные не могут быть перехвачены третьей стороной. Каждый сеанс передачи данных имеет отдельный ключ, обмен которым между клиентом и сервером осуществляется с помощью шифрования Ривеста-Шамира-Адлемана (RSA).
![несколько операционных систем](https://filemail.b-cdn.net/cms/multiple_devices_d62ba4a72c.webp)
Аппаратное ускоренное шифрование
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, также поддерживают его.
![мультиплатформенный](https://filemail.b-cdn.net/cms/multi_platform_e30f088a8f.webp)
Требования к программному и аппаратному обеспечению
Filemail UAP написан на низкоуровневом языке C++ и может работать практически на всех устройствах и операционных системах. В настоящее время доступны бинарные версии для Windows, macOS и Linux. Filemail Desktop - это наш флагманский инструмент передачи данных, использующий UAP. Также доступны консольные приложения. Filemail UAP был сильно оптимизирован и занимает очень мало памяти - всего несколько мегабайт, при этом максимально увеличивая пропускную способность. Кроме того, при отправке файлов на максимальной скорости он обычно использует менее 5 % процессора.
![двунаправленная передача](https://filemail.b-cdn.net/cms/bi_directional_transfer_x15_d6737a5025.webp)
Двунаправленное ускорение переноса
Filemail UAP используется как при загрузке, так и при скачивании файлов с помощью Filemail Desktop. Это означает, что вы, ваши клиенты и деловые партнеры могут воспользоваться преимуществами этой технологии.
Начало работы с Filemail UDP Transfer Acceleration
Filemail UDP Transfer Acceleration интегрирован в наше приложение Filemail Desktop и включается автоматически при отправке и загрузке файлов. Filemail Desktop бесплатен для использования и не требует входа в систему. UDP Transfer Acceleration для людей.
![Невероятно высокая скорость передачи данных](https://filemail.b-cdn.net/cms/blazing_fast_transfer_rates_6c18b36af3.webp)