Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_сети ЭВМ и Тк.doc
Скачиваний:
43
Добавлен:
24.12.2018
Размер:
10.58 Mб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Пермский национальный исследовательский политехнический университет»

Лысьвенский филиал

Факультет высшего профессионального образования

кафедра Естественнонаучных дисциплин

СЕТИ ЭВМ И ТЕЛЕКОММУНИКАЦИИ

Методические указания по выполнению лабораторных работ

студентами направления

230100.62 «Информатика и вычислительная техника»

Лысьва, 2011

Автор: старший преподаватель кафедры ЕН ЛФ ПНИПУ С.А. Зыкин

Методические указания по выполнению лабораторных работ студентов направления 230100.62 «Информатика и вычислительная техника»

Методические указания рассмотрены и утверждены на заседании кафедры естественнонаучных дисциплин ЛФ ПНИПУ протоколом № 6 от 11.10.2011 г.

© Пермский национальный исследовательский

политехнический университет Лысьвенский филиал

Лабораторная работа №1. 5

Лабораторная работа №2 14

Тема: Плезиохронная цифровая иерархия. 14

Лабораторная работа №3 68

Тема: Расчет конфигурации сети Ethernet 68

Лабораторная работа №4. 81

Тема: Диагностические утилиты TCP/IP. 81

Цель работы: практически освоить работу с утилитами TCP/IP, необходимыми в следующих работах. 81

Утилита 81

Применение 81

Задания на лабораторную работу 93

Упражнение 1. Получение справочной информации по командам. 94

Упражнение 2. Получение имени хоста. 94

Упражнение 3. Изучение утилиты ipconfig. 94

Упражнение 4. Тестирование связи с помощью утилиты ping. 94

Упражнение 5. Определение пути IP-пакета. 95

Упражнение 7: Просмотр локальной таблицы маршрутизации. 95

Упражнение 8. Получение информации о текущих сетевых соединениях и протоколах стека TCP/IP. 95

Контрольные вопросы 95

Лабораторная работа №5 96

Тема: Взаимодействие прикладных программ с помощью транспортного протокола TCP 96

Лабораторная работа №6 107

Тема: Фрагментация дейтаграмм в составных сетях с различными значениями MTU 107

Лабораторная работа № 7 127

Тема: Динамическая маршрутизация в составных сетях 127

1. Классификация алгоритмов маршрутизации и общие сведения 127

Цели разработки алгоритмов маршрутизации 127

Типы алгоритмов 128

Показатели алгоритмов (метрики) 131

Таблицы маршрутизации 133

Типы записей в таблице маршрутизации 133

Структура таблицы маршрутизации 134

Протоколы динамической маршрутизации 134

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

Протокол маршрутизации RIP 136

Протокол маршрутизации OSPF 137

Далее пользователь может соединить нужные ему маршрутизаторы, выбрав соответствующий режим редактирования. 143

Лабораторная работа №1. Тема: Моделирование ip сетей.

Цель работы: ознакомиться с принципами функционирования сетей передачи данных с коммутацией пакетов, научиться использовать средства моделирования и анализа сетей передачи данных

Краткие теоретические сведения:

Введение

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

Одним из способов коммутации является коммутация пакетов (КП, packet switching) — разбиение сообщения на «пакеты», которые передаются отдельно. Разница между сообщением и пакетом: размер пакета ограничен технически, сообщения — логически. При этом, если маршрут движения пакетов между узлами определён заранее, говорят о виртуальном канале (с установлением соединения). Если же каждый для каждого пакета задача нахождения пути решается заново, говорят о датаграммном (без установления соединения) способе пакетной коммутации.

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

Одним из таких средств является network simulator 2 (далее - ns2). Главной целью при его разработке являлось построение программного продукта, позволяющего осуществлять имитационное моделирование сетей связи и обладающего целым рядом характеристик, среди которых высокая производительность, хорошая масштабируемость, визуализация результатов и гибкость. В качестве основы программной реализации был выбран разрабатываемый в University of California с 1989 года пакет network simulator (до 1995 года известный как REAL). ns2, как и его предшественники, разрабатывался как программное обеспечение с открытым исходным кодом.

ns2 является объектно-ориентированным ПО, ядро которого реализовано на языке С++. Язык скриптов (сценариев) OTcl (Object oriented Tool Command Language) используется в качестве интерпретатора. Использование двух языков программирования в ns2 объясняется следующими причинами. С одной стороны, для детального моделирования протоколов необходимо использовать системный язык программирования, обеспечивающий высокую скорость выполнения и способный манипулировать достаточно большими объемами данных. С другой стороны, для удобства пользователя и быстроты реализации и модификации различных сценариев моделирования привлекательнее использовать язык программирования более высокого уровня абстракции.

Введение в Tcl

