Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Чи можуть кілька застосунків використовувати один порт?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**В один і той самий момент часу один порт + один протокол (TCP або UDP) може бути зайнятий лише одним застосунком.** Це потрібно, щоб операційна система однозначно знала, якому процесу передавати вхідні дані. **Ключове:** сервер, що слухає порт, і безліч клієнтів, що до нього підключаються, - це не кілька застосунків на одному порту, а одне застосування з безліччю з'єднань.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## Основне правило **В один і той самий момент часу один порт + один протокол (TCP або UDP) може бути зайнятий лише одним застосунком.** Це потрібно, щоб операційна система: - однозначно знала - **якому процесу передавати вхідні дані** --- ## Як це виглядає на практиці ### TCP (найчастіший випадок) - **Один сервер**: - слухає **один порт** (наприклад, 80 або 443) - **Багато клієнтів**: - підключаються до цього порту - кожен клієнт використовує **свій тимчасовий (ephemeral) порт** Важливо: - сервер - одне застосування - порт - один - з'єднань - багато Це **не кілька застосунків**, а **одне застосування з безліччю з'єднань**. --- ## Чому два різні застосунки не можуть просто ділити порт Якщо б: - два різні застосунки - слухали один і той самий TCP-порт ОС: - не змогла б визначити - **якому застосунку віддати вхідний сегмент** Тому ОС **забороняє** це типово. --- ## Винятки і нюанси ### 1. **UDP + спеціальні налаштування** В UDP можливо: - дозволити кільком застосункам - слухати один порт (через спеціальні опції сокетів) Але: - це рідкісний і специфічний випадок - використовується в особливих сценаріях (наприклад, multicast) --- ### 2. **Різні протоколи** TCP і UDP - різні простори портів. Тому: - один застосунок може слухати **TCP 53** - інший - **UDP 53** І це **нормально**. --- ### 3. **Різні IP-адреси** Якщо у сервера: - кілька IP-адрес То: - різні застосунки можуть слухати - один і той самий порт - але на **різних IP** Приклад: ``` 192.168.1.10:80 → застосунок A 192.168.1.20:80 → застосунок B ``` --- ## Ключова ідея ОС розрізняє з'єднання за: ``` IP + порт + протокол ``` А для TCP-з'єднань - за повною парою: ``` (IP клієнта, порт клієнта) ↔ (IP сервера, порт сервера) ```Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.