Redes de computadores e a Internet. Capítulo3. Camada de transporte



Documentos relacionados
Camada de transporte. Camada de transporte

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

TCP - multiplexação/demultiplexação

Redes de Computadores

Camada de Transporte. Protocolos TCP e UDP

Redes de Computadores. Camada de Transporte

TCP - estabelecimento de conexão

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

REDES DE COMPUTADORES

Redes de Computadores

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

Capítulo 7 CAMADA DE TRANSPORTE

6 de Julho de Exercício 23 Para que servem portas na camada de transporte?

Capítulo 7 CAMADA DE TRANSPORTE

Camada de Transporte. Prof. Leonardo Barreto Campos

Redes de Computadores

2 Controle de Congestionamento do TCP

Redes de Computadores. Trabalho de Laboratório Nº7

Capítulo 3: Camada de Transporte. Multiplexação/desmultiplexação. Serviços e protocolos de transporte. Antônio Abelém abelem@ufpa.

Redes de Computadores

Camada de Transporte, protocolos TCP e UDP

A Camada de Transporte

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama

Redes de Computadores e a Internet

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

UNIVERSIDADE. Sistemas Distribuídos

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

Redes de Computadores

Camada Transporte Parte 2. Prof. Dr. S. Motoyama

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, TCP: nos. de seq. e ACKs. TCP: estrutura do segmento. TCP: Tempo de Resposta (RTT) e Temporização

CAMADA DE TRANSPORTE

Redes de Computadores II

Teleprocessamento e Redes

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

PROJETO DE REDES

Camada de transporte. Serviços

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Camada de Transporte TCP/IP e Aplicação

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

PEL/FEN Redes de Computadores 2015/1 Primeira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

Programação TCP/IP. Protocolos TCP e UDP

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Introdução à Redes de Computadores

Tecnologia de Redes de Computadores

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

3 Qualidade de serviço na Internet

Capítulo 3 Camada de transporte

Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços

Jones Bunilha Radtke. Tarefas:

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Camada de rede. Camada de enlace. Meio Físico

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Cap 03 - Camada de Aplicação Internet (Kurose)

Redes de Computadores

Redes de Computadores Camada de Transporte Protocolo TCP

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet.

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace


Alan Menk Santos Redes de Computadores e Telecomunicações. Camada de Transporte 03/06/2013

Fundamentos de Redes. Protocolos de Transporte. Djamel Sadok Dênio Mariz.

Arquitetura TCP/IP. Parte VI Entrega de pacotes sem conexão (IP) Fabrízzio Alphonsus A. M. N. Soares

TCP / IP. Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense. contato@marcosmonteiro.com.

Redes de computadores. Redes para Internet

SSC0641 Redes de Computadores

Redes de Computadores

Camada de Transporte

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ.

Redes de Computadores Aula 3

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Rede de Computadores II

Redes de Computadores e a Internet

Redes de Computadores

1. PRINCIPAIS PROTOCOLOS TCP/IP

Arquitetura de Redes de Computadores

Sistemas Distribuídos

Redes de Computadores

1 - Cite o nome dos principais campos de um quadro Ethernet, explicando qual a funcionalidade de cada campo.

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Camada Transporte. 2 Camada de Transporte

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Transcrição:

Redes de computadores e a Internet Capítulo Camada de transporte

Pilha de protocolos da Internet M Aplicação Ht M Transporte Hr Ht M Rede Hr Ht M Enlace Mensagem Segmento Datagrama Quadro He Física -2 HTTP, SMTP, FTP, DNS UDP, TCP

Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação Transferência de dados confiável Controle de fluxo Controle de congestionamento Aprender sobre os protocolos de transporte na Internet: UDP: transporte não orientado à conexão TCP: transporte orientado à conexão Controle de congestionamento do TCP -

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP -4

Protocolos e serviços de transporte Fornecem comunicação lógica entre processos de aplicação em diferentes hospedeiros Os protocolos de transporte são executados nos sistemas finais Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a camada de rede Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação Há mais de um protocolo de transporte disponível para as aplicações Internet: TCP e UDP -5

