- •Модель osi і набір протоколів Інтернету (Internet.)
- •Мережений рівень керування протоколами іРv4 і іРv6
- •Модель протоколу тср/ір
- •Відмінності оsi і сімейства протоколів тср/ip
- •Огляд протоколів tcp ip
- •Передача udp .Ідентифікація кінцевого споживача.
- •Протокол передачі датаграм користувача udp.
- •Формат udp-повідомлення.
- •Псевдозаголовок користувацьких датаграм
- •Інкапсуляція і розділення на рівні.
- •Мультиплексування та демультиплексування udp-датаграм за допомогою портів.
- •Зарезервовані і вільні номери портів udp.
- •Надійна потокова транспортна служба tcp
- •Встановлення і завершення з’єднання tcp.
- •Параметри тср
- •Розрив з’єднання тср
- •Діаграма станів тср
- •Перегляд пакетів
- •Стан time_wait
- •Порти тср
- •Файли – сокети
- •Номер портів тср і паралельні сервери
- •Розміри буфера і його обмеження
- •Зміни, що відбудуться при переході від iPv4 до iPv6
- •Відправка по udp
- •Інтерфейс сокета
- •Створення сокету
- •Ф-ція Connect
- •Ф-ція Bind
- •Очікування з’єднання listen
- •Отримання з’єднання accept
- •Інша інформація Дескриптор файлу
- •11.1 Понятие Сокета
- •11.4 Именное пространство Файла
- •11.4.1 Понятия Именного пространства Файла
- •11.4.2 Подробности Именного пространства Файла
- •11.5 Именное пространство Internet
Інтерфейс сокета
В основу АРІ мережевих операцій І\О системи UNIX покладено ланцюг сокетів. В даному випадку під сокетом розуміють узагальнену форму механізму доступу до файлів системи UNIX, яка забезпечує кінцеву точку для взаємодії. Як і при отриманні доступу до файлів прикладної програми при необхідності посилають запит ОС на утворення сокета. Системи в свою чергу поврікс невелике ціле число яке потім використовується в прикладній програмі для ідентифікації тільки що створеного сокета.
Створення сокету
Сокети створюються за допомогою ф-ії сокет, як тільки в ній виникає необхідність. Передаються 3 цілочисельних параметри, а повертається 1 ціле число. РЕЗУЛЬТАТ=SOCKET (сімейство,тип,протокол)
Вона повертає нев...льний дескриптор, якщо ф-ція виконана успішно, і – 1 у випадку помилки. Параметр сімейство визначає сімейство протоколів, яке буде використовуватися з сокетом.
Сімейство сокетів:
AF_INET – протокол IPv4
AF_INET6 - IPv6
AF_LOCAL – доменні сокети Unix
AF_ROUTE – маршрутизуючі сокети
AF_KEY – ключовий сокет
Тип – задає тип бажані взаємодії:
1. Надійну потокову службу доставки SOCK_STREAM.
2. Службу доставки дейтаграм, яка не потребує встановлення зєднання з отримувачем SOCK_DGRAM
3. Низькорівневий тип. SOCK_RAW – символьний або нестр сокет, за допомогою якого привілейовані програми можуть отримати доступ до протоколу низького рівня і драйверів мережевих інтерфейсів. Переважно арг прот ф-ція сокет = 0 за винятком символьних сокетів. Не всі порівняння констант сімейство-тип є доступні.
AF_INET |
AF_INET6 |
AF_LOCAL |
AF_ROUTE |
AF_KEY |
Sock_stream |
TCP |
TCP |
Так |
|
Sock_dgram |
UDP |
UDP |
Так |
|
Sock_raw; IPv4 |
IPv6 |
|
так |
так |
Поля таблиці які містять Так відповідають допустимим комбінаціям. Пусте поле, що дане поєднання не підтримується. При успішному виконанні ф-ії => число аналогічне дескриптору файла. Це дескриптор пакета Socket.
Ф-ція Connect
Використовується клієнтом ТСР для встановлення зєднання з сервером ТСР.
Int connect (int sockfd, const struct sockaddr servaddr, socklen_t addrlen);
Повертає 0 у вигляді успішного виконання ф-ції, - 1 у разі помилки.
Sockfd, який повертає денстр сонета.
2 і 3 – це вказівник на стр адресу сокета та її розміри структ зр адресу сокета повинна містити ІР адрес і номер порта сервера. Клієнту немає необхідності викликати ф-цію Bind до виклику ф-ції Connect. При необхідності ядро вибере і динамічно призначить порт ІР адреси відправника.
Ф-ція повертає значення тільки якщо зєднання встановлено або у вигляді помилки. Можливо декілька різних помилок:
1. Якщо клієнт ТСР не отримав відповідь на свій SYNC повертається ETIMEROUT
2. Якщо на елемент SYNC сервер відповів RST то це означає, що ні один процес не знаходиться в очікувані підключення до даного нами порту. Вважається стійкою несправність: клієнту повертається ECONNREFUSED. Є 3 умови:
1. Сегмент SYN приходить для порта лише немає прослуховування сокета.
2. ТСР хоче розірвати існуючого зєднаня
3. ТСР отримує сегмент для неіснуючого зєднання.
4. Якщо сегмент SYN клієнта приходить то отримує ІСМР про недоступність отримувача з якого небудь проміжного маршрутизотора – це рахується випадковим збоєм. Клієнтське ядро зберігає тв про помилку але продовжує відправляти запити з тими самими числовими даними. EHOSTUNREACH, ENETUNREACH