Вы находитесь на странице: 1из 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Interfaces e Transmisso de dados 6222 Notas sobre transmisso fivel de dados

Verso 2.0

ENIDH - Rui Silva, Abril de 2006 Actualizado em Maro de 2010

Pg 1 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
ndice 1 Introduo .......................................................................................................... 3 2 Generalidades sobre avaliao de desmpenho .............................................. 6 3 O mecanismo StopAndWait ............................................................................. 9 3.1 Funcionamento do StopAndWait .............................................................. 9 3.2 Controlo de fluxo dos dados no StopAndWait....................................... 10 3.3 Funcionamento do StopAndWait com erros .......................................... 10 3.4 Retransmisso implcita e explcita das tramas de dados .................... 11 3.5 Tratamento de duplicados no StopAndWait........................................... 12 3.6 Quantidade mnima de identificadores das tramas no StopAndWait... 13 3.8 Desempenho do StopAndWait ................................................................ 14 3.9 Consideraes finais sobre o StopAndWait .......................................... 18 4 Melhoria do desempenho com tcnica de pipelining. .............................. 21 4.1 O mecanismo Go-Back-N ........................................................................ 23
V2.0

4.1.1 A janela deslizante de transmisso no mecanismo Go-Back-N .23 4.1.2 Funcionamento do Go-Back-N sem erros...................................... 28 4.1.3 Controlo de fluxo dos dados no Go-Back-N. ................................. 29 4.1.4 Funcionamento do Go-Back-N com erros...................................... 29 4.1.5 Relao entre mdulo de numerao M e janela de transmisso K no Go-Back-N............................................................................................... 35 4.1.6 Desempenho do Go-Back-N. ........................................................... 38 4.1.6 Consideraes finais sobre o Go-Back-N. ..................................... 42 4.2.1 A janela deslizante de transmisso e recepo no mecanismo Selective Repeat.............................................................................................. 45 4.2.1 Funcionamento do Selective Repeat sem erros. .......................... 49 4.2.2 Controlo de fluxo dos dados no Selective Repeat. ....................... 50 4.2.3 Funcionamento do Selective Repeat com erros. .......................... 50 4.2.4 Relao entre mdulo de numerao M e janelas de transmisso K no Selective Repeat. ................................................................................... 54 4.2.5 Desempenho do Selective Repeat. ................................................. 56 4.2.6 Consideraes finais sobre o Selective Repeat............................ 58

4.2 O mecanismo Selective Repeat............................................................... 44

4.3 Piggybacking............................................................................................ 60 5 Estabelecimento e terminao de ligaes................................................... 63 5.1 Inicializao da ligao atravs do um protocolo MASTER-SLAVE..... 64 5.2 Inicializao da ligao atravs do um protocolo BALANCEADO........ 65

Pg 2 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
1 Introduo Qualquer canal de comunicaes, est sujeito a imparidads que conduzem a erros na transmisso. Encontrar mecanismos, que detectem e corrijam estes erros de forma automtica, ou seja, sem interveno do utilizador, ainda nos dias de hoje, um assunto prioritrio e bastante debatido na rea de engenharia de redes de comunicaes. O grande desafio est em desenvolver este mecanismo, com a maior eficincia possvel. Se pensarmos, por exemplo, num protocolo em que o receptor responde ao emissor com uma mensagem de confirmao dos dados recebidos por forma a garantir que a integridade dos mesmos, facilmente se percebe que so adicionados tempos de espera ao processo de comunicao que no vo permitir a utilizao de todo o dbito binrio do canal. Existem dois tipos de estratgias para deteco e correco de erros: FEC Forward error correction. Nesta estratgia, recorrem-se a cdigos correctores de erros, como por exemplo o cdigo de Hamming. Aqui no h necessidade de confirmao dos dados pelo receptor, pois a tcnica de codificao dos dados corrige automaticamente eventuais erros. O Overhead adicionado s mensagens por este tipo de codificao relativamente elevado e alguns tipos de erros no conseguem ser corrigidos (nomeadamente erros em rajada, em vrios bit ou perda total dos dados enviados). Este tipo de estratgia aplica-se essencialmente quando o canal de transmisso unidireccional, como o caso de rdio difuso, em que no h possibilidade de transmisso de confirmaes no sentido receptor - emissor. BEC Backward error correction. Nesta estratgia, recorrem-se em primeiro lugar a esquemas de deteco de erros e em segundo lugar a esquemas de realimentao do emissor por parte do receptor por exemplo recorrendo a mensagens que confirmam a recepo dos dados. Os esquemas de deteco de erros podero ir da simples deteco por bit de paridade at implementao de tcnicas robustas de deteco por CRC 1, que recorrem a cdigos polinomiais. O receptor, aps verificar a integridade dos dados recebidos, com um elevado grau de certeza, tem a tarefa de sinalizar o emissor atravs do envio de mensagem para confirmar ou no, a recepo integra dos dados. O emissor, por sua vez, s enviar novos dados aps receber esta confirmao (que pode ser positiva ou negativa caso os dados estejam correctos ou errados respectivamente). Facilmente se deduz, que o emissor ter que reenviar novamente os dados, no caso de receber uma confirmao negativa por parte do receptor.
V2.0

CRC Cyclic Redundancy Check Mtodo de deteco de erros por cdigos ciclicos.

Pg 3 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Os mecanismos capazes de detectar erros, e reenviar automaticamente as tramas de informao perdidas no canal, so denominados ARQ Automatic Repeat Request, e enquadram-se na estratgia BEC Backward error correction. Estes sero o objecto de estudo deste captulo. Neste tipo de mecanismos, como referido, o emissor espera do receptor uma trama especial de confirmao de dados que denominada ACK 2(acknowlege) As tcnicas de retransmisso automtica dos dados ARQ, podem ser aplicadas em diversas camadas do modelo OSI3. Ao nvel nas camadas inferiores Camada de Ligao de dados e Camada de Rede (camada 2 e 3 respectivamente) ou ao nvel das camadas superiores Camada de transporte, como o caso do TCP 4 ou camada de aplicao5. A figura 1.1 ilustra este conceito, para o caso de comunicao entre PC1 e PC2, interligados atravs de dois ns de rede.

Figura 1.1 Funcionamento ARQ nas diversas camadas OSI

Em algumas implementaes comerciais, a mensagem de confirmao poder ter outra denominao, como por exemplo RR Receiver Ready 3 OSI Open Standars for interconnection. Modelo de referncia para comunicao de dados que funciona por camadas normalizado pela International Standards Organization (ISO) 4 TCP Transmit Control Protocol. Servio de transmisso fivel de dados implementado na camada de transporte do modelo TCP/IP 5 Normalmente so empregues na camada de aplicao, quando no se recorre a transmisso fivel na camada de transporte, como por exemplo, quando se utiliza o protocolo UDP (User Datagram Protocol) na camada de transporte.

Pg 4 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Note-se que nas camadas mais baixas (camadas 2 e 3), o protocolo funciona entre computador e n de rede, mas tambm entre os diversos ns de rede, ou seja a confirmao dos dados efectuada entre o n de rede adjacente e computador, bem como entre todos os ns de rede. Nas camadas mais altas (transporte e aplicao), o protocolo funciona extremo a extremo, significando que o emissor espera a mensagem de confirmao directamente do computador de destino. A escolha das camadas onde os mecanismos ARQ so implementados dependem da qualidade do canal ou sistema de transmisso. No caso das ligaes estarem sujeitas a elevadas taxas de erros (BER6), como o caso de ligaes em linhas telefnicas analgicas, ento prefervel que o ARQ funcione entre n de rede e computador, e entre ns de rede (camadas 2 e 3), pois tal acelera a recuperao dos erros ao evitar que a trama errada circule por toda a rede at ao destinatrio, at que este detecte o erro (e solicite ao emissor, o seu reenvio). Hoje em dia, com a boa qualidade das linhas digitais de transmisso que apresentam baixas taxas de erros, torna-se mais favorvel, que os erros sejam detectados apenas no destinatrio (apenas pela camada de transporte ou aplicao no extremo oposto), pois evita as perdas de tempo com a espera de recepo das mensagens de confirmao entre cada um dos ns de rede, bem como processamento adicional entre esses ns de rede e os computadores de destino. A transmisso fivel dos dados, no se limita deteco de erros e retransmisso dos dados, tendo como outras funes assegurar que o emissor no sobrecarrega o receptor, transmitindo uma quantidade de dados superior que este pode suportar. Esta funcionalidade designada controlo de fluxo. Outra funo da transmisso fivel dos dados garantir que o receptor recebe as tramas de dados pela mesma ordem que foram enviadas designada reordenamento. O reordenamento necessrio porque podem existir vrios caminhos entre o emissor e o receptor, podendo algumas tramas serem encaminhadas por caminhos alternativos e chegarem ao receptor fora de ordem. O re-ordenamento implica que todas as tramas de dados sejam numeradas. Por fim, importante garantir que os dados que sejam recebidos mais do que uma vez sejam ignorados (tratamento de duplicados). Os principais objectivos da transmisso fivel dos dados so: 1 Deteco dos erros pelo receptor, recorrendo a tcnicas de paridade ou CRC. 2 Implementao de uma tcnica ARQ, de confirmao positiva ou negativa dos dados e retransmisso automtica em caso de erros. 3 Providenciar controlo de fluxo dos dados, garantindo que o receptor no sobrecarregado com quantidades de dados superiores que este consegue suportar. 4 Providenciar o reordenamento das tramas de dados pelo receptor. Para isto necessrio que as tramas sejam numeradas. 5 Garantir que as tramas recebidas em duplicado sejam ignoradas. Para isto necessrio que as tramas sejam numeradas. As tcnicas ARQ, que sero objecto de estudo nas prximas seces, podem ser subdivididas em diversos mecanismos ou protocolos, que tendo o mesmo objectivo, diferem um pouco na forma como retransmitem os dados em caso de erros. Esto ilustradas na figura 1.2
6

BER Bit Error Rate Taxa de erros de bit. Implica elevada taxa de tramas erradas

Pg 5 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 1.2 Subdiviso das tcnicas ARQ Nas tcnicas ARQ, a correco dos erros resume-se ao reenvio por parte do emissor, de toda a trama de informao que foi perdida. (A trama de informao contm o conjunto dos bits de informao e o cabealho, com informao de controlo). Note-se que bastar um nico bit errado para danificar toda a trama de informao. 2 Generalidades sobre avaliao de desmpenho Antes de entrar propriamente na anlise de cada uma das tcnicas ARQ, introduziremos alguns conceitos utilizados na anlise de desempenho de qualquer sistema de transmisso de dados. O desempenho de um protocolo, consiste em determinar se este ou no capaz de utilizar todo o dbito binrio disponibilizado pela camada fsica e suportado pelo canal de comunicao. Num sistema real, tal nem sempre possvel devido, por exemplo, ao facto da implementao do mecanismo ARQ necessitar de perder algum tempo espera de confirmaes, ou devido aos tempos de propagao no serem nulos, entre outros factores. Definio: Escoamento, Demanda ou Troughput (S). a quantidade de informao til, que transferida entre a origem e o destino, por unidade de tempo (a informao retransmitida no conta). Normalmente medida em tramas ou pacotes de dados por segundo. Com uma simples converso poder ser medida em bit por segundo.

S [bit / s ] =

Ltotal [bit ] t [s ]

(2.2)

Definio: Utilizao ou Eficincia (U): a fraco de tempo em que o canal est ocupado a transmitir informao til (a informao retransmitida no conta). A utilizao obtida pela relao entre o tempo total de durao da transmisso de informao til no canal e o tempo total de durao da transmisso dos dados. Tambm pode ser medida pela relao entre o troughput (em bit/s) e o dbito binrio do canal.

U=

S [bit / s ] rb [bit / s ]
Pg 6 de 67

(2.3)

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Estes conceitos so ilustrados na figura 2.1. Admitamos que se pretendem transmitir 3 tramas de dados numeradas (0 a 2), por um canal de dbito binrio rb. As tramas tm comprimentos variveis L1, L2 e L3, com durao Tx1, Tx2 e Tx3, respectivamente. t, representa o tempo total necessrio para transmitir toda a informao (til e no til) entre o emissor e o receptor.

Figura 2.1 Troughput e utilizao de um sistema Admitindo que as tramas ilustradas contm apenas informao til (sem cabealhos), com comprimento L0 = 9000 bit , L1 = 3000 bit e L2 = 6000 bit. O canal tem um dbito binrio rb = 3000 bit/s e o tempo total para transferir os dados t = 7.5s, ento:

Tx0 =

9000 = 3s 3000

Tx1 =

3000 = 1s 3000

Tx 2 =

6000 = 2s 3000

Clculo do Troughput do sistema: Envia-se um total de: 9000+3000+6000 = 18000 bit em 7.5 segundos ento:

S [bit / s ] =

Ltotal [bit ] 18000 = = 2400 bit/s. t [s ] 7 .5

Ou em tramas por segundo:

S [tramas / s ] =

N Tramas 3 = = 0.4 trama/s 7 .5 t

Clculo da utilizao do sistema O canal s est ocupado com informao til enquanto transmite as tramas 0, 1 e 2.

U=

Tx0 + Tx1 + Tx 2 6s = = 0.8 = 80% t 7 .5 s

Pg 7 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
Ou:
V2.0

U=

S [bit / s ] rb [bit / s ]

2400 = 0.8 = 80% 3000

Conclumos pelo valor da utilizao, que o protocolo exemplificado no consegue tirar partido de todo o dbito binrio disponvel no canal (existem tempos de no ocupao do canal) A figura 2.2, ilustra um sistema cuja utilizao de 100%, e consequentemente o Troughput iguala o dbito binrio. Tal consegue-se eliminando tempos de inactividade na transmisso, de modo a transmitir as tramas contnuamente (imediatamente umas a seguir s outras).

Figura 2.2 Sistema com utilizao de 100%

Neste caso U =

Txo + T 1 + Tx 2 + Tx 3 , com t = Tx0 + Tx1 + Tx2 + Tx3. Ento U = 1. t

Pg 8 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

