A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Curso Superior em Redes de Computadores Camada de Transporte Prof. Sales Filho.

Apresentações semelhantes


Apresentação em tema: "Curso Superior em Redes de Computadores Camada de Transporte Prof. Sales Filho."— Transcrição da apresentação:

1 Curso Superior em Redes de Computadores Camada de Transporte Prof. Sales Filho

2 2 Objetivo Apresentar as características da camada de transporte da arquitetura TCP/IP Apresentar os serviços fornecidos pela camada de transporte Estudar os protocolos da camada de transporte Serviço de datagramas Serviço de circuito virtual

3 3 Camada de transporte Objetivo Prover a comunicação fim-a-fim entre os processos de aplicação Funcionalidades Serviço de datagrama Serviço de circuito virtual Identificação de processos

4 4 Serviço de datagrama Característica Serviço não confiável Não garante a entrega dos datagramas Pode perder e retardar datagramas Provê apenas a detecção de erros, garantindo a integridade dos dados Serviço sem conexão Datagramas são individuais e independentes Seqüência dos datagramas não é assegurada

5 5 Serviço de circuito virtual Característica Serviço orientado a fluxo Divide o fluxo de dados eem seguimentos Serviço confiável Garante a entrega do fluxo de dados na seqüência correta e sem erros Prevê controle de erro, seqüência e fluxo Serviço orientado à conexão Negocia parâmetros operacionais na abertura da conexão Conexões full-duplex

6 6 Identificação de processos Portas Número inteiro positivo que representa um ponto de comunicação Processos são associados à portas Par (endereço IP, Porta) identifica unicamente cada ponto de comunicação P1 Porta 25 P2 Porta 53 P2 Porta 161Porta 162 Aplicação Transporte

7 7 Composição Protocolos UDP (User Datagram Protocol)‏ Provê o serviço de datagramas não confiável e sem conexão Pode ser visto como uma extensão do protocolo IP que entrega datagramas entre processos TCP (Transfer Control Protocol)‏ Provê o serviço de circuito virtual confiável e orientado à conexão

8 8 Protocolo UDP Fundamentos Define a unidade de dados do serviço de datagramas, denominada datagrama UDP Especifica o formato e a função dos campos Multiplexa mensagens geradas nos processos na camada de rede Encapsula datagramas UDP em datagramas IP Demultiplexa datagramas UDP para os respectivos processos destino Extrai mensagens dos datagramas UDP

9 9 Formato do datagrama Cada datagrama é tratado de forma individual e independente Pode ser enviados por diferentes rotas Protocolo UDP Source portDestination port LengthChecksum Data 0 1631

10 10 Campos do datagrama Length Tamanho total do datagrama em bytes (cabeçalho + dados)‏ Checksum Assegura a integridade do datagrama Inclui o cabeçalho e os dados Detecção de erros é opcional Data Dados do datagrama Protocolo UDP Source portDestination port LengthChecksum Data

11 11 Cálculo do Checksum Considera um pseudocabeçalho Assegura que a entrega é realizada à estação e ao processo destino Pode incluir um byte pad (0)‏ Torna par o tamanho do datagrama Não são transmitidos com o datagrama Protocolo UDP Destination IP address 0 1631 Source IP address 00000000 8 ProtocolLength 17

12 12 Protocolo TCP Fundamentos Define a unidade de dados do serviço de circuito virtual, denominada seguimento TCP Especifica o formato e a função dos campos Multiplexa mensagens geradas pelos processos no serviço da camada de rede Encapsula segmentos em datagramas IP Demultiplexa segmentos para os respectivos processos destino Extrai mensagens dos segmentos

13 13 Protocolo TCP Fundamentos Adota uma abordagem baseada em fluxo de dados (data stream)‏ Trata o fluxo de dados como uma cadeia contínua de bytes Decide como agrupar bytes em segmentos Adota uma abordagem orientada à conexão full- duplex Estabelecimento da conexão Transferência de dados Fechamento da conexão

14 14 Protocolo TCP Fundamentos Define mecanismos integrados de controle de erro e seqüência Asseguram a entrega do fluxo de dados na seqüência correta e sem erros Define mecanismo de controle de fluxo Regula e compatibiliza a taxa de transmissão das unidades envolvidas Evita descarte de segmentos por falta de recursos da estação destino

15 15 Protocolo TCP Formato do segmento TCP Source portDestination port Hlen Checksum Data 0 1631 Sequence number Acknowledgement number ReservedCode bitsWindow Urgent point OptionsPad 410 24

16 16 Campos do segmento Hlen Tamanho do cabeçalho em unidades de 4 bytes Reserved Reservado para uso futuro (Não utilizado)‏ Checksum Assegura a integridade do segmento Considera um pseudocabeçalho e pode incluir um pad (0)‏ Protocolo TCP

