Camada de transporte. Serviços

Documentos relacionados
Camada de transporte. Serviços

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

Camada de transporte. Camada de transporte

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

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

TCP - multiplexação/demultiplexação

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

Redes de Computadores. Camada de Transporte

Redes de Computadores

PROJETO DE REDES

Redes de Computadores

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 Transporte. 2 Camada de Transporte

Serviços e Protocolos de Transporte

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

Camada de Transporte. Serviços de Transporte. Desempenho em Protocolos de Transporte. Aprender sobre protocolos de transporte na Internet

Camada de Transporte. Protocolos TCP e UDP

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

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

Redes de Computadores

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

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

REDES DE COMPUTADORES

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A

Tecnologia de Redes. Protocolo TCP

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

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

2 Controle de Congestionamento do TCP

Redes de Computadores. Problemas 2011/2012

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

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

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

Redes de Computadores

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

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

Redes de Computadores

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

Teleprocessamento e Redes

Capítulo 3 Camada de transporte

Redes de Computadores e a Internet

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

Redes de Computadores 3ª Colecção Exercícios diversos 16 de Dezembro de 2005 Spanning Tree, Protocolo IP, Encaminhamento em redes IP e Cam.

Jones Bunilha Radtke. Tarefas:

Camada de Transporte, protocolos TCP e UDP

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

Redes de Computadores Aula 6

Redes de Computadores

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

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

Redes de Computadores

A CAMADA DE TRANSPORTE

Camada de Transporte. Prof. Leonardo Barreto Campos

TCP - estabelecimento de conexão

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

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

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.

UDESC SISTEMAS MULTIMÍDIA. Capítulo 4 Redes IP e o Transporte de Dados Multimídia. Prof. Claudinei Dias. Sistemas Multimídia 2011/2

TCP FACK (Forward Acknowledment)

1. PRINCIPAIS PROTOCOLOS TCP/IP

Redes de Computadores

Camada de Transporte. BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação

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

Camada de Transporte. Agenda. Tópicos. Serviços oferecidos... O serviço de transporte

Protocolo de transporte TCP (Transmission Control Protocol)

Redes de Computadores

Curso de Redes de Computadores 2010

Nível Transporte (Modelo Internet) {TCP.doc} UDP TCP

Redes de Computadores

Tecnologia de Redes de Computadores

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

Prof. Luís Rodolfo. Unidade III REDES DE COMPUTADORES E TELECOMUNICAÇÃO

Análise do Comportamento das Variações do Protocolo TCP

Redes de Computadores (RCOMP 2014/2015)

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

Padrão TCP/IP UNIVERSIDADE FEDERAL DE OURO PRETO CAMPUS JOÃO MONLEVADE

1 Arquitecturas e protocolos de comunicação

Capítulo 7 CAMADA DE TRANSPORTE

Introdução à Redes de Computadores

Fundamentos de Redes e Sistemas Distribuídos Aula 03 Camadas

CAMADA DE TRANSPORTE

Um pouco sobre Pacotes e sobre os protocolos de Transporte

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

CAPÍTULO 6 A CAMADA DE TRANSPORTE

O nível Transporte nas redes ATM

Redes de Computadores. Protocolos ARQ Continuação Profa. Priscila Solís Barreto

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

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes;

Cap. 3 O nível de transporte

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Experiência 04: Comandos para testes e identificação do computador na rede.

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

Transcrição:

Camada de transporte Serviços fornecidos pela camada de transporte Multiplexagem/desmultiplexagem Camada de transporte não-orientada à sessão: UDP Princípios da transmissão fiável e ordenada de dados Máquina de estados Camada de transporte orientada à sessão: TCP Sessões TCP Transferência fiável e ordenada de dados Controlo de fluxo Controlo de congestão Camada de transporte 1 Serviços Proporciona comunicação lógica entre processos de aplicação Suportado na camada de rede Melhora os serviços da camada de rede Camada extremo-aextremo aplicação transporte rede dados físico Transporte lógico extremo-a-extremo rede dados físico rede dados físico rede dados físico rede dados físicol rede dados písico aplicação transporte rede dados físico Camada de transporte 2

Camada de transporte na Internet Entrega fiável, ordenada para unicast: TCP Multiplexagem Estabelecimento e terminação de sessão Controlo de erros Controlo de fluxo Controlo de congestão Entrega não-fiável, não-ordenada para unicast ou multicast: UDP Multiplexagem Detecção de erros Serviços indisponíveis Tempo-real Garantias de largura-de-banda Multicast fiável Camada de transporte 3 Multiplexagem Multiplexagem de informação vinda de processos de aplicação Porto origem e destino enviados em cada segmento Portos bem-conhecidos e portos efémeros Desmultiplexagem pode necessitar também dos endereços IP porto origem 32 bits porto destino outros cabeçalhos dados da aplicação Formato dos segmentos TCP/UDP Camada de transporte 4

