Программирование компьютерной сети включает в себя написание компьютерных программ, которые позволяют процессам взаимодействовать друг с другом через компьютерную сеть . [1]
Связь с установлением соединения и без установления соединения
В целом, большинство коммуникаций можно разделить на с установлением соединения и без установления соединения . Является ли связь ориентированной на соединение или без установления соединения, определяется протоколом связи , а не интерфейсом прикладного программирования (API) . Примеры протоколов с установлением соединения включают протокол управления передачей (TCP) и последовательный обмен пакетами (SPX) , а примеры протоколов без установления соединения включают протокол дейтаграмм пользователя (UDP) , «необработанный IP» и межсетевой обмен пакетами (IPX) .
Клиенты и серверы
Для связи с установлением соединения стороны связи обычно имеют разные роли. Одна сторона обычно ожидает входящих соединений; эту сторону обычно называют « сервером ». Другая сторона - это та, которая инициирует соединение; эту сторону обычно называют « клиентом ».
Для связи без установления соединения одна сторона («сервер») обычно ожидает входящего пакета, а другая сторона («клиент») обычно понимается как та, которая отправляет незапрошенный пакет на «сервер».
Популярные протоколы и API
Сетевое программирование традиционно охватывает разные уровни модели OSI / ISO (большая часть программирования на уровне приложений относится к L4 и выше). В таблице ниже приведены некоторые примеры популярных протоколов, принадлежащих к разным уровням OSI / ISO, и популярные API для них.
Уровень OSI / ISO | Протокол | API |
---|---|---|
L3 (сеть) | IP | Сырая розетка |
L4 (транспорт) | TCP , UDP , SCTP | Розетки Беркли |
L5 (сессия) | TLS | OpenSSL |
L7 (приложение) | HTTP | Разные |
Смотрите также
Рекомендации
- У. Ричард Стивенс: Сетевое программирование UNIX , Том 1, второе издание: Сетевые API: сокеты и XTI, Prentice Hall, 1998, ISBN 0-13-490012-X
- ^ «Глава 12 - Сетевое программирование». COMP1406 (PDF) . 2017. Архивировано из оригинального (PDF) 2020-03-05.
Сетевое программирование включает в себя написание программ, которые взаимодействуют с другими программами по компьютерной сети.