26
Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) - Paulo Roberto Freire Cunha [email protected]

Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

  • Upload
    terah

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -. Paulo Roberto Freire Cunha [email protected]. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2

- Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Paulo Roberto Freire [email protected]

Page 2: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Revisão ...

Camada de Abstração do Hardware

Interface de rede

ARP PPP

IP

UDP TCP

Interface de Sockets

Drivers

FTP

TELNET

DNS

HTTP

SMTP

SNMP

Aplicaçãodo Usuário

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

Page 3: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Camada de Transporte

Page 4: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Princípios da Camada de Transporte

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

Page 5: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Princípios da Camada de Transporte

Camada de Abstração do Hardware

Interface de rede

ARP PPP

IP

UDP TCP

Interface de Sockets

Drivers

FTP

TELNET

DNS

HTTP

SMTP

SNMP

Aplicaçãodo Usuário

CAMADA DE TRANSPORTE

Page 6: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Serviços da Camada de Transporte

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çãotransport

redeenlacefísica

aplciaçãotransport

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísicanetwork

data linkphysical

Transporte lógico fim-a-fim

Page 7: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Serviços de Transporte na Internet

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

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.

Page 8: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Multiplexação/Demultiplexação

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”

Page 9: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Multiplexação/Demultiplexação

aplicaçãotransporte

rede

M´P2

aplicaçãotransporte

rede

HtHnsegment

segmento Maplicaçãotransporte

rede

P1M

M M´P4

cabeçalhodo segmento

dado da camada de aplicação

Page 10: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Multiplexação/Demultiplexação

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

porta origem # porta dest. #

32 bits

dados

resto do cabeçalho

Formato do Segmento UDP/TCP

Page 11: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

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

Page 12: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Multiplexação/Demultiplexação

host A servidor Bporta orig.: xporta dest:23

porta orig.:23porta dest: x

telnet

Cliente WEBhost A

Cliente WEBhost C

IP orig: CIP dest: B

porta orig: xporta

dest:80

IP orig: CIP dest: B

porta orig: yport dest: 80

Servidor WEB

IP orig.: AIP Dest: B

porta orig: xporta

dest:80

ServidorWEB B

Page 13: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

UDP – User Datagram Protocol

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

Page 14: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

UDP

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

32 bits

Datagrama (max. 516 bytes)

porta orig # porta dest #

dados

length checksum

Page 15: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

UDP – exemplo 1

paulista goiana

7345 7070

8+12 crc

Hello World

7345 7070

8+12 crc

Hello World

7070 7345

8+12 crc

HELLO WORLD

7070 7345

8+12 crc

HELLO WORLD

Page 16: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

UDP – exemplo 2 [CLOCK]

paulista goiana

7345 7070

8+5 crc

CLOCK

7345 7070

8+5 crc

CLOCK

7070 7345

8+8 crc

10:45:30

7070 7345

8+8 crc

10:45:30

Page 17: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

UDP – exemplo 2 [MJVM]

paulista goiana

7345 7070

8+5 crc

MJVM

7345 7070

8+5 crc

MJVM

7070 7345

8+6 crc

304516

7070 7345

8+6 crc

304516

Page 18: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Checksum UDP

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

Objetivo: Detectar erros nos dados transmitidos

Page 19: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Checksum UDP

0110011001100110

0101010101010101

0000111100001111

0110011001100110

0101010101010101

10111011101110110000111100001111

+

+

1100101011001010

0011010100110101complemento

checksum

Page 20: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Princípios de Transferência Confiável de Dados

Page 21: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Confiabilidade das Camadas

Cam

ad

a d

eTR

AN

SPO

RTE

Cam

ad

a d

eA

PLI

CA

ÇÃ

OR

ED

E

Transmissor Receptor

Canal Confiável

Dado Dado

Serviço Confiável Fornecido

Canal NÃO-Confiável

Protocolo Confiável(emissor)

Protocolo Confiável(receptor)

Dado

udt_send()

rdt_send()

Pacote Pacote rdt_rcv()

deliver_data()Dado

Implementação do Serviço Confiável

As características do canal

Não-Confiável definem a complexidade

do protocolo confiável

Page 22: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Princípios de Transferência Confiável de Dados

Transmissorreceptor

udt_send(): chamada por rdt para transferência em um canal não-confiável

rdt_send(): chamada da aplicação

deliver_data(): chamada por rdt para enviar o dado para aplicação

Canal NÃO-Confiável

Protocolo Confiável(emissor)

Protocolo Confiável(receptor)

Dado

udt_send()

rdt_send()

Pacote Pacote rdt_rcv()

deliver_data()Dado

rdt_rcv(): chamado quando o pacote chega ao receptor

Page 23: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

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

Page 24: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

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

Page 25: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Protocolos com Pipeline

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

Page 26: Redes de Computadores 2 - Camada de Transporte (Princípios de Funcionamento & UDP & TCP) -

Redes de Computadores 2 (baseado nos slides do Kurose)

Protocolos com Pipeline

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