Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети.doc
Скачиваний:
12
Добавлен:
11.11.2019
Размер:
2.55 Mб
Скачать

5. Транспортный протокол tcp в стеке протоколов tcp/ip

•Эти протоколы берут свое начало от одной из первых территориальных сетей ARPANET.

•Они получили широкое распространение благодаря реализации в ОС Unix и в сети Internet и в настоящее время оформлены в виде стандартов RFC (Requests For Comments) организацией IETF (Internet Engineering Task Force).

•TCP/IP - пятиуровневые протоколы, но основными среди них, давшими название всей совокупности, являются протоколы сетевого (IP - Internet Protocol) и транспортного (TCP - Transport Control Protocol) уровней.

Протокол TCP

•TCP - дуплексный транспортный протокол с установлением соединения.

•Его функции:

•упаковка и распаковка пакетов на концах транспортного соединения;

•установление виртуального канала путем обмена запросом и согласием на соединение;

•управление потоком - получатель при подтверждении правильности передачи сообщает размер окна, т.е. диапазон номеров пакетов, которые получатель готов принять;

•помещение срочных данных между специальными указателями, т.е. возможность управлять скоростью передачи.

•В TCP имеется программа-демон, которая постоянно готова к работе и при приходе запроса генерирует свою копию для обслуживания создаваемого соединения, а сама программа-родитель ждет новых вызовов.

Схема установления соединения в одноранговых сетях

•Инициатор соединения обращается к своей ОС, которая в ответ выдает номер протокольного порта и посылает сегмент получателю.

•Тот должен подтвердить получение запроса и послать свой сегмент-запрос на создание обратного соединения (так как соединение дуплексное).

•Инициатор должен подтвердить создание обратного соединения.

•Получается трехшаговая процедура (handshake) установления соединения.

•Во время этих обменов партнеры сообщают номера байтов в потоках данных, с которых начинаются сообщения.

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

•После установления соединения начинается обмен. При этом номера протокольных портов включаются в заголовок пакета.

•Каждое соединение (socket) получает свой идентификатор ISN (в TCP/IP не используется).

•Разъединение происходит в обратном порядке.

Схема установления соединения в сетях "клиент-сервер"

•Она аналогична (за исключением handshake) и включает посылку клиентом запроса на соединение (команда ACTIVE OPEN) с указанием адреса сервера, тайм-аута (времени жизни), уровня секретности.

•Можно сразу же поместить в запрос данные (тогда команда ACTIVE_OPEN_WITH_DATA). Если сервер готов к связи, он отвечает командой согласия (OPEN_RECEIVED), в которой назначает номер соединения.

•Далее командой SEND посылаются данные, а командой DELIVER подтверждается их получение.

•Разъединение выполняется обменом командами CLOSE и CLOSING.

Структура TCP-пакета (число битов)

•порт отправителя (16);

•порт получателя (16);

•код позиции в сообщении, т.е. порядковый номер первого байта в поле данных (32);

•номер следующего байта (32);

•управление (16);

•размер окна (16), т.е. число байт, которое можно послать до получения подтверждения; •контрольная сумма (16);

•дополнительные признаки, например срочность передачи (16);

•опции (24);

•заполнитель (8);

•данные.

Ограничения

•Нужно отметить, что каждый байт сообщения получает уникальный порядковый номер.

•Отсюда вытекает одно из ограничений на максимально допустимую в протоколе TCP/IP пропускную способность.

•Это ограничение составляет (232 байта) / (время жизни дейтаграммы), так как для конкретного соединения в сети не должно одновременно существовать более одного байта с одним и тем же номером.

•Еще более жесткое ограничение возникает из- за представления размера окна всего 16-ю битами.

•Это ограничение заключается в том, что за время Tv прохождения пакета от отправителя к получателю и обратно в сеть может быть направлено не более 216 информационных единиц конкретного сообщения.

•Поскольку обычно такой единицей является байт, то имеем (216*8 бит) / Tv .

•Так, для каналов со спутниками на геостационарных орбитах Tv составляет около 0,5 с и ограничение скорости будет около 1 Мбит/с.

•Заметно увеличить этот предел можно, если в качестве информационной единицы использовать С байт, С>1,

Повторная передача

•В TCP повторная передача пакета происходит, если в течение оговоренного интервала времени Тт (тайм-аута) не пришло положительное подтверждение.

•Следовательно, не нужно посылать отрицательные квитанции.

•Обычно Tm=2*t , где t - некоторая оценка времени прохождения пакета туда и обратно.

•Это время периодически корректируется по результату измерения Tv, а именно

•t:=0,9*t + 0,1*Tv.

•Попытки повторных передач пакета не могут продолжаться бесконечно, и при превышении интервала времени, устанавливаемого в пределах 0,5...2,0 мин, соединение разрывается.

Размер окна

•Размер окна регулируется следующим образом.

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

•Поэтому используется алгоритм так называемого медленного старта.

•Сначала посылается один пакет и после подтверждения его приема окно увеличивается на единицу, т.е. посылаются два пакета.

•Если вновь положительное

подтверждение (потерь пакетов нет), то посылаются уже четыре пакета и т.д.

•Скорость растет, пока пакеты проходят успешно.

•При потере пакета или при приходе от протокола управления сигнала о перегрузке размер окна уменьшается и далее опять возобновляется процедура линейного роста размера окна.

•Медленный старт снижает

информационную скорость, особенно при пересылке коротких пакетов, поэтому стараются применять те или иные приемы его улучшения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]