Camada de transporte vs. camada de rede Camada de rede: comunicação lógica entre os hospedeiros Camada de transporte: comunicação lógica entre os processos Depende dos serviços da camada de rede Analogia com uma casa familiar: 12 crianças enviam cartas para 12 crianças Processos = crianças Mensagens da aplicação = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = Serviço Postal -6

Protocolos da camada de transporte da Internet Confiável, garante ordem de entrega: TCP Controle de congestionamento Controle de fluxo Orientado à conexão Não confiável, sem ordem de entrega: UDP Extensão do melhor esforço do IP -7

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP -8

Multiplexação/demultiplexação Multiplexação no hospedeiro emissor:demultiplexação no hospedeiro receptor: coleta dados de múltiplos sockets, envelopa os dados com cabeçalho (usado depois para demultiplexação) entrega os segmentos recebidos ao socket correto -9

Mecanismo de endereçamento Aplicação HTTP DNS SMTP x 80 5 25 n TCP / UDP Transporte TRANSPORTE VIRTUAL e-mail web ftp - 10

Mecanismo de endereçamento Mecanismos de endereçamento na camada de transporte: Número de porta Número de porta destino: identifica o endereço de entrega Número de porta origem: identifica o endereço de resposta Discrimina entre os muitos processos que podem rodar simultaneamente Identificado por números inteiros de 16-bits (0 a 6555) IANA (Internet Assigned Number Authority) Portas conhecidas ou permanentes: 0 a 102 Portas registradas: 1024 a 49151 Portas dinâmicas: 49152 a 6555 Alguns portas bem conhecidas RFC 1700 HTTP: porta 80 SMTP: porta 25-11

Mecanismo de endereçamento Mecanismos de endereçamento na camada de transporte Identificado por números inteiros de 16-bits (0 a 6555) 0 102 49.152 1024 65.55 49.151 IANA (Internet Assigned Number Authority) Portas conhecidas ou permanentes: 0 a 102 As portas com números bem conhecidos são atribuídas e controladas pelo IANA e são as portas públicas conhecidas. Portas registradas: 1024 a 49151 As portas registradas não são atribuídas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicação. Portas dinâmicas: 49152 a 6555 As portas dinâmicas ou temporárias não são controladas nem registradas e podem ser utilizadas por qualquer processo. - 12

Exemplo de endereçamento pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE, 2006). Este é o pedido Processo Socket Cliente Porta Fonte 50.001 Porta Fonte 25 Porta destino 50.001-1 Porta destino 25 Servidor

Demultiplexação não orientada à conexão Cria sockets com números de porta Socket UDP identificado por 2 valores: (endereço IP de destino, número da porta de destino) Quando o hospedeiro recebe o segmento UDP: Verifica o número da porta de destino no segmento Direciona o segmento UDP para o socket com este número de porta Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o mesmo socket - 14

Exemplo de endereçamento Servidor Cliente A Porta Fonte 50.001 Porta Fonte 25 Porta destino 25 Porta destino 50.001 Porta Fonte 50.001 Porta Fonte 25 IP Fonte X Porta destino 50.001 IP destino Y Cliente B - 15 Porta destino 25

Demultiplexação não orientada à conexão Orientados ao mesmo processo destino, por meio do mesmo socket P2 PD: 6428 PF: 9157 cliente IP: A P1 P1 P PD: 9157 PF: 6428 PD: 6428 PF: 5775 servidor IP: C - 16 PD: 5775 PF: 6428 cliente IP:B

Demux orientada à conexão Socket TCP identificado por 4 valores: Endereço Endereço Endereço Endereço IP de origem porta de origem IP de destino porta de destino Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado Hospedeiro servidor pode suportar vários sockets TCP simultâneos: Cada socket é identificado pelos seus próprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP não persistente terá um socket diferente para cada requisição - 17