3 O mecanismo StopAndWait A primeira tcnica ARQ a estudar o mecanismo StopAndWait. No mecanismo StopAndWait, por cada trama de informao enviada, o emissor espera do receptor uma trama especial de confirmao denominada ACK (acknowlege). O emissor s poder enviar nova trama de informao, aps receber a trama ACK, referente trama de informao enviada anteriormente. Quer dizer que o emissor envia uma trama de informao para depois parar de transmitir at receber o ACK correspondente, e de seguida continuar com o envio de nova trama de informao. Este processo continua sucessivamente at se concluir o envio total dos dados. Este funcionamento justifica a denominao Stop and Wait 3.1 Funcionamento do StopAndWait O funcionamento sem erros do StopAndWait, est ilustrado na figura 3.1 e resumese ao envio de tramas de informao, e espera pela recepo do respectivo ACK.

Figura 3.1 Funcionamento do Stop And Wait sem erros Nota: A figura 3.1 representa um diagrama temporal ilustrativo do tipo de mensagens envolvidas num protocolo de comunicao unidireccional entre o emissor e o receptor. Este tipo de representao no detalha os tempos de transmisso e propagao envolvidos, bem como os tempos de processamento das tramas nos computadores ou ns de rede. tambm assumido se nada for dito em contrrio que todas as tramas do mesmo tipo tm o mesmo comprimento. Pela figura 3.1, pode-se deduzir que a eficincia deste protocolo no grande, pois mesmo na ausncia de erros (sem retransmisses) no capaz de enviar continuamente tramas de informao, desperdiando algum tempo, enquanto o emissor fica espera das tramas de confirmao (ACK). Esta eficincia pode ser no entanto melhorada caso os tempos de propagao do canal sejam muito baixos. (Esta anlise ser abordada na seco 2.6)

Pg 9 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
3.2 Controlo de fluxo dos dados no StopAndWait O StopAndWait, providencia um mecanismo implcito de controlo de fluxo dos dados, pois o emissor s transmite nova trama de dados aps recepo do respectivo Ack. Pode-se ento dizer que o receptor concede crdito para que o emissor transmita, com o envio do Ack. Caso o fluxo de dados enviado pelo emissor seja superior capacidade de processamento no receptor, este pode simplesmente atrasar o envio dos Ack, provocando o respectivo atraso na transmisso de tramas pelo emissor, e a consequente reduo de fluxo de dados. 3.3 Funcionamento do StopAndWait com erros Para que este mecanismo seja capaz de funcionar correctamente em caso de erros (caso real), necessrio garantir o seguinte: As tramas tm que ser numeradas (para permitir o reordenamento e evitar a duplicao dos dados, em caso de erros, como veremos adiante). A numerao das tramas enviada no respectivo cabealho (Header), num campo denominado N(S). N de number e S de sender. Com o objectivo de reduzir o overhead, tenta-se utilizar o menor nmero possvel de bits para numerao de tramas, com a consequente reduo do nmero de bits para o efeito, enviados no cabealho. As tramas tm numerao finita, e por isso a numerao repete-se ciclicamente. Definio1: Designa-se por mdulo de numerao: M, a quantidade de identificadores diferentes (nmeros), utilizados para numerar as tramas. M est relacionado com o n de bits utilizados no cabealho k, pela equao 2.1:
V2.0

M = 2l

(3.1)

Pela equao 3.1, conclumos que para disponibilizar uma numerao compreendida entre 0 e 7 (Mdulo M=8 ou 8 identificadores diferentes), so necessrios l = 3 bit adicionais no cabealho. O Emissor tem que guardar em memoria a ltima trama enviada. Esta memria designada buffer de transmisso, e necessria para o reenvio da trama, caso esta no seja recebida pelo receptor. Como referido anteriormente, as tramas so numeradas, para permitir o reordenamento e evitar duplicaes. Os intervenientes na comunicao, tm que guardar em memria, o nmero da ltima trama enviada, bem como o nmero da prxima trama esperada recepo. Esta numerao incrementada recorrendo a contadores e guardada em variveis no emissor e receptor designadas variveis de estado.

Pg 10 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

No emissor, normalmente a varivel de estado utilizada pelo StopAndWait a seguinte: V(S) ou txseq_no : Representa o prximo n de sequncia que o emissor tenciona utilizar. Esta varivel inicializada no incio da comunicao e incrementada trama a trama. No receptor, normalmente a varivel de estado utilizada pelo StopAndWait a seguinte: V(R) ou rxseq_no : Representa o prximo n de sequncia que o receptor espera receber do emissor. (Esta varivel inicializada a zero, no incio. Ao receber uma trama, se o seu nmero de sequncia for igual ao esperado (rxseq_no = txseq_no), ento incrementa rxseq_no de 1. 3.4 Retransmisso implcita e explcita das tramas de dados No caso da existncia de erros de transmisso, a retransmisso das tramas de informao, pode ser efectuada de forma implcita ou explcita. Retransmisso implcita: despoletada pelo expirar de um temporizador de transmisso e ocorre nos casos em que o receptor no recebe o ACK, correspondente do receptor. A no recepo do ACK, pode ocorrer quando a trama de informao se perde e nunca chega ao receptor (este no tem nada para confirmar), ou quando a trama ACK corrompida por erros, ou at quando esta perde no meio de transmisso, nunca chegando de volta ao emissor. Ver figura 3.2a e 3.2b respectivamente. Para garantir a retransmisso implcita: O emissor tem que implementar um temporizador de transmisso, que iniciado aps a transmisso da trama de informao e parado aps a recepo do ACK correspondente. Retransmisso explicita: despoletada quando o emissor recebe uma trama de ACK negativo, denominada NACK. Este trama de confirmao negativa dos dados, enviada pelo receptor, quando este recebe uma trama de informao corrompida. (O receptor capaz de detectar os erros nas trama recebidas atravs de mecanismos de paridade ou CRC). Ver figura 3.2c A retransmisso explcita utilizada para tentar acelerar o processo de retransmisso de uma trama que chega com erros ao receptor. Por sua vez aumenta a eficincia do protocolo. Qualquer mecanismo ARQ obrigado a implementar um mecanismo de retransmisso implcita e pode opcionalmente implementar um mecanismo de retransmisso explcita.

Pg 11 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

a)

b)

c)
Figura 3.2 Funcionamento do Stop And Wait com erros. a) Perda da trama de informao. b) Perda do ack. c) Trama de informao recebida com erros. Na figura 3.2c, verifica-se que ao receber uma confirmao negativa (Nack), o emissor retransmite imediatamente a trama nmero 0. No h necessidade do expirar do temporizador de transmisso. A confirmao negativa impe geralmente um melhor desempenho, comparativamente ao caso em que o receptor no confirme a trama e obrigue o emissor a expirar completamente o temporizador de transmisso, antes de enviar novamente a trama 0. 3.5 Tratamento de duplicados no StopAndWait. Observando com ateno a figura 3.2b, verifica-se que a perda do ACK, conduz novamente recepo da trama nmero 0 (que j tinha sido correctamente recebida e processada no receptor). Ocorre uma duplicao de trama. O receptor ter que ter a capacidade de detectar esta duplicao, e descartar a trama duplicada, caso contrrio conduzir recepo de informao incorrecta. Para que esta deteco de tramas duplicadas seja possvel, necessrio que as tramas sejam numeradas. Desta forma, o receptor ao receber a trama nmero 0 fica espera da trama nmero 1. Caso receba uma trama nmero 0 seguida de outra trama nmero 0, detecta uma duplicao e descarta a ltima trama nmero 0.

Pg 12 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
3.6 Quantidade mnima de identificadores das tramas no StopAndWait. Como j foi referido, as tramas necessitam de ser numeradas, de modo evitar duplicaes recepo. A quantidade de identificadores utilizados (Mdulo), deve ser reduzida ao mnimo para reduzir o overhead na comunicao. A relao entre o mdulo e o nmero de bits necessrios para numerao, dada pela equao 3.1. O cenrio para avaliao da quantidade mnima de identificadores, necessrios obtido na operao com erros e em que a confirmao Ack se perde. Admitamos que no numeramos as tramas de dados ou s disponibilizamos um identificador de trama neste caso, o zero. No caso de no existirem erros, o protocolo funciona correctamente, pois nunca iro existir retransmisso de tramas erradas. Este funcionamento est ilustrado na figura 3.3a. Para o caso de mantermos o mesmo nmero de identificadores, mas na presena de erros, (ver figura 3.3b), na situao em que o Ack se perde, e o emissor reenvia a trama 0, ocorre a duplicao da trama 0. O receptor, continua espera da trama 0 (no existem mais identificadores), e aceita-a como vlida. No capaz de detectar a duplicao. A figura 3.3c, ilustra a mesma situao de perda de Ack, mas agora recorrendo a dois identificadores de trama: zero (I(0)) e um (I(1)). Agora percebe-se claramente que ao receber a trama I(0) em duplicado, o receptor espera a trama I(1). capaz agora de detectar a duplicao e simplesmente descarta a segunda trama I(0).
V2.0

Figura 3.3 Stop And Wait. a)Com um identificador e sem erros. b) Com um identificador e com erros. c) Com dois identificadores e com erros.

Pg 13 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

O StopAndWait necessita de pelo menos dois identificadores para numerar as tramas de modo a permitir a deteco de tramas duplicadas no receptor. 3.8 Desempenho do StopAndWait O mecanismo de correco de erros StopAndWait, enquadra-se na categoria dos mecanismos que operam por ciclos, como se pode observar pela figura 3.4 Definio: Um ciclo de transmisso, o intervalo compreendido entre recepo de dois ACK consecutivos.

Figura 3.4 Sistemas que operam por ciclos. A durao de cada ciclo poder ser diferente, pois os tamanhos de cada trama so diferentes, os tempos de processamento de cada trama no emissor e receptor poder variar, etc. Interessa portanto saber qual o intervalo mdio de durao de cada ciclo. Admitindo que cada ciclo tem uma durao mdia de W e que os campos de ___ informao das tramas tm uma durao mdia de V A utilizao em sistemas que operam por ciclos dada por:
___
___

U=

V
___

(3.4)

Pg 14 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

O clculo de durao mdia de cada ciclo relativamente simples. Considere-se que: Tix: Tempo mdio de durao do campo de informao das tramas de informao Thx: Tempo mdio de durao do cabealho (no til) da tramas de Informao. Tax: Tempo mdio de durao da trama Ack. (normalmente s contm cabealho, no contendo Informao). Tp: Tempo de propagao do meio entre o emissor e o receptor. Tpi: Tempo mdio de processamento das tramas de informao no receptor Tpa: Tempo mdio de processamento das tramas Ack no emissor. Sem erros de transmisso, a durao mdia do ciclo de operao est ilustrada na figura 3.5

Figura 3.5 Ciclo de operao sem erros do StopAndWait Agora, facilmente se deduz a utilizao do sistema, que de acordo com a equao 3.4 dada por:
___

U=

V
___

Tix Thx + Tix + T p + T pi + Tax + T p + T pa

(3.5)

Na prtica, os tempos de processamento nos computadores Tpi e Tpa so baixos, comparativamente a outros tempos envolvidos e consideram-se nulos. Da mesma forma, os comprimentos dos cabealhos Thx bem como o comprimento da trama de Ack - Tax so pequenos quando comparados com os campos de informao, e podem tambm ser considerados nulos. A equao 3.5 pode ento ser simplificada:
___

U=

V
___

Tix 1 Tix + 2T p 1 + 2a Pg 15 de 67

(3.6)

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
A forma final obtm-se dividindo todos os termos por Tix e com a =
V2.0

Tp Tix

Na presena de erros de transmisso, o clculo da durao mdia de cada ciclo de transmisso, tem que ter em linha de conta o nmero mdio de transmisses da mesma trama de informao por cada ciclo. (No esquecer que cada erro origina nova transmisso) Note-se que o ciclo s termina aps a recepo do Ack que confirma que a trama foi correctamente recebida. (Ver figura 3.6) Para facilitar a anlise, vamos assumir o seguinte: Os tempos de processamento nos computadores Tpi e Tpa so nulos. Os comprimentos dos cabealhos de informao no til das tramas de informao e os comprimentos das tramas Ack :Thx e Tax so nulos. O temporizador de transmisso T0, iniciado logo que as tramas de informao comeam a ser enviadas.

Figura 3.6 Ciclo de operao com erros do StopAndWait Seja Nt o nmero mdio de transmisses por cada ciclo, e T0, a durao do temporizador de transmisso. A durao do ciclo de operao com erros agora:
__

W (N t 1).T0 + Tix + 2T p
E a Utilizao:
___

(3.7)

U=

V
___

Tix (N t 1).T0 + Tix + 2T p

(3.8)

Pg 16 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
__

V2.0

Admitindo que T0 Tix + 2T p , ento W N t (Tix + 2T p ) e a equao 3.8 simplificada:


___

U=

V
___

Tix N t (Tix + 2T p )

(3.9)

Para terminar a nossa anlise, h que calcular o nmero mdio de transmisses Nt .Este valor depende do nmero mdio de tramas com erros, ou seja da probabilidade de erro de trama Pf . A probabilidade de erro de trama depende por sua vez da probabilidade de erro de bit Pe.

Pf = 1 (1 Pe )

(3.10)

Em que L representa o nmero de bits que constitui a trama. O valor aproximado do nmero mdio de transmisses por ciclo Nt calcula-se facilmente recorrendo teoria das probabilidades. Admitindo que Pf a probabilidade de uma trama de informao estar errada, ento a existncia de i transmisses no ciclo sempre causada pela ocorrncia de i-1 transmisses falhadas, seguidas de uma transmisso com sucesso. Tal ilustrado na figura 3.7

Figura 3.7 N de transmisses por ciclo de operao A figura 3.7 indica-nos que o emissor transmite por ciclo i tramas de informao. Neste conjunto de tramas, so enviadas i-1 tramas erradas com probabilidade Pf seguidas de uma trama correcta com probabilidade 1-Pf Ento a probabilidade de ocorrerem i transmisses no ciclo a probabilidade de ocorrerem i-1 falhas e um sucesso. (Note-se que e corresponde multiplicao de probabilidades) P[ i transmisses num ciclo] = P[i ] = Pf

( ) (1 P )
i 1 f

(3.11)

Pg 17 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

O valor mdio do nmero de transmisses obtido estatisticamente pelo somatrio dos produtos das probabilidades de ocorrncia de cada evento. Estatisticamente designado esperana matemtica E[i] e obtido por:

N t = E [i ] = i.P[i ] = i (Pf
i =1 i =1

) (1 P ) =
i 1 f

1 1 Pf

(3.12)

Com:

iX
i =1

i 1

1 , (1 X )2

1 < X < 1

(3.13)

Substituindo a equao 3.12 na equao 3.9, chega-se ento utilizao final do StopAndWait na presena de erros de transmisso.

(1 Pf )Tix 1 Pf Tix N t (Tix + 2T p ) Tix + 2T p 1 + 2a


Tp Tix

(3.14)

A forma final obtm-se dividindo todos os termos por Tix e com a = 3.9 Consideraes finais sobre o StopAndWait

Terminamos o estudo do mecanismo StopAndWait, com algumas consideraes finais. Relativamente ao modo de funcionamento: O StopAndWait, permite implementar um mecanismo simples de retransmisso automtica de dados em caso de erro, em que por cada trama enviada, o emissor suspende a transmisso enquanto no receber a confirmao correspondente. A retransmisso pode ser implcita ou explcita (recorrendo ao expirar de um temporizador de transmisso, ou ao envio de confirmao negativa por parte do receptor respectivamente). Este funcionamento permite a implementao de um sistema de controlo de fluxo implcito dos dados, pois o receptor ao enviar a confirmao de dados, concede crdito para que o emissor continue a transmitir. Se o receptor atrasar o envio das confirmaes, provoca aumenta do tempo de suspenso da emisso por parte do emissor. Este facto tem como consequncia directa a reduo do fluxo de dados. Relativamente ao mdulo de numerao: O mdulo de numerao de tramas M, tem que ser no mnimo 2 (M=2), para que o receptor seja capaz de detectar tramas duplicadas. As tramas tero numerao disponvel entre 0 e 1.

Pg 18 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
Relativamente eficincia ou utilizao: Verifica-se pelas equaes 3.6 e 3.14, que a utilizao ou eficincia do StopAndWait nunca 100%, ou seja nunca ser possvel utilizar todo o dbito binrio da ligao para transferncia de informao, quer haja ou no erros na transmisso. Tal deve-se ao facto de a nunca ser zero, pois tal s aconteceria se os tempos de propagao fossem nulos ou os tempos de transmisso infinitos. Note-se que
V2.0

a=

Tp Tix

, e que Tix =

L , em que L o comprimento em bit da trama. rb

No entanto, a utilizao poder ser elevada para baixos valores de a. Tal acontece para baixos tempos de propagao e dbitos binrios. Portanto estes mecanismos tm aplicaes em comunicaes terrestres a curtas distncias e dbitos binrios modestos. No devero ser utilizadas em ligaes por satlite ou via rdio onde os tempos de propagao so elevados, nem em ligaes de elevado dbito binrio. Observando-se a figura 3.5, verifica-se que se enviar vrias tramas de informao de seguida, sem que haja necessidade de ficar espera de confirmao, aumenta-se a utilizao, pois consegue-se reduzir os tempos de inactividade. Este mtodo denominado Pipelining e ser estudado de seguida. Utilizao em aplicaes comerciais: O StopAndWait, foi usado em diversos protocolos de transmisso de dados nos anos 70 e 80, ao nvel da camada de ligao de dados, (caso dos protocolos BiSync da IBM e Xmodem), como ao nvel da camada de aplicao (caso do protocolo TFTP utilizado na Internet). Actualmente pouco utilizado, devido sua baixa eficincia. Dos trs protocolos que contm aplicaes do StopAndWait acima referidos, o TFTP o nico que nos dias de hoje ainda se mantm activo, devido essencialmente sua simplicidade e utilizao na internet. Estes protocolos so brevemente descritos de seguida. O protocolo Bisync um protocolo de camada de ligao de dados orientado ao carcter, desenvolvido pela IBM. Este utilizava o alfabeto ASCII para codificao dos caracteres de informao e controlo. A deteco de erros feita recorrendo a deteco de paridade horizontal e vertical, em que cada carcter continha um bit para paridade (vertical) e ao final da trama era adicionado um bloco que continha as paridades horizontais (BCC). Este protocolo est em desuso actualmente. O protocolo Xmodem um protocolo de transferncia de ficheiros muito popular, que incorpora uma forma de StopAndWait. A informao transmitida em blocos de caracteres ou tramas de comprimento fixo, constitudos por um cabealho de 3 byte e 128 byte para informao. A deteco de erros efectuada atravs de uma soma de verificao de 1 byte. O cabealho constitudo por um caracter especial denominado Start-Of Header, um byte para numerao de sequncia e um complemento a 2 do nmero de sequncia. O carcter de verificao de erros calculado pela soma complemento a 2 dos 128 byte que constituem a informao. O receptor envia uma mensagem Ack ou Nack cada vez que recebe um bloco (ou trama) de caracteres.

Pg 19 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

O protocolo TFTP Trivial File Transfer Protocol, um protocolo muito simples para transferncia de ficheiros entre computadores interligados por TCP/IP normalizado pelo RFC 13507. Este protocolo recorre a um protocolo de transporte no fivel (UDP), e incorpora uma forma de StopAndWait ao nvel da aplicao. Cada pacote de dados transmitido contm 512 byte de dados e necessita da recepo da confirmao at que o prximo pacote de 512 byte seja enviado. Os mecanismos de temporizao no emissor, bem como numerao de pacotes (aqui as tramas denominam-se pacotes), para tratamento de duplicaes e reordenamento so utilizados.

RFC Request For Comment Formato dos documentos que normalizam os protocolos utilizados na internet. Podem ser encontrados em http://www.ietf.org

Pg 20 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4 Melhoria do desempenho com tcnica de pipelining. Observando a figura 3.1, verifica-se que a utilizao do StopAndWait pode ser melhorada caso se passe a enviar vrias tramas de informao consecutivas, sem que o emissor pare de transmitir e fique espera da confirmao. Note-se que apesar de serem enviadas vrias tramas de cada vez, cada uma delas continua a necessitar do Ack correspondente. A figura 4.1 ilustra este conceito. Para facilitar, desprezam-se os tempos de processamento nos computadores e os comprimentos dos cabealhos das tramas de informao e de Ack.
V2.0

Figura 4.1 Funcionamento ARQ em pipeline sem erros Definio : Ao nmero de tramas que podero ser enviadas pelo emissor sem que este tenha recebido confirmao, d-se o nome de Janela de Transmisso K. Admitindo que a janela de transmisso K igual a 3 tramas de informao, transmitidas imediatamente umas a seguir a outras, o perodo de ocupao til do canal V = 3Tix . Generalizando para qualquer tamanho de K, V = KTix A durao total do ciclo de operao mantm-se: W (Tix + 2T p ) . A utilizao para um sistema ARQ em Pipeline sem erros e com janela de transmisso K dada por:
__ __ ___ ___

U=

V
__

KTix K Tix + 2T p 1 + 2a

(4.15)

Pg 21 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

A equao 4.15 indica que a utilizao sem erros aparece multiplicada pelo tamanho da janela de transmisso. Facilmente se percebe que a utilizao pode agora atingir os 100%, para valores de K = 1 + 2a. Note-se que caso K > 1 + 2a, matematicamente a utilizao mesmo superior a 100%. No entanto fisicamente a limitao do dbito binrio do canal, impe um limite mximo de troughput igual ao dbito binrio. Sendo assim, a utilizao do canal est limitada entre 0 e 1. Qualquer valor superior a 1 considerado 1 (100%). A figura 4.2 ilustra o sistema ARQ em pipeline, cujo valor de K permite que o canal esteja sempre ocupado com transmisso de informao e por conseguinte obtenha uma utilizao de 100%.

Figura 4.2 Funcionamento ARQ em pipeline sem erros com U=100% Com erros de transmisso, existem alguns pormenores a ter em conta, nomeadamente, a forma como so efectuadas as retransmisses das tramas. Basicamente existem duas possibilidades: i) No caso de o emissor no receber confirmao, de uma trama, envia novamente todas as tramas que esto dentro da janela de transmisso.

ii) No caso de o emissor no receber confirmao, de uma trama, envia novamente apenas a trama que contm os erros. Os mecanismos que adoptam a opo i) designam-se por Go-Back-N Voltar a trs N. Os mecanismos que adoptam a opo ii) designam-se por SelectiveRepeat repetio selectiva. Uma anlise mais detalhada dos mecanismos em Pipeline na presena de erros de transmisso fica reservada para as prximas seces. Facilmente se conclui que o mecanismo StopAndWait, anteriormente estudado pode ser visto como um mecanismo em pipeline com janela de transmisso unitria.

Pg 22 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4.1 O mecanismo Go-Back-N O mecanismo Go-Back-N, um mecanismo ARQ em pipeline, cuja operao em caso de erros o obriga a enviar todas as tramas que esto dentro da janela de transmisso. Daqui resulta a designao voltar atrs N tramas e reenvi-las, em que N representa o nmero de tramas enviadas ainda no confirmadas (pendentes). Para que este mecanismo seja capaz de funcionar correctamente em caso de erros, so necessrios os seguintes pressupostos (alguns deles j vistos anteriormente): O emissor pode enviar K tramas sem necessidade de receber confirmao (Ack). O parmetro K designado janela de transmisso, e este parmetro que permite a operao em Pipeline. As tramas tm que ser numeradas (para evitar a duplicao dos dados, em caso de erros, como veremos adiante). O receptor apenas aceita como vlidas, as tramas de informao que chegam na ordem correcta. O emissor tem que implementar um temporizador de transmisso, que iniciado para a trama mais antiga por confirmar. Note-se que para o caso de se implementar retransmisso explcita (Acknowledge negativo - Nack ),o receptor necessita de implementar um temporizador para as tramas Nack emitidas. Este cenrio ser estudado adiante. O receptor confirma individualmente cada trama recebida por ordem e sem erros, atravs de uma mensagem Ack(X), que tambm confirma todas as tramas de informao anteriores (com nmero de sequncia at X). Esta tcnica designa-se acknowledgement cumulativo. O Emissor tem que guardar em memoria tantas tramas quanto o valor da janela de transmisso. Esta memria designada buffer de transmisso, necessria para o reenvio de todas as tramas que se encontram dentro da janela de transmisso, caso uma ou mais no sejam recebidas pelo receptor. 4.1.1 A janela deslizante de transmisso no mecanismo Go-Back-N . Admitamos que se pretendem transmitir 21 tramas de dados, numeradas I(0) a I(20) entre dois ns de rede. A janela de transmisso K igual a 11 tramas. O funcionamento e parmetros da janela de envio no Go-Back-N esto ilustrados na figura 4.3.
V2.0

Pg 23 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 4.3 Parmetros da janela de envio A figura 4.3 introduz alguns conceitos que se descrevem: Tramas utilizveis: So aquelas que tm o nmero de sequncia dentro da janela de envio K e podem a qualquer momento ser enviadas sem necessidade de recepo de Ack. (Caso das tramas I(10) a I(15) ) Tramas no utilizveis: So aquelas cujo nmero de sequncia est fora da janela de envio K. Como tal no podero ser transmitidas. (Caso das tramas I(16) a I(20)). Tramas enviadas mas ainda no confirmadas (pendentes): So aquelas que foram transmitidas, mas para as quais o emissor ainda no recebeu o Ack correspondente. A janela de transmisso no avana enquanto estas confirmaes no forem recebidas. (Caso das tramas I(5) a I(9)). Tramas enviadas e j confirmadas: So aquelas que foram transmitidas e o emissor j recebeu o Ack correspondente. A janela de transmisso avana tantas unidades quanto o nmero de Ack recebidos pelo emissor. Como j referido, por cada Ack que o emissor recebe, a janela de transmisso vai avanando uma unidade, aumentando tambm de uma unidade o n de tramas utilizveis e que podero ser transmitidas. A janela vai avanando, tantos quantos Ack o emissor receber. Este mecanismo designa-se janela deslizante8.

Sliding Window Protocol em Ingls. A janela vai deslizando por cada Ack recebido

Pg 24 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

