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