Sebbene inizialmente i software di rete vennero sviluppati solo secondariamente all'hardware, quasi a considerarli una semplice appendice, oggi questi hanno raggiunto un alto livello di specializzazione e di strutturazione.
Data la complessità dei progetti di rete, l'organizzazione del software di
rete avviene attraverso una serie di livelli (o layers) ciascuno dei
quali:
- svolge compiti ben definiti;
- interagisce con i due livelli adiacenti fornendo certi servizi al livello
immediatamente superiore (nascondendo i dettagli di come ha realizzato quei
servizi) e utilizzando i servizi del livello immediatamente inferiore. L'insieme
dei servizi offerti da un livello e delle procedure che li governano è chiamato
interfaccia;
- comprende uno o più protocolli, ovvero una serie di regole che governano il
formato e il significato dei blocchi d'informazione (frames o pacchetti) che
vengono scambiati fra entità dello stesso livello (peer entity) su macchine
diverse. Le regole e le convenzioni che governano la conversazione sono dette
collettivamente "protocollo di livello n".
La struttura protocollare riguarda il modello di riferimento che viene impiegato per realizzare un modo di trasferimento, in particolare descrive la stratificazione delle funzioni di comunicazione.

Come si evince dalla figura, quando due nodi comunicano fra di loro (Host 1 e Host 2), ogni livello su ciascun nodo scambia informazioni sia con i livelli adiacenti che con il livello paritetico dell’altro nodo (anche se non c'è trasferimento diretto dal livello n di host 1 al livello n di host 2). Il trasferimento di un pacchetto da un nodo al livello paritetico di un altro nodo si effettua attraverso i seguenti passi:
L'insieme dei livelli e dei relativi protocolli definisce un'architettura di rete. Da notare che tra reti diverse possono essere diversi anche il numero di livelli, i loro nomi, nonché il loro contenuto e le loro funzioni. Nella stessa rete, invece, i vari host possono avere implementazioni diverse in termini di interfacce fra i livelli, ma conformi in termini di livelli e protocolli.
Un'architettura di rete, infine, può essere
- proprietaria, se è basata su scelte arbitrarie ed indipendenti del
costruttore (le specifiche non sono pubbliche);
- standard de facto, le specifiche sono di pubblico dominio (ad esempio
l'Internet Protocol Suite);
- standard de iure, se è basata su specifiche pubbliche approvate da enti
internazionali che si occupano di standardizzazione (ad esempio l'IEEE 802 e
l'OSI).
Funzionamento del software di rete. La comunicazione avviene con una modalità che, per grandi linee, è uguale in tutte le architetture di rete:
1) il programma applicativo (livello 3) vuole mandare il messaggio M alla sua
peer entity;
2) il livello 4 consegna M al livello 3;
3) il livello 3 aggiunge il suo header in testa al messaggio. L'header contiene
informazioni di controllo come numero di sequenza del messaggio, dimensione, priorità;
4) il livello 3 consegna il risultato al livello 2;
5) il livello 2 può trovarsi nella necessità di frammentare i dati, cosa che
fa aggiungendo il suo header a ciascun messaggio più piccolo;
6) il livello 2 spedisce ogni messaggio sul canale fisico;
7) nella macchina destinazione i messaggi fanno il percorso inverso, con ogni
livello che toglie il suo header, eventualmente ricompone messaggi frammentati,
quindi passa il resto al livello superiore

Un messaggio viaggia in rete, pertanto, con il corredo di tante intestazioni quanti sono i livelli dell'architettura, ovvero gli stadi attraverso cui il messaggio passa prima di essere effettivamente trasmesso sul canale fisico.

Una volta che il messaggio è giunto a destinazione gli stadi da attraversare sono gli stessi ma in ordine inverso, con l'eliminazione dell'intestazione di un livello se questo passa i suoi dati al livello superiore. In pratica ciascun livello a destinazione riceve esattamente i dati che ha spedito lo stesso livello alla sorgente:

