Тези два слоя адресират и маршрутизират пакетите, тези слоеве работят като определят как пакетите ще се привижват от и към мрежата. Протоколите добавят хедъри към пакетите подобно на бележка към писмо. Когато даден хост получи пакет той го проверява за да разбере дали да го обработи или игнорира.
Слой мрежов интерфейс
Най-ниското ниво в TCP/IP стека е слоя на мрежовия интерфейс. Основната му задача е да определи как компютъра се свързва към мрежата. Това е важна част от процеса на пренос на данни, защото данните трябва да бъдат доставени до определен хост посредством връзка в мрежата и данните излизайки от компютъра трябва да следват правилата на мрежата в която се намира той.
Слоя мрежов интерфейс на TCP/IP не определя типа на мрежата в която се намира хоста, точно обратното мрежата определя какъв драйвер да използва слоя мрежов интерфейс. Хоста трябва да следва правилата за предаване и получаване на данни в зависимост от топологията на мрежата в която се намира. Слоя мрежов интерфейс служи за предаване и получаване на пакети, когато пакет е получен от мрежовата карта слоя мрежов интерфейс определя дали да предаде пакета нагоре по нивата за дообработка базирайки се на хардуерния адрес. Когато се създава пакет за изпращане той се движи от горните нива до слоя мрежов интерфейс, който определя дали да го постави в мрежата.
В слоя мрежов интерфейс се добавя хедър, който съдържа адресна информация. В хедъра се съдържа адрес наречен хардуерен адрес.
Хардуерни адреси
Във всеки пакет има хедър, който съдържа адресна информация. Този хедър е необходим, за да може информацията да достигне до правиното място. Тази адресна информация идва от физическия адрес отпечатан на всяка мрежова карта при производството и. Този адрес няма да се промени през целия живот на картата (почти вярно прочетете тук как се променя хардуерния адрес). Този адрес е известен още като:
- Хардуерен адрес
- Media Access Control (MAC) адрес
- Етхернет адрес
- Физически адрес
- Адрес на мрежовата карта
MAC адреса е уникална стойост свързана с мрежовата карта било тя жична или безжична. Тези адреси са уникални за всеки мрежов адаптер.
MAC адресите представляват 12 цифрено шестнадесетично число. По правило, MAC адресите се записват по един от следните два начина:
MM:MM:MM:SS:SS:SS
MM-MM-MM-SS-SS-SS
Например – 00:A0:C9:F1:C3:A3
Първата половина на MAC адреса съдържа идентификационния номер на производителя на мрежовата карта. Втората част представлява сериен номер за адаптера произведен от съответния производител.
За да може пакет от данни да бъде доставен, той трябва да съдържа хардуерния адрес на получателя. Всеки пристигнал при мрежовата карта пакет, бива преглеждан за информацията касаеща хардуерния адрес, за да се определи дали пакета е бил предназначен за този хост. Ако хардуерния адрес съвпада с хардуерния адрес на получилата го мрежова карта или ако пакета е броудкаснат, той бива предаван на горните нива за обработка. Ако адреса на пакета се различава той бива игнориран.
Броудкаст пакети
Всеки пакет трябва да бъде адресиран до хост, с придвижването на пакета по мрежата всеки хост ще го преглежда за хардуерния адрес, за да види дали той съвпада с неговия. Обаче има пакети, които са предназначени за всички хостове в мрежата. Тези пакети са наречени броудкаст пакети. Броудкаст пакета съдържа хардуерен адрес FF:FF:FF:FF:FF:FF
Интернет слоя
Интернет слоя съдържа протоколи отговорни за адресиране и маршрутизиране на пакети. Той съдържа няколко протокола включително:
- Internet Protocol (IP)
- Adress Resolution Protocol (ARP)
- Internet Control Message Protocol (ICMP)
- Internet Group Message Protocol (IGMP)
Вече научихме, че пакетите проверявани от слоя мрежов интерфейс трябва да имат хардуерен адрес, когато пакетите биват предвижени от слоя мрежов интерфейс към интернет слоя те трябва да имат и IP адрес. Използвайки IP адреса, интернет слоя предоставя нужните протоколи за определяне на хардуерния адрес за маршрутизиране на пакет до получателя му.
Internet Protocol (IP)
Интернет протокола е основния протокол в интернет слоя на TCP/IP комплекта. Този протокол е отговорен за определяне адресите на получателя и изпращача на всеки пакет.
Мрежовите администратори назначават уникален IP адрес на всеки хост в мрежата. Докато MAC адреса се отнася към мрежовата карта, IP адресът е логическия адрес на хоста. Всеки хост в TCP/IP мрежата има уникален адрес. Пример за IP адрес е: 192.168.10.20
Този адрес е определен от администратор и трябва да е уникален за мрежата в която се намира. Част от адреса описва TCP/IP мрежата в която хоста се намира, а другата част е адреса на хоста.
Към всеки пакет се прикрепя IP хедър, който съдържа IP адреса на източника и получателя. IP определя дали хоста е локален или отдалечен като сравнява адресите на изпращача и получателя. Получателя е локален ако IP определи, че получателя е в същата мрежа, отдаечен е когато е в друга мрежа. IP може да определи това базирайки се на IP адреса на изпращача и подмрежовата маска (subnet mask) на получателя.
Подмрежовата маска е параметър включен във всеки IP адрес и се използва, за да определи коя част от IP адреса е адреса на мрежата и коя част е адреса на хоста.
Определяне дали предназначението е локално или отдалечено
IP трябва да определи как да закара пакета до назначението му. Ако пакета е адресиран до хост от локалната мрежа, TCP/IP може да комуникира директно с хоста. Aко хоста е на отдалечена мрежа (мрежа различна от тази в която се намира хоста; отдалечената мрежа е от другата страна на маршрутизатора), TCP/IP трябва да изпрати пакета през подразбиращия се шлюз (default gateway).
Подразбиращия се шлюз, още наричан рутер(router – маршрутизатор) е адрес на хост в мрежата, който предлага маршрут за излизане навън. Мрежовия шлюз свързва две мрежи помежду им, за него може да се мисли като входна врата.
Ако получателя хост е локален, IP трябва да получи хардуерния адрес на хоста дестинация. Ако хоста дестинация е отдалечен, IP гледа в маршрутната таблица (routing table) за ясно определен маршрут до тази мрежа. Ако има ясно определен маршрут, IP трябва да получи хардуерния адрес на шлюза посочен в маршрутната таблица. Ако няма ясно определен маршрут, IP трябва да получи хардуерния адрес на подразбиращия се шлюз.
Определяне на хардуерния адрес
Следващата графика скицира процеса на вземане на решение който TCP/IP ползва, за да реши чий IP адрес е нужен за изпращането на пакета.

