пятница, 3 февраля 2023 г.

Сокет и порт

Продолжаем разбираться в терминах

Статьи

Из Вики, чтобы было перед глазами: Уровни модели OSI

Модель
Уровень (layer)Тип данных (PDU[15])ФункцииПримерыОборудование
Host
layers
7. Прикладной (application)ДанныеДоступ к сетевым службамHTTPFTPPOP3SMTPWebSocketХосты (клиенты сети),

Межсетевой экран

6. Представления (presentation)Представление и шифрование данныхASCIIEBCDICJPEGMIDI
5. Сеансовый (session)Управление сеансом связиRPCPAPL2TPgRPC
4. Транспортный (transport)Сегменты

(segment) /Датаграммы (datagram)

Прямая связь между конечными пунктами и надёжностьTCPUDPSCTPПорты
Media[16]
layers
3. Сетевой (network)Пакеты (packet)Определение маршрута и логическая адресацияIPv4IPv6IPsecAppleTalkICMPМаршрутизаторСетевой шлюз,

Межсетевой экран

2. Канальный (data link)Биты (bit)/
Кадры (frame)
Физическая адресацияPPPIEEE 802.22EthernetDSLARPсетевая карта.Сетевой мостКоммутатор,

точка доступа

1. Физический (physical)Биты (bit)Работа со средой передачи, сигналами и двоичными даннымиUSBRJ («витая пара», коаксиальный, оптоволоконный), радиоканалКонцентратор,

Повторитель (сетевое оборудование)


Разница между сокетом и портом

Сокет - это интерфейс отправки и получения данных через определенный порт, а порт - числовое значение, назначенное конкретному процессу или приложению на устройстве.

В то время как сокет работает как интерфейс для отправки и получения данных через определенный порт, порт помогает идентифицировать конкретное приложение или процесс.

Во многих источниках указано, что сокет - это порт + IP-адрес.

Что такое порт в программировании

В компьютерах есть два вида портов — физические и программные.

Физический порт — это разъём на компьютере или в ноутбуке, куда можно подключить флешку, сетевой кабель, принтер, наушники и что угодно ещё. Физический порт обменивается электричеством с чем-то, что в этот порт вставлено. В электричестве закодированы какие-то данные.

Программный порт — это «виртуальный разъём» в программе, через которую она может обмениваться данными с системой и другими программами. У него нет физического устройства, а есть только число от 0 до 65 535 — оно называется адресом порта. Мы будем говорить именно про них.

Что такое сокет и зачем он нужен

Некоторые основные моменты:

  • У каждого компьютера в сети есть IP-адрес, даже если это просто локальная сеть.
  • IP-адрес — это четыре числа от 0 до 255, разделённые точками, например 77.88.55.88 (это адрес сервера Яндекса).
  • С помощью этих адресов компьютеры знают, куда направить свои запросы и ответы.
  • Когда один компьютер соединяется с другим, они это делают через сетевой порт. Можно сказать, что порт — это номер соединения.
  • Сетевые порты в компьютере нумеруются от 1 до 65535, а компьютер сам следит за тем, как распределяются эти номера.
  • С помощью портов компьютер понимает, какие данные предназначены какой программе.
  • Некоторые программы и соединения всегда используют один и тот же порт, а другие получают его случайным образом.

Сокет — это виртуальная конструкция из IP-адреса и номера порта. Её придумали для того, чтобы разработчикам было проще писать код, а программы могли передавать данные друг другу даже в пределах одного компьютера.

Сокеты используют для двух вещей:

  • для передачи данных по сети; 
  • и для связи между приложениями.

Но сокет на сервере один, а желающих подключиться к нему — много. Чтобы решить эту проблему, сервер копирует сокеты.

Копирование сокетов и множественные подключения

Когда на сервер поступает запрос на соединение с сокетом, он не устанавливает связь напрямую, а копирует этот сокет и настраивает связь через него. После копирования сервер запоминает, какая копия отвечает за какое соединение, и дальше просто обрабатывает все запросы по очереди. При этом исходный сокет остаётся нетронутым — он не используется для связи напрямую, а служит шаблоном для создания копий.

Если бы сервер так не делал, то с ним могло бы соединиться только одно приложение — первое, которое успело подключиться.


Понятие сокета и порта! :"порт, - это «дверь» через которую программа (операционная система) может управлять данным устройством (считывать данные, заносить их)."

Комментариев нет:

Отправить комментарий