260 likes | 413 Views
Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -. Paulo Roberto Freire Cunha prfc@cin.ufpe.br. T E L N E T. H T T P. S M T P. S N M P. F T P. Aplicação do Usuário. UDP. TCP. IP. ARP. PPP. Interface de rede.
E N D
Redes de Computadores 2- Camada de Transporte (Princípios de Funcionamento & UDP & TCP) - Paulo Roberto Freire Cunha prfc@cin.ufpe.br
T E L N E T H T T P S M T P S N M P F T P Aplicação do Usuário UDP TCP IP ARP PPP Interface de rede Camada de Abstração do Hardware Revisão ... • processos se comunicam enviando/ recebendo mensagens através de sockets (API) • socket é a interface entre o processo da aplicação e a camada de transporte • um processo identifica o outro processo que ele quer se comunicar através de um endereço IP e uma porta D N S Interface de Sockets Drivers Redes de Computadores 2 (baseado nos slides do Kurose)
funções básicas multiplexação/ demultiplexação transporte de dados confiável controle de fluxo controle de congestionamento Visão Geral serviços da camada de transporte transporte sem conexão: UDP transporte de dados confiável transporte orientado a conexão: TCP controle de congestionamento no TCP Princípios da Camada de Transporte Redes de Computadores 2 (baseado nos slides do Kurose)
T E L N E T H T T P S M T P S N M P F T P Aplicação do Usuário UDP TCP IP ARP PPP Interface de rede Camada de Abstração do Hardware Princípios da Camada de Transporte D N S Interface de Sockets CAMADA DE TRANSPORTE Drivers Redes de Computadores 2 (baseado nos slides do Kurose)
fornece comunicação entre aplicações que executam em hosts separados os serviços da camada de rede transferem dados entre “sistemas finais” os serviços da camada de transporte transferem dados entre “processos” aplicação transport rede enlace física aplciação transport rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física network data link physical Transporte lógico fim-a-fim Serviços da Camada de Transporte Redes de Computadores 2 (baseado nos slides do Kurose)
TCP confiável unicast ordenado estabelecimento da conexão controle de congestionamento controle de fluxo UDP não-confiável unicast / multicast não-ordenado Serviços de Transporte na Internet Não tem um serviço Multicast confiável, em tempo real ou com garantia de largura banda O projeto de uma aplicação deve definir que serviço deverá ser usado. Redes de Computadores 2 (baseado nos slides do Kurose)
demultiplexação envia segmentos (unidade de dados trocada entre entidades da camada de transporte) para a aplicação correta “executada no receptor” multiplexação coleta dados de múltiplos processos e coloca um cabeçalho “executada no transmissor” Multiplexação/Demultiplexação Redes de Computadores 2 (baseado nos slides do Kurose)
M´ M M M´ aplicação transporte rede aplicação transporte rede aplicação transporte rede H n Multiplexação/Demultiplexação dado da camada de aplicação P4 cabeçalho do segmento P1 P2 segmento H t M segment Redes de Computadores 2 (baseado nos slides do Kurose)
32 bits porta origem # porta dest. # resto do cabeçalho dados Multiplexação/Demultiplexação Formato do Segmento UDP/TCP • baseadas no IP e no número das portas do transmissor receptor • cada segmento tem o número da porta da origem e do destino • portas específicas das aplicações Redes de Computadores 2 (baseado nos slides do Kurose)
Multiplexação/Demultiplexação • são reservados 16 bits para as portas (65536 portas) • 0-1023 portas reservadas (RFC 1700) • ftp (20,21) • http (80) • smtp (25) • telnet (23) • > 1023 livres Redes de Computadores 2 (baseado nos slides do Kurose)
IP orig: C IP dest: B porta orig: x porta dest:80 IP orig: C IP dest: B porta orig: y port dest: 80 IP orig.: A IP Dest: B porta orig: x porta dest:80 porta orig.:23 porta dest: x Multiplexação/Demultiplexação Cliente WEB host C porta orig.: x porta dest:23 servidor B host A telnet Servidor WEB B Cliente WEB host A Servidor WEB Redes de Computadores 2 (baseado nos slides do Kurose)
RFC 768 tipo de serviço fornecido à camada de aplicação “melhor esforço” perda de pacotes pacotes fora de ordem “sem-conexão” não há um estabelecimento inicial (handshake) da conexão cada pacote é tratado de forma independente benefícios do uso do UDP o handshake (como no TCP) pode causar atrasos simplicidade (não mantém o estado da conexão no cliente/servidor) cabeçalho de dados pequeno (TCP –20) ausência de controle de congestionamento UDP – User Datagram Protocol Redes de Computadores 2 (baseado nos slides do Kurose)
aplicações que usam o UDP multimídia tolerante a perdas sensível a taxa de transmissão telefonia na Internet protocolos de aplicação que usam UDP DNS SNMP RIP porta orig # porta dest # checksum length dados UDP 32 bits Datagrama (max. 516 bytes) Redes de Computadores 2 (baseado nos slides do Kurose)
7345 7345 7070 7070 7070 7070 7345 7345 8+12 8+12 8+12 8+12 crc crc crc crc HELLO WORLD HELLO WORLD Hello World Hello World UDP – exemplo 1 paulista goiana Redes de Computadores 2 (baseado nos slides do Kurose)
7345 7345 7070 7070 7070 7070 7345 7345 8+5 8+8 8+5 8+8 crc crc crc crc 10:45:30 10:45:30 CLOCK CLOCK UDP – exemplo 2 [CLOCK] paulista goiana Redes de Computadores 2 (baseado nos slides do Kurose)
7345 7345 7070 7070 7070 7070 7345 7345 8+5 8+6 8+5 8+6 crc crc crc crc 304516 304516 MJVM MJVM UDP – exemplo 2 [MJVM] paulista goiana Redes de Computadores 2 (baseado nos slides do Kurose)
Transmissor calcula o checksum trata todo o datagrama como seqüência de 16 bits soma todas as seqüência calcula o complemento Receptor soma todas as seqüências de 16 bits do datagrama se a soma for 11111111, então OK se a soma contiver um 0, então ERRO Checksum UDP Objetivo: Detectar erros nos dados transmitidos Redes de Computadores 2 (baseado nos slides do Kurose)
Checksum UDP 0110011001100110 0101010101010101 0000111100001111 0110011001100110 + 0101010101010101 1011101110111011 + 0000111100001111 1100101011001010 complemento 0011010100110101 checksum Redes de Computadores 2 (baseado nos slides do Kurose)
Serviço Confiável Fornecido • Implementação do Serviço Confiável Dado Dado Transmissor Receptor rdt_send() Dado Dado deliver_data() Canal Confiável Protocolo Confiável (receptor) Protocolo Confiável (emissor) udt_send() Pacote Pacote rdt_rcv() Canal NÃO-Confiável Confiabilidade das Camadas Camada de APLICAÇÃO As características do canal Não-Confiável definem a complexidade do protocolo confiável Camada de TRANSPORTE REDE Redes de Computadores 2 (baseado nos slides do Kurose)
deliver_data(): chamada por rdt para enviar o dado para aplicação rdt_send():chamada da aplicação rdt_send() Dado Dado deliver_data() udt_send() Pacote Pacote rdt_rcv() Canal NÃO-Confiável Protocolo Confiável (receptor) Protocolo Confiável (emissor) udt_send(): chamada por rdt para transferência em um canal não-confiável rdt_rcv(): chamado quando o pacote chega ao receptor Princípios de Transferência Confiável de Dados receptor Transmissor Redes de Computadores 2 (baseado nos slides do Kurose)
Protocolos para Transmissão Confiável • rdt 1.0 • canal confiável • rdt 2.0 • canal não-confiável (com erros) • perda de bits • uso de ACK/NACK • problema: ACK/NACK corrompidos • rdt 2.1 • canal com erros • numeração dos pacotes (0 ou 1) • pacotes são retransmitidos se o ACK/NACK for corrompido • duplicatas são eliminadas • problema: o receptor não sabe se o ACK/NACK foi recebido Redes de Computadores 2 (baseado nos slides do Kurose)
Protocolos para Transmissão Confiável • rdt 2.2 • canal com erros • não usa o NACK • o ACK segue com o número do último pacote transmitido • rdt 3.0 • canal com erro e perdas • ack e # do pacote ajuda, mas não é suficiente • o emissor espera um certo tempo e retransmite o pacote Redes de Computadores 2 (baseado nos slides do Kurose)
vários pacotes são transmitidos antes do receptor receber um ack de que a transmissão foi realizada com sucesso exemplos de protocolos Go-back-N Retransmissão seletiva Protocolos com Pipeline Redes de Computadores 2 (baseado nos slides do Kurose)
Go-back-N usa janelas pacotes com número de seqüência ACK(n): reconhece os pacotes até n temporizador para cada pacote se acontecer um timeout(n), o pacote n e todos os pacotes com número de seqüência maiores são retransmitidos Retransmissão seletiva todos os pacotes são reconhecidos individualmente um temporizador é mantido para cada pacote não reconhecido apenas os pacotes não reconhecidos são retransmitidos Protocolos com Pipeline Redes de Computadores 2 (baseado nos slides do Kurose)