0% found this document useful (0 votes)
28 views55 pages

Lecture 3 Transport Layer 1

Lecture 3 Transport Layer 1

Uploaded by

Jac Tad Cupa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views55 pages

Lecture 3 Transport Layer 1

Lecture 3 Transport Layer 1

Uploaded by

Jac Tad Cupa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Machine Translated by Google

Capítulo 3
Protocolos da camada de transporte

Esses slides foram baseados no trabalho principal de:

Redes de Computadores: Uma Abordagem Top-


Down 8ª edição
Jim Kurose, Keith Ross
Pearson, 2020

Por favor, veja: https://gaia.cs.umass.edu/kurose_ross/ppt.php

Outra bibliografia importante para estes slides: https://bkarak.wizhut.com/www/lectures/networks- 07/


NetworkProtocolsHandbook.pdf Introdução: 1-1
Machine Translated by Google

Camada de transporte: visão geral


Nosso objetivo:

§ compreender os princípios por trás § aprenda sobre os protocolos da camada de


dos serviços da camada de transporte: transporte da Internet:

• UDP: transporte sem conexão

• multiplexação, • TCP: transporte confiável orientado a conexão

demultiplexação
• transferência confiável de dados • Controle de congestionamento TCP
• controle de fluxo

• controle de congestão

Camada de Transporte: 3-2


Machine Translated by Google

Camada de transporte: roteiro

§ Serviços da camada de
transporte § Multiplexação e demultiplexação
§ Transporte sem conexão: UDP §
Princípios de transferência confiável de
dados § Transporte orientado à conexão: TCP
§ Princípios de controle de
congestionamento § Controle
de congestionamento TCP §
Evolução da funcionalidade da camada de transporte

Camada de Transporte: 3-3


Machine Translated by Google

Serviços e protocolos de transporte


aplicativo
transporte
rede
§ fornecer comunicação lógica rede móvellink de dados
físico
ISP nacional ou global
entre processos de aplicativos em

transport
lógico
fim-
fim execução em hosts diferentes

§ ações de protocolos de transporte em


sistemas finais:
ISP
• remetente: quebra mensagens do aplicativo local ou regional

em segmentos, passa para a camada de rede rede doméstica contente


• receptor: remonta segmentos em rede de
provedores aplicação
mensagens, passa para a camada de aplicação de datacenter
transporte
rede
rede
link de dados
§ dois protocolos de transporte disponíveis para físico

Aplicativos de Internet empreendimento


rede
• TCP, UDP
Camada de Transporte: 3-4
Machine Translated by Google

Transporte versus serviços e protocolos da camada de rede

analogia doméstica:
12 crianças na casa de Ann enviando
cartas para 12 crianças na
casa de Bill:
§ anfitriões = casas
§
processos = crianças
§
mensagens de aplicativos = cartas
em envelopes
§ protocolo de transporte = Ann e Bill que
demuxam para irmãos internos
§ protocolo da camada de rede = serviço
postal

Camada de Transporte: 3-5


Machine Translated by Google

Transporte versus serviços e protocolos da camada de rede

analogia doméstica:
§camada de transporte:
12 crianças na casa de Ann enviando
comunicação entre cartas para 12 crianças na
processos casa de Bill:
• depende e aprimora serviços da § anfitriões = casas
§
camada de rede processos = crianças
§
mensagens de aplicativos = cartas
em envelopes
§camada de rede: § protocolo de transporte = Ann e Bill que
comunicação entre hosts demuxam para irmãos internos
§ protocolo da camada de rede = serviço
postal

Camada de Transporte: 3-6


Machine Translated by Google

Ações da Camada de Transporte

Remetente:

aplicativo § recebe uma mensagem da camada aplicativoaplicativo. mensagem

de aplicação §
determina os valores dos TT
transporte
hh aplicativo. mensagem
transporte
campos do cabeçalho do segmento

rede (IP) § cria segmento rede (IP)


link
§
passa segmento para IP link

físico físico

Camada de Transporte: 3-7


Machine Translated by Google

Ações da Camada de Transporte

Receptor:

aplicativo § recebe segmento do IP § aplicativo


verifica os valores do cabeçalho
transporte
aplicativo. mensagem § extrai mensagem da camada transporte
de aplicação
rede (IP) rede (IP)
§ demultiplexa a mensagem até a
link aplicação via soquete link

