Baixe o app para aproveitar ainda mais
Prévia do material em texto
Camada de Transporte Prof. Me. Anderson Bessa da Costa ���1 Roteiro • Características • Portas de Comunicação Cliente e Servidor • UDP • TCP • Controle de Fluxo • Requisitos de Aplicações Nível de Rede • Detalhamento, funções e serviços do nível de rede ���3 Camadas OSI • Nível de Rede: • estabelece, mantém e termina conexões lógicas; • responsável pelo roteamento; • dependendo da filosofia da rede em questão, pode trabalhar segundo o conceito de datagrama (não orientado à conexão) ou circuito virtual (orientado à conexão); Provê os meios funcionais e procedurais para a transmissão de dados orientada ou não-orientada à conexão entre entidade do nível de transporte. ���4 Características • Sua função é promover a transferência de dados confiável e econômica entre a máquina de origem e a máquina destino, independente das redes físicas em uso no momento. Características • Comunicação fim-a-fim entre aplicações • canal virtual de comunicação entre aplicações em computadores distintos • Rede básica (IP) opera pelo melhor esforço (best-effort) • pacotes perdidos • pede mensagens novamente • entrega cópias duplicadas de determinada mensagem • limita as mensagens a algum tamanho finito • entrega mensagens após um atraso arbitrariamente longo Características • Serviços fim-a-fim usuais • garante entrega da mensagem • entrega mensagens na mesma ordem em que foram enviadas • entrega no máximo uma cópia de cada mensagem • aceita mensagens arbitrariamente grandes • detecção fim-a-fim • aceita sincronismo entre fonte e destino • permite que o receptor controle o fluxo do emissor • admite múltiplos processos de aplicação em cada host Características: Serviço Fim-A- Fim • Canais são implementados em software, já que o subsistema de rede não provê facilidades • Mensagens TCP e UDP são encapsuladas em datagramas (pacotes) IP Características Serviço Fim-A- Fim • Canais são implementados em software, já que o subsistema de rede não provê facilidades • Mensagens TCP e UDP são encapsuladas em datagramas (pacotes) IP Características • Mecanismos de identificação de processos • O nível de transporte oferece: • serviços sem conexão (datagramas) • serviços orientados à conexão (circuitos virtuais) • controle de fluxo de dados fim-a-fim • controle de erro —> detecção e correção de erro fim-a-fim • controle de sequência (sequenciação) • divisão de mensagens em segmentos Características • Serviços sem conexão (datagramas) • Ex.: UDP • mapeia os pedidos de transmissão para serviços oferecidos pela camada de rede • apresenta baixo overhead • não implementa nenhum mecanismo de confiabilidade • detecção de erro • controle de fluxo • sequenciação Características • Serviço orientado à conexão (circuitos virtuais) • Ex.: TCP • Etapas • estabelecimento de conexão • transferência de dados • encerramento da conexão Características • Etapas dos serviços orientados à conexão (circuitos virtuais) • estabelecimento de conexão • three-way handshake • define o tamanho da janela de transmissão • define número de sequência Características • Etapas dos serviços orientados à conexão (circuitos virtuais) • transferência de dados • detecção e correção de erros • sequenciação • controle de fluxo Características • Etapas dos serviços orientados à conexão • encerramento da conexão • um problema presente é evitar que dados sejam perdidos depois que um dos lados encerrou a conexão • uma entidade de transporte ao pedir uma desconexão deve aguardar por um tempo antes de fechar a conexão, podendo receber dados durante esse período • Uma conexão termina apenas depois de decorrido um certo tempo sem que chegue nenhuma T-PDU (unidade de dados do protocolo de transporte) • dessa forma, se um lado desconectar, o outro vai notar a falta de atividade e também se desconectar Características • Etapas dos serviços orientados à conexão: • Encerramento da conexão • para evitar que uma conexão seja desfeita, os participantes devem assegurar o envio de T- PDUs periódicas informando que estão “vivos”, quando não têm dados para transmitir ; • caso muitas T-PDUs se percam durante uma conexão, um dos lados pode fechar a conexão indevidamente; Características • Protocolos de Transporte • Mesmas técnicas do nível de enlace agora aplicadas fim-a-fim • Controle de Fluxo • stop-and-wait (bit alternado) • sliding window (janela deslizante) • Controle de Erro • ARQ Automatic Repeat Request (Stop and Wait = bit alternado na camada de enlace) • janela n com retransmissão integral - go back n • janela n com retransmissão seletiva - selective repeat Roteiro • Características • Portas de Comunicação Cliente e Servidor • UDP • TCP • Controle de Fluxo • Requisitos de Aplicações Portas • Identificam os processos origem e destino • Viabilizam a comunicação fim-a-fim • Permite envio e recepção de datagramas de forma independente Portas • Como o protocolo d e t r a n s p o r t e identifica para qual processo ele tem que e n t r e g a r a s i n f o r m a ç õ e s n a camada de aplicação? • Através de portas Portas • SO oferece interface de acesso • Pressupõe buffers de recepção e transmissão Comunicação Cliente-Servidor Portas • Exemplo: Protocolo TCP ou UDP • portas são números inteiros de 16 bits • padronização da IANA (Internet Assigned Number Authority) • A IAB (Internet Activity Board) define o número da porta que cada serviço da Internet deve estar associado Portas • Servidores têm portas bem conhecidas Portas Portas Roteiro • Características • Portas de Comunicação Cliente e Servidor • UDP • TCP • Controle de Fluxo • Requisitos de Aplicações Protocolos • UDP (User Datagram Protocol) • serviço não orientado à conexão • baixo overhead • não confiável • detecção de erro opcional • sem controle de seqüência • nenhum controle de fluxo • Extremidades identificadas por porta para multiplexação • TCP (Transmission Control Protocol) • serviço orientado a conexão • confiável • detecção e correção de erros • controle de fluxo fim-a-fim • … Udp User Datagram Protocol • Quando utilizar a UDP? • aplicações que implementam mecanismo de entrega confiável • pequena quantidade de dados a transmitir, considerando que o tempo para estabelecer a conexão é maior do que o tempo para transmitir os dados; • serviços em que pequenas porções de informação podem ser perdidas • Ex.: transmissão de vídeo, voz … Udp • Formato do Datagrama UDP: • Source/Destination Protocol: • portas usadas pelos processos • Lenght: • tamanho do datagrama (octetos) • Checksum: • verificação de erro no datagrama (opcional). Normalmente este não é implementado • cabeçalho UDP + pseudo-cabeçalho + dados • Data: • dados do usuário Roteiro • Características • Portas de Comunicação Cliente e Servidor • UDP • TCP • Controle de Fluxo • Requisitos de Aplicações Tcp • Características • Baseados em Stream: • sequência de bytes não estruturada • Conexão com Circuito Virtual (Orientado à Conexão) • estabelecimento • transferência de conexão • encerramento de conexões • Confiável (detecção e correção de erros) • Buffers: • buffer de retransmissão com controle automático de envio • Controlede fluxo por janela deslizante: evita que o emissor ultrapasse a capacidade do receptor • Controle de congestionamento: evita que o emissor inunde a rede Tcp • Segmentos: • TCP manipula o stream de dados como uma sequência de octetos divididos em segmentos • cada segmento é encapsulado dentro de um datagrama IP • Números de Sequência: • segmentos no stream de dados são numerados sequencialmente Enlace De Dados Versus Transporte • Potencialmente conecta muitos hosts diferentes • precisa de estabelecimento e término explícitos para a conexão • RTT potencialmente diferente • precisa de mecanismo de timeout adaptável • Retardo potencialmente longo na rede • precisa estar preparado para chegada de pacotes muito antigos • Capacidade potencialmente diferente no destino • precisa acomodar capacidade diferente do nó • Capacidade de rede potencialmente diferente • precisa estar preparado para congestionamento na rede Tcp • Confiabilidade: • Imp lementa con f i ab i l i dade a t r avés de reconhecimento positivo e retransmissão (caso ocorra erro/falha) • Utiliza Piggybacking no reconhecimento • confirmação enviada junto com a parte de dados • Retransmissão baseada em timeout Tcp • O TCP ao transmitir os dados de um segmento: • Guarda uma cópia na fila de retransmissão • Aguarda a chegada de um reconhecimento • Se timeout estourar, o segmento da fila de retransmissão é enviado Tcp Tcp • Sliding Window: • Permite o transmissor enviar múltiplos segmentos antes de receber reconhecimento • Eficiência de transmissão e controle de fluxo dinâmico: • é informado junto com o reconhecimento o número de segmentos que o receptor tem capacidade de receber Tcp • Ex. com Janela de transmissão = 3 Tcp Tcp • Campos do segmento: • Source/Destination Port: • Identificam os processos origem e destino da conexão • Sequence Number: • Posição/Número do segmento dentro do stream de dados • Ack Number: • Reconhecimento - ou número do próximo byte - (ACK) que o destino espera receber • Pacote que vai em um sentido confirma último pacote recebido no sentido contrário (piggybacking) • Hlen: • Tamanho do cabeçalho (unidade: 4 octetos) Tcp • Campos do Segmento: • Code Bits: • URG: Campo Urgent Pointer válido • ACK: Confirmação do pedido de conexão • PSH: Segmento requer que o dado seja já enviado, não armazenando-o no buffer • RST: Reseta a conexão - término devido a erro • SYN: Estabelecimento de conexão • sincroniza números de sequência • FIN: Origem finalizou seu stream de bytes. Encerramento da conexão Tcp • Campos do Segmento: • Window Advertisement: • Especifica o tamanho da janela • possibilita controle de fluxo • evita a sobre-escrita de buffers • informa o tamanho da janela disponível no receptor • transmissor não pode enviar dados além do que o receptor pode receber • Checksum: • verificação de erro no segmento • Urgent Pointer: • posição dos dados urgente no segmento (se existirem) Tcp • Campos do Segmento: • Options: • Tamanho de Segmento Máximo (MSS) • pacote de pesquisa pelo MSS • visa evitar fragmentação IP • fator de escala do tamanho da janela • permite janelas maiores que 64KB • Timestamp • permite reconhecer pacotes que tenham se extraviado pela rede durante conexões muito rápidos • Encontradas em quase todas as implementações modernas • essenciais para garantir desempenho nas redes de alta capacidade (LFNs) Tcp: Conexão Com Três Fases • Estabelecimento • TCP requer que aplicações reconheçam a nova conexão como única e inconfundível • pacotes de conexões anteriores não podem ser tomados como pacotes válidos • Transferência de dados • comunicação full-duplex • interface de serviço é uma sequência de bytes • Término da conexão • TCP garante a entrega de todos os dados antes de fechar uma conexão a pedido da aplicação • Fases representadas no diagrama de estados TCP Tcp: Controle De Conexão • Three way handshake Tcp • Three way handshake Tcp • Three way handshake Tcp • Three way handshake Tcp • Three way handshake Tcp • Flag ACK • uma conexão TCP sempre se inicia com o cliente enviando um pacote com o flag SYN = 1 e ACK = 0 Tcp • Término da conexão Tcp: Diagrama De Estados Tcp: Portas, Conexões E Endpoints • TCP utiliza o conceito de conexões para identificar os dois pontos envolvidos na comunicação • terminações da conexões = endpoints • Um endpoint é um par de inteiros da forma: ! ! • A conexão é identificado por um par de endpoints Maximum Segment Size (Mss) • O TCP tenta evitar a fragmentação implementada pelo protocolo IP na camada de rede através do MSS; • O MSS é definido pelo TCP durante Three-Way- Handshake; • O MSS representa o tamanho máximo da parte de dados de um segmento TCP, tendo o propósito de evitar a fragmentação na camada de rede; Maximum Transmission Unit (Mtu) • A Maximum Transmission Unit (MTU) é o tamanho máximo de um pacote IP (incluindo o seu c a b e ç a l h o ) q u e e v i t a a implementação de fragmentação • O pacote IP a ser transmitido sofrerá fragmentação caso seja maior que o MTU • O MTU do protocolo IP é diferente em cada tecnologia. Por exemplo, vide a tabela ao lado MTU Protocol RFC 576 Default 879 1500 PPP Default 1134 1500 Ethernet 895 1006 SLIP 1055 1492 PPPOE 2516 Calculando O Tamanho Do Mss • O MSS é calculado a partir do MTU • A RFC879 define como o MSS é calculado pelo protocolo TCP: • O MSS do TCP é o tamanho máximo de um datagrama IP definido pela MTU menos 40 • MSS = MTU - sizeof(TCPHDR) - sizeof(IPHDR) • MSS = MTU - 20 - 20 • Por exemplo, para calcular o MSS em uma rede Ethernet: • passo 1: definir a MTU em uma rede Ethernet = 1500 bytes • passo 2: calcular o MSS do protocolo TCP em uma rede Ethernet • MSS = MTU - sizeof(TCPHDR) - sizeof(IPHDR) • MSS = 1500 - 20 - 20 = 1460 bytes • Resumindo: • TCP Maximum Segment Size = IP Maximum Datagram Size - 40 Mss Padrão Do Tcp • A RFC 879 determina que o MTU mínimo que deve ser suportado por TODOS dispositivos de rede é de : 576 bytes • Sendo assim, podemos inferir que o MSS padrão (mínimo) é de: 536 bytes • MSS = MTU - sizeof(TCPHDR) - sizeof(IPHDR) • MSS = 576 - 20 - 20 = 536 bytes • A RFC 879 afirma o seguinte: • “Hosts must not send datagrams larger than 576 octets unless they have specific knowledge that the destination host is prepared to accept larger datagramas”. Roteiro • Características • Portas de Comunicação Cliente e Servidor • UDP • TCP • Controle de Erros e Fluxo • Requisitos de Aplicações Controle De Erros • Detecção de Erro • Checksum • CRC - Cyclic Redundancy Code • Técnicas de Correção de Erro • recuperação do segmento original • retransmissão do segmento com erro Tcp: Controle De Erros • Correção de erro • Confirmação positiva (ACK) • Utiliza piggybacking no reconhecimento • confirmações enviadas junto com os dados no sentido oposto • Dados podem ser recebidos fora de ordem • Qualquer segmento recebido gera uma confirmação do último byte recebido em ordem • Algoritmos de Correção de erro • stop-and-wait ARQ • janela n com retransmissão integral - go back n • janela n com retransmissão seletiva - selective repeat Stop-And-Wait - Arq Controle De Erros Recuperação • Recuperação de erros —> reenviodos segmentos perdidos • Permite enviar n segmentos sem ter recebido reconhecimentos dos segmentos anteriormente enviados • A janela de transmissão define o número de segmentos que podem ser enviados sem receber confirmação • Detecta o erro a partir do reconhecimento positivo • Existem duas formas para reparar o erro na transmissão: • retransmissão integral (go back N): todos os segmentos a partir de j são transmitidos novamente • retransmissão seletiva (Selective Repeat): só o segmento j é retransmitido • O transmissor ao receber o ACK do segmento n conclui que ele, e os segmentos antes dele, foram recebidos corretamente. Sliding Window - Janela Deslizante Controle De Fluxo • Controle de fluxo fim-a-fim • Regula o fluxo de mensagens (pacotes) entre transmissor e receptor • Resolve o problema da diferença entre velocidade de transmissão e recepção • Não permite que uma estação transmissora mais rápida sobrecarregue uma estação receptora • Técnicas • stop-and-wait == Bit Alternado • Sliding Window (Janela Deslizante) Tcp: Controle De Fluxo • Mecanismo de janela deslizante variável • No estabelecimento da conexão, buffer é alocado • Toda confirmação (desde o three-way-handshake) informa o espaço disponível nesse buffer • a notificação que contém esse dado é chamada anúncio da janela (window advertisement) • o emissor não pode ter mais do que esse valor em bytes não confirmados Revisão De Janela Deslizante • Lado emissor • ÚltimoByteConfirmado < ÚltimoByteEnviado • ÚltimoByteEnviado <= ÚltimoByteEscrito • buffer de bytes entre: ÚltimoByteConfirmado e ÚltimoByteEscrito ! • Lado receptor • ÚltimoByteLido < PróxByteEsperado • PróxByteEsperado <= ÚltimoByteRecebido + 1 • buffer de bytes entre: ÚltimoByteLido e ÚltimoByteRecebido Controle De Fluxo • Tamanho do buffer de envio: BufferEnvioMáx • Tamanho do buffer de recepção: BufferRecMáx • Lado Receptor • ÚltimoByteRecebido - ÚltimoByteLido <= BufferRecMáx • JanelaAnunciada = BufferRecMáx - (PróxByteEsperado - ÚltimoByteLido) • Se o processo local lê os dados tão rápido quanto eles chegam, a janela anunciada permanece aberta (JanelaAnunciada = BufferRecMáx) • Caso contrário, a janela pode até ser reduzida a zero • Sempre envia ACK em resposta à chegada do segmento de dados Controle De Fluxo • Lado Emissor • ÚltimoByteEnviado - ÚltimoByteConfirmado <= JanelaAnunciada • JanelaEfetiva = JanelaAnunciada - (ÚltimoByteEnviado - ÚltimoByteConfirmado) • ÚltimoByteEscr ito - ÚltimoByteConfirmado <= BufferEnvioMáx • b l o q u e i a e m i s s o r s e ( Ú l t i m o B y t e E s c r i t o - ÚltimoByteConfirmado) + y > BufferEnvioMáx • Persiste no envio de 1 byte (de tempos em tempos) quando JanelaAnunciada = 0 Proteção Contra Quebra (Wrap- Around) • NumSeq de 32 bits ! ! ! ! ! ! • Solução: usar campo opção de timestamp de 32 bits para ampliar o NumSeq Mantendo A Tubulação Cheia • JanelaAnunciada de 16 bits ! ! ! ! ! ! ! • Usar opção: fator de escala da janela Disparando A Transmissão • Aplicações escrevem fluxos de bytes (byte-stream) • Quando o TCP deve enviar um segmento? • assim que o MSS for atingido • segmento máximo que não causa fragmentação • emissor solicita envio explicitamente • operação push • quando temporizador expira Síndrome Da Janela Tola • Com que agressividade o emissor deve explorar a janela aberta? ! ! ! ! • Quanto tempo esperar antes de enviar mais dados? • espera demais: prejudica o desempenho das aplicações • espera pouco: utilização ruim da rede (muitos pacotes pequenos) • estratégias: temporizações ou “auto-controle” (self-clocking) Síndrome Da Janela Tola • Com que urgência o transmissor deve enviar pacotes pequenos? ! ! ! ! • Soluções no lado receptor • após anunciar janela zero, espera por um espaço igual ao tamanho máximo do segmento (MSS) • só abre a janela fechada se tiver espaço para um MSS • confirmações atrasadas (delayed acknowledgements) Síndrome Da Janela Tola • Controle pelo emissor (Algoritmo de Nagle) • quando o emissor decide enviar um segmento? ! • quando a aplicação gera dados adicionais • se preenche um segmento máximo (e janela aberta): envia • senão (segmento incompleto) • se houver dados não confirmados em trânsito: mantém em buffer até que o ACK chegue • senão: envia Retransmissão Adaptável (Ou Temporização Adaptável) • Problema a ser resolvido: • como configurar temporizadores (timeouts) para comunicações em LANs e WANs (redes em RTTs bem diferentes)? • LANs: deve esperar pouco • WANs: deve esperar mais ! • TCP adota temporizações variáveis • TCP monitora o atraso de alguns pacotes em cada conexão e modifica o temporizador de retransmissão para acomodar mudanças • Mudança é feita em função de análise estatística das mensagens transmitidas com sucesso Retransmissão Adaptável (Algoritmo Original) • Mede SampleRTT para cada par segmento/ACK • Calcula média ponderada de RTT • EstRTT = alfa x EstRTT + beta x SampleRTT • onde alfa + beta = 1 • alfa entre 0.8 e 0.9 • beta entre 0.1 e 0.2 • Define timeout com base em EstRTT • TimeOut = 2 x EstRTT ! • Bastante conservador Algoritmo De Karn/Partridge ! ! ! ! ! ! ! • Não faz amostragem do RTT ao retransmitir • SampleRTT só de pacotes enviados uma única vez • Dobra timeout após cada retransmissão • Decaimento exponencial Algoritmo De Jacobson/Karels Roteiro • Características • Portas de Comunicação Cliente e Servidor • UDP • TCP • Controle de Fluxo • Requisitos de Aplicações De Qual Serviço De Transporte Uma Aplicação Necessita? • Perda de dados • Algumas aplicações (ex.: áudio) podem tolerar alguma perda • Outras aplicações (ex.: transferência de arquivos, telnet) exigem transferência de dados 100% confiável • Temporização • Algumas aplicações (ex.: telefonia Internet, jogos interativos) exigem baixos atrasos para serem “efetivos" • Banda passante • Algumas aplicações (ex.: multimídia) exigem uma banda mínima para serem “efetivas" • Outras aplicações (“aplicações elásticas”) melhoram quando a banda disponível "aumenta" Requisitos De Transporte De Aplicação Comuns Serviços Dos Protocolos De Transporte Da Internet • Serviço TCP: • Orientado à conexão: conexão requerida entre processos cliente e servidor • Transporte confiável entre os processos de envio e recepção • Controle de fluxo: o transmissor não sobrecarrega o receptor • Controle de Congestionamento: protege a rede do excesso de tráfego • Não oferece: garantias de temporização e de banda mínima • Serviço UDP: • Transferência de dados não confiável entre os processos transmissor e receptor • Não oferece: estabelecimento de conexão, confiabilidade, controle de fluxo e de congestionamento, garantia de temporização e de banda mínima Aplicação E Protocolos De Transporte Da Internet Referências • Redes de Computadores: Uma abordagem de sistemas. Larry Peterson e Bruce Davie. 3ª ed. Editora Campus, 2004. Capítulo 5
Compartilhar