Опис протоколів TCP/IP p>
Спасибі невідомому автору (і перекладачеві?) p>
Форматування вироблено Володимиром Романовим (Поликом Про) p>
Зміст
1 . Введення 1
2. Основи TCP/IP 2 p>
2.1. Модуль IP створює єдину логічну мережу 2 p>
2.2. Структура зв'язків протокольних модулів 2 p>
2.3. Термінологія 3 p>
2.4. Потоки даних 3 p>
2.5. Робота з кількома мережевими інтерфейсами 4
3. Ethernet 5 p>
3.1. Аналогія з розмовою 6
4. Протокол ARP 6 p>
4.1. ARP-таблиця для перетворення адрес 6 p>
4.2. Порядок перетворення адрес 7 p>
4.4. Продовження перетворення адрес 8
5. Межсетевой протокол IP 8 p>
5.1. Пряма маршрутизація 9 p>
5.2. Непряма маршрутизація 9 p>
5.3. Правила маршрутизації в модулі IP 10 p>
5.4. IP-адреса 11 p>
5.5. Вибір адреси 12 p>
5.6. Підмережі 12 p>
5.7. Як призначати номери мереж і підмереж 13 p>
5.8. Імена 13 p>
5.9. IP-таблиця маршрутів 14 p>
5.10. Подробиці прямий маршрутизації 14 p>
5.11. Порядок прямий маршрутизації 15 p>
5.12. Подробиці непрямої маршрутизації 15 p>
5.13. Порядок непрямої маршрутизації 16
6. Встановлення маршрутів 17 p>
6.1. Фіксовані маршрути 17 p>
6.2. Перенаправлення маршрутів 18
7. Протокол UDP 21 p>
7.1. Порти 22 p>
7.2. Контрольне підсумовування 22
8. Протокол TCP 22 p>
9.1. Протокол TELNET 23 p>
9.2. Протокол FTP 24 p>
9.3. Протокол SMTP 24 p>
9.4. r-команди 24 p>
9.5. NFS 24 p>
9.6. Протокол SNMP 25 p>
9.7. X-Window 25
10. Взаємозалежність протоколів сімейства TCP/IP 25 p>
1. Введення p>
Сімейство протоколів TCP/IP широко застосовується в усьому світі для об'єднаннякомп'ютерів в мережу Internet. Єдина мережа Internet складається з безлічімереж різної фізичної природи, від локальних мереж типу Ethernet і
Token Ring, до глобальних мереж типу NSFNET. Основна увага в книзіприділяється принципам організації міжмережевої взаємодії. Багатотехнічні деталі, історичні питання опущені. Більш докладнуінформацію про протоколи TCP/IP можна знайти в RFC (Requests For Comments)спеціальних документах, що випускаються мережевий інформаційний центр (Network
Information Center - NIC). Додаток 1 містить путівник по RFC, адодаток 2 відображає стан справ у галузі стандартизації протоколівсімейства TCP/IP на початок 1991 року p>
У книзі наводяться приклади, засновані на реалізації TCP/IP в ОС UNIX.
Однак основні положення застосовуються до всіх реалізацій TCP/IP p>
Сподіваюся, що ця книга буде корисна тим, хто професійно працює абозбирається почати працювати в середовищі TCP/IP: системним адміністраторам,системним програмістам і менеджерам мережі p>
2. Основи TCP/IP p>
Термін "TCP/IP" зазвичай означає все, що пов'язано з протоколами TCP і IP.
Він охоплює ціле сімейство протоколів, прикладні програми і навіть самумережу. До складу сімейства входять протоколи UDP, ARP, ICMP, TELNET, FTP ібагато інших. TCP/IP це технологія міжмережевої взаємодії,технологія internet. Мережа, що використовує технологію internet,називається "internet". Якщо мова йде про глобальну мережу, що об'єднуєбезліч мереж з технологією internet, то її називають Internet p>
2.1. Модуль IP створює єдину логічну мережу p>
Архітектура протоколів TCP/IP призначена для об'єднаної мережі,що складається із з'єднаних один з одним шлюзами окремих різноріднихпакетних підмереж, до яких підключаються різнорідні машини. Кожна зпідмереж працює у відповідності зі своїми специфічними вимогами імає свою природу засобів зв'язку. Однак передбачається, що кожна підмережаможе прийняти пакет інформації (дані з відповідним мережевимзаголовком) і доставити його за вказаною адресою в цій конкретній підмережі.
Не потрібно, щоб підмережа гарантувала обов'язкову доставку пакетів імала надійний наскрізний протокол. Таким чином, дві машини, підключені дооднієї підмережі можуть обмінюватися пакетами p>
Коли необхідно передати пакет між машинами, підключеними до різнихпідмережах, то машина-відправник посилає пакет у відповідний шлюз (шлюзпідключений до підмережі також як звичайний вузол). Звідти пакет надсилається навизначеним маршрутом через систему шлюзів і підмереж, поки не досягнешлюзу, підключеного до тієї ж підмережі, що й машина-одержувач; там пакетнаправляється до одержувача. Об'єднана мережа забезпечує датаграммнимсервіс p>
Проблема доставки пакетів в такій системі вирішується шляхом реалізації у всіхвузлах і шлюзах мережевого протоколу IP. Межсетевой рівень є посуті базовим елементом у всій архітектурі протоколів, забезпечуючиможливість стандартизації протоколів верхніх рівнів p>
2.2. Структура зв'язків протокольних модулів p>
Логічна структура мережного програмного забезпечення, що реалізуєпротоколи сімейства TCP/IP в кожному вузлі мережі internet, зображена на рис
1. Прямокутники позначають обробку даних, а лінії, що з'єднуютьпрямокутники, - шляхи передачі даних. Горизонтальна лінія внизу малюнкапозначає кабель мережі Ethernet, яка використовується як прикладфізичного середовища; "про" - це трансивер. Знак "*" - позначає IP-адресу, а
"@" - Адреса вузла в мережі Ethernet (Ethernet-адресу). Розуміння цьогологічної структури є основою для розуміння всієї технологіїinternet. Надалі ми будемо часто посилатися на цю схему p>
------------------------------< br>| Прикладні процеси |
| ... |/... |/... |
| ------- ------- |
| | TCP | | UDP | |
| ------- ------- |
|/|
| ------ |
| ------- | IP | |
| | ARP | -*---- |
| ------- | |
| | |
| -------- |
| | ENET | |
| ---@---- |
| | |
------------|-----------------< br>------------ про -------- кабель Ethernet
Рис.1. Структура протокольних модулів у вузлі мережі TCP/IP p>
2.3. Термінологія p>
Введемо ряд базових термінів, які ми будемо використовувати надалі p>
Драйвер це програма, що безпосередньо взаємодіє з мережнимадаптером. Модуль це програма, що взаємодіє з драйвером, мережнимиприкладними програмами або іншими модулями. Драйвер мережевого адаптера і,можливо, інші модулі, специфічні для фізичної мережі передачі даних,надають мережевий інтерфейс для протокольних модулів сімейства TCP/IP p>
Назва блоку даних, що передається по мережі, залежить від того, на якомурівні стека протоколів він знаходиться. Блок даних, з яким має справумережевий інтерфейс, називається кадром; якщо блок даних знаходиться міжмережевим інтерфейсом і модулем IP, то він називається IP-пакетом, якщо вінміж модулем IP і модулем UDP, то UDP-датаграм; якщо між модулем IPі модулем TCP, то TCP-сегментом (або транспортним повідомленням); нарешті,якщо блок даних знаходиться на рівні мережевих прикладних процесів, то вінназивається прикладним повідомленням p>
Ці визначення, звичайно, недосконалі і неповні. До того ж вони змінюються відпублікації до публікації. Більш докладні визначення можна знайти в RFC-
1122, розділ 1.3.3 p>
2.4. Потоки даних p>
Розглянемо потоки даних, що проходять через стек протоколів, який ви бачите нарис 1. У разі використання протоколу TCP (Transmission Control Protocol
- Протокол управління передачею), дані передаються між прикладнимпроцесом і модулем TCP. Типовим прикладним процесом, що використовуютьпротокол TCP, є модуль FTP (File Transfer Protocol - протоколпередачі файлів). Стек протоколів у цьому випадку буде FTP/TCP/IP/ENET. Привикористанні протоколу UDP (User Datagram Protocol протоколпризначених для користувача датаграм), дані передаються між прикладним процесом тамодулем UDP. Наприклад, SNMP (Simple Network Management Protocol - простийпротокол управління мережею) користується транспортними послугами UDP. Його стекпротоколів виглядає так: SNMP/UDP/IP/ENET p>
Модулі TCP, UDP і драйвер Ethernet є мультиплексорами nx 1 p>
Діючи як мультиплексори, вони перемикають кілька входів на одинвихід. Вони також є демультиплексор 1 x n. Як демультіплексори,вони перемикають один вхід на один з багатьох виходів у відповідності з полемтипу в заголовку протокольного блоку даних (рис 2) p>
Коли Ethernet-кадр потрапляє в драйвер мережевого інтерфейсу Ethernet, вінможе бути направлений або в модуль ARP (Address Resolution Protocol --адресний протокол), або в модуль IP (Internet Protocol - міжмережевийпротокол). На те, куди повинен бути спрямований Ethernet-кадр, вказуєзначення поля типу в заголовку кадру p>
Якщо IP-пакет потрапляє в модуль IP, то що містяться в ньому дані можуть бутипередані або модулю TCP або UDP, що визначається полем "протокол" взаголовку IP-пакета p>
Якщо UDP-датаграма потрапляє в модуль UDP, то на підставі значення поля
"Порт" у заголовку датаграми визначається прикладна програма, якоюповинно бути передано прикладне повідомлення. Якщо TCP-повідомлення потрапляє вмодуль TCP, то вибір прикладної програми, якою має бути переданоповідомлення, здійснюється на основі значення поля "порт" у заголовку TCP -повідомлення p>
Мультиплексування даних у зворотний бік здійснюється доситьпросто, так як з кожного модуля існує тільки один шлях вниз. Коженпротокольний модуль додає до пакету свій заголовок, на підставіякого машина, яка прийняла пакет, виконує демультиплексування p>
1 2 3 .... n | 1 2 3 .... n ^ p>
| |/| | |/| p>
----------------- потік -------- ----------- потік p>
| мультиплексор | даних | демультиплексор | даних p>
---------------- - | ------------------- | p>
| | ^ | v V | | p>
1 1
Рис.2. Мультиплексор nx 1 і демультиплексор 1 xn p>
Дані від прикладного процесу проходять через модулі TCP або UDP, післячого потрапляють в модуль IP і звідти - на рівень мережевого інтерфейсу p>
Хоча технологія internet підтримує багато різних середовищ передачі даних,тут ми будемо припускати використання Ethernet, тому що саме цяСереда найчастіше служить фізичною основою для IP-мережі. Машина на рис 1має одну точку з'єднання з Ethernet. Шестібайтний Ethernet-адресає унікальним для кожного мережевого адаптера і розпізнається драйвером p>
Машина має також четирехбайтний IP-адресу. Ця адреса позначає точкудоступу до мережі на інтерфейсі модуля IP з драйвером. IP-адреса має бутиунікальним в межах всієї мережі Internet p>
Працююча машина завжди знає свою IP-адресу і Ethernet-адреса p>
2.5. Робота з кількома мережевими інтерфейсами p>
Машина може бути підключена одночасно до кількох середах передачіданих. На рис 3 показана машина з двома мережевими інтерфейсами Ethernet.
Зауважимо, що вона має 2 Ethernet-адреси та 2 IP-адреси p>
З представленої схеми видно, що для машин з декількома мережевимиінтерфейсами модуль IP виконує функції мультиплексора nxm ідемультиплексор mxn (рис. 4) p>
--------------------------------- p>
| прикладні процеси | p>
| ... |/.... |/... | p>
| ------- ------- | p>
| | TCP | | UDP | | p>
| --- ---- ------- | p>
|/| p>
| ------ | p>
| ----- - | IP | ------- | p>
| | ARP | -*--*- | ARP | | p>
| ------- | | ------- | p>
| | |/| p>
| -------- -------- | p>
| | ENET | | ENET | | p>
| ---@---- ---@---- | p>
| | | | p >
----------|---------|------------ p>
| | p>
| --- про --------------- p>
-------------- про ---- Ethernet 2
Ethernet 1 p>
Рис.3. Вузол мережі TCP/IP з двома мережевими інтерфейсами p>
1 2 3 .... n | 1 2 3 ...... n ^ p>
| |/| | |/| p>
----------------- потік -------- ----------- потік p>
| мультиплексор | даних | демультиплексор | даних p>
---------------- - | ------------------- | p>
/| | ... V/| | ..... | p>
1 2 3 m 1 2 3 m
Рис.4. Мультиплексор nxm і демультиплексор mxn p>
Таким чином, він здійснює мультиплексування вхідних і вихіднихданих в обох напрямках. Модуль IP в даному випадку складніше, ніж упершому прикладі, тому що може передавати дані між мережами. Дані можутьнадходити через будь-який мережевий інтерфейс і бути ретранслювати через будь-якийінший мережний інтерфейс. Процес передачі пакету в іншу мережу називаєтьсяретрансляцією IP-пакету. Машина, що виконує ретрансляцію, називаєтьсяшлюзом [1] p>
Як показано на рис 5, ретранслюється пакет не передається модулів TCP або
UDP. Деякі шлюзи взагалі можуть не мати модулів TCP і UDP p>
3. Ethernet p>
У цьому розділі ми коротко розглянемо технологію Ethernet p>
Кадр Ethernet містить адресу призначення, адреса джерела, поле типу ідані. Розмір адреса в Ethernet - 6 байт. Кожен мережевий адаптер маєсвій Ethernet-адресу. Адаптер контролює обмін інформацією, що відбувається вмережі, і приймає адресовані йому Ethernet-кадри, а також Ethernet-кадри задресою "FF: FF: FF: FF: FF: FF" (у 16-річної системі), який позначає
"Всім", і використовується при широкомовної передачу p>
------- ------- p>
| TCP | | UDP | p>
------- ------- p>
/ p>
---------- p>
| | p>
| IP | p>
| ____ | p>
|/| p>
---------- p> < p>/дані дані надходять відправляються звідси сюди
Рис 5 Приклад міжмережевий ретрансляції пакету модулем IP p>
Ethernet реалізує метод МДКН/ОС (множинний доступ з контролем несучоїі виявленням зіткнень). Метод МДКН/ОС припускає, що всіпристрої взаємодіють в одному середовищі, в кожний момент часу можепередавати тільки один пристрій, а приймати можуть всі одночасно. Якщодва пристрої намагаються передавати одночасно, то відбувається зіткненняпередач, і обидва пристрої після випадкового (короткого) періоду очікуваннянамагаються знову виконати передачу p>
3.1. Аналогія з розмовою p>
Доброю аналогією взаємодій у середовищі Ethernet може служити розмовагрупи ввічливих людей в невеличкій темній кімнаті. При цьому аналогієюелектричних сигналів в коаксіальному кабелі служать звукові хвилі вкімнаті p>
Кожна людина чує мова інших людей (контроль несучої). Всі люди вкімнаті мають однакові можливості вести розмову (множинний доступ),але ніхто не говорить занадто довго, тому що всі ввічливі. Якщо людина буденевежлів, то його попросять вийти (т тобто видалять з мережі). Всі мовчать, поки хто -то говорить. Якщо двоє людей починають говорити одночасно, то вони відразувиявляють це, оскільки чують один одного (виявлення зіткнень). Уцьому випадку вони замовкають і чекають деякий час, після чого один з нихзнову починає розмову. Інші люди чують, що ведеться розмова, і чекають,поки він скінчиться, а потім можуть почати говорити самі. Кожна людина маєвласне ім'я (аналог унікального Ethernet-адреси) Кожного разу, коли хтосьнебудь починає говорити, він називає на ім'я того, до кого звертається, ісвоє ім'я, наприклад, "Слухай Петя, це Андрій,. ля-ля-ля. "Якщо хтосьхоче звернутися до всіх, то він каже: "Слухайте всі, це Андрій,. ля -ля-ля. "(Широкомовна передача) p>
4. Протокол ARP p>
У цьому розділі ми розглянемо те, як під час здійснення IP-пакета визначається
Ethernet-адреса призначення. Для відображення IP-адрес в Ethernet-адресивикористовується протокол ARP (Address Resolution Protocol - адреснийпротокол). Відображення виконується лише для відправляються IP-пакетів, такяк тільки в момент відправлення створюються заголовки IP та Ethernet p>
4.1. ARP-таблиця для перетворення адрес p>
Перетворення адрес виконується шляхом пошуку в таблиці. Ця таблиця,звана ARP-таблицею, зберігається в пам'яті і містить рядки для кожноговузла мережі. У двох стовпці містять IP-та Ethernet-адреси. Якщо потрібноперетворити IP-адресу в Ethernet-адресу, то шукається запис з відповідним
IP-адресою. Нижче наведено приклад спрощеної ARP-таблиці p>
------------------------------------ --------- p>
| IP-адреса Ethernet-адреса | p>
------------------- -------------------------- p>
| 223.1.2.1 08:00:39:00:2 F: C3 |
| 223.1.2.3 08:00:5 A: 21: A7: 22 | p>
| 223.1.2.4 08:00:10:99: AC: 54 | p> < p> ---------------------------------------------< br>Табл.1. Приклад ARP-таблиці p>
Прийнято всі байти 4-байтного IP-адреси записувати десятковими числами,розділеними крапками. Під час запису 6-байтного Ethernet-адреси кожен байтвказується у 16-річної системі і відокремлюється двокрапкою p>
ARP-таблиця необхідна тому, що IP-адреси та Ethernet-адреси вибираютьсянезалежно, і немає якого-небудь алгоритму для перетворення одного в інший.
IP-адресу вибирає менеджер мережі з урахуванням положення машини в мережі internet.
Якщо машину переміщують в іншу частину мережі internet, то її IP-адреса маєбути змінений. Ethernet-адресу вибирає виробник мережного інтерфейсногообладнання з виділеного для нього за ліцензією адресного простору.
Коли у машини замінюється плата мережного адаптера, то змінюється і її
Ethernet-адреса p>
4.2. Порядок перетворення адрес p>
В ході звичайної роботи мережна програма, така як TELNET, відправляєприкладне повідомлення, користуючись транспортними послугами TCP. Модуль TCPпосилає відповідне транспортне повідомлення через модуль IP. Урезультаті складається IP-пакет, який має бути переданий драйверу
Ethernet. IP-адреса місця призначення відома прикладній програмі, модулю
TCP та модулю IP. Необхідно на його основі знайти Ethernet-адресместапризначення. Для визначення шуканого Ethernet-адреси використовується ARP -таблиця p>
4.3. Запити та відповіді протоколу ARP p>
Як же заповнюється ARP-таблиця? Вона заповнюється автоматично модулем ARP,в міру необхідності. Коли за допомогою існуючої ARP-таблиці не вдаєтьсяперетворити IP-адресу, то відбувається наступне: p>
1) За мережі передається широкомовна ARP-запит. p>
2) Вихідний IP-пакет ставиться в чергу. p>
Кожний мережний адаптер приймає широкомовні передачі. Всідрайвери Ethernet перевіряють поле типу в прийнятому Ethernet-кадрі й передають
ARP-пакети модулю ARP. ARP-запит можна інтерпретувати так: "Якщо ваш IP -адреса співпадає з вказаним, то повідомте мені вашу Ethernet-адресу " p>
Пакет ARP-запиту виглядає примерно так: p>
---------------------------------------- ------------------- p>
| IP-адреса відправника 223.1.2.1 | p>
| Ethernet-адреса відправника 08:00 : 39:00:2 F: C3 | p>
---------------------------------- ------------------------- p>
| Бажаємий IP-адреса 223.1.2.2 | p>
| Бажаємий Ethernet-адреса | p>
--------------------------------------- --------------------< br>Табл.2. Приклад ARP-запиту p>
Кожний модуль ARP перевіряє поле шуканого IP-адреси в отриманому ARP-пакетіі, якщо адреса збігається з його власною IP-адресою, то посилає відповідьпрямо за Ethernet-адресою відправника запиту. ARP-відповідь можнаінтерпретувати так: "Так, це мій IP-адресу, йому відповідає такий-то
Ethernet-адресу ". Пакет з ARP-відповіддю виглядає приблизно так: p>
---------------------------------- ------------------------- p>
| IP-адреса відправника 223.1.2.2 | p>
| Ethernet -адреса відправника 08:00:28:00:38: A9 | p>
---------------------------- ------------------------------- p>
| Бажаємий IP-адреса 223.1.2.1 | p >
| Бажаємий Ethernet-адреса 08:00:39:00:2 F: C3 | p>
---------------------- -------------------------------------< br>Табл.3. Приклад ARP-відповіді p>
Ця відповідь одержує машина, що зробила ARP-запит. Драйвер цієї машиниперевіряє поле типу в Ethernet-кадрі й передає ARP-пакет модулю ARP.
Модуль ARP аналізує ARP-пакет і додає запис у свою ARP-таблицю p>
Оновлена таблиця виглядає наступним чином: p>
---------------- ----------------------------- p>
| IP-адреса Ethernet-адреса | p>
--------------------------------------------- p>
| 223.1.2.1 08:00:39:00:2 F: C3 | p>
| 223.1.2.2 08:00:28:00:38: A9 | p>
| 223.1.2.3 08:00:5 A: 21: A7: 22 | p>
| 223.1.2.4 08:00:10:99: AC: 54 | p>
----- ---------------------------------------- p>
Табл.4 . ARP-таблиця після обробки відповіді p>
4.4. Продовження перетворення адрес p>
Новий запис в ARP-таблиці з'являється автоматично, через кількамілісекунд після того, як вона була потрібна. Як ви пам'ятаєте, раніше накроці 2 вихідний IP-пакет був поставлений в чергу. Тепер з використаннямоновленої ARP-таблиці виконується перетворення IP-адреси в Ethernet -адресу, після чого Ethernet-кадр передається по мережі p>
Повністю порядок перетворення адрес виглядає так: p>
1) За мережі передається широкомовна ARP-запит.
2) Вихідний IP-пакет ставиться в чергу.
3) Повертається ARP-відповідь, що містить інформацію про відповідність IP-і
Ethernet-адрес. Ця інформація заноситься в ARP-таблицю.
4) Для перетворення IP-адреси в Ethernet-адресу у IP-пакету, поставленого в чергу, використовується ARP-таблиця.
5) Ethernet-кадр передається по мережі Ethernet. P>
Коротше кажучи, якщо за допомогою ARP-таблиці не вдається відразу здійснитиперетворення адрес, то IP-пакет ставиться в чергу, а необхідна дляперетворення інформація виходить за допомогою запитів і відповідей протоколу
ARP, після чого IP-пакет передається за призначенням p>
Якщо в мережі немає машини з шуканим IP-адресою, то ARP-відповіді не буде і небуде записи в ARP-таблиці. Протокол IP буде знищувати IP-пакети,направляються за цією адресою. Протоколи верхнього рівня не можуть відрізнитивипадок пошкодження мережі Ethernet від випадку відсутності машини з шуканим IP -адресою p>
які реалізації IP та ARP не ставлять у чергу IP-пакети на той час,поки вони чекають ARP-відповідей. Замість цього IP-пакет просто знищується, а йоговідновлення покладається на модуль TCP або прикладний процес, що працюєчерез UDP. Таке відновлення виконується за допомогою таймаутів і повторнихпередач. Повторна передача повідомлення проходить успішно, тому що першийспроба вже викликала заповнення ARP-таблиці p>
Слід зазначити, що кожна машина має окрему ARP-таблицю для кожногосвого мережевого інтерфейсу p>
5. Межсетевой протокол IP p>
Модуль IP є базовим елементом технології internet, а центральноючастиною IP є його таблиця маршрутів. Протокол IP використовує цютаблицю при прийнятті всіх рішень про маршрутизації IP-пакетів. Змісттаблиці маршрутів визначається адміністратором мережі. Помилки при установцімаршрутів можуть заблокувати передачі p>
Щоб зрозуміти техніку міжмережевої взаємодії, потрібно зрозуміти те, яквикористовується таблиця маршрутів. Це розуміння необхідне для успішногоадміністрування та супроводження IP-мереж p>
5.1. Пряма маршрутизація p>
На рис 6 показана невелика IP-мережу, що складається з 3 машин: A, B і C p>
Кожна машина має такий же стек протоколів TCP/IP як на рис 1. Коженмережевий адаптер цих машин має свій Ethernet-адресу. Менеджер мережі повиненприсвоїти машин унікальні IP-адреси p>
ABC p>
| | | p>
-------------- про ---- - про ------ про ------ p>
Ethernet 1 p>
IP-мережа "development"
Рис.6. Проста IP-мережа p>
Коли A посилає IP-пакет B, то заголовок IP-пакета містить у полівідправника IP-адреса вузла A, а заголовок Ethernet-кадр "містить в полевідправника Ethernet-адреса A. Крім цього, IP-заголовок містить у поліодержувача IP-адреса вузла B, а Ethernet-заголовок містить у полі одержувача
Ethernet-адреса B p>
--------------------------------------- -------------- p>
| адреса відправник одержувач | p>
----------------- ------------------------------------ p>
| IP-заголовок AB |
| Ethernet-заголовок AB | p>
------------------------------- ----------------------< br>Табл.5. Адреса в Ethernet-кадрі, що передає IP-пакет від A до B p>
У цьому простому прикладі протокол IP є надмірністю, яке мало щододає до послуг, що надаються мережею Ethernet. Однак протокол IPвимагає додаткових витрат на створення, передачу та обробку IP -заголовка. Коли в машині B модуль IP отримує IP-пакет від машини A, вінзіставляє IP-адреса місця призначення зі своїм і, якщо адреси співпадають,то передає датаграм протоколу верхнього рівня p>
У даному випадку при взаємодії A з B використовується пряма маршрутизація p>
5.2. Непряма маршрутизація p>
На рис 7 представлена більш реалістична картина мережі internet. У даномувипадку мережа internet складається з трьох мереж Ethernet, на базі якихпрацюють три IP-мережі, об'єднані шлюзом D. Кожна IP-мережа включає чотиримашини, кожна машина має свої власні IP-та Ethernet-адреси p>
----- D ------- p>
ABC | | | EFG p> < p> | | | | | | | | | p>
---- про ----- про ----- про ----- о - | - про --- - про ----- про ----- про --- p>
Ethernet 1 | Ethernet 2 p>
IP-мережа "development" | IP-мережа "accounting" p>
| p>
| HIJ p>
| | | | про ---- про ----- про ----- про ---- ------ p>
Ethernet 3 IP-мережа "fuctory"
Рис.7. Мережа internet, що складається з трьох IP-мереж p>
За винятком D всі машини мають стек протоколів, аналогічний показаномуна рис 1. Шлюз D з'єднує всі три мережі, а отже, має три IP -адреси і три Ethernet-адреси. Машина D має стек протоколів TCP/IP,схожий на той, що показано на рис 3, але замість двох модулів ARP і двохдрайверів, він містить три модулі ARP і три драйвера Ethernet. Звернемоувагу на те, що машина D має тільки один модуль IP p>
Менеджер мережі присвоює кожній мережі Ethernet унікальний номер, званий
IP-номером мережі. На рис 7 IP-номера не показані, замість них використовуютьсяімена мереж p>
Коли машина A посилає IP-пакет машині B, то процес передачі йде вмежах однієї мережі. При всіх взаємодіях між машинами, підключенимидо однієї IP-мережі, використовується пряма маршрутизація, що обговорюваласяпопередньому прикладі p>
Коли машина D взаємодіє з машиною A, то це інтерфейс.
Коли машина D взаємодіє з машиною E, то це пряме взаємодія.
Коли машина D взаємодіє з машиною H, то це пряме взаємодія.
Це так, оскільки кожна пара цих машин належить одній IP-мережі p>
Проте, коли машина A взаємодіє з машинами, включеними в іншу IP -мережу, то взаємодія вже не буде прямим. Машина A повинна використовуватишлюз D для ретрансляції IP-пакетів в іншу IP-мережу. Така взаємодіяназивається "непрямим" p>
Маршрутизація IP-пакетів виконується модулями IP і є прозорою длямодулів TCP, UDP і прикладних процесів p>
Якщо машина A посилає машині E IP-пакет, то IP-адресу і Ethernet-адресавідправника відповідають адресами A. IP-адреса місця призначення єадресою E, але оскільки модуль IP в A посилає IP-пакет через D, Ethernet -адреса місця призначення є адресою D p>
------------------------------------- --------------- p>
| адреса відправник одержувач | p>
---------------- ------------------------------------ p>
| IP-заголовок AE |
| Ethernet-заголовок AD | p>
------------------------------- ---------------------< br>Табл.6. Адреса в Ethernet-кадрі, що містить IP-пакет від A до E (до шлюзу D) p>
Модуль IP в машині D одержує IP-пакет і перевіряє IP-адреса місцяпризначення. Визначивши, що це не його IP-адреса, шлюз D посилає цей IP -пакет прямо до E p>
--------------------------------------- ------------- p>
| адреса відправник одержувач | p>
------------------ ---------------------------------- p>
| IP-заголовок AE | p >
| Ethernet-заголовок DE | p>
--------------------------------- -------------------< br>Табл.7. Адреса в Ethernet-кадрі, що містить IP-пакет від A до E (після шлюз
D) p>
Отже, при прямій маршрутизації IP-та Ethernet-адреса відправникавідповідають адресами того вузла, який послав IP-пакет, а IP-і Ethernet -адреси місця призначення відповідають адресами одержувача. При непрямоїмаршрутизації IP-та Ethernet-адреси не утворюють таких пар p>
У даному прикладі мережа internet є дуже простою. Реальні мережі можутьбути набагато складніше, тому що можуть містити кілька шлюзів і кількатипів фізичних середовищ передачі. У наведеному прикладі кілька мереж
Ethernet об'єднуються шлюзом для того, щоб локалізувати широкомовнатрафік в кожній мережі p>
5.3. Правила маршрутизації в модулі IP p>
Вище ми показали, що відбувається при передачі повідомлень, а теперрозглянемо правила або алгоритм маршрутизації p>
Для відправляються IP-пакетів, що надходять від модулів верхнього рівня, модуль
IP повинен визначити спосіб доставки - прямий або непрямий - і вибратимережний інтерфейс. Цей вибір робиться на підставі результатів пошуку втаблиці маршрутів p>
Для прийнятих IP-пакетів, що надходять від мережевих драйверів, модуль IPповинен вирішити, чи потрібно ретранслювати IP-пакет з іншої мережі абопередати його на верхній рівень. Якщо модуль IP вирішить, що IP-пакет повиненбути передавати, то подальша робота з ним здійснюється також, як звідправляються IP-пакетами p>
Вхідний IP-пакет ніколи не ретранслюється через той же мережевийінтерфейс, через який він був прийнятий p>
Рішення про маршрутизації приймається до того, як IP-пакет передаєтьсямережевого драйвера, і до того, як відбувається звернення до ARP-таблиці p>
5.4. IP-адреса p>
Менеджер мережі присвоює IP-адреси машин відповідно до того, до яких
IP-мережах вони підключені. Старші біти 4-х байтного IP-адреси визначаютьномер IP-мережі. Частина IP-адреси - номер вузла (хост-номер). Длямашини з табл .. 1 з IP-адресою 223.1.2.1 мережевий номер рівний 223.1.2, ахост-номер - 1. Нагадаємо, що IP-адреса вузла ідентифікує точку доступумодуля IP до мережевого інтерфейсу, а не всю машину p>
Існують 5 класів IP-адрес, що відрізняються кількістю біт у мережномуномері і хост-номері. Клас адреси визначається значенням його першийоктету p>
У табл. 8 наведено відповідність класів адрес значенням першого октету ізазначена кількість можливих IP-адрес кожного класу p>
0 8 16 24 31 p>
----------------------- ---------------------------- p>
Клас A | 0 | номер мережі | номер вузла | p>
----------------------------------------------- ---- p>
--------------------------------------- ------------ p>
Клас B | 10 | номер мережі | номер вузла | p>
------------- -------------------------------------- p>
----- ---------------------------------------------- p>
Клас C | 110 | номер мережі | номер вузла | p>
----------------------------- ---------------------- p>
--------------------- ------------------------------ p>
Клас D | 1110 | груповий адреса | p> < p> ------------------------------------------------ --- p>
---------------------------------------- ----------- p>
Клас E | 11110 | зарезервовано | p>
------------------ ---------------------------------< br>Рис.8. Структура IP-адрес p>
--------------------------------------- ---------------- p>
| Клас Діапазон значень Можливе Можливе | p>
| перший октету кількість мереж кількість вузлів |
-------------------------------------------- ----------- p>
| A 1 - 126 126 1677 7214 | p>
| B 128-191 1638 2 65534 | p>
| C 192-223 2097 150 254 | p>
| D 224-239 - 2 ** 28 | p>
| E 240-247 - 2 ** 27 | p>
-- -------------------------------------------------- ----< br>Табл.8. Характеристики класів адрес p>
Адреси класу A призначені для використання у великих мережах загальногокористування. Вони допускають велику кількість номерів вузлів. Адреси класу
B використовуються в мережах середнього розміру, наприклад, мережах університетів івеликих компаній. Адреси класу C використовуються в мережах з невеликим числомкомп'ютерів. Адреси класу D використовуються при зверненнях до груп машин, аадреси класу E зарезервовані на майбутнє p>
Деякі IP-адреси є виділеними і трактуються по-особливому p>
------------------- ----------- p>
| всі нулі | Даний вузол p>
------------------- ----------- p>
------------------------------ p>
| номер мережі | всі нулі | Дана IP-мережа p>
--------------------------- --- p>
------------------------------ p>
| всі нулі | номер вузла | Вузол в цiй (локальної) IP-мережі p>
------------------------------ p>
------------------------------ p>
| все одиниці | Усі вузли в цiй (локальної) IP-мережі p>
------------------------------ p> < p> ------------------------------ p>
| номер мережі | все одиниці | Усі вузли у зазначеній IP-мережі p>
------------------------------ p>
--- --------------------------- p>
| 127 | що-небудь (часто 1) | "Петля" p>
------------------------------< br>Рис.9. Виділені IP-адреси p>
Як показано на рис 9, у виділених IP-адреси всі нулі відповідають абоданого вузла, або даної IP-мережі, а IP-адреси, що складаються з всіх одиниць,використовуються при широкомовних передачах. Для посилань на всю IP-мережу вцілому використовується IP-адреса з нульовим номером вузла. Особливий сенс має IP -адреса, перший октет якого дорівнює 127. Він використовується для тестуванняпрограм і взаємодії процесів у межах однієї машини. Колипрограма посилає дані по IP-адреси 127.0.0.1, то утворюється як би
"Петля". Дані не передаються по мережі, а повертаються модулям верхньогорівня, як тільки що прийняті. Тому в IP-мережі забороняється привласнюватимашинам IP-адреси, що починаються з 127 p>
5.5. Вибір адреси p>
Перш ніж ви почнете використовувати мережу з TCP/IP, ви повинні одержати одинабо декілька офіційних мережевих номерів. Виділенням номерів (як ібагатьма іншими питаннями) займається DDN Network Information Center
(NIC) [2]. Виділення номерів проводиться безкоштовно і займає близько тижня.
Ви можете отримати мережевий номер незалежно від того, для чогопризначена ваша мережа. Навіть якщо ваша мережа не має зв'язку з об'єднаноюмережею Internet, отримання унікального номера бажано, тому що в цьомувипадку є гарантія, що в майбутньому при включенні в Internet або припідключення до мережі іншої організації не виникне конфлікту адрес p>
Одне з найважливіших рішень, яке необхідно прийняти при встановленні мережі,полягає у виборі способу присвоєння IP-адрес вашим машинам. Цейвибір повинен враховувати перспективу зростання мережі. Інакше надалі вамдоведеться змінювати адреси. Коли до мережі підключено кілька сотень машин,зміна адрес стає майже неможливим p>
Організації, які мають невеликі мережі з кількістю вузлів до 126, повиннізапитувати мережні номери класу C. Організації з великою кількістю машинможуть отримати декілька номерів класу C або номер класу B. Зручнимзасобом структуризації мереж в рамках однієї організації є підмережі p>
5.6. Підмережі p>
Адресний простір мережі internet може бути розділене нанепересічні підпростори - "подсети", з кожною з яких можнапрацювати як зі звичайною мережею TCP/IP. Таким чином єдина IP-мережуорганізації може будуватися як об'єднання підмереж. Як правило, підмережавідповідає однієї фізичної мережі, наприклад, однієї мережі Ethernet p>
Звичайно, використання підмереж необов'язково. Можна просто призначити длякожної фізичної мережі свій мережевий номер, наприклад, номер класу C. Однактаке рішення має два недоліки. Перший, і менш істотний,полягає в порожній витраті мережевих номерів. Більш серйозний недолікполягає в тому, що якщо ваша організація має кілька мережевих номерів,то машини поза її повинні підтримувати запису про маршрути доступу до кожної зцих IP-мереж. Таким чином, структура IP-мережі організації стаєвидимої для всього світу. При будь-які зміни в IP-мережі інформація проних повинна бути врахована в кожній з машин, що підтримують маршрути доступу доданої IP-мережі p>
Підмережі дозволяють уникнути цих недоліків. Ваша організація повиннаотримати один мережевий номер, наприклад, номер класу B. Стандарти TCP/IPвизначають структуру IP-адрес. Для IP-адрес класу B перші два октетує номером мережі. Частина IP-адреси може використовуватися якзавгодно. Наприклад, ви можете вирішити, що третій октет буде визначати номерпідмережі, а четвертий октет - номер вузла в ній. Ви повинні описатиконфігурацію підмереж у файлах, що визначають маршрутизацію IP-пакетів. Цеопис є локальним для вашої організації і не видно поза нею. Всімашини поза вашої організації бачать одну велику IP-мережу. Отже, вониповинні підтримувати тільки маршрути доступу до шлюзів, що з'єднує вашу IP -мережу з рештою світу. Зміни, що відбуваються в IP-мережі організації, що невидно поза нею. Ви легко можете додати нову підмережа, новий шлюз т.п. p>
5.7. Як призначати номери мереж і підмереж p>
Після того, як вирішено використовувати підмережі або безліч IP-мереж, виповинні вирішити, як призначати їм номери. Зазвичай це досить просто. Кожнійфізичної мережі, наприклад, Ethernet або Token Ring, призначається окремийномер підмережі або номер мережі. У деяких випадках має сенс призначатиоднієї фізичної мережі кілька подсетевих номерів. Наприклад, припускаєоложім,що є мережа Ethernet, що охоплює три будівлі. Ясно, що призбільшення кількості машин, підключених до цієї мережі, доведеться її розділити накілька окремих мереж Ethernet. Для того, щоб уникнути необхідностіміняти IP-адреси, коли це відбудеться, можна наперед виділити для цієїмережі три подсетевих номери - по одному на будинок. (Це корисно і в томувипадку, коли не планується фізичний поділ мережі p>
Просто така адресація дозволяє відразу визначити, де знаходиться та чиінша машина) Однак перш, ніж виділяти три різних подсетевих номераоднієї фізичної мережі, ретельно перевірте, що всі ваші програми здатніпрацювати в такому середовищі p>
Ви також повинні вибрати "маску підмережі". Вона використовується мережевимпрограмним забезпеченням для виділення номера підмережі з IP-адрес. Бити
IP-адреси, які визначають номер IP-мережі, в масці підмережі повинні бути рівні 1,а біти, що визначають номер вузла, в масці підмережі повинні бути рівні 0. Якми вже відзначали, стандарти TCP/IP визначають кількість октетів, які задаютьномер мережі. Часто в IP-адресах класу B третього октет використовується длястворення номера підмережі. Це дозволяє мати 256 підмереж, в кожній зяких може бути до 254 вузлів. Маска підмережі в такій системі дорівнює
255.255.255.0. Але, якщо у вашій мережі повинно бути більше підмереж, а вкожній підмережі не буде при цьому понад 60 вузлів, то можна використовуватимаску 255.255.255.192. Це дозволяє мати 1024 підмережі і до 62 вузлів укожній. (Нагадаємо, що номери вузлів 0 і "всі одиниці" використовуються особливимчином) p>
Зазвичай маска підмережі вказується у файлі стартової конфігурації мережевогопрограмного забезпечення. Протоколи TCP/IP дозволяють також запитувати цюінформацію по мережі p>
5.8. Імена p>
Людям зручніше називати машини за іменами, а не числами. Наприклад, у машинина ім'я alpha може бути IP-адреса 223.1.2.1. У маленьких мережах інформаціяпро відповідність імен IP-адресами зберігається у файлах "hosts" на кожному вузлі.
Звичайно, назва файлу залежить від конкретної реалізації. У великих мережахця інформація зберігається на сервері і доступна по мережі p>
Кілька рядків з файлу "hosts" можуть виглядати приблизно так: p>
223.1.2.1 alpha
223.1.2.2 beta
223.1.2.3 gamma
223.1.2.4 delta
223.1.3.2 epsilon
223.1.4.2 iota p>
У першому стовпці - IP-адреса, у другому - назва машини У більшостівипадків файли "hosts" можуть бути однакові на всіх вузлах. Зауважимо, що провузлі delta в цьому файлі є всього один запис, хоча він має три IP-адреси
(рис 11). Вузол delta доступний з будь-якого з цих IP-адрес. Який з нихвикористовується, не має значення. Коли вузол delta одержує IP-пакет іперевіряє IP-адреса місця призначення, то він впізнає будь-який з трьох своїх IP -адрес p>
IP-мережі також можуть мати імена. Якщо у вас є три IP-мережі, то файл
"Networks" може виглядати приблизно так: p>
223.1.2 development
223.1.3 accounting
223.1.4 factory p>
У першій колонці - мережевий номер, у другому - ім'я мережі p>
У даному прикладі alpha є вузлом номер 1 в мережі development, betaє вузлом номер 2 в мережі development і.т.д. p>
Показаний вище файл hosts задовольняє потреби користувачів, але дляуправління мережею internet зручніше мати назви всіх мережевих