Per questo motivo una semplice descrizione dell'interfaccia è assolutamente inutile, in quanto il comportamento di quest'ultima e le problematiche da affrontare cambiano radicalmente a seconda dello stile di comunicazione usato. La scelta di questo stile va infatti ad incidere sulla semantica che verrà utilizzata a livello utente per gestire la comunicazione (su come inviare e ricevere i dati) e sul comportamento effettivo delle funzioni utilizzate.
La scelta di uno stile dipende sia dai meccanismi disponibili, sia dal tipo di comunicazione che si vuole effettuare. Ad esempio alcuni stili di comunicazione considerano i dati come una sequenza continua di byte, in quello che viene chiamato un flusso (in inglese stream), mentre altri invece li raggruppano in pacchetti (in inglese datagram) che vengono inviati in blocchi separati.
Un'altro esempio di stile concerne la possibilità che la comunicazione possa o meno perdere dati, possa o meno non rispettare l'ordine in cui essi non sono inviati, o inviare dei pacchetti più volte (come nel caso di TCP e UDP).
Un terzo esempio di stile di comunicazione concerne le modalità in cui essa avviene, in certi casi essa può essere condotta con una connessione diretta con un solo corrispondente, come per una telefonata; altri casi possono prevedere una comunicazione come per lettera, in cui si scrive l'indirizzo su ogni pacchetto, altri ancora una comunicazione broadcast come per la radio, in cui i pacchetti vengono emessi su appositi “canali” dove chiunque si collega possa riceverli.
É chiaro che ciascuno di questi stili comporta una modalità diversa di gestire la comunicazione, ad esempio se è inaffidabile occorrerà essere in grado di gestire la perdita o il rimescolamento dei dati, se è a pacchetti questi dovranno essere opportunamente trattati, ecc.