As variveis de estado utilizadas pelo emissor so as seguintes: acked_seq_no : Representa o nmero de sequncia mais elevado da trama j confirmada (acknowledged) pelo receptor. send_base : Representa o n de sequncia da primeira trama enviada e que ainda no foi confirmada. V(S) ou txseq_no : Representa o prximo n de sequncia que o emissor tenciona utilizar. send_window: Representa os nmeros de sequncia que esto dentro da janela de transmisso. Nota: O emissor sabe se a numerao de sequncia est dentro da janela de transmisso, se a varivel send_window se encontrar entre os valores:sdsdsdsdsdsd send_window (send_base) && send_window [(send_base) + (K-1)] ssdsds A nica varivel de estado utilizada pelo receptor a seguinte: V(R) ou rxseq_no: Representa o prximo n de sequncia que o receptor espera receber do emissor. (Esta varivel inicializada a zero, no incio. Ao receber a trama, se o seu nmero de sequncia for igual ao esperado (rxseq_no = send_base), ento incrementa rxseq_no de 1. (Espera a prxima) Um possvel algoritmo de funcionamento do Go-Back-N exemplificado de seguida. Note-se que podero existir diversas variantes implementadas, com maior ou menor nmero de funcionalidades, e consequente maior ou menor robustez. O algoritmo 1, descreve uma implementao simples, mas relativamente robusta, e permite o estudo dos conceitos chave do Go-Back-N nas situaes mais importantes.

Pg 25 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
ALGORITMO 1 IMPLEMENTAO DO MECANISMO GO-BACK-N No emissor: 1 - Caso o emissor tenha dados para enviar: Se o prximo nmero de sequncia X est dentro janela de emisso, envia a trama. Se X [ send_base , (send_base + Ks-1) ]: Envia a trama I(X) Utilizando retransmisso implcita: 2 - Caso o temporizador da trama I(send_base) expira - Suspende a transmisso e recepo de tramas. - Volta a trs e reenvia todas as tramas desde I(send_base) a I(K-1) - Reinicia temporizador de I(send_base). - Continua normalmente (passo 1) 3 - Caso receba Ack(X) com X = send_base: Se X a trama mais antiga por confirmar: - Marca trama X como confirmada (ack_seq_no) - Avana a base da janela uma unidade (send_base= send_base+1) - Continua normalmente (passo 1) 4 - Caso receba Ack(X) com tx_seqno > X > send_base: Se houve perda de Acks: A - A confirmao Ack(X) confirma a trama X e todas as tramas anteriores, desde (send_base) a I(X). Acknowledgment cumulativo Q - Avana a base da janela tantas unidades quanto as tramas que foram confirmadas (send_base = send_base + X) - Continua normalmente (passo 1) 5 - Caso receba Ack(X) com send_base > X > tx_seqno: O Ack tem n sequncia fora da janela de emisso: Se o ACK repetido e de valor: (X = send_base -1) e (X = X-1) Q (Permite retransmisso implcita por ACKs duplicados) Q - Suspende a transmisso e recepo de tramas. - Volta a trs e reenvia todas as tramas desde I(send_base) a I(K-1) - Reinicia temporizador de I(send_base). - Continua normalmente (passo 1) Caso contrrio: Restantes casos em que o Ack tem n sequncia fora da janela de emisso: Q - Ignora Ack(X) e no efectua qualquer aco consequente. - Continua normalmente (passo 1) Utilizando retransmisso explicita: 6 - Caso receba Nack(X) com X [ send_base , tx_seqno-1]: Se a confirmao negativa se refere a uma trama enviada: - Volta a trs e reenvia todas as tramas desde I(send_base) a I(K-1) Q - Reinicia temporizador de I(send_base) 7 - Implementa todos os casos anteriores utilizados na retransmisso implcita
V2.0

Pg 26 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
No receptor: Utilizando retransmisso implcita: 1- Caso o receba uma trama I com nmero de sequncia X: 1.1- Se I(X) no contm erros e o nmero de sequncia X o prximo esperado: Se X = rxseq_no: - Envia Ack(X). - Entrega I(X) camada superior. - Incrementa rxseq_no. 1.2 - Se I(X) no contm erros e o n de sequncia X no o prximo esperado: Se X rxseq_no: - Envia Ack(rxseq_no-1). - Descarta I(X), pois chega fora de ordem. - No altera rxseq_no. 1.3 - Se I(X) contm erros (seja ou no a prxima trama esperada): - Descarta I(X) . No efectua qualquer aco consequente. Utilizando retransmisso explcita: 2 - Caso o receba uma trama I com nmero de sequncia X: Se I(X) contm erros (no se pode analisar o n de seq.) - Envia Nack(rx_seq-1). - Descarta I(X). - Inicia o temporizador de Nacks. - Suspende a transmisso de Acks at voltar a receber I(X) (Esta aco necessria, devido ao Ack cumulativo) Se I(X) no contm erros: - Funciona da mesma forma que na retransmisso implcita.
V2.0

Pg 27 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4.1.2 Funcionamento do Go-Back-N sem erros. A figura 4.4, recorre a um diagrama temporal para melhor ilustrar o funcionamento do Go-Back-N sem erros, com janela de emisso K = 4.
V2.0

Figura 4.4 Operao sem erros do Go9Back9N Em t=1s, enviada a primeira trama I(0). Os valores das variveis so os seguintes: acked_seq_no = -1 : Ainda no h nenhuma trama confirmada. send_base = 0 : Esta a trama enviada ainda no confirmada. txseq_no = 1: Esta a prxima trama a enviar. rxseq_no = 0: Esta a prxima trama esperada pelo receptor. 0 =< send_window <= 3 : Estes so as tramas dentro da janela de transmisso. Em t=2s e em t=3s, so enviadas as tramas I(1) e I(2) respectivamente, sem que ainda tenha sido recebida qualquer confirmao. As alteraes nas variveis so: send_base = 1 e send_base = 2: para t=2s e t=3s respectivamente. txseq_no = 2 e txseq_no = 3: Para t=2s e t=3s respectivamente. rxseq_no = 1 e rxseq_no = 2: Para t=2s e t=3s respectivamente. Note-se que a varivel send_window ainda se mantm: 0 =< send_window <= 3, pois como foi referido a janela s desliza quando o emissor recebe confirmaes correspondentes. (Acks) protocolo de janela deslizante. Em t=4s, recebido o primeiro Ack(0), que corresponde a I(0). tambm enviada I(3). As variveis so agora: acked_seq_no = 0 send_base = 3 txseq_no = 4 rxseq_no = 3 1 =< send_window <= 4

Pg 28 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Note-se que a varivel send_window incrementou uma unidade: A janela avanou uma unidade. Em t=5s, recebido o segundo Ack(1), que corresponde a I(1). tambm enviada I(4). As variveis so agora: acked_seq_no = 1 send_base = 4: txseq_no = 5 rxseq_no = 4 2 =< send_window <= 5 Note-se que a janela voltou a avanar uma unidade. Apesar deste avano, o seu valor K sempre constante. (Neste caso K = 4). 4.1.3 Controlo de fluxo dos dados no Go-Back-N. O Go-Back-N providencia um mecanismo implcito de controlo de fluxo dos dados, denominado controlo de fluxo por janela deslizante. A quantidade de identificadores de trama limitado, bem como o tamanho da janela de transmisso. Estes factores implicam que o nmero de tramas para envio (utilizveis) seja limitado. Pode-se ento dizer que o receptor concede crdito para que o emissor transmita, pois cada vez que envia um Ack, incrementa o nmero de tramas utilizveis pelo emissor (provocando o avano da janela de transmisso, ilustrado na figura 4.4). Caso o fluxo de dados enviado pelo emissor seja superior capacidade de processamento no receptor, este pode simplesmente atrasar o envio dos Ack, no permitindo o avano da janela no emissor, e obter a desejada reduo de fluxo de dados. 4.1.4 Funcionamento do Go-Back-N com erros. No caso da existncia de erros de transmisso (caso real), a retransmisso das tramas de informao, pode ser efectuada de forma implcita ou explcita. (Ver seco 3.4 para mais detalhes sobre estes dois conceitos). A retransmisso explcita opcional, tem como objectivo tentar acelerar o processo de envio de tramas erradas, e consequentemente aumentar a eficincia do protocolo. Iremos analisar o protocolo, com implementao de retransmisso implcita e explcita, em cenrios onde se perde a trama de informao, a trama de confirmao, e tambm quando a trama de informao chega com erros ao receptor. Cenrios de aplicao da retransmisso implcita: Cenrio 1 A trama de informao perde-se e no chega ao receptor. (A retransmisso efectuada pelo expirar do temporizador de transmisso, ou quando o emissor detecta uma confirmao com nmero de sequncia igual ao anteriormente recebido send_base)

Pg 29 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Cenrio 2 A trama Ack perde-se ou chega corrompida ao emissor. A retransmisso efectuada no caso da prxima trama de confirmao chegar ao emissor depois do expirar do temporizador de transmisso. Caso chegue uma confirmao antes do temporizador expirar, a trama Ack efectua acknowledgment cumulativo). Cenrios de aplicao da retransmisso explicita: Cenrio 3 A trama de informao chega corrompida ao receptor. Admitindo que a janela de transmisso K = 4, comeamos por estudar o cenrio 1, que est ilustrado nas figura 4.5 e figura 4.6. Descrio de cada um dos cnrios: Cenrio 1 A trama de informao perde-se e no chega ao receptor. Este cenrio, recorre ao mtodo de retransmisso implcita, das tramas de informao perdidas, para os casos em que o temporizador de transmisso expira (figura 4.5), e quando o emissor recebe uma confirmao com o nmero de sequncia igual ao anterior (figura 4.6). O primeiro caso observa-se sempre que o temporizador expira antes que o emissor receba um ACK, com nmero de sequncia igual ao anterior e est ilustrado na figura 4.5, o emissor envia 4 tramas (K=4): I(0) a I(3), sem necessidade de confirmao. A trama I(2) perde-se e no chega ao receptor. Pode-se observar que o receptor apenas toma conhecimento da perda de I(2) aps receber I(3). As suas variveis de estado na recepo indicam que a ltima trama recebida foi a I(1), e espera a trama I(2). Por outro lado, o emissor tambm no tem neste momento conhecimento da perda de I(2), e como a sua janela de emisso ainda no se esgotou (s enviou 3 tramas), continua e envia a prxima trama I(3). Note-se que depois de enviar I(3), o emissor pra de transmitir, pois a sua janela de transmisso esgotou e ainda no recebeu nenhum ACK. Algum tempo depois, o emissor comea a receber os primeiros Acks correspondentes s tramas I(0) e I(1) respectivamente. Esta recepo faz com que a janela avance, e permita a transmisso das tramas seguintes I(4) e I(5). Entretanto, aps o expirar do temporizador de transmisso, (neste caso corresponde trama I(2)), devido falta de confirmao, o emissor suspende a transmisso, volta atrs N e reenvia todas as tramas dentro da janela de transmisso. Neste caso, volta atrs at I(2), e reenvia I(2), I(3), I(4) e I(5).

Pg 30 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 4.5 Operao com erros do Go9Back9N, com K = 4. Retransmisso implcita por perda da trama de informao A figura 4.6, ilustra o caso em que a trama de informao se perde, mas o emissor recebe uma confirmao duplicada antes que o temporizador de transmisso expire.

Figura 4.6 Operao com erros do Go9Back9N, com K = 4. Retransmisso implcita por recepo de ACK duplicado

Pg 31 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Neste caso implementa-se uma funcionalidade no emissor, que permite a reduo do tempo necessrio para o reenvio das tramas de informao. Estas podem ser retransmitidas antes do expirar do temporizador de transmisso. O emissor ao detectar a recepo de um ACK, cujo nmero de sequncia seja igual ao ACK anterior, pode implicitamente deduzir que o receptor no recebeu a trama de informao anterior. Imediatamente suspende a transmisso, volta atrs e retransmite as tramas que se encontram na janela de envio. Note-se que apesar de descartar as tramas fora de sequncia, o receptor continua a enviar ACKs, correspondentes ltima trama recebida em sequncia (que tinha sido I(1)), pois ainda no incrementou a varivel de estado da recepo rx_seq). Relembre que os ACK so cumulativos, e confirmam todas as tramas anteriores at I(X) inclusive. A retransmisso implcita para o caso da figura 4.6, est configurada no ponto 5 do algoritmo 1. Ambos os casos estudados no cenrio 1, conduzem duplicao das tramas I(3), I(4) e I(5), que j tinham sido confirmadas. Aqui o receptor capaz de detectar as tramas recebidas em duplicado, pois aps recepo da trama I(1), a sua varivel de estado de recepo indica que a prxima trama esperada I(2). Agora o receptor descarta todas as tramas que receba com nmero de sequncia diferente de 2. No caso de no se implementar retransmisso explicita, este cenrio tambm vlido para o caso da recepo de uma trama com erros (Neste caso I(2)). Ver algoritmo 1 no receptor, ponto 1. Cenrio 2 A trama Ack perde-se ou chega corrompida ao receptor. Neste cenrio, a retransmisso efectuada caso a prxima trama de confirmao chegue ao emissor depois do expirar o temporizador de transmisso (retransmisso implcita). Caso chegue uma confirmao antes do temporizador expirar, esta efectua acknowledgment cumulativo). A figura 4.7 ilustra o segundo caso deste cenrio.

Pg 32 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 4.7 Operao com erros do Go9Back9N, com K = 4. Cenrio em que se perde a trama de Ack Como se pode observar pela figura 4.7, a trama Ack(0) perde-se. Neste caso o emissor aps enviar I(3), suspende a transmisso, pois a janela esgota. Ao receber a trama Ack(1), antes que o temporizador de transmisso de I(0) expire, o emissor vai assumir que o receptor recebeu correctamente a trama I(0), pois no recebeu nenhum Nack e recebe um Ack da trama de informao enviada com numerao mais alta. Generalizando, a trama Ack, confirma todas as tramas anteriormente recebidas. Este tipo de confirmao designado Acknowledge cumulativo. Cenrio 3 A trama de informao chega corrompida ao receptor. Neste cenrio, a recuperao de erros resolvida recorrendo a qualquer dos mtodos de retransmisso das tramas de informao perdidas: implcita ou explcita. O primeiro mtodo (de aplicao obrigatria) funciona exactamente do mesmo modo que no cenrio 1, pelo que nos iremos concentrar no segundo mtodo (de aplicao opcional). A figura 4.8, ilustra o cenrio 3, admitindo que se recorre retransmisso explcita das tramas de informao. Apesar de ser uma funcionalidade opcional, tem como objectivo reduzir o tempo de retransmisso, pois o emissor no tem de esperar pelo expirar de temporizador de transmisso at ao reenvio.

Pg 33 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 4.8 Operao com erros do Go9Back9N, com K = 4. Cenrio em que se perde uma trama de informao A retransmisso explcita, implementada atravs do envio de NACKs (Acknowledgement negativo). Agora, se o receptor recebe uma trama corrompida (neste caso I(2)), imediatamente sinaliza o emissor que ao receber uma confirmao negativa (Nack(2)), suspende a transmisso de ACKs e reenvia novamente todas as tramas que se encontram dentro da janela de transmisso. Neste caso, volta atrs at I(2), e reenvia I(2), I(3), I(4) e I(5). Da mesma forma que no cenrio 1, esta retransmisso garante que todas as tramas chegam por ordem ao receptor. As tramas recebidas em duplicado so tambm detectadas e descartadas. Nota: O mecanismo de retransmisso explcita aumenta o grau de complexidade no receptor. O protocolo falha caso no haja precaues especiais (ver figura 4.9). aaaaa Admita que ao receptor chega I(0), I(1) e I(2). I(1) contm erros. O receptor envia ACK(0) e NACK(1). Se a trama NACK(1) se perder, o emissor no toma conhecimento disto. Entretanto ao receber I(2), o receptor envia ACK(1). Neste momento, no emissor a varivel send_base=1 ao receber ACK(1), com X = send_base (ver ponto 3 do algoritmo 1 emisso e ponto 2 do algoritmo 1 recepo). Sendo assim, ACK(1) efectuaria acknowledgment cumulativo, confirmando a trama I(1) erradamente. Esta nunca seria reenviada. Qqqq q Para evitar a falha do protocolo, no caso de erros em I(X) e falha simultnea em NACK(X), o receptor suspende o envio de ACKs e NACs, logo que envia a primeira trama NACK. Adicionalmente implementado um temporizador de NACKs para o caso em que s ocorre a perda do NACK no sentido receptor - emissor. qq

