Cosa fa la programmazione di rete?

La programmazione di reti di computer comporta la scrittura di programmi per computer che permettono ai processi di comunicare tra loro attraverso una rete di computer.

Comunicazioni orientate alla connessione e comunicazioni senza connessione

Molto generalmente, la maggior parte delle comunicazioni possono essere divise in orientate alla connessione e meno alla connessione. Se una comunicazione è orientata alla connessione o meno, è definita dal protocollo di comunicazione e non dall'interfaccia di programmazione dell'applicazione (API). Esempi di protocolli orientati alla connessione includono Transmission Control Protocol (TCP) e Sequenced Packet Exchange (SPX), ed esempi di protocolli senza connessione includono User Datagram Protocol (UDP), "raw IP", e Internetwork Packet Exchange (IPX).

Clienti e server

Per le comunicazioni orientate alla connessione, le parti della comunicazione hanno solitamente ruoli diversi. Una parte è di solito in attesa di connessioni in entrata; questa parte è di solito chiamata "server". Un'altra parte è quella che inizia la connessione; questa parte è di solito chiamata "client".

Per le comunicazioni senza connessione, una parte ("server") è di solito in attesa di un pacchetto in arrivo, e un'altra parte ("client") è di solito intesa come quella che invia un pacchetto non richiesto al "server".

Protocolli e API popolari

La programmazione di rete copre tradizionalmente diversi livelli del modello OSI/ISO (la maggior parte della programmazione a livello di applicazione appartiene a L4 e superiori). La tabella qui sotto contiene alcuni esempi di protocolli popolari appartenenti a diversi livelli OSI/ISO, e le API popolari per essi.

[LIVELLO OSI/ISO] / [PROTOCOLLO] / [API]

L3(rete) / IP / Raw Socket

L4 (trasporto) / TCP, UDP, SCTP / Berkeley Sockets

L5 (sessione) / TLS / Open SSL

L7 (applicazione) / HTTP / Varie