Транспортний рівень. Протоколи TCP і UDP. TCP і UDP сокети. Адресні простори портів. Поняття encapsulation
Ми не вдаватимемося в деталі реалізації протоколів транспортного рівня, а лише стисло розглянемо їх основні характеристики. До протоколів транспортного рівня відносяться протоколи TCP і UDP. Протокол TCP реалізує потокову модель передачі інформації, хоча в його основі, як і в основі протоколу UDP, лежить обмін інформацією через пакети даних. Він є орієнтованим на встановлення логічного зв'язку (connection-oriented), надійний (забезпечуючий перевірку контрольних сум, передачу підтвердження у разі правильного прийому повідомлення, повторну передачу пакету даних у разі неотримання підтвердження протягом певного проміжку часу, правильну послідовність отримання інформації, повний контроль швидкості передачі даних) дуплексний спосіб зв'язку між процесами в мережі. Протокол UDP, навпаки, є способом зв'язку ненадійним, орієнтованим на передачу повідомлень (датаграмм). Від протоколу IP він відрізняється двома основними рисами: використовуванням для перевірки правильності прийнятого повідомлення контрольної суми, наліченої по всьому повідомленню, і передачею інформації не від вузла мережі до іншого вузла, а від відправника до одержувача. Повна адреса видаленого процесу або проміжного об'єкту для конкретного чину зв'язку з погляду операційних систем визначається парою адрес: <числова адреса комп'ютера в мережі, локальна адреса>. Така пара одержала назву socket (кубло, панель), оскільки по суті справи є віртуальним комунікаційним вузлом (можна уявити собі віртуальний роз'єм або ящик для прийому/відправки листів), що веде від об'єкту в зовнішній світ і навпаки. При непрямій адресації самі проміжні об'єкти для організації взаємодії процесів також іменуються сокетами. Оскільки рівень Internet сімейства протоколів TCP/IP уміє доставляти інформацію тільки від комп'ютера до комп'ютера, дані, одержані з його допомогою, повинні містити тип використаного протоколу транспортного рівня і локальні адреси відправника і одержувача. І протокол TCP, і протокол UDP використовують непряму адресацію. Для того, щоб уникнути плутанини, ми надалі термін " сокет " вживатимемо тільки для позначення самих проміжних об'єктів, а повні адреси таких об'єктів називатимемо адресами сокетів. Для кожного транспортного протоколу в стеку TCP/IP існують власні Для кожного транспортного протоколу в стеку TCP/IP існують власні сокети: UDP сокети і TCP сокети,що мають різні адресні простори своїх локальних адрес – портів. В сімействі протоколів TCP/IP адресні простори портів є позитивними значеннями цілого 16-бітового числа. Тому, кажучи про локальну адресу сокета, ми часто використовуватимемо термін "номер порту". З відмінності адресних просторів портів виходить, що порт 1111 TCP – це зовсім не та ж сама локальна адреса, що і порт 1111 UDP. Про те, як призначаються номери портів різним сокетам, ми поговоримо пізніше. Отже, ми описали ієрархічну систему адресації, що використовується в сімействі протоколів TCP/IP, яка включає декілька рівнів:
Додавання необхідної інформації до даних при переході від верхніх рівнів сімейства протоколів до нижніх прийнято називати англійським словом encapsulation (дослівно: герметизація). На рисунку 15–16.5 приведена схема encapsulation при використовуванні протоколу UDP на мережі Ethernet. Мал. 15-16.5. Encapsulation для UDP-протоколу на мережі Ethernet Оскільки між MAC-адресами і IP-адресами існує взаємно однозначна відповідність, відома сімейству протоколів TCP/IP, то фактично для повного завдання адреси доставки і адреси відправлення, необхідної для встановлення двостороннього зв'язку, потрібно вказати п'ять параметрів: <транспортний протокол, IP-адреса відправника, порт відправника, IP-адреса одержувача, порт одержувача>
|