Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
download_and_use_it.docx
Скачиваний:
4
Добавлен:
29.07.2019
Размер:
176.01 Кб
Скачать

Разраб.

Листов

Лист

Лит.

Лист

№ док

м.

Дата

Подп.

Проверил

гр. АСОИР - 081

Утв.

31

Содержание

Введение

4

1 Анализ предметной области

5

1.1 Общие сведения

5

1.2 Таймер повторной передачи

5

1.3 Устойчивый таймер TCP

7

1.4 Таймер «оставайся в живых»

7

1.5 Таймер 2MSL

9

2 Разработка технологии проведения исследований

11

2.1 Общие сведения

11

2.2 Таймер повторной передачи

11

2.3 Устойчивый таймер TCP

11

2.4 Таймер «оставайся в живых»

12

2.5 Таймер 2MSL

12

3 Разработка средств решения поставленной задачи

14

4 Исследование модели и анализ результатов

18

4.1 Исследование таймера повторной передачи

18

4.2 Исследование устойчивого таймера TCP

21

4.3 Исследование таймера "оставайся в живых"

25

4.4 Исследование таймера 2MSL

26

Заключение

30

Список используемых источников

31

Введение.

Transmission Control Protocol (TCP) (протокол управления передачей) – один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP. Выполняет функции протокола транспортного уровня модели OSI.

TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета (см. также T/TCP). В отличие от UDP гарантирует целостность передаваемых данных и уведомление отправителя о результатах передачи.

Реализация TCP, как правило, встроена в ядро ОС, хотя есть и реализации TCP в контексте приложения.

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

TCP - это надежный транспортный уровень. Один из способов обеспечения надежности заключается в том, что удаленный участник обмена подтверждает полученные данные. Однако, сегменты данных, которые должны быть подтверждены, могут быть потеряны. TCP отрабатывает подобные ситуации установкой тайм-аута, при отправке данных; если данные не были подтверждены до момента истечения тайм-аута, TCP передает их повторно. Основными составляющими частями подобной технологии являются тайм-ауты и повторные передачи.

1 Анализ предметной области

1.1 Общие сведения

TCP управляет четырьмя таймерами для каждого соединения:

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

- Устойчивый (persist) таймер, в течение которого сохраняется информация о размере окна передачи, даже если удаленный конец закрыл свое приемное окно.

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

- Таймер 2MSL определяет время, в течение которого соединение может быть в состоянии TIME_WAIT.

1.2 Таймер повторной передачи

Основой тайм-аутов и повторных передач TCP является расчет времени возврата (RTT - round-trip time), соответствующего данному соединению. Мы ожидаем, что оно может изменяться со временем, так как может измениться маршрут, или загрузка сети. TCP должен отследить эти изменения и соответственно модифицировать тайм-ауты.

Во-первых, TCP должен рассчитать RTT между отправкой байта с конкретным номером последовательности и получением подтверждения на этот номер последовательности. Обычно не существует полного соответствия между сегментами данных и подтверждениями (ACK). Мы используем величину M, чтобы обозначить рассчитанный RTT. Для определения RTT существует расширение к исходной спецификации TCP, которое называется хэшированная оценочная функция RTT (обозначается R)

(1.1)

где α - это коэффициент хэширования с рекомендуемым значением 0,9. Хэширование - способ организации структур данных (хэш-таблиц), обеспечивающий эффективный поиск и пополнение; положение элемента данных в хэш-таблице определяется значением функции расстановки, отображающей множество возможных ключей элементов данных и множество индексов таблицы и обеспечивающей равномерное заполнение. Хэшированный RTT обновлялся каждый раз, когда осуществлялось новое вычисление. Девяносто процентов данных для каждого нового расчета берется из предыдущего расчета, а десять из нового. Для подобной хэшированной оценочной функции, которая изменяется с изменением RTT, RFC 793 рекомендует, чтобы тайм-аут повторной передачи (RTO) устанавливался следующим образом

(1.2)

где β - это коэффициент изменения задержки с рекомендуемым значением равным 2. Джекобсон подробно обсуждает проблемы, связанные с подобным подходом, в основном заключающиеся в том, что он не может применяться при широком диапазоне изменения RTT, и является причиной нежелательных повторных передач. Как замечает Джекобсон, нежелательные повторные передачи увеличивают загрузку сети. В этом случае необходимо добавить возможность отслеживать расхождения в расчетах RTT в дополнение к хэшированной функции оценки RTT. Расчет RTO основанный на среднем и расхождении дает значительно лучшие результаты при широком диапазоне изменений времен возврата, чем просто расчет RTO как постоянного кратного среднего значения. Как описано у Джекобсона, среднее отклонение является хорошим приближением к стандартному отклонению, однако рассчитывается значительно легче. (Расчет стандартного отклонения требует вычисления квадратного корня.) Таким образом, следующие уравнения могут быть применены к каждому расчету RTT M.

(1.3)

(1.4)

(1.5)

(1.6)

где A - это хэшированный RTT (оценочная функция среднего), а D это хэшированное среднее отклонение. Err это разница между только что рассчитанным значением и текущим значением оценочной функции RTT. Оба A и D используются для расчета следующего тайм-аута повторной передачи (RTO). Увеличение среднего (g) установлено в значение 1/8 (0,125). Увеличение отклонения (h) установлено в 0,25. Максимальное увеличение отклонения делает рост RTO быстрее при изменении RTT. Джекобсон устанавливает 2D при расчете RTO, однако для следующих исследований Джекобсон изменяет это значение на 4D. Джекобсон показывает способ осуществить эти вычисления с использованием целочисленной арифметики, именно так это обычно делается в стандартных реализациях. (Одна из причин заключается в том, что g, h и множитель 4 - это степени двух, поэтому все операции могут быть осуществлены с помощью сдвига, без умножений и делений.) Сравнение исходного метода с методом Джекобсона показывает, что расчеты хэшированного среднего одинаковы (α равно единица минус увеличение (g)), однако используются различные увеличения. Также, расчет RTO по Джекобсону зависит от обоих значений - хэшированного RTT и хэшированного среднего отклонения, тогда как оригинальный метод использует умножение хэшированных RTT.

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