aula 64 – tec 11ºf
Post on 10-Jan-2016
24 Views
Preview:
DESCRIPTION
TRANSCRIPT
Aula 64 – TEC 11ºF
Redes de computadores
Prof. António dos Anjos
Camada de Transporte (relembrar)
Assegura a entrega fiável dos pacotes:
Como estabelecer uma ligação lógica? (e.g. SYN, FIN)
Como saber se o pacote foi entregue com sucesso? (e.g. ACK ≈ Aviso Recepção);
Quanto tempo esperar pela confirmação?
Como fazer para não sobrecarregar o destinatário com demasiados pacotes? (e.g. WinSize);
Que mecanismos utilizar para permitir o reagrupamento dos pacotes ao nível lógico? (e.g. Sequence Number).
Ao nível da Camada de Transporte, a unidade de informação é o SEGMENTO.
Exemplos de protocolos que respondem: TCP, UDP.
Camada de Transporte – Protocolos
Temos:
TCP – Transmission Control Protocol; Usado por Telnet, HTTP, POP, FTP, etc…
UDP – User Datagram Protocol; Usado por DHCP, TFTP, SNMP, etc…
Objectivos:
Permitir comunicação entre aplicações;
Dotar a comunicação de fiabilidade (se desejado);
Controlar fluxo e congestão (se desejado).
Camada de Transporte – Protocolos (2)
Necessitam de:
Mecanismo de endereçamento adicional para identificar cada uma das aplicações que estão a comunicar;
As aplicações são identificadas por um número ao qual se chama porta;
Exemplos: HTTP é identificado pelo número 80; FTP é identificado pelo número 21;
NOTA: O tema portas será aprofundado ao se analisar os protocolos da camada de aplicação!
TCP – Transmission Control Protocol
Normalizado pelo IETF como RFC 793;
O mais conhecido da camada de transporte (TCP/IP suite);
Protocolo orientado à ligação;
Estabelece a ligação lógica entre duas aplicações;
Transposta os dados entre elas;
Termina a ligação.
Criado para assegurar a fiabilidade comunicações de dados.
TCP – Fiabilidade
Estabelecimento fiável de ligação;
Transmissão fiável de dados;
Encerramento fiável da ligação.
TCP – Estabelecimento de Ligação
Faz-se através da troca de três mensagens:
“Three-way handshake” (aperto de mão a três tempos);
O mínimo e suficiente para assegurar o estabelecimento da ligação;
São utilizadas mensagens:
De sincronização (SYN – Synchronize); De confirmação (ACK – Acknowledged).
TCP – 3-Way Handshake
Envia SYN
Recebe SYN
Envia SYN + ACK
Recebe SYN + ACK
Envia ACK
Recebe ACK
Comunicação Estabelecida!!!
Tempo Tempo
TCP – Transmissão Fiável
Confirmação de recepção:
O receptor confirma, através de uma mensagem curta (Acknowledgment), que recebeu o segmento enviado;
Retransmissão:
Se a confirmação não for recebida dentro de um período determinado, o segmento é reenviado;
TCP – Transmissão Fiável (2)
TCP - Retransmissão
Quanto tempo esperar pela confirmação (ACK)?
Depende da distância ao destino e das condições do tráfego no momento.
O tempo de espera num determinado momento é estimado a partir do Round-Trip Time de cada ligação e o tempo estimado presente:
Chama-se, por isso, retransmissão adaptável;
O segredo do sucesso do TCP!
TCP – Controlo de Congestão
A congestão é detectada por:
Ocorrência de Timeout (ACKs não chegam);
Recepção duplicada de ACKs.
Ao serem detectadas colisões:
O envio de segmentos é reduzido drásticamente (Collision Avoidance Algorithm);
Depois começa a aumentar devagar, inicialmente, e exponencialmente com o tempo (Slow Start Algorithm);
TCP – Controlo de Fluxo
O receptor: Anuncia, a cada ACK, o espaço livre do seu bufffer
(window size);
O emissor: Envia segmentos até ao limite da janela (window
size), sem ter de esperar por confirmação (ACKs);
Este mecanismo é conhecido como Protocolo da Janela Deslizante (Sliding Window Protocol).
TCP –Encerramento Fiável
Importante por causa da segurança:
Se não for encerrada de forma correcta, poderão ficar portas abertas;
Alguém mal intencionado poderá aproveitar.
TCP – Encerramento Fiável (2)
TCP – Encerramento Fiável (3)
O mecanismo de encerramento do TCP permite que uma das partes termine a ligação e a outra possa continuar a enviar dados;
Chama-se half-close:
O fecho da ligação num dos lados, não obriga ao fecho de ambos.
TCP - Formato
TCP – Formato (2)
Source/Destination Port Porta remetente/destinatária (aplicação);
Sequence Number Número de sequência do pacote;
Acknowledgment Number Próximo número de sequência que o emissor espera receber;
HLen Tamanho do cabeçalho;
TCP – Formato (3)
URG O campo Urgent Pointer é válido;
ACK O segmento é uma confirmação (Acknlowledgement);
PSH O receptor deverá passar os dados para a camada de aplicação logo que possível;
RST Segmento enviado não faz sentido (e.g. porta não existe);
SYN Pedido de sincronização de números de sequência (p/iniciar ligação);
FIN Computador emissor acabou o envio de dados (p/terminar ligação);
TCP – Formato (4)
Window Número de bytes que o host está disposto a aceitar (espaço
livre no buffer);
Checksum Cobre o cabeçalho + dados;
Urgent Pointer Posição onde serão colocados os dados urgentes.
Options A opção mais comum é a MSS que define o tamanho máximo
do segmento que pode ser enviado.
UDP – User Datagram Protocol
A entrega da mensagem não é assegurada (não fiável);
Não é estabelecida ligação;
Não há controlo de fluxo (não tem Window);
Não há recuperação de erros (não há ACKs);
Detecção de erros opcional (Checksum é opcional);
VANTAGEM?
Muito menor overhead!
UDP - Formato
Lenght Comprimento em bytes do cabeçalho + dados;
TPC
Faça a análise de uma sessão de HTTP:
Atenção ao 3-Way Handshake;
Atenção à terminação da ligação;
Tente perceber as mensagens da coluna Info (no Ethereal);
Esquematize os dois acontecimentos.
Utilize os filtros de captura para capturar apenas segmentos de TCP e o tráfego do seu computador;
Ajudas:
Para iniciar sessão: Executar um browser de Internet com um endereço web. Escolha uma página simples. Por exemplo http://www.google.pt.
top related