Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к ГОСАМ ВМКСС 0704.docx
Скачиваний:
29
Добавлен:
27.04.2019
Размер:
2.8 Mб
Скачать

Протокол tcp.

Этот протокол занимается предварительным установлением соединения. Он организует надежное сквозное соединение на прикладном уровне. Каждому прикладному процессу ставится в соответствии номер порта. Этот номер идентифицирует процесс. Узел однозначно идентифицируется IP адресом. Для установления соединения формируется специальный сегмент, в котором содержится socket. Принимающий узел отправляет подтверждающий пакет. Во время установления соединения стороны договариваются о размерах сегмента, о максимальном и начальном объеме данных, которые разрешено передать без установления подтверждения. Каждый сегмент или подтверждается, если он передается или игнорируется.

Протоколов много, отмечаем только 2 основных протокола стека

TCP – Transmission Control Protocol

IP – Internet Protocol

Стек протокола был создан в 1974 году по заказу мин обороны США

OSI (см. 9)

7

Прикладной уровень

6

Уровень программирования

TCP/IP

5

Сеансовый уровень

Прикладной уровень

IV

4

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

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

III –TCP,UDF

3

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

Уровень межсетевого вз/д-я

II – IP

2

Канальный уровень

Уровень сетевого интерфейса

I

1

Физический уровень

I

Протокол – это правило взаимодействия двух одноименных уровней на смежных концах.

В TCP/IP очень хорошо развиты первые два уровня: уровень сетевых интерфейсов (физический и канальный уровни)

II

Протокол IP является основным протоколом второго уровня и стека TCP/IP в целом. Он не гарантирует надежную доставку данных. Его основная задача – выбор наилучшего маршрута и протокол IP перекидывает это на RIP и OSPF протоколы (тоже 2 уровень), а так же реализован дейтаграммный способ передачи. На 2 уровне так же работает ICMP протокол – протокол управляющих сообщений сети.

III

На транспортном уровне основной протокол – TCP, протокол управления передачей. Основная функция – это надежность, правильность доставки данных.

UDF – второй протокол уровня, User Datagramm Protocol, протокол управления пользовательскими дейтаграммами, данными – каждый пакет передается независимо, а следовательно UDF не гарантирует надежную доставку данных, т.к. не устанавливается связь заранее (единица измерения данных – сегмент, который будет передан на ряд пакетов и передан вниз…)

Протокол TCP устанавливает предварительное соединение, для чего формируется сегмент-запрос, в котором содержится номер соответствующего сокета

Протокол UDF передает данные не критичной надежности.

IV – прикладной уровень

Он объединяет в себе 3 из 7 уровней модели OSI: сеансовый, представительский, прикладной. Он объединяет в себе все услуги, службы, предлагаемые пользователю.

Telnet – эта служба очень редко используется, это протокол удаленного доступа, имитация терминала – обеспечивает дистанционное подключение пользователя за неинтеллектуальным терминалом.

FTP – file transfer protocol - протокол передачи файлов – используется с TCP

TFTP – Trivial FTP – тривиальный протокол передачи данных, простой – для передачи некритичных данных, используется с UDF

SMTP – Simple Mail Transfer Protocol – протокол передачи электронной почты

POP3 – Post Office Protocol – почтовый протокол офиса, 3 – это версия

DNS – Domain Name System – протокол доменных имен, сопоставление символов с IP-адресами

HTTP – Hyper Text Transfer Protocol – протокол передачи гипертекста

Kerberos – протокол защиты информации в сетях и используется в распределении и распознавании паролей и ключей в сети.

Протокол TCP

Сокет – совокупность номера порта и его IP адреса

ПУ

ТУ

ПУ

ТУ

Сквозная

линия

Протокол транспортного уровня используется для установления соединения между двумя прикладными процессами. Чтобы установить соединение между двумя прикладными уровнями используются средства протокола TCP

ПП – прикладной процесс – присваивается номер порта, id

Каждому ПП ставится в соответствие специальный номер, номер порта, который идентифицирует приложение данного узла, а узел однозначно в составной сети идентифицируется IP-адресом.

Узел – IP адрес

ПП – номер порта

IP адрес + номер порта = сокет (socket), который однозначно идентифицирует любое приложение.

