Você está na página 1de 41

Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 1/41

Redes de Computadores
Problemas Resolvidos
{RC-ProblemasResolvidos.doc}

Introdução
1.  Suponha que 40 utilizadores partilham uma ligação de capacidade 1 Mbps. Cada utilizador transmite ao
ritmo de 100 Kbps, mas só está activo 10% do tempo.
1. 1. Admitindo que se usa a tecnologia de comutação de circuitos, quantos utilizadores simultâneos podem ser
aceites?
1. 2. Admitindo que se usa a tecnologia de comutação de pacotes, o que acontece quando se admitem no
sistema mais de 10 utilizadores? Escreva uma expressão para a probabilidade de 11 ou mais utilizadores
estarem activos simultâneamente (admita que os utilizadores são independentes entre si).

Resolução:
O contexto do problema é o da partilha da capacidade de comunicação de uma ligação por vários utilizadores; para o
efeito, são consideradas duas alternativas:

Em comutação de circuitos, a capacidade total de transmissão é dividida em vários canais simultâneos, cfr figura
MeshedNets01.b! As técnicas utilizadas comummente são FDM (Multiplexagem por Divisão da Frequência) e TDM
(Mutiplexagem por Divisão do Tempo). A pedido,
e por um algum período de tempo, cada canal é
cedido, em exclusivo, a cada utilizador: durante
esse tempo, ele dispõe de toda a capacidade desse
canal; no fim, liberta-o, e ele poderá
subsequentemente ser aproveitado por algum outro
utilizador; por ex., na figura, o canal 2 é por algum
tempo - entre T0 e T1 - utilizado pelo utilizador "1", a que se segue um período de silêncio - até T2 -, após o que é utilizado
pelo utilizador "5" (o leitor poderá reparar que o sistema telefónico tradicional funciona exactamente nestes termos).
No caso em apreço, um utilizador está activo 10% do tempo; considerando um período de 24 horas, isso volve-se em
144 minutos diários. Podemos entrever um utilizador estabelecer uma comunicação pelas 21:00, e prolongá-la até às
23:24… Durante esse tempo, precisa que lhe seja cedido um canal de 100 Kbps… pelo que fica disponível para outros
utilizadores um total de 1Mbps - 100 Kbps = 900 Kbps…
Então, nada impede que algum outro utilizador possa por
seu turno estabelecer uma conversação, seja pelas 21:15… Ele
também irá utilizar utilizar um canal de 100 Kbps; mas ainda
assim ficará sobrando para os outros utilizadores um total de
1Mbps - 2 * 100 Kbps = 800 Kbps…
Quer dizer: é possível que outros utilizadores venham a
estabelecer comunicações, seja nos instantes 21:18, 21:30, etc.
À medida que mais comunicações se estabelecem, menos
capacidade irá ficando disponível… Se ninguém terminar,
passará sucessivamente para 700, 600, … Kbps. Qual o instante em que nenhum outro utilizador mais poderá estabelecer
uma nova comunicação? Será, naturalmente, o instante em que o que ficar disponível advir insuficiente para um novo
utilizador, isto é, se tornar inferior a 100 Kbps…
Isso ocorre quando NUtilizadores = 1 Mbps / 100 Kbps = 10: este é o número máximo de utilizadores simultâneos que
podem ser aceites.
Mas, sendo de 40 o número de utilizadores, o que acontecerá aos restantes 30? Muito simplesmente, isto: vão ter que
aguardar… O primeiro utilizador irá terminar a sua conversação pelas 23:24; então, logo após, o canal que estava utilizando
ficará disponível - e por conseguinte, poderá de imediato ser desencadeada uma nova conversação por outro utilizador …
O leitor poderá verificar que, fixando o período de observação em T segs,
- 1) a capacidade da ligação (1 Mbps) se pode dividir em 10 canais (de 100 Kbps cada);
- 2) cada um deles pode ser utilizado durante T segs;
- 3) cada utilizador necessita utilizar a ligação durante 10%*T segs;
- por conseguinte, o total de utilizadores que pode ao longo de T segs vir a utilizar a ligação monta a 10 * T / (0,1*T) =
100 - o que é bem maior que os 40 referidos no enunciado…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 2/41

Em comutação de pacotes, a capacidade total de transmissão é toda ela atribuída a cada utilizador, dinâmicamente, cfr
fig MeshedtNets01.c. A pedido, e por um algum período de tempo, ele dispõe de
toda a capacidade da ligação; no fim, liberta-a, e ela poderá subsequentemente
ser aproveitada por algum outro utilizador (o leitor poderá reparar que o
sistema telegráfico tradicional funcionava exactamente nestes termos).
Em cada segundo, a ligação pode transferir um total de até 1 Mbit;
contribuindo cada utilizador activo com um total de 100 Kbit, então haverá um
problema se forem admitidos simultâneamente ao sistema mais de 10
utilizadores: a quantidade de informação que lhe é apresentada irá ultrapassar
10*100 Kbps=1Mbps, isto é, irá exceder a sua capacidade "de escoamento":
irão formar-se filas de informação à entrada do sistema, para armazenar
temporariamente o pico de informação momentaneamente gerado pelo
conjunto dos utilizadores.
Qual é a probabilidade de isso acontecer? Será, naturalmente, a probabilidade de 11 ou mais dos utilizadores advirem
activos simultâneamente.
O leitor poderá verificar facilmente que a probabilidade
- 1) de um utilizador activo é pactivo=10%=0,1
- 2) de um utilizador estar inactivo é pinactivo=90%=0,9
- 3) de nenhum dos 40 utilizadores estar activo (ou todos estarem inactivos) é P0= 0,9 *…* 0,9 = 0,940
- 4) de 1 dos utilizadores estar activo e os restantes 39 estarem inactivos é P1= C401 * 0,1 * 0,939
- 5) de i dos utilizadores estarem activos e os restantes 40-i estarem inactivos é P1= C40i * 0,1i * 0,940-i
- 6) de 0 ou 1 ou 2 ou 3 … ou 10 dos utilizadores estarem activos é P<11=P0+P1+P2+…P10
- 7) de 11 ou 12 ou 13 ou 14 … ou 40 dos utilizadores estarem activos é 1- P<11

2.  Considere uma ligação entre dois computadores, A e B, com uma capacidade de 10 Mbps. Suponha que a
distância entre os dois computadores é de 10 Km e que a velocidade de propagação na linha é de 2,5 * 108 m/s.
Suponha que A envia um pacote de 300 bits. O tempo de processamento e de atraso nas filas de espera é
desprezável.
2. 1. Qual é o atraso extremo a extremo para o pacote transmitido (entre o instante em que A envia o primeiro
bit e o instante em que B recebe o último bit do pacote)?
2. 2. A que distância de A se encontra o primeiro bit do pacote quando se termina o envio do último bit?
2. 3. Suponha que,no caminho de A para B, e a 5 Km de A, se introduz um nó de comutação "store-and-
forward". Para esta nova configuração, qual o atraso extremo a extremo do pacote?

Resolução:
O diagrama temporal correspondente à situação descrita encontra-se esquematizado em MeshedNets02.a. Foi tido em
consideração o seguinte:
O primeiro bit do pacote é enviado no instante T0 - que, sem perda de generalidade, se assume ser T0=0 seg; e logo após
o 2º, 3º, e assim por diante; até que, em T1, se dá por terminado o envio do último bit do pacote. Qual o valor de T1? Para o
seu cálculo, há que ter em conta dois factores: por um lado, a capacidade de transmissão da ligação, isto é, o ritmo a que o
meio é capaz de aceitar bits - e que no caso é de 10 Mbps; por outro lado, a dimensão do pacote - e que no caso é de 300
bit. O raciocínio subsequente é trivial: se, em cada segundo, a ligação é capaz de aceitar 10 Mbit, quanto tempo é requerido
para aceitar 300 bit? a resposta é 300/107seg: o termo do envio do último bit do pacote acontece exactamente Txmt=30 µseg
após ter começado o envio do primeiro bit.
O primeiro bit (e bem assim todos os
outros) propaga-se a 2,5*108 m/seg; com o
que, no instante T2, estará chegando a B. Qual
o valor de T2? Para o seu cálculo, há que ter
em conta dois factores: por um lado, a
velocidade de propagação da ligação, isto é,
o ritmo a que a ligação transfere os bits - e
que no caso é 2,5 * 108 m/s; por outro lado, o
comprimento da ligação - e que no caso é de
10 Km. O raciocínio subsequente é trivial: se, em cada segundo, um bit se move 2,5 * 108 m, quanto tempo é requerido para
se mover 10 Km? a resposta é 10*103/(2,5 * 108)seg: a chegada de um bit do pacote a B acontece exactamente Tprop=40
µseg após ter começado o envio desse bit a partir de A.
Txmt e Tprop designam-se, respectivamente, de Tempo-de-Transmissão e Tempo-de-Propagação.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 3/41

(Abra-se um parêntesis para uma comparação com uma situação do quotidiano: o leitor já terá experimentado tapetes ou
escadas rolantes… Admita que se encontra com mais alguns amigos, num dos extremos, seja A, de um tapete rolante e que
se interroga: quanto tempo é necessário para todos chegarem ao outro extremo, seja B? isto é, quanto tempo irá decorrer
entre o instante em que o primeiro se atreve a pôr um pé no tapete, em A, e o momento em que o último amigo abandona o
tapete, em B? O raciocínio é análogo ao desenvolvido acima, e bem assim o diagrama temporal, com as adaptações
necessárias: agora, o que conta é a velocidade de "propagação" do tapete, o comprimento do tapete, o número de amigos
envolvidos, e a capacidade do tapete (nomeadamente, um tapete em que podem ir duas pessoas ombro-a-ombro tem uma
capacidade maior do que um mais estreitinho
onde a alguém mais encorpado não seria trivial
aventurar-se…)
A partir do diagrama temporal, as respostas
às questões volvem-se em simples geometria
euclideana:
1) o atraso extremo a extremo, isto é, entre
T0 e T3 será:
[T0 a T2]+[T2 a
T3]=TPropagação+TTransmissão=40+30=70 µseg;
2) quando se termina o envio do último bit,
isto é, em T1, o primeiro bit já se encontra à
distância E de A; posto que Txmt=30 µseg, e c=2,5*108 m/seg, então E=Txmt*c=7500 m.
3) a terceira alínea envolve a introdução de um nó de comutação entre A e B - pelo que o diagrama acima já não é
aplicável! Então, que fazer? Utilizar o mesmo método acima, e que é: começar por desenhar o pertinente diagrama
temporal!
Agora, o pacote é primeiramente enviado para o nó "store-and-forward". O diagrama temporal entre A e esse nó é
semelhante ao anterior, entre A e B, com as devidas adaptações, cfr fig MeshedtNets02.b: o primeiro e último bits chegam
ao nó respectivamente nos instantes T4 e T5. Logo após aí ter chegado o último bit, isto é, em T5, desencadeia-se o envio do
pacote para B; o diagrama temporal entre o nó e B é também semelhante ao anterior, com as devidas adaptações: o primeiro
e último bits partem do nó respectivamente nos instantes T5 e T6.
A partir do diagrama temporal, as respostas às questões volvem-se em simples geometria euclideana: para facilitar,
prolonga-se a tracejado a linha que representa a trajectória do 1º bit até ao nó; seja I o ponto de intersecção desse tracejado
com a vertical em B. O atraso extremo-a-extremo, isto é, entre T0 e T3 será o somatório dos atrasos: [T0 a I] + [I a T2] + [T2
a T3], ou seja:
TPropagação+2*TTransmissão=40+2*30=100 µseg;
3.  Considere o envio de um ficheiro com F=M*L bits por um caminho com Q ligações. Cada ligação tem
débito R bit/seg. A rede está pouco carregada, pelo que não há atrasos em filas de espera. Os atrasos de
propagação são igualmente desprezáveis. Quando se usa uma qualquer tecnologia de comutação de pacotes,
assume-se que o ficheiro é segmentado em M pacotes, cada qual com L bits. Para cada uma das alternativas
seguintes, quanto tempo demora a transferência do ficheiro?
3. 1. Suponha que usa tecnologia de comutação de pacotes por circuitos virtuais. O tempo necessário ao
estabelecimento de um VC é ts segundos. Cada pacote tem um cabeçalho de h bits.
3. 2. Suponha que usa tecnologia de comutação de pacotes por datagramas. Cada pacote tem um cabeçalho de
2h bits. Comente a hipótese de o cabeçalho dos pacotes em datagrama ser maior do que o cabeçalho em
circuitos virtuais.
3. 3. Suponha que usa tecnologia de comutação de mensagens. As mensagens têm um cabeçalho de 2h bits.
3. 4. Suponha que usa tecnologia de comutação de circuitos. O tempo necessário ao estabelecimento de um
circuito é ts segundos, e são necessários h bits de cabeçalho para transferir o ficheiro.

Resolução:
Conforme ao método seguido na resolução de problemas anteriores similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação descrita. No tocante à primeira alínea, cfr MeshedNets03, foi tido
em consideração o seguinte:
Antes de mais, é necessário estabelecer um circuito virtual. Ele envolve a troca das pertinentes mensagens call/accept,
entre os instantes T0 e T1, em que, conforme ao enunciado, T1 - T0 = ts.
No instante T1, é enviado o primeiro bit do primeiro pacote, e logo após o 2º bit, o 3º bit, e assim por diante; até que, em
T2, se dá por terminado o envio do último bit do primeiro pacote. Quanto tempo decorre entre T1 e T2? Considerando a
capacidade de transmissão da ligação - que é de R bps - e a dimensão do pacote - que é de L+h bit -, aquele tempo
vem a ser exactamente Txmt =(L+h)/R seg.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 4/41

No instante T2, é enviado o primeiro bit do segundo pacote; este irá demorar também Txmt seg a enviar… A intervalos de
Txmt segundos, são enviados, um após outro, por ordem e "colados" entre si, os restantes pacotes.. até que, em T4, termina o
envio do último pacote. O tempo total gasto a despachar o ficheiro foi então de M * Txmt segundos.
O primeiro pacote, entretanto, fez o seu caminho até ao primeiro nó: um a um, os seus bits são recebidos por esse nó…
e, logo que aí tiverem todos aportado, - isto é,
quando já aí estiver todo o primeiro pacote -,
desencadeia-se o seu envio para o segundo nó…
E este funcionamento há-de repetir-se para o
segundo pacote, e para o terceiro,… etc., e para o
segundo nó, e para o terceiro, …, etc….
No diagrama, estão etiquetados com T3, T5,
T6, etc., os instantes em que o primeiro bit de
cada um dos sucessivos pacotes vem a chegar ao
destino final B; T7, por seu turno, marca o
instante em que chega ao destino o último bit do
ficheiro.
A partir do diagrama temporal, a resposta à
questão posta volve-se em simples geometria
euclideana: trata-se de determinar o tempo que
medeia entre T0 e T7. Se o desenho estivesse à
escala, seja 1 mm por cada mseg, bastaria colocar
uma régua em cima da vertical que passa por B e
medir… Em alternativa, e para facilitar, prolongam-se a tracejado as linhas que representam as trajectórias do 1º bit de cada
pacote; seja I0, I1,… os pontos de intersecção desses tracejados com a vertical em B. O atraso extremo-a-extremo, isto é,
entre T0 e T7 será o somatório dos atrasos parciais: [T0 a I0] + [I0 a I1] + [I1 a T3] + [T3 a T5] + [T5 a T6] + … + [… a T7], ou
seja, Ts+n* Txmt; em que n representa o número de atrasos parciais, todos iguais a Txmt, entre I0 e T7. E que deixamos ao
leitor verificar que montam exactamente a n=(Q-1) + M…
Concluindo, Tficheiro=ts+(M+Q-1)*(L+h)/R seg

Para a resolução da segunda alínea, segue-se o mesmo método: desenha-se um diagrama temporal que esquematize
fielmente a situação descrita - e, depois, recorre-se à geometria euclideana
No caso, o diagrama é quase uma cópia do anterior: a diferença vem a ser (porque o contexto agora é o da comutação
de pacotes por datagramas) a ausência do período de estabelecimento de um circuito virtual.
Intui-se que, no final, virá a ser Tficheiro=(M+Q-1)*(L+2*h)/R seg

Para a resolução da terceira alínea, segue-se o mesmo método: desenha-se um diagrama temporal que esquematize
fielmente a situação descrita - e, depois, recorre-se à geometria euclideana
No caso, o diagrama é uma simplificação do anterior: porque o contexto agora é o da comutação de mensagens, tudo
se passa como se o número de datagramas ficasse reduzido a um único, seja P1, de comprimento F, isto é, suficientemente
grande para lá caber toda a mensagem.
Pelo que, no final, sendo M=1 e L=F, virá a ser Tficheiro=Q*(F+2*h)/R seg

Para a resolução da quarta alínea, segue-se o mesmo método: desenha-se um diagrama temporal que esquematize
fielmente a situação descrita - e, depois, recorre-se à geometria euclideana.
No caso, o diagrama é uma simplificação daquele desenhado a propósito da primeira alínea: porque o contexto agora é o
da comutação de circuitos, tudo se passa como se não houvesse nós entre A e B - e, por conseguinte, Q=1. Pelo que, no
final, a solução será Tficheiro=ts+ (F+h)/R seg; isto poderá ser conseguindo:
- enviando a mensagem de uma só vez, isto é, M=1, L=F, com um cabeçalho de h bits;
- segmentando a mensagem em M pacotes de comprimento L, e enviando-os, cada qual com um cabeçalho de tamanho
h/M bit.

4.  Considere o envio de informação de voz em tempo-real da estação A para a estação B. O caminho de A para
B é constituído por uma única ligação com débito 1 Mbit/seg, e introduz um atraso de propagação igual a 2
mseg. Emprega-se uma tecnologia de comutação de pacotes. A estação A converte, em tempo-real, o sinal de
voz num fluxo contínuo de bits de débito 64 K bit/seg. Estes bits são depois agrupados em pacotes com 48
bytes e enviados à estação B. Pretende-se saber qual o atraso na recepção da informação de voz, medido este
desde o instante em que um bit é gerado em A até que é reproduzido em B.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 5/41

Resolução:
Conforme ao método seguido na resolução de problemas anteriores similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize
fielmente a situação descrita. O diagrama
temporal correspondente à situação descrita
encontra-se esquematizado em
MeshedNets04. Foi tido em consideração o
seguinte:
A voz é primeiramente digitalizada,
mediante um conversor Analog/Digital; o
fluxo contínuo de bits daí resultante é
agrupado em pacotes; logo que um pacote
está cheio, é de imediato despachado para a
estação B; aí, e após ter sido recebido o
último bit de cada pacote, a informação
binária que transporta é, mediante um conversor Digital/Analog, devolvida à forma "voz".
Considere-se o trajecto de um bit individual, seja aquele que é gerado no instante T0. Ele é memorizado em A, e fica
aguardando que sejam gerados os restantes bits que faltam para preencher o pacote em que ele é embebido. No instante T1,
acaba o preenchimento desse pacote - e começa de imediato a sua transmissão, para B: um após outro, os bits são
despachados para B, ao ritmo de 1 Mbps. O primeiro bit desse pacote chega a B no instante T5; o último irá chegar no
instante T3. Imediatamente após, os bits do pacote serão apresentados ao conversor D/A; em particular, o bit que havia sido
gerado em T0 será apresentado ao conversor no instante T4…
A partir do diagrama temporal, a resposta à questão posta volve-se em simples geometria euclideana: trata-se de
determinar o tempo que medeia entre T0 e T4. Ele será o somatório dos atrasos parciais:
[T0 a T1] + [T1 a T5] + [T5 a T3] + [T3 a T4].
O leitor pode verificar que
- [T0 a T1] + [T3 a T4] = TEmpacotamento , isto é, o tempo que A leva a compôr/decompôr um pacote
- [T1 a T5] = TPropagação, isto é, o tempo necessário para um bit se propagar de A até B (e que é 2 mseg)
- [T5 a T3] = TTransmissão, isto é, o tempo que A leva a transmitir (ou B a receber) um pacote.
Os tempos acima referidos são: TEmpacotamento = 48 * 8/(64*103) e TTransmissão = 48 * 8/(1*106)
Pelo que a resposta final vem a ser : 48 * 8/(64) + 48 * 8/(1*103) + 2 = 8,384 mseg.

Camada de Aplicação
5.  Pretende-se estimar o tempo necessário à
recuperação de um documento da Web. O
documento é constituído por um objecto HTML base
que referencia três imagens. A dimensão do objecto-
base e das imagens é desprezável, o que significa
que os tempos de transmissão dos objectos são
também desprezáveis. O tempo-de-ida-e-volta entre
o local onde acede à Web e o local onde se encontra
o documento é representado por RTT. Qual o tempo
necessário para recuperar o documento,
5. 1. se usar HTTP não-persistente sem sessões TCP
paralelas?
5. 2. se usar HTTP não-persistente com sessões TCP
paralelas?
5. 3. se usar HTTP persistente (com pipelining)?

Resolução:
Conforme ao método seguido na resolução de
problemas anteriores similares, a primeira etapa é:
desenhar um diagrama temporal que esquematize fielmente a situação descrita. O diagrama temporal correspondente à
situação descrita encontra-se esquematizado em Web01. Nele, o Cliente e o depositário do documento são designados
respectivamente de A e B. Foi tido em consideração o seguinte:
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 6/41

O protocolo utilizado é HTTP, que se suporta em TCP; pelo que, em ordem a recuperar o objecto-base, há que
estabelecer primeiro uma conexão-TCP entre A e B. Ela é iniciada no instante T0; RTT segundos depois, em T1, chega o
correspondente accept... De imediato, A envia uma mensagem-HTTP (Get), referindo o objecto-base; B replica devolvendo
esse Objecto e (tratando-se de HTTP não-persistente) desencadeando de imediato o fecho da conexão-TCP. Em T2, chega a
A o objecto-base.
Para obter a primeira imagem referenciada, segue-se um procedimento análogo: estabelecimento de uma conexão-TCP,
imediatamente seguida de uma mensagem Get referindo essa imagem; e subsequente devolução dessa imagem, e terminação
da conexão-TCP… Para obter as duas imagens seguintes, repete-se o procedimento…
A partir do diagrama temporal, a resposta à questão proposta volve-se em simples geometria euclideana: trata-se de
determinar quanto tempo medeia entre T0 e T6. Ele será o somatório dos tempos parciais [T0 a T1] + [T1 a T2] +[T2 a T3]
+[T3 a T4] … [T5 a T6], que se volve em 4 * (2 * RTT) = 8 RTT.

Para a resolução da segunda alínea, a primeira etapa é,


de novo: desenhar um diagrama temporal que esquematize
fielmente a situação descrita.
Ele vem a ser muito semelhante ao anterior, cfr fig Web02.
A diferença é o que acontece após a recepção do Objecto-
base, em T2: o Cliente de imediato dá início ao
estabelecimento de três conexões-TCP com o Servidor, B; e,
quando receber os subsequentes accept, em T3, despacha de
imediato três mensagens Get referindo as várias imagens,
uma por cada comexão; B replica com a devolução das
imagens e a terminação das conexões-TCP…
A partir do diagrama temporal, a resposta à questão
proposta volve-se em simples geometria euclideana: trata-se
de determinar quanto tempo medeia entre T0 e T4. Ele será o somatório dos tempos parciais [T0 a T1] + [T1 a T2] +[T2 a T3]
+[T3 a T4], que se volve em 2 * (2 * RTT) = 4 RTT.

Para a resolução da terceira alínea, a primeira etapa é, de


novo: desenhar um diagrama temporal que esquematize
fielmente a situação descrita.
Ele vem a ser muito semelhante ao anterior, cfr fig Web03.
A diferença é o que acontece após a recepção do Objecto-
base, em T2: em HTTP persistente, o Servidor não fecha logo
a conexão quando devolve o Objecto solicitado; pelo que, e
utilizando-se HTTP paralelo (com "pipelining"), o Cliente
pode despachar de imediato três mensagens Get referindo as
várias imagens, todas pela conexão já estabelecida; B replica
com a devolução das imagens…
A partir do diagrama temporal, a resposta à questão proposta volve-se em simples geometria euclideana: trata-se de
determinar quanto tempo medeia entre T0 e T4. Ele será o somatório dos tempos parciais [T0 a T1] + [T1 a T2] +[T2 a T4],
que se volve em ((2 + 1 )* RTT) = 3 RTT.
Abra-se um parêntesis: no contexto de HTTP-persistente, é também concebível a alternativa série (não-pipelining). Qual
seria, nesse caso, o tempo necessário para recuperar o documento? O leitor pode verificar que ele monta a (2+3)*RTT = 5
RTT.

6.  Suponha que se pretende recuperar uma página HTML, com determinado URL. Contudo, o endereço-IP do
servidor HTTP que aloja a página não está guardado na sua estação; pelo que é necessário recorrer ao DNS.
Suponha, então, que é necessário consultar n servidores DNS, até obter o endereço-IP do servidor que contém a
página desejada, e suponha também que a pesquisa é recursiva. O tempo-de-ida-e-volta entre a estação e o
servidor DNS local é RTT1, e o tempo-de-ida-e-volta entre o (i-1)ésimo e o iésimo servidor DNS é RTTi. O
tempo-de-ida-e-volta entre a estação e o servidor RTTP é RTT0. Desprezando a dimensão da página HTML,
diga qual o tempo necessário à sua recuperação.

Resolução:
Conforme ao método seguido na resolução de problemas anteriores similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação descrita. O diagrama temporal que corresponde à situação
descrita encontra-se esquematizado em Web04. Foi tido em consideração o seguinte:
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 7/41

No instante T0, a estação envia um


request ao servidor-DNS local, DNS1;
no instante T1, ele chega a esse servidor;
de imediato, ele envia um request ao
servidor-DNS seguinte, DNS2; e assim
sucessivamente… até que, ao ser
interrogado o n-ésimo servidor-DNS,
este devolve um reply. Ele é propagado,
de DNS em DNS, até atingir a estação…
Esta, então, estabelece uma conexão-
TCP com o servidor do documento
HTML pretendido, e, após o envio de
uma mensagem Get, obtém esse
documento (Repare-se: no contexto
"HTTP", é imprescindível estabelecer uma conexão-TCP antes de enviar o Get; mas, no contexto "DNS", tal não é assim: o
request não requere o estabelecimento de uma conexão…).
A partir do diagrama temporal, a resposta à questão proposta volve-se em simples geometria euclideana: trata-se de
determinar quanto tempo medeia entre T0 e T2n+4. Ele será o somatório dos tempos parciais [T0 a T2n] + [T2n a T2n+2] +[T2n+2
a T2n+4], que se volve em Σ RTTi + 2 RTT0.
(Repare-se que o tempo entre Tn-1 e Tn+1é de RTTn; o tempo entre Tn-2 e Tn+2é de RTTn-1+ RTTn…)
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 8/41

Camada de Transporte
7.  Considere um protocolo stop and wait para o envio de pacotes de dados de uma estação A para uma estação
B. A especificação do protocolo impõe apenas que todos os pacotes de dados enviados por A sejam
eventualmente recebidos em B, e que B saiba identificar pacotes de dados duplicados, para assim os descartar.
7. 1. Suponha que o canal de comunicação bi-direccional que une a estação A à estação B pode corromper ou
perder pacotes mas que, quando não são perdidos, os entrega sequencialmente ao destinatário. Os pacotes de
dados a enviar de A para B são numerados módulo 2. Mostre através de um exemplo que, se os Acks
enviados de A para B não forem numerados, então o protocolo não satisfaz a especificação.
7. 2. Suponha que o canal de comunicação bi-direccional que une a estação A à estação B pode corromper,
perder e re-ordenar pacotes. Suponha ainda que o atraso máximo de um pacote no canal de comunicação é T
segundos, e que a estação A transmite a um débito máximo de R pacotes/seg. Que valores para o módulo de
numeração de pacotes e de Acks satisfazem a especificação do protocolo?

Resolução:
1) O diagrama temporal TCP04.a esquematiza uma evolução possível: A submete ao nível transporte quatro mensagens,
M0 a M3. Para efeitos de comunicação com B, A embebe-os em segmentos. Ademais de outros campos, cada segmento
detém um campo Numeração, um campo Dados e um campo Check-sum.
Numeração Outros campos Dados Check-sum
No tocante a M0, A encapsula-o num segmento, S0; em termos práticos, o campo Dados será preenchido com os bits de
M0, o campo Numeração é posto a 0, e no campo Check-sum são vertidos os bits apropriados ao algoritmo em vigor para
detecção de erro… Após o que despacha S0 para B… Ao chegar a B, o segmento
é testado e, não tendo ocorrido erros, M0 é extraído da campo Dados, e passada
ao nível Utilizador - e é devolvido a A o correspondente Ack. Quando este
chegar a A, o nível transporte pode dar início à transmissão da mensagem
seguinte, M1; o procedimento é análogo…
Realce-se que a numeração dos segmentos é feita em módulo-2, isto é:
conquanto estejam em jogo quatro mensagens, são utilizados apenas dois
valores para distinguir os segmentos, no caso os valores 0 e 1.
No que toca à troca das duas primeiras mensagens, isso não dá azo a
confusões: o protocolo utilizado é Stop-and-wait, isto é, dá-se início ao envio de
M1 apenas depois de ter sido recebido o Ack correspondente a M0… Mas essa é
uma situação ideal: não há erros…
Que acontecerá no mundo real, em que há erros? Existem duas situações
possíveis:
1. uma delas é a ocorrência de erros/perda no segmento transmitido de A
para B, seja aquele, S0, que transporta M2; por aplicação do algoritmo acima
assinalado, há alguma probabilidade de B chegar a detectar que o segmento está
errado - pelo que: B não devolverá Ack! consequentemente, A não receberá Ack
- e isso levanta uma questão: como evitar que A fique indefinidamente à
espera?! A resposta é: dotando A de um relógio: imediatamente após o envio do último bit de um segmento, S0 ou S1, A
dispara um relógio, por um certo período, seja Ttimeout. Se o Ack chegar antes de ter decorrido esse período, esse relógio será
cancelado; caso contrário, A deverá admitir que o Ack não virá, pelo que deverá tomar as medidas apropriadas,
nomeadamente: retransmitir o (último) segmento enviado. O diagrama temporal contempla este caso: aquando do envio de
M2, o timeout expira, e S0 é retransmitido; à segunda tentativa, não ocorrem erros de comunicação, e o Ack vem a ser
devolvido; mas, se voltara a acontecer erros de comunicação, o timeout teria voltado a expirar - e A teria que voltar a
retransmitir S0 - como regra, até um número máximo de vezes, após o que seria porventura aconselhável empreender outras
medidas (pode acontecer que, por ex., B esteja power-off…).
2. uma outra situação possível é a ocorrência de erros/perda no Ack devolvido de B para A; considere-se aquele que
corresponde ao segmento, S0, que transporta M4, cfr figura TCP04.b; de novo, A não receberá um Ack válido! Pelo que o
timeout irá disparar - com a sabida consequência: A irá retransmitir S0,
isto é: B, que já recebeu S0, irá recebê-lo outra vez… Quer dizer: existe
uma ameaça de duplicação de informação em B. Como superá-la? A
resposta é: dotando B de uma variável de estado, w, que pode assumir
dois valores, 0 e 1, que especifica qual o segmento que B está
aguardando. No arranque, w=0, isto é, está-se aguardando o segmento
S0. Logo após a chegada deste, aquela variável evolui para w=1…. À
medida que forem chegando segmentos válidos cujo campo Numeração
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 9/41

coincide com o valor dessa variável de estado, assim ela muda de valor… E que acontece se isso não acontecer, como é o
caso da retransmissão do segmento S0 que transporta M4 - que vai atingir B quando w=1? O seguinte: B descarta o campo
Dados desse segmento, mas devolve Ack…Desse modo, não chega a haver duplicação de informação em B, e A é alertado
para o facto de M4 já estar em B…
Abra-se um parêntesis para sublinhar: a w, dá-se o nome de aresta inferior da janela de recepção. No caso presente, ela
tem dimensão 1 (i.e., em Stop-and-wait, B está esperando no máximo um segmento de cada vez)

Com a adição de um relógio e da variável de recepção w, o protocolo fica satisfazendo a especificação, as mensagens
M0, …, M4 estão sendo entregues por ordem… pelo que está ainda por responder a questão enunciada: Onde está a falha do
protocolo?
Antes de mais, uma pergunta: Quanto deve ser Ttimeout? Obviamente,
deverá ser suficientemente grande para cobrir o tempo que demora até A
receber o Ack devolvido por B (senão, existiria o risco de A perder
tempo a retransmitir um segmento bem recebido - apenas porque não
esperou o tempo suficiente para receber o Ack devolvido a propósito).
Seja RTT o tempo que medeia entre o instante em que último bit de um
segmento foi despachado para o canal de comunicação e o instante em
que se acaba de receber o correspondente Ack. Então, Ttimeout deverá ser
não inferior a RTT. Mas não deve ser muito maior do que RTT: se,
efectivamente, um segmento tem que se retransmitido, porque a sua
última tentativa de transmissão se gorou, convém, por mor de eficiência,
não hesitar tempo demasiado…
Considere-se então o seguinte cenário: em determinado momento,
avalia-se a quanto monta RTT - e fixa-se Ttimeout algo superior a RTT. Ora pode acontecer que, algum tempo após, em
virtude de maior tráfego na rede de comunicação, RTT advenha bem maior… Pelo que o relógio vem a disparar antes de ter
sido recebido o Ack correspondente a um segmento bem recebido. O diagrama temporal TCP04.c esquematiza esse cenário.
O segmento, S1, que transporta M5, chega a B, é aceite, e é devolvido o
correspondente Ack… Este, todavia, atrasa-se a chegar a A; pelo que,
decorridos Ttimeout, o relógio expira… A retransmite S1, a que B responde
com novo Ack… Entretanto, o Ack atrasado chega enfim a A; este de
imediato dá início à transmissão de M6, mediante S0… Logo após, chega o
Ack correspondente à recepção do segmento que havia sido
retransmitido… A, crendo, erroneamente, que tal Ack diz respeito a S0,
passa de imediato a enviar a Mensagem M7, mediante S1… Se,
eventualmente, S0 se corromper, B ainda permanecerá aguardando com
w=0 quando S1 o atingir - pelo que se descartará dele… O leitor poderá
verificar que as mensagens M6 e M7 não virão a ser entregues ao Utilizador
em B: o protocolo falhará…

2. A segunda alínea supõe um canal que pode re-ordenar pacotes…


Quer dizer, A pode enviar dois segmentos, seja S0 - S1, e a B chegarem
esses dois segmentos mas por ordem inversa: S1 - S0. Terá isso alguma
relevância quando a filosofia em jogo é StopAndWait - isto é, precisamente
quando A pode enviar S1 somente depois de ter recebido o Acknowledge
relativo a S0 - o que parece afastar a eventualidade de S1 chegar antes de S0? De facto, tem: o último exemplo
esquematizado testemunha exactamente o envio de um segmento, S0, sem antes A ter recebido o Acknowledge
correspondente ao segmento que o precedeu, S1.
Para a resolução da segunda alínea convém então desenhar um diagrama temporal envolvendo uma situação similar: o
disparo de um timeout imediatamente seguido da recepção de um Ack atrasado. Naquele que é apresentado em TCP05,
assumiu-se que o módulo de numeração é 3. Nele,
- a mensagem M0 é comunicada de A para B, sem percalços: ela é encapsulada no segmento S0, após o que segue o seu
caminho até B; este devolve um Ack numerado, Ack1, - cujo número (1) é exactamente o valor com que ficou a aresta
inferior da sua janela de recepção, i.e., é o número do segmento que B ficou aguardando…
- já com M1, transportada em S1, vem a existir um contratempo: a correspondente confirmação de boa recepção, Ack2,
atrasa-se…
- pelo que o timeout vem a expirar: M1 é retransmitida, de novo encapsulada no segmento S1;
- logo após o envio do primeiro bit de S1, chega o primeiro bit do Ack atrasado;
- pelo que o receptor pode dar M1 por bem recebida e desencadear a comunicação de M2, mediante S2; B replicará com
Ack0;
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 10/41

- sucessivamente, na recepção de Ack0, Ack1, Ack2,… A envia as mensagens M3, M4 e M5, suportadas respectivamente
nos segmentos S0, S1, S2… No que se segue, representar-se-á por Si(Mj) o segmento Si veiculandoa a Mensagem Mj.
Não se pode olvidar, entretanto, o segmento, S1(M1), que havia sido transmitido aquando do expirar do timeout: em
algum momento - no prazo máximo de T segs - ele irá findar o seu percurso pela rede… Que acontecerá se chegar a B
antes de S2(M2)? O seguinte: como B já está esperando S2, (w=2), S1(M1) será descartado; e o mesmo lhe sucederá se
chegar logo após S2 (porque então encontrará w=0). Mas sorte diferente terá se fizer a sua aparição após S0 ter chegado a B
- isto é, quando B já estiver esperando um segmento numerado precisamente 1! B aceitará como válido esse segmento - e
passará ao Utilizador uma nova cópia de M1! Em contrapartida, descartará o segmento, S1, que transporta M4,…
Este funcionamento é péssimo. A sua causa é óbvia: se, quando S1(M1) chegasse a B, a janela de recepção fôra outro
valor que não 1, ele seria descartado! Para o lograr, bastaria escolher um módulo de numeração maior. Se ele fôsse 4, por
ex., então B ainda estaria com w=0 e descartaria esse S1 atrasado. A não ser, é claro, que S1(M1) se atrasasse ainda mais…
Claramente, o módulo de numeração a escolher depende do atraso sofrido por S1 na rede… Ele deve ser escolhido por
forma a que o avanço da aresta inferior da janela de recepção, w, para w=1, deve ser feito após S1(M1) chegar, ou seja, o
primeiro bit de S0(M3) deve chegar a B após o primeiro bit de S1(M1)!
Sendo R pkt/seg o débito máximo, então o tempo que demora a transmitir/receber um pacote é de Txmt=1/R seg/pkt. Seja Ta
o instante em que é enviado o primeiro bit de S1(M1), e Tb o instante em que é recebido o último bit de S1(M1); conforme ao
enunciado, Tb=Ta+T. Seja M o módulo de numeração.
O instante em que chega a B o primeiro bit de S1(M1) é TM1=Tb-Txmt.
O instante em que é recebido o primeiro bit de S0(M3) é TM3=Ta+Txmt+Tprog+[Txmt+RTT]*(M-2).
Para um bom funcionamento, TM1 < TM3; admitindo Tprop≈RTT/2, deduz-se, por manipulações alébricas triviais,
Tb-Txmt < Ta+Txmt+ RTT/2+[Txmt+RTT]*(M-2)
M > [T + 3 RTT / 2)]/ (1 / R + RTT)
O termo à direita na inequação acima é uma função decrescente com RTT: o seu valor máximo é obtido com RTT=0;
por substituição, obtém-se M > T/(1/R) ou seja, enfim, M > RT.

8.  Considere os protocolos GoBackN e SelectiveRepeat, desenhados para um canal que garante entrega
sequencial de pacotes. Suponha que o espaço para numeração de pacotes tem dimensão K, isto é, os pacotes são
numerados módulo K. Quis as dimensões máximas das janelas?

Resolução:
A resolução de problemas anteriores acentuou já que a situação mais crítica ocorre quando o timeout dispara, com a
conhecida reacção de A: retransmitir o segmento ainda não confirmado mais antigo. A situação é crítica porque, quando
reage, A não sabe se o segmento ainda por confirmar foi ou não bem recebido por B. Quais as consequências desta
"ignorância"? a propósito, convém esquematizar o diagrama temporal respeitante à situação: envio de uma janela completa,
de A para B, cuja transmissão é bem sucedida - seguido de um timeout
(porque os Acks devolvidos se perdem ou se atrasam)…
Nos diagramas temporais apresentados, assumiu-se que o tamanho da
janela de transmissão é WT=4., e que de início, a aresta inferior da janela de
recepção de B está a w=0

1. GoBackN
O receptor tem janela de recepção de dimensão WR=1, i.e.: B está
disponível para receber um segmento apenas (S0). À medida que vão
chegando os vários segmentos, "roda" sucessivamente para w=1, w=2, w=3,
w=n. Qual deverá ser o último valor, n? claramente, existem duas
alternativas: 4, ou 0. A questão é saber qual delas é a correcta…
A decisão é ditada pelo comportamento de A: quando ocorre o timeout, ele retransmite a mensagem M0, embebida no
segmento S0, cfr figura TCP06.a Se w estivesse a 0 quando esse segmento chegasse a B, ele seria aceite como válido e o seu
conteúdo, M0, passado ao Utilizador: haveria duplicação da informação! Pelo que nesse momento w não deverá estar a 0:
há que escolher a alternativa n=4; por conseguinte, para numerar os segmentos há que dispôr de pelo menos 5 (cinco)
identificadores diferentes: o módulo de numeração deve ser pelo menos 5 - ou, mais geralmente, K ≥ WT + 1 ou WT ≤ K-1.

2. SelectiveRepeat
O receptor tem janela de recepção de dimensão WR=4. B está disponível para receber os segmentos S0, S1, S2 e S3.
Depois, à medida que vão chegando os vários segmentos, "roda" sucessivamente para w=1, w=2, w=3, w=n. Quando w=1,
é tentador afirmar que B ficou disponível para receber os segmentos S1 a S4; mas tal seria estabelecer a priori a necessidade
de pelo menos 5 identificadores, o que está por demonstrar… Se bastassem 4 identificadores apenas, B teria ficado
disponível para receber os segmentos S1, S2, S3 e S0. Ambas as situações ficam cobertas afirmando que, quando a aresta
inferior da janela de recepção é n, B está disponível para receber os segmentos cujos identificadores pertençam ao conjunto
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 11/41

Wn={n , n+1 (módulo K) , …, n+3 (módulo K)} em que cada termo n+i (módulo K) significa o resto da divisão de n+i por
K.
Qual deverá ser o último valor, n? claramente, existem duas
alternativas: 4, ou 0. A questão é saber qual delas é a correcta…
A decisão é novamente ditada pelo comportamento de A: quando
ocorre o timeout, ele retransmite a mensagem M0, embebida no
segmento S0, cfr figura TCP06.b. Se 0 fizesse parte de Wn, então, quando
esse segmento chegasse a B, ele seria aceite como válido e o seu
conteúdo, M0, passado ao Utilizador: haveria duplicação da
informação! Pelo que nesse momento Wn não deverá conter 0: há que
escolher a alternativa Wn = {4, 5, 6, 7}; por conseguinte, para numerar
os segmentos deverão existir pelo menos 8 (oito) identificadores
diferentes: o módulo de numeração deve ser pelo menos 8 - ou, mais
geralmente, K ≥ 2 * WT ou WT ≤ K / 2.