aplicativo
físico
físico Th . mensagem

Camada de Transporte: 3-8


Machine Translated by Google

Dois principais protocolos de transporte da Internet


aplicação
rede de
§ TCP: Protocolo de Controle de Transmissão transporte rede
móvel
link de dados físico
ISP nacional ou global
• entrega confiável e em ordem •

transport
lógico
fim-
fim controle de congestionamento
• controle de fluxo

• configuração de conexão
ISP
§UDP: Protocolo de Datagrama do Usuário • local ou regional

entrega não confiável e não ordenada • rede doméstica contente

extensão simples do IP de “melhor esforço” provedor


rede datacenter aplicativo
rede transporte
rede link
§ serviços não disponíveis: • de
dados
físico
garantias de atraso •
rede
garantias de largura de banda empresarial

Camada de Transporte: 3-9


Machine Translated by Google

Capítulo 3: roteiro
§ Serviços da camada de
transporte § Multiplexação e demultiplexação
§ Transporte sem conexão: UDP §
Princípios de transferência confiável de
dados § Transporte orientado à conexão: TCP
§ Princípios de controle de
congestionamento § Controle
de congestionamento TCP §
Evolução da funcionalidade da camada de transporte

Camada de Transporte: 3-10


Machine Translated by Google

Multiplexação/demultiplexação

multiplexação como remetente: demultiplexação como receptor: use


manipular dados de vários informações de cabeçalho para
soquetes, adicionar cabeçalho de entregar segmentos recebidos ao
transporte (mais tarde usado para demultiplexação) soquete correto

aplicativo

aplicativo P1 P2 aplicativo tomada


P3 transporte
P4
processo
transporte
rede transporte
rede link rede
link físico link
físico físico

Camada de Transporte: 3-11


Machine Translated by Google

Servidor HTTP

cliente

aplicativo aplicativo
Mensagem HTTP

transporte
Mensagem HTTP HTTP

transporte
rede
Mensagem HTTP HnHt
transporte
rede
Mensagem HTTP HnHt
link rede
link físico link
físico físico

Mensagem HTTP HnHt

Camada de Transporte: 3-12


Machine Translated by Google

P: como a camada de transporte soube entregar a mensagem ao


processo do navegador Firefox em vez do processo Netflix ou Skype?

cliente

aplicativo aplicativo
Mensagem HTTP

Mensagem HTTP Mensagem HTTP HTTP


transporte

transporte
rede transporte
rede link rede
link físico link
físico físico

Camada de Transporte: 3-13


Machine Translated by Google

demultiplexação
Machine Translated by Google

aplicativo

? transporte

demultiplexação
Machine Translated by Google

Demultiplexação
Machine Translated by Google
Machine Translated by Google
Machine Translated by Google

multiplexação
Machine Translated by Google

aplicativo

transporte

multiplexação
Machine Translated by Google

Multiplexação
Machine Translated by Google

Como funciona a demultiplexação

§ host recebe datagramas IP 32 bits

• cada datagrama tem IP de origem porta de origem # porta de destino #


endereço, endereço IP de destino
• cada datagrama carrega um outros campos de cabeçalho

segmento da camada de transporte


• cada segmento tem número
aplicativo
de porta de origem e
destino § host usa endereços IP e dados (carga útil)

números de porta para direcionar o


segmento para o soquete apropriado Formato de segmento TCP/UDP

Camada de Transporte: 3-22


Machine Translated by Google

Demultiplexação sem conexão


Lembrar: ao receber o host recebe
Segmento UDP :
§ ao criar o soquete, deve-se especificar
• verifica o número da porta de destino no
a porta local do host #:
segmento
DatagramSocket meuSocket1 = novo • direciona o segmento UDP para o
DatagramSocket(12534); soquete com esse número de porta

§ ao criar datagrama para enviar para


soquete UDP, deve especificar
Datagramas IP/UDP com mesmo destino.
porta #, mas diferentes endereços
• endereço IP de destino
IP de origem e/ou números de porta
• Porto de destino # de origem serão direcionados para o
mesmo soquete no host receptor
Camada de Transporte: 3-23
Machine Translated by Google

