Исследование метода "скользящего окна" при управлении потоком в компьютерной сети

Концепция квитирования и метод "скользящего окна", их роль в управлении потоком в компьютерной сети, для передачи кадров CSMA/CD. Разработка приложения в среде Borland Delphi 7.0 для имитации работы компьютерной сети с разными входными параметрами.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.06.2013
Размер файла 911,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

38

Размещено на http://www.allbest.ru/

Курсовая работа

по дисциплине

Вычислительные системы, сети и телекоммуникации

Исследование метода "скользящего окна" при управлении потоком в компьютерной сети

Введение

скользящий компьютерный сеть

Ethernet -- это самый распространенный на сегодняшний день стандарт локальных сетей. Общее количество сетей, работающих по протоколу Ethernet в настоящее время, оценивается в 5 миллионов, а количество компьютеров с установленными сетевыми адаптерами Ethernet -- в 50 миллионов.

Когда говорят Ethernet, то под этим обычно понимают любой из вариантов этой технологии. В более узком смысле Ethernet -- это сетевой стандарт, основанный на экспериментальной сети Ethernet Network, которую фирма Xerox разработала и реализовала в 1975 году. Метод доступа был опробован еще раньше: во второй половине 60-х годов в радиосети Гавайского университета использовались различные варианты случайного доступа к общей радиосреде, получившие общее название Aloha В 1980 году фирмы DEC, Intel и Xerox совместно разработали и опубликовали стандарт Ethernet версии II для сети, построенной на основе коаксиального кабеля, который стал последней версией фирменного стандарта Ethernet. Поэтому фирменную версию стандарта Ethernet называют стандартом Ethernet DIX или Ethernet П.

Для передачи двоичной информации по кабелю для всех вариантов физического уровня технологии Ethernet, обеспечивающих пропускную способность 10 Мбит/с, используется манчестерский код.

Все виды стандартов Ethernet (в том числе Fast Ethernet и Gigabit Ethernet) используют один и тот же метод разделения среды передачи данных -- метод CSMA/CD.

Целью данной курсовой работы является исследование метода "скользящего окна" при управлении потоком в компьютерной сети, а также метода передачи набора кадров CSMA/CD.

Необходимо написать программу, имитирующую работу компьютерной сети по передаче набора кадров данным методом, для этого обработать наборы из 1000, 10000, 100000 кадров.

- удаление пользователя от головной части следует брать равным: 20; 40; 60; 100 км;

- время распространения сигнала 5 мкс/км.

Найти:

а) время, необходимое для передачи всего набора кадров;

б) среднее время, необходимое для передачи кадра;

в) нормированную производительность протокола передачи.

Подсчитать количество коллизий, и результаты оформить в виде таблицы.

Далее необходимо изменить программу в соответствии с методом "скользящего окна"

Произвести необходимые теоретические расчеты и сравнить результаты с имитационным моделированием.

Для написания данной программы была выбрана среда разработки приложений Borland Delphi 7.0, так как она обладает удобным графическим интерфейсом пользователя; обладает большими возможностями; ориентирована на работу в операционных системах семейства Windows_9х, а также Windows_2000/XP и позволяет использовать ресурсы этих операционных систем; используется визуальное проектирование, значительно упрощающее построение интерфейса приложения любой сложности. Главным достоинством этой среды является то, что в ней используется язык программирования Паскаль, который является простым в изучении и обладает возможностями, необходимыми для выполнения цели данной курсовой работы.

1. Теоретическая часть

1.1 Метод доступа CSMA/CD

Как было сказано выше, в сетях Ethernet используется метод доступа к среде передачи данных, называемый методом коллективного доступа с опознаванием несущей и обнаружением коллизий (carrier-sense-multiply-access with collision detection, CSMA/CD).

Этот метод используется исключительно в сетях с общей шиной (к которым относятся и радиосети, породившие этот метод). Все компьютеры такой сети имеют непосредственный доступ к общей шине, поэтому она может быть использована для передачи данных между любыми двумя узлами сети. Простота схемы подключения - это один из факторов, определивших успех стандарта Ethernet. Говорят, что кабель, к которому подключены все станции, работает в режиме коллективного доступа (multiply-access,MA).

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

При описанном подходе возможна ситуация, когда две станции одновременно пытаются передать кадр данных по общему кабелю (рис. 3). Для уменьшения вероятности этой ситуации непосредственно перед отправкой кадра передающая станция слушает кабель (то есть принимает и анализирует возникающие на нем электрические сигналы), чтобы обнаружить, не передается ли уже по кабелю кадр данных от другой станции. Если опознается несущая (carrier-sense, CS), то станция откладывает передачу своего кадра до окончания чужой передачи, и только потом пытается вновь его передать. Но даже при таком алгоритме две станции одновременно могут решить, что по шине в данный момент времени нет передачи, и начать одновременно передавать свои кадры. Говорят, что при этом происходит коллизия, так как содержимое обоих кадров сталкивается на общем кабеле, что приводит к искажению информации.

Чтобы корректно обработать коллизию, все станции одновременно наблюдают за возникающими на кабеле сигналами. Если передаваемые и наблюдаемые сигналы отличаются, то фиксируется обнаружение коллизии (collision detection, CD). Для увеличения вероятности немедленного обнаружения коллизии всеми станциями сети, ситуация коллизии усиливается посылкой в сеть станциями, начавшими передачу своих кадров, специальной последовательности битов, называемой jam-последовательностью.

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

