Реферат: Учебное пособие Издательство спбгпу санкт-Петербург
Заборовский В.С., Мулюха В.А., Подгурский Ю.Е.
СЕТИ ЭВМ И ТЕЛЕКОММУНИКАЦИИ
ИССЛЕДОВАНИЯ ПРОЦЕССОВ В КОМПЬЮТЕРНЫХ СЕТЯХ: ТЕЛЕМАТИЧЕСКИЙ ПОДХОД
Учебное пособие
Издательство СПбГПУ
Санкт-Петербург
2009
УДК 061.68 (075.8)
Учебное пособие соответствует дисциплинам ОПД Ф10 «Сети ЭВМ и телекоммуникации» государственного общеобразовательного стандарта направления 552800 «Информатика и вычислительная техника».
Данное пособие развивает тематику лабораторных работ в направлении расширения инструментальных средств анализа и моделирования трафика. Учебное пособие включает в себя краткое описание возможностей программы Wireshark, предназначенной для анализа сетевых протоколов, и программы MTraffic, для анализа различных параметров сети, программы Network Simulator 2, для моделирования сетевых процессов, программы Anylogic, для моделирования различных механизмов TCP и содержит методические рекомендации и материалы к циклу работ студентов.
В пособие предлагается телематический подход к изучению материала, заключающийся в комплексном рассмотрении телекоммуникационной составляющей и изучении сетевых сервисов.
Лабораторные работы в учебном пособии предназначены для практического освоения материала студентами старших курсов специальностей «Информатика и вычислительная техника», «Сети ЭВМ и телекоммуникации».
Табл. XX. Ил. XX. Библиогр.: назв. XX
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 5
^ ТЕОРЕТИЧЕСКАЯ ЧАСТЬ: МОДЕЛИ И МЕТОДЫ 6
Телематический подход к исследованию процессов в компьютерных сетях 6
Модели процессов в компьютерных сетях и их характеристики 6
Описание программных средств анализа трафика 13
^ ЛАБОРАТОРНЫЙ ПРАКТИКУМ: СРЕДСТВА И ПРОТОКОЛЫ 40
Анализ пакетного трафика 40
Общий анализ трафика различных типов 67
Исследование характеристик производительности, адаптивности и надежности различных версий протокола ТСР протокола ТСР (TCP Reno, TCP New Reno, TCP Sack, TCP Fack, TCP FullTCP, TCP Vegas) 77
Описание имитационной модели абстрактного транспортного протокола 98
Анализ трафика статистическими методами 131
Анализ трафика методами нелинейной динамики 138
Определение типа TCP протокола в типовой ОС. 157
^ СПИСОК ЛИТЕРАТУРЫ 158
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ
МУЗ - медленно убывающая зависимость
ПО – программное обеспечение
ПС – пропускная способность
УЛК - учебно-лабораторный комплекс
ARP - Address Resolution Protocol
ICMP - Internet Control Message Protocol
IP – Internet Protocol
ТСР – Transmission Control Protocol
RTCP
UDP – User Datagram Protocol
ВВЕДЕНИЕ
Постоянный контроль работы сети необходим для поддержания ее в работоспособном состоянии. Использование средств контроля помогает администратору сети выявить проблемные участки и устройства сети, а их отключение или реконфигурацию он может выполнять в этом случае вручную.
Процесс контроля работы сети обычно делят на два этапа - мониторинг и анализ [1]. На этапе мониторинга выполняется более простая процедура - процедура сбора данных о работе сети.
Далее выполняется этап анализа, под которым понимается более сложный и интеллектуальный процесс осмысления собранной на этапе мониторинга информации, сопоставления ее с данными, полученными ранее, и выработки предположений о возможных причинах замедленной или ненадежной работы сети.
Процедура проведения измерений любых параметров сети не из простых и содержит множество подводных камней [2].
Не следует ограничиваться единственным измерением какого-нибудь параметра – например, времени передачи одного пакета. Нужно повторить измерения несколько раз и вычислить среднее значение. Чем больше будет выборка, тем выше окажется точность оценки среднего значения и его среднеквадратичного отклонения. Погрешность может быть вычислена при помощи стандартных формул статистики.
Выборка должна быть репрезентативной. Следует повторить всю последовательность измерений параметров в различное время суток и в разные дни недели, чтобы заметить влияние различной загруженности системы (сети) на измеряемые параметры. Результаты измерений зависят не только от сети, но и от операционной системы клиента и сервера, аппаратного интерфейса сетевых карт, их драйверов и других факторов.
На основе этих данных уже строится модель, и делаются дальнейшие прогнозы.
^ ТЕОРЕТИЧЕСКАЯ ЧАСТЬ: МОДЕЛИ И МЕТОДЫ Телематический подход к исследованию процессов в компьютерных сетях
Телематический подход при изучении компьютерных сетей заключается в комплексном рассмотрении телекоммуникационной составляющей и изучении сетевых сервисов. Сервис определяет семантику передаваемых данных.
^ Модели процессов в компьютерных сетях и их характеристики
Исключительно важным параметром компьютерных сетей, как и любых других систем связи, характеризующим эффективность использования сетевых ресурсов, является пропускная способность (ПС). Согласно сложившемуся подходу ПС определяется в стационарном режиме как среднее число по всем реализациям дошедших безошибочно до приемника пакетов (битов, байтов) в единицу времени. Для компьютерных сетей в связи c фрактальными свойствами протекающих в них случайных процессов вышеуказанную формулировку необходимо пересмотреть.
Для решения поставленной задачи и выработки соответствующих рекомендаций необходимо предварительно ознакомиться с имеющимися материалами по фрактальным процессам в сетях, дополнив их результатами анализа длительной работы сетей [3, 4, 5, 6]. Рассматривается наиболее коррелированный из TCP-процессов: режим быстрой повторной передачи, преобладающий при доставке пакетов на транспортном уровне. На рис. 1.1 (график 1) изображена одна из реализаций модели этого режима, аппроксимируемой линейным законом увеличения числа посланных пакетов с интенсивностью один пакет в условную единицу времени.
Модели режима повторной передачи пакетного трафика
Уровень соответствует окну приемника. При благоприятном исходе число переданных пакетов достигает максимально возможного, но не более размера окна приемника. Распределенные равномерно временные отсчеты - случайные моменты релаксации, вызванные перегрузкой в сети. Определению подлежат статистические характеристики временных моментов (задержек) , характеризующих благоприятные исходы в определенных сериях передачи. Моменты полагаем наименьшим временем благоприятного исхода (в нулевой серии).
В момент релаксации значение окна перегрузки (задаваемое на стороне отправителя число пакетов, которое можно передать в сеть до получения подтверждения) уменьшается в два раза. Согласно представленной выше формулировке ПС пропорциональна площади под кривой среднего фрагмента режима повторной передачи, деленного на временной интервал этого фрагмента (Рис.1.1, график 2). Анализ статистических характеристик выявил корреляционную зависимость моментов релаксации каждой последующей серии от параметров функции распределения моментов релаксаций всех предыдущих серий. Это выразилось в характере изменения дисперсий задержек по закону - фрактальный параметр (Рис. 1.2, кривая 1). Методика решения приведена в [6].
Расчетные зависимости дисперсии от математического ожидания
Наряду с равномерным распределением в процессе нормальной эксплуатации наблюдаются моменты релаксации, распределенные по экспоненциальному закону:.
Это имеет место, когда моменты релаксации группируются главным образом в районе малых значений окон перегрузки. Здесь зависимость дисперсии от времени имеет вид (Рис. 1.2, кривая 2).
В качестве еще одного третьего альтернативного варианта рассматривается режим повторной передачи, в моменты релаксации которого окно перегрузки изменяется до постоянной величины, например, до нуля или, как в нашем примере до уровня (рис. 1.3, график 1 – реализация, график 2 – усредненный фрагмент, для уровня ).
Модели режима передачи пакетного трафика независимыми блоками
При этом моменты релаксации в каждой серии некоррелированны (статистически независимы), а дисперсия задержек изменяется по линейному закону (рис. 1.2, кривая 3). Сравнивая эти варианты, приходим к выводу, что площади под усредненными фрагментами за одинаковый интервал времени в первом варианте больше по сравнению с третьим и, следовательно, для пропускных способностей выполняется неравенство ПС1 > ПС3.
Перейдем к обсуждению причин, объясняющих необходимость пересмотра последнего результата. Начнем с того, что фрактальные процессы в режиме быстрой повторной передачи обладают протяженными или, как их еще называют, «тяжелыми» распределениями, аналитическая запись которых имеет вид или ( – фрактальный параметр, ). В первом случае этим выражением аппроксимируются корреляционные функции стационарных приращений фрактального винеровского процесса ( – параметр смещения приращений процессов на интервалах одинаковой длительности Т), во втором – корреляционную функцию стационарной фрактальной плотности (t – текущее время). В последнем случае корреляционная функция участвует в формировании статистических характеристик задержек [4, 6].
Корреляционные функции процессов
Как следует из рис. 1.4, она представляет собой при слабозатухающую (протяженную) в течение нескольких часов функцию (кривая 1). Для сравнения на этом же рисунке приведена обычная короткопротяженная функция (кривая 2).
Оценим спектральные характеристики фрактального процесса. Введем параметр, называемый интервалом корреляции . Он определяется как половина ширины основания прямоугольника с высотой равной дисперсии , площадь которого равна площади под кривой модуля корреляционной функции
Другой параметр – ширина полосы спектра , определяется как величина площади под кривой спектральной плотности , отнесенной к спектральной плотности на нулевой частоте
Воспользуемся следующим утверждением: произведение интервала корреляции на ширину полосы спектра – величина постоянная для семейств спектральных плотностей заданной формы [7]. Как следует из этой зависимости, чем уже корреляционная функция, тем протяженнее спектр, и наоборот, чем протяженнее корреляционная функция, тем уже спектр.
Возвращаясь к кривой 1 рис. 1.4, приходим к следующему результату: при сек. ширина полосы спектра 1/сек, т.е. в спектре фрактальных процессов присутствуют в основном гармоники, периоды которых десятки минут и даже несколько часов. Таким образом, состояние фрактальных процессов задержек характеризуется большими по величине и длительными по времени отклонениями от средних значений. Причем, чем больше моментов релаксации прошло, тем эти отклонения становятся больше и длительнее. Это объясняется существенным возрастанием дисперсии с увеличением точек (моментов) релаксации (рис. 1.2, кривые 1 и 2).
В задачах определения статистических характеристик при временах выборки значительно меньше создается видимость изменения по времени этих характеристик: режим как бы становится нестационарным. Оказывается при более детальном рассмотрении задачи определение ПС в режиме быстрой повторной передачи необходимо учитывать не только среднее значение, полученное через усредненный фрагмент передачи трафика, но и дополнительную составляющую, вызванную длительным и большим отклонением дисперсий моментов задержек . Это позволяет объяснить ряд парадоксов при передаче трафика: понижением ПС при длительной сопровождающейся большим числом релаксаций работе в этом режиме.
В качестве примера рассмотрим в режиме повторной передачи отклонение от среднего в сторону уменьшения текущего времени для шестого момента релаксации (от точки А к точке В, рис 1.1, график 3)1. Это отклонение выбираем равным корню квадратному из дисперсии для шестой точки кривой 1 рис. 1.2: . В этом случае усредненный фрагмент режима принимает вид графика 3 рис. 1.1 и, учитывая вышесказанное, может находиться в нем достаточно долго. Сравним этот режим с альтернативным вариантом 3, когда информация передается в виде независимых блоков, а усредненный фрагмент представляет собой график 2 рис. 1.3. Спектр этого режима имеет сравнительно высокочастотные гармоники, и случайный процесс задержек неоднократно пересекает средние значения из-за статистической независимости этих блоков. Здесь и фрактальность в этом режиме отсутствует. Сравнивая площади под усредненными фрагментами графика 3 рис 1.1 и графика 2 рис 1.3, приходим к результату ПС1<ПС3. Это означает, что пропускная способность в режиме повторной передачи с увеличением числа релаксаций уменьшается по сравнению с пропускной способностью режима передачи информации независимыми блоками.
В заключение изложим полученные в работе основные результаты.
В режиме быстрой повторной передачи из-за корреляционной зависимости степенного вида поведение некоторых параметров, например моментов задержек , описывается фрактальными процессами. Эти изменения сопровождаются большими по величине и длительными по времени отклонениями от среднего значения.
Из-за фрактального характера процессов при определении пропускной способности необходимо учитывать не только среднее значение, но и дополнительную составляющую, зависящую от длительных и больших отклонений дисперсии.
С увеличением числа релаксаций и, следовательно, длительности режима повторной передачи пропускная способность уменьшается и становится меньше пропускной способности режима передачи информации независимыми блоками.
Уровень фрактальности характеризуется величиной фрактального параметра . При переходе от равномерного к экспоненциальному распределению моментов релаксации этот параметр увеличивается. Следствием этого является усиление влияния рассмотренных в статье неблагоприятных факторов на пропускную способность.
^ Описание программных средств анализа трафика
Wireshark
Для исследования процессов в компьютерных сетях широко используются программы перехвата и анализа пакетов. Эти программы являются основным инструментом при решении задач:
Обнаружение проблем и узких мест сети (troubleshooting)
Анализаторы трафика позволяют получить практически полную картину событий, происходящих в сети: интенсивность трафика по времени, по рабочим станциям, по протоколам, количество ошибок разных типов.
Отладка разрабатываемого сетевого ПО.
Часто только тщательный разбор заголовков отправляемых и принимаемых пакетов позволяет найти причину неверного функционирования ПО.
Обучение.
Результаты работы анализаторов трафика являются прекрасной иллюстрацией теоретических материалов и спецификацией.
Протоколирование сетевого трафика.
Политика безопасности многих организаций включает регистрацию входящих и исходящих пакетов для дальнейшего просмотра с целью обнаружения попыток несанкционированного доступа к информации, различного рода атак и других нежелательных явлений.
Перехват и анализ сетевого трафика осуществляется специальными программами, называемыми анализаторами трафика или снифферами. Такие программы, как правило, построены на основе различных библиотек захвата пакетов и, в общем случае, реализуют совокупность мер по перехвату и декодированию пакетов, поступающих на доступные сетевые интерфейсы компьютера.
В результате перехвата пакетов получают некий «сырой» дамп данных, обычно разделенный на блоки по границам кадров (пакетов).
После декодирования пакетов пользователь получает расшифрованную версию поступивших в процессе первого этапа данных, предоставляющую данные в формате, удобном для чтения человеком.
Сетевые анализаторы могут перехватывать как свой трафик, так и весь трафик сетевого сегмента.
При работе в локальных сетях, сетевые платы в нормальном режиме захватывают только кадры со своим или широковещательным МАС-адресом назначения. Таким образом, в нормальном режиме имеется возможность перехвата и анализа только «своего» трафика. Для перехвата пакетов всех станций сегмента сетевые анализаторы переводят сетевую карту в «неразборчивый» режим, в котором карта принимает и не адресованные ей кадры.
Анализаторы трафика могут функционировать как на сетевых коммуникационных устройствах (маршрутизаторах, коммутаторах и пр.), так и на оконечных узлах сети.
Конкретные реализации анализаторов отличаются друг от друга главным образом следующими функциональными возможностями:
Поддерживаемыми физическими интерфейсами и протоколами канального уровня;
Качеством декодирования и количеством распознаваемых протоколов;
Пользовательским интерфейсом и удобством отображения;
Дополнительными возможностями: статистика, просмотр в реальном времени, генерирование и модификация пакетов и др.
Для получения данных о трафике в рамках учебно-лабораторного комплекса используется программный пакет Wireshark [6] (ранее Ethereal) – анализатор сетевых протоколов, который позволяет фиксировать и в интерактивном режиме просматривать содержание пакетов.
Wireshark — открытое программное обеспечение, распространяющееся по лицензии GNU GPL. Что немаловажно при организации учебного процесса.
Поддерживаемые операционные системы: AIX, FreeBSD, HP-UX, IRIX, Linux, NetBSD, OpenBSD, SCO, Solaris, True64 UNIX, Windows.
Фильтр по захвату трафика позволяет работать с различными сетевыми технологиями (Ethernet, Token Ring, ATM, ...). Ограничить захват можно с помощью различных триггеров (количество захваченных пакетов, время захвата, количество захваченных данных). При длительном захвате есть возможность сохранять дамп в несколько файлов. При выводе пакетов можно использовать мощную систему фильтрации Wireshark, отбирающую пакеты по большему, нежели в других анализаторах, числу полей.
Wireshark высчитывает некоторые статистики сети, к которым можно получить доступ через меню Statistics.
Получить более подробную информацию о поддерживаемых программой форматах и других возможностях можно из руководства пользователя, доступного на сайте http://www.wireshark.org.
MTraffic
MTraffic - Многофункциональная программная система для анализа трафика в компьютерных сетях.
MTraffic разработан для учебно-лабораторного комплекса по исследованию процессов в компьютерных сетях. Программа имеет пользовательский графический интерфейс.
Функциональные возможности:
- исследование характеристик, используемых администраторами для отслеживания работоспособности сети (интенсивность трафика, значения размеров пакетов, количество пакетов в момент времени, интервал пакетов, вычисление максимальных, минимальных показателей и т.д., вывод графиков по запросу пользователя),
- исследование трафика с использованием методов статистического анализа (подсчет дисперсии, среднего, показателя Хэрста, коэффициенты пачечности и пиковости),
- исследование трафика с использованием методов нелинейной динамики (анализ числовых рядов, поиска внутренней зависимости в них (корреляции), построение уравнения, описывающего числовой ряд). Для ускорения вычислений предусмотрено распараллеливание наиболее трудоёмкого фрагмента кода и автоматический расчёт его на кластере.
Структура MTraffic приведена на рис. 2.1.
Структурная схема MTraffic
Разработанное инструментальное средство имеет модульную структуру:
Common_parametrs.m (общий анализ),
Classical_analyze.m (методы статистического анализа),
rtcp_test.m. (анализ протокола RTCP),
polyrebuild_diff.m (восстановление уравнения дифференциальным методом),
polyrebuild_razn.m (восстановление уравнения разностным методом),
Size_analyzer.m (обработка временного ряда),
MTraffic.m (главное меню).
Сетевой симулятор NS2
^ ВСТАВИТЬ ПРО NS
TCP объекты в NS-2:
Объекты типа TCP представляют собой класс объектов агентов, моделирующих транспортный протокол TCP Tahoe.
TCP-агент поддерживает дополнительные конфигурационные переменные. Каждая из переменных, приведенных в этом списке, может быть переменной класса или переменной экземпляра класса. Изменение переменной класса меняет значение по умолчанию для всех агентов, созданных в последствии. Изменение переменной экземпляра конкретного агента влияет только на этот агент.
^ Пример:
Agent/TCP set window_ 100; # влияет на класс
$tcp set window_ 2.0;# меняет window_ только для объекта $tcp
Конфигурационные параметры
window_ - верхняя граница окна приемника (Advertisment Window) TCP соединения;
maxcwnd_ - верхняя граница окна переполнения TCP соединения. Для отмены ограничения устанавливается в 0 (значение по умолчанию).
windowInit_ - начальное значение окна переполнения для медленного старта.
windowOption_ - тип алгоритма, использующегося для управления окном переполнения.
windowThresh_ - постоянная сглаживающего фильтра, используемого для вычисления awnd (см. далее). Применяется для исследования различных алгоритмов управления окном.
overhead_ - диапазон случайно распределенной переменной, используемой для задержки каждого выходного пакета. Применяется только в версии tcp Tahoe, в tcp Reno не используется.
ecn_ - указатель использования (true/false) механизма явного оповещения (explicit congestion notification) в дополнение к отбрасыванию пакетов, при насыщении.
packetSize_ - размер пакетов источника;
tcpTick_ - интервал таймера TCP, используемый для оценки времени RTT (round-trip time). По умолчанию установлена нестандартная величина 100ms.
bugFix_ - указатель (true/false) запрета механизма быстрой повторной передаче при потере пакетов в одном окне данных. Установка в true запрещает быстрый повтор передачи нескольких пакетов, потерянных в одном окне данных.
maxburst_ - максимальное число пакетов, которое может посылать источник в ответ на одно полученное подтверждение. При отсутствии ограничения устанавливается в 0.
slow_start_restart_ - признак использования (1/0) механизма медленного старта. Включено по умолчанию.
MWS (Maximum Window Size) – константа, определяющая максимальный размер окна (в пакетах), допустимый в симуляторе. По умолчанию MWS=1024 пакетам. Для Tahoe TCP параметр "window" представляет размер указанного окна получателя, которое должно быть меньше чем MWS-1. Для Reno TCP значение "window" должно быть меньше чем (MWS-1)/2.
Переменные состояния
dupacks_ - число дублирующих подтверждений (ACK), полученных после прихода последнего недублирующего подтверждения
seqno_ - наивысший последовательный номер сегмента (sequence number) для данных источника TCP;
t_seqno_ - текущий последовательный номер сегмента (пакета) пакета;
ack_ - наивысшее значение из полученных подтверждений;
cwnd_ - текущее значение окна переполнения;
awnd_ - текущее значение окна переполнения при использовании усреднения. Используется для исследования различных алгоритмов увеличения окна.
ssthresh_ - текущее значение порога медленного старта;
rtt_ - оценка значения round-trip time;
srtt_ - оценка сглаженного значения round-trip time;
rttvar_ - оценка среднего отклонения значений round-trip time;
backoff_ - экспоненциальная постоянная задержки для round-trip time;
Наиболее часто модифицируемые переменные - window_ и packetSize_. Эти значения сильно влияют на поведение ТСР, их установка связывает модель с реальным ТСР, функционирующим в мировой сети. TCP с большим значением размера пакета, большим окном и меньшим RTT (результат топологии и перегрузки) более агрессивны в запросах к пропускной способности сети.
Значения по-умолчанию для каждого агента TCP:
^ Agent/TCP set window_ 20;
Agent/TCP set windowInit_ 1;
Agent/TCP set windowThresh_ 0.002;# постоянная сглаживающего фильтра, используемого для вычисления awnd. Применяется для исследования различных алгоритмов управления окном.
Agent/TCP set overhead_ 0;#!=0 (добавляет случайное время между передачами) Agent/TCP set ecn_ 0;#(explicit congestion notification) TCP должен реагировать на ecn бит. Указатель использования (true/faulse) механизма явного оповещения о насыщении в дополнение к отбрасыванию пакетов.
^ Agent/TCP set packetSize_ 1000;
Agent/TCP set bugFix_ true;# указатель (true/false)запрета механизма быстрой повторной передачи при потере пакетов в одном окне данных. Если true – запрет.
^ Agent/TCP set slow_start_restart_ true;# использование механизма медленного старта (1/0). Включено по умолчанию
Agent/TCP set maxrto_ 64; # RTO (seconds)
Agent/TCP set dupacks_ 0;# число дублирующих подтверждений ACK, полученных после последнего недублирующего подтверждения
Agent/TCP set ack_ 0;# наивысшее значение из полученных подтверждений ACK
^ Agent/TCP set cwnd_ 0;# текущее значение окна переполнения (packets)
Agent/TCP set awnd_ 0;# среднее cwnd (experimental)
Agent/TCP set ssthresh_ 0;# текущее значение порога медленного старта (packets)
Agent/TCP set rtt_ 0;# rtt отсчет
^ Agent/TCP set srtt_ 0;# сглаженное (среднее) rtt
Agent/TCP set rttvar_ 0;# среднее отклонение отсчета rtt
Agent/TCP set backoff_ 0;# экспоненциальная постоянная задержки RTO
Agent/TCP set maxseq_ 0;# максимальный посланный номер (packet) seq
В настоящее время ns2 поддерживает следующие TCP-агенты односторонних передач:
• Agent/TCP - a “Tahoe” TCP-отправитель
• Agent/TCP/Reno - a “Reno” TCP-отправитель
• Agent/TCP/Newreno - Reno с модификацией
• Agent/TCP/Sack1 - TCP с выборочным повтором (RFC2018)
• Agent/TCP/Vegas - TCP Vegas
• Agent/TCP/Fack - Reno TCP с «последующим подтверждением»
• Agent/TCP/Linux - a TCP-передатчик с поддержкой SACK который использует TCP с перезагрузкой контрольных модулей из ядра Linux
Односторонние агенты приема:
• Agent/TCPSink
• Agent/TCPSink/DelAck
• Agent/TCPSink/Sack1
• Agent/TCPSink/Sack1/DelAck
Двунаправленный агент в текущей версии поддерживается только агентом формы Reno TCP:
• Agent/TCP/FullTcp
Симулятор поддерживает несколько версий абстрактных TCP-отправителей. Эти объекты пытаются зарегистрировать присутствие TCP перегрузки и осуществить контроль ошибок поведения сети, но не являются достоверными моделями реального TCP. Они не содержат описания динамического окна, они вычисляют номер сегмента и номер ACK полностью в части пакета, нет SYN/FIN связи установления/завершения, и никакие данные не передаются (нет контрольных сумм или передающихся данных). По умолчанию ТСР агентом является агент версии Tahoe ТСР.
Объекты типа Tahoe-TCP-отправитель (cwnd = 1 на любую потерю)
В отличие от более ранних реализаций протокола TCP, в версии TCP Tahoe добавлен ряд новых алгоритмов управления передачей. К ним относятся:
медленный старт (Slow-Start),
предупреждение насыщения (Congestion Avoidance),
быстрый повтор передачи (Fast Retransmit),
новый метод оценки длительности цикла передачи (RTT - Round Trip Time), используемой для установки таймера повторной передачи (RTO - Retransmission TimeOut).
Рассмотрим их подробнее:
Если буфер переполнен, какое-то число сегментов будет потеряно. При этом может быть запущено несколько сценариев. Основной вариант - медленный старт, запускается в рамках классического алгоритма TCP-Tahoe при потере сегмента и сопряженным с ним таймаутом (RTO) у отправителя, так как отправитель не получит сигнала подтверждения -ACK для потерянного сегмента. Смысл этого алгоритма заключается в удержании значения CWND в области максимально возможных значений. По существу эта оптимизация осуществляется с помощью потери пакетов.
Потерянный пакет и все, посланные после него, пакеты (вне зависимости оттого, подтверждено их получение или нет) пересылаются повторно. При большой вероятности потери это существенно понижает пропускную способность и увеличивает и без того высокую загрузку канала2.
«Tahoe» TCP агент представляет контроль перегрузки и оценку RTT следующим образом: Окно перегрузки увеличивается на 1 пакет с каждым ACK, полученным в течение медленного старта (когда cwnd_ < ssthresh_) и увеличивается на 1/cwnd_ для каждого нового ACK, полученного при избегании перегрузки (когда cwnd_ ≥ ssthresh_).
Реакция на перегрузку: Tahoe TCP считает пакет потерянным (от перегрузки), когда он определяет NUMDUPACKS (определено в tcp.h, в настоящее время равно 3/кол-во пакетов, не получивших подтверждения) дублирующих ACKs, или когда истекает время повторной передачи. В каждом случае Tahoe TCP реагирует, устанавливая ssthresh_ в половину текущего размера окна (минимум из cwnd_ и window_) или в 2, в зависимости от того, что больше. Затем он снова присваивает cwnd_ значение windowInit_. Это обычно приводит к переходу ТСР в режим медленного старта.
Оценка Round-Trip Time и RTO
4 переменных используются для оценки round-trip time и они определяют время повторной передачи:
rtt_ - значение RTT,
srtt_ - сглаженное значение RTT,
rttvar_ - среднее отклонение значений RTT,
tcpTick_ - интервал таймера TCP,
backoff_ - экспоненциальная постоянная задержки для RTT.
TCP инициализирует rttvar_ = 3/tcpTick_ и backoff_ = 1. Когда таймер будущих повторных передач установлен, его timeout устанавливается в текущее время + max(bt(a + 4v + 1), 64) секунд, где
b – текущее значение backoff_ ,
t - значение tcpTick_,
a - значение srtt_,
v - значение rttvar_.
Отсчет RTT приходит с новым ACK. Отсчет RTT рассчитывается как разница между текущим временем и полем «времени эха» в пакете ACK. Когда первый отсчет взят, его значение используется как инициализируемое для srtt_. Половина первого отсчета используется для инициализации rttvar_. Для последующих отсчетов, значения изменяются следующим образом:
Конфигурация.
Запуск TCP симуляции предполагает создание и конфигурирование агента, прикрепление источника данных (генератора трафика) и их запуск.
Источник данных TCP.
TCP-агент не генерирует никаких прикладных данных, вместо этого пользователь может соединить любой генерирующий трафик модуль с ТСР-агентом для генерации данных. Обычно используется FTP и Telnet. FTP представляет массу передач большого объема, а telnet выбирает размер передачи случайно из tcplib (см. файл tcplib-telnet.cc.)
Объекты типа TCP/Reno являются подклассом объектов TCP, моделирующим протокол Reno TCP. Reno TCP очень похож на Tahoe TCP агент, за исключением того, что он содержит fast recovery. Новый алгоритм не требует освобождение канала и его медленного (slow-start) заполнения, после потери одного пакета. Отправитель переходит в режим быстрого восстановления, после получения некоторого предельного числа дублирующих подтверждений. Как правило, этот предел (tcprexmtthresh) устанавливается равным трем. После получения указанного числа дублирующих подтверждений, отправитель повторяет передачу одного пакета и уменьшает окно насыщения (cwnd) в два раза. Но, в отличие от версии TCP Tahoe, не переходит к алгоритму медленного старта. Он уменьшает размер окна до половины текущего размера и устанавливает ssthresh_ в соответствии с этим значением.
В Reno TCP при нормальной ситуации размер окна меняется циклически. Размер окна увеличивается до тех пор, пока не произойдет потеря сегмента. TCP-Reno имеет две фазы изменения размера окна: фаза медленного старта и фаза избегания перегрузки. При получении отправителем подтверждения доставки в момент времени t + tA (сек.), текущее значение размера окна перегрузки cwnd_(t) преобразуется в cwnd_(t + tA) согласно:
(1),
где
ssth(t) [ssthresh(t)] - значение порога в пакетах, при котором TCP переходит из фазы медленного старта в фазу исключения перегрузки. Когда в результате таймаута детектируется потеря пакета значения cwnd(t) и ssth(t) обновляются следующим образом:
cwnd(t)=1; ssth(t)=(cwnd(t))/2;
С другой стороны, когда TCP детектирует потерю пакета согласно алгоритму быстрой повторной передачи, cwnd(t) и ssth(t) обновляются иначе:
ssth(t) = (cwnd(t))/2;
cwnd(t) = ssth(t);
TCP-Reno после этого переходит в фазу быстрого восстановления. В этой фазе размер окна увеличивается на один пакет, когда получается дублированное подтверждение. С другой стороны, cwnd(t) делается равным ssth(t), когда приходит не дублированный отклик для пакета, посланного повторно. В случае таймаута ssth(t)= (cwnd(t))/2; cwnd=1 (см. описание алгоритма TCP-Tahoe).
Для этих объектов не определены никакие дополнительные методы, конфигурационные параметры и переменные.
Объекты TCP/NewReno являются подклассом объектов TCP, моделирующим модифицированную версию протокола BSD Reno TCP. Основан на Reno TCP-агенте, но с модификацией действий, предпринимаемых при получении новых подтверждений ACK. Для того чтобы избежать быстрого восстановления, отправитель должен получить ACK с наивысшим посланным номером в последовательности пакетов. Этот, новый “partial ACK” не влияет на окно.
При получении трех дублированных подтверждений (DUPACK) отправитель считает пакет потерянным и посылает его повторно. После этого отправитель может получить дополнительные дублированные подтверждения, так как получатель осуществляет подтверждение пакетов, которые находятся в пути, когда отправитель перешел в режим fast retransmit. В случае потери нескольких пакетов из одного окна отправитель получает новые данные, когда приходит подтверждение для повторно посланных пакетов. Если потерян один пакет и не было смены порядка пакетов, тогда подтверждение этого пакета будет означать успешную доставку всех предыдущих пакетов до перехода в режим fast retransmit. Однако, если потеряно несколько пакетов, тогда подтверждение повторно посланного пакета подтверждает доставку некоторых, но не всех пакетов, посланных до перехода в режим быстрой повторной пересылки (fast retransmit). Такие подтверждения называются частичными.
Разработчики назвали алгоритм быстрого восстановления NewReno, так как он значительно отличается от базового алгоритма Reno. Предложенный алгоритм дает определенные преимущества по сравнению с каноническим Reno при самых разных сценариях. Однако, при одном сценарии канонический Reno превосходит NewReno - это происходит при изменении порядка следования пакетов.
Конфигурационные параметры:
newreno_changes_ - указатель версии протокола. Установка в 0 соответствует основной версии NewReno, установка в 1 приводит к использованию дополнительных алгоритмов NewReno
Объекты типа TCP/Sack1 - подкласс объектов TCP, моделирующий протокол BSD Reno TCP с селективным подтверждением. Объекты Sack1 наследуют все функциональные особенности TCP объектов. Этот агент включает выборочные повторы, основанные на выборе ACKs, осуществленном получателем. Алгоритм TCP Sack использует поле "Опции" заголовка кадра ТСР для дополнительной информации о полученных пакетах станцией-получателем. Если произошла потеря, то каждый сегмент дублирующего ACK (dupACK), отправляемый получателем, содержит информацию о кадре, вызвавшем посылку данного сегмента. Таким образом, отправитель, получив данный кадр, имеет информацию не только о том, какой кадр был потерян, но также и о том, какие кадры успешно достигли получателя. Благодаря этому избегается ненужная повторная посылка сегментов, успешно буферированных на стороне получателя. Избыточные данные сохраняются в TCP-заголовке, 40 байт на сегмент. В переменную могут быть записаны два числа – 0 (выключено) и 1 (включено). Значение по-умолчанию – 1 (включено).
Как и Reno, TCP Sack входит в режим быстрого восстановления при получении трех дублирующихся подтверждений (dupACK). Во время быстрого восстановления отправитель поддерживает переменную pipe, отображающую число пакетов, находящихся в сети. Данная переменная увеличивается каждый раз, когда новый сегмент был отправлен и уменьшается, если было получено очередное подтверждение. Передача нового пакета в сеть разрешена, если значение pipe меньше окна перегрузки.
Отправитель также поддерживает структуру данных scoreboard, которая запоминает подтверждения из опции SACK прибывающих подтверждений. Если отправителю разрешена передача, он передает следующий пакет из списка пакетов, считаемых потерянными. Если таких пакетов, то посылается новый пакет.
Для этих объектов не определено никаких дополнительных методов, конфигурационных параметров и переменных.
Объекты типа TCP/Fack - подкласс объектов TCP, моделирующий протокол BSD Reno TCP с механизмом Forward Acknowledgement Congestion Control.
Переменная tcp_fack ответственна за систему Forward Acknowledgement (Упреждающее Подтверждение) в Linux. Forward Acknowledgement – это специальный алгоритм, который работает поверх SACK, и предназначен для контроля "заторов".
Главная идея алгоритма FACK состоит в отслеживании наибольшего номера выборочно подтвержденной последовательности как признака того,
еще рефераты
Еще работы по разное
Реферат по разное
Учебно-методическим объединением по медицинскому и фармацевтическому образованию вузов России в качестве учебного пособия для студентов медицинских вузов
17 Сентября 2013
Реферат по разное
Учебное пособие для очных отделений многопрофильных медицинских университетов
17 Сентября 2013
Реферат по разное
Т. В. Белых дифференциальная психология теоретические и прикладные аспекты исследования интегральной индивидуальности Учебное пособие
17 Сентября 2013
Реферат по разное
Учебное пособие Харьков «хаи» 2005 министерство образования и науки украины
17 Сентября 2013