Introdução
TCP
Serviço de
Transporte
Confiável
1
Introdução

O serviço de entrega IP não garante um serviço
confiável.

Apresenta problemas a serem resolvidas como:
–
–
–
–
2
Pacotes duplicados;
Pacotes fora de ordem;
Perda de pacotes;
Pacotes adulterados.
TCP - Transmission Control Protocol

3
O TCP oferece um serviço confiável de entrega de
dados:
–
Utiliza o serviço não confiável de Entrega IP;
–
Ele oferece um serviço de entrega onde os pacotes são
entregues na ordem correta, sem perda de dados ou duplicação.
TCP - Transmission Control Protocol


4
É considerado um ótimo protocolo para Inter-Rede;
O serviço oferecido pelo TCP tem 7 características importantes:
– Orientado à conexão;
– Comunicação ponto a ponto;
– Confiabilidade completa;
– Comunicação full duplex;
– Interface de stream;
– Partida de conexão confiável;
– Desligamento de conexão graciosa.
TCP - Transmission Control Protocol

Serviço Fim à Fim:
–
–
5
É um serviço que é oferecido diretamente as aplicações. Os serviços
simples como: enviar e receber dados, abrir e fechar a conexão)
Conexão virtuais (criada via software);
Confiabilidade

Perda de pacote:
–
–
6
O TCP trata das questões das
perdas de pacotes através da
retransmissão;
Deve ser flexível quanto ao time-out
para espera do acknowledgment.
Confiabilidade

Retransmissão Adaptativa:
–
Antes de inventarem o TCP, os time out eram fixos e não funcionavam
bem;
–
O modo adaptativo oferecido pelo TCP provou ser melhor, pois tem um
esquema que mede o atraso a cada envio de dados;



7
O esquema faz estimativas a cada transmissão do tempo de atraso da rede.
Fazendo médias ponderadas, mantém uma estimativa da variância, e
combinações lineares da mediana para responder a mudanças de
velocidades.
A variância permite o TCP responder rápido as mudanças de velocidades,
como as provocadas pelas rajadas de pacotes;
A media ponderada permite recuperar e manter os valores após um boot.
Confiabilidade
8
Confiabilidade

Buffer, Controle de Fluxo e Janela
–
–

Funcionamento:
–
–
9
O TCP utiliza o mecanismo de Janela para controle de Fluxo de dados.
A cada Acknowledgment, o receptor retorna o tamanho de janela
restante para informar ao emitente o quanto de buffer tem disponívelAnuncio de janela;
Se o receptor for muito rápido, ele enviará sempre um ack informando
uma janela positiva;
Se o Remetente for mais rápido que o receptor, então o buffer do
receptor irá logo ficar cheio, informando ao remetente um ack de
tamanho cada vez menor até atingir tamanho ZERO.
Confiabilidade

10
Exemplo de anúncio de
Janelas
Confiabilidade

11
Three Way Handshake
–
É usado pelo TCP para estabelecer ou encerrar uma conexão de forma
confiável;
–
Através da troca de 3 mensagem apenas é suficiente para garantir um
acordo não ambíguo apesar do perda de pacotes, duplicação e atraso.
Confiabilidade



12
O TCP utiliza o termo Segmento de SYN para definir uma msg 3 Way
Handshake para iniciar uma conexão;
O TCP usa o termo Segmento FIN para definir uma msg 3 Way Handshake
para fechar uma conexão;
Tem retransmissão de pacote e numeração aleatória para para garantir a
comunicação entre as partes;
Confiabilidade

13
Controle de Congestionamento:
–
O TCP usa a perda de pacote como medida de
congestionamento e reduzir a taxa de transmissão;
–
Quando o dado é perdido, o TCP inicia enviando apenas um
pacote em vez de tentar preencher o buffer do receptor. A medida
que ele for recebendo o ACK, ele vai dobrando o número de
pacotes até atingir o a metade do tamanho máximo que é o
tamanho da janela. A partir daí ele diminui a taxa.
Confiabilidade

Formato do Segmento TCP:
–
–
Tem um único formato para todas as mensagens;
Tem campos para ambas as direções:



14
Ack;
Anúncio de Janela;
Dados;
Confiabilidade






15
Source Port - Porto do aplicativo que enviou os dados;
Destination Port - Porto do aplicativo que vai receber os dados;
Sequence Number - É numeração usada para pelo receptor para
reorganizar os dados que chegam fora de ordem;
Acknowledgment Number - Especifica o numero dos dados que
foram recebidos no receptor;
Window - Diz o tamanho do buffer de recepção (janela);
Checksum - Checksum de todos os dados incluindo o cabeçalho.
Download

TCP - Netium