Из описания метода доступа видно, что он носит вероятностный характер, и вероятность успешного получения в свое распоряжение общей среды зависит от загруженности сети, то есть от интенсивности возникновения в станциях потребности передачи кадров. При разработке этого метода предполагалось, что скорость передачи данных в 10 Мб/с очень высока по сравнению с потребностями компьютеров во взаимном обмене данными, поэтому загрузка сети будет всегда небольшой. Это предположение остается часто справедливым и по сей день, однако уже появились приложения, работающие в реальном масштабе времени с мультимедийной информацией, для которых требуются гораздо более высокие скорости передачи данных. Поэтому наряду с классическим Ethernet'ом растет потребность и в новых высокоскоростных технологиях.

Метод CSMA/CD определяет основные временные и логические соотношения, гарантирующие корректную работу всех станций в сети:

Между двумя последовательно передаваемыми по общей шине кадрами информации должна выдерживаться пауза в 9.6 мкс; эта пауза нужна для приведения в исходное состояние сетевых адаптеров узлов, а также для предотвращения монопольного захвата среды передачи данных одной станцией.

При обнаружении коллизии (условия ее обнаружения зависят от применяемой физической среды) станция выдает в среду специальную 32-х битную последовательность (jam-последовательность), усиливающую явление коллизии для более надежного распознавания ее всеми узлами сети.

После обнаружения коллизии каждый узел, который передавал кадр и столкнулся с коллизией, после некоторой задержки пытается повторно передать свой кадр. Узел делает максимально 16 попыток передачи этого кадра информации, после чего отказывается от его передачи. Величина задержки выбирается как равномерно распределенное случайное число из интервала, длина которого экспоненциально увеличивается с каждой попыткой. Такой алгоритм выбора величины задержки снижает вероятность коллизий и уменьшает интенсивность выдачи кадров в сеть при ее высокой загрузке.

Четкое распознавание коллизий всеми станциями сети является необходимым условием корректной работы сети Ethernet. Если какая-либо передающая станция не распознает коллизию и решит, что кадр данных ею передан верно, то этот кадр данных будет утерян, так как информация кадра исказится из-за наложения сигналов при коллизии, он будет отбракован принимающей станцией (скорее всего из-за несовпадения контрольной суммы). Конечно, скорее всего искаженная информация будет повторно передана каким-либо протоколом верхнего уровня, например, транспортным или прикладным, работающим с установлением соединения и нумерацией своих сообщений. Но повторная передача сообщения протоколами верхних уровней произойдет через гораздо более длительный интервал времени (десятки секунд) по сравнению с микросекундными интервалами, которыми оперирует протокол Ethernet. Поэтому, если коллизии не будут надежно распознаваться узлами сети Ethernet, то это приведет к заметному снижению полезной пропускной способности данной сети.

Все параметры протокола Ethernet подобраны таким образом, чтобы при нормальной работе узлов сети коллизии всегда четко распознавались. Именно для этого минимальная длина поля данных кадра должна быть не менее 46 байт (что вместе со служебными полями дает минимальную длину кадра в 72 байта или 576 бит). Длина кабельной системы выбирается таким образом, чтобы за время передачи кадра минимальной длины сигнал коллизии успел бы распространиться до самого дальнего узла сети. Поэтому для скорости передачи данных 10 Мб/с, используемой в стандартах Ethernet, максимальное расстояние между двумя любыми узлами сети не должно превышать 2500 метров.

С увеличением скорости передачи кадров, что имеет место в новых стандартах, базирующихся на том же методе доступа CSMA/CD, например, Fast Ethernet, максимальная длина сети уменьшается пропорционально увеличению скорости передачи. В стандарте Fast Ethernet она составляет 210 м, а в гигабитном Ethernet ограничена 25 метрами.

Независимо от реализации физической среды, все сети Ethernet должны удовлетворять двум ограничениям, связанным с методом доступа:

? максимальное расстояние между двумя любыми узлами не должно превышать 2500 м,

? в сети не должно быть более 1024 узлов.

Кроме того, каждый вариант физической среды добавляет к этим ограничениям свои ограничения, которые также должны выполняться.

Уточним основные параметры операций передачи и приема кадров Ethernet, кратко описанные выше.

Станция, которая хочет передать кадр, должна сначала с помощью MAC-узла упаковать данные в кадр соответствующего формата. Затем для предотвращения смешения сигналов с сигналами другой передающей станции, MAC-узел должен прослушивать электрические сигналы на кабеле и в случае обнаружения несущей частоты 10 МГц отложить передачу своего кадра. После окончания передачи по кабелю станция должна выждать небольшую дополнительную паузу, называемую межкадровым интервалом (interframe gap), что позволяет узлу назначения принять и обработать передаваемый кадр, и после этого начать передачу своего кадра.

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

Если же фиксируется коллизия, то MAC-узел прекращает передачу кадра и посылает jam-последовательность, усиливающую состояние коллизии. После посылки в сеть jam-последовательности MAC-узел делает случайную паузу и повторно пытается передать свой кадр.

