Escolar Documentos
Profissional Documentos
Cultura Documentos
de Redes
ProtocolosdeTransporte
Djamel Sadok
Dnio Mariz
{jamel,dmts}@cin.ufpe.br
Cin/UFPE, JUN/2003
1
Internet e TCP/IP
Internet
Agrupamentodegrandequantidadederedesaoredordomundo,
ligadaspeloprotocoloIP
Redemundialdecomputadores
TCP/IP
Famliadeprotocolosdecomunicao
Servioseacessoindependentedetecnologia
Permiteainterconexoderedesfsicasdiferentes
Interconexorealizadaporroteadores
Protocolo IP
Noorientadoaconexo,roteamentomelhoresforo
Noconfivel,semcontroledefluxooudeerrossimples
Roteamentobaseadonoendereodaredededestino
2
Protocolos,
Servios &
Portas
3
Aplicao
Sesso
Transporte
Rede
Enlace
Transporte
Inter-Rede
Sub-IP
Fsico
Modelo OSI
Modelo TCP/IP
4
SNMP
NFS
OSPF
FTP
HTTP
SSH
SMTP
Aplicao
Transporte
Inter-Rede
Enlace & Fsico
UDP
ARP
ETHERNET
SCTP
IGMP
RTP
IP
TCP
ICMP
ATM
RARP
802.11
...
SISTEMA OPERACIONAL
DNS
USURIO
Famlia TCP/IP
Modelo TCP/IP
5
Encapsulamento
DADOS
PacotedaAplicao
CABEALHO
TCP
DADOS
PacoteTCP
CABEALHO CABEALHO
IP
TCP
DADOS
PacoteIP
DADOS
RODAP
ETHERNET
PacoteEthernet
Internet?
Como a entidade de rede (IP) identifica qual o
protocolo de transporte est sendo utilizado ?
Dentro do host, como a entidade de transporte
(TCP,UDP) sabe para qual aplicao entregar o
pacote ?
Como uma aplicao do cliente sabe qual a
aplicao dentro do servidor remoto para poder
enviar pacotes?
porta
20348
porta
20345
TCP
protocolo=6
porta
10340
porta
15398
UDP
porta
6970
ssh.cin.ufpe.br
150.161.2.106
procololo=6
porta=22
protocolo=17
Internet
host013.re.apartnet.br.inter.net
200.199.75.13
www.uol.com.br
200.221.8.18
procololo=6
porta=80
www.bbc.co.uk
212.58.224.61
protocolo=17
porta=44585
servidorDNS
200.185.56.49
protocol=17
porta=53
Pacote
IP
Pacote
IP
TCP
Host A
Aplicao
Aplicao
Aplicao
Porta 1
Porta 2
Porta N
UDP
TCP
Transporte
Sistema Operacional
10
Porta 4251
UDP
FTP Server
Porta 21
TCP
Transporte
IP
Rede
Porta 161
Porta 3245
UDP
Porta 80
TCP
Transporte
IP
Rede
HOST B Linux
Porta 3245
Browser
Browser
Interface de Rede
Interface de Rede
Rede (hub, switch, router, ...)
Outro host
OTCP/IPsabeparaqualaplicaoentregaropacoteolhandoaTUPLA:
EndereoIPorigem,EndereoIPdestino,Portaorigem,Portadestino,Protocolo
11
Pacote
IP
Pacote
IP
PORTA=4756
PORTA=4943
PACOTEIP
EndereoIPorigem
EndereoIPdestino
Portaorigem
Portadestino
Protocolo
PORTA=5623
TCP
Host A
12
IPv42^32=4.294.967.296hosts
IPv62^128=340.282.366.920.938.463.463.374.607.431.768.211.456
hosts
Como a entidade de rede (IP) identifica qual o protocolo de
transporte est sendo utilizado ?
TipodeprotocoloestindicadonocabealhoIP
CadaaplicaotemumaPortanicanohost
PortaidentificadanopacoteIP
Algunsserviostmnmerosdeportasjconvencionadas(portasbem
conhecidas)
13
Identificao de aplicaes
Como cada mquina identificada unicamente na Internet ?
NmeroIP
Nmeros de portas
1-255
256-1023
1-1023
1024-4999
5000-
15
110 POP3
135-139 NetBIOS Services
161-162 SNMP
25 SMTP
53 DNS
69 TFTP
79 Finger
80 HTTP
88 KERBEROS
2049 NFS
3006 MySQL
6000 X Windows
Detalhesemwww.iana.org/assignments/portnumbers
16
Nvel de Transporte
Usurios de nvel de transporte so
Estabelecimento de Conexes
Perda e duplicao de pacotes de pedidos de
(timestamps)
O Three-Way Handshake
Alocao de Buffers
Problema Do
Estacionamento
Protocolos de Transporte da
Internet
Transmission Control Protocol
orientado a conexo (RFC 793, 1122 e 1323)
oferece um servio fim-a-fim confivel sobre
subredes com diferentes (velocidades,
topologias, atrasos, tamanho de pacotes,
etc.)
executa no host na forma de um processo de
usurio ou no kernel
diviso dos mensagens em pacotes
(segmentos) de ate 64KB (normalmente
1500 bytes)
24
25
O Cabealho TCP
16bitsourceportnumber
16bitdestinationportnumber
32bitsequencenumber
32bitacknowledgmentnumber
4bithdr
length
6bit
(reserved)
U A P R S F
R C S S Y I
G K H T N N
16bitTCPchecksum
16bitwindowsize
16biturgentpointer
options
data
O Protocolo TCP
Estabelecimento de Conexo
Protocolo
Passo 1: o cliente envia um segmento SYN
Otamanhomximodesegmento(MSS)quecadalado
sepropeaaceitartambmdefinidonomomentodo
estabelecimentodaconexo
Podeacontecerumhalfopen
Status:LISTENING
TEMPO
Client
28
Server
Conexosolicitadapelocliente
TEMPO
SYN
Status:SYN_RECV
29
Server
Status:SYN_RECV
SYN
TEMPO
SYNACK
Servidoralocarecursos(memria)
Paraapotencialconexo
eligarelgiodeTIMEOUT
30
Server
Status:ESTABILISHED
SYN
SYNACK
TEMPO
ACK
(DATA)
Clienteconfirmaopedidodeconexo
Einiciaenviodedados.
31
Server
Status:ESTABILISHED
SYN
SYNACK
TEMPO
ACK
THREEWAYHANDSHAKE
32
Servidor
Cliente
SYN(SEQ=x)
SYN(SEQ=y,
ACK=x+1)
Servidor
SYN(SEQ=x)
Tempo
SYN(SEQ=y)
SYN(SEQ=y,
ACK=x+1)
SYN(SEQ=x+1,
ACK=y+1)
SYN(SEQ=x,
ACK=y+1)
O Protocolo TCP
Trmino de Conexo
Cadadireodaconexo
encerradaindependentemente
Protocolo
Passo 1: o cliente envia um
segmento FIN
Passo 2: o servidor retorna
um FIN e um ACK para o
cliente
Passo 3: o cliente envia um
ACK e a conexo se
encerra
possvelefetuarumhalf
close,mantendoseapenas
umaconexosimplex
Cliente
Servidor
FIN
ACK
FIN
ACK
Tempo
Server
Status:CLOSED
Status:STABLISHED
SYN
SYNACK
ACK
TEMPO
(DATA)
(DATA)
(DATA)
FIN
FINACK
ACK
Apstrocadeinformao,umdos
ladossolicitafimdaconexoeo
outroladoconfirma.
35
Gerenciamento de buffers no
TCP
Telnet, Rlogin
Muitos pacotes pequenos podem provocar
congestionamento em redes lentas (WAN)
O TCP tenta minimizar o nmero de pacotes
trocados:
Reconhecimentos(ACKs)atrasados
AlgoritmoNagle
Apenas um segmento pequeno pode ficar
reconhecidos
quando o servidor l os dados recebidos liberando o
buffer do TCP, este sinaliza a nova janela de recepo
para o cliente, que abre sua janela de envio
Oclienteestabeleceumpersisttimerparaficarinquirindo
oservidorquantoaotamanhodesuajaneladerecepo
mesmoqueelaestejaaparentementefechadaparaevitar
deadlocks
O problema da Silly Window Sindrome(aplicao lendo
1 byte cada vez!)
Controle de
Congestionamento
no TCP
41
Segmentos TCP
Um segmento consiste em um
Temporizadores
Quando um segmento enviado, o
Janela de Congestionamento
Uma conexo TCP controla sua taxa de transmisso
TCP (w)
Uma conexo TCP comea com um pequeno valor
de w e ento o incrementa arriscando que exista
mais largura de banda.
Isso continua a ocorrer at que algum segmento
seja perdido.
Nesse momento, a conexo TCP reduz w para um
valor seguro, e ento continua a arriscar o
44
crescimento.
Controle de Congestionamento
O controle feito atravs de duas variveis
Limiar;
Serve para controlar o crescimento da janela de
congestionamento.
45
Graficamente ...
46
Janela do Receptor
O nmero mximo de segmentos
larguradebanda,oreceptor
tambmpodeserumgargalo.
47
tamanho de um segmento.
Talsegmentotemotamanhodomaiorsegmento
suportado.
O primeiro segmento enviado e ento
esperado seu reconhecimento.
Seomesmochegarantesqueocorraotimeout,o
transmissorduplicaotamanhodajanelade
congestionamentoeenviadoissegmentos.
Seessesdoissegmentostambmforem
reconhecidosantesdeseustimeouts,otransmissor
duplicanovamentesuajanela,enviandoagora
quatrosegmentos.
48
49
congestionamento cresce
exponencialmente chamada de
inicializao lenta (slow start), pelo
fato de comear com um segmento.
Ataxadetransmissocomeapequena
pormcrescemuitorapidamente.
50
Graficamente ...
SLOW START
51
preveno de congestionamento
(congestion avoidance).
Suaduraotambmdependedano
ocorrnciatimeouts,edaaceitaodofluxo
porpartedoreceptor.
52
Graficamente ...
CONGESTION
AVOIDANCE
53
54
55
Resumo
Quando o tamanho da janela de
56
Graficamente ...
57
O Header UDP
Pseudoheader
32bitsourceIPaddress
32bitdestinationIPaddress
00000000
protocol
length
Header
Sourceport
Destinationport
UDPlength
UDPchecksum
Portas UDP
TCP vs UDP
60
TCP
Confivel,faztratamentodeerros(perdas)egarantea
entregadosdados
Adaptativo:fazcontroledecongestionamentovariandoa
taxadeenvio.Adaptaataxadetransmissobanda
disponvel
UsaACKs
Aplicaonosepreocupacomcontroledeperdasde
pacotesesequenciamento
Controledefluxo:janeladeslizantetemporizaoetimeout
UsadopelosprotocolosFTP,HTTP,POP,SMTP
Requertempoadicionalparaestabelecerconexo
61
UDP
NoConfivelnofaztratamentodeperdadepacotes
NoGaranteaentregadosdados
UsadopeloSNMP,DHCP,DNS
NoAdaptativo:tomaomximodabandadisponvel
Nofazcontroledefluxo
Exigequeaaplicaoexecutecontroledeperdasde
pacotesesequenciamento
Norequertempoadicionalparaestabelecerconexo
62
TCP Mvel
I-TCP Indirect TCP
Estaomvel
Pontodeacesso
(foreignagent)
TCPmodificado
Internet
TCPpadro
TCP Mvel
Snooping TCP
Retransmissolocal
foreign
agent
Internet
Estao
mvel
VerificaodeACKs
Armazenamentodedados
ConexoTCPfimafim