As Redes de Computadores
Por: Julia Ramos • 12/11/2020 • Trabalho acadêmico • 638 Palavras (3 Páginas) • 341 Visualizações
Responda as perguntas abaixo sobre TCP e envie um arquivo com suas respostas:
Pergunta 1: Como é realizada a abertura de uma conexão? Quais flags são setadas no cabeçalho das mensagens?
Como o protocolo TCP é orientado à conexão, uma conexão entre os dois hosts deve ser criada. Antes de começar toda a comunicação e transmissão de pacotes entre eles, os dois lados precisam necessariamente aceitar esta conexão.
Quando um host deseja abrir uma conexão com outro, dá início ao chamado handshaking (cumprimento) de três vias. O host que envia a primeira mensagem desejando estabelecer uma conexão realiza uma abertura ativa, enquanto o host que recebe e aceita a conexão realiza uma abertura passiva. As três vias do handshaking são:
Primeira via: um host que deseja estabelecer uma conexão envia um pacote com o bit de controle SYN setado;
Segunda via: o host que recebe o pedido de conexão concorda em estabelecer a conexão, e envia um pacote com os bits SYN e ACK setados;
Terceira via: o host que iniciou o pedido de conexão envia uma confirmação final.
Pergunta 2: Por que é importante a troca dos números de sequência iniciais na abertura da conexão?
Pois quando a máquina A envia uma mensagem para a máquina B, é fundamental que a máquina B saiba qual é o número de sequência desta mensagem, para garantir a ordenação e controlar eventuais erros e duplicações de mensagens, assim como as retransmissões necessárias.
Pergunta 3: Como é realizado o fechamento de uma conexão? Quais flags são setadas no cabeçalho das mensagens?
As conexões no TCP são full-duplex. Desta maneira, cada host deve encerrar o seu lado da conexão, não sendo necessário o encerramento dos dois lados simultaneamente. Quando a aplicação que utiliza o protocolo TCP não possui mais nenhum dado para enviar para a aplicação do outro host, ela inicia o processo de encerramento do seu lado da conexão. Para que o host A finalize seu lado da conexão, ele envia um pacote com o bit FIN setado. O host B recebe este pacote e confirma o recebimento com um ACK. Entretanto, isto significa que o host A não deseja mais enviar dados para o host B, mas o contrário não é verdade. O host B, então, pode continuar enviando dados para o host A, que somente envia pacotes de confirmação. Quando o host B deseja finalizar o seu lado da conexão, ele envia uma mensagem de finalização (com o bit FIN setado) e o host A confirma com o ACK final. Neste momento, a conexão está completamente encerrada.
Pergunta 4: O que é a síndrome da janela boba? Como este problema é resolvido?
A síndrome da janela boba é um problema que surge quando o host origem envia muitos dados para o host destino, mas a aplicação que deve consumir estes dados consome poucos dados por vez.
O que acontece neste caso é que o buff er do lado receptor enche, e envia um pacote com tamanho de janela 0 (indicando que não pode mais receber pacotes por algum tempo). A transmissão pelo outro host é, então, interrompida.
A aplicação destino consome apenas uma pequena parte do fluxo de dados enviados (1 byte, por exemplo). Neste momento, o receptor envia uma mensagem para o remetente com o tamanho da janela igual a 1. A transmissão continua com o envio de apenas 1 byte pela rede, o que causa um overhead muito grande, diminuindo muito o desempenho do TCP.
...