Anda di halaman 1dari 45

Faculdade de Computao

Redes de Computadores

CAMADA DE TRANSPORTE
Hana Karina S. Rubinsztejn hana@facom.ufms.br

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo

Requisitos de Aplicaes RPC

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo

Requisitos de Aplicaes RPC

Camada de Transporte
Arquitetura TCP/IP
APLICAO TRANSPORTE REDE ENLACE/FSICA

Responsvel pelo transporte dos dados do servio de transporte

Caractersticas
Comunicao fim-a-fim entre aplicaes
Canal virtual de comunicao entre aplicaes em computadores distintos

Rede bsica (IP) opera pelo melhor esforo (besteffort)


Pacotes perdidos pede mensagens novamente entrega cpias duplicadas de determinada mensagem limita as mensagens a algum tamanho finito entrega mensagens aps um atraso arbitrariamente longo

Caractersticas
Servios fim-a-fim usuais
garante entrega da mensagem entrega mensagens na mesma ordem em que foram enviadas entrega no mximo uma cpia de cada mensagem aceita mensagens arbitrariamente grandes deteco e correo de erro fim-a-fim aceita sincronismo entre fonte e destino permite que o receptor controle o fluxo do emissor admite mltiplos processos de aplicao em cada host

Caractersticas : Servio fim-a-fim


Canais so implementados em software, j que o subsistema de rede no prov facilidades Mensagens TCP e UDP so encapsuladas em datagramas (pacotes) IP

Caractersticas: Servio fim-a-fim


Canais so implementados em software, j que o subsistema de rede no prov facilidades Mensagens TCP e UDP so encapsuladas em datagramas (pacotes) IP

Caractersticas
Mecanismos de identificao de processos O nvel de transporte oferece:
servios sem conexo (datagramas) servios orientados conexo (circuitos virtuais)
Controle do fluxo de dados fim-a-fim Controle de erro deteco e correo de erro fim-a-fim Controle de sequncia (sequenciao) Diviso de mensagens em segmentos

Caractersticas
servios sem conexo (datagramas)
Ex: UDP mapeia os pedidos de transmisso para servios oferecidos pela camada de rede Apresenta baixo overhead No implementa nenhum mecanismo de confiabilidade
Deteco de erro Controle de fluxo Sequenciao

Caractersticas
Servios orientados conexo (circuitos virtuais)
Ex: TCP Etapas:
Estabelecimento da conexo Transferncia de dados Encerramento da conexo

Caractersticas
Etapas dos Servios orientados conexo
estabelecimento da conexo
Three-Way Handshake Define o tamanho da janela de transmisso Define nmero de seqncia

Caractersticas
Etapas dos Servios orientados conexo
transferncia de dados
Deteco e correo de erros Sequenciao controle de fluxo

Caractersticas
Etapas dos Servios orientados conexo
Encerramento da conexo
Um problema presente evitar que dados sejam perdidos depois que um dos lados encerrou a conexo Uma entidade de transporte ao pedir uma desconexo deve aguardar por um tempo antes de fechar a conexo, podendo receber dados durante esse perodo Uma conexo termina apenas depois de decorrido um certo tempo sem que chegue nenhuma T-PDU (unidade de dados do protocolo de transporte) Dessa forma, se um lado desconectar, o outro vai notar a falta de atividade e tambm se desconectar

Caractersticas
Etapas dos Servios orientados conexo
Encerramento da conexo
Para evitar que uma conexo seja desfeita, os participantes devem assegurar o envio de T-PDUs peridicas informando que esto vivos, quando no tm dados para transmitir; Caso muitas T-PDUs se percam durante uma conexo, um dos lados pode fechar a conexo indevidamente;

Caractersticas
Protocolos de Transporte
Mesmas tcnicas do nvel de enlace agora aplicadas fim-a-fim Controle de fluxo
Stop-and-Wait (bit alternado) Sliding window (Janela deslizante)

Controle de erro
ARQ Automatic Repeat Request (Stop and Wait = bit alternado na camada de enlace) janela n com retransmisso integral - Go back N janela n com retransmisso seletiva - Selective Repeat

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo

Requisitos de Aplicaes RPC

Portas
Identificam os processos origem e destino Viabilizam a comunicao fim-a-fim Permite envio e recepo de datagramas de forma independente

Portas
Como o protocolo de transporte identifica para qual processo ele tem que entregar as informaes na camada de aplicao?
Atravs das portas
Porta 1 Porta 2 Porta n

Nvel de Transporte

Nvel de Rede

Portas
SO oferece interface de acesso Pressupe buffers de recepo e transmisso

Comunicao Cliente-Servidor
Porta Origem Porta Destino Dados

Outlook Internet Explorer 1024 1025

Porta bem conhecida

Servidor WWW Servidor de email 80 25

Porta aleatria

Portas
Exemplo: Protocolo TCP ou UDP
Portas so nmeros inteiros de 16 bits Padronizao da IANA (Internet Assigned Number Authority) A IAB (Internet Activity Board) define o nmero da porta que cada servio da Internet deve estar associado 0 1023 1024 PORTAS UTILIZADAS POR CLIENTES E SERVIOS NO PADRONIZADOS PORTAS RESERVADAS PARA SERVIOS PADRONIZADOS

65535

Portas
Servidores tm portas bem conhecidas
/etc/services (linux), \win*\services (win*)

Portas
Processo Processo Processo Processo

APLICAO
PORTA PORTA

APLICAO
PORTA PORTA

TRANSPORTE IP REDE MAC ENLACE/FSICA

TRANSPORTE IP REDE MAC

TRANSPORTE IP

ENLACE/FSICA

REDE

Portas
Aplicao

Aplicao

Definio de portas

SMTP TCP

FTP
Port

DNS UDP
Protocol

NFS

Transporte

Rede Fsica

IP
Endereo IP Placa de Rede / Fax Modem

Portas
Aplicao

Aplicao

Definio de portas

SMTP TCP

FTP
Port

DNS UDP
Protocol

NFS

Transporte

Pergunta:
Como decidido qual protocolo Rede de transporte uma aplicao deve utilizar?? Fsica

IP
Endereo IP Placa de Rede / Fax Modem

Comunicao Cliente-Servidor
Porta Origem Porta Destino Dados

Como definida/atribuda uma porta para uma aplicao? Porta bem conhecida Internet Explorer 1024 1025 Porta aleatria Servidor WWW Servidor de email 80 25

Outlook

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo

Requisitos de Aplicaes RPC

Protocolos
UDP (User Datagram Protocol):
Servio no orientado a conexo Baixo overhead No confivel
Deteco de erro opcional Sem controle de seqncia Nenhum controle de fluxo

Extremidades identificadas por porta para multiplexao

TCP (Transmission Control Protocol):


Servio orientado a conexo Confivel Deteco e correo de erros Controle de fluxo fim-a-fim ...

UDP User Datagram Protocol


Quando Utilizar o UDP?
Aplicaes que implementam mecanismo de entrega confivel Pequena quantidade de dados a transmitir, considerando que o tempo para estabelecer a conexo maior do que o tempo para transmitir os dados; Servios em que pequenas pores de informaes podem ser perdidas
Ex.: Transmisso de vdeo, voz...

UDP
Formato do Datagrama UDP
Source/Destination Port:
Portas usadas pelos processos

Length:
Tamanho do datagrama (octetos)

0 PortaOrg Tamanho

16 PortaDest Checksum Dados

31

Checksum:

Verificao de erro no datagrama (opcional). Normalmente este no implementado; cabealho UDP + pseudo-cabealho + dados

Data:
Dados do usurio

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo

Requisitos de Aplicaes RPC

TCP
Caractersticas:
Baseado em Stream:
Seqncia de bytes no estruturada

Conexo com Circuito Virtual (Orientado Conexo):


Estabelecimento Transferncia de dados Encerramento de conexes

Confivel (deteco e correo de erros) Buffers:


Buffer de retransmisso com controle automtico de envio

Controle de fluxo por janela deslizante: evita que emissor ultrapasse a capacidade do receptor Controle de congestionamento: evita que o emissor inunde a rede