При въвеждане IP адреса на хост мрежовия администратор записва и адреса на подразбиращия се шлюз. Пакета ще бъде изпратен към хардуерния адрес на този шлюз ако е предназначен за хост от друга мрежа. След това шлюза ще определи дали търсения IP адрес се на мира на някой от другите му интерфейси или трябва да препрати този пакет към друг маршрутизатор. Ако адреса е на някой от другите интерфейси, IP може да изпрати този пакет през интерфейса в мрежата местоназначение. IP на шлюза премахва оригиналния IP хедър и поставя нов IP хедър на пакета. Сега шлюза е източника а получателя е или хоста местоназначение или следващия шлюз по пътя към целта.
Когато пакета стигне до мрежата в която се намира хоста местоназначение идва ред на ARP (Adress Resolution Protocol), IP използва този протокол за да получи хардуерния адрес на търсения хост. ARP намира хардуерния адрес на търсения хост по неговия IP адрес.
Adress Resolution Protocol (ARP)
ARP е протокол, който може да превърне IP адреса в хардуерен адрес. След като хардуерния адрес е определен ARP поддържа тази информация за кратко време. Когато даден хост иска да комуникира с друг хост имайки само IP адреса му, тогава ARP ще попита – „Хей, какъв е твоя хардуерен адрес?” и ще почака отговор.
Първото място на което ARP търси разрешение на въпроса е ARP кеша. ARP кеша е пространство в RAM-а където ARP пази IP и хардуерните адреси които е превърнал. Ако ARP успее да намери хардуерния адрес в кеша то пакета бива препратен към този хардуерен адрес без допънителни процедури. Ако IP адреса не е в кеша, ARP ще броудкастне ARP запитване.
След като даден IP адрес бива превърнат в хардуерен, той се помества в ARP кеша за 2 минути. Ако IP поиска превръщане на същия IP адрес през следващите 2 минути то той ще остане в кеша още две минути. Даден запис моце да остане в ARP кеша максимум 10 минути, незевисимо дали е бил търсен през последните 2 минути.
Кода по-долу показва пример за съдържанието на ARP кеша. ARP кеша съдържа 3 колони: в първата са IP адресите, съответстващите им хардуерни адреси са във втората колона а в третата има информация за това как записа е попаднал в кеша. Записа бива динамичен (dynamic) когато е открит с помоща на ARP броудкаст и статичен (static) когато е бил ръчно въведен.
Комантата „arp –a” въведена в command prompt на Windows или командния ред на Linux показва ARP кеша.
C:\USERS>arp -a
Interface: 192.168.0.129 --- 0xa
Internet Address Physical Address Type
192.168.0.1 00-0f-66-83-97-0e dynamic
192.168.0.255 ff-ff-ff-ff-ff-ff static
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.252 01-00-5e-00-00-fc static
239.255.255.250 01-00-5e-7f-ff-fa static
C:\USERS>
Използване на броудкаст за определяне на хардуерния адрес
Ако ARP не открие IP адреса в ARP кеша, ARP протокола започва ARP запитване. Това запитване представлява броудкаст в локалната мрежа. В общи линии това запитване казва, който и да е 192.168.1.15 (примерно) трябва ми твоя хардуерен адрес. На следващата фигура е показан пример за ARP запитване:

ARP броудкаста е адресиран до всеки хост в мрежата, като за получател е оказан хардуерен адрес FF:FF:FF:FF:FF:FF. ARP броудкаста съдържа IP адреса на търсеното местоназначение, така че получателя е идентифициран. ARP броудкаста съдържа и хардуерния адрес на източника, което ускорява отговора от получателя. Когато получателя получи и разпознае пакета като предназначен за него, той поставя хардуерния адрес и IP адреса на източника в своя собствен ARP кеш. Понеже хардуерния адрес на източника е вече в ARP кеша, адреса ще бъде вече известен, когато се изпраща ARP отговор към оригиналния източник.
Когато ARP пакет е получен на всеки хост, мрежовата карта „взима” пакета от кабела и го предава нагоре през слоя мрежов интерфейс към интернет слоя и ARP. ARP на хоста преглежда пакета, за да установи дали пакета пита за хардуерния адрес на този хост. Ако ARP пакета не е за този хост, той се отхвърля. Ако е за този хост, хардуерния адрес и IP адреса на източника се поставят в ARP кеша и се изпълнява ARP отговор. Хардуерния адрес на целта е включен в този ARP отговор, когато се получи ARP отговор, хардуерния адрес и IP адреса се поставят в ARP кеша за 2 минути. На следващата фигура е показан ARP отговора от 192.168.1.15, той се изпраща директно към 192.168.1.199:

