Skip to main content

Що таке 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

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.