Middle
O que sabe sobre a janela TCP?
sobes.tech IA
Resposta da IA
A janela TCP (ou janela de receção) é um mecanismo de controlo de fluxo no protocolo TCP. Ela define a quantidade de dados que um remetente pode enviar antes de receber uma confirmação (ACK) do destinatário. O tamanho da janela indica o espaço livre no buffer de receção do destinatário.
Objetivos do uso da janela TCP:
- Prevenir a sobrecarga do buffer: O destinatário informa ao remetente o seu tamanho atual do buffer de receção, evitando o envio de mais dados do que pode processar.
- Controlo de fluxo: A alteração dinâmica do tamanho da janela permite regular a velocidade de transmissão de dados consoante a carga da rede e o desempenho do destinatário.
Mecanismo de funcionamento:
- O destinatário envia ao remetente um segmento com informações sobre o tamanho da sua janela de receção (Tamanho da Janela).
- O remetente pode enviar dados cujo volume não exceda o tamanho indicado da janela.
- À medida que recebe dados, o destinatário reduz o tamanho da janela, refletindo a diminuição do espaço livre no buffer.
- O destinatário envia segmentos ACK que confirmam a receção de dados e contêm o tamanho atual da janela de receção.
- Ao receber o ACK, o remetente pode enviar a próxima porção de dados, baseada no tamanho atualizado da janela.
A alteração dinâmica do tamanho da janela permite otimizar a largura de banda e evitar perdas de pacotes por sobrecarga do buffer.
Exemplo:
O destinatário informa uma janela de 65535 bytes. O remetente pode enviar até 65535 bytes de dados. Após receber 10000 bytes, o destinatário envia um ACK indicando uma nova janela de 55535 bytes.
// Exemplo simples (não código real, apenas demonstração do princípio)
struct tcp_header {
// ... outros campos
uint16_t window_size; // Tamanho da janela de receção em bytes
// ...
};