Demultiplexação orientada à conexão Processos HTTP por conexão P1 P4 P5 P2 P6 Demultiplexação da camada de transporte P1P PF: 5775 PD: 80 IP-F: B IP-D:C cliente IP: A PF: 9157 PD: 80 servidor IP: C IP-F: A IP-D:C O socket TCP é identificado pelos quatro elementos Porta Fonte X IP Fonte A Porta destino Y IP destino B - 18 PF: 9157 PD: 80 IP-F: B IP-D:C cliente IP:B

Demux orientada à conexão servidor Web threaded Processo único com três thread P1 P2 P4 Demultiplexação da camada de transporte P1P SP: 5775 DP: 80 S-IP: B D-IP:C cliente IP: A SP: 9157 DP: 80 S-IP: A D-IP:C servidor IP: C - 19 SP: 9157 DP: 80 S-IP: B D-IP:C cliente IP:B

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 20

UDP: User Datagram Protocol [RFC 768] Protocolo de transporte da Internet sem gorduras sem frescuras Serviço best effort, segmentos UDP podem ser: Perdidos Entregues fora de ordem para a aplicação Sem conexão: Não há apresentação entre o UDP transmissor e o receptor Cada segmento UDP é tratado de forma independente dos outros Por que existe um UDP? Não há estabelecimento de conexão (que possa redundar em atrasos) Simples: não há estado de conexão nem no transmissor, nem no receptor Cabeçalho de segmento reduzido Não há controle de congestionamento: UDP pode enviar segmentos tão rápido quanto desejado - 21

Mais sobre UDP - 22

Mais sobre UDP Mensagem Segmento Ht M Aplicação M Transporte HTTP, SMTP, FTP, DNS UDP Cabeçalho da camada de transmissão Segmento UDP Mensagem - 2

Mais sobre UDP Muito usado por aplicações de mutimídia contínua (streaming) Tolerantes à perda Sensíveis à taxa Outros usos do UDP (por quê?): DNS SNMP Transferência confiável sobre UDP: acrescentar confiabilidade na camada de aplicação Recuperação de erro específica de cada aplicação - 24

Estrutura do segmento UDP RFC 768 2 bits Identificação das portas Tamanho: expressa em bytes o comprimento do segmento UDP, incluindo o cabeçalho Soma de verificação RFC 1071 Dados - 25 Source port Destination port Length Checksum Dados da camada de aplicação (mensagem)

Segmento UDP #01-26

Segmento UDP #02-27

UDP checksum Objetivo: detectar erros (ex.: bits trocados) no segmento transmitido Transmissor: Trata o conteúdo do segmento como seqüência de inteiros de 16 bits Checksum: soma (complemento de 1 da soma) do conteúdo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP Receptor: Computa o checksum do segmento recebido Verifica se o checksum calculado é igual ao valor do campo checksum: NÃO - erro detectado SIM - não há erros. Mas, talvez haja erros apesar disso? - 28

Soma de verificação UDP RFC 1071 Suponha palavras de 16 bits 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (I) (II) (III) A soma das duas primeiras palavras de 16 bits é + 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (I) (II) 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) Adicionando a terceira palavra à soma (IV), temos: + 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1-29 (IV) (III) (V)

Exemplo: Soma de verificação UDP Note que: Ao se adicionar números, um vai um do bit mais significativo deve ser acrescentado ao resultado. 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 wraparound sum checksum (IV) (III) 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1-0 (V)

Exercício #01 Qual a palavra binária do campo Soma de Verificação do segmento UDP ilustrado na figura a seguir: - 1

Exercício #02 Qual a palavra a ser inserida no campo checksum, se o segmento contém as seguintes palavras: 4465, 7477, 6F72, 6B7-2

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP -

Princípios de transferência confiável de dados Importante nas camadas de aplicação, transporte e enlace Top 10 na lista dos tópicos mais importants de redes! Características dos canais não confiáveis determinarão a complexidade dos protocolos confiáveis de transferência de dados - 4

Princípios de transferência confiável de dados Remetente Destinatário Como obter confiabilidade? Variedade de técnicas A maioria dos protocolos utiliza confirmação positiva com retransmissão (Comer, 2007) Reconhecimentos (ACKs): receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs): receptor avisa explici-tamente ao transmissor que o pacote tem erros Transmissor: reenvia o pacote quando da recepção de um Pare NAKe espere: transmissor envia um pacote e então espera pela resposta do receptor Envia mensagem Recebe mensagem Envia ack Recebe ack Envia mensagem Recebe mensagem Envia nak Recebe nak Retransmite mensagem Recebe mensagem Envia ack Recebe ack - 5

