Стек (мрежови превключватели). Протоколи и стекове от протоколи

В съвременния свят информацията се разпространява за секунди. Новината току -що се появи и след секунда вече е достъпна на всеки сайт в Интернет. Интернет се счита за едно от най -полезните разработки в човешкия ум. За да се насладите на всички предимства, които предоставя интернет, трябва да се свържете с тази мрежа.

Малко хора знаят, че простият процес на посещение на уеб страници предполага сложна система от действия, която е невидима за потребителя. Всяко щракване върху връзка активира стотици различни изчислителни операции в сърцето на компютъра. Те включват изпращане на заявки, получаване на отговори и много други. Така наречените TCP / IP протоколи са отговорни за всяко действие в мрежата. Какво са те?

Всеки интернет протокол TCP / IP работи на собствено ниво. С други думи, всеки прави своето. Цялото семейство TCP / IP протоколи върши огромна работа едновременно. Потребителят в този момент вижда само ярки снимки и дълги редове текст.

Разбиране на стека от протоколи

Стекът протоколи TCP / IP е организиран набор от основни мрежови протоколи, който е йерархично разделен на четири слоя и представлява система за транспортиране на пакети през компютърна мрежа.

TCP / IP е най-известният стек от мрежови протоколи, който се използва днес. Принципите на стека TCP / IP се прилагат както за LAN, така и за WAN.

Принципи на използване на адреси в стека от протоколи

Стекът от протоколи на TCP / IP мрежа описва пътищата и указанията за изпращане на пакети. Това е основната задача на целия стек, изпълнена на четири нива, които взаимодействат помежду си чрез регистриран алгоритъм. За да изпратите правилно пакет и да го доставите до точката, която го е поискала, беше въведено и стандартизирано IP адресиране. Това се дължи на наличието на следните задачи:

  • Трябва да се съпоставят различни типове адреси.Например, преобразуване на домейн на сайт в IP адреса на сървъра и обратно, или преобразуване на име на хост в адрес и обратно. По този начин става възможно достъпът до точката не само с помощта на IP адрес, но и с интуитивно име.
  • Адресите трябва да са уникални.Това се дължи на факта, че в някои специални случаи пакетът трябва да стигне само до една конкретна точка.
  • Необходимостта от конфигуриране на локални мрежи.

В малки мрежи, където се използват няколко десетки възли, всички тези задачи се изпълняват по елементарен начин, като се използват най -простите решения: съставяне на таблица, описваща собствеността на машината и съответния IP адрес, или можете ръчно да разпространявате IP адреси до цялата мрежа адаптери. За големи мрежи с хиляда или две хиляди машини обаче задачата за ръчно издаване на адреси не изглежда толкова осъществима.

Ето защо е изобретен специален подход за TCP / IP мрежи, който се превръща в отличителен белег на протоколния стек. Въведена е концепцията - мащабируемост.

Стекове на стека на протокол TCP / IP

Тук има известна йерархия. Стекът протоколи TCP / IP има четири слоя, всеки от които обработва различен набор от протоколи:

Ниво на приложение: предназначени да предоставят на потребителя мрежа На това ниво се обработва всичко, което потребителят вижда и прави. Слоят позволява на потребителя достъп до различни мрежови услуги, например: достъп до бази данни, възможност да прочете списък с файлове и да ги отвори, да изпрати имейл или да отвори уеб страница. Заедно с потребителските данни и действия, служебна информация се предава на това ниво.

Транспортен слой:това е чист механизъм за прехвърляне на пакети. На това ниво нито съдържанието на опаковката, нито нейната принадлежност към някакво действие изобщо имат значение. На това ниво са важни само адресът на възела за изпращане на пакета и адресът на възела, на който трябва да бъде доставен пакетът. По правило размерът на фрагментите, предавани с помощта на различни протоколи, може да се промени, следователно на това ниво блоковете информация могат да бъдат разделени на изхода и събрани в едно цяло на местоназначението. Това се дължи на евентуалната загуба на данни, ако по време на прехвърлянето на следващия фрагмент настъпи краткосрочно прекъсване.

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

Това ниво осигурява превъзходни (приложни) два вида услуги:

  • Осигурява гарантирана доставка чрез TCP протокол.
  • Доставя се по UDP, когато е възможно .

За да се гарантира гарантирана доставка, съгласно TCP протокола се установява връзка, която ви позволява да зададете номерирането на пакетите на изхода и да потвърдите получаването им на входа. Номерирането и потвърждаването на пакети са така наречената сервизна информация. Този протокол поддържа двустранно предаване. Освен това, поради добре обмислените правила на протокола, той се счита за много надежден.

Протоколът UDP е предназначен за моментите, когато е невъзможно да се конфигурира предаването по TCP протокол или трябва да спестите в сегмента за предаване на мрежови данни. Също така, UDP протоколът може да взаимодейства с протоколи от по -висок слой, за да подобри надеждността на предаването на пакети.

Мрежов слой или „Интернет слой“:базова линия за целия модел TCP / IP. Основната функционалност на този слой е идентична със слоя със същото име в модела OSI и описва движението на пакети в композитна мрежа, състояща се от няколко по -малки подмрежи. Той свързва съседни слоеве на TCP / IP протокола.

Мрежовият слой е връзката между възходящия транспортен слой и низходящия слой от мрежови интерфейси. Мрежовият слой използва протоколи, които получават заявка от транспортния слой и чрез регулирано адресиране предават обработената заявка към протокола на мрежовия интерфейс, като посочват на кой адрес да изпращат данните.

На това ниво се използват следните мрежови протоколи TCP / IP: ICMP, IP, RIP, OSPF. Основният и най -популярен на мрежово ниво, разбира се, е Интернет протоколът (IP). Основната му задача е да прехвърля пакети от един рутер на друг, докато единицата за данни достигне мрежовия интерфейс на целевия възел. IP се използва не само на хостове, но и на мрежово оборудване: рутери и управлявани комутатори. IP работи на принципа на негарантираната доставка на най-добрите усилия. Тоест, няма нужда да се установява връзка предварително за изпращане на пакет. Тази опция води до спестяване на трафик и време, прекарано в движението на ненужни пакети услуги. Пакетът се насочва към местоназначението си и е напълно възможно възелът да остане недостъпен. В такъв случай се връща съобщение за грешка.

