Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


cap03b, Notas de aula de Engenharia Telemática

Aula 04 - introdução as redes de computadores livro Kurose cap 03.

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 24/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 35

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
TCP: Visão Geral RFCs: 793, 1122, 1323,
2018, 2581
dados full-duplex:
transmissão bi-direcional na
mesma conexão
MSS: maximum segment size
orientado à conexão:
handshaking (troca de
mensagens de controle) inicia o
estado do transmissor e do
receptor antes da troca de dados
controle de fluxo:
transmissor não esgota a
capacidade do receptor
ponto-a-ponto:
um transmissor, um receptor
confiável, seqüêncial byte
stream:
não contornos de mensagens
pipelined: (transmissão de vários
pacotes em confirmação)
Controle de congestão e de fluxo
definem tamanho da janela
buffers de transmissão e de
recepção
socket
port TCP
buffe de txr TCP
buffer de rx
socket
port
segment
aplicação
envia dados aplicação
lê dados
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23

Pré-visualização parcial do texto

Baixe cap03b e outras Notas de aula em PDF para Engenharia Telemática, somente na Docsity!

TCP: Visão Geral

RFCs: 793, 1122, 1323,

•^

dados full-duplex:–

transmissão bi-direcional namesma conexão– MSS: maximum segment size

-^

orientado à conexão:–

handshaking (troca demensagens de controle) inicia oestado do transmissor e doreceptor antes da troca de dados

-^

controle de fluxo:–

transmissor não esgota acapacidade do receptor

•^

ponto-a-ponto:–

um transmissor, um receptor

•^

confiável, seqüêncial

byte

stream:^ –

não há contornos de mensagens

•^

pipelined:

(transmissão de vários

pacotes em confirmação)–

Controle de congestão e de fluxodefinem tamanho da janela

•^

buffers de transmissão e derecepção

socketport

TCPbuffe de txr

TCP buffer de rx

socketport

segment

aplicaçãoenvia dados

aplicaçãolê dados

Estrutura do Segmento TCP

porta origem

porta destino

32 bits

dados de aplicação(tamanho variável) número de seqüência número de reconhecimento

janela de recep.dados urgentes

checksum

FS PR AU

tam.cabec.

nãousado Opções (tamanho variável)

URG: dados urgentes

(pouco usado)

ACK: campo de ACK

é válido

PSH: produz envio dedados (pouco usado)

RST, SYN, FIN:

estabelec. de conexão

(comandos de criação e término)

contagem porbytes de dados(não segmentos!)número de bytesreceptor estápronto paraaceitar

Internetchecksum

(como no UDP)

TCP: transferência de dados confiável

transmissor simplificado, assumindoque não há controle de fluxo nem decongestionamento

waitforevent espera

por evento evento: dados recebidos

da aplicação acima

evento: temporização esgotada

para segmento com seq = y

evento: ACK recebido,com número de ACK = y

cria, envia segmento

retransmite segmento

processamento do ACK

TCP:

transferência

confiável

00

sendbase = initial_sequence number 01

nextseqnum = initial_sequence number 0203

