Redes X.25 e "Frame Relay"

Março de 1998 - Setembro de 2002
André Moreira (andre@dei.isep.ipp.pt)
Professor Adjunto do Departamento de Engenharia Informática do ISEP

Redes X.25

O standard X.25 surgiu em 1976 e dominou claramente as comunicações WAN durante muitos anos. As redes X.25 usam a técnica de comutação de pacotes com circuitos virtuais, definem 3 níveis: “Physical Level”, “Link Access Level” e “Packet Level”.

Packet Level
Link Access Level
Physical Level

O nível físico especifica uma interface DTE/DCE idêntica à das redes X.21 (Redes de comutação de circuitos). Esta interface funciona em modo sincrono com um total de 7 ligações electricas e conectores de 15 pinos. As taxas de transmissão suportadas podem ser consideradas bastante baixas para os requesitos actuais, estando limitadas a um máximo de 64 Kbps.

O nível de ligação lógica ("Link Access Level") do standard X.25 usa o LAP-B ("Link Access Protocol - Balanced"), trata-se de uma variante do HDLC em modo assíncrono balanceado (ABM). Proporcionando controlo de fluxo e erros entre nós através do protocolo de janela deslizante.

O nível de pacote ("Packet Level") implementa outros mecanismos de controlo de fluxo e erros, semelhantes aos da camada inferior, mas que podem agora funcionar em dois modos: entre nós intermédios ou entre nós finais. Apesar de os níveis inferiores corresponderem razoavelmente bem aos dois níveis inferiores do MR-OSI, o nível de pacote das redes X.25 não corresponde ao nível de rede do mesmo modelo.

O nível de pacote ("Packet Level") define os serviços de circuitos virtuais. São usados dois tipos de circuito virtual:

  • Temporários: “virtual call” ou “switched virtual circuit” (SVC), são estabelecidos pelos nós e quando já não são necessários são desactivados.
  • Permanentes: “permanent virtual circuit” (PVC), são previamente estabelecidos durante a inicialização da rede. Estão sempre disponíveis sem a necessidade de estabelecimento, contudo são fixos entre dois nós, não podendo ser alterados.

Ligações Lógicas

Cada nó pode estabelecer circuitos virtuais (ligações lógicas) com vários outros nós. Existe uma única interface com o DCE, mas é multiplexada em várias ligações lógicas, cada ligação lógica é identificada por 12 bits (número de circuito virtual), dos 12 bits, quatro identificam o grupo de ligação lógica “Logical Channel Group Number” (LCGN) que pode ter valores de 0 a 15. Os restantes 8 bits identificam a ligação dentro do grupo “Logical Channel Number” (LCN), que pode ter valores de 0 a 255.

A combinação LCGN/LCN permite um total de 4096 canais lógicos por cada ligação física. A ligação lógica número zero é reservada para reinicializações e diagnostico. Quando a ligação física não é multiplexada, apenas existe uma ligação lógica que terá o identificador 1.

Existem quatro categorias de ligações lógicas de acordo com a gama de canal lógico que usam:

  • a gama mais baixa (desde 1) destina-se a circuitos virtuais permanentes
  • a gama seguinte destina-se a ser usada pelos DCE quando recebem um pedido de estabelecimento de ligação virtual. Quando o DCE recebe o pedido, atribui-lhe um número livre desta gama e coloca-o no pacote “Call Indicator” que é enviado ao DTE.
  • a gama mais alta (até 4095) é usada pelos DTE para emitir um pedido de ligação virtual, o DTE atribui a cada pacote “Call Request” um número desta gama que se encontre livre.

Ao longo de rede X.25, um circuito virtual usa diversos canais para ligação entre os diversos nós:

Na figura estão representadas várias ligações lógicas com os respectivos canais, só com estes dados nada se pode dizer relativamente aos circuitos virtuais que estão estabelecidos. Os números de canal lógico apenas dizem respeito a um dado nó e não se mantêm ao longo de todo o circuito. Em cada nó nunca podem existir dois números de canal lógico iguais.

