Baixe o app para aproveitar ainda mais
Prévia do material em texto
As notas de aulas são referências para estudo. Portanto não devem ser adotadas como material didático absoluto! Versão 0.1 – 30/08/2008 Romildo Martins Bezerra CEFET/BA Redes de Computadores II Funções da Camada de Transporte ............................................................... 2 Controle de conexão ............................................................................. 2 Fragmentação ..................................................................................... 2 Endereçamento ................................................................................... 2 Confiabilidade .................................................................................... 2 TCP (Transmission Control Protocol) ............................................................. 2 Confiabilidade do TCP .............................................................................. 3 UDP – User Datagram Protocol .................................................................... 4 Pesquise .............................................................................................. 5 Temas para trabalhos .............................................................................. 5 Bibliografia ........................................................................................... 5 A Camada de Transporte Romildo Martins Bezerra 2 ? Funções da Camada de Transporte Os serviços oferecidos pelo protocolo IP não oferecem confiabilidade. Problemas comuns como congestionamento, perda ou ordenação de pacotes não são tratados. Entretanto as aplicações (HTTP, FTP e SMTP, por exemplo) necessitam prover um serviço de qualidade para o usuário. A camada de transporte pode oferecer um serviço confiável de entrega de dados das aplicações utilizando um serviço não confiável prestado pela camada de rede. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão A camada de transporte possui protocolos que oferecem serviços orientados a conexão e não orientados a conexão. Os serviços não orientados a conexão tem conceito semelhante ao funcionamento do protocolo IP. Já o serviço orientado a conexão, primeiramente estabelece uma comunicação entre usuários finais e só depois começa a transmissão. Fragmentação Esta função é similar a camada de rede, mas a fragmentação é feita apenas no transmissor e receptor, pois os dispositivos de rede em geral não entendem a camada de transporte. Esta fragmentação não está relacionada com a feita pela camada de rede. Para exemplificar, imagine um email (SMTP) enviado apenas com um texto simples como: “Prezada Fulana, vamos sair hoje? Beijos, Fulano”. Agora pense num e-mail com todas as fotos de um passeio ou com três arquivos de MP3. Nota-se que uma mensagem SMTP pode conter de alguns bytes até dezenas de megabytes. Logo é necessário fragmentar tais informações em pacotes de tamanhos menores para serem encapsulados pela camada de rede. Endereçamento Conhecemos o endereçamento IP e sabemos que a identificação de um host na Internet é única. Mas imagine duas situações: • Um servidor web (HTTP) também é servidor de transferência de arquivos (FTP); • Você abre duas janelas do Firefox acessando dois links diferentes de um mesmo site. Como identificar dois serviços num mesmo host? Como identificar duas sessões diferentes entre uma estação e um servidor web? Para resolver estas perguntas a camada de transporte oferece à camada de aplicação a função de endereçamento, onde os serviços são identificados pela sua porta (HTTP–80, FTP–20/21, SMTP–25, DNS– 53...) e uma conexão entre sua estação e outro host é feita através de um socket1 (IP+porta). Confiabilidade Para garantir a confiabilidade, a camada de transporte oferece: • Controle de fluxo; • Controle de erros; • Controle de congestionamento e Qualidade de Serviço Estudaremos durante o curso estes pontos, alguns deles ainda neste documento. TCP (Transmission Control Protocol) O TCP é o protocolo da camada de transporte da arquitetura Internet responsável em oferecer confiabilidade na transmissão. Alguns autores consideram-no como a chave do sucesso da Internet [1]. O TCP fornece um serviço orientado a conexão, confiável e full-duplex para os serviços de aplicação. Para isso: 1 É uma abstração que mapeia diretamente a uma porta de transporte (TCP ou UDP) e mais um endereço de rede. Com esse conceito é possível identificar unicamente um aplicativo ou servidor na rede de comunicação IP. Romildo Martins Bezerra 3 ? • O TCP é orientado a conexão – Para ter o controle dos pacotes enviados e conseguir efetuar a fragmentação, o TCP precisa que os usuários finais tenham o controle do que está sendo enviado. O protocolo TCP especifica três fases durante uma conexão: estabelecimento da ligação, transferência e término de ligação. Para estabelecimento da conexão o TCP necessita que: “O cliente inicia a ligação enviando um pacote TCP com a flag SYN activa e espera-se que o servidor aceite a ligação enviando um pacote SYN+ACK. Se, durante um determinado espaço de tempo, esse pacote não for recebido ocorre um timeout e o pacote SYN é reenviado. O estabelecimento da ligação é concluído por parte do cliente, confirmando a aceitação do servidor respondendo-lhe com um pacote ACK” - Wikipedia. • Efetua desconexão “suave” (Graceful Connection Shutdown) – O TCP só encerra a conexão depois de entregar os dados ao receptor. A desconexão é feita conforme visto na figura 02. • O TCP é Full-duplex - É possível a transferência simultânea nas duas direções durante a sessão. • Utiliza o conceito de stream – O TCP envia uma sequencia limitada e contínua de bytes sem noão dos registros ou quantidade de pacotes que serão recebidos. • Enxerga a rede como uma conexão ponto-a-ponto – O protocolo TCP fornece uma conexão diretamente entre aplicativos dos hosts. Tal conexão é denominada conexão virtual ponto-a-ponto, pois entre o transmissor e o receptor, os dispositivos de rede (roteadores) não enxergam a camada de transporte (Figura 03). O TCP permite a camada de aplicação enxergar a rede como uma conexão virtual. Figura 03. Ilustração da conexão TCP Confiabilidade do TCP São destacados nesta sessão alguns mecanismos que garantem a confiabilidade do protocolo IP, vamos estudar estes pontos através de exemplos. È sugerido fortemente a leitura dos capítulos relacionados à camada de transporte dos livros da bibliografia. • Perda de Pacote e Retransmissão – Quando o TCP envia os dados, ele inicializa um mecanismo de timeout (temporizador) para receber a confirmação de recebimento. Caso a confirmação Roteador 2 Host B Roteador 1 Host A Aplicação Transporte Rede Enlace Física Aplicação Transporte Rede Enlace Física Rede Enlace Física Rede Enlace Física Figura 01. Estabelecimento de conexão TCP (Three-Way Handshake) Figura 02. Encerramento de conexão TCP Romildo Martins Bezerra 4 ? não seja recebida ele retransmite o pacote. A retransmissão é a base do sucesso do TCP. Reflita sobre a retransmissão no atraso de entrega. • Retransmissão adaptativa e Controle de Tempo – O TCP monitora o atraso do envio dos pacotes e adapta seu temporizador. Mas como ele pode fazer isso se os relógios não são sincronizados? Será que esta técnica é eficiente? • Controle de Fluxo (buffers e janelas de transmissão) – Um problemano mundo das redes é garantir o controle de fluxo entre usuários finais. A imprevisibilidade do tráfego é o maior problema. Imagine o resultado do vestibular do CEFET publicado na internet. Diversos usuários irão fazer requisições em pouco tempo podendo ser mais rápido do que a entrega do servidor web. Assim diversas requisições serão novamente realizadas, gerando ainda mais tráfego e pacotes duplicados. Daí o TCP utiliza o conceito de buffers (armazenamento de pedidos e respostas) e janelas deslizantes: ? Janela deslizante é uma característica de alguns protocolos que permite que o remetente transmita mais que um pacote de dados antes de receber uma confirmação. Depois de recebê-lo para o primeiro pacote enviado, o remetente desliza a janela do pacote e manda outra confirmação. O número de pacotes transmitidos sem confirmação é conhecido como o tamanho da janela; aumentando o tamanho da janela melhora-se a vazão. • Controle de Congestionamento - Fica como pesquisa de leitura. UDP – User Datagram Protocol O UDp é um protocolo da camada de transporte não confiável e não orientado a conexão. Fornece apenas os serviços de endereçamento e fragmentação, não provendo confiabilidade (controle de fluxo, erro, congestionamento). Isso indica que o UDP não adiciona serviços ao protocolo IP. O que nos leva então a utilizar o UDP? O UDP por ser mais simples possui um cabeçalho menor gerando um menor overhead. Ideal para algumas aplicações onde a velocidade é mais útil que a confiabilidade como aplicações multimídia. Afinal não faz sentido algum receber um trecho de um arquivo música que já passou. Além de aplicações multimídia, o UDP é utilizado também pelo TFTP (Trivial File Transfer Protocol), RIP (Routing Information Protocol), SNMP (Simple Network Management Protocol) e DNS (Domain Name System). Figura 04. Mostra a retransmissão (701-800), buffer, janela deslizante e recebimento fora de ordem. Romildo Martins Bezerra 5 ? Pesquise 1. As portas reservadas para os serviços web e que protocolos de transporte utilizam. 2. Para que serve o round-trip delay? 3. Relacione janelas-deslizantes e algoritmo do início lento. 4. Síndrome da “Janela Boba”. 5. Verifique o funcionamento do controle de congestionamento. 6. Compare os cabeçalhos do TCP e UDP. 7. Porque o TFTP não precisa de confiabilidade? 8. Pesquise se existem outros protocolos de transporte na arquitetura TCP/IP. Temas para trabalhos 1. Programação de Servidor Web [2] 2. Programação de Algoritmo de janelas deslizantes. Bibliografia [1] FOROUZAN, B.A. Comunicação de Dados e Redes de Computadores. 3ª Edição. Bookman. 2006 [2] KUROSE, J. Redes de Computadores e a Internet. 3ª Edição. Addison-Wesley, 2006. [3] COMER, D. E. Redes de Computadores e a Internet. 4ª Edição. Bookman. 2007.
Compartilhar