Программирование компьютерных сетей - 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 (сессия) | TLS | OpenSSL |
L7 (приложение) | HTTP | Разные |
Рекомендации
- В. Ричард Стивенс: Сетевое программирование UNIX, Том 1, Второе издание: Сетевые API: сокеты и XTI, Prentice Hall, 1998 г., ISBN 0-13-490012-X