Слой на мрежовия интерфейс:е отговорен за гарантирането, че подмрежите с различни технологии могат да взаимодействат помежду си и да предават информация в един и същи режим. Това става в две прости стъпки:

  • Кодиране на пакета в единица данни от междинната мрежа.
  • Конвертирайте информацията за местоназначението в необходимите стандарти на подмрежата и изпратете единица данни.

Този подход ни позволява постоянно да разширяваме броя на поддържаните мрежови технологии. Веднага щом се появи нова технология, тя веднага попада в стека за пробиване на TCP / IP и позволява на мрежите със стари технологии да прехвърлят данни през мрежи, изградени с помощта на по -съвременни стандарти и методи.

Предавани единици данни

По време на съществуването на такова явление като протоколите TCP / IP са установени стандартни условия за единиците предавани данни. Транзитните данни могат да бъдат фрагментирани по различни начини, в зависимост от технологиите, използвани от целевата мрежа.

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

  • Поток от данни- данни, които идват към транспортния слой от протоколите на по -високия приложен слой.
  • Сегментът е част от данни, в която потокът е разделен съгласно стандартите на TCP протокола.
  • Дейтаграма(особено неграмотни, произнасяни като "дейтаграма") - единици данни, които се получават чрез разделяне на поток с помощта на протоколи без връзка (UDP).
  • Найлонов плик- единица данни, получена чрез IP протокола.
  • Протоколите TCP / IP пакетират IP пакети в блокове от данни, предавани през композитни мрежи, наречени персоналили рамки.

Видове адреси на стека на протоколи TCP / IP

Всеки протокол за прехвърляне на данни TCP / IP използва един от следните типове адреси за идентифициране на възли:

  • Локални (хардуерни) адреси.
  • Мрежови адреси (IP адреси).
  • Имена на домейни.

Локалните адреси (MAC адреси) се използват в повечето локални мрежови технологии за идентифициране на мрежови интерфейси. Под думата локален, говорейки за TCP / IP, той трябва да се разбира като интерфейс, който не работи в свързана мрежа, а в рамките на една подмрежа. Например подмрежата на интерфейс, свързан към Интернет, ще бъде локална, а Интернет ще бъде съставена подмрежа. Локалната мрежа може да бъде изградена на всяка технология и независимо от това, от гледна точка на композитна мрежа, машина, разположена в отделно разпределена подмрежа, ще се нарича локална. По този начин, когато пакет влезе в локалната мрежа, тогава неговият IP адрес се свързва с локалния адрес и пакетът се изпраща до MAC адреса на мрежовия интерфейс.

Мрежови адреси (IP адреси). TCP / IP технологията осигурява собствено глобално адресиране на възли за решаване на прост проблем - комбиниране на мрежи с различни технологии в една голяма структура за предаване на данни. IP адресирането е напълно независимо от технологията, използвана в локалната мрежа, но IP адресът позволява на мрежовия интерфейс да представлява машина в свързана мрежа.

В резултат на това беше разработена система, в която на възлите се присвоява IP адрес и маска на подмрежата. Маската на подмрежата показва колко бита са запазени за номера на мрежата и колко за номера на възела. IP адресът се състои от 32 бита, разделени на блокове от 8 бита.

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

Адресите на домейни в TCP / IP мрежи се управляват от специално разработена система за имена на домейни (DNS). За да направите това, има сървъри, които съответстват на име на домейн, представени като низ от текст, с IP адрес и изпращат пакета вече в съответствие с глобалното адресиране. Няма съответствие между името на компютъра и IP адреса, следователно, за да се разреши името на домейна в IP адрес, изпращащото устройство трябва да се позовава на таблицата за маршрутизиране, създадена на DNS сървъра. Например, ние записваме адреса на даден сайт в браузъра, DNS сървърът го съпоставя с IP адреса на сървъра, на който се намира сайтът, а браузърът чете информацията, като получава отговор.

В допълнение към интернет е възможно да се издават имена на домейни на компютри. По този начин процесът на работа в локална мрежа се опростява. Няма нужда да помните всички IP адреси. Вместо това можете да дадете на всеки компютър всяко име и да го използвате.

IP адрес. Формат. Компоненти. Маска на подмрежата

IP адресът е 32-битово число, което в традиционното представяне се записва като числа, от 1 до 255, разделени с точки.

Тип IP адрес в различни формати на запис:

  • Десетична форма на IP адреса: 192.168.0.10.
  • Двоичен изглед на същия IP адрес: 11000000.10101000.00000000.00001010.
  • Записване на адреса в шестнадесетична нотация: C0.A8.00.0A.

Няма разделител между мрежовия идентификатор и номера на точката в записа, но компютърът може да ги раздели. Има три начина да направите това:

  1. Фиксирана граница.С този метод целият адрес условно се разделя на две части с фиксирана байтова дължина. По този начин, ако дадем един байт за номера на мрежата, тогава получаваме 2 8 мрежи с по 2 24 възела всяка. Ако границата се измести с още един байт надясно, тогава ще има повече мрежи - 2 16, и ще има по -малко възли - 2 16. Днес подходът се счита за остарял и не се използва.
  2. Маска на подмрежата.Маската е сдвоена с IP адрес. Маската има поредица от стойности "1" в тези цифри, които са запазени за номера на мрежата, и определен брой нули в тези места на IP адреса, които са присвоени на номера на хоста. Границата между единици и нули в маската е границата между мрежовия идентификатор и идентификатора на хоста в IP адреса.
  3. Метод на адресни класове.Компромисен метод. Когато го използвате, размерите на мрежите не могат да бъдат избрани от потребителя, но има пет класа - A, B, C, D, E. Три класа - A, B и C - са предназначени за различни мрежи, а D и E са запазени за мрежи със специално предназначение ... В системата на класовете всеки клас има своя собствена граница на мрежов номер и идентификатор на възел.

Класове IP адреси

ДА СЕ клас Асе отнася до мрежи, в които мрежата се идентифицира от първия байт, а трите останали са номера на възел. Всички IP адреси, които имат в обхвата си стойността на първия байт от 1 до 126, са мрежи от клас А. Количествено, има много малко мрежи от клас А, но във всяка от тях може да има до 2 24 точки.

Клас В- мрежи, в които двата най -високи бита са равни на 10. В тях 16 бита са разпределени за номера на мрежата и идентификатора на точка. В резултат на това се оказва, че броят на мрежите от клас В в по -голяма посока се различава количествено от броя на мрежите от клас А, но те имат по -малък брой възли - до 65 536 (2 16) бр.

