View
217
Download
0
Category
Preview:
Citation preview
55
4 Avaliação de Desempenho do TCP em Canal Satélite
Como foi visto no Capítulo 3, o canal satélite apresenta diversas
características que afetam significativamente o desempenho do protocolo TCP.
Recentemente muitos estudos têm sido feitos sobre diversos aspectos deste
problema. Neste trabalho abordamos especificamente o efeito dos erros no canal
visando determinar seu impacto no desempenho do TCP.
4.1. Modelo do Sistema
O sistema de transmissão TCP via satélite considerada neste trabalho está
representado na figura 11. A aplicação é uma transferência de arquivo através do
protocolo FTP, operando sobre TCP. Como mostra a figura 11, dois terminais se
conectam a duas estações terrenas, que por sua vez, são conectadas através de um
satélite que é simplesmente um repetidor passivo. As ligações dos terminais às
estações terrenas consistem de dois enlaces terrestres com taxa de 6 Mbps e atraso
de propagação de 10 ms. O satélite é geostacionário, de forma que o valor do
atraso total de subida e descida é aproximado por 250 ms.
6 Mbps10 ms
6 Mbps10 ms
1 Mbps250 ms
Figura 11 Topologia do enlace fim a fim
56
O sistema de transmissão entre as duas estações terrenas e o satélite é
basicamente caracterizado por um modem e opcionalmente um código corretor de
erro. Como foi descrito no Capítulo 2, a grande distância de propagação obriga o
sistema a operar com limitação na relação sinal ruído, e geralmente recorrer aos
códigos corretores de erro, a fim de diminuir os erros presentes na recepção do
sinal. Porém, estes códigos mudam a correlação entre os eventos errados
introduzindo erros em surtos. Assim, o nosso sistema está sujeito a ocorrência de
erros estatisticamente independentes ou em surtos, dependendo da utilização ou
não do código corretor de erro. Na Figura 12 mostra-se o modelo equivalente do
enlace digital entre as duas estações terrenas. Observa-se, além do modem e do
código corretor de erro, o efeito do ruído e da amplificação no satélite
Figura 12 Modelo equivalente do sistema de transmissão no enlace satélite
O sistema da figura 12 corresponde à ligação das camadas físicas nas duas
estações terrenas, de acordo com o modelo em camadas representado na figura 13.
Tipicamente, nas estações terrenas, a principal funcionalidade da camada de
enlace é a de múltiplo acesso (camada MAC) que permite o compartilhamento do
canal por pacotes de dados de diversos usuários.
Figura 13 Modelo em camadas do enlace fim a fim
FTPTCPIP
ENLACE
FÍSICA
FTPTCPIP
ENLACE
FÍSICA
ENLACE (MAC)
FÍSICA FÍSICA
ENLACE (MAC)
FÍSICA FÍSICA
Terminal Estação Terrena Estação Terrena Terminal
57
4.2. Fundamentos da análise de desempenho
Apresentamos a seguir os principais elementos de um modelo analítico para
a análise de desempenho da transmissão considerada. O parâmetro de
desempenho é a vazão obtida na transferência, entendendo como vazão a taxa de
pacotes efetivamente recebidos. O objetivo é relacionar este parâmetro com o
comportamento dos erros de transmissão através do canal.
O relacionamento entre a vazão do protocolo TCP e a probabilidade de
perda de pacotes tem sido abordado em alguns trabalhos [26, 27]. Note-se que o
impacto da perda de um pacote é bastante grande por causa do mecanismo de
controle de congestionamento do TCP. Muito mais do que exigir a retransmissão
do pacote, a perda provoca a redução drástica e imediata da janela de transmissão
do TCP, pois o mecanismo de controle considera que as perdas de pacotes como
indicadores de congestionamento em algum ponto da conexão. Assim, idealmente,
perdas devidas a erros não deveriam provocar a redução da janela e neste caso, o
impacto seria bem menor.
Em [26] obtém-se a seguinte expressão geral para a vazão
+
+
=
)321(8
33,1min3
21,min)(
20
max
ppbpTbpRTTRTTW
pB (4.1)
onde p é a probabilidade de perda de pacote, Wmax é o valor máximo da janela de
transmissão, RTT é o round trip time, T0 é o valor do time out e b é o número de
pacotes confirmado por cada pacote de confirmação (ACK).
Podemos então separar o nosso problema em duas partes: (i) a relação entre
vazão e probabilidade de perda de pacotes; (ii) a relação entre a probabilidade de
perda de pacote e taxa de erro no canal.
58
4.2.1. Relação entre probabilidade de perda de pacote e taxa de erro de bit
Vamos, a seguir, determinar a relação entre a probabilidade de perda de
pacote e a taxa de erro no canal. Esta relação, entretanto, não é única, mas
depende primeiramente da estatística dos erros, que podem ocorrer com
independência estatística ou não. Por outro lado, a perda do pacote depende de
outros fatores relacionados ao formato do pacote TCP e à aplicação. Em princípio,
será considerado aqui que o pacote será descartado quando 1 ou mais bits errados
ocorrem dentro do pacote.
Erros independentes
Para erros estatisticamente independentes, considerando a ocorrência de um
ou mais erros como a causa de perda de pacotes, pode-se escrever, com base na
distribuição binomial, que a probabilidade de perda de pacote, Pp será dada por,
N
ep BERnPP )1(1)0(1 −−==−= (4.2)
,onde ne é o número de bits em um pacote, BER é a probabilidade de erro de bit e
N é o número de bits em um pacote. Para BER<<1 e N>>1, (4.2) pode ser
calculada, com boa aproximação, através da distribuição de Poisson, resultando:
BERN
p eP .1 −−=
Erros em surtos
Para erros em surtos, o problema se torna mais complexo e dependente do
mecanismo específico de produção de surtos. Uma conhecida função distribuição
do número de erros em um intervalo de N bits, em um canal com erros em surtos,
é a distribuição de Neyman [ref], dada por,
59
∑∞
=
−−
==1
.
!
.
!)(
n
n
nkBERNk
e n
BERN
enek
knP αα αα
; k>0 (4.3)
onde α é o número médio de bits por surto. Pode-se mostrar que:
( )α
α−−−
==eBERN
e enP1.
)0( (4.4)
( )α
αα
αα
−−−−⋅==
eBERN
e eBERNnP1.
..)1( (4.5)
Usualmente α >> 1 e αα
<<BERN. . Neste caso,
αBERN
e enP.
)0(−
≅= (4.6) α−== eBERNnP e ..)1( (4.7)
Com base em (4.2) e (4.7) podemos deduzir que, para um mesmo valor da
probabilidade de erro de bit, BER, a ocorrência de erros em surtos se traduz em
uma menor probabilidade de perda de pacote. Como ilustração, apresentamos o
seguinte exemplo: se uma seqüência de erros em surtos tem comprimento médio
de 10 bits, a perda de pacotes provocada por esta seqüência, será a mesma
provocada por uma seqüência de erros independentes, com BER 10 vezes menor.
A explicação é simples, pois se os erros são estatisticamente independentes,
tendem a se distribuir por vários pacotes provocando a perda dos mesmos, uma
vez que, basta um erro para que o pacote seja perdido. Por outro lado, com erros
em surtos, os grupos de erros se concentram em determinados pacotes, reduzindo
as perdas.
60
4.3. Análise estatística de alguns códigos convolucionais
Nesta seção será descrito o modelo analítico usado para caracterizar os erros
em surto apresentado neste trabalho e os resultados estatísticos das simulações.
Este modelo é baseado em [28] e [29].
Inicialmente é preciso estabelecer de forma mais precisa o conceito de surto.
Para isto será usada a definição adotada em [30]: surto é um grupo de bits onde
dois bits errados sucessivos estão separados por uma quantidade de bits corretos
menor que um valor L, que será denominado distância de referência. Logo, um
surto de erros sempre termina e começa com um bit errado, e o valor de L deve ser
especificado arbitrariamente. O tamanho do surto será igual ao número de bits
entre os dois bits errados que delimitam o surto.
Um surto de erros pode corresponder a uma única seqüência de bits com um
número de bits corretos menor que L entre dois bits errados, ou pode ser formado
por um conjunto de pequenos surtos, onde a distância entre dois surtos
consecutivos é menor que L, resultando em um único surto. No primeiro caso, o
tamanho do surto será no máximo igual a L + 2 enquanto no segundo caso pode
assumir qualquer valor.
Uma vez estabelecido o valor da distância de referência L, pode-se
identificar os surtos e determinar seus tamanhos. Um importante parâmetro para
caracterização estatística dos surtos de erro é o seu tamanho médio.
Utilizando o software Matlab, realizamos simulações para caracterizar o
comportamento da seqüência de erros produzida por um decodificador de Viterbi
associado a alguns códigos convolucionais. A figura 14 ilustra a configuração
usada no MatLab para representar a situação descrita.
Figura 14 Modelo do canal satélite fim a fim no MatLab
61
O modelo da figura 14 é composto por uma fonte de bits pseudo-aleatória, o
codificador convolucional, o canal de transmissão e o decodificador de Viterbi. O
canal utilizado é o BSC � Canal Simétrico Binário � que é caracterizado pela
probabilidade p de um bit qualquer mudar de estado independente de qualquer
outro bit. Esta probabilidade p é a taxa de erro do canal, sendo os erros
estatisticamente independentes.
4.3.1. Tamanho médio dos surtos
A fim de caracterizar o comportamento dos surtos foram feitas simulações
com os códigos da tabela 3 e a configuração descrita na figura 14. No
decodificador de Viterbi foi usada uma profundidade de decisão igual a cinco
vezes o valor do comprimento de restrição K e hard-decision. Os resultados são
apresentados nas figuras 15-19.
Polinômio Gerador Taxa Comprimento de restrição
[15 13] octogonal 1/2 K = 4
[171 133] octogonal 1/2 K = 7
[171 133] octogonal 3/4 K = 7
[171 133 145] octogonal 1/3 K = 7
[4335 5723] octogonal 1/2 K = 12 Tabela 3 Códigos convolucionais usados nas simulações
Como se observa nas figuras 15-19, para cada código, são considerados
diversos valores da distância de referência L. Nota-se que o valor de L influencia
bastante o tamanho médio dos surtos ( B ) para valores elevados da taxa de erro de
bit no canal, mas esta influência praticamente desaparece para de taxas de erro
médias e baixas. Este fato está de acordo com o observado em [29]. Na verdade, o
tamanho médio do surto depende do código empregado, mais especificamente do
valor do comprimento de restrição do codificador (K).
Nas figuras 16-18 são apresentados os tamanhos médios do surto para
códigos com K = 7 e diferentes taxas, ½, ¾ e 1/3. Nas três figuras, o valor médio
62
fica em torno de 5 bits. Já na figura 15, que retrata um código com taxa ½ e K = 4,
o valor médio do surto ficou abaixo de 5 bits, e na figura 19, que retrata um
código de taxa ½ e K = 12, o tamanho médio do surto ficou bem maior, próximo a
15 bits. Isto sugere que o tamanho médio do surto aumenta com o tamanho do
comprimento de restrição, confirmando a dependência entre estes parâmetros,
observada no parágrafo anterior.
Para os surtos gerados por códigos convolucionais, uma definição
conveniente para a distância de referência é L = K – 1, onde K é a comprimento de
restrição. Esta definição foi adotada em [31, 32, 33], devido ao fato de uma
palavra código de K – 1 bits levar o codificador de volta ao caminho de
decodificação correto. E pode-se notar, nas figuras 15-19, que L=K – 1 é um valor
praticamente equivalente a outro qualquer para valores de BER menores que 10-3.
Código taxa=1/2 K=4
05
101520253035404550
1.E-04 1.E-03 1.E-02 1.E-01 1.E+00BER
Tam
anho
méd
io d
o su
rto L=6L=15L=30L=50L=100
Figura 15 Dependência de B com BER para o código [15 13]
63
Código taxa=1/2 K=7
05
10152025303540455055
1.E-06 1.E-05 1.E-04 1.E-03 1.E-02 1.E-01 1.E+00BER
Tam
anho
méd
io d
o su
rtoL = 6L = 15L = 30L = 50L = 100
Figura 16 Dependência de B com BER para o código [171 133]
Código taxa=3/4 K=7
0
5
10
15
20
25
30
35
40
1.E-06 1.E-05 1.E-04 1.E-03 1.E-02 1.E-01 1.E+00BER
Tam
anho
méd
io d
o su
rto
L = 6L = 15L = 30L = 50L = 100
Figura 17 Dependência de B com BER para o código [171 133] com
puncturing
64
Código taxa=1/3 e K=7
05
101520253035404550
1.E-04 1.E-03 1.E-02 1.E-01 1.E+00BER
Tam
anho
méd
io d
o su
rto
L=6L=15L=30L=50L=100
Figura 18 Dependência de B com BER para o código [171 133 145]
Código taxa=1/2 e K=12
0
5
10
15
20
25
30
35
40
45
50
1.E-05 1.E-04 1.E-03 1.E-02 1.E-01BER
Tam
anho
méd
io d
o su
rto
L=6L=11L=30L=50L=100
Figura 19 Dependência de B com BER para o código [4335 5723]
4.3.2 Função distribuição
Baseado em resultados de simulações, em [33,34] é proposta uma
distribuição geométrica como modelo para a fdp do comprimento do surto de
erros, isto é:
65
( )1111 −
−=
l
BBlp (4.9)
Nas figuras 20 e 21 estão apresentados as distribuições de probabilidade de
comprimento de surto simulada e a teórica para o código [171 133] de taxa ½ e
K=7.
Figura 20 fdp do comprimento do surto para BER alto
66
Figura 21 fdp do comprimento do surto para BER médio
Nas figuras de 22 e 23 estão apresentados as distribuições de probabilidade
de comprimento de surto simulada e a teórica para o código [171 133] com taxa ¾
e K=7.
67
Figura 22 fdp do comprimento do surto para BER alto
Figura 23 fdp do comprimento do surto para BER médio
68
Os resultados apresentados nas figuras 20-23 estão de acordo com as
referências [33 e 34]. A distribuição simulada e a teórica ficam mais próximas
quando é usada uma taxa de erro alta, valores próximos de 10-3. A medida que a
taxa diminui, a relação entre as duas distribuições fica como o apresentado nas
figuras 21 e 23.
69
4.4. Simulações do TCP em canal satélite
Será descrito nesta seção o trabalho de simulação realizado para avaliar e
analisar o desempenho de uma transmissão TCP em canal satélite, com base no
modelo apresentado na seção 4.1. Esta descrição será precedida pela discussão de
alguns trabalhos publicados que tratam do mesmo problema.
4.4.1. Trabalhos Relacionados
Serão discutidos trabalhos aplicados a enlaces celulares e via satélite. Com
relação ao problema em questão, a diferença básica entre os dois ambientes é o
produto banda-retardo que é pequeno no ambiente celular e bastante elevado nos
enlaces satélite.
4.4.1.1. Trabalhos com produto banda-retardo alto
O efeito de perdas de pacotes no desempenho do protocolo TCP em enlaces
com produto banda-retardo alto foi avaliado em vários trabalhos. Na maioria dos
casos, as análises consideram que as perdas ocorrem por falta de espaço nos
buffers devido a congestionamento. Este é o caso de [39,40,41,42,43,45,46 e 48].
Em [39] é estudado o desempenho do protocolo TCP em redes WANs por
meio de análise e simulações. Em particular, é avaliada a relação entre tamanho
do buffer e a utilização efetiva do enlace no TCPs Reno e Tahoe, sendo
apresentada como técnica de melhoria algum tipo de reconhecimento seletivo. As
referências [40] e [41] são estudos da mesma época, porém mais completos,
incluindo NewReno e Sack-Reno, e, no caso de [40], procurando mostrar os
benefício do TCP Sack em situações de múltiplas perdas em uma mesma janela de
transmissão. A influência do tamanho do buffer e o valor inicial da janela de
congestionamento na vazão é avaliada mais recentemente em [46].
Em [42,48] a influência do produto banda-retardo no desempenho de várias
implementações do TCP é avaliada em uma rede híbrida, composta por duas
partes terrenas separadas por uma conexão satélite, sem presença de ruído. Em
70
particular é avaliada a técnica Split descrita na seção 3.1. Um estudo mais recente
[43], faz comparações semelhantes em um cenário mais simples, composto por
um nó receptor e um nó transmissor, ligados por um enlace satélite, chegando a
conclusões similares às apresentadas em [42]. Já em [45] a vazão do TCP é
avaliada em presença de tráfego de fundo. O trabalho tem uma grande
preocupação em caracterizar este tráfego de fundo, para tal são simuladas 30
fontes de tráfego Web e 30 fontes FTPs para as duas direções, de maneira que os
recursos disponíveis fiquem sendo disputados entre essas fontes e a conexão TCP
de interesse. A literatura que aborda os erros no canal, como causa das perdas de pacote,
é bem menos extensa. Em [38] é avaliada a vazão de uma conexão TCP/IP sobre
um enlace satélite e faz-se um estudo dos erros em surtos gerados por um código
convolucional com decodificador de Viterbi. Para caracterizar o enlace satélite o
autor simula um canal com retardo de ida e volta de 930ms e taxa de 1024 Kbps.
Este trabalho analisa apenas uma versão do protocolo TCP e o retardo causado
pelo enlace satélite é quase o dobro do valor real. A referência [44] é um estudo que propõe analisar a performance do TCP
em enlaces satélites, com ou sem erros. Para o ambiente livre de erros no enlace,
os autores comparam a vazão do TCP Reno e do Sack-Reno para diferentes
quantidades de dados a serem transmitidas. Com a presença de erros no enlace, a
vazão das duas versões do TCP é comparada para diferentes valores de BER. O
erro é caracterizado da seguinte maneira: é introduzida uma seqüência de 500
bytes errados em intervalos aleatórios dados pela taxa de erro (BER), por
exemplo, para uma BER de 10-7 serão introduzidos 500 bytes errados a cada
10.000.000 bits. Nos dois ambientes, o TCP Sack teve melhor desempenho. Esta
caracterização dos erros não condiz com o tipo de erro em surto provocado pelo
codificador de Viterbi.
Finalmente, deve ser mencionada a referência [24] que, além de avaliar a
vazão do TCP Reno e do Sack-Reno, introduz e mostra as vantagens do protocolo
STP. O desempenho dos protocolos é avaliado em canais sem erros e com erros
aleatórios.
71
4.4.1.2. Trabalhos com produto banda-retardo baixo
Com exceção de [38], os trabalhos mencionados na seção anterior, ou não
consideram erros no canal, ou consideram erros independentes. Por outro lado,
alguns trabalhos recentes abordam o efeito de surtos de erros no desempenho do
TCP em sistemas sem fio, que se caracterizam por um baixo produto banda-
retardo. Este é o caso de [27] onde é avaliada a vazão do protocolo TCP nas
implementações Tahoe, Reno e New Reno. Isto é feito através de abordagem
analítica e simulações. O sistema em questão é caracterizado por uma única
conexão TCP sobre um canal sem fio de taxa de 1,5 Mbps com desvanecimento
por multipercursos. A modelagem do erro causado pelo desvanecimento é feita
por uma cadeia de Markov de primeira ordem. Como a distância entre o receptor e
o transmissor é pequena, considera-se que o reconhecimento chega
instantaneamente, ou seja, o ACK não tem retardo. Por isso os resultados obtidos
para o TCP New Reno, valem para o TCP-Sack.
Em trabalhos anteriores como [35], o autor se restringia ao TCP Tahoe, e
em [36] apenas comparou o Tahoe com o New Reno. Quando comparado o
desempenho do Tahoe com o Reno, houve um desempenho quase idêntico em
presença de erros estatisticamente independentes e um melhor desempenho por
parte do Tahoe em presença de erros correlatados, devido ao fast recovery do
Reno. É interessante ainda citar [37], onde os autores estudam o uso de
mecanismos na camada de enlace para otimizar a performance do TCP, linha de
pesquisa que já havia sido sugerida nos trabalhos anteriores.
O presente trabalho apresenta semelhanças com diversos trabalhos citados.
Ele se distingue ao focalizar a questão dos erros, em particular dos erros em surtos
em um enlace com valor elevado do produto banda retardo típico, de um enlace
satélite. Com exceção de [38], os surtos de erros têm sido avaliados em enlaces
sem fio com baixo produto banda retardo. Em relação a [38], que segue a mesma
linha, devemos notar que os autores analisaram a vazão de uma única
implementação do TCP e o tempo de retardo do enlace satélite usado, 930 ms,
está acima do valor real, 500 ms. Neste trabalho serão analisados os desempenhos
72
das versões do TCP: Reno, New Reno, Tahoe e Sack, em presença de enlaces
satélites ruidosos, e comparados com a vazão do STP nos mesmo ambientes.
4.4.2. Metodologia e definição de parâmetros
Serão descritas a seguir a metodologia utilizada e os parâmetros utilizados
nas simulações.
Para a simulação da transmissão dos pacotes usando o protocolo TCP, foi
utilizado o simulador de rede ns-2 [49]. Para caracterizar o comportamento dos
códigos convolucionais, foi utilizada a ferramenta matemática MatLab, de acordo
com a metodologia descrita na seção 4.3..
O simulador NS-2 tem na sua biblioteca os elementos necessários para
simulação do modelo considerado: fonte de tráfego FTP, protocolo TCP, roteador
e enlace de transmissão com taxa e retardo definidos.
A figura 24 ilustra a configuração utilizada no simulador ns-2, que
corresponde à conexão via satélite representada da seção 4.1.
FTP
TCP
FTP
TCP 1 Mbps
250 ms
6 Mbps
10 ms
6 Mbps
10 ms Roteador
1 Roteador
2
Figura 24 Modelo de referência para simulação no ns
A fim de avaliar a vazão alcançada pelo protocolo nos cenários que serão
apresentados nas próximas seções, utilizou-se a numeração dos pacotes de
reconhecimentos recebidos pelo emissor. Para se conhecer a vazão média de uma
simulação em bit/s basta dividir a maior numeração do ACK recebido pelo tempo
de simulação em segundos, e multiplicar pelo tamanho do pacote em bits .
O protocolo TCP foi configurado com os seguintes parâmetros:
73
Valor inicial do cwnd 4 pacotes
Valor inicial do ssthresh 70 pacotes
Valor máximo da cwnd 70 pacotes
Valor máximo da acwnd 70 pacotes
Tamanho do pacote 1000 Bytes
Tabela 4 Características do TCP
Simulação dos erros no canal
Se a seqüência de bits errados for estatisticamente independente,
obviamente a seqüência de pacotes errados também será estatisticamente
independente. Assim, foi usada nestas simulações uma rotina do ns-2 (função
Error) que descarta pacotes, independentemente, com probabilidade Pp. Através
de (4.2), este parâmetro pode ser associado à probabilidade de erro de bit no
enlace. Para que as perdas fossem provocadas apenas por erros de transmissão, foi
adotada fila infinita em todos os roteadores.
Na simulação com erros em surtos, supomos que estes surtos são gerados
pelo processo de decodificação de um código convolucional. Assim, inicialmente
caracterizamos o comportamento destes erros através de simulação de alguns
códigos convolucionais, como descrito na Seção 4.3. Nestas simulações são
inseridos erros estatisticamente independentes, com uma dada probabilidade, em
uma seqüência de bits de referência, gerada de forma pseudo-aleatória. Esta
seqüência com erros, em seguida, passa por um decodificador de Viterbi que
realiza a correção, diminui a taxa de erro, mas introduz erros em surtos. Através
da comparação com a sequência de bits original, são obtidas longas sequências
binárias representando os bits errados produzidos pelo decodificador de Viterbi,
para uma série de valores da taxa de erro de bit na saída deste decodificador.
Estas sequências binárias devem ser transformadas em sequências que
representam os pacotes errados. Esta transformação é feita tomando-se, ao longo
da sequência, blocos de bits de tamanho igual ao tamanho do pacote IP e
identificando-se, através de uma varredura, se o pacote está ou não errado. Cria-se
assim uma sequência binária que funciona com um "trace" de sinalização para
descarte de pacotes. No nó de destino, o estado de cada pacote é determinado
74
através de uma consulta a este "trace". Este processo foi implementado no ns-2
através de uma rotina desenvolvida para esta finalidade.
O critério para caracterizar um pacote como errado e, conseqüentemente
descartá-lo, é a existência de um único erro dentro do pacote. Este é o critério
padrão usado pelo protocolo TCP para considerar um pacote como corrompido e
requisitar a sua retransmissão [52, 53].
O tempo de simulação para todos os experimentos foi sempre grande o
suficiente para que os dados fossem confiáveis. Para as simulações com erros
estatisticamente independentes, o tempo de simulação foi de 106 segundos, o que
possibilita a geração de 1012 bits por simulação, valor mais que suficiente para
validar taxas de erro de até 10-9. Para as simulações com erros em surtos foram
geradas seqüências (�traces�) de pacotes errados com comprimento igual a 109
bits e para a taxa de erro de 10-9 foi utilizado um �trace� com 1010 bits.
75
4.4.3. Desempenho em presença de erros estatisticamente independentes
Serão apresentados, a seguir, os resultados de vazão efetiva alcançada nas
simulações realizadas da transmissão da aplicação FTP/TCP, descrita na Seção
4.4, considerando erros estatisticamente independentes no enlace satélite. Foram
simuladas e comparadas as versões TCP Tahoe, Reno, New-Reno e Sack. Todas
as perdas de pacotes são devidas exclusivamente aos erros do enlace, ou seja, não
há perda de pacotes devido ao congestionamento nas filas dos roteadores, uma vez
que foram adotadas filas de tamanho infinito (seção 4.4.2.).
Mostra-se na Figura 25, a vazão relativa em função da taxa de erro de bit no
enlace satélite. Pode-se notar nesta Figura 22,7 que a vazão decresce à medida que
a taxa de erro de bit começa a aumentar a partir de 10-9, reduzindo à metade para
BER em torno de 10-7. Observa-se que os desempenhos das implementações Sack,
New Reno e Reno são muito semelhantes entre si e um pouco superiores ao
desempenho do TCP Tahoe.
Erro E.I.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03BER
SackNew RenoRenoTahoe
Figura 25 Vazão efetiva das implementações do TCP em presença de erros
estatisticamente independentes .
76
A fim de validar o ambiente de simulação proposto e ter uma base para
comparação, foram feitas simulações no modelo de simulação proposto na seção
4.4.2, porém com um retardo muito baixo, que permite considerar que o
reconhecimento é instantâneo. Este novo ambiente é muito semelhante ao
proposto em [27, 35, 36], e os resultados obtidos são muito parecidos. A figura 27
mostra o desempenho idêntico do Sack e New Reno devido ao reconhecimento
instantâneo que inutiliza a melhoria de reconhecimento seletivo. Na figura 26
pode-se notar que o New Reno tem o melhor desempenho, enquanto o Tahoe tem
uma melhor vazão frente ao Reno, fato já apresentado em [27].
Erro E.I.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1.E-07 1.E-06 1.E-05 1.E-04BER
NewRenoTahoeReno
Figura 26 Vazão efetiva das implementações do TCP com PBR baixo.
77
Erro E.I.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1.E-07 1.E-06 1.E-05 1.E-04BER
NewRenoSack
Figura 27 Vazão do Sack e New Reno com PBR baixo
4.4.4 Desempenho em presença de erros em surtos
Dando continuidade, apresentamos ainda os resultados de vazão efetiva
alcançada nas simulações realizadas da transmissão da aplicação FTP/TCP,
descrita na Seção 4.4, considerando erros em surto provocados pelo codificador
convolucional no enlace satélite, conforme descrito na seção 4.5.1. Foram
simuladas e comparadas as versões TCP Tahoe, Reno, New-Reno e Sack,
observando-se mais uma vez que todas as perdas de pacotes são devidas
exclusivamente aos erros do enlace.
A figura 28 mostra a vazão alcançada pelo TCP em presença de erros em
surto provocado pelo código [171 133] com taxa ½ e K = 7, e a figura 29 mostra o
desempenho do protocolo para o mesmo código com taxa ¾ e K = 7.
78
Erro em Surto
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03 1.E-02BER
TahoeRenoNew Renosack
Figura 28 Vazão do TCP em presença de erro em surto provocado por código de taxa
1/2.
Erro em Surto
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1,E-09 1,E-08 1,E-07 1,E-06 1,E-05 1,E-04 1,E-03 1,E-02BER
Tahoe
Reno
New Reno
Sack
Figura 29 Vazão do TCP em presença de erro em surto provocado por código de taxa
3/4.
Assim como para erros estatisticamente independentes, a vazão alcançada
pelas versões Sack, Reno e New Reno foi idêntica em presença de erros em surto
79
para os dois códigos apresentados. E o desempenho do Tahoe foi um pouco pior
que o das outras três implementações do TCP. Ao final do capítulo, será feita a
avaliação do modelo de erros no desempenho das diversas versões do TCP e do
protocolo STP, que será avaliado na próxima seção.
4.4.5 Desempenho do STP
Nesta seção serão apresentados resultados de desempenho do protocolo STP
descrito na seção 3.3. O STP tem como opção de controle de congestionamento o
controle por taxa, onde o emissor estipula um valor máximo de transmissão e o
protocolo se ajusta para esse valor (seção 3.3.).
FTP
STP
FTP
STP 1 Mbps
250 ms
6 Mbps
10 ms
6 Mbps
10 ms Roteador
1 Roteador
2
Figura 30 Modelo do canal satélite para o ns-2 com o STP
Foram feitas simulações com o STP no ns-2 usando o controle
congestionamento por taxa no mesmo ambiente proposto em 4.5 para o TCP,
figura 30. A taxa máxima de transmissão do protocolo STP foi ajustada para
960Kbps, as rotinas de filas e os parâmetros do protocolo são idênticos aos
utilizados para o TCP. O desempenho do STP para os dois tipos de erros: erros
estatisticamente independentes (STP E.I) e erros em surto provocados por códigos
de taxa 1/2 e 3/4 (STP 3/4 e STP 1/2), estão apresentados na figura 31.
80
STP
0%10%20%30%40%50%60%70%80%90%
100%
1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03 1.E-02BER
STP 3/4STP 1/2STP E.I.
Figura 31 Desempenho do STP em presença de erros no enlace
A utilização do controle de congestionamento por taxa possibilita uma
vazão muita alta para valores de taxa de erro muito elevados. Por exemplo, BER =
10-4 representa um taxa de perda de pacote p = 0.55 (equação 4.2). Sob estas
condições, o STP alcançou uma vazão de 14% para erros estatisticamente
independentes e valores maiores que 80% para erros em surto. O desempenho do
STP para as duas taxas de códigos convolucionais empregadas foi muito similar e
superior ao desempenho do protocolo para erros estatisticamente independentes.
A simulação do STP, em presença de erros estatisticamente independentes,
mostrou-se condizente com o resultado do estudo [24], que também apresenta
uma análise de desempenho do STP em um enlace satélite com erros E.I., porém
sem muita ênfase. [42] é outro trabalho que estuda o desempenho do STP, porém
em um cenário que utiliza a técnica de Split (seção 3.1) e o autor está interessado
na influência do produto banda-retardo na vazão alcançada pelo STP.
81
4.5. Comparação de Resultados
Nesta seção será apresentada uma comparação dos resultados das
simulações apresentadas neste capítulo. Como já foi visto nas seções anteriores, as
versões do TCP Sack, New Reno e Reno têm desempenho muito semelhante. Por
isso, nos gráficos desta seção, o TCP-Sack irá representar os três.
Nas figuras 32-34 estão apresentadas as vazões efetivas alcançada pelos
protocolos STP, TCP-Sack e TCP-Tahoe, em presença de erros estatisticamente
independentes, erros em surto provocado pelo código convolucional de taxa ½ e
erros em surto provocados pelo código convolucional de taxa ¾, respectivamente.
Nos três casos, o desempenho do STP foi superior devido ao controle de
congestionamento por taxa, inexistente no TCP. O TCP-Sack teve uma
performance um pouco melhor que o Tahoe, porém abaixo do esperado, se
considerarmos as melhorias existentes no Sack, tais como fast recovery, fast
retransmit e reconhecimento seletivo. Esse resultado evidencia que, para um
ambiente sem congestionamento nas filas dos roteadores, com alto retardo e erros
no enlace, as melhorias feitas no protocolo TCP ao longo dos anos não
proporcionam um ganho no desempenho.
Erro E.I.
0%10%
20%30%40%50%
60%70%80%
90%100%
1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03 1.E-02BER
STP
Sack
Tahoe
Figura 32 Desempenho dos protocolos em presença de erros estatisticamente
independentes.
82
Taxa 1/2
0%10%20%30%40%50%60%70%80%90%
100%
1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03 1.E-02BER
Tahoe
Sack
STP
Figura 33 Desempenho dos protocolos em presença de erros em surto provocado por
código convolucional de taxa 1/2
Taxa 3/4
0%10%20%30%40%50%60%70%80%90%
100%
1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03 1.E-02BER
Tahoe
Sack
STP
Figura 34 Desempenho dos protocolos em presença de erros em surto provocado por
código convolucional de taxa 3/4
Nas figuras 35-37 são apresentadas as comparações de um único protocolo
em presença dos três modelos de erros propostos. Na figura 35, pode-se ver que a
vazão alcançada pelo TCP-Tahoe em presença de erros estatisticamente
independentes (Tahoe E.I) foi inferior ao desempenho do protocolo em presença
de erros em surto, fato esperado devido ao maior grau de correlação entre os erros.
E para os dois casos de erros em surto - erros provocados pelo codificador de taxa
½ (Tahoe ½) e erros provocado pelo codificador com taxa ¾ (Tahoe ¾) - o
desempenho foi muito semelhante, fato que pode ser explicado se olharmos as
83
figuras 16 e 17, onde estão apresentados os gráficos de tamanho médio do surto
em função da taxa de erro para os dois códigos utilizados, e notarmos que para um
mesmo valor de BER, o tamanho médio do surto é muito próximo nos dois casos.
Códigos com taxas de ½ e ¾ são os mais usados em comunicações via
satélite, logo, uma análise de códigos com taxas diferentes, e que produzissem
surtos com tamanho médio diferente dos dois casos apresentados aqui, sairia do
escopo deste trabalho.
Na verdade, a análise feita para o TCP-Tahoe também vale para o TCP-
Sack, figura 36, e para o STP, figura 37.
Tahoe
0%10%20%30%40%50%60%70%80%90%
100%
1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03BER
Tahoe3/4Tahoe1/2TahoeE.I.
Figura 35 Desempenho do protocolo TCP - Tahoe para diferentes tipos de erros
Sack
0%10%20%30%40%50%60%70%80%90%
100%
1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03BER
Sack1/2Sack3/4SackE.I.
Figura 36 Desempenho do protocolo TCP - Sack para diferentes tipos de erros
84
STP
0%10%20%30%40%50%60%70%80%90%
100%
1.E-08 1.E-07 1.E-06 1.E-05 1.E-04 1.E-03 1.E-02BER
STP3/4STP1/2STPE.I.
Figura 37 Desempenho do protocolo STP para diferentes tipos de erros
85
4.6. Simulações Complementares
Neste capítulo serão apresentadas simulações que complementam a
avaliação de desempenho do protocolo TCP.
Em todas as simulações apresentadas neste trabalho foi utilizado um
tamanho de pacote igual a 1000 bytes, porém seria interessante saber, qual a
influência do tamanho do pacote transmitido no desempenho dos protocolos. Esta
avaliação é apresentada na figura 38.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1,E-09 1,E-08 1,E-07 1,E-06 1,E-05 1,E-04 1,E-03 1,E-02BER
STP 1000
STP 1500
Sack 1000
Sack 1500
Tahoe 1000
Tahoe 1500
Figura 38 Desempenho dos protocolos TCP e STP em função do tamanho de pacote
Na figura 38 estão apresentados os resultados obtidos nos mesmos cenários
das figuras 24 e 30 para dois tamanhos de pacotes transmitidos: 1000 e 1500
bytes. Esses valores foram escolhidos pela ampla utilização na literatura e por
estarem próximos ao tamanho máximo de um pacote Ethernet, 1500 bytes. Para
facilitar o entendimento do gráfico o TCP-Sack representa o desempenho dele, do
TCP-New Reno e do TCP-Reno.
Ao observarmos a figura 38 podemos notar que, mais uma vez, o protocolo
STP teve um desempenho muito superior ao TCP para os dois tamanhos de
86
pacotes. Se olharmos apenas o Sack e o Tahoe é possível perceber que os dois
tiveram uma melhor vazão quando o tamanho do pacote era 1500 bytes. Isto
confirma o resultado obtido em [38], onde o autor, para uma versão do TCP,
constatou que quanto maior o tamanho do pacote melhor será a utilização do
meio. Além disso, pode-se notar que o Tahoe com pacotes de 1500 bytes e o Sack
com pacotes de 1000 bytes, tiveram um desempenho muito semelhante. Esta
conclusão em conjunto com o fato de que todos os casos estudados neste trabalho
mostraram um melhor desempenho do Sack em relação ao Tahoe, porém não
muito expressivo, nos conduz a pergunta feita por outros autores [36]: Não seria
mais vantajoso utilizar algum mecanismo nas camadas inferiores que aumente o
desempenho do protocolo ao invés de utilizar um protocolo de transporte mais
complexo?
Continuando a análise da influência do tamanho do pacote sobre os
protocolos, podemos notar que ao contrário do TCP o STP teve um desempenho
pior para pacotes de 1500 bytes. O controle de taxa usado no STP utiliza ao
máximo o meio de transmissão e os pacotes retransmitidos tem prioridade, logo
uma perda de pacote de tamanho maior é mais significativa.
Outra abordagem para avaliar o desempenho dos protocolos TCP e STP é a
utilização pelas camadas inferiores de algum mecanismo que corrija pelo menos
um bit por pacote. A figura 39 mostra o desempenho dos protocolos TCP e STP
em enlaces com ruído estatisticamente independente (EI), e para enlaces com
erros em surto provocado pelo código convolucional com taxa de ¾ (Surto), onde
foi corrigido um bit por pacote. O eixo X da figura 39 é o valor da taxa de erro
antes da correção de um bit.
Pode-se notar que todos os protocolos (Sack, Tahoe e STP) tiveram um
melhor desempenho em presença de erros estatisticamente independente se
comparados ao desempenho de cada um deles em presença de erros em surto.
Ainda na figura 39, o TCP-Sack e o TCP-Tahoe tiveram uma vazão efetiva muito
parecida em presença de erros estatisticamente independente. Esta última
observação nos leva novamente a interrogação, se um protocolo de transporte
menos sofisticado e uma inteligência nas camadas inferiores não é mais vantajoso
que o uso de um protocolo de transporte mais complexo.
87
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1,E-06 1,E-05 1,E-04 1,E-03 1,E-02BER
Sack-EITahoe-EISTP-EISack-SurtoTahoe-SurtoSTP-Surto
Figura 39 Desempenho dos protocolos TCP e STP com correção de um bit por pacote
A grande diferença de desempenho entre os protocolos, para os diferentes
tipos de erros, pode ser explicada pelo ganho na probabilidade de perda de
pacotes, que a correção de um bit proporciona para erros estatisticamente
independentes. Se retornarmos a seção 4.2.1 e reformularmos a equação 4.2 para o
cenário atual, teremos uma probabilidade de perda de pacote, Pp, para erros
estatisticamente independentes dada por:
( ) ( ) ( ) ( )( ) ( ) 11
1 .111
1101
BERBERCBER
nPcorreçãosemPnPnPPNN
epeep
−−−−−=
==−==−=−=
(4.8)
Para erros em surto com distribuição de Neyman, podemos usar as equações
(4.6) e (4.7) para calcular a probabilidade de perda de pacotes com correção de
um bit por pacote:
( ) ( ) αα −−−−==−=−= eBERNenPnPP
BERN
eep ..1101.
(4.9)
88
Se calcularmos a probabilidade de ter um bit errado no pacote, P(ne=1),
com valores típicos como: 8000 bits por pacote, taxa de erro igual 10-5 e α = 10,
teremos para erros estatisticamente independentes P(ne=1) = 7,38e-2 e para erros
em surto P(ne=1) = 3,63e-6. Fica evidente, que para erros estatisticamente
independentes, a correção de um bit por pacote é mais eficaz.
Outra maneira de entendermos essa diferença de desempenho é
considerarmos, que para um pacote estar errado são necessários pelo menos dois
erros. Se ocorrerem erros em surto, a chance deste evento acontecer é muito maior
do que com erros estatisticamente independentes, devido a maior correlação entre
os erros.
Recommended