9.  Considere um caminho de 5000 Km de comprimento com atraso de propagação igual a 5 µseg/Km, e sobre o
qual consegue transmitir a um débito máximo de 100 Mbps. Suponha que usa um algoritmo de janela deslizante
para controlo de erros e controlo de fluxo. Cada pacote tem 1000 bits. Se usar Go-Back-N, qual a dimensão
mínima da janela, em número de pacotes, que garante uma eficiência de utilização do caminho de 100%? E se
usar Selective-Repeat?

Resolução:
Conforme ao método seguido na resolução de problemas similares, a primeira etapa é: desenhar um diagrama temporal
que esquematize fielmente a situação descrita. O diagrama temporal correspondente à situação descrita encontra-se
esquematizado em TCP07. Nele, foi tido em consideração o seguinte:
- no instante T0, A desencadeia o envio do segmento S0, bit após
bit;
- no instante T1, finda o envio desse segmento; o tempo nisso
despendido, Txmt=T1-T0, dito tempo de transmissão , é dado por
1000/(100*106)=10µseg;
- logo após, sem qualquer interrupção, A desencadeia o envio do
segmento seguinte, S1;
- este "ciclo" de envio contínuo de segmentos prossegue até A ter
completado a transmissão dos Wt segmentos cobertos pela janela de
transmissão (por mor de comodidade de desenho, no diagrama
admitiu-se que ela tem dimensão Wt=2; pelo que o último segmento a
ser transmitido é S1, cuja transmissão cessa no instante T2);
- transmitido o último segmento que faz parte dessa janela, A aguarda que lhe chegue, do outro extremo, B, a
confirmação de boa recepção de, ao menos, um segmento…
- entretanto, S0 propaga-se… O seu primeiro bit chega a B no instante T6; e o seu último bit chega a B no instante T7; de
imediato, B testa o segmento chegado - e, não detectando a presença de erros de transmissão, devolve a confirmação de boa
recepção, sob a forma de um segmento, Ack1;
- no instante T3, esse segmento, Ack1 chega a A; de imediato, A desencadeia o envio do segmento seguinte, S2; pouco
depois, em T4, chega nova confirmação de recepção, Ack2, e A envia o segmento seguinte… e assim continua até esgotar de
novo a janela de transmissão…
Do diagrama temporal, é patente que o comportamento genérico de A envolve duas "fases": uma primeira, entre T0 e T2,
de envio de uma janela completa de informação, e uma outra, entre T2 e T3, de pausa. Em ordem a uma utilização eficiente
dos recursos de transmissão disponíveis, convem que a duração da primeira fase seja bem maior que a duração da segunda;
o óptimo seria, aliás, que esta última tivesse duração nula... Por eficiência de utilização do caminho designa-se precisamente
a fracção de tempo que o caminho é de facto utilizado para transmitir informação útil; no caso, essa fracção volve-se em:
(T2 - T0)/(T3 - T0). O problema reduz-se então a determinar quanto tempo medeia entre T0 e T2 e entre T0 e T3 - o que, a
partir do diagrama temporal, se volve em simples geometria euclideana:
O período de tempo entre T0 e T2 mede-se sobre a vertical em A: é Wt*Txmt. Quanto ao período de tempo entre T0 e T3,
mede-se sobre a vertical em B: ele será o somatório dos tempos parciais [T0 a T6] + [T6 a T7] +[T7 a T3], que se volve em
TPropag + Txmt + TPropag= 2*5000*5+10=50010 µseg.
A eficiência em causa é, por conseguinte, Wt*10/50010; igualando esta expressão a 1 (o objectivo é que a eficiência seja de
100%), deduz-se Wt=50010/10=5001. De facto, o leitor poderá verificar que, se a janela de transmissão fôr superior ao
valor encontrado, ainda assim a eficiência continuará a ser 100%; isso corresponderá à chegada de Ack1 acontecer antes de
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 12/41

terminada a transmissão da janela: A não chega nunca a ingressar na fase de "pausa"! Esse valor encontrado é, pois a
janela mínima.
Notas: Na resolução acima, considerou-se desprezável o tempo de transmissão de um Ack; se essa assumpção não fôr
válida, então, ao tempo T3-T0, haverá que adicionar TAck= ComprimentoAck/(100*106). A solução é a mesma, quer se esteja
em Go-Back-N ou Selective-Repeat; a diferença ocorreria apenas na etiquetagem do diagrama: após o envio de S2, dever-se-
ia, em Selective-Repeat, enviar S3…

10.  Suponha que uma sessão tipo-TCP entre as estações A e B tem janela anunciada sempre igual a um
segmento. O RTT é estimado tal como em TCP, com parâmetro x=0,1. No entanto, ao contrário do que acontece
numa sessão TCP real, assuma que o intervalo de tempo até à retransmissão de um segmento (timeout) é
simplesmente igual a y vezes o RTT estimado. Se as amostras de RTT forem alternadamente iguais a 1 e 5
segundos, qual o valor mínimo de y que não causa retransmissões?

Resolução:
Em TCP, o RTTEstimado é um período de tempo dinâmicamente adaptado às condições de tráfego de momento. É uma
ponderação entre o "historial" precedente de RTT e o valor de
facto medido; vem a ser dado por RTTi+1 = (1-x) RTTi + x *
RTTReal.
No caso presente, os valores reais são alternadamente 1 e 5;
intui-se que RTT tenderá também a assumir, alternadamente, dois
valores, seja RTT1 e RTT5. Esses dois valores deverão satisfazer,
cfr TCP08:
Amostra: 1 ⇒ RTT1 = 0,9 RTT5 + 0,1
Amostra: 5 ⇒ RTT5 = 0,9 RTT1 + 0,5
A resolução deste sistema conduz a
RTT1 = 0,55 / 0,19 ≈ 2,895
RTT5 = 0,59 / 0,19 ≈ 3,105
O timeout deverá fixar-se em RTT*y. Para que não haja
retransmissões, é necessário que ele exceda o maior valor de RTT
de facto experimentado, isto é, deve ser
1 < 3,105y e 5 < 2,895y
que conduz a 0,19/0,59 < y (⇒ 0,322< <y) e 5*0,19/0,55 ≤ y (⇒ 1,7272<
<y), de que se deduz: 1,7272<
<y.

11.  Suponha que uma aplicação no computador W estabelece uma conexão-TCP com uma aplicação no
computador E para receber o conteúdo de um ficheiro. O ficheiro tem 20 000 bytes; os segmentos de dados têm
1000 bytes de dados. Os computadores estão ligados por um canal full-duplex com débito 8 Mbps e um atraso
de ida e volta de RTT = 7 mseg. Pretende-se estimar a latência na recepção do ficheiro (intervalo de tempo
desde que o cliente inicia o pedido até que recebe o ficheiro na sua totalidade). Considere o seguinte modelo
simplificado (excepto quando fôr explicitamente indicado um outro comportamento):
- o pedido de transferência feito pelo cliente segue juntamente com o terceiro segmento do estabelecimento
da conexão;
- é enviado um segmento de confirmação (Acknowledge, abreviadamernte: Ack) por segmento bem recebido;
- a janela de emissão é apenas limitada pelos mecanismos de controlo de congestionamento, isto é, o
mecanismo de controlo de fluxo não intervém (os buffers na recepção são ilimitados);
- o protocolo TCP usa o mecanismo de controlo de congestionamento estudado nas aulas;
- não ocorrem erros nem perdas;
- o receptor não descarta segmentos recebidos fora de ordem;
- os cabeçalhos têm dimensão desprezável;
- o tempo de transmissão dos segmentos que não contêm dados (estabelecimento, pedido do ficheiro e Ack’s)
é desprezável
11. 1. Admita que todos os segmentos são transmitidos durante a fase de arranque lento (“slow start”), isto é, o
limiar a partir do qual se inicia a fase de “congestion avoidance” nunca é atingido;
11. 2. Admita que se perdem: o Segmento 6 e os Ack's dos Segmentos 8 a 11; o timeout utilizado é de 13 mseg.
11. 3. Admita que se perde o Segmento 6; utiliza-se a versão TCP-Tahoe;
11. 4. Admita que se perde o Segmento 6; utiliza-se a versão TCP-Reno;
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 13/41

Resolução (1): Conforme ao método seguido na resolução de problemas similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação
descrita. O diagrama temporal apresenta-se em TCP21.a.
W começa por estabelecer uma conexão com E; isso
envolve a troca de dois segmentos, SYN (connect) e SYNAck
(accept). Logo após, envia um segmento (simbolicamente,
Get), referindo o ficheiro que pretende. E devolve esse
ficheiro num total de 20 (=20000/1000) segmentos; cada um
deles demora TXmt=1000*8/(8*106) seg=1 mseg a ser
transmitido.
- De início, E encontra-se na fase Slow-Start - pelo que o
tamanho da sua janela (entenda-se: janela de congestão) é de,
apenas, w=1: envia o 1º segmento, {S1} - e aguarda…
(Nota: no presente contexto, em que o tamanho dos segmentos
é fixo (1000 bytes), subentende-se: w é dado em "segmentos").
- Quando S1 chega a W, a entidade TCP devolve Ack2 -
que adverte: W já está esperando o 2º Segmento, os
anteriores-a-S2 já foram todos bem recebidos!
- Quando Ack2 chega a E, este (descarta-se de S1 e),
incrementa (de 1) o tamanho da janela - ficando w=2: envia os
segmentos {S2 e S3} - e aguarda…
(Recorde-se: na fase Slow-Start, o tamanho da janela de
congestão é incrementado de 1 por cada Ack fresco recebido -
com esta consequência: se, em dado momento, ele é w -
permitindo o envio de w segmentos -, então, quando forem
recebidos os Ack's de todos esses segmentos, ele duplica, passará a ser 2*w).
- Quando S2 e S3 chegam a W, este devolve Ack3 e Ack4.
- Quando Ack3 chega a E, este incrementa (de 1) o tamanho da janela, ficando w=3: envia {S4 e S5} (Note-se: w=3
significa que podem ficar por confirmar um máximo de 3 segmentos; como está ainda por confirmar a recepção do
segmento S3, podem ser enviados apenas mais dois segmentos).
- Quando S4 e S5 chegam a W, este devolve Ack5 e Ack6.
- Quando Ack4 chegar a E, este incrementa (de 1) o tamanho da janela, ficando w=4: envia {S6 e S7}.
- Quando S6 e S7 chegam a W, este devolve Ack7 e Ack8.
- Quando {Ack5, Ack6, Ack7 e Ack8} chegam a E, este incrementa o tamanho da janela, ficando sucessivamente w={5, 6,
7 e 8}: E envia, sucessivamente, {S8 e S9}, {S10 e S11}, {S12 e S13} e {S14 e S15}.
- Quando {S8 , …, S15} chegam a W, este devolve {Ack9 , … , Ack16}.
- O resto adivinha-se: à medida que os Ack's chegam a E, este incrementa o tamanho da janela e envia sucessivamente
{S16 a S20}.

A janela de E evolui (roda e o seu tamanho altera-se) pari passu com a chegada de Ack's a E, cfr TCP21.b:
[1] → [2 3] → [3 4 5] → [4-5 6 7] → [5-7 8 9] → … → [11-19 20]
Na prática, E despacha uma janela com 1 segmento, {1}; depois, despacha uma janela com 2 segmentos {2-3}; depois,
uma janela de 4 segmentos {4-7}; e, no fim, os 13 segmentos {8-20} que restam para perfazer os 20 segmentos em que se
volve o ficheiro.

Entre duas janelas consecutivas, E fica bloqueado (isto é, sem transmitir) algum tempo:
- entre o termo do envio de S1 e o começo do envio de S2, E fica bloqueado wait=RTT=7;
- entre o termo do envio de {S2-S3} e o começo do envio de S4, E fica bloqueado wait=RTT-TXmt=6;
- entre o termo do envio de {S4-S7} e o começo do envio de S8, E fica bloqueado wait=RTT-3*TXmt=4…
E vai ficando bloqueado um período de tempo cada vez menor. Mais genericamente, fica bloqueado RTT-(w-1)* TXmt.
Existe um valor w que torna nulo esta expressão: a partir desse valor, E deixa de ficar bloqueado! Esse valor é
w=RTT/TXmt+1=8: entre o termo do envio de {S8-S15} e o começo do envio de S16, E fica bloqueado wait=0 (=RTT-7*TXmt)
mseg. O significado físico é o seguinte: Ack9 chega a E exactamente no instante em que E esgota a sua janela; como essa
chegada re-abre essa janela, E, após o envio de S15, não chega a ficar bloqueado: prossegue de imediato com a transmissão
de {S16 e S17} - e, continuamente, com a transmissão de todos os segmentos restantes, {S18 a S20}, sem qualquer paragem.

A partir do diagrama temporal TCP21.a, a resposta à questão proposta (qual o tempo de latência?), volve-se em simples
geometria euclideana: trata-se de determinar quanto tempo medeia entre T0 e T6. Ele será o somatório dos tempos parciais
{T0 a T1}, {T1 a T2}, {T2 a T3}, {T3 a T4}, {T4 a T5} e {T5 a T6}. Repare-se:
- {T0 a T1} e {T1 a T2} são, ambos, RTT;
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 14/41

- entre T2 e T3, i.e., a chegada do primeiro bit da primeira janela ({S1}) e a chegada do primeiro bit da janela
seguinte({S2-S3}), decorreTXmt+RTT; asserções idênticas podem fazer-se a respeito dos tempos parciais {T3 a T4}, {T4 a
T5};
- entre T5 e T6, i.e., entre a chegada do primeiro bit da última janela e a chegada do seu último bit, decorre 13*TXmt.
O tempo de latência vem então a ser:
∆T = 2 * RTT + ( TXmt + RTT ) * 3 + ( 13 * TXmt ) = 51 mseg.

Nota: num cenário real, 1) o receptor pode escusar-se a replicar com um Ack por cada Segmento recebido e 2) o Ack
pode perder-se ou corromper-se. Então, à chegada de um Ack, w poderá ser incrementado - não de 1 -, mas do número de
Segmentos que ele confirma; em particular, isso previne:
- a possibilidade de o receptor utilizar um Ack para confirmar dois Segmentos, que não um só;
- a eventualidade de o Ack se perder/corromper no caminho de regresso até à fonte dos Segmentos.
Por ex., tendo E enviado a janela {S4-S7}, W poderá replicar com apenas dois Ack's {Ack6 e Ack8} - e o primeiro deles
perder-se, por conseguinte chegando a W apenas o Ack8; ele confirma, sozinho, a chegada de 4 Segmentos - por
conseguinte habilitando à mudança do tamanho da janela, num ápice, de 4 para 8.
Também num cenário real, os Segmentos não têm necessariamente um tamanho fixo; então, w poderá ser incrementado
(de 1) apenas quando o número de bytes confirmados pelos Ack's precedentes atingir MSS.
Também num cenário real, a confirmação é de bytes e, não, de segmentos.

Resolução (2): Conforme ao método seguido na resolução de problemas similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação descrita. O diagrama temporal apresenta-se em TCP22.a.
O diagrama é semelhante a TCP21.a até ao momento em que E envia a janela {S4-S7}: acontece que, agora, S6 se perde - e,
por conseguinte,
- não apenas a entidade TCP em W não pode confirmar (com {Ack7}), a recepção de S6…
- como, ao receber S7, ela permanece devolvendo Ack6 - não caindo na asneira de devolver Ack8 - que para E significaria
que W já recebeu todos os segmentos até S8, exclusivé - o que não é verdade…
- Resumindo: quando {S4, S5 e S7} chegam a W, este devolve Ack5, Ack6 e Ack6.
- Quando {Ack5 e Ack6} chegam a E, este incrementa a janela, ficando sucessivamente w={5, 6}: E envia {S8 e S9} e
{S10 e S11}; quando o segundo Ack6 chega a E, o tamanho da janela não se altera, nem se enviam outros segmentos.
- Quando {S8 - S11} chegam a W, este devolve quatro Ack6s, que, de acordo com o enunciado, se perdem.
Não recebendo Ack's frescos, o relógio em E expira.

Abra-se um parêntesis para rever a política de relógio de retransmissão do TCP:


- quando, nomeadamente, E recebe Ack5, que confirma a chegada a W de S4, E cancela o relógio - mas, recordando que
tem pendente de confirmação outros segmentos (concretamente {S5-S7}), re-arma-o;
- quando E recebe Ack6, que
confirma a chegada a W de S5, E volta
a cancelar o relógio - mas, recordando
que ainda tem pendente de
confirmação os segmentos {S6-S7},
arma-o de novo;
- quando E recebe o segundo Ack6,
E repara que ele confirma a recepção
de um segmento cuja recepção já
havia sido confirmada - pelo que não
mexe no relógio.
Resumindo: o relógio vem a
expirar Timeout =13 mseg após o
último Ack fresco (i.e., não duplicado)
recebido.
- Quando o relógio expira, E leva a
efeito o seguinte: memoriza em
SSThreshold o valor que resulta de
dividir por 2 o tamanho da janela
actual (i.e., memoriza SSThreshold =
3); fixa w=1; envia o Segmento mais
antigo ainda por confirmar - no caso,
S6. Entra na fase Slow-Start,
- Quando S6 chega a W, a entidade
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 15/41

TCP devolve Ack12 - querendo com isso advertir: W já está esperando o Segmento S12, os anteriores-a-S12 já foram todos
bem recebidos!
- Quando Ack12 chega a E, este, conforme à política Slow-Start, incrementa (de 1) o tamanho da janela - ficando w=2:
envia {S12 e S13} - e aguarda…
- Quando S12 e S13 chegam a W, este devolve Ack13 e Ack14.
- Quando Ack13 chega a E, este incrementa (de 1) o tamanho da janela - ficando w=3: envia {S14 e S15} - e aguarda…
- Acentue-se: o tamanho da janela de E passou a ser w=3 - que é o valor memorizado em SSThreshold. Então, quando
Ack14 chega a E, este abandona a fase Slow-Start - ingressando na fase Congestion-Avoidance. O tamanho da janela é
incrementado de, apenas, 1/3 - ficando w=3+1/3 - que não permite enviar senão um segmento mais, S16…
(Recorde-se: na fase Congestion-Avoidance, se, em dado momento, o tamanho da janela de congestão vale w - permitindo
enviar w segmentos -, ela é incrementada de 1/w por cada Ack fresco recebido; quando forem recebidos os Ack's de todos
esses w segmentos, a janela incrementou de 1).
- Quando {S14 - S16} chegam a W, este devolve Ack15 - Ack17.
- Quando Ack15 e Ack16 chegam a E, este, por cada um, incrementa o tamanho da janela de 1/3 - ficando w=4;
sucessivamente, envia {S17} e {S18 - S19}.
- Quando Ack17 chega a E, este incrementa o tamanho da janela de 1/4 - ficando w=4+1/4 - que não permite enviar senão
um segmento mais, S20…

A janela de E evolui pari passu com a chegada de Ack's a E - e o expirar do relógio, cfr TCP22.b.

A partir do diagrama temporal TCP22.a, a resposta à questão proposta (qual o tempo de latência?), volve-se em simples
geometria euclideana: será o somatório de um conjunto de tempos parciais… Seguindo um raciocínio análogo àquele que
acompanhou a resolução da alínea anterior, o tempo de latência vem então a ser:
∆T = 2 * RTT + ( TXmt + RTT ) * 3 + ( TXmt + Timeout ) + ( TXmt + RTT ) * 3 + ( 4 * TXmt ) = 80 mseg.

Nota 1: quando w atinge SSThreshold (no caso, aquando da chegada de Ack13), a entidade-TCP é livre de escolher entre:
ingressar de imediato na fase Congestion-Avoidance (como se optou acima) ou manter-se na fase Slow-Start (por
conseguinte fixando w=4, e não w=3+1/3, à chegada de Ack14); mas, desde que w se torne superior a SSThreshold, é
obrigatório o ingresso na fase
Congestion-Avoidance.
Nota 2: num cenário real, w é
dado em bytes; quando o timeout
ocorre, o SSThreshold é fixado em
metade do número de bytes ainda por
confirmar (e não em metade do valor
actual de w).
Nota 3: em rigor, se, na fase
Congestion-Avoidance, a regra em
vigor fôr incrementar w de 1/w por
cada Segmento confirmado, então a
evolução de w será algo diferente da
apresentada: esta deve ser vista
somente como uma aproximação; em
particular, quando se receberem os
Ack's de todos os segmentos de uma
janela, aquela regra não resulta num
incremento total de 1! Considere-se
por ex., que, sendo w=3, se enviaram
3 segmentos; quando chegar o Ack
do primeiro deles, passará a ser
w=3+(1/3)=10/3; quando chegar o
Ack do segundo, passará a ser
10/3+3/10=109/30 - e, não, 3+(2/3); e, quando chegar o Ack do terceiro, passará a ser 109/30+30/109=12781/3270≈3,9 que
é menor que 3+(3/3)=4!

Resolução (3): Conforme ao método seguido na resolução de problemas similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação descrita. O diagrama temporal apresenta-se em TCP23.a.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 16/41

O diagrama é semelhante a TCP22.a até ao momento em que E recebe os Ack's dos Segmentos 8 a 11: E recebe um total de
seis Ack6: um fresco e cinco duplicados - pelo que, vigorando a versão TCP-Tahoe, o timeout não chega a expirar. Ao
receber o terceiro duplicado, a entidade-TCP em E procede como se o timeout tivera expirado nesse momento: memoriza
em SSThreshold o valor que resulta de dividir por 2 o tamanho da janela actual (i.e., memoriza SSThreshold =3); fixa w=1;
envia o Segmento mais antigo ainda por confirmar - no caso, S6. Entra na fase Slow-Start…
O resto adivinha-se, cfr fig TCP23.a.

A janela de E evolui pari passu com a chegada de Ack's a E - e a chegada do 3º duplicado, cfr TCP23.b.

A partir do diagrama temporal


TCP23.a, a resposta à questão
proposta (qual o tempo de latência?),
volve-se em simples geometria
euclideana: será o somatório de um
conjunto de tempos parciais…
Seguindo um raciocínio análogo
àquele que acompanhou a resolução
das alíneas anteriores, o tempo de
latência vem então a ser:
∆T = 2 * RTT + ( TXmt + RTT ) *
3 + ( 2 TXmt + RTT ) + (TXmt + RTT)
* 3 + ( 4 * TXmt ) = 75 mseg.

Resolução (4): Conforme ao


método seguido na resolução de
problemas similares, a primeira etapa
é: desenhar um diagrama temporal
que esquematize fielmente a situação
descrita. O diagrama temporal
apresenta-se em TCP24.a.
O diagrama é semelhante a TCP23.a
até ao momento em que E recebe o
terceiro duplicado de Ack6: a entidade-TCP em E continua a memorizar em SSThreshold o valor que resulta de dividir por 2
a janela actual (i.e., memoriza SSThreshold =3); mas fixa w=SSThreshold+3=6. Entra na fase Slow-Start…
Quando chega o quarto duplicado de Ack6, w incrementa (de 1), para 7 - o que permite o envio de um Segmento mais,
S12; e quando chega o quinto duplicado, w incrementa de novo, permitindo o envio de S13.
- Quando S6 e {S12 e S13} chegam a W, este devolve Ack12 e {Ack13 e Ack14}.
- Quando Ack12 chega a E, este repara que se trata do primeiro Ack fresco após o 3º duplicado, pelo que: fixa
w=SSThreshold=3 e envia o segmento {S14} - e ingressa na fase Congestion-Avoidance;
- Quando {Ack13 e Ack14} chegam a E, a janela é incrementada, de cada vez, de, apenas, 1/3 - ficando sucessivamente
w={3+1/3 e w=3+2/3} - que não permite enviar senão dois segmentos mais, {S15 e S16} …
O resto adivinha-se, cfr fig TCP24.a.

A janela de E evolui pari passu com a chegada de Ack's a E - incluindo o 3º duplicado e seguintes, cfr TCP24.b.

A partir do diagrama temporal TCP24.a, a resposta à questão proposta (qual o tempo de latência?), volve-se em simples
geometria euclideana: será o somatório de um conjunto de tempos parciais… Seguindo um raciocínio análogo àquele que
acompanhou a resolução das alíneas anteriores, o tempo de latência vem então a ser:
∆T = 2 * RTT + ( TXmt + RTT ) * 3 + ( 2 TXmt + RTT ) + ( TXmt + RTT ) * 2 + ( 4 * TXmt ) = 67 mseg.

12.  [09E1.5] Considere dois computadores, W e E, que comunicam através de uma ligação TCP, trocando
segmentos de acordo com a figura TCP30.a. Suponha que W envia sete segmentos (cujos primeiros e últimos
bytes têm os números indicados) e em que um dos segmentos se perde. Considere que ambos os interlocutores
executam o protocolo TCP com a opção SACK.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 17/41

12. 1. Para cada um dos segmentos Ack devolvidos por E, especifique os respectivos números de
Acknowledgement e a identificação dos blocos recebidos.
12. 2. Relativamente ao segmento perdido, diga em que momento poderá o emissor decidir retransmiti-lo
R1 A TCP30.c. apresenta a evolução do buffer do receptor, os Acks enviados e respectivos números.
- inicialmente, E encontra-se aguardando o Segmento numerado 1000;
- ao chegar o Segmento numerado 6000, devolve um Ack, declarando que continua a aguardar o Segmento 1000
– porém utiliza SACK para notificar W que já recebeu o bloco 6000-7499;
- ao chegar o Segmento 1000, roda a Janela de Recepção (ficando a aguardar o Segmento numerado 2000) – e
notifica W (continando, com SACK, a referir que já recebeu o bloco 6000-
7499);
- ao chegar o Segmento 3000, devolve um Ack, declarando que continua
a aguardar o Segmento 2000 – porém utiliza SACK para notificar W que já
recebeu os blocos 3000-4499 e 6000-7499;
- ao chegar o Segmento 7500, que é contíguo ao bloco 6000-7499,
devolve um Ack, declarando que continua a aguardar o Segmento 2000 –
porém utiliza SACK para notificar W que já recebeu os blocos 6000-8499 e
3000-4499 (repare-se que começa por mencionar o bloco 6000-8499, pois
“foi o último onde houve mexidas”);
- ao chegar o Segmento 2000, roda a Janela de Recepção (ficando a
aguardar o Segmento numerado 4500) – e notifica W (continando, com
SACK, a referir que já recebeu o bloco 6000-8499);
- ao chegar o Segmento 5500, que é contíguo ao bloco 6000-8499,
devolve um Ack, declarando que continua a aguardar o Segmento 4500 –
porém utiliza SACK para notificar W que já recebeu os blocos 5500-8499;
R2: Quando o temporizador expirar: re-envia-se o segmento 4500-5499.
Ademais, e admitindo que os Acks chegam todos ao emissor, sem perdas, e
por ordem, respectivamente nos instantes t1, t2, …, t6, o emissor pode re-
enviar, logo em t1, os octetos {1000-5999} – repartidos nos “mesmos” cinco segmentos ou re-organizados de outra
maneira, por ex. em quatro segmentos: {1000-2499}, {2500-3999}, {4000-5499}, {5500-5999}.
Há outras respostas aceitáveis: pode conceber-se um emissor menos agressivo que se refreie um pouco;
nomeadamente, e assumindo MSS=1500,
- re-enviar quando muito MSS octetos por cada Ack: por ex., enviar {1000-2499} em t1, {2500-3999} em t2,
{4500-5999} em t3…
- re-enviar um octeto apenas depois de ter sido SAcked um certo montante (como seja 2*MSS) de octetos
subsequentes; por ex., esperar até t3 para enviar {2000-2999} – pois então 3000 octetos mais recentes foram já
SAcked (os octetos {3000-4499} e {6000-7499}).
- re-enviar um octeto apenas depois de ter sido SAcked um certo montante (como seja 2) de segmentos
subsequentes; por ex., esperar até t3 para enviar {2000-2999} – pois então 2 segmentos mais recentes foram já
SAcked (os segmentos 3000 e 6000; e em t4 re-enviar {4500-5999} – pois então 2 segmentos mais recentes foram
já SAcked (os segmentos 6000 e 7500…

Deixa-se à imaginação do leitor a congeminação de outros algoritmos para decidir quando retransmitir…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 18/41

Camada de Rede
13.  Suponha que dispõe de um nó (router) com 10 entradas e 10
saídas, que funcionam ao mesmo ritmo e estão interligadas por uma
malha de comutação.
13. 1. Em que condições de funcionamento da malha de comunicação
pode dispensar a utilização de "buffers" na sua entrada,
garantindo que não há perdas no nó de comutação?
13. 2. Discuta a possibilidade de dispensar "buffers" nas saídas da
malha de comutação, continuando a garantir perdas nulas.

Resolução:
1. Seja R bps o ritmo de funcionamento das entradas e saídas. O caso
mais crítico acontecerá quando todos os bits provenientes das 10 entradas se
destinarem à mesmíssima saída, por ex., S1, cfr Routing01; em cada segundo,
irão chegar 10 Rbit à malha de comutação - mas S1, nesse segundo, apenas
irá conseguir escoar R bit! Pelo que, pretendendo-se evitar perdas, há
que, em cada segundo, armazenar 9R bit; estando posta de parte o
recurso a memórias de entrada, resta colocar memória nas saídas…
2. Se, todavia, se proibir o recurso a memórias nas saídas,
então, novamente com o fito de evitar perdas, a solução será:
dotar cada saída com um ritmo de saída de, ao menos, 10 Rbps.

14.  Um "router" tem as seguintes três entradas na sua tabela de


expedição: (198.24.0.0/19,A); (198.24.16.0/21,B);
(198.24.4.0/22,C). Por qual das interfaces é expedido um
datagrama com destino a 198.24.25.2?

Resolução:
Na decisão de "por onde" encaminhar um datagrama, um "router" baseia-se no endereço-de-destino desse datagrama.
Tais endereços montam a 32 bits (em IPv4); mas, por mor de compactar as tabelas de encaminhamento, é política comum
os "routers" associarem, a cada saída, blocos de endereços. É desperdício de memória registar que datagramas cujos
endereços-IP sejam 198.24.0.0, ou 198.24.0.1 ou 198.24.0.2 , …, ou 198.24.31.127 (um total de 232-19 endereços), devem
ser encaminhados por A: é preferível uma única entrada (198.24.0.0 / 19, A), - com o significado óbvio: deve ser enviado
por A "qualquer" datagrama cujos primeiros bits (à esquerda) do endereço-de-destino coincidam exactamente com os
primeiros dezanove (19) bits de 198.24.0.0. As restantes informações disponibilizadas no enunciado têem significados
similares.
As "aspas" em "qualquer" remetem para o seguinte: tais entradas poderão ser contraditórias! Por ex., a segunda entrada
estabelece que um datagrama de endereço 198.24.16.0 deve ser encaminhado por B… mas tal colide com o que a entrada
precedente estabelece! A regra para resolver tal conflito é a seguinte: prevalece a entrada a que estiver associado um número
maior de bits de endereço-IP; em termos práticos, a ordem de confronto do endereço do datagrama em causa com a tabela
de encaminhamento deve ser:
3ª entrada (22 bits) → 2ª entrada (21 bits) → 1ª entrada (19 bits),
devendo a pesquisa dar-se por finda logo que houver uma correspondência (match).
No caso presente, e convertendo para binário os endereços-IP, chega-se a:

Datagrama em causa: 198.24.25.2 198 24 0001 1001 0000 0010


3ª Entrada 198.24.4.0 198 24 0000 01 22 bits C
2ª Entrada 198.24.16.0 198 24 0001 0 21 bits B
1ª Entrada 198.24.0.0 198 24 000 19 bits A

Repare-se: os primeiros dois bytes (198.24) não foram expandidos (para 16 bits);
de facto, os primeiros dois bytes dos endereços das entradas referidas não se
distinguem dos dois primeiros bytes do datagrama: não é por aí que se poderá
discernir a solução… Já quanto à expansão dos últimos dois bytes das entradas, só se
apresentam os bits de facto relevantes; por ex., para a 3ª entrada, são relevantes
apenas os primeiros 22 bits; posto que 16 deles são consumidos pelos dois primeiros
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 19/41

bytes (198.24), sobram apenas 6 (=22-16) bits, concretamente os seis bits mais significativos da representação binária de 4:
0000 0100.
Há agora que conferir os 6 bits relevantes da 3ª entrada com os correspondentes bits do endereço do datagrama (0001
10); são diferentes! Pelo que se passa a conferir os 5 bits relevantes da 2ª entrada com os correspondentes bits do endereço
do datagrama (0001 1); de novo, são diferentes! Pelo que se passa a conferir os 3 bits relevantes da 1ª entrada com os
correspondentes bits do endereço do datagrama (000); enfim, são iguais! de que se conclui: o datagrama deve ser
transmitido através de A.
(Nota: não se deverá concluir, pelo método de resolução acima - seguindo a ordem decrescente do número de bits de
endereço a conferir -, que os "routers" procedem exactamente assim: as suas tabelas comportam muito mais do que três
entradas, o que convoca à consideração de métodos mais rápidos…)

15.  Na figura IP03.a, ao ISP1 está atribuído o bloco de endereços


201.24.0.0/13 e ao ISP2 está atribuído o bloco de endereços
201.32.0.0/13. Os blocos de endereços das redes RA e RB são
retirados do bloco de endereços atribuído ao ISP1, enquanto que o
bloco de endereços da rede RC é retirado do bloco de endereços
atribuído ao ISP2.
15. 1. Sabendo que as redes RA, RB e RC necessitam,
respectivamente, de 4096, 1024 e 2048 endereços, atribua
blocos de endereços a estas redes pela ordem indicada e
escolhendo sempre o endereço-base mais baixo possível.
15. 2. Suponha que a rede RB muda o seu contrato de prestação
de serviços do ISP1 para o ISP2., mantendo o bloco de
endereços atribuído anteriormente. Que espaço de endereços é
que os ISP1 e ISP2 anunciam para o resto da Internet?

Resolução:
ISP1 dispõe de todos os endereços-IP que começam pelos primeiros
13 bits de 201.24.0.0. Posto que estes se volvem em 11001001 0001 1000, isso significa que ISP1 dispõe de todos os
endereços entre IPLower=11001001 0001 1000 00000000 00000000 e IPUpper=11001001 0001 1111 11111111 11111111,
inclusivé. Isto monta a um total de 219 (=524288) endereços-IP, cfg IP03.b.
RA necessita de 4096 endereços-IP. Posto que log2(4096)=12, isso remete para endereços cujos últimos 12 bits variem
entre 0…0 e 1…1. ISP1, começando pelo endereço mais baixo de que dispõe, e que é IPLower, entrega a RA todos os
endereços até 11001001 0001 1000 00001…1. Com isso, o endereço disponível mais baixo em ISP1 passa a ser
IPLower=11001001 0001 1000 00010…0.
RB necessita de 1024 endereços-IP. Posto que log2(1024)=10, isso remete para endereços cujos últimos 10 bits variem
entre 0…0 e 1…1. ISP1, começando pelo endereço mais baixo de que dispõe, e que é IPLower, entrega a RB todos os
endereços até 11001001 0001 1000 0001001…1. Com isso, o endereço disponível mais baixo em ISP1 passa a ser
IPLower=11001001 0001 1000 0001010…0.
A terminar, é de bom tom apresentar a solução sob o formato "bloco de endereços"…
O bloco de endereços atribuído a RA goza das seguintes características: o primeiro endereço é 201.24.0.0, os primeiros 20
bits são fixos, os últimos 12 bits podem assumir qualquer valor. De uma maneira compacta, ese bloco de endereços
representa-se então por 201.24.0.0/20.
Quanto ao bloco de endereços atribuído a RB: o primeiro endereço é 201.24.16.0, os primeiros 22 bits são fixos, os
últimos 10 bits podem assumir qualquer valor. De uma maneira compacta, esse bloco de endereços representa-se então por
201.24.16.0/22.
Para deduzir o bloco de endereços atribuído a RC, o raciocínio é análogo: RC necessita de 2048 endereços-IP. Posto
que log2(2048)=11, isso remete para endereços cujos últimos 11 bits variem entre 0…0 e 1…1. ISP2 - e por conseguinte
cujos primeiros 21 (=32-11) bits estão fixos. Então, começando pelo endereço mais baixo de que dispõe, e que é
201.32.0.0, entrega a RC o bloco 201.32.0.0/21.

Quanto à resolução da segunda alínea: à partida, os blocos de endereços que ISP1 e ISP2 anunciam para o resto da
Internet são, respectivamente, 201.24.0.0/13 e 201.32.0.0/13. Após RB alterar o seu contrato de prestação de seviços, os
blocos anunciados para o resto da Internet passam a ser:
ISP1: 201.24.0.0/13 (não há qualquer alteração);
ISP2: 201.32.0.0/13 e 201.24.16.0/22.
Será o leitor capaz de entrever por que é que isto não causa problemas? Afinal, o resto da Internet fica com entradas que
parecem contradizer-se, [201.24.0.0/13 → ISP1] e [201.24.16.0/22 → ISP2]…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 20/41

16.  Suponha que um segmento TCP tem 2048 bytes de dados e 20 bytes de cabeçalho. Este segmento tem que
atravessar duas ligações para chegar ao destino. A primeira ligação tem um MTU de 1024 bytes e a segunda um
MTU de 512 bytes. Indique o comprimento e offsets de todos os fragmentos entregues à camada de rede do
destino. Assuma que o cabeçalho de qualquer diagrama IP tem 20 bytes.

Resolução:
Relativamente ao segmento TCP em causa, é passado à camada rede um total de 2068 (=20+2048) bytes.
Procedimentos relativos à primeira ligação: sendo MTU=1024 bytes, e havendo que reservar, em cada datagrama-IP, 20
bytes para o cabeçalho, sobram 1004 bytes (=1024-20) para os dados - o que é menos que os 2068 bytes do segmento a
transmitir. Há, pois, que o fragmentar… As regras a observar são: tentar encher cada datagrama o mais possível, e operar
a fragmentação em fronteiras de 8 bytes.
Quantos bytes de dados é que cada datagrama irá carregar? Repare-se que 1004/8=125,5; por conseguinte, o maior múltiplo
de 8 que não excede 1004 é 8*125=1000. Pelo que as regras acima ficarão cumpridas vertendo, no campo dados de cada
datagrama (exceptuando o último), 125 blocos de 8 bytes.
- numeram-se 0, 1, 2,… os blocos de 8 bytes dos
dados do segmento; inicializa-se offset=0, cfr IP01.a;
- constroi-se um primeiro datagrama, com 125 blocos
de 8 bytes do segmento-TCP, contados a partir de
offset=0; offset incrementa de 125; ficam sobrando
2068-1000=1068 bytes…
- constroi-se um segundo datagrama, com 125 blocos
de 8 bytes do segmento-TCP, contados a partir de
offset=125; offset incrementa de 125; ficam sobrando
1068-1000=68 bytes…
- constroi-se o terceiro, e último datagrama, com os últimos 68 bytes do segmento-TCP, contados a partir de offset=250…
Sumarizando, as características dos datagramas despachados para a primeira ligação são:

Cabeçalho Dados Offset MF-Flag Comprimento do datagrama


20 1000 0 1 1020
20 1000 125 1 1020
20 68 250 0 88

Procedimentos relativos à segunda ligação: sendo MTU=512 bytes, e havendo que reservar, em cada datagrama-IP, 20
bytes para o cabeçalho, sobram 492 bytes para os dados.
O primeiro datagrama recebido da primeira ligação transporta 1000 bytes de dados - o que excede esses 492 bytes. Há,
pois, que o fragmentar…
Quantos bytes de dados é que cada fragmento irá carregar? Repare-se que 492/8=61,5. Pelo que em cada fragmento
(exceptuando o último), deverão ser colocados 61 blocos de 8 bytes.
- constroi-se um primeiro fragmento,
com 61 blocos de 8 bytes do datagrama,
contados a partir de offset=0; offset
incrementa de 61; ficam sobrando 1000-
488=512 bytes…
- constroi-se um segundo fragmento,
com 61 blocos de 8 bytes do datagrama,
contados a partir de offset=61; offset
incrementa de 61; ficam sobrando 512-
488=24 bytes…
- constroi-se o terceiro fragmento, com
os últimos 24 bytes do datagrama, contados a partir de offset=122…
Para o segundo datagrama proveniente da primeira ligação, o procedimento é análogo. Sumarizando, tem-se o seguinte,
à chegada à camada rede do destino, cfr IP01.b:
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 21/41

Cabeçalho Dados Offset MF-Flag Comprimento do fragmento


20 488 0 1 508
20 488 61 1 508
20 24 122 1 44
20 488 125 1 508
20 488 186 1 508
20 24 247 1 44
20 68 250 0 88

17.  Considere a rede da figura routing02.a, na qual os números junto das ligações indicam os seus comprimentos.
Quantas cópias de um LSP ("Link State Packet") gerado no nó F atravessam a totalidade das ligações da rede?

Resolução:
Cada pacote LSP tem a seguinte informação de controlo:
Fonte SeqId Vizinho: Comprimento…; Vizinho: Comprimento …
No caso presente, Fonte=F; e, sem perda de generalidade, pode assumir-se
SeqId=12345. Do diagrama apresentado, deduz-se a restante informação a incluir no
pacote original despachado por F:
F 12345 D:3; E:1; G:6
A haver lugar ao re-envio de pacotes LSP pelos nós da rede, todos eles deverão
transportar a mesmísima informação acima!
O progresso do pacote LSP através da rede encontra-se esquematizado em
routing02.b. Assumiu-se uma evolução síncrona: sem perda de generalidade, ignoram-
se diferenças nos atrasos de propagação e atrasos em fila-de-espera, assume-se que os
pacotes LSP são re-enviados em instantes discretos T0, T1, T2, etc.
Instante inicial, T0: F envia o pacote LSP aos seus vizinhos, D, E e G. Na figura,
isso é representado por três arcos, dirigidos de F para {D, E e G} (para bom entendedor, a cada arco corresponde um pacote
LSP, pelo que: no final, basta contar o número de arcos, para lograr a resposta à primeira alínea…); ademais, repare-se:
realçou-se, com um círculo, a letra (F) que denota o nó transmissor desse pacote (para bom entendedor, se um nó aparece
realçado, então, ainda que ele venha ulteriormente a receber uma cópia daquele pacote (Fonte:F, SeqId=12345), ele já não o
deve re-enviar: já alguma vez o fez, e uma vez é quanto basta!).
Instante T1: D, E e G enviam cópias daquele pacote aos seus respectivos vizinhos - excluindo aquele de onde o
receberam. Na figura, isso é representado por um total de nove arcos, dirigidos de D para {B, C, E, G}, de E para {C e D}
e de G para {B, D e H}; ademais, realçaram-se as letras (D, E e G).
Instante T2: B, C e H enviam cópias daquele pacote... Na figura, isso é representado por um total de oito arcos, dirigidos
de B para {A, C, G e H}, de C para {A, B e E} e de H para {B}; ademais, realçaram-se as letras (B, C e H). Repare-se:
conquanto D tenha acabado de receber cópias do pacote LSP (provindas de E e
G), ele não as re-envia! é que ele já o houvera feito em T1… Em termos
práticos, somente os nós que estão realçados em T2 é que re-enviam cópias… E
só o fazem uma vez! Por ex., conquanto B tenha acabado de receber duas cópias
do pacote LSP (provenientes de D e G), tudo se passa como se, após receber a
cópia proveniente de D, ignorasse qualquer outra subsequente cópia!
Instante T3: A envia cópias daquele pacote... Na figura, isso é representado
por um arco, dirigido para {C}; ademais, realçou-se a letra (A).
Instante T3: não são re-enviadas quaisquer outras cópias do pacote LSP…
O número total de cópias vem então a ser (basta contar o número de arcos
desenhados): 3+9+8+1=21.

Um comentário por mor da lei-do-menor-esforço: as regras enunciadas resumem-se em "Cada nó re-envia uma cópia do
pacote LSP para todos os vizinhos (excepto para aquele de onde o recebeu), e fazem-no uma única vez". O número total de
pacotes LSP enviados por cada nó pode sumarizar-se então:
A B C D E F G H
Número de vizinhos 2 5 4 5 3 3 4 2
Pacotes-LSP enviados 1 4 3 4 2 3 3 1
Por ex., o nó D detém um total de 5 vizinhos, {B, C, E, F, G}.
O número de pacotes LSP enviados pela origem, F, é de 3. Quanto aos restantes nós, repare-se que (exceptuando na
coluna F) a última linha volve-se na primeira linha decrementada de 1: não há que re-enviar uma cópia de um pacote LSP
para o nó adjacente de onde ele foi recebido. Somando os valores da última linha, obtém-se, como seria de esperar, 21…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 22/41

Novamente por mor da lei-do-menor-esforço, e designando por Ni o número de vizinhos do nó i, repare-se que a soma
da última linha se pode escrever formalmente:
∑ (Ni-1)+1= ∑Ni-∑(1)+1= 2 * NúmeroDeLinhas - NúmeroDeNós - 1.
No caso presente, NúmeroDeLinhas=14 e NúmeroDeNós=8; a aplicação da fórmula anterior conduz a 2 * 14 - 8 + 1 =
21…

18.  Considere a rede da figura routing02.a, na qual os números junto das ligações
indicam os seus comprimentos. Usando o algoritmo de Dijkstra, determine a
distância do nó F a todos os outros nós da rede. Construa uma tabela que
ilustre a evolução do algoritmo.

Resolução:

A tabela requerida encontra-se adiante. À sua esquerda, escrevem-se as


identificações de todos os nós da Rede (excepto F).
Na primeira coluna, escrevem-se os comprimentos das ligações (abreviadamente,
distâncias) desses nós a F; por ex., a distância de F a G é 6… Situações em que, como sucede com o nó A, não existe uma
ligação directa a F são representadas por "∞ ∞". Repare-se na coluna: o menor valor, 1, ocorre na linha "E". Pelo que: a
distância de E a F (ou vice-versa) é 1.

A ∞ ∞ ∞ 7/C 7/C ⇐
6/B⇐ −
B ∞ ∞ 11/D 5/C 5/C ⇐ − −
C ∞ 4/E 3/D ⇐ − − − −
D 3 2/E ⇐ − − − − −
E 1⇐ − − − − − −
G 6 6 3/D 3/D ⇐ − − −
H ∞ ∞ ∞ ∞ 17/G 7/B 7/B ⇐

A coluna seguinte é uma actualização da primeira coluna; aliás, qualquer subsequente coluna volve-se na actualização
da coluna que a precede - por aplicação do algoritmo de Dijkstra.

A aplicação desse algoritmo à construção da segunda coluna é o seguinte:


O nó que acabou de ser seleccionado é o nó E. Não contando com o nó F, ele comporta dois vizinhos, C e D. A rota de C
(até F) passando por esse nó E vem a ser: C→E + E→F - com um comprimento total de 4 (=3+1); repare-se: este é um valor
inferior àquele que a linha "C" apresenta na primeira coluna (e que é ∞); pelo que, ao construir-se a segunda coluna, se
substitui esse "∞" por "4/E" - em que o rótulo "E" regista: o "4" logra-se por recurso ao nó de trânsito "C" . Analogamente,
a rota de D (até F) passando por E vem a ser: D→E + E→F - com um comprimento total de 2 (=1+1); repare-se: este é um
valor inferior àquele que a linha "D" apresenta (e que é 3); pelo que se substitui esse "3" por "2/E". Repare-se: o menor
valor, 2, ocorre na linha "D". Pelo que: a distância de D a F (ou vice-versa) é 2.

Aconstrução da terceira coluna procede de um modo análogo:


O nó que acabou de ser seleccionado é o nó D. Não contando com F e E - pois que é já sabida a distância deste a F -, ele
comporta três vizinhos, B, Ce G. A rota de B (até F) passando por esse nó D vem a ser: B→D + D→F - com um
comprimento total de 11 (=9+2); repare-se: este é um valor inferior àquele que a linha "B" apresenta (e que é ∞); pelo que
se substitui esse "∞" por "11/D". Analogamente, a rota de C (até F) passando por esse
nó D vem a ser: C→D + D→F - com um comprimento total de 3 (=1+2); repare-se: este
é um valor inferior àquele que a linha "C" apresenta (e que é 4); pelo que se substitui
esse "4" por "3/D". Analogamente, a rota de G (até F) passando por esse nó D vem a
ser: G→D + D→F - com um comprimento total de 3 (=1+2); repare-se: este é um valor
inferior àquele que a linha "G" apresenta (e que é 6); pelo que se substitui esse "6" por
"3/D". Repare-se: o menor valor, 3, ocorre na linha "C". Pelo que: a distância de C a F
(ou vice-versa) é 3 (Na linha G, também ocorre esse valor, 3. É indiferente neste
momento seleccionar o nó C ou o nó G).
A construção das restantes colunas procede de um modo análogo. Repare-se: o
objectivo de uma iteração é estabelecer a rota (até F) de um nó ainda não
"contemplado"; por cada iteração, selecciona-se mais um nó - e apenas um! Havendo um total de sete rotas a determinar -
tantas quantas as linhas da tabela - então o número total de colunas há-de ser exactamente 7.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 23/41

Em routing02.c, apresenta-se a árvore de escoamento do nó F - construída à medida que se completavam as várias


iterações acima: a rota para E é directa; para D, faz-se através de E; para C e G, faz-se através de ED; para B, faz-se através
de EDC; para A e H, faz-se através de EDCB.
A tabela de encaminhamento do nó F será então:
Nó de destino: A B C D E G H
Linha de saída de F para atingir esse nó: E E E E E E E
Distância (mais curta) de F a esse nó: 6 5 3 2 1 3 7

19.  Considere a rede da figura Routing04.a, na qual os números junto das ligações indicam os seus comprimentos.
O encaminhamento é por vector-distância, e assume-se que os vectores de
distâncias são trocados sincronamente nos instantes t=0,1,2,3,… Inicialmente, no
instante t=0, todos os nós têem uma estimativa correcta da distância que os separa
do nó D. No instante t=1, a ligação B-D falha.
19. 1. Mostre a evolução das entradas das tabelas de encaminhamento que têem o
nó D como destino desde t=0 até à estabilização dessas entradas.
19. 2. Repita a alínea anterior para o caso em que os nós empregam a técnica de
separação de horizontes com envenenamento inverso.

Resolução:
1) Por aplicação de algum algoritmo apropriado para determinar as distâncias mais curtas
de um nó a todos os outros, chega-se à árvore de escoamento para o nó D esquematizada em
Routing04.b: em t=0, A e C encaminham o tráfego por B, e B despacha-o directamente para D.
Deduz-se que as distâncias mais curtas para D são: {A→D: 2, B→D: 1 e C→D: 2}. E,
vigorando o algoritmo "vector-distâncias", é exactamente essa dedução que cada nó difunde!
A partir dela, cada nó constrói a sua tabela de distâncias. Eis como o faz, por ex., o nó C.
C detém três saídas possíveis para atingir D: por A, por B ou directamente, i.e., sem passar
nem por A nem por B. Considerando um pacote saindo de C por A, a rota total vem a ser
C→A→D - que se volve numa distância total de 1+2=3; já quanto a um pacote saindo por B, a
rota total vem a ser C→B→D - que se volve numa distância total de 1+1=2: já quanto a um pacote saindo directamente
para D, a rota total vem a ser C→D - que se volve numa distância total de 4. Estes resultados {3, 2 , 4}, convém dispô-los
numa coluna - etiquetada por "C"; esgrimindo um raciocínio análogo para os demais nós, A e B, chega-se às seguintes
colunas de distâncias,
Local ⇒ A B C Nó de trânsito:
Distância a D: - 3 3 A
Distância a D: 2⇐ 1⇐ 2⇐ B
Distância a D: 3 3 4 C
onde se realçaram as quadrículas que correspondem às rotas mais curtas para se chegar a D (A tabela de distâncias de cada
nó será constituída por tantas colunas de distâncias quantos os nós da rede que podem ser destino de pacotes).
Por mor de prevenir algum mal-entendido, seja o caso {Fonte: B; Nó de Trânsito: A; Destino: D}. A questão é: qual a
distância de B a D indo por A, i.e., qual o comprimento da rota B→A→D? A resposta é: há-de ser a distância de B até A
(que é "fixa", conhecida de B: é 1), mais a distância de A até D (que B sabe, porque o "ouviu" de A, que é 2); isto é, há-de
ser 1+2=3.
Fechado este parêntesis, é hora de recordar: construída a tabela de distâncias, cada nó determina o menor valor de cada
coluna - e utiliza-o para preencher um vector de distâncias, que despacha para os vizinhos. Em particular, A preenche o
vector de distâncias
Distância a B: 1 Distância a C: 1 Distância a D: 2
e despacha-o para os seus vizinhos, {B e C}.
Na figura Routing04.c, estão indicadas as distâncias a D comunicadas por A, B e C aos vizinhos, em t=0.

Eis, todavia, que a ligação B-D falha! De imediato, os nós terminais {B e D} vêem a "sabê-lo" - dando azo à alteração
das tabelas: doravante, é como se a ligação directa B→D passasse a ter um comprimento "∞".
Local ⇒ A B C Nó de trânsito:
Distância a D: - 3⇐ 3 A
Distância a D: 2⇐ ∞ 2⇐ B
Distância a D: 3 3 4 C
Pelo que o menor valor da coluna B passa a ser outro… Pelo que o próximo vector de distâncias a difundir por B passa
a indicar que a distância de B a D passou a ser outra: 3… Em Routing04.c, estão indicadas as distâncias difundidas em t=1.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 24/41

Recorrendo à nova informação que recebem (de B), A e C alteram as suas colunas de distâncias (obviamente, apenas na
linha "B"). Por ex., A passa a receber de B a informação "3"; conclui então que o comprimento total da rota A→B→D passa
a ser 4. Repetindo o raciocínio para o caso que resta (rota C→B→D), chega-se a:
Local ⇒ A B C Nó de trânsito:
Distância a D: - 3⇐ 3⇐ A
Distância a D: 4 ∞ 4 B
Distância a D: 3⇐ 3 4 C
Pelo que os menores valores das colunas A e C passam a ser outros… Pelo que os próximos vectores de distâncias a
difundir por A e C passam a ser outros… Abaixo, indicam-se as distâncias difundidas em t=2.

Recorrendo à nova informação que recebem, os nós alteram as suas colunas de distâncias a D; passam a ser as seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - 4⇐ 4⇐ A
Distância a D: 4⇐ ∞ 4 B
Distância a D: 4 4 4 C
Pelo que os menores valores das colunas passam a ser outros… Pelo que os próximos vectores de distâncias a difundir
passam a ser outros… Abaixo, indicam-se as distâncias difundidas em t=3.

Recorrendo à nova informação que recebem, os nós alteram as suas colunas de distâncias a D; passam a ser as seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - 5⇐ 5 A
Distância a D: 5⇐ ∞ 5 B
Distância a D: 5 5 4⇐ C
Pelo que os menores valores das colunas passam a ser outros… Pelo que os próximos vectores de distâncias a difundir
passam a ser outros… Em Routing04.c, indicam-se as distâncias difundidas em t=4.

Recorrendo à nova informação que recebem, os nós actualizam as suas colunas de distâncias a D; passam a ser as
seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - 6 6 A
Distância a D: 6 ∞ 6 B
Distância a D: 5⇐ 5⇐ 4⇐ C
Acontece, todavia, que não chega a haver qualquer alteração nos subsequentes vectores de
distâncias: as distâncias a difundir em t=5, t=6, etc, são as mesmas {5, 5, 4} que foram
transmitidas em t=4! A situação encontra-se, pois, estabilizada! A árvore de escoamento passou
a ser aquela que se encontra esquematizada em Routing04.d.

Resumindo, a evolução das entradas das tabelas de encaminhamento que têm o nó D como
destino foi a seguinte:

A 2/B 2/B 3/C 4/B 5/B 5/C


B 1/D 3/A 3/A 4/A 5/A 5/C
C 2/B 2/B 3/A 4/A 4/D 4/D

2) A técnica de separação de horizontes com envenenamento inverso exibe um progresso análogo - com uma diferença
apenas: tal como acima, a distância mais curta deduzida por cada nó é comunicada aos vizinhos - excepto àquele que serve
de nó de trânsito: a este, é comunicado o valor "∞"! Que quer isso dizer? Para o entender, considere-se a situação inicial,
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 25/41

Local ⇒ A B C Nó de trânsito:
Distância a D: - 3 3 A
Distância a D: 2⇐ 1⇐ 2⇐ B
Distância a D: 3 3 4 C
Na coluna "A", a distância mais curta é 2, e ela consegue-se através do nó de trânsito B; então, A comunica "∞" a B, e
"2" aos restantes vizinhos {C}; na coluna "B", a distância mais curta é 1; então, B comunica "∞" a D, e "1" aos restantes
vizinhos {A e C}; em "C", a distância mais curta é 2, por recurso a B; então, C comunica "∞" a B, e "2" aos restantes
vizinhos {A e D}. Na figura Routing05, indicam-se as distâncias difundidas em t=0. Mas se assim é, então em rigor a
situação inicial é outra:
Local ⇒ A B C Nó de trânsito:
Distância a D: - ∞ 3 A
Distância a D: 2⇐ 1⇐ 2⇐ B
Distância a D: 3 ∞ 4 C

Eis, todavia, que a ligação B-D falha! De imediato, os nós terminais {B e D} vêem a "sabê-lo" - dando azo à alteração
das tabelas: doravante, é como se a ligação directa B→D passasse a ter um comprimento "∞":
Local ⇒ A B C Nó de trânsito:
Distância a D: - ∞⇐ 3 A
Distância a D: 2⇐ ∞ 2⇐ B
Distância a D: 3 ∞ 4 C
Pelo que o menor valor em "B" passa a ser outro… Pelo que os próximos vectores de distâncias a difundir passam a ser
outros… Em Routing05, indicam-se as distâncias difundidas em t=1.

Recorrendo à nova informação que recebem, os nós alteram as suas colunas de distâncias a D; passam a ser as seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - ∞⇐ 3⇐ A
Distância a D: ∞ ∞ ∞ B
Distância a D: 3⇐ ∞ 4 C
Pelo que os menores valores das colunas {A e C} passam a ser outros… Pelo que os próximos vectores de distâncias a
difundir passam a ser outros… Em Routing05, indicam-se as distâncias difundidas em t=2.

Recorrendo à nova informação que recebem, os nós alteram as suas colunas de distâncias a D; passam a ser as seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - 4⇐ ∞ A
Distância a D: ∞⇐ ∞ ∞ B
Distância a D: ∞ 4 4⇐ C
Pelo que os menores valores das colunas passam a ser outros… Pelo que os próximos vectores de distâncias a difundir
passam a ser outros… Em Routing05, indicam-se as distâncias difundidas em t=3.

Recorrendo à nova informação que recebem, os nós alteram as suas colunas de distâncias a D; passam a ser as seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - ∞ ∞ A
Distância a D: ∞ ∞ 5 B
Distância a D: 5⇐ 5⇐ 4⇐ C
Pelo que os menores valores das colunas passam a ser outros… Pelo que os próximos vectores de distâncias a difundir
passam a ser outros… Em Routing05, indicam-se as distâncias difundidas em t=4.

Recorrendo à nova informação que recebem, os nós actualizam as suas colunas de distâncias a D; passam a ser as
seguintes:
Local ⇒ A B C Nó de trânsito:
Distância a D: - 6 ∞ A
Distância a D: 6 ∞ ∞ B
Distância a D: 5⇐ 5⇐ 4⇐ C
Acontece, todavia, que não chega a haver qualquer alteração nos subsequentes vectores de distâncias: a situação
encontra-se, pois, estabilizada! Em Routing05, indicam-se as distâncias difundidas ao longo do tempo:
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 26/41

Resumindo, a evolução das entradas das tabelas de encaminhamento que têm o nó D como destino foi a seguinte:
A 2/B 2/B 3/C ∞ 5/C
B 1/D ∞ ∞ 4/A 5/C
C 2/B 2/B 3/A 4/D 4/D

20.  Pretende-se comparar duas abordagens para providenciar


multicast na camada de aplicação: (1) emulação com
encaminhamento unicast; (2) encaminhamento multicast. Considere
uma fonte e 32 destinos. A fonte está interligada com os destinos
através de uma árvore binária de encaminhadores, tendo a fonte
como raíz. O custo de uma abordagem multicast é o número de
datagramas que têem que ser enviados nessa abordagem por forma a
alcançar todos os destinos.
20. 1. Determine os custos das duas abordagens para multicast
20. 2. Encntre a topologia de rede, incluindo a fonte, os destinos, e
tantos encaminhadores quantos quiser, que maximiza a razão
entre o custo da abordagem por emulação com encaminamento unicast e o custo da abordagem por
encaminhamento multicast na camada.

Resolução:
1) A figura Routing06.a exibe a topologia da rede, envolvendo uma árvore binária com 6 encaminhadores {A, B, …, F};
por mor da lei-do-menor-esforço, representaram-se apenas 8 destinos {1, 2, …, 8}, e, não, 32: o que significa que o
resultado final há-de ser alcançado por generalização…
A árvore binária pode ser vista como uma hierarquia de dispositivos: um nível-0 constituído pela Fonte; um nível-1
constituído por {A e B}, um nível-2 constituído por {C, D, E e F}; e um último nível constituído pelos destinos {1, 2, …,
8}. Cada nível genérico "i" detém 2i dispositivos. Designando por N o número total de destinos, a "altura" da rede vem a ser
h=log2(N); vice-versa, tem-se N=2h.
As figuras Routing06.a/b esquematizam os fluxos de pacotes em ambas as abordagens:
Em emulação por unicast, cfr Routing06.a, a Fonte envia um pacote individual para cada destino: pela ligação Fonte→A
serão enviados 4 pacotes, com destinos 1, 2, 3 e 4; e pela ligação Fonte→B serão enviados outros 4 pacotes, agora com
destinos 5, 6, 7 e 8. Ao chegarem a A, aqueles pacotes são, cada um, encaminhados para a pertinente ligação, C ou D; pelo
que, por ex., pela ligação A→C serão enviados 2 pacotes, com destinos 1, e 2… Ao chegarem a C, estes pacotes são, cada
um, encaminhados para o pertinente destino, 1 ou 2. Considerações análogas valem para os demais pacotes… É patente, da
figura, que entre o nível-0 e o nível-1 passam exactamente N=8 pacotes; entre o nível-1 e o nível-2 passam os mesmíssimos
N=8 pacotes; entre o nível-2 e o nível-3 passam de novo os mesmíssimos N=8 pacotes… Pelo que o custo desta abordagem
é N*h, ou seja: 32*log232=160.
Em multicast, cfr Routing06.b,a Fonte envia pacotes remetendo para listas
de destinos: pela ligação Fonte→A é enviado um pacote, com a lista-de-
destinos 1/2/3/4; e pela ligação Fonte→B é enviado outro pacote, agora com a
lista-de-destinos 5/6/7/8. Ao chegar a A, aquele pacote é expandido em dois,
que são subsequentemente encaminhados para a pertinente ligação, C ou D;
pelo que, por ex., pela ligação A→C é enviado um pacote, com a lista-de-
destinos 1/2. Ao chegar a C, este pacote é expandido em dois, que são
subsequentemente encaminhados para o pertinente destino, 1 ou 2.
Considerações análogas valem para os demais pacotes… É patente, da figura,
que entre o nível-0 e o nível-1 passam exactamente 2 pacotes; entre o nível-1 e
o nível-2 passam 4 pacotes; entre o nível-2 e o nível-3 passam 8 pacotes…
Pelo que o custo desta abordagem é 2+4+8. Repare-se: é a soma de potências
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 27/41

