Программирование компьютерных сетей включает в себя написание компьютерных программ , которые позволяют процессам взаимодействовать друг с другом через компьютерную сеть . [1]
В целом, большинство коммуникаций можно разделить на ориентированные на соединение и без установления соединения . Является ли связь ориентированной на соединение или без установления соединения, определяется протоколом связи , а не интерфейсом прикладного программирования (API) . Примеры протоколов, ориентированных на соединение, включают протокол управления передачей (TCP) и последовательный обмен пакетами (SPX) , а примеры протоколов без установления соединения включают протокол пользовательских дейтаграмм (UDP) , «сырой IP» и межсетевой обмен пакетами (IPX) .
Для коммуникаций, ориентированных на соединение, стороны связи обычно имеют разные роли. Одна сторона обычно ожидает входящих соединений; эту сторону обычно называют « сервером ». Другая сторона — это та, которая инициирует соединение; эту сторону обычно называют « клиентом ».
Для связи без установления соединения одна сторона («сервер») обычно ожидает входящего пакета, а под другой стороной («клиент») обычно понимается та, которая отправляет незапрошенный пакет на «сервер».
Сетевое программирование традиционно охватывает различные уровни модели OSI/ISO (большая часть программирования уровня приложений относится к L4 и выше). В таблице ниже приведены примеры популярных протоколов, принадлежащих разным уровням OSI/ISO, а также популярные API для них.
Сетевое программирование включает в себя написание программ, которые взаимодействуют с другими программами через компьютерную сеть.