Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação...

30
Edgard Jamhour Redes TCP/IP Protocolos de Transporte e Aplicação

Transcript of Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação...

Page 1: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Redes TCP/IPProtocolos de Transporte e Aplicação

Page 2: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Pilha de Protocolos

Camada de Aplicação

HTTP, FTP, SMTP, etc

Camada de Transporte

TCP, UDP

Camada de Enlace e

Fisica

Camada de Rede

IP

Seqüência de

empacotamento

mensagem

segmento/datagrama

pacote

quadroInterface de

Rede

S.O.

Aplicação

Interface Sockets

Page 3: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Endereçamento por Portas

Dispositivo BDispositivo A

TCP

IP

Ethernet

End. MAC

Endereço IP

1024

Processo A

Processo

UDP

1025 Porta

Processo

TCP

IP

Ethernet

End. MAC

Endereço IP

Porta

Processo

Processo B

UDP

80 80

Processo

1024 80 Dados

Page 4: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

TCP X UDP

TCP UDP

Orientado a Conexão

Identifica uma sequencia de pacotes

com pertencentes a uma mesma

transmissão

Não Orientado a Conexão

Cada pacote é uma transmissão

independente

Transmissão por Fluxo

Segmentação e Remontagem feita

pelo S.O.

Transmissão por Datagramas:

Segmentação e Remontagem feita

pela aplicação.

Transmissão Confiável

Confirma recebimento e retransmite

pacotes perdidos

Não confiável

Cabe a aplicação implementar os

mecanismos de retransmissão

Page 5: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Orientado (TCP) vs Não-Orientado (UDP) a

Conexão

ABERTURA DE CONEXÃO

TRANSMISSÃO DE DADOS

...

THREE WAY HANDSHAKE

FIM DE CONEXÃO DE DADOS

TRANSMISSÃO DE DADOS

O TCP USA PACOTES DE

CONTROLE PARA CRIAR E

ENCERRAR CONEXÕES

O CONTEÚDO

TRANSPORTADO PELOS

PACOTES NO INTERIOR DA

CONEXÃO É NUMERADO

O UDP NÃO USA PACOTES

DE CONTROLE

OS PACOTES UDP SÃO

INDEPENDENTES

4 PACOTES

PARA FECHAR A

CONEXÃO

Page 6: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Transmissão por Fluxo (TCP) vs Datagrama

(UDP)

fluxo contínuo de

bytes (stream)

segmentos

Aplicação Aplicação

TCP TCP

IP IPpacotes

NA TRANSMISSÃO POR

FLUXO A APLICAÇÂO NÃO

CONTROLA O TAMANHO

DO PACOTE

OS DADOS RECEBIDOS

SÃO VISTOS PELA

APLICAÇÃO RECEPTORA

COMO UM FLUXO

CONTÍNUO DE BYTES

socket

datagramas

Aplicação Aplicação

UDP UDP

IP IPpacotes

NA TRANSMISSÃO POR

DATAGRAMA A APLICAÇÃO

DEFINE O TAMANHO DOS

PACOTES

A MENSAGEM RECEBIDA É

LIDA POR INTEIRO

(recvfrom)

sendto(buffer)

sendto(buffer)

write(buffer)read(buffer)

recvfrom(buffer)

recvfrom(buffer)

write(buffer)

write(buffer)

Page 7: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Transmissão Confiável (TCP)A

PL

ICA

ÇÃ

O

TC

P

TC

P

AP

LIC

ÂO

DADOS

SEGMENTO A

DADOS

ACK A

DADOS

SEGMENTO B

DADOS

X

SEGMENTO C

SEGMENTO B

ACK C

DADOS

DADOS

O MODO DE

COMUNICAÇÃO

CONFIÁVEL DO TCP É

RETRANSMISSÃO POR

AUSÊNCIA DE

CONFIRMAÇÃO

A APLICAÇÃO RECEBE

APENAS DADOS QUE