17 17 Campos do segmento Code bits Indica propósito e conteúdo do segmento URG: Dados urgentes ACK: reconhecimento PSH: mecanismo de push RST: abordo de conexão (reset)‏ SYN: Abertura de conexão FIN: fechamento de conexão Protocolo TCP Code bitsURG 0 5 ACKPSHRSTSYNFIN 012345

18 18 Campos do segmento Options Lista variável de informações opcionais MSS – Maximum Segment Size Torna o tamanho do cabeçalho variável Padding Bits 0 que tornam o segmento múltiplo de 32 bits Data Dados do segmento Protocolo TCP

19 19 Portas Source port Porta associada ao processo de origem Destination port Porta associada ao processo de destino Endpoint Definido pelo par (Endereço IP, porta)‏ Identifica de forma única cada porta ou ponto de comunicação na inter-rede Também conhecido como Socket Protocolo TCP

20 20 Conexão Cada conexão é identificada por um par de endpoints Também conhecida como Socket pair Várias conexões por estação Protocolo TCP P1P2P3P4 172.16.1.5192.168.10.110.1.1.1 Porta 1800Porta 25Porta 80Porta 5000 (172.16.1.5, 5000) e (192.168.10.1, 80) (192.168.10.1, 80) e (10.1.1.1, 1800)‏

21 21 Conexão Cada endpoint local pode participar de diversas conexões com endpoints remotos Compartilhamento de endpoints O Sistema Operacional deve garantir que o par de endpoint da conexão é único Protocolo TCP P1P2P5P4 172.16.1.5192.168.10.110.1.1.1 Porta 2000Porta 80 Porta 5000 (172.16.1.5, 5000) e (192.168.10.1, 80) (192.168.10.1, 80) e (10.1.1.1, 2000)‏

22 22 Demultiplexação de mensagens Segmentos recebidos são associados às conexões, não apenas as portas Avalia o par de endpoints da conexão Portas origem e destino são obtidas do segmento recebido Endereço IP origem e destino são obtidos do datagrama IP Cada conexão possui um buffer de transmissão e um Buffer de recepção em cada extremidade Protocolo TCP

23 23 Controle de seqüência Fluxo de dados é tratado como uma seqüência de bytes Cada byte possui um número de seqüência Numeração nem sempre começa em 0 (zero)‏ Negociado no estabelecimento da conexão Campo Sequence number Indica o número de seqüência do primeiro byte de dados contido no seguimento Protocolo TCP 150151... 198199 Segmento 150 200201... 348349 Segmento 200 350351... 448449 Segmento 350

24 24 Controle de seqüência Protocolo TCP Números de seqüência:  Número do primeiro byte nos segmentos de dados ACKs:  Número do próximo byte esperado do outro lado  ACK cumulativo P.: Como o receptor trata segmentos fora de ordem?  A especificação do TCP não define, fica a critério do implementador

25 25 Controle de erros Reconhecimento positivo Destino retorna uma mensagem indicando o correto recebimento do segmento Reconhecimento pode pegar carona no segmento de dados do fluxo inverso Reconhecimento cumulativo Diversos segmentos consecutivos podem ser reconhecidos em uma única mensagem Protocolo TCP 150151... 198199 Segmento 150 200201... 348349 Segmento 200 350351... 448449 Segmento 350

26 26 Controle de erros Acknowledgment number Indica o número de sequência do próximo byte que espera receber Indica o correto recebimento dos bytes com número de seqüência anterior Bit ACK do Code Bits deve ser ativado Protocolo TCP 150151... 198199 Seq. number 150 200201... 348349 Seq. number 200 350351... 448449 ACK number 200 ACK number 350 Seq. number 350 ACK number 450

27 27 Controle de erros Realizado através de Retransmissão Origem adota um temporizador para cada segmento enviado Segmento é retransmitido quando a origem não recebe o reconhecimento (ack) antes de expirar o temporizador Temporizador é reativado em cada retransmissão Protocolo TCP

28 28 Controle de erros - Cenários Protocolo TCP Cenário com perda do ACK Temporização prematura, ACKs cumulativos

29 29 Controle de erros - Cenários Protocolo TCP Cenário de ACK cumulativo

30 30 Controle de fluxo Objetivo Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais Implementação Janela deslizante Entidades negociam o número de bytes adicionais que podem ser recebidos a partir do último reconhecimento Destino define o tamanho de sua janela de recepção em cada segmento Origem atualiza o tamanho de sua janela de transmissão a cada reconhecimento Reconhecimento deslocam a janela de transmissão da origem para o primeiro byte sem reconhecimento Protocolo TCP

31 31  lado receptor da conexão TCP possui um buffer de recepção:  Serviço de speed-matching: encontra a taxa de envio adequada à taxa de vazão da aplicação receptora  Processos de aplicação podem ser lentos para ler o buffer Controle de fluxo Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais Protocolo TCP - Controle de fluxo

32 32 (suponha que o receptor TCP descarte segmentos fora de ordem) ‏  Espaço disponível no buffer = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead]  Receptor informa a área disponível incluindo valor RcvWindow nos segmentos  Transmissor limita os dados não confimados ao RcvWindow  Garantia contra overflow no buffer do receptor Protocolo TCP - Controle de fluxo

33 33 Controle de fluxo Campo Window Sinaliza o tamanho da janela de recepção da entidade em cada segmento enviado Applet on-line http://wps.aw.com/br_kurose_redes_3/40/102 71/2629597.cw/index.html http://wps.aw.com/br_kurose_redes_3/40/102 71/2629597.cw/index.html Protocolo TCP

34 34 Protocolo TCP Processo de estabelecimento de conexões

35 35 Estabelecimento de conexões Three way handshake Negocia e sincroniza o valor inicial dos números de seqüência em ambas as direções Baseado na arquitetura cliente-servidor O servidor deve está com a porta aberta em estado de escuta (Listening)‏ Protocolo TCP

36 36 Protocolo TCP Estabelecimento de conexões

37 37 Transmissão de dados Entrega de dados “fora-de-banda” Campo Urgent Point o transmissor transmite o dado urgente na área de dados e seta o bit URG (campo Codebits), indicando a posição no segmento onde o dado urgente terminou O receptor deve notificar a aplicação sobre a chegada do dado urgente tão logo quanto possível Mecanismo de Push Aplicação avisa ao TCP para enviar o dado imediatamente Força a geração de um segmento com os dados já presentes no Buffer Não aguarda o preenchimento do Buffer Segmentos gerados pelo mecanismo de PUSH são marcados com o flag PSH no campo codebits Protocolo TCP

38 38 Protocolo TCP Fechamento de conexão (Liberação ordenada)‏ Ocorre separadamente em cada direção da conexão

39 39 Protocolo TCP Fechamento de conexão (Término abrupto)‏

40 40 Estados do clienteEstados do servidor Protocolo TCP Estados das conexões

41 41 Protocolo TCP Atividade prática Utilizando o simulador, monte a uma estrutura contendo um servidor web e dois clientes, conforme exemplo abaixo Realize as configurações de endereçamento adequadas para a perfeita comunicação entre os clientes e o servidor Servidor Web (192.168.0.1, 80)‏ Cliente Web (192.168.0.100, X)‏

42 42 Protocolo TCP Atividade prática Configure o servidor web conforme exemplo abaixo A página index.html será carregada automaticamente no web browser do cliente quando não especificada nenhum outro parâmetro.

43 43 Protocolo TCP Atividade prática Teste o acesso utilizando o web browser do cliente PC0 Conteúdo da página “index.html” contida no servidor Observe que não foi preciso colocar o nome da página

44 44 Protocolo TCP Atividade prática SIMULADA No modo de simulação, configure os filtros de protocolos para TCP, ICMP, HTTP Inicie a simulação, o objetivo é identifica hree way handshake durante o estabelecimento e fechamento da conexão, bem como a análise dos números de seqüência, bits SYN, ACK, FIN contidos nos segmentos TCP

45 45 Protocolo TCP Atividades de laboratório utilizando o analisador de protocolos wireshark, antigo projeto ethereal. Obtenha e instale o arquivo instalador do wireshark em: http://www.cefetrn.br/~salesfilho/files/wireshark-setup-1.0.5.exe Obtenha o arquivo de captura para análise: http://www.cefetrn.br/~salesfilho/files/Trace_TCP_HTTP.pcap Abra o arquivo no Wireshark e responda as perguntas que se seguem

46 46 Protocolo TCP Tela do Wireshark Pacotes capturados Detalhes das camadas de protocolos Conteúdo em formato bruto

47 47 Protocolo TCP ATIVIDADE 1) Qual o IP da entidade servidora e da entidade cliente 2) Em quais linhas da captura estão os fragmentos TCP que estabelecem a conexão ? (Three way handshake) 3) Identifique os números de seqüência da entidade cliente, explicitando seus valores. 4) Por que o número de seqüência do cliente varia MUITO menos que o número de seqüência do servidor? 5) Qual é a porta de origem e de destino da conexão visto do lado do servidor ? 6) Identifique os fragmentos em que é encerrada a conexão. 7) Qual é o protocolo (e versão) de camada de aplicação utilizado na comunicação ? 8) Reproduza a captura baixando o seguinte arquivo: http://www.cefetrn.br/~salesfilho/files/rfc793.txt

48 48 Referências Comer, Douglas E., Interligação de Redes Com Tcp/ip James F. Kurose, Redes de Computadores e a Internet Escola Superior de Redes, Arquitetura e Protocolos de Redes TCP/IP


Carregar ppt "Curso Superior em Redes de Computadores Camada de Transporte Prof. Sales Filho."

Apresentações semelhantes


Anúncios Google