Title: Redes
1Redes
- Prof. Edgard Jamhour
- email jamhour_at_ppgia.pucpr.br
- URL http//ppgia.pucpr.br/jamhour
2CONTEÚDO
- 1) Camada de Transporte
- 2) TCP
- 3) UDP
- 3) Camada de Aplicação
3Protocolo 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.
4Protocolo 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.
5Endereçamento por Portas
6Transmissã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
Fluxo contínuo de bytes (stream)
Fluxo contínuo de bytes (stream)
socket
socket
TCP
TCP
segmentos
segmentos
IP
IP
7Segmentaçã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 lt MTU).
8TCP 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.
Um protocolo confiável inclui mensagens para
confirmação de recebimento
Mensagem
Processo Receptor
Processo Transmissor
ACK
A mensagem é retransmitida se não houver
confirmação
Mensagem
ACK
Kernel
Kernel
REDE
9Segmento TCP
tamanho do cabeçalho em paravras de 32 bits
FLAGS URG, ACK, PSH, RST, SYN, FIN
10Campos 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.
11Comunicação Confiável
100 - 149
150 - 179
200 - 209
210 - 299
peer
peer
seq100, conf200, dados50 bytes
seq200, conf150, dados10 bytes
seq150, conf210, dados30
seq210, conf180, dados90 bytes
tempo
tempo
12Estabelecimento 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
13Encerramento da Conexão
- O encerramento de conexão e feito utilizando o
Flag FIN. - Exemplo O cliente encerra a conexão
- Do cliente para o servidor
- FIN 1
- Do servidor para o cliente
- ACK
- Do servidor para o cliente
- FIN 1
- Do cliente para o servidor
- ACK
14Retransmissã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.
15Temporizaçã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
16Recomendaçõ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).
17Retransmissã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.
18Controle 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.
19Controle 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 lt RcvWindow
20Controle de Congestionamento
- Na prática, o TCP impõe uma outra janela que
limita o enviou de bytes pelo tranmissor - LastByteSent - LastByteAcket lt 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.
21Algoritmo
- 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 lt Threshold vai para Partida Lenta
- CongWin CongWin MSS
- Isto é, CongWin Congwin2 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)
22Variantes do TCP
- TCP Tahoe
- mais antiga
- volta para partida lenta (CongWin1MSS) para
qualquer evento de perda - TCP Reno
- mais recente
- adota uma recuperação rápida (CongWinCongWin/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).
23Outros 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).
24Protocolo 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.
25Mensagem UDP
- As mensagens UDP são bem mais simples que o TCP
pois não oferece a mesma qualidade de serviço.
26TCP 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)
27Protocolos 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.
28Descriçã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.