TCP
Segmentos:
TCP manipula o stream de dados como uma seqncia de octetos divididos em segmentos Cada segmento encapsulado dentro de um datagrama IP

Nmeros de Seqncia:
Segmentos no stream de dados so numerados seqencialmente;
Processo da aplicao Escreve bytes TCP
Buffer envio

Processo da aplicao L bytes TCP


Buffer recepo

Segmento

Segmento

Segmento

Transmite segmentos

Enlace de dados versus transporte


Potencialmente conecta muitos hosts diferentes
precisa de estabelecimento e trmino explcitos para a conexo

RTT potencialmente diferente


precisa de mecanismo de timeout adaptvel

Retardo potencialmente longo na rede


precisa estar preparado para chegada de pacotes muito antigos

Capacidade potencialmente diferente no destino


precisa acomodar capacidade diferente do n

Capacidade de rede potencialmente diferente


precisa estar preparado para congestionamento na rede

TCP
Confiabilidade:
Implementa confiabilidade atravs de reconhecimento positivo e retransmisso (caso ocorra erro/falha) Utiliza Piggybacking no reconhecimento Confirmao enviada junto com a parte de dados Retransmisso baseada em timeout

TCP
O TCP ao transmitir os dados de um segmento
Guarda uma cpia na fila de retransmisso Aguarda a chegada de um reconhecimento Se timeout estourar, o segmento da fila de retransmisso enviado

TCP

Host A

Send Seg 1 Start Timer

Host B

Timer Expires Retransmit Seg 1 Start Timer Receive ACK 1 Cancel Timer

Receive Seg 1 Send ACK 1

TCP
Sliding Window:
Permite o transmissor enviar mltiplos segmentos antes de receber reconhecimento Eficincia de transmisso e controle de fluxo dinmico
informado junto com o reconhecimento o nmero de segmentos que o receptor tem capacidade de receber.

1 2 1 2

3 4 5 3 4 5

6 7 8 6 7 8

9 10 ... 9 10 ...

TCP
Ex. com Janela de transmisso = 3
Host A Send Seg 1 Send Seg 2 Host B Receive Seg 1 Send ACK 1 Receive Seg 2 Send ACK 2 Receive Seg 3 Send ACK 3 Receive Seg 4

Send Seg 3 Receive ACK 1 Send Seg 4 Receive ACK 2 Send Seg 5 Receive ACK 3

TCP
0 4 10 Source Port 16 Destination Port 31

Sequence Number Ack Number Hlen


Reserved Code Bits

Window Advertisement Urgent Pointer Padding

Checksum Options (if any) Data ...

TCP
Campos do Segmento:
Source/Destination Port:
Identificam os processos origem e destino da conexo

Sequence Number:
Posio/Nmero do segmento dentro do stream de dados

Ack Number:
Reconhecimento (ACK) - nmero do prx byte que o receptor espera receber Pacote que vai em um sentido confirma ltimo pacote recebido no sentido contrrio (piggybacking)

TCP

TCP
Campos do Segmento:
Hlen:
Tamanho do cabealho (unidade: 4 octetos)

Code Bits:
URG: Campo Urgent Pointer vlido ACK: Confirmao do pedido de conexo PSH: Segmento requer entrega imediata (push) RST: Reseta a conexo trmino devido a erro SYN: Estabelecimento de conexo
sincroniza nmeros de seqncia

FIN: Origem finalizou seu stream de bytes. Encerramento da Conexo.

TCP
Campos do Segmento:
Window Advertisement:
Especifica o tamanho da janela
Possibilita controle de fluxo Evita a sobre-escrita de buffers Informa o tamanho da janela disponvel no receptor Transmissor no pode enviar dados alm do que o receptor pode receber

Checksum:
Verificao de erro no segmento

Urgent Pointer:
Posio dos dados urgente no segmento (se existirem)

TCP
Campos do Segmento:
Options:
Tamanho de Segmento Mximo (MSS)
Pacote de pesquisa pelo MSS Visa evitar fragmentao IP

Fator de escala do tamanho da janela


Permite janelas maiores que 64KB

Timestamp
Permite reconhecer pacotes que tenham se extraviado pela rede durante conexes muito rpidas

Encontradas em quase todas as implementaes modernas


Essenciais para garantir desempenho nas redes de alta capacidade (LFNs)

TCP: conexo com trs fases


Estabelecimento
TCP requer que aplicaes reconheam a nova conexo como nica e inconfundvel Pacotes de conexes anteriores no podem ser tomados como pacotes vlidos

Transferncia de dados
Comunicao full-duplex Interface de servio uma seqncia de bytes

Trmino da conexo
TCP garante a entrega de todos os dados antes de fechar uma conexo a pedido da aplicao

Fases representadas no diagrama de estados TCP

TCP: controle de conexo


Three-way Handshake

Nmero de seqncia, Tamanho mximo de segmento suportado (MSS), dentre outros.


SYN=1 e ACK=0

192.168.75.1

192.168.75.2

TCP
Three-way Handshake

Sequence Number, Tamanho mximo de segmento suportado (MSS)


SYN=1 e ACK=1

192.168.75.1

192.168.75.2

TCP
Three-way Handshake

Confirmao do estabelecimento da conexo


ACK=1, DATA

192.168.75.1

192.168.75.2

TCP
Three-way Handshake
Aps estabelecer a conexo, todos os segmentos de dados trocados entre os hosts envolvidos tm o bit ACK = 1
Conexo estabelecida

192.168.75.1

192.168.75.2

TCP
Three-way Handshake

Host A

SYN seq=x

Host B SYN seq=x SYN/ACK seq=y ACK=x

SYN/ACK

seq=y ACK=x

ACK/DATA seq=x+1 ACK=y seq=x+1 ACK=y ACK/DATA

TCP
Flag ACK
Uma conexo TCP sempre se inicia com o cliente enviando um pacote com o flag SYN = 1 e ACK= 0.
SYN = 1 e ACK=0

SYN = 1 e ACK=1
ACK=1 ACK=1

...
tempo tempo

TCP
Trmino da conexo
Host A FIN seq=x FIN seq=x ACK=x DATA DATA ACK x FIN seq=y ACK=x FIN seq=y ACK=x ACK=y ACK=y Host B

TCP: Diagrama de Estados


Arcos = evento/ao

TCP: Diagrama de Estados - Cliente

TCP: Diagrama de Estados Servidor

TCP: Portas, Conexes e Endpoints


TCP utiliza o conceito de conexo para identificar os dois pontos envolvidos na comunicao
Terminaes da conexes = endpoints

Um endpoint um par de inteiros da forma:


Host , Port

A conexo identificada por um par de endpoints


(128.9.0.32, 1184) (128.10.2.3, 25)

Maximum Segment Size (MSS)


O TCP tenta evitar a fragmentao implementada pelo protocolo IP na camada de rede atravs do MSS; O MSS definido pelo TCP durante o Three-wayhandshake; O MSS representa o tamanho mximo da parte de dados de um segmento TCP, tendo o propsito de evitar a fragmentao na camada de rede;

Maximum Transmission Unit (MTU)


A Maximum Transmission Unit (MTU) o tamanho mximo de um pacote IP (incluindo o seu cabealho) que evita a implementao de fragmentao. O pacote IP a ser transmitido sofrer fragmentao caso seja maior que o MTU. O MTU do protocolo IP diferente em cada tecnologia. Por exemplo, vide tabela ao lado.
MTU 576 1500 1500 1006 1492 Protocol Default RFC 879

PPP Default 1134 Ethernet SLIP PPPOE 895 1055 2516

Calculando o tamanho do MSS


O MSS calculado a partir do MTU A RFC879 define como o MSS calculado pelo protocolo TCP:
O MSS do TCP o tamanho mximo de um datagrama IP definido pela MTU menos 40; MSS = MTU - sizeof(TCPHDR) - sizeof(IPHDR) MSS = MTU - 20 -20 Por exemplo, para calcular o MSS em uma rede Ethernet:
Passo 1: Definir a MTU em uma rede Ethernet = 1500 bytes Passo 2: Calcular o MSS do protocolo TCP em uma rede Ethernet
MSS = MTU - sizeof(TCPHDR) - sizeof(IPHDR) MSS = 1500 - 20 -20 = 1460 bytes

Resumindo:
TCP Maximum Segment Size = IP Maximum Datagram Size - 40

MSS Padro do TCP


A RFC 879 determina que o MTU mnimo que DEVE ser suportado por TODOS dispositivos de rede de: 576 bytes; (Padro da Internet) Sendo assim, podemos inferir que o MSS padro (mnimo) de: 536 bytes
MSS = MTU - sizeof(TCPHDR) - sizeof(IPHDR) MSS = 576 - 20 - 20 = 536 bytes

A RFC 879 afirma o seguinte:


Hosts must not send datagrams larger than 576 octets unless they have specific knowledge that the destination host is prepared to accept larger datagrams.

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Erros e de Fluxo

Requisitos de aplicaes RPC

Controle de Erros
Deteco de erro
Checksum CRC Cyclic Redundancy Code

Tcnicas de Correo de erro


recuperao do segmento original retransmisso do segmento com erro

TCP: Controle de Erros


Correo de erro
Confirmao positiva (ACK) Utiliza piggybacking no reconhecimento Confirmaes enviadas junto com os dados no sentido oposto Dados podem ser recebidos fora de ordem Qualquer segmento recebido gera uma confirmao do ltimo byte recebido em ordem

Algoritmos de Correo de erro


Stop-and-Wait ARQ (Automatic Repeat Request) janela n com retransmisso integral - Go back N janela n com retransmisso seletiva - Selective Repeat

Stop-and-Wait - ARQ
TRANSMISSOR Q0 ACK0 Q1 time-out Q1 E time-out Q1 ACK0 RECEPTOR Q0 ACK0 E

Q1 ACK1 Q1 ACK0

tempo

Controle de Erros Recuperao


Recuperao de erros reenvio dos segmentos perdidos Permite enviar n segmentos sem ter recebido reconhecimentos dos segmentos anteriormente enviados A janela de transmisso define o nmero de segmentos que podem ser enviados sem receber confirmao Detecta erro a partir do reconhecimento positivo Existem duas formas para reparar o erro na transmisso:
retransmisso integral (Go back N) : todos os segmentos a partir de j so retransmitidos retransmisso seletiva (Selective Repeat) : s o segmento j retransmitido

O transmissor ao receber o ACK do segmento n conclui que ele, e os segmentos antes dele, foram recebidos corretamente.

Janela Deslizante Go Back N


TRANSMISSOR RECEPTOR

Controle de Fluxo
Controle de fluxo fim-a-fim
Regula o fluxo de mensagens (pacotes) entre transmissor e receptor; Resolve o problema da diferena entre velocidade de transmisso e recepo; No permite que uma estao transmissora mais rpida sobrecarregue uma estao receptora; Tcnicas:
Stop-and-Wait == Bit Alternado Sliding Window (Janela deslizante)

TCP: Controle de Fluxo

TCP: Controle de Fluxo


Mecanismo de janela deslizante varivel No estabelecimento da conexo, buffer alocado Toda confirmao (desde o three-way handshake) informa o espao disponvel nesse buffer
A notificao que contm esse dado chamada anncio da janela (window advertisement) O emissor no pode ter mais do que esse valor em bytes no confirmados

Reviso de janela deslizante


Aplicao emissora Aplicao receptora TCP TCP

ltimoByteEscrito

ltimoByteLido

ltimoByteConfirmado

ltimoByteEnviado

ProxByteEspeado

ltimoByteRecebido

Lado emissor
ltimoByteConfirmado < = ltimoByteEnviado ltimoByteEnviado < = ltimoByteEscrito buffer de bytes entre: ltimoByteConfirmado e ltimoByteEscrito

Lado receptor
ltimoByteLido < PrxByteEsperado PrxByteEsperado < = ltimoByteRecebido +1 buffer de bytes entre: ltimoByteLido e ltimoByteRecebido

Controle de fluxo
Tamanho do buffer de envio: BufferEnvioMx Tamanho do buffer de recepo: BufferRecMx Lado receptor ltimoByteRecebido - ltimoByteLido < = BufferRecMx JanelaAnunciada = BufferRecMx (PrxByteEsperado - ltimoByteLido)
Bytes no lidos

Se o processo local l os dados to rpido quanto eles chegam , a janela anunciada permanece aberta (JanelaAnunciada = BufferRecMx) Caso contrrio a janela pode at ser reduzida a zero Sempre envia ACK em resposta chegada do segmento de dados

Controle de fluxo
Lado emissor ltimoByteEnviado - ltimoByteConfirmado < = JanelaAnunciada Qtos dados ainda podem ser enviados JanelaEfetiva = JanelaAnunciada (ltimoByteEnviado - ltimoByteConfirmado) ltimoByteEscrito - ltimoByteConfirmado < = Para evitar overflow local BufferEnvioMx bloqueia emissor se (ltimoByteEscrito ltimoByteConfirmado) + y > BufferEnvioMx
Novos dados do emissor

Persiste no envio de 1 byte (de tempos em tempos) quando JanelaAnunciada = 0 Por que ???

Proteo contra quebra (wrap-around)


NumSeq de 32 bits
Largura de banda T1 (1,5 Mbps) Ethernet (10 Mbps) T3 (45 Mbps) FDDI (100 Mbps) STS-3 (155 Mbps) STS-12 (622 Mbps) STS-24 (1,2 Gbps)
NumSeq >> 2 x JanelaAnunciada, Seria ok... Mas

Tempo at a quebra 6,4 horas 57 minutos 13 minutos 6 minutos 4 minutos 55 segundos 28 segundos

Soluo: usar campo opo de timestamp de 32 bits para ampliar o NumSeq

Mantendo a tubulao cheia


JanelaAnunciada de 16 bits (ou 64KB)
Largura de banda T1 (1.5 Mbps) Ethernet (10 Mbps) T3 (45 Mbps) FDDI (100 Mbps) STS-3 (155 Mbps) STS-12 (622 Mbps) STS-24 (1.2 Gbps) Retardo x Largura de banda 18KB 122KB 549KB 1,2MB 1,8MB 7,4MB 14,8MB

considerando RTT de 100ms Usar opo: fator de escala da janela

Disparando a transmisso
Aplicaes escrevem fluxos bytes (byte-stream) Quando o TCP deve enviar um segmento?
Assim que MSS for atingido
Segmento mximo que no causa fragmentao

Emissor solicita envio explicitamente


Operao push

Quando temporizador expira

Sndrome da janela tola


Com que agressividade o emissor deve explorar a janela aberta?

Emissor

Receptor

Quanto tempo esperar antes de enviar mais dados?


Espera demais: prejudica o desempenho das aplicaes interativas Espera pouco: utilizao ruim da rede (muitos pacotes pequenos) Estratgias: temporizaes ou auto-controle (self-clocking)

Sndrome da janela tola


Com que urgncia o transmissor deve enviar pacotes pequenos ?
Emissor Receptor

Solues no lado receptor


aps anunciar janela zero, espera por um espao igual ao tamanho mximo do segmento (MSS)
s abre a janela fechada se tiver espao para um MSS

confirmaes atrasadas (delayed acknowledgements)

Sndrome da janela tola


Controle pelo emissor (Algoritmo de Nagle)
Quando o emissor decide enviar um segmento? Quando a aplicao gera dados adicionais
se preenche um segmento mximo (e janela aberta): envia Seno (segmento incompleto)
se houver dados no confirmados em trnsito: mantm em buffer at que o ACK chegue seno: envia

Retransmisso adaptvel (ou temporizao adaptvel)


Problema a ser resolvido:
Como configurar temporizadores (timeouts) para comunicaes em LANs e WANs (redes com RTTs bem diferentes) ?
LANs: deve esperar pouco WANs: deve esperar mais

TCP adota temporizaes variveis


TCP monitora o atraso de alguns pacotes em cada conexo e modifica o temporizador de retransmisso para acomodar mudanas Mudana feita em funo de anlise estatstica das mensagens transmitidas com sucesso

Retransmisso adaptvel (algoritmo original)


Mede SampleRTT para cada par segmento/ACK Calcula mdia ponderada de RTT
EstRTT = x EstRTT + x SampleRTT onde + = 1 entre 0,8 e 0,9 entre 0,1 e 0,2 TimeOut = 2 x EstRTT Bastante conservador

Define timeout com base em EstRTT

Algoritmo de Karn/Partridge
Emissor Receptor Emissor Receptor

(a)

(b)

No faz amostragem do RTT ao retransmitir


SampleRTT s de pacotes enviados uma nica vez

Dobra timeout aps cada retransmisso


Decaimento (backoff) exponencial

Algoritmo de Jacobson/ Karels


Nova forma para calcular RTT mdio Diff = SampleRTT - EstRTT EstRTT = EstRTT + ( x Diff) Dev = Dev + ( |Diff| - Dev)
onde um fator entre 0 e 1

Considere a varincia ao definir valor de timeout TimeOut = x EstRTT + x Dev


onde = 1 e = 4

Notas
algoritmo to bom quanto a granularidade do clock (500ms no Unix) mecanismo de timeout importante para controle de congestionamento (mais tarde)

Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo

Requisitos de aplicaes RPC

De qual servio de transporte uma aplicao necessita?


Perda de dados
Algumas aplicaes (ex.: udio) podem tolerar alguma perda Outras aplicaes (ex.: transferncia de arquivos, telnet) exigem transferncia de dados 100% confivel

Temporizao
Algumas aplicaes (ex.: telefonia Internet, jogos interativos) exigem baixos atrasos para serem efetivos

Banda passante
Algumas aplicaes (ex.: multimdia) exigem uma banda mnima para serem efetivas Outras aplicaes (aplicaes elsticas) melhoram quando a banda disponvel aumenta

Requisitos de transporte de aplicao comuns


Aplicao file transfer e-mail Web documents real-time udio/vdeo stored udio/video jogos interativos e-business Perdas sem perdas sem perdas sem perdas tolerante tolerante tolerante sem perda Banda elstica elstica elstica adio: 5 Kb-1 Mb vdeo:10 Kb-5 Mb
igual anterior kbps elstica

Sensvel ao atraso no no no sim, 100s mseg sim, segundos sim, 100s mseg sim

Servios dos protocolos de transporte da Internet


Servio TCP:
Orientado conexo: conexo requerida entre processos cliente e servidor Transporte confivel entre os processos de envio e recepo Controle de fluxo: o transmissor no sobrecarrega o receptor Controle de congestionamento: protege a rede do excesso de trfego No oferece: garantias de temporizao e de banda mnima

Servio UDP:
Transferncia de dados no confivel entre os processos transmissor e receptor No oferece: estabelecimento de conexo, confiabilidade, controle de fluxo e de congestionamento, garantia de temporizao e de banda mnima.

Aplicao e protocolos de transporte da Internet


Aplicao e-mail acesso de terminais remotos Web transferncia de arquivos streaming multimdia servidor de arquivos remoto telefonia Internet Protocolo de aplicao smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] RTP ou proprietrio (ex.: RealNetworks) NFS RTP ou proprietrio (ex.: Vocaltec) Protocolo de transporte TCP TCP TCP TCP TCP ou UDP TCP ou UDP tipicamente UDP

Referncias
Captulo 5:
Redes de Computadores: Uma abordagem de sistemas. Larry Peterson e Bruce Davie. 3 ed. Editora Campus, 2004.

TCP
RFC793: http://www.faqs.org/rfcs/rfc793.html

Escolha e ajustes de MTU/MSS


RFC879: http://rfc.sunsite.dk/rfc/rfc879.html http://www.internetweekly.org/llarrow/mtumss.html No Windows 98:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com: 80/support/kb/articles/q183/4/37.asp&NoWebContent=1

No XP: http://support.microsoft.com/kb/314053