В мрежи клас С- много малко възли - 2 8 във всеки, но броят на мрежите е огромен, поради факта, че мрежовият идентификатор в такива структури заема цели три байта.

Мрежи клас D- вече принадлежат към специални мрежи. Той започва с последователността 1110 и се нарича мултикаст адрес. Интерфейсите с адреси от клас А, В и С могат да бъдат включени в група и да получават, в допълнение към отделен, групов адрес.

Адреси клас Е- в резерв за бъдещето. Тези адреси започват с последователността 11110. Най -вероятно тези адреси ще бъдат използвани като адреси за многоадресно предаване, когато има недостиг на IP адреси в WAN.

Конфигуриране на TCP / IP

Конфигурирането на TCP / IP протокол е достъпно за всички операционни системи. Това са Linux, CentOS, Mac OS X, Free BSD, Windows 7. TCP / IP изисква само мрежов адаптер. Разбира се, сървърните операционни системи могат повече. Протоколът TCP / IP е много широко конфигуриран с помощта на сървърни услуги. IP адресите в обикновените настолни компютри се задават в настройките за мрежови връзки. Там мрежовият адрес е конфигуриран, шлюзът е IP адресът на точката, която има достъп до глобалната мрежа, и адресите на точките, където се намира DNS сървърът.

Интернет протоколът TCP / IP може да бъде конфигуриран ръчно. Въпреки че това не винаги е необходимо. Възможно е да се получат параметрите на протокола TCP / IP от динамично разпространяващите се сървърни адреси в автоматичен режим. Този метод се използва в големи корпоративни мрежи. На DHCP сървъра можете да съпоставите локален адрес с мрежов и веднага щом машина с определен IP адрес се появи в мрежата, сървърът веднага ще му даде предварително подготвен IP адрес. Този процес се нарича резервация.

Протокол за разрешаване на TCP / IP адреси

Единственият начин да установите връзка между MAC адрес и IP адрес е чрез поддържане на таблица. Ако има таблица за маршрутизиране, всеки мрежов интерфейс е наясно със своите адреси (локални и мрежови), но възниква въпросът как правилно да се организира обменът на пакети между възли, използвайки протокола TCP / IP 4.

Защо е изобретен протоколът за разрешаване на адреси (ARP)? За обвързване на TCP / IP семейството протоколи и други системи за адресиране. На всеки възел се създава таблица за картографиране на ARP и се попълва чрез опросване на цялата мрежа. Това се случва след всяко изключване на компютъра.

ARP маса

Това е пример за компилирана ARP таблица.

Тази статия ще обхване основите на модела TCP / IP. За по -добро разбиране са описани основните протоколи и услуги. Основното нещо е да не бързате и да се опитвате да разбирате всяко нещо на етапи. Всички те са взаимосвързани и без да разбират едното, ще бъде трудно да се разбере другото. Ето една много повърхностна информация, така че тази статия може спокойно да се нарече „Стек от протоколи TCP / IP за манекени“. Тук обаче много неща не са толкова трудни за разбиране, колкото изглежда на пръв поглед.

TCP / IP

Стекът TCP / IP е мрежов модел за предаване на данни в мрежа; той определя реда, в който устройствата взаимодействат. Данните влизат в слоя за връзка към данни и се обработват последователно от всеки слой по -горе. Стекът е представен като абстракция, която обяснява принципите на обработка и получаване на данни.

Стекът от протоколи на TCP / IP мрежа има 4 слоя:

  1. Канал (Връзка).
  2. Мрежа (Интернет).
  3. Транспорт.
  4. Приложение.

Ниво на приложение

Приложният слой осигурява оперативна съвместимост между приложението и другите слоеве на протоколния стек, анализира и трансформира входящата информация във формат, подходящ за софтуер. Най -близо е до потребителя и взаимодейства директно с него.

  • HTTP;
  • SMTP;

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

HTTP (HyperText Transfer Protocol) е за прехвърляне на данни. Използва се за изпращане например на HTML документи, които служат като основа за уеб страница. Опростената схема на работа е представена като "клиент - сървър". Клиентът изпраща заявката, сървърът я приема, обработва правилно и връща крайния резултат.

Служи като стандарт за прехвърляне на файлове през мрежата. Клиентът изпраща заявка за определен файл, сървърът търси този файл в своята база данни и, ако успее, го изпраща като отговор.

Използва се за изпращане на електронна поща. Операцията SMTP включва три последователни стъпки:

  1. Определяне на адреса на изпращача. Това е необходимо за връщане на имейли.
  2. Идентификация на получателя. Тази стъпка може да се повтори няколко пъти при посочване на множество дестинации.
  3. Определяне на съдържанието на съобщението и изпращане. Видът на съобщението се предава като сервизна информация. Ако сървърът потвърди готовността си да приеме пакета, тогава се извършва самата транзакция.

Заглавка

Заглавката съдържа сервизни данни. Важно е да се разбере, че те са само за определено ниво. Това означава, че веднага след като пакетът бъде изпратен на получателя, той ще бъде обработен там по същия модел, но в обратен ред. Вградената заглавка ще носи специална информация, която може да бъде обработена само по определен начин.

Например, заглавка, вложена в транспортния слой от другата страна, може да бъде обработена само от транспортния слой. Други просто ще го игнорират.

Транспортен слой

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

Протоколи за прехвърляне на данни:

Най -често срещаният протокол. Той е отговорен за гарантирания трансфер на данни. При изпращане на пакети се контролира тяхната контролна сума, процесът на транзакция. Това означава, че информацията ще пристигне „жива и здрава“ независимо от условията.

UDP (User Datagram Protocol) е вторият по популярност протокол. Той отговаря и за предаването на данни. Отличителна черта се крие в неговата простота. Пакетите просто се изпращат, без да се създава специална връзка.

TCP или UDP?

Всеки от тези протоколи има своя собствена област на приложение. Логически е обусловено от особеностите на работата.

Основното предимство на UDP е неговата скорост на предаване. TCP е сложен протокол с много проверки, докато UDP изглежда по -прост и следователно по -бърз.

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

UDP се използва например за гледане на видеоклипове. За видео файл загубата на малък брой сегменти не е критична, докато скоростта на изтегляне е най -важният фактор.

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

Мрежов слой

Мрежовият слой формира пакети от получената информация и добавя заглавка. Най -важната част от данните са IP и MAC адресите на източника и местоназначението.

IP адрес (адрес на интернет протокол) - логическият адрес на устройството. Съдържа информация за местоположението на устройството в мрежата. Пример за запис :.

MAC адрес (Адрес за контрол на достъпа до медиите) е физическият адрес на устройството. Използва се за идентификация. Възложено на мрежово оборудване на етапа на производство. Представено като шест байтово число. Например: .

Мрежовият слой отговаря за:

  • Определяне на маршрутите за доставка.
  • Прехвърляне на пакети между мрежи.
  • Присвояване на уникални адреси.

Рутерите са устройства на мрежов слой. Те проправят пътя между компютъра и сървъра въз основа на получените данни.

Най -популярният протокол на това ниво е IP.

IP (Интернет протокол) е интернет протокол, предназначен за адресиране в мрежа. Използва се за изграждане на маршрути, по които се обменят пакети. Няма никакви средства за проверка и потвърждаване на целостта. За да се гарантират доставките, се използва TCP, който използва IP като транспортен протокол. Разбирането на принципите на тази транзакция обяснява много за основата на това как работи стека от протоколи TCP / IP.

Видове IP адреси

Мрежите използват два типа IP адреси:

  1. Обществен.
  2. Частни.

Публичните се използват в Интернет. Основното правило е абсолютната уникалност. Пример за тяхното използване са рутерите, всеки от които има собствен IP адрес за взаимодействие с интернет. Този адрес се нарича обществен.

Частното не се използва в Интернет. В глобалната мрежа такива адреси не са уникални. Пример за това е локална мрежа. На всяко устройство е присвоен уникален IP адрес в мрежата.

Взаимодействието с интернет се осъществява чрез рутер, който, както бе споменато по -горе, има свой собствен публичен IP адрес. По този начин всички компютри, свързани към рутера, се появяват в Интернет от името на един публичен IP адрес.

IPv4

Най -често срещаната версия на интернет протокола. Предхожда се от IPv6. Форматът на записа е четири осем-битови числа, разделени с точки. Маската на подмрежата е обозначена със знак за дроб. Дължината на адреса е 32 бита. В по -голямата част от случаите, когато става въпрос за IP адрес, се има предвид IPv4.

Формат на запис :.

IPv6

Тази версия е предназначена за решаване на проблеми с предишната версия. Дължината на адреса е 128 бита.

Основният проблем, който IPv6 решава, е изчерпването на IPv4 адресите. Предпоставките започват да се появяват още в началото на 80 -те години. Въпреки факта, че този проблем навлезе в остър стадий още през 2007-2009 г., въвеждането на IPv6 много бавно „набира скорост“.

Основното предимство на IPv6 е по -бързата интернет връзка. Това е така, защото тази версия на протокола не изисква превод на адрес. Извършва се просто маршрутизиране. Това е по -евтино и следователно достъпът до интернет ресурси се осигурява по -бързо, отколкото в IPv4.

Пример за запис :.

Има три типа IPv6 адреси:

  1. Unicast.
  2. Anycast.
  3. Мултикаст.

Unicast е вид едноадресна IPv6. При изпращане пакетът достига само до интерфейса, разположен на съответния адрес.

Anycast се отнася до многоадресни IPv6 адреси. Изпратеният пакет ще отиде до най -близкия мрежов интерфейс. Използва се само от рутери.

Мултикаст са мултикаст. Това означава, че изпратеният пакет ще достигне до всички интерфейси в групата за мултикаст. За разлика от излъчването, което се „излъчва за всички“, мултикаст излъчва само към определена група.

Маска на подмрежата

Маската на подмрежата разкрива номера на подмрежата и хоста от IP адреса.

Например, IP адресът има маска. В този случай форматът на запис ще изглежда така. Числото "24" е броят на битовете в маската. Осем бита са равни на един октет, който може да се нарече и байт.

По -подробно маската на подмрежата може да бъде представена в двоичен формат, както следва :. Той има четири октета и записът се състои от "1" и "0". Ако съберем броя единици, получаваме общо "24". За щастие не е необходимо да броите по едно, защото има 8 стойности в един октет. Виждаме, че три от тях са пълни с такива, сумираме и получаваме „24“.

Ако говорим конкретно за маската на подмрежата, то в двоично представяне тя има или единици, или нули в един октет. В този случай последователността е такава, че първо отиват байтове с единици, а едва след това с нули.

Нека разгледаме един малък пример. Има IP адрес и маска на подмрежата. Ние броим и пишем :. Сега съпоставяме маската с IP адреса. Тези октети от маската, в които всички стойности са равни на единица (255), оставят съответните октети в IP адреса непроменени. Ако стойността е нула (0), тогава октетите в IP адреса също стават нули. По този начин в стойността на адреса на подмрежата получаваме.

Подмрежа и хост

Подмрежата е отговорна за логическото разделяне. Всъщност това са устройства, използващи една и съща локална мрежа. Определя се от набор от IP адреси.

Host е адресът на мрежовия интерфейс (мрежова карта). Определя се от IP адреса с помощта на маска. Например: . Тъй като първите три октета са подмрежа, тя остава. Това е номера на хоста.

Обхватът на хостовите адреси е от 0 до 255. Номер на хост "0" всъщност е адресът на самата подмрежа. И хост номер 255 се излъчва.

Адресиране

За адресиране в стека протоколи TCP / IP се използват три типа адреси:

  1. Местни.
  2. Мрежа.
  3. Имена на домейни.

Локалните MAC адреси се наричат ​​локални адреси. Те се използват за адресиране в LAN технологии като Ethernet. В контекста на TCP / IP, локално означава, че те са валидни само в рамките на подмрежа.

Мрежов адрес в стека от протоколи TCP / IP е IP адрес. Когато се изпраща файл, адресът на получателя се чете от заглавката му. С негова помощ рутерът научава номера на хоста и подмрежата и въз основа на тази информация създава маршрут до крайния възел.

Имената на домейните са четими от човека адреси на уебсайтове в Интернет. Уеб сървърите в Интернет са достъпни чрез публичен IP адрес. Успешно се обработва от компютри, но изглежда твърде неудобно за хората. За да се избегнат подобни усложнения, се използват имена на домейни, които са съставени от области, наречени „домейни“. Те са подредени в строга йерархия, отгоре надолу.

