12.07.2015 Views

Виртуална Лаборатория по Компютърни Мрежи и Разпределени ...

Виртуална Лаборатория по Компютърни Мрежи и Разпределени ...

Виртуална Лаборатория по Компютърни Мрежи и Разпределени ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФИЗИЧЕСКИ СЛОЙ. КАБЕЛНИ СТАНДАРТИ И КОНЕКТОРИ.Физическият слой на OSI модела включва преносната среда и сигналите,с техните модулации. Той е отговорен за стандартизирането на конекторите ипараметрите на преносната среда (съпротивление, максимална дължина,капацитет и други).Основните преносни среди, използвани в компютърните мрежи са меденпроводник (коаксиален и усукана двойка), оптично влакно и въздух(безжични мрежи). Коаксиален кабел, усукана двойка и оптичен кабел сапоказани съответно на фигури 1,2 и 3.Тънък коаксиален кабел.Неекранирана усукана двойка.Оптичен кабел.Кабелни стандарти за Ethernet, Fast Ethernet и Gigabit EthernetОсновните кабелни стандарти за „фамилията” Ethernet са следните:• 10BASE5 – Thick Ethernet или Thicknet – това е първият стандартенкабел при създаването на стандарта IEEE 802.3 (Ethernet).• 10BASE2 – Thin Ethernet, Thinnet, или Cheapernet – подобен на10BASE5. Той е предложен, за да намали цената и сложността наинсталиране и става много популярен за офис окабеляване.• 10BASE-T – използва напълно нова преносна среда (IEEE 802.3i) –използва два неекранирани чифта (усукана двойка) категория 3(UTP): един чифт за предаване, един – за получаване.• 10BASE-F – отговаря на три различни спецификации за пренос пооптична среда: 10BASE-FL (Fiber Link) и е най-популярния 10-Mbpsстандарт за оптична комуникация. 10BASE-FP и 10BASE-FB не сеСтр.1Физически слой. Кабелни стандарти и конектори.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиизползват отдавна (P е за пасивен; B – за backbone).• 100BASE-T е 10BASE-T за Fast Ethernet, с оригиналния EthernetMAC, но на 10 пъти по-висока скорост. Позволява три различнифизически реализации, част от IEEE 802.3u: 100BASE-TX,използващ два чифта Category 5 UTP или Type 1 STP кабел и е найпопулярнияза хоризонтално окабеляване; 100BASE-FX, използващдве нишки оптично влакно тип multimode и е най-популярния завертикално или гръбначно окабеляване; 100BASE-T4, използвачетири чифта Category 3 или по-висока категория кабел и се прилагамного рядко, за евтини решения.• Gigabit или 1000-Mb Ethernet е публикувания през 1998г. IEEE 802.3zстандарт, описващ Gigabit Ethernet MAC и три физическиреализации: 1000BASE-SX – оптика за хоризонтално окабеляване,1000BASE-LX – оптика за вертикално или гръбначно окабеляване,1000BASE-CX – меден кабел (Copper-Twinax), and 1000BASE-T.Табл.1: Категории кабели неекранирана усукана двойка (UTP):ТипЧестотналентаПриложениеCategory 1 1 MHz Телефонен кабелCategory 2 4 MHz Данни до 4 Mbps (LocalTalk)Category 3 16 MHz Данни до 10 Mbps (Ethernet)Category 4 20 MHz Данни до 20 Mbps (16 Mbps Token Ring)Category 5 100 MHz Данни до 100 Mbps (Fast Ethernet)Category 5е 100 MHz Подобрен вариант на САТ5.Category 6 250 MHz Данни до 100 Gbps (Gigabit Ethernet)Нов стандарт за предаване с високи скорости поCategory 7 до 600 MHz100 Ohm UTP.Какво означават кодовете на кабелните стандарти? Числото в началото(10, 100, 1000) показва скоростта на предаване в Mbps. Текстът в средатапоказва типа на предаване: BASE = теснолентово; BROAD = широколентово.Последното число показва максималната дължина на сегмента: 5 означава500m, 2 – 200m, и т.н. В по-новите стандарти последните цифри са заместениот букви. Например, в 10BASE-T, T означава unshielded twisted-pair(неекранирана усукана двойка) кабел; в 100BASE-T4, T4 показва, че имачетири такива двойки.Коаксиалният кабел вече не се използва поради възможността засъздаване само на топологии тип шина с него. Екранираната усукана двойка(STP) е сравнително по-шумоустойчив кабел и се препоръчва за вътрешноокабеляване при наличие на повече източници на шум. STP кабелът сезаземява само в единия край. CAT5 STP patch панелите обикновенопредоставят заземяване (концентраторите и комутаторите – не). За външноСтр.2Физически слой. Кабелни стандарти и конектори.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиПодреждане на чифтовете при T568-А и T568-B.КонекториНай-използваните за CAT5 UTP кабел конектори са RJ45. RJ означаваRegistered Jack, а 45 показва схемата за номериране на пиновете.Спецификацията на IEEE за Ethernet 10Base-T и 100Base-T изисква да сеизползват два чифта, от които единия е на пинове 1 и 2, а другия – на 3 и 6.Разрез на RJ45 при правия крайРазрез на RJ45 при кръстосания крайПрав (straight) и кръстосан (crossover) UTP кабелПри свързването на две комуникиращи крайни устройства е необходимоTx на единия да е свързан с Rx на другия и обратно (фигура 8). Затова сеправи така наречения "Crossover" кабел. При него е нужно да се промениподредбата на проводниците само на единия край на кабела, а другия край дае със стандартна подредба. Когато, обаче, две устройства комуникират презмрежово оборудване (комутатор, концентратор, маршрутизатор) товакръстосване се извършва от него. За да не се получават недоразумения сеСтр.4Физически слой. Кабелни стандарти и конектори.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиприема, че две устройства на едно ниво се връзват с прав кабел, а междунивата – с кръстосан. Подредбата при двата края е показана на таблицата 3.Стандартен и кръстосан UTP.Табл.3: Подредба на проводниците при прав и кръстосан кабел.Standard EndPin 1 White/OrangePin 2 OrangePin 3 White/GreenPin 4 BluePin 5 White/BluePin 6 GreenPin 7 White/BrownPin 8 BrownCrossover EndPin 1 White/GreenPin 2 GreenPin 3 White/OrangePin 4 BluePin 5 White/BluePin 6 OrangePin 7 White/BrownPin 8 BrownПоставяне на RJ45 конекторЗа поставянето на RJ45 конектор на стандартен UTP CAT5 (CAT5e) кабелсе използват специални клещи. Кабелът се оголва около 15mm, като севнимава да не се наранят проводниците вътре. Оголените проводници серазвиват и се изпъват плътно един до друг. Изпънатите проводници сеподравняват и се подреждат по желания начин (T568-А или T568-B).Подредените кабели се пъхат в конектора както е показано на фигура 9.Прави впечатление, че проводниците са подравнени и подредени плътно единСтр.5Физически слой. Кабелни стандарти и конектори.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системидо друг. При кръстосания край само подредбата на оранжевия и зеления чифте разменена.Поставяне на конектор.Проверка на работоспособността на UTP кабел.За правилната работа на UTP кабел е необходимо да не е прекъснат,правилно да е подреден при поставянето на конектора, металните пластинина конектора да дават добър контакт с всички проводници. Първото ниво напроверка е оглед на конектора и проверка за целостта на кабела. Второ ниво е„прозвъняване” на проводниците, което може да бъде извършено с обикновеномметър. Разпространени са също и кабелни тестери. Те проверяватсвързаността и правилната подредба при конекторите. Някои по-съвременнирешения позволяват откриването на точното място на прекъсване (ако иматакова). Обикновено тестера дава различни сигнали ако няма свързаност илиако е неправилно свързването. Тест може да се проведе по различен начин.Например, „бягаща единица”, прозвъняване на всички едновременно,прозвъняване чифт по чифт и други.Задачи за изпълнение:1. Запознаване с основните кабелни стандарти за Ethernet.2. Запознаване с категориите кабели неекранирана усукана двойка..3. Запознаване RJ45 конектор за UTP.4. Запознаване с „прав” (straight) и „кръстосан” (crossover) кабел иприложението им.5. Окабеляване с UTP. Поставяне на RJ45 конектор.6. Проверка на работоспособността на UTP кабел. Тестери.За допълнителна подготовка:Повече за кабелните стандарти на следните адреси:• http://www.zytrax.com/tech/layer_1/cables/cables_faq.htm• http://standards.ieee.org/• http://www.networkdictionary.com/networking/EthernetCableStandardsSpecifications.phpСтр.6Физически слой. Кабелни стандарти и конектори.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиБЕЗЖИЧНИ ЛОКАЛНИ МРЕЖИ – WLANОбзор на безжичните технологии. IEEE стандарта 802.11.Фиг.1.Когато се налага използуването на висока пропускателна способност вотносително малки пространства и площи при изискване за мрежовасвързаност между устройствата тогава се налага използуването на WLAN постандарта IEEE 802.11. На фигура 1 е показана зависимостта напропускателната способност, която се изисква (нанесена по абцисната ос) иобхвата на действие на дадената технология (по ординатната ос). Засичанетодава обсега на действие на различните системи за безжичен достъп, които саактуални в момента. Като първа ревизия той се утвърди през 1997, като оттогава са въведени множество допълнения към него (ревизии) означаващи сесъс съответна буква след името на стандарта:• IEEE 802.11 - Първоначална версия на стандарта способна даобслужва скорости от 1 и 2 Mbps, като работи в диапазона 2.4 GHz• IEEE 802.11a - Разширение способно да обслужва скорости до 54Mbps, работейки в диапазона около 5GHz• IEEE 802.11b - Представения през 1999 стандарт 802.11b е способенда предава със скорости до 11 Mbps, работейки в диапазона 2.4 GHz• IEEE 802.11c - Дефинира работата “безжичен мост” – wireless bridge• IEEE 802.11d - Дефинира стандартите за фирмите разработващибезжични продукти в различните страни• IEEE 802.11e - Дефинира разширение към нивото за контрол насъобщителната среда за въвеждане ”качество на услугите” (QoS).• IEEE 802.11f - Дефинира протокола “Inter Access Point Protocol”(IAPP)• IEEE 802.11g - Разширение способно да обслужва скорости до 54Стр.7Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиMbps, работейки в диапазона 2.4 GHz• IEEE 802.11i - Подобрение на метода за криптиране.• IEEE 802.11j - 802.11 разширение за използване в Япония• IEEE 802.11n - Нов стандарт очакващ се през 2005 да бъде завършен,като се очакват скорости на предаване до 100 Mbps.Терминология, която ще се използува:• AP (Access Point) – точка за достъп до опорната мрежа• SSID (Service Set Identifier) – идентификатор на набора от услуги(име на мрежата)• WEP (Wired Equivalent Privacy) – еквивалент на сигурността накабелна мрежа• MAC address – шест байтов уникален адрес на устройството• dB – мярка за отношение между два сигналаТопологии на мрежите работещи по IEEE 802.11Възможни са няколко режима на работа на крайните устройства, всеки откоито се характеризира с определена функционалност и настройка напараметрите за да може да бъде настроена една безжична мрежа.AD-HOC (всеки със всеки)В този режим, който е най-често срещан при връзка на мобилниустройства помежду си (laptop, palmtop и др.) не е необходимо определенобезжично устройство в мрежата да синхронизира достъпа до канала. Това ене често срещан режим на работа поради ниската производителност ивъзможност за колизии.Фиг.2.Access Point – Client (точка за достъп - клиент)Практически това е най-често срещаната топология на свързване наустройствата при безжичните мрежи. Множество мобилни устройстваизпoлзват услугите на една базова станция (наричана точка за достъп или АP- “Access Point”). Точката за достъп (AP) управлява всички клиентиасоциирани към нея. Тя казва на клиента на кой канал да предава, кога дапредава и в зависимост от зададените правила може да се даде приоритет наСтр.8Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системинякой клиенти пред други (QoS). Няма опасност от колизии на “скрититерминали” поради факта, че всички клиенти трябва да се асоциират към APза достъп до мрежата, тоест AP вижда абсолютно всички клиенти докато тепомежду си може да не се виждат.Фиг.3.WDS – Wireless Distributed System (безжично разпределена система)Безжично разпределените системи имат топологията на AP-Client, катовсяко AP формира зони на чуваемост. Разликата спрямо топологията AP-Client е тази, че различните AP-та си комуникират безжично помежду си зада осигурят достъп до опорната мрежа. Необходимо е всички AP да работятна един и същи радио-канал, както и в списъка на всяко да са зададени MACадресите на останалите, които формират WDS мрежата.Repeater (Повторител)Фиг.4.Когато трябва да се разшири зоната на чуваемост се използват AP врежим на “повторител”. Повторителя работи на същия канал на който работии AP чрез което се осъществява достъпа до опорната мрежа. В повторителя сезадава MAC адресът на опорното AP, като по този начин той симулирапрозрачно опорното AP в отдалечената зона. В отдалечената зона се чуваопорното AP с неговото оригинално име и параметри, само физическия MACадрес се различава, като в отдалечената мрежа MAC адреса е този наустройството “повторител”.Стр.9Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.5.Bridge (Мост)Предназначена е за прозрачно свързване на 2 мрежови сегмента като потози начин могат да се свържат безжично локалните мрежи на отдалечениофиси. Безжична връзка е възможна само между двете устройства, коитоработят в режим “AP Bridge”, като по този начин те прехвърлят прозрачновсеки пакет от единия локален LAN сегмент към отдалечения.Радио параметри на средатаФиг.6.Децибел (dB)Децибелът се използва за изразяване на относителната разлика в нивотомежду два сигнала.dB = 10log10(P1/P2) – отнася се по мощност (1)dB = 20log10(U1/U2) – отнася се по напрежение или ток (2)Използва се поради 2 причини:• 1. Да представят големите порядъци чрез по-малки и по-лесни заработа числа;• 2. Затихването и усилването на сигнала в звената може да сепредстави чрез по-прости действия – изваждане и събиране.Стр.10Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиПредавател10mW10dBm+10dbmУсилвател100 пъти20dB+30dbmПриемникМощност на входа:0,0316mW-15dBm-15dbmЗагуби по кабел исреда31622 пъти45dBФиг.7.На фигура 7 е представен пример за употреба на понятието децибел.Целта е да се сравни работата по традиционния начин с отношения иоблекчението, което предлага работата в децибели. На примера мощността наизлъчващ предавател е 10 mW, което спрямо някаква приета опорна единицасе превръща в децибели. При безжичните мрежи по IEEE 802.11 като репернаединица се приема 1 mW с оглед на това че всички допустими предаванимощности от крайни устройства не надвишават 1W. След превръщането напредаваната мощност чрез (1) се получава че мощността от предавателявъзлиза на +10 dbm. За изчислението на мястото на P1 бе заместенамощността на предавателя в миливати, а на мястото на P2 бе заместенаприетата опорна стойност, която както се уточни по-горе е 1 mW. Изходнатастойност, която се получи след изчисление се измерва в dBm (на практикатова са децибели отнесени спрямо миливат – последното “m” след dB указватова).Следва усилвател, чието усилване е 100 пъти. Изразено в децибели то сепресмята пак по формула (1), като тук отношението P1/P2=100. Като резултатот изчислението става видно, че усилването на звеното възлиза на 20dB.Следва едно звено, което представя загубите по свързващите кабели исредата. Изчислението на загубите в средата ще се разгледа в следваща точка.Тук се дава пример с една типична стойност от 31622 пъти. Следпреобразуване чрез формула (1) се получава така, че загубите в средата помощност възлизат на 45dB.Цел на примера е да се определи колко е мощността на входа наприемника. Ако се работи с отношения ще имаме по-сложни умножения иделения с големи порядъци. Ако се работи в децибели просто ще имамесумиране на усилването на усилвателя, и изваждането на загубите от средатаот стойността на предавателя. Това възлиза на:RX = 10dbm + 20dB – 45dB = -15dbm (3)Сега вече може да преобразуваме стойността чрез анти-логаритмуване набаза на (1), при което ще се получи: 0,03162mW. В повечето случаи не е инеобходимо преобразуването в mW поради факта че в техническатаСтр.11Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системидокументация всички радио-параметри на крайните устройства се дават вdBm, а усилването на антените и загубата в свързващите кабели също се давав dB.Превръщане на мерните единици:Превръщане на единиците за мощност от миливат към dbm:P (dbm) = 10*log(Pmw) (4)Пример: 23.01 dbm = 10*log (200mW)Превръщане на разстоянията от футове в метри и от мили в километри иобратното:1 Meter = 1 Feet * 0.3048 (5)1 Km = 1 Mile * 1.609344 (6)Пресмятане на параметрите на линково радио-трасе:Изходната мощност от антената на дадена станция може да се пресметнеизползувайки следната зависимост:EIRP = TX Power – Coax Cable Loss + TX Antenna Gain (7)където:EIRP се изчислява в dbm,TX Power: изходната мощност на предавателя в dbm,Coax Cable Loss: Загуби в свързващия антената фидер в dBTX Antenna Gain: Усилване на предавателната антена в dBНивото на приетия входен сигнал до входа на приемника се изчислява последната зависимост:RX Signal = EIRP – FSL + RX Antenna Gain – Coax Cable Loss (8)където:RX Signal се изчислява в dbm,EIRP – стойността изчислена от (7),FSL – стойността на загубите в средата (виж т.4.4),RX Antenna Gain - Усилване на приемната антена в dB,Coax Cable Loss - Загуби в свързващия антената фидер в dBЗа да може едно проектирано трасе да работи гарантирано е необходимода се въведе оперативен запас. Той се изчислява по следната зависимост:SOM = Rx signal level - Rx sensitivity (9)където:SOM e оперативния презапас в dB (виж по-долу),Rx signal level – ниво на приетия сигнал по (8),Стр.12Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиRx sensitivity – чувствителност на приемника (взима се от техническатаспецификация на радио-оборудването)Нива на SOM:• Повече от 20db – напълно достатъчно за гарантирана връзка• Около 14db е типичната стойност, която трябва да презапасим• Стойности на SOM около и под 10db също дават добри резултатипри незашумена среда.Пресмятане загубите в средата:Фиг.8.За да може едно трасе да бъде проектирано, трябва да се вземат подвнимание загубите на радио енергия в свободното пространство. Фигура 8дава нагледна представа за методиката за изчисление за честоти 2.4GHz и5.8GHz. Таблицата в долната част на фиг. 8 дава примерни стойности зазатихването в средата за типична дистанция от 2, 4, 6, 10 и 20 мили.Формулата по която се пресмята затихването в средата е следната:FSL = 36,6 + 20log F + 20log D (10)където:FSL е затихването в средата в dB,F е честотата в MHz,D е разстоянието между приемника и предавателя в мили.Параметри на радио оборудванетоНай-важните параметри на използваното радио-оборудване са два:мощност на предавателя и гранична чувствителност на приемника. И дватапараметъра се дават в техническата спецификация за конкретния модел.Стр.13Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиМощността на предавателя се дава в dBm, като типичните стойности са отпорядъка на +18dbm до +20dbm (в порядъка 63 до 100mW). На пазара сесрещат и радио-устройства които поддържат и по-голяма изходна мощност.Друг важен параметър е чувствителността на приемника. Тя също се давав dbm и представлява приетата входна мощност достатъчна за правилнотодекодиране на полезния сигнал. Типичните стойности са между –75dbm и –100dbm (знака минус означава, че мощността е под опорната стойност от 1mW). Колкото стойността е по-малка (по-отрицателна) толковачувствителността на приемника е по-добра, което означава че е необходимапо-малко полезна приета енергия за да бъдат възстановени данните.Пример за прилагане на знанията от текущата точкаЗададения пример цели да демонстрира използуването на зависимоститедадени дотук за практична задача. Да се определи на какво разстояние можеда се изгради линково радио-трасе ако разполагаме със следните условия:Мощност на предавателите: 100 mWЧувствителност на приемниците: -89 dbmУсилване на антените: 12 dBЗагуби в свързващите фидери: 1 dBРаботен честотен диапазон: 2.44 GHzРешение:А) Пресмята се изходната мощност в dbm чрез (1):P = 10log(100) = 20dbm (11)B) Пресмята се изотропно излъчената мощност чрез (7):EIPR=TX Power–Coax Cable Loss+TX Antenna Gain=20–1+12=31dbm (12)C) Пресмята се необходимия сигнал в приемника нужен за правилнодекодиране на данните чрез (9). Взема се в предвид и оперативен презапас от14db.RX_signal = SOM + RX_sensitivity = 14 + (-89) = -75dbm (13)D) Определя се необходимата стойност за FSL по (8):FSL = EIRP – RX Signal + RX Antenna Gain – Coax Cable Loss = 31 -(-75) +12 – 1 = 117 dB (14)E) Чрез зависимостта (10) се определя какво е разстоянието в мили набаза на известните параметри:log D=(FSL–36,6–20logF)/20={117– 36,6–20log(2440)}/20 = 0,6326 (15)D = 10 0,6326 = 4,29 милиF) След преобразуването в километри чрез (6) се получава:D(km) = D(mil)*1,609344 =4,29 * 1,609344 = 6,9km (16)Извод: От решението става ясно, че с даденото оборудване може да сеСтр.14Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипостигне ефективно разстояние от 6,9 км.Настройка и задаване на режимите на работаНастройка на параметрите и режимите на работа на точката за достъпстава чрез WEB интерфейса, който предлага. За целта трябва да се влезнечрез Web браузър в администраторския панел използвайки се IP адреса заадминистрация. Подразбиращият адрес е: 192.168.2.1, а подразбиращияusername: admin и password: 1234. За целта на станцията от която щеадминистрираме трябва да имаме въведен IP работен адрес от същата подмрежа.Тоест IP адрес от 192.168.2.х би ни свършил работа с маска255.255.255.0. Трябва да се внимава х да не съвпада с адреса на безжичнотоустройство.Фиг.9.След авторизацията вече може да администрираме самото устройство.Непосредствено след самия логин се появява статус страницата показана нафиг.9. Сега от менюто в ляво от BASIC SETTING може да продължим снастройката на режимите на работа.Сега може да продължим със задаването на режима на работа от MODE,както и на стандарта по който ще се работи: IEEE 802.11b или IEEE 802.11gот полето BAND. Работният канал може да се избере от Channel Number. Акотрябва да се фиксира работна скорост това става от менюто ADVANCEDSETTING и от там в полето Data Rate се задава изискваната работна скорост.При необходимост от филтриране по MAC адрес е необходимо да се избеременюто с име MAC Filtering (Фигура 11).Стр.15Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.10.Фиг.11.Чрез описване на MAC адресите е възможно да бъде санкционирандостъпа само до определени клиенти.ЛАБОРАТОРНА ПОСТАНОВКА:Топология на мрежата, която ще се използува за провеждане наупражнението е дадена на фигура 12.Стр.16Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиAP2AP12. CLIENT3. CLIENT1. SERVERФиг.12.В така изградената мрежа имаме една работна станция (1), която щеизползуваме като сървър и на нея ще бъде стартирано сървърно приложениеза генериране на данни по мрежата. Тези данни ще се измерват ототдалечените PC-та, свързани посредством безжична връзка към общаталокална мрежа. Това може да бъде работна станция (2), свързана чрезмрежовия жичен интерфейс към безжично устройство (AP2), което енастроено да работи като клиент в безжичната мрежа, асоциирайки се къмAP1. Сървъра (1) е свързан към безжичната мрежа посредством безжичноустройство (AP1), което работи в режим “точка за достъп”(AP). Възможно емобилно устройство (3) с вграден безжичен интерфейс да бъде използуваносъщо за измерванията. Такова може да е laptop или palmtop.Задачи за изпълнение:1. Да се конфигурира инфраструктурна мрежа от тип AP-Client като сеизползва топологията от фигура 97. Да се настрои работния канал на AP1 на 1ви, и да сеизползва за име на мрежата TEST.8. Да се настрои филтъра по MAC адрес за даденитеустройства.9. Да се измери пропускателната способност за различнитескорости и режими на работа:- при 1, 5.5 и 11 Mbps за тип на работа по стандарта IEEE 802.11b- при 6, и 54 Mbps за тип на работа по стандарта IEEE 802.11g10. Да се анализират резултатите.Указания:За измерване на пропускателната способност ще се използва външноконзолно приложение, което може да бъде намерено в директория NetCPS. Заизмерването се използуват 2 станции, като едната се конфигурира катосървър (1) а другата като клиент за NetCPS (3). Това става чрез съответнипараметри на приложението, дадени по-долу:netcps [options] [Remote host]Стр.17Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системикъдето option е параметър и се задава с тире, а Remote host е IP адреса скойто трябва да се осъществи връзка.Netcps – serverГоре показаната команда конфигурира NetCPS да работи като сървър.При това положение тя преминава в режим на подслушване за връзка ототдалечено PC.След изпълнение на командата се получава статистика за пиковата исредната трансферна скорост по канала. Примера е даден за Ethernet мрежа100 Mbps:C:\Temp\Shared>netcps 192.168.0.2NetCPS 1.0 - Entering client mode. Press ^C to quitConnecting to 192.168.0.2 port 4455... Connected!---> CPS 7651328.00 KPS: 7472.00 MPS: 7.30Avrg CPS 7456805.50 KPS: 7282.04 MPS: 7.11Peek CPS 7652352.00 KPS: 7473.00 MPS: 7.30Done. 104857600 Kb transferred in 14.06 seconds.Стр.18Безжични локални мрежи – WLAN


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиМОДЕМИ И GSM. УПРАВЛЕНИЕ ЧРЕЗ AT КОМАНДИ.Телефонните линии са проектирани да предават тонални (аналогови)сигнали. За да се използват за предаване на данни от цифрово устройство енеобходимо тези сигнали да се преобразуват. Преобразуването на цифровитесигнали в тонални за предаване на данни се нарича модулация, аустройството – модулатор. Обратното преобразуване се нарича демодулация,а устройството – демодулатор. За предаването на данни в двете посоки потелефонна линия е необходимо всяко от комуникиращите устройства да имамодулатор и демодулатор. Комбинираните модулиращи и демодулиращиустройства се наричат модеми.Устройство и функции на модемФункционално модемът се състои от три части (фиг. 1): Micro-ControllerUnit (MCU), Data Pump Unit (DPU), Direct Access Arrangement (DAA).• MCU е вграден контролер, който извършва компресията икорекцията на грешки на данните. Той имплементира АТ командитеза настройка и управление на модема и интерфейса за връзка спредаващото устройство.• DPU извършва обработката на сигнала, модулацията идемодулацията, организира предаването на цифровите данни чрезтонален сигнал.• DAA представлява физическия интерфейс към телефонната линия ифилтрите за ограничаване на честотната лента. Той изпълнявааналоговите функции на модема – открива наличност на линията,сигнал „заето” и други.Фиг.1. Устройство на модемBaudRate и BitRateПриети са три основни мерни единици за представяне на скоростта наСтр.19Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипредаване. Величината бода за секунда е свързана с изменението на сигналапо физическата линия. При различните методи на модулация може да сепредава различно количество информация за едно значение, затов този методне е популярен. Най-популярната единица за измерване на пропускателнатаспособност е бита за секунда. Тя е общоприета за измерване скоростта напредаване на данни. В модемите се въвежда една допълнителна величина,която представя скоростта на предаване на потребителските данни, катоотчита предаването на служебна информация – символ в секунда. Единсимвол се равнява на повече от осем бита – 7,8 даннови, един стартов и 1,2стопови бита.Видове модемиАналоговите модеми се разделят на три вида: хардуерни, софтуерни иWin-модеми. При хардуерните модеми са реализирани и трите основни части.Това ги прави по-бързи и платформено независими. При Win-модемите сареализирани само DPU и DAA, като компресията и корекцията на грешките,както и имплементацията на АТ командите се извършва от драйвернапрограма, работеща на процесора на потребителската станция. Присофтуерните модеми само DAA се реализира физически и всички останалифункции се изпълняват от драйверна програма. Последните два вида сеизползват при необходимост от ниска консумация и намаляване наапаратната част (най-често при мобилни компютърни системи).При аналоговите модеми за предаване на данни се използва честотналента за предаване на глас, която не надвишава 3.3kHz. При тази честотнасъвременните методи за модулация пзволяват скоростта на едновременнопредаване на данни в двете посоки да достигне 33.6kb/s.Фиг.2. Разпределение на честотите при ADSL.Има създадени методи за предаване на данни по телефонни проводницибез използване на честотното ограничение, което позволява много по-високискорости, зависещи от сечението на проводника и дължината на линията. Зацелта се използват DSL модеми. Всъщност, DSL е фамилия за модемнитехнологии за високоскоростно предаване на данни по телефонна линия.Най-популярните реализации на DSL са: HDSL, ADSL, VDSL. В тях секомбинира предаването на данни с предаването на глас, тъй като за двете сеизползват различни честотни ленти (фиг. 2).Стр.20Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.3. ADSL архитектура.Основният недостатък на ADSL (фиг. 3) е наличието на NID (NetworkInterface Device) и splitter при клиента. Това са устройства, които сеинсталират и конфигурират само от доставчика и цената им е относителновисока.Друг популярен начин на високоскоростно предаване на данни е презкабелен модем (кабелна телевизия). Архитектурата на предаване презкабелен модел е показана на фигура 4, а разпределението на честотите нафигура 5.Фиг.4. Архитектура за кабелно предаване.Фиг.5. Разпределение на честотите при кабелно предаване.Въпросът дали DSL или кабелното предаване е по-добро няма еднозначенотговор. Първата технология има заделена пропускателна способност завсеки потребител и увеличаването на потребителите не влияе върху нея. Привтората, честотната лента е обща и увеличаването на потребителите силновлияе на връзката на отделния потребител. За сметка на това кабелнотопредаване има по-добри характеристика като разстояние и честотна лента(broadband).Стр.21Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиПроцедура за предаване на данни между два модема.При предаването на данни по телефонната мрежа предаващата иприемащата станция се разделят на две части – DTE (data terminal equipment)и DCE (data circuit-terminating equipment). Първата включва потребителскатаили сървърната машина, а втората – модема. Виж фигура 6.Фигура 6 показва последователността от сигнали при осъществяването навръзка, предаването на данни и разпадането на връзката. Използва се, ченабиращия модем има автоматично избиране, а отговарящия – автоматиченотговор.Фиг.6. Процедура за свързване на два модема.Когато DTE е готово да извърши или приеме трансфер на данни, тоустановява сигнала DTR в “1” и локалното DCE отговаря с установяване наDSR в “1”. Връзката започва да се създава, когато набиращото DTE изпратиномера на отдалеченото устройство към модема. Когато модема наотговарящото устройство засече сигнал “звънене” по линията, той установявасигнала RI в “1” и съответното DTE отговаря с RTS = “1”. След тованабиращия модем изпраща носеща честота по линията в отговор и следкратко изчакване изпраща към локалното си DCE сигнал CTS = “1”. Това езнак да се подготвят данните за изпращане. Когато набиращия модем засеченосещата честота установява сигнал CD в “1”. В този момент връзката еосъществена и прехвърлянето на данни може да започне. Обикновенно тозапочва с предаване на кратко съобщение “покана за изпращане” отустройството което подава заявка за данни. След това съобщениеполучаващото DТE установява RTS в “0”, резултат на което локалното DCEспира изпращането на носещата честота и установява CTS в “0”. От другатастрана се засича липсата на носеща честота и се установява CD в “0”. Таказапочва предаването на данните. Тези действия се повтарят при всякоСтр.22Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиизпращане на съобщение. След завършване на цялата транзакция започвапроцедура по разпадане на връзката. Тя започва с установяване и от дветеDTE на сигнала RTS в “0”, което предизвиква спране на предаването наносещата честота и от двата модема. В отговор на това и двата модемаустановяват CD в “0”. След това двете DTE установяват сигналите си DSR в“0” и в отговор модемите установяват DTR в “0”. Така връзката е прекратена.Основни АТ командиФирмата Hayes произвежда едни от първите “интелигентни” модеми ивъвежда система от команди за управлението им. Повечето съвременнипроизводители поддържат тези команди, които се възприемат като стандарт.Различните модеми поддържат различен набор от команди, затова щеразгледаме само някои от най-често използваните. АТ командите се въвеждатс префикс АТ и завършват с ”” (= 0x0D). Всяка подадена команда сепотвърждава с “ОК” или “ERROR”. Ако се подават повече от една командана един ред се използва ‘;’ за разделител. Команда, която в момента е визпълнение се прекъсва от подаване на символ по серийния порт.Някои основни команди за управление на модем са дадени по-долу:А/ – повторение на последната команда.+++ – последователност, която кара модема принудително да премине вкоманден режим от режим на предаване (обратната команда е О).H – прекъсване на линията.А – отговор на обаждане.D [номер] – набиране на телефонен номер. Използва се с допълнителнимодификатори.Р – импулсно набиране;Т – тонално набиране;, – пауза;S – набира се номера запаметен в паметта на модема;R – набира се последния набран номер.M – спиране и пускане на звука (говорителя). М0 – спира звуканапълно, М2 – включва звука за постоянно, М1 – звука е пуснат доустановяване на връзката.L – управлява силата на звука (говорителя).Z – връща настройките по подразбиране на модема.In – дава информация за модемаI0 – връща идентификационния код на модема;I1 – връща контролната сума на енергонезависимата памет на модема;I2 – връща версията на модема;I5 – връща страната производител (или нейния код);I6 – връща модела на модема;I8 – връща поддържаните начини на работа;I9 – връща идентификацията на модема;АТВ[n] – задаване на скорост на предаване в бода за секунда.GSM модемиGSM комуникацията сериозно се различава от стандартната телефония.Въпреки това, тя е създадена, за да я замести използвайки радио вълни заСтр.23Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипреносна среда. Затова при създаването на GSM оборудване са запазенинякои основни идеи от телефоните. Например управлението чрез АТ командии сериен интерфейс за достъп до оборудването.Най-важната характеристика на GSM комуникацията е, че това е мрежаот клетки. Мобилното устройство използва най-близката клетка за предаванена информацията.Фиг.7. Архитектура на публична наземна мобилна мрежа.Основните елементи на GSM мрежата са: мобилна станция (MS), модулза идентификация на потребителя (SIM), базова трансийверна станция (BTS),контролер на базова станция (BSC), транскодер и адаптер (TRAU), център запревключване на мобилни услуги (MSC), домашен регистър (HLR), гострегистър (VLR), регистър за идентификация на оборудване (EIR), публичнаназемна мобилна мрежа (PLMN) – фигура 7.МS е всяко устройство, което е краен клиент в GSM мрежата – клетъчнителефони, модеми и други. SIM се използва за идентификация в системата, заопределяне на права, таксуване. Той още може да се разглежда и катопотребителска база от данни, съдържаща настройки, телефонни номера идруги. BTS се грижи за радиовръзката между мрежата и мобилните станции.BSC е централно устройство на група от съседни BTS и изпълняваконтролиращи функции. Понятието BSS – базова подсистема – се отнася доBSC и прилежащите му BTS. TRAU извършва компресия на данните иуправление на честотния спектър за предаване. Архитектурно, той е част отBSS и се представя като „черна кутия”. MSC служи за маршрутизиране наинформацията, пристигаща от множество BSC. HLR е голяма база от данниза потребителите на дадената мобилна мрежа. VLR е приложена, за да не сепретоварва HLR. Тя съдържа информацията само за тези потребители, коитоса текущо вързани към мрежата. EIR е база от данни на идентификационнитеСтр.24Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиномера на телефоните, не на потребителите. Това се налага за борба скражбата на мобилни телефони. При кражба може да се забрани достъпа домрежата не само по SIM, но и по идентификация на апарата.Специфични АТ команди за GSM модемВсеки GSM модем освен основните АТ команди поддържа и специфичникоманди. Специфичните GSM команди са описани в спецификациятаGSM_7.07, а специфичните за SMS съобщения GSM_7.05 и започват спрефикса “AT+C”. Освен основните АТ команди и специфичните GSMкоманди, повечето съвременни мобилни устройства поддържат и факскоманди („АТ+F”), GPRS команди („АТ*”) и така наречени „потребителски”команди, които отговарят само за конкретния производител и управляватспецифични настройки на телефона (модема). За Siemens тези команди са спрефикс „АТ^S”.Пример за специфични GSM команди:AT+CGMI – код на производителя;AT+CGMM – модел на устройството;AT+CGSN – идентификация на телефона – IMEI;AT+CHUP – прекъсва настоящите разговори;AT+CLIP – заявка за използване на показването на номера нанабиращия:AT+CLIP? – показва текущата настройка;AT+CLIP=n – променя настройките, като n=0 изключва, а 1 включва.AT+CLIR – заявка за INCOGNITO при набиране:AT+CLIR? – показва текущата настройка;AT+CLIR= n – променя настройките, като 0 – по настройки от мрежата,1 – включено, 2 – изключено;AT+CLVL – управление на нивото на звука (виж тест на командата заподдържаните нива).AT+CVIB – управление на вибрациите (виж тест).АТ+CMGL – показване списък с SMS съобщения;АТ+CMGR – прочитане на SMS;АТ+CMGS – изпращане на SMS;АТ+CNMI – показване на пристигащ SMS;* всяка команда с комбинация „=?” накрая е тест дали командата сеподдържа от телефона.Задачи:1. Запознаване с устройство и функции на модем.11. Запознаване с процедурата за връзка между два модема.12. Запознаване с основните АТ команди.13. Подаване на АТ команди през HyperTerminal.14. Запознаване с GSM модеми.15. Запознаване със специфични AT команди за GSM модеми.16. Използване на АТ команди.Стр.25Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиЗа допълнителна подготовка:• Стандарти за GSM : http://www.etsi.org/ (GSM 02.30, 02.82, 03.38,03.40, 03.41, 04.08, 04.11, 07.05, 07.07)• Gunnar Heine, “GSM Networks – Protocols, Terminology andImplementation”, Artech House 1998.• Andrew S. Tanenbaum, „Computer Networks, 4th Ed”, Prentice Hall,2003.• Формат на SMS PDU - http://www.dreamfabric.com/sms/.• Въведение в GSM – http://www.gsmfavorites.com/documents/.Стр.26Модеми и GSM. Управление чрез AT команди.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиМРЕЖОВ СЛОЙ. АДРЕСИРАНЕ. DHCP– СЪЩНОСТ И КОНФИГУРАЦИЯМрежов слойИнтернет протоколът (IP) е едно от най-важните средства, чрез които еизградена мрежата Интернет. Неговите основни функции са:• да дефинира базовата единица за пренос на информация (дейтаграм);• да дефинира схемата за адресация в Интернет;• да осигури намирането на пътя на дейтаграмата (маршрутизация).IPv4 и IPv6 Headers. АдресиранеАдресирането в Интернет се базира на IPv4. Съществуватекспериментални мрежи, които се базират на IPv6. Хедърите на дватастандарта са показани на фигури 1 и 2.Фиг.1. IPv4 HeaderФиг.2. IPv6 HeaderIP адресът във версия 4 (IPv4) представлява 32-битово число, коетоуникално идентифицира всеки хост в Интернет и е прието да се записва каточетири десетични цифри разделени с точки. Схемата на адресиране еСтр.27Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системийерархична, логически адресите се състоят от две части: мрежова част и хостчаст. Стойностите за хост частта, които се състоят само от нули или само отединици са резервирани и не адресират хост в мрежата. IP адрес, който имахост част само нули показва адреса на мрежата, а адрес, чиято хост част есамо единици се използва за broadcast адрес – адресиране на всички хостове вдадена мрежа. Освен това адресите на мрежи 0.0.0.0 и 127.0.0.0 също сарезервирани. Първият се нарича “маршрут по подразбиране”, а вторият –локален адрес (local loop). Обикновено адрес 127.0.0.1 се присвоява налокалния интерфейс и служи за тестването му.За удовлетворяване на различните нужди на потребителите се осигуряватпет класа адреси, означени с латинските букви от A до E. Адресите от клас Аимат 8 бита за мрежова част и 24 – за хост. Първия байт на адреса винагизапочва с ‘0’. На практика има 128 мрежи от този клас и 2 24 -2 хоста във всякаот тях. Този клас адреси могат да бъдат познати по стойността на първиябайт – от 1 до 126.При адресите от клас В най-старшите два бита заемат винаги стойностите‘10’. Използват се 14 бита за мрежова част и 16 – за хост. Следователно, има214 мрежи от клас В с по 216 -2 хоста. Първият байт на адресите от клас Взаема стойности от 128 до 191.При адресите от клас С най-старшите 3 бита заемат стойностите ‘110’,следващите 21 бита се използват за адрес на мрежата, а оставащите 8 бита заадрес на хост. Следователно има 221 мрежи от клас С, всяка с по 254 хоста.Първият байт заема стойности от 192 до 223.Адресите от клас D се използват за адресиране на групи от компютри –multicast. Първите четири бита на първият байт са ‘1110’, а всички останали28 бита показват адрес на група от компютри. За повече информация RFC3171 или http://www.iana.org/assignments/multicast-addresses.Освен разделянето на адресите на класове, предвидено е средство за понататъшноразделяне на всяка мрежа на подмрежи. Това се осъществява чрезмаска - subnet mask. Маската е 32-битово число, което се състои отпоследователност от единици, последвана от последователност от нули.Винаги поредиците от единици и от нули са непрекъснати, и тази от нулиследва тази от единици.(Не може да има единици след започване на нулите.Например “11111100000” е част от валидна маска, “1110000110” – не.). Чрезтази маска се извършва изместване на разделителната линия междумрежовата и хост частите. Чрез прилагане на побитово “И” между адреса имаската се отделя мрежовата част. Така можем, притежавайки мрежа отдаден клас, да я разделим на няколко мрежи. Разделянето на подмрежиподпомага работата на мрежовото оборудване и ограничава broadcastдомейните.Стр.28Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.3. Адресите от клас Е са резервирани за бъдещо ползване.Бързото изчерпване на мрежите от клас В налага някои големиорганизации да вземат няколко мрежи от клас С. От друга страна, големиятброй мрежи от клас С прави таблиците за маршрутизация тежки и големи.Това довежда до възникването на т.нар. супермрежи и появата на безкласовамаршрутизация ( Classless Inter-Domain Routing – CIDR). Супермрежа сенарича група от мрежи, които се определят от последователни IP адреси.Всяка супермрежа има уникален супермрежов адрес, който се състои отстаршите битове, които са общи за цялата група от последователни адреси.Например за групата адреси от 194.141.0.0 до 194.141.7.0 общи са първите 21бита, следователно супермрежовия адрес се задава с следния адрес и маска –194.141.0.0/21.Друго решение на изчерпващото се адресно пространство е въвежданетона т.нар. частни IP адреси. За да може да функционира Интернет енеобходимо всеки хост свързан към глобалната мрежа да притежавауникален IP адрес. За мрежите които обаче не са свързани към Интернетможе да се използват кои да е мрежови адреси стига да не се повтарят вътре всамата мрежа. Използването на кои да е IP адреси е опасно понеже мрежатаможе евентуално да бъде свързана към Интернет. Поради тази причина сарезервирани три блока от IP адреси които могат да бъдат използвани заадресиране на хостовете в частните мрежи. Пакети които съдържат адреспринадлежащ на някои от тези три блока няма да бъде маршрутизиран отгръбначните рутери в Интернет. Описание на тези адреси може да бъденамерено в документа RFC 1918.Табл.4: Частни IP адресиNetwork ClassIP address rangeClass A 10.0.0.0 /8Class B 172.16.0.0 /12Class C 192.168.0.0 /16Стр.29Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиЗа опознаването на работата на мрежовия слой е необходимо познаванетона основните функции на IP протокола. При него се използва дейтаграменметод без установяване на връзка за обмен на данни. Това означава, чепредаващата и приемащата страна не са установили логически канал и всякадейтаграма се предава независимо. IP протоколът осигурява следнитефункции: адресиране, фрагментиране, таймаут на пакет, приоритет.Dynamic Host Configuration Protocol (DHCP)Услугата DHCP централизира и управлява разпределението наинформация за конфигурирането на TCP/IP като задава автоматично IPадреси и друга информация за параметрите на TCP/IP на компютри, които санастроени като DHCP клиенти. Използването на DHCP може да отстраниголяма част от проблемите, свързани с ръчното конфигуриране на TCP/IP. Втова упражнение се разглеждат необходимите умения и се дава информацияза инсталирането и конфигурирането на услугата DHCP. В него серазглеждат и DHCP договорите.Въведение в DHCPDHCP представлява TCP/IP стандарт за опростяване на управлението наIP конфигурацията. DHCP е разширение на протокола BOOTP (BootstrapProtocol), който е базиран на UDP/IP (User Datagram Protocol/InternetProtocol). ВООТР позволява на хостовете да се самоконфигурират динамичнопо време на началното си зареждане. Всеки път, когато даден DHCP клиентсе стартира, той иска адресна информация за IP от DHCP сървър. Тазиинформация включва следното:• IP адрес.• маска на подмрежата.• Незадължителни параметри като адрес на подразбиращия се шлюз,адрес на DNS сървър.Когато някой DHCP сървър получи заявка за IP адрес, той избира адреснаинформация за IP от пул с адреси, дефиниран в неговата база данни ипредлага тази информация на DHCP клиента. Ако клиентът приеме офертата,DHCP сървърът разрешава на клиента да използва адресната информация заIP за определен период от време.Ръчно срещу автоматично конфигуриране на TCP/IPЗа да разберете какви са предимствата на услугата DHCP при конфигуриранетона TCP/IP за клиент, ще съпоставим ръчния метод законфигуриране на TCP/IP с автоматичния метод с използване на DHCP, кактое показано на следващата таблица.Стр.30Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиРъчно конфигуриране на TCP/IPПотребителят може да избере произволенадрес, вместо да получи адрес отмрежовия администратор. Използванетона некоректни адреси може да доведе дотрудни за проследяване мрежовипроблеми.Ръчното въвеждане на адреса, маската наподмрежата или шлюза по подразбиранеможе да доведе до проблеми, вариращи отзатруднени комуникации, ако е въведеннекоректен шлюз по подразбиране илимаска на подмрежата, до проблеми,свързани с дублирането на адреси.Създава се допълнителна работа заадминистратора, ако се налага често дапреместват компютри от една подмрежа вдруга. Например, трябва ръчно дапромяната адреса и адреса на шлюза поподразбиране за даден клиент, за да можеда комуникира правилно от новото симестоположениеКонфигуриране на TCP/IP сизползване на DHCPОтпада необходимостта потребителитеда получават от администраторадресна информация за конфигуриранена TCP/IP. Услугата DHCP осигурявацялата необходима информация завсички DHCP клиенти.Валидната адресна информацияосигурява правилно конфигуриране,което отстранява повечето трудни запроследяване проблеми.Наличието на сървъри, на коитоработи услугата DHCP, отстранявадопълнителната работа, която есвързана с ръчното конфигуриране наадреси, маски и шлюзове припреместването на компютри. ЕдинDHCP сървър може да се грижи замножество различни мрежиедновременно.Настройването на DHCP във дадена мрежа има следните предимства:сигурна и надеждна конфигурация; DHCP намалява конфигурационнитегрешки причинявани от ръчно конфигуриране на IP адреси като напримертипографски грешки, или конфликти причинени от вече зададени IP адреси,които по някаква причина се задават и на някои друг компютър; Намаляванена мрежовата администрация; TCP/IP конфигурацията е централизирана иавтоматизирана; Мрежовите администратори могат централно да дефиниратглобални и подмрежови специфични TCP/IP конфигурации. Клиентите могатавтоматично да си настроят най-различни опции за TCP/IP като използватнастройките на DHCP сървъра. Промяната на адресите за клиентскитеконфигурации, които трябва да се правят често като например клиенти, коиточесто се движат от подмрежа в подмрежа може да се правят ефикасно иавтоматично. Повечето маршрутизатори могат да приемат DHCPконфигурационни поръчки, елиминирайки изискването да се прави отделенсървър за всяка подмрежа.DHCP Lease ProcessУслугата DHCP предоставя адресна информация за IP на клиенткитекомпютри. Предоставянето на адресна информация за IP се нарича DHCPдоговор (lease). Процесът на създаване на DHCP договор се изпълнява, когатосе случи едно от следните събития:• TCP/IP се инициализира за първи път на даден DHCP клиент.Стр.31Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Отказана е заявка на клиент за даден IP адрес, може би защото DHCPсървърът е прекратил разрешението за използване.• Клиентът, който преди това е получил разрешение за използване нанякой IP адрес, току-що го е освободил и изисква нов. Един DHCPдоговор може да бъде прекъснат ръчно, като се изпълни откомандния ред командата ipconfig /release. След това с ipconfig/renew се прави заявка за нов IP адрес (нов договор).DHCP клиентът чака една секунда за оферта. Ако той не получи оферта,то изпраща съобщение 4 пъти на интервал от 2, 4, 8 и 16 секунди. Акоклиентът не получи оферта след четирите направени заявки, той използва IPадрес от резервирания интервал между 169.254.0.1 до 169.254.255.254 Товаподсигурява, че клиентите на под мрежа, която няма DHCP сървър могат дакомуникират един с друг, като освен това DHCP клиентът продължава да сеопитва да намери DHCP сървър всеки 5 минути. Когато DHCP сървър станевидим клиентите получават валидни IP адреси, което им позволява дакомуникират с хостовете в и извън техните подмрежи. DHCP използвачетири стъпков процес за договаряне на информацията за IP адресирането наDCHP клиентите.Този процес още се нарича DORA: Discovery, Offer, Request,and Acknowledgment.Автоматично подновяване на договораПрез определени интервали DHCP клиентът пробва да поднови своядоговор за да се подсигури че ползва най-новата информация. DHCPклиентът се опитва да поднови своя договор когато половината от срока надоговора мине. DHCP клиентът изпраща DHCPREQUEST съобщение доDHCP сървър за да поднови своя договор. Ако DHCP сървърът е достъпен, тотой подновява договора с DHCPACK съобщение с новия срок на договора иактуализирани параметри на конфигурацията. Клиентът подновява своятаконфигурация, aко DHCP сървърът не е достъпен, то клиентът продължавада използва настоящата конфигурация и DHCP клиентът не може да подновисвоя договор той прави Broadcast DHCPDISCOVER съобщение за да направиактуализация на своя договор за IP адрес на постоянни интервали и приемадоговор, които му е пратен от които и да е DHCP сървър.Ръчно подновяване на договораМоже да се използва командата IPConfig с /renew за ръчно подновяванена IP-то ако искате да подновите DHCP конфигурацията веднага. Aко искатеDHCP клиентът да поднови информацията с цел използването на новинсталиран маршрутизатор и в случая да има наличие на два DHCP сървъра ведна мрежа, за да има вероятност да се получи IP адрес не от текущия сървър,а от другия трябва ръчно да се поднови конфигурацията с командата ipconfig/release. Тази команда изпраща DHCPRELEASE съобщение до DHCP сървърда премахне договора.Стр.32Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиDHCP използва процес от четири фази, за да разреши за използването наопределена адресна информация за IР на даден DHCP клиент за определенпериод от време: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST иDHCPACK (Фиг. 4).DHCPDISCOVERПървата стъпка в процеса за създаване на DHCP договор еDHCPDISCOVER (DHCP откриване). В началото клиентът инициализираограничена версия на TCP/IP и изпраща broadcast съобщениеDHCPDISCOVER, с което търси местоположението на DHCP сървър иадресна информация за IP. Тъй като клиентът не знае IP адреса на DHCPсървър, той използва 0.0.0.0 като адрес на изпращача и 255.255.255.255 катоадрес на получателя. Съобщението DHCPDISCOVER съдържа хардуернияадрес и името на компютъра на клиента, така че DHCP сървърите да могат даопределят кой клиент изпраща заявката.DHCPOFFERФиг.4. DHCP алгоритъм на обслужване на заявкитеВтората стъпка в процеса за създаване на DHCP договор е DHCPOFFER(DHCP предложение). Всички DHCP сървъри, които получат заявката за IPпараметри и могат да предложат валидна конфигурация за клиента, изпращатbгоаdсаst-съобщение DHCPOFFER, включващо следната информация:Стр.33Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Хардуерният адрес на клиента.• IP адресът, който предлагат.• Маска на подмрежата.• Продължителността на DHCP договора.• Идентификатор на сървъра (IP адреса на предлагащия DHCP сървър).DHCP сървърът изпраща bгоаdсаst-съобщение, защото клиента все ощеняма IP адрес. DHCP клиентът взима IP адреса от първата оферта, коятополучи. DHCP сървърите запазват предложените IP адреси, така че те да небъдат предложени на друг DHCP клиент.DHCPREQUESTТретата стъпка в процеса за създаване на DHCP договор се изпълнява,след като клиентът приеме DHCPOFFER от поне един DHCP сървър и избереIP адрес. Клиентът изпраща bгоаdсаst - съобщение DHCPREQUEST (DHCPзаявка) до всички DHCP сървъри, показващо, че е приел определена оферта.Съобщението DHCPREQUEST включва идентификатора на сървъра (IPадреса), чиято оферта е приел клиента. Тогава всички останали DHCPсървъри оттеглят офертите си и запазват своите IP адреси за следващатазаявка за IP договор от други клиенти.DHCPACKПоследната стъпка в един успешен процес за създаване на DHCP договорсе изпълнява, когато DHCP сървърът, подал приетата оферта, изпращаbгоаdсаst-съо6щение за успешно потвърждение към клиента под формата насъобщение DHCPАСК (DHCP потвърждение). Това съобщение съдържавалиден DHCP договор за даден IP адрес, а може да включва и другаконфигурационна информация. Когато DHCP клиентът получипотвърждението, ТСР/IР е напълно инициализиран и клиентът се счита засвързан DHCP клиент. След като вече е свързан, клиентът може да използваTCP/IP, за да комуникира в мрежата.DHCPNACKАко заявката DHCPREQUEST е неуспешна, DHCP сървърът изпращаbгоаdсаst - съобщение за отказ (DHCPNACK). Това става в един от следнитеслучаи:• Клиентът се опитва да поднови DHCP договора за своя предишен IPадрес, но този IP адрес вече не е достъпен.• IP адресът е невалиден, защото клиентският компютър е билпреместен в друга подмрежа. Когато клиентът получи съо6щение заотказ, той започва отначало процеса за създаване на DHCP договор.Стр.34Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиПодновяване и прекратяване на DHCP договорВсички DHCP клиенти се опитват да подновяват своя DHCP договор,когато изтече 50% от времето, в което могат да използват IP конфигурациятаси. За да поднови своят договор, DHCP клиентът изпраща съобщениеDHCPREQUEST директно към DHCP сървъра, с който е сключил DHCPдоговор. Ако DHCP сървърът е достъпен, той подновява разрешението заизползване и изпраща на клиента съобщение DHCPАСК с новото време надоговора и някои основни конфигурационни параметри. След като получипотвърждението, клиентът подновява своята конфигурация.Всеки път, когато даден DHCP клиент се рестартира, той се опитва даполучи същия IP адрес от оригиналния DHCP сървър. Ако заявката засключване на договор е неуспешна, а времето, в което може да се използвастарата конфигурация все още не е изтекло, DHCP клиентът продължава даизползва същия IP адрес, до следващия опит за подновяване на договора.Ако даден DHCP клиент не може да поднови договора си с оригиналнияDHCP сървър за 50% или 87.5% от времето на договора, клиентът изпращаbгоаdсаsts-съобщение DHCPREQUEST, за да установи контакт с някойдостъпен DHCP сървър. Всеки DHCP сървър може да отговори съссъобщение DHCPАСК (като по този начин поднови договора) или съссъо6щение DHCPNACK (принуждавайки DHCP клиента да се инициализираотново и да сключи договор за използване на друг IP адрес).Ако DHCP договорът е изтекъл или е получено съобщение DHCPNACK,DHCP клиентът трябва незабавно да преустанови използването на този IPадрес. След това DHCP клиентът започва нов процес за сключване на DHCPдоговор, за да получи разрешение за използване на нов IP адрес.DНСР клиентите на Microsoft не инициират съобщения DHCPRELEASE,когато се изключват. Ако клиентът остане изключен до изтичането на срокана договора му (и разрешението за използване не е подновено), DНСРсървърът може да зададе IP адреса на този клиент на друг клиент, след катоизтече срока на предишния договор. Клиентът има по-добри шансове даполучи същия IP адрес по време на инициализацията, ако не изпращасъобщение DHCPRELEASE.Изисквания за сървъра, предоставящ услугата DHCP• IP адрес, маска на подмрежата, подразбиращ се шлюз (ако енеобходимо) и други параметри на ТСР/IР. DHCP сървърът не можеда бъде и DНСР клиент.• Услугата DHCP Service.• Активирана DHCP област. Областта представлява група от IP адреси,които могат да бъдат дадени за използване на клиенти. След като сесъздаде областта, тя тря6ва да бъде активирана.Стр.35Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиПроверка за работещ DНСР сървърПървата стъпка е да влезем като потребител root в конзолата на PUTTY.За да се провери дали на машината, на която е инсталирана Linuxдистрибуция, е пуснат DHCP сървър и дали съответно той работи се използваследната команда:рs –ax | grep dhcpdВ случай, че тази команда върне отговор от dhcpd, то най-вероятносървъра е инсталиран и работи правилно. За целта на упражнението привръщане на информация от DHCP сървъра, да се прекрати работата му. Товасе прави с функцията kill #process. Задаваме команда dhcpd –f. Kлючът fуказва да се покажа действието на командата на екрана като стойностите сезадават динамично. Възможна е грешка от сорта на „Can't open/etc/dhcpd.conf: No such file or directory”. Това означава че не е възможно даотвори конфигурационния файл.Създайте въпросния файл със следните записи в него:subnet 192.168.2.0 netmask 255.255.255.0 {range 192.168.2.100 192.168.2.200;}След това се опитайте да стартирате dhcpd отново. Ако отново имагрешка – уверете се че няма грешка при създаването на файла. Стартиранетона сървъра става само с dhcpd, ако на машината има предварително зададенконфигурационен файл.Примерен конфигурационен файл на DHCP за SmoothWall 2.0 Express[root@smoothwall etc]# cat dhcpd.confddns-update-style ad-hoc;subnet 192.168.2.0 netmask 255.255.255.0{option subnet-mask 255.255.255.0;option domain-name "";option routers 192.168.2.1;option domain-name-servers 194.141.39.9;range dynamic-bootp 192.168.2.100 192.168.2.200;default-lease-time 3600;max-lease-time 7200;host 1 { hardware ethernet 00:D0:59:C0:8C:D1; fixed-address192.168.2.4; }host 2 { hardware ethernet 00:A0:C9:EB:95:5E; fixed-address192.168.2.2; }}Създаване на DHCP областСледващата стъпка след като услугата DHCP е инсталирана и работи, еда създадете област. Тя тря6ва да 6ъде създадена преди даден DHCP сървърСтр.36Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системида предостави адрес на DHCP клиент. Областта представлява пул с валидниIP адреси, които могат да се предоставят на DHCP клиенти.Когато създавате DHCP област, спазвайте следните правила:• Тря6ва да създадете най-малко една област за всеки DHCP сървър.• Трябва да изключите статичните IP адреси от областта.• Можете да създадете множество области на един DHCP сървър, за дацентрализирате администрирането и едновременно с това да задаватеIP адреси, специфични за конкретната подмрежа. Можете да задаватесамо една област за дадена подмрежа.• DHCP сървърите не споделят информация за областта. Поради това,когато създавате области на множество DHCP сървъри, уверете се,че едни и същи IP адреси не съществуват в повече от една област, зада не допуснете ду6лирането на IP адреси.SubnetsЧесто се налага IP мрежите да се разделят на по-малки части, наречениподмрежи, тъй като това осигурява на мрежовите администраторидопълнителни възможности за ефективно използуване на адреснотопространство. Разделянето на дадена мрежа на подмрежи позволявадецентрализация на нейното управление и улеснява контрола на трафика.Подмрежите се въвеждат чрез мрежова маска (subnet mask), която е сформат на IP адрес, т.е. представлява 32-битово двоично число, записвано заудобство като четири десетични числа, разделени с точки. Маската се състоиот две последователни полета от единици и нули, като полето с единицизапочва от най-старшия бит. Например за мрежа от клас В маската може даима вида 11111111 11111111 11111111 00000000 или представена за удобство255.255.255.0. Полето с единици определя мрежовата част на IP адрес, къмкойто се прилага маската, а полето с нули - адреса на хоста. Чрез мрежовамаската маска се извършва преместване на разделителната линия междудвете части на адреса, дефинирана от съответния адресен клас А, В или С.Да допуснем, че разполагаме с мрежа от клас В с IP адрес 131.24.0.0, т.е.е над 64 000 адреси на хостове. Тази мрежа може да се раздели на 256подмрежи, като се вземат битове от хост-частта на адреса и се използват катополе "подмрежа", както е показано на фигура 5. За целта се използувамрежова маска 255.255.255.0. В тази маска полето с единици включвастаршите три байта на IP адреса, което означава, че тези байтове сеизползуват за адрес на мрежа. Полето с нули включва най-младшия байт наIP адреса, който се използува за адрес на хост.Адрес на мрежа от клас В1 0 Мрежа Мрежа Хост ХостАдрес на мрежа от клас В след прилагане на мрежова маска 255.255.255.01 0 Мрежа Мрежа Подмрежа ХостФиг.5. Подмрежови адресиСтр.37Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиВ този пример старшите 8 бита от хост адреса служат за въвеждане намрежова маската част, а младшите - на адреса на хоста след разделянето наподмрежи. Следователно, адресът 131.24.1.71 отговаря на хост 71 от мрежа131.24, подмрежа 1, а адресът 131.24.8.5 отговаря на хост 5 от мрежа 131.24,подмрежа 8 и т.н..Нека разгледаме един пример за мрежа от клас А (фиг. 6). Мрежова маска255.255.0.0 се прилага на 8 подмрежови бита за адреса на мрежа 34.0.0.0 ивъвежда 256 подмрежи.Адрес на мрежа от клас А 34.0.0.00 0 1 0 0 0 1 0 00000000 00000000 00000000Адрес на мрежа Адрес на хостМрежова маска:1 1 1 1 1 1 1 1 11111111 00000000 00000000Адрес на мрежа Адрес на Адрес на хостподмрежаФиг.6. Мрежова маска на мрежа от клас АНека да разгледаме и един пример за мрежа от клас С. Да разделим наосем подмрежи мрежата от клас С с адрес 192.12.122.0. Използвайки първитетри бита на четвъртия октет за мрежовата част на адреса, получавамеследната мрежова маска:11111111.11111111.11111111.11100000 или 255.255.255.224Мрежова маска 255.255.255.224 осигурява осем подмрежи, защотостаршите три бита на четвъртия октет се използват за създаване на осемподмрежови адреса (фиг. 4). За адресиране на хостовете във всяка от тезиподмрежи се използуват най-младшите пет бита на IP адреса. Тъй катостойността 00000 на тези битове се използува за адрес на самата подмрежа, астойността 11111 — за broadcast предаване, всяка от тези подмрежи включва30 хост адреса.Най-лявата колона от таблицата (фиг. 4) съдържа номерата на осемтеподмрежи, а в следващата колона е показан обхватът на IP адресите в даденаподмрежа. Най-дясната колона от таблицата показва четвъртия октет,записан двоично. С по-плътен шрифт са показани трите подмрежови бита, откоито се вижда, че номерът на подмрежата е равен на числото, дефинираноот тези три бита.Стр.38Мрежов слой. Адресиране. DHCP– същност и конфигурация


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиМРЕЖОВ СЛОЙ. МАРШРУТИЗИРАНЕ В ИНТЕРНЕТ.Интернет протоколът (IP) е едно от най-важните средства, чрез които еизградена мрежата Интернет. Неговите основни функции са:• да дефинира базовата единица за пренос на информация (дейтаграма)• да дефинира схемата за адресация в Интернет• да осигури намирането на пътя на дейтаграмата (маршрутизиране).МаршрутизиранеПроцесът на придвижването на пакет информация от един физическимрежови сегмент към друг се нарича маршрутизиране (routing).Маршрутизирането управлява процеса на препращане на логическиадресирани пакети информация от техния източник до крайната им целпосредством междинни устройства наречени маршрутизатори.Маршрутизаторът е интелигентно устройство. То взима решения на базата нат.нар. маршрутизираща таблица за да избере най-добрия маршрут задейтаграмата по пътя й до крайния получател. Поради тази причинаконструирането на маршрутизиращата таблица е важен етап за ефикасносттана маршрутизирането.Фиг.1. Пример за маршрутизиране.В маршрутизиращата таблица се поддържа списък на най-добритепътища до различни мрежи. За определянето на понятието най-добърмаршрут се използват т.нар. мерни единици (metrics). Мерните единиципредставляват или оценка, или стойност на даден параметър на мрежоватавръзка. Най-често използваните от маршрутизиращите протоколи мерниединици са:• Hop count (брой преходи). Това е най-разпространената мернаединица. Тя измерва броя маршрутизатори през които преминаватпакетите от мрежата източник до мрежата получател.Стр.39Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Delay (закъснение). Тази единица измерва времето необходимо запридвижване на пакет от мрежата източник до мрежата получател.Факторите определящи закъснението могат да включватпропускателна способност, броя заявки обслужвани от всекимаршрутизатор, мрежови задръствания и разстоянието между дветемрежи.• Bandwidth (пропускателна способност). Тази единица измерваналичния капацитет на мрежовата връзка. Примерно 10Mbps Ethernetвръзката е за предпочитане пред 64К връзка.• Reliability (надеждност). Тази единица осигурява оценка нанадеждността на мрежовите връзки. Някои връзки излизат от строяпо-често, отколкото други, така че се предпочитат по-надежднитевръзки. Друг параметър на надеждността е времето необходимо завъзстановяване на повредена връзка.• Communication cost (цена на комуникацията). Понякога доставянетона информация за най-краткото възможно време не е основната цел.Често целта е минимизиране цената на мрежовия транспорт.Различните маршрутизиращи протоколи, използват различни мерниединици. Някои от тях позволяват да се използват комбинации от мерниединици и да се задават различни нива на значимост за всяка мерна единица,така че да се намери оптималния маршрут.Административна дистанция. Използва се от маршрутизаторитекогато са налични повече от един път до дадена мрежа научени по различнипротоколи и следователно използващи различни метрики. В този смисъладминистративната дистанция дефинира надеждността на маршрутизиращияпротокол. Всеки протокол притежава административна дистанция. Колкотопо малка е нейната стойност толкова по предпочитан е даден маршрут.Статичните пътища по подразбиране имат административна дистанция 1.Автономни системиАвтономните системи (AS) представляват група от IP мрежи имаршрутизатори под контрола на една или няколко организации придържащисе към единни ясно дефинирани правила за маршрутизиране в Интернет(RFC-1930). Обикновено организациите които контролират AS садоставчиците на Интернет услуги (ISP). Всяка автономна област притежавауникален AS номер, който се отпуска от организацията IANA. Автономнитеобласти се разделят на три групи:• Multihomed AS – това са автономни система, които има връзка къмповече от един доставчика (ISP). По този начин автономната системаостава свързана дори при напълно отпадане на някой отдоставчиците.• Stub AS – това са автономни системи, поддържащи връзка към единединствен доставчик (ISP).Стр.40Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Transit AS – този тип автономни системи осигуряват връзка междумрежи свързани към тях. Доставчиците на Интернет услуги (ISP) савинаги автономни системи от този тип.В рамките на автономните системи се използват т.нар. интериорнимаршрутизиращи протоколи (Interior Gateway Protocol – IGP). Този типпротоколи се разделя на дистанционно-векторни и протоколи със следене навръзката. За маршрутизиране между автономните системи се използват т.нар.екстериорни маршрутизиращи протоколи пример за които е протоколътBorder Gateway Protocol – BGP.Интериорни маршрутизиращи протоколиСъществуват два основни метода за конфигурирането на единмаршрутизатор и въвеждането на необходимата информация вмаршрутизиращата му таблица – статично и динамично:Статично маршрутизиране – изисква ръчно конфигуриране на всичкипътища в мрежата. Работи най-добре в малки мрежи със сравнителнопостоянна топология. Ако в мрежата възникне промяна, това налага ръчнореконфигуриране Ако такова не бъде извършено, маршрутизирането няма дабъде коректно. Ако е приложено статично маршрутизиране и маршрутизаторизлезе от строя, мрежата трябва да се реконфигурира ръчно, така че дазаобиколи отпадналия мрежови сегмент. В големи мрежи статичните пътищасе използват предимно за повишаване на сигурността – като резервнипътища, в случай че отпадне динамично научения маршрут.Динамично маршрутизиране – използва маршрутизиращи протоколи заавтоматично построяване на маршрутизиращите таблици. При възникване напромяна в топологията свързана с отпадането на един или повече пътища,маршрутизаторите трябва да обновят своята таблица и да намеряталтернативен път за да доставят пакетите до назначението им. Това сеосъществява с използването на един от двата основни маршрутизиращиалгоритъма: дистанционно-векторен (distance-vector) и със следене навръзката (link-state). В зависимост от това кой от двата се използвамаршрутизиращите протоколи се делят на дистанционно-векторни ипротоколи със следене на връзката.Дистанционно-векторни протоколи. Най-често използват брояпреходи като мерна единица и разновидност на Belman-Ford алгоритъма заизчисляване на най-добрите пътища. Този тип протоколи са едни от найчестосрещаните, тъй като са лесни за конфигуриране. При добавянето вмрежата на нов маршрутизатор използващ дистанционно-векторен протокол,той построява и обявява своя собствена маршрутна таблица. Недостатък натози тип протоколи е, че не могат да обслужват големи мрежи, тъй като всекипакет съдържа цялата маршрутизираща таблица. Това може да доведе донатоварване на мрежовия трафик само с маршрутна информация.Информацията се разпространява само до съседните маршрутизаториСтр.41Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи(намиращи се в същия физически сегмент), което е причина за много побавнатаим конвергенция (това е времето необходимо на мрежата да сеприспособи към промяната в топологията и да се преизчислятмаршрутизиращите таблици). По-време на конвергенциятамаршрутизирането е некоректно, възможна загуба на пакети както иразпространяване на невярна информация, поради което е необходимо товавреме да е минимално.Най-типичния пример за дистанционно-векторен маршрутизиращпротокол е RIP протокола. Този протокол използва броя преходи катометрика (максималния брой е 15). Новата информация се обменя само междусъседните маршрутизатори. При RIPv1 (RFC-1058) информацията серазпространява чрез broadcast пакети. Структурата на заглавната част епоказана на фигура 2.Табл.1: Заглавна част на RIP пакетите.RIP packet headerCommand (1) Version (1) Must be zero (2)Address family identifier (2) Must be zero (2)IP address (4)Must be zero (4)Must be zero (4)Metric (4)В по-новата му версия RIPv2 (RFC-2453) вече се използва multicast адрес(224.0.0.9). Добавена е и поддръжка на (Variable Length Subnet Masking –VLSM) като по този начин се позволява по-добро оползотворяване наадресното пространство. Добавена е поддържа на автентификация,първоначално чрез предаване на ключ в чист вид, а по-късно и криптиран –MD5. Има възможност за балансирано натоварване в случай на повечепътища с най-добра метрика. Използва се циклично обхождане на пътищата вмаршрутизиращата таблица. Поради избора на метриката, балансиранотонатоварване не винаги е ефикасно. Версията на протокола RIPng (RFC-2080)представлява разширение на оригиналния протокол за поддръжка на IPv6.Други примери за дистанционно-векторни протоколи са IGRP и подобренатаму версия EIGRP, които са фирмени протоколи и няма да бъдат разглеждани.Протоколи със следене на връзката. Носят маршрутната информациядо всички възли в мрежата. Тази маршрутна информация съдържа самомаршрутите до директно свързаните мрежи. Дори когато тази информация сеизпраща до всички маршрутизатори в мрежата, техния намален размер водидо по-ефикасен обмен на данни. Тези протоколи могат да използват multicastили unicast адресиране, което редуцира цялостния мрежови трафик. Всекимаршрутизатор съхранява най-добрия маршрут до мрежа с определено ID.Това води до намаляване на конвергенцията, когато даден маршрутизаторили мрежови сегмент излезе от строя. Единственият недостатък на тезипротоколи, е че те изискват много повече планиране, конфигуриране, паметСтр.42Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипроцесорна мощ. Всеки маршрутизатор разполага с пълната топология намрежата и на базата на нея посредством разновидност на алгоритъма наDijkstra (Short Path First – SPF) изчислява най-кратките пътища до всеки един.Този тип протоколи са значително по-мащабируеми и могат да бъдатизползвани в големи мрежи. Примери за протоколи със следене на връзкатаса OSPF (RFC-2328) и IS-IS.Табл.2: Заглавната част на OSPF пакетите.OSPF packet headerVersion (1) Type Message LengthSource Router IP AddressArea IDChecksumAuthentication TypeAuthentication Octets (0-3)Authentication Octets (4-7)При първоначалното пускане на OSPF протокола, мрежата се наводняваот т.нар. LSA пакети за да може всеки маршрутизатор да научи за цялостнататопология, която се съхранява в база данни идентична за всичкимаршрутизатори в мрежата. На следващата стъпка се изпълнява SPFалгоритъма за построяване на дърво, което съдържа най-кратките пътища довсяка мрежа. Използва се цена като метрика. След тази фаза се обменятпакети само при промяна на състоянието на някоя от връзките. За откриванена такива промени се поддържа съседство между маршрутизаторитепосредством обмяната на кратки – ‘hello’ съобщения, с използването наmulticast адреси.Маршрутизиращи протоколи за мобилни ad-hoc мрежи (MANET)Динамичната природа на мобилните разпределени мрежи води до честа инепредсказуема промяна на мрежовата топология което затруднява иусложнява маршрутизирането. Маршрутизиращите протоколи трябва даотговарят на редица изисквания:• Да поддържат разумно малки маршрутизиращи таблици;• Да могат да избират най-добрия път (това може да е най-бързия, найнадеждния,с най-висока пропускателна способност, илиикономически най-изгодния);• Да обновяват таблицата си в случай на изключване, преместване иливключване на нов възел в мрежата;• Да изискват малко количество обменени съобщения и кратко времеза конвергенция.Съществуващите маршрутизиращи протоколи за мобилни разпределенимрежи се разделят в няколко категории в зависимост от алгоритмите запострояване на маршрутизиращите си таблици и специфичните изисквания:проактивни (table-driven), реактивни (on-demand), хибридни, йерархични,Стр.43Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системигеографски, за минимална изразходвана мощност (power-aware), multicast,географски multicast (geocasting) и други.Проактивни (table-driven). Проактивните маршрутизиращи протоколиподдържат информация за пътищата между кои да е две станции в мрежата.Тъй като тази информация обикновено се пази в таблици те се наричат ощеtable-driven протоколи. Предимството на проактивните маршрутизиращипротоколи е минималното времето за използване на маршрута, тъй като той еналичен и може да се използва веднага. Недостатък е необходимостта отподдържане на таблици, което изисква мобилните устройства да имат поголямкапацитет от памет, да обменят често маршрутизиращи съобщениякоето не позволява преминаването им в енергийно спестяващ режим.Подходящи са в случаите когато се цели качество на услугата (QoS). Къмпроактивните протоколи принадлежат Destination-Sequenced Distance-Vector(DSDV), Wireless Routing Protocol (WRP), Optimized Link State Routing(OLSR), Cluster-head Gateway Switch Routing (CGSR), Topology broadcastreverse path forwarding (TBRPF) и други.Реактивни (on-demand). Реактивните маршрутизиращи протоколиизграждат път между два възела само при нужда от комуникация между тях.Обикновено това се осъществява посредством процедура за откриване на новпът инициирана от източника на информацията използваща механизма нанаводняването (flooding). Веднъж открит, маршрута се пази докато е наличени докато се използва. След определен период без да бъде използван той сеотстранява и при следваща необходимост се търси наново. Основния имнедостатък е свързан с времето необходимо за първоначално откриване напът. Характеризират се с минимални изисквания към ресурсите на мобилнитеустройства. Няма изискване за поддържане на свързаност със съседнитеустройства което позволява преминаването в енергийно спестяващ режим.Към този тип протоколи спадат: Ad-hoc On-demand Distance Vector (AODV),Dynamic Source Routing (DSR) (фигура 4), Temporary Ordered RoutingAlgorithm (TORA), Associativity-based Routing (ABR), Location-aided Routing(LAR), Ant-colony-based Routing Algorithm (ARA), Flow Oriented RoutingProtocol (FORP), Cluster-based Routing Protocol (CBRP) и други.Фиг.2. Механизъм за откриване на маршрут при DSRХибридни. Този тип протоколи имат за цел да спечелят от предимстватана другите двата, използвайки както реактивен така и проактивен подход.Стр.44Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиОколо всяка станция се формира зона вътре в която се използва проактивномаршрутизиране, а за всяко съобщение към станция извън зоната наизточника се прилага реактивно маршрутизиране. Типичен представител натози клас е Zone Routing Protocol (ZRP) (фигура 5).Фиг.3. Маршрутизираща зона с радиус 2Йерархични. При този тип протоколи се поддържа йерархичност.Обикновено мрежата се разделя на клъстери и за всеки клъстер се избираглавен възел през който ще се осъществява комуникацията с останалитеклъстери. Примери за йерархични протоколи са: Cluster Based RoutingProtocol (CBRP), Global State Routing (GSR), Fisheye State Routing (FSR),Hierarchical State Routing (HSR) и други.Географски. При този тип протоколи е известна зоната в която се намираадресата на съобщението. Използва се оптимизиран вариант на механизма нанаводнението (flooding) (фигура 6). Първият е с дефинирането на зона нанаводнението. При него даден възел препредава получено съобщение самоако се намира в зоната на наводнение. За целта се разчита на това всякастанция да е способна да определи своето географско местоположениепосредством GPS устройство. При втория подход всяка станция препредаваполучено съобщение само ако се намира по-близо да получателя от текущата.Примери за географски протоколи са: Location-Aided Routing protocol (LAR),Distance routing effect algorithm for mobility (DREAM), Greedy PerimeterStateless Routing (GPSR) и други.Фиг.4. Две схеми за избор на зона на наводнение при LAR протокола.Стр.45Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиКонфигуриране на Linux станция за работа като маршрутизаторЗа да може една машина с инсталирана дистрибуция на OS Linux да сеизползва като маршрутизатор тя трябва да разполага с поне два физическимрежови интерфейса. Те трябва да бъдат правилно конфигурирани, да бъдатдобавени съответните пътища в маршрутизиращата таблица и да бъдеразрешено маршрутизирането. Следващите редове демонстрират поредицатаот команди за изпълнение на тези задачи.# конфигуриране на интерфейсите на маршрутизатора$ ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast192.168.0.255$ ifconfig eth1 172.16.0.1 netmask 255.255.0.0 broadcast172.16.255.255# добавяне на двете мрежи в таблицата на маршрутизатора$ route add –net 192.168.0.0$ route add –net 172.16.0.0# може да се използва и следната команда като се опише за всеки# хост в мрежата)$ route add –host 192.168.0.X dev eth0# добавяне на път по подразбиране$ route add default gw 192.168.0.1# проверка дали е разрешено маршрутизирането.$ cat /proc/sys/net/ipv4/ip_forward# ако горният ред върне стойност ‘1’ следователно маршрутизирането# е разрешено в противен случай трябва да се изпълни командата$echo 1 > /proc/sys/net/ipv4/ip_forwardПроверка на маршрутизиранетоifconfig – Команда, която служи за настройка и проверка на настройкитена мрежовите интерфейси.USAGE:ifconfig [-a] [-i] [-v] [-s] [[] ][add [/]][del [/]][[-]broadcast []] [[-]pointopoint []][netmask ] [dstaddr ] [tunnel ][outfill ] [keepalive ][hw ] [metric ] [mtu ][[-]trailers] [[-]arp] [[-]allmulti][mem_start ] [io_addr ] [irq ] [media ][txqueuelen ][[-]dynamic][up|down] ...traceroute – Команда, която служи за проследяване на маршрута презкойто се минава, за достигане до даден IP адрес.Стр.46Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиUSAGE:traceroute [-dFInrvx] [-g gateway] [-i iface] [-f first_ttl][-m max_ttl] [ -p port] [-q nqueries] [-s src_addr] [-t tos][-w waittime] [-z pausemsecs] host [packetlen]netstat (route) – netstat е полезен инструмент за проверка наконфигурацията и работата на мрежата. Всъщност, това са няколкоинструмента събрани заедно. Когато стартираме netstat с флага –r, ще бъдеотпечатана таблицата с маршрути в ядрото по начин аналогичен накомандата route (таблица 1).Табл.3: Примерна маршрутизираща таблица.Destination Gateway Genmask Flags MSS Window irtt Iface172.16.2.0 172.16.1.1 255.255.255.0 UG 40 0 0 eth1172.16.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 loОпцията –n указва на netstat да отпечатва адресите като IP номера вдесетично-точков формат, вместо да използва символните имена на хостове имрежи. Втората колона от резултата от netstat показва шлюза, към койтосочи маршрута. Ако не се използва шлюз се извежда звезда. Третата колонапоказва мрежовата маска за този маршрут. Когато е даден IP адрес, за койтосе търси подходящ маршрут, ядрото преминава през всеки от записите втаблицата с маршрути, като извършва побитово AND на адреса и маската,преди да го сравни с целта на маршрута. Четвъртата колона отпечатваследните флагове, които описват маршрута:G – Маршрута използва шлюз.U – Интерфейсът, които ще се използва е активен (up).H – През този маршрут може да се достигне само един хост.D – Този маршрут е създаден динамично.M – Записът е модифициран от ICMP съобщение за пренасочване.! – Маршрутът е отхвърлящ и дейтаграмите ще бъдат игнорирани.Задачи за изпълнение1. Запознаване с видовете маршрутизиращи протоколи – приложение,предимствата и недостатъци.2. Да се конфигурира Linux станция като маршрутизатор като сеизползва схемата дадена на фигура 7. Интерфейса намаршрутизатора включен към мрежата на университета да секонфигурира чрез DHCP. За вътрешната мрежа да се използва IPмрежата 192.168.0.0.3. Запознаване с командите: tracert (traceroute), ifconfig (ipconfig), netstat(route) и тяхното действие.Стр.47Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи4. Да се проследи маршрута до отдалечена станция чрез tracert(traceroute). Пример: www.google.com, www.microsoft.com, и т.н.5. Да се наблюдават маршрутната таблица и статистиките на локална имаршрутизираща станция с командата netstat и ключове: “-nr”, “-spIP”.Фиг.5. Схема на опитната постановкаЗа допълнителна подготовка• Tanenbaum, Andrew, “Computer Networks, Fourth Edition”, PrenticeHall 2003, ISBN: 0-13-066102-3.• Basagni, S., Conti, M., Giordano, S., Stojmenovic, I. “Mobile Ad HocNetworking”, IEEE Press 2004, ISBN: 0-471-37313-3.• RFC документите могат да бъдат намерени на адрес: http://www.rfceditor.org/rfc.html• Ръководства за конфигуриране на Linux станция като маршрутизаторса достъпни на адрес: http://tldp.org/HOWTO/HOWTO-INDEX/networking.html• Internet Assigned Numbers Authority (IANA): http://www.iana.org/• Internet Engineering Task Force (IETF): http://www.ietf.org/Стр.48Мрежов слой. Маршрутизиране в Интернет.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиМРЕЖОВ СЛОЙ. ТРАНСЛИРАНЕ НА АДРЕСИ (NAT) И ЗАЩИТНИ СТЕНИ(FIREWALLS).Наред с конфигурирането на устройствата в мрежата и настройването намаршрутизирането между тях съществуват още две важни изисквания къмконфигурирането на мрежовия слой – транслиране на мрежовите адреси(NAT) и изграждане на сигурни и защитени мрежи посредствомконфигурирането на защитни стени (Firewalls). Именно те са обект наразглеждане на настоящето упражнение.Транслиране на адреси (NAT)В самата зора на Интернет, когато е бил проектиран протокола IPv4авторите му не са имали дори приблизителна представа за мащаба, в койтоще се развие световната мрежа и съответно нуждата от IP адреси. Следпоследвалото бързо разпространение определените за целта 32 битови адресимного бързо започнали да се изчерпват и скоро станало ясно, че трябва да сенамери бързо решение на проблема, който заплашвал да ограничиразпространението на Интернет. Сред възможните решения били:проектиране на нова версия на протокола поддържаща по-голяма адресация(IPv6), това решение изисквало време; друго решение било да се премине къмбезкласово маршрутизиране, което да позволи по пълноценно използване насъществуващите адреси. По-голяма част от мрежите от клас А и B обаче вечебили раздадени; третата възможност, която ще бъде разгледана в следващитередове била да се използват частни IP адреси и транслиране на адресите(NAT) [RFC 3022].Резервирани били част от останалите нераздадени адреси, т.н. частниадреси [RFC1918], които нямало да бъдат маршрутизирани от гръбначнитемаршрутизатори, а ще бъдат използвани само за локални мрежи. По тозиначин на всяка организация ще бъде отпускан един (или поне ограниченброй) реален IP адрес за Интернет трафик. В рамките на мрежата наорганизацията всеки компютър има уникален адрес , който се използва завътрешно маршрутизиране. Когато даден пакет трябва да напусне мрежата наорганизацията, преди да бъде подаден към мрежата на доставчика наИнтернет (ISP) се извършва транслиране на адреса.Механизмът на работа на NAT е показан на фигура 1. В рамките навътрешната мрежа всеки компютър има уникален адрес от вида 10.x.y.z.Когато пакет напуска мрежата на организацията той преминава през машинаизвършваща транслиране на адреси. Там частния IP адрес на източника(10.0.0.1) се заменя с реалния IP адрес отпуснат на организацията(198.60.42.12). Обикновено машината която извършва транслиране наадресите се комбинира заедно със защитна стена (firewall), а доста често товае и машината която извършва маршрутизирането навън.Стр.49Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.1. Примерна конфигурация и механизъм на работа на NATСлед като бе разгледано как пакета се пуска навън следва да се разгледакак се получава отговорът. След транслирането на адреса отговорът ще сеполучи не от истинския адресант, а от машината с IP адрес 198.60.42.12.Приетото решение на проблема е да се използва номерата за порт наизточника. Всеки TCP или UDP пакет съдържа в себе си две 16 битови числауказващи номерата на портовете на източника и получателя. Машината коятоизвършва NAT поддържа таблица с размер 65,536 реда, в която записвадвойката (source IP, source port) за всеки изходящ пакет. След това сеизвършва замяна както на IP адреса така и на оригиналния порт номер наизточника и пакета се пуска навън. Когато се получи отговора, порт номерана получателя ще се използва като индекс в NAT таблицата за да се извлечеIP адреса и порт номера на компютъра от вътрешната мрежа до който епредназначен този отговор.Едно друго приложение на транслирането на адреси, което е открито впоследствие е свързано с факта, че NAT скрива структурата на вътрешнатамрежа и по този начин може да се използва за повишаване на сигурността.Въпреки, че NAT успява да намали натиска свързан с изразходването наIP адресите, това не е идеално решение и крие редица проблеми инедостатъци. Най-важните от тях са:• Първо, транслирането на адреси нарушава архитектурния модел наIP, според който всеки IP адрес уникално идентифицира еднаединствена машина в Интернет. Цялата софтуерна структура наИнтернет се крепи на този факт. Посредством NAT, хиляди машинимогат да използват адреса 10.0.0.1.• Второ, NAT променя Интернет от безвръзково-ориентирана мрежа ведин вид връзко-ориентирана. Проблема е свързан с това, че NATподдържа информация за съответствието за всяка връзка преминалапрез него. Ако се получи срив в NAT машината, всички TCP връзкище бъдат разрушени.• Трето, NAT нарушава най-фундаменталното правило за разделянетона отделните слоеве. По този начин ако по-късно излезе нова версияна TCP която използва 32 битови номера на портове или бъдеСтр.50Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиизползван друг транспортен протокол, транслирането ще пропадне.• Четвърто, някои приложения включват IP адресите в тялото натекста. Получателя извлича тези адреси и ги използва. Тъй като NATняма никакви знания за съдържанието на пакетите не може да гизамени и всякакъв опит за връзка с отдалечения сайт ще пропадне.FTP е пример за такъв протокол и освен ако не се взематдопълнителни мерки няма да работи заедно с NAT.• И последно, тъй като порт номерата са 16 битови, то най-много65,536 машини могат да бъдат скрити зад един IP адрес. Реално те сапо-малко тъй като част от порт номерата са резервирани. Решение натози проблем все пак е използването на повече от един реални IPадреси.Повече информация за проблемите свързани с NAT може да бъденамерена в документа [RFC 2993].Защитни стени (Firewalls)Възможността да свържете кои да е два компютъра независимо от товакъде се намират носи много предимства, но крие и много рискове.Забавление за хората сърфиращи в Интернет от домашните си компютри,това може да бъде истински кошмар за корпоративните администраториотговарящи за сигурността. Повечето компании имат огромно количествоконфиденциална информация, изтичането на която до конкурентна компанияби имала пагубни последици.В допълнение към опасността от изтичане на информация, съществува иопасността от вливането на зловредна такава във вътрешната мрежа – вируси,червеи, троянски коне и други могат да нарушат сигурността, да унищожатценни данни и да отнемат значително време на администраторите за давъзстановят системата.Необходимо е решение, което да осигури защита на вътрешната мрежа отбезбройните опасности които крие Интернет. Такова решение представляватЗащитните стени (Firewalls) (фигура 2).Терминът ‘Защитна стена’ (Firewall) е много обширно понятие, коетовключва механизми за предпазване на различни слоеве от OSI модела. Внастоящето упражнение акцентът пада върху защитни стени на мрежовияслой (network layer firewall). Този тип защитни стени работят като пакетнифилтри вземащи решение кои пакети могат да преминат през тях на база наконфигурирани от администратора правила. Тези правила могат да използватинформацията от IP хедъра както и номерата на портовете. Предимство предзащитните стени от по-горните слоеве е, че работят много бързо и прозрачноза потребителите.Стр.51Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.2. Пример за защитна стена състояща се от два пакетни филтъра.Основно защитните стени на мрежовия слой се делят на две категории:със запазване на състоянието (stateful firewall) и без запазване на състоянието(stateless firewall). Stateful защитните стени използват информацията засъстоянието на връзката (established, initiation, handshaking, data, breakingdown the connection) като част от техните правила. Примерно само хостове отвътрешната мрежа да могат да установяват нова връзка на даден порт.Stateless защитните стени извършват филтрирането на пакети без значение отсъстоянието на връзката. Това ги прави по-малко защитени.Не е необходимо да имате сложна, специално посветена машина зазащитна стена. Всеки нормален компютър на който работи операционнасистема поддържаща филтриране на пакети и маршрутизиране може да бъдеизползвана за защитна стена на мрежовия слой. Подходящи операционнисистеми са Linux, Solaris, BSD/Unix или Windows Server.Съществуват две основни политики при конфигурирането на защитнастена. Първата е по-защитна и при нея всички пакети които не отговарят нанито едно правило се филтрират/блокират. При втората политика, поподразбиране всеки пакет се пуска освен ако не изпълни някое от защитнитефилтриращи правила.Демилитаризирани зони (DMZ)В компютърните мрежи, с термина демилитаризирана зона (DMZ) сеозначава област от мрежата (subnetwork), която е разположена междувътрешната мрежа на организацията и Интернет. Достъп додемилитаризираната зона е разрешен както от вътрешната така и от външнатамрежа, но от демилитаризираната зона връзки могат да бъдат изгражданисамо навън. Това позволява в DMZ мрежата да бъдат поставяни хостовепредоставящи услуги в Интернет като същевременно се защити вътрешнатамрежа в случай на компрометиране на някои от сървърите в DMZ.Демилитаризираната зона обикновено се използва за сървъри, които трябвада бъдат достижими отвън: e-mail, Web, DNS и други. Обикновено връзкитеСтр.52Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиот външната мрежа към DMZ се контролират чрез транслиране на адреси ипортове (NAT).Фиг.3. Топология на мрежа с демилитаризирана зона (DMZ).Най-лесния начин за създаване на демилитаризирана зона е чрезконфигуриране на защитната стена (firewall) така, че отделните мрежи сесвързват към различни нейни портове. Този вариант е подходящ за мрежикоито нямат много строги изисквания към сигурността. В противен случай епрепоръчително да се използва подхода с две защитни стени (firewalls) катоDMZ зоната се намира по средата и е свързана и с двата защитнимаршрутизатора (фигура 3). По този начин се избягва възможността заинцидентно погрешно конфигуриране на защитната стена, както иустойчивост в случай на пробив във външната защитна стена.Конфигуриране на ОС Linux в режим на защитна стенаNetfilter – Представлява рамка (framework) за достъп до пакетите извънстандартния сокет интерфейс на Berkeley. Състои се от няколко части:• Всеки протокол дефинира т.нар. "hooks", с които се осъществявадостъп до предварително дефинирани точки в пътя на пакета попротоколния стек. Във всяка от тези точки протоколът ще извикафункция от netfilter рамката с номер на пакет и hook номер.Обикновено се реализират като отделни модули които се зареждаткъм ядрото (Loadable Kernel Modules).• Части от ядрото може да се регистрират да слушат за различнитеСтр.53Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиточки за достъп за различните протоколи. По този начин след като се„улови” пакет се проверява дали има някой регистрирал се за тазиточка и протокол. Ако има такива на всеки му се дава шанс дапрегледа и евентуално промени пакета и след това да вземе решениеда: блокира пакета (NF_DROP); да го пропусне към следващия(NF_ACCEPT); или направо към края (NF_STOLEN); да го буферирав потребителското пространство (NF_QUEUE).• Пакетите буферирани в потребителското пространство се събират отдрайвера ip_queue и се изпращат до потребителски процес, където сеобработват асинхронно.Iptables – Представлява потребителски инструмент използван отадминистраторите за дефиниране на правила за филтриране на пакети итранслиране на адреси. В практиката често под името iptables се разбирацялата инфраструктура включваща netfilter, следена на връзките, транслиранена адресите и самия инструмент.Netfilter/Iptables инфраструктурата позволява на администраторите дадефинират правила прилагани върху преминаващите през защитната стенапакети. Тези правила се групират във вериги (chains) – всяка веригапредставлява подреден списък от правила. Веригите се групират в таблици –всяка таблица е свързана с различен вид обработка над пакетите.Всяко правило дефинира условие и цел. Целта се прилага върху всичкипакети които изпълняват условието. Всеки пакет преминава през поне еднаверига и се сравнява последователно с всяко от правилата във веригата. Акосе получи съвпадение обхождането на веригата спира и се прилагасъответното правило. Ако пакета не изпълни нито едно условие тогава сеприлага подразбиращата се политика на веригата. Целта на някое правило отверигата може да бъде нова верига. В този случай пакета ще продължи да сесравнява с правилата на първата верига ако премине през втората верига безсъвпадение. Не съществува ограничение за влагането на веригите една вдруга. Съществуват три основни вериги (INPUT, OUTPUT и FORWARD), нопотребителя може да създава неограничен брой нови вериги.Веригите се обединяват в таблици. Съществуват три вградени таблици(FILTER, NAT и MANGLE), всяка от който съдържа някои предефиниранивериги. Също както при веригите потребителите могат да създават новитаблици. Администраторът може да създава и премахва потребителскисъздадени вериги във всяка таблица. Първоначално всички вериги са празни.Пътят на пакетите през отделните таблици е илюстриран на фигура 4.Filter table – тази таблица се използва за филтриране на пакетите(блокиране или разрешаване). Всеки пакет преминава през тази таблица, катозадължително преминава през една от следните предефинирани вериги:• INPUT – всички пакети предназначени за защитната стенапреминават през тази верига (фигура 4), затова понякога се наричаоще LOCAL_INPUT.Стр.54Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.4. Поток на пакетите в Netfilter/IPTABLES• OUTPUT – всички пакети произлизащи от защитната стенапреминават през тази верига. Аналогично понякога се нарича още(LOCAL_OUTPUT).• FORWARD – всички преминаващи през защитната стена пакети(такива които се маршрутизират) преминават през тази верига.Nat table – използва се за правила за промяна на адресите и портномерата на пакетите (транслиране на адреси). През тази верига винагипреминава първия пакет на всяка нова връзка. В зависимост от взетоторешение се следващите пакети ще преминават или няма да преминаватотново през тази таблица. Съдържа следните предефинирани вериги:• PREROUTING – входящите пакети преминават през тази веригапреди да се вземе решение за маршрутизирането им. Тук сеосъществява т.нар. DNAT (транслиране на адреса на получателя).• POSTROUTING – изходящите пакети преминават през тази веригаслед като е взето решението за маршрутизирането им. Тук сеосъществява т.нар. SNAT (транслиране адреса на източника).• OUTPUT – тук се осъществява ограничен DNAT над локалноСтр.55Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системигенерираните пакети.Mangle table – използва се за промяна на допълнителните полета в хедърана пакета. Всички пакети преминават през тази таблица. Порадиспецифичните и задачи съдържа всички възможни предефинирани вериги:• PREROUTING – всички пакети влизащи в системата (фигура 4).• INPUT – всички пакети предназначени за системата.• FORWARD – всички пакети преминаващи през системата.• OUTPUT – всички пакети произлизащи от системата.• POSTROUTING – всички пакети напускащи системата.Всяко правило си има цел. Целта може да бъде потребителска верига илинякоя от предефинираните цели:ACCEPT – тази цел указва на netfilter да приеме пакета. В зависимост отверигата това може да означава различни действия над пакета. Примернопакет приет от INPUT веригата се позволява да бъде получен от хоста, напакет приет от OUTPUT веригата се разрешава да напусне хоста, на пакетприет от FORWARD веригата му се разрешава да бъде маршрутизиран.DROP – тази цел указва на netfilter да блокира пакета и да не го обработваповече. На източника не се изпраща никакъв отговор и за него блокиранетосе изразява в изтичането на комуникационния таймаут.Съществуват много допълнителни цели повече за които може да сепрочете от ръководството за iptables – QUEUE, RETURN, REJECT, LOG,ULOG, DNAT, SNAT, MASQUERADE. От тях по-интересна е последната:MASQUERADE – това е специална, ограничена форма на SNAT замрежи, чиито външен IP адрес е динамичен (често срещано условие). В тозислучай вместо да се сменя SNAT правилото при смяна на адреса се използваавтоматично адреса на изходящия интерфейс при транслирането на адресите.Следене на състоянието на връзкитеЕдна важна възможност изградена върху netfilter рамката е следенето насъстоянието на връзката. Тя позволява на ядрото на системата да пази следаза всички логически мрежови връзки и сесии и да определя пакетите от коитосе състои една връзка. NAT използва тази информация за да транслиравсички пакети от една връзка по същия начин. IPTABLES може да използватази информация за изграждане на stateful защитни стени.Следенето на състоянието на връзката класифицира всеки пакет към едноот следните четири състояния: NEW (опит за изграждане на нова връзка),ESTABLISHED (част от вече изградена връзка), RELATED (свързан, но незадължително част от същата връзка) и INVALID (не е част от съществуваща,нито заявка за нова връзка). Нормално първия пакет ще бъде класифициранкато NEW, отговорът като ESTABLISHED и ICMP съобщение катоRELATED. ICMP съобщение което не се отнася за някоя от съществуващитеСтр.56Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системивръзки ще бъде класифицирано като INVALID.Чрез включването на допълнителни модули статута на връзката може дасе пренесе до приложно ниво като по този начин едно приложение може даразбира че две връзки са зависими. Примерно FTP протоколът установявапървоначално контролна връзка и след това данните се предават по отделнавръзка. Когато е включен модула ip_conntrack_ftp, пакетите по връзката заданни ще бъдат класифицирани като RELATED вместо NEW.Инструментът iptables също може да извлича полза от знанието засъстоянието на връзката за съставяне на по-гъвкави и по-мощни правила зафилтриране. Примерно правило може да разрешава пакети в състояние NEWсамо от вътрешната мрежа, но пакети в състояние RELATED иESTABLISHED в двете посоки. По този начин не се позволява изгражданетона нови връзки отвън. Това обаче няма да попречи на изграждането на новаFTP връзка за данни, тъй като тя ще бъде класифицирана като RELATEDспрямо съществуваща контролна връзка.По-долу е показан формата на командата IPTABLES. За пълен списък отвъзможните опции към командата използвайте ръководството за iptables.NAMEiptables - administration tool for IPv4 packet filteringand NATSYNOPSISiptables [-t table] -[ADC] chain rule-specification[options]iptables [-t table] -I chain [rulenum] rule-specification[options]iptables [-t table] -R chain rulenum rule-specification[options]iptables [-t table] -D chain rulenum [options]iptables [-t table] -[LFZ] [chain] [options]iptables [-t table] -N chainiptables [-t table] -X [chain]iptables [-t table] -P chain target [options]iptables [-t table] -E old-chain-name new-chain-nameПримерни конфигурации:Пример1: Правило блокиращо всички заявки за изграждане на нова връзкаотвън.# iptables -N block# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT# iptables -A block -j DROP## Jump to that chain from INPUT and FORWARD chains.# iptables -A INPUT -j block# iptables -A FORWARD -j blockПример2: Правило блокиращо всички ICMP съобщения от дадена мрежа.# iptables -A INPUT --src 192.168.2.0 /24 -p icmp -j DROPСтр.57Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиЗадачи:1. Дайте поне по една причина, поради която е необходимо да сенастрои защитната стена да проверява входящия и изходящиятрафик. В кои случаи това ще бъде ефикасно и в кои няма да бъде?17. Избройте няколко причини защо е необходимо да сеизползва транслиране на адреси (NAT).18. Изброите част от недостатъците породени от използванетона NAT.19. Какво представлява демилитаризираната зона и по колкоразлични начина може да бъде конфигурирана.20. С помощта на инструментът IPTABLES и опитнатапостановка от фигура 5, конфигурирайте защитна стена така че да себлокират ICMP съобщенията от всички хостове във вътрешнатамрежа без един. Направете проверка за коректността на резултатът.21. Да се изпълни условието на задача 5 като се използвавградения в Windows XP firewall.22. С помощта на инструментът IPTABLES и опитнатапостановка от фигура 5, конфигурирайте транслиране на адресите нахостовете от вътрешната мрежа да използват външния IP адрес намаршрутизатора.23. Направете проучване какви други решения за конфигуриранена защитни стени съществуват.За допълнителна подготовка:Фиг.5. Схема на опитната постановка• Tanenbaum, Andrew, “Computer Networks, Fourth Edition”, PrenticeHall 2003, ISBN: 0-13-066102-3.• RFC документите могат да бъдат намерени на адрес: http://www.rfc-Стр.58Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиeditor.org/• Ръководства за използването на iptables могат да бъдат намерени наадрес: http://www.netfilter.org/documentation/• Ръководства за конфигуриране на Linux като защитна стена садостъпни на адрес: http://www.tldp.org/howto/Firewall-HOWTO.htmlСтр.59Мрежов слой. Транслиране на адреси (NAT) и защитни стени (Firewalls).


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиИЗСЛЕДВАНЕ НА ТРАНСПОРТНИЯ СЛОЙ. СЛЕДЕНЕ НА ТРАФИКА.Транспортен слой (Transport Layer)Осигурява пренасянето на съобщения от източника до приемника.Управлява обмена на данни и осъществява връзка от тип “от край до край”(end-to-end). Проверява за грешки, дублиране и загуба при предаване насъобщенията. Най-важните протоколи, обслужващи транспортният слой, саTransmission Control Protocol (TCP) и User Datagram Protocol (UDP).Transmission Control Protocol (TCPОсигурява надеждно предаване на данните между предавателя (source) иприемника (destination) чрез установяване на връзка (connection-orientedprotocol). Това означава, че гарантира предаването на информацията дополучателя. TCP протокола представлява множество правила заосъществяване на надежден информационен обмен между приложнитеслоеве на два хоста.TCP сегмент.Всеки TCP сегмент е разделен на две части: заглавна част с фиксиранразмер 20 байта (пет 32-битови думи) и данни, за които максималнатадължина е 65 495 байта.. Заглавната част съдържа необходимата информацияза идентификация и контрол. На фиг. 1 е показан форматът на TCP сегмента.0 4 10 16 24 31Порт на подателяПоследователен номерНомер на потвърждениеПорт на получателяHLEN Запазени Кодове ПрозорецКонтролна сумаОпции• Порт на подателя – 2 байта.• Порт на получателя – 2 байта.Данни...Фиг.1. Формат на TCP сегмента.Показалец „спешно”Допълване• Последователен номер – 4 байта, показва мястото на данните отсегмента в рамките на изпращания поток.• Номер на потвърждение – 4 байта, съдържа следващия номер наСтр.60Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипотвърждение, което се очаква да бъде получен от подателя.• HLEN (дължина на заглавната част) – 4 бита, определя дължината назаглавната част на сегмента в 32-битови думи. То е задължително,защото определя началото на полето на данните в рамките на TCPсегмента и затова се нарича още Data Offset.• Запазени – 6 бита, запазено за бъдеща употреба.• Кодове – 6 бита, определя се целта и съдържанието на сегмента. Натаблица 1 са показани използваните флагове.• Прозорец – 16 бита, стойностна на прозореца указва на източникаколко байта могат да бъдат изпратени и съответно приети безпрепълване на входния буфер след последния потвърден номер набайт (ако е установен флаг ACK).• Контролна сума – 16 бита, изчислява се върху целия TCP сегмент,служи за проверка на данните и заглавната част на TCP.• Показалец “спешно” – 16 бита, се използва да укаже позицията напървия байт на спешните данни спрямо началото на полето данни.• Опции – не е задължително да присъстват.• Допълване – служи за допълване до 32-битова думаТабл.4: Кодове и значението им.Бит Значение ако е 1URGACKPSHRSTSYNFINИма неотложни данниИма потвърждениеЗаявка за ‘push’Реинициализиране на връзкатаСегмента е част от създаване на връзкаСегмента е част от разпадане на връзкаСъздаване на TCP връзка.За създаване на TCP връзка между две приложни програми, които сеизпълняват на два различни хоста се използва връзка от тип “от край докрай”. Данните, обменяни между приложните програми по протокола TCP, сеобслужват като поток от байтове (byte stream service). Обменът наинформация, който осъществява TCP между двата края на връзката, сеизвършва посредством сегменти. TCP сегмента се състой от заглавна част наTCP и TCP данни При предаване TCP получава данни от сесийният слой,разделя ги на части, опакова ги заедно с адреса на приемника в сегменти и гиСтр.61Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиизпраща на IP протокола. Той от своя страна опакова сегментите вдейтаграми и извършва маршрутизирането на всяка дейтаграма. Приприемането IP протоколът разопакова пристигналите дейтаграми, след коетопредава получените сегменти на TCP протокола, който сглобява и подреждаданните от сегментите в съобщения към по-горните слоеве.Всеки край на TCP връзката се идентифицира с IP адреса на съответнияхост и с номер на порт, който се определя от съответната приложна програма,използваща тази връзка. Комбинацията от адреса на хоста и номера на портасе нарича гнездо(socket). Всеки TCP сегмент съдържа номерата на портоветена източника и на приемника, така се определя за коя приложна програма епредназначен съответният сегмент. Комбинацията от гнездото на източника игнездото на приемника е уникална и идентифицира TCP връзката. Товапозволява едно гнездо да се използва едновременно от няколко TCP връзки.Съответствието между номера на порт и приложна програма се осъществявалокално във всеки хост.Използвани портове:- до 256 се наричат добре известни портове;- 256-1023 се използват от компаниите за продажба на приложения;- над 1023 се използват свободно.Осигуряване на надеждност при обмен на информация използвайки TCP.При първоначално отваряне на връзката между два хоста е необходимовсеки един от тях да изпрати на другият началният номер (initial sequencenumber) на байтовата последователност, която ще изпраща, и съответно даполучи потвърждение за получаване на този номер. Процедурата заустановяване на връзка се нарича Three Way Handshake, в нормалния случайе следната:• Хостът, който отваря връзката, изпраща SYN сегмент. В същиятсегмент клиентът задава номера на порта на сървъра, с който щеосъществява връзка и началният номер на потока байтове, койтоклиентът ще предаде към сървъра.• Сървърът отговаря със собствен SYN сегмент, включващ началнияномер на неговия поток байтове. В сегмента се съдържа ипотвърждение ACK за SYN.• Клиентът трябва да потвърди т.е. да прати сегмент с ACK заполучаването на SYN.За затваряне на връзката се използва процедура, при коятопрекратяването на връзка става по начин, предотвратяващ загубата наинформация.Стр.62Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Хостът, който затваря връзката, изпраща FIN сегмент.• Другият потребител изпраща сегмент с потвърждение ACK и FIN.Може връзката да бъде прекратена безусловно. Тогава се установява флагRST, който в заглавната част идентифицира сегмент за прекратяване навръзката.Той се изпраща от протокола TCP, когато по връзката се получинекоректен сегмент, в който IP адреса и номерът на порта на изпращача илиполучателят не съвпадат с тези на съответната връзка.Фиг.2. „Тристранно ръкостискане”.Освен основните предимства, като следене на връзката, потвърждения,повторно предаване на изгубени сегменти, TCP има вградени и допълнителниалгоритми за повишаване качеството на предаване. Пример за това са:алгоритъм на Нагъл, забавения старт, и други. Алгоритъмът на Нагъл сегрижи да не пътуват по мрежата множество пакети с даннова част 1-2 байта.Когато приложението изпраща данните байт по байт, първият байт сеизпраща, а останалите се буферират докато се получи потвърждение запървия байт. След това се изпращат всички буферирани данни в един сегменти се започва буферирането до получаване на потвърждение. Алгоритъмътпозволява да се изпратят данните и преди получаване на потвърждение, акобуферът се е напълнил до размер >= на половината на размера на прозореца.Въпреки големите достойнства на този алгоритъм има случаи, в които е подобреда е изключен. Такива са системите за отдалечен достъп като: telnet,SSH, RDP, VNC, X Window. Алгоритъмът на забавения старт е свързан спонятието „congestion window”. Освен прозорецът, указващ колко място имав буфера получаващия, предаващият поддържа и втори прозорец. Той указваколко байта има готовност да изпрати без да претовари мрежата. Такареалната стойност на прозореца се избира като минималното от дватаСтр.63Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипрозореца. При изграждане на връзката “congestion window” се установявасъс стойността на MSS. Изпраща се един максимален сегмент и ако той сепотвърди преди да изтече таймаут, стойността на прозореца се прави 2 пътиMSS. Той расте докато се достигне таймаут или се достигне размера напрозореца, даден от получателя.User Datagram Protocol (UDP).UDP не е ориентиран към установяване на връзка (connectionless) и ененадежден протокол, който не гарантира, че предаденото съобщение щедостигне до местоназначението си. Той разчита изцяло за това на останалитеслоеве. На фиг.3 е показан формата на UDP сегмента.0 16 31Порт на подателяПорт на получателяДължина на съобщениетоКонтролна сумаДанни...Фиг.3. UDP сегмент.В общият случай, UDP не поддържа контрол на потока, контрол нагрешките, изграждане на виртуална връзка и повторно предаване на загубенипакети. Всичко, което предоставя е интерфейс към мрежовия слой съсмултиплексиране между приложенията (по порт). Така се дава основа заизграждане на приложения,които имат изисквания много различни отвъзможностите на TCP. Прилага се за request/reply комуникация, при коятоняма значение дали е загубен (сгрешен) пакета заявка или отговор. Напримеротдалечено извикване на процедури, където чрез UDP се гарантира предаванена по-малко на брой и по-прости съобщения.Друго приложение е използването му за база за изграждане на протоколиза работа в реално време, например RTP. Той е протокол за работа в реалновреме, използва се за поточно audio и video. Позицията му в протоколния стеке малко странна, тъй като има функции от транспортния слой, но и отприложния (фиг. 4).Фиг.4. Място на RTP в TCP/IP стека.Основната функция на RTP е да мултиплексира няколко мултимедийнипотока в реално време в един поток от UDP съобщения. Този поток може даСтр.64Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системибъде изпратен до unicast адрес или до multicast. Тъй като се използватнормални UDP сегменти, маршрутизаторите ги третират нормално и не можеда се гарантира минимално закъснение. За целта се използва QoS. RTPизползва номериране на данните, за да се откриват загуби на пакети, но не сеизисква повторно предаване. Вместо това се прави апроксимация назагубения пакет по съседните. Това е удобно при предаването на глас ивидео, тъй като разликата между два съседни кадъра обикновено е малка.Следене на трафика.Програмите за седене на трафика и анализ на мрежата събиратинформация за мрежата по два начина: monitoring и залавяне на пакети.• Monitoring – не събира пакети, а само статистика за трафика прездаден мрежов интерфейс. Данните могат да се разделят по тип напротокола за обмен, по възел, който ги изпраща, по размер напакетите и др. Удобен е когато ни интересува статистика за дадентрафик, но той е твърде голям за съхранение.• Залавянето на пакети позволява следенето на същите статистики, нопакетите се запазват и могат да бъдат декодирани, за да се проследятзаглавните части добавени от протоколите, които ги капсулират.Когато използваме залавяне на пакети можем да зададем напрограмата, кои пакети да използва и кои не, така можем да създадемстатистика, съобразена с някакъв наш параметър.За какво могат да се ползват програмите за следене на трафика:• Откриване и диагностициране на проблеми в мрежата;• Оценка натовареността на мрежата и разпределение на трафика поприложения;• Проследяване на пробиви в сигурността;• Проверка работоспособността на протокол;• Обучение за структурата и капсулиране на протоколите.Програмата EtherealEthereal е програма за следене на трафика и анализиране на пакети сграфичен интерфейс. Тя позволява интерактивно да се следят пакети в реалновреме или от предварително запазен файл. Ethereal поддържа голям набор от“capture” формати, а стандартният му е “libpcap”, който се използва и от“tcpdump”.За стартиране на “capture”, трябва първо да изберем интерфейс от менюто“Capture->Interfaces”. След това можем да изберем филтър, да настроимусловия за спиране, съхранения във файл. Можем да изберем дали да следимСтр.65Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системив реално време или просто да пълним файл с данни. Избирането на филтърпомага да не „залавяме” прекалено голям набор от пакети, ако не ниинтересуват. Синтаксисът на “capture” филтъра е следния:[not] primitive [and|or [not] primitive ...]Като primitive е едно от следните:[src|dst] host ether [src|dst] host gateway host [src|dst] net [{mask }|{len }][tcp|udp] [src|dst] port less|greater Примери:ether host 08:00:08:15:ca:fe – целият трафик от МАС адрес address08:00:08:15:ca:fehost 192.168.0.10 – целият трафик от IP адрес 192.168.0.10tcp port 80 – целият трафик на TCP порт 80 (http) от всички възлиhost 192.168.0.10 and not tcp port 80 – целият трафик от192.168.0.10 с изключение на httpСлед като сме стартирали следенето и сме „заловили” изследваниятрафик, можем да управляваме визуализирането на пакетите чрез „display”филтър. Този филтър представлява регулярен логически израз (подобен нарегулярните изрази в езика Perl). Всяко поле на пакета (независимо от койпротокол – канален, мрежов, транспортен, приложен) може да бъде сравненос дадена стойност. Може да се използват ключовите думи contains и matches,в зависимост дали търсим пълно съвпадение (matches) или дали полетосъдържа даден подниз (contains). За сравнението и за логическите операциимогат да се използват оператори, като в езика С или абревиатури отанглийски:eq == Equalne != Not Equalgt > Greater Thanlt < Less Thange >= Greater than or Equal tole


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиза заловените пакети, като натоварване, разпределение по големина или попротокол, скорост, пропаднали пакети, BER, и други (за повече информациявиж Ethereal Help).Един от най-често използваните филтри е такъв, който филтрира едноTCP съединение от изграждането на връзката, през обмена на данни, дозатварянето на връзката. Поради тази причина за проследяването на таковасъединение е изнесена отделна процедура в менюто “Analyze”.Задачи:1. Разучаване на структурата на TCP и UDP сегмента.2. Разучаване на програма за следене на трафика, видове статистики.3. Разгледайте кои приложни протоколи използват TCP и кои UDP(чрез следене на трафика тип мониторинг).4. Напишете филтър за отделяне на едно TCP съединение, заедно сизграждането и затварянето на връзката.5. Разучете процедурата по създаване и прекратяване на TCP връзка.(Three Way Handshake). Създайте “display” филтър за това.6. Проследете договарянето на големината на прозореца при едно TCPсъединение.За допълнителна подготовка:• RFC документите могат да бъдат намерени на адрес: http://www.rfceditor.org/{rfc768(UDP), std007(TCP), rfc3551(RTP)}• G. Herrin, website: http://www.cs.unh.edu/cnrg/gherrin/, Linux IPNetworking: A Guide to the Implementation and Modification of the LinuxProtocol Stack.• A. Tanenbaum, Computer Networks, 4th Ed, Prentice Hall, 2003.Стр.67Изследване на транспортния слой. Следене на трафика.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиСИМУЛАЦИОННО ИЗСЛЕДВАНЕ НА МРЕЖОВИ ПРОТОКОЛИЗа верификация на един алгоритъм или протокол за комуникациясъществуват няколко начина, наложили се както в теорията така и впрактиката:• математически модели;• симулация;• тестване в реална обстановка (Test-bed).При избор на начин за верификация трябва да се уточнят параметрите,при които ще протече симулацията, и всичко да се съобрази с опитнатапостановка и модела на комуникация. Съществуващите три начина да сепровери дали даден нов протокол функционира и какви резултати ще даденеговото прилагане са коренно различни, като всеки има своите особености.Първият начин използва целия математически апарат, за да се предвидиповедението на протокола и топологията на мрежата, както и очакванията настойностите на параметрите, към които е съсредоточено вниманието присамото изследване. При този подход се отделя огромно внимание нагрешката в крайните резултати. Именно в тези резултати се правистатистическо или друго съпоставяне, за да могат да бъдат отчетенипараметри, които не са били взети под внимание и имат случаен характер. Потози начин точността зависи както от опитната постановката (входнитеданни), така и от начина по който е изпълнена задачата. Резултатите не саточни и са близки до теоретичните такива. Използват се различни сплайнфункции за приближения, посредством които резултатите от аналитичниясценарии се обобщават и коментират. Моделирането се прави на компютър.Посредством втория начин за верификация се симулира реална работнасреда. За симулационно средство в общия случай се използва РС съвместимимашини, поради широкото и повсеместно разпространение и ниската имцена. Целта е на базата на условия, описващи тези близки до реалните, да сепостигнат резултати, колкото е възможно по-близки до тези, ако протоколаработи в реални условия. Този метод на верификация е много добър, както дасе изследват големи по размер мрежи, така и мрежи с различна топология.Идеята на този тип симулиране е да се опише алгоритмично и програмнопредлагания протокол и да се имплементира в даден симулатор. След това снабор от симулационни сценарии, представляващи конкретни условия, прикоито ще работи протокола, да се следи поведението му или по-точно казаностойностите на наблюдаваните параметри. На базата на тези резултати сеправят промени ако това се налага в алгоритъма на самия протокол. Така сестига до максимално изчистен модел. Недостатък на метода е бързината наверификацията, както и компромисите с точността (детайлността), които санаправени, за да се подобри както бързодействието, така и консумираната отСтр.68Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системисимулатора памет. Не на последно място е и необхватността на сценариитепри самата верификация Като равносметка може да се каже, че колкото поблизъкдо реалните условия е една симулация толкова по-бавно се изпълняватя.Третият метод за верификация е прилагането на новия протокол направов реални условия на работа. За реализирането му не се изисква симулиране напротокола. Това което се прави е предварително приучване на необходимитекомуникационни единици и прякото им приложение и протоколанепосредствено се имплементира. Прилага се в случаите, когато протоколът едостатъчно прозрачен и опростен, за да сме сигурни в надеждността му. Несе изискват време и ресурси, както в предходните два метода, освен за саматареализация на протокола. Голям недостатък на този метод е невъзможносттаму в предварителния етап на подготовка да бъдат обхванати всичкивъзможни пропадания на комуникацията на протокола. Този начин наверификация е аналогичен на проба грешка и последваща модификация напротокола.От разгледаните типове за верификация на комуникационни протоколи втекущото упражнение се разглежда метода на симулиране. За тази цел енеобходим симулатор и работна станция (РС). Изборът на симулатор е отизключително значение, както за бързината и достоверността насимулацията, така и за характеристиките на описвания протокол. Ако трябвада анализираме най-известните симулатори за мрежови протоколи трябва даспоменем най-широко използвания NS-2 (Network Simulator 2), GLoMoSim,Hutsim, SWANS (Scalable Wireless Ad-hoc Network Simulator).Въведение в NS-2 и неговите особеностиСимулаторите се различават както по програмния език, на който сеописват протоколите, така по методите на имплементиране на желанияпротокол, модел на верификация, който се използва, както и идеологията,която следва.В настоящето упражнение се използва NS-2. Това е най-широкоизползвания симулатор както за жични, така и за безжични мрежи. Найголямпринос за развитието на Network Simulator, и интегрирането напротоколите за безжични мрежи има проекта Monarch, създаден от RiceUniversity. През 1992 година той стартира като много амбициозенизследователски проект, който в последствие се оказва и страшно успешен.Благодарение на него са разработени и имплементирани голяма част отпротоколите за безжична комуникация в симулатора. Ядрото на симулаторасе развива и усъвършенства, а разширенията към него са отделен пакет,който се инсталира в последствие.Работните езици при този симулатор са два, като всеки от двата имасъответните качества и място за приложение. Първият език, посредствомкойто се описват протоколите е С/С++, а втория език е ОTcl, коетоСтр.69Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипредставлява обектно ориентираното разширение на TCL Script езика, чиетопредназначение е да изпълни симулационния анализ описан в скрипта. В тозискрипт именно става задаването на изходните параметри на симулацията, аименно топологията на мрежата, протоколите, които ще се използват наотделните нива, както и приложенията, които ще работят. В симулаторасъществуват два вида йерархии: едната е С/С++, а другата OTcl. Всъщностприложението на езиците е тясно свързано и с идеята за тяхното създаване.С/С++ е език, обектно ориентиран, характеризиращ се с бързодействие илесна работа, що се отнася до енкапсулиране на данни и техните свойства.Използва се наследяването за лесно и разбираемо разширяване нахарактеристиките, както на даден съществуващ протокол, така и да сеимплементира наш собствен. Скрипт езиците лесно търпят модификации, носа по бавни за изпълнение. Концепцията на Network Simulator се градиименно на тези свойства.Фиг.5. Принципна схема на работата на NS-2NS-2 представлява дискретно събитиен симулатор, чието предназначениее да изследва и анализира мрежови топологии, протоколи на различнитеслоеве на OSI модела, архитектури, системи и модели. Всяка симулация сеописва посредством скрипт на OTcl. Чрез него се задава топологията намрежата, броя на станциите, както и протоколния стек, работещ на всекимрежови възел. Функционалността на зареждащия код се осигурява от код наС/С++. В симулатора има интерпретатор, които зарежда указания сценариина симулацията. Като изход от симулатора се създават trace файлове. Изборътна параметрите и величините които ще се записват в тях се задават в OTclскрипта. На фигура 1 е показана принципна схема на работата на симулатора.Всяка станция, която се декларира от скрипт езика, има функционалностописана на С++. Тази функционалност се стреми да се изпъни бързо и да незаема голяма част от процесорното време. Тук е мястото да уточним каквозначи процесорно време и каква е разликата със симулационното време.Процесорното време е реалното време на изпълнение на задачите, докатосимулационното време е вътрешно системно и няма общо с реалното. То течепо съвсем различен начин и се определя от самия симулатор. Това е изразенои във визуализиращия инструмент наречен NAM. Там ние указваме колкобързо да се визуализира вътрешно системното време, за да можем даСтр.70Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системипроследим комуникационния процес, както и да анализираме типа исъдържанието на обменяните пакети. Освен споменатото средство завизуализация съществува и друго такова наречено Graph. Посредством негосе изчертават диаграми.Бързината на изпълнение на симулацията прави възможни симулации сголям брой станции, като времето за изпълнение е в приемливи граници.Идеята на симулатора е да се подготвят скрипт сценарии, по които да сеизпробват характеристиките на предлагания протокол. Скрипт езиците салесни за промяна прозрачни за разбиране. Всеки един параметър може да сеанализира и с промяна на скрипт сценария да се разгледа в детайли.В симулатора съществуват така наречените split обекти. Те представляватсвързващото звено между обектите описани на С++ и скрипт езика TCL, аименно TclCL (TCL/C++). Така се осъществява връзката в Network Simulatorмежду обекти на С++ и TCL/Тк. NS-2 е дискретен симулатор и поддържадискретни събития, където предимството по отношение на времето сеопределя от планировчика на симулатора, определящ поддържането иразпределянето на времето за всяко събитие, което е готово да се изпълни и езаредено в тази програма. Изчислението на местоположението на всякастанция за квант от време се изчислява за всяка станция по отделно и следтова се преминава към следващата стъпка на всяка една от станциите.Именно тук се губи много време ако броя на станциите е голям. След всякастъпка, всяко настъпило събитие, се проверява дали станциите са в обхватаедна на друга. Като по този начин се разбира дали е възможно да сеосъществи комуникация.Важна подробност с NS-2 е планировчика на задачи (Scheduler).Посредством него се осъществява комуникационния процес междуучастниците в симулацията. Както споменахме вече този симулатор едискретно събитиен, което означава, че симулацията се извършва надискретни стъпки. След всяка стъпка се преизчисляват всички заложенисъбития в симулационния сценарии. Събитието за симулатора представляваID пакет, уникален за пакет, притежаващ предварително планирано време,както и указател към обект, който манипулира събитието. Планировчикаследи симулационното време и запуска всички събития, които са в неговатаопашка за текущото време на симулацията. Това става чрез извикване наподходящи мрежови компоненти, които в общия случай са тези, които саинициирали даденото събитие. По този начин се запускат отделните събитияв симулацията. Посредством описания по горе сценарии станциите, заложенив симулацията си обменят пакети и комуникират помежду си. Важно е да сеотбележи че това не отнема от симулационното време (дискретен симулатор).Посредством планировчика на задачи се осъществяват delays, timerнеобходими за определяне на timeouts важни за работата на протоколите.Стр.71Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.6. Архитектура на NSНедостатък на този симулатор е голямото количество памет, която му енеобходима за симулацията. За всеки обект, който се създаде на скрипт езика,автоматично се създава С++ обекти. Сплит обектите осъществяват връзката собект на С++ ниво от скрипт ниво. Всеки протокол, който е имплементиран вNS има дадено количество служебна информация. Тази информация за всекипакет се заделя на ново. Така проблема с паметта идва от няколко особеностина самия симулатор.Фиг.7. C++ и OTcl: двойственосттаИзпращането на пакетите от дадена станция до друга става с копиране напакета, а не чрез предаване на указател, както в някои други симулатори, найчесточрез референция – SWANS. Така от една страна се губи време зазаделяне на нова памет, и освобождаване на старата, но и в един момент сеоказва че дадена информация се намира на две места. Именно товарепликиране коства много памет и забавя симулатора като цяло.Когато говорим за репликиране на информацията, трябва да споменем, чена С++ ниво има две функции, грижещи се за освобождаване на паметта. Наниво скрипт език, такава функция е създадена и може да се използва отMonarch проекта. Техниката е да се създават обекти в един масив, но койтопри създаване на нов обект заема първата свободна клетка от масива. Затоваотделяме внимаваме на това какво количество обекти създаваме на нивоСтр.72Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системискрипт език.Друга характерна особеност е, че всеки протокол има дадено количествослужебна информация. Тази информация се включва цялата по подразбиране.Ако симулираме голяма по размер мрежа, то ще имаме голямо количествослужебна информация в канала. Затова има конфигурационен файл, в койтосе указва какво да се включи в header частта на даден протокол. С тазитехника количеството служебна информация може да намалее до 75%.Разширения към NS-2Ще разгледаме CMU разширенията към Network Simulator -2. На фиг. 1. епоказана комуникационната схема на отделните станции. При този моделвсяка станция представлява реално обособена същност – entity,характеризираща се с определена функционалност, грижеща се заизчислението на посоката и скоростта си на движение и на текущата сипозиция спрямо времето. Всяка станция може да има повече от едининтерфейси, всеки от който е прикрепен към канал за връзка. Каналите сатези, които носят информацията между отделните станции. Когато станцияпредаде пакет по този канал, той се копира до всички възможни интерфейсиприкрепени към този канал. Тогава тези интерфейси използват RadioPropagation Model за определянето дали те са способни да приемат пакета.По принцип всички интерфейси от едно естество се предполага, че сасвързани към един канал. Всяка станция може да има повече от едининтерфейс, като всеки интерфейс е прикрепен към различен канал. Всекиканал представлява отделна радио честота, използваща дадена модулация икодираща схема. Каналите се предполага, че са ортогонални, което значи чепредаването в един канал не пречи на предаването в друг и са независимиедин от друг.Възможно е да се свързват станциите помежду си с class Link обекти,както е при базовия симулатор, което позволява да се изграждат мрежи отсмесен тип – жични и безжични. Това не е отбелязано на фигура 4.Фиг.8. Логическо свързване на станциите от CMU разширенията към ядрото наNS-2Функционална схема на мобилна станция използваща разширенията къмМонарх проекта е показана на фигура 5.Стр.73Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.9. Функционална схема на мобилна станция използваща CMU разширениятаИмплементиране на нов протокол в NS-2За описание на протоколи се използва програмния език С++.Концепцията на симулатора е на базата на съществуваща базовафункционалност, да се добави нова функционалност по метода нанаследяването. Така без да променяме основата на симулатора верифицираменаш протокол.При създаването на протокол се набляга на това всичко да е подредено ида е разпределено в отделни файлове. Различните типове файлове са .h и .cc., а файловете описващи сценариите, по коитоще се извърши симулацията са .tcl.Всеки протокол има някаква служебна информация. Тази служебнаинформация се добавя или премахва от началото на получения пакет, взависимост каква е посоката на движение на пакета – дали се изпраща или сеСтр.74Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиприема. Тази служебна информация в симулатора се представя със структура.Отделните полета на тази структура представляват отделните флагове иполета, които съдържат нужната информация. В този .h файл се декларира иAgent на този клас, който наследява class Agent, явяващ се базов за него.Именно този клас съдържа цялата функционалност, а ние само добавяме новаако това е необходимо. Това е класа, съдържащ голяма част от кода напротокола. Този клас е достъпен през TCL скрипта и може да се управлявапрез него.За изпращане на периодични съобщения се използва класа Timer, както иако се пази дадена информация за определено време като запис в таблица.Така се задават expired times. За изпращане на контролни съобщения енеобходимо да се дефинира нов тип packet. В този пакет се съдържа цялатанеобходима информация необходима за поддържането на функционалносттана протокола.Друг важен клас е Trace класа. Посредством него се записва информацияв файл или файлове за това, какво е станало по време на симулацията. Следкоето е възможно визуализирането на тази информация.Всеки маршрутизиращ протокол се нуждае от два обекта: AddressClassifier и Port Classifier. Първият обект се използва когато полученотосъобщение не е за самата станция или когато тя иска да изпрати пакет додруга станция. Тогава съответния пакет се маршрутизира; вторият обект екогато трябва получения пакет да се предаде на съответния агент на погорнитеслоеве.Всеки агент наследява от базовия клас две функции: recv() и command().Първата се вика когато се получи пакет, а това става по два начина. Единияте ако самата станция иска да изпрати пакет и по-горните слоеве (катотранспортните протоколи на транспортния слой ТСР и UDP) предават надолутекущия пакет и той трябва да се енкапсулира с новата информация и да семаршрутизира или просто когато се получи пакет от друга станция. Вторатафункция се вика от TCL скрипта за да се конфигурира С++ обекта и даизпълни някаква функционалност. В това извикване се указва всичко, което енеобходимо като параметри за да се осъществи предаването. Имаконфигурационни файлове за протоколите които се указват, че ще сеизползват, които са заредени със стойности по подразбиране. За целите насимулацията те се променят.Посредством код на С++ се описват функционалностите на протокола,като всяка функция се разписва в съответния файл. Маршрутизиращитетаблици са нещо без което един маршрутизиращ протокол не може дафункционира. Такава таблица може да се имплементира или чрезвъвеждането на нов тип клас или чрез друг вид структура – хеш таблицанапример. В тях се пази информация за следваща стъпка, за IP адрес нададена станция. Всичко това е необходимо, за да се маршрутизира всеки единпакет до местопредназначението си. Друга информация се поема отСтр.75Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиприложния слой.За да се имплементира един протокол в NS-2, е необходимо да сенаправят някои промени в конфигурационните файлове на самия симулатор.Това са файловете, в които се регистрира съществуването на новия протокол.Следва компилиране на библиотеките на симулатора. След което е възможнода се напише скрипт за да се изследва протокола.Промените, които следва да направим са в следните файлове:• common/packet.h – промяната в този файл, задава името на типа напакетите, които ще използва новия протокол;• trace/cmu-trace.h и trace/cmu-trace.cc – в тези файлове се правятпромени с цел да е възможно да се записва информация в trace файл,информация за симулацията, която в последствие да бъдеанализирана. Тази информация от типа на изпратен, получен илипропаднал пакет се анализира и се прави конкретен анализ занадеждността на мрежата, пропускателната способност, закъснения.• tcl/lib/ns-lib.tcl – тази промяна е свързана със създаването на обект оттип станция в симулатора. Когато се създаде станция към нея сеприкрепя агент.• queue/priqueue.cc - промяната в този файл указва, че новия протоколе маршрутизиращ и неговите пакети са високо приоритетни. По тозиначин ако се организира опашка, пакетите на маршрутизиращитепротоколи ще се наредят най-отпред на нея;За симулацията на безжичен протокол може да се използва CMUextensions. В тези разширения има средства с чиято помощ е удобно да сезададе както сценарии на движение, така и сценарии на комуникация. ВСеверна Америка има разработена система наречена TIGER. Това са цифровикарти на географски региони. Посредством тях е възможно да се използваткарти на пътища и да се симулира даден протокол как ще се представи законкретна географска област с конкретно разположение на улиците. Заизползването на тези данни, симулатора очаква определен формат наданните. Това се осъществява посредством парсер. Ad-Hockey е именнотакова средство. В света се използва и широко прилага GPS системата.Нейния формат на данните не съвпада с формата на TIGER. При опит да сепарснат такива данни, то изходния файл ще е празен.Въведение в TCL скриптаЕзикът TCL или още Tool Command Language e език за програмиране съссравнително прост синтаксис и лесен за интегриране с други езици. Обектноориентиранатаму версия се нарича OTcl. Следващите редове имат за цел дави запознаят със синтаксиса и особеностите на Tcl езика:Стр.76Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Присвояване на стойност на променлива: [set]set a 0 # еквивалентно на а = 0 при С/С++• Извличане на стойността на променлива:[ $]set x $a # еквивалентно на x = a при С/С++• Математически операции:set y [expr $a + $b] # еквивалентно на y = a + b при С/С++• Tcl променливите нямат тип, типа им зависи от стойността която имбъде присвоена:set z [expr 1 / 50] # z има стойност 0set w [expr 1.0 / 50.0] # z има стойност 0.02• Създаване на файл: [open]set file1 [open filename w]• Разпечатване на екрана и във файл: [puts]puts $file1 “test” # записва думата test във файла file1• Извикване на UNIX команди: [exec]exec • Дефиниране на условни преходи:[ if, else]if { условие } {... изпълнение на някакви команди} else {... изпълнение на някакви команди}• Дефиниране на цикли: [for]for { set i 0 } { $i < 10} { incr i } {... изпълнение на някакви команди}• Дефиниране на процедури: [proc, global, return]proc my_procedure {parameter1 parameter2 … } {global var1 var2set ret 0... изпълнение на някакви командиreturn $ret}В горната дефиниция на процедура var1 и var2 са променливи външни запроцедурата и за да могат да бъдат използвани вътре в тялото й се дефинираткато глобални с ключовата дума global.• Дефиниранe на клас в OTcl: [class, self, instproc, instvar, superclass]Декларирането на нов клас става с използването на ключовата дума classследвана от името на класа. Методите на класа се декларират чрез ключоватадума instproc, пред която стои името на класа, а след нея името на саматаСтр.77Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системифункция и нейните параметри. Функцията init е запазена за конструктор накласа. Променливата self е указател към самия клас, също както this при С++и Java. Чрез ключовата дума superclass се указва, че даден клас наследявадруг такъв.По-долу са разгледани няколко прости примера за въведение всинтаксиса на Tcl и OTcl.Пример 1: създаване и извикване на процедура:# деклариране на процедурата testproc test {} {set a 43set b 27set c [expr $a + $b]set d [expr [expr $a - $b] * $c]puts “c = $c d = $d”for {set k 0} {$k < 10} {incr k} {if {$k < 5} {puts “k < 5 power = [expr pow($d, $k)]”} else {puts “k >=5 mod = [expr $d % $k]”}}}# Извикване на процедурата testtestСкриптове на NS-2Текущото упражнение има за цел да направи кратко въведение в NS-2както и да се даде начална посока за симулационно мислене и да се придадезавършен вид на този вид верификация. За целта е даден скрипт, скоментирани редове с цел да се изясни последователността на действията ида се придаде дадено скеле и минимален работещ скрипт, който впоследствие да се развие.Пример 2: Примерен скрипт, с визуализираща журнална информацияset ns [new Simulator] ;#създаване на инстанция на симулатораset nf [open out.nam w] ;#създаване на файл за визуализация (nam)$ns namtrace-all $nf ;#nf e handler за този фаил и там щезаписваме;#цялата информация;#създаване на finish процедура която затваря;#файла и стартира namproc finish {} {global ns nf ;# глобални променливи които се;#използват в$ns flush-trace ;# процедуратаclose $nf ;# затваряне на файлаexec nam out.nam & ;# стартиране на визуализациятаexit 0Стр.78Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи};#стартиране на процедурата 5 сек след;#започването на симулацията$ns at 5.0 "finish";#стартиране на самата симулация$ns runПример 3: Създаване на станция, задаване на Агенти, Капацитети идефиниране на трафикset n0 [$ns node] ;# деклариране на станция;#създаване на двупосочна връзка между;#две станции, с;#капацитет 1Мb и с delay 10ms, с опашка;#DropTail$ns duplex-link $n0 $n1 1Mb 10ms DropTail;#Създаване на UDP agent и го обвързваме;#към станция n0set udp0 [new Agent/UDP]$ns attach-agent $n0 $udp0;#Създаване на CBR traffic източник и;#го закрепя към udp0set cbr0 [new Application/Traffic/CBR]$cbr0 set packetSize_ 500 ;# задаване размера на пакета$cbr0 set interval_ 0.005 ;# времето през което да се пращат;# пакетите$cbr0 attach-agent $udp0 ;#обвързване на агент с вид трафикset null0 [new Agent/Null] ;# създаване на агент който да получава$ns attach-agent $n0 $null0 ;# обвързваме го с конкретна станция$ns at 0.5 "$cbr0 start" ;# стартираме страфика 7$ns at 4.5 "$cbr0 stop" ;#спираме пращането на пакетиПример 4: Задаване на ориентация на станциите при визуализацията$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient rightПример 5: Задаване на клас към даден трафик$udp0 set class_ 1$udp1 set class_ 2$ns color 1 Blue$ns color 2 Red$ns duplex-link-op $n2 $n3 queuePos 0.5;# задавасе как да е разположена;# визуално опашката спямо;# хоризонталатаПример 6: Задаване на масив от станции в NSСтр.79Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиfor {set i 0} {$i < 7} {incr i} {set n($i) [$ns node]}for {set i 0} {$i < 7} {incr i} {$ns duplex-link $n($i) $n([expr ($i+1)%7]) 1Mb 10ms DropTail};# задаване и на връзка в кръгова;# топология между станцииПример 7: Задаване на пропадане и възобновяване на връзка$ns rtmodel-at 1.0 down $n(1) $n(2) ;# отпадане на връзка между;# станции 1 – 2$ns rtmodel-at 2.0 up $n(1) $n(2) ;# възстановяване на връзка1 – 2$ns rtproto Static ;# Статично маршрутизиране за;# симулацията$ns rtproto DV $n1 $n2 $n3 ;# DV – Distance Vector$ns rtproto LS $n1 $n2 ;# LS – Link Stateset sink0 [new Agent/LossMonitor] ;# Agent наследява LossMonitor;# който представлявa packet sink;# проверяващ за ;#загубиЗадачи:24. Запознаване с начините за верификация на протоколи и топологии.25. Запознаване с различните симулатори.26. Какво представляват скрипт езиците27. На колко различни платформи и по какъв начин може да се запуснеNS-2 симулатора.28. Да се напише програма на скрипт език за намиране на фактуриели.29. Да се запусне написаната програма на Линукс станция.30. Анализирайте примерите дадени за NS-2.31. Да се напише симулационен скрипт за топология с 2, 3, 4 възела и да сеизследва еднопосочен, двупосочен трафик от тип CBR (Constant BitRate).32. Да се разшири горната задача, като се използват различни типовеопашки и обоснове всяка една за какво се използва, като се имапредвид допълнителната литература.Допълнителна литература:• NS-2 кодове и самоучители:http://www.cplusplus.com/doc/tutorial/http://www.isi.edu/nsnam/nshttp://www.isi.edu/nsnam/ns/ns-documentation.htmlСтр.80Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• TCL script:http://dev.scriptics.com/man/tcl8.2.3/• OTCL script:http://bmrc.berkeley.edu/research/cmt/cmtdoc/otcl/tutorial.html• NAM – Network Animatorhttp://www.isi.edu/nsnam/namСтр.81Симулационно изследване на мрежови протоколи


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиСОКЕТИ – ПРИЛОЖЕНИЕ.Сокетите са средство за локална и мрежова комуникация между двапроцеса. За пръв път тази идея се появява в BSD 4.2, а сега е разпространенав повечето операционни системи като стандарт за комуникация. От гледнаточка на програмирането е необходима абстракция, която да представивзаимодействието на процеси през мрежата. Тази абстракция цели дакапсулира управлението на TCP/IP стека и предаването на данни. С цел да сенаправи програмирането по-лесно, в UNIX за пръв път се появяваабстракцията сокет и мрежата се използва по подобие на взаимодействието сВ/И устройствата и файловете. В UNIX се спазва идеологията всички В/Иоперации да се извършват като достъп до файл. Използва се файловдескриптор и операциите за четене и писане във файл. Тъй като сокетите сепоявяват за пръв път точно в UNIX, те също спазват тази идеология: създавасе дескриптор на сокета, който е от същото множество цели числа, както ифайловите дескриптори. При някои операционни системи (Windows)функциите за работа със сокети са отделени от тези за работа с файлове идескрипторите са отделни, но схемата на работа се запазва. В операционнатасистема интерфейса за сокети се състои от набор потребителски библиотекии функции, както и от набор системни извиквания на ядрото. В по-раннитеверсии на Windows работата със сокети е била реализирана по различен отпопулярния начин – така наречените “Berkeley sockets”. По-късноМайкрософт добавят библиотека за сокети, която е напълно в съответствие с“Berkeley sockets”. Това е “winsock2” библиотеката.Наследено от UNIX, има два различни домейна за обхват на сокета:локални (PF_UNIX) и мрежови (PF_INET). При локалните се адресира чрезпълния път до процеса, а с мрежовите ще се запознаем подробно в настоящияматериал.Мрежови сокетиМрежовите сокети функционират като крайна точка за комуникация.Всеки сокет е една входна точка, а една двойка свързани сокети уникалноидентифицира една двупосочна връзка от край до край. Всяка крайна точкасе идентифицира с двойката (адрес, порт). Мрежовите сокети могат да сеизползват и за локална междупроцесна комуникация ((localhost, port1),(localhost, port2)).Мрежовите сокети са три основни типа:- Поточни сокети – използва TCP за транспортен протокол, т.е.надежден.- Дейтаграмни сокети – използва UDP, т.е. ненадежден, изпращатсе съобщения.- RAW сокет – асоциира се с IP протоколен номер и получаваСтр.82Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системицелия трафик за този номер. Позволява достъп до по-долните нива накомуникация. Служи за създаване на потребителски транспортнипротоколи, ловене на пакети и др.Използване на сокетиИзползването на сокети се базира на архитектурата клиент/сървър.Единият сокет работи на станцията, изискваща някаква услуга, а другият – настанцията предлагаща услугата. За да се осъществи комуникацията, клиентъти сървърът трябва да използват един и същ протокол.Поради различните идеологии при поточните и дейтаграмните сокети,произтичащи от спецификите на използвания транспортен протокол,алгоритъма на работа на двата типа е различен. При поточните сокети имаизграждане на връзката и функциите за изпращане и получаване на данни несъдържат адреса на отдалечения възел. Ролите на клиента и сървъра припоточни сокети е показана на фигура 1, а при дейтаграмни – на фигура 2.Фиг.2. Поточни сокети.Клиентската станция извършва следните действия за осъществяване накомуникация:1. Създаване на сокет и получаване на дескриптор от ОС.2. Свързване на сокета към сървърен такъв.3. Трансфер на данни.4. Затваряне на сокета.Сървърната станция извършва следните действия за осъществяване накомуникация:1. Създаване на сокет и получаване на дескриптор от ОС.2. Обвързване на сокета с локален адрес и порт.3. “Слушане” за клиентски заявки и добавяне на заявките в опашка заобработване.4. Приемане на заявка от опашката. (Създава се нов сокет по времена обмена.)Стр.83Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи5. Трансфер на данни.6. Затваряне на сокета.Фиг.3. Дейтаграмни сокети.Адресиране на сокетиЗа да адресираме един сокет ни е необходимо да зададем мрежов адрес,порт, домейн на адреса. Това се постига с използването на структура отданни.struct in_addr {unsigned long s_addr;};struct sockaddr_in{short sin_family; //АF_UNIX | АF_INETu_short sin_port; // port numberstruct in_addr sin_addr; // addresschar sin_zero[8]; // padding};За да се поддържа универсална структура, независимо от използванитепротоколи, се използва структурата “in_addr”. За различните протоколниреализации, тя има еднакъв размер и двоично подреждане, но полетата вътреможе да са различни. Затова има и поле за подравняване на адреса на сокета –“sin_zero”. Като се вижда в структурата, адреса се записва като цялоположително число от тип long. Поддържат се функции за превръщането му вdotted-decimal и обратно.unsigned long inet_addr(char *)char *inet_ntoa(unsigned long)Описание на основните функциите за работа със сокети в С/С++Създаване на сокет – извършва се и при клиента, и при сървъра.s = socket (domain, type, protocol)s – дескриптор на сокета.Стр.84Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиdomain – PF_UNIX или PF_INET.type – SOCK_STREAM, SOCK_DGRAM, SOCK_RAW.protocol – обикновено се оставя 0, защото се подразбира от типа насокета, но може да се зададе при RAW сокети – IP, IPX.Обвързване на сокет с локален адрес и порт – използва се основно присървъра, но е възможно и при клиента.int bind(int s, struct sockaddr *addr, int addrlen);s – дескриптор на сокета.addr – указател към структура, съдържаща локалния адрес.За клиента обикновено не е необходимо да се използва тази операция,тъй като той използва порт от свободните и локалния адрес по подразбиране.Затваряне – извършва се при клиента и сървъра.int close(int s);Затваря сокета като файл. Унищожава дескриптора.int shutdown(int s, int how);В зависимост от стойността на how може да прекъсне връзката в едната, вдругата или и в двете посоки. (0 – затваря за получаване, 1 – затваря запращане, 2 – затваря и в двете посоки.)Свързване към сокет – извършва се при клиента, за да се свърже къмсъществуващ сървърен сокет.int connect(int s, struct sockaddr *addr, int addrlen);s – дескриптор на сокета.addr – указател към структура, съдържаща адреса на сървъра.Слушане на определен порт – при сървъра. Поставя сървърния сокет врежим на чакане на заявки. При приемане на заявка я поставя в опашка заобработване.int listen(int s, int backlog);s – дескриптор на сокета.backlog – задава големината на опашката за приеманите заявки.Приемане на заявка за обработка – при сървъра. Взема се заявка отопашката за обработване и се създава нов сокет за нея. Така се създавадвойка сокети, които комуникират и се освобождава сървърния сокет даслуша отново.int s1 = accept(int s, struct sockaddr *addr, int *addrlenptr);s – дескриптор на сокета.addr – указател към структура, съдържаща адреса на клиента.Връща дескриптор на новосъздаден сокет – s1.Предаване на данни – от двата хоста.Стр.85Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиСъщите като предните, но имат допълнително поле за настройки насокета.int send(int s, char *msg, int msglen, int flags);int recv(int s, char *msg, int msglen, int flags);Познатите ни функции за работа с файлове. Подава се дескриптор, буферза данни и дължина на буфера.int write(int s, char *msg, int msglen);int read(int s, char *msg, int msglen);Функции за предаване на данни при дейтаграмни сокети, където нямаподдържане на връзката и всеки дейтаграм пътува независимо до адреса.int sendto(int s, char *msg, int msglen, int flags, struct sockaddr*addr, int addrlen);int recvfrom(int s, char *msg, int msglen, int flags, structsockaddr *addr, int *addrlenptr);За разлика от тези, при поточните сокети, маршрута се избираеднократно, след което се записва в сокета и се използва по време натрансфера.Проверка и промяна на опциите на сокета.int getsockopt(int s, int level, int optname, void *optval, int*optlenptr);int setsockopt(int s, int level, int optname, void *optval, intoptlen);level – ниво на протокола: SOL_SOCKET, IPPROTO_TCP, IPPROTO_IP.optname – име на опцията: SO_REUSEADDR, SO_ERROR,SO_BROADCAST и други.optval – стойността на конкретната опция.Помощни функции.При мрежовото програмиране винаги е необходимо да се реши единважен проблем. Това е последователността на обработка на данните – отстарши към младши байт или обратно. Проблемът е наследство отразличното представяне на данните в различни компютърни архитектури. ВIntel архитектурите и подобните на тях данните се обработват в Little-endian,докато в Macintosh в Big-endian. Прието е данните по мрежата да се предаватв Big-endian и затова при всички Intel и подобни архитектури е необходимода се извършва преобразуване. За целта се използват няколко функции:htonl() – 32 битово число от Little в Big-endian (host-to-networklong);ntohl() – 32 битово число от Big в Little-endian (network-to-hostlong);htons() – 16 битово число от Little в Big-endian (host-to-networkshort);ntohs() – 16 битово число от Big в Little-endian (network-to-hostshort).Специфични функции за WinSock интерфейса.Стр.86Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиВ този интерфейс са добавени няколко специфични функции заадаптиране.- Преди да се използва сокет в дадена програма трябва да сезареди WinSock.dll и да се инициализира.- Преди да се затвори приложението трябва да се освободятресурсите заети от сокет интерфейса.- При възникване на грешка трябва да се обърнем към специфичнафункция, която ни показва коя точно е грешката.Табл.1: Специфични функции на WinSock.dll.ФункцияОписаниеWSAStartup()WSACleanup()WSAGetLastError()Инициализира библиотеката за работа със сокети и проверявадали е налична съответната версия на сокет интерфейса.Освобождава заетите от приложението сокети и прекратявавръзката с библиотеката.Връща кода на последната грешка възникнала при работатасъс сокет интерфейса. Трябва да се извиква веднага привъзникване на грешка, за да не се презапише грешката отнововъзникнала такава.Обикновено се използва следния код в началото на приложението инататък се програмира по подобие на „Berkeley sockets”.WSADATA wsadata;WSAStartup (MAKEWORD(1,1), &wsadata); // Version 1.1 requiredИнтерфейс за работа със сокети в Java.Програмирането на сокети в Java се извършва чрез специализиран пакет,съдържащ API функции и класове. Този пакет се нарича “java.net”. Заадресирането на сокетите се предлагат няколко класа – InetAddress иSocketAddress и техни наследници. Първият предлага адресиране чрез IPадрес, като има имплементирани наследници за IPv4 и IPv6. Адресът може даму се подава директно в dotted decimal формат или като long число. Вториятклас и неговите наследници капсулират IP адреса и номера на порт в единобект. Удобен е за работа и позволява използването на име на хост вместо IPадреса.Поточни сокети.За работа с поточни сокети, Java предлага два класа – Socket иServerSocket. Класът ServerSocket представлява сокет на който сървърнотоприложение „слуша” и приема заявки. Класът Socket предоставя крайнататочка за комуникация между клиента и сървъра. При клиента този клас сеизползва за създаване на сокет и свързване към сървъра, а при сървъра – приполучаване на заявка на ServerSocket обекта (фигура 3).Стр.87Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиФиг.4. Изграждане на TCP връзка.След като се установи TCP връзката, се асоциират InputStream иOutputStream към нея.Дейтаграмни сокети.При работа с дейтаграмни сокети в Java се използват два основни класа –DatagramSocket и DatagramPacket. Първият клас капсулира сокет интерфейсаи връзката към UDP. Поддържа функции за пращане и получаване. Имареализиран подклас за multicast съобщения. Другият клас представя самияUDP пакет, заедно с адреса, порта и данните. Приложението създавадейтаграмен сокет, след което създава пакет, привързва го към сокета и гоуправлява, използвайки функциите на класа DatagramSocket (фигура 4).Фиг.5. Работа на дейтаграмни сокети.Задачи:1. Запознаване с програмния интерфейс сокет.2. Запознаване с основните типове сокети и тяхното приложение.3. Запознаване с основните функции за работа със сокети под Linux.4. Запознаване с основните класове на Java за работа със сокети.5. Създаване на клиент/сървър приложение с поточни сокети.6. Създаване на клиент/сървър приложение с дейтаграмни сокети.Стр.88Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиЗа допълнителна подготовка:• Описание на класовете за работа със сокети на Java на адрес:http://java.sun.com/j2se/1.4.2/docs/api/java/net/package-summary.html.• Stevens, W., UNIX Network Programming, Volume 1, Second Edition:Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN: 0-13-490012-X.• Harold, E., Java Network Programming 3 rd Ed., O’Reilly, 2004, ISBN: 0-596-00721-3.Стр.89Сокети – приложение.


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиПРИЛОЖЕН СЛОЙ. WORLD WIDE WEBWorld Wide WebСветовната мрежа World Wide Web (WWW) представлява разпределенаинформационна система, работеща върху световната компютърна мрежаИнтернет. Към момента web трафика съставлява около 80% от общиятрафика в Интернет. Създатели на системата са колектив от учени сръководител Тим Лий работещи в Европейската лаборатория по приложнафизика в Женева (CERN). Принципът на работа се основава на клиент-сървъркомуникация използваща протокол за трансфер на хиперинформация HTTP(HyperText Transfer Protocol). HTTP е стандартизиран протокол от приложнияслой на TCP/IP протоколния стек, който позволява работа със структурираноразпределени данни, описани чрез езика за хипертекст HTML (HyperTextMarkup Language). През 1994 година CERN и M.I.T. основават W3C .Принцип на работаЗа да работи една web информационна система е необходимо да имаправилно инсталиран, конфигуриран и стартиран web сървър. Компютърнасистема, на която е инсталиран трябва да има правилно зададени TCP/IPнастройки и връзка към Интернет. Необходимо е да има публичен IP адрес ииме под което да бъде откривана. В зависимост от вида на сървъра иработещите на него web приложения може да са необходими допълнителнинастройки както и връзка към база от данни. Клиентската програма, найчестоweb браузер, изпраща заявки към сървъра в точно определен формат.Сървърът обработва тези заявки и връща обратно резултата. Най-честокомуникацията със сървъра е по протокола HTTP, но е възможно също такада е по FTP, Gopher, WAIS, FISH и други.http://user:pass@example.com:8080/path/file?query=test#anchorпротокол паролапотребителадрес / име надомейнпорт име и път дофайл/ресурсзаявка спараметрифрагментФиг.1. Пример за унифициран идентификатор на ресурс (URI)Обработката на заявките от сървъра става по дисциплината URI(Унифициран идентификатор на ресурса – фигура 1). За достъп до отделнитеобекти се използва техния адрес зададен чрез URL (Uniform Resource Locator)или URN (Uniform Resource Name).Една типична HTTP сесия включва следните четири стъпки:• Клиентът инициира ТСР връзка на указания порт (порт 80 поподразбиране);Стр.90Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Клиентът изпраща заявка за ползване на определен ресурс• Сървърът отговаря, с резултата от получената и изпълнена заявка.• Сървърът прекратява връзката след изпълнението на заявката.Тъй като една типична web страница рядко се състои от един единственресурс, то за да се получи цялата страница е необходимо да се изпълнятмножество подобни заявки свързани с изпълнението на горните четиристъпки. Този недостатък е отстранен във версия 1.1 на HTTP протокола, катопо заявка на клиента сървъра оставя връзката отворена до получаване навсички ресурси.От гледна точка на клиентите на услугата Web се състои от голям наборот документи наречени Web страници, а понякога накратко и простостраници. Всяка страница може да съдържа връзки към други страници(хиперлинкове), които зареждат съответната страница при щракване върхутях. Този процес може да бъде безкраен.Клиент-сървър архитектурата, около която е изградена web мрежата, сесъстой от две части: клиентска – която в този случай най-често е представенаот web браузер и сървърна – представена от web сървър.Клиентска частЩе разгледаме най-типичния пример за програма работеща от страна наклиента – web браузер. Популярни браузери са: Mozilla, Firefox, Opera,Internet Explorer, Netscape Navigator, Lynx (текстов). Когато клиент щракневърху хиперлинк, web браузерът изпълнява следната поредица от стъпки:• Определя се URI идентификатора;• Открива се IP адреса на сървъра след консултация с DNS;• Отваря се TCP връзка към сървъра;• Изпраща се HTTP заявка;• Получава се отговор;• TCP връзката се освобождава;• Браузерът визуализира съдържанието на страницата или извиквапомощна програма;Устройството на всеки браузер най-общо включва следните съставниелементи:• HTTP клиент;• HTML интерпретатор;• Helper приложения и plug-in модули.За да може браузерът да визуализира правилно информацията отстраницата тя е представена чрез специален език – HTML, който е разгледанпо-надолу. Съвременните разпределени документи вече включват звук,Стр.91Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системиграфика и обекти, което изисква включването на допълнителни приложенияза визуализирането им. Браузерът определя типа на сваления файл с помощтана включения в отговора MIME (Multipurpose Internet Mail Extensions) тип.Ако той е от вградените типове файла се визуализира директно. В противенслучай браузерът се консултира със своята MIME таблицата. Таблицатаасоциира MIME типовите с приложенията за визуализирането им. Форматътна записите в MIME таблицата е следния:MIME type ::= type / sybtypeОсновните MIME типове са:• text – текстова информация;• image – изображения;• video – видео;• audio – аудио;• application – обекти, които се обработват извън браузера;• multipart – съобщение съдържащо повече от една част.Примерни MIME типове: text/html; text/plain; text/css; image/gif;image/jpeg; image/bmp; video/mpeg; audio/x-mpeg; application/pdf;application/msword; application/zip; application/octet-stream; multipart/mixedПриложенията използвани от браузера могат да бъдат от два типа: pluginмодул или helper приложение (фигура 2). Plug-in представлява модул,които при необходимост се зарежда в рамките на паметта на браузера. Товапозволява директен достъп до текущата страница, като за целта обаче енеобходим интерфейс за комуникацията между браузера и plug-in модула,различен за различните браузери. Пример за plug-in е macromedia flash player.Фиг.2. Browser operation: with plug-ins and with helper applicationПомощните приложения от своя страна са самостоятелни програмиизпълнявани като отделни процеси. Те не се нуждаят от интерфейс, катовместо това получават съдържанието през временно създаден файл. Примериза помощни приложения: Adobe Acrobat reader , QuickTime player и MS Word.Стр.92Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиСървърна частНай-общо сървърната част е представена от програма (Web сървър),която слуша на определен порт за постъпващи заявки, получава и обработвазаявките и връща резултат. Устройството на Web сървъра включва следнитеосновни компоненти (фигура 3):• listener – служи за приемане на TCP заявката;• workers – обработват постъпващите HTTP заявки.Най-популярните решения за Web сървър са: Apache, IIS, Tomcat и т.н.Фиг.3. Устройство на Web сървър.Действията които се изпълняват от Web сървъра включват:• Приема TCP връзка;• Извлича името на файла от заявката;• Намира файла на диска;• Изпраща файла на клиента;• Затваря връзката.Съвременните Web сървъри изпълняват много повече от приемане назаявки и връщане на файлове. Обслужването на една заявка може да е достасложен процес, който да включва някакво подмножество от изброените подолу стъпки в зависимост от конкретната заявка.• Извлича името на заявената страница;• Проверява самоличността на клиента;• Извършва проверка на правата на клиента;• Извършва проверка на правата на страницата;• Проверява се локалния кеш;• Извлича заявената страница от диска или я конструира акосъдържа динамично съдържание (CGI, PHP, JSP, ASP, и т.н.);• Определя MIME типът, който да включи в отговора;• Изпълняване на различни задачи като създаване на профил напотребителя, събиране на определена статистика и други;Стр.93Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• Връща отговора на клиента;• Добавя запис в журналните файлове (logs).Протокол за трансфер на хипертекст – HTTPПротоколът за трансфер на хипертекст HTTP е създаден през 1990г., апрез 1993г. излиза първата работна спецификация на HTTP 1.0. Актуалнатаму версия е HTTP 1.1. По долу са изброени основните характеристики наHTTP протокола:• Глобално URI – HTTP се основава на механизма заидентифициране URI. HTTP включва URI във всяка транзакция заидентифициране на ресурсите в Web;• Обмен по схемата заявка-отговор – клиентът отправя HTTPзаявка и получава отговор от сървъра. Посоката на потока е винагиот клиента към сървъра, сървърът никога не инициира Web трафик;• Липсва съхраняване на състоянието – HTTP представляваstateless протокол, т.е. не пази информация за състоянието насесията между клиента и сървъра. В началото това е целяло да ненатоварва сървъра със задачата за пазене на сесия. По-късно обаче,с появата на приложения като електронната търговия (e-commerce)това се оказало проблем, който бил разрешен с въвеждането нат.нар. cookies, които представляват файлове от страна на клиентасвързани със запомнянето на състоянието на връзката.• Метаданни – Представлява информация отнасяща се за ресурса,без да е част от него. Метаданните могат да бъдат включвани кактов заявките така и в отговорите. Примери за метаданни се явяват:размер на ресурса, тип на съдържанието, време на последнатамодификация и т.н. Включването им в транзакциите може даоблекчи комуникацията между клиента и сървъра по няколконачина:o Информацията за кодирането на съдържанието би могла даoоблекчи обработката;Метаданните могат също така да бъдат използвани отполучателя за да се убеди, че е получена точно информациятакоято е очаквана.o Сървърът може да окаже времето на последнотомодифициране на ресурса, което да се използва приуправление на кеширането.HTTP протоколът поддържа различни методи за заявка от страна наклиента. Методът на заявка служи за да укаже на сървъра какво действиетрябва да извърши над заявения ресурс. По-важните методи са:• GET – заявка за получаване на ресурс;• POST – заявка за предаване на данни към даден ресурс;Стр.94Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системи• PUT – заявка за поставяне на ресурс на даден URI;• DELETE – заявка за изтриване на ресурс.Структурата на заявката включва:• заглавна част (header)o поддържани типове (MIME);o поддържани кодирания (encoding);o поддържани кодови таблици (charset);o дата и час;o идентификация на потребителя;• тяло на съобщението (body)При осъществяване на връзка и обмен между клиента и сървъра всякаквазаявка се характеризира със собствен код на състоянието, който указва дализаявката е обслужена коректно или е възникнала грешка. По-долу саизброени по-важните кодове и групи от кодове:• 1xx – информационни:o 100 – Continue;o 101 – Switching protocol;• 2xx – успех:o 200 (OK);o 201 (Created);o 202 (Accepted);o 204 (No New Content);• 3xx – пренасочване:o 301 (Moved Permanently);o 302 (Moved Temporarily);• 4xx – клиентска грешка:o 400 (Bad Request);o 401(Unauthorized);o 403 (Forbidden);o 404 (Not Found);• 5xx – грешка при сървъра:o 500 (Internal Server Error);o 501 (Not Implemented); 503 (Service Unavailable).Език за хипертекст – HTMLЕзикът за хипертекс HTML позволява създаването на web страници коитовключват текст, изображения, линкове към други страници и много други.Използва се за описване на това как трябва да бъде форматирана страницатаот страната на клиента. За целта се използват предварително дефиниранитагове. Повечето тагове спазват синтаксиса: за начало и за край. Таблица 1 включва някои от най-популярните HTMLСтр.95Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системитагове. Повече информация за HTML и различните тагове може да получитена официалния сайт на WWW консорциума (http://www.w3c.org/).Табл.1: HTML тагове.ТагОписание… Дефинира началото и края на HTML кодирана страница… Отделя заглавната част на web страницата… Задава заглавието на страницата… Отделя тялото на страницата… Отделя заглавна част от ниво n…Определя текста по средата да се визуализира като bold…Определя текста по средата да се визуализира като italic… Определя текста да е центриран хоризонтално…Огражда неподреден списък…Огражда подреден (номериран) списък…Огражда един елемент от списъкпредизвиква преминаване на нов ред…Отделя параграфВмъква хоризонтална линия Вмъква изображение… Вмъква хиперлинкxHTMLС времето HTML езика постоянно се развива. Последната му версияxHTML (extended hypertext markup language) е силно повлияна от XML езикаи заимства много от концепциите му. Като начало таговете вече няматпредефинирано значение. За да се запази съвместимост с HTML 4 значениетона вече използваните тагове се задава в XSL файлове. Съществуват 6 основниразлики между xHTML и HTML 4:• xHTML страниците трябва да се придържат стриктно къмстандарта;• всички тагове и атрибути трябва да съдържат само малки букви;• затварящите тагове са задължителни дори и за тагове които няматстандартно затварящ таг като . Такива тагове трябва да сеизписват като ;• стойностите на всички атрибути трябва да се ограждат в кавички;• таговете трябва да са правилно вложени един в друг;• всеки документ трябва да оказва своя формат.Повече за xHTML и разликите му с HTML 4 може да научите отстраницата на WWW консорциума (www.w3c.org).Инсталиране и настройване на Apache Web сървърЕдна от най-популярните реализации на web сървър представлява Apacheweb сървъра. Той е с отворен код и се разпространява свободно. СъществуваСтр.96Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системивъв версии за повечето операционни системи.Под ОС WindowsЗа целите на упражнението ще бъде разгледана само инсталацията подОС Windows ХР. Инсталационните файлове могат да бъдат намерени наофициалната страница на Apache проекта (http://httpd.apache.org). Свалете гина сървърната машината и ги стартирайте. По време на инсталацията щебъдете попитани за име на домейн и име на сървър. В случай, че неразполагате с такива въведете localhost и на двете места. Инсталационнатапрограма използва тези стойности за да създаде конфигурационен файл.Винаги можете по-късно да ги промените ръчно. След успешнотоинсталиране сървърът ще се стартира по-подразбиране. Това може да бъдепроменено от Control Panel Administrative Tools Services.Ако искате да направите промени по конфигурацията на сървъра енеобходимо да отворите в текстов редактор файла httpd.conf (стандартно сенамира в C:\Program Files\Apache Group\Apache\conf\httpd.conf). Всеки път когатомодифицирате конфигурацията е необходимо да рестартирате сървъра следтова за да бъдат възприети промените. Редовете маркирани с диез (#)представляват коментари.За да проверите дали правилно сте инсталирали и конфигурирали webсървъра заредете http://localhost/ в адресното поле на web браузер. Ако всичкое наред трябва да ви се зареди стандартна страница на Apache. Стандартноweb страниците се намират в C:\Program Files\Apache Group\Apache\httpdocs\, къдетоможете да добавяте ваши собствени страници и ресурси.Под ОС Unix/LinuxСъществуват няколко начина да инсталирате Apache под Unix/Linux. Акоразполагате с графична среда можете да използвате пакетен мениджър. Впротивен случай може да използвате някое от конзолните приложения заразличните дистрибуции (apt-get, rpm, и т.н.). Общото при тези методи е, чеинсталирате предварително компилирана версия. Най-универсалния начин заинсталиране обаче си остава чрез собственоръчното компилиране наизходните файлове на сървъра. Те се разпространяват свободно и са наличнипрез web сайта на Apache проекта (http://httpd.apache.org). Обикновено серазпространяват архивирани и за целта е необходимо след свалянето да бъдатразкомпресирани. След това е необходимо да изберете директорията сразкомпресираните изходни файлове за текуща.Следващата стъпка е конфигуриране на инсталацията за конкретнатаплатформа и изисквания. За целта използвате включения в дистрибуциятаскрипт файл configure. Ако желаете да използвате стандартните настройкипросто стартирайте скрипта. В противен случай следва да му подадете катопараметри от командния ред различните настройки. Една от най-важнитенастройки е тази, оказваща къде ще бъде инсталиран web сървъра “--prefix”.Стр.97Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени СистемиСъществуват и допълнителни настройки указващи къде да бъдат създадениразличните конфигурационни файлове и т.н.Ако желаете да включите модули различни от стандартните използвайтеопцията --enable-module, където module трябва да бъде заменено с името намодула, който желаете да включите. Понякога е нужно да укажете и пътя докомпилатора, библиотеките и хедърните файлове. Примерно следващия редуказва, че сървъра ще бъде инсталиран в /usr/local/bin/apache директорията, асъщо и че два модула ще бъдат допълнително включени (mod_rewrite иmod_speling):$./configure --prefix=/usr/local/bin/apache \--enable-rewrite=shared \--enable-speling=sharedСлед конфигурирането на инсталацията се преминава и къмкомпилирането на изходните файлове и инсталирането на Apache HTTPсървъра. Това се изпълнява от следващите две команди.$ make$ make installАко желаете да направите промени по конфигурацията на сървъра енеобходимо да отворите в текстов редактор файла httpd.conf. В текущия тойследва да се намира в директорията PREFIX/conf/, където PREFIX е указанатана configure скрипта директория. Ако е инсталиран по някой от другитеметоди може да се намира в директорията /etc/apache/. Отново след всякапромяна е необходимо да рестартирате сървъра за да бъдат възприетипромените.$ vi PREFIX/conf/httpd.confСлед инсталирането на сървъра той се стартира автоматично. Вие можетеда го управлявате ръчно като използвате командата apachectl, която епоказана по долу. Освен start, поддържани опции са restart и stop.$ PREFIX/bin/apachectl startПовече информация за настройката и инсталирането на Apache webсървъра може да потърсите в директорията /PREFIX/docs/manual или на адресhttp://httpd.apache.org/docs/, където ще намерите последната версия надокументацията.Задачи:1. Инсталирайте и настройте Apache Web сървър.2. Създайте примерен HTML документ и го добавете на подходящотомясто заедно с ресурсите към него.3. Изпълнете стъпките:- стартирайте Web сървъра;- стартирайте анализатор на трафик;- отворете браузер и заредете пътя до създадения в предходната точкаСтр.98Приложен слой. World Wide Web


Виртуална Лаборатория по Компютърни Мрежи и Разпределени Системидокумент.- разгледайте обменените между клиента и сървъра пакети.4. Реализиране на собствен многонишков Web сървър поддържащ GETзаявки. Език за програмиране по избор. Изисквания към сървъра:- да получава конфигурационните си параметри през файл;- конфигурационните параметри да включват:root директория;номер на порт;максимален брой на worker нишките.- да съхранява журнална информация (log) във файл;- да връща в отговор поискания файл или подходящо съобщение загрешка;- да включва правилния MIME тип.- Изпълнете отново задача 3 за новосъздадения сървър.За допълнителна подготовка:• Кирил Боянов, Хр. Турлаков, Д. Тодоров, Л. Боянов, Вл. Димитров,В. Желязков, Принципи на работа на компютърните мрежи –ИНТЕРНЕТ, София, 2003.• Krishnamurthy, B. and J. Rexford, Web Protocols and Practice:HTTP/1.1, Networking Protocols, Caching, and Traffic Measurement,Addison-Wesley, 2001, ISBN-10: 0201710889.• Tanenbaum, Andrew, “Computer Networks, Fourth Edition”, PrenticeHall 2003, ISBN: 0-13-066102-3.• World Wide Web Consortium – http://www.w3.org/• Apache Web Server official website – http://httpd.apache.org• Apache Web Server documentation site – http://httpd.apache.org/docs/• Example of a simple multithreaded Web server –http://java.sun.com/developer/technicalArticles/Networking/Webserver/Стр.99Приложен слой. World Wide Web

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!