Le primitive del livello di trasporto devono consentire di aprire, usare e chiudere una connessione. Le applicazioni devono solo richiamare le primitive del livello di trasporto: non si devono preoccupare di problemi come l’invio di riscontri o la ritrasmissione dei pacchetti.
Le primitive essenziali sono Listen, Connect, Send, Receive e Disconnect.
Le primitive Listen e Connect permettono di stabilire una connessione tra due applicazioni, un server e un client di un servizio client/server. Listen viene usata dal server per attendere richieste di connessioni (il server rimane bloccato); Connect viene usata dal client per richiedere una connessione.
Dopo aver stabilito la connessione client e server possono scambiarsi dati usando le primitive Send e Receive; la Receive blocca il programma finché l’altra applicazione non invia dati con la Send.
Per chiudere la connessione si usa la primitiva Disconnect che può essere asimmetrica (basta che una sola delle due applicazioni usi Disconnect per chiudere) o simmetrica (ogni direzione deve essere chiusa separatamente).