Princípios de transferência confiável de dados Protocolos ARQ (Automatic Repeat request solicitação automática de repetição) Pilares Envio de dados pelo gerador; Recebimento pelo receptor Recebimento sem erros (receptor envia ACK) Recebimento com erros (receptor envia NAK) Retransmissão Temporização - 6

Temporizador Temporizador Temporizador Remetente Destinatário Envia mensagem Mensagem chega ack deveria ser enviado Aguardando ack timeout Retransmite mensagem Recebe mensagem Envia ack Recebe ack Zera temporizador Envia mensagem - 7

Mensagem duplicada Remetente Destinatário Envia mensagem Mensagem recebida Envio de ack Ack não chega Nak corrompido Retransmite mensagem Novos dados? Retransmissão? - 8

Tratamento de duplicatas O que acontece se o ACK/NAK é corrompido? Transmissor não sabe o que aconteceu no receptor! Não pode apenas retransmitir: possível duplicata Tratando duplicatas: Transmissor acrescenta número de seqüência em cada pacote Transmissor reenvia o último pacote se ACK/NAK for perdido Receptor descarta (não passa para a aplicação) pacotes duplicados - 9

Princípios de transferência confiável de dados Remetente Destinatário Envia mensagem 1 Recebe mensagem 1 Enviar ack1 Recebe ack1 Envia mensagem 2 Recebe mensagem 2 Envia nak2 Receber nak2 Retransmite mensagem 2 Receber mensagem 2 Enviar ack2 Recebe ack2-40

Desempenho Baixo desempenho Exemplo: enlace de 1 Gbit/s, 15 ms de atraso de propagação, pacotes de 1 KB: T transmissão =L (tamanho do pacote em bits) = R (taxa de transmissão, bps) Uefetiva U = Uso efetivo = L/R Tempo total RTT + L/R = 8 kbit 1 Gbit/s 8µs 0,008 : ocupação efetiva efetiva Delay de propagação de 15ms O protocolo de rede limita o uso dos recursos físicos! - 41 = 8µs = 0,27%

Desempenho Um protocolo de confirmação positiva desperdiça uma quantidade substancial de largura de banda de rede, pois precisa adiar o envio de um novo pacote até que receba uma confirmação para o pacote anterior (Comer, 2006) - 42

Protocolo com paralelismo Motivação Baixo throughput de rede Completamente inativa enquanto aguarda confirmação (ACK) Pacote de dados Transmissões múltiplas Protocolo com paralelismo Pacote de dados Pacotes ACK - 4

Protocolo com paralelismo (pipelining) Paralelismo: transmissor envia vários pacotes ao mesmo tempo, todos esperando para serem reconhecidos Faixa de números de seqüência deve ser aumentada Armazenamento no transmissor e/ou no receptor (a) operação do protocolo pare e espere (a) operação do protocolo com paralelismo Duas formas genéricas de protocolos com paralelismo: go-back-n, retransmissão seletiva - 44

Janela Deslizante Remetente Destinatário Envia mensagem 1 Envia mensagem 2 Recebe mensagem 1, envia ack1 Recebe mensagem 2, envia ack2 Recebe mensagem, envia ack Envia mensagem R D 1 2 4 5 6 7 8 9... Janela inicial Janela de tamanho = 1 2 4 5 6 7 8 9... Janela desliza - 45

Paralelismo: aumento da utilização Aumento da utilização por um fator de! U sender= *L/R RTT + L / R Como um protocolo de janela deslizante bem ajustado mantém a rede completamente saturada com pacotes, ele obtém um throuyghput substancialmente maior que um protocolo de confirmação positiva simples. (Comer, 2006) - 46

Recuperação de Erro com Paralelismo Processo de recuperação de erros com paralelismo Go-Back-N (GBN) Repetição seletiva (SR) - 47