estação A Multiplexagem: exemplos porto origem: x porto dest.: 23 servidor B Orientado à sessão estação C porto origem:23 porto dest.: x Não orientado à sessão IP origem: C IP destino: B porto origem: y porto dest.: 80 IP origem: C IP destino: B porto origem: x porto dest.: 80 estação A IP origem: A IP destino: B porto origem: x porto dest.: 80 servidor B Camada de transporte 5 User datagram protocol (UDP) Serviço na base do melhor esforço (best-effort) Não garante entrega de segmentos Não garante entrega ordenada de segmentos Outras características Não pressupõe estabelecimento de sessão Não mantêm informação de estado Cabeçalho pequeno Não limita o débito de transmissão Aplicações que usam UDP Streaming multimedia Telefonia pela Internet DNS Camada de transporte 6

Anatomia de um segmento UDP Portos Comprimento Dados + cabeçalho Checksum cksum := x0000 segsum := soma, em complemento para 1, de todas as palavras de 16 bits do segmento cksum := complemento para 1 de segsum cksum + segsum = xffff porto origem comprimento 32 bits porto destino checksum dados da aplicação (comprimento variável) Camada de transporte 7 Transferência fiável de dados Stop-and-wait Origem só envia pacote novo depois de saber que o último foi bem recebido Concretização do protocolo depende das características do canal não-fiável Aplicação Transporte Processo origem canal fiável Processo destino swt_send() dados Protocolo transferência fiável (origem) ch_send() pacote dados deliver_ Protocolo data() transferência fiável (destino) pacote swt_rcv() Serviço providenciado canal não-fiável Implementação Camada de transporte 8

Corrupção sem perdas Feedback Canal Retransmissão 0 Corrompe pacotes Componentes NAK Detecção de erros, e.g. chksum 0 Feedback, ACK e/ou NAKs ACK Retransmissão Numeração dos pacotes, módulo 2 1 ACK Duplicado 1 Camada de transporte 9 Perdas Canal Corrompe pacotes Perde pacotes Componentes adicionais Retransmissão por temporização Numeração dos ACKs, módulo 2 0 0 ACK0 1 ACK0 1 Retransmissão por temporização 0 ACK1 Camada de transporte 10

Troca de ordem Canal Corrompe pacotes Perde pacotes Não respeita a ordem de transmissão Alteração dos componentes Numeração dos pacotes e ACKs não é módulo 2 Módulo de numeração N = T x R T é o tempo máximo de vida de um pacote R é o débito a que os números de sequência são consumidos 0 0 1 N -1 ACK0 ACK1 Duplicado Camada de transporte 11 Máquina de estados: origem swt_rcv(rcvpkt) swt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,1) timeout ch_send(sndpkt) start_timer Espera chamada de cima 0 Espera ACK1 swt_rcv(rcvpkt) && (corrupt(rcvpkt) isack(rcvpkt,0)) swt_send(data) make_pkt(sndpkt, 0,data) ch_send(sndpkt) start_timer swt_send(data) make_pkt(sndpkt, 1,data) ch_send(sndpkt) start_timer Espera ACK0 Espera chamada de cima 1 swt_rcv(rcvpkt) && (corrupt(rcvpkt) isack(rcvpkt,1)) timeout ch_send(sndpkt) start_timer swt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0) swt_rcv(rcvpkt) Camada de transporte 12