Домейнът от първо ниво представлява конкретна информация. Общите (.org, .net) не са обвързани от строги граници. Обратната ситуация е с local (.us, .ru). Те обикновено са географски обвързани.

Домейните от по -ниско ниво са останалите. Тя може да бъде с всякакъв размер и да съдържа произволен брой стойности.

Например „www.test.quiz.sg“ е валидно име на домейн, където „sg“ е локалният домейн от първо (горно) ниво, „quiz.sg“ е домейн от второ ниво, „test.quiz.sg“ е домейн от трето ниво ... Имената на домейните също могат да бъдат наречени DNS имена.

DNS (Domain Name System) съпоставя имената на домейни с публичен IP адрес. Когато въведете името на домейна в реда на браузъра, DNS ще намери съответния IP адрес и ще информира устройството. Устройството ще обработи това и ще го върне като уеб страница.

Свързващ слой

В слоя на връзката се определя връзката между устройството и физическата среда за предаване, добавя се заглавка. Отговаря за кодирането на данни и подготовката на рамки за предаване през физическия носител. Мрежовите комутатори работят на това ниво.

Най -често срещаните протоколи са:

  1. Ethernet.
  2. WLAN.

Ethernet е най -разпространената кабелна LAN технология.

WLAN е локална мрежа, базирана на безжични технологии. Устройствата комуникират без физически кабели. Пример за най-често срещания метод е Wi-Fi.

Конфигуриране на TCP / IP за използване на статичен IPv4 адрес

Статичен IPv4 адрес се задава директно в настройките на устройството или автоматично, когато е свързан към мрежата, и е постоянен.

За да конфигурирате стека от протоколи TCP / IP да използва постоянен IPv4 адрес, въведете командата ipconfig / all в конзолата и намерете следната информация.

Конфигуриране на TCP / IP за използване на динамичен IPv4 адрес

Динамичен IPv4 адрес се използва за известно време, наема се и след това се променя. Присвоява се на устройството автоматично при свързване към мрежата.

За да конфигурирате стека от протоколи TCP / IP да използва непостоянен IP адрес, трябва да отидете до свойствата на желаната връзка, да отворите свойствата на IPv4 и да поставите отметки в квадратчетата, както е посочено.

Методи за прехвърляне на данни

Данните се предават през физическия носител по три начина:

  • Симплекс.
  • Полудуплекс.
  • Пълен дуплекс.

Симплексът е еднопосочна комуникация. Предаването се осъществява само от едно устройство, докато другото приема само сигнала. Можем да кажем, че информацията се излъчва само в една посока.

Примери за симплекс комуникация:

  • Телевизионно излъчване.
  • Сигнал от GPS сателити.

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

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

Пълен дуплекс - пълна двупосочна комуникация. Устройствата могат едновременно да излъчват сигнала и да приемат сигнала. Те не влизат в конфликт по отношение на носителя на предаване. Този режим се прилага за Fast Ethernet и връзки с усукана двойка.

Пример за това е телефонен разговор през мобилна мрежа.

TCP / IP срещу OSI

Моделът OSI определя принципите на пренос на данни. Слоевете на стека от протоколи TCP / IP съответстват директно на този модел. За разлика от четирислойния TCP / IP, той има 7 слоя:

  1. Физически
  2. Канал (връзка към данни).
  3. Мрежа.
  4. Транспорт.
  5. Сесия.
  6. Представител (Презентация).
  7. Приложение.

В момента не бива да навлизате дълбоко в този модел, но е необходимо поне повърхностно разбиране.

Приложният слой в модела TCP / IP съответства на първите три OSI слоя. Всички те работят с приложения, така че можете ясно да проследите логиката на такава комбинация. Тази обобщена структура на стека от протоколи TCP / IP прави абстракцията по -разбираема.

Транспортният слой остава непроменен. Изпълнява същите функции.

Мрежовият слой също е непроменен. Изпълнява абсолютно същите задачи.

Слоят за връзка към данни в TCP / IP съответства на последните два слоя OSI. Слоят за връзка към данни установява протоколите за предаване на данни през физическия носител.

Физическа е действителната физическа връзка - електрически сигнали, конектори и т.н. В стека от протоколи TCP / IP беше решено да се комбинират тези два слоя в един, тъй като и двата работят с физическата среда.

Повечето протоколи (всички изброени с изключение на SNA) са еднакви във физическите слоеве и слоевете за връзка с данни, но на други слоеве, като правило, те използват различни протоколи.

Литература

  • V. G. Olifer, N. A. Olifer, Компютърни мрежи. Принципи, технологии, протоколи., Санкт Петербург: Петър, 2002.-672 с. ISBN 5-8046-0133-4

Фондация Уикимедия. 2010 г.