Go-Back-N Transmissor: Número de seqüência com k bits no cabeçalho do pacote descarte dos pacotes recebidos fora de ordem ACK(n): reconhece todos os pacotes até o número de seqüência N (incluindo este limite). ACK cumulativo Pode receber ACKs duplicados (veja receptor) Temporizador para cada pacote enviado e não confirmado Tempo de confirmação (n): retransmite pacote n e todos os pacotes com número de seqüência maior que estejam dentro da janela - 48

GBN em ação Remetente Transmissor Destinatário 0 1 2 4 5 6 7 8 9... Transmissor 0 1 2 4 5 6 7 8 9... Transmissor 0 1 2 4 5 6 7 8 9... Envia pkt0 Envia pkt1 Envia pkt2 Envia pkt (espera) Recebe ack0 Receptor 0 1 2 4 5 6 7 8 9... Recebe ack1 Receptor Receptor 0 1 2 4 5 6 7 8 9... Recebe pkt, descarta Envia ack1 Envia pkt4 Envia pkt5 0 1 2 4 5 6 7 8 9... perda Recebe pkt0 Envia ack0 Recebe pkt1 Envia ack1 pkt2 temporização Envia Envia Envia Envia - 49 pkt2 pkt pkt4 pkt5 Recebe pkt4, descarta Envia ack1 Recebe pkt4, descarta Envia ack1

Retransmissão seletiva Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes, quando necessário, para eventual entrega em ordem para a camada superior Transmissor somente reenvia os pacotes para os quais um ACK não foi recebido Transmissor temporiza cada pacote não reconhecido Janela de transmissão N números de seqüência consecutivos Novamente limita a quantidade de pacotes enviados, mas não reconhecidos - 50

Retransmissão seletiva: janelas do transmissor e do receptor - 51

Retransmissão seletiva TRANSMISSOR Dados da camada superior: Se o próximo número de seqüência disponível está na janela, envia o pacote, senão é armazenado ou devolvido para transmissão posterior; Tempo de confirmação(n): Reenvia pacote n, restart timer ACK (n) - Marca pacote n como recebido - Se n é o menor pacote não reconhecido, avança a base da janela para o próximo número de seqüência não reconhecido RECEPTOR Pacote n - Envia ACK(n) - Fora de ordem: armazena - Em ordem: entrega (também entrega pacotes armazenados em ordem), avança janela para o próximo pacote ainda não recebido - 52

Retransmissão seletiva em ação - 5

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não-orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 54

TCP: overview RFCs: 79, 1122, 12, 2018, 2581 Ponto-a-ponto: Um transmissor, um receptor Pipelined: transmissão de vários pacotes sem confirmação Controle de congestionamento e de fluxo definem tamanho da janela Buffers de transmissão e de recepção Dados full-duplex: Transmissão bidirecional na mesma conexão MSS: maximum segment size Orientado à conexão: three way handshake (apresentação de três vias) Controle de fluxo: Transmissor não esgota a capacidade do receptor - 55

Estrutura do segmento TCP URG: dados urgentes (pouco usados) (2) contagem por bytes de dados (não segmentos!) ACK: campo de ACK é válido PSH: indica que os dados devem ser enviados imediatamente para a camada superior (pouco usado) (1) RST, SYN, FIN: estabelec. de conexão (comandos de criação e término) (16) Checksum (como no UDP) (16) número de bytes receptor está pronto para aceitar (controle de fluxo) RST: retransmissão SYN: sincronismo FIN: terminar conexão - 56 Negociação de MSS Consulte RFC 854 e RFC 12

Estrutura do segmento TCP - 57

Número de seqüência e reconhecimento 0 1... 1000 Dados para o primeiro semento... 1999 Dados para o segundo semento Remetente... MSS = 1000 bytes Destinatário Envia pkt Recebe pkt Envia pkt Seq = 0, ACK = 79, Dados Seq = 79, ACK 1000, Dados Seq = 1000, ACK 159, Dados - 58 499999

