Продолжаем разбираться в терминах
Статьи
Из Вики, чтобы было перед глазами: Уровни модели OSI
Модель | |||||
---|---|---|---|---|---|
Уровень (layer) | Тип данных (PDU[15]) | Функции | Примеры | Оборудование | |
Host layers | 7. Прикладной (application) | Данные | Доступ к сетевым службам | HTTP, FTP, POP3, SMTP, WebSocket | Хосты (клиенты сети), |
6. Представления (presentation) | Представление и шифрование данных | ASCII, EBCDIC, JPEG, MIDI | |||
5. Сеансовый (session) | Управление сеансом связи | RPC, PAP, L2TP, gRPC | |||
4. Транспортный (transport) | Сегменты (segment) /Датаграммы (datagram) | Прямая связь между конечными пунктами и надёжность | TCP, UDP, SCTP, Порты | ||
Media[16] layers | 3. Сетевой (network) | Пакеты (packet) | Определение маршрута и логическая адресация | IPv4, IPv6, IPsec, AppleTalk, ICMP | Маршрутизатор, Сетевой шлюз, |
2. Канальный (data link) | Биты (bit)/ Кадры (frame) | Физическая адресация | PPP, IEEE 802.22, Ethernet, DSL, ARP, сетевая карта. | Сетевой мост, Коммутатор, | |
1. Физический (physical) | Биты (bit) | Работа со средой передачи, сигналами и двоичными данными | USB, RJ («витая пара», коаксиальный, оптоволоконный), радиоканал | Концентратор, Повторитель (сетевое оборудование) |
Сокет - это интерфейс отправки и получения данных через определенный порт, а порт - числовое значение, назначенное конкретному процессу или приложению на устройстве.
В то время как сокет работает как интерфейс для отправки и получения данных через определенный порт, порт помогает идентифицировать конкретное приложение или процесс.
Во многих источниках указано, что сокет - это порт + IP-адрес.
Что такое порт в программировании
В компьютерах есть два вида портов — физические и программные.
Физический порт — это разъём на компьютере или в ноутбуке, куда можно подключить флешку, сетевой кабель, принтер, наушники и что угодно ещё. Физический порт обменивается электричеством с чем-то, что в этот порт вставлено. В электричестве закодированы какие-то данные.
Программный порт — это «виртуальный разъём» в программе, через которую она может обмениваться данными с системой и другими программами. У него нет физического устройства, а есть только число от 0 до 65 535 — оно называется адресом порта. Мы будем говорить именно про них.
Что такое сокет и зачем он нужен
Некоторые основные моменты:
- У каждого компьютера в сети есть IP-адрес, даже если это просто локальная сеть.
- IP-адрес — это четыре числа от 0 до 255, разделённые точками, например 77.88.55.88 (это адрес сервера Яндекса).
- С помощью этих адресов компьютеры знают, куда направить свои запросы и ответы.
- Когда один компьютер соединяется с другим, они это делают через сетевой порт. Можно сказать, что порт — это номер соединения.
- Сетевые порты в компьютере нумеруются от 1 до 65535, а компьютер сам следит за тем, как распределяются эти номера.
- С помощью портов компьютер понимает, какие данные предназначены какой программе.
- Некоторые программы и соединения всегда используют один и тот же порт, а другие получают его случайным образом.
Сокет — это виртуальная конструкция из IP-адреса и номера порта. Её придумали для того, чтобы разработчикам было проще писать код, а программы могли передавать данные друг другу даже в пределах одного компьютера.
Сокеты используют для двух вещей:
- для передачи данных по сети;
- и для связи между приложениями.
Но сокет на сервере один, а желающих подключиться к нему — много. Чтобы решить эту проблему, сервер копирует сокеты.
Копирование сокетов и множественные подключения
Когда на сервер поступает запрос на соединение с сокетом, он не устанавливает связь напрямую, а копирует этот сокет и настраивает связь через него. После копирования сервер запоминает, какая копия отвечает за какое соединение, и дальше просто обрабатывает все запросы по очереди. При этом исходный сокет остаётся нетронутым — он не используется для связи напрямую, а служит шаблоном для создания копий.
Если бы сервер так не делал, то с ним могло бы соединиться только одно приложение — первое, которое успело подключиться.
Понятие сокета и порта! :"порт, - это «дверь» через которую программа (операционная система) может управлять данным устройством (считывать данные, заносить их)."
Комментариев нет:
Отправить комментарий