Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Сети ЭВМ.doc
Скачиваний:
21
Добавлен:
27.09.2019
Размер:
5.94 Mб
Скачать

Стек протоколов tcp/ip.

( Transmit Control Protocol/ Internet Protocol)

TCP/IP – это промышленный стандарт стека протоколов, разработанный для глобальных сетей. Стандарты TCP/IP опубликованы в серии документов, названных Reguest For Comment (RFC). Документы RFC описывают внутреннюю структуру сети Internet. Стек был разработан для ARPANET до появления модели взаимодействия открытых систем ISO/OSI. Он также имеет многоуровневую структуру, но соответствие между TCP/IP и OSI достаточно условно. Протоколы TCP/IP делятся на 4 уровня

7

www

Gopher

WAIS

SNMP

FTP

telnet

SMTP

TFTP

I

6

Прикладной

уровень

5

TCP

UDP

II

4

Транспорт-ный

уровень

3

IP

ICMP

RIP

OSPF

ARP

III

Сетевой уровень

2

Не регламентируется в стеке TCP/IP,

Но поддерживает все популярные стандарты

Enternet, Token Ring, FDDI, X.25, PPP, SLIP? FrameRelay, ATM

IV

1

Уровень доступа к сети

Рис. 22 Уровни модели OSI и стека протоколов TCP/IP

Формат ip-заголовка.

0

4 бита

4 бита

1 байт

16 бит

1

Версия

Длина заголовка

Тип обслуживания

Длина дейтаграммы

2

16 бит

Идентификатор сообщения

1бит

DF

1бит

MF

13 бит

Смещение фрагмента

3

8 бит

Время жизни

8 бит

Протокол

16 бит

CRC Заголовок

4

32 р

IP-адрес отправителя

5

32 р

IP-адрес получателя

6

Опции ( произвольно)

Заполнитель

Рис.23. Формат заголовка пакета протокола IP.

- версия - номер версии IP (IP v4, IP v6) – 4 бита.

- длина заголовка – в 32-х разрядных словах (5 или 6 слов).

- тип обслуживания – это поле имеет следующую структуру:

3 бита

1 бит

1 бит

1бит

2 бита

приоритет

задержка

пропускная способность

надежность

не используется

Приоритет- от 0 до 7 (0-обычный, 7 – управление).

1-в полях задержка, пропускная способность, надежность соответствует малой задержке, высокой пропускной способности и надежности при выборе маршрута. Все эти поля обычно не используются ( в т.ч приоритет) и поэтому в поле тип обслуживания стоят одни нули.

- длина дейтаграммы – полная длина включая заголовок (max-65535 байт).

- идентификатор – идентификатор сообщения. Исключает сборку фрагментов разных сообщений.

- DF – не фрагментировать (Don’t Fragment). ( 1-фрагментация запрещена).

- MF- More Fragments- есть еще фрагменты. (1-есть еще фрагмент, 0- фрагмент последний).

- Смещение фрагмента- смещение в битах фрагмента относительно начала сообщения.

- Время жизни- время в секундах отводимое на доставку пакета. Если время доставки пакета> пакет delete, Каждый узел уменьшает время жизни на 1с и учитывается время ожидания в шлюзах. Если время жизни становится меньше нуля, то пакет уничтожается и высылается квитанция обратной связи.

- Протокол – код транспортного протокола ( для TCP код = 6).

- CRC- контрольная последовательность. (Вычисляется со временем жизни т.е. изменяется)

- Опции – могут отсутствовать; секретность, запись маршрута ( в дополнительных полях), маршрутизация отправителям, запись временных меток и т.п.

- Заполнитель – требуется для дополнения заголовка до целого числа 32 разрядных слов.

Протокол ТСР.

Главная функция ТСР- доставка сообщения без потерь. Для этого предварительно устанавливается соединение между приложением-отправителем и приложением-получателем. Именно ТСР производит повторную передачу искаженного или утерянного пакета.

ТСР получает поток байтов от приложения и собирает в сегменты, добавляя заголовки в начало сегментов. В заголовке – CRC и порядковый номер сегмента.

Длина сегмента обычно определяется ТСР или выбирается администратором системы. Процесс установления соединения начинается с передачи запроса на установление соединения от машины-отправителя машине-получателю. В запросе содержится номер сокета отправителя (IP адрес и номер порта). В ответ приложение-получатель посылает номер своего сокета. Номера сокетов однозначно определяют соединения между приложениями. После установления соединения ТСР начинает передавать сегменты IP-модулю, потом преобразует каждый из них в одну или несколько дейтаграмм. IP-модуль получатель передает его приложению-получателю (через используемый протокол прикладного уровня). Если сообщение состоит из нескольких сегментов, ТСР-получатель собирает его, исходя из порядковых номеров сегментов, хранящихся в заголовке. Если сегмент утерян или поврежден (последние обнаруживается с помощью CRC в заголовке сегмента) отправитель посылает сообщение, содержащие порядковый номер ошибочного или утерянного сегмента. В этом случае отправитель повторно посылает сегмент.

Если сообщение состоит только из одного сегмента ТСР, то после сравнения контрольных сумм ТСР-получатель посылает отправителю квитанцию-подтверждение (Ack- acknolegement). Чтобы предотвратить переполнение буфера адресата в ТСР применяется простое средство ограничения потока данных, называемое скользящим окном. ТСР-отправителю сообщается размер буфера, называемый размером окна. Передав соответствующие число байтов, отправитель должен ждать квитанции, где указан новый размер окна( метод окна допускает распределение его на несколько блоков, что сокращает время ожидания подтверждения. В этом случае сразу посылается несколько блоков).

В ТСР важную роль играют таймеры.

Таймер повторной передачи отмеряет время ожидания квитанции на отправленный сегмент. Если квитанция не поступает вовремя, сегмент отправляется вновь, а период повторной передачи увеличивается экспоненциальному закону. Так повторяется несколько раз пока период не достигнет некоторого заданного предела, после чего обслуживаемому процессу выдается сообщение об ошибке. Начальное время ожидания квитанции устанавливается путем изменения времени между отправителем сегмента и получателем квитанции на него. Эта величина называется временем двойного прохода. Математическое ожидание его – сглаженное время двойного прохода.

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

Таймер запросов. Когда получатель приостанавливающий передачу путем посылки сегмента с нулевым размером окна, отправляет отправителю сообщение с возобновлением работы, но тот не получает его. Чтобы продолжить передачу, отправитель с периодом задаваемым таймером посылает запросы с одним байтом данных. В ответ на них он получает сегменты, где указан размер окна. Если размер окна нулевой, адресат по-прежнему занят, а если нет- то он готов принимать информацию.

Блок управления передачей и управление потоками.

ТСР должен отслеживать параметры каждого установленного соединения. Для этого используется блок управления передачей (transmission control block – TCB), в котором содержится информация о локальном и удаленном номерах сокетов, буферах передачи и приема, уровнях защиты и приоритете и о текущем сегменте в очереди. Там же находятся порядковые номера переданного и принятого сегментов в сообщении.