Internet Control Message Protocol (ICMP)
ICMP е протокол използван предимно за изпращане на съобщения за грешки, извършване на диагностика и контролиране на потока от данни. Пример за съобщение за грешка и контрол на трафика е ICMP source-quench пакет изпратен от рутера към хост, за да каже на хоста да намали понеже рутера е претоварен.
Рутерите позволяват на хостовете да изпращат информация колкото е възможно по-бързо ако трафика при рутера не е прекалено голям. Ако това стане рутера праща на хоста source-quench съобщение като ICMP пакет искащ от този хост да намали скоростта. Когато хоста получи такова съобщение той ще спре и после бавно ще увеличава скоростта докато не получи ново source-quench съобщение.
Диагностика с ICMP и Ping
Пример за използване на ICMP като инструмент за диагностика е със приложението ping (ping означава Packet InerNet Grouper). Администраторите ползват ping за да изпращат четири ICMP ехо запитвание към определен хост като искат от него да отговори на тези пакети. ICMP поставя малко данни в пакета и иска тези данни да се изпратят обратно. Ако данните се върнат, администратора може да счита че има успешна връзка към хоста. Ако данните не се върнат тогава имаме проблем с връзката.
За да пингнете хост отидете в command prompt и напишете: ping ip adress
Изследване на ping пакетите
Ето какво се случва когато хост источник (192.168.1.10) пингва хост цел (192.168.1.15).
1. Изпраща се ARP запитване за хост цел 192.168.1.15
2. Получаване на ARP отговор при хоста източник 192.168.1.10 с хардуерния адрес на 192.168.1.15
3. Изпраща се ICMP пакет от 192.168.1.10 към 192.168.1.15 изискващ отговор (echo)
4. Изпратен е ICMP отговор (echo) от 192.168.1.15 към 192.168.1.10
5. Стъпки 3 и 4 се повтарят още 3 пъти.
Изпращането на ICMP пакет е отличен метод за тестване на връзката, той не предизвиква натоварване на получатея за да изпрати ICMP отговор. Все пак ако един ICMP пакет не предизвиква натоварване, то хиляди ICMP пакета биха могли да предизвикат натоварване.
Internet Group Management Protocol (IGMP)
IGMP е протокол, който позволява предаването на поток (stream) от информация от един хост към няколко получателя едновременно. Поток (stream) са серия от изпратени пакети за които не се изчаква потвърждение, че са получени. Повечето TCP/IP връзки се осъществяват като един хост изпраща информация към друг хост, или когато един хост изпраща информация до всички хостове в мрежата с помоща на броудкаст. В контраст на това IGMP пакетите са насочени към резервирани IP адреси (това са такива IP адреси, които немогат да се използват като валидни адреси на хостове) и всеки хост, който иска да получи данните трябва да слуша на адреса. С други думи хоста не очаква да получи информацията на своя адрес, той трябва да поиска да получи информацията изпратена към резервирания IP адрес.
Получаващия адрес ползван от IGMP се нарича multicast адрес. Тези резервирани IP адреси немогат да се използват като адреси на хостове, с помоща на специален софтуер, TCP/IP хост може да слуша за данни изпратени към мултикаст адреса. Когато няколко хоста слушат за данни на определен адрес и данни бъдат изпратени към този адрес, тогава всички хостове ще получат данните. Всички тези пакети имат IGMP хедър.
Много устройства в мрежата ползват IGMP пакети за обменяне на информация. Някои рутиращи протоколи ползват IGMP за обмен на маршрутните таблици. Windows Internet Naming Service (WINS) може да ползва IGMP за да обменя база данни. В интернет IGMP се използва за прехвърляне на информация до няколко хоста едновременно.
Изпращане на поточно Аудио и Видео с IGMP
IGMP може да бъде използван като протокол за изпращане на поточен звук и видео, когато данните трябва да стигнат от един източник до много получатели. Вместо да адресира и проследява всеки пакет към всеки хост, което би било невъзможно данните се предават към мултикаст адрес и получателя слуша и получава на този адрес.
Всеки хост, които иска да получи потока към мултикаста трябва да извести рутера си да се включи към група рутери искащи да получат потока от данни. Хоста изпраща IGMP към рутера си за да поиска данните. При предаване на данните от източника, рутерите предвижват потока през рутерите поискали да се включат в групатса.Посе рутерите предават данните към хоста, който ги е поискал.
Някои от най големите файлове предавани през интернет са аудио и видео. Streaming е техника за предаване на такива данни по начин позволяващ те да бъдат обработвани като стабилен и постоянен поток. Без поточност големите мутимедийни файлове биват разбивани на малки пакети, които достигат крайните потребители в разбъркан вид. Когато приложението се опита да покаже мултимедийния файл разбърканите пакети предизвикват накъсана презентация. С нарастващата популярност на интернет и нуждата от предаване на големи мутимедийни файлове гладко и подредено, поточните технологии стават все по-важни. Повечето потребители нямат достатъчно бърз интернет да свалят големите мултимедийни файлове бързо, с поточна техника уеб браузърите могат да започнат да показват данните преди целия файл да е пристигнал.
При поточния процес, хостът получил данните ги събира и предава нагоре по протоколния стек към приложението възпроизвеждащо данните. Приложението конвертира данните в свук или картина като един плавен поток от информация. Ако хоста получава информацията по-бързо отколкото тя може да бъде възпроизведена, този хост трябва временни да запази излишната информация в буфер, за да може тя да се възпроизведе от приложението плавно. Ако данните не биват получавани достатъчно бързо тогава възпроизвеждането на данните няма да е гладко, ще се появят накъзвания и статичност.
| Глава 2 Протоколи, какво са протоколите?< Предишна | Следваща >Глава 4 Транспортният слой |
|---|