Un aspetto molto importante è l'affidabilità del servizio. Un servizio affidabile non incorre mai nell'errore di perdere i dati, assicurandosi che i dati spediti siano stati consegnati al destinatario. Ciò richiede, generalmente, che il ricevente invii una conferma (acknowledgement) per ogni messaggio o pacchetto ricevuto. Alcuni servizi possono non essere affidabili (non danno la certezza della ricezione a valle) ma, in tal caso, basta che di ciò si preoccupi almeno uno dei livelli superiori.
L' OSI (Open System Interconnection), emesso dalla ISO (International Standard Organization), è un modello di riferimento nel senso che definisce numero, relazioni e caratteristiche funzionali dei livelli ma non definisce in che modo queste funzioni sono implementate, ovvero quali sono i protocolli effettivi che si utilizzano (che invece, se definiti livello per livello, danno luogo ad una precisa architettura di rete). Il modello OSI fornisce le specifiche generali del software e dell'hardware della rete, mettendo a disposizione uno standard per la connessione di sistemi aperti, ed inoltre rappresenta uno standard rispetto a cui confrontare le varie architetture di rete.
Il modello OSI consiste di sette livelli:
| Applicazione (Application) | Livelli superiori |
| Presentazione (Presentation) | |
| Sessione (Session) | |
| Trasporto (Transport) | |
| Rete (Network) | Livelli inferiori |
| Collegamento (Data Link) | |
| Fisico (Physical) |
Ogni livello contiene: le entità, che sono gli elementi software ed hardware che operano in quel livello, ed i punti di accesso al servizio (SAP), che rappresentano i punti nei quali ogni livello mette a disposizione i suoi servizi al livello direttamente superiore (nel sistema telefonico, ad esempio, un SAP è la presa telefonica).
Nel modello OSI sono previsti due tipi di sistemi: finali (oggi chiamati host) che hanno il compito di eseguire le applicazioni e realizzare tutti i livelli dell'architettura, intermedi (oggi chiamati router o gateway) che hanno il compito di instradare i messaggi in rete realizzando solo i primi tre livelli della pila OSI.
I servizi dei livelli OSI sono standardizzati secondo due modalità: con conferma (confirmed), in cui il livello che riceve qualcosa, conferma l'avvenuta ricezione; senza conferma (unconfirmed), in cui il livello che riceve qualcosa non invia alcuna conferma dell'avvenuta ricezione.Anche i protocolli possono essere di due tipi:
Negli ultimi trent'anni sono state realizzate numerose architetture proprietarie in alternativa a OSI, ad esempio DECNET, SNA, ecc. L'alternativa più importante è comunque l'architettura TCP/IP, di gran lunga la più diffusa, su cui si basa Internet (ne è lo standard de facto).
In molte reti (ad esempio Internet) i dialoghi tra i calcolatori si basano su un'architettura denominata client-server, che si riferisce non alla sintassi della comunicazione quanto alla specificità dei ruoli che i calcolatori assumono. Il funzionamento è il seguente:

In questo contesto è da rimarcare l'importanza delle cosiddette porte di comunicazione che riguardano i particolari servizi forniti dal server. Il computer servente appronta per ciascun servizio offerto una porta d'accesso (ciascuna è indicata con un numero standard a seconda del tipo di servizio), ed il calcolatore cliente può accedere a quel servizio solo attraverso quella porta. Il mancato accesso attraverso la giusta porta non permette, dunque, la ricezione delle informazioni desiderate.
Generalmente i server sono implementati come programmi al livello di applicazione. Il termine server si usa, pertanto, per indicare qualsiasi programma che offra un servizio raggiungibile dalla rete; contemporaneamente, un programma in esecuzione diventa client se invia una richiesta ad un server e attende una risposta. Un certo servizio può essere fornito da un'applicazione server, su un sistema in time-sharing, insieme con altri programmi, o da più server in esecuzione sulla medesima macchina o su più macchine (per aumentare l'affidabilità o migliorare le prestazioni).
L'architettura client/server è una naturale estensione del processo di comunicazione fra due applicazioni su una singola macchina e la sua realizzazione non è molto complessa (la realizzazione dei software lato server è comunque più difficoltosa per via della gestione di più richieste simultanee).
Peer to peer. A differenza di quanto avviene nell'architettura statica di client/server, in cui i ruoli e le gerarchie sono ben definite, nel Peer to Peer (P2P) chi inizia la comunicazione inoltrando la richiesta non si trova necessariamente ad un livello gerarchico inferiore al destinatario: tutti i nodi sono paritetici. In altre parole ciascun nodo può assumere di volta in volta, a seconda del contesto della comunicazione, il ruolo di client o di server. L'organizzazione che ne consegue è ovviamente diversa:
tutti possono essere contemporaneamente client e server,
può esistere un server centrale che coordina i client, ma non eroga servizi.