Ну от нарешті прийшла черга розповісти що таке протокол TCP/IP четвертої версії. Попередні версії завершили своє існування ще на початку 80-х років минулого століття і інтерес становлять хіба для істориків. Наступні версії... Вони теж є. П'ятої так офіційно ніколи і не вийшло — так планувалося пронумерувати версію з розширеними можливостями передачі мультимедіа, але в результаті розробки в цьому напрямку отримали власні назви ST та ST2, але поки визначалися з їх назвами, то почалася розробка IPv6.
Розібратися в IPv6 можна з допомогою півлітри і здоровенного талмуда з описом (це не я придумав — це я переклав цитату), але наразі така проблема гостро не стоїть.
Є і інші розробки — IPv8, IPv9 та IPv12, але вони наразі не вважаються серйозними проектами (хоча люди, які читали специфікації, кажуть, що той же IPv8 набагато зрозуміліший ніж IPv6).
Але це все лірика — нас цікавить роботяга з тридцятирічним стажем — IPv4.
Основний його атрибут — IP-адреса. Вона складається з тридцяти двох біт, тобто чотирьох байт і для простоти зазвичай записується чотирма десятковими числами від 0 до 255, розділених крапками. Є специфічні залізяки і програми, де використовується шістнадцядкове представлення, але вони трапляються рідко (я колись щось таке бачив, але що то було зараз не згадаю).
Початково всі адреси ділилися на класи. Приналежність до класу визначалася по початкових бітах адреси, потім відповідно до класу адреса ділилася на частини, перша з яких визначала адресу мережі, а друга — комп'ютера (або іншого пристрою) в цій мережі. Було визначено п'ять класів: A(16777216 вузлів), B(65536 вузлів), C(256 вузлів), D(групові адреси), E(зарезервований), але так як два останні мали службове призначення, то фактично кінцевим користувачам надавався діапазон мінімум з 256 адрес. В результаті в провайдерів дуже швидко закінчувалися вільні адреси, а дрібні фірми змушені були оплачувати за надлишкові (де-факто не потрібні їм) адреси. Тому була придумана безкласова адресація.
Безкласова адресація крім самої IP-адреси містить також маску. Маска також має тридцять два біти. Спочатку в ній іде певна кількість одиниць, а потім все решта — нулі (є, правда, окремі «діячі», які на це болт забили і тулять туди що попало, але на щастя тенденція така, що народ все більше болт б'є на них і переходить на нормальні продукти). Частина заповнена одиницями означає, що відповідні біти адреси є адресою мережі, а частина з нулями — відповідає бітам адреси вузла. Таким чином в провайдерів з'явилася можливість видавати менші діапазони, а користувачам, якщо і переплачувати, то значно менше.
Форм запису маски є дві: повна — як і IP-адреса — чотири числа 0-255 і скорочена — число від 0 до 32 — кількість одиниць в масці.
Приклад: Є фірма, якій потрібно три реальні адреси, скажімо для веб-сторінки, сервера електронної пошти і інтернет-шлюза для доступу користувачів. Додаємо до цього дві службові адреси — адресу мережі і адресу широкосмугового запиту, не забуваємо про адресу шлюза на стороні провайдера — отримуємо шість. За класової адресації їм би довелося оплачувати 250(!) зайвих адрес. В класовій же — це все влазить в мережу з восьми вузлів — маска 255.255.255.248 або просто 29, тобто получається всього дві зайвих адреси.
З мережами ніби порядок, прийшла черга навчитися спілкуватися між ними. Для цього на кожному вузлі існує така річ, як таблиця маршрутизації. В найпростішому випадку мережа просто під'єднана до шлюза провайдера. Тоді таблиця маршрутизації мінімальна: перше правило містить адресу самої мережі і вказує, що всі пакети, призначені її вузлам повинні направлятися безпосередньо цим вузлам, а друге містить адресу всього Internet'у: 0.0.0.0/0 (або читабельну назву, типу default) і вказує, що пакети, які призначені вузлам цієї мережі слід відправляти на шлюз провайдера. Здавалося б конфліктна ситуація: пакет призначений вашій мережі задовільняє умови і першого і другого правил, а отже може бути відправлений як через шлюз провайдера, так і напряму. А от і ні: при виборі маршруту пріоритет має те правило, в якого більше значення маски. Оскільки маска будь-якої правильно налаштованої мережі завжди більша за нуль, то правило «default» вибереться тільки у випадку, якщо пакет не підпадає під жодне інше правило. Цей принцип також дозволяє легко «віддати» частину адрес меншій підмережі (більша маска — менше вузлів).
Якщо конфігурація взаємопідключень складніша, то, відповідно, ускладнюються і правила маршрутизації — кількість записів в таблиці зростає. У великих провайдерів таблиці маршрутизації підтримуються спеціальними програмами, які дозволяють не лише вказати всі можливі напрямки, а й динамічно реагують на зміни в конфігурації і автоматично підшуковують альтернативні маршрути.
Є ще трохи тексту в голові, але ніби і так немало... Далі буде і дуже скоро :-)
Працює на AutoGenCMS 0.2.6