В случае повторных коллизий существует максимально возможное число попыток повторной передачи кадра (attempt limit), которое равно 16. При достижении этого предела фиксируется ошибка передачи кадра, сообщение о которой передается протоколу верхнего уровня.

Для того, чтобы уменьшить интенсивность коллизий, каждый MAC-узел с каждой новой попыткой случайным образом увеличивает длительность паузы между попытками. Временное расписание длительности паузы определяется на основе усеченного двоичного экспоненциального алгоритма отсрочки (truncated binary exponential backoff). Пауза всегда составляет целое число так называемых интервалов отсрочки.

Интервал отсрочки (slot time) - это время, в течение которого станция гарантированно может узнать, что в сети нет коллизии. Это время тесно связано с другим важным временным параметром сети - окном коллизий (collision window). Окно коллизий равно времени двукратного прохождения сигнала между самыми удаленными узлами сети - наихудшему случаю задержки, при которой станция еще может обнаружить, что произошла коллизия. Интервал отсрочки выбирается равным величине окна коллизий плюс некоторая дополнительная величина задержки для гарантии:

интервал отсрочки = окно коллизий + дополнительная задержка

В стандартах 802.3 большинство временных интервалов измеряется в количестве межбитовых интервалов, величина которых для битовой скорости 10 Мб/с составляет 0.1 мкс и равна времени передачи одного бита.

Величина интервала отсрочки в стандарте 802.3 определена равной 512 битовым интервалам, и эта величина рассчитана для максимальной длины коаксиального кабеля в 2.5 км. Величина 512 определяет и минимальную длину кадра в 64 байта, так как при кадрах меньшей длины станция может передать кадр и не успеть заметить факт возникновения коллизии из-за того, что искаженные коллизией сигналы дойдут до станции в наихудшем случае после завершения передачи. Такой кадр будет просто потерян.

Время двойного оборота и распознавание коллизий

PDV - время, за которое сигнал коллизии успевает распространиться до самого дальнего узла сети. Т.к. в худшем случае сигнал должен пройти это расстояние дважды, то отсюда и название Path Delay Value, PVD. По истечении этого времени, передающая станция должна обнаружить коллизию до того, как она закончила передавать кадр. Параметры Ethernet подобраны таким образом, чтобы это условие выполнялось (скорость, длина сегмента, мин. длина кадра).

Время паузы после N-ой коллизии полагается равным L интервалам отсрочки, где L - случайное целое число, равномерно распределенное в диапазоне [0, 2N]. Величина диапазона растет только до 10 попытки (напомним, что их не может быть больше 16), а далее диапазон остается равным [0, 210], то есть [0, 1024]. Значения основных параметров процедуры передачи кадра стандарта 802.3 приведено в таблице.

Битовая скорость

10 Мб/c

Интервал отсрочки

512 битовых интервалов

Межкадровый интервал

9.6 мкс

Максимальное число попыток передачи

16

Максимальное число возрастания диапазона паузы

10

Длина jam-последовательности

32 бита

Максимальная длина кадра (без преамбулы)

1518 байтов

Минимальная длина кадра (без преамбулы)

64 байта (512 бит)

Длина преамбулы

64 бита

Учитывая приведенные параметры, нетрудно рассчитать максимальную производительность сегмента Ethernet в таких единицах, как число переданных пакетов минимальной длины в секунду (packets-per-second, pps).

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

Так как размер пакета минимальной длины вместе с преамбулой составляет 64+8 = 72 байта или 576 битов, то на его передачу затрачивается 57.6 мкс. Прибавив межкадровый интервал в 9.6 мкс, получаем, что период следования минимальных пакетов равен 67.2 мкс. Это соответствует максимально возможной пропускной способности сегмента Ethernet в 14880 п/с

1.2 Форматы кадров технологии Ethernet

Стандарт на технологию Ethernet, описанный в документе 802.3, дает описание единственного формата кадра МАС-уровня. Так как в кадр МАС-уровня должен вкладываться кадр уровня LLC, описанный в документе 802.2, то по стандартам IEEE в сети Ethernet может использоваться только единственный вариант кадра канального уровня, образованный комбинацией заголовков МАС и LLC подуровней. Тем не менее, на практике в сетях Ethernet на канальном уровне используются заголовки 4-х типов. Это связано с длительной историей развития технологии Ethernet до принятия стандартов IEEE 802, когда подуровень LLC не выделялся из общего протокола и, соответственно, заголовок LLC не применялся. Затем, после принятия стандартов IEEE и появления двух несовместимых форматов кадров канального уровня, была сделана попытка приведения этих форматов к некоторому общему знаменателю, что привело еще к одному варианту кадра.

Различия в форматах кадров могут иногда приводить к несовместимости аппаратуры, рассчитанной на работу только с одним стандартом, хотя большинство сетевых адаптеров, мостов и маршрутизаторов умеет работать со всеми используемыми на практике форматами кадров технологии Ethernet.

Ниже приводится описание всех четырех модификаций заголовков кадров Ethernet (причем под заголовком кадра понимается весь набор полей, которые относятся к канальному уровню):

Кадр 802.3/LLC (или кадр Novell 802.2)

Кадр Raw 802.3 (или кадр Novell 802.3)

Кадр Ethernet DIX (или кадр Ethernet II)

Кадр Ethernet SNAP