de 2, entre 2 e N=2h. Para o caso de o leitor desconhecer a expressão em que se resolve a soma de termos de uma
progressão geométrica, considere a tabela seguinte:
h⇒ 1 2 3 4 5 6 7
2h 2 4 8 16 32 64 128
Soma {} 2 6=2+4 14=2+4+8 30=2+4+8+16 62 126 254
em que a segunda linha comporta as sucessivas potências de 2 e a terceira se volve na soma dessas potências de 2… Não
custa discernir que os valores na terceira linha são os que aparecem na coluna seguinte da linha anterior, decrementados de
2: o custo desta abordagem vem a ser 2h+1-2=2h*2-2=N*2-2=2N-2.
(Já agora, veja o leitor: a árvore em causa é binária; mas bem que poderia ser ternária, quaternária, centenária,
milenária, milionária, bilionária… Quais seriam os custos das abordagens se se tratasse de uma árvore k-ária? Deverá
chegar a, respectivamente, N logkN e k[N-1]/[k-1])

2. Maximizar uma razão volve-se em aumentar o numerador e


diminuir o denominador.
Ora, o numerador é o custo da abordagem "emulação por unicast";
ele é proporcional ao número de saltos (hops) sofridos pelos pacotes:
Custounicast=N*h - pelo que: será tanto maior quanto maior fôr h, i.e.,
quantos mais encaminhadores houver entre a Fonte e destinos…
O denominador, por seu turno, vem a ser o custo da abordagem "multicast"; cresce com o número de hops, e também
cresce à medida que o pacote com lista-de-destinos vai sendo "expandido"… pelo que: será tanto menor quantos menos
hops e expansões houver entre Fonte e destinos.
Uma topologia conforme a estas duas "conveniências" é a ilustrada em Routing06.c.
A razão em causa será: R=N[k+1]/[N+k]. Repare-se na presença de k em ambos os termos da fracção… A fracção é
monótona crescente com k; à medida que k cresce, R tende assimptoticamente para N=32.

21.  Considere a rede da figura Routing08.a. O nó D envia um datagrama que é


difundido por toda a rede usando expedição por caminho inverso. Indique
quantas cópias do datagrama é que atravessam cada uma das ligações da
rede.

Resolução:
Para a resolução desta questão, convém antes de mais dispôr da árvore de
escoamento para o nó D. A aplicação de algum algoritmo apropriado para determinar
as distâncias mais curtas de D a todos os outros é quanto basta… O resultado
encontra-se esquematizado em Routing08.b. Recorde-se: essa árvore designa quais as
ligações (no esquema, a traço cheio) por onde os nós deverão despachar um datagrama cujo destino final venha a ser D!
Posto isto, é hora de acompanhar a progressão do algoritmo "expedição por caminho inverso"; sem perda de
generalidade, ir-se-á assumir que os datagrama são trocados sincronamente nos instantes t=1,2,3,…
Instante t=1: O nó D envia uma cópia do datagrama para cada um das suas 5 linhas de saída {B, C, E, F e G}. Em
Routing08.c, encontra-se esquematizado a evolução do fluxo de datagramas…
Instante t=2. Repare-se: dos cinco nós que recebem cópias do datagrama em
causa, três recebem-nas por uma ligação a traço cheio, isto é: recebem-no da ligação
para onde, conforme à arvore de escoamento, "costumam" enviar pacotes destinados
a D! São eles os nós C, E e G. Todos eles - e apenas eles! - enviam uma cópia do
datagrama para cada uma das suas linhas de saída (excepto para aquela de onde
receberam o datagrama em causa). Concretamente, C envia 3 datagramas para {A, B
e E}, E envia 2 datagramas para {C e F} e G envia 3 datagramas para {B, F e H}. No
total, por conseguinte, vêem a ser enviados 8 (=3+2+3) datagramas.
Instante t=3. Repete-se o algoritmo acima: todos os nós que receberam o
datagrama por uma ligação a traço cheio - e epenas esses! - re-enviam uma cópia do
datagrama... Concretamente, B envia 4 datagramas para {A, D, G e H} e F envia
2datagramas para {D e G}. No total, por conseguinte, vêem a ser enviados 6 (=4+2) datagramas.
Instante t=4. Repete-se o algoritmo acima... Concretamente, A envia 1 datagrama para {C} e H envia 1 datagrama para
{G}. No total, por conseguinte, vêem a ser enviados 2 (=1+1) datagramas.
Instante t=5. Repete-se o algoritmo acima... Nenhun nó envia datagramas…
Pelo que o total de datagramas enviados é: 5+8+6+2=21..
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 28/41

Por mor da lei do menor-esforço, vale a pena rever a última figura (t=4), onde estão assinalados todos os datagramas
enviados (devidamente etiquetados com os instantes em que foram produzidos)… Construa-se uma tabela com o número de
ligações de cada nó e o número de datagramas por ele enviados:
Nó: A B C D E F G H
Número de ligações: 2 5 4 5 3 3 4 2
Número de datagramas enviados: 1 4 3 5 2 2 3 1

Repare-se: exceptuando o nó origem, D, em que o


número de datagramas enviados é exactamente igual
ao número de ligações, para todos os outros aquele
número vem a ser igual ao número de ligações
decrementado de 1! (Questão ao leitor: será sempre
assim, ou foi acaso ou coincidência?) Pelo que, para
responder à questão proposta, bastará somar o
número de arcos de cada nó (decrementado de 1) e,
no fim, somar 1: [1+4+3+4+2+2+3+1]+ 1=21…

Ainda por mor da lei do menor-esforço, reveja-se


novamente a última figura (t=4). Repare-se: em arcos
a traço cheio {DC, DG, DE, etc}, o número de
datagramas que os percorrem é de, apenas, 1; nos
restantes, a traço fino, {BD, DF, etc}, o número de
datagramas que os percorrem monta a 2, um em cada
sentido (Questão ao leitor: será sempre assim, ou foi
acaso ou coincidência?) Esta propriedade permite
responder à questão rapidamente, mesmo quando a
rede é muito maior… De facto,
- o número total de nós é de 8; pelo que o número total de arcos a traço cheio é de Ncheio=7 (=8-1);
- o número total de ligações é de 14; pelo que o número total de arcos a traço fino é de Nfino=7 (=14-7);
Pelo que o número total de datagramas que passam nas ligações é de Ncheio*+Nfino*2 = 7+7*2 = 21…

Camada de Ligação de Dados


22.  Suponha que um determinado protocolo da camada de ligação de dados usa um código cíclico de
verificação, CRC, dado por G(x)=x4+x3+1.
22. 1. Desenhe o registo de deslocamento com re-alimentação que materializa este CRC em hardware.
22. 2. Determine os bits de CRC do bloco de dados 0011 1011 001.
22. 3. Suponha que o emissor forma uma trama com o bloco de dados e bits de CRC da alínea anterior. A trama
é enviada do emissor para o receptor, é corrompida na transmissão, e é recebida pelo receptor na forma 0011
1011 0000 110. Os erros são detectados no receptor?

Resolução:
G(x) é a representação "polinomial" de
uma sequência binária (de 0s e 1s). Esta
logra-se assim:
O número de bits, L, da sequência é
igual ao grau de G(x) incrementado de 1;
numerando i=0,1,2,…, L-1 os bits da
sequência, eles serão os coeficientes das
sucessivas potência xi {i=0,1,…} em G(x).
No caso presente, verifica-se que o
grau de G(x) é 4; pelo que será L=5: E os
coeficientes das sucessivas potências de x
- x4, x3, x2, x1, x0 - em G(x) são {1, 1, 0 , 0
, 1}. Pelo que a sequência binária
correspondente a G(x) é g=11001!
Os bits de CRC do bloco 0011 1011
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 29/41

001 determinam-se assim: acrescentam-se L-1 "0"s na cauda do bloco, e procede-se à sua divisão-módulo-2 por g… A
figura ErrorCtrl01.a patenteia o progresso desta:
- na primeira linha, escreve-se o bloco de dados; este é tratado como se fôra um número binário, em que o bit mais
significativo é o primeiro a ser transmitido para a linha (no caso, assume-se que é o bit mais à esquerda naquele bloco de
dados).
- imediatamente a seguir, acrescenta-se-lhe quatro "0"s (não esquecer: quatro pois o grau de G(x) é 4);
- ns linha abaixo, escreve-se a sequência binária g=11001, que vai servir de divisor-em-módulo-2; ela deve ficar
alinhada do seguinte modo: o seu bit mais significativo (i.e., o que corresponde à maior potência de G(x)), fica
verticalmente alinhado com o bit "1" de maior peso da linha anterior.
- procede-se então ao cálculo da primeira subtracção-em-módulo-2: coluna a coluna, calcula-se o exclusive-OR do bit de
g com o correspondente bit da linha anterior, e verte-se o resultado na linha abaixo de g (Na figura, recorda-se a operação
exclusive-OR: volve-se em 0 ou 1 consoante, respectivamente, os operandos forem iguais ou diferentes);
- o "resultado" vem a ser 00100. Repare-se: começa por dois "0"s; então: "abaixam-se" os primeiros dois bits do bloco
de dados que ainda não foram afectados pela subtracção-em-módulo-2 (no caso, 10) - ficando a linha a ser 0010010. Após o
que se escreve por baixo o divisor g, devidamente alinhado, e se procede à subsequente subtracção-em-módulo-2…
- o "resultado" vem a ser 01011. Repare-se: começa por um "0"; então: "abaixa-se" o primeiro bit do bloco de dados que
ainda não foi afectado pela subtracção-em-módulo-2 (no caso, 0) - ficando a linha a ser 010110. Após o que se escreve por
baixo o divisor g, devidamente alinhado, e se procede à subsequente subtracção-em-módulo-2…
- o procedimento vai-repetindo até que, mesmo já "abaixado(s)" o(s)
último(s) bits do bloco de dados, o comprimento do "resultado" a partir
do "1" de maior peso advém inferior ao comprimento de g, que é 5.
Estão encontrados os bits de CRC: são exactamente os últimos 4 bits
do "resultado" final, i.e., 0100. Pelo que a sequência binária a transmitir
é 0011 1011 001 0100, i.e, é a concatenação do bloco de dados com os bits de CRC obtidos.

A divisão-módulo-2 acima pode ser materializada, em hardware, pelo registo representado na figura ErrotCtrl01.b; no
início, todos os registos devem ser colocados a "0".

Considere-se agora o caso de, tendo-se transmitido SXmt=0011 1011 001 0100, chegar ao receptor a sequência
SRcv=0011 1011 0000 110. Conseguirá o receptor detectar os erros de transmissão? Há uma maneira óbvia de responder: o
receptor conhece g=11001; os bits de CRC deverão então ser os últimos quatro bits de SRcv, i.e., 0110; pelo que o bloco de
dados recebido será 0011 1011 000. Então, basta proceder à divisão-em-módulo-2 de 0011 1011 000 por g: terão ocorrido
erros de transmissão se o "resultado" final não fôrem aqueles quatro bits de CRC!
Por mor da lei-do-menor-esforço - que é fácil cometer erros nessa divisão, com tantos "0"s e "1"s -, é hora de reflectir
sobre a divisão acima… Porque é que o "resultado" final foi 0100? Naturalmente, e em particular, porque os bits
acrescentados à direita foram "0"s: tivessem sido, por ex., "1"s, e outro galo cantaria… E se tivessem sido acrescentados
exactamente os bits 0100! então, o "resultado" final teria sido exactamente 0000! De que se conclui: a sequência binária
que é transmitida - que termina em 0100 - é divisível por g, i.e., ao proceder-se à sua divisão-em-módulo-2 por g, o
"resultado" final será zero. Por outras palavras: a sequência binária transmitida é múltipla de g!
A conclusão é: se, ao dividir-em-módulo-2 toda a sequência binária recebida, obtiver um resultado não nulo, o receptor
deverá concluir que ocorreram erros de transmissão… Mas, quais as condições para que isso venha a ocorrer? Posto que o
transmissor envia uma sequência múltipla de g, então, para que chegue ao receptor uma sequência não múltipla de g, é
preciso que o meio de transmissão tenha gerado um padrão de erros que não é múltiplo de g!
(Abra-se um parêntesis para recordar a velha aritmética dos bancos da Primária: se, a um múltiplo de, digamos, 8, como
seja 24, somarmos outro múltiplo de 8, como seja 40, chega-se a 64, que é outro múltiplo de 8… mas se lhe somarmos algo
que não seja múltiplo de 8 - e só nesse caso -, o resultado final não será múltiplo de 8!)
Qual a diferença entre as sequências binárias transmitida e recebida? Uma tabela ajuda a ver:
SXm 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0
SRcv 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0
Padrão de Erros: 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
A terceira linha é o ExclusiveOR das duas primeiras: é patente que os primeiros dez bits, e o último, são iguais… mas
existem diferenças… Pelo que se disse, o receptor assinalará erro de transmissão somente se o Padrão de erros - ou, mais
simplesmente, o padrão realçado, 1001, que os "0"s à esquerda ou à direita não são relevantes - fôr divisível por g. Ora
acontece que 1001 não é múltiplo de g=11001; do que se conclui que o receptor detecta que ocorreram erros de
transmissão!

23.  Considere um sistema de comunicação no qual as estações partilham um canal rádio usando o método de
acesso múltiplo Aloha puro. Devido às condições de propagação dos sinais, é possível que um receptor receba
correctamente uma trama que lhe foi destinada mesmo que o sinal desta se sobreponha ao sinal de outras
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 30/41

tramas. Especificamente, assuma que uma trama é recebida com sucesso com probabilidade qk quando a sua
recepção se sobrepõe à de k outras tramas. Em geral, q é um valor pequeno. Se q fôr zero, então temos a
hipótese usual, que afirma que uma trama é recebida com sucesso apenas se não se sobrepõe a nenhuma outra
trama. A geração de tramas, novas mais retransmitidas, é dada por um processo de Poisson de parâmetro G
(tramas/tempo-de-transmissão-de-trama).
23. 1. Mostre que a probabilidade de uma trama de teste ser recebida com sucesso vem dada por
e-2G(1-q)
23. 2. Determine a utilização máxima do canal em função de q.

Resolução:
A figura SAN01 esquematiza a evolução temporal no sistema Aloha puro;
para não complicar desnecessariamente, representa-se apenas o fluxo de
informação no sentido Estações → Antena-rádio. No intervalo de tempo
observado, chegaram a estar "activas" apenas três estações, {E1, E2 e E3}:
- no instante T1, E1 transmite a trama F1; "as coisas correm bem": durante
todo o tempo que a trama F1 exige a atenção da antena, nenhuma trama mais
chega à antena; de facto, quando a trama seguinte, F2, chega à antena, já o
último bit de F1 se foi embora da antena…
- no instante T3, E1 transmite a trama F3; agora, "as coisas correm mal":
enquanto a trama F3 ocupa a antena, uma outra trama, F4, atinge a antena; os
últimos bits de F3 colidem com os primeiros bits de F4…
- no instante T6, E1 transmite a trama F6; novamente, "as coisas voltam a
correr mal": quando o primeiro bit da trama F6 chega à antena, esta está
ocupada a transmitir uma outra trama, F5… Os primeiros bits de F6 colidem
com os últimos bits de F5…
Um olhar de relance permite estabelecer as condições para que, quando E1
transmite uma trama de teste, não haja colisão: é preciso que o seu primeiro bit não colida com algum dos últimos bits de
uma trama precedente enviada por outra estação, e é preciso que o seu último bit não colida com algum dos primeiros bits
de uma trama subsequente enviada por outra estação … O trio de tramas {F7, F8 e F9} representa a situação limite: o
primeiro bit de F8 chega à antena imediatamente após o último bit de F7 a ter deixado de ocupar, e até à transmissão do
último bit de F8, não há nenhuma outra trama a chegar à antena… (por outras palavras, o primeiro bit da trama seguinte, F9,
chega à antena somente após o último bit de F8 a ter abandonado). A conclusão é: para que a trama de teste não sofra
colisão, é necessário que, durante um período de tempo TVuln centrado no instante em que o primeiro bit dessa trama chega
à antena, nenhuma outra trama chegue à antena! Vice-versa, haverá colisão quando, nesse período, uma ou mais outras
tramas fizerem a sua aparição na antena… O último conjunto de tramas ilustra o caso em que a trama de teste, F10, colide
com as tramas enviadas por duas outras estações, {F11 e F12}…
Isto compreendido, qual é então a Probabilidade de colisão? O enunciado adianta: a geração de tramas é um processo
de Poisson de parâmetro G. Em termos práticos, e sendo P o tempo de transmissão de uma trama, isso significa o seguinte:
a probabilidade de k tramas durante um intervalo arbitrário T é dada por:
P (k tramas em T) = [(GT/P)k e -GT/P]/k!
A probabilidade de uma trama de teste colidir com k tramas será, naturalmente, o valor em que a expressão acima se
volve para T=TVuln; da figura, retira-se TVuln=2P; por substituição, chega-se a
PColisão-com-k-tramas = (2G)k e-2G / k!

É hora de responder à questão proposta… Podem retirar-se as seguintes conclusões:


Trama de teste k PColisão-com-k-tramas Psucesso=qk
-2G
F1 ou F8 0 e 1
F3 ou F6 1 2G e-2G q
F10 2 (2G)2 e-2G/2! q2
A probabilidade de uma trama de teste genérica ser recebida com sucesso é, então,
PGlobalDeSucesso= e-2G * 1 + 2G e-2G * q + (2G)2 e-2G/2! * q2 + … + (2G)k e-2G / k! * qk + …
que, por manipulações algébricas triviais conduzem sucessivamente a:
PGlobalDeSucesso = e-2G * ( 1 + 2Gq + (2G)2 /2! * q2 + … )
e-2G * ( 1 + 2Gq + (2Gq)2 /2! + … )
e-2G * e 2Gq
e-2G+2Gq
e-2G(1-q)
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 31/41

O parâmetro G representa a taxa de geração de tramas, novas mais retransmitidas; PGlobalDeSucesso representa,
naturalmente, a "percentagem" dessas tramas que já não precisam ser retransmitidas. O sistema estará em equilíbrio se o
número de novas tramas, S, não fôr nem superior nem inferior a essa quantidade, isto é, se fôr
S = G * PGlobalDeSucesso tramas-novas/tempo-de-transmissão-de-trama.
A eficiência máxima será lograda para o valor de q que torna máximo S. Considerando que S=Ge-2G(1-q) é uma função
crescente com q, o máximo ocorrerá quando q=1, que conduz a S=G (Uma trama vem sempre a ser recebida com sucesso,
PSucesso=qk=1, não chega nunca a haver retransmissões…)

24.  Considere um sistema Aloha sincronizado (slotted) com um número elevado de utilizadores; os pacotes têm
comprimento 1000 bits, e são transmitidos ao ritmo de 100 Kbps. Por observação do sistema, verifica-se que
metade dos slots estão vazios (isto é, nenhuma estação os está utilizando para enviar pacotes). Admitindo que o
sistema está estabilizado (isto é, o número médio de pacotes gerados é igual ao número médio de pacotes
transmitidos com sucesso), determine:
24. 1. O número médio de pacotes transmitidos (com ou sem sucesso) num intervalo arbitrário T;
24. 2. O débito;
24. 3. A taxa de geração de novos pacotes (em pacotes/segundo);
24. 4. A probabilidade de sucesso na transmissão de um pacote;
24. 5. O número médio de transmissões necessárias por pacote;
24. 6. O menor ritmo de transmissão do canal que conduz a um
funcionamento estável;
Nota: Recorde a distribuição de Poisson:
P[k pkts em t segs]=(Gt/P)k e-Gt/P/k! (P=duração de um slot)
R: O tempo de transmissão dum pacote (e portanto a duração dum slot) é
P=1000/(100*103)= 0,01 seg
A fig SAN03.c esquematiza a situação, onde se fixou P como unidade de tempo: são gerados, em média, pelo conjunto
das estações, S novos pacotes em cada P; eles são transmitidos para o satélite; alguns, eventualmente, vêem a sofrer uma
colisão, tendo que vir a ser retransmitidos; alguns destes últimos vêem a sofrer outra colisão, tendo que vir a ser
retransmitidos outra vez; etc.. Com o que o satélite acaba por ser visitado, em média, em cada P, por G pacotes transmitidos
e retransmitidos-uma-ou-mais-vezes.
A eficiência máxima obter-se-ia se não houvesse
quaisquer colisões: num instante t0 chegaria ao satélite o
primeiro bit dum pacote - e, até este acabar de chegar (o que
sucederia no instante t0+P), não chegaria mais nenhum outro
pacote; em t0+P chegaria o primeiro bit doutro pacote, e até
ele acabar de chegar (o que sucederia no instante t0+2P), não
chegaria mais nenhum outro; em t0+2P chegaria o primeiro
bit doutro pacote… e assim sucessivamente. Esta situação
corresponderia a ser G=S=1: por cada P, é gerado um novo
pacote, e ele é transmitido com sucesso; tratar-se-ia do
vulgar cenário "TDM determinístico"…
Mas a realidade é outra, há colisões: tendo já chegado o
primeiro bit de um pacote, é possível que, antes de decorrido
P (isto é, antes de ter chegado o último bit desse pacote),
chegue o primeiro bit de outro pacote (em Aloha slotted, a colisão significa que, quando ao satélite chega o primeiro bit de
um pacote, chega também o primeiro bit de outro pacote). Então, ambos irão ser retransmitidos… A retransmissão de um
pacote pode ser bem sucedida, não havendo então que voltar a retransmiti-lo - ou pode volver-se em nova colisão, e,
portanto, em novas retransmissões… Por cada P, o satélite é visitado por S pacotes novos e um total de G-S pacotes
retransmitidos uma ou mais vezes. Na situação de equilíbrio, o número de pacotes que não necessitam ser retransmitidos -
chegaram bem ao seu destino e portanto saem do Sistema Aloha - deve ser exactamente igual ao número de pacotes que
entram no Sistema Aloha, i.e., o número de pacotes novos gerados pelas estações: S pacotes em cada P. No equilíbrio, por
conseguinte, tem que se verificar 1 ≥ G ≥ S ≥ 0 e a eficiência é S: sendo 1 pacote por P o máximo possível, só chegam S
pacotes em cada P.
Uma última questão: haverá alguma relação entre G e S? qual? Se se aceitarem algumas restrições - em particular, a de
que a "geração de pacotes novos" e a "chegada de pacotes ao satélite" são, ambos, "processos Poisson", de parâmetros S e
G, respectivamente -, chega-se a:
- para Aloha puro, S = G e -2G
- para Aloha slotted, S = G e -G, cfr fig SAN03.a
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 32/41

