Il framing è la suddivisione in frame effettuata nella trasmissione sincrona dal livello di data link.
Si potrebbe pensare di delimitare facilmente i frame con un metodo a conteggio di caratteri, specificando in un campo dell’intestazione il numero di caratteri del frame; questo metodo però non è utilizzabile perché, se il campo che contiene il conteggio si rovina durante la trasmissione, non si può più individuare dove comincia il frame successivo; si utilizzano perciò altre tecniche.
Il frame in genere viene delimitato da valori particolari.
Nella trasmissione orientata al byte (il frame mantiene la suddivisione in byte) ogni frame inizia con la sequenza di caratteri ASCII DLE STX (Data Link Escape Start of TeXt) e finisce con la sequenza DLE ETX (Data Link Escape End of TeXt). Se un frame si rovina e la destinazione perde la sincronizzazione basta trovare il successivo DLE STX o DLE ETX. Il carattere DLE però può comparire casualmente dentro al frame quando vengono trasmessi dati binari come programmi oggetto o numeri in virgola mobile; perché questi caratteri non interferiscano viene aggiunto un ulteriore DLE (che viene rimosso a destinazione prima di passare il frame al livello di rete) in modo che solo i DLE singoli vengano interpretati come delimitatori; questa tecnica si chiama character stuffing.
Nella trasmissione orientata al bit (il frame può contenere un numero qualsiasi di bit) ogni frame inizia e finisce con la sequenza 01111110, chiamata flag; questa sequenza può comparire casualmente nei dati, perciò in trasmissione dopo cinque 1 consecutivi viene sempre inserito uno 0 nel flusso di bit, indipendentemente dal fatto che il bit successivo sia 1 o 0, mentre in ricezione bisogna provvedere ad eliminare i bit inseriti, rimuovendo sempre uno 0 dopo cinque 1; questa tecnica è chiamata bit stuffing.
Un’altra tecnica usa le violazioni di codifica del livello fisico. Questo metodo è applicabile quando la codifica sul mezzo fisico contiene delle ridondanze; un valore della codifica non usato per i dati può essere utilizzato per delimitare i frame. Un esempio è dato dalla codifica Manchester.