loop (forever) { 04

switch(event)

05

event: dados recebidos da aplicação acima

06

cria segmento TCP com número de seqüência nextseqnum

07

inicia temporizador para segmento nextseqnum

08

passa segmento ao IP

09

nextseqnum = nextseqnum + length(data)

10

event: esgotamento de temp. para segmento com seq = y

11

retransmite segmento com seq = y

12

calcule nova temporização para o segmento y

13

reinicia temporizador para número de seqüência y

14

event: ACK recebido, com valor y no campo de ACK

15

if (y > sendbase) { /* ACK cumulativo de todos os dados até y */

16

cancela todas as temporizações para segmentos com seq < y

17

sendbase = y

18

}

19

else { /* um ACK duplicata para um segmento já reconhecido */

20

incrementa numero de duplicatas de ACKs recebidas para y

21

if (numero de duplicatas de ACKS recebidas para y == 3) {

22

/* TCP fast retransmit */

23

reenvia segmento com número de seqüência y

24

reinicia temporização para segmento y

25

}

26

} /* end of loop forever */

TransmissorTCP simplificado

TCP: cenários de retransmissão Host A

Seq=92, 8 bytes data

ACK=

loss

tempo

cenário com perda

do ACK

Host B

X

Seq=92, 8 bytes data

ACK=

Host A

Seq=100, 20 bytes data

ACK=

Seq=92 temp.

tempo

temporização prematura,

ACKs cumulativos

Host B

Seq=92, 8 bytes data

ACK=

Seq=92, 8 bytes data

Seq=100 temp.

ACK=

temporização

TCP: Controle de Fluxo

receptor: explicitamente

informa o transmissor daárea livre no buffer(dinamicamente mudando)^ –

campo

RcvWindow

no

segmento TCP

transmissor: mantém a

quantidade de dadostransmitidos mas nãoreconhecidos menor que oúltimo

RcvWindow

recebido

transmissor não deveesgotar os buffers de

receção enviando controle de fluxodados rápido demais armazenamento de recepção

RcvBuffer

= tamanho do Buffer de recepção do TCP

RcvWindow

= total de espaço livre no buffer

EstimatedRTT

(1-x)EstimatedRTT*

xSampleRTT*

•^

Média móvel com peso exponential

-^

influencia de uma dada amostra decresce de forma exponencial

-^

valor típico de x: 0.

Definindo a temporização •^

EstimtedRTT

mais “margem de segurança”

•^

grandes variações no

EstimatedRTT

maior margem de

segurança

Temporização

EstimatedRTT

4Desvios*

Desvios

(1-x)Desvio*

x|SampleRTT-EstimatedRTT|*

TCP Round Trip Time e Temporização

TCP Estabelecimento de Conexão

TCP transmissor estabelece conexão

com o receptor antes de trocarsegmentos de dados

-^

initializar variáveis:–

números de seqüência– buffers, controle de fluxo(ex.

RcvWindow

-^

cliente:

iniciador da conexão

Socket

clientSocket

=

new

Socket("hostname","portnumber");

-^

servidor

:^ chamado pelo cliente

Socket

connectionSocket =

welcomeSocket.accept();

Three way handshake:Passo 1: sistema final cliente envia

TCP SYN ao servidor–

especifica número de seqüênciainicial

Passo 2: sistema final servidor que

recebe o SYN, responde comsegmento

SYNACK

-^

reconhece o SYN recebido

-^

aloca buffers

-^

especifica o número deseqüência inicial do servidor

Passo 3: o sistema final cliente

reconhece o SYNACK

TCP Término de Conexão

Passo 3:

cliente recebe FIN,

responde com ACK.–

Entra “espera temporizada”- vai responder com ACK aFINs recebidos

Passo 4:

servidor, recebe ACK.

Conexão fechada.

cliente

FIN

servidor ACKFIN ACK

closing

closing

closed

espera temp.

closed

TCP Controle de Conexão

Estados do Cliente

Estados do Servidor

Causas/custos do congestionamento: cenário 1

-^

dois transmissores, doisreceptores

-^

um roteador, buffersinfinitos

-^

não há retransmissão

•^

grandes atrasosquandocongestionado

-^

máxima vazãoobtenível

-^

um roteador, buffers

finitos

-^

Causas/custos do congestionamento: cenário 2transmissor reenvia pacotes perdidos

•^

quatro transmissores

-^

caminhos com múltiplos saltos

-^

temporizações/retransmissões

λ

in

Q: o que acontece quando

e^

aumentam?

λ

in

Causas/custos do congestionamento: cenário 3

Outro “custo” do congestionamento:•^

quando pacote é descartado, qualquer capacidade de transmissão quetenha sido anteriormente usada para aquele pacote é desperdiçada! Causas/custos do congestionamento: cenário 3