Pg 34 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 4.9 Falha da retransmisso explicita do Go9Back9N, com K = 4. Cenrio com erros na trama de informao em que o respectivo NACK se perde, sem mecanismos de proteco especiais. 4.1.5 Relao entre mdulo de numerao M e janela de transmisso K no GoBack-N. O mdulo de numerao representa a quantidade de identificadores disponveis para numerao de tramas. O nmero de bits necessrios para numerao mdulo M, dado pela equao 3.1. Uma vez que o nmero de cada trama transmitido no seu cabealho, o nmero de bits utilizados para numerao deve ser mnimo, para reduzir o overhead. O mdulo de numerao depende do tamanho da janela de transmisso, pois quanto maior a janela de transmisso, maior nmero de identificadores sero necessrios para identificar as tramas de informao. O mdulo de numerao, tambm est relacionado com a capacidade do receptor em detectar tramas duplicadas, como veremos adiante. No permitido que tramas de informao diferentes, transmitidas e ainda no confirmadas (pendentes) tenham o mesmo nmero de sequncia. O mdulo de numerao M, tem que ser mnimo para reduo de overhead, mas tem que ser suficiente para providenciar ao receptor a capacidade de deteco de tramas duplicadas.

Pg 35 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

A capacidade de deteco de tramas duplicadas avalia-se para o cenrio com erros, em que se perdem todas as tramas Ack, no sentido receptor emissor. Analisemos um caso, cuja janela de transmisso K = 4, ilustrado na figura 4.10.So necessrios tambm 4 identificadores diferentes para permitir o envio de 4 tramas sem necessidade confirmao. Para tal so necessrios dois bits e o mdulo de numerao M = 4. A numerao dos identificadores disponveis est compreendida entre 0 e 3.

Figura 4.10 Operao com erros do Go9Back9N, com M = K = 4 . Cenrio em que se perdem todas as tramas Ack Analisando a figura 4.10, observa-se que ao emissor no chega nenhuma confirmao referentes s tramas I(0) a I(3). Este suspende a transmisso em I(3), depois de esgotada a janela de envio. Mal o temporizador de transmisso expire, so retransmitidas novamente as tramas I(0) a I(3), que correspondem totalidade da janela de transmisso. Por outro lado, o receptor confirma correctamente todas as tramas, e quando recebe pela primeira vez I(3), espera I(0). A varivel de estado rx_seqno contm o valor 0, pois o mdulo de numerao M=K=4, s permite a utilizao de 4 identificadores de trama (0 a 3). Quando ao receptor chegam novamente as tramas I(0) a I(3), este aceita-as como vlidas, apesar de j terem sido recebidas, pois o seu nmero de sequncia corresponde ao valor esperado.

Pg 36 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

O receptor no capaz de detectar as tramas duplicadas. Para tal, o nmero de identificadores teria que ser superior janela de transmisso em pelo menos uma unidade. A figura 4.11 ilustra a mesma situao de perda de todos os Ack, mas agora M=5 e K=4, permitindo que se utilizem 5 identificadores diferentes para as tramas (numeradas de 0 a 4)

Figura 4.11 Operao com erros do Go-Back-N, com M =5 e K = 4 . Cenrio em que se perdem todas as tramas Ack Agora observa-se que o receptor capaz de detectar as tramas duplicadas, pois ao receber a primeira trama I(3), tem numerao suficiente para poder esperar I(4) como prxima trama vlida. Ao receber novamente as tramas I(0) a I(3), este simplesmente descarta-as, pois a sua numerao no corresponde esperada. Salienta-se que as figuras 4.10 e 4.11, ilustram exemplos em que a retransmisso implcita. Para o caso de retransmisso explcita, o raciocnio mantm-se. A relao entre o mdulo de numerao e a janela de transmisso para o mecanismo Go-Back-N dada pela equao 4.16

M = K +1

(4.16)

Pg 37 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4.1.6 Desempenho do Go-Back-N. Da mesma forma que o StopAndWait, O Go-Back-N, enquadra-se na categoria dos mecanismos que operam por ciclos, (ver seco 3.8). Veremos adiante, que este mecanismo em determinados casos, tambm poder no utilizar todo o dbito binrio disponvel e apresentar um desempenho deficiente. Desempenho sem erros de transmisso Sem erros de transmisso, o desempenho do Go-Back-N, igual ao desempenho geral de um sistema em pipeline, estudado na seco 4, cuja utilizao aproximada descrita pela equao 4.15. Desprezando os tempos de processamento nos computadores e os comprimentos dos cabealhos das tramas de informao e Ack, observa-se pela figura 4.2, que a utilizao atinge os 100%, para o caso em que os tempos de propagao so baixos. Uma vez que o tamanho da janela de transmisso um dos parmetros, facilmente ajustveis pelo utilizador, interessa particularizar a equao 4.15, para os casos observados nas figuras 4.1 e 4.2, de modo a estudar a utilizao em funo da janela de transmisso K, tempos de propagao e tempos de transmisso.
V2.0

1 U KTix T + 2Tp ix

, KTix Tix + 2T p , KTix < Tix + 2T p


(4.17)

Ou em funo do atraso de propagao normalizado: a =

Tp Tix

1 U K 1 + 2a

, K 1 + 2a , K < 1 + 2a
(4.18)

As equaes 4.17 ou 4.18, permitem-nos concluir que a utilizao muito boa, atingindo mesmo os 100%, para valores relativamente baixos de tempos de propagao relativamente a tempos de transmisso. Quanto esto em jogo tempos de propagao elevados relativamente a temos de transmisso, a Utilizao pode ser melhorada aumentando a janela de transmisso K, e, ou aumentando o comprimento das tramas de informao. Note-se que:

Tix =

K no pode aumentar demasiado, devido ao overhead causado por mais bits necessrios ao aumento do nmero de identificadores das tramas.

Lix , em que Lix representa o comprimento em bit, das tramas de informao. rb

Pg 38 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Apenas como referncia, para os caso real em que no so nulos, os tempos de processamento nos ns ou computadores, bem como os comprimento dos cabealhos das tramas de informao e comprimento das tramas Ack, a equao 4.17, vem afectada por estes valores e dada por:

1 U = KTix T + T + T + T + T + T + T p pi ax p pa hx ix

,KTix Thx + Tix + Tp + Tpi + Tax + Tp + Tpa


(4.19)

, KTix < Thx + Tix + Tp + Tpi + Tax + Tp + Tpa

Desempenho com erros de transmisso Com erros de transmisso, o clculo da durao mdia de cada ciclo de transmisso, ter que ter em conta o nmero mdio de transmisses por ciclo no sistema. A figura 4.12 ilustra a durao mdia do ciclo de transmisso na presena de erros, para o caso especfico em que se perdem duas tramas I(0) consecutivas, e se recorre a retransmisso implcita.

Figura 4.12 Durao de um ciclo de operao do Go9Back9N, em caso de duas perdas consecutivas de I(0), com K = 4 e retransmisso implicita Seja Nt o nmero mdio de transmisses por cada ciclo, e T0, a durao do temporizador de transmisso e K a janela de transmisso. A durao do ciclo de

Pg 39 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

operao com erros, obtida pela equao 3.8, desprezando os cabealhos das tramas de informao, o tamanho das tramas Ack e os tempos de processamento: E a Utilizao aproximadamente:
___

U=

V
___

KTix (N t 1).T0 + Tix + 2T p


__

(4.20)

Admitindo que simplificada:


___

T0 Tix + 2T p , ento W N t (Tix + 2T p ) , a equao 4.20

U=

V
___

KTix N t (Tix + 2T p )

(4.21)

A equao 4.21, pode ser reescrita na equao 4.22, se analisarmos a utilizao em funo da janela de transmisso K , do tempo de propagao e tempo de transmisso.

1 U KTix N (T + 2Tp ) t ix

, KTix Tix + 2T p , KTix < Tix + 2T p


(4.22)

Clculo do nmero mdio de transmisses por ciclo. Interessa agora calcular o valor do nmero mdio de transmisses por ciclo Nt, Observando a figura 4.10, Vamos admitir que a janela de transmisso K=4, e que so necessrias 3 transmisses da trama original I(0), at obter sucesso: Foram transmitidas neste caso 4*2 + 1 = 9 tramas A funo que descreve o n total de tramas transmitidas, caso a trama original seja transmitida i vezes :

f (i ) = K .(i 1) + 1 = (1 K ) + Ki

(4.23)

O valor aproximado do nmero mdio de transmisses por ciclo Nt calcula-se facilmente recorrendo teoria de probabilidades. Admitindo que Pf a probabilidade de uma trama de informao estar errada, ento de acordo com o raciocnio da seco 3.8, a probabilidade da transmisso ter sucesso em i tentativas dada pela equao 3.11. O valor mdio do nmero de tramas enviadas at obter sucesso, obtido estatisticamente pelo somatrio dos produtos das probabilidades de ocorrncia de cada evento. Estatisticamente designado esperana matemtica E[i] e obtido por:

Pg 40 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
N t = E [i ] = f (i ) P[i ] = f (i )(Pf
i =1 i =1

V2.0

) (1 P )
i 1 f

(4.24)

Substituindo a equao 4.23 na equao 4.24 e desenvolvendo o somatrio, obtemos o nmero mdio de transmisses por ciclo Nt dado pela equao 4.25:

N t = (1 K ) (Pf
i =1

) (1 P ) + k i(P ) (1 P )
i 1 i 1 f f f i =1

1 Pf + KPf K = 1 K + = 1 Pf 1 Pf
Com:

(4.25)

iX i 1 =
i =1

1 , (1 X )2

1 < X < 1

X
i =1

i 1

1 , (1 X )

1 < X < 1

A utilizao final aproximada do Go-Back-N , com erros e desprezando tempos de processamento nos ns e computadores, comprimento dos cabealhos, comprimento das tramas Ack, e temporizador de transmisso T0 = Tix+2Tp , obtm-se substituindo o nmero mdio de transmisses (equao 4.25) na utilizao (equao 4.22)

(1 Pf ) 1 + Pf ( K 1) U KTix (1 Pf ) (Tix + 2Tp )[1 + Pf ( K 1)]

, KTix Tix + 2T p
(4.26)

, KTix < Tix + 2T p

Ou em funo de a, dividindo ambos os termos por Tix:

(1 Pf ) 1 + Pf ( K 1) U K (1 Pf ) (1 + 2a )[1 + Pf ( K 1)]

, K 1 + 2a
(4.27)

, K < 1 + 2a

Pg 41 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4.1.6 Consideraes finais sobre o Go-Back-N. Terminamos o estudo do mecanismo Go-Back-N, com algumas consideraes finais. Relativamente ao modo de funcionamento: A implementao do Go-Back-N, apresenta uma evoluo relativamente ao StopAndWait, pois recorre tcnica de pipelining para permitir o envio de vrias tramas de informao sem necessidade de confirmao. Para que isto seja realizvel, introduzido o conceito de janela de emisso - K, que indica o nmero mximo de tramas de informao que podero ser enviadas sem que se tenha recebido qualquer confirmao. Cada trama continua a ser confirmada individualmente, e cada vez que isto acontece, a janela de envio avana tantas unidades quanto o numero de confirmaes individuais e na ordem correcta forem recebidas. O emissor necessita de implementar um temporizador de transmisso (referente ltima trama enviada e no confirmada), pois em caso de erros e consequente ausncia de confirmao, so reenviadas todas as tramas que no tenham sido confirmadas (todas as que estejam dentro da janela de transmisso). Este envio, apesar de provocar a eventual recepo de tramas duplicadas, garante que numa ligao ponto a ponto todas as tramas chegam por ordem ao receptor, reduzindo a complexidade e sobrecarga em termos de memria e processamento que este teria na tarefa de reordenao. implementado um mecanismo de confirmao cumulativo em que a trama Ack(X), confirma todas as tramas de informao anteriores. Note-se que apenas h necessidade de implementar um nico temporizador de transmisso: o que corresponde primeira trama da janela de transmisso (varivel de estado send_base) O emissor ter que guardar em memria, tantas tramas quanto o tamanho da janela de transmisso, pois em caso de erros, ter que as enviar na totalidade. O receptor aceita como vlidas, as tramas que receber em sequncia e que no contenham erros. A retransmisso pode ser implcita ou explcita, tendo no entanto o receptor neste ltimo caso que implementar um temporizador para emisso das tramas de confirmao negativa (Nack), e suspender o envio de Acks e Nacks. O limite mximo de K, permite a implementao de um mecanismo de controlo de fluxo implcito dos dados, pois tal como no StopAndWait, o receptor ao enviar a confirmao de dados, concede crdito para que o emissor continue a transmitir. Se o receptor atrasar o envio das confirmaes, provoca aumenta do tempo de suspenso da emisso por parte do emissor. Este facto tem como consequncia directa a reduo do fluxo de dados.
V2.0

Pg 42 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
Relativamente ao mdulo de numerao: O mdulo de numerao de tramas M=2l, necessita de l bits e depende do valor da janela de transmisso K. M K+1, para que o receptor seja capaz de detectar tramas duplicadas. As tramas tero numerao disponvel entre 0 e 2l-1. Relativamente eficincia ou utilizao: Verifica-se pelas equaes 4.22 e 4.27, que a utilizao ou eficincia do Go-Back-N pode atingir os 100% sem erros, ou valores muito prximos deste, no caso da existncia de erros. No entanto para elevados tempos de propagao, a sua utilizao poder ser deficiente. No caso de erros, a utilizao poder ser melhorada, se em vez de se retransmitir toda a janela de transmisso, s se retransmitir a trama errada. Este melhoramento est presente no mecanismo Selective Repeat estudado adiante, com prejuzo da complexidade do protocolo. Utilizao em aplicaes comerciais: O mecanismo Go-Back-N dos mais utilizados ao nvel da camada de ligao de dados. Os protocolos HDLC9 e LAPB10 so exemplos de protocolos normalizados de ligao de dados, onde este mecanismo aplicado.
V2.0

10

HDLC High Level Data Link Protocol LABP Link Access Procedure Balanced

Pg 43 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

4.2 O mecanismo Selective Repeat Tal como o Go-Back-N, o Selective Repeat um mecanismo ARQ em pipeline. A grande diferena reside no facto de agora em caso de erros, o emissor s reenviar a trama que est errada (ou a que simplesmente no chegou ao receptor) em vez de reenviar todas as tramas que sto dentro da janela de emisso. Este mecanismo permite por um lado evitar que sejam enviadas tramas duplicadas, mas por outro lado conduz ao envio de tramas fora de ordem como veremos adiante. Daqui resulta a designao Selective Repeat ou repetio selectiva. O receptor solicita especificamente a trama que pretende que o emissor reenvie. Para que este mecanismo seja capaz de funcionar correctamente em caso de erros, necessrio que se verifiquem os pressupostos da seco 4.1 relativamente ao GoBack-N, mas com as seguintes diferenas: O Receptor tem implementar uma janela de recepo KR e tem que guardar em memoria tantas tramas quanto o valor de KR. Esta memria designada buffer de recepo, necessria para que o receptor efectue a ordenao das tramas recebidas fora de sequncia. Definio: Designa-se janela de recepo Kr, o nmero de tramas que podero chegar ao receptor fora de ordem, sem que este as descarte. Estas tramas so armazenadas em memria para posterior reordenamento. Normalmente o tamanho da janela de transmisso e recepo so iguais, mas nada impede que sejam diferentes. Nota: Pode-se considerar que o mecanismo Go-Back-N estudado anteriormente, apresenta janela de recepo unitria. As tramas continuam a ser numeradas (para evitar a duplicao dos dados, em caso de erros), mas agora o receptor aceita tambm como vlidas, tramas de informao que chegam fora de ordem, desde que estejam dentro dos limites da janela de recepo. Tramas recebidas fora da janela de recepo so descartadas. O emissor tem que implementar um temporizador de transmisso, individual por cada trama enviada. Isto porque s vai reenviar a trama perdida. Para o caso de se implementar retransmisso explcita (Acknowledge negativo - Nack ),o receptor necessita de implementar um temporizador para as tramas Nack emitidas, do mesmo modo que no Go-Back-N. Como referido, o Selective Repeat, permite que o emissor, reenvie apenas a trama que contm erros. Isto conduz recepo de tramas fora de ordem.

Pg 44 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

4.2.1 A janela deslizante de transmisso e recepo no mecanismo Selective Repeat. Admitamos que se pretendem transmitir 16 tramas de dados, numeradas I(0) a I(15) entre dois ns de rede. A janela de transmisso e de recepo so iguais. K igual a 10 tramas. Os conceitos de janela de transmisso e recepo do Selective Repeat esto ilustrados na figura 4.13.

Figura 4.13 Numerao de sequncia do ponto de vista do receptor e emissor no Selective Repeat A figura 4.13 introduz alguns conceitos relativamente janela de recepo que se descrevem (Os conceitos relativamente janela de emisso so os mesmos utilizados no Go-Back-N)

Pg 45 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Tramas utilizveis: So aquelas que tm o nmero de sequncia dentro da janela de recepo KR e podem a qualquer momento ser recebidas fora de ordem. (Caso das tramas I(6) a I(12) ) Trama esperada: Representa a prxima trama que o receptor espera receber por ordem (tem o prximo nmero de sequncia esperado), mas ainda no foi recebida. Tramas no utilizveis: So aquelas cujo nmero de sequncia est fora da janela de recepo. Como tal no podero ser recebidas. O receptor descarta todas as tramas recebidas fora da janela de recepo. Tramas recebidas fora de ordem: So aquelas que foram recebidas fora de ordem, mas cujo numero de sequncia est dentro da janela de recepo. Estas tramas so aceites e no enviada confirmao. Mais tarde ser efectuado Ack cumulativo ( o caso das tramas I(4) e I(5)). Da mesma forma que a janela de transmisso KS avana uma unidade, por cada confirmao recebida, a janela e recepo KR avana tantas unidades quantas as tramas que so recebidas sem erros e na ordem correcta. As variveis de estado utilizadas pelo receptor so as seguintes: V(R) ou receive_base: Representa o prximo n de sequncia que o receptor espera receber do emissor. (Esta varivel inicializada a zero, no incio. Ao receber uma trama, se o seu nmero de sequncia for igual ao esperado (rxseq_no = send_base), ento incrementa rxseq_no de 1. (Espera o prximo) rx_seqno: Representa o nmero de sequncia da ltima trama recebida. receive_window: Representa os nmeros de sequncia que esto dentro da janela de transmisso.

Nota: O receptor sabe se a numerao de sequncia que est dentro da janela de recepo, se a varivel receive_window se encontrar entre os valores seguintes: receive_window (receive_base) && receive_window [(receive_base) + (K-1)]

Pg 46 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Um possvel algoritmo simples de funcionamento do Selective Repeat o seguinte: ALGORITMO 2 IMPLEMENTAO DO MECANISMO SELECTIVE-REPEAT No emissor: 1- Caso o emissor tenha dados para enviar: Se o prximo nmero de sequncia X est dentro janela de emisso, envia a trama. Se X [ send_base , (send_base + Ks-1) ]: Envia a trama I(X) Utilizando retransmisso implcita: 2- Caso o temporizador de X expira: - Reenvia apenas a trama I(X). - Reinicia temporizador de I(X) - Continua normalmente (passo1) 3- Caso receba Ack(X) com X [ send_base , tx_seqno-1]: Se a confirmao se refere a uma dentro da janela Ks e j enviada: 3.1- Se X = send_base: a trama mais antiga por confirmar: - Marca trama X como confirmada (ack_seq_no) - Avana a base da janela uma unidade (send_base ++) - Continua normalmente (passo 1) 3.2- Se X send_base: trama enviada no a mais antiga por confirmar - ACK(X) confirma todas as tramas anteriores at X inclusive.(ACK cumulativo).Avana a base da janela tantas unidades quantas tramas que foram confirmadas. (send_base=send_base + X) - Continua normalmente (passo1) 4 - Caso receba Ack(X) com send_base > X > tx_seqno: Se a confirmao se refere a uma trama fora da janela Ks ou ainda no enviada: - Ignora a trama X e no efectua mais nenhuma aco consequente. - Continua normalmente (passo1) Utilizando retransmisso explicita: 5- Caso receba Nack(X) com X [ send_base , tx_seqno ]: Se a confirmao negativa se refere a uma trama enviada: - Reenvia a trama I(X) - Reinicia temporizador de I(X) - Continua normalmente (passo1) 6- Implementa todos os outros casos da retransmisso implcita.

Pg 47 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
No receptor: Utilizando retransmisso implcita: 1 - Caso o receba uma trama com nmero de sequncia X: com X [ receive_base , (receive_base + Kr-1) ]: (Se o nmero de sequncia X est dentro da janela de recepo) 1.1 Se I(X) no contm erros e X o prximo n sequencia esperado Se X = receive_base e no h tramas seguintes I(X+1) a I(X+Kr-1) no buffer - Envia ACK(X) - Entrega a trama I(X) camada superior. - Avana a janela de recepo (receive_base) uma unidade - Continua normalmente (passo 1) 1.2 Se I(X) no contm erros e X o prximo n sequencia esperado Se X = receive_base e h tramas seguintes I(X+1) a I(X+Kr-1) no buffer - Envia ACK(X+Kr-1) ACK cumulativo - Entrega camada superior todas as tramas seguidas que tenha armazenado no buffer de recepo. I(X+1) a I(X+Kr-1) - Avana a janela de recepo (receive_base) tantas unidades quanto o n de tramas seguidas que estavam no buffer de recepo. - Continua normalmente (passo 1) 1.3 Se I(X) no contm erros e X no o prximo n sequencia esperado Se X receive_base. (fora de ordem) - Armazena I(X) em memria. (Buffer de recepo) - Suspende o envio de ACKs at voltar a receber I(receive_base) - Continua normalmente (passo 1) 2 - Caso o receba uma trama com nmero de sequncia X: com X [ receive_base-1 , receive_base-K) ]: (Se o nmero de sequncia X est fora da janela de recepo) 2.1 Se I(X) no contm erros - Descarta I(X). (ignora tramas fora da janela de recepo) - Continua normalmente (passo 1) 3 - Se I(X) contm erros (No sabe se seria ou no a prxima esperada) - Descarta I(X). No efectua nenhuma aco consequente - Continua normalmente (passo 1) Utilizando retransmisso explicita: 4 - Se I(X) contm erros (No sabe o seu nmero de sequncia) - Descarta I(X). - Envia NACK(receive_base). - Inicia o temporizador de NACKs - Suspende a transmisso de ACKs at voltar a receber I(receive_base) 5 - Se I(X) no contm erros - Funciona da mesma forma que na retransmisso implcita
V2.0

Pg 48 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4.2.1 Funcionamento do Selective Repeat sem erros. O funcionamento do Selective repeat sem erros, no difere do Go-Back-N sem erros. Existe no entanto o conceito de janela de recepo. A figura 4.14 ilustra o funcionamento da janela de emisso e recepo, para o caso de Ks=Kr=4.
V2.0

Figura 4.14 Operao do Selective Repeat sem erros O emissor pode enviar tantas tramas sem necessidade de receber confirmao, quanto o tamanho da janela de emisso, aqui designada Ks. (Inicialmente pode enviar as tramas desde I(0) a I(Ks-1)). Por cada Ack recebido, a janela de emisso avana uma unidade. O receptor implementa agora tambm uma janela (janela de recepo Kr), que indica quais as tramas que poder receber fora de sequncia. Por cada trama recebida na sequncia correcta, (e respectivo Ack enviado), o receptor avana a janela de recepo uma unidade (entrega as tramas por ordem camada superior). Caso a trama recebida no seja a prxima esperada (devido a erros), o receptor aceita-a e confirma-a, se e s se esta se encontrar dentro da janela de recepo. As tramas recebidas fora de sequncia so armazenadas em memria para posterior ordenamento. Caso o nmero de sequncia da trama recebida esteja fora dessa janela, a trama descartada,. A operao com erros ser estudada com mais detalhe adiante. A Janela de recepo implementa um mecanismo de reordenamento de tramas.

Pg 49 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Note-se que no presente exemplo sem erros, e onde no existem perdas de tramas nem retransmisses, a janela de recepo intil, servindo apenas como varivel que indica ao receptor qual o numero de sequncia da prxima trama esperada. Neste caso, o funcionamento do Selective Repeat exactamente igual ao Go-Back-N e apenas difere do StopAndWait, devido implementao da transmisso de tramas em pipeline. (Janela de emisso suerior a 1) 4.2.2 Controlo de fluxo dos dados no Selective Repeat. Tal como o Go-Back-N, o Selective repeat providencia um mecanismo implcito de controlo de fluxo dos dados, denominado controlo de fluxo por janela deslizante. A quantidade de identificadores de trama limitado, bem como o tamanho da janela de transmisso. Estes factores implicam que o nmero de tramas para envio (utilizveis) seja limitado. Pode-se ento dizer que o receptor concede crdito para que o emissor transmita, pois cada vez que envia um Ack, incrementa o nmero de tramas utilizveis no emissor (provocando o avano da janela de transmisso, ilustrado na figura 4.14). Caso o fluxo de dados enviado pelo emissor seja superior capacidade de processamento no receptor, este pode simplesmente atrasar o envio dos Ack, no permitindo o avano da janela no emissor, e obter a desejada reduo de fluxo de dados. 4.2.3 Funcionamento do Selective Repeat com erros. No caso da existncia de erros de transmisso (caso real), a retransmisso das tramas de informao, pode ser efectuada de forma implcita ou explcita. (Ver seco 3.4 para mais detalhes sobre estes dois conceitos). A retransmisso explcita , mais uma vez, opcional, tem como objectivo tentar acelerar o envio de tramas erradas, e consequentemente aumentar a eficincia do protocolo. Iremos analisar o protocolo, com implementao de retransmisso implcita e explcita, em cenrios onde se perde a trama de informao, a trama de confirmao, e tambm quando a trama de informao chega com erros ao receptor. Cenrios de aplicao da retransmisso implcita: Cenrio 1 A trama de informao perde-se e no chega ao receptor. (A retransmisso efectuada pelo expirar do temporizador de transmisso, ou quando o emissor detecta uma confirmao com nmero de sequncia igual ao anteriormente recebido send_base) Cenrio 2 A trama Ack perde-se ou chega corrompida ao emissor. A retransmisso efectuada no caso da prxima trama de confirmao chegar ao emissor depois deste expirar o temporizador de transmisso. Caso chegue uma confirmao antes do temporizador expirar, esta efectua acknowledgment cumulativo).

Pg 50 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
Cenrios de aplicao retransmisso explicita: Cnrio 3 A trama de informao chega corrompida ao receptor. Descrio de cada um dos cenrios: Cenrio 1 A trama de informao perde-se e no chega ao receptor. Este cenrio, apenas permite o mtodo de retransmisso implcita, das tramas de informao perdidas. Pela figura 4.15, podemos observar que a janela de recepo, necessria para que o receptor ordene as tramas, antes de as entregar camada superior, pois com a retransmisso selectiva possvel que cheguem de tramas de informao fora de sequncia ao receptor.
V2.0

