Redes TCP/IP alexandref@ifes.edu.br
Camada de Transporte 2
Camada de Transporte Função: Fornecer comunicação lógica entre processos de aplicação em diferentes hospedeiros. Os protocolos de transporte são executados nos sistemas finais Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a camada de rede. Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação. 3
Camada de Transporte Diferenças: Camada de rede: comunicação lógica entre os hospedeiros. Camada de transporte: comunicação lógica entre os processos. 4
Camada de Transporte Ou seja... Um protocolo da camada de transporte tem que garantir que uma mensagem recebida, seja entregue ao aplicativo correto. Como isso ocorre? Através do conceito de Portas de comunicação. Porta é uma identificação lógica presente na camada de transporte, que irá identificar o processo que está efetuando a comunicação. 5
Camada de Transporte - Portas Quase todos os programas se comunicam usando o modelo cliente-servidor programas clientes fazem requisições a programas servidores. Os programas servidores sempre esperam pelas requisições dos clientes em portas amplamente conhecidas, chamadas de Portas Bem-Conhecidas (Well-Known Ports). Cada número de porta é um número de 16 bits que podem variar de 0 a 65535(pois 2 16 = 65536). Desta forma, o cliente geralmente sabe o número de porta na qual o servidor espera pela comunicação. 6
Camada de Transporte - Portas O próprio cliente também escolhe um número de porta disponível para que ele possa receber a resposta do servidor. O cliente pode escolher um número de porta qualquer, já que quem inicia a comunicação é o cliente. O servidor, por sua vez, irá responder à requisição usando o número de porta de origem contido no pacote enviado pelo cliente. 7
Camada de Transporte Protocolos da camada de Transporte: UDP (User Datagram Protocol Protocolo de Datagrama do Usuário) TCP (Transmission Control Protocol Protocolo de Controle de Transmissão) Ambos utilizam o conceito de portas para efetuarem as entregas de pacotes. 8
Camada de Transporte - Portas Leitura Obrigatória: Arquivo: Apostila_Transporte.pdf Capítulo: 5.1 9
Protocolo UDP UDP - User Datagram Protocol Protocolo de Datagrama do Usuário. Detalhes disponível no RFC 768. É o protocolo da camada de transporte mais simples em funcionamento atualmente. Protocolo de melhor esforço, ou seja, não oferece nenhuma garantia de entrega de pacotes aos serviços que o utilizam. 10
Protocolo UDP Protocolo de transporte da Internet sem gorduras, sem frescuras Segmentos UDP podem ser: Perdidos Entregues fora de ordem para a aplicação Sem conexão: Não há apresentação entre o UDP transmissor e o receptor Cada segmento UDP é tratado de forma independente dos outros 11
Protocolo UDP Por que existe o UDP? Não há estabelecimento de conexão (que possa redundar em atrasos) Simples: não há estado de conexão nem no transmissor, nem no receptor Cabeçalho de segmento reduzido Não há controle de congestionamento: UDP pode enviar segmentos tão rápido quanto desejado (e possível). 12
Protocolo UDP Muito usado por aplicações de multimídia contínua (streaming) Tolerantes à perda Sensíveis à taxa Outros usos do UDP (por quê?): DNS DHCP Transferência confiável sobre UDP: Acrescentar confiabilidade na camada de aplicação Recuperação de erro específica de cada aplicação 13
Protocolo UDP Leitura Obrigatória: Arquivo: Apostila_Transporte.pdf Capítulo: 5.2 14
Protocolo TCP TCP (Transmission Control Protocol Protocolo de Controle de Transmissão) Principal Função: Fornecer serviço de transporte confiável. A maioria dos aplicativos que usam a rede são criados para usar o TCP. 15
Protocolo TCP Principais características: Orientação à conexão: o TCP fornece um serviço orientado à conexão em que um programa deve primeiro solicitar uma conexão com um destino específico e então usá-la para transferir dados; Comunicação ponto-a-ponto: cada conexão TCP tem sempre exatamente duas extremidades; 16
Protocolo TCP Confiabilidade completa: TCP garante que os dados enviados por meio de uma conexão serão entregues exatamente como foram enviados, na mesma ordem e sem perdas; Comunicação Full-duplex: uma conexão TCP permite que os dados fluam em uma ou outra direção e que um outro programa aplicativo envie dados a qualquer hora. O TCP pode armazenar dados que partem e que chegam em ambas as direções, possibilitando que um aplicativo envie dados e continue uma computação enquanto estes estão sendo transmitidos 17
Protocolo TCP Estabelecimento de conexão confiável: o TCP exige que, quando dois aplicativos criam uma conexão, ambos devem concordar com ela. Desligamento gracioso de conexão: um programa aplicativo pode abrir uma conexão, enviar quantidades arbitrárias de dados e então requisitar o fechamento da conexão. O TCP garante a entrega confiável de todos os dados antes de fechar a conexão. 18
Protocolo TCP - Estabelecimento de conexão no TCP Estabelecimento de conexão no TCP Para estabelecer uma conexão TCP é necessário o envio de três mensagens entre os dois computadores comunicantes. Por conta disto, esta comunicação é chamada de aperto de mão de três vias (3-way handshake). 19
20
Protocolo TCP - Estabelecimento de conexão no TCP Por que o uso de três mensagens para estabelecimento de conexão com o TCP? Cientistas provaram que a troca de três mensagens é suficiente e necessária para assegurar o acordo não ambíguo apesar da perda, duplicação e possível atraso de pacotes. 21
Protocolo TCP - Estabelecimento de conexão no TCP Já quando um computador decide encerrar uma conexão TCP em andamento, também existe uma sequência de mensagens para fechamento de conexão. ACK (de acknowledge reconhecimento) 22
Protocolo TCP - Estabelecimento de conexão no TCP Ferramenta netstat Ela permite saber quais conexões estão atualmente estabelecidas no computador, bem como os endereços de origem e destino e as portas sendo usadas. 23
24
Protocolo TCP Leitura Obrigatória: Arquivo: Apostila_Transporte.pdf Capítulo: 5.3 25
Protocolo TCP - Retransmissão adaptativa Retransmissão adaptativa A retransmissão é uma importante técnica para garantir a confiabilidade. Quando o TCP envia dados, o remetente compensa a perda de pacotes implementando um esquema de retransmissão no qual ambos os lados da comunicação participam. Quando o TCP recebe dados, ele devolve uma mensagem de confirmação de recebimento para o remetente. 26
Protocolo TCP - Retransmissão adaptativa Sempre que o TCP envia dados, o remetente inicia um temporizador. Se o temporizador expirar antes da chegada da mensagem de confirmação, o remetente retransmite os dados. Questionamento: Quanto tempo o TCP deve esperar antes da retransmissão? 27
Protocolo TCP - Retransmissão adaptativa O TCP posssui um mecanismo de retransmissão adaptativo. Isto é, o TCP monitora o atraso corrente em cada conexão e adapta o temporizador para acomodar as condições variáveis. O TCP estima o atraso de ida e volta para conexão ativa medindo o tempo necessário para receber uma resposta. 28
Protocolo TCP - Controle de fluxo Controle de fluxo O TCP usa um mecanismo para controlar o fluxo de dados sendo enviado de um computador para outro por meio do conceito de janela. Quando uma conexão é estabelecida, cada lado da conexão aloca espaço na memória para armazenar dados que chegam, e envia o tamanho desta área de memória para o outro lado. 29
Protocolo TCP - Controle de fluxo À medida que os dados chegam, o receptor envia confirmações que especificam o espaço restante para armazenar dados. A quantidade de espaço disponível no receptor a qualquer momento é chamada de janela, e uma notificação que especifica o tamanho é chamada de anúncio de janela. 30
Protocolo TCP - Controle de fluxo Um remetente que recebe um anúncio de janela de tamanho zero deve cessar o envio até que o receptor anuncie novamente uma janela positiva. Desta forma, é possível controlar o envio de dados para o receptor de forma a ele não ficar sobrecarregado. 31
Protocolo TCP - Controle de congestionamento Controle de congestionamento o TCP sempre usa a perda de pacotes como uma medida de congestionamento e responde a este congestionamento reduzindo a taxa em que retransmite dados. Sempre que uma mensagem é perdida, o TCP inicia o controle de congestionamento. 32
Protocolo TCP - Controle de congestionamento Em vez de transmitir dados suficientes para sobrecarregar a capacidade do receptor (isto é, o tamanho da janela do receptor), o TCP inicia enviando uma única mensagem contendo dados. Se a mensagem de reconhecimento chega sem perda adicional, o TCP dobra a quantidade de dados enviados e envia duas mensagens adicionais. Ou seja, o reenvio é aumentado linearmente, de maneira a não ocasionar um novo congestionamento 33
Protocolo TCP - Controle de congestionamento O esquema de controle de congestionamento do TCP responde bem ao aumento de tráfego na Internet. Desacelerando rápido, o TCP pode aliviar o congestionamento. Em sua essência, o TCP evita adicionar retransmissões a uma rede congestionada. 34
Protocolo TCP Leitura Obrigatória: Arquivo: Apostila_Transporte.pdf Capítulo: 5.4 Link s externos: http://www.netbook.cs.purdue.edu/ http://www.iana.org/assignments/port-numbers 35