Professional Documents
Culture Documents
no confivel
Redes de Computadores Profa. Ana Benso
Header UDP
0 16 31
Porta Origem
Tamanho Dados
Porta Destino
Checksum
Onde, Porta Origem e Porta Destino identificam o processo de aplicao que est enviando dados e o processo de aplicao que ir receber os dados. Tamanho representa o tamanho total do frame UDP Checksum calculado usando o header UDP e tambm a rea de dados, e destina-se a verificao de erros de transmisso.
Redes de Computadores Profa. Ana Benso
Checksum UDP
O Checksum no UDP opcional
Campo de checksum = 0, no executa
Pseudo-Header
0 16 31
Endereo IP Origem
Endereo IP Destino Zero Protocolo Tamanho
Onde, Endereo IP Origem e Endereo IP destino so do nvel de rede (protocolo IP) utilizadas para a segunda validao do destino do datagrama. Zero um campo com valor zero para complementar a estrutura do pseudo-header. Protocolo indica qual o protocolo de transporte (TCP ou UDP), pois o pseudo-header utilizado para os dois protocolos. Tamanho indica o tamanho do frame de transporte (UDP ou TCP)
Redes de Computadores Profa. Ana Benso
Protocolo
Porta Origem
Tamanho
Dados
Checksum
Datagrama UDP
Ateno! O Pseudo-Header no transmitido junto com o datagrama UDP, ele utilizado apenas para clculo do Checksum.
Redes de Computadores Profa. Ana Benso
Processamento do Checksum
Na origem, as informaes necessrias so
Processamento do Checksum
Se o checksum recebido tem todos os bits
em zero, no necessrio calcul-lo (pois no est sendo utilizado) Caso contrrio, o clculo do checksum realizado novamente
Se o clculo resultar em Zero, o datagrama no
Redes de Computadores
controle de congestionamento
Almquist 1993 (RFC???)
Redes de Computadores
estas mensagens Vrios sistemas operacionais no repassam tais mensagens para o protocolo UDP Somente o TCP notificado quando estas mensagens ocorrem!!!
Redes de Computadores
confivel
Orientado conexo
Entrega ordenada
Header TCP
Porta origem Porta destino
Tam.
Reser.
Checksum
Flags
Window
Urgent Pointer
Redes de Computadores
Header TCP
Onde, Porta Origem e Porta Destino identificam o processo de aplicao que est enviando dados e o processo de aplicao que ir receber os dados. Nmero de seqncia identifica os bytes enviados. Na prtica ele a identificao do primeiro byte de dados contido no segmento enviado. Os demais so seqenciados a partir deste byte. Acknowledgement identifica os bytes que foram recebidos e tratados sem erro pelo destino, bem como a seqncia do prximo byte esperado Tamanho representa o tamanho total do frame TCP Reservado um campo ainda no utilizado FLAGS identifica as flags (syn, fin, psh, rst, ack, urg) Window identifica o tamanho da janela para o controle de fluxo Checksum destina-se a verificao de erros de transmisso. calculado usando o pseudo header, o header TCP e tambm a rea de dados Urgent Poninter um ponteiro para dados urgentes, contidos na rea de dados.
Redes de Computadores Profa. Ana Benso
Estabelecimento da Conexo
Origem A
SYN 1415531521:1415531521 (0) <mss 1024>
Destino B
ACK 1823083522
Redes de Computadores
active open O destino que recebe a solicitao de conexo executa o passive open
Origem e destino enviam seus nmero de
seqncia 1 (violao da RFC) A varivel incrementada de 64.000 a cada segundo Isso significa que ir retornar a 0 em perodos de 9 horas e
Redes de Computadores Profa. Ana Benso
bloco de dados que poder ser enviado para o destino. No negocivel, cada host divulga o seu MSS
Default: 536 bytes (20 bytes IP, 20 bytes TCP,
para um total de 576 bytes) Ethernet: 1460 bytes (20 bytes IP, 20 bytes TCP, para um total de 1500 bytes)
Redes de Computadores Profa. Ana Benso
MSS...
Em geral, quanto maior o MSS melhor, at
MSS 256
?
Profa. Ana Benso
Redes de Computadores
Redes de Computadores
Encerramento da Conexo
Origem A
FIN 1415531522:1415531522 (0) ACK 1823083522
Destino B
ACK 1415531523
ACK 1823083523
Redes de Computadores
Encerramento da Conexo
Half Close
Conexes TCP so full-duplex, logo cada lado
da conexo deve finalizar a conexo de forma independente Quando um dos lados envolvidos recebe uma solicitao de finalizao deve enviar a notificao para a aplicao
Uma aplicao aps receber o pedido de finalizao
Exemplo:
Data
Ack of Data datafile std input
sun
rsh
bsdi
sort
FIN + ACK
terminal
std output
ACK
Redes de Computadores
Redes de Computadores
Estados x Mensagens
Origem
SYN_SENT SYN
Destino
LISTEN SYN_RCVD
FIN_WAIT 1
FIN_WAIT 2 FIN + ACK TIME_WAIT 2 ACK CLOSED Redes de Computadores Profa. Ana Benso LAST_ACK
Utilizao do 2MSL
Quando executado um active close e
enviado o ACK final, a conexo deve permanecer no estado TIME_WAIT pelo dobro do tempo especificado no MSL
Isso ir permitir a retransmisso do ACK final,
caso o primeiro seja perdido Outra conseqncia a no liberao do par de sockets utilizados para a conexo Algumas implementaes restringem tambm o uso das portas locais durante o 2MSL
Redes de Computadores Profa. Ana Benso
Utilizao do 2MSL
Socket option
SO_REUSEADDR Transpor as regras sobre uso do endereo das
portas
Quanto a transmisso de dados
Qualquer segmento que chegue para uma
Quite Time
Considere a seguinte situao Ocorre uma falha no host que est no estado 2MSL Ele faz o reboot ainda no perodo de espera do MSL Ele estabelece uma nova conexo imediatamente, usando o mesmo endereo de porta local e porta remota
O que poder ocorrer neste caso?
Reset de Conexes
Em geral, um Reset gerado sempre que
recebido um segmento que no parece estar correto para a conexo identificada. Casos
Solicitaes de conexes para portas
TCP foi projetado para suportar estes casos Apenas uma conexo resulta, no duas
Redes de Computadores Profa. Ana Benso
Destino
FIN_WAIT 1
CLOSING
ACK
ACK
CLOSING
TIME_WAIT
TIME_WAIT
Redes de Computadores
SYN FLOOD
Flooding de solicitaes de conexo falsas
Normalmente usa IP Spoofing
Intruso SYN SYN SYN SYN SYN SYN Destino SYN + ACK RST RST Suposta Origem
Redes de Computadores
Controle de Erros
O TCP executa controle de erro com
retransmisso
Neste caso o checksum no opcional Se um segmento TCP recebido com
checksum igual a zero, ele descartado O destino envia mensagens de reconhecimento positivo
No envia NACK
A necessidade de realizar uma retransmisso
Controle de Fluxo
Origem Destino Dados, ACK(D), Seq (O) WIN (4096) Dados, ACK(O), Seq (D) WIN (512) Dados, ACK(D), Seq (O) WIN (4096)
O TCP executa o
Timeout
Erro!!!!
Dados, ACK(D), Seq (O) WIN (4096) Dados, ACK(O), Seq (D) WIN (3000) Dados, ACK(D), Seq (O) WIN (512)
Redes de Computadores
Fluxo Interativo
Exemplo: rlogin
Origem
Dados, ACK(D), Seq (O) WIN (4096) digitado servidor digitado
piggback
Destino Origem
Dados, ACK(D), Seq (O) WIN (4096) servidor
Destino
ACK(O) + WIN
display Dados, ACK(O), Seq (D) WIN ACK(D) + WIN
echo
display
delayed
Redes de Computadores Profa. Ana Benso
Algoritmo de Nagle
Exemplo do Rlogin 1 byte de dados 20 bytes TCP + 20 Bytes IP
Problema? Overhead de controle Nagle: Pequenos segmentos s podem ser enviados aps o recebimento do ACK dos dados enviados anteriormente
Redes de Computadores Profa. Ana Benso
Algoritmo de Nagle
Assim, o TCP coleta pequenos segmentos de
dados e os envia juntos A velocidade de envio ir variar com de acordo com a velocidade de recebimento do ACK
Algoritmo self-clocking
Exemplo: Ethernet RTT aproximadamente de 16 ms Para ser mais rpido deveria digitar mais de 60 caracteres por segundo Isto significa que raramente aplicado nestas redes Utilizado em redes com RTT maior (p.ex: WAN)
Redes de Computadores Profa. Ana Benso
Desabilitando Nagle
Quando necessrio?
Trafego Interativo Xwindow (movimentos do mouse....)
Redes de Computadores
Redes de Computadores