S deduz-se de G; G deduz-se da afirmação do enunciado "metade dos slots estão vazios", ou, o que é o mesmo,
"Probabilidade de um slot estar vazio = 1/2" →
P[0 pkts em t=P]=1/2 → (Gt/P)k e-Gt/P/k!=1/2 quando k=0 e t=P →
e-G=1/2 → G=loge2=0,693147 (pacotes em cada 0,01 seg);
R1: G T/P = 69,3147*T pacotes em T segs (transmitem-se G pacotes por P; quantos se transmitem em T?)
R2: SAlohaSlotted=G e-G = 1/2*0,693147 = 0,346574 (pacotes chegados com sucesso em cada 0,01 seg);
R3: λ=S/P=34,6574 pacotes em cada seg (geram-se S pacotes por P; quantos se geram em 1 seg?)
R4: P0=e-G= 0,5 (há sucesso quando, tendo chegado o primeiro bit de um pacote ao satélite, ele
não é visitado por nenhum outro pacote durante os seguintes P segs: trata-se de calcular P[0 pkts em
t=P]; repare-se que, neste cálculo, é irrelevante saber-se que, de momento, o satélite está a ser
visitado por um pacote: algo análogo ao facto de que, quando se lança uma moeda, no "cálculo" da
probabilidade de sair cara ou coroa é irrelevante o que saiu no(s) lançamento(s) anterior(es))
R5: G/S=eG=2 (por S pacotes gerados em cada P, são transmitidos-e-retransmitidos G ao satélite;
quantos o são em média por cada pacote?)
(A querer conferir à resolução um ar mais "científico", basta recordar a fõrmula para obter o valor
médio de uma variável estatística: N = Σ n p(n). Visando-se o número médio de transmissões
necessárias de um pacote, tudo se resume ao cálculo da probabilidade do pacote sofrer n
transmissões… Mas, vistas bem as coisas, essa é a probabilidade de o pacote sofrer exactamente (n-1)
transmissões mal sucedidas antes de uma transmissão final com sucesso. Sabendo-se que a
probabilidade de um sucesso é P0=e-G, e por conseguinte a probabilidade do insucesso é (1-e-G), virá
p(n)= (1-e-G)n-1 e-G. Na nomenclatura da teoria das probabilidades e estatística, trata-se de uma
distribuição geométrica, de parâmetro p=e-G, cujo valor médio é 1/p. Concluindo,
N = Σ n p(n) = Σ n (1- p)n-1 p com p=e-G → N = 1/ e-G = eG.
O cálculo de Σ n (1- p)n-1 p é trivial: basta re-escrevê-lo p/(1-p) Σ n (1-p), e desenvolver o "Σ"; vem:
Σ n (1- p) = (1-p)+2(1-p)2+3(1-p)3+4(1-p)4+… =
[(1-p)+(1-p)2+(1-p)3+(1-p)4+… ]+[(1-p)2+ (1-p)3+(1-p)4+…]+[(1-p)3+(1-p)4+… ]+[(1-p)4+… ]+…=
[(1-p)+(1-p)2+ (1-p)3+(1-p)4+…]+(1-p) [(1-p)+(1-p)2+(1-p)3…]+(1-p)2 [(1-p)+(1-p)2…]+(1-p)3 [(1-p)+…]+…
[(1-p)+(1-p)2+ (1-p)3+ (1-p)4+…] [1+(1-p)+(1-p)2+ (1-p)3+…] = [(1/p)-1][1/p]
(onde se usou a igualdade 1/(1-α)=1+α+α2+… (válida para α<1), e portanto 1+(1-p)+(1-p)2+…=1/[1-(1-p)]=1/p)
Enfim, Σ n (1- p)n-1 p = p/(1-p) Σ n (1- p) = p/(1-p) [(1/p)-1][1/p] = 1/p quod erat demonstrandum
R6: Quando a eficiência é máxima, verifica-se dS/dG=0, que conduz a G=1 ou SMax=e-1. Se a taxa de geração de pacotes
continuar a ser λ=S/P=34,6574 pacotes/seg, em que P=1000/C seg, então terá que ser 34,6574 * 1000 / C ≤ 1/e → C ≥
34657,4*e =94208,58 bps.
Nota final: a fig SAN03.b esquematiza uma possível evolução do satélite ao longo de 26 slots consecutivos:
- 13 slots (isto é, metade), estão livres/vazios;
- ter-se-á observado um total de G*26=18 chegadas de pacotes; dessas chegadas,
- S*26=9 correspondem a pacotes transmitidos com sucesso;
- as restantes, G-S=9, correspondem a colisões, distribuídas por um total de 26-13-9=4 slots de colisão; o número de slots
em que colidiram k pacotes de cada vez determina-se multiplicando por 26 o valor de P[k pkts em t=P]=Gke-G/k! = (1/2)
0,693147k/k!. Vem:
k Vazio: 0 Sucesso: 1 Colisão de 2 Colisão de ≥3
13* Gk /k! 13 slots 9 slots 3 slots 1 slot

25.  Considere uma rede de acesso múltiplo a 100 Mbps que


emprega um protocolo CSMA/CD. A velocidade de propagação na
rede é 200 m/µseg e a distância máxima entre nós da rede é 200 m.
Qual o número mínimo de bits numa trama que garante uma
operação correcta do protocolo CSMA/CD?

Resolução:
A figura LAN01 esquematiza a evolução temporal da rede. Sem perda
de generalidade, considerou-se uma população de cinco nós {E1, … E5}
igualmente distanciados (de 50 m entre cada par de nós adjacentes).
- no instante T1, o nó E1 advém com carga para transmitir; verifica o
estado do meio… e, achando-o livre, dá curso à transmissão da trama…
Enquanto o faz, verifica se colidiu com algum outro nó. O primeiro bit
chega ao nó mais afastado, E5, 1 µseg depois (de notar que a distância
máxima entre nós da rede é 200 m e que a velocidade de propagação na
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 33/41

rede é exactamente 200 m/µseg… ). As coisas correm bem: nenhum nó mais intenta transmitir, a trama chega bem a todas
os nós…
- no instante T2, o nó E3 advém com carga para transmitir; verifica o estado do meio… e, achando-o livre, dá curso à
transmissão da trama… Enquanto o faz, verifica se colidiu com algum outro nó. As coisas correm novamente sem
problemas …
- enquanto E3 está transmitindo, E4 advém subitamente com carga para transmitir; verifica o estado do meio… e,
achando-o ocupado, aguarda; enquanto aguarda, continua a auscultar o estado do meio. Enfim, o último bit enviado por E3
passa-lhe à frente… o meio advém livre, e E4, em T3, dá curso à transmissão da trama… Enquanto o faz, verifica se colidiu
com algum outro nó.
- o primeiro bit da trama enviada por E4 move-se a 200 m/µseg;
acontece que, antes de passados 0,5 µseg, E2 advém subitamente com
carga para transmitir; verifica o estado do meio… e, achando-o livre,
E2, em T4, dá curso à transmissão da trama… Enquanto o faz, verifica
se colidiu com algum outro nó.
- quase imediatamente a seguir, E2 detecta que colidiu com algum
outro nó - pelo que aborta a transmissão. E menos de 0,5 µseg depois,
o primeiro bit que havia enviado chega a E4; E4 detecta que colidiu
com algum outro nó - pelo que também ele aborta a transmissão…
Recorde-se como é feita a detecção de colisão: enquanto E4, por
ex., transmite, ele confere se aquilo que está recebendo do meio é
exactamente igual àquilo que está transmitindo; se o não fôr, conclui
que houve colisão. Por outras palavras: a detecção de colisão baseia-se
numa comparação entre dois sinais! Pelo que: para E4 detectar colisão,
é necessário que, no instante (T7) em que o primeiro bit vindo de E2
chega a E4, este ainda esteja transmitindo! Ou seja: a trama enviada por
E4 tem que ter um comprimento tal que a sua transmissão demore mais
do que o intervalo de tempo entre T3 e T7.
O caso limite ocorre quando as duas estações em curso de colisão
são as mais afastadas, uma em cada extremo… Seja então o caso de, no
instante T5, o nó E1 advir com carga para transmitir: verifica o estado
do meio… e, achando-o livre, dá curso à transmissão da trama… Se acontecer que, um tudo nada antes de ter decorrido 1
µseg, em T6, o nó E5 advenha com carga para transmitir, então E5 desencadeará a sua transmissão… Não restam dúvidas
que o nó E1 virá a detectar colisão - mas só o fará em T8… isto é, praticamente 2 µseg após ter dado início à transmissão…
Pelo que encontrar a solução à questão proposta se resume a: qual deve ser o comprimento de uma trama que, ao ritmo de
100 Mbps, demora 2 µseg, ou mais, a transmitir? A resposta é, naturalmente: pelo menos 100 * 106 * 2 * 10-6 = 200 bit.

26.  Pretende-se estimar a utilização de um canal quando sobre ele opera um protocolo CSMA/CD não-
persistente. O comprimento s, em bits, de um slot de contenda é tal que permite a detecção de colisões. O
comprimento de uma trama é L bits, que assumimos equivaler a um múltiplo inteiro de slots de contenda. A
geração de tramas, novas mais retransmitridas, é dada por um processo Poisson de parâmetro G
tramas/comprimento-da-trama.

Resolução:
A figura LAN02.a esquematiza a evolução temporal da rede. Sem perda de generalidade, considerou-se uma população de
cinco nós {E1, … E5}..
- no instante T1, o nó E2 advém com carga para transmitir; verifica o estado do meio… e, achando-o livre, dá curso à
transmissão da trama… Enquanto o faz, verifica se colidiu com algum outro nó. As coisas correm bem: nenhum nó mais
intenta transmitir, a trama chega bem a todos os nós…
- no instante T2, o nó E1 advém com carga para transmitir; verifica o estado do meio… e, achando-o livre, dá curso à
transmissão da trama… Enquanto o faz, verifica se colidiu com algum outro nó…
- enquanto E1 está transmitindo, mas sem que tenha decorrido o tempo necessário para o seu primeiro bit chegar a E5,
este último advém subitamente com carga para transmitir; verifica o estado do meio… e, achando-o livre, dá curso à
transmissão da trama… Enquanto o faz, verifica se colidiu com algum outro nó…
- quase imediatamente a seguir, E5 detecta que colidiu com algum outro nó - pelo que aborta a transmissão. Logo após,
gera um intervalo de tempo aleatório, T4, que lhe estabelece até quando deverá aguardar antes de proceder a nova tentativa
de transmissão…
- um tudo nada depois, o primeiro bit que E5 havia enviado chega a E1; E1 detecta que colidiu com algum outro nó - pelo
que também ele aborta a transmissão… e também ele gera um intervalo de tempo aleatório, T5, que lhe estabelece até
quando deverá aguardar antes de proceder a nova tentativa de transmissão…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 34/41

- no instante T5, esgota-se o período de espera do nó E1; este verifica o estado do meio… e, achando-o livre, dá curso à
transmissão da trama… Enquanto o faz, verifica se colidiu com algum outro nó…
- no instante T4, esgota-se o período de espera do nó E5; este verifica o estado do meio… e, achando-o ocupado, gera
um intervalo de tempo aleatório, T6, que lhe estabelece até quando deverá aguardar antes de proceder a nova tentativa de
transmissão…
Intui-se a subsequente evolução da rede… Claramente, a "visão" que cada nó detém da rede é distinta daquela que os
outros experimentam; por ex., após a transmissão da primeira trama, E5 experimenta um intervalo de tempo mais alargado
do que aquele que é sentido por E1…
Na figura LAN02.b, está esquematizado, de uma forma mais compacta, o que o nó E1 observa: primeiramente, um
intervalo de silêncio; depois, a partir de T1, a transferência de uma trama; entre T2 e T8, um slot de colisão; entre T8 e T5,
um slot de silêncio; a partir de T5, a transferência de uma outra trama… Intui-se a subsequente visão de E1: uma sucessão de
tramas transferidas com sucesso intermeadas de silêncios e colisões…
A transmissão com sucesso de uma trama genérica requere, por conseguinte, uma duração total de TTotal repartida por
dois intervalos de tempo consecutivos:
um primeiro acumulando um número
variável de silêncios e colisões, e um
segundo, de duração P, em que a trama é
efectivamente transferida (Em LAN02.b, a
duração dos slots de silêncio e colisão
volve-se sempre a mesma… mas em
rigor isso não é de assim: do diagrama temporal, é claro que se trata de uma aproximação ao mundo real…).
A utilização do canal, ρ, que exprime a fracção do tempo em que o canal está sendo utilizado para transmitir com
sucesso é, então, ρ=TUtil/TTotal. P é uma quantidade fixa: depende de L (que se admite ser múltiplo de s, L=ns) e do ritmo
de transferência do canal, C bps; sabido este, deduz-se P=ns/C. Quanto a TTotal,, ela é dada por (ks+ns)/C, em que k é o
número de slots "inúteis" que precedem a transferência da trama - que é uma quantidade variável! A utilização do canal não
é, pois, constante - mas, se se conhecer o valor médio de k, pode determinar-se a utilização média: será ρ=n/(kMédio+n).
O valor médio de k é obtido por Σ k pk, em que pk exprime a probabilidade de se sucederem k slots "inúteis" entre duas
tramas consecutiva. Slots "inúteis", há-os de dois tipos: slot de silêncio, i.e., slots em que nenhum nó intenta transmitir; e
slots de colisão, i.e., em que dois ou mais nós o pretendem fazer. Seja PInsucesso a Probabilidade de ocorrer um destes tipos
de slots; então, PSucesso=1-PInsucesso, será a Probabilidade de o slot não ser inútil, i.e., a Probabilidade de que ele seja o
primeiro da transmissão de uma trama bem sucedida.
Repare-se:
- p0=PSucesso é a probabilidade de não haver nenhum slot inútil…
- p1=PInucesso PSucesso é a probabilidade de haver um-e-um-só slot inútil…
- p2= PInsucesso 2 PSucesso é a probabilidade de haver dois-e-apenas-dois slots inúteis…
- pk=PInsucesso k PSucesso é a probabilidade de haver k-e-apenas-k slots inúteis…
Por conseguinte, kMédio = Σ k PInsucesso k PSucesso
Para o cálculo de PSucesso, recorde-se: a geração de tramas é um processo de Poisson de parâmetro G. Em termos
práticos, e sendo P=ns/C o tempo de transmissão de uma trama, isso significa: a probabilidade de se gerarem k tramas
durante a duração de um slot, T=s/C é dada por:
P (k tramas em T) = [(GT/P)k e -GT/P]/k!= [(G/n)k e -G/n]/k!
Pelo que PSucesso =P(k=1 trama em T)=G/n e-G/n.
E portanto kMédio = Σ k (1-G/n e-G/n) k G/n e-G/n = p0Σ k (1- p0) k =(1-p0)/p0
(em que se teve em atenção que p0=PSucesso=G/n e-G/n e o resultado algures tabelado Σ i (1-ξ ξ) i=(1-ξ ξ2)
ξ)/ξ
G/n
A utilização média do canal será enfim ρ=n/[(1-p0)/p0+n]=G/[e +G(1-1/n)]

Recorde-se, todavia: a expressão para ρ foi obtida considerando o modelo subjacente à figura LAN02.b; ora, nesta, os
slots têem todos, a mesma duração - o que obviamente não é verdade! Em particular, o período de contenda que se segue à
transmissão da primeira trama decorre entre T9 e T3 - que é inferior ao máximo…

27.  Considere uma rede de anel de testemunho de débito R bps e com um atraso de circulação do anel de d seg.
A este anel estão ligadas N estações, cada um com um número ilimitado de tramas para transmitir. Quando em
posse de testemunho, cada estação pode transmitir apenas uma trama. As tramas têem L bits de comprimento e
o comprimento do testemunho é desprezável. Determine a utilização do canal em função de R, d, N e L,
assumindo:
27. 1. que as estações libertam o testemunho logo após enviarem a trama.
27. 2. que as estações só repõem o testemunho depois de recolherem a trama que enviaram.

Resolução:
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 35/41

1. Conforme ao método seguido na resolução de problemas anteriores similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação descrita. O diagrama temporal correspondente à situação descrita
encontra-se esquematizado em LAN03.a. Sem perda de generalidade, considerou-se uma população de cinco estações {E1, …
E5} e que, no instante inicial, T11, a estação que detém o testemunho é E1:
- no instante T11, a estação E1 desencadeia o envio de uma trama; o primeiro bit passa sucessivamente pelas estações E2,
E3, E4 e E5 (que atinge no instante T51), sendo enfim devolvido a
E1 - aonde chega no instante T13; o último bit da trama sofre o
mesmo trajecto: é enviado em T12, depois passa por E2 (em T21),
E3, E4 e E5 (em T52), regressando enfim a E1 - aonde chega no
instante T15. O tempo que um qualquer bit demora a dar a volta ao
anel (e por conseguinte o tempo entre T11 e T13 ou T12 e T15) é d;
o tempo que demora a transmitir uma trama (e por conseguinte o
tempo entre T11 e T12 ou T13 e T15) é Txmt=L/R seg.
- logo após enviar a trama, i.e., no instante T12, E1 liberta o
testemunho; ele chega a E2 no instante T21. De imediato, E2 passa
a enviar uma trama; os eventos subsequentes são análogos ao que
se disse a propósito da trama anterior: o primeiro e último bits são
enviados respectivamente em T21 e T22, passam por E1 nos
instantes respectivos T15 e T17…
- logo após enviar a trama, i.e., no instante T22, E2 liberta o
testemunho; ele chega a E3 no instante T31. De imediato, E3 passa
a enviar uma trama; os eventos subsequentes são análogos ao que
se disse a propósito das tramas anteriores: o primeiro e último bits
são enviados respectivamente em T31 e T32, passam por E1 nos
instantes respectivos T17 e T19…
- os eventos subsequentes - passagem de testemunho, seguida
de transmissão de trama, seguida de nova passagem de testemunho, etc…. adivinham-se…
- pelo que, em dado momento - em T54, i.e., após transmitir o último bit de uma trama -, a estação E5 devolve o
testemunho à estação E1: o cenário inicial está de novo em vigor - e tudo se volta a repetir…
É hora de averiguar: qual a utilização do canal, ρ=TUtil/TTotal? Reparando que em T23 a rede voltou ao estado inicial -
pelo que o "ciclo" T11- T23 se irá repetir indefinidamente -, isso equivale a inquirir: qual a fracção de tempo, entre T11 e T23,
utilizada de facto para transferir informação útil? A partir do diagrama temporal, a resposta volve-se em simples geometria
euclideana…
Considerando os segmentos entre T11 e T23, aqueles que correspondem à recepção de tramas - por E1 - são os seguintes:
T13-T15, T15-T17,…,T21-T23. Cada um destes segmentos monta a Txmt=L/R seg; pelo que TUtil=N*Txmt=NL/R. Quanto ao
período de tempo entre T11 e T23, ele volve-se na soma dos segmentos T11-T13, T13-T15, …,T21-T23; pelo que TTotal=d+ NL/R.
Finalmente, ρ= NL/R/[d+NL/R].

2. Conforme ao método seguido na resolução de problemas


anteriores similares, a primeira etapa é: desenhar um
diagrama temporal que esquematize fielmente a situação
descrita. O diagrama temporal correspondente à situação
descrita encontra-se esquematizado em LAN03.b. Sem perda de
generalidade, considerou-se uma população de três estações
{E1, … E3} e que, no instante inicial, T11, a estação que detém
o testemunho é E1:
- no instante T11, a estação E1 desencadeia o envio de uma
trama; o primeiro bit passa sucessivamente pelas estações E2 e
E3 (que atinge no instante T31), sendo enfim devolvido a E1 -
aonde chega no instante T13; o último bit da trama sofre o
mesmo trajecto: é enviado em T12, depois passa por E2 e E3
(em T32), regressando enfim a E1 - aonde chega no instante T15.
- logo após recolher a trama, i.e., no instante T15, E1 liberta
o testemunho; ele chega a E2 no instante T21. De imediato, E2
passa a enviar uma trama; os eventos subsequentes são
análogos ao que se disse a propósito da trama anterior: o
primeiro e último bits são enviados respectivamente em T21 e
T22, passam por E1 nos instantes respectivos T17 e T19…
A partir do diagrama temporal, a determinação da
utilização do canal, ρ=TUtil/TTotal, volve-se em simples
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 36/41

geometria euclideana:
Considerando os segmentos entre T11 e T25, aqueles que correspondem à recepção de tramas - por E1 - são os seguintes:
T13-T15, T17-T19,…,T21-T23. Cada um destes segmentos monta a Txmt=L/R seg; pelo que TUtil=N*Txmt=NL/R. Quanto ao
período de tempo entre T11 e T25, ele volve-se na soma dos segmentos T11-T13, T13-T15, …,T23-T25; pelo que TTotal=N(d+
L/R)+d. Finalmente, ρ= NL/R/[N(d+ L/R)+d].

28.  A LAN da figura Internetworking03.a é formada por três comutadores e três hubs Ethernet.
28. 1. Classifique as interfaces de cada
um dos comutadores (raíz, designada
ou bloqueada) e indique as BPDUs
enviadas por cada comutador em
cada uma das suas interfaces quando
em regime estacionário
28. 2. Para a sequência de envio de
tramas seguinte, indique as
interfaces sobre as quais são
transmitidas cópias das tramas
respectivas (A→B, C→D, C→A,
B→A, D→C)

Resolução:
1. Cada ponte envia uma BPDU contendo ao menos os seguintes campos:
Fonte da PDU Id da Ponte-Raíz Custo Fonte→Raíz
A evolução na configuração da spanning tree vem a ser a seguinte:
No 1º "Hello time", as BPDUs enviadas em cada LAN (e os portos por onde "saem") são:

X Y Z N W E
B2 B2:B2-0/P3 B2:B2-0/P1 B2:B2-0/P2
B7 B7:B7-0/P1 B7:B7-0/P2 B7:B7-0/P3
B10 B10:B10-0/P2 B10:B10-0/P1 B10:B10-0/P3

Por ex., na LAN-N, a Ponte B7 despacha uma BPDU em que refere que:
- é ela, B7, a fonte dessa BPDU (o seu porto de saída é P2);
- a seu ver, a Ponte-raíz é ela própria, B7 (note-se que, ao princípio, ela ignora por completo a existência de
qualquer outra Ponte);
- o custo até essa suposta Ponte-raíz é, naturalmente, 0.

A tabela acima pode ser representada, de uma maneira mais compacta, por:

B2 B2:B2-0 P1, P2, P3


B7 B7:B7-0 P1, P2, P3
B10 B10:B10-0 P1, P2, P3

em que, linha a linha, se indica, para cada Ponte: na segunda coluna, a BPDU que constroi e, na terceira coluna, os respectivos
portos por onde a transmite.

Recebidas estas BPDUs, cada Ponte faz decisões, a saber: qual o Id da Ponte-raíz e o seu porto (dito porto-raíz) por
onde a alcança. Seguem o seguinte algoritmo: o Id da Ponte-raíz é o menor Id presente nas BPDUs que emitiu e
recebeu; o porto-raíz é o porto por onde é menor o custo até essa suposta Ponte-raíz.
Por ex., B7 recebeu BPDUs de B2 e B10; o menor Id de todas estas três Pontes é 2; por ora, a Ponte-raíz será,
então, B2. E o porto-raíz de B7, isto é o porto através de que é menor o custo da rota de B7 até B2 será (ao menos
temporariamente) o porto P3. Ela terá um custo total de 1: na ausência de mais informações, assume-se que o custo é o
número de saltos (hops) até à Ponte-raíz.
As conclusões encontram-se na tabela:

Pontes Lans que conecta BPDUs recebidas de: Id da Ponte-raíz/ porto-raíz, custo
B2: W, E, Z B7 via W; B10 via E B2/-,0
B7: X, N, W B2 via W; B10 via N B2/P3,1
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 37/41

B10: N, Z, E B2 via E; B7 via N B2/P3,1

No 2º "Hello time", as informações "ID da Ponte-raíz" e "Custo Fonte→Raíz" nas BPDUs enviadas (informações
essas retiradas da tabela acima) serão então:

B2 B2:B2-0 P1, P2, P3


B7 B7:B2-1 P1, P2
B10 B10:B2-1 P1, P2

(Cada ponte indica a momentâneamente suposta Ponte-raíz, e o custo de si própria até ela).
Repare-se: a propósito de B7, a terceira coluna não inclui o porto P3 - significando que a BPDU construída por B7
não é enviada pelo seu porto-raíz, P3: a informação que veicula (B7:B2-1) não é mais "competitiva" que a melhor que
por ela já recebeu (a saber, B2:B2-0). Idem para a terceira coluna de B10.

Recebidas estas BPDUs, a tabela de conclusões passa a ser:

Pontes BPDUs recebidas de: Id da Ponte-raíz/ porto-raíz, custo


B2: B2/-,0
B7: B2, B10 B2/P3,1
B10: B2, B7 B2/P3,1

Por ex., de B7 para B2 existem duas rotas possíveis: B7→B2 (via P3) e B7→B10→B2 (via P1). Ora B7 recebe BPDUs
estabelecendo que o custo das rotas das Pontes adjacentes, B2 e B10, para a Ponte-raíz são, respectivamente, 0 e 1; entretanto,
os custos das rotas de B7 para essas Pontes adjacentes são, ambas, de 1 (hop). Por conseguinte, os custos totais das rotas de B7
para B2 são, respectivamente, 0+1=1 (via P3) e 1+1=2 (via P1); o primeiro é o menor, pelo que o porto-raíz de B7 passará a
ser P3.

No 3º "Hello time", as BPDUs enviadas mantêm-se quase sem alteração;


pelo que a tabela de conclusões permanece sem modificações…

B2 B2:B2-0 P1, P2, P3


B7 B7:B2-1 P1, P2
B10 B10:B2-1 P2

Repare-se: a propósito de B10, a terceira coluna não inclui o porto P1 -


significando que a BPDU construída por B10 não é enviada por P1: a informação que veicula (B2-1) não é mais "competitiva"
que a melhor que por ela já recebeu (a saber, B7:B2-1).

É tentador traçar-se já os seguintes ramos da spanning tree, cfr Intenetworking03b: estão identificados a Ponte-raíz, e os
Portos-raíz das outras Pontes, e realçaram-se, com um traço mais grosso, os ramos que incluem esses Portos-raíz.

Há agora que determinar, para cada LAN, a sua Ponte designada. Ela será a Ponte dessa LAN que providencia,
para as estações nessa LAN, a rota de menor custo até à Raíz.
Por ex., para N, B7 e B10 providenciam, ambas, rotas com o mesmo custo, 1, até B2. Desempata-se escolhendo
a Ponte de menor Id, no caso, B7. Para cada LAN, o porto através de
que se alcança a Ponte designada denomina-se de porto designado. Por
ex., para N, a ponte designada é B7, e o porto designado é P2.
Para o conjunto das seis LANs, as pontes designadas (e os portos
raíz-R, designados-D e bloqueados-B) serão, cfr Intenetworking03d:

P1 P2 P3
B2(W,E.Z) D(W) D(E) D(Z)
B7(X,N) D(X) D(N) R
B10(Y) B D(Y) R

Isto é, o tráfego de Y faz-se por B10, mas o tráfego de N faz-se por B7… e, por conseguinte, o porto P1 de
B10 é desnecessário: na árvore acima, deve ser incluídos, como designados, os portos P1 de B7 e P2 de B7 e
B10; e excluído, como bloqueado, o porto P1 de B10.
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 38/41

(Nota: B10 "sabe" que o seu porto P1 é desnecessário pois: recebe de N uma BPDU, de B7, oferecendo uma
rota para B2 custando 1 - isto é, custando tanto quanto a melhor rota que a própria B10 pode oferecer, que é via E.
Tendo que desempatar, B10 tem que escolher o menor Id entre aqueles que estão em confronto, que são B7 e B10:
o tráfego de N dever-se-á fazer por B7, pelo que B10 deverá concluir que o seu porto P1 é desnecessário…)

Atente-se nas "propriedades" da tabela acima:


- na coluna à esquerda, aparecem os identificadores de todas as LANs, uma e uma só vez;
- nas três colunas à direita,
- por cada linha, exceptuando a da Brige-Raíz) existe um porto-raíz;
- por cada LAN, existe um porto-designado;
- um porto-raíz não é nunca designado;
- se, na coluna à esquerda, uma Ponte surge como designada para K LANs, então nessa linha deverão constar K
portos designados;

