Framing e sincronizzazione
Per trasportare i bit il data link layer utilizza i servizi dello strato fisico
- lo strato fisico non può garantire il trasferimento privo di errori, che dovranno essere gestiti dal DLL
Il DLL organizza i bit in frame ed effettua i controlli per ogni frame
- il ricevente deve poter identificare il frame
- si devono adottare regole per delimitarlo e poterne identificare i limiti in ricezione
- tecniche
- conteggio dei caratteri
- byte di flag, byte stuffing
- bit(s) di flag di inizio e fine, bit stuffing
Conteggio dei caratteri
- un campo dell’intestazione indica il numero di caratteri nel pacchetto
- se si perde il sincronismo non si riesce a trovare l’inizio di un pacchetto successivo
Caratteri di inizio e fine
- i pacchetti sono iniziati dai caratteri ASCII DLE STX (Data Link Escape 0x10 - Start of TeXt 0x02)
- terminati da DLE ETX (End of TeXt 0x03)
- i dati nel pacchetto non possono contenere queste due sequenze
- ci si può sincronizzare nuovamente cercando la sequenza DLE STX
- in trasmissione si duplica ogni DLE nei dati che poi si elimina in ricezione
- un STX o ETX preceduto da due DLE è un dato del pacchetto
Byte delimitatore
- i pacchetti sono iniziati e terminati con una sequenza speciale di bit detta delimitatore o flag-byte
- per evitare che il delimitatore possa trovarsi all’interno del pacchetto ci sono 2 tecniche
- riempimento di caratteri (byte stuffing)
- riempimento di bit (bit stuffing)
Byte stuffing
- consiste nell’inserimento di 1 byte (ESC) addizionale ogni volta che nei dati compare il carattere delimitatore o il carattere ESC