Що таке socket?
Socket (сокет) - це кінцева точка мережевого з'єднання, через яку застосунок надсилає і отримує дані по мережі.
Простіше і доступно: socket - це зв'язка адреси і порту, через яку програма спілкується по мережі.
Що саме таке socket
На практиці socket однозначно визначається набором:
IP-адреса + порт + протокол (TCP або UDP)
Приклад:
192.168.1.10 : 443 / TCP
Це означає:
- пристрій з IP
192.168.1.10 - застосунок, що слухає порт
443 - використання протоколу TCP
Навіщо потрібні сокети
Сокети потрібні, щоб:
- застосунки могли обмінюватися даними по мережі
- операційна система розуміла:
- якому процесу передати отримані дані
- підтримувати кілька одночасних з'єднань
Без сокетів:
- ОС не змогла б пов'язати мережу і застосунки
Як сокети використовуються у з'єднанні
TCP
У TCP з'єднання визначається парою сокетів:
- сокет клієнта
- сокет сервера
Повне TCP-з'єднання:
(IP клієнта, порт клієнта) ↔ (IP сервера, порт сервера)
UDP
В UDP:
- немає постійного з'єднання
- сокет просто:
- приймає
- надсилає датаграми
Типи сокетів (на базовому рівні)
- TCP socket - надійне з'єднання, потік даних
- UDP socket - передача повідомлень без гарантій
Що важливо пам'ятати для співбесіди
- socket - це не порт сам по собі
- socket - це інтерфейс між застосунком і транспортним рівнем
- один порт може обслуговувати багато сокетів (різні клієнти)
- сокети існують на стороні ОС і застосунків
Зв'язок з рівнями OSI
- прикладний рівень - використовує сокети
- транспортний рівень - реалізує сокети (TCP/UDP)
- мережевий рівень - доставляє пакети
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.