Заголовок кадра 802.3/LLC является результатом объединения полей заголовков кадров, определенных в стандартах 802.3 и 802.2.

Стандарт 802.3 определяет восемь полей заголовка:

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

Начальный ограничитель кадра состоит из одного байта с набором битов 10101011. Появление этой комбинации является указанием на предстоящий прием кадра.

Адрес получателя - может быть длиной 2 или 6 байтов (MAC-адрес получателя). Первый бит адреса получателя - это признак того, является адрес индивидуальным или групповым: если 0, то адрес указывает на определенную станцию, если 1, то это групповой адрес нескольких (возможно всех) станций сети. При широковещательной адресации все биты поля адреса устанавливаются в 1. Общепринятым является использование 6-байтовых адресов.

Адрес отправителя - 2-х или 6-ти байтовое поле, содержащее адрес станции отправителя. Первый бит - всегда имеет значение 0.

Двухбайтовое поле длины определяет длину поля данных в кадре.

Поле данных может содержать от 0 до 1500 байт. Но если длина поля меньше 46 байт, то используется следующее поле - поле заполнения, чтобы дополнить кадр до минимально допустимой длины.

Поле заполнения состоит из такого количества байтов заполнителей, которое обеспечивает определенную минимальную длину поля данных (46 байт). Это обеспечивает корректную работу механизма обнаружения коллизий. Если длина поля данных достаточна, то поле заполнения в кадре не появляется.

Поле контрольной суммы - 4 байта, содержащие значение, которое вычисляется по определенному алгоритму (полиному CRC-32). После получения кадра рабочая станция выполняет собственное вычисление контрольной суммы для этого кадра, сравнивает полученное значение со значением поля контрольной суммы и, таким образом, определяет, не искажен ли полученный кадр.

Кадр 802.3 является кадром MAС-подуровня, в соответствии со стандартом 802.2 в его поле данных вкладывается кадр подуровня LLC с удаленными флагами начала и конца кадра. Формат кадра LLC был описан выше.

Компания Novell долгое время не использовала служебные поля кадра LLC в своей операционной системе NetWare из-за отсутствия необходимости идентифицировать тип информации, вложенной в поле данных - там всегда находился пакет протокола IPX, долгое время бывшего единственным протоколом сетевого уровня в ОС NetWare.

Теперь, когда необходимость идентификации протокола верхнего уровня появилась, компания Novell стала использовать возможность инкапсуляции в кадр MAC-подуровня кадра LLC, то есть использовать стандартные кадры 802.3/LLC. Такой кадр компания обозначает теперь в своих операционных системах как кадр 802.2, хотя он является комбинацией заголовков 802.3 и 802.2.

Кадр стандарта Ethernet DIX, называемый также кадром Ethernet II, похож на кадр Raw 802.3 тем, что он также не использует заголовки подуровня LLC, но отличается тем, что на месте поля длины в нем определено поле типа протокола (поле Type). Это поле предназначено для тех же целей, что и поля DSAP и SSAP кадра LLC - для указания типа протокола верхнего уровня, вложившего свой пакет в поле данных этого кадра. Для кодирования типа протокола используются значения, превышающие значение максимальной длины поля данных, равное 1500, поэтому кадры Ethernet II и 802.3 легко различимы.

Еще одним популярным форматом кадра является кадр Ethernet SNAP (SNAP - SubNetwork Access Protocol, протокол доступа к подсетям). Кадр Ethernet SNAP определен в стандарте 802.2H и представляет собой расширение кадра 802.3 путем введения дополнительного поля идентификатора организации, которое может использоваться для ограничения доступа к сети компьютеров других организаций.

В таблице приведены данные о том, какие типы кадров Ethernet обычно поддерживают реализации популярных протоколов сетевого уровня.

Тип кадра

Сетевые протоколы

Ethernet_II

IPX, IP, AppleTalk Phase I

Ethernet 802.3

IPX

Ethernet 802.2

IPX, FTAM

Ethernet_SNAP

IPX, IP, AppleTalk Phase II

Домен коллизий - это часть Ethernet, все узлы которой распознают коллизию, вне зависимости от того, в какой части сети эта коллизия возникла. Для того, чтобы сеть Ethernet, состоящая из сегментов различной физической природы, работала корректно, необходимо, чтобы выполнялись три основных условия:

Количество станций в сети не превышает 1024 (с учетом ограничений для коаксиальных сегментов).

Удвоенная задержка распространения сигнала (Path Delay Value, PDV) между двумя самыми удаленными друг от друга станциями сети не превышает 575 битовых интервалов.

Сокращение межкадрового расстояния (Interpacket Gap Shrinkage) при прохождении последовательности кадров через все повторители не более, чем на 49 битовых интервалов (при отправке кадров станция обеспечивает начальное межкадровое расстояние в 96 битовых интервалов).

1.3 Правило 4-х повторителей

При описании топологии сети стандарта 10Base-5 приводились ограничения на длину одного непрерывного отрезка коаксиального кабеля, используемого в качестве общей шины передачи данных для всех станций сети. Отрезок кабеля, завершающийся на обоих концах терминаторами и имеющий общую длину не более 500 м называется физическим сегментом сети. Однако при расчете окна коллизий общая максимальная длина сети 10Base-5 считалась равной 2500 м. Противоречия здесь нет, так как стандарт 10Base-5 (впрочем, как и остальные стандарты физического уровня Ethernet) допускает соединение нескольких сегментов коаксиального кабеля с помощью повторителей, которые обеспечивают увеличение общей длины сети.

