aula02 - camada de transporte

Upload: rafael-giordano

Post on 12-Jul-2015

28 views

Category:

Documents


0 download

TRANSCRIPT

Camada de TransporteRodolfo Costa - [email protected]

Objetivos

Entender os princpios por trs dos servios da camada de transporte: Multiplexao/demultiplexao Transferncia de dados confivel Controle de fluxo Controle de congestionamento Aprender sobre os protocolos de transporte na Internet: UDP: transporte no orientado conexo TCP: transporte orientado conexo Controle de congestionamento do TCP

Camada de Transporte

Protocolos e servios da camada de transporte

Protocolos e servios de transporte

Deficincias do Protocolo IPOs endereos definidos pelo protocolo IP so eficientes em rotular os milhes de computadores ligados Internet de maneira que os dados cheguem at o endereo desejado. Entretanto, o protocolo IP no dispe de meios para garantir a entrega dos dados com integridade e no tempo desejado.

Exemplo:

Os pacotes IP carregam consigo nmeros de checagem de integridade (checksum). O receptor verifica os dados, e se o checksum no for igual, simplesmente descarta as informaes.

Protocolos e servios de transporteTCP + IP Para resolver problemas do IP como:

Dados que no chegam ao destino; Dados que chegam deteriorados (necessidade de retransmisso); Incerteza se a informao percorreu com sucesso o caminho entre o emissor e o transmissor...

... So utilizados os protocolos da camada de transporte.Esta dupla de protocolos um dos pilares da Internet.

Protocolos e servios de transporteFornecem

comunicao lgica entre processos de aplicao em diferentes hosts. protocolos de transporte so executados nos sistemas finais Lado emissor: quebra as mensagens da aplicao em segmentos e envia para a camada de redeLado

Os

receptor: remonta os segmentos em mensagens e passa para a camada de aplicao

H

mais de um protocolo de transporte disponvel para as aplicaes TCP e UDP

Internet:

Protocolos e servios de transporteProtocolos Na famlia TCP/IP, existem dois protocolos de transporte, o TCP e o UDP. O protocolo TCP oferece um servio de entrega de pacotes do tipo orientado conexo (confivel). O UDP oferece o mesmo servio de entrega de pacotes s que no orientado conexo (no confivel).

Protocolos e servios de transporte

Confivel, garante ordem de entrega (TCP) Controle de congestionamento Controle de fluxo Orientado conexo No confivel, sem ordem de entrega: (UDP) Extenso do melhor esforo do IP Servios no disponveis: Garantia a atrasos Garantia de banda

Protocolos e servios de transporte

Camada de rede: comunicao lgica entre os hospedeiros Camada de transporte: comunicao lgica entre os processos Depende dos servios da camada de rede Analogia com uma casa familiar: 12 crianas enviam cartas para 12 crianas Processos = crianas Mensagens da aplicao = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Ana e Z Protocolo da camada de rede = servio postal

Protocolos e servios de transportePortas de Acesso Os protocolos de transporte (TCP e UDP) disponibilizam 65.536 (216) portas para estabelecimento de conexo

Servidores (uso de portas 1024)

Protocolos e servios de transporteO Segmento de Transporte:

TCP ou UDP

Protocolo UDP User Datagram Protocol

UDP: User Datagram Protocol

Protocolo de transporte da Internet sem gorduras, sem frescuras Servio best effort, segmentos UDP podem ser: Perdidos Entregues fora de ordem para a aplicao

Sem conexo: No h apresentao entre o UDP transmissor e o receptor Cada segmento UDP tratado de forma independente dos outros

UDP: User Datagram ProtocolMais caractersticas do UDP

No h estabelecimento de conexo (que possa resultar em atrasos); Simples: no h estado de conexo nem no transmissor, nem no receptor; Cabealho de segmento reduzido; No h controle de congestionamento: UDP pode enviar segmentos to rpido quanto desejado (e possvel). Mais rpido que o TCP (no existe o custo de estabelecimento e controle da conexo)

O Segmento UDP

32 bitsPorta origem # Porta destino #Soma de Verificao (checksum)

Tamanho, em bytes, do segmento UDP, incluindo cabealho

Comprimento

Dados da aplicao (mensagem)

