OSI моделът ( от англ. Open Systems Interconnection Basic Reference Model (OSI Препоръчителен модел или просто OSI модел )) е абстрактен модел, предоставящ описание за начина на комуникация и строежа на компютърни мрежи. Като главна градивна единица са използвани така наречените слоеве - всеки слой предоставя интерфейс и услуги към горния си слой , като също така получава услуги от слоят под него.
OSI моделът позволява на еднородни и нееднородни системи (използващи или едни и същи протоколи и операционни системи, или различни) да комуникират безпроблемно помежду си, като същевременно предоставя на производителите и разпространителите обща рамка, която да следват при проектиране на хардуер, операционни системи и протоколи. Моделът предоставя на разработчиците стандартни спецификации за комуникиране между
системи.
OSI моделът е концептуален и се състои от поредица стандарти, дефиниращи
какво трябва да се случва и как точно да бъдат пакетирани данните, за да могат
безпроблемно да бъдат предадени по кабела до отдалечения хост. Логическите
слоеве на модела просто дефинират различните функции, които се изпълняват във
всеки слой, а начинът на осъществяване на тази функционалност зависи от
производителя.
Важно е да се отбележи, че моделът се използва, само когато се пакетират данни за
предаване до отдалечен хост (от същия или от друг вид), и не се използва, когато се
осъществява локален достъп до данните на собствената ви система.
Информацията, пътуваща по мрежата, се определя като данни, пакет, или даннов
пакет. Данновият пакет представлява логически групирана информационна единица,
кoято се придвижва между компютърните системи. Пакетът съдържа адрес на източник,
адрес на получател и други контролни елементи, необходими за осъществяването на
надеждна комуникация.
За да достигне пакетът от източника до местоназначението, е необходимо всички
устройства в мрежата (или по-точно тези по пътя му) да "говорят" на един и същ
език (да използват един и същ протокол). Протоколът представлява сбор от правила,
определящи формата на данните и начина на транспортирането им. Протоколите се използват
за комуникация между съответстващи си слоеве на източника и местоназначението: с
други думи, протоколите от слой 2 (Data-link) служат за обмяна на данни между
слой 2 на източника и слой 2 на получателя. Това е peer-to-peer комуникация. По
време на този процес протоколите от всеки слой си разменят информация/данни,
наречени PDU (Protocol Data Unit). Всеки слой използва специфична за
него PDU.
Една от целите на създаването на модел, състоящ се от слоеве, е да се раздели
цялостната задача по комуникациите между системите на няколко по-малки
проблема, които съответно се решават по-лесно.
През 1984 г. е завършен OSI моделът, снабдяващ производителите с набор от
стандарти, осигуряващи пълна съвместимост между отделните видове мрежови
технологии, разработени от различни компании (DECNet, SNA, TCP/IP и
др.).
Аpplication | Приложен слой | layer 7 |
Presentation | Представителен слой | layer 6 |
Session | Сесиен слой | layer 5 |
Transport | Транспортен слой | layer 4 |
Network | Мрежови слой | layer 3 |
DataLink | Канален слой | layer 2 |
Physical | Физически слой | layer 1 |
Описание на слоевете[]
Приложен слой[]
Това е най-горният слой от OSI модела, който се отнася за приложения (програми) като Internet Explorer, Mozilla FireFox, Opera и др., могат да бъдат абстрактно представени като прозорец, който ви позволява да предоставите достъп до данни по мрежата от едно приложение на друго (работещи на две отделни системи). Този слой позволява на потребителските приложения да изпращат данни по мрежата, предоставяйки достъп до по-долните слоеве и осигурявайки интерфейс към протоколният стек. Някои от услугите на приложният слой са електронна поща (e-mail), достъп до Web, файлови и принтерни услуги (приложения с мрежови услуги) и др. Някои от по-важните протоколи, функциониращи на този слой, са FTP, TFTP, DNS, HTTP, SMTP, Telnet и др.
Представителен слой:[]
Както подсказва и името му, този слой се грижи за представяне на данните във вид, разбираем за отсрещната страна, като осигурява общия им формат за различни платформи. Отговаря за конвертиране и “превеждане” на данните, компресиране/декомпресиране, както и за криптиране/декриптиране на информацията. Към протоколите, отнасящи се към представителният слой, спадат XDR, NFS, и др.
Сесиен слой:[]
Най-общо слоят управлява създаването (и съответно прекъсването) на сесии, представляващи диалог между представителните слоеве на две (или повече) системи. Контролира и диалога между две приложения на различни хостове и управлява потоците с данни посредством точки на синхронизация (checkpoints). Ефективността на управлението на потока зависи от комуникационния режим - пълен дуплекс или полудуплекс (при първия вид и двете станции могат да “говорят” едновременно, докато при полудуплекса само едната страна може да предава данни в даден момент). Типичен протокол, функциониращ в този слой, е NetBIOS.
Транспортен слой:[]
Осигурява комуникация от край до край (end-to-end) между процеси, изпълнявани на различни хостове. Предоставя на по-горните слоеве услуги със или без установяване на конекция (connection-oriented или connectionless), в зависимост от застъпените протоколи. Слоят използва адреси на клиентски и сървърни портове, за да идентифицира различни процеси, изпълнявани на хоста. Сегментира данните, подадени му от сесийния слой, определяйки пореден номер за всеки сегмент, с цел правилното им подреждане от получателя. Слоят организира потока от данни и осигурява контрол при положение, че сесията е с установяване на конекция. Протоколи, отнасящи се към транспортния слой, са TCP и UDP (първият - осигуряващ надеждност, а вторият - бързина при трансфера на данните).
Мрежови слой:[]
Една от основните му функции е задаването на логически адреси на източника и местоназначението, както и определяне на най-добрия път за маршрутизиране на данните между мрежи. За постигане на възможно най-добра маршрутизация устройствата от мрежовия слой (маршрутизаторите) използват превключване на пакети (packet switching). В този процес маршрутизаторът идентифицира адреса на логическото местоназначение на трафика (пакетите), приет чрез даден интерфейс, след което го изпраща чрез друг интерфейс до неговото местоназначение. Протоколи, работещи на този слой, са IP, IPX, DHCP, RIP, OSPF, X25 и др.
Канален слой:
Една от основните отговорности на каналният слой е предаването и приемането на кадри и физическото им адресиране. Слоят прибавя хедър в началото и трейлър в края на всеки пакет (превръщайки го в кадър) преди неговото предаване. Хедъри към данните прибавят и мрежовият и транспортният слоеве, но трейлърът се добавя само на ниво Data-link. Каналният слой се разделя на два подслоя, LLC и MAC, като първият добавя още контролна информация, служеща за правилното транспортиране на данните, а вторият осигурява достъп до медията. Някои от основните характеристики на слоя са контрол на достъпа до преносната среда, добавяне на хардуерни (MAC) адреси на източника и местоназначението, подготвяне на пакетите за предаване (чрез капсулирането им в кадри), изчисляване на контролната сума на кадъра (FCS), както и кодирането на електрическите, светлинните или електромагнитните импулси в преносната среда. При предаване на данни изпращащите устройства изпълняват алгоритъм за циклична проверка с остатък (CRC) или контрол на последователността на данните (FCS), като записват получената стойност в трейлъра на кадъра. Станцията-получател изпълнява същия алгоритъм и сверява стойностите, като по тази начин разбира дали кадърът се е повредил по време на преноса. Към този слой се отнасят протоколи като Frame Relay, ISDN, HDLC, PPP и др.
Физически слой:[]
Най-долният слой от модела работи само с единици и нули (битове), изграждащи рамката (frame). Битовете са кодирани като електрически или светлинни импулси (при безжичните системи са електромагнитни вълни). Този слой се занимава с електрическите и механичните характеристики, с кодирането и с формирането на нивата на напрежение на сигналите. Към този слой се отнасят и спецификациите за отделните типове медиа и конектори.
Както споменахме и по-горе, информацията, изпращана по мрежата, се определя като данни или даннови пакети. Ако два хоста (А и В) желаят да комуникират, данните първо трябва да бъдат капсулирани (пакетирани). Информацията, която трябва да бъде транспортирана, се придвижва от приложния слой надолу по OSI модела, като при преминаване през различните слоеве данните претърпяват промяна в следствие на работата и функциите на отделните нива. Процесът на капсулация може да се раздели на няколко етапа:
- Изграждане на данните, които трябва да бъдат транспортирани.
- Подготвяне на данните за транспорт от край до край, сегментиране на данновия поток, гарантиращо надеждна и безпроблемна комуникация между двата хоста. Определяне на поредни номера за сегментите и номера на портове.
- Оформяне на данните в пакети, съдържащи мрежови хедъри (nеtwork header). Мрежовият хедър съдържа логически адреси на източника и получателя, както и допълнителна контролна информация. Тези адреси се използват от мрежовите устройства за изпращане на пакетите през мрежата по избрания път.
- Добавяне на канални (Data Link) хедър и трейлър, капсулиране на пакетите в кадри. Кадърът позволява връзка със следващото директно свързано устройство.
- Конвертиране на кадрите в поредица от битове и кодирането им по медиата.
Приемащият хост придвижва приетите данни нагоре по модела, като всеки слой премахва допълнителната информация, прибавена от съответстващия му слой при изпращача.