TCL (Tool Command Language) является интерпретируемым языком программирования по собственным характеристикам и возможностям схожим с Perl. Название произносится как "tickle" ("тикл"). Фактически TCL состоит из командного интерпретатора и библиотеки. В первую очередь TCL - простой язык обработки текстовой информации, предназначенный прежде всего для создания команд для интерактивным программам типа текстовых редакторов, отладчиков, и оболочек. TCL имеет достаточно простой синтаксис и, кроме того, является программируемым. Пользователи TCL могут легко создавать новые команды, для создания нового, более мощного синтаксиса.

TCL поддерживает только один тип данных: строки. Учитывая это, все параметры передаваемые командам, все команды, и все переменные являются строками. В тех случаях когда команды требуют числовых параметров или возвращают числовые значения они интерпретируются как строки.

Синтаксис TCL подобен синтаксису Bourne aganin shell (bash) UNIX/Linux. Однако интерпретация команд отлична от стандартной оболочки UNIX. Команда TCL состоит из одной или нескольких команд разделенных символом новой строки или символом "точка с запятой"(;). Каждая из команд является набором полей разделенных пробелами или символом табуляции. Первое из полей обязательно имя команды, дополнительные поля (если определены командой и существуют) - параметры данной команды. Так например команда:

set x 22

устанавливает переменную в значение 22, имеет три поля: первое set, является названием команды TCL, остальные два x и 22, являются параметрами команды set.

Если первый не пробельный символ команды TCL является знак "#", то вся введенная информация от данного "#" до символа новой строки интерпретируется как комментарий и игнорируется при исполнении:

# Это комментарий

TCL предоставляет специальный способ использовать пробельные символы внутри параметров. Для таких целей используется символ двойных кавычек - ".

set x "Параметр с пробельными символами"

Изогнутые скобки "{" и "}" могут также использоваться для группировки параметров. Нои имеют два отличия от двойных кавычек. Во-первых в командых TCL можно использовать вложенные скобки. Это делает их более легкими для использования для сложных параметров подобно вложенным строкам команды TCL. Во-вторых, в пределах изогнутых скобок не производится подстановка переменных и команд TCL. Строка:

set x {set x 10}

передает команде set два параметра: x и set x 10. Таким образом, переменная будет установлена в значение set x 10.

Если в пределах поля параметра появляется левая квадратная скобка ("[") в поле происходит подстановка команды.

set x [set y]

Команда set имеет единственный параметр set y Команда set y возвращает содержание переменной y. В этом случае, если переменная b имеет значение Joe, то указанная команда эквивалентна:

set x Joe

Знак доллара $ может использоваться для подстановки значений переменных.

set x Joe;

set y $x;

эквивалентно команде:

set y Joe

Если следующий символ после названия переменной - открывающая круглая скобка, то переменная является именем массива, и все символы между открывающей круглой скобкой и следующей ближайшей закрывающей круглой скобкой являются индексом в массиве.

set y second;

set x $myArray($y);

Выражения TCL состоят из комбинации операндов, операторов и круглых скобок. Пробельные символы и символы табуляции при анализе выражений игнорируются. Там, где это возможно операнды интерпретируются как целочисленные значения. Целочисленные значения могут быть определены в десятичной, восьмеричном (если первый символ операнда - "0"), или в шестнадцатеричном виде (если первые два символа операнда - "0x"). Если операнд не принадлежит ни к одного из целочисленных форматов, приведенных выше, то он будет обработан как число с плавающей запятой (если это возможно). Числа с плавающей запятой могут быть определены аналогично стандартному ANSI C. Например, все следующие записи идентичны: 2.1, 2., 2e1, 2.0e+1.

Описание сети

Напишем шаблон скрипта, который можно будет в дальнейшем использовать для создания собственных скриптов. Для написания скрипта на языке tcl можно использовать любой текстовый редактор, например "блокнот". Созданный шаблон сохраните как primer.tcl. Сначала нужно создать объект-симулятор.

set ns [new Simulator]

Затем создадим файл, который будет использоваться для сохранения результатов симуляции.

set nf [open out.nam w]

$ns namtrace-all $nf

Первая строка открывает для записи файл out.nam и связывает его с дескриптором nf. Вторая строка указывает ранее созданному симулятору сохранять все результаты симуляции в этот файл. Создадим процедуру finish, завершающую процесс симуляции и запускающую nam.

proc finish {} {

global ns nf

$ns flush-trace

close $nf

exec nam out.nam &

exit 0

}

Добавим строку, запускающую процедуру finish на пятой секунде симуляции.

$ns at 5.0 "finish"

Последняя строка запускает симуляцию.

$ns run

Написанный шаблон можно использовать как отправную точку при описании собственной топологии сети. Получить его в виде файла можно здесь: Шаблон tcl скрипта. Попробуем на его основе описать сеть с простейшей топологией, состоящую из двух узлов, соединенных связью. Следующие две строки описывают два узла. Их необходимо вставить перед строкой "$ns at 5.0 "finish"