Suponha-se o seguinte estabelecimento de circuito virtual através de uma rede de nós intermédios X.25 tal como apresentado na figura:

  1. O nó B envia um pacote “Call Request” usando o canal 4032 e como endereço de destino a estação D.
  2. O DCE do comutador 1 recebe o pacote e usa o canal 300 para o enviar ao seu DTE.
  3. O comutador 1 recebe o pacote “Call Indicator” (do seu DCE) no canal 300 e envia ao DCE do comutador 2 um pacote “Call Request”, usando o canal 3000 (da sua gama livre).
  4. O DCE do comutador 2 recebe o pedido e usa o canal 390.
  5. O comutador 2 recebe o pacote “Call Indicator”, no canal 390 e envia ao DCE do nó D o pacote “Call Request”, usando o canal 3500 (da sua gama livre).
  6. O DCE do nó D recebe o pacote e usa o canal 300.
  7. O nó D aceita o “Call Indicator” e envia ao seu DCE o pacote “Call Accepted” pelo mesmo canal (300).
  8. O DCE do nó D envia ao comutador 2 o pacote de aceitação usando o canal 3500.
  9. O comutador 2 retransmite usando o canal 390.
  10. O DCE do comutador 2 envia pelo canal 3000 ao comutador 1.
  11. O comutador 1 retransmite usando o canal 300.
  12. O DCE do comutador 1 envia usando o canal 4032.
  13. O nó A recebe o pacote “Call Accepted” pelo mesmo canal por onde enviou o pedido (4032).

Como se pode observar os DCE assumem o importante papel de associar os canais usados do lado do seu DTE com os canais usados na rede pelos outros DCE.

Pacotes X.25

Existem dois tipos básicos de pacote X.25: de dados e de controlo. O terceiro octeto do pacote X.25 define o seu tipo:

O DTE efectua o encapsulamento dos pacotes X.25 em tramas LAP-B (um pacote por trama) e envia-as ao seu DCE. O DCE remove a informação de nível 2 (LAP-B) e encapsula os pacotes X.25 de acordo com o protocolo de rede que está a ser usado. Por outras palavras o LAP-B apenas é usado para comunicação DTE-DCE.

Este procedimento garante a independência do DTE relativamente à rede: o acesso DTE-DCE é uniforme (é sempre usado o LAP-B), por outro lado o DCE terá de ser do tipo apropriado ao protocolo usado na rede.

Controlo de Fluxo e Erros

O controlo de fluxo dos pacotes X.25 é muito idêntico ao do seu nível de ligação lógica (HDLC). É utilizado um protocolo de janela deslizante que se baseia nos números de sequência incluídos nos pacotes de dados. Tal como no HDLC o número de sequência de recepção transporta o número do pacote esperado a seguir (“piggybacking”). Quando não há pacotes de dados disponíveis para transportar esta informação, são usados pacotes de controlo “Receiver Ready” (RR) e “Receiver Not Ready” (RNR) de um modo totalmente idêntico ao HDLC.

O mecanismo de controlo de fluxo e erros pode funcionar em dois modos:

  • “local” - neste modo o controlo é realizado entre o DTE e um dos DCE envolvidos (local ou remoto), o bit D dos pacotes tem então o valor 0.
  • “fim-a-fim” - neste modo o controlo é realizado entre os dois DTE envolvidos, neste caso o bit D terá o valor 1.

Sequências de Pacotes

O X.25 permite o envio de sequências de pacotes, que permanecem associados uns aos outros. Esta característica é vantajosa quando os tamanhos máximos de trama variam ao longo da rede: com este tipo de pacotes, a rede pode efectuar a sua junção ou divisão para que se adaptem à dimensão máxima permitida.

São definidos dois tipos de pacotes:

  • Pacotes A: Têm o bit M com o valor 1 e o bit D com o valor 0, além disso têm o tamanho máximo permitido.
  • Pacotes B: Todos os outros tipos de pacote.