Número de seqüência e ACK do TCP Números de seqüência: Número do primeiro byte nos segmentos de dados ACK: Número do próximo byte esperado do outro lado - 59

Número de seqüência e ACK do TCP - 60

Número de seqüência e ACK do TCP - 61

TCP Round Trip Time e temporização P.: como escolher o valor da temporização do TCP? Maior que o RTT: quanto maior Muito curto: temporização prematura Retransmissões desnecessárias Muito longo: a reação à perda de segmento fica lenta P.: Como estimar o RTT? SampleRTT: tempo medido da transmissão de um segmento até a respectiva confirmação SampleRTT varia de forma rápida, é desejável um amortecedor para a estimativa do RTT Usar várias medidas recentes, não apenas o último SampleRTT obtido - 62

TCP Round Trip Time e temporização EstimatedRTT = (1-α)*EstimatedRTT + α*samplertt EstimatedRTT = valor ponderado dos valores de SampleRTT Média móvel com peso exponencial Influência de uma dada amostra decresce de forma exponencial Valor recomendado: α = 0,125 (RFC 2988) - 6

Exemplos de estimativa do RTT - 64

TCP Round Trip Time e temporização Definindo a temporização EstimatedRTT mais margem de segurança Grandes variações no EstimatedRTT -> maior margem de segurança Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT: DevRTT = (1-β)*DevRTT + β* SampleRTT-EstimatedRTT (typically, β = 0.25) Então ajustar o intervalo de temporização TimeoutInterval = EstimatedRTT + 4*DevRTT TimeoutInterval = EstimatedRTT + β - 65

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não-orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 66

TCP: transferência de dados confiável TCP cria serviços de transferência confiável em cima do serviço nãoconfiável do IP Pipelined segments (segmentos numerados) ACKs cumulativos TCP usa tempo de retransmissão Retransmissões disparadas Duplicação do tempo de expiração ACKs duplicados: retransmissão rápida - 67

TCP: cenários de retransmissão Cenário com perda do ACK Temporização prematura, ACKs cumulativos - 68

TCP: cenários de retransmissão Cenário de ACK cumulativo - 69

Retransmissão rápida Com freqüência, o tempo de expiração é relativamente longo: Longo atraso antes de reenviar um pacote perdido Detecta segmentos perdidos por meio de ACKs duplicados Transmissor freqüentemente envia muitos segmentos Se o segmento é perdido, haverá muitos ACKs duplicados. Se o transmissor recebe ACKs para o mesmo dado, ele supõe que o segmento após o dado confirmado foi perdido: Retransmissão rápida: reenvia o segmento antes de o temporizador expirar - 70

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 71

TCP: controle de fluxo Controle de fluxo Processos de compatilização de velocidades de envio e recepção Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais Buffer de recepção Dados vindos da camada de rede Espaço disponível Janela de recepção A janela de recepção é utilizada para controlar a velocidade de transmissão - 72 Dados TCP no buffer Processo de aplicação

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 7

Gerenciamento de conexão TCP TCP transmissor estabelece conexão com o receptor antes de trocar segmentos de dados Inicializar variáveis Números de seqüência Buffers, controle de fluxo Cliente: iniciador da conexão Servidor: chamado pelo cliente Three way handshake Passo 1: sistema final cliente envia TCP SYN ao servidor Especifica número de seqüência inicial Passo 2: sistema final servidor que recebe o SYN, responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o número de seqüência inicial do servidor Passo : o sistema final cliente reconhece o SYNACK - 74

Gerenciamento de conexão TCP Fechando uma conexão Passo 1: o cliente envia o segmento TCP FIN ao servidor Passo 2: servidor recebe FIN, responde com ACK. Fecha a conexão, envia FIN Passo : cliente recebe FIN, responde com ACK. Entra espera temporizada vai responder com ACK a FINs recebidos Passo 4: servidor, recebe ACK. Conexão fechada - 75

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 76

Princípios de controle de congestionamento Congestionamento: Informalmente: muitas fontes enviando dados acima da capacidade da rede de tratá-los Diferente de controle de fluxo! Sintomas: Perda de pacotes (saturação de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores) Um dos 10 problemas mais importantes na Internet! - 77

