Сокет - одна з найбільш фундаментальних технологій програмування комп'ютерних мереж. Сокети дозволяють мережевим програмним додаткам взаємодіяти з використанням стандартних механізмів, вбудованих в мережеве обладнання та операційні системи.
Хоча це звучить як ще одна особливість розробки програмного забезпечення в Інтернеті, технологія сокетів існувала до появи Інтернету. Багато популярних мережевих програм використовують сокети.
Що Socket Technology може зробити для вашої мережі
Сокет - це одне з'єднання між двома частинами програмного забезпечення (з'єднання точка-точка). Більше двох програм можуть обмінюватися даними з клієнт-серверними або розподіленими системами, використовуючи кілька сокетів. Наприклад, багато веб-переглядачів можуть одночасно взаємодіяти з одним веб-сервером, використовуючи групу сокетів, створених на сервері.
Програмне забезпечення на основі сокетів зазвичай працює на двох окремих комп'ютерах в мережі, але сокети також можна використовувати для локального зв'язку (міжпроцесної взаємодії) на одному комп'ютері. Сокети є двонаправленими, це означає, що будь-яка сторона з'єднання здатна відправляти і отримувати дані.
Іноді програма, яка ініціює зв'язок, називається клієнтом, а інша програма - сервером, але ця термінологія призводить до плутанини в одноранговій мережі і, як правило, її слід уникати.
Socket API і бібліотеки
В Інтернеті існує декілька бібліотек, які реалізують стандартні інтерфейси прикладного програмування (API). Перший основний пакет, бібліотека сокетів Берклі, широко використовується в системах UNIX.
Іншим поширеним API є бібліотека Windows Sockets (WinSock) для операційних систем Microsoft. Порівняно з іншими комп'ютерними технологіями API сокетів є зрілими. WinSock використовується з 1993 року, а сокети Berkeley - з 1982 року.
API сокетів відносно малі і прості. Багато функцій подібні до тих, які використовуються у процедурах введення/виводу файлів, таких як < tt > read () </tt >, < tt > write () </tt > та < tt > close () </tt >, Фактичні виклики функцій для використання залежать від мови програмування та вибраної бібліотеки.
Типи Інтерфейсів Сокетів
Інтерфейси сокетів можна розділити на три категорії:
- Потокові сокети: це найбільш поширений тип. Обидві сторони, що зв'язуються, спочатку встановлюють з'єднання через сокет, після чого будь-які дані, що передаються через це з'єднання, гарантовано надходять в тому ж порядку, в якому вони були відправлені (з використанням моделі програмування, орієнтованої на з'єднання).
- Гнізда дейтаграм: пропонують семантику без з'єднання. У дейтаграмах з'єднання є не явними, а явними, як з потоками. Будь-яка зі сторін відправляє дейтаграми в міру необхідності і очікує відповіді іншої сторони. Повідомлення можуть бути втрачені при передачі або отримані не за порядком; Додаток займається цими проблемами, а не сокетами. Реалізація сокетів датаграм може дати деяким додаткам підвищення продуктивності і додаткову гнучкість порівняно з використанням потокових сокетів.
- Необроблені сокети: обхід вбудованої підтримки бібліотеки для стандартних протоколів, таких як TCP і UDP. Сирі сокети використовуються для розробки користувальницьких низькорівневих протоколів.
Підтримка сокетів у мережевих протоколах
Сучасні мережеві сокети зазвичай використовуються разом з інтернет-протоколами IP, TCP і UDP. Бібліотеки, які реалізують сокети для інтернет-протоколу, використовують TCP для потоків, UDP для дейтаграм та IP для необроблених сокетів.
Для зв'язку через Інтернет бібліотеки IP-сокетів використовують IP-адресу для ідентифікації конкретних комп'ютерів. Багато частин Інтернету працюють зі службами імен, так що користувачі і програмісти сокетів можуть працювати з комп'ютерами за назвою (наприклад, thiscomputer.wireless.lifewire.com) замість адреси (наприклад, 208.185.127.40).
Сокети потоків і дейтаграм також використовують номери портів IP, щоб відрізняти кілька додатків один від одного. Наприклад, веб-браузери в Інтернеті знають, що порт 80 використовується за замовчуванням для зв'язку через сокети з веб-серверами.