CHEGAREM NA ORDEM

CORRETA DE

TRANSMISSÃO

Page 8: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

TCP X UDP

TCP UDP

Controle de Congestionamento

Perda de pacotes fazem o

transmissor reduzir sua taxa de

transmissão entre confirmações

Sem controle

Perda de pacotes não interfere na

velocidade de transmissão

Controle de Fluxo

O espaço livre no buffer do S.O. do

receptor é informado ao transmissor a

cada confirmação

Sem controle:

O transmissor não recebe nenhuma

informação sobre o buffer do receptor.

Apenas Unicast

O destino de um pacote é apenas um

dispositivo

Unicast, Broadcast e Multicast

O destino de um pacote pode ser um

ou mais dispositivos

Page 9: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Controle de Congestionamento e FluxoA

PL

ICA

ÇÃ

O

TC

P

TC

P

AP

LIC

ÂO

DADOS

SEGMENTO ADADOS

DADOS

SEGMENTO C

ACK C

ACK A

SEGMENTO B

DADOS

SEGMENTO D

ACK D (BUFFER CHEIO)

ACK D (BUFFER LIVRE)

DADOS

DADOS

DADOS

SEGMENTO E

DADOS

SEGMENTO F

SEGMENTO GX

ACK E

SEGMENTO F

ACK G

A QUANTIDADE DE

BYTES QUE PODE SER

ENVIADA SEM

CONFIRMAÇÃO É A

MENOR QUANTIDADE

IMPOSTA PELO

CONTROLE DE FLUXO E

CONTROLE DE

CONGESTIONAMENTO

Page 10: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Unicast, Broadcast e Multicast

SW

ITC

HA

A

B

C

B

C

SW

ITC

H

TODOS

UNICAST: O DESTINO DE CADA

PACOTE É APENAS UMUNICAST: O DESTINO DO PACOTE

SÃO TODOS

SW

ICH

GRUPO 1

MULTICAST: O DESTINO DO

PACOTE É UM GRUPO

X

PERTENCE AO GRUPO 1

PERTENCE AO GRUPO 1

NÃO PERTENCE AO GRUPO 1

ENDEREÇOS DE

GRUPO

SÃO ENDEREÇO IP

DA CLASSE D:

DE 224.0.0.0

ATÉ 239.255.255.255

Page 11: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Protocolo TCP

HLEN Reservado Flags Janela de Recepção

Checksum Ponteiro de Urgência

Número de Seqüência

Número de Confirmação

Opções

Dados

....

Byte 1 Byte 2 Byte 3 Byte 4

0 4 8 12 16 20 24 28 31

Porta de Origem Porta de Destino

FLAGS: ACK, SYN, FIN, RST, URG, CWR, ECN, PUSH

Page 12: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

FLUXO CONTÍNUO DE BYTES

Segmentação e Remontagem

DADOSDADOS

SEGMENTO C SEGMENTO B SEGMENTO A

FLUXO DE PACOTES

NS =

NIS+2920

NS =

NIS+1460

NS =

NIS+0

Início da Conexão

146014601000

DADOS

Page 13: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

MSS: Maximum Segment Size

O TAMANHO MÁXIMO DO CAMPO

DE DADOS DO ETHERNET (MTU) É

1500 BYTES

O CABEÇALHO IP SEM OPÇÕES

TEM 20 BYTES

O CABEÇALHO TCP SEM OPÇÕES

TEM 20 BYTES

1460 BYTES20 B

YT

ES

20 B

YT

ES

1500 BYTES

SEGMENTO É O NOME DADO AO PDU DO TCP

MSS É A QUANTIDADE MÁXIMA DE DADOS

TRANSPORTADA POR UM SEGMENTO

MSS = Maximum Segment Size

MTU = Maximum Transmission Unit

PDU = Protocol Data Unit

Page 14: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Conexão TCP

tempo tempo

clienteservidor

NS NC ACK SYN FIN

