Программирование компьютерных сетей - Computer network programming

Программирование компьютерных сетей включает письмо компьютерные программы что позволяет процессы общаться друг с другом через компьютерная сеть.[1]

Связь с установлением соединения и без установления соединения

В общем, большинство сообщений можно разделить на ориентированный на соединение, и без подключения. Является ли коммуникация ориентированной на соединение или без установления соединения, определяется протокол связи, а не интерфейс прикладного программирования (API). Примеры протоколов с установлением соединения включают: Протокол управления передачей (TCP) и Последовательный обмен пакетами (SPX), и примеры протоколов без установления соединения включают Протокол пользовательских датаграмм (UDP), "необработанный IP" и Межсетевой обмен пакетами (IPX).

Клиенты и серверы

Для связи с установлением соединения стороны связи обычно имеют разные роли. Одна сторона обычно ожидает входящих соединений; эту вечеринку обычно называют "сервер ". Другая сторона - это та, которая инициирует соединение; эту сторону обычно называют".клиент ".

Для связи без установления соединения одна сторона («сервер») обычно ожидает входящего пакета, а другая сторона («клиент») обычно понимается как та, которая отправляет незапрошенный пакет к "серверу".

Популярные протоколы и API

Сетевое программирование традиционно охватывает разные уровни Модель OSI / ISO (большая часть программирования на уровне приложений относится к L4 и выше). В таблице ниже приведены некоторые примеры популярных протоколов, принадлежащих к разным уровням OSI / ISO, и популярные API для них.

Уровень OSI / ISOПротоколAPI
L3 (сеть)IPСырая розетка
L4 (транспорт)TCP, UDP, SCTPРозетки Беркли
L5 (сессия)TLSOpenSSL
L7 (приложение)HTTPРазные

Рекомендации

  • В. Ричард Стивенс: Сетевое программирование UNIX, Том 1, Второе издание: Сетевые API: сокеты и XTI, Prentice Hall, 1998 г., ISBN  0-13-490012-X
  1. ^ «Глава 12 - Сетевое программирование». COMP1406 (PDF). 2017. Архивировано с оригинал (PDF) на 2020-03-05. Сетевое программирование включает в себя написание программ, которые взаимодействуют с другими программами через компьютерную сеть.