
Полный текст первых минут лекции «Модель TCP/IP TCP и UDP - сравнение» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Энспортный уровень служит две службы уровню аппликации, которые над ним, а именно службу TCP и службу UDP. Служба TCP убеждается, проверяет доставку всей информации в нужном порядке, следит за тем, что всё получено, а UDP ничего не проверяет.
UDP предназначен для маленьких сообщений, которые, если не пришли, ничего страшного, ещё раз пошлют. То есть сама операционная система на уровне UDP не проверяет, получено ли отправленное сообщение.
Если не пришло, пусть эту проблему решает аппликация. UDP – это как отправка незаказного письма. Если вы не получили посланное письмо, то вы даже не знаете, что оно вам послано.
А TCP – это как отправить посылку, где нужно расписаться в ее получении. Итак, почта убеждается, что вы ее получили. Это называется Reliable Transport – надежная отправка.
TCP посылать снова, если не дошло. Итак, в TCP есть подтверждение о получении. То есть операционная система отчитывается перед аппликацией.
Она дает ответ о том, дошло ли сообщение в полном объеме или нет. То есть служба TCP надежнее, и до того, как посылать само сообщение и информацию, эта служба производит тройное рукопожатие, убеждается в том, что связь вообще есть.
Зато в TCP больше обертки. Обертка для информации протокола UDP гораздо меньше, смотрите. Смотрите, обертка в пакете UDP очень маленькая.
Всего 8 байт обертка UDP. А теперь давайте это сравним с оберткой протокола TCP. Сколько TCP добавляет к самой нужной информации?
К примеру, вот TLS. TLS это зашифрованная аппликация. Вот смотрите, это зашифрованная SSL информация. И на ней обертка TCP.
Transmission Control Protocol, TCP. И мы видим, что TCP занял своей оберткой больше байтов. То есть в каждом пакете 20 байт занимает только обертка TCP.
И что же там за поля в этих 20 байтах? Естественно, прежде всего порт исхода и порт назначения. Мы уже обсуждали их в протоколе UDP, но тут есть и дополнительная информация.
Например, номер куска информации, сколько я до сих пор получил кусков информации. Все это управление переправки большого объема информации требует много места в каждом отдельном пакете.
Там есть поля с рядом флажков, например, которые используются в пакетах тройного рукопожатия. Флажок син, давай синхронизируемся. Флажок давай закончим сообщение.
То есть все это забирает какую-то ширину сетевого потока. Все разные пакеты подтверждений. Номера кусочков информации и посылок. Например, порт исхода и порт назначения обязательно везде, и в TCP, и UDP.
А дополнительные вещи больше занимают. Вот, смотрите, сколько это все место будет занимать. Кроме дополнительных пакетов подтверждения, 20 байт обертки в каждом пакете информации.
А вот смотрите, пакет, который посылается протоколом DNS, который использует службу UDP. У него тоже есть обертка, но гораздо меньше.
Смотрите, порт исхода, порт назначения, длина информации и проверочная сумма. То есть только крайне необходимая информация.
Если вы хотите отправить длинную информацию, которая потребует много пакетов UDP, и просто на том конце их соединить в порядке получения, то они могут соединиться в неправильном порядке.
Нет, в UDP посылается только длинная информация, и единственная проверка — это чек сам. Так проверяется, не испортилась ли информация в пакете.
Если по пути информации испортилась, с помощью чек сам можно узнать об этом. Вот, смотрите на эту обертку. Тут порт исхода, порт назначения, сколько всего нужной информации в пакете, Контрольная сумма и всё.
А в TCP есть управление всей надёжностью передачи. Передача объёмной информации. И не только в каждом пакете обёртка занимает 20 байт.
Но ещё в начале передачи производится проверка вообще наличия связи. Так называемое тройное рукопожатие. Это тоже дополнительные пакеты. Вот я тут отфильтровал, чтобы не было лишнего на экране.
Теперь нам показывают только интересные нам пакеты, связанные с интересующим нас портом. Потому что компьютер одновременно общается по связи от имени разных аппликаций.
И вот смотрите, пакеты SYN, SYNAC и AC. Три пакета ненесущие информацию аппликации. И только после этого передается информация