redes

28
Redes TCP/IP Redes Redes Prof. Edgard Jamhour email: [email protected] URL: http://ppgia.pucpr.br/~jam hour

Upload: kenneth-mooney

Post on 03-Jan-2016

15 views

Category:

Documents


1 download

DESCRIPTION

Prof. Edgard Jamhour email: [email protected] URL: http://ppgia.pucpr.br/~jamhour. Redes. CONTEÚDO. 1) Camada de Transporte 2) TCP 3) UDP 3) Camada de Aplicação. Protocolo do nível de transporte. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Redes

Redes TCP/IP

RedesRedes

Prof. Edgard Jamhour

email: [email protected]

URL: http://ppgia.pucpr.br/~jamhour

Page 2: Redes

2007, Edgard Jamhour

CONTEÚDOCONTEÚDO

• 1) Camada de Transporte

• 2) TCP

• 3) UDP

• 3) Camada de Aplicação

Page 3: Redes

2007, Edgard Jamhour

Protocolo do nível de transporteProtocolo do nível de transporte

• Conceito: Os protocolos de transporte são capazes de manipular múltiplos endereços numa mesma estação, permitindo que várias aplicações executadas no mesmo computador possam enviar e receber datagramas independentemente.

Camada Física

meio físico de transmissão

Camada de Enlace dedados

representação elétrica ou óptica

representação lógica binária0001101010101010101010001

Dados

Camada de Rede(IP)

Dados

quadros

Camada de Transporte(TCP ou UDP)

Dados

datagrama IP

Camada de Aplicação

Unidade de dados doprotocolo de transporteT-PDU

cabeçalhode controle

A T-PDU éencapsulada no campode dadosdodatagramaIP.

Page 4: Redes

2007, Edgard Jamhour

Protocolo TCPProtocolo TCP

• Conceito: Protocolo da camada de transporte que oferece um serviço de comunicação confiável e orientado a conexão sobre a camada de rede IP.

• O Protocolo TCP (Transmission Control Protocol) é um protocolo orientado a conexão destinado a construir comunicações ponto a ponto confiáveis.

• O protocolo TCP utiliza um nível de endereçamento complementar aos endereços IP, que permite distinguir vários endereços de transporte numa mesma estação.

• • Os endereços de transporte são números inteiros de 16 bits

denominados portas.

Page 5: Redes

2007, Edgard Jamhour

Endereçamento por PortasEndereçamento por Portas

128.10.2.3 128.10.2.4 128.10.2.5ESTAÇÃO A ESTAÇÃO B ESTAÇÃO C

O protocolo TCP identifica uma conexãopelo par (IP,porta) de ambas as

extremidades. Dessa forma, uma mes maporta pode ser usada para estabelecersimultaneamente duas conexões sem

nenhuma ambiguidade.

Conexão bid irecional formadapelo par (128.10.2.5,1184) e

(128.10.2.4,53)

AplicaçãoA

AplicaçãoB

AplicaçãoC

Conexão bid irecional formada pelopar (128.10.2.3,1184) e

(128.10.2.4,53)

A aplicação B se comunica como seestivesse utilizando uma ligação ponto aponto dedicada com cada uma das outras

aplicações.

CAMADAIP

CAMADA DEAPLICAÇÃO

CAMADASINFERIO RES

Porta53CAMADA

TDP

Porta25

Porta1069

Porta53

Porta1184

Porta1184

4

Page 6: Redes

2007, Edgard Jamhour

Transmissão Por FluxoTransmissão Por Fluxo

• O protocolo TCP é implementado no sistema operacional. • Ele oferce aos desenvolvedores a possibilidade de escrever

aplicações que transmitem e recebem bytes num fluxo contínuo, sem se preocupar com a fragmentação dos dados em pacotes.

aplicação aplicação

TCP

socket

TCP

socket

IP IP

Fluxo contínuo de bytes (stream)

Fluxo contínuo de bytes (stream)

segmentos segmentos

Page 7: Redes

