O que é Síndrome da Janela Parva - Explicação e Prevenção

Índice:

O que é Síndrome da Janela Parva - Explicação e Prevenção
O que é Síndrome da Janela Parva - Explicação e Prevenção

Vídeo: O que é Síndrome da Janela Parva - Explicação e Prevenção

Vídeo: O que é Síndrome da Janela Parva - Explicação e Prevenção
Vídeo: COMO TRABALHAR COM DOIS MONITORES - YouTube 2024, Abril
Anonim

Os dados são transferidos pela rede e pela Internet usando o Protocolo TCP / IP. O TCP / IP não é perfeito, mas é mais fácil de implementar em comparação com outros protocolos teorizados para comunicação de dados … como o modelo ISO OSI. Como acontece com qualquer coisa técnica, o TCP / IP também tem algumas falhas e Síndrome da Janela Parva é uma criação de uma dessas falhas. Para entender o que é Silly Window Syndrome ou SWS, primeiro você precisa entender o mecanismo subjacente da comunicação de dados no TCP / IP.

Síndrome da Janela Parva

Image
Image

Entendendo a janela e seu tamanho

Quando dois pontos estão se comunicando sob TCP / IP, isso envolve um mecanismo de reconhecimento. Este mecanismo de reconhecimento é o que causa a Síndrome da Janela Parva, conforme explicado mais adiante. Pontos podem se referir a dois computadores, cliente e servidor, etc.

SWS is caused by the receiver advancing the right window edge whenever it has any new buffer space available to receive data and by the sender using any incremental window, no matter how small, to send more data. The result can be a stable pattern of sending tiny data segments, even though both sender and receiver have a large total buffer space for the connection, says MSDN.

Quando um computador, digamos A, envia um pacote de dados para outro computador B, este último tem que reconhecer e responder que recebeu o pacote de dados. Junto com a confirmação, ele também tem que enviar o tamanho do buffer definido para esse segmento de comunicação. Este é geralmente o número de bytes livres para comunicação.

Então, quando B diz que 100B está disponível para a próxima mensagem, o 100B é a janela da Síndrome da Janela Parva. Ou seja, é o tamanho do buffer. Com sua própria falha, o mecanismo TCP / IP pode reduzir o tamanho do buffer para cada comunicação / dados provenientes de A. Isto é, sempre que A envia uma mensagem, B assume que o tamanho do buffer é reduzido e envia um número menor. Assim, o tamanho da janela continua reduzido e em um ponto, a comunicação simplesmente pára quando B envia 0B como tamanho da janela.

Como funciona a síndrome da janela boba?

De acordo com o exemplo acima de A e B, se B enviar 1000B como tamanho de janela, A irá dividi-lo em dois 500B e enviar dois pacotes de 500B. Após o recebimento do primeiro pacote, B enviará uma confirmação dizendo que 500B está disponível para a janela, pois o segundo pacote ainda está para ser recebido. A assume 500B é o tamanho da janela e envia dois pacotes de 250B, consequentemente. Enquanto em B, 500B é usado e 500 acaba de ser recebido, ele irá enviar 0B como disponível. Neste ponto, A assumirá que nenhuma janela está disponível, embora possa acontecer que o buffer esteja vazio quando o processador usou os dados lá. A ainda enviará um pacote menor para ver se alguma janela está disponível. Se o conteúdo do buffer em B ainda não for removido, ele ainda receberá 0 como resposta / confirmação.

Assim, o tamanho da janela continua sendo reduzido, pois B envia um reconhecimento toda vez que recebe um pacote de A. Esse tamanho é geralmente menor que o reconhecimento anterior, já que B está recebendo pacotes de dados em partes. Não haveria problema se A pudesse enviar um pacote grande o suficiente para cobrir o tamanho do buffer em B de cada vez. Mas isso é exigiria mecanismos adicionais e, portanto, Síndrome da Janela Parva. A comunicação para depois de A receber 0 duas ou três vezes.

Como evitar a síndrome da janela parva (SWS)

Existe um algoritmo simples a ser implementado para se livrar do SWS. Ao receber o pacote inicial, B envia metade do espaço realmente disponível como a janela. Isso fará com que A envie pacotes menores. Consequentemente, quando os pacotes se tornam muito menores, então B envia o tamanho total do buffer de forma que A possa começar a enviar bytes de dados maiores novamente.

Em outras palavras, se 1000B estiver disponível, B envia 500B como confirmação. Assim, A envia pacotes de 250B x 2. Para isso, A recebe 100B como confirmação. Quando recebe um pacote de 50B, B envia 1000B - 50B para A. Isso torna toda a conversação operacional novamente. Isso pode induzir um pequeno atraso no processamento, mas evitará que a Síndrome da janela parva ocorra e interrompa toda a conversa.

Para resumir, o SWS é baseado no tamanho do buffer disponível no destinatário e no tamanho assumido calculado pelo remetente. Para evitar o SWS, um atraso é introduzido e o tamanho de janela menor deliberado é recíproco até que o tamanho do pacote se torne muito pequeno. Em seguida, o destinatário divulga o tamanho da janela realmente disponível. Todo o processo continua se repetindo até que a comunicação esteja completa.

Embora eu possa ter usado a janela de palavras e buffer alternadamente. Eu não quero dizer nenhuma diferença entre eles. Nos estudos de SWS, o buffer é a janela.

Se você precisar de mais informações, há uma explicação detalhada disponível aqui no tcpipguide.com.

Recomendado: