5. Size Issues (Questioni di dimensione)
5. Size Issues (Questioni di dimensione)
5.1 Context Identifiers (Identificatori di contesto)
Gli identificatori di contesto possono essere lunghi 8 o 16 bit. La loro dimensione è indipendente dalla ricerca del contesto. Un CID a 8 bit con valore 2 e un CID a 16 bit con valore 2 sono equivalenti.
Gli spazi CID per TCP e non TCP sono separati; quindi un CID TCP e un CID non TCP non identificano mai lo stesso contesto, anche se hanno lo stesso valore. Questo raddoppia lo spazio CID disponibile quando si usa lo stesso numero di bit. È sempre possibile stabilire se un'intestazione completa o compressa è destinata a un pacchetto TCP o non TCP, quindi non si crea ambiguità.
L'intestazione compressa non TCP usa un bit nel secondo ottetto dell'intestazione compressa per codificare la dimensione del CID. Un CID a 8 bit consente una dimensione minima dell'intestazione compressa non TCP pari a 2 ottetti: il CID occupa il primo ottetto, mentre il bit di dimensione e il valore generation a 6 bit entrano nel secondo ottetto.
Per TCP, l'unica dimensione CID disponibile è 8 bit, come descritto in [RFC-1144]. 8 bit possono essere sufficienti, perché le connessioni TCP sono sempre punto-punto.
La dimensione CID a 16 bit potrebbe non essere necessaria per link punto-punto; è pensata per link multiaccesso, dove può essere necessario uno spazio CID più ampio per scegliere i CID in modo efficiente.
La difficoltà principale dei link multiaccesso è che più compressori condividono lo spazio CID del decompressore. Il CID non può più essere scelto indipendentemente dal compressore, perché possono verificarsi collisioni. Questo problema può essere risolto facendo in modo che il decompressore disponga di uno spazio CID separato per ogni compressore. Avere spazi CID separati richiede che il decompressore possa identificare quale compressore abbia inviato il pacchetto compresso, magari usando informazioni del livello di collegamento per determinare chi ha inviato il frame. Se tali informazioni non sono disponibili, tutti i compressori su un link multiaccesso possono essere enumerati, automaticamente o in altro modo, e il loro numero può essere fornito come parte del CID. Quest'ultimo approccio richiede uno spazio CID ampio.
5.2 Size of the context (Dimensione del contesto)
La dimensione del contesto dovrebbe essere limitata per semplificare l'implementazione di compressore e decompressore e per imporre un limite alla memoria usata. Limitare la dimensione del contesto impedisce anche attacchi denial-of-service basati sull'invio di pacchetti con un gran numero di intestazioni di estensione.
La dimensione del contesto è determinata dalle sottointestazioni nell'intestazione completa. Vengono memorizzate solo le sottointestazioni fino a una determinata sottointestazione inclusa. Questo è indicato da un bit nel tipo di pacchetto del livello di collegamento, che specifica quanta parte dell'intestazione completa debba essere memorizzata. Se viene omessa una parte finale del pacchetto, quella parte finale non viene memorizzata nel contesto.
Questo bit nel tipo di pacchetto del livello di collegamento, insieme al valore del campo Next Header, determina in modo univoco il formato dell'intestazione compressa. Pertanto, se la parte finale viene omessa, il livello di collegamento perde l'informazione sulla lunghezza di tale parte, che quindi non può contenere padding.
La Sezione 13 contiene informazioni più dettagliate.