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