Главный Каталог Статей РФ
87238 авторов, размещено 47366 статей, сейчас на сайте пользователей: 614 Статистика
Аватар alexf

Что за штуковина UDP? Будующее BitTorrent, и Интернета в целом

Категория:  Интернет  | Автор:  alexf | Опубликовано: 12.07.2009

Пол Хадсон пробует объяснить, почему модификации в сетевых протоколах могут сделать BitTorrent «хитрее» — или остальной Интернет медленнее.

Добрейший вечер! Приятно узнать о хитростях, ускоряющих загрузку моего линукса!
Загрузка дистрибутивов. Вот-вот, как раз это и поможет мне разъяснить суть изменений. Значиться, начнем. Жили-были динозавры...

Э-э, а не прокрутить ли вперед?
...а потом появился Интернет! И Винт Серф кинул взор на него, и изрек: это хорошо. И было два главных способа отправки данных — TCP и UDP.

Как-то мы не туда рулим. Я отправляю свои данные электрической почтой, в отсутствие всяких там UDP. А TCP — это не антибиотик?
Надо думать, мы говорим о разных вещах. Пораскиньте умом: почтовые сообщения — это всего лишь текст. Каким образом, по-вашему, он приходит к получателям?

Ну, насчет этого я в курсе: SMTP, POP3, IMAP и парочка других аббревиатур. Они-то и колдуют с отправкой и получением почты.
Ну да, однако они попросту добавляют несколько строк с мета-информацией о ваших письмах. А как же сообщения находят путь в Интернете?

...TCP?
Уже теплее.

TCP и UDP?
Горячо! Если совсем просто, ваше письмо заворачивается в SMTP (так называемый «прикладной уровень», потому что он содержит информацию для почтовых программ), далее в TCP или UDP (т.н. «транспортный уровень», потому как осуществляет передачу из точки A в точку B). Технически, все эти данные потом заворачиваются ещё в один слой, Internet Protocol, или попросту «IP», называемый «Интернет-уровнем», он отвечает за фактическую доставку сообщения по глобальным каналам связи.

Ну у вас и технояз. По мне, антибиотики всё же проще...
Да я стараюсь помельче разъяснить, честно! Суть в том, что существует два метода отправки пакетов данных по Интернету, TCP и UDP. Оба протокола заворачиваются в IP, а вы используете либо TCP/IP, либо UDP/IP.

А в чем разница? Надо выбрать Интернет-протокол?
Нет, всё идет через IP, однако при каждом подключении нужно выбирать между UDP и TCP.

Как это — выбирать? До сих пор меня не просили!
Ну, хорошо, не вам — это программы выбирают UDP или TCP, в зависимости от типа пересылаемых данных. Видите ли, UDP — протокол незатейливый, он отправляет данные от A к B, и его не тревожит, что будет дальше: в каком виде данные доберутся до точки предназначения и доберутся ли вообще. Иными словами, если отосланы три пакета, 1, 2 и 3, то к получателю они могут прибыть в виде 3, 2, 1. А случается и так, что пакет 2 доставлен, а 1 и 3 затерялись в эфире! Короче говоря, отправил и забыл.

Ах, вот отчего я не получил почты на прошлой неделе!
Подождите, я не договорил. TCP очень различается от UDP, ведь этот протокол создает соединение и хранит его открытым, пока не будут доставлены все данные. Протокол автоматически проверяет, все ли данные прибыли в сохранности, а при надобности даже повторяет отправку. Если что-то перепуталось (скажем, пришло 3, 2, 1 вместо 1, 2, 3), TCP дождется, пока вся передача не завершится в правильном порядке — а приложение (почтовый клиент, например) в процессе не участвует.

Умно придумано. Небось, это UDP потерял мою почту...
Никоим образом. Ведь TCP ручается за доставку данных (если сигнал до отправителя не доходит, подключение будет попросту оборвано), его и применяют для доставки по Интернету важных сведений — а собственно, web-трафика, почты, FTP, SSH и подобных протоколов. Во всех этих случаях потеря мельчайшего кусочка данных повергает в негодность всё прочее — если вы загрузили 100 MB файл, а 14 КБ информации из него посеял UDP, то файл бесполезен!

Стоп... если TCP уж такой замечательный, зачем тогда нужен UDP?
Затем, что подчас потеря кусочка информации роли не играет. Вот, скажем, VoIP. Если мы беседуем через Интернет по телефону, и связь прервалась всего на секунду, TCP застопорится и затребует повтора реплики, пока все не дойдет до вас в лучшем виде. UDP просто перепрыгнет эту секунду и продолжит себе трансляцию. При прослушивании радио TCP вообще может прервать подключение, только и всего. UDP намного проще и идеально подходит для случаев, когда непрерывность соединения важнее точности трансляции. Вообразите, что стало бы с онлайн-репортажами о всяческих встречах президентов, если бы вместо TCP использовали UDP!

Однако все эти TCP/UDP, вроде бы, уже не новинка. Зачем же говорить о них сейчас?
По причине BitTorrent. Сейчас в этой системе используется TCP, а значит, происходит проверка сохранности отосланных данных.

И правильно, неужели нет? Ведь кому надобны, допустим, 99,9% файла?
Несомненно, но сейчас любой Torrent-клиент точно в курсе, что он должен получить в результате закачки и, при необходимости, запросит недостающее.

И они перейдут на UDP и увеличат скорость? Красота!
Не спешите. Одно из достоинств TCP — его способность сообщать о недополучении данных, а в случае значительной потери — уменьшать скорость передачи, чтобы не перегружать сеть. У UDP ничего такого нет: он будет продолжать отправку, даже если линия будет забита напрочь. Если скорость передачи по сети снижается, то TCP-программы (почта, web и пр.) сбавят ход, а UDP-приложения будут шпарить напропалую, лишь бы отстреляться.

А разве торренты не составляют солидную часть нынешнего Интернет-трафика? В таком случае, переход приведет к замедлению!
Потенциально — да. Принужденные избирать между UDP, заполняющим сеть, и замедлением web, почты и других немаловажных служб, Интернет-провайдеры неминуемо убавят приоритет UDP-трафика. А это, в свою очередь, приведет к замедлению VoIP , игровых соединений, видео-трансляций и других UDP-программ.

Ужасно! Можно ли как-нибудь сделать BitTorrent чуточку хитрее?
Над этим и бьются разработчики UDP: они хотят приобщить протоколу кое-какие функции TCP (в частности, контроль непроходимости сети). Проверка целостности доставки UDP не нужна, но определять проходимость канала протокол научится не хуже TCP, и выиграют от этого все.

Станут ли торренты быстрее?
Возможно. Но если разработчики BitTorrent добьются своей цели, уменьшив объем попусту расходуемого Интернет-трафика, то и весь Интернет ускорится. Не забывайте, что протоколу TCP уже 35 лет, он «взрослый», и если новоиспеченное UDP-протокол BitTorrent (UTP) его победит, это будет нечто! Небольшой, но ценный бонус: гадкие TCP-сообщения, принудительно закрывающие BitTorrent-соединения, рассылаемые кое-какими интернет-провайдерами (ComCast, это про вас!), с UDP перестанут работать.

Ура! Бегу испытывать...
Не спешите: пока вся эта система проходит бета-тестирование. Она предстанет в следующей официальной версии клиента BitTorrent; нужно также, чтобы эта версия была установлена и на других компьютерах, с которыми вы соединяетесь.


Клиентов BitTorrent не так уж много, и большинству пользователей придется ждать следующего цикла обновления дистрибутивов (а вместе с ними и приложений). Выходит, что загрузить обновленный дистрибутивчик через UDP мы с вами сможем не раньше, чем через шесть месяцев.

Комментарии
К этой статье пока нет комментариев. Станьте первым! У нас гости не могут комментировать статьи. Пожалуйста авторизуйтесь или зарегистрируйтесь, чтобы прокомментировать.
Интересные статьи по теме
Аватар AnemoN
Накрутка лайков и подписчиков ВКонтакте Есть несколько хитрых и не очень методов, которые используются для т.н. "накрутки лайков".О заслуживающих внимания пойдет речь в этой статье....
Категория: Интернет | Автор: AnemoN | Добавлено: 17.02.2013
Аватар Jetti
Буксы — что это такое и как правильно выбрать букс для заработка Из-за коронавируса, "блуждающего" по всему миру вот уже второй год, у многих людей появилось огромное количество свободного времени. Одни стали тратить это время на хобби, другие — читать книги и смот...
Категория: Интернет | Автор: Jetti | Добавлено: 20.07.2021
Аватар Lizetta
Сколько времени уходит на создание сайта? Сколько времени тратит специалист на разработку сайта? В какой срок можно создать сайт и чем обуславливается это?...
Категория: Интернет | Автор: Lizetta | Добавлено: 03.06.2011
Аватар gul_itb
Как правильно представить информацию на сайте Зачем люди сидят в Интернете? В основном есть две причины – это развлечение и поиск информации. Ваш корпоративный сайт, конечно же тоже служит этим двум целям Интернет-общения. Даже бизнес-сайт о чем-...
Категория: Интернет | Автор: gul_itb | Добавлено: 26.10.2009
Аватар Marta22
Как улучшить страницу на сайте вконтакте Советы, как сделать страницу в vkontakte лучше...
Категория: Интернет | Автор: Marta22 | Добавлено: 21.08.2009
Свежие комментарии
Ну, вот это я понимаю, настоящая инструкция для тех, кто хочет не просто «привет, как дела», а чтобы дамы сами в личку ломились! Как говорится, техник...

Читать >>

Куклы-обереги действительно имеют глубокий символизм и интересную историю, которая часто теряется в современных интерпретациях. Например, многие не зн...

Читать >>

Полностью поддерживаю подход, описанный в статье! Рисование — не просто творческое занятие, а ключевой инструмент для развития ребёнка. Как детский пс...

Читать >>

Интересная подборка ошибок, но не могу не высказать скепсис по поводу части рекомендаций. Например, о зарядке только до 80% — это логично с техническо...

Читать >>

Работал соцработником пару лет, и вот что не написали: это не только помощь людям, но и куча бумажек, отчётов и согласований. Бывает, половина времени...

Читать >>

Лучшие авторы
Аватар iaavl
Мы предлагаем Вам НАТУРАЛЬНУЮ КОСМЕТИКУ ИЗ КРЫМА. ...

Читать

Аватар andreykovalev10
Андрей Ковалев и его моно-спектакль «День полный ж...

Читать

Напишите нам