A estrutura geral do quadro é a seguinte:
8 BITS 8 BITS 8 BITS N BITS 16BITS 8BITS
---------------------------------------------------
| Flag |Endereço |Controle| Informações| FCS |Flag |
---------------------------------------------------
No nível 2 do X.25 cada quadro é delimitado no início e no fim por um byte, chamado FLAG, cujo valor é 01111110.
O frame possui um mecanismo chamado de Transparência de Transmissão que evita que o receptor interprete erroneamente um fim de quadro, desta forma proporcionando que uma transmissão possa enviar qualquer sequência de bits igual ao FLAG.
A Transparência de Transmissão opera da seguinte forma: o transmissor insere automaticamente um zero após cada cinco 1 consecutivos transmitidos e o receptor deleta um zero após cada cinco 1 consecutivos recebidos, reconstituindo assim o texto originalmente transmitido.
A função de controle de erro exercida pelo N2 do X.25 compreende as seguintes atividades:
Os dois últimos bytes que antecedem o FLAG final de cada quadro são usados para detectar erros na recepção do quadro. Este campo, recebe o nome de FCS (Frame Cheking Sequence). Contém um código polinomial. Os 16 bits do campo FCS são calculados pelo transmissor com uma função do conteúdo do quadro a ser transmitido. O receptor do quadro recalcula estes 16 bits usando a mesma função e compara com o valor do campo FCS no quadro recebido. Se os dois resultarem iguais, o receptor assume que, com uma probabilidade altíssima, o quadro foi recebido corretamente e uma confirmação positiva é enviada ao transmissor. Caso contrário, ele assume que o quadro recebido difere daquele transmitido e descarta o quadro errado. Caso uma confirmação de recebimento para um determinado quadro não chegue dentro de um determinado tempo (temporização), o transmissor inicia a retransmissão a partir do primeiro quadro não confirmado .
Um protocolo de linha deve fazer com que a linha seja utilizada a maior parte do tempo. Porém, a taxa de transmissão deve ser compatível com o número de "buffers" no receptor e com a taxa com a qual estes "buffers" são consumidos pelo nível 3 do X.25 no receptor. Portanto, o controle de fluxo torna-se necessário no N2 do X.25. Este controle é implementado através do mecanismo da janela e de procedimentos que permitem ao receptor parar o fluxo do transmissor até segunda ordem.
A função do N2 do X.25 é entregar ao nível 3 os quadros recebidos na sequência em que foram transmitidos. Considere que o quadro Q1 foi recebido corretamente enquanto que o quadro Q2 foi recebido com erro e descartado. Se o quadro Q3 chegar antes que o Q2 seja retransmitido e chegue corretamente, ele estará fora de sequência e será rejeitado.
Existem vários tipos de quadro que são usados no Nível 2 do X.25, bem como o significado dos seus campos. Existem três tipos de quadros: Informação (I), Supervisor (S) e Não-Numerado (U).
O campo de endereço só pode assumir dois valores: `00000001'B ou '000000ll'B. O seu significado será explicado mais adiante.
O campo do controle identifica o tipo de quadro (I, S, ou U) além de conter outras informações.
-------------------------------------------------------
|Tipo de quadro| 1 | 2 3 4 | 5 | 6 7 8 |
--------------------------------- ---------------------
| I | 0 | N(S) | P/F | N(R) |
-------------------------------------------------------
| S | 1 | 0 | S S | P/F | N(R) |
-------------------------------------------------------
| U | 1 | 1 | M M | P/F | M M M |
-------------------------------------------------------
Campo de Controle dos Quadros
O bit 1 sendo igual a zero indica que se trata de um quadro I. O bit 2 diferencia quadros S de quadros U. Os bits 2, 3 e 4 dos quadros I são usados para numerá-los. Logo, a numeração destes quadros é módulo 8, isto é, varia de zero a 7 e volta a zero novamente. Os bits 6, 7 e 8 tanto dos quadros I quanto dos quadros S são usados para confirmação de recebimento. Ou seja, a recepção de um quadro com N(R)= k indica que o lado que enviou este quadro já recebeu todos os quadros até o de número k-1 e o próximo que espera receber é o quadro de número k. Desta forma vários quadros podem ser reconhecidos de uma só vez. O bit P/F ("Poll/Final") será explicado mais adiante.
Os bits 3 e 4 dos quadros S indicam os diferentes quadros do tipo supervisor do
N2 do X.25.
---------------------------------------------------------------------
Nome do | Bits 3 e 4 do | Significado na Recepção
Quadro |campo de controle |
---------------------------------------------------------------------
RR(Receive | |Ja' foram recebidos todos os quadros
Ready) | 00 |ate' o de número N(R)-1 e o receptor
| |esta' pronto para receber o N(R)
---------------------------------------------------------------------
RNR(Receive| |Ja' foram recebidos todos os quadros
Not Ready) | 10 |ate' o de número N(R)-1 e o receptor
| |não esta'apto a receber mais nenhum
---------------------------------------------------------------------
| |Ja' foram recebidos todos os quadros
REJ(Reject | 01 |ate' o de número N(R)-1 e o receptor
| |deve retransmitir todos os quadros
| |a partir N(R).
---------------------------------------------------------------------
Quadros de Supervisão
O quadro RR é usado para confirmar o recebimento de quadros I quando não há nenhum quadro I para ser transmitido em sentido contrário que possa levar a confirmação de "carona" no seu campo N(R).
O quadro RNR tem a função de controlar o fluxo, ordenando ao transmissor que ele pare de transmitir momentaneamente, devido a problemas de falta de "buffers" no recepetor. Quando a condição que ocasionou o envio do quadro RNR cessar, um quadro RR deve ser enviado, indicando que o receptor está pronto a receber a partir do quadro de número N(R).
O quadro REJ serve para indicar que houve uma falha na sequência de numeração e que devem ser retransmitidos todos os quadros a partir do primeiro quadro cujo número está faltando na sequência. Por exemplo, se o receptor recebe os quadros 1, 2 e 4 nesta ordem ele deve enviar um quadro REJ N(R) = 3. Isto provocará a retransmissão dos quadros 3 e 4. Logo, os quadros que chegam fora de ordem são descartados, o que simplifica o gerenciamento de "buffers".
Os quadros não-numerados são usados para inicializar o enlace
ou desconectá-lo de modo normal ou anormal (devido a uma falha irrecuperável). Estes procedimentos serão explicados mais adiante quando
então ficarão claras as funções dos quadros U.
---------------------------------------------------------------
Nome do quadro Bits Fun&cedel;ão
3 4 6 7 8
---------------------------------------------------------------
SABM(Set Usado para inicializar
Asynchronous 1 1 1 0 0 logicamente o enlace
Balanced Mode
----------------------------------------------------------------
DISC Usado para suspender a
(Disconnect) 0 0 0 1 0 operação do enlace
----------------------------------------------------------------
UA Usado para confirmar o
(Unnumbered 0 0 1 1 0 recebimento de quadros
Acknowledgemen) U
----------------------------------------------------------------
FRMR Usado para indicar uma
(Frame 1 0 0 0 1 condição de erro
Reject) irrecuperável
----------------------------------------------------------------
DM Usado para indicar ao outro
(Disconnected 1 1 0 0 0 lado que o enlace esta'
Mode Response) logicamente desconectado
----------------------------------------------------------------
Quadros não numerados
Os bits 3, 4,6,7 e 8 dos quadros não-numerados especificam o tipo dos quadros U.