set n0 [$ns node]

set n1 [$ns node]

Команда "$ns node" создает новый узел. Созданные узлы связываются с переменными n1 и n2. Соединим узлы связью

$ns duplex-link $n0 $n1 1Mb 10ms DropTail

Эта строка указывает симулятору соединить узлы n0 и n1 связью с пропускной способностью 10 Мб, задержкой передачи 10 мс и дисциплиной очереди DropTail. Теперь можете сохранить свой файл и запустить скрипт командой

ns primer.tcl

Nam запустится автоматически и вы должны увидеть что-то похожее на рисунок 1.1.

Рисунок 1.1

Следующий шаг - передача данных между узлами. в ns данные передаются между агентами. Так что создадим агента, передающего данные с узла n0 и агента принимающего данные на узле n1.

set udp0 [new Agent/UDP]

$ns attach-agent $n0 $udp0

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 500

$cbr0 set Interval_ 0.005

$cbr0 attach-agent $udp0

Эти строки описывают агента, передающего данные с использованием протокола UDP. Характер передаваемых данных описывается моделью CBR (Constant BitRate) - поток с постоянной скоростью передачи.

Следующие строки описывают агента, принимающего трафик.

set null0 [new Agent/Null]

$ns attach-agent $n1 $null0

Теперь агентов необходимо связать друг с другом.

$ns connect $udp0 $null0

И, наконец, необходимо установить время начала и окончания передачи.

$ns at 0.5 "$cbr0 start"

$ns at 4.5 "$cbr0 stop"

Теперь можно сохранить файл и запустить симуляцию заново. Теперь, нажав кнопку "play" в открывшемся окне nam, вы можете увидеть, как через 0,5 секунды симуляции узел 0 начинает передавать данные на узел 1. Скорость воспроизведения можно регулировать ползунком "step".

Рисунок 2.1

Дополнительные возможности

Полная и упрощенная версии ns2 содержат средство анимации результатов моделирования nam (Network Animator) реализованное на Tcl/Tk, которое предоставляет графическое воспроизведение проведенного эксперимента: отображение топологи сети, анимация пакетов, узлов, очередей, и различные возможности анализа данных. В качестве входных данных для nam используются файлы, записанные в процессе функционирования ns2, т.е. моделирования сети связи.

Только полная версия ns2 содержит программное средство Xgraph, позволяющего графически отображать результаты моделирования

В ns2 на уровне ядра реализованы почти все известные протоколы сетей связи. Среди наиболее актуальных на данный момент можно отметить следующие: MPLS, IPv6, OSPF, RSVP, протоколы беспроводной связи, web caching и многие другие. Так же реализовано целое семейство дисциплин обслуживания очередей: RED, WFQ, CBQ, SFQ и т.д.

Реализация собственного протокола в рамках ns2 не сложна, если пользователь знаком с принципами построения архитектуры ns2 и с основами программирования протоколов. В первую очередь необходимо написать код С++, в который входит определение форматов пакетов нового протокола (если это необходимо), логики функционирования протокола, необходимых для этого классов С++ и функций bind (см. выше) для связи кода с OTcl. Далее модифицируется исходный для ns2 файл makefile и производится перекомпиляция ядра. В результате описанных действий пользователь имеет возможность использовать новый протокол в скрипте сценария моделирования сети связи. К сожалению, весьма слабым местом ns2 является документация, хотя руководство пользователя существует и всегда доступно в форматах html и ps. Это руководство не является исчерпывающим и некоторые свойства ns2 в нем не отражены.

Обеспечение сильной математической поддержки позволяет создавать различные виды трафика, начиная от простейшего, подчиняющегося пуассоновскому закону, заканчивая самоподобным. Гибкость архитектуры ns2 позволяет пользователю реализовывать собственные математические функции на С++.

Реализация модели ошибок позволяет моделировать возникновение ошибок на канальном уровне, т.е. искажение или потерю информации. Моделирование возникновения ошибки возможно на уровне битов, пакетов или вероятности в секунду. Возможна так же реализация пользовательской модели ошибок.

Задание на лабораторную работу:

При помощи встроенного в nam редактора описать топологию сети в соответствии с вариантом индивидуального задания.

Проанализировать скрипт, созданный редактором.

Произвести моделирование построенной сети. просмотреть результат в nam. Определить "узкие места" топологии.

Порядок выполнения работы:

  1. Постановка задачи, в соответствии с вариантом индивидуального задания

  2. Исходный текст на tcl, описывающий заданную топологию сети, с комментариями на русском.

  3. Скриншот визуализации заданной топологии в nam

ВАРИАНТЫ ЗАДАНИЙ: