Buscar

Camada 4 Transporte

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

10/10/01 1
4.1 - Destino final da mensagem 
• sistema operacional na maioria dos computadores suporta 
multiprogramação, o que significa que vários programas de aplicação 
podem ser executados simultaneamente. 
• No jargão do sistema operacional, referimos cada programa em execução 
como um processo. 
• É natural pensarmos que um processo em uma determinada máquina é o 
destino final para um mensagem. 
• Entretanto, 
• Como os processos são criados, destruídos e substituídos 
dinamicamente, os remetentes dificilmente saberiam identificar um 
processo numa outra máquina. 
• Portanto, 
• Em vez de pensar num processo como sendo último endereço, seria 
melhor imaginar que cada máquina contém um conjunto de pontos 
abstratos de destino denominados portas de protocolos. 
Camada de Transporte
10/10/01 2
4.2 - Portas de protocolos 
• Cada porta de protocolo é identificada por um número positivo. 
• sistema operacional local fornece uma interface através da qual os 
processos podem especificar uma porta e utilizá-la. 
• Em geral, as portas possuem buffers para que os pacotes fiquem 
armazenados até que sejam retirados pelos processos. 
• Para se comunicar com uma porta externa, um remetente precisa conhecer 
o endereço IP da máquina destinatária e o número da porta do protocolo 
dentro desta máquina. 
• Cada mensagem carrega consigo, o número da porta da máquina destino 
para onde a mensagem deve ser enviada, e o número da porta da máquina 
fonte por onde as respostas devem ser endereçadas. 
Camada de Transporte
10/10/01 3
Portas disponíveis e reservadas 
• Muitas portas são reservadas. São denominadas portas conhecidas. 
• Tais portas são estáticas e assinaladas através de uma autoridade central. 
• Outras portas são assinaladas dinamicamente. 
• Um programa para solicitar um serviço residente em uma outra 
estação deve possuir uma porta. 
• Normalmente, portas dinâmicas são assinaladas para estes 
programas nas estações locais. 
• servidor residente na outra estação responde enviando mensagens 
para esta porta. 
Camada de Transporte
10/10/01 4
4.3 - Protocolo UDP 
• Definição: 
• UDP ou User Datagram Protocol, fornece um meio através da qual 
os programas de aplicação podem enviar datagramas para outras 
aplicações. 
• UDP fornece portas para distinguir os processos que executam 
numa mesma máquina. 
• Cada mensagem UDP contém os números das portas origem e 
destino. 
• UDP usa a camada IP para transportar as mensagens. 
• UDP fornece a mesma semântica de entrega, não confiável e sem 
conexão do protocolo IP, ou seja: 
• Características: 
• Não usa ACKs para garantir que a mensagem chegou ao destino 
• Não ordena as mensagens que chegam, na seqüência certa. 
• Não fornece realimentação para controlar a taxa com que as 
informações fluem entre as máquinas. 
• Portanto, as mensagens UDP podem se perder, duplicar, ou chegar 
fora de ordem. 
• As aplicações que usam UDP, devem fornecer serviço de entrega 
confiável. 
Camada de Transporte
10/10/01 5
Formato de datagrama UDP 
 
Porta de origem Porta de destino 
Tamanho da 
mensagem 
Checksum 
dados 
… 
 
Endereço 
destino 
Endereço 
origem 
Tipo Cabeçalho 
IP 
 CRC 
 
 
 
