- •Организация вычислительных систем
 - •Часть II «Сети эвм» Краткий конспект лекций Содержание
 - •Эталонная модель взаимодействия открытых систем
 - •Уровни эталонной модели
 - •Функции уровней
 - •Правила описания сервиса
 - •Локальные вычислительные сети
 - •Топологии локальных сетей
 - •Среды передачи информации
 - •Методы кодирования информации
 - •Методы управления обменом в сети типа «активная звезда»
 - •В сети типа «шина»
 - •В лвс типа «кольцо»
 - •Контроль правильности передачи
 - •Функции аппаратуры локальных сетей
 - •Сетевые адаптеры
 - •Пример реализации сетевого адаптера Ethernet
 - •Другие сетевые устройства
 - •Аппаратура лвс
 - •Аппаратура сети Ethernet
 - •Аппаратура сети Fast Ethernet
 - •Аппаратура сети Gigabit Ethernet
 - •Аппаратура сети Token Ring фирмы ibm
 - •Аппаратура сети Arcnet
 - •Аппаратура сети fddi
 - •Аппаратура сети 100vg-AnyLan
 - •Уровни моделиOsi
 - •Прикладной уровень
 - •Уровень представления
 - •Сеансовый уровеньOsi
 - •Основные понятия.
 - •Фазы и услуги сеансового сервиса
 - •Функциональные группы и сервисные подмножества
 - •Транспортный уровеньOsi
 - •Сетевой уровень osi Структура системы передачи данных
 - •Задачи сетевого уровня
 - •Протоколы сетевого уровня
 - •Протоколы сетевого уровня в сетях с коммутацией пакетов
 - •Рекомендация х.25 мкктт
 - •Уровень управления информационным каналом Типы протоколов
 - •Протокол bsc
 - •Протокол hdlc
 - •Каналы t1/e1
 - •Метод биполярного кодирования
 - •Синхронизация
 - •Кадровая синхронизация
 - •Мультиплексирование
 - •Типичная структура системы
 - •Интерфейс bri
 - •Интерфейс pri
 - •Аппаратные средства абонентского комплекса
 - •Дополнительные услуги сетей isdn
 - •Сети Frame Relay
 - •Формат кадра
 - •Согласование скорости передачи
 - •Типы каналов
 - •Защита от ошибок
 - •Сети atm
 - •Быстрая коммутация пакетов
 - •Типы каналов
 - •Подуровни atm и режимы передачи
 - •Сеть Интернет
 - •Стек протоколов tcp/ip
 - •Уровень I стекаTcp/ip
 - •Уровень II стекаTcp/ip
 - •Уровень III стекаTcp/ip
 - •Уровень IV стека tcp/ip
 - •Протокол ip
 - •Протокол iPv6
 - •Протокол tcp
 - •Механизм тайм-аута ожидания подтверждения
 - •Протокол udp
 - •Протокол icmp
 - •Маршрутизация
 - •Маршрутизаторы
 - •Примеры протоколов Протокол rip
 - •Протокол ospf
 - •Протокол igrp
 - •Протокол политики маршрутизации egp
 - •Протокол политики маршрутизации bgp
 - •Протокол pnni
 - •Литература
 
Механизм тайм-аута ожидания подтверждения
Когда протокол TCP передает сегмент с данными, он помещает его копию в очередь повторной передачи и запускает таймер. Когда приходит подтверждение (на данный сегмент) – сегмент стирается, а таймер выключается. Если таймер истек, а подтверждение не получено – сегмент передается повторно.
Выбор тайм-аута
Важной задачей является выбор величины этого тайм-аута Taожидания подтверждения. При малой величине Taувеличивается число повторных передач. При большой величине Taвозникают длительные простои ожидания «несуществующей» квитанции.
В протоколе TCP тайм-аут Taвыбирается с помощью достаточно сложного адаптивного алгоритма. Суть его следующая.
При каждой передаче засекается время до прихода квитанции (время оборота).
Получаемые значения усредняются с весовым коэффициентом, возрастающим от предыдущего замера к следующему. Таким образом стараются усилить влияние последних замеров времени оборота.
В качестве Taвыбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2.
При большом разбросе времени оборота в алгоритме выбора тайм-аута учитывается также и дисперсия этой величины.
Приостановка передачи
При полном заполнении входного буфера перегруженный узел-приемник указывает в своей квитанции нулевое окно. Даже после этого его партнер по соединению может направить на этот порт сообщение. Для этого оно должно сопровождаться пометкой «срочно» (в поле заголовка — «указатель срочности»). При поступлении такого срочного пакета порт обязан принятьего даже путем вытеснения из буфера уже находящихся там данных.
После приема квитанции с нулевым окном узел-отправитель время от времени делает контрольные попытки продолжить обмен данными. Если порт-приемник уже готов принимать информацию, то в ответ на контрольный запрос он посылает квитанцию с указанием ненулевого размера окна.
Перегрузка сети может произойти и на промежуточных узлах-маршрутизаторах. В таких случаях они могут инициировать уменьшение размера окна посылкой управляющих сообщений ряду конечных узлов. Это позволяет им дифференцированно управлять интенсивностью потока данных в различных частях сети.
Протокол TCP описан в документе RFC 793.
Формат заголовка
Как показано на рисунке сегмент TCP состоит из заголовка и поля данных. Минимальная длина заголовка составляет 20 байт. Для определения назначения большинства полей предназначены специальные управляющие биты заголовка.
Формат и значения поля «управляющие биты» показаны в таблице.
URG — (Urgent) – сигнализация о срочных данных
ASK — (Acknowledgment) – указывает на то, что используется поле «подтверждения».
PSH — (Push) – включена функция проталкивания потока данных. Обычно используется для передачи последнего сегмента в потоке данных и этот сегмент будет без очереди доставлен к приложению-получателю.
RST — (Reset) – указывает на сброс и последующую перезагрузку данного соединения.
SYN — (Synchronization) – флаг синхронизации. Когда он установлен, поле «номер в последовательности» содержит начальный номер байта в последовательности.
FIN — (Final) – указывает на отсутствие данных для передачи.
Основные поля заголовка
«Номер в последовательности» (Sequence number) – номер первого байта в текущем сегменте.
«Номер подтверждения» (Acknowledgment number) – номер следующего байта, который ожидает приемник. Тем самым подтверждается получение байтов с номерами до {AN-1}.
«Смещение данных» (Data offset) – указывает количество 32-битных слов в заголовке TCP.
| 
			 Номер бита  | 
			 1  | 
			 2  | 
			 3  | 
			 4  | 
			 5  | 
			 6  | 