Máquina de estados: destino swt_rcv(rcvpkt) && (corrupt(rcvpkt) has_seq1(rcvpkt) ch_send(sndpkt) Espera 0 de baixo swt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) deliver_data(data, rcvpkt) make_pkt(sndpkt, ACK0) ch_send(sndpkt) Espera 1 de baixo swt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) deliver_data(data, rvpkt) make_pkt(sndpkt, ACK1) ch_send(sndpkt) swt_rcv(rcvpkt) && (corrupt(rcvpkt) has_seq0(rcvpkt) ch_send(sndpkt) Camada de transporte 13 Desempenho de stop-and-wait Parâmetros Canal a 1 Gbit/s Pacotes de 1 kbytes Atraso de propagação é 15 ms Utilização é pequeníssima! Canal de 1 Gbit/s está a ser usado a 267 kbit/s Protocolo limita o uso dos recursos de transmissão 8 Kbit d = trans 1 Gbit/s 8 µs U = 30.008 ms = 8 µs = 0.00027 Camada de transporte 14

Go-back-N Origem mantém uma janela deslizante de dimensão N, isto é tem um máximo de N pacotes não reconhecidos em voo base N nextseq Em voo Já reconhecidos Posições livres Janela deslizante no destino tem dimensão 1 Quando o temporizador do pacote i expira, a origem re-envia o pacote i bem como todos os seguintes ACKs são cumulativos Camada de transporte 15 Go-back-N: exemplo Janela na origem tem dimensão N = 6 Canal que não troca ordem de entrega de pacotes Pacotes numerados módulo (N+1) Cadência dos ACKs pode exercer controlo de fluxo [0,5] 0 1 2 3 [1,6] 4 [2,7] 5 [3,8] 6 [3,8] 3 [3,8] 4 [3,8] 5 6 [4,9] 7 [5,10] 8 [6,11] 9 [7,12] ACK1 ACK2 ACK3 ACK3 ACK3 ACK3 ACK4 ACK5 ACK6 ACK7 Camada de transporte 16

Máquina de estados: origem gbn_send(data) if (nextseq < base+n) { make_pkt(sendpkt, nextseq, data) ch_send(sendpkt(nextseq)) if (base == nextseq) start_timer nextseq = nextseq+1 } else refuse_data(data) gbn_rcv(rcvpkt) && notcorrupt(rcvpkt) ack = getacknum(rcvpkt) if (ack > base) base = ack if (base == nextseq) stop_timer else start_timer Espera timeout start_timer ch_send(sndpkt(base))... ch_send(sndpkt(nextseq-1)) Camada de transporte 17 Máquina de estados: destino ch_send(sndpkt) Espera gbn_rcv(rcvpkt) && notcorrupt(rcvpkt) && hasseq(rcvpkt, expectedseq) extract(rcvpkt, data) deliver_data(data) expectedseq = expectedseq +1 make_pkt(sndpkt, expectedseq, ACK) ch_send(sndpkt) Camada de transporte 18

Selective-repeat Origem mantém uma janela deslizante de dimensão N Destino mantém uma janela deslizante de dimensão N Quando o temporizador do pacote i expira, a origem re-envia apenas o pacote i ACKs são individuais N send_base nextseq Origem Não reconhecidos Já reconhecidos N Posições livres rcv_base Destino Camada de transporte 19 Selective-repeat: exemplo Janela na origem tem dimensão N = 6 Canal que não troca ordem de entrega de pacotes Pacotes numerados módulo 2 x N Cadência dos ACKs pode exercer controlo de fluxo [0,5] 0 1 2 3 [1,6] 4 [2,7] 5 [3,8] 6 [3,8] 3 [3,8] 7 [3,8] 8 [7,12] [8,13] 9 10 [9,14] 11 [10,15] ACK0 ACK1 ACK2 ACK4 ACK5 ACK6 ACK3 ACK7 ACK8 ACK9 Camada de transporte 20

Transmission Control Protocol (TCP) Stream de bytes ordenado e fiável Sessões ponto-a-ponto Sessão full-duplex Transferência bi-direccional de dados na mesma sessão Maximum Segment Size (MSS) Orientado à sessão Handshaking em três fases Buffers na origem e no destino Algoritmo de janela deslizante Controlo de fluxo e congestão determinam dimensão da janela Camada de transporte 21 Anatomia de um segmento TCP Números de sequência e de ACK Identificam bytes Sinalizadores RST, SYN e FIN: estabelecimento e terminação de sessão ACK: número de sequência é válido PSH: dados devem ser passados à aplicação URG: ptr dados urgentes é válido Ptr dados urgentes Deslocamento para o fim dos dados urgentes porto origem 32 bits porto destino número de sequência número de ACK comp. UAPRSF janela anunciada cab. checksum ptr dados urgentes opções (comprimento variável) dados da aplicação (comprimento variável) Camada de transporte 22

Números de sequência e de ACK Estação A Estação B dados= ABC Seq=42, ACK=79, ( ABC ) Seq=79, ACK=45, ( DEFG ) ACK + dados= DEFG ACK Seq=45, ACK=83 Camada de transporte 23 Estabelecimento e terminação de sessão cliente servidor cliente servidor CLOSED SYN x LISTEN ESTABLISHED FIN x ESTABLISHED SYN y, ACK x+1 ACK x+1 FIN y ESTABLISHED TIME_WAIT ACK y+1 ACK y+1 ESTABLISHED CLOSED Estabelecimento de sessão CLOSED Terminação de sessão Camada de transporte 24

Transferência de dados:exemplos Estação A Estação B Estação A Estação B timeout de Seq=100 timeout de Seq=92 Seq=92 (8 bytes) Seq=100 (20 bytes) ACK=100 ACK=120 Seq=92 (8 bytes) timeout Seq=92 (8 bytes) Seq=100 (20 bytes) Seq=120 (10 bytes) ACK=100 ACK=120 ACK=100 ACK=130 Camada de transporte 25 Maquina de estados Camada de transporte 26

Envio de segmentos Segmento de dados novo Número de bytes no buffer superior ou igual a MSS Periodicamente, sempre que houver bytes no buffer Solicitado na API (raro) Retransmissão de um segmento de dados Temporizador expirou Recepção de três ACKs duplicados (fast retransmit) ACK retardado Chegada de um segmento esperado ACK cumulativo Chegada de um segmento esperado e o ACK do segmento anterior ainda não tinha sido enviado ACK duplicado Chegada de um segmento duplicado Chegada de um segmento fora de ordem Camada de transporte 27 Controlo de fluxo Impede que a origem sobrecarregue o destino com dados Destino Informa explicitamente a origem do espaço disponível no buffer de recepção Campo janela anunciada dos segmentos TCP Origem Garante que o número de bytes enviados é inferior à janela anunciada Aplicação Dados TCP em buffer Janela anunciada Dimensão do buffer IP Camada de transporte 28

RTT e tempo de retransmissão Tempo de retransmissão Pequeno comparado com RTT implica retransmissões desnecessárias Grande comparado com RTT implica reacção lenta a perdas RTT varia durante uma sessão Estimação do RTT Extracção de amostras de RTT Ignorar retransmissões na extracção de amostras Calcular estimativa do RTT Determinar o tempo de retransmissão em função da estimativa de RTT Camada de transporte 29 Estimativa de RTT e tempo de retransmissão EstimatedRTT = (1-x)*EstimatedRTT + x*samplertt Deviation = (1-x)*Deviation + x* SampleRTT - EstimatedRTT Timeout = EstimatedRTT + 4*Deviation Média exponencial variante no tempo Impacto de amostras antigas decresce exponencialmente Tipicamente x = 0.125 (1/8) Camada de transporte 30

Controlo de congestão Pretende impedir que a origem sobrecarregue a rede Manifestações da congestão Perda de pacotes: descartados nos buffers dos encaminhadores Atrasos muito grandes: filas de espera longas nos buffers dos encaminhadores Controlo de congestão extremo-a-extremo Encaminhadores não providenciam feedback explícito TCP Controlo de congestão assistido pela rede Encaminhadores providenciam feedback explícito Camada de transporte 31 Congestão: cenário 1 Buffer infinito Não há retransmissões de pacotes Atrasos longos Camada de transporte 32

Congestão: cenário 2 Buffer finito Retransmissão de pacotes Carga oferecida à rede é superior à carga útil Camada de transporte 33 Congestão: cenário 3 4 encaminhadores idênticos Buffers finitos Retransmissões de pacotes Carga num encaminhador é, sobretudo, devida à estação que lhe está directamente ligada Pacotes usam recursos na primeira ligação para serem descartados na segunda! Carga gerada útil decresce com a carga oferecida Camada de transporte 34

Controlo de congestão TCP Estação origem mantém janela de congestão de dimensão cwnd e um parâmetro threshold Arranque lento: cwnd threshold Por cada segmento reconhecido incrementa cwnd Crescimento exponencial Prevenção da congestão: cwnd > threshold Por cada cwnd segmentos reconhecidos incrementa cwnd Crescimento linear Timeout threshold := cwnd/2 cwnd := 1 Decrescimento multiplicativo Camada de transporte 35 Janela de congestão TCP: exemplo Reno Tahoe Camada de transporte 36

Desempenho de uma sessão TCP perda de segmento janela de congestão W W/2 MSS Débito = 1.22 RTT 1 p tempo p taxa de perda de segmentos Camada de transporte 37 Equidade em sessões TCP com RTT igual R equidade crescimento aditivo sessão 2 decrescimento multiplicativo sessão 1 R Camada de transporte 38

Estimação de atrasos Atraso na recepção de um objecto guardado num servidor Web Notação e hipóteses R: débito da sessão cliente/servidor (bits/s) S: MSS (bits) O: dimensão do objecto (bits) W: dimensão da janela (segmentos) Não há perdas Casos W S/R S/R + RTT: janela não se esgota W S/R < S/R + RTT: janela esgota-se Camada de transporte 39 Diagramas RTT S/R O/R K= O/WS Atraso = 2RTT+O/R Atraso = 2RTT+O/R+(K-1)[S/R+RTT-WS/R] Camada de transporte 40

Estimação do atraso com arranque lento K = log 2 (O/S+1) Q = log 2 (1+RTT R/S) +1 S/R P = min(q, K-1) Atraso = 2RTT+O/R+P(RTT+S/R)- (2 P -1)S/R Camada de transporte 41