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

Documentos relacionados
SSC0641 Redes de Computadores

Universidade Federal de Minas Gerais Departamento de Ciência da Computação

SSC0641 Redes de Computadores

Redes de Computadores e a Internet

Redes de Computadores e a Internet

Camada de transporte. Camada de transporte

PTC Aula Princípios da transferência de dados confiável. (Kurose, Seções 3.4 e 3.5) 28/04/2017

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Capítulo 3: Camada de Transporte

Camada de Transporte. Protocolos TCP e UDP

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

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose)

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Redes de Computadores

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

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

Planejamento. Revisão. Desempenho em Protocolos de Transporte

3Camada de transporte

Redes de computadores. Protocolo TCP

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte

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

Capítulo 3: Camada de Transporte

Redes de computadores e a Internet

EEL878 - Redes de Computadores I

EEL878 - Redes de Computadores I. Prof. Luís Henrique Maciel Kosmalski Costa.

Redes de Computadores

Redes de Computadores

Camada de Transporte

Redes de Computadores

Redes de Computadores

Redes de Computadores e Telecomunicações - Camada de Transporte

Redes de Computadores RES 12502

: TMS M

Roteiro Resumido. Camada de Transporte. Parte III. Camada de Transporte. Camada de Transporte. Redes de Computadores 25/4/2017

Serviços e Protocolos de Transporte

Redes de Computadores

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

Redes de Computadores Aula 5

Capítulo 3. Camada de transporte. Pearson. Todos os direitos reservados.1

Roteiro Resumido. Camada de Transporte. Parte III. Camada de Transporte. Camada de Transporte. Redes de Computadores 14/08/2015

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Arquitetura de Redes de Computadores

PTC Aula A camada de transporte. (Kurose, p ) 15/03/2017

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Capítulo 3: Camada de Transporte

Capítulo 3 Camada de transporte

Redes de Computadores

Redes de Computadores

Redes de Computadores

Capítulo 6. A camada de transporte. slide 1 1 reservados.

Capítulo 3: Camada de Transporte

Capítulo 3. Camada de transporte

Redes de Computadores. Camada de Transporte

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

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

PROTOCOLOS DE COMUNICAÇÃO

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

Infra-Estrutura de Comunicação (IF678)

SSC0641 Redes de Computadores

Camada de Transporte. Redes Industriais Rone Ilídio UFSJ CAP

TRANSPORTE. Prof. Me. Hélio Esperidião

Capítulo 3 Camada de transporte

Redes de Computadores

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP

Redes de Computadores. Prof. André Y. Kusumoto

REDES DE COMPUTADORES

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN

Funções da Camada de

Redes de Computadores

Camada de transporte. Serviços

A camada de enlace de dados executa diversas funções específicas. Dentre elas

PTC Aula Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP

Configuração de serviço feita sob encomenda em RV120W e em RV220W

Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo

Novas Propostas para Protocolos de Streaming Luiz Eduardo Fontes Mello de Almeida

Redes de Computadores

Camada de Enlace de Dados

Cálculo de Soma de Verificação do User Datagram Protocol

Serviços da camada de transporte

Camada de Transporte

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva

Cap. 03 Camada de Transporte

Jéfer Benedett Dörr

Redes de Computadores

Capítulo 9: Camada de Transporte

Redes de Computadores

Redes de Computadores

Prof. Marcelo Cunha Parte 6

Delimitação de Quadros. Exemplos de Protocolos de Nível de Enlace. Nível de Enlace. Nível de de Enlace. Disciplina: Comunicação de Dados IV

Funcionalidades da camada de rede

Camada de Transporte Protocolos TCP e UDP

Capítulo 3. A camada de enlace de dados

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

Rede de computadores Protocolos TCP. Professor Carlos Muniz

Novos Protocolos de Streaming MMTP e SCTP

Redes de Computadores

Capítulo 4 - Sumário

SSC0641 Redes de Computadores

Transcrição:

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

Camada de transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado à conexão: UDP 3.4 Princípios de transferência confiável de dados 3.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão 3.6 Princípios de controle de congestionamento 3.7 Controle de congestionamento do TCP 3-2

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 (e possível) 3-3

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 Dados da aplicação; 8 64Kb Comprimento Checksum 3-4

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? Mas depois 3-5

Exemplo: Internet checksum Note que: Ao se adicionar números, um vai um do bit mais significativo deve ser acrescentado ao resultado. Exemplo: adicione dois inteiros de 16 bits 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 wraparound sum checksum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 3-6

Exemplo: Internet checksum Exemplo: 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 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 Checksum? 3-7

Camada de transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado à conexão: UDP 3.4 Princípios de transferência confiável de dados 3.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão 3.6 Princípios de controle de congestionamento 3.7 Controle de congestionamento do TCP 3-8

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 importantes de redes! Características dos canais não confiáveis determinarão a complexidade dos protocolos confiáveis de transferência de dados (rdt) 3-9

Transferência confiável: o ponto de partida rdt_send(): chamada da camada superior, (ex., pela aplicação). Passa dados para entregar à camada superior receptora deliver_data(): chamada pela entidade de transporte para entregar dados para cima lado transmissor lado receptor udt_send(): chamada pela entidade de transporte, para transferir pacotes para o receptor sobre o canal não confiável rdt_rcv(): chamada quando o pacote chega ao lado receptor do canal 3-10

Transferência confiável: o ponto de partida Etapas: Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiável de transferência de dados (rdt) Considerar apenas transferências de dados unidirecionais Mas informação de controle deve fluir em ambas as direções! Usar máquinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor estado: quando neste estado o próximo estado fica unicamente determinado pelo próximo evento estado 1 evento causando transição de estados ações tomadas na transição de estado evento ações estado 2 3-11

Canal de transmissão perfeitamente confiável Não há erros de bits Não há perdas de pacotes rdt1.0: Transfêrencia confiável sobre canais confiáveis FSMs separadas para transmissor e receptor: Transmissor envia dados para o canal subjacente Receptor lê os dados do canal subjacente 3-12

rdt2.0: canal com erros de bit Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits A questão: como recuperar esses erros: Reconhecimentos (ACKs): receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs): receptor avisa explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepção de um NAK Novos mecanismos no rdt2.0 (além do rdt1.0): Detecção de erros Retorno do receptor: mensagens de controle (ACK, NAK) rcvr->sender 3-13

rdt2.0: especificação FSM 3-14

rdt2.0 operação com ausência de erros rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) aguarda chamada de cima rdt_rcv(rcvpkt) && isack(rcvpkt) Λ aguarda ACK ou NAK rdt_rcv(rcvpkt) && isnak(rcvpkt) udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) aguarda chamada de baixo rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) 3-15

rdt2.0: cenário de erro rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) aguarda chamada de cima rdt_rcv(rcvpkt) && isack(rcvpkt) Λ aguarda ACK ou NAK rdt_rcv(rcvpkt) && isnak(rcvpkt) udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) aguarda chamada de baixo rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) 3-16

rdt2.0 tem um problema fatal! 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 Possíveis soluções: Transmissor pergunta o que receptor disse; Problema: e se o receptor achar que a pergunta do transmissor é uma nova mensagem, e não pedido de reenvio? Adicionar número suficiente de bits de soma de verificação, fazendo que remetente possa detectar e recuperar o erro Isso resolve para canais que podem corromper pacotes, não para canais que podem perder pacotes! ); Transmissor reenviar o pacote de dados quando receber ACK ou NAK truncado; Problema: essa solução acrescenta pacotes duplicados 3-17

rdt2.0 tem um problema fatal! 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 Tipo de protocolo Pare e espere Transmissor envia um pacotee então espera pela resposta do receptor 3-18

rdt2.1: transmissor, trata ACK/NAKs perdidos 3-19

rdt2.1: receptor, trata ACK/NAKs perdidos 3-20

rdt2.1: discussão Transmissor: Adiciona número de seqüência ao pacote Dois números (0 e 1) bastam. Por quê? Deve verificar se os ACK/NAK recebidos estão corrompidos Duas vezes o número de estados O estado deve lembrar se o pacote corrente tem número de seqüência 0 ou 1 Receptor: Deve verificar se o pacote recebido é duplicado Estado indica se o pacote 0 ou 1 é esperado Nota: receptor pode não saber se seu último ACK/NAK foi recebido pelo transmissor 3-21