Administração e Gerenciamento de Redes - SCE 238
1
Redes de Computadores
Transmission Control Protocol - TCP
Administração e Gerenciamento de Redes - SCE 238
2
O modelo TCP/IP
Aplicativo
Transporte
Internet
Interface deRede
IP
TCP,UDP
Administração e Gerenciamento de Redes - SCE 238
3
Comunicação vista pelo TCP
Administração e Gerenciamento de Redes - SCE 238
4
O Serviço de Transporte
• Recebe dados da camada de aplicativos e os divide em unidades menores para a camada internet (IP).– multiplexação/demultiplexação
• Orientado à conexão (ponto a ponto)
• Controle de Fluxo (congestionamento)
• Confiabilidade (tratar erros)
Administração e Gerenciamento de Redes - SCE 238
5
Transporte X Data Link
• Controle de Erros
• Controle de Fluxo
• Seqüenciamento de Pacotes
Administração e Gerenciamento de Redes - SCE 238
6
Roteador
Meio Físico
Roteador SubRede
Host Host
a) Ambiente do Data Link b) Ambiente da camada de transporte
• Dissimilaridades– Endereçamento– Conexão– Capacidade de armazenamento (buffering)
Administração e Gerenciamento de Redes - SCE 238
7
Estabelecendo uma conexão
• Requisição de conexão conexão aceita
• Não é tão simples: Pacotes– perdidos– armazenados (por roteadores)– duplicados
Administração e Gerenciamento de Redes - SCE 238
8
Formato de um segmento TCP
Administração e Gerenciamento de Redes - SCE 238
9
De onde vem a confiabiliade ?
• Técnica de Reconhecimento com Retransmissão: (Aknowledgement with Retransmission)– Receptor comunica-se com emissor enviando
uma msg ACK (aknowledgement) ao receber dados.
– Emissor mantém registro de cada pacote enviado e mantém um timer p/ retransmissão
Administração e Gerenciamento de Redes - SCE 238
10
Reconhecimento c/ retransmissão
Eventos no Emissor Eventos no Receptor
Envia pacote 1
Recebe ACK 1Envia Pacote 2
Recebe ACK 2
Recebe Pacote 1Envia ACK 1
Recebe Pacote 2Envia ACK 2
Msgs na Rede
Administração e Gerenciamento de Redes - SCE 238
11
Pacote perdido ou corrompidoEventos no Emissor Eventos no Receptor
Envia pacote 1Inicia Timer
ACK deveria chegar
Recebe ACK 1Cancela timer
Pacote deveria chegarACK deveria ser enviado
Recebe Pacote 1Envia ACK 1
Msgs na Rede
Tempo espira
Retransmite Pac. 1Inicia Timer
Pacote perdido
Administração e Gerenciamento de Redes - SCE 238
12
Pacotes duplicados
• Origem de pacotes duplicados– Gerados por camadas inferiores de rede– Atrasos (delays) na rede
• Solução– Atribuir a cada pacote um nro de seqüência– exigir do receptor que “lembre” qual nro de
seqüência recebeu
Administração e Gerenciamento de Redes - SCE 238
13
Segmentos, Streams e Nros de seqüência
• TCP enxerga fluxo de dados (data stream) – sequência de octetos (bytes)– Agrupados em Segmentos– Cada segmento viaja dentro de um datagrama
IP
• Transporte utiliza janelas deslizantes– melhor eficiência (maior throughput)– controle de fluxo (buferização)
Administração e Gerenciamento de Redes - SCE 238
14
Janelas Deslizantes
• No TCP, as janelas deslizantes operam ao nível de octetos (não segmentos ou pacotes)
• Octetos são numerados seqüencialmente
• conceitualmente, a cada octeto é atribuído um nro de seqüência.
• Emissor mantém 3 ponteiros sobre a janela para cada conexão.
Administração e Gerenciamento de Redes - SCE 238
15
Janela Deslizante
1 2 3 4 5 6 7 8 9 10 11 ...
Octetos enviados ereconhecidos
Octetos enviados enão reconhecidos
Octetos não enviadosmas que serão sem delay
Somente enviados apósmovimentação da janela
Administração e Gerenciamento de Redes - SCE 238
16
Three-way handshake
• Procedimento usado para estabelecer conexão
• normalmente iniciado por um TCP e atendido por outro TCP
• Por que 3?– a escolha do nro inicial de seqüência (ISN) não
está atrelada a um clock global de rede.
Administração e Gerenciamento de Redes - SCE 238
17
Eventos no Emissor Eventos no Receptor
Envia SYN seq = x
Recebe SYN +ACK Envia ACK y + 1
Recebe segmento SYNEnvia SYN seq = y, ACK x +1
Recebe ACK
Msgs na Rede
Obs: Se SYN está presente: nro de seqüência é ISN O primeiro octeto de dados será ISN+1.
Handshake: abrindo conexão
Administração e Gerenciamento de Redes - SCE 238
18
Seleção do 1º nro de sequência (ISN)
• Aleatório: clock fictício de 32 bits incrementado a cada 4 microsegundos
• ciclo de 4.55 horas
• tempo máximo de vida de um segmento (MSL) < 4,55– ISN será único.
Administração e Gerenciamento de Redes - SCE 238
19
Conexão antigaTCP A TCP B
1. FECHADA LISTEN
2. SYN-ENV. --> <SEQ=100><CTL=SYN> ...
3. (duplicate) ... <SEQ=90><CTL=SYN> --> SYN-RECEB.
4. SYN-ENV. <-- <SEQ=300><ACK=91><CTL=SYN,ACK> <-- SYN-RECEIVED
5. SYN-ENV. --> <SEQ=91><CTL=RST> --> LISTEN 6. ... <SEQ=100><CTL=SYN> --> SYN-RECEB.
7. SYN-ENV. <-- <SEQ=400><ACK=101><CTL=SYN,ACK> <-- SYN-RECEB.
8. ESTAB. --> <SEQ=101><ACK=401><CTL=ACK> --> ESTAB.
Administração e Gerenciamento de Redes - SCE 238
20
Fechando uma conexão
• Conexão TCP: full duplex– contém 2 streams independentes de dados– O TCP que recebe pedido de fechamento, passa
a não aceitar mais dados– O TCP que iniciou o fechamento, pode ainda
receber dados.
Administração e Gerenciamento de Redes - SCE 238
21
Fechando conexão
Eventos no Emissor Eventos no Receptor
Aplicativo fecha conexãoEnvia FIN seq = x
Recebe SYN +ACK Envia ACK y + 1
Recebe segmento SYNEnvia ACK x +1
(informa aplicativo)
Recebe ACK
Msgs na Rede
Aplicativo fecha conexãoEnvia FIN seq = y, ACK x + 1
Recebe ACK
Administração e Gerenciamento de Redes - SCE 238
22
O que é uma janela ?Controle de Congestão
• Janela enviada em cada segmento indica faixa de nro de sequências que o emissor da janela está preparado para receber.
• Tam. relacionado ao buffer da conexão
Administração e Gerenciamento de Redes - SCE 238
23
Administração e Gerenciamento de Redes - SCE 238
24
Aplicativo passa 2K
Aplicativo passa 2K
Emissor pode env. 2K
2K
cheio
2K
2K
vazio0 4K
1K
Emissor Receptor
2K seq=0
ACK=2048 WIN=2048
2K seq=2048
ACK=4096 WIN=0
ACK=4096 WIN=2048
1K seq=4096
Emissor bloqueado
Aplicativo lê 2K
Administração e Gerenciamento de Redes - SCE 238
25
Observações
• Emissor não tem que transmitir assim que dados chegam do aplicativo
• Receptor não tem que retransmitir ACKs imediatamente. (pode esperar o buffer encher)
Administração e Gerenciamento de Redes - SCE 238
26
Formato de um segmento TCP
Administração e Gerenciamento de Redes - SCE 238
27
Tamanho máximo segmento
• Header TCP: 20 bytes
• Header IP: 20 bytes
• Max: – 65535 - 20 - 20 = 65495 bytes de dados
Administração e Gerenciamento de Redes - SCE 238
28
Conteúdo do Segmento 1
• Sequence Number: nro do primeiro octeto no segmento (exceto SYN)
• Aknowledgement: nro do octeto que o emissor espera receber.
• Hlen: comprimento do cabeçalho
• Reserved: não usado (projeto bem feito!)
Administração e Gerenciamento de Redes - SCE 238
29
Conteúdo do Segmento 2
• Code Bits: propósito/objetivo do segmento
URG
ACK
PSH
RST
SYN
FIN
• URG: indica dado urgente sendo transmitido• ACK: Se 0, desprezar nro de aknowledgement• PSH: transmite segmento sem bufferizar• RST: resetar conexão (queda do host, rejeitar
segmento)
Administração e Gerenciamento de Redes - SCE 238
30
Code Bits 2.1
• URG: indica dado urgente sendo transmitido• ACK: Se 0, desprezar nro de aknowledgement• PSH: transmite segmento sem bufferizar• RST: resetar conexão (queda do host, rejeitar
segmento)• SYN: estabelecer conexões (SYN=1)• FIN: liberar uma conexão
– SYN e FIN tem nros de sequência.
Administração e Gerenciamento de Redes - SCE 238
31
Conteúdo do Segmento 3
• Window: quantos octetos podem ser mandados começando a partir do byte no campo aknowledgement number.– window = 0: receptor precisa de “descanso”.
• Checksum: cabeçalho+dados
• Options: funções extras– Especificar valor inicial da janela– se ausente, usar default (536+20=556 octetos)
Top Related