Figura 4.15 Operao com erros do Selective Repeat, com K = 4. Retransmisso implcita por perda da trama de informao O funcionamento para t=1s e t=2s, o mesmo, anteriormente estudado, para o caso em que no h erros. A janela de recepo Kr, incrementa uma unidade por cada trama correctamente recebida (sem erros e por ordem), e respectiva confirmao enviada. O receptor entrega as tramas I(0) e I(1) imediatamente camada superior do modelo OSI ou TCP/IP para processamento.

Pg 51 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Em t = 3s, a trama de informao I(2) perde-se e no chega ao receptor. O emissor ainda no recebe qualquer confirmao, mas uma vez que ainda no esgotou a janela de emisso (Ks = 4), continua a transmitir (neste caso I(3)). Ao receptor chega I(3). Atravs do valor das variveis de estado, este verifica que a prxima trama esperada I(2). No entanto, mesmo que I(3) chegue fora de ordem (cor lils), este aceita-a (no a confirma ainda) , pois o seu nmero de sequncia est dentro da janela de recepo Kr (conhecida pela varivel receive_window). Uma vez que I(3) chega fora de ordem, o receptor no avana com a janela de recepo, e a trama no entregue camada superior, para processamento. Em vez disso, I(3) guardada em memria (buffer de recepo), para posterior reordenamento. Em t=4s, t=5s e t=6s, o emissor continua normalmente a enviar as tramas de informao seguintes (I(4) e I(5) respectivamente). O receptor continua espera de I(2). Recebe I(4) e I(5), aceita-as, e coloca-as no buffer de recepo, pois estas esto dentro da janela de recepo, que continua sem avanar. Note-se que agora o receptor esgota a janela de recepo, ou seja no aceita mais nenhuma trama excepto a I(2). Entretanto, em t=6.5s, o temporizador de transmisso da trama I(2) expira sem que haja confirmao. O emissor reenvia-a. Esta era a trama que faltava ao receptor, para que a janela de recepo pudesse avanar. O receptor confirma todas as tramas consecutivas que tem guardado na memria de recepo. Para tal envia a confirmao da ltima trama que recebeu por ordem (que foi I(5)). O Ack(5) confirma I(5) e todas as tramas anteriores - Acknowledgement cumulativo). Nota: O receptor suspende o envio de Acks aps receber uma trama fora de ordem. Isto serve para evitar que o Acknowledgement cumulativo confirme erradamente as tramas ainda no rcebidas. A janela de recepo avana tantas unidades quanto o nmero de tramas previamente recebidas, confirmadas e consecutivas, que estavam guardadas no buffer de recepo. Isto permite que o receptor entregue as tramas I(2), I(3), I(4) e I(5) na ordem correcta camada superior para processamento. (Ver algoritmo 2 no receptor) Cenrio 2 A trama de informao chega corrompido ao receptor Neste cenrio, podero ser aplicados os mtodos de retransmisso implcita ou explcita. No primeiro caso, o funcionamento exactamente igual ao caso anterior, em que a trama de informao se perde. A figura 4.16 ilustra o funcionamento da retransmisso explicita, para o caso em que a trama I(2) chega com erros ao receptor. Este mtodo tambm designado Selective Reject

Pg 52 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Figura 4.16 Operao do Selective Repeat com erros numa trama de informao e retransmisso explicita Podemos verificar pela figura 4.16, que a trama I(2) chega com erros ao receptor. Este envia uma confirmao negativa, Nack(2), a indicar que a trama est incorrecta. O emissor ao receber o Nack(2), reenvia apenas a trama I(2). Ao receber correctamente I(2), o receptor responde com a confirmao da ltima trama correctamente recebida e que ainda se encontra em memria Ack(5).Tal como no cenrio anterior, utilizado acknowlegdment cumulativo, ou seja Ack(5) confirma as tramas I(2), I(3), I(4) e I(5). O funcionamento da janela de recepo, permite que as tramas sejam entregues camada superior por ordem. Note-se que na retransmisso explcita, o receptor suspende o envio de Acks, depois do envio de um Nack. (Na retransmisso implcita este facto tambm sucede, se receber tramas fora de ordem). Isto necessrio, pois cada trama Ack(X), confirma todas as tramas de informao X e anteriores. (Se assim no fosse, o receptor ao receber I(3), eventualmente enviaria Ack(3), que confirmaria tambm I(2) e esta poderia nunca ser recebida). O receptor s continua novamente a enviar Acks, aps a recepo da trama que foi confirmada negativamente pelo Nack. Neste caso, o receptor ter que implementar um temporizador para as tramas Nack enviadas, para garantir que estas so retransmitidas em caso de corrupo. Ver seco 4.1.4, figura 4.9 cenrio em que o protocolo falha)

Pg 53 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Cenrio 3 A trama Ack perde-se ou chega corrompida ao receptor. Neste cenrio, a retransmisso efectuada caso a prxima trama de confirmao chegue ao emissor depois do expirar o temporizador de transmisso (retransmisso implcita). Caso chegue uma confirmao antes do temporizador expirar, esta efectua acknowledgment cumulativo). A figura 4.17 ilustra o segundo caso deste cenrio.

Figura 4.17 Operao com erros do Selective Repeat, com K = 4. Cenrio em que se perde a trama de Ack Como se pode observar pela figura 3.17, a trama Ack(1) perde-se. Neste caso, apesar da janela de emisso no avanar, o emissor continua a enviar tramas de dados, pois a janela de emisso no esgota. A trama Ack(2), efectua a confirmao de todas as tramas anteriores at I(2) inclusive. Tal como no Go-Back-N, aplicado acknowledgement cumulativo. O emissor avana a janela de transmisso tantas unidades quanto o valor acumulado (neste caso 2 unidades) e continua normalmente a transmisso. 4.2.4 Relao entre mdulo de numerao M e janelas de transmisso K no Selective Repeat. Tal como no Go-Back-N, o mdulo de numerao ir depender do tamanho da janela de transmisso. Interessa minimizar a quantidade de identificadores disponveis para a trama, mas ao mesmo tempo garantir que as tramas de informao duplicadas so detectadas pelo receptor. Ver seco 4.1.5 para mais detalhes relacionados com o mdulo de numerao de tramas. A capacidade de deteco de tramas duplicadas avalia-se para o cenrio com erros, em que se perdem todas as tramas Ack, no sentido receptor emissor.

Pg 54 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Analisemos os casos, em que a janela de transmisso K = 3, e o mdulo de numerao toma os valores M=3, M=4 e M=6, ilustrado na figura 4.18 a), b) e c) respectivamente

Figura 4.18 Operao com erros do Selective Repeat, com K = 4. Cenrio em que se perde a trama de Ack Nos casos em estudo, os tamanhos da janela de emisso e recepo so iguais, pelo que designaremos a janela de emisso simplesmente por K. Observando com ateno a figura 4.18 a) verifica-se que com M = 3, a numerao disponvel para as tramas situa-se entre 0 e 2. Com K=3, o emissor envia as tramas I(0), I(1) e I(2) sem necessidade de confirmao. Ao receber a trama I(2), o receptor espera I(0). Ao receber I(0) aceita-a como vlida, pois a numerao repete-se ciclicamente e esta corresponde prxima trama esperada. No entanto I(0), uma trama duplicada, pois foi retransmitida, devido no recepo da confirmao por parte do emissor. Conclui-se que com M = K, no possvel que o receptor detecte tramas duplicadas.

Pg 55 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
(Esta situao idntica ocorrida com o Go-Back-N estudada na seco 41.5) A figura 3.18 b) ilustra a mesma situao de perda de todos os ACKs, mas agora com M=4 e K=3. Verifica-se que apesar de agora os identificadores se situarem entre 0 e 3, o receptor ao receber novamente I(0), aceita-a como vlida, pois apesar de no se a prxima esperada (agora a I(3)), est dentro da janela de recepo. Conclui-se que com M = K+1, no possvel que o receptor detecte tramas duplicadas. (Ao contrrio do que sucede com o Go-Back-N estudado na seco 4.1.5) Estudemos agora o caso em que M=6 e K=3, ilustrado na figura 4.18 b), onde agora a numerao de tramas se situa entre 0 e 5. Verifica-se agora que ao receber novamente I(0) o receptor descarta-a, pois encontrase fora da janela de recepo. Neste caso o receptor apenas aceitaria as tramas com numerao 3, 4 ou 5. No mecanismo Selective Repeat , para que o receptor, seja capaz de detectar tramas duplicadas, o mdulo de numerao de tramas ter que ser no mnimo igual ao dobro do tamanho da janela (equao 4.28)
V2.0

M 2K
4.2.5 Desempenho do Selective Repeat.

(4.28)

Da mesma forma que o StopAndWait, e Go-Back-N, o Selective Repeat enquadrase na categoria dos mecanismos que operam por ciclos, (ver seco 3.8). Devido funcionalidade de retransmisso selectiva, de esperar melhor desempenho do que o Go-Back_N. Mesmo assim, em determinados casos, o seu desempenho pode ser deficiente. Desempenho sem erros de transmisso Sem erros de transmisso, o desempenho do Selective Repeat , igual ao desempenho geral de um sistema em pipeline, estudado na seco 3, cuja utilizao aproximada descrita pela equao 4.15. Sendo assim, a anlise de desempenho do Selective Repeat sem erros exactamente igual anlise de desempenho do Go-Back-N, estudado na seco 4.1.6, cuja utilizao descrita pelas equaes 4.17, 4.18 e 4.19. Nada h a acrescentar relativamente ao raciocnio efectuado.

Pg 56 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Desempenho com erros de transmisso Com erros de transmisso, o clculo da durao mdia de cada ciclo de transmisso, ter na mesma que ter em conta o nmero mdio de transmisses por ciclo no sistema. O raciocnio para o clculo da utilizao do Selective Repeat com erros semelhante ao do Go-Back-N, com a utilizao descrita pelas equaes 4.20, 4.21 e 4.22. A grande diferena de anlise entre os dois protocolos est no clculo do nmero mdio de transmisses por ciclo Nt, que neste caso segue o mesmo raciocnio do StopAndWait ilustrado na figura 3.7. Isto porque por cada trama errada s h uma retransmisso. O nmero mdio de retransmisses descrito pela equao 4.12. Ento a utilizao aproximada para o Selective Repeat, desprezando tempos de processamento nos ns de rede, comprimento dos cabealhos e durao das tramas Ack e com T0=Tix+2Tp, obtm-se substituindo a equao 4.12 na equao 4.21:
___

U=

V
___

KTix KTix = (1 Pf ) N t (Tix + 2T p ) (Tix + 2T p )

(4.29)

Ou em funo de K e dos tempos de propagao:

(1 Pf ) U KTix (1 Pf ) (T + 2Tp ) ix

, KTix Tix + 2T p , KTix < Tix + 2T p


(4.30)

Ou em funo de a, dividindo ambos os termos por Tix e com a =

Tp Tix

(1 Pf ) U K (1 Pf ) ( 1 + 2a )

, K 1 + 2a , K < 1 + 2a
(4.31)

Pg 57 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

4.2.6 Consideraes finais sobre o Selective Repeat. Terminamos o estudo do mecanismo Selective Repeat, com algumas consideraes finais. Relativamente ao modo de funcionamento: O mecanismo Selective Repeat implementa a tcnica de pipelining tal como o GoBack-N, mas agora o emissor retransmite apenas a trama que se perdeu ou chegou com erros ao receptor. No h neste caso uma sobrecarga adicional do canal, com tramas retransmitidas em duplicado no caso de erros, mas o grau de complexidade aumenta consideravelmente. Esta situao conduz recepo de tramas fora de ordem. O receptor fica agora com a tarefa complexa de ordenar as tramas, antes que as possa entregar camada superior do modelo OSI (ou TCP/IP). Para que esta ordenao seja possvel, necessrio que o receptor implemente no s um buffer de recepo para armazenamento de tramas fora de ordem como tambm uma janela de recepo KR, que lhe permite limitar o nmero de tramas aceites fora de ordem e distinguir os seus nmeros de sequncia. Note-se que o tamanho do buffer de recepo no infinito e tem que ser escolhido de modo a que por um lado no seja demasiado pequeno, para que no se percam tramas, e por outro lado no seja demasiado grande, pois em caso de recepo de tramas fora de ordem aumentaria o tempo de armazenamento de tramas e conduziria a atrasos de entrega de tramas inaceitveis s aplicaes. tambm implementado um mecanismo de confirmao cumulativo em que a trama Ack(X), confirma todas as tramas de informao anteriores. Do ponto de vista do emissor, o funcionamento por janela semelhante ao Go-BackN, mas agora a complexidade aumenta porque necessrio implementar um temporizador de transmisso, por cada trama enviada. Tal como no Go-Back-N, a retransmisso pode ser implcita ou explcita, havendo tambm a necessidade de no ltimo caso o receptor implementar um temporizador para emisso das tramas de confirmao negativa (Nack), e suspender o envio de Acks e Nacks. Relativamente ao mdulo de numerao: O mdulo de numerao de tramas M=2l, necessita de l bits e depende do valor da janela de transmisso K. M 2K, para que o receptor seja capaz de detectar tramas duplicadas. As tramas tero numerao disponvel entre 0 e 2l-1.

Pg 58 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Relativamente eficincia ou utilizao: Sem erros, a eficincia do Selective Repeat igual do Go-Back-N, e verifica-se pela equao 4.22 que pode atingir os 100%, para valores de K 1 +2a. Com erros, e tal como seria de esperar, a eficincia superior do Go-Back-N, pois agora no h necessidade de retransmitir todas as tramas que se encontram na janela de transmisso, mas apenas a trama errada. Tal melhoria demonstrada comparando a equao 4.31 com a equao 4.27 Utilizao em aplicaes comerciais: O protocolo de transporte fivel utilizado na Internet TCP11 utiliza uma forma do Selective Repeat para providenciar uma transferncia de dados extremo a extremo sem erros. O TCP utilizado atravs de redes que recorrem ao protocolo IP12, para encaminhar os dados numa rede no fivel. Neste caso, o mecanismo ARQ funciona ao nvel da camada de transporte do modelo OSI. Outro dos protocolos que recorrem a uma variante do Selective Repeat o Service Specific Connection Oriented Protocol SSCOP. O mecanismo ARQ do SSCOP foi originalmente desenvolvido para ligaes de alto dbito binrio via satlite onde o produto atraso x dbito binrio elevado. Devido a esta caracterstica, o SSCOP tambm utilizado em redes ATM 13 que tambm apresentam produtos atraso x dbito binrio elevados.

