Em sua forma básica, o TCP pode ter um tamanho de janela
de 1, o que significa que, para cada segmento
transmitido pelo remetente, o receptor envia uma confirmação para esse segmento individual.
No entanto, isso diminui a
taxa de transferência drasticamente porque o remetente não
pode transmitir mais dados até que receba o reconhecimento desse único segmento transmitido.
A taxa de transferência seria muito baixa, dependendo
do cronômetro de ida
e volta entre o envio de dados e o recebimento da confirmação.
No entanto, o TCP permite maiores tamanhos de janela para permitir que mais segmentos
sejam transmitidos antes de receber
uma confirmação. 12 A
janela é o número de
segmentos de dados que o remetente pode enviar sem receber uma confirmação do destinatário.
Nesse caso, definimos como
1, o que significa que quando o host A deseja enviar
tráfego para o host B, ele pode enviar 1 segmento porque o tamanho da janela
é definido como 1 host B, depois de receber esse segmento, envia uma confirmação.
Neste exemplo, suponhamos que o host A, envie o segmento com o número de sequência de
1 host B, confirmaria para o segmento 2.
O host A enviará o segmento
2 e o host B, assim que receber com sucesso, esse segmento
confirmará ou ACK para o segmento 3.
O host A enviará o segmento 3 para o host B.
Este processo irá continuar durante a sessão, o que é obviamente
muito fiável, no entanto, a taxa de transferência é muito baixa.
A precisaria armazenar em buffer segmentos de saída
até receber uma confirmação para o segmento transmitido.
Agora, para argumentar, vamos assumir que leva
1 segundo para o tráfego com o
início com o tamanho pequeno da janela
e, em seguida, aumenta exponencialmente o tamanho da janela para medir
a quantidade de dados que o receptor pode receber e o que a rede pode manipular.
Você provavelmente percebeu isso, ao baixar um arquivo da Internet, inicialmente, a
velocidade de download é lenta, mas
aumenta até certo ponto ao longo do tempo.
Isso ocorre porque o tamanho da janela é inicialmente pequeno,
mas aumenta exponencialmente até que um pacote seja descartado ou
o host receptor não possa manipular a quantidade de dados que está recebendo.
Assim, você notará inicialmente que a velocidade de download
é muito lenta aumenta muito rapidamente e, em seguida, chega a um ponto e,
em seguida, permanece nessa velocidade.
Então, mais uma vez, vamos
supor que os hosts neste exemplo tenham um tamanho de janela fixo de 3.
Isso significa que A pode enviar 3 segmentos antes de receber uma confirmação.
Portanto, neste caso, o host A envia o segmento
1,2 e 3 o host B reconhece para o segmento 4, deixando
assim A saber que recebeu com sucesso o segmento 1,2 e 3
e, em seguida, envia o segmento 4,5 e 6 porque tem um tamanho de janela
de correção de 3 e o hospedeiro B reconhece
para o segmento 7, deixando assim A saber que recebeu os segmentos 4,5 e 6.
Lembre-se com confirmações, confirme o próximo segmento que você deseja receber, não o segmento
que você já recebeu. 80 Então, o host B não reconhece o segmento
6, mas reconhece o segmento 7.
Como mencionei, uma janela deslizante permite que os hosts avaliem a quantidade de dados
que o receptor pode receber e o que a rede pode manipular.
Portanto, neste exemplo, vamos supor que o host esteja usando uma
janela deslizante. A maneira que eles determinam o que a rede
pode manipular é quando um pacote é descartado pela rede, o host fica lento.
Essas informações são abordadas com muito
mais detalhes em cursos que contêm qualidade de serviço.
Com este curso, apenas suponha
que quando um pacote começa
a reduzir o tamanho da janela drasticamente, o tamanho da janela é a janela concedida ao remetente pelo receptor ou
uma janela calculada chamada janela de congestionamento ou CWND a janela de
congestionamento ou CWND é inicialmente configurado para um valor muito baixo no estabelecimento da conexão
e, em seguida, aumenta em uma taxa exponencial.
Para cada segmento perdido, a janela de congestionamento
é metade depois que o segmento perdido foi
retransmitido com sucesso, a janela de congestionamento cresce
novamente até atingir metade da janela de congestionamento
original e então diminui seu crescimento, usando um algoritmo chamado evitação de congestionamento.
Ele cresce exponencialmente até metade do tamanho original da janela de
congestionamento e aumenta lentamente na taxa linear.
Na qualidade de serviço, pode-se usar o WRED Weighted Random Early Detection ou
melhorar a eficiência das transmissões TCP através do link, pois os pacotes são
descartados aleatoriamente de vários fluxos ou de várias sessões em uma interface individual,
em vez de
pacotes de vários remetentes serem descartados ao mesmo tempo.
isso evita um problema chamado sincronização global, no qual os pacotes de várias sessões
TCP são descartados ao mesmo tempo e, portanto, vários hosts reduzem o tamanho da janela e diminuem a
velocidade ao mesmo tempo 110 e, em seguida, aumentar
gradualmente o tamanho da janela e, portanto, a taxa de transferência ao mesmo tempo.
Então você tem muitos hosts reduzindo a velocidade e acelerando ao mesmo tempo
com o WRED, alguns hosts
estão ficando mais lentos e outros hosts aumentarão sua taxa de transferência devido a quedas aleatórias.
Consulte a documentação da qualidade de serviço para obter mais detalhes sobre o WRED.
Neste exemplo, vamos supor que começamos com o tamanho da janela inicial de 3.
Assim, A transmite 3 segmentos para B, no entanto apenas os segmentos 1 e 2 chegam ao segmento B
do host 3 desaparecidos.
O host B pode reduzir seu tamanho de janela neste exemplo para 2 e confirmar o segmento 3.
Lembre-se de que o reconhecimento é para o próximo pacote que esse host espera receber e porque o host
B não recebeu o segmento
3 está reconhecendo o recebimento bem-sucedido dos segmentos 1 e 2.
O host A retransmitirá o segmento 3 e, neste exemplo, enviará o segmento 4, mas também solicitará um tamanho de
janela de 3.
Ambos os segmentos são recebidos com sucesso pelo host B, então o host
B confirmará o segmento 5, mas
neste exemplo, ainda deseja um tamanho de janela de 2.
O host A enviará apenas 2 segmentos porque o tamanho da janela negociada é
2, mas A ainda pode solicitar que o tamanho da janela seja aumentado para 3.
Com a janela deslizante, há uma negociação dinâmica de um tamanho de janela e o
tamanho da janela pode mudar drasticamente durante uma sessão, dependendo do que
o receptor pode processar e do que a rede pode suportar.