Потоки, стек протоколів, механізм портів і мультиплексування

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

4.7.1 Потоки, стек протоколів, механізм портів і мультиплексування
Щоб встановити з'єднання між двома процесами на різних комп'ютерах мережі, необхідно знати не тільки Internet-адреси комп'ютерів, але і номери тих ТСР-портів (sockets), які процеси використовують на цих комп'ютерах. Будь-яке TCP-з'єднання в мережі Internet однозначно ідентифікується двома IP-адресами і двома номерами ТСР-портів.
Розглянемо потоки даних, перенесення яких забезпечують протоколи. При використанні протоколу TCP дані передаються між прикладним процесом та модулем TCP. Типовим прикладним протоколом, що використовують протокол TCP, є FTP (File Transfer Protocol, Протокол передавання файлів). Стек протоколів у цьому випадку виглядає наступним чином: FTP / TCP / IP / Ethernet. При використанні протоколу UDP (User Datagram Protocol, Протокол дейтаграм користувача) дані передаються між прикладним процесом та модулем UDP. Транспортними послугами протоколу UDP користується, наприклад, SNMP (Simple Network Management Protocol, Простий протокол експлуатаційного управління мережею). Його стек протоколів виглядає так: SNMP / UDP / IP / Ethernet.
Один порт комп'ютера може бути задіяний у з'єднаннях з декількома портами віддалених комп'ютерів. Таким чином, механізм портів дозволяє працювати на одному комп'ютері одночасно декільком додаткам і однозначно ідентифікувати кожен потік даних у мережі. Це називається мультиплексуванням сполук.
Модулі TCP, UDP і драйвер Ethernet є мультиплексорами типу nx 1. Діючи як мультиплексори, вони переключають кілька входів на один вихід. Вони також є демультиплексора типу 1 х п. Як демультіплексори, вони переключають один вхід на один з багатьох виходів у відповідності з певним полем у заголовку протокольного блоку даних (в Ethernet-кадрі це поле «тип»). Коли Ethernet-кадр потрапляє в драйвер мережевого інтерфейсу Ethernet, він може бути направлений або в модуль ARP, або в модуль IP. (Значення поля «тип» у заголовку кадру вказує, куди повинен бути направлений Ethernet-кадр.)
Якщо IP-пакет потрапляє в модуль IP, то що містяться в ньому дані можуть бути передані або модулю TCP, або UDP, що визначається полем «Protocol» у заголовку IP-пакета. Якщо TCP-повідомлення потрапляє в модуль TCP, то вибір прикладної програми, якою має бути передане повідомлення, проводиться на основі значення поля «порт» у заголовку TCP-повідомлення.
Демультиплексування даних, переданих у зворотному напрямку, здійснюється досить просто, так як з кожного модуля існує тільки один шлях «вниз». Кожен протокольний модуль додає до пакету свій заголовок, на підставі якого машина, яка прийняла пакет, виконує демультиплексування.
Призначення портів для додатків на кожному комп'ютері проводиться незалежно. TCP може самостійно вибирати порт, з яким буде працювати програма, або додаток вкаже, з яким портом на даному комп'ютері воно буде працювати. Однак, як правило, часто використовувані додатки-сервіси, наприклад, такі як HTTP, FTP, SMTP та ін, використовують одні і ті ж номери портів, які вже стали загальновідомими. Це робиться для того, щоб до даного процесу на комп'ютері можна було приєднатися, вказуючи тільки адресу машини. Наприклад, lnternet-браузер, якщо йому не вказати додатково, шукає за вказаною адресою додаток, що працює з портом 80 (найбільш поширений порт для серверів WWW). Крім того, робоча станція може бути забезпечена кількома мережевими інтерфейсами, тоді вона повинна здійснювати мультиплексування типу n х т, тобто між кількома прикладними програмами та кількома інтерфейсами.

--Козінцев Олексій 36 гр. 05:42, 20 листопада 2010 (EET)