La programmation de réseaux informatiques consiste à écrire des programmes informatiques qui permettent aux processus de communiquer entre eux sur un réseau informatique.
Communications orientées connexion et moins de connexion
Très généralement, la plupart des communications peuvent être divisées en orientées connexion, et moins de connexion. Le fait qu'une communication soit orientée connexion, ou moins connexion, est défini par le protocole de communication, et non par l'interface de programmation d'application (API). Les exemples de protocoles orientés connexion comprennent le protocole de contrôle de transmission (TCP) et l'échange de paquets séquencés (SPX), et les exemples de protocoles sans connexion comprennent le protocole de datagramme utilisateur (UDP), le "raw IP" et l'échange de paquets réseau (IPX).
Clients et serveurs
Pour les communications orientées connexion, les parties de la communication ont généralement des rôles différents. Une partie attend généralement les connexions entrantes ; cette partie est généralement appelée "serveur". Une autre partie est celle qui initie la connexion ; cette partie est généralement appelée "client".
Pour les communications sans connexion, une partie ("serveur") attend généralement un paquet entrant, et une autre partie ("client") est généralement comprise comme celle qui envoie un paquet non sollicité au "serveur".
Protocoles et API populaires
La programmation réseau couvre traditionnellement différentes couches du modèle OSI/ISO (la plupart de la programmation au niveau des applications appartient aux L4 et plus). Le tableau ci-dessous contient quelques exemples de protocoles populaires appartenant à différentes couches OSI/ISO, ainsi que des API populaires pour ces protocoles.
[COUCHE OSI/ISO] / [PROTOCOLE] / [API]
L3(Réseau) / IP / Raw Socket
L4 (transport) / TCP, UDP, SCTP / Berkeley Sockets
L5 (session) / TLS / Open SSL
L7 (application) / HTTP / Divers
.