Транспортный уровень

Поднимаемся на уровень TCP.

Лектор напоминает, в чём проблема: мы можем доставить пакет до абонента, у нас есть такая возможность. Другой вопрос, случилось оно или не случилось. Соответственно, для отслеживания качестваи по другим причинам было бы неплохо получать подтверждение того, что данные получены. Втооре. Надо предусмотреть ситуацию, когда мы отправили, а абонент ничего не получил. Например, отправили 4 пакета, пришли только 1, 2, 4. Надо составить механизм доставки так, чтобы эти пакеты могли быть собраны на другой стороне. Было бы неплохо перед тем, как передавать данные есть, кому их принимать. То есть, нам нужно подключаться к абонненту, чтобы обменяться инф, есть ли н на свете. Ещё дна задача: манипулирование потоками.

Вопрос: а в действительности ли каждые из 5 требований нужно реализовывать, когда мы хотим передавать данные? Если вся информация, которую мы хтим отправить, помещается в один пакет (датаграмму), то, возможно всё это использовать не надо. Поэтому, на уровне TCP есть всего два протокола: надёжный TCP и ненадёжный UDP. TCP начинается с уст. подключения, и, прежде чем процедура подкл. не произойдёт, ничего не может начться. при этом, процедура подключения двусторонняя. То есть, данные передаются в обе стороны. TCP устроен по принципу подтверждений. Каждый TCP-пакет, после того, как он принят сервером, на него генерируется подстверждение, что он принят, в проивном случае (сразу или по таймауту) происходит извещ. об ошибке. При этом процесс симметричный. Более, того подтв. могут совмещаться с данными. Все TCP-пакеты пронумерованы, есть понятие seqno, и в каждом их два, увеличиваются они на размер переданных данных. Это одновременно позволяет вычислять последовательность пакетов и позволяет выяснять, что пропало и не сдублировался ли пакет. Везде считается checksum, что касается отслеж. сост канала, то тут довольно хитрая технология, в которой поначалу обмен идёт маленькими пакетами, но далее размер увеличивается.

Для того, чтобы выполнить задачу разделения данных, появляется ещё одно понятие --- порт. Придумано оно по аналогии с портами ввода-вывода. Когда происх. соед. между клиентом и сервером, то происх. соед. по определённому порту. Когда происх. пдоключение, то у сервера порт 22, а у клиента случайный, (44670), что пзволяет разделять потоки даже в случяае нескольких подключений между двумя машинами.

Почему лектор говорит, что порт это переходный уровень между TCP и уровнем приложений? Потому что согл. нек. договорённостям, рахные типы приложений сидят на разных портах. Почему так? Да потому что никакого другого способа определить, как подключаться к определённому порту, нет. Есть организация IANA, котрая регистрирует эти порты (cat /etc/services).

Вопросы

В чём разница между TCP-пакетами и UDP-датаграммами?

Они нужны для разных вещей. Например, при задаче широковещания не нужны не сообщ. о доставке, ни сообщ. об ошибках. Другой случай --- маленькие пакеты, на которые всегда должен быть какй-то ответ. Ещё один юзейс --- медленные обработка и ответ.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

0

1

1

1

1