Назначаются числа приложениям (подходы):

  1. Централизованно – если соответствующие службы представляют собой популярные приложения, нумерация от 0 до 255. 0 и 255 зарезервированы FTP – 21 Telnet – 23 SMTP – 25 DNS – 53

  2. Произвольное назначение номеров портов. Это когда разработчик приложения для его идентификации связывает с ним конкретное число из области, нумерация которой больше 255. Длина сегмента на 3 уровне ограничена полем данных в IP-пакете, фиксированным размером, максимальная длина сегмента Ls = 216-1 = 65 535

Протокол TCP предварительно устанавливает соединение, для этого формируется сегмент-запрос, в котором содержится номер сокета (IP адрес и номер порта), и сокет того узла, с которым устанавливается соединение. Ответчик подтверждает ответ аналогичным сокетом. С помощью двух таких пакетов можно однозначно идентифицировать соединение. Эта процедура называется созданием предварительного логического соединения.

Во время установления соединения стороны договариваются:

  1. о размере передаваемых сегментов,

  2. о максимальном и начальном объеме данных, которые разрешено передавать без установления соединения (без подтверждения), т.е. размере окна.

В протоколе HDLC максимальное количество кадров без получения подтверждения – это размер окна.

  1. Начальные номера передаваемых данных (используется механизм скользящего окна) - собственный механизм:

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

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

    • Таким образом окно в TCP определено не количеством сегментов, а количеством байтов (напр. 1000 байт), а квитанция приходит на номер байта.

    • В процессе передачи размер окна варьируется W = 1000 байт, может меняться размер W может установить готовность окна принятия данных, если W=0 окно не принимает

    • Через некоторое определенное время Т, таймер подтверждения запроса, посылается помещенный сегмент с размером 1 байт и ждет прихода подтверждения и если принимающая сторона готова принять, то она отправляет на этот 1 байт положительную квитанцию с размером окна больше 0, указывая длину сегмента. Нет понятия отрицательной квитанции.

    • Используется механизм ТАЙМ-АУТА, тот же самый, что и при повторной передаче. Размер ожидания положительной квитанции фиксируется, и он обусловлен временем двойного оборота: (ср знач 2-ой оборот)*2 = Timeout Т ≥ (ср знач 2-ой оборот)*2

Структура заголовка сегмента протокола TCP

Порт-отправитель (16)

Порт-приемник (16)

Позиция сегмента (смещение) (32)

Первый ожидаемый байт (32)

Смещение (4)

Резервное поле (6)

URG

ASK

PCH

RST

SYN

FIN

Размер окна (16)

Контрольная сумма (16)

Указатель срочности (важности) обрабатываемых данных (16)

Опции и заполнитель

…после идут данные…

Номера портов указывают на приложение, с которым устанавливается связь.

Позиция сегмента – в этом поле содержится порядковый номер первого байта данных в исходном сообщении.

Первый ожидаемый байт – данное поле содержит порядковый номер того байта, который ожидает принимающая сторона. Это поле автоматически подтверждает правильность приема всех байтов с меньшим номером. Данное поле заполняется только тогда, когда сегмент является положительной квитанцией (если во флаге ASK установлена 1 – это подтверждающая квитанция).

Смещение данных – это 4х разрядное поле задает длину заголовка, измеряемая в 32х-разрядных словах.

Резерв – как правило не используется и в него устанавливаются 0. Используется только самим протоколом.

Поле флагов (6 шт): они являются активными, когда в них установлена 1.

  • URG = 1 – указатель важности данных. Если в полученном сегменте значение флага URG равен 1, то сторона должна принять «важные данные», независимо от того что буфер переполнен.

  • ASK = 1 – сегмент является положительной квитанцией.

  • PCH = 1 – это указатель срочности передаваемых данных, следовательно сегмент должен быть передан в первую очередь.

  • RST = 1 – сегмент служит запросом на установление соединения и установление его первоначальных параметров.

  • SYN = 1 – сегмент служит для синхронизации счетчиков передаваемых данных.

  • FIN = 1 – данный сегмент является последним в передаваемом сообщении.

Размер окна – указывает количество байтов, которые готова принять принимающая сторона.

Контрольная сумма – определяется контрольная сумма для всего сегмента (включая данные и псевдезаголовок, IP адреса отправителя и получателя, 96 разрядов)

Указатель срочности (важности) данных – используется только тогда, когда во флаге URG = 1, содержимое этого поля обрабатывается на прикладном уровне.

Опции и заполнитель.

Опции используются для согласования параметров устанавливаемого соединения: размер окна, размер сегмента. Опции не ограничены в длине.

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