TCP Transmit Control Protocol IP Internet Protocol 13 ATM Assynchronous Transfer Mode Redes de Banda Larga, com tramas de tamanho fixo designadas clulas muito utilizadas hoje em dia nas telecomunicaes.
12

11

Pg 59 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
4.3 Piggybacking At agora, temos estudado os mecanismos ARQ, com transmisso de dados unidireccional. Normalmente na prtica a transmisso dos dados fli nos dois sentidos (Emissor-Receptor e Receptor-Emissor) em simultneo (transmisso Full Duplex). Neste caso, considerando os ns A e B, a confirmao das tramas de informao enviadas no sentido A-B, pode ser efectuada pelas tramas de informao que flem no sentido B-A, evitando assim a utilizao desnecessria de tramas ACK. Note-se que caso no haja no momento dados para envio no sentido B-A, o recurso s tramas ACK continua a ser necessrio, pois cada trama de informao confirmada individualmente. Definio: Designa-se por piggybacking ou piggyback acknowledgement, a tcnica de confirmao de tramas que flem num sentido recorrendo a tramas de informao que flem no sentido oposto. Esta tcnica uma extenso ao funcionamento bsico dos mecanismos ARQ j estudados. Com a utilizao do piggybacking, cada trama de dados ter que incluir agora dois campos no seu cabealho para numerao: O primeiro inclui o nmero de sequncia da trama e o segundo inclui o nmero de sequncia utilizado para confirmao. A figura 4.19 ilustra o cabealho de uma trama de dados com este tipo de numerao.
V2.0

Figura 4.19 Formato de uma trama de informao. O campo de controlo transporta numerao de sequncia tambm para confirmao

Pg 60 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
Por conveno, as variveis utilizadas so as seguintes14: N(S) Representa o nmero de sequncia da trama corrente enviada (S = Send) N(R) Tambm denominada acnowledgement number. Indica ao emissor qual a prxima trama que o receptor espera receber. Confirma todas as tramas anteriores at N(R)-1 ACK cumulativo.(R = Receive). V(S) - a varivel de estado utilizada emisso . Representa o prximo n de sequncia que o emissor tenciona utilizar. V(R) - a varivel de estado utilizada recepo. Representa o prximo n de sequncia que o receptor espera receber do emissor. Sempre que o emissor tenha informao para enviar, efectua o seguinte procedimento: 1 Coloca o valor corrente de V(S) no campo N(S) da trama de informao. 2 - Coloca o valor de V(R) no campo N(R) da trama de informao, para indicar ao receptor que esta o prximo n de sequncia que espera receber O receptor efectua o seguinte procedimento, caso receba uma trama vlida: 1 Se tiver dados enviar: 1.1 - Coloca o valor de V(S), no campo N(S) da trama de informao. (processo normal de numerao da trama corrente). 2.2 - Coloca o valor de V(R) no campo N(R) da trama de informao, que serve para indicar ao emissor que espera que este envie a trama N(R). Este o processo de piggyback acnowledgement 2 Se no tiver dados enviar: 2.1 - Coloca o valor de V(R) no campo N(R) da trama de Acknowledge, que confirma ao emissor que recebeu a trama anterior espera dele N(R).15 Note-se que com a tcnica de piggybacking, caso existam dados para transmitir, mas no hajam dados para confirmar, a trama de informao referencia o nmero da prxima trama de dados que o receptor espera receber.
V2.0

Esta a denominao utilizada para numerao de sequncia e variveis de estado no protocolo HDLC. Um dos protocolos mais utilizados na camada de ligao de dados 15 Por uma questo de conveno, agora a trama ACK(N) confirma a trama N-1 e indica ao emissor a prxima trama que o receptor espera.

14

Pg 61 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

A figura 4.20 ilustra o funcionamento da tcnica piggybacking, com os valores das variveis de estado, num fluxo de dados bi-direccional, em que no h erros na transmisso.

Figura 4.20 Piggyback Acknowledgement com tramas de informao no sentido oposto, sem erros de transmisso. Observando com ateno a figura 4.20, verifica-se que o emissor copia os valores das variveis V(S) e V(R) para os campos N(S) e N(R) das tramas de informao transmitidas. O receptor, quando tem dados para transmitir, faz o papel de emissor, e tambm copia o valor de V(S) e V(R) para as tramas de informao. O campo N(R) serve para confirmar a trama anteriormente recebida e o seu valor indica ao emissor qual a prxima trama que o receptor espera. O ACK cumulativo implementado da mesma forma que nos mecanismos ARQ estudados anteriormente. Quando no h dados para enviar, o receptor confirma as tramas de informao, atravs de uma mensagem ACK(N), em que N contm o valor de V(R), e indica qual o valor da prxima trama de informao esperada.

Pg 62 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
5 Estabelecimento e terminao de ligaes. Durante o estudo dos mecanismos ARQ efectuado nas seces 3 e 4, assumiu-se que os protocolos eram correctamente inicializados, numa fase em que nenhuma trama circulasse no canal de comunicao, garantindo que os nmeros de sequncia iniciariam em zero em ambos os lados da ligao. Pode parecer primeira vista que esta inicializao trivial, mas h que definir por exemplo qual dos ns envolvidos responsvel por tomar a iniciativa da inicializao (comportamento do tipo Master-Slave), ou se qualquer um dos ns pode inicializar a ligao em qualquer momento (comportamento balanceado). Outro dos assuntos pertinentes tem a ver com falhas fsicas na ligao. Na presena de falhas por determinados perodos de tempo, (ou seja uma falha seguida de uma recuperao), o emissor pode continuar a tentar retransmisses durante a falha, caso no seja informado da mesma. As tramas que no tinham sido recebidas correctamente antes da falha sero recebidas erradamente aps a falha. O grande desafio est em efectuar uma constante monitorizao da ligao fsica, para que em caso de falha (por exemplo devido a quebra nos cabos de ligao), os intervenientes sejam notificados. Esta notificao evita que o ARQ continue a tentar retransmitir e permite que a camada de ligao de dados informe a camada de rede desta falha para tomar as devidas aces, como por exemplo reencaminhar os dados por caminhos alternativos. Para que as tarefas anteriores sejam garantidas, tero que existir novos tipos de tramas (alm das de informao e confirmao), que tm apenas funes de controlo e inicializao. Estas novas tramas no transportam informao. Para que os mecanismos ARQ tenham a robustez necessria para funcionar em casos de falhas fsicas nas ligaes e efectuem a correcta inicializao das variveis, necessrio que existam novas tramas: - Tramas de inicializao e trmino de ligaes. - Tramas de superviso que monitorizam a ligao fsica. A ligao de dados assim dividida em trs fazes: Fase 1 Inicializao com tramas dedicadas. No h transferncia de informao. Fase 2 Transferncia da informao. Esta a fase onde circula as tramas de informao e de superviso fsica da ligao. nesta fase que tambm ocorre o controlo de fluxo dos dados se necessrio. Fase 3 Trmino da ligao. Esta a fase em que a transferncia de dados terminou, e a ligao desligada, para poder mais tarde ser inicializada.
V2.0

Pg 63 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
5.1 Inicializao da ligao atravs do um protocolo MASTER-SLAVE Esta talvez a forma mais simples de inicializar uma ligao de dados. Um dos ns de rede configurado como MASTER (neste caso o n A). Este o nico n que tem permisses para inicializar e terminar a ligao. O MASTER sinaliza o ou os ns nas extremidades opostas das ligaes (SLAVE), que pretende inicializar a ligao. A ligao s pode no entanto ser definida como operacional ou up depois de os ns SLAVE inicializem as suas variveis e concordarem com o MASTER (atravs do envio da confirmao da inicializao ACK(INIT)). A figura 5.1, ilustra um protocolo simples MASTER-SLAVE,, com as fases de inicializao, transferncia de informao e trmino de uma ligao.
V2.0

Figura 5.1 Inicializao de uma ligao atravs de um protocolo Master9Slave O n MASTER inicializa a ligao atravs do envio de uma trama de controlo INIT. O n SLAVE responde com uma confirmao a essa inicializao. Enquanto o SLAVE no confirma a inicializao, declara a ligao como inactiva estado down. O MASTER declara a ligao no estado de inicializao init, enquanto no receber a respectiva confirmao. Nesta fase as camadas superiores, esto informadas do estado da ligao e no lhes permitida a transferncia de dados.

Pg 64 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Depois de o n MASTER declarar a ligao como operacional estado up, segue-se a fase de transferncia de dados. No final da transferncia o n MASTER sinaliza o SLAVE que pretende terminar a ligao estado disc, que concretiza aps recepo da confirmao deste trmino. Agora a ligao declarada inactiva estado down, e as camadas superiores so informadas deste facto. Este tipo de inicializao, apropriada, quando existem vrios ns de rede a partilhar a mesma ligao fsica. Como apenas um dos ns pode aceder ao meio de transmisso de cada vez, necessrio que um dos ns tenha tambm funes de coordenao do acesso ao meio funo de moderador. Nestas situaes, o MASTER tambm coordena a transferncia de informao, ou seja nenhum n de rede pode transmitir sem que este lhe d permisso. Este tipo de coordenao do acesso ao meio denominado Pooling ou vez. funo do coordenador interrogar cada n que partilha a mesma ligao. Os ns SLAVE, s podero transmitir dados, cada vez que recebem uma interrogao, e lhes permitido o acesso. No h neste caso necessidade de todos os ns saberem exactamente quando a ligao foi inicializada (sincronizao), pois o acesso coordenado exclusivamente pelo n MASTER. 5.2 Inicializao da ligao atravs do um protocolo BALANCEADO Muitas vezes prefervel que qualquer dos ns envolvidos na transferncia de informao possa inicializar a ligao, como o caso da existncia de ligaes ponto a ponto full duplex16. Neste tipo de ligaes no h necessidade de existir um n pr determinado a coordenar o acesso comunicao (moderador). Qualquer um dos ns pode iniciar ou terminar a transferncia de informao, caso tenha dados para enviar. Definio: Designa-se inicializao balanceada, a forma conceptual de inicializao de uma ligao por qualquer um dos ns intervenientes. Neste caso, recorre-se utilizao dois protocolos do tipo MASTER-SLAVE, (no emissor e no receptor) em que ambos podem em qualquer momento ter o papel de MASTER e o papel de SLAVE. O nico requisito novo neste tipo de inicializao a sincronizao dos dois protocolos, para garantir que ambos tm os mesmos perodos correspondentes aos estados operacional up e no operacional down. Note-se que se observar melhor a figura 5.1, em que a funo de MASTER atribua a apenas um n de rede, a ligao era considerada operacional (up) pelo n A, desde a recepo da confirmao da trama INIT at deciso de enviar a trama DISC. Por outro lado, ligao era considerada operacional pelo n B, desde a recepo da trama INIT at recepo da prxima trama DISC.

Ponto a Ponto Ligaes com apenas dois ns. Um em cada extremidade da ligao. Full Duplex Os dados flem em simultneo nos dois sentidos. O canal partilhado apenas por um emissor e um receptor, no havendo necessidade de coordenar o acesso ao meio de transmisso.

16

Pg 65 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

Para um protocolo BALANCEADO, o n A considera uma ligao operacional (up), se esta est operacional de acordo com o protocolo no sentido A->B e de acordo com o protocolo no sentido B->A. O n A, inicia o mecanismo ARQ no incio de um perodo de ligao operacional, e envia tramas de informao com respectivas confirmaes durante este perodo. Seguindo o mesmo raciocnio um n considera uma ligao inoperacional (down), se este se encontra neste estado, em ambos os protocolos, ou seja no sentido A->B e no sentido B->A. A figura 5.2 ilustra o funcionamento de um protocolo BALANCEADO de inicializao da ligao.

Figura 5.2 Inicializao de uma ligao atravs de um protocolo BALANCEADO Para simplificar a sincronizao, iremos assumir que cada trama INIT ou DISC de um n que esteja a actuar como MASTER (o que quer iniciar transmisso), efectua piggyback acknowledge ACK(INIT) ou ACK(DISC) para o protocolo MASTERSLAVE no sentido oposto. Desta forma uma nica trama INIT afecta ambos os protocolos MASTER e SLAVE em ambos os ns, e o sincronismo efectuado aps a recepo da mensagem isolada ACK(INIT).

Pg 66 de 67

Escola Nutica Infante Dom Henrique

Departamento de Radiotecnia

Interfaces e Transmisso de dados - 6222


Notas sobre transmisso fivel de dados
V2.0

As mensagens isoladas ACK(INIT) ou ACK(DISC) so utilizadas para confirmar as tramas INIT ou DISC respectivamente e so enviadas pelos ns que esto no momento a fazer o papel de SLAVE. Cada n que est a efectuar o papel de MASTER, continua a transmitir tramas INIT ou DISC, at receber o respectivo ACK. (caso queira inicializar ou terminar a ligao respectivamente). A componente de inicializao de um protocolo BALANCEADO, neste caso atravs do envio de INIT e espera por ambas as mensagens INIT e ACK(INIT) designado three way handshake e utilizado em protocolos de transporte, como o TCP. Existe sempre a possibilidade de ambos os ns inicializarem a ligao independentemente uns dos outros ou em simultneo como o caso ilustrado na figura 4.2, em t=2s e t=2.1s. Contudo, neste caso, os ns enviam ambos mensagens de confirmao ACK(INIT), e a ligao s declarada operacional aps a recepo de esta confirmao pr cada um dos ns.

Pg 67 de 67

Вам также может понравиться