Demultiplexação sem conexão: um exemplo


meuSocket
= soquete(AF_INET,SOCK_DGRAM)
meuSocket.bind(myaddr,6428);
meuSocket meuSocket
= soquete(AF_INET,SOCK_STREAM) = soquete(AF_INET,SOCK_STREAM)
meuSocket.bind(myaddr,9157); meuSocket.bind(myaddr,5775);
aplicativo
aplicativo aplicativo
P1
P3 P4
transporte
transporte rede transporte
rede link rede
link link
físico
físico físico

Porta de origem B : 6428 Porta de origem D : ?


Porta de destino: 9157 porta de destino: ?

Uma porta de origem: Porta de origem C : ?


9157 porta de destino: 6428 porta de destino: ?
Machine Translated by Google

Demultiplexação orientada a conexão


§ Soquete TCP identificado por 4 § servidor pode suportar muitos
tuplas: • soquetes TCP simultâneos:
endereço IP de origem • cada soquete identificado por sua própria

• número da porta de origem tupla de 4

• endereço IP de destino • cada soquete associado a um cliente de

conexão diferente
• número da porta de destino

§ demux: o receptor usa todos os


quatro valores (4 tuplas) para
direcionar o segmento
para o soquete apropriado

Camada de Transporte: 3-25


Machine Translated by Google

Demultiplexação orientada a conexão: exemplo


aplicativo
aplicativo P4 P5 P6 aplicativo
P1 P2 P3
transporte
transporte rede transporte
rede link rede
link link
físico
físico servidor: físico
endereço IP B

host:
host: IP de origem, porta: B,80
IP de destino, porta: A,9157 IP de origem, porta: C,5775
endereço IP C
endereço IP A
IP de destino, porta: B,80

IP de origem, porta: A, 9157


IP de destino, porta: B, 80
IP de origem, porta: C,9157
IP de destino, porta: B,80

Três segmentos, todos destinados ao endereço IP: B,


porta de destino: 80 são demultiplexados para diferentes soquetes
Camada de Transporte: 3-26
Machine Translated by Google

Resumo
§ Multiplexação, demultiplexação: com base em segmentos, valores de campos
de cabeçalho de datagrama

§ UDP: demultiplexação usando número de porta de destino (somente)

§ TCP: demultiplexação usando 4 tuplas: endereços IP de origem


e destino e números de porta
§ Multiplexação/demultiplexação acontece em todas as camadas

Camada de Transporte: 3-27


Machine Translated by Google

Capítulo 3: roteiro
§ Serviços da camada de
transporte § Multiplexação e demultiplexação
§ Transporte sem conexão: UDP §
Princípios de transferência confiável de
dados § Transporte orientado à conexão: TCP
§ Princípios de controle de
congestionamento § Controle
de congestionamento TCP §
Evolução da funcionalidade da camada de transporte

Camada de Transporte: 3-28


Machine Translated by Google

UDP: Protocolo de Datagrama do Usuário

Por que existe um UDP?


§ “sem frescuras”, “básico”
§ nenhum estabelecimento
Protocolo de transporte da Internet
de conexão (o que pode adicionar atraso RTT)
§ serviço de “melhor esforço”, os
segmentos UDP podem ser: § simples: nenhum estado de conexão no remetente,
• perdido destinatário

• entregue fora de ordem no aplicativo § tamanho pequeno do cabeçalho

§ sem conexão: § sem controle de congestionamento

§ O UDP pode explodir tão rápido quanto


• nenhum handshake entre remetente e
desejado!
receptor UDP
§ pode funcionar diante de
• cada segmento UDP tratado congestionamentos
independentemente dos outros
Camada de Transporte: 3-29
Machine Translated by Google

UDP: Protocolo de Datagrama do Usuário

§ Uso de UDP:
§ streaming de aplicativos multimídia (tolerante a perdas, sensível à taxa) § DNS

§ SNMP

§HTTP /3

§ se for necessária uma transferência confiável através de UDP (por exemplo, HTTP/3):

§ adicionar a confiabilidade necessária na camada de aplicação

§ adicionar controle de congestionamento na camada de aplicação

Camada de Transporte: 3-30


Machine Translated by Google

UDP: Protocolo de datagrama de usuário [RFC 768]

