Capítulo 7 CAMADA DE TRANSPORTE
INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos de aplicação que rodam em hospedeiros diferentes Neste capítulo nós veremos como esse princípio é implementado e quais são os protocolos existentes nesta camada
PRIMEIRA FUNÇÃO IMPORTANTE Ampliar o serviço de entrega da camada de rede entre dois sistemas finais para um serviço de entrega entre dois processos da camada de aplicação que rodam nos sistemas finais Questão: Como duas entidades podem se comunicar de maneira confiável por um meio que pode perder ou corromper dados?
SEGUNDA FUNÇÃO IMPORTANTE Controle da taxa de transmissão de entidades de camada de transporte para evitar ou se recuperar de congestionamentos dentro da rede Quais são as causas e as conseqüências do congestionamento? Quais são as técnicas de controle de congestionamento?
SERVIÇOS DA CAMADA DE TRANSPORTE Protocolos da camada de transporte fornecem comunicação lógica entre processos de aplicação que rodam em hospedeiros diferentes Tudo se passa como se os hospedeiros estivessem conectados diretamente quando, na realidade, existem inúmeros enlaces e roteadores entre eles Logo, a camada de transporte envia mensagens livre da preocupação com detalhes existentes na infra-estrutura física da rede
INTRODUÇÃO (FOROUZAN) A camada de transporte é o núcleo do modelo da internet Os protocolos desta camada supervisionam o fluxo de dados entre processos finais Agem como uma conexão entre as camadas de aplicação e de rede Os programas da camada de aplicação agem uns com os outros através dos serviços fornecidos pela camada de transporte sem ter que tomar conhecimento da existência das camadas mais baixas
SERVIÇOS O fluxo de informações ente os processos finais é realizado através dos serviços: Encapsulamento (fragmentação) Controle da conexão Endereçamento Confiabilidade
SERVIÇOS Encapsulamento (fragmentação) O processo de encapsulamento divide grandes mensagens em segmentos menores Tais segmentos são encapsulados no campo de dados do pacote da camada de transporte e Identificados através de informações colocadas no cabeçalho
SERVIÇOS Encapsulamento (fragmentação) Mensagens geradas na camada de aplicação podem possuir tamanhos diferentes E-mail com anexos E-mail sem anexos Aplicações multimídia Alguns tipos de camadas de rede conseguem controlar somente pacotes com pouco mais que mil bytes
SERVIÇOS Resumo O encapsulamento que ocorre na camada de transporte divide, encapsula e adiciona um cabeçalho à mensagem
SERVIÇOS Controle de conexão Orientado à conexão Um protocolo de transporte orientado à conexão estabelece um circuito virtual entre as aplicações (camada de aplicação) dos usuários finais A sessão permanece até que seja solicitada uma desconexão por uma das partes Os pacotes podem viajar fora de ordem, mas a camada de transporte possui mecanismos para reordená-los A comunicação pode ocorrer em modo full-duplex
SERVIÇOS Controle de conexão Sem conexão Trata os pacotes independentemente, sem qalquer conexão entre eles
SERVIÇOS Endereçamento Um cliente HTTP (navegador) precisa enviar uma solicitação a um servidor HTTP remoto Primeiro o cliente precisa endereçar unicamente o computador remoto. Isto é feito pela camada de rede
SERVIÇOS O computador remoto pode estar rodando vários serviços simultaneamente HTTP, SMTP e TELNET Quando a solicitação chega ela deve ser repassada ao serviço solicitado A solicitação deve também especificar o programa cliente que fez a solicitação. O servidor fará uso desta informação para responder a solicitação O cliente pode estar rodando várias aplicações
SERVIÇOS Confiabilidade Controle de fluxo Assim como a camada de enlace, a camada de transporte também oferece controle de fluxo, porém, entre os sistemas finais em vez de usar um único link Controle de erro Também entre sistemas finais A correção é feita, usualmente, através de retransmissão
CONTROLE DE CONGESTIONAMENTO E QOS O congestionamento pode ocorrer nas camadas de enlace, rede ou transporte. Porém, o seu efeito é sentido na camada de transporte por oferecer serviços à camada de aplicação A qualidade de serviço pode ser implementada em outras camadas. Porém, é na camada de rede que sentimos mais os seus benefícios
COMUNICAÇÃO ENTRE PROCESSOS FINAIS Camada de enlace Comunicação entre nós vizinhos (nó-a-nó) Camada de rede Comunicação entre hosts (host-a-host) Camada de transporte Comunicação entre processos finais (processo-aprocesso)
COMUNICAÇÃO ENTRE PROCESSOS FINAIS A camada de transporte cuida da comunicação entre tais processos finais; da entrega de um pacote que é parte de uma mensagem, de um processo até o outro processo
TIPOS DE COMUNICAÇÃO
PARADIGMA CLIENTE-SERVIDOR Existem outros modos de realizar uma comunicação entre processos finais. Porém a mais utilizada é através do paradigma cliente- servidor Para a comunicação devemos definir o seguinte: Host local Processo local Host remoto Processo remoto
MECANISMO DE ENDEREÇAMENTO Na camada de transporte o esquema de endereçamento é denominado número de porta Isto permite discriminar um processo entre Isto permite discriminar um processo entre muitos outros que podem estar rodando no host servidor
MECANISMO DE ENDEREÇAMENTO
MECANISMO DE ENDEREÇAMENTO Os números de porta são gerenciados pelo IANA (Internet Assigned Number Autority) Faixas IANA Portas conhecidas Controladas pelo IANA Portas registradas Empresas comerciais podem registrar estas portas junto ao IANA Portas dinâmicas Podem ser utilizadas por qualquer processo. Portas temporárias
ENDEREÇOS DE SOCKET A comunicação entre processos finais precisa de dois identificadores: Endereço IP e número de porta A esta combinação damos o nome de endereço de socket O cabeçalho IP contém os endereços IP fonte e destino O cabeçalho TCP ou UDP contém os endereços das portas origem e destino
MULTIPLEXAÇÃO E DEMULTIPLEXAÇÃO A camada de transporte não entrega dados diretamente a um processo, mas a um socket intermediário Pode haver mais de um socket no destinatário, Pode haver mais de um socket no destinatário, cada um com um identificador exclusivo
MULTIPLEXAÇÃO E DEMULTIPLEXAÇÃO
MULTIPLEXAÇÃO E DEMULTIPLEXAÇÃO Demultiplexação No cliente pode haver vários processos que necessitem transmitir pacotes simultaneamente. Entretanto só está ativo um protocolo da camada de transporte (UDP ou TCP). Relação do tipo vários para um. Multiplexação O relacionamento é de um para vários. A camada de transporte recebe os datagramas da camada de rede. Verifica os erros e remove o cabeçalho. Entrega cada mensagem ao socket apropriado.