| 
			 Название  | 
			 URG  | 
			 ASK  | 
			 PSH  | 
			 RST  | 
			 SYN  | 
			 FIN  | 
| 
			 Назначение  | 
			 Поле «указатель срочности» задейство-вано  | 
			 Поле «номер подтвер-ждения» задейст-вовано  | 
			 Включена функция протал-кивания  | 
			 Перезаг-рузка данного соедине-ния  | 
			 Синхро-низация номеров в очереди  | 
			 Данных для передачи нет  | 
«Резерв» (Reserved) – заполнено нулями и предназначено для будущего расширения протокола.
«Окно» (Window) – объявляет размер W окна в байтах.
«Контрольная сумма» (Checksum) – сумма всех 16 битовых слов заголовка и поля данных.
«Опции» (Options) – имеет переменную длину и может отсутствовать. Его размер всегда кратен 8 байтам. Здесь могут, к примеру, указываться: максимальный размер сегмента, дополнительные услуги и т.д.
Процедура установления соединения
В связи с крайней ненадежностью нижележащих протокольных уровней TCP использует процедуру троекратного рукопожатия для установления соединения (см. рис.).
На рисунке ПВУ – это один из протоколов вышележащего уровня (HTTP, FTP и т.д.). Последовательность следующая:
ПВУ А посылает в свой объект TCP примитив «Открыть», указав адрес и параметры.
TCP А посылает TCP B сегмент SYN с номером, к примеру, 55 (флаг SYN=1, «номер в последовательности» = 55). Этот начальный номер будет затем использоваться в процедуре передачи данных. Начальный порядковый номер устанавливается с помощью специального генератора случайных чисел, который увеличивает свои значения каждые 4 мкс, работая по модулю 232. Это значит, что следующий раз такой номер встретится через 4,5 часа.
T
CP
	B подтверждает получение запроса на
	соединение посылкой пакета SYN-ACK (SYN=1,
	ACK-1) с собственным начальным номером
	(например, 202) и с установленным в поле
	подтверждения номером 56 (следующий
	ожидаемый на приеме номер).
TCP A посылает сегмент ACK с номером 203 (номер следующего ожидаемого байта).
TCP A уведомляет ПВУ А об открытии соединения.
Получив ACK 203 TCP B уведомляет примитивом «успешное открытие» ПВУ В.
Процедура передачи данных
Рассмотрим простейший случай. Из А в В передается 30 байт, а из В в А посылается 100 байт. Соединение является дуплексным. Последовательность обмена следующая:
ПВУ А выдает в TCP A примитив «Передать» и сообщение длиной 30 байт.
TCP A помещает 30 байт в сегмент. В заголовке указывается порядковый номер первого байта в сегменте — 56.
TCP B получает сегмент, передает его ПВУ В и посылает сегмент подтверждения (ACK 86). Последний полученный байт будет иметь номер 85 (55+50). Так как в ACK указывается номер следующего ожидаемого байта, то это будет 86.
ПВУ В выдает TCP B примитив «Передать» и сообщение длиной 100 байт.
TCP B отправляет сегмент с порядковым номером 203 (202+1) — номером первого байта в этом сегменте.
TCP A передает сообщение ПВУ А и посылает подтверждение ACK (303), т.е. с указанием номера следующего ожидаемого байта.
Т
ак
как протокол дуплексный и подтверждения
могут включаться в состав передаваемого
сегмента, то этапы 9 и 11 могут быть
объединены (посылкой сегмента данных
с N=203, ACK=86).
Завершение соединения
На рисунке показаны этапы процедуры разъединения.
П
ВУ
	А посылает TCP A примитив «Завершить».
TCP A выдает пакет FIN (с порядковым номером 86, без данных).
О закрытии сообщается ПВУ В (примитивом «Закрытие») и посылается ACK (87).
ПРУ В посылает примитив «Завершить» и посылается FIN (303)
О закрытии извещается ПВУ А и выдается подтверждение ACK 304/
Об окончании процедуры извещается ПВУ В.
Особенности протокола TCP
С помощью флага URG могут передаваться срочные данные.
Соединение является надежным за счет: - использования режима обнаружения ошибок; - присвоения порядковых номеров каждому байту сообщения; - использования тайм-аута ожидания подтверждения, по его истечении сегмент передается повторно.
Управление потоком путем использования окна передачи W.