Вижте какво представлява „протоколен стек“ в други речници:

    Общо име за мрежови протоколи от различни слоеве, използвани в мрежите. Стекът от думи (английски стек) означава, че TCP протоколът работи върху IP (английски протокол за управление на предаването / интернет протокол) Бизнес речник ... ... Бизнес речник

    - ... Уикипедия

    Структура на стекови данни с метод за достъп LIFO. Стек (бастун) е къса, тънка бастун с примка за колан в края. Стек (хазарт) в казино, хазартен бизнес, стак от 20 чипа. Купчина (компания) от голяма руска телекомуникация ... ... Уикипедия

    Необходимо е да се провери качеството на превода и да се приведе статията в съответствие със стилистичните правила на Уикипедия. Можете да помогнете за подобряването на тази статия, като коригирате грешки. Оригинал на английски ... Уикипедия

    Просто представяне на стека Този термин има и други значения, вижте Стек (многозначност). Стек (английски стек стоп ... Уикипедия

    Таблицата с мрежови протоколи по функционално предназначение съдържа списък на всички съществуващи (както и в миналото) протоколи, свързани с компютърни мрежи (мрежови протоколи). Набор от правила за мрежовия протокол, ... ... Уикипедия

    набор от протоколи- пакет протокол пакет протокол стек протокол - [LG Sumenko. Англо -руският речник на информационните технологии. М.: ГП ЦНИИС, 2003.] Теми информационни технологии като цяло Синоними протокол пакет протокол стек набор ... ... Ръководство за технически преводач

    Стекът протоколи TCP / IP (английски протокол за управление на предаването / интернет протокол) е съвместно име за мрежови протоколи от различни слоеве, използвани в мрежите. Думата "стек" (английски стек) означава, че IP протоколът. В модела OSI ... ... Уикипедия

    Стеков протокол SS7 Слоеви протоколи Персонализирани INAP, MAP, IS 41, ... TCAP, CAP, ISUP, ... Мрежов MTP3 + SCCP канал MTP2 Физическа сигнална система MTP1 N7 (SS7) е набор от сигнални телефонни протоколи, използвани за .. ... Уикипедия

Книги

  • Стекът от протоколи SCCP 7. Подсистема SCCP: справочник, BS Goldstein, IM Yekhriel, RD Rörle. И концепции, процедури, формати ...
  • Стек на протоколи OKS 7. Подсистема ISUP. Наръчник, Б. С. Голдщайн, И. М. Ехриел, Р. Д. Рерле. Справка за подсистемата ISUP (ISDN потребителска част) на стека на протокола за сигнализация за целия канал 7. Общите принципи и концепции, процедури, формати на съобщения и параметри, инструменти и ...

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

Транспортният слой изпълнява следните задачи:

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

    В режим без връзка транспортният слой се използва за предаване на единични дейтаграми, без да се гарантира надеждна доставка. Режимът, ориентиран към връзката, се използва за надеждна доставка на данни.

  • Контрол на потока... Подобно на слоя за връзка към данни, транспортният слой е отговорен за контрола на потока. Контролът на потока на това ниво обаче се извършва от "край до край".
  • Контрол на грешки... Подобно на слоя за връзка с данни, транспортният слой е отговорен за контрола на грешки. Трансмитиращият транспорт проверява дали цялото съобщение достига до приемащия транспорт без грешки (повреда, загуба или дублиране). Грешката обикновено се коригира чрез повторно предаване.

Session Layer SL- мрежов контролер за диалог. Той установява, поддържа и синхронизира комуникацията между комуникационните системи.

С помощта на слоя на сесията се организира диалог между страните, записва се коя от страните е инициатор, коя от страните е активна и как завършва диалогът.

Задачите на ниво сесия са както следва:

  • Управление на диалога. Ниво на сесиядава възможност на две системи да влязат в диалог. Тя позволява обмен на съобщения между два процеса. В този случай са възможни режими: или полудуплекс (един път по едно и също време), или пълен дуплекс (два пътя едновременно). Например диалогът между терминала и мейнфрейма може да бъде полудуплекс.
  • Синхронизация. Ниво на сесияПозволява на процес да добавя контролни точки (точки за синхронизация) към поток от данни. Например, ако системата изпрати файл от 2000 страници, е желателно да се вмъкнат точки на прекъсване след всеки 100 страници, за да се гарантира, че всеки модул от 100 страници се получава и разпознава независимо. В този случай, ако възникне нарушение по време на предаването на страница 523, единствената страница, която се изисква и която ще бъде изпратена отново след възстановяване на системата, е страница 501 (първа страница от петата стотина)

Презентационен слойсе занимава с формата на предоставяне на информация на по -ниски нива, например транскодиране или шифроване на информация.

Задачите на слоя презентация са следните:

  • Прекодиране на информация... Процесите (изпълняващи програми) в две системи обикновено променят информацията под формата на символни низове, числа и т.н. Информацията трябва да бъде променена на битови потоци, преди да бъде предадена. Тъй като различните компютри използват различни системи за кодиране, презентационен слойе отговорен за оперативната съвместимост между тези различни методи за кодиране. Слой за презентацияв предавателя променя информацията от зависима от предавателя форма в обща форма. Слой за презентацияв приемащия компютър заменя общия формат с този на приемника.
  • Шифроване... За да предостави поверителна информация, системата трябва да гарантира секретност. Шифроване означава, че предавателят преобразува оригиналната информация в друга форма и изпраща полученото съобщение по мрежата. Декриптирането трябва да е точно обратното на първоначалния процес, за да се преобразува съобщението обратно в първоначалния му вид.
  • Компресия... Компресирането на данни намалява броя на битовете, съдържащи се в информацията. Компресирането става особено важно при предаването на мултимедия като текст, аудио и видео.

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

Примери за услуги, предоставяни от приложния слой:

  • Мрежов виртуален терминал... Мрежовият виртуален терминал е софтуерна версия на физически терминал, който позволява на потребителя да влезе в отдалечен хост. За да направите това, приложението създава софтуерна емулация на терминала на отдалечения хост. Компютърът на потребителя комуникира със софтуерния терминал, който от своя страна комуникира с хоста и обратно. Отдалеченият хост определя тази връзка като връзка към един от собствените си терминали и позволява влизане.
  • Прехвърляне на файлове, достъп и контрол... Това приложение позволява на потребител да има достъп до файлове на отдалечен хост, за да променя или чете данни, да извлича файлове от отдалечен компютър за използване на локален компютър и да администрира или управлява файлове на отдалечен компютър.
  • Пощенски услуги... Това приложение предоставя рамка за изпращане и съхранение на електронна поща.
  • Каталожни услуги... Това приложение предоставя източници на разпределени бази данни и достъп до глобална информация за различни съоръжения и услуги.

Стек от интернет протоколи

Стекът протоколи Internet2 е разработен преди модела OSI. Следователно слоевете в стека от интернет протоколи не съвпадат с тези в OSI модела. Стекът от интернет протоколи се състои от пет слоя: физически, връзка за данни, мрежа, транспорт и приложение. Първите четири слоя осигуряват физически стандарти, мрежов интерфейс, взаимодействие и транспортни функции, които съответстват на първите четири слоя на модела OSI. Горните три слоя в модела OSI са представени в стека от протоколи за Интернет от един слой, наречен слоят на приложението на фиг. 1.3.


Ориз. 1.3.

ARP Протокол за разрешаване на адреси Протокол за намиране на адрес
Банкомат Режим на асинхронен трансфер Режим на асинхронен трансфер
BGP Border Gateway протокол Протокол за гранично маршрутизиране
DNS Система за имена на домейни Система за имена на домейни
Ethernet Ethernet мрежа Ethernet мрежа
ПЧИ Разпределен във влакна интерфейс за данни Интерфейс за разпределени данни от оптични влакна
HTTP Протокол за прехвърляне на хипер текст Протокол за прехвърляне на хипертекст
FTP Протокол за прехвърляне на файлове Протокол за прехвърляне на файлове
ICMP Интернет протокол за контролни съобщения Протокол за контролно съобщение
IGMP Протокол за управление на интернет група Групов (потребителски) протокол за управление в Интернет
IP интернет протокол интернет протокол
NFS Мрежова файлова система Протокол за достъп до мрежова файлова система
OSPF Първо отворете най -краткия път Отворете протокола за предпочитане на най -краткия канал
PDH Плезиохронна цифрова йерархия Плезиохронна цифрова йерархия
ПЧП Протокол от точка до точка Комуникационен протокол от точка до точка

От контакти до драйвери на устройства

Въведение в протоколите

Докато официалното въведение в мрежите се отнася до модела за взаимодействие на отворени системи (OSI), това въведение в основния мрежов стек в Linux използва четиристепенен модел, известен като интернет модел (виж Фигура 1). ...

Фигура 1. Интернет модел на мрежовия стек

В долната част на стека е слоят канал. Свързващ слойсе отнася до драйвери на устройства, които осигуряват достъп до физическия слой, който може да се състои от множество носители като серийни връзки или Ethernet устройства. Над канала е мрежов слойкоято е отговорна за маршрутизирането на пакети до местоназначението им. Следващото ниво се нарича транспортотговорен за peer-to-peer комуникации (например в хост). Мрежовият слой контролира комуникацията между хостовете, а транспортният слой контролира комуникацията между крайните точки в тези хостове. Накрая има ниво на приложениекойто обикновено е семантичен и разбира преместените данни. Например, протоколът за прехвърляне на хипертекст (HTTP) премества заявки и отговори за уеб съдържание между сървър и клиент.

Всъщност слоевете на мрежовия стек получават по -разпознаваеми имена. В слоя за връзка с данни ще намерите Ethernet, най-разпространеният високоскоростен носител. По-старите протоколи на слоя с връзки включват серийни протоколи като Интернет протокол за серийна линия (SLIP), компресиран SLIP (CSLIP) и протокол от точка до точка (PPP). Най -често срещаният протокол на мрежов слой е Интернет протокол (IP), но има и други, които отговарят на други нужди, като например протокол за контролни съобщения за интернет (ICMP) и протокол за разрешаване на адреси (ARP). На транспортно ниво това са Протоколът за контрол на предаването (TCP) и Протоколът на потребителската датаграма (UDP). И накрая, слоят на приложението включва много от протоколите, с които сме запознати, включително HTTP, стандартния уеб протокол и SMTP (Simple Mail Transfer Protocol), протокола за прехвърляне на електронна поща.

Архитектура на основната мрежа

Сега нека преминем към архитектурата на мрежовия стек на Linux и да видим как тя реализира модела на Интернет. Фигура 2 показва изглед на високо ниво на мрежовия стек на Linux. Най -отгоре е нивото на потребителското пространство или ниво на приложениекоято определя потребителите на мрежовия стек. По -долу са физически устройствакоито осигуряват свързаност към мрежи (серийни или високоскоростни мрежи като Ethernet). В центъра или навътре пространство на ядрото, - подсистемата на мрежата, която е фокусът на тази статия. Букерите на гнездата (sk_buffs) преминават през вътрешността на мрежовия стек, които преместват пакетни данни между източници и дестинации. Структурата на sk_buff ще бъде показана накратко.

Фигура 2. Архитектурата на високо ниво на мрежовия стек на Linux

Първо ви се предлага кратък преглед на основните елементи на мрежовата подсистема Linux, подробно описани в следващите раздели. Най -отгоре (вижте Фигура 2) е система, наречена интерфейс за системни повиквания. Той просто предоставя начин на приложенията от потребителското пространство да имат достъп до подсистемата за мрежово ядро. Следва агностичен слой на протокола, който предоставя общ начин за работа с основните транспортни протоколи. Следва действителните протоколи, които в Linux включват вградения TCP, UDP и разбира се IP. Следващият е друг независим слой, който осигурява общ интерфейс към и от отделните налични драйвери на устройства, последван от самите драйвери в края.

Интерфейс за системно обаждане

Интерфейсът на системното обаждане може да бъде описан по два начина. Когато мрежово обаждане се осъществява от потребител, то се мултиплексира чрез системно обаждане до ядрото. Това завършва като извикване на sys_socketcall в. / Net / socket.c, което след това демултиплексира повикването към желаната цел. Друг изглед на интерфейса за системно обаждане е използването на нормални файлови операции за мрежов вход / изход (I / O). Например, нормални операции за четене и запис могат да се извършват на мрежов сокет (който е представен от дескриптор на файл като нормален файл). Следователно, въпреки че има специфични за мрежата операции (създаване на гнездо чрез извикване на гнездо, обвързване с дескриптор чрез извикване на свързване и т.н.), съществуват и редица стандартни файлови операции, които се прилагат към мрежови обекти, както към обикновени файлове . И накрая, интерфейсът за системно повикване осигурява средство за прехвърляне на контрол между приложение в потребителско пространство и ядрото.

Протоколен агностичен интерфейс

Слоят на гнездото е протоколен агностичен интерфейс, който предоставя набор от стандартни функции, поддържащи редица различни протоколи. Този слой не само поддържа конвенционалните TCP и UDP протоколи, но също така IP, необработен Ethernet и други транспортни протоколи като протокол за предаване на поточно управление (SCTP).

Комуникацията през мрежовия стек се осъществява чрез гнездо. Структурата на сокета в Linux е struct sock, дефинирана в linux / include / net / sock.h. Тази голяма структура съдържа всички необходими състояния за отделен сокет, включително специфичния протокол, използван от сокета, и операциите, които могат да се извършват върху него.

Мрежовата подсистема знае за наличните протоколи от специална структура, която определя нейните възможности. Всеки протокол съдържа структура, наречена proto (намира се в linux / include / net / sock.h). Тази структура дефинира отделните операции на сокета, които могат да се извършват от слоя на гнездото към транспортния слой (например как да създадете сокет, как да установите връзка към сокет, как да затворите сокет и т.н.).

Мрежови протоколи

Разделът за мрежови протоколи дефинира отделните налични мрежови протоколи (като TCP, UDP и т.н.). Те се инициализират в началото на деня във функцията inet_init в linux / net / ipv4 / af_inet.c (тъй като TCP и UDP принадлежат към семейството протоколи inet). Функцията inet_init регистрира всеки от вградените протоколи, използвайки функцията proto_register. Тази функция е дефинирана в linux / net / core / sock.c и в допълнение към добавянето на протокол към активния списък, ако е необходимо, тя може да разпредели един или повече кеш кешове.

Можете да видите как отделните протоколи се идентифицират чрез структурата на протоколите във файловете tcp_ipv4.c, udp.c и raw.c в linux / net / ipv4 /. Всяка от тези протоколни структури е картографирана като тип и протокол в inetsw_array, който приписва вградени протоколи на техните операции. Структурата на inetsw_array и нейните връзки са показани на фигура 3. Всеки от протоколите в този масив се инициализира в началото на деня в inetsw чрез извикване на inet_register_protosw от inet_init. Функцията inet_init също инициализира различни inet модули като ARP, ICMP, IP модули и TCP и UDP модули.

Фигура 3. Структурата на масива от интернет протоколи

Връзка на сокет и протокол

Припомнете си, че когато се създаде сокет, той определя типа и протокола, например my_sock = socket (AF_INET, SOCK_STREAM, 0). AF_INET посочва семейство интернет адреси с гнездо за поток, определено като SOCK_STREAM (както е показано тук в inetsw_array).

Преместването на данни за сокети се извършва с помощта на основна структура, наречена буфер на гнездото (sk_buff). Sk_buff съдържа пакетни данни и данни за състоянието, които обхващат множество слоеве от протоколния стек. Всеки изпратен или получен пакет е представен в sk_buff. Структурата sk_buff е дефинирана в linux / include / linux / skbuff.h и е показана на Фигура 4.

Фигура 4. Буферът на гнездото и неговите връзки с други структури

Както можете да видите, множество структури sk_buff за дадена връзка могат да бъдат свързани заедно. Всеки от тях идентифицира структурата на устройството (net_device), към която се изпраща или получава пакетът. Тъй като всеки пакет е представен в sk_buff, заглавките на пакетите са удобно дефинирани от набор от указатели (th, iph и mac за заглавка за контрол на достъпа до медиите (MAC). Тъй като структурите на sk_buff са централни за организацията на данните от сокета, редица поддържащи функции Има функции за създаване, унищожаване, клониране и подреждане на sk_buff.

Буферите на гнездата са проектирани да комуникират помежду си за даден сокет и включват голямо количество информация, включително препратки към заглавки на протоколи, времеви марки (когато пакет е изпратен или получен) и съответното устройство.

Агностичен интерфейс на устройството

Под протоколния слой е друг независим интерфейсен слой, който свързва протоколите към различни драйвери на физически устройства с различни възможности. Този слой предоставя стандартен набор от функции, които се използват от мрежови устройства на ниско ниво, за да могат да взаимодействат с стека от протоколи на високо ниво.

На първо място, драйверите на устройства могат да се регистрират и да се отпишат от ядрото, като извикат register_netdevice или unregister_netdevice. Обаждащият се първо попълва структурата net_device и след това я изпраща за регистрация. Ядрото извиква своята init функция (ако е дефинирана), извършва няколко проверки на състоянието, създава sysfs запис и след това добавя новото устройство към списъка с устройства (свързан списък с устройства, активни в ядрото). Структурата net_device може да бъде намерена в linux / include / linux / netdevice.h. Някои функции се намират в linux / net / core / dev.c.

Функцията dev_queue_xmit се използва за изпращане на sk_buff от слоя протокол до устройството. Той подрежда sk_buff за възможно препращане от съответния драйвер на устройството (устройството, посочено от net_device или sk_buff-> dev указателя в sk_buff). Структурата на dev съдържа метод, наречен hard_start_xmit, който държи функцията драйвер за инициализиране на прехвърлянето sk_buff.

Получаването на пакет се извършва традиционно с помощта на netif_rx. Когато драйверът на устройство от по-ниско ниво получи пакет (съдържащ се в специален sk_buff), sk_buff се изкачва до мрежовия слой, като извиква netif_rx. След това тази функция поставя в ред sk_buff към по -висок протоколен слой за по -нататъшна обработка, използвайки netif_rx_schedule. Функциите dev_queue_xmit и netif_rx се намират в linux / net / core / dev.c.

И накрая, в ядрото беше въведен нов интерфейс за програмиране на приложения (NAPI) за взаимодействие с независимия от устройството слой (dev). Някои шофьори го използват, но по -голямата част все още използват по -стария интерфейс за придобиване на рамка (приблизително шест от седем). NAPI може да осигури по -добра производителност при големи натоварвания, като същевременно избягва прекъсвания на всеки входящ кадър.

Драйвери за устройства

В долната част на мрежовия стек има драйвери на устройства, които контролират физически мрежови устройства. Примери за устройства на това ниво са SLIP драйвер през сериен интерфейс или Ethernet драйвер през Ethernet устройство.

По време на инициализацията драйверът на устройството разпределя място за структурата net_device и след това го инициализира с необходимите подпрограми. Един от тях, наречен dev-> hard_start_xmit, определя как горният слой трябва да постави на опашка sk_buff за предаване. Sk_buff се предава към него. Тази функция зависи от хардуера, но обикновено пакетът, описан в sk_buff, се премества в така наречения „хардуерен пръстен“ или „опашка“. Пристигането на рамка, както е описано в независимия от устройството слой, използва интерфейса netif_rx или netif_receive_skb за мрежов драйвер, съвместим с NAPI. NAPI драйверът поставя ограничения върху възможностите на основния хардуер. Вижте раздела за подробности.

След като драйверът на устройството е конфигурирал своите интерфейси в структурата за разработчици, извикването на register_netdevice го прави достъпно за използване. В linux / drivers / net можете да намерите драйвери, специфични за мрежовите устройства.

Продължа напред

Изходният код на Linux е чудесен начин да научите за дизайна на драйвери за много видове устройства, включително драйвери за мрежови устройства. Ще откриете разлики в изграждането и използването на наличните API на ядрото, но всеки е полезен или като ръководство, или като отправна точка за нов драйвер. Останалата част от кода в мрежовия стек е стандартна и се използва, докато не се наложи нов протокол. Дори и тогава реализациите на TCP (за протокол за стрийминг) или UDP (за протокол, базиран на съобщения) служат като полезни модели за стартиране на нова разработка.