Porta de origem e de destino identificam os números das portas. 
Tamanho da mensagem contém o número total de octetos do datagrama UDP, 
incluindo o cabeçalho e dados. 
Checksum é opcional e não precisa ser usado em todos os datagramas. Um valor 
zero neste campo indica que ele não deve ser tratado. O Checksum é calculado 
apenas sobre o cabeçalho. 
Camada de Transporte
10/10/01 6
Pseudo cabeçalho do UDP 
• Antes de calcular o checksum, o UDP adiciona um pseudo cabeçalho ao 
datagrama original e calcula o checksum sobre o datagrama inteiro. 
• Este pseudo cabeçalho não é transmitido com o datagrama UDP nem 
incluído no seu tamanho. 
• .O pseudo cabeçalho inclui os seguintes campos: 
• Endereço IP de origem 
• Endereço IP de destino 
• Protocolo 
• Tamanho do UDP ( sem incluir o pseudo cabeçalho ) 
• propósito de utilizar o pseudo cabeçalho é verificar se o datagrama UDP 
alcançou o seu destino correto. 
• Observação : O cabeçalho UDP só especifica o número das portas do 
protocolo. 
• No destino o UDP verifica o checksum utilizando os endereços IP obtidos 
do cabeçalho do datagrama IP que carrega a mensagem UDP. 
Camada de Transporte
10/10/01 7
4.4 - Encapsulamento de UDP 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Encapsulamento de dados UDP na Ethernet 
Dados Cabeçalho UDP
Dados 
Dados Cabeçalho UDP
Cabeçalho 
IP
# porta UDP origem (16 bits) 
# porta UDP destino (16 bits) 
 
protocolo = UDP 
end. origem Internet (32 bits) 
end. destino Internet (32 bits) 
protocolo = UDP 
end. Ethernet origem (48 bits) 
end. Ethernet destino (48 bits) 
Frame Ethernet 
Dados Cabeçalho UDP 
Cabeçalho 
IP 
Cabeçalho 
IP 
Cabeçalho 
IP 
14 20 8 4 
Camada de Transporte
10/10/01 8
Camada de Transporte
4.5 - Multiplexação e Demultiplexação 
• software UDP efetua multiplexação e demultiplexação entre a camada 
UDP e os programas de aplicação. 
• A multiplexação e demultiplexação ocorre através do mecanismo de 
portas. 
• Na maioria das implementações, quando um programa de aplicação 
solicita uma porta, o sistema operacional cria também, uma fila interna 
para armazenar as mensagens que chegam para esta porta. 
• Quando UDP recebe um datagrama, ele verifica se o número da porta 
destino coincide com uma das portas correntemente em uso. 
• Se não coincidir, envia uma mensagem ICMP de erro ( port 
unreachable ) e descarta o datagrama. 
• Se coincidir, enfileira o novo datagrama na porta. 
 
 
 
 
 
Demultiplexação baseado em número de portas 
Camada UDP 
Porta 53 Porta 69 Porta 4500 
Camada IP 
4 
3 
APLICAÇÃO X DNS TFTP 
10/10/01 9
Camada de Transporte
4.6 - TCP ( Transmission Control Protocol ) 
• Fornece um serviço de entrega confiável de dados aos programas de 
aplicação. 
• Efetua também, a demultiplexação de número de portas para identificar 
a aplicação. 
As principais características de TCP: 
• Protocolo orientado a conexão. 
• Transferência confiável de dados. 
• Transferência orientada a cadeia ( stream ) de bytes 
• Ressequenciamento. 
• Controle de fluxo ( janela deslizante ), 
• Multiplexação 
• Transmissão full-duplex 
• Graceful close. 
10/10/01 10
Camada de Transporte
 TCP ( Transmission Control Protocol ) 
Protocolo orientado a conexão 
• Antes de efetuar a transmissão de dados, o aplicativo deve solicitar o 
estabelecimento de uma conexão com o outro aplicativo. 
• módulo TCP mantém o estado de cada conexão existente. 
Transferência confiável de dados 
• protocolo TCP usa números de seqüência e reconhecimentos para 
conversar com outra estação na rede. 
• Números de seqüência são usados para determinar a ordem dos 
dados que chegam e para detectar pacotes que estão faltando. 
• número de seqüência com reconhecimento é usado para efetuar 
uma comunicação confiável. 
• TCP usa sequenciamento orientado a bytes. 
• Cada byte possui um número seqüencial. 
• Cada pacote é assinalado com um número de seqüencial. 
• número de seqüência pula conforme a quantidade de bytes que 
existem dentro dos pacotes. 
10/10/01 11
Camada de Transporte
TCP ( Transmission Control Protocol ) 
Sequenciamento de bytes no TCP 
 
 
 
 
 
 
 
 
 
 
 
 
 
54 
53 
51 
52 
44 
45 
46 
47 
48 
49 
50 
40 
41 
42 
43 
Número de seqüência = 51 
Número de seqüência = 44 
Número de
seqüência = 40 
Dado (byte) dentro 
do pacote 
10/10/01 12
Camada de Transporte
TCP ( Transmission Control Protocol ) 
Transferência orientada a cadeia ( stream ) de bytes: 
• Protocolo orientado a stream de bytes são aqueles projetados para 
enviar bytes individuais, e não blocos, frames ou datagramas. 
• . Os dados são passados da camada superior, bytes a bytes 
• . A camada TCP, agrupa estes bytes em segmentos TCP. 
• Estes segmentos são passados para camada IP ( ou outro protocolo de 
rede ) para a transmissão. 
• tamanho dos segmentos é determinado pelo TCP, embora o 
implementador do sistema possa determinar como TCP deve fazer essa 
decisão. 
• Em virtude da natureza orientada a stream, TCP não reconhece dados 
estruturados. 
• Por exemplo, não existe meio para uma aplicação de folha de 
pagamentos ter as fronteiras dos streams estarem na fronteira 
dos registros dos empregados. 
• A aplicação deve cuidar disso. 
10/10/01 13
Camada de Transporte
TCP (Transmission Control Protocol ) 
Ressequenciamento 
• TCP põe na ordem correta, os segmentos que chegam fora de ordem. 
• . TCP usa um esquema de reconhecimento eficiente no qual reconhece 
apenas o maior número contíguo dos segmentos recebidos sem erro. 
• Não reconhece um número de segmento se os anteriores não foram 
recebidos. 
• Descarta também, os segmentos duplicados. 
Controle de fluxo 
• TCP efetua o controle de fluxo enviando um valor de " janela " ao 
transmissor. 
• O transmissor pode transmitir um número especificado de bytes dentro 
dessa janela., quando essa janela é fechada e o transmissor para de 
enviar os dados. 
• Multiplexação 
• TCP permite multiplexar várias sessões de usuários dentro de um único 
host. 
• Esse mecanismo é baseado em portas e sockets. 
10/10/01 14
Camada de Transporte
TCP (Transmission Control Protocol) 
 
 
 
 
Transmissão full-duplex 
 
 
• Fornece transmissão simultânea nos dois sentidos. 
 
 
 
 
Graceful close 
 
 
• Permite encerrar (fechar) a conexão assegurando que todos os dados 
foram reconhecidos antes de remover a conexão. 
10/10/01 15
Camada de Transporte
TCP (Transmission Control Protocol) 
 
Portas, pontos finais e conexões 
 
 
• O TCP define um ponto final como sendo um par de inteiros (host, porta),
onde host é o endereço IP do host e porta é uma porta TCP no host. 
 
 
• Esse valor deve ser único na internet. 
 
 
• Um par de pontos finais define uma conexão. 
 
 
• Como o TCP identifica uma conexão por um par de pontos finais, uma 
porta TCP pode ser compartilhada por múltiplas conexões. 
 
 
• Isto significa que um programa pode fornecer serviço concorrente para
múltiplas conexões simultaneamente sem precisar de uma porta para 
cada conexão. 
10/10/01 16
TCP (Transmission Control Protocol) 
 
 
Distinção entre conexões. 
 
 
• O ponto final (128.1.2.3,25) especifica uma porta TCP de porta 25 na
máquina de endereço 128.1. 2.3. 
 
