protocolos de transporte da pilha tcp/ip

35
Protocolos de Transporte da Pilha TCP/IP Profa. Ana Cristina Benso da Silva Redes de Computadores

Upload: sanne

Post on 15-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

Protocolos de Transporte da Pilha TCP/IP. Profa. Ana Cristina Benso da Silva Redes de Computadores. UDP (User Datagram Protocol). O protocolo UDP é bastante simples Orientado a datagrama Não orientado à conexão Não executa controle de fluxo, controle de erro e sequenciamento - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Protocolos de Transporte da Pilha TCP/IP

Protocolos de Transporte da Pilha TCP/IP

Profa. Ana Cristina Benso da Silva

Redes de Computadores

Page 2: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

UDP (User Datagram Protocol)

O protocolo UDP é bastante simplesOrientado a datagramaNão orientado à conexãoNão executa controle de fluxo, controle de erro

e sequenciamentoNão tem reconhecimento dos datagramas

(ACK/NACK)

Devido a sua simplicidade é considerado não confiável

Page 3: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Header UDP

Onde,Porta Origem e Porta Destino identificam o processo de

aplicação que está enviando dados e o processo de aplicação que irá receber os dados.

Tamanho é representa o tamanho total do frame UDPChecksum é calculado usando o header UDP e também a área

de dados, e destina-se a verificação de erros de transmissão.

Porta DestinoPorta Origem

Tamanho Checksum

Dados

0 16 31

Page 4: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Checksum UDP

O Checksum no UDP é opcionalCampo de checksum = 0, não executa

verificaçãoCampo de checksum <> 0, executa verificação

O cálculo do checksum utiliza o header, os dados e também o Pseudo-HeaderEste pseudo-header é utilizado para verificação

adicional e confirmação de que o datagrama chegou ao destino correto

Page 5: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Pseudo-Header

0 16 31

Endereço IP Destino

Endereço IP Origem

Zero TamanhoProtocolo

Onde,Endereço IP Origem e Endereço IP destino são do nível de rede

(protocolo IP) utilizadas para a segunda validação 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)

Page 6: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Ordem de Header para o Checksum do UDP

Porta DestinoPorta Origem

Tamanho Checksum

Dados

0 16 31

Endereço IP Destino

Endereço IP Origem

Zero TamanhoProtocolo

Pseudo-Header

Datagrama UDP

Header UDP

Atenção! O Pseudo-Header não é transmitido junto com o datagrama

UDP, ele é utilizado apenas para cálculo do Checksum.

Page 7: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Processamento do Checksum

Na origem, as informações necessárias são organizadas em blocos de 16 bits para o cálculo do checksumCaso o cálculo resulte em zero, os 16 bits do

checksum serão configurado todos em 1 (valor = 65535)

Se optar-se por não utilizar checksum, os 16 bits serão configurados todos em 0

Page 8: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Processamento do Checksum

Se o checksum recebido tem todos os bits em zero, não é necessário calculá-lo (pois não está sendo utilizado)

Caso contrário, o cálculo do checksum é realizado novamente Se o cálculo resultar em Zero, o datagrama não

contém errosSe o cálculo resultar diferente de Zero, o

datagrama é descartado

Page 9: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Tamanho Máximo do Datagrama

Teoricamente o tamanho máximo é de 64KbPorque no IP o campo tamanho total é de 16

bitsMas deve-se considerar que no IP estão sendo

calculadoTamanho do Header do IP (20 bytes)Datagrama UDP (8 bytes)

Assim, o tamanho máximo é de 65507 bytes

Page 10: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Tamanho Máximo do Datagrama

Outros fatores podem influenciarProgramas de aplicação podem ser limitados

pela interface de programaçãoImplementação do kernel do TCP/IP

Truncando DatagramasApesar do tamanho máximo, nem todas as

aplicações podem estar preparadas para receber um datagrama maior que esperadoTruncar ou não? Depende da implementação de

cada interface de programação

Page 11: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

UDP e ICMP Source Quench

Mensagens ICMP Source Quench Podem ser geradas pelo sistema quando ele recebe