Causas/custos do congestionamento: cenário 1 Dois transmissores, dois receptores Um roteador, buffers infinitos Não há retransmissão Grandes atrasos quando congestionado Máxima vazão alcançável - 78

Causas/custos do congestionamento: cenário 2 Um roteador, buffers finitos Transmissor reenvia pacotes perdidos λin= dados originais mais dados retransmitidos finitos - 79

Causas/custos do congestionamento: cenário 2 Sempre vale :λ = λ (tráfego bom) out in perfeita retransmissão somente quando há perdas Retransmissão de pacotes atrasados (não perdidos) λ torna in (que o caso perfeito ) para λ o mesmo maior out custos do congestionamento: Mais trabalho (retransmissões) para um dado tráfego bom Retransmissões desnecessárias: enlace transporta várias cópias do mesmo pacote - 80

Abordagens do produto de controle de congestionamento Existem duas abordagens gerais para o problema de controle de congestionamento: Controle de congestionamento fim-a-fim: Não usa realimentação explícita da rede Congestionamento é inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP Controle de congestionamento assistido pela rede Roteadores enviam informações para os sistemas finais Bit único indicando o congestionamento (SNA, DECbit, TCP/IP, ATM) Taxa explícita do transmissor poderia ser enviada - 81

Camada de transporte.1 Serviços da camada de transporte.2 Multiplexação e demultiplexação. Transporte não orientado à conexão: UDP.4 Princípios de transferência confiável de dados.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão.6 Princípios de controle de congestionamento.7 Controle de congestionamento do TCP - 82

TCP: controle de congestionamento Controle fim-a-fim (sem assistência da rede) Transmissor limita a transmissão Tamanho da janela de congestionamento é dinâmico, função de congestionamento das redes detectadas Três mecanismos: Algoritmo AIMD (Additive Increase, Multiplicative Decrease) Partida lenta (Slow start) Reação a eventos de esgotamento de temporização - 8

TCP AIMD Redução multiplicativa (ou exponencial): diminui o tamanho da Janela de Congestionamento pela metade após o evento de perda Aumento aditivo (ou aditivo): aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausência de eventos de perda - 84

TCP Partida lenta Quando a conexão começa, tamanho da Janela de Congestionamento = 1 MSS Exemplo: MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps Largura de banda disponível pode ser >> MSS/RTT Desejável aumentar rapidamente até a taxa respeitável Quando a conexão começa, a taxa aumenta rapidamente de modo exponencial até a ocorrência do primeiro evento de perda - 85

Refinamento P.: Quando o aumento exponencial deve tornarse linear? R.: Quando TJC obtiver 1/2 do seu valor antes do tempo de confirmação. Implementação Limite variável No evento de perda, o limiar é ajustado para 1/2 do TJC logo antes do evento de perda - 86

TCP throughput Qual que é throughout médio do TCP como uma função do tamanho da janela e do RTT? Quando a janela é W, o throughput é W/RTT Logo após a perda, a janela cai para W/2, e o throughput para W/2RTT Throughout médio = 0,75 W/RTT - 87

Futuro do TCP Exemplo: segmento de 1500 bytes, RTT de 100 ms, deseja 10 Gbps de throughput Throughput em termos da taxa de perda: 1.22 MSS RTT L Taxa de perda L = 2 10-10 (taxa muito baixa = 1 a cada 5 bilhões) São necessárias novas versões de TCP para alta velocidade! - 88

Eqüidade do TCP Objetivo de eqüidade: se K sessões TCP compartilham o mesmo enlace do gargalo com largura de banda R, cada uma deve ter taxa média de R/K - 89

Eqüidade Eqüidade e UDP Aplicações multimídia normalmente não usam TCP Não querem a taxa estrangulada pelo controle de congestionamento Em vez disso, usam UDP: - 90

Resumo Princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação Transferência de dados confiável Controle de fluxo Controle de congestionamento A seguir: Saímos da borda da rede (camadas de aplicação e de transporte) Vamos para o núcleo da rede - 91