Мережевий рівень
Мережевий рівень (Network layer) служить для створення єдиної транспортної системи, що об'єднує декілька мереж, причому ці мережі можуть використовувати зовсім відмінні принципи передачі повідомлень між кінцевими вузлами і мати довільну структуру зв'язків. Функції мережевого рівня досить різноманітні. Почнемо їх розгляд на прикладі об'єднання локальних мереж.
Протоколи канального рівня локальних мереж забезпечують доставку даних між будь-якими вузлами тільки в мережі з відповідною типовою топологією, наприклад топологією ієрархічної зірки. Це дуже жорстке обмеження, що не дозволяє будувати мережі з розвиненою структурою, наприклад, мережі, що об'єднують декілька мереж підприємства в одну , або високонадійні мережі, у яких існують надлишкові зв'язки між вузлами. Можна було б ускладнювати протоколи канального рівня для підтримки петлеподібних надлишкових зв'язків, але принцип поділу обов'язків між рівнями призводить до іншого рішення. Щоб, з одного боку, зберегти простоту процедур передачі даних для типових топологій, а з іншого – дозволити використання довільних топологій, вводиться додатковий мережевий рівень.
На мережевому рівні сам термін мережа наділяють специфічним значенням. У даному випадку під мережею розуміється сукупність комп'ютерів, сполучених між собою відповідно до однієї зі стандартних типових топологій і протоколів, що використовуються для передачі даних, визначених для цієї топології.
Всередині мережі доставка даних забезпечується відповідним канальним рівнем, а от доставкою даних між мережами займається мережевий рівень, що і підтримує можливість правильного вибору маршруту передачі повідомлення навіть у тому випадку, коли структура зв'язків між складовими мережами має характер, відмінний від прийнятого в протоколах канального рівня.
Мережі з'єднуються між собою спеціальними пристроями, що називаються маршрутизаторами.
Маршрутизатор – це пристрій, що збирає інформацію про топологію міжмережевих з'єднань і на її підставі пересилає пакети мережевого рівня в мережу призначення. Щоб передати повідомлення від відправника, що знаходиться в одній мережі, адресату, що знаходиться в іншій мережі, потрібно виконати деяку кількість транзитних передач між мережами, або хопів (від hop – стрибок), щораз обираючи потрібний маршрут. Таким чином, маршрут – це послідовність маршрутизаторів, через які проходить пакет.
На Мал. 1 показані чотири мережі, пов'язані трьома маршрутизаторами. Між вузлами А і В даної мережі пролягають два маршрути: перший через маршрутизатори 1 і 3, а другий через маршрутизатори 1, 2 і 3.
Проблема вибору найкращого шляху називається маршрутизацією, і її вирішення є однією з головних задач мережевого рівня. Ця проблема ускладнюється тим, що найкоротший шлях не завжди найкращий. Часто критерієм при виборі маршруту є час передачі даних, який залежить від пропускної спроможності каналів зв'язку й інтенсивності трафіка, що може змінюватися. Деякі алгоритми маршрутизації намагаються пристосуватися до зміни навантаження, у той час як інші приймають рішення на основі середніх показників за тривалий час. Вибір маршруту може здійснюватися і за іншими критеріями, наприклад, надійності передачі.
У загальному випадку функції мережевого рівня ширше, ніж функції передачі повідомлень зв'язками із нестандартною структурою, що ми їх розглянули на прикладі об'єднання декількох локальних мереж. Мережевий рівень вирішує також задачу узгодження різних технологій, спрощення адресації в значних мережах і створення надійних і гнучких бар'єрів на шляху небажаного трафіка між мережами.
Повідомлення мережевого рівня прийнято називати пакетами (packets). При організації доставки пакетів на мережевому рівні використовується поняття «номер мережі». У цьому випадку адреса одержувача складається зі старшої частини – номера мережі і молодшої – номеру вузла в цій мережі. Всі вузли однієї мережі повинні мати ту саму старшу частину адреси, тому терміну «мережа» на мережевому рівні можна дати й інше, більш формальне визначення: мережа – це сукупність вузлів, мережева адреса яких містить той сам номер мережі.
На мережевому рівні визначаються два види протоколів. Перший вид – мережеві протоколи (routed protocols) – реалізують просування пакетів через мережу. Саме ці протоколи звичайно мають на увазі, коли говорять про протоколи мережевого рівня. Проте часто до мережевого рівня відносять і інший вид протоколів – протоколи обміну маршрутною інформацією або просто протоколи маршрутизації (routing protocols). За допомогою цих протоколів маршрутизатори збирають інформацію про топологію міжмережевих з'єднань. Протоколи мережевого рівня реалізуються програмними модулями операційної системи, а також програмними й апаратними засобами маршрутизаторів.
На мережевому рівні працюють протоколи ще одного типу, що відповідають за відображення адреси вузла, використовуваного на мережевому рівні, у локальну адресу мережі. Такі протоколи часто називають протоколами дозволу адрес – Address Resolution Protocol, ARP. Іноді їх відносять не до мережевого рівня, а до канального, хоча тонкощі класифікації не змінюють їхньої суті.
Прикладами протоколів мережевого рівня є протокол міжмережевої взаємодії IP стека TCP/IP і протокол міжмережевого обміну пакетами IPX стека Novell.