cNIS XXX 0 1 0

sNIS cNIS+1 1 1 0

cNIS+1 sNIS+1 1 0 0

sNIS+1 cNIS+2 1 0 0

cNIS+2 sNIS+1001 1 0 0

… … … … …

u v 1 0 1

v u+1 1 0 0

… … … … …

w u+1 1 0 1

u+1 w+1 1 0 0

Page 15: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Encerramento da Conexão

• FIN = Terminar a conexão

– Método normal de encerramento (close chamado pela aplicação)

– Encerra a conexão em apenas uma direção

– Indica que não haverão mais transmissões, mas o canal ficará

aberto para recepção.

• RST = Abortar a conexão

– Método anormal de encerramento (erro detectado pelo kernel)

– Acontece quando um segmento que não pertence a conexão é

recebido

– Indica que não haverão mais tranmissões e o canal será fechado

para recepção

Page 16: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

EXEMPLO: HTTP 1.1

53171 80

10.32.1.166

10.32.1.22

www.ppgia.pupcr.br

CONEXÃO ENCERRADA PELO SERVIDOR

OBS. Essa conexão TCP está usando opções

O Wireshark mostra números de sequencia relativos

Page 17: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Máquina de Estados TCP

Aguarda para

ter certeza

que não

reberá outro

FIN devido a

perda do

ACK

Page 18: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Comunicação Confiável

cliente

10001200 100 200

NS NC DADOS

1 1 1000

1 1001 100

101 1001 200

1001 301 1200

2201 301 800

301 3001 sem dados

302 3001 200

800

servidor

200

ABC 1 2 3

A

C

K

Page 19: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Recomendações RFC 1122 e 2581

EVENTO

• Chegada de um segmento na

ordem.

• Chegada de um segmento fora de

ordem (número mais alto que o

esperado).

• Chegada de um segmento que

preenche a lacuna.

AÇÃO TCP DESTINATÁRIO

• Aguarda 500 ms. Se outro

segmento não chegar, confirma o

segmento. Se outro segmento vier,

confirma os dois com um único

ACK.

• Envia imediatamente o ACK

duplicado com o número do byte

aguardado (isto é, repete o último

ACK de ordem correta).

• Envia imediatamente o ACK (se o

preechimento foi na parte contigua

baixa da lacuna).

Page 20: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Algoritmo de Confirmação

• O tempo máximo para aguardar uma confirmação é estimado em função do

tempo médio de Round-Trip Time (RTT) para enviar e confirmar um

segmento.

• O transmissor pode adotar várias técnicas para estimar este tempo. Uma

estratégia comum é calcular iterativamente a cada confirmação recebida:

MediaRTT = 0.875 MediaRTT + 0.125 UltimoRTT

Temporizador = MediaRTT + 4 . Desvio

Desvio = 0.875 Desvio + 0.125 (UltimoRTT - MediaRTT)

Onde:

– UltimoRTT: última medição de RTT

– Temporizador: tempo máximo para aguardar uma confirmação

– Desvio: medida da flutuação do valor do RTT

Page 21: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Controle de Fluxo

A B

Transmissor Receptor

1000

0

2000

3000

LastByteRcvd

S.O.

aplicação

RcvBuffer

Bytes lidos

liberam o

buffer

O TRANSMISSOR (A) precisa estimar o espaço livre no buffer do S.O.

do RECEPTOR (B).

O espaço livre no buffer de B é enviado junto com cada confirmação

(RcvWindow), mas ela não é absoluta pois podem haver pacotes em

trânsito.

Então A calcula o espaço livre em B pela fórmula:

RcvBuffer = RcvWindow - [LastByteSent - LastByteRcvd]

RcvBuffer = estimativa do buffer livre em B

RcvWindow = buffer livre informado por B

LastByteSent = último byte enviado por A

LastByteRcvd = último byte confirmado por B (NC-1)

1000 1000 1000

NC=2001, RcvWindow=1000

Page 22: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Controle de Congestionamento

A B

RTT

envio

confirmação

t

RTT RTT RTT RTT RTT RTT RTT RTT RTT RTT

crescimento

exponencial

prevenção de

congestionamento

prevenção de

congestionamento

evento de falha

congwindow

MSS

Threshold

Threshold

Page 23: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Tipos de TCP: Tahoe e Reno

Page 24: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

TCP RENO

• CongWin é calculada em múltiplos de MSS (Maximum

Segment Size = 1460 bytes).

A) Inicialização CongWin = 1 MSS

Threshold = Estimado (65K)

B) Partida Lenta:

CongWin < Threshold

CongWin = CongWin+1MSS

A cada segmento confirmado, ou seja:

CongWin = 2* CongWin por RTT

C) Prevenção de congestionamento

CongWin >= Threshold

CongWin = CongWin + (MSS/CongWin)

A cada segmento confirmado, ou seja:

CongWin = CongWin +1 MSS por RTT

Em caso de detecção de segmentos

fora de ordem:

Threshold = CongWin = CongWin/2

Vai para prevenção de congestionamento

Em caso de detecção de perda por

temporização

Threshold = CongWin/2

CongWin = 1 MSS

Vai para partida Lenta

Page 25: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Congestionamento X Controle de Fluxo

1000

0

1500

2000

Buffer de Transmissão

LastByteAcked

tempo

LastByteSent

A

CongWindow

RcvWindow

B

RTT

envio

confirmação

1800

A quantidade de bytes que pode ser transmitida sem confirmação é o menor

valor entre CongWin e RcvWin

QUANTO AINDA

PODE SER

ENVIADO

Page 26: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Ponteiro de Urgência Checksum

Dados

....

Byte 1 Byte 2 Byte 3 Byte 4

0 4 8 12 16 20 24 28 31

Porta de Origem Porta de Destino

Protocolo UDP

socket

datagramas

Aplicação Aplicação

UDP UDP

IP IPpacotes

NA TRANSMISSÃO POR

DATAGRAMA A APLICAÇÃO

DEFINE O TAMANHO DOS

PACOTES

A MENSAGEM RECEBIDA É

LIDA POR INTEIRO OU

BYTES REMANECENTES

SÃO DESCARTADOS

(recvfrom)

sendto(buffer)

sendto(buffer)

recvfrom(buffer)

recvfrom(buffer)

Page 27: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

OS RISCOS DO UDP

• É muito mais simples injetar pacotes falsos em uma

comunicação UDP do que TCP

40901

GERENCIADOR

VERDADEIRO9999

GERENCIADOR

FALSO8888

1.2.3.4

5.6.7.8

ABRIR PORTA

Em uma comunicação TCP, só é possível injetar pacotes em uma conexão ABERTA se:

A) IP de origem e destino forem os usados na abertura de conexão

B) Porta de origem e destino forme os usados na abertura da conexão

C) O número de sequência do pacote estive na ordem correta em relação aos pacotes recebidos anteriormente

Page 28: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Protocolos de Aplicação

HTTP

TCP

IP

UDP

FTP SMTP NFS DNS DHCP

Camada de Transporte

Camada de Aplicação

Camada de Rede

Page 29: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

Portas bem Conhecidas

servidor

httpd

ftpd

smptd

nfsd

named

dhcpd

cliente

80

21

25

2049

53

67

>1023

>1023

>1023

>1023

>1023

>1023

wget

ftp

firefox

nfs client

dig

dhclient

dhcp

dns

nfs

smtp

ftp control

>102320

ftp data

http

Page 30: Redes TCP/IPjamhour/Pessoal/Graduacao/Ciencia/... · Pilha de Protocolos Camada de Aplicação HTTP, FTP, ... O TCP USA PACOTES DE CONTROLE PARA CRIAR E ... INTRANET/INTERNET

Edgard Jamhour

ConclusãoProtocolos de Transporte e Aplicação