Повторитель соединяет два сегмента коаксиального кабеля и выполняет функции регенерации электрической формы сигналов и их синхронизации (retiming). Повторитель прозрачен для станций, он обязан передавать кадры без искажений, модификации, потери или дублирования. Имеются ограничения на максимально допустимые величины дополнительных задержек распространения битов нормального кадра через повторитель, а также битов jam-последовательности, которую повторитель обязан передать на все подключенные к нему сегменты при обнаружении коллизии на одном из них. Воспроизведение коллизии на всех подключенных к повторителю сегментах - одна из его основных функций. Говорят, что сегменты, соединенные повторителями, образуют один домен коллизий (collision domain).

Повторитель состоит из трансиверов, подключаемых к коаксиальным сегментам, а также блока повторения, выполняющего основные функции повторителя.

В общем случае стандарт 10Base-5 допускает использование до 4-х повторителей, соединяющих в этом случае 5 сегментов длиной до 500 метров каждый, если используемые повторители удовлетворяют ограничениям на допустимые величины задержек сигналов. При этом общая длина сети будет составлять 2500 м, и такая конфигурация гарантирует правильное обнаружение коллизии крайними станциями сети. Только 3 сегмента из 5 могут быть нагруженными, то есть сегментами с подключенными к ним трансиверами конечных станций.