O Segmento UDPO Cheksum Objetivo: detectar erros (ex.: bits trocados) no segmento transmitido Transmissor: Trata o contedo do segmento como seqncia de inteiros de 16 bits Checksum: soma do contedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP Receptor: Computa o checksum do segmento recebido Verifica se o checksum calculado igual ao valor do campo checksum: NO - erro detectado SIM - no h erros.

Protocolo TCP Transmission Control Protocol

TCP: Transmission Control ProtocolCaractersticas:

Orientado conexo: O TCP fornece servio orientado conexo em que um aplicativo deve primeiro solicitar uma conexo com um destino, e ento usar a conexo para transmitir dados. Comunicao ponto a ponto: Cada conexo TCP tem exatamente duas extremidades. Confiabilidade completa: O TCP garante que os dados enviados atravs de uma conexo sero entregues exatamente como enviados, sem dados faltando ou fora de ordem. Comunicao Full Duplex. O TCP pode armazenar nos buffers dados que partem e que chegam em ambas as direes.

TCP: Transmission Control ProtocolMais Caractersticas...

Desligamento de conexo graciosa (Graceful Connection Shutdown): Um programa aplicativo pode abrir uma conexo, enviar quantias arbitrrias de dados e ento requisitar o fechamento da conexo (mesmo antes da chegada ao destino). O TCP garante a entrega confivel de todos os dados antes de fechar a conexo. Controle de fluxo: Transmissor no esgota a capacidade do receptor

Segmento TCP

Segmento TCPcontagem por bytes de dados (no segmentos!)

Segmento TCPURG: dados urgentes (pouco usado)contagem por bytes de dados (no segmentos!)

Segmento TCPURG: dados urgentes (pouco usado) ACK: campo de ACK vlidocontagem por bytes de dados (no segmentos!)

Segmento TCPURG: dados urgentes (pouco usado) ACK: campo de ACK vlido PSH: produz envio de dados (pouco usado)contagem por bytes de dados (no segmentos!)

Segmento TCPURG: dados urgentes (pouco usado) ACK: campo de ACK vlido PSH: produz envio de dados (pouco usado) RST, SYN, FIN: estabelec. de conexo (comandos de criao e trmino)contagem por bytes de dados (no segmentos!)

Segmento TCPURG: dados urgentes (pouco usado) ACK: campo de ACK vlido PSH: produz envio de dados (pouco usado) RST, SYN, FIN: estabelec. de conexo (comandos de criao e trmino) Internet checksum (como no UDP)contagem por bytes de dados (no segmentos!)

Segmento TCPURG: dados urgentes (pouco usado) ACK: campo de ACK vlido PSH: produz envio de dados (pouco usado) RST, SYN, FIN: estabelec. de conexo (comandos de criao e trmino) Internet checksum (como no UDP)contagem por bytes de dados (no segmentos!)

nmero de bytes receptor est pronto para aceitar

Sequenciamento de Pacotes

Um sistema de rede com chaveamento por pacotes, que pode mudar as rotas destes, pode tambm entregar pacotes fora de ordem. Para resolver este problema, os protocolos de transporte usam seqenciamento. O lado remetente inclui um nmero de seqncia em cada pacote. O lado receptor armazena o nmero de seqncia do ltimo pacote recebido em ordem, alm da lista de pacotes que chegaram fora de ordem. Quando um pacote chega, o receptor examina o nmero de seqncia para determinar como o pacote deve ser tratado.

Sequenciamento de PacotesSe o pacote chegou fora de ordem, o software de protocolo acrescenta o pacote ao buffer especfico para ordenao. Se o todos os pacotes de uma mensagem chegaram ao destino, aps a ordenao so enviados camada superior. Um hardware com mau funcionamento pode fazer com que os pacotes sejam duplicados... ...O seqenciamento resolve, tambm, o problema da duplicao de pacotes, comparando e descartando eventuais cpias.

Retransmisso

Para garantir a transferncia (isto , transferncia sem perda), o TCP usa confirmao positiva com retransmisso. Sempre que um quadro chega intacto, o TCP receptor devolve uma pequena mensagem que relata que a recepo foi bemsucedida.

A mensagem conhecida como confirmao (acknowledgment, ACK). Sempre que o remetente envia um pacote, o software de protocolo (do lado remetente) comea um temporizador.