• O par de pontos finais (128.3.2.1,100) e (128.1.2.3,25) definem uma conexão
entre estes dois pontos finais. 
 
• Um novo par de pontos finais (128.3.2.1,200) e (128.1.2.3,25) definem uma
nova conexão. 
 
 
 
Camada de Transporte
10/10/01 17
TCP (Transmission Control Protocol) 
 
 
Formas de estabelecer uma conexão 
 
 
a) Passive Open – Modo na qual permite uma aplicação (por exemplo: 
servidor) dizer ao TCP para esperar uma por uma solicitação de conexão de
sistemas remotos (por exemplo: processo cliente). 
 
b) Active Open – Modo no qual permite uma aplicação solicitar o 
estabelecimento de uma conexão. 
 
 
Estabelecimento de conexão 
 
• A aplicação de um dos lados executa uma função (Passive Open) de
sistema operacional para aguardar uma conexão da rede. 
 
• Nesse instante o sistema operacional assinala uma porta para esse lado da 
conexão. 
 
• A aplicação do outro lado solicita uma função (Active Open) do sistema
operacional para estabelecer uma conexão. 
 
• Os dois módulos de software TCP se comunicam entre si para estabelecer 
uma conexão. 
 
• Uma vez estabelecida a conexão, os programas podem passar os dados. 
Camada de Transporte
10/10/01 18
TCP (Transmission Control Protocol) 
 
 
Formato de Segmento 
 
 
 
• A unidade de transferência de dados trocada entre estações usando protocolo
TCP é denominada Segmento. 
 
 
• Os Segmentos são usados para: 
 
• Estabelecer conexões; 
• Transferir dados; 
• Enviar reconhecimentos; 
• Dar aviso do tamanho da janela; 
• Fechar conexões. 
Camada de Transporte
10/10/01 19
TCP (Transmission Control Protocol) 
 
 
 
 
Camada de Transporte
10/10/01 20
TCP (Transmission Control Protocol) 
 
Segmento TCP 
 
• Porta de Origem e Porta de Destino – contém os números das portas TCP 
associadas aos programas de aplicação em cada ponto da conexão. 
• Número de seqüência – identifica o número de seqüência do primeiro octeto 
desse segmento dentro do stream como um todo. 
• Número de reconhecimento (Ack) – identifica o número do próximo octeto 
que o destino espera receber. 
• HLEN – contém um inteiro que especifica o tamanho de cabeçalho do 
segmento medido em múltiplos de 32 bits. 
• Bits de código 
 
• URG – Campo Urgent Pointer é valido; 
• ACK – Campo número de ACK é válido; 
• PSH – Este segmento solicita uma operação push; 
• RST – Ocorre reiniciação da conexão; 
• SYN – Sincroniza os número de seqüência; 
• FIN – O transmissor deseja terminar a conexão,. 
 
• Janela – Indica quantos bytes o receptor está disposto a aceitar. O valor de 
bytes que o transmissor pode transmitir é estabelecido adicionando-se o valor 
contido no campo Número de ACK com o valor contido no campo Janela. 
• Checksum – É baseado na soma em complemento de um pseudocabeçalho, 
do cabeçalho e dos dados. O mesmo artifício é usado pelo UDP. 
Camada de Transporte
10/10/01 21
TCP (Transmission Control Protocol) 
 
 
Segmento TCP 
 
 
• Urgent Pointer – É usado para identificar um bloco de dados urgentes dentro 
do segmento TCP. 
 
 
• Opções – Esse campo é usado para TCP negociar, com o TCP na outra 
ponta da conexão, o tamanho máximo do segmento (MSS). 
 
• O receptor usa este campo para informar o tamanho máximo do seu 
buffer. 
• Se não usar essa opção, o tamanho do segmento pode variar até o 
tamanho máximo (64 kbytes). 
 
 
• Padding – Para garantir que o tamanho do cabeçalho do segmento é múltiplo 
de 32 bits. 
Camada de Transporte
10/10/01 22
Gerenciamento de Conexão TCP 
 
 
• O TCP é um protocolo dirigido por estados (state-driven). 
 
• Portanto, as operações seguem as regras descritas por um diagrama de
estados; 
 
• Cada sessão de usuário que usa o protocolo TCP é gerenciada por um
diagrama de estado (instância de TCP). 
Camada de Transporte
10/10/01 23
Estabelecimento de uma conexão TCP (Open) 
 
 
Exemplo: 
 
1. O usuário TCP A envia uma primitiva active-open ao TCP; 
 
2. O usuário remoto B envia uma primitiva passive-open ao TCP; 
 
3. Active-open faz com que TCP prepare um segmento com o bit SYN em 1. 
O segmento é enviado ao TCP B (No exemplo, envia SYN SEQ 100, 
onde 100 é usado como número de seqüência inicial); 
 
4. Ao receber o SYN, TCP B retorna um ACK (seqüência de numero 101) e 
também um SEQ (no exemplo, SEQ 177); 
 
 
5. Ao receber este segmento, TCP B responde um ACK com SEQ (178); 
 
6. e 7. Uma vez ocorrido os eventos 3, 4 e 5 (denominado Three Way 
Handshake), os dois módulos TCP devolvem o resultado dos respectivos 
opens aos usuários. 
Camada de Transporte
10/10/01 24
Estabelecimento de uma conexão TCP (Open) 
 
Exemplo: 
 
 
Camada de Transporte
10/10/01 25
Estabelecimento de uma conexão TCP (Open) 
 
Exemplo:
Operação simultânea de opens 
 
 
 
Camada de Transporte
10/10/01 26
Término de uma conexão TCP 
 
 
• Dois programas que utilizam TCP podem terminar a conversação
elegantemente (graceful close) utilizando a operação CLOSE. 
 
 
• Neste caso, TCP utiliza também um mecanismo de three-way handshake para 
encerrar a conexão. 
 
 
• Vale lembrar que a conexão TCP é full-duplex e pode conter dois streams 
independentes sendo transferidos um em cada direção. 
 
 
• Uma vez encerrada a conexão em uma direção, o TCP não aceita mais dados
daquela direção. 
 
 
• Entretanto, os dados podem continuar fluindo na direção oposta até que ao 
emissor encerre a conexão utilizando procedimento análogo ao de
estabelecimento de conexão. 
Camada de Transporte
10/10/01 27
Término de uma conexão TCP 
 
Exemplo: 
 
1. Usuário TCP A deseja terminar uma conexão com o usuário TCP B. Envia 
a primitiva Close ao B; 
 
2. Como efeito dessa primitiva, o módulo TCP A envia um segmento com bit 
FIN em 1. O número de seqüência 151 da figura representa a próxima 
seqüência de dados que estará sendo enviada para o usuário B; 
 
3. O TCP B reconhece FIN SEQ 151. No seu segmento tem SEQ=188 
(representando a última seqüência reconhecida pelo módulo A) e 
ACK=152; 
 
4. Como efeito de 3, TCP B envia uma primitiva Closing A ao usuário B; 
 
5. Nesse exemplo, o usuário B reconhece e executa Close ao A; 
 
6. Como efeito, o módulo TCP B envia um segmento com o bit FIN em 1, 
SEQ=188 e ACK=152. 
 
7. O módulo TCP A reconhece o segmento final com ACK=189; 
 
8. e 9. Como resultado dessas operações, os sinais de término de conexão 
são enviados aos usuários. 
Camada de Transporte
10/10/01 28
Camada de Transporte
Término de uma conexão TCP 
 
Exemplo: 
 
• Término de uma conexão TCP 
 
 
10/10/01 29
Camada de Transporte
4.7 - Técnica usada para garantir entrega confiável
• Utiliza-se a técnica denominada reconhecimento positivo com 
retransmissão.
• Essa técnica exige que o receptor envie uma mensagem de 
reconhecimento ao remetente sempre que recebe um dado.
•
• O remetente mantém um registro de cada pacote que ele envia e espera 
por um reconhecimento antes de enviar o próximo pacote.
• O remetente inicia também um temporizador ao mandar um pacote e 
retransmite o pacote se ocorrer o “time-out” antes da chegada do 
reconhecimento.
•
• Outro problema de confiabilidade consiste na duplicação de pacotes.
• A duplicação pode ser provocada pelas camadas inferiores ou quando a 
rede introduz um grande atraso provocando uma retransmissão.
• Tanto pacotes como reconhecimentos podem ser duplicados.
• Tanto pacotes como reconhecimentos podem ser duplicados.
• Normalmente, protocolos confiáveis detectam pacotes duplicados 
assinalando cada pacote com um número de seqüência.
• Os protocolos de reconhecimento positivo enviam também números de 
seqüência de volta nos reconhecimentos, de forma que o receptor possa
associar reconhecimentos com os pacotes.
10/10/01 30
Camada de Transporte
4.8- Sliding window
• Um protocolo de reconhecimento positivo simples desperdiça a 
capacidade da rede porque ele deve esperar pelo reconhecimento do 
pacote anterior antes de enviar o prôximo.
• A técnica de sliding window consiste em transmitir múltiplos pacotes 
antes de esperar por um reconhecimento.
• O protocolo coloca uma janela na sequência de pacotes a serem 
transmitidos e transmite todos os pacotes que estão dentro da janela.
• Por exemplo, num protocolo de sliding window com janela de tamanho 8, 
o remetente pode enviar 8 pacotes antes de receber um reconhecimento.
• Quando o remetente receber um reconhecimento para o primeiro pacote 
dentro da janela, ele “desliza” a janela e envia o próximo pacote.
• A janela desliza a medida que os reconhecimentos são recebidos.
• O protocolo de sliding window sempre lembra quais pacotes foram 
reconhecidos e mantém um timer separado, para cada pacote não 
reconhecido.
• No lado do receptor, o software de protocolo mantém urna janela 
análoga. aceitando e reconhecendo pacotes a medida que chegam.
10/10/01 31
Camada de Transporte
10/10/01 32
Sliding Window do TCP 
 
 
• O Sliding Window do TCP opera a nível de bytes, e não a nível de 
segmentos ou de pacotes. 
 
• Os bytes de um stream são numerados seqüencialmente. 
 
• O remetente (e o destinatário) mantém 3 ponteiros associados com cada 
conexão. 
 
• Os ponteiros definem o Sliding Window. 
Conceitos Gerais
10/10/01 33
Camada de Transporte
Janela de Tamanho Variável e Controle de Fluxo 
 
 
 
• TCP permite que o tamanho da janela varie com o tempo. 
 
 
• Cada reconhecimento, que especifica quantos bytes foram recebidos, 
contém um “aviso” (no campo Windows) que especifica quantos bytes 
adicionais o receptor está preparado para receber. 
 
 
• Esse aviso pode significar o tamanho atual do buffer do receptor. 
 
 
• Em resposta a um aviso de aumento de tamanho do buffer, o remetente 
aumenta o tamanho do seu sliding window. 
 
• Em resposta a um aviso de diminuição do tamanho do buffer, o 
remetente diminui o tamanho do seu sliding window. Isto é, deixa de 
deslizar a janela. 
 
 
• No extremo caso, o remetente pode receber um aviso com tamanho zero. 
Isto faz para a transmissão. 
 
 
• A vantagem de usar janela variável consiste no fato de fornecer fluxo de 
controle junto com uma transferência confiável. 
10/10/01 34
Camada de Transporte
Janela de Tamanho Variável e Controle de Fluxo
• Exemplo de uma atualização de janela.
10/10/01 35
Camada de Transporte
4.9- RECONHECIMENTOS E RETRANSMISSÕES 
 
 
• Como TCP envia dados em segmentos de comprimentos variáveis, 
os reconhecimentos não podem referenciar número de 
datagramas ou de segmentos. 
 