Camada de Transporte: 3-31


Machine Translated by Google

UDP: Ações da Camada de Transporte

Cliente SNMP Servidor SNMP

aplicativo aplicativo

transporte transporte
(UDP) (UDP)

rede (IP) rede (IP)


link link

físico físico

Camada de Transporte: 3-32


Machine Translated by Google

UDP: Ações da Camada de Transporte

Servidor SNMP
Cliente SNMP
Ações do remetente UDP:
aplicativo § recebe uma mensagem da camada aplicativo
Mensagem SNMP

de aplicação §
transporte transporte
determina os valores dos campos do Mensagem SNMP UDP UDPhh

(UDP) cabeçalho do segmento UDP


(UDP)

rede (IP) § cria o segmento UDP passa o rede (IP)


link
§
segmento para IP link

físico físico

Camada de Transporte: 3-33


Machine Translated by Google

UDP: Ações da Camada de Transporte

Servidor SNMP
Cliente SNMP
Ações do receptor UDP:

aplicativo § recebe segmento do IP § verifica aplicativo


o valor do cabeçalho da soma
transporte de verificação UDP transporte
Mensagem SNMP
(UDP) § extrai a camada de aplicação
(UDP)
mensagem rede (IP)
rede (IP)
Mensagem SNMP UDPh
§ demultiplexa a mensagem até a
link link
aplicação via soquete

físico físico

Camada de Transporte: 3-34


Machine Translated by Google

Cabeçalho do segmento UDP

32 bits

porta de origem # porta de destino #

comprimento
soma de verificação

aplicativo comprimento, em bytes de


dados Segmento UDP,

(carga útil) incluindo cabeçalho

dados de/para a

Formato de segmento UDP camada de aplicação

Camada de Transporte: 3-35


Machine Translated by Google

Soma de verificação UDP

Objetivo: detectar erros (ou seja, bits invertidos) no segmento transmitido

1º número 2º número soma

Transmitido: 5 6 11

Recebido: 4 6 11

soma de verificação computada


pelo receptor
= soma de verificação

calculada pelo remetente (conforme recebido)

Camada de Transporte: 3-36


Machine Translated by Google

Soma de verificação da Internet

Objetivo: detectar erros (ou seja, bits invertidos) no segmento transmitido

remetente: receptor:
§ tratar o conteúdo do segmento UDP
§ calcular soma de verificação do segmento recebido
(incluindo campos de cabeçalho UDP e endereços
IP) como uma sequência de números

inteiros de 16 bits § verifique se a soma de verificação calculada é igual


valor do campo de soma de verificação:
§ checksum: adição (soma do complemento) do
conteúdo do segmento • diferente – erro detectado
• igual - nenhum erro detectado. Mas talvez
erros mesmo assim? Mais tarde ….
§ valor da soma de verificação colocado em
Campo de soma de verificação UDP

Camada de Transporte: 3-37


Machine Translated by Google

Soma de verificação da Internet: um exemplo

exemplo: adicione dois inteiros de 16 bits

1110011001100110
1101010101010101

envolvente 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

soma
1011101110111100
soma de verificação
0100010001000011

Nota: ao adicionar números, um carry do bit mais significativo precisa ser


adicionado ao resultado

* Confira os exercícios interativos online para mais exemplos: http://gaia.cs.umass.edu/kurose_ross/interactive/


Camada de Transporte: 3-38
Machine Translated by Google

Soma de verificação da Internet: proteção fraca!

exemplo: adicione dois inteiros de 16 bits


01
1110011001100110 10
1101010101010101

envolvente 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 Mesmo que os


números tenham
soma
1011101110111100 mudado (inversão
de bits), nenhuma
soma de verificação
0100010001000011 alteração na soma de verificação!

Camada de Transporte: 3-39


Machine Translated by Google

Resumo: UDP
§ Protocolo “sem frescuras”:

• segmentos podem ser perdidos, entregues fora de


ordem • serviço de melhor esforço: “envie e espere pelo melhor”

§ O UDP tem suas vantagens:


• não é necessária configuração/handshaking (sem incorrer
em RTT) • pode funcionar quando o serviço de rede está
comprometido • ajuda com confiabilidade

(soma de verificação) § construir funcionalidade adicional sobre UDP na camada de


aplicação (por exemplo, HTTP/3)
Machine Translated by Google

Capítulo 3: roteiro
§ Serviços da camada de
transporte § Multiplexação e demultiplexação
§ Transporte sem conexão: UDP §
Princípios de transferência confiável de
dados § Transporte orientado à conexão: TCP
§ Princípios de controle de
congestionamento § Controle
de congestionamento TCP §
Evolução da funcionalidade da camada de transporte

Camada de Transporte: 3-41


Machine Translated by Google

Princípios de transferência confiável de dados

processo processo de
de envio recebimento
dados dados
aplicativo
transporte
canal confiável

abstração de serviço confiável

Camada de Transporte: 3-42


Machine Translated by Google

Princípios de transferência confiável de dados

processo processo de processo processo de


de envio recebimento recebimento
de envio
dados dados dados dados
aplicativo transporte
transporte de aplicativos
canal confiável

lado do remetente de lado do receptor


abstração de serviço confiável protocolo de de protocolo de

transferência de dados confiável transferência de dados confiável

transporte
rede
canal não confiável

implementação de serviço confiável

Camada de Transporte: 3-43


Machine Translated by Google

Princípios de transferência confiável de dados

processo processo de
de envio recebimento

transporte dados dados

de aplicativos

lado do remetente de lado do receptor


protocolo de de protocolo de
A complexidade do protocolo de
transferência de dados confiável transferência de dados confiável
transferência de dados confiável
dependerá (fortemente) das transporte
rede
características do canal não canal não confiável

confiável (perder, corromper, reordenar dados?)


implementação de serviço confiável

Camada de Transporte: 3-44


Machine Translated by Google

Princípios de transferência confiável de dados

processo processo de
de envio recebimento

transporte dados dados

de aplicativos

lado do remetente de lado do receptor


protocolo de de protocolo de
Remetente e destinatário não conhecem
transferência de dados confiável transferência de dados confiável

o “estado” um do outro, por exemplo, uma


mensagem foi recebida? transporte
rede
§ a menos que comunicado através de um canal não confiável

mensagem
implementação de serviço confiável

Camada de Transporte: 3-45


Machine Translated by Google

Protocolo de transferência de dados confiável (rdt): interfaces

rdt_send(): chamado de cima, (por


delivery_data(): chamado por rdt para
exemplo, por app.). Dados passados para
entregar dados à camada superior
entrega à camada superior do receptor

processo processo de
de envio recebimento
rdt_send() dados dados

entregar_dados()
dados
página do remetente lado do receptor
implementação do implementação do
protocolo de transferência protocolo de transferência
pacote
de dados confiável RDT de dados confiável RDT

saída_enviar() Dados de cabeçalho Dados de cabeçalho rdt_rcv()

canal não confiável

udt_send(): chamado por rdt


rdt_rcv(): chamado quando o pacote
transferir pacotes através de um chega no lado do receptor
Comunicação bidirecional em canal não confiável
canal não confiável para o receptor canal
Camada de Transporte: 3-46
Machine Translated by Google

Transferência de dados confiável: primeiros passos


Iremos: §

Desenvolver de forma incremental os lados remetente e receptor de um protocolo de transferência de


dados confiável (rdt)

§ considere apenas a transferência de dados unidirecional • mas


as informações de controle fluirão em ambas as direções!

§ usar máquinas de estado finito (FSM) para especificar remetente, destinatário

evento que causa ações de transição de


estado tomadas na transição de estado

estado: quando neste “estado”


próximo estado estado
estado
determinado exclusivamente 1 ações
2
pelo próximo evento de evento

Camada de Transporte: 3-47


Machine Translated by Google

rdt1.0: transferência confiável através de um canal confiável

§ canal subjacente perfeitamente confiável


• sem erros de bits

• sem perda de pacotes

§ FSMs separados para remetente e destinatário:


• remetente envia dados para o canal subjacente • receptor
lê dados do canal subjacente

Aguarde rdt_send(dados) Aguarde rdt_rcv(pacote)


a chamada a chamada
remetente pacote = make_pkt(dados) receptor extrair (pacote,dados)
de cima abaixo
udt_send(pacote) entregar_dados(dados)

Camada de Transporte: 3-48


Machine Translated by Google

