Який стек протоколів сьогодні найбільш популярний чому. Основний стік протоколів інтернет. Стек (мережеві комутатори). Налаштування мережевих пристроїв. Протоколи доступу в Інтернет

Від сокетов до драйверів пристроїв

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

У той час як формальне введення в роботу в мережі відсилає нас до моделі взаємодії відкритих систем (OSI - Open Systems Interconnection), це введення в основний мережевий стек в Linux використовує чотирьохрівневу модель, відому як модель Інтернет (Internet model) (дивіться малюнок 1) .

Малюнок 1. Інтернет-модель мережевого стека

Внизу стека розташовується канальний рівень. канальний рівеньвідноситься до драйверів пристроїв, що забезпечує доступ до фізичного рівня, який може складатися з численних середовищ, таких як послідовні канали або пристрою Ethernet. Над канальним знаходиться мережевий рівень, Який відповідає за напрямок пакетів за призначенням. Наступний рівень під назвою транспортнийвідповідає за однорангові (peer-to-peer) комунікації (наприклад, в межах хоста). Мережевий рівень управляє зв'язком між хостами, а транспортний - взаємодією між кінцевими точками всередині цих хостів. Нарешті, існує прикладний рівень, Який зазвичай є семантичним і розуміє переміщені дані. Наприклад, протокол передачі гіпертексту (HTTP - Hypertext Transfer Protocol) переміщує запити і відповіді для вмісту Web між сервером і клієнтом.

По суті, рівні мережевого стека проходять під більш впізнаваними назвами. На канальному рівні ви знайдете Ethernet, найбільш поширену високошвидкісну середу. До старішим протоколам канального рівня відносяться такі послідовні протоколи, як Internet-протокол для послідовної лінії (SLIP - Serial Line Internet Protocol), Compressed SLIP (CSLIP) і Point-to-Point Protocol (PPP). Найбільш поширеним протоколом мережевого рівня є Internet Protocol (IP), але існують і інші, які задовольняють іншим потребам, такі як Протокол керуючих повідомлень Internet (ICMP - Internet Control Message Protocol) і Протокол дозволу адрес (ARP - Address Resolution Protocol). На транспортному рівні це Протокол управління передачею (TCP - Transmission Control Protocol) і Протокол призначених для користувача датаграм (UDP - User Datagram Protocol). Нарешті, прикладний рівень включає в себе безліч звичних нам протоколів, в тому числі HTTP, стандартний Web-протокол, і SMTP (Simple Mail Transfer Protocol), протокол передачі електронної пошти.

Архітектура базової мережі

Тепер перейдемо до архітектури мережевого стека Linux і подивимося, як він реалізує модель Internet. На малюнку 2 представлений високорівнева вид мережевого стека Linux. Нагорі розташовується рівень робочих просторів або прикладний рівень, Який визначає користувачів мережевого стека. внизу знаходяться фізичні пристрої, Які забезпечують можливість з'єднання з мережами (послідовні або високошвидкісні мережі, як Ethernet). У центрі, або в просторі ядра, - мережева підсистема, яка знаходиться в центрі уваги даної статті. Через внутрішню частину мережевого стека проходять буфери сокетов (sk_buffs), які переміщують дані пакета між джерелами і одержувачами. Коротко буде показана структура sk_buff.

Малюнок 2. Високорівнева архітектура мережевого стека Linux

По-перше, вам пропонується короткий огляд основних елементів мережевої підсистеми Linux з подробицями в наступних розділах. Нагорі (дивіться малюнок 2) знаходиться система під назвою інтерфейс системного виклику. Вона просто дає спосіб додатків з робочих просторів отримувати доступ до мережевої підсистеми ядра. Наступним йде протокол-незалежний (protocol agnostic) рівень, який надає загальний спосіб роботи з нижчими протоколами транспортного рівня. Далі слідують фактичні протоколи, до яких в системі Linux відносяться вбудовані протоколи TCP, UDP і, звичайно ж, IP. Наступний - ще один незалежний рівень, який забезпечує загальний інтерфейс до окремих доступним драйверампристроїв і від них, супроводжуваний в кінці самими цими драйверами.

Інтерфейс системного виклику

