Ingen av standardramningsmetoderna vid datalänkskiktet stöder verkligen * godtyckliga * storlekar. Alla förlitar sig på avgränsare eller längdfält för att definiera gränserna för en ram. Även om vissa kan möjliggöra mycket stora tecken (begränsas endast av den maximala ramstorleken), stöder de inte tecken av verkligt obegränsad storlek.
Här är varför:
* karaktärsantal: Denna metod anger antalet tecken i en ram. Även om det kan rymma ett brett utbud av karaktärstorlekar (beroende på antalet bitar som används för räkningen), är det fortfarande begränsat av det maximala värdet som representeras av räknaren.
* karaktärstoppning: Den här tekniken sätter in special Escape -karaktärer innan karaktärer som kan förväxlas med ramavgränsare. Återigen begränsas storleken på karaktären implicit av den maximala ramstorleken, inte av något inneboende drag i karaktärstoppning.
* bitstoppning: Denna metod sätter in extra bitar i dataströmmen för att förhindra långa sekvenser av 0s eller 1s, som används i vissa protokoll för att synkronisera sändaren och mottagaren. Det definierar inte direkt storleken på "karaktärerna" och anses vanligtvis inte vara en inramningsmetod själv.
* byte count: Liknar karaktärsantal, men fungerar på byte. Detta begränsas av storleken på räknaren.
* flaggbyte: Använder specialflaggbyte (t.ex. 0x7E i HDLC) för att markera början och slutet av en ram. Denna metod begränsar inte i sig teckenstorlek, men karaktärsstorleken är fortfarande begränsad av den maximala ramstorleken som införts av det fysiska skiktet eller protokollet.
Sammanfattningsvis, medan * antalet * av tecken kan variera inom begränsningarna för den maximala ramstorleken, är storleken på varje enskild karaktär * inte * godtycklig. Det är vanligtvis fixerat (t.ex. 8-bitars byte) och bestäms implicit av det underliggande fysiska skiktet och protokollspecifikationerna.