• Em vez disso, os números referem a posição de byte dentro do 
stream. 
 
• O receptor acumula bytes desde o início do stream. 
 
• Os reconhecimentos sempre especificam o número de seqüência 
do próximo byte que o receptor espera receber da fonte. 
 
• O esquema de reconhecimento do TCP é denominado de 
reconhecimento acumulativo. 
10/10/01 36
Camada de Transporte
10/10/01 37
Camada de Transporte
4.10- TIME- OUT E RETRANSMISSÃO 
 
 
• A escolha de um valor para o temporizador de retransmissão é 
complexa. 
 
• Num ambiente internet, um segmento pode atravessar diversas 
redes de capacidades diferentes, através de múltiplos gateways 
com atrasos que variam conforme o tráfego. 
 
• Os segmentos enviados pelo transmissor podem se perder, 
invalidando qualquer estimativa de atraso. 
 
• Os reconhecimentos enviados pelo receptor também podem se 
perder, invalidadando também as estimativas de atraso. 
 
• O software TCP acomoda essa variação dos atrasos usando 
algoritmo de retransmissão adaptiva. 
 
• TCP monitora o desempenho de cada conexão e calcula valores 
razoáveis para timeouts. 
 
• TCP registra o tempo decorrido entre o envio de cada segmento e 
o recebimento do seu ACK (RTT – Round Trip Time). 
10/10/01 38
Camada de Transporte
• Sempre que TCP obtém um novo RTT, ele ajusta o seu RTT médio para
essa conexão, usando a seguinte fórmula: 
 
RTTmédio = (a . RTTanterior) + ((1 – a) . RTTnovo) 
 
Onde: 0 ≤≤≤≤ a <<<< 1 
 
Se a > 1, RTT fica imune as grandes variações de delay 
Se a > 0, RTT responde rapidamente as variações de delay. 
 
• Ao enviar um pacote, TCP calcula o valor de timeout em função de
RTT. 
 
• Nas implementações originais, usava-se a fórmula: 
 
 Timeout = b . RTT onde b > 1 
 
• Para detectar perda de pacotes rapidamente, b > 1. 
 
- Otimiza througput – não espera desnecessariamente para 
retransmitir.
- Causa retransmissão desnecessária, congestionando a rede. 
 
- A especificação original recomendava b = 2. 
10/10/01 39
Camada de Transporte
4.11- AMOSTRAGEM DE RTT 
 
 
• A complicação da amostragem surge quando o temporizador chega ao 
fim e o TCP envia o segmento novamente num segundo datagtrama. 
 
• Como os dois datagramas carregam exatamente o mesmo dado, a 
origem não tem meios de saber se o ACK corresponde ao datagrama 
original ou ao datagrama retransmitido. 
 
• Se associar o reconhecimento com a transmissão original, o valor de 
RTT estimado pode crescer à cada retransmissão. 
 
• Se associar o reconhecimento com a mais recente retransmissão pode 
ocorrer o contrário, isto é, o novo RTT será menor que o anterior e as 
retransmissões podem ocorrer antes da chegada normal de um ACK. 
 
 
ALGORITMO DE KARN’S 
 
 
• TCP não atualiza o RTT quando existe retransmissão. 
 
• Atualiza RTT apenas nos casos de ACKs de segmentos transmitidos 
apenas uma vez. 
 
• Se o temporizador chega ao fim e causa uma retransmissão, TCP 
aumenta o valor de timeout. Por exemplo: 
 
Timeout novo = c * timeout C típico = 2 
 
• Quando um ACK chega antes de time-out, TCP calcula o novo RTT e 
utiliza para o cálculo de novo time-out. en

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Outros materiais