Тема 8.

Управление на канала ETHERNET. Превключватели и мостове.

Ethernet кадър

EthernetFrame.jpg

Ethernet е сравнително стара технология. Като такава, тя е претърпяла много промени и е стандартизирана по няколко различни начина. Затова, въпреки, че основният формат на Етернет-кадъра е един и същ, в различните версии има малки различия.

Всички Ethernet кадри съдържат следните полета:

  • Preamble (8 B) - 7 байта, съдържащи поредицата 01010101, и един байт със стойност 10101011 - Start-of-frame Delimiter1. Наричана понякога "преамбюла", тази част служи основно за синхронизация на електрическото оборудване на мрежовия адаптер. Затова и то не се счита за част от кадъра и не влиза в кадровия буфер.
  • Source и Destination Address (6 B)
  • FCS (Frame Check Sequence) (4 B) -

Ethernet (MAC) адрес

Ethernet-адресите представляват 48-битови адреси на станциите на канално ниво (още наричани физически адреси). Те имат "локално" значение, тъй като идентифицират станцията само само пред станциите в нейния мрежов сегмент (~ локална мрежа).
Адресното пространство се дели наполовина. Адресите, започващи с 0, се отделят като обикновени и могат да бъдат задавани на реални устройства. Адресите, започващи с 1, се отделят за multicast-комуникация.

Далеч по-малки в първоначалния вариант на технологията, с нейното разпространение се налага адресните полета да бъдат удължени. Тогава се появява идеята физическият адрес на всяко отделно мрежово устройство да може да служи за негов глобално уникален идентификатор. Това довежда до въвеждането на огромното (ообено за тогавашното време) 48-битово адресно пространство2. В направата му също така е била е залегнала и идеята по стойността на адреса да може да се определи географското положение на адаптера (в коя държава се намира), но това бързо се оказало неосъществимо.

След появата на Ethernet през 1974та година, няколко фирми се заемат с разработки на основата на тази технология. В един момент с нея се заема и работна група 802.3 към IEEE. Поради неразбирателства между различните разработчици и известен период на "хаотично" адресиране, IEEE поема контрола върху разпределението на адресите и започва да раздава блокове от адреси на различни производители. Така адресното пространство се дели още веднъж: първите 24 бита от всеки адрес указват производителя на съответното устройство, а вторите 24 играят ролята на (уникален) сериен номер. Възможно е някои от най-големите производители да са изчерпали своето адресно пространство и да са започнали наново от 0, разчитайки на факта, че старите адаптери са извън употреба.

Въпреки идеята за глобалната уникалност, на почти всички съвременни устройства MAC-адресът може да се променя. В доста случаи това е полезно, но създава потенциални проблеми - например MAC spoofing. Освен това, възможно е един интерфейс да има няколко MAC-адреса (чрез симулиране на повече - логиката диктува 1 физическа карта да има 1 адрес).
В момента в Ethernet се използват основно 3 различни адресни пространства, с които няма да се занимаваме.

Видове Ethernet кадри

Съществуват няколко вида кадри: 802.3 спецификацията, оригиналният Ethernet II (DIX), Ethernet (802.3 SNAP)3 и други . Ще разглеждаме Ethernet II, тъй като той е най-разпространеният вид, и другите с малко се отличават от него.

Ethernet_Type_II_Frame_format.png

Полетата Source, Destination, FCS са общи. Полето EtherType/Size, наричано още Type/Length, има големина 2 байта и различно значение в различните варианти - в Ethernet II, то указва типа на капсулирания в кадъра протокол от ниво 3, докато в 802.3 то указва дължината на кадъра. Тъй като, обаче, се счита за лошо да се нарушава капсулацията, то в Ethernet II стойността на това поле е фиксирана на 0x0800 (IPv4, известно просто като IP).

Чрез определяне на числото 0x0600 за минимална стойност на EtherType, се позволява двата типа кадри да бъдат разграничавани. Числото е избрано, тъй като има стойност 1536, която е по-голяма от максимално допустимата дължина на кадъра, 15224 (тук за дължина се счита самият кадър, без preamble и без така наречените idle-сигнали, тъй че това 1522 не е онова 1540 от предишната тема).
Някои основни стойности на полето EtherType:

  • 0x8137 - IPX - разработен от Xerox, до около 2000 г. доста известен, по едно време по-популярен от IP, поддържа се от StarCraft.
  • 0x0800 - IPv4 - IP протокол, версия 4, използван в момента.
  • 0x0806 - ARP
  • 0x8035 - RARP
  • 0x809B - AppleTalk

Ethernet SNAP използва две запазени стойности на полето EtherType, които указват продължение, а след полето следват още 5 специфични за този формат полета, които няма да се разглеждат.

Мрежови устройства от второ (и първо) ниво

Коаксиалната мрежа е пасивна среда - тя не извършва нищо повече от това, да пренася електрическите сигнали. Като такава, тя има проблеми със затихването на сигнала и с колизиите, които почти неминуемо се случват в нея. Още един съществен проблем е, че мрежовият сегмент представлява едно парче кабел, и ако един съединител се повреди, трафикът спира в целия сегмент. Тези недостатъци, заедно с понижилите се цени, диктуват прехода към активно мрежово оборудване (съответно, към друг тип кабели). Общото за активните мрежови устройства е, че те по някакъв начин влияят на трафика в мрежата - например, най-простото въздействие е прочитането и препращането на един кадър (неговото повторение). Според функциите им, се разграничават няколко вида мрежови устройства.

