сегментів транспортного рівня, останній стикається з перерахованими проблемамі.адреса
IP відповідає за відправку одиничних пакетів до місця їх призначення. Це досягається шляхом зв'язування кожного комп'ютера в мережі з деяким IP адресою. Кожен IP адреса складається з 32 біт, представлених у вигляді чотирьох десяткових чисел, розділених крапкою, кожне в діапазоні від 0 до 255. Приклад IP адреси: 123.123.123.123. Простір IP адрес розділене на мережі, це зроблено шляхом поділу 32 бітів адреси на біти мережі і біти хоста. Ця інформація використовується для розподілу пакетів по місцях призначення.
. 2.2 TCP і UDP
TCP і UDP для передачі даних використовують протокол IP. Протокол IP відповідає за передачу пакетів в місце призначення з мінімальними витратами, а TCP і UDP використовуються для підготовки даних до відправки, шляхом розбиття їх на пакети.
Протокол TCP надає канал для двостороннього з'єднання між двома кореспондентами, використовуючи два потоки даних. Перед надсиланням або отриманням даних TCP встановлює канал з вузлом призначення. Щоб канал міг пропускати два потоки даних, TCP розбиває дані на пакети і стежить, щоб пакети були доставлені без помилок і в правильному порядку.
Ось чому додатки, що використовують TCP, не дбають про коректність передачі даних. Використання TCP дозволяє їм залишатися впевненими в тому, що дані передадуться успішно і полностью.является найбільш простим протоколом для передачі пакетів даних. Він просто додає заголовок до даних і відсилає їх за призначенням, не звертаючи уваги на те, чи існує вузол одержувача і очікує він данних.не гарантує, що пакети будуть доставлені в тому ж порядку, в якому були відправлені. Якщо пакети пересилаються між двома мережами, використовуючи різні шляхи, то вони можуть бути доставлені в неправильному порядку. Турбота про коректність в цьому випадку лягає на додатки. Тим не менш, для додатків, яким важлива швидкість передачі, він корисний, навіть незважаючи на те, що окремі пакети будуть втрачені або їх порядок буде неправильним. Майже всі додатки, що використовують відео і голосові потоки, використовують UDP.
Установка TCP з'єднань
Малюнок 1.4. Установка і завершення TCP з'єднання.
з'єднання може бути встановлено тільки між двома вузлами: серверний вузол очікує запити на з'єднання, а клієнтський вузол відправляє такі запити. Після отримання запиту на з'єднання, сервер встановлює з'єднання. Потім обидва вузла можуть посилати і одержувати дані через це з'єднання. У будь-який час будь-який вузол (але зазвичай клієнт) може закрити з'єднання.
Ця взаємодія зображено на малюнку 1.3. На ньому також показані виклики операційної системи, необхідні для управління сокетами.
Порти
TCP і UDP адреса складається з адреси IP машини і номера порту. Порти дозволяють вузлам, що використовують протокол TCP/IP, надавати кілька веб-сервісів одночасно, а клієнтам встановлювати більше одного з'єднання з одним сервером. На сервері порти використовуються для відмінності веб-сервісів між собою. HTTP сервери зазвичай використовують добре відомий порт 80. У будь-яких ситуаціях кожне з'єднання в мережі має різні пари адрес призначення й джерела (IP адреси + номер порту).
. 3 Сокети
Сокети - назва програмного інтерфейсу для забезпечення обміну даними між процесами. Процеси при такому обміні можуть виконуватися як на одній ЕОМ, так і на різних ЕОМ, пов'язаних між собою мережею. Сокет - абстрактний об'єкт, що представляє кінцеву точку з'єднання.
Слід розрізняти клієнтські і серверні сокети. Клієнтські сокети можна порівняти з кінцевими апаратами телефонної мережі, а серверні - з комутаторами. Клієнтський додаток використовує тільки клієнтські сокети, а серверне - як клієнтські, так і серверні сокети.
Інтерфейс сокетів вперше з'явився в BSD Unix. Програмний інтерфейс сокетів описаний в стандарті POSIX.1 і в тій чи іншій мірі підтримується всіма сучасними операційними системами. Сокет означає комбінацію IP-адреси і номера порту, наприклад 10.10.10.10:80.
Кожен процес може створити слухає сокет (серверний сокет) і прив'язати його до якого-небудь порту операційної системи (тим не менш, в UNIX непривілейованих процеси не можуть використовувати порти менше 1024). Слухає процес зазвичай знаходиться в циклі очікування, тобто прокидається при появі нового з'єднання. При цьому зберігається можливість просто перевірити наявність з'єднань на даний момент, встановити тайм-аут для операції і так далі.
Зазвичай клієнт явно під'єднується до слухача, після чого будь-яке читання або запис через його файло...