dados a uma taxa maior que ele consegue processarNão é obrigatória a geração, mesmo que o sistema

descarte os datagramas

“O sentimento corrente é que esta mensagem deve ser considerada obsoleta”Porque consome largura de banda e é ineficaz para o

controle de congestionamento Almquist 1993 (RFC???)

Page 12: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

UDP e ICMP Source Quench

Várias sistemas operacionais não geram estas mensagens

Vários sistemas operacionais não repassam tais mensagens para o protocolo UDP

Somente o TCP é notificado quando estas mensagens ocorrem!!!

Page 13: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

TCP (Transmission Control Protocol)

Protocolo de transporte considerado confiávelOrientado à conexãoControle de erros com retransmissãoControle de fluxo SequenciamentoEntrega ordenada

Orientado a “byte stream”

Page 14: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Header TCP

Porta origem Porta destino

Número de Seqüência

Acknowlegement

WindowTam. Reser. Flags

Checksum Urgent Pointer

Opções (se houver)

Dados

Page 15: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Header TCP

Onde,Porta Origem e Porta Destino identificam o processo de aplicação que está enviando dados e o processo de aplicação que irá receber os dados. Número de seqüência identifica os bytes enviados. Na prática ele é a identificação do primeiro byte de dados contido no segmento enviado. Os demais são seqüenciados a partir deste byte.Acknowledgement identifica os bytes que foram recebidos e tratados sem erro pelo destino, bem como a seqüência do próximo byte esperadoTamanho é representa o tamanho total do frame TCPReservado é um campo ainda não utilizadoFLAGS identifica as flags (syn, fin, psh, rst, ack, urg)Window identifica o tamanho da janela para o controle de fluxoChecksum destina-se a verificação de erros de transmissão. É calculado usando o pseudo header, o header TCP e também a área de dadosUrgent Poninter é um ponteiro para dados urgentes, contidos na área de dados.

Page 16: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Controle de Conexão TCP

Três FasesEstabelecimento da ConexãoTransmissão de DadosEncerramento da Conexão

FlagsSYN – solicitação de conexãoFIN – Finalização da ConexãoRST – Reset da ConexãoACK – Reconhecimento de recebimento

Page 17: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Estabelecimento da Conexão

OrigemA

DestinoB

SYN 1415531521:1415531521 (0) <mss 1024>

SYN 1823083521: 1823083521 (0) <mss 1024>ACK 1415531521

ACK 1823083522

Page 18: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Estabeleci mento da Conexão

Ativo x passivoA origem da solicitação de conexão executa o

“active open”O destino que recebe a solicitação de conexão

executa o “passive open”

Origem e destino enviam seus número de seqüência iniciais para a conexão em cursoEste número deve ser alterado ao longo do

tempo e ser diferente de conexão para conexão

Page 19: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Inicialização do Número de Seqüência

RFC 793Número de 32 bitsÉ incrementado a cada 4 microsegundos

Como escolher o número inicial?4.4BSD

Quando sistema é inicializado o número de seqüência é 1 (violação da RFC)

A variável é incrementada de 64.000 a cada ½ segundo

Isso significa que irá retornar a 0 em períodos de 9 horas e ½

Page 20: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

MSS (Maximum Segment Size)

O MSS representa o tamanho do maior bloco de dados que poderá ser enviado para o destino.

Não é negociável, cada host divulga o seu MSSDefault: 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)

Page 21: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

MSS...

Em geral, quanto maior o MSS melhor, até que ocorra fragmentaçãoQuanto maior a quantidade de dados enviados

em um único bloco, menor o overhead de headers do TCP e do IP

Exemplo

A B

MSS 1460

MSS 256 ?

Page 22: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Outras Opções TCP

End of option list (1 byte)No operation (NOP) (1 byte)Windows scale factor (3 bytes)Timestamp (10 bytes)MSS (4 bytes)

Page 23: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Encerramento da Conexão

OrigemA

DestinoB

FIN 1415531522:1415531522 (0) ACK 1823083522

ACK 1415531523

ACK 1823083523

FIN 1823083522: 1823083522 (0)ACK 1415531523

Page 24: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Encerramento da Conexão

Half CloseConexões TCP são full-duplex, logo cada lado

da conexão deve finalizar a conexão de forma independente

Quando um dos lados envolvidos recebe uma solicitação de finalização deve enviar a notificação para a aplicaçãoUma aplicação após receber o pedido de finalização

ainda pode mandar dados

Page 25: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Half Close - Exemplo

FIN + ACK

ACK

ACK

FIN + ACK

Data

Ack of Data

Exemplo: sun% rsh bsdi < datafile

datafile

terminal

stdinput

stdoutput

rsh sort

sun bsdi

sun bsdi

Page 26: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Timeout no Estabelecimento da Conexão

Trecho de tráfego monitorado (tcpdump)

Importante: tempo entre cada tentativa vs. tempo máximo exigido na RFCTempo: 75 segundos4.4 BSD: leva 76 segundosProblema: Timeout

Page 27: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Diagrama de Estados - TCP

Page 28: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Estados x MensagensOrigem Destino

SYN

SYN + ACK

ACK

SYN_SENT

SYN_RCVD

LISTEN

ESTABLISHED

ESTABLISHED

FINFIN_WAIT 1CLOSE_WAIT

ACKFIN_WAIT 2

FIN + ACKTIME_WAIT 2

LAST_ACK

ACK

CLOSED

Page 29: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Reset de Conexões

Em geral, um Reset é gerado sempre que é recebido um segmento que não parece estar correto para a conexão identificada.

CasosSolicitações de conexões para portas

inexistentesAborto de conexõesSolicitações de conexões falsas

Page 30: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Estabelecimento de Conexões Simultâneas

É possível que 2 hosts tentem estabelecer conexão entre eles simultaneamenteAmbos executam um active openExemplo:

Host A solicita conexão ao Host B na porta 777 e usa como porta local 888

Host B solicita conexão ao Host A na porta 888 e usa como porta local 777

TCP foi projetado para suportar estes casosApenas uma conexão resulta, não duas

Page 31: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Encerramento de Conexões simultâneas

Os hosts também podem tomar a iniciativa de encerrar a conexão simultaneamente

Origem Destino

FINFIN_WAIT 1

ACKCLOSING

TIME_WAIT

ACK

FIN FIN_WAIT 1

CLOSING

TIME_WAIT

Page 32: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

SYN FLOOD

Flooding de solicitações de conexão falsasNormalmente usa IP Spoofing

Intruso Destino Suposta OrigemSYN SYN + ACK

RSTSYN

SYN

SYN

SYN

SYN

RST

Page 33: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Controle de Erros

O TCP executa controle de erro com retransmissãoNeste caso o checksum não é opcionalSe um segmento TCP é recebido com

checksum igual a zero, ele é descartadoO destino envia mensagens de reconhecimento

positivoNão envia NACKA necessidade de realizar uma retransmissão é

detectada pela ausência do ACK

Page 34: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Controle de Fluxo

O TCP executa o algoritmo de janela deslizanteA cada envio de

mensagens o host informa o número de bytes que podem ser recebidos

DestinoOrigemDados, ACK(D), Seq (O)WIN (4096)

Dados, ACK(O), Seq (D)WIN (512)

Dados, ACK(D), Seq (O)WIN (4096)

Erro!!!!Dados, ACK(D), Seq (O)WIN (4096)

Timeout

Dados, ACK(O), Seq (D)WIN (3000)

Dados, ACK(D), Seq (O)WIN (512)

Page 35: Protocolos de Transporte da Pilha TCP/IP

Redes de Computadores Profa. Ana Benso

Fluxo Interativo

Exemplo: rlogin DestinoOrigem

Dados, ACK(D), Seq (O)WIN (4096)

ACK(O) + WIN

ACK(D) + WIN

Dados, ACK(O), Seq (D)WIN

digitado servidor

echodisplay

DestinoOrigemDados, ACK(D), Seq (O)WIN (4096)

DADOS + ACK(O) + WIN

ACK(D) + WIN

digitado servidor

echodisplay

piggback

delayed