Se uma confirmao chega antes do temporizador expirar, o protocolo cancela o temporizador. Se o temporizador expira antes de uma confirmao chegar, o software envia outra cpia do pacote e reinicia o temporizador.

Cenrio com retransmisso

Cenrio com perda do ACK

Temporizao prematura, ACKs cumulativos

RetransmissoA retransmisso no pode ter sucesso se um defeito de hardware desconectou permanentemente a rede... ... Portanto, os protocolos que retransmitem mensagens normalmente limitam o nmero de retransmisses. Quando este limite alcanado, o protocolo pra de transmitir e declara que o destino inalcanvel.

Controle de Fluxo

Os computadores no trabalham todos na mesma velocidade. O atropelamento de dados acontece quando um computador envia dados atravs de uma rede mais rapidamente do que o destino pode absorver (causando, eventualmente, perda de dados). Para isso o TCP utiliza mecanismos de controle de fluxo (flow control mechanisms). A forma mais simples de controle de fluxo um sistema em que um remetente espera aps a transmisso de cada pacote... ... Quando o receptor estiver pronto para outro pacote, o receptor envia uma mensagem de controle, normalmente uma forma de acknowledgement (reconhecimento) - uso ineficiente da Largura de Banda.

Controle de FluxoPara obter taxas altas de throughput (transferncia), os protocolos usam uma tcnica de controle de fluxo conhecida como janela deslizante (sliding window). O remetente e o receptor so programados para usar um tamanho de janela fixo (quantia mxima de dados que podem ser enviados antes de um acknowledgment chegar). Quando chega um acknowledgment, o remetente descarta a sua cpia do pacote cuja recepo foi confirmada e transmite o prximo pacote.

Controle de Fluxo

Lado receptor da conexo TCP possui um buffer de recepo:

Transmissor no deve esgotar os buffers de recepo enviando dados rpido demais

Servio de speed-matching: encontra a taxa de envio adequada taxa de vazo da aplicao receptora

Estabelecimento de ConexoAntes que o cliente e o servidor de uma aplicao que usa TCP possam se comunicar, eles devem estabelecer uma conexo. O Cliente executa uma srie de preparaes:

Alocao de buffers Escolha de uma porta de origem Escolha de um nmero de sequncia inicial

A conexo estabelecida por um processo chamado Three Way Handshake

Baseia-se na troca de trs mensagens para assegurar acordo no ambguo entre as estaes, apesar da perda de pacotes, duplicao e atraso

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Passo 2: Servidor que recebe o SYN, responde com segmento SYN/ACK Reconhece o SYN recebido Aloca buffers Especifica o nmero de seqncia inicial do servidor

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Passo 2: Servidor que recebe o SYN, responde com segmento SYN/ACK Reconhece o SYN recebido Aloca buffers Especifica o nmero de seqncia inicial do servidor

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Passo 2: Servidor que recebe o SYN, responde com segmento SYN/ACK Reconhece o SYN recebido Aloca buffers Especifica o nmero de seqncia inicial do servidor Passo 3: o sistema final cliente reconhece o SYN/ACK (enviando um ACK)

Estabelecimento de ConexoThree Way Handshake Passo 1: Cliente envia TCP SYN ao servidor Especifica nmero de seqncia inicial

Passo 2: Servidor que recebe o SYN, responde com segmento SYN/ACK Reconhece o SYN recebido Aloca buffers Especifica o nmero de seqncia inicial do servidor Passo 3: o sistema final cliente reconhece o SYN/ACK (enviando um ACK)

Estabelecimento de Conexo

TCP usa um 3-way handshake para estabelecer conexes Troca do nmero de seqncia; Assegura que ambos os ns esto cientes dos nmeros de seqncia.

Trmino de conexo TCPFechando uma conexo Passo 1: Cliente envia o segmento TCP FIN ao servidor Passo 2: Servidor que recebe FIN, responde com ACK. Fecha a conexo, envia um FIN. Passo 3: Cliente recebe FIN, responde com ACK Conexo est terminada!

Trmino de conexo TCP

Usa-se a flag FIN para fechar a conexo.

Referncias

KUROSE, James F.; ROSS, Keith W. Redes de Computadores e a Internet: uma abordagem top-down. Traduo de Arlete Simille Marques. So Paulo: Pearson Addison Wesley, 2006. Material de aula Prof. Ricardo Kleber

35