Повторител (Repeater)

Най-простото от всички мрежови устройства, използва(ло) се при коаксиалните мрежи. Повторителят получава сигнал по единия си интерфейс (порт, линия) и го изпраща по другия, компенсирайки спада на силата на сигнала поради изминатото разстояние. Повтарянето може да се извърши чрез просто усилване на сигнала или чрез съхраняване и излъчване наново на кадъра. Ефектът от повторителя е, че дължината на мрежовия сегмент се увеличава. Лошият ефект е, че се удължава времето за разпространение на сигнала, а същевременно могат да се включат още станции, което повишава много вероятността за колизии. За коаксиалните мрежи е установено ограничение: максимум 5 мрежови сегмента могат да се свържат с 4 повторителя, като (е хубаво) в не повече от 3 от тях да има мрежови станции.
Повторителите отмират с коаксиалните мрежи. До известна степен обаче, те се използват в безжичните мрежи5. Повторителите работят на физическо ниво.

Хъб (Hub)

Навлиза заедно с мрежите, изградени с кабели тип усукана двойка (Twisted pair). Просто мрежово устройство: първите хъбове са пасивни - не усилват и не препредават получените сигнали, единствено служат за физическа централна точка на мрежата. Пасивните хъбове са излезли от употреба; заменени са от активни хъбове - те действат подобно на многопортов повторител: получават сигнал на някой свой порт, след което го препращат по всички останали портове6. Всяка канална станция се свързва към порт на хъба чрез кабел "усукана двойка", който предоставя full-duplex комуникация, като така физическата топология става звезда (за сравнение, коаксиалната мрежа е топология шина). Подобно на повторителите, хъбовете свързват отделни мрежови сегменти в една мрежа - постига се чрез свързване на хъбове един към друг, така нареченото daisy chaining. Отново подобно на повторителите, хъбовете не разпознават колизиите. Затова, понеже понятието мрежов сегмент се размива, е коректно да се говори за collision domain. Хъбовете също излизат от употреба (направо може да се счита, че вече не се използват). Те работят на физическо ниво.

Суич (Switch)

Суичовете са следващото хубаво нещо, което се появява в twisted pair-мрежите и измества хъбовете. Суичът е много подобен на хъба, с една съществена разлика: той съхранява таблица на MAC-адресите. В началото на работата си, суичът работи като хъб - пропуска получените кадри по всички свои портове. С всеки нов кадър обаче, той попълва своята таблица, като отчита по кой порт е пристигнал кадърът и кой е source адресът на кадъра. По този начин той научава "кой MAC-адрес на кой порт се намира".
При получаване на кадър, чийто destination address присъства в таблицата, суичът проверява в таблицата кой порт отговаря на този адрес, и препраща кадъра само по този порт. С помощта на този механизъм суичът намалява в голяма степен мрежовия трафик.

Процесът на работа може допълнително да се ускори по следния начин: Първи в кадъра е destination адресът. Той се прочита и докато пристига останалата част от кадъра, суичът извършва търсенето в таблицата. Докато пристигне source адресът, суичът е намерил съответния порт. Тогава той изпраща destination и source адресите по съответния порт, след което започва директно да прехвърля данните на пристигащия кадър от единия към другия интерфейс. Тази техника се нарича cut-through switching. Недостатъкът обаче е, че ако кадърът е повреден, то той ще се предаде повреден на получателя. За да се проверява за повредени кадри, е нужно кадърът да се съхрани (буферира) и да му се пресметне CRC, след което, ако е наред, да се изпрати. Това е техниката store and forward.
Суичовете работят на канално (второ) ниво. Те ограничават collision домейните, но образуват така наречения broadcast domain - тъй като свързаните чрез суичове станции са част от една и съща мрежа, broadcast пакетите се предават до всички тях, по всички портове на суича (може би без първоначалния). Суичовете работят на второ ниво (канално) - те работят с MAC-адресите на кадрите.

Мост (Bridge)

Мостът е устройство, което свързва 2 или повече мрежови сегмента.7
Идеята е следната: мостовете са един вид регулировчици. Класическите Мостове имат само по 2 порта и целта им е да преценят дали да пуснат съобщението което е дошло от единия порт на другия или не. Според А. Петков има и с повече от 2 порта … Реално от около 10-на години не се произвеждат и не се продават мостове, те са заменени изцяло от switch-овете. Това ще рече, че каквото е можел в миналото моста сега го може суича8.

Spanning tree protocol - Това е нещото което прави мрежите това което са днес, по начина по който ги познаваме. Това е "набор" от алгоритми, целящи да премахнат циклите в графа ни (мрежовите устройста са върхове, кабелите - ребра). STP работи и при Суичовете (и при Мостовете за контролното). Алгоритъма работи с поставяне на тежести(цени) на връзките, т.е. ако имаме от устройство А 2 връзки до устройство Б ще се сложат различни цени на портовете. Идеята е докато е наличен по-лекия (евтиния) път той се избира. В момента в който падне това трасе се минава на по-тежката връзка. Разковничето се крие в това какво става когато добавяме и/или махаме нови устройства (не крайни потребители или така наречените host-ове, а мрежови устройства за комуникация).

Допълнително

How does Ethernet work @ HowStuffWorks.com
RFC 1042 - Пренос на IP пакети в 802.2 мрежа, дефинира се SNAP
И още за SNAP

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License