Інтерфейс системного виклику може бути описаний в двох ракурсах. Коли мережевий виклик виробляється користувачем, він мультиплексуюча через системний виклик в ядро. Це закінчується як виклик sys_socketcall в. / Net / socket.c, який потім демультіплексіруются виклик наміченої мети. Інший ракурс інтерфейсу системного виклику - використання нормальних файлових операцій для мережевого вводу / виводу (I / O). Наприклад, звичайні операції читання і запису можуть бути виконані на мережевому сокеті (який представляється файловим дескриптором як нормальний файл). Тому поки існують операції, специфічні для роботи в мережі (створення сокета викликом socket, зв'язування його з дескриптором викликом connect і так далі), є також і деяку кількість стандартних файлових операцій, які застосовуються до мережевих об'єктів, як до звичайних файлів. Нарешті, інтерфейс системного виклику надає кошти для передачі управління між додатком в просторі користувача і ядром.

Протокол-незалежний інтерфейс (Protocol agnostic interface)

Рівень сокетів є Протокол-незалежним (protocol agnostic) інтерфейсом, який надає набір стандартних функцій для підтримки ряду різних протоколів. Цей рівень не тільки підтримує звичайні TCP- і UDP-протоколи, але також і IP, raw Ethernet і інші транспортні протоколи, такі як Протокол управління передачею потоків даних (SCTP - Stream Control Transmission Protocol).

Взаємодія через мережевий стек відбувається за допомогою сокета. Структура сокета в 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, і крім додавання протоколу в список діючих, якщо потрібно, може виділяти один або більше slab-кешей.

Можна побачити, як окремі протоколи ідентифікують самі себе за допомогою структури proto в файлах 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. Структура масиву Internet-протоколу

Кореляція сокета і протоколу

Згадайте, що коли сокет створюється, він визначає тип і протокол, наприклад, my_sock = socket (AF_INET, SOCK_STREAM, 0). AF_INET вказує сімейство Internet-адрес з потоковим сокетом, певним як 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 для Управління доступом до середовища (заголовок Media Access Control або MAC). Оскільки структури sk_buff є центральними в організації даних сокета, для управління ними був створений ряд функцій підтримки. Існують функції для створення, руйнування, клонування і управління черговістю sk_buff.

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

Пристрій-незалежний інтерфейс (Device agnostic interface)

Під рівнем протоколів розташовується інший незалежний рівень інтерфейсу, який пов'язує протоколи з різними драйверами фізичних пристроїв з різними можливостями. Цей рівень надає стандартний набір функцій, які використовуються низько-рівневими мережевими пристроями, щоб мати можливість взаємодіяти з високо-рівневим стеком протоколу.

Перш за все, драйвери пристроїв можуть реєструвати і разрегістріровать себе в ядрі викликом register_netdevice або unregister_netdevice. Зухвала команда спочатку заповнює структуру net_device, а потім передає її для реєстрації. Ядро викликає свою функцію init (якщо вона визначена), виконує кілька перевірок справності, створює запис sysfs і потім додає новий пристрій у свій телефон (пов'язаний список пристроїв, активних в ядрі). Структуру net_device можна знайти в linux / include / linux / netdevice.h. Деякі функції знаходяться в linux / net / core / dev.c.

Для відправлення sk_buff з рівня протоколу пристрою використовується функція dev_queue_xmit. Вона ставить в чергу 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.

Нарешті, для взаємодії з пристрій-незалежним рівнем (dev) в ядро ​​був введений новий інтерфейсприкладних програм (NAPI). Його використовують деякі драйвери, але переважна більшість все ще користується більш старим інтерфейсом отримання кадрів (за грубою оцінкою шість з семи). NAPI може давати кращу продуктивністьпри великих навантаженнях, уникаючи при цьому переривань при кожному вхідному кадрі.

драйвери пристроїв

Внизу мережевого стека знаходяться драйвери пристроїв, які керують фізичними мережевими пристроями. Прикладами пристроїв цього рівня можуть служити драйвер SLIP над послідовним інтерфейсом або драйвер Ethernet над пристроєм Ethernet.

Під час ініціалізації драйвер пристрою виділяє місце для структури net_device, а потім ініціалізує її необхідними подпрограммами. Одна з них, під назвою dev-> hard_start_xmit, визначає, як верхній рівень повинен поставити в чергу sk_buff для передачі. Їй передається sk_buff. Ця функція залежить від обладнання, але зазвичай пакет, описуваний в sk_buff, переміщається в так зване "апаратне кільце" (hardware ring) або "чергу" (queue). Надходження кадру, як описано на пристрій-незалежному рівні, використовує інтерфейс netif_rx або netif_receive_skb для NAPI-сумісного мережного драйвера. Драйвер NAPI накладає обмеження на можливості базового обладнання. Подробиці дивіться в розділі.

Після того як драйвер пристрою налаштував свої інтерфейси в структурі dev, виклик register_netdevice робить її доступною для використання. У linux / drivers / net можна знайти драйвери, характерні для мережевих пристроїв.

Йдемо далі

Вихідний код Linux - прекрасний спосіб дізнатися про конструкції драйверів для безлічі типів пристроїв, включаючи драйвери мережевих пристроїв. Ви виявите відмінності в конструкції і використанні доступних API ядра, але кожен буде корисний або інструкціями, або як відправна точка для нового драйвера. Решта код в мережевому стеку стандартний і використовується, поки не буде потрібно новий протокол. Але навіть тоді реалізації TCP (для потокового протоколу) або UDP (для протоколу на основі передачі повідомлень) служать корисними моделями для початку нової розробки.

У цій статті будуть розказані основи моделі TCP / IP. Для кращого розуміння описані основні протоколи і служби. Головне - не поспішати і намагатися розуміти кожну річ поетапно. Всі вони взаємопов'язані і без розуміння однієї, важко буде зрозуміти іншу. Тут скомпонована досить поверхнева інформація, так що цю статтю сміливо можна назвати «стеком протоколів TCP / IP для чайників». Однак, багато речей тут не так важкі для розуміння, як може здатися на перший погляд.

TCP / IP

Стек TCP / IP - мережева модель передачі даних в мережі, вона визначає порядок взаємодії пристроїв. Дані надходять на канальний рівень і обробляються по черзі кожним рівнем вище. Стек представлений у вигляді абстракції, яка пояснює принципи обробки і прийому даних.

Стек протоколів мережі TCP / IP має 4 рівня:

  1. Канальний (Link).
  2. Мережевий (Internet).
  3. Транспортний (Transport).
  4. Прикладний (Application).

прикладний рівень

Прикладний рівень забезпечує можливість взаємодії між додатком і іншими рівнями стека протоколів, аналізує і перетворює інформацію, що надходить в формат, який підходить для програмного забезпечення. Є найближчим до користувача і взаємодіє з ним безпосередньо.

  • HTTP;
  • SMTP;

Кожен протокол визначає власний порядок і принципи роботи з даними.

HTTP (HyperText Transfer Protocol) призначений для передачі даних. По ньому відправляються, наприклад, документи в форматі HTML, які служать основою веб-сторінки. Спрощено схема роботи представляється як «клієнт - сервер». Клієнт відправляє запит, сервер його приймає, належним чином обробляє і повертає кінцевий результат.

Служить стандартом передачі файлів в мережі. Клієнт посилає запит на якийсь файл, сервер шукає цей файл у своїй базі і якщо виявлено відправляє його як відповідь.

Використовується для передачі електронної пошти. SMTP-операція включає в себе три послідовні кроки:

  1. Визначення адреси відправника. Це необхідно для повернення листів.
  2. Визначення одержувача. Цей крок може повторюватися кілька разів при вказівці декількох адресатів.
  3. Визначення вмісту повідомлення і відправка. Як службової інформації передаються дані про тип повідомлення. Якщо сервер підтверджує готовність прийняти пакет, то відбувається сама транзакція.

Тема (Header)

У заголовку містяться службові дані. Важливо розуміти, що вони призначаються тільки для конкретного рівня. Це означає, що як тільки пакет відправиться до одержувача, то буде оброблений там за такою ж моделлю, але в зворотному порядку. Вкладений заголовок буде нести спеціальну інформацію, яка може бути оброблена тільки певним чином.

Наприклад, заголовок, вкладений на транспортному рівні, на іншій стороні може бути оброблений тільки транспортним рівнем. Інші просто його проігнорують.

транспортний рівень

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

Протоколи передачі даних:

Найпоширеніший протокол. Він відповідає за гарантовану передачу даних. При відправці пакетів контролюється їх контрольна сума, процес транзакції. Це означає, що інформація дійде «в цілості й схоронності» незалежно від умов.

UDP (User Datagram Protocol) - другий за популярністю протокол. Він також відповідає за передачу даних. Відмітна властивість криється в його простоті. Пакети просто відправляються, не створюючи особливою зв'язку.

TCP або UDP?

У кожного з цих протоколів є своя область застосування. Вона логічно обумовлена ​​особливостями роботи.

Основна перевага UDP полягає в швидкості передачі. TCP є складним протоколом з безліччю перевірок, в той час як UDP видається більш спрощеним, а значить, і більш швидким.

Недолік криється в простоті. Зважаючи на відсутність перевірок не гарантується цілісність даних. Таким чином, інформація просто відправляється, а всі перевірки і подібні маніпуляції залишаються за додатком.

UDP використовується, наприклад, для перегляду відео. Для відеофайлу не критична втрата невеликої кількості сегментів, в той час як швидкість завантаження - найважливіший фактор.

Однак якщо необхідно відправити паролі або реквізити банківської картки, то необхідність використання TCP очевидна. Втрата навіть самої мізерної частини даних може спричинити за собою катастрофічні наслідки. Швидкість в цьому випадку не так важлива, як безпека.

Мережевий рівень

Мережевий рівень з отриманої інформації утворює пакети і додає заголовок. Найбільш важливою частиною даних є IP і MAC-адреси відправників і одержувачів.

IP-адреса (Internet Protocol address) - логічний адресу пристрою. Містить інформацію про місцезнаходження пристрою в мережі. Приклад запису:.

MAC-адресу (Media Access Control address) - фізичну адресу пристрою. Використовується для ідентифікації. Присвоюється мережевого обладнання на етапі виготовлення. Представлений як шестібайтний номер. Наприклад:.

Мережевий рівень відповідає за:

  • Визначення маршрутів доставки.
  • Передачу пакетів між мережами.
  • Присвоєння унікальних адрес.

Маршрутизатор - пристрої мережевого рівня. Вони прокладають шлях між комп'ютером і сервером на основі отриманих даних.

Найпопулярніший протокол цього рівня - IP.

IP (Internet Protocol) - інтернет-протокол, призначений для адресації в мережі. Використовується для побудови маршрутів, за якими відбувається обмін пакетами. Не володіє ніякими засобами перевірки і підтвердження цілісності. Для забезпечення гарантій доставки використовується TCP, який використовує IP в якості транспортного протоколу. Розуміння принципів цієї транзакції багато в чому пояснює основу того, як працює стек протоколів TCP / IP.

Види IP-адрес

У мережах використовуються два види IP-адрес:

  1. Публічні.
  2. Приватний.

Публічні (Public) використовуються в Інтернеті. Головне правило - абсолютна унікальність. Приклад їх використання - маршрутизатори, кожен з яких має свій IP-адресу для взаємодії з мережею Інтернет. Така адреса називається публічним.

Приватний (Private) не використовуються в Інтернеті. У глобальній мережі такі адреси не є чимось унікальним. Приклад - локальна мережа. Кожному пристрою присвоюється унікальний в межах даної мережі IP-адреса.

Взаємодія з мережею Інтернет ведеться через маршрутизатор, який, як уже було сказано вище, має свій публічний IP-адресу. Таким чином, всі комп'ютери, підключені до маршрутизатора, представляються в мережі Інтернет від імені одного публічного IP-адреси.

IPv4

Найпоширеніша версія інтернет-протоколу. Передує IPv6. Формат запису - чотири восьмибітних числа, розділені крапками. Через знак дробу вказується маска підмережі. Довжина адреси - 32 біта. У переважній більшості випадків, коли мова йде про IP-адресу, мається на увазі саме IPv4.

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

IPv6

Ця версія призначається для вирішення проблем попередньою версією. Довжина адреси - 128 біт.

Основна проблема, яку вирішує IPv6 - це вичерпання адрес IPv4. Передумови почали проявлятися вже на початку 80-х років. Незважаючи на те, що ця проблема набула в гостру стадію вже в 2007-2009 роках, впровадження IPv6 дуже повільно «набирає обертів».

Головна перевага IPv6 - більш швидке інтернет-з'єднання. Це відбувається через те, що для цієї версії протоколу не потрібно трансляції адрес. Виконується проста маршрутизація. Це є менш витратним і, отже, доступ до інтернет-ресурсів надається швидше, ніж в IPv4.

Приклад запису:.

Існує три типи IPv6-адрес:

  1. Unicast.
  2. Anycast.
  3. Multicast.

Unicast - тип одноадресних IPv6. При відправці пакет досягає тільки інтерфейсу, розташованого на відповідному адресі.

Anycast відноситься до групових IPv6-адресами. Відправлений пакет потрапить в найближчий мережевий інтерфейс. Використовується тільки маршрутизаторами.

Multicast є багатоадресними. Це означає, що відправлений пакет досягне всіх інтерфейсів, які перебувають групі мультівещанія. На відміну від broadcast, який є «мовленням для всіх», multicast віщає лише певної групи.

Маска підмережі

Маска підмережі виявляє з IP-адреси підмережа і номер хоста.

Наприклад, IP-адреса має маску. В такому випадку формат запису буде виглядати так. Число «24» - це кількість біт в масці. Вісім біт дорівнює одному октету, який також може називатися байтом.

Якщо докладніше, то маску підмережі можна уявити в двійковій системі числення таким чином:. У ній є чотири октету, і запис складається з «1» і «0». Якщо скласти кількість одиниць, то отримаємо в сумі «24». На щастя, вважати за одиницю не обов'язково, адже в одному октеті - 8 значень. Бачимо, що три з них заповнені одиницями, складаємо і отримуємо «24».

Якщо говорити саме про масці підмережі, то в двійковому поданні вона має в одному октеті або одиниці, або нулі. При цьому послідовність така, що спочатку йдуть байти з одиницями, а тільки потім з нулями.

Розглянемо невеликий приклад. Є IP-адреса і маска підмережі. Вважаємо і записуємо:. Тепер зіставляємо маску з IP-адресою. Ті октети маски, в яких всі значення рівні одиниці (255) залишають відповідні їм октети в IP-адресу без зміни. Якщо ж у значенні нулі (0), то октети в IP-адресу також стають нулями. Таким чином, в значенні адреси підмережі отримуємо.

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

Підмережа відповідає за логічне поділ. По суті, це пристрої, що використовують одну локальну мережу. Визначається діапазоном IP-адрес.

Хост - це адреса мережевого інтерфейсу (мережевої карти). Визначається з IP-адреси за допомогою маски. Наприклад:. Так як перші три октету - підмережа, то залишається. Це і є номер хоста.

Діапазон адрес хоста - від 0 до 255. Хост під номером «0» є, власне, адресою самої підмережі. А хост під номером «255» є широкомовною.

адресація

Для адресації в стеці протоколів TCP / IP використовуються три типи адрес:

  1. Локальні.
  2. Мережеві.
  3. Доменні імена.

Локальними називаються MAC-адреси. Вони використовуються для адресації в таких технологіях локальної мережі як, наприклад, Ethernet. В контексті TCP / IP слово «локальні» означає, що вони діють лише в межах підмережі.

Мережевою адресою в стеці протоколів TCP / IP є IP-адреса. При відправці файлу з його заголовка зчитується адреса одержувача. З його допомогою маршрутизатор дізнається номер хоста і підмережа і, грунтуючись на цій інформації, прокладає маршрут до кінцевого вузла.

Доменні імена - це легким для читання адреси веб-сайтів в Інтернеті. Веб-сервера в мережі Інтернет доступні з публічного IP-адресою. Він успішно обробляється комп'ютерами, проте для людей видається занадто незручним. Для того щоб уникнути подібних складнощів, використовуються доменні імена, Які складаються з областей, які називаються «доменами». Вони розташовуються в порядку суворої ієрархії, від верхнього рівня до нижнього.

Домен першого рівня представляє конкретну інформацію. Загальні (.org, .net) не обмежені будь-якими суворими межами. Зворотна ситуація - з локальними (.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 - найпоширеніша технологія дротових локальних мереж.

WLAN - локальна мережа на основі бездротових технологій. Взаємодія пристроїв відбувається без фізичних кабельних з'єднань. Приклад найпоширенішого методу - Wi-Fi.

Налаштування TCP / IP для використання статичного IPv4-адреси

Статичний IPv4-адрес призначається безпосередньо в налаштуваннях пристрою або автоматично при підключенні до мережі і є постійним.

Для настройки стека протоколів TCP / IP на використання постійного IPv4-адреси необхідно ввести в консоль команду ipconfig / all і знайти такі дані.

Налаштування TCP / IP для використання динамічного IPv4-адреси

Динамічний IPv4-адрес використовується якийсь час, здається в оренду, після чого змінюється. Присвоюється пристрою автоматично при підключенні до мережі.

Щоб налаштувати стек протоколів TCP / IP на використання непостійного IP-адреси необхідно зайти в властивості потрібного з'єднання, відкрити властивості IPv4 і поставити позначки так, як зазначено.

Способи передачі даних

Дані передаються через фізичне середовище трьома способами:

  • Simplex.
  • Half-duplex.
  • Full Duplex.

Simplex - це односторонній зв'язок. Передача ведеться тільки одним пристроєм, в той час як інша тільки приймає сигнал. Можна сказати, що інформація транслюється тільки в одному напрямку.

Приклади симплексного зв'язку:

  • Телемовлення.
  • Сигнал від супутників GPS.

Half-duplex - це двосторонній зв'язок. Однак тільки один вузол може передавати сигнал в певний момент часу. При такого зв'язку два пристрої не можуть одночасно використовувати один канал. Повноцінна двосторонній зв'язок може бути неможлива фізично або приводити до колізій. Йдеться про те, що вони конфліктують за середу передачі. Цей режим застосовується при використанні коаксіального кабелю.

Приклад полудуплексной зв'язку - спілкування по рації на одній частоті.

Full Duplex - повноцінна двостороння зв'язок. Пристрої можуть одночасно транслювати сигнал і виробляти прийом. Вони не конфліктують за середу передачі. Цей режим застосовується при використанні технології Fast Ethernet і з'єднанні з допомогою кручений пари.

Приклад - спілкування по телефону через мобільну мережу.

TCP / IP vs OSI

Модель OSI визначає принципи передачі даних. Рівні стека протоколів TCP / IP прямо відповідають цій моделі. На відміну від чотирирівневого TCP / IP має 7 рівнів:

  1. Фізичний (Physical).
  2. Канальний (Data Link).
  3. Мережевий (Network).
  4. Транспортний (Transport).
  5. Сеансовий (Session).
  6. Представницький (Presentation).
  7. Прикладний (Application).

В даний момент не варто сильно заглиблюватися в цю модель, але необхідно хоча б поверхове розуміння.

Прикладний рівень в моделі TCP / IP відповідає трьом верхнім рівням OSI. Всі вони працюють з додатками, тому можна чітко простежити логіку такого об'єднання. Така узагальнена структура стека протоколів TCP / IP сприяє полегшеному розумінню абстракції.

Транспортний рівень залишається без змін. Виконує однакові функції.

Мережевий рівень також не змінений. Виконує рівно ті ж завдання.

Канальний рівень в TCP / IP відповідає двом останнім рівням OSI. Канальний рівень встановлює протоколи передачі даних через фізичне середовище.

Фізичний є власне фізичний зв'язок - електричні сигналиКоннектори і т.п. У стеці протоколів TCP / IP було вирішено об'єднати ці два рівня в один, так як вони обидва працюють з фізичним середовищем.

Погоджений набір протоколів різних рівнів, достатній для організації міжмережевої взаємодії, називається стеком протоколів. Для кожного рівня визначається набір функцій-запитів для взаємодії з вище лежачим рівнем, який називається інтерфейсом. Правила взаємодії двох машин можуть бути описані у вигляді набору процедур для кожного з рівнів, які називаються протоколами.

Існує досить багато стеків протоколів, широко застосовуваних у мережах. Це стеки, є міжнародними і національними стандартами, і фірмові стеки, які поширені завдяки поширеності устаткування тій чи іншій фірми. Прикладами популярних стеків протоколів можуть служити стек IPX / SPX фірми Novell, стек TCP / IP, який використовується в мережі Internet в багатьох мережах на основі операційної системи UNIX, стек OSI міжнародної організації зі стандартизації, стек DECnet корпорацііDigitalEquipmentі деякі інші.

Стеки протоколів розбиваються на три рівні:

    транспортні;

    прикладні.

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

Мережеві протоколи надають такі послуги: адресацію і маршрутизацію інформації, перевірку на наявність помилок, запит повторної передачі і встановлення правил взаємодії конкретної мережевий середовищі. Нижче наведені найбільш популярні мережеві протоколи.

    DDP(DatagramDeliveryProtocol- Протокол доставки дейтаграм) .Протокол передачі даннихApple, використовуваний вAppleTalk.

    IP(Internet Protocol - Протокол Internet). Протокол стека TCP / IP, що забезпечує адресну інформацію та інформацію про маршрутизації.

    IPX(InternetworkPacketeXchange- Міжмережевий обмін пакетами) в NWLink.ПротоколNovelNetWare, який використовується для маршрутизації і напрямки пакетів.

    NetBEUI(NetBIOSExtendedUserInterface- розширений призначений для користувача інтерфейс базової мережевої системи введення виведення) . Розроблений спільно IBM іMicrosoft, цей протокол забезпечує транспортні послуги для NetBIOS.

Транспортні протоколи

Транспортні протоколи надають такі послуги надійної транспортування даних між комп'ютерами. Нижче наведені найбільш популярні транспортні протоколи.

    ATP(AppleTalkProtocol- Транзакційний протоколAppleTalk) і NBP(NameBindingProtocol- Протокол зв'язування імен). Сеансовий і транспортний протоколиAppleTalk.

    NetBIOS (Базова мережева система введення виведення) . NetBIOS Встановлює з'єднання між комп'ютерами, а NetBEUIнадає послуги передачі даних для цього з'єднання.

    SPX(SequencedPacketeXchange- Послідовний обмін пакетами) в NWLink.ПротоколNovelNetWare, який використовується для забезпечення доставки даних.

    TCP(TransmissionControlProtocol- Протокол управління передачею) .Протокол стека TCP / IP, який відповідає за надійну доставку даних.

прикладні протоколи

Прикладні протоколи відповідають за взаємодію додатків. Нижче наведені найбільш популярні прикладні протоколи.

    AFP(Apple Talk File Protocol - Файловий протокол Apple Talk) .Протокол віддаленого управління файламіMacintosh.

    FTP(File Transfer Protocol - Протокол передачі файлів). Протокол стека TCP / IP, який використовується для забезпечення послуг з передачі файлів.

    NCP(NetWare Core Protocol - Базовий протокол NetWare). Оболонка і редиректори кліентаNovelNetWare.

    SNMP(SimpleNetworkManagementProtocol- Простий протокол керування мережею) .Протокол стека TCP / IP, використовуваний дляуправленія і спостереження за мережевими пристроями.

    HTTP(HyperTextTransferProtocol) - протокол передачі гіпертексту і інші протоколи.

Набір інтернет-протоколів забезпечує наскрізну передачу даних, що визначає, як дані повинні пакетуватися, оброблятися, передаватися, маршрутизироваться і прийматися. Ця функціональність організована в чотири шари абстракції, які класифікують всі пов'язані протоколи відповідно до обсягу задіяних мереж. Від найнижчого до найвищого рівня - це рівень зв'язку, що містить методи зв'язку для даних, які залишаються в межах одного сегмента мережі (посилання); інтернет-рівня, який би межсетевое взаємодія між незалежними мережами; транспортний рівень, що обробляє зв'язок між хостами; і прикладний рівень, який забезпечує обмін даними між процесами для додатків.

Розвитком архітектури Інтернету і протоколів в моделі TCP / IP займається відкрите міжнародне співтовариство проектувальників IETF.

Історія

Стек протоколів TCP / IPбув створений на основі NCP (Network Control Protocol) групою розробників під керівництвом Вінтон Серфа в 1972 році. У липні 1976 року Гвинт Серф і Боб Кан вперше продемонстрували передачу даних з використанням TCP по трьом різним мережам. Пакет пройшов за наступним маршрутом: Сан-Франциско - Лондон - Університет Південної Каліфорнії. До кінця своєї подорожі пакет виконав 150 тисяч км, не втративши жодного біта. У 1978 році Серф, Джон Постел і Денні Кохен вирішили виділити в TCP дві окремі функції: TCP і IP (англ. Internet Protocol,міжмережевий протокол). TCP був відповідальний за розбивку повідомлення на датаграми (англ. Datagram) і з'єднання їх в кінцевому пункті відправлення. IP відповідав за передачу (з контролем отримання) окремих датаграмм. Ось так народився сучасний протокол Інтернету. А1 січня 1983 року ARPANET перейшла на новий протокол. Цей день прийнято вважати офіційною датою народження Інтернету.

Рівні стека TCP / IP

Стек протоколів TCP / IP включає в себе чотири рівні:

Протоколи цих рівнів повністю реалізують функціональні можливості моделі OSI. На стеку протоколів TCP / IP побудовано все взаємодія користувачів в IP-мережах. Стек є незалежним від фізичного середовища передачі даних, завдяки чому, зокрема, забезпечується повністю прозору взаємодію між дротяними і бездротовими мережами.

Розподіл протоколів за рівнями моделі TCP / IP
прикладний
(Application layer)
напр., HTTP, RTSP, FTP, DNS
транспортний

транспортний рівень

Мережевий (міжмережевий) рівень

канальний рівень

Крім того, канальний рівень описує середовище передачі даних (будь то коаксіальний кабель, кручена пара, оптичне волокно або радіоканал), фізичні характеристики такого середовища і принцип передачі даних (поділ каналів, модуляцію, амплітуду сигналів, частоту сигналів, спосіб синхронізації передачі, час очікування відповіді і максимальна відстань).

При проектуванні стека протоколів канального рівня розглядають завадостійке кодування - дозволяють виявляти і виправляти помилки в даних у результаті дії шумів і перешкод на канал зв'язку.

Порівняння з моделлю OSI

Три верхніх рівня в моделі OSI, тобто рівень додатки, рівень представлення і рівень сеансу, окремо не розрізняються в моделі TCP / IP, яка має тільки прикладний рівень над транспортним рівнем. Хоча деякі чисті додатки протоколу OSI, такі як X.400, також об'єднують їх, немає вимоги, щоб пакет протоколів TCP / IP повинен накладати монолітну архітектуру над транспортним рівнем. Наприклад, протокол NFS-додатків працює через протокол представлення даних External Data Representation (XDR), який, в свою чергу, працює по протоколу Remote Procedure Call (RPC). RPC забезпечує надійну передачу даних, тому він може безпечно використовувати транспорт UDP з максимальним зусиллям.

Різні автори інтерпретували модель TCP / IP по-різному і не згодні з тим, що рівень зв'язку або вся модель TCP / IP охоплює проблеми рівня OSI рівня 1 (фізичний рівень) або передбачається, що апаратний рівень нижче рівня каналу.

Кілька авторів спробували включити шари 1 і 2 моделі OSI в модель TCP / IP, оскільки вони зазвичай згадуються в сучасних стандартах (наприклад, IEEE і ITU). Це часто призводить до моделі з п'ятьма шарами, де рівень зв'язку або рівень доступу до мережі поділяються на шари 1 і 2 моделі OSI.

Зусилля по розробці протоколу IETF не стосуються суворого розшарування. Деякі з його протоколів можуть не відповідати чисто моделі OSI, хоча RFC іноді посилаються на неї і часто використовують старі номери рівня OSI. IETF неодноразово заявляв, що розробка інтернет-протоколу і архітектури не повинна відповідати вимогам OSI. В RFC 3439, адресованому інтернет-архітектурі, міститься розділ, що має назву «Шар, що вважається шкідливим».

Наприклад, вважається, що рівні сеансу та подання пакету OSI включені в прикладний рівень пакета TCP / IP. Функціональність рівня сеансу можна знайти в протоколах, таких як HTTP і SMTP, і більш очевидна в таких протоколах, як Telnet і протокол ініціації сеансу (SIP). Функціональність рівня сеансу також реалізована з нумерацією портів протоколів TCP і UDP, які охоплюють транспортний рівень в наборі TCP / IP. Функції рівня уявлення реалізуються в додатках TCP / IP зі стандартом MIME при обміні даними.

Конфлікти очевидні також в оригінальної моделі OSI, ISO 7498, коли не розглядаються додатки до цієї моделі, наприклад, ISO 7498/4 Management Framework або ISO 8648 Internal Organization of the Network layer (IONL). Коли розглядаються документи IONL і Management Framework, ICMP і IGMP визначаються як протоколи управління рівнем для мережевого рівня. Аналогічним чином IONL надає структуру для «залежних від підмереж об'єктів конвергенції», таких як ARP і RARP.

Протоколи IETF можуть бути вміщені рекурсивно, про що свідчать протоколи тунелювання, такі як Інкапсуляція загальної маршрутизації (GRE). GRE використовує той же механізм, який OSI використовує для тунелювання на мережевому рівні. Існують розбіжності в тому, як вписати модель TCP / IP в модель OSI, оскільки рівні в цих моделях не збігаються.

До того ж, модель OSI не використовує додатковий рівень - «Internetworking» - між канальним і мережевим рівнями. Прикладом спірного протоколу може бути ARP або STP.

Ось як традиційно протоколи TCP / IP вписуються в модель OSI:

Розподіл протоколів за рівнями моделі OSI
TCP / IP OSI
7 прикладний прикладний напр., HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
6 уявлення напр., XDR, AFP, TLS, SSL
5 сеансовий напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
4 транспортний транспортний напр., TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
3 Мережевий Мережевий напр., ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP
2 канальний канальний напр., Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS
1 фізичний напр., електричні дроти, радіозв'язок, волоконно-оптичні дроти, інфрачервоне випромінювання

Зазвичай в стеці TCP / IP верхні 3 рівня моделі OSI (прикладної, уявлення і сеансовий) об'єднують в один - прикладний. Оскільки в такому стеку не передбачено уніфікований протокол передачі даних, функції з визначення типу даних передаються з додатком.

Опис моделі TCP / IP в технічній літературі

Примітки

  1. Моделі OSI і TCP / IP. База знань osLogic.ru
  2. Мережеві моделі TCP / IP і OSI. Cisco Learning
  3. Васильєв А. А., Теліна І. С., Ізбачков Ю. С., Петров В. М.Інформаційні системи: Підручник для вузів. - СПб. : Пітер, 2010. - 544 с. - ISBN 978-5-49807-158-9.
  4. Ендрю Кровчік, Винод Кумар, Номан Лагарі і ін..NET мережеве програмування для професіоналів / пер. з англ. В. Стрільців. - М.: Лорі, 2005. - 400 с. - ISBN 1-86100-735-3. - ISBN 5-85582-170-2.

Транспортний рівень (Transport Layer - TL)визначає правила транспортування пакетів по мережі. Транспортний рівень спостерігає за доставкою з кінця в кінець індивідуальних пакетів, він не враховує ніяких залежностей між цими пакетами (навіть належать до одного з повідомленням). Він обробляє кожен пакет як якби кожна частина належала окремим повідомленням, незалежно від того, так це насправді чи ні. Протоколи транспортного рівня гарантують, що всі повідомлення прибувають в кінцевий пункт неушкодженими і пакети розташовуються в первісному порядку. На транспортному рівні здійснюється контроль порушення інформації і контроль помилок, а також управління потоком по всьому тракту "джерело - пункт призначення".

Транспортний рівень виконує наступні завдання:

  • Адресація точки сервісу. Комп'ютери часто виконують декілька програм в один і той же час. З цієї причини доставка "джерело - пункт призначення" означає доставку не тільки від одного комп'ютера до наступного, але також і від заданого процесу (функціонуючої програми) на одному комп'ютері до заданого процесу (функціонуючої програмі) на іншому. Тому заголовок транспортного рівня повинен включати тип адреси, званий адреса сервісної точки (або адреса порту). Мережевий рівень доставляє кожен пакет на коректну адресу комп'ютера; транспортний рівень доставляє повне повідомлення до коректного процесу на цьому комп'ютері.
  • Сегментація і повторна збірка. Повідомлення розділене на транспортуються сегменти, кожен сегмент містить порядковий номер. Ці номери дають можливість транспортному рівню після досягнення пункту призначення правильно повторно зібрати повідомлення і замінювати пакети, які були втрачені в передачі.
  • управління підключенням. Транспортний рівень може бути орієнтований на роботу без встановлення з'єднання (connectionless transfer) або орієнтований на підключення (connection-oriented transfer) - дейтаграммний режим. Транспортний рівень без встановлення з'єднання (по попередньо встановленим віртуальному з'єднанню) обробляє кожен сегмент як незалежний пакет і поставляє його транспортному рівню в машині пункту призначення. Орієнтований на підключення транспортний рівень спочатку перед поставкою пакетів встановлює з'єднання з транспортним рівнем в комп'ютері пункту призначення. Після того як всі дані передані, підключення закінчується.

    У режимі, не орієнтованому на з'єднання, транспортний рівень використовується для передачі одиночних дейтаграм, що не гарантуючи їх надійну доставку. Режим, орієнтований на з'єднання, застосовується для надійної доставки даних.

  • управління потоком. Подібно рівню ланки передачі даних, транспортний рівень відповідає за управління потоком. Однак управління потоком на цьому рівні виконується від "кінця кінця".
  • контроль помилок. Подібно рівню ланки передачі даних, транспортний рівень відповідає за контроль помилок. Транспортний рівень передачі засвідчується, що повне повідомлення досягло транспортного рівня прийому без помилки (пошкодження, втрати або дублювання). Виправлення помилки зазвичай відбувається за допомогою повторної передачі.

Рівень сеансу (Session Layer SL)- мережевий контролер діалогу. Він встановлює, підтримує і синхронізує взаємодію між зв'язуються системами.

За допомогою сеансового рівня (Session Layer) організовується діалог між сторонами, фіксується, яка зі сторін є ініціатором, яка зі сторін активна і яким чином завершується діалог.

Завдання сеансового рівня наступні:

  • управління діалогом. сеансовий рівеньдає можливість двом системам вступати в діалог. Він дозволяє обмін повідомленнями між двома процесами. При цьому можливі режими: або напівдуплексний (один шлях одночасно), або двобічний (два шляхи одночасно). Наприклад, діалог між терміналом і універсальної ЕОМ може бути напівдуплексним.
  • Синхронізація. сеансовий рівеньдозволяє процесу додавати контрольні точки (точки синхронізації) в потік даних. Наприклад, якщо система посилає файл з 2 000 сторінок, бажано вставити контрольні точки після кожних 100 сторінок, щоб гарантувати, що кожен модуль зі 100 сторінками отримано і розпізнається незалежно. В цьому випадку, якщо трапляється порушення протягом передачі сторінки 523, єдина сторінка, яку потрібно і яка буде знову послана після системного відновлення - сторінка 501 (перша сторінка п'ятої сотні)

Рівень представлення (Presentation Layer)займається формою надання інформації нижчого рівнів, наприклад, перекодуванням або шифруванням інформації.

Завдання рівня уявлення наступні:

  • перекодування інформації. Процеси (функціонуючі програми) в двох системах зазвичай змінюють інформацію в формі символьних рядків, чисел і так далі. Інформація, перш ніж бути переданою, повинна бути змінена на потоки біт. Оскільки різні комп'ютери використовують різні системи кодування, рівень представленнянесе відповідальність за здатність до взаємодії між цими різними методами кодування. рівень представленняв передавачі змінює інформацію від форми, що залежить від передавача, в загальну форму. рівень представленняв комп'ютері прийому замінює загальний формат в формат його приймача.
  • шифрування. Щоб доставляти конфіденційну інформацію, система повинна забезпечити секретність. Шифрування означає, що передавач перетворює первинну інформацію до іншої форми і посилає результуюче повідомлення по мережі. Розшифровка повинна бути повністю протилежна початкового процесу, щоб перетворити повідомлення назад до його первісної форми.
  • стиснення. Стиснення даних зменшує число бітів, що містилися в інформації. Стиснення даних стає особливо важливим в передачі мультимедіа, таких як текст, аудіо та відео.

Прикладний рівень (Application Layer - AL)- це набір протоколів, якими обмінюються віддалені вузли, що реалізують одну й ту ж задачу (програму). прикладний рівеньдає можливість користувачеві (людині або програмному забезпеченню) звертатися до мережі. Він забезпечує інтерфейси користувача і підтримку послуг - електронної пошти, віддаленого доступу та переказу коштів, загальнодоступного управління бази даних і інших типів розподілених інформаційних служб.

Приклади послуг, що надаються прикладним рівнем:

  • Мережевий віртуальний термінал. Мережевий віртуальний термінал - програмна версія фізичного терміналу, він дозволяє користувачеві увійти в віддалений хост. Щоб зробити це, додаток створює програмну імітацію терміналу в віддалений хост. Комп'ютер користувача спілкується з програмним терміналом, який, в свою чергу, спілкується з хостом, і навпаки. Віддалений хост визначає цей зв'язок як зв'язок з одним з його власних терміналів і дозволяє вхід.
  • Передача файлів, доступ і управління. Ця програма дозволяє користувачеві звертатися до файлів в віддалений хост, щоб змінювати або читати дані, витягувати файли з віддаленого комп'ютера для використання в місцевому комп'ютері і адмініструвати або керувати файлами на віддаленому комп'ютері.
  • послуги пошти. Ця програма забезпечує базу для передачі і зберігання електронної пошти.
  • послуги каталогу. Ця програма забезпечує розподілені джерела бази даних і доступ до глобальної інформації про різні об'єкти і послуги.

Стек протоколів Інтернету

Стек протоколів мережі Интернет2 був розроблений до моделі OSI. Тому рівні в стекупротоколів Інтернету не відповідають аналогічним рівнями в моделі OSI. Стек протоколів Інтернету складається з п'яти рівнів: фізичного, ланки передачі даних, мережі, транспортного та прикладного. Перші чотири рівні забезпечують фізичні стандарти, мережевий інтерфейс, межсетевое взаємодія і транспортні функції, які відповідають першим чотирьом рівням моделі OSI. Три самих верхніх рівня в моделі OSI представлені в стекупротоколів Інтернету єдиним рівнем, званим прикладним рівнем рис. 1.3.

Мал. 1.3.

ARP Address Resolution Protocol Протокол знаходження адреси
ATM Asynchronous Transfer Mode Режим асинхронної передачі
BGP Border Gateway Protocol Протокол прикордонної маршрутизації
DNS Domain Name System Система доменних імен
Ethernet Ethernet Network мережа Ethernet
FDDI Fiber Distributed Data Interface Волоконно-оптичний розподілений інтерфейс даних
HTTP Hyper Text Transfer Protocol Протокол передачі гіпертексту
FTP File transfer Protocol Протокол передачі файлів
ICMP Internet Control Message Protocol Протокол керуючих повідомлень
IGMP Internet Group Management Protocol Протокол управління групами (користувачів) в Інтернеті
IP Internet Protocol міжмережевий протокол
NFS Network File System Протокол мережевого доступу до файлових систем
OSPF Open Shortest Path First Відкритий протокол переваги найкоротшого каналу
PDH Plesiochronous Digital Hierarchy Плезиохронная цифрова ієрархія
PPP Point-to- Point Protocol Протокол зв'язку "точка-точка"

Стёком протоколів, або в просторіччі TCP / IP називають мережеву архітектуру сучасних пристроїв, Розроблених для користування мережею. Stack - це стінка, в якій кожен складовий цеглинка лежить поверх іншого, залежить від нього. Називати стек протоколів "стёком TCP / IP" почали завдяки двом основним протоколам, які були реалізовані - безпосередньо IP, і TCP на його основі. Однак, вони лише основні і найбільш поширених. Якщо не сотні, то десятки інших використовуються донині в різних цілях.

Звичний нам веб (world wide web) заснований на протоколі HTTP (hyper-text transfer protocol), який в своб чергу працює на основі TCP. Це класичний приклад використання стека протоколів. Є ще протоколи електронної пошти IMAP / POP і SMTP, протоколи віддаленої оболонки SSH, віддаленого робочого столу RDP, баз даних MySQL, SSL / TLS, і тисячі інших додатків зі своїми протоколами (..)

Чим же відрізняються всі ці протоколи? Все досить просто. Крім різних завдань, поставлених при розробці (наприклад, швидкість, безпека, стійкість і інші критерії), протоколи створені з метою розмежування. Наприклад, існують протоколи прикладного рівня, різні у різних додатків: IRC, Skype, ICQ, Telegram і Jabber - несумісні один з одним. Вони розроблені для виконання конкретного завдання, і в даному випадкуможливість дзвонити по WhatsApp в ICQ просто не визначена технічно, так як додатки використовують різний протокол. Але їх протоколи ґрунтуються на одному і тому ж протоколі IP.

Протоколом можна називати заплановану, штатну послідовність дій в процесі, в якому існує кілька суб'єктів, в мережі вони називаються бенкетами (напарниками), рідше - клієнт і сервер, підкреслюючи особливості конкретного протоколу. Найпростіший приклад протоколу для нерозуміючого досі - рукостискання при зустрічі. Обидва знають як і коли, але питання навіщо - це вже питання розробників, а не користувачів протоколу. До речі, рукостискання (handshake) є майже по всіх протоколах, наприклад, для забезпечення розмежування протоколів і захисту від "польотів не на тому літаку".

Ось що таке TCP / IP на прикладі найпопулярніших протоколів. Тут показана ієрархія залежності. Треба сказати що додатки лише користуються зазначеними протоколами, які можуть бути а можуть і не бути реалізовані всередині ОС.

Якщо вже зовсім-зовсім простою мовою, це поштова служба.

У кожного учасника IP-сумісної мережі є свій власний адресу, який виглядає приблизно так: 162.123.058.209. Всього таких адрес для протоколу IPv4 - 4,22 мільярда.

Припустимо, що один комп'ютер хоче зв'язатися з іншим і відправити йому посилку - "пакет". Він звернеться до "поштовій службі" TCP / IP і віддасть їй свою посилку, вказавши адресу, за якою її необхідно доставити. На відміну від адрес в реальному світі, одні і ті ж IP-адреси часто присвоюються різних комп'ютерівпо черзі, а значить, "листоноша" не знає, де фізично знаходиться потрібний комп'ютер, Тому він відправляє посилку найближчим "поштове відділення" - на мережеву плату комп'ютера. Можливо, там є інформація про те, де знаходиться потрібний комп'ютер, а можливо, такої інформації там немає. Якщо її немає, на все найближчі "поштові відділення" (комутатори) расилается запит адреси. Цей крок повторюється усіма "поштовими відділеннями", поки вони не виявлять потрібну адресу, при цьому вони запам'ятовують, скільки "поштових відділень" до них пройшов цей запит і якщо він пройде певний (досить болшое) їх кількість, то його повернуть назад з позначкою " адреса не знайдений ". Перше "поштове відділення" незабаром отримає купу відповідей від інших "відділень" з варіантами шляхів до адресата. Якщо жодного досить короткого шляху не знайдеться (зазвичай 64 пересилання, але не більше 255), посилка повернеться відправнику. Якщо знайдеться один або кілька шляхів, посилка буде передана по найкоротшому з них, при цьому "поштові відділення" на деякий час запам'ятають цей шлях, дозволяючи швидко передавати наступні посилки, не питаючи ні в кого адресу. Після доставки, "листоноша" в обов'язковому порядку змусить одержувача підписати "квитанцію" про те, що він отримав посилку і віддасть цю "квитанцію" відправнику, як свідоцтво про те, що посилка доставлена ​​в цілості - перевірка доставки в TCP обов'язкове. Якщо відправник не отримає таку квитанцію через певний проміжок часу або в квитанції буде написано, що посилка ушкодилася або загубилася при відправці, тоді він спробує знову відправити посилку.

TCP / IP - це набір протоколів.

Протокол - це правило. Наприклад, коли з вами вітаються - ви вітається у відповідь (а не прощаєтеся або небажаними щастя). Програмісти скажуть що ми використовуємо протокол вітання, наприклад.

Що за TCP / IP (зараз буде зовсім просто, нехай колег не бомбить):

Інформація до вашого компа йде по проводах (радіо або що ще - не має значення). Якщо по дротах пустили струм - значить 1. Вимкнули - значить 0. Виходить 10101010110000 і так далі. 8 налякав і одиниць (бітів) це байт. Наприклад 00001111. Це можна уявити як число в двійковому вигляді. У десятковому вигляді байт - це число від 0 до 255. Ці числа зіставляє з буквами. Наприклад 0 це А, 1 це Б. (Це називається кодування).

Ну так ось. Щоб два комп'ютери могли ефективно передавати інформацію по проводам - ​​вони повинні подавати струм з якихось правил - протоколам. Наприклад, вони повинні домовитися як часто можна змінювати струм, щоб можна було відрізнити 0 від другого 0.

Це перший протокол.

Комп'ютерів як то розуміти, що один з них перестав віддавати інформацію (типу "я все сказав"). Для цього на початку послідовності даних 010100101 комп'ютери можуть надсилати кілька біт, довжину повідомлення, яке вони хочуть передати. Наприклад, перші 8 біт можуть означати довжину повідомлення. Тобто спочатку в перших 8 бітах передають закодоване число 100 і потім 100 байт. Після цього приймає комп'ютер буде очікувати наступні 8 біт і наступне повідомлення.

Ось у нас ще один протокол, з його допомогою можна передавати повідомлення (комп'ютерні).

Комп'ютерів багато, щоб вони могли зрозуміти кому треба відправити повідомлення використовують унікальні адреси комп'ютерів і протокол, що дозволяє зрозуміти кому це повідомлення адресовано. Наприклад перші 8 біт означатимуть адресу одержувача, наступні 8 - довжину повідомлення. І потім повідомлення. Ми тільки що засунули один протокол в інший. IP протокол відповідає за адресацію.

Зв'язок не завжди надійна. Для надійної доставки повідомлень (комп'ютерних) використовують TCP. При виконанні протоколу TCP комп'ютери будуть перепитує один одного - правильне чи вони повідомлення отримали. Є ще UDP - це коли комп не перепитують то вони отримали. Навіщо треба? Ось ви слухаєте інтернет радіо. Якщо пару байт прийде з помилками - ви почуєте наприклад "пш" і далі знову музику. Не смертельно, та й не особливо важливо - для цього використовують UDP. А ось якщо пару байт зіпсуються при завантаження сайту - ви отримаєте хрень на моніторі і нічого не зрозумієте. Для сайтом використовують TCP.

TCP / IP ще (UDP / IP) - це протоколи, вкладені одна в одну, на яких працює інтернет. Зрештою ці протоколи дозволяють передати комп'ютерне повідомлення цілим і точно за адресою.

Ще є http протокол. Перший рядок - адреса сайту, наступні рядки - текст який ви шлете на сайт. Всі рядки http - це текст. Який засовують в TCP повідомлення, яке адресують за допомогою IP і так далі.

Відповісти

Стек NetBIOS / SMB

Фірми Microsoft і IBM спільно працювали над мережевими засобами для персональних комп'ютерів, Тому стек протоколів NetBIOS / SMB є їх спільним дітищем. Засоби NetBIOS з'явилися в 1984 році як мережеве розширення стандартних функцій базової системи введення / виводу (BIOS) IBM PC для мережевої програми PC Network фірми IBM, яка на прикладному рівні (рис. 3) використовувала для реалізації мережевих сервісів протокол SMB.

Мал. 3. Стек NetBIOS / SMB

протокол NetBIOSпрацює на трьох рівнях моделі взаємодії відкритих систем: мережевому, транспортному і сеансовому. NetBIOS може забезпечити сервіс вищого рівня, ніж протоколи IPX і SPX, проте не володіє здатністю до маршрутизації. Таким чином, NetBIOS не є мережевим протоколом в строгому сенсі цього слова. NetBIOS містить багато корисних мережевих функцій, які можна віднести до мережевого, транспортного і сеансовому рівнів, однак з його допомогою неможлива маршрутизація пакетів, так як в протоколі обміну кадрами NetBIOS не вводиться таке поняття як мережа. Це обмежує застосування протоколу NetBIOS локальними мережами, що не розділеними на підмережі. NetBIOS підтримує як дейтаграммний обмін, так і обмін зі встановленням з'єднань.

протокол SMB, Відповідний прикладному і представницькому рівням моделі OSI, регламентує взаємодію робочої станції з сервером. У функції SMB входять наступні операції:

Управління сесіями. Створення і розрив логічного каналу між робочою станцією і мережевими ресурсами файлового сервера.

Файловий доступ. Робоча станція може звернутися до файл-серверу з запитами на створення і видалення каталогів, створення, відкриття і закриття файлів, читання і запис у файли, перейменування і видалення файлів, пошук файлів, отримання і установку файлових атрибутів, блокування записів.

Сервіс друку. Робоча станція може ставити файли в чергу для друку на сервері і отримувати інформацію про черги друку.

Сервіс повідомлень. SMB підтримує просту передачу повідомлень з наступними функціями: послати просте повідомлення; послати широковещательное повідомлення; послати початок блоку повідомлень; послати текст блоку повідомлень; послати кінець блоку повідомлень; переслати ім'я користувача; слід перенаправляти; отримати ім'я машини.

Через велику кількість додатків, які використовують функції API, що надаються NetBIOS, у багатьох мережевих ОС ці функції реалізовані у вигляді інтерфейсу до своїх транспортних протоколів. У NetWare є програма, яка емулює функції NetBIOS на основі протоколу IPX, існують програмні емулятори NetBIOS для Windows NT і стека TCP / IP.


Стек TCP / IP

Стек TCP / IP, званий також стеком DoD і стеком Internet, є одним з найбільш популярних стеків комунікаційних протоколів. Стек був розроблений з ініціативи Міністерства оборони США (Department of Defence, DoD) для зв'язку експериментальної мережі ARPAnet з іншими сателітними мережами як набір загальних протоколів для різнорідної обчислювальної середовища. Мережа ARPA підтримувала розробників і дослідників у військових областях. У мережі ARPA зв'язок між двома комп'ютерами здійснювалася з використанням протоколу Internet Protocol (IP), який і до цього дня є основним в стеці TCP / IP і фігурує в назві стека.

Великий внесок у розвиток стека TCP / IP вніс університет Берклі, реалізувавши протоколи стека у своїй версії ОС UNIX. Широке поширення ОС UNIX привело і до широкого поширення протоколу IP і інших протоколів стека. На цьому ж стеку працює всесвітня інформаційна мережа Internet, чий підрозділ Internet Engineering Task Force (IETF) вносить основний вклад в удосконалення стандартів стека, що публікуються в формі специфікацій RFC.

Так як стек TCP / IP був розроблений до появи моделі взаємодії відкритих систем ISO / OSI, то, хоча він також має багаторівневу структуру, відповідність рівнів стека TCP / IP рівням моделі OSI досить умовно.

Структура протоколів TCP / IP приведена на малюнку 4. Протоколи TCP / IP поділяються на 4 рівня.

Мал. 4. Стек TCP / IP

Найнижчий (рівень IV) - рівень міжмережевих інтерфейсів - відповідає фізичному і канальному рівням моделі OSI. Цей рівень в протоколах TCP / IP не регламентується, але підтримує всі популярні стандарти фізичного і канального рівня: для локальних каналів це Ethernet, Token Ring, FDDI, для глобальних каналів - власні протоколи роботи на аналогових комутованих і виділених лініях SLIP / PPP, які встановлюють з'єднання типу "точка - точка" через послідовні канали глобальних мереж, і протоколи територіальних мереж X.25 і ISDN. Розроблено також спеціальна специфікація, що визначає використання технології ATM як транспорт канального рівня.

Наступний рівень (рівень III) - це рівень міжмережевої взаємодії, який займається передачею дейтаграм з використанням різних локальних мереж, територіальних мереж X.25, ліній спеціального зв'язку і т. П. В якості основного протоколу мережевого рівня (в термінах моделі OSI) в стеку використовується протокол IP, Який спочатку проектувався як протокол передачі пакетів в складових мережах, що складаються з великої кількості локальних мереж, об'єднаних як локальними, так і глобальними зв'язками. Тому протокол IP добре працює в мережах зі складною топологією, раціонально використовуючи наявність у них підсистем і ощадливо витрачаючи пропускну здатність низькошвидкісних ліній зв'язку. Протокол IP є дейтаграмним протоколом.

До рівня міжмережевої взаємодії відносяться і всі протоколи, пов'язані зі складанням і модифікацією таблиць маршрутизації, такі як протоколи збору маршрутної інформації RIP(Routing Internet Protocol) і OSPF(Open Shortest Path First), а також протокол міжмережевих керуючих повідомлень ICMP(Internet Control Message Protocol). Останній протокол призначений для обміну інформацією про помилки між маршрутизатором і шлюзом, системою-джерелом і системою-приймачем, тобто для організації зворотного зв'язку. За допомогою спеціальних пакетів ICMP повідомляється про неможливість доставки пакета, про перевищення часу життя або тривалості зборки пакета з фрагментів, про аномальні величини параметрів, про зміну маршруту пересилання і типу обслуговування, про стан системи і т.п.

Наступний рівень (рівень II) називається основним. На цьому рівні функціонують протокол управління передачею TCP(Transmission Control Protocol) і протокол дейтаграм користувача UDP(User Datagram Protocol). Протокол TCP забезпечує стійке віртуальне з'єднання між віддаленими прикладними процесами. Протокол UDP забезпечує передачу прикладних пакетів дейтаграмним методом, тобто без встановлення віртуального з'єднання, і тому вимагає менших накладних витрат, ніж TCP.

Верхній рівень (рівень I) називається прикладним. За довгі роки використання в мережах різних країн і організацій стек TCP / IP нагромадив велику кількість протоколів і сервісів прикладного рівня: протокол копіювання файлів FTP, Протоколи віддаленого управління telnet і ssh, поштовий протокол SMTP, гіпертекстові сервіси доступу до вилученої інформації, такі як WWW і багато інших. Коротко зупинимося на деяких з протоколів стека, найбільш тісно пов'язаних з тематикою даного курсу.

протокол SNMP(Simple Network Management Protocol) використовується для організації мережевого управління. Проблема управління поділяється тут на два завдання. Перше завдання пов'язана з передачею інформації. Протоколи передачі керуючої інформації визначають процедуру взаємодії сервера з програмою-клієнтом, що працює на хості адміністратора. Вони визначають формати повідомлень, якими обмінюються клієнти і сервери, а також формати імен та адрес. Друге завдання пов'язана з контрольованими даними. Стандарти регламентують, які дані повинні зберігатися і накопичуватися в шлюзах, імена цих даних і синтаксис цих імен. У стандарті SNMP визначена специфікація інформаційної бази даних управління мережею. Ця специфікація, відома як база даних MIB (Management Information Base), визначає ті елементи даних, які хост або шлюз повинен зберігати, і допустимі операції над ними.

Протокол пересилки файлів FTP(File Transfer Protocol) реалізує віддалений доступ до файлу. Для того, щоб забезпечити надійну передачу, FTP використовує в якості транспорту протокол з встановленням з'єднань - TCP. Крім пересилки файлів протокол, FTP пропонує й інші послуги. Так користувачеві надається можливість інтерактивної роботи з віддаленою машиною, наприклад, він може роздрукувати вміст її каталогів, FTP дозволяє користувачеві вказувати тип і формат запам'ятовуються даних. Нарешті, FTP виконує аутентифікацію користувачів. Перш, ніж отримати доступ до файлу, відповідно до протоколу користувачі повинні повідомити своє ім'я і пароль.

У стеці TCP / IP протокол FTP пропонує найбільш широкий набір послуг для роботи з файлами, проте він є і найскладнішим для програмування. Додатки, яким не потрібні всі можливості FTP, можуть використовувати інший, більш економічний протокол - найпростіший протокол пересилки файлів TFTP(Trivial File Transfer Protocol). Цей протокол реалізує тільки передачу файлів, причому як транспорт використовується більш простий, ніж TCP, протокол без встановлення з'єднання - UDP.

протокол telnetзабезпечує передачу потоку байтів між процесами, а також між процесом і терміналом. Найбільш часто цей протокол використовується для емуляції терміналу віддаленої ЕОМ.

У сучасному світі інформація поширюється за лічені секунди. Ось тільки що з'явилася новина, а через секунду вона вже доступна на будь-якому сайті в мережі інтернет. Інтернет вважається однією з найбільш корисних розробок людського розуму. Щоб користуватися всіма благами, які надає інтернет, необхідно підключитися до цієї мережі.

Мало хто знає, що простий процес відвідування веб-сторінок на увазі непомітну для користувача, складну систему дій. Кожен перехід по посиланню активує сотні різних обчислювальних операцій в серце комп'ютера. У їх числі передачі запитів, прийом відповідей і багато іншого. За кожну дію в мережі відповідають так звані протоколи TCP / IP. Що вони собою являють?

Будь-протокол інтернету TCP / IP працює на своєму рівні. Іншими словами, кожен займається своєю справою. Все сімейство TCP / IP протоколів одночасно виконує колосальну роботу. А користувач в цей час бачить тільки яскраві картинки і довгі рядки тексту.

Поняття стека протоколів

Стек протоколів TCP / IP - це організований набір основних мережевих протоколів, який ієрархічним способом розділений на чотири рівні і являє собою систему транспортного розподілу пакетів з комп'ютерної мережі.

TCP / IP - це найбільш відомий стек мережевих протоколів, який використовується на даний момент. Принципи стека TCP / IP застосовуються як в локальних, так і в глобальних мережах.

Принципи використання адрес в стекупротоколів

Стек мережевих протоколів TCP / IP описує шляхи та напрямки відправки пакетів. Це основне завдання всього стека, що виконується на чотирьох рівнях, які взаємодіють між собою протоколювати алгоритмом. Для правильної відправки пакета і його доставки рівно в ту точку, яка його запросила, була введена і стандартизована адресація IP. Цьому послужило наявність наступних завдань:

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

У малих мережах, де використовується кілька десятків вузлів, всі ці завдання виконуються елементарно, за допомогою найпростіших рішень: складання таблиці з описом приналежність машини і відповідного їй IP адреси, або можна вручну роздати всім мережевим адаптерам IP адреси. Однак для великих мереж на тисячу або дві тисячі машин задача ручної видачі адрес не здається такою здійсненним.

Саме тому для мереж TCP / IP був винайдений спеціальний підхід, який і став відмінною рисою стека протоколів. Було введено поняття - масштабованість.

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

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

прикладний рівень: Створено для забезпечення роботи користувача з мережею На цьому рівні обробляється все те, що бачить і робить користувач. Рівень дозволяє користувачеві отримати доступ до різних мережних служб, наприклад: доступ до баз даних, можливість прочитати список файлів і відкрити їх, відправити електронне повідомленняабо відкрити веб-сторінку. Разом з одними даними і діям, на цьому рівні передається службова інформація.

Транспортний рівень:це механізм передачі пакетів в чистому вигляді. На цьому рівні абсолютно не має значення ні вміст пакету, ні його приналежність до якого б то не було дії. На цьому рівні має значення тільки адреса вузла відправки пакета і адреса вузла, на який пакет повинен бути доставлений. Як правило, розмір фрагментів, що передаються з використанням різних протоколів, може змінюватися, тому на цьому рівні блоки інформації можуть дробитися на виході і збиратися в єдине ціле в точці призначення. Цим обумовлена ​​можлива втрата даних, якщо в момент передачі чергового фрагмента відбудеться короткочасний розрив з'єднання.

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

Даний рівень, надає вищестоящому (прикладному) два типи сервісу:

  • Здійснює гарантовану доставку, за допомогою протоколу ТСР.
  • Здійснює доставку по можливості по протоколу UDP .

Щоб забезпечити гарантовану доставку, згідно з протоколом TCP встановлюється з'єднання, яке дозволяє виставляти на пакетах нумерацію на виході і підтверджувати їх прийом на вході. Нумерація пакетів і підтвердження прийому - це так звана службова інформація. Цей протокол підтримує передачу в режимі "Дуплекс". Крім того, завдяки продуманому регламенту протоколу, він вважається дуже надійним.

Протокол UDP призначений для моментів, коли неможливо налаштувати передачу по протоколу TCP, або доводиться економити на сегменті мережевий передачі даних. Також протокол UDP може взаємодіяти з протоколами більш високого рівня, для підвищення надійності передачі пакетів.

Мережевий рівень або "рівень інтернету":базовий рівень для всієї моделі TCP / IP. Основний функціонал цього рівня ідентичний однойменним рівню моделі OSI і описує переміщення пакетів в складовою мережі, що складається з декількох, більш дрібних підмереж. Він пов'язує сусідні рівні протоколу TCP / IP.

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

На цьому рівні використовуються наступні мережеві протоколи TCP / IP: ICMP, IP, RIP, OSPF. Основним, і найбільш популярним на мережевому рівні, звичайно ж є протокол IP (Internet Protocol). Основним його завданням є передача пакетів від одного роутера до іншого до тих пір, поки одиниця даних не потрапить на мережевий інтерфейс вузла призначення. Протокол 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.

Між ID мережі і номером точки в запису немає розділового знака, але комп'ютер здатний їх розділяти. Для цього існує три способи:

  1. Фіксована межа.При цьому способі весь адреса умовно ділиться на дві частини фіксованої довжини побайтно. Таким чином, якщо під номер мережі віддати один байт, тоді ми отримаємо 2 8 мереж по 2 24 вузлів. Якщо кордон зрушити ще на байт вправо, на той час мереж стане більше - 2 16, а вузлів стане менше - 2 16. На сьогоднішній день підхід вважається застарілим і не використовується.
  2. Маска підмережі.Маска йде в парі з IP адресою. Маска має послідовність значень "1" в тих розрядах, які відведені під номер мережі, і певну кількість нулів у тих місцях IP адреси, які відведені на номер вузла. Кордон між одиницями і нулями в масці - це межа між ідентифікатором мережі і ID вузла в IP-адресу.
  3. Метод класів адрес.Компромісний метод. При його використанні розміри мереж не можуть бути обрані користувачем, однак є п'ять класів - А, В, С, D, Е. Три класи - А, В і С - призначені для різних мереж, а D і Е - зарезервовані для мереж спеціального призначення . В класової системі кожен клас має свою межу номера мережі і ID вузла.

Класи IP адрес

До класу Авідносяться мережі, в яких мережа ідентифікується по першому байту, а три залишилися є номером вузла. Всі IP адреси, які мають в своєму діапазоні значення першого байта від 1 до 126 - це мережі класу А. Кількісно мереж класу А виходить зовсім мало, зате в кожній з них може бути до 2 24 точок.

клас В- мережі, в яких дві вищі біти рівні 10. У них під номер мережі і ідентифікатор точки відводиться по 16 біт. В результаті виходить, що кількість мереж класу В у велику сторону відрізняється від кількості мереж класу А кількісно, ​​але вони мають меншу кількість вузлів - до 65 536 (2 16) шт.

У мережах класу С- зовсім мало вузлів - 2 8 у кожній, але кількість мереж величезна, завдяки тому, що ідентифікатор мережі в таких структурах займає цілих три байта.

мережі класу D- вже відносяться до особливих мереж. Він починається з послідовності 1110 і називається груповою адресою (Multicast adress). Інтерфейси, які мають адреси класу А, В і С, можуть входити в групу і отримувати додатково до індивідуального ще й груповий адресу.

адреси класу Е- в резерві на майбутнє. Такі адреси починаються з послідовності 11110. Швидше за все, ці адреси будуть застосовуватися в якості групових, коли настане брак IP адрес в глобальній мережі.

Налаштування протоколу 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 таблиці.

Транспортний рівень (Transport Layer - TL)визначає правила транспортування пакетів по мережі. Транспортний рівень спостерігає за доставкою з кінця в кінець індивідуальних пакетів, він не враховує ніяких залежностей між цими пакетами (навіть належать до одного з повідомленням). Він обробляє кожен пакет як якби кожна частина належала окремим повідомленням, незалежно від того, так це насправді чи ні. Протоколи транспортного рівня гарантують, що всі повідомлення прибувають в кінцевий пункт неушкодженими і пакети розташовуються в первісному порядку. На транспортному рівні здійснюється контроль порушення інформації і контроль помилок, а також управління потоком по всьому тракту "джерело - пункт призначення".

Транспортний рівень виконує наступні завдання:

  • Адресація точки сервісу. Комп'ютери часто виконують декілька програм в один і той же час. З цієї причини доставка "джерело - пункт призначення" означає доставку не тільки від одного комп'ютера до наступного, але також і від заданого процесу (функціонуючої програми) на одному комп'ютері до заданого процесу (функціонуючої програмі) на іншому. Тому заголовок транспортного рівня повинен включати тип адреси, званий адреса сервісної точки (або адреса порту). Мережевий рівень доставляє кожен пакет на коректну адресу комп'ютера; транспортний рівень доставляє повне повідомлення до коректного процесу на цьому комп'ютері.
  • Сегментація і повторна збірка. Повідомлення розділене на транспортуються сегменти, кожен сегмент містить порядковий номер. Ці номери дають можливість транспортному рівню після досягнення пункту призначення правильно повторно зібрати повідомлення і замінювати пакети, які були втрачені в передачі.
  • управління підключенням. Транспортний рівень може бути орієнтований на роботу без встановлення з'єднання (connectionless transfer) або орієнтований на підключення (connection-oriented transfer) - дейтаграммний режим. Транспортний рівень без встановлення з'єднання (по попередньо встановленим віртуальному з'єднанню) обробляє кожен сегмент як незалежний пакет і поставляє його транспортному рівню в машині пункту призначення. Орієнтований на підключення транспортний рівень спочатку перед поставкою пакетів встановлює з'єднання з транспортним рівнем в комп'ютері пункту призначення. Після того як всі дані передані, підключення закінчується.

    У режимі, не орієнтованому на з'єднання, транспортний рівень використовується для передачі одиночних дейтаграм, що не гарантуючи їх надійну доставку. Режим, орієнтований на з'єднання, застосовується для надійної доставки даних.

  • управління потоком. Подібно рівню ланки передачі даних, транспортний рівень відповідає за управління потоком. Однак управління потоком на цьому рівні виконується від "кінця кінця".
  • контроль помилок. Подібно рівню ланки передачі даних, транспортний рівень відповідає за контроль помилок. Транспортний рівень передачі засвідчується, що повне повідомлення досягло транспортного рівня прийому без помилки (пошкодження, втрати або дублювання). Виправлення помилки зазвичай відбувається за допомогою повторної передачі.

Рівень сеансу (Session Layer SL)- мережевий контролер діалогу. Він встановлює, підтримує і синхронізує взаємодію між зв'язуються системами.

За допомогою сеансового рівня (Session Layer) організовується діалог між сторонами, фіксується, яка зі сторін є ініціатором, яка зі сторін активна і яким чином завершується діалог.

Завдання сеансового рівня наступні:

  • управління діалогом. сеансовий рівеньдає можливість двом системам вступати в діалог. Він дозволяє обмін повідомленнями між двома процесами. При цьому можливі режими: або напівдуплексний (один шлях одночасно), або двобічний (два шляхи одночасно). Наприклад, діалог між терміналом і універсальної ЕОМ може бути напівдуплексним.
  • Синхронізація. сеансовий рівеньдозволяє процесу додавати контрольні точки (точки синхронізації) в потік даних. Наприклад, якщо система посилає файл з 2 000 сторінок, бажано вставити контрольні точки після кожних 100 сторінок, щоб гарантувати, що кожен модуль зі 100 сторінками отримано і розпізнається незалежно. В цьому випадку, якщо трапляється порушення протягом передачі сторінки 523, єдина сторінка, яку потрібно і яка буде знову послана після системного відновлення - сторінка 501 (перша сторінка п'ятої сотні)

Рівень представлення (Presentation Layer)займається формою надання інформації нижчого рівнів, наприклад, перекодуванням або шифруванням інформації.

Завдання рівня уявлення наступні:

  • перекодування інформації. Процеси (функціонуючі програми) в двох системах зазвичай змінюють інформацію в формі символьних рядків, чисел і так далі. Інформація, перш ніж бути переданою, повинна бути змінена на потоки біт. Оскільки різні комп'ютери використовують різні системи кодування, рівень представленнянесе відповідальність за здатність до взаємодії між цими різними методами кодування. рівень представленняв передавачі змінює інформацію від форми, що залежить від передавача, в загальну форму. рівень представленняв комп'ютері прийому замінює загальний формат в формат його приймача.
  • шифрування. Щоб доставляти конфіденційну інформацію, система повинна забезпечити секретність. Шифрування означає, що передавач перетворює первинну інформацію до іншої форми і посилає результуюче повідомлення по мережі. Розшифровка повинна бути повністю протилежна початкового процесу, щоб перетворити повідомлення назад до його первісної форми.
  • стиснення. Стиснення даних зменшує число бітів, що містилися в інформації. Стиснення даних стає особливо важливим в передачі мультимедіа, таких як текст, аудіо та відео.

Прикладний рівень (Application Layer - AL)- це набір протоколів, якими обмінюються віддалені вузли, що реалізують одну й ту ж задачу (програму). прикладний рівеньдає можливість користувачеві (людині або програмному забезпеченню) звертатися до мережі. Він забезпечує інтерфейси користувача і підтримку послуг - електронної пошти, віддаленого доступу та переказу коштів, загальнодоступного управління бази даних і інших типів розподілених інформаційних служб.

Приклади послуг, що надаються прикладним рівнем:

  • Мережевий віртуальний термінал. Мережевий віртуальний термінал - програмна версія фізичного терміналу, він дозволяє користувачеві увійти в віддалений хост. Щоб зробити це, додаток створює програмну імітацію терміналу в віддалений хост. Комп'ютер користувача спілкується з програмним терміналом, який, в свою чергу, спілкується з хостом, і навпаки. Віддалений хост визначає цей зв'язок як зв'язок з одним з його власних терміналів і дозволяє вхід.
  • Передача файлів, доступ і управління. Ця програма дозволяє користувачеві звертатися до файлів в віддалений хост, щоб змінювати або читати дані, витягувати файли з віддаленого комп'ютера для використання в місцевому комп'ютері і адмініструвати або керувати файлами на віддаленому комп'ютері.
  • послуги пошти. Ця програма забезпечує базу для передачі і зберігання електронної пошти.
  • послуги каталогу. Ця програма забезпечує розподілені джерела бази даних і доступ до глобальної інформації про різні об'єкти і послуги.

Стек протоколів Інтернету

Стек протоколів мережі Интернет2 був розроблений до моделі OSI. Тому рівні в стекупротоколів Інтернету не відповідають аналогічним рівнями в моделі OSI. Стек протоколів Інтернету складається з п'яти рівнів: фізичного, ланки передачі даних, мережі, транспортного та прикладного. Перші чотири рівні забезпечують фізичні стандарти, мережевий інтерфейс, межсетевое взаємодія і транспортні функції, які відповідають першим чотирьом рівням моделі OSI. Три самих верхніх рівня в моделі OSI представлені в стекупротоколів Інтернету єдиним рівнем, званим прикладним рівнем рис. 1.3.


Мал. 1.3.

ARP Address Resolution Protocol Протокол знаходження адреси
ATM Asynchronous Transfer Mode Режим асинхронної передачі
BGP Border Gateway Protocol Протокол прикордонної маршрутизації
DNS Domain Name System Система доменних імен
Ethernet Ethernet Network мережа Ethernet
FDDI Fiber Distributed Data Interface Волоконно-оптичний розподілений інтерфейс даних
HTTP Hyper Text Transfer Protocol Протокол передачі гіпертексту
FTP File transfer Protocol Протокол передачі файлів
ICMP Internet Control Message Protocol Протокол керуючих повідомлень
IGMP Internet Group Management Protocol Протокол управління групами (користувачів) в Інтернеті
IP Internet Protocol міжмережевий протокол
NFS Network File System Протокол мережевого доступу до файлових систем
OSPF Open Shortest Path First Відкритий протокол переваги найкоротшого каналу
PDH Plesiochronous Digital Hierarchy Плезиохронная цифрова ієрархія
PPP Point-to- Point Protocol Протокол зв'язку "точка-точка"