2007, Edgard Jamhour

SegmentaçãoSegmentação

• O fluxo contínuo de bytes é transformado em segmentos para posterior encapsulamento no protocolo IP. O tamanho máximo de um segmento é denominado MSS (Maximum Segment Size).

• O valor default do MSS é geralmente escolhido de forma a evitar a fragmentação IP (MSS < MTU).

Fluxo Contínuo de Bytes

Dados 0

0 200 500 800

200 Dados 500 Dados

bytes

SEGMENTO SEGMENTO SEGMENTO

Page 8: Redes

2007, Edgard Jamhour

TCP = Protocolo ConfiávelTCP = Protocolo Confiável

• O protocolo TCP é um protocolo confiável e orientado a conexão. A técnica usada pelo TCP é retransmissão por ausência de confirmção.

Processo Transmissor

KernelKernel

REDEREDE

Processo Processo ReceptorReceptor

KernelKernel

Mensagem

ACK

Mensagem

ACK

A mensagem é retransmitida se não houver confirmação

Um protocolo confiável inclui mensagens para confirmação de recebimento

Page 9: Redes

2007, Edgard Jamhour

Segmento TCPSegmento TCP

HLEN Reservado BITS DE CÓDIGO 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: URG, ACK, PSH, RST, SYN, FIN tamanho do cabeçalho em paravras de 32 bits

Page 10: Redes

2007, Edgard Jamhour

Campos TCPCampos TCP

• Número de Sequência (32 bits)– Corresponde ao número do primeiro byte do segmento

em relação a fluxo contínuo de bytes da conexão TCP.– Na prática, o número inicial não é 0, mas sim um

número escolhido de forma aleatória para cada conexão.

• Essa técnica diminui a possiblidade de que segmentos de uma conexão antiga já encerrada sejam inseridos em novas conexões TCP.

• Número de Confirmação (32 bits)– Número de sequência do próximo byte que o host está

aguardando receber.

Page 11: Redes

2007, Edgard Jamhour

Comunicação ConfiávelComunicação Confiável

tempo tempo

peer peerseq=100, conf=200, dados=50 bytes

seq=200, conf=150, dados=10 bytes

seq=150, conf=210, dados=30

100 - 149 150 - 179 200 - 209 210 - 299

seq=210, conf=180, dados=90 bytes

Page 12: Redes

2007, Edgard Jamhour

Estabelecimento de uma Conexão TCPEstabelecimento de uma Conexão TCP

• Estágio 1: do cliente para o servidor (segmento SYN)– Define o valor inicial do número de sequência do cliente:

• SEQ = clienteseq

– Flag de controle: • SYN = 1, ACK = 0

• Estágio 2: do servidor para o cliente (segmento SYNACK)– Confirma o valor do número de sequência:

• ACK = clienteseq + 1

– Define o valor inicial do número de sequencia do servidor• SEQ = servidorseq

– Flag de controle: • SYN = 1, ACK = 1

• Estágio 3: do cliente para o servidor– Confirma o valor do número de sequência:

• SEQ = servidorseq + 1• ACK = servidorseq + 1• SYN = 0, ACK = 1

Page 13: Redes

2007, Edgard Jamhour

Encerramento da ConexãoEncerramento da Conexão

• O encerramento de conexão e feito utilizando o Flag FIN.

• Exemplo: O cliente encerra a conexão

1. Do cliente para o servidor– FIN = 1

2. Do servidor para o cliente– ACK

3. Do servidor para o cliente– FIN = 1

4. Do cliente para o servidor– ACK

Page 14: Redes

2007, Edgard Jamhour

RetransmissãoRetransmissão

• A técnica de retransmissão do TCP é o reconhecimento positivo com temporizadores.– O TCP não usa NAK.– Se o ACK não chegar no transmissor num tempo pré-

determinado, o segmento é retransmitido.

• O receptor pode enviar pacotes sem dados, apenas com confirmação, quando não tem nada para transmitir.

Page 15: Redes

2007, Edgard Jamhour

TemporizaçãoTemporização

• A temporização é estimada 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 é a seguinte:

– EstimatedRTT = 0.875 EstimatedRTT + 0.125 SampleRTT

– Temporizador = EstimatedRTT + 4 . Desvio

– Desvio = 0.875 Desvio + 0.125 (SampleRTT – EstimatedRTT)

• Onde:– SampleRTT: última medição de RTT

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

Page 16: Redes

2007, Edgard Jamhour

Recomendações RFC 1122 e 2581Recomendaçõ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 17: Redes

2007, Edgard Jamhour

Retransmissão RápidaRetransmissão Rápida

• Segmentos que são recebidos fora de ordem não são confirmados pelo receptor.– O receptor repete o último valor confirmado para o

transmissor.

• Se o transmissor receber 3 segmentos com o mesmo número de confirmação, ele retransmite os segmentos perdidos. – Essa técnica é denominada retransmissão rápida

(retransmissão antes de expirar o temporizador do segmento).

– Algumas implementações de TCP usam a retransmissão de 3 ACK duplicados como um NAK implícito.

Page 18: Redes

2007, Edgard Jamhour

Controle de FluxoControle de Fluxo

• Janela de Recepção (32 bits)– Informa a quantidade de bytes disponíveis no

buffer de recepção do host.– Quando o receptor informa ao transmissor que

a janela de recepção tem tamanho 0, o transmissor entra num modo de transmissão de segmentos de 1 byte, até que o buffer do receptor libere espaço.

Page 19: Redes

2007, Edgard Jamhour

Controle de FluxoControle de Fluxo

• Transmissão de A para B

– RcvBuffer = buffer de recepção de B

– LastByteRead = número do último byte lido pela aplicação B

– LastByteRcvd = último byte recebido por B

• A janela de recepção enviada de B para A é definida por:

– RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead]

• A quantidade máxima de pacotes de A para B é dada por:

– LastByteSent - LastByteAcked <= RcvWindow

Page 20: Redes

2007, Edgard Jamhour

Controle de CongestionamentoControle de Congestionamento

• Na prática, o TCP impõe uma outra janela que limita o enviou de bytes pelo tranmissor:

• LastByteSent - LastByteAcket <= min(CongWin, RcvWindow)

• A janela CongWin é recalculada a cada RTT.

• A taxa de envio máxima é dada por:

– CongWing/RTT bytes/s

• A janela CongWin é aumentada pelo transmissor se seus pacotes são recebidos com sucesso, e diminuída em caso de falha.

Page 21: Redes

2007, Edgard Jamhour

AlgoritmoAlgoritmo

• a) Inicialização:– CongWin = 1 MSS (Maximum Segment Size = 1460 bytes)

– Threshold = 65 kbps

• b) Fase de crescimento exponencial (a cada ACK recebido)– se CongWin < Threshold vai para Partida Lenta

• CongWin = CongWin + MSS • Isto é, CongWin= Congwin*2 por RTT

– senão vai para Prevenção de Congestionamento• CongWin = CongWin + (MSS/CongWin)• Isto é, CongWin = CongWin + 1 MSS por RTT

• c) Em caso de detecção de perda por 3 ACK duplicados:• Threshold = CongWin = CongWin/2• Vai para prevenção de congestionamento

• d) Em caso de detecção de perda por Temporização• Threshold = CongWin/2• CongWin = 1 MSS (volta para partida lenta)

Page 22: Redes

2007, Edgard Jamhour

Variantes do TCPVariantes do TCP

• TCP Tahoe:– mais antiga

– volta para partida lenta (CongWin=1MSS) para qualquer evento de perda

• TCP Reno:– mais recente

– adota uma recuperação rápida (CongWin=CongWin/2) no caso de deteção de perda por 3 ACK duplicados e partida lenta em caso de detecção de perda por temporização.

• TCP Vegas:– proposta

– Reduz a taxa de transmissão de pacotes mesmo antes da ocorrência de perda, monitorando o aumento do valor do RTT (confirmação dos ACKs).

Page 23: Redes

2007, Edgard Jamhour

Outros Bits de ControleOutros Bits de Controle

• PHS– O receptor deve passar os dados

imediatamente para a camada superior.

• URG– Existem dados no segmento marcados como

urgentes.– A indicação do último byte considerado urgente

no segmento é definida pelo ponteiro de urgência (16 bits).

Page 24: Redes

2007, Edgard Jamhour

Protocolo UDPProtocolo UDP

• Conceito: Protocolo da camada de transporte que oferece um serviço de comunicação não orientado a conexão, construído sobre a camada de rede IP.

• Sendo não orientado a conexão, o protocolo UDP pode ser utilizado tanto em comunicações do tipo difusão (broadcast) quanto ponto a ponto.

CAMADA IP

CAMADA DEAPLICAÇÃO

Demultiplexagem

CAMADASINFERIO RES

datagrama com amensagem UDP

encapsulada.

Porta 1 Porta 2 Porta 3

aplicaçãoA

aplicaçãoB

Porta N

...

CAMADA UDP Ademult iplexagemé feita analisandoa porta dedestino, indicadano cabeçalho decontrole dasmensagens quechegam naestação.

As aplicaçõesrecebem asmensagensendereçando asportas da camadaUDP.

Page 25: Redes

2007, Edgard Jamhour

Mensagem UDPMensagem UDP

Porta de Origem

Comprimento da Mensagem checksum

Dados

…..

Porta de Destino

0 16 31

• As mensagens UDP são bem mais simples que o TCP pois não oferece a mesma qualidade de serviço.

Page 26: Redes

2007, Edgard Jamhour

TCP X UDPTCP X UDP

TCP UDP

Orientado a Conexão Não Orientado a Conexão

Transmissão por Fluxo

Segmentação e Remontagem feita pelo S.O.

Transmissão por Datagramas:

Segmentação e Remontagem feita pela aplicação.

Confiável (confirma recebimento e retransmite pacotes perdidos)

Não confiável

Somente Unicast Unicast, Multicast ou BroadCast

Controle de Fluxo

Controle de Congestionamento

Sem controle

Indicado para transferir grandes quantidades de dados

Indicado para transmissões rápidas (poucos dados) ou que não admitam grande atraso (tempo-real)

Page 27: Redes

2007, Edgard Jamhour

Protocolos do nível de aplicação.Protocolos do nível de aplicação.

• Conceito: Protocolos que disponibilizam serviços padronizados de comunicação, destinados a dar suporte ao desenvolvimento de aplicações para os usuários.

TCP

IP

Enlace de Dados

Física

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace de Dados

Física

Modelo OSI Arquitetura TCP/IP

UDP

FTP SMTPTELNET HTTP

...

SNMP NFS Protocolosde

Aplicação

Page 28: Redes

2007, Edgard Jamhour

Descrição dos Protocolos de AplicaçãoDescrição dos Protocolos de Aplicação

• FTP: File Transfer Protocol. Protocolo que implementa serviços de transferência de arquivos de uma estação para outra (ponto a ponto) através de rede.

• TELNET: Serviço de Terminal Remoto. Protocolo utilizado para permitir aos usuários controlarem estações remotas através da rede.

• SMTP: Simple Mail Transfer Protocol. Protocolo utilizado para transferência de mensagens de correio eletrônico de uma estação para outra. Esse protocolo especifica como 2 sistemas de correio eletrônico interagem.

• HTTP: Hypertext Tranfer Protocol. Protocolo utilizado para transferência de informações multimídia: texto, imagens, som, vídeo, etc.

• SNMP: Simple Network Monitoring Protocol. Protocolo utilizado para monitorar o estado das estações, roteadores e outros dispositivos que compõe a rede.

• NFS: Network File System. Protocolo desenvolvido pela "SUN Microsystems, Incorporated", que permite que as estações compartilhem recursos de armazenamento de arquivos através da rede.