Considere-se agora o envio da sequência de tramas do enunciado; a


sequência de eventos vem a ser a seguinte (cfr Internetworking03.c):
- Envio de trama A→B:
1- A estação A envia uma trama com destino a B; o HubX difunde-a em X,
i.e., todas as estações - e Pontes - ligadas ao Hub-X vêem a recebê-la! pelo
que não demorará muito que B7 a receba…
2- Ignorando qual a LAN que contém a estação destino, B, B7 transmite a
trama por todos os seus portos designados (excepto aquele de onde proveio a
trama)… Isto é, difunde a trama por N e W.
3- Pelo que B10 vem a recebê-la; todavia, sendo a recepção feita pelo porto P1, que está bloqueado, B10 não lhe dedica
nenhuma atenção mais…B2 também recebe a trama; também ela ignora por enquanto qual a LAN que contém a estação
destino; pelo que B2 difunde a trama por Z e E…
4- Com isso, B10 vem a receber a trama; também ela ignora por enquanto qual a LAN que contém a estação destino; pelo
que B10 difunde a trama por Y…
Há que realçar: este progressão faz-se com uma actualização das informações registadas nas Pontes: é que, se elas
ignoram ainda aonde se encontra o destino da trama, vão todavia ficando a saber "onde está" a sua origem. Concretamente,
quando B7 recebe a trama - pelo seu porto P1! -, pode concluir que a origem, A, é alcançável por P1 e regista-o internamente;
do mesmo modo, quando B2 recebe a trama, regista que A é alcançável pelo seu porto P1; enfim, B10 registará que A é
alcançável pelo seu porto P3.
- Envio de trama C→D:
5- A estação C envia a trama; ela é difundida em Y; pelo que não demorará muito que B10 a receba…
6- Ignorando qual a LAN que contém a estação destino, B10 difunde a trama por E (mas não por N)…
7- Pelo que B2 vem a recebê-la; todavia, também ela ignora por enquanto qual a LAN que contém a estação destino; pelo
que B2 difunde a trama por Z e W…
8- Com isso, B7 vem a receber a trama; também ela ignora por enquanto qual a LAN que contém a estação destino; pelo
que B7 difunde a trama por X…
Novamente, este progresso é feito com uma actualização das informações registadas nas Pontes. Concretamente, B10
registará que C é alcançável por P2; B2 registará que C é alcançável pelo seu porto P2; enfim, B7 registará que C é alcançável
pelo seu porto P3…
- Envio de trama C→A:
9- A estação C envia a trama; é difundida em Y; pelo que não demorará muito que B10 a receba…
10- B10 - que já "sabe" que A é alcançável por P3 - difunde a trama por E…
11- Pelo que B2 vem a recebê-la; e como "sabe" que A é alcançável por P1, difunde a trama por W…
12- Com isso, B7 vem a receber a trama; também "sabe" que A é alcançável por P1; pelo que B7 difunde a trama por X…
Desta feita, este progresso é feito sem actualização das informações registadas nas Pontes…
- Envio de trama B→A:
13- A estação B envia uma trama; é difundida em X; pelo que não demorará muito que B7 a receba…
B10 já "sabe" que A é alcançável por P1; mas foi de P1 que a recebeu; pelo que não lhe dedica nenhuma atenção mais…
Este progresso é feito com uma actualização das informações registadas em B7. Concretamente, B7 registará que B é
alcançável por P1…
- Envio de trama D→C:
14- A estação D envia uma trama; é difundida em Z; pelo que não demorará muito que B2 a receba…
15- B2 - que já "sabe" que C é alcançável por P2 - difunde a trama por E…
16- Pelo que B10 vem a recebê-la; e como "sabe" que C é alcançável por P2, difunde a trama por Y…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 39/41

Novamente, este progresso é feito com uma actualização das informações registadas nas Pontes. Concretamente, tanto B2
como B10 registarão que D é alcançável por P3...
Resumindo, a solução é (em que os sublinhados identificam onde são transmitidas cópias da trama):

A → B C → D C → A →A
B→ D → C
P1 2 7 11
B2 P2 3 6 10 15
P3 3 7 14
P1 1 8 12 13
B7 P2 2 8
P3 2 7 11
P1
B10 P2 4 5 9 16
P3 3 6 10 15

Camada Física
29.  Considere um sinal s(t), rectangular com amplitudes 1,0 e -1,0, com período T1=1 mseg. A transição entre
as amplitudes -1,0 e +1,0 acontece em t=0.
29. 1. Faça um esboço da evolução temporal de s(t)
29. 2. Use o desenvolvimento em série de Fourier para
mostrar que o sinal s(t) se pode escrever como uma
soma infinita de sinusoides da forma 4/(kπ π) sen (2
kππf1t), com k= 1, 3, 5, … e f1=1/T1
29. 3. Faça um esboço da soma dos três primeiros
termos da série da alínea anterior;
29. 4. Suponha que, na passagem por um filtro, a
frequência f1 é atenuada de factor de 10, mantendo-
se as restantes inalteradas. Faça, de novo, um
esboço da soma dos três primeiros termos da série e comente o resultado.

Resoluçâo:
Na figura Fourier01.a encontra-se um esboço da evolução temporal de s(t).
O desenvolvimento de s(t) - que é um sinal periódico - em série trigonométrica de Fourier é o seguinte:
s(t) = a0/2 +
∑ an cos (2ππ/T1 nt) +
∑ bn sen (2ππ/T1 nt)
em que os coeficientes an e bn se obtêm por:
an = 2/T1 ∫0T s(t) cos (2π
π/T1 nt) dt
bn = 2/T1 ∫0T s(t) sen (2π
π/T1 nt) dt
Designando wn=2π π/T1 n, manipulações algébricas triviais conduzem a: wn=2π
πn (pois T1=1) e

an = 2 ∫01 s(t) cos wnt dt e bn = 2 ∫01 s(t) sen wnt dt pois T1=1 mseg
= ∫0 2cos wnt dt
1/2
= ∫01/2 2sen wnt dt pois s(t) vale o que vale…
-∫∫1/21 2cos wnt dt -∫∫1/21 2sen wnt dt
= 2sen wnt/wn 01/2 = -2cos wnt/wn 01/2 por primitivação…
- 2sen wnt/wn 1/2 1
+ 2cos wnt/wn 1/21 e posto que wn/2=π πn
= {[sen πn -sen 0] = -{[cos πn -cos 0] substituindo t=1/2 e t=0…
- [sen 2π πn-sen πn]}/(π
πn) - [cos 2π πn-cos πn]}/(ππn)
= 0 = 0 (para n par)
a0 = 2/T1 ∫0T s(t) dt=0 = 4/(π π n) (para n ímpar)
(Note-se que, sendo 1≤n, se tem: sen πn=0, e cos (ππn)=1 (para n par) e cos (ππn)=-1 (para n ímpar))

∑ 4/(π
Pode então escrever-se s(t) =∑ π nt), com n= 1, 3, 5, …, i.e., e verificando que f1=1, s(t) pode escrever-se
π n) sen (2π
como uma "soma infinita" de sinusoides da forma 4/(ππ n) sen (2π
π nf1t)…
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 40/41

Cada uma destas sinusoides designa-se de


harmónica de s(t); possui uma amplitude e
frequência específicas. A frequência da
primeira harmónica, i.e., da harmónica de
ordem n=1, designa-se de fundamental: vem a
ser exactamente o inverso do período do sinal
s(t)! no caso, será f1=1/T1=1 kHz. As restantes
harmónicas têem frequências que são
múltiplas dessa fundamental: a segunda
harmónica tem frequência 2*1=2 kHz, a
terceira harmónica tem frequência 3*1=3
kHz, etc. Ademais das harmónicas, a série de Fourier inclui uma componente, a0/2, que não é coeficiente de nenhuma
sinusóide; é designada de componente DC. A tabela Fourier01.b resume estes comentários para o sinal s(t).
Os três primeiros termos (não nulos) da série de Fourier são:
b1=4/(π
π) sen (2π
π t), b3 =4/(3π π 3t) e b5=4/(5π
π) sen (2π π) sen (2π
π 5t).
Para o leitor, deverá ser uma brincadeira de crianças desenhar o gráfico da função s(t)c=b1+b3+b5: as calculadoras com
funções gráficas prestam-se a maravilhas… Idem para o desenho de s(t)d=b1/10+b3+b5…

30.  Uma linha de transmissão com largura de banda 100 kHz tem perdas de 20 dB. A potência do sinal que
alimenta a linha é 0,5 watt. A potência do ruído, medido na saída da linha, é de 2,5 µwatt. Nestas condições,
determine o máximo ritmo binário que pode esperar obter nesta linha.

Resolução:
Conforme ao teorema de Shannon, o ritmo máximo
que pode obter-se de uma linha é:
CMax=B log2 (1 + S / N) bps
em que B é a largura de banda da linha e S e N são as
potências respectivamente do sinal e do ruído à saída da linha. São conhecidos B=100 kHz e N=2,5 µwatt; falta então
calcular S. Para o efeito, usa-se a informação: as perdas da linha são 20 dB. O decibel, db, remete para uma
variação relativa de potência em unidades logarítmicas:
10 log 10 (POutput/PInput) = -20,
que conduz sucessivamente a:
10 log 10 (POutput/0,5) = -20
log 10 (POutput/0,5) = -2
POutput/0,5=10-2
POutput=0,5*10-2=5*10-3

A resposta à questão proposta encontra-se por uma substituição trivial na expressão de CMax:
CMax= 105 log2 (1 + 5*10-3 / (2,5*10-6)) bps = 105 * log2 2001 bps = 1,0966505452 Mbps

31.  Supondo que se dispõe de fontes de sinal capazes de fornecer uma potência de 100 watts, calcule o
comprimento máximo em cada um dos meios de transmissão seguintes para que a potência do sinal na saída não
seja inferior a 1 watt. Consulte o gráfico da figura fornecida.
31. 1. Cabo de pares entrançados (0,5 mm) a 300 kHz.
31. 2. Cabo de pares entrançados (0,5 mm) a 1 MHz
31. 3. Cabo coaxial (9,5 mm) a 1 MHz
Prof V Vargas, Instituto Superior Tecnico Redes de Computadores 12/09/11, Pg 41/41

31. 4. Cabo coaxial (9,5 mm) a 25MHz


31. 5. Fibra óptica com uma atenuação de 0,2 dB/Km

Resolução:
O decibel, db, remete para uma variação relativa de potência em unidades logarítmicas:
10 log 10 (POutput/PInput) dB
Se POutput>PInput, como ocorre num amplificador, o resultado é positivo: ter-se-á um Ganho; se, ao invés, POutput<PInput,
como acontece num meio de transmissão, o resultado é negativo: ter-se-á uma Atenuação. Por manipulações algébricas
triviais, chega-se a
Atenuação / 10 = − log 10 (POutput/PInput)
10 (-Atenuação / 10) = (POutput/PInput)
PInput * 10 (-Atenuação / 10) = POutput
No caso presente, deve ser 1 ≤ 100 * 10 (-Atenuação / 10), de que se deduz finalmente:
0 ≤ 2 - AtenuaçãoEntrada→ →Saída / 10
0 ≤ 20 - Atenuação Entrada→ →Saída dB
i.e., a atenuação máxima entre a entrada e a saída não deverá exceder 20 dBs…
Ora, os valores numéricos fornecidos no enunciado remetem para a atenuação experimentada a intervalos de 1
quilómetro (por ex., a atenuação de um cabo de pares entrelaçados (0,5 mm) a 300 kHz é, pelo gráfico, de
aproximadamente 5 dB por Km). Determinar o comprimento máximo volve-se então numa "regra de três simples": se em 1
quilómetro um sinal sofre uma atenuação de, digamos, A dBs, quantos quilómetros, L, serão necessários para ele sofrer
aquela atenuação de 20 dBs? A resposta é, obviamente, L=20/A Km; pelo que, para as várias alíneas acima enunciadas, o
comprimento máximo será, se a visão do autor não o trai:
1. A≈5 ⇒ L=20/5 = 4 Km
2. A≈17,5 ⇒ L=20/17,5 = 1,143 Km
3. A≈2,5 ⇒ L=20/2,5 = 8 Km
4. A≈5 ⇒ L=20/5=4 Km
5. A=0,2 ⇒ L=20/0,2=100 Km

Você também pode gostar