rdt2.0: canal com erros de bit


§ canal subjacente pode inverter bits no pacote
• soma de verificação (por exemplo, soma de verificação da Internet) para detectar erros de bits

§ a questão: como se recuperar de erros?

Como os humanos se recuperam de “erros” durante uma conversa?

Camada de Transporte: 3-49


Machine Translated by Google

rdt2.0: canal com erros de bit


§ canal subjacente pode inverter bits no pacote • soma de
verificação para detectar erros de bit

§ a questão: como se recuperar de erros?


• confirmações (ACKs): o receptor informa explicitamente ao remetente que o pacote
recebido OK
• confirmações negativas (NAKs): o receptor informa explicitamente ao remetente que
o pacote teve erros • o
remetente retransmite o pacote ao receber o NAK

pare e espere o
remetente envia um pacote e depois espera pela resposta do receptor

Camada de Transporte: 3-50


Machine Translated by Google

rdt2.0: especificações FSM


rdt_send(dados)
snkpkt = make_pkt(dados, soma de verificação)
out_send(sndpt)
rdt_rcv(rcvpkt) &&
Aguarde Esperar por isNAK(rcvpkt)
remetente a chamada ACK ou
out_send(sndpt) rdt_rcv(rcvpkt) && corrompido(rcvpkt)
de cima QUERER

envio_saída(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Aguarde
eu
a chamada receptor
abaixo

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

extrair(rcvpkt,dados)
entregar_dados(dados)
udt_send(ACK)

Camada de Transporte: 3-51


Machine Translated by Google

rdt2.0: especificação FSM


rdt_send(dados)
snkpkt = make_pkt(dados, soma de verificação)
out_send(sndpt)
rdt_rcv(rcvpkt) &&
Aguarde Esperar por isNAK(rcvpkt)
remetente a chamada ACK ou
out_send(sndpt) rdt_rcv(rcvpkt) && corrompido(rcvpkt)
de cima QUERER

envio_saída(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


isACK(rcvpkt)
Aguarde
eu
a chamada receptor
abaixo

Nota: o “estado” do destinatário (o destinatário recebeu minha


rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
mensagem corretamente?) não é conhecido pelo remetente, a
menos que seja de alguma forma comunicado do destinatário para o remetente extrair(rcvpkt,dados)
entregar_dados(dados)
§ é por isso que precisamos de um protocolo! udt_send(ACK)

Camada de Transporte: 3-52


Machine Translated by Google

rdt2.0: operação sem erros


rdt_send(dados)
snkpkt = make_pkt(dados, soma de verificação)
out_send(sndpt)
rdt_rcv(rcvpkt) &&
Aguarde Esperar por isNAK(rcvpkt)
remetente a chamada ACK ou
out_send(sndpt) rdt_rcv(rcvpkt) && corrompido(rcvpkt)
de cima QUERER

envio_saída(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Aguarde
eu
a chamada receptor
abaixo

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

extrair(rcvpkt,dados)
entregar_dados(dados)
udt_send(ACK)

Camada de Transporte: 3-53


Machine Translated by Google

rdt2.0: cenário de pacote corrompido


rdt_send(dados)
snkpkt = make_pkt(dados, soma de verificação)
out_send(sndpt)
rdt_rcv(rcvpkt) &&
Aguarde Esperar por isNAK(rcvpkt)
remetente a chamada ACK ou
out_send(sndpt) rdt_rcv(rcvpkt) && corrompido(rcvpkt)
de cima QUERER

envio_saída(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Aguarde
eu
a chamada receptor
abaixo

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)

extrair(rcvpkt,dados)
entregar_dados(dados)
udt_send(ACK)

Camada de Transporte: 3-54


Machine Translated by Google

rdt2.0 tem uma falha fatal!


o que acontece se o ACK/NAK tratamento de duplicatas: § remetente
for corrompido? retransmite o pacote atual se ACK/NAK estiver
§ remetente não sabe o que aconteceu no corrompido
destinatário!
§ remetente adiciona número de sequência
§ não pode simplesmente retransmitir: possível para cada pacote
duplicata § receptor descarta (não entrega) pacote
duplicado

pare e espere
remetente envia um pacote e espera
pela resposta do receptor

Camada de Transporte: 3-55

You might also like