Uma sequência de pacotes é constituída por vários pacotes A, e no final um pacote B. Quando o pacote B chega ao nó destinatário será analisado:

  • se D=1, será enviado um ACK “ponto-a-ponto” que valida a sequência toda.
  • se o pacote B tem M=0 então a sequência terminou, se M=1 significa que continua.

“Fast Select”

Quando se opta por uma dada técnica, rapidamente se notam os seus inconvenientes e são feitas tentativas para os atenuar. O maior problema dos circuitos virtuais é a existência de um atraso inicial devido ao estabelecimento do circuito, quando um nó pretende apenas enviar uma pequena quantidade de dados a outro nó e receber uma resposta igualmente pequena este atraso torna-se muito pesado.

Foram por isso incluídos dois mecanismos: serviço de “datagramas” e “fast select”.

O serviço de “datagramas” foi mais tarde abandonado. O mecanismo “fast select” usa os pacotes “Call Request” e “Call Indication” para transportar os dados, normalmente este tipo de pacote apenas pode transportar 16 bytes, mas nesta situação são permitidos 128 bytes.

Este tipo de pedido pode ser feito em dois modos:

  • “restricted”: neste caso o nó de destino deve responder com um pacote “Clear Request” contendo também um máximo de 128 bytes (é estabelecido um circuito virtual que é imediatamente destruído).
  • “unrestricted”: neste caso estabelece-se um circuito virtual normal.

"Frame Relay"

A tecnologia "Frame Relay" não é mais do que uma adaptação das redes X.25 à realidade actual. As exigencias em termos de taxa de trasmissão são claramente superiores e adaptaveis às necessidades, o "Frame Relay" disponibiliza taxas de transmissão variáveis, com valores múltiplos de 64 Kbps.

Tal como nas redes X.25 é utilizada uma variante do protocolo HDLC, o novo protocolo LAP-F ("Link Access Protocol/Procedures - Frame-Relay"), que assegura a definição de circuitos virtuais. Assim. ao contrário do LAP-B e HDLC, o LAP-F, não implementa as funções de controlo de fluxo e erros, em seu lugar implementa circuitos virtuais ("Virtual Link"), através do campo o DLCI ("Data Link Connection Identifier") que substitui os habituais números de sequência do controlo de fluxo/erros.

O controlo de erros e fluxo deixa assim de existir para os dados, ficando a cargo dos utilizadores (protocolos de nível superior), esta evolução torna-se possível graças a um aumento da qualidade das linhas de transmissão, com consequente redução das taxas de erros. Por outro lado estas simplificações tornaram as redes "Frame-Relay" muito mais eficiêntes do que as suas antecessoras X.25.

Para efeitos de controlo, é usado um protocolo separado, o LAP-D. O LAP-D assemelha-se mais ao HDLC "normal", existindo por isso controlo de erros e fluxo. Este protocolo é usado para todas as operações relacionadas com o estabelecimento e terminação das ligações virtuais, inicialização de nós, etc.

No momento de estabelecimento de um circuito virtual numa rede "Frame-Relay" é negociada o valor mínimo de débito de dados pretendido, este valor negociado é designado por CIR ("Commited Information Rate") em bps, trata-se de uma negociação da qualidade de serviço (QoS), embora elementar porque apenas considera um parâmetro. Embora seja permitido ultrapassar o CIR durante periodos curtos, os pacotes que o fazem são assinalados, sendo activado o bit DE ("Discart Eligibility"), no cabeçalho, quando o pacote passa na interface da rede.

Os dados que circulam numa rede "Frame-Relay" (LAP-F) não estão protegidos por mecanismos de controlo de fluxo e erros, os protocolos de nível superior (rede) deverão encarregar-se dessa tarefa, contudo as redes "Frame-Relay" implementa controlo de congestão básico. Quando os "buffers" de um nó intermédio ficam "cheios" e alguns pacotes têm de ser eliminados, o nó elimina primeiro as pacotes que transgrediram o seu CIR (bit DE activo). Além do controlo do CIR, se o débito ultrapassar determinados limites máximos, os pacotes podem ser eliminados logo na interface.