Правила 4-х повторителей и максимальной длины каждого из сегментов легко использовать на практике для определения корректности конфигурации сети. Однако эти правила применимы только тогда, когда все соединяемые сегменты представляют собой одну физическую среду, то есть в нашем случае толстый коаксиальный кабель, а все повторители также удовлетворяют требованиям физического стандарта 10Base-5. Аналогичные простые правила существуют и для сетей, все сегменты которых удовлетворяют требованиям другого физического стандарта, например, 10Base-T или 10Base-F. Однако для смешанных случаев, когда в одной сети Ethernet присутствуют сегменты различных физических стандартов, правила, основанные только на количестве повторителей и максимальных длинных сегментов становятся более запутанными. Поэтому более надежно рассчитывать время полного оборота сигнала по смешанной сети с учетом задержек в каждом типе сегментов и в каждом типе повторителей и сравнивать его с максимально допустимым временем, которое для любых сетей Ethernet с битовой скоростью 10 Мб/с не должно превышать 575 битовых интервалов (количество битовых интервалов в пакете минимальной длины с учетом преамбулы.

1.4 Концепция квитирования и метод «скользящего окна»

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

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

Существуют два подхода к организации процесса обмена положительными и отрицательными квитанциями: с простоями и с организацией "окна".

Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Из рисунка 1 видно, что в этом случае производительность обмена данными существенно снижается - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Снижение производительности для этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях.

Рисунок 1. Метод подтверждения корректности передачи кадров с простоем источника.

Во втором методе для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры ответных квитанций. Количество кадров, которые разрешается передавать таким образом, называется размером окна. Рисунок 2 иллюстрирует данный метод для размера окна в W кадров. Обычно кадры при обмене нумеруются циклически, от 1 до W. При отправке кадра с номером 1 источнику разрешается передать еще W-1 кадров до получения квитанции на кадр 1. Если же за это время квитанция на кадр 1 так и не пришла, то процесс передачи приостанавливается, и по истечению некоторого тайм-аута кадр 1 считается утерянным (или квитанция на него утеряна) и он передается снова.

Рисунок 2. Метод "окна" - непрерывная отправка пакетов

Если же поток квитанций поступает более-менее регулярно, в пределах допуска в W кадров, то скорость обмена достигает максимально возможной величины для данного канала и принятого протокола.

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

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

В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Если размер окна равен W, а последняя квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.

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

Тайм-аут не должен быть слишком коротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы. Но он не должен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или "заблудившейся" квитанции.

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

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

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

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

Другим проявлением перегрузки сети является переполнение буферов в маршрутизаторах. В таких случаях они могут централизовано изменить размер окна, посылая управляющие сообщения некоторым конечным узлам, что позволяет им дифференцировано управлять интенсивностью потока данных в разных частях сети.

1.5 Номинальная и эффективная пропускная способность протокола

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

Рассмотрим подробнее разницу между номинальной и эффективной пропускными способностями на примере протокола Ethernet.

На рисунке 3 приведена временная диаграмма передачи кадров Ethernet минимальной длины. Номинальная пропускная способность протокола Ethernet составляет 10 Мб/с, что означает, что биты внутри кадра передаются с интервалом в 0.1 мкс. Кадр состоит из 8 байт преамбулы, 14 байт служебной информации - заголовка, 46 байт пользовательских данных и 4 байт контрольной суммы, всего - 72 байта или 576 бит. При номинальной пропускной способности 10 Мб/c время передачи одного кадра минимальной длины составляет 57.6 мкс.

Рисунок 3. Временная диаграмма передачи кадров Ethernet

По стандарту между кадрами должна выдерживаться технологическая пауза в 9.6 мкс. Поэтому период повторения кадров составляет 57.6 + 9.6 = 67.2 мкс. Отсюда эффективная пропускная способность протокола Ethernet при использовании кадров минимальной длины составляет 46 х 8/67.2 = 5.48 Мб/c.

Реальная пропускная способность по пользовательским данным в сети может быть только меньше приведенного выше значения 5.48 Мб/с (для кадров данного размера). Отношение реальной пропускной способности сегмента, канала или устройства к его эффективной пропускной способности называется коэффициентом использования (utilization) сегмента, канала или устройства соответственно.

Эффективная пропускная способность существенно отличается от номинальной пропускной способности протокола, что говорит о необходимости ориентации именно на эффективную пропускную способность при выборе типа протокола для того или иного сегмента сети. Например, для протокола Ethernet эффективная пропускная способность составляет примерно 70% от номинальной, а для протокола FDDI - около 90%.

Пропускная способность протокола часто измеряется и в количестве кадров, передаваемых в секунду. Нетрудно подсчитать, что для протокола Ethernet эта характеристика для кадров минимальной длины составляет 14880 К/с. Понятно, что при измерении пропускной способности в кадрах в секунду, нет смысла разграничивать номинальную и эффективную пропускную способности.

Почти все протоколы канального уровня локальных сетей подерживают одну фиксированную номинальную пропускную способность: Ethernet - 10 Мб/с, TokenRing - 16 Мб/c (4 Мб/c может поддерживаться для совместимости со старым оборудованием), FDDI, FastEthernet и 100VG-AnyLAN - 100 Мб/c. Только протокол АТМ может работать с различными номинальными битовыми скоростями - 25, 155 и 622 Мб/c, хотя переход от одной скорости к другой требует замены сетевых адаптеров или интерфейсов коммутаторов или маршрутизаторов.

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

1.6 Влияние размера кадра и пакета на производительность сети

Размер пакета может существенным образом повлиять на эффективную пропускную способность протокола, а значит и на производительность сети. Выясним на примере, как изменится эффективная пропускная способность протокола Ethernet, если вместо кадров минимальной длины при обмене данными будут использоваться кадры максимальной длины с полем данных в 1500 байт, как это определено в стандарте.

Общая длина кадра вместе с преамбулой, заголовком и контрольной суммой составит в этом случае 8+14+1500+4 = 1526 байт или 12208 бит. Время передачи такого кадра составит 1220.8 мкс, а период повторения кадров - 1220.8 +9.6 = 1230.4 мкс.

Эффективная пропускная способность при этом равна (1500 х 8)/1230.4 = 9.75 Мб/c.

Полученный результат говорит о том, что при увеличении размера пакета эффективная пропускная способность протокола Ethernet существенно, почти в 2 раза, увеличилась - с 5.48 Мб/с до 9.75 Мб/с (рис. 4). Аналогичный рост характерен для всех протоколов и это говорит о том, что размер пакета - один из тех параметров, которые в наибольшей степени влияют на производительность сети.

Рисунок 4. Характеристики пропускной способности сети Ethernet

Размер пакета конкретного протокола обычно ограничен максимальным значением поля данных (MaximumTransferUnit, MTU), определенным в стандарте на протокол.

Протоколы локальных сетей имеют следующие значения MTU:

Ethernet, Fast Ethernet - 1500 байт;

TokenRing 16 - 16 Kбайт (обычно по умолчанию устанавливается значение 4K, но его можно увеличить);

FDDI - 4Kбайта;

100VG-AnyLAN - 1500 байт при использовании кадров Ethernet и 16K при использовании кадров TokenRing;

ATM - 48 байт.

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

Необходимо отметить, что повышение размера кадра увеличивает пропускную способность сети только в том случае, когда данные в сети редко искажаются или теряются, то есть при устойчивой, надежной работе сети. В противном случае увеличение размера пакета может привести не к увеличению, а к снижению пропускной способности, так как сеть будет повторно передавать большие порции информации. Для каждого уровня искажений данных можно подобрать рациональный размер пакета, для которого пропускная способность сети будет максимальной.

Максимальный размер пакета только создает предпосылки для повышения пропускной способности, так как, в конечном счете, от приложений зависит, будет ли использована данная максимальная величина поля данных или нет. Если, например, приложение ведет работы с базой данных и пересылает на сервер SQL-запросы, получая в ответ по одной короткой записи, то максимальный размер поля данных в 4 или 16 Кбайт никак не поможет повысить пропускную способность сети. При обращении же приложения к файловому серверу для пересылки мультимедийного файла размером в несколько мегабайт наличие возможности пересылать файл частями по 16К безусловно повысит пропускную способность сети по сравнению с вариантом пересылки файла частями по 1500 байт.

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

Работа с пакетами больших размеров повышает производительность сети не только за счет уменьшения накладных расходов на служебную информацию заголовка. При использовании больших пакетов повышается производительность коммуникационного оборудования, работающего с кадрами и пакетами, то есть мостов, коммутаторов и маршрутизаторов. Это происходит из за того, что при передаче одного и того же объема информации число используемых больших пакетов существенно меньше, чем число маленьких, а так как коммуникационное оборудование тратит определенное время на обработку каждого пакета, то и временные потери продвижения пакетов мостами, коммутаторами и маршрутизаторами при использовании больших пакетов будут меньше.

1.7 Время жизни пакета

Параметр, который определяет, как долго может путешествовать пакет по составной сети, имеется во многих протоколах сетевого уровня. В протоколе IP этот параметр называется Time-To-Live, TTL (Время жизни), а в протоколе IPX - Distance (Расстояние). Этот параметр используется для того, чтобы маршрутизаторы, обрабатывающие заголовки сетевого протокола, имели информацию о том, как долго перемещался пакет по сети до того, как прибыл в данный маршрутизатор. Если пакет путешествует по сети слишком долго, то имеется большая вероятность, что он по каким-то причинам "заблудился". Причинами некорректного перемещения пакетов по сети могут быть неверные значения таблиц маршрутизации в некоторых маршрутизаторах, которые в свою очередь являются следствием ошибок администраторов при ручном формировании таблиц, либо несовершенством протоколов обмена маршрутной информации. Например, протокол RIP иногда неустойчиво работает при изменениях состояния сети - отказе каналов связи, отказе, появлении или отключении других маршрутизаторов и т.п.

"Заблудившиеся" пакеты удаляются маршрутизаторами из сети для того, чтобы на них впустую не тратилась часть пропускной способности каналов и маршрутизаторов.

В протоколе IP поле TTL устанавливается узлом-отправителем в некоторое ненулевое значение, а маршрутизаторы при продвижении пакета уменьшают его, обычно на 1. Пакет удаляется из сети в том случае, если после уменьшения значение поля TTL становится равным 0.

В протоколе IPX поле Distance обрабатывается по-другому - узел-отправитель устанавливает его в 0, а каждый маршрутизатор наращивает его на 1. Пакет удаляется из сети при достижении этим полем значения 16.

Начальное значение поля времени жизни в сети, работающей по протоколу IP, является настраиваемым параметром, который влияет на производительность и надежность работы сети. При увеличении начального значения поля TTL пакеты могут пересекать большее число промежуточных сетей, следовательно, потенциально вероятность успешной доставки пакета любому абоненту большой сети возрастает, а, значит, производительность может повыситься за счет уменьшения доли "недошедших", отброшенных по дороге пакетов. Однако при этом в сети может существовать большое число "заблудившихся" пакетов, которые будут снижать производительность сети.

В результате простых рекомендаций по выбору начального значения поля TTL в протоколе IP не существует - это значение подлежит настройке путем натурного экспериментирования или моделирования.

2. Описание программы

2.1 Описание интерфейса программы

После запуска файла set.exe на экране появляется основное окно программы (рисунок 5). Входными данными является параметр «количество кадров», а также выбор будет ли программа использовать метод «скользящего окна», или нет. После того, как была введена входная информация, необходимо нажать на кнопку «рассчитать». Далее программа начинает имитирование работы компьютерной сети по протоколу CSMA/CD. В результате данной имитации в сводную таблицу помещаются следующие показатели:

-среднее время передачи 1-го кадра, мс

-реальное время передачи всех кадров, мс

-реальная скорость передачи (кбит/с)

Эти данные можно сравнить с расчетными, которые расположены в верху таблицы:

-время передачи 1-го кадра, мс

-время передачи всех кадров, мс

-расчетная скорость передачи, кбит/с

Рисунок 5. Основное окно программы.

При расчете параметров, за основу берется оптимальный случай работы сети, когда не возникает столкновение пакетов, поэтому показатели выше, чем полученные при имитации. Данная таблица показывает также влияние удаления пользователя от головной части системы (20, 40, 60, 100км). В нижней части формы находится такая информация, как количество подсчитанных коллизий и эффективность работы сети.

2.2 Описание функций и переменных программы

Основная процедура программы main(l,g,p:integer; out tk,tk1,sk,tkr,tkr1,sk1,ef:real; out kol:integer); содержит входные параметры:

l - удаление пользователя от головной части системы

g - количество пакетов

Следующие параметры являются выходными (разновидность параметров по ссылке); через них происходит передача результатов работы процедуры в основную программу.

ef - эффективность работы канала

tk - время передачи 1-го кадра

tk1 - время передачи всех кадров

sk - расчетная скорость передачи

tkr - реальное время передачи всех кадров

tkr1 - среднее время передачи 1-го кадра

sk1 - реальная скорость передачи

В данной процедуре использованы следующие переменные:

v=5; - Время распространения сигнала

i=50; - Интенсивность передачи

lk =256; - Длина кадра

t - время распространения сигнала

m - время передачи кадра

c - скорость передачи

После нажатия на кнопку «рассчитать», происходит заполнения заголовков таблицы, считывание поля «количество кадров», а затем в цикле 4 раза происходит вызов процедуры main() с различными параметрами расстояния l, возвращаемые результаты в том же цикле заносятся в таблицу.

2.3 Результаты работы программы при различных входных параметрах

Рисунок 6. 1000 кадров

Рисунок 7. 1000 кадров, режим «Скользящего окна»

Рисунок 8. 10000 кадров

Рисунок 9. 10000 кадров, режим «Скользящего окна»

Рисунок 10. 100000 кадров

Рисунок 11. 100000 кадров, режим «Скользящего окна»

Заключение

В результате выполнения данного курсового проекта, был исследован метод «скользящего окна» при управлении потоком в компьютерной сети, а также метод передачи набора кадров CSMA/CD. Также было написано работоспособное приложение, позволяющее наглядно имитировать работу компьютерной сети для различных входных параметров. При помощи данного приложения были изучены факторы, влияющие на производительность, стабильность работы сети и выявлены следующие закономерности:

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

Количество передаваемых пакетов ни как не влияет на скорость передачи данных.

Выполнив теоретические расчеты параметров, было выяснено, что расчетная скорость передачи данных оказалась примерно вдвое выше полученной при компьютерном моделировании, это объясняется тем, что в расчетах был рассмотрен идеальный случай передачи данных, не вызывая столкновений пакетов, что не возможно на практике.

Метод «скользящего окна» показал существенное увеличение скорости передачи данных (25-30%), при прочих равных условиях, этим и объясняется его использование в современных сетевых протоколах.

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

1. Архитектура компьютерных систем и сетей: Учебное пособие /Т.П. Барановская, В.И. Лойко, М.И. Семенов, А.И. Трубилин А.И. - М.: Финансы и статистика, 2003. - 256с.

2. Блэк Ю. Сети ЭВМ. Протоколы, стандарты, интерфейсы. - М.: Мир, 1990.

3. Лойко В.И., Лаптев В.Н., Луценко Е.В., Постный В.А. Вычислительные системы, сети и телекоммуникации: Методические указания по подготовке курсовых работ (для студентов специальностей 351400 - Прикладная информатика в экономике и 351403 - Прикладная информатика в юриспруденции). - Краснодар: КубГАУ, 2003. - 46с.

4. Кравченко П.П., Чефранов А.Г. Методы управления ресурсами вычислительных систем: Учебное пособие. - Таганрог: Таганрогский ГРТИ, 1991.

Приложение

Текст модуля Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids;

type

TForm1 = class(TForm)

Button1: TButton;

Tkol: TEdit;

Label1: TLabel;

Label2: TLabel;

pg: TEdit;

tabl: TStringGrid;

Label3: TLabel;

Tef: TEdit;

okno: TCheckBox;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure main(l,g,p:integer; out tk,tk1,sk,tkr,tkr1,sk1,ef:real; out kol:integer);

const

v=5; //Время распространения сигнала

i=50; //Интенсивность передачи

a=0.1;

lk=256; //Длина кадра

var t1,m,q,k,t,c,n:real;

x,y,w:integer;

begin

t1:=0; w:=0; y:=0; kol:=0;

randomize;

t:=l*v; //время распространения сигнала

m:=t/a; //время передачи кадра

c:=lk/m*1000;//скорость передачи

q:=exp(-1);

q:=q*100;

repeat

x:=random(p)+1;

if q>x then

begin

t1:=t1+m+t+2*t;

inc(y);

w:=0;

end

else

begin

w:=w+2;

t1:=t1+w*t;

inc(kol);

end;

until y=g;

ef:=g*(m+t+2*t)/t1*100; //Эффективность работы канала

tk:=m/1000; //время передачи 1-го кадра

tk1:=m*g/1000; //время передачи всех кадров

sk:=c; //расчетная скорость переачи

tkr:=t1/1000; //реальное время передачи всех кадров

tkr1:=t1/g/1000; //среднее время передачи 1-го кадра

sk1:=lk*g/t1*1000; //реальная скорость переачи

end;

procedure TForm1.Button1Click(Sender: TObject);

var

tk,tk1,sk,tkr,tkr1,sk1,ef:real;

kol,i,l,p:integer;

g:integer; //Количество кадров

begin

p:=100;

tabl.Cells[0,1]:='РАСЧЕТ:';

tabl.Cells[0,2]:='время передачи 1-го кадра (мс)';

tabl.Cells[0,3]:='время передачи всех кадров (мс)';

tabl.Cells[0,4]:='расчетная скорость переачи (кбит/с)';

tabl.Cells[0,6]:='МОДЕЛИРОВАНИЕ:';

tabl.Cells[0,7]:='среднее время передачи 1-го кадра (мс)';

tabl.Cells[0,8]:='реальное время передачи всех кадров (мс)';

tabl.Cells[0,9]:='реальная скорость переачи (кбит/с)';

tabl.Cells[1,0]:='20км';

tabl.Cells[2,0]:='40км';

tabl.Cells[3,0]:='60км';

tabl.Cells[4,0]:='100км';

if okno.Checked =true then p:=60;

if form1.pg.Text ='' then exit;

g:=strtoint(form1.pg.Text);

for i:=1 to 4 do

begin

case i of

1:l:=20;

2:l:=40;

3:l:=60;

4:l:=100;

end;

main(l,g,p,tk,tk1,sk,tkr,tkr1,sk1,ef,kol);

tabl.Cells[i,2]:=floattostr(tk);

tabl.Cells[i,3]:=floattostr(tk1);

tabl.Cells[i,4]:=format('%f',[sk]);

tabl.Cells[i,7]:=format('%f',[tkr1]);

tabl.Cells[i,8]:=floattostr(tkr);

tabl.Cells[i,9]:=format('%f',[sk1]);

end;

Tkol.Text:=inttostr(kol);

Tef.Text:=format('%f',[ef])+'%';

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

pg.Text:='1000';

end;

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.