На своих лекциях по Юникс, на теме работы сетей, я каждый раз спрашивал, кто знает, зачем нужны и в чем отличие двух протоколов, существующих параллельно: TCP и UDP? Отвечали мне очень редко, а знать, на мой взгляд, это надо, иначе довольно критичные программы могут быть написаны не оптимальным образом
Транспортный уровень OSI, где эти два протокола и находятся не просто так называется транспортным. Если хочешь, эти протоколы можно сравнить с общественным или личным транспортом на улицах города. В них “садятся” данные для того чтобы “проехать” от одного компьютера к другому.
Давай посмотрим на их различия и спроецируем на реальную жизнь.
- TCP проверяет доставку данных, а UDP нет, то есть когда все пассажиры доезжают до места назначения, водитель звонит туда, откуда они приехали и сообщает, что человек доехал до места и все с ним в порядке, ничего по пути не потерял.
- TCP гарантирует доставку данных в правильном порядке, а UDP нет, то есть если у нас едет два автобуса друг за другом, то они не соревнуются, кто быстрее доедет и не обгоняют друг друга по встречке, рискуя всеми пассажирами (данными), а спокойно и друг за другом везут всех из пункта А в пункт Б.
- TCP предлагает гарантированную поддержку разделения потоков и контроль за потоком данных, а UDP нет, то есть в случае, если где-то автобусу будет не проехать, то TCP-водитель автобуса или сам за ручку проведет столько пассажиров, сколько поместится на улице или вызовет им такси. Каждому из пассажиров.
Смотря на эти три пункта, ты видишь, что данные, едущие по протоколу TCP, будут ехать сильно дольше, чем UDP, но вероятность, что они в итоге доедут все несравнимо выше, чем те, которые передаются через UDP.
Да кому он вообще нужен такой необязательный протокол как UDP? А оказывается, нужен! Там, где сохранность абсолютно всех данных не так важна. Например, в звонках в Zoom. Поверь, если мы с тобой будем общаться через Zoom, ты даже не обратишь внимания, если несколько десятков пакетов данных до тебя не доедут. Максимум, что ты услышишь про огромных потерях данных, это микроскопические паузы в моей речи.
В общем, протоколы разные нужны и важны. Так же сильно нужны, как новые подписчики этому каналу и лайки постам, так что подписывайся и скидывай ссылку друзьям!