Tecnologia de Redes de Computadores



Documentos relacionados
Redes de Computadores. Camada de Transporte

Camada de Transporte, protocolos TCP e UDP

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.

Camada de Transporte. Protocolos TCP e UDP

REDES DE COMPUTADORES

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

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

Redes de Computadores II

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

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

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

Redes de Computadores

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

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

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

CAMADA DE TRANSPORTE

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

Redes de Computadores

A Camada de Transporte

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

Transporte. Transporte. Nível de Transporte Portas, Protocolos UDP e TCP. Transporte. Transporte. Nível de Transporte

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

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

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

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

Capítulo 7 CAMADA DE TRANSPORTE

Introdução ao Protocolo TCP/IP. Prof. Gil Pinheiro UERJ/FEN/DETEL

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

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

Redes de Computadores

1. PRINCIPAIS PROTOCOLOS TCP/IP

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

genérico proteção de rede filtragem dos pacotes Sem estado (stateless) no próprio pacote. Com estado (stateful) outros pacotes

Fernando Albuquerque - fernando@cic.unb.br ADMINISTRAÇÃO TCP/IP. Fernando Albuquerque fernando@cic.unb.br

robustez; confiabilidade; e comunicação de dados independente de fornecedores.

CAPÍTULO 6 A CAMADA DE TRANSPORTE

Introdução à Redes de Computadores

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

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

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

Redes de computadores. Redes para Internet

Redes de Computadores

Redes de Computadores

REDES DE COMPUTADORES

TCP - multiplexação/demultiplexação

Camada de Transporte TCP/IP e Aplicação

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

Redes de Computadores

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 17 de junho de 2015

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

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

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

Controle de Erro em Redes de Computadores

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

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

Redes de Computadores. Protocolo TCP/IP Profa. Priscila Solís Barreto

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

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006

Comunicação de Dados

PROJETO DE REDES

UNIVERSIDADE. Sistemas Distribuídos

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

TRANSMISSÃO DE DADOS

1 Redes de Computadores - TCP/IP Luiz Arthur

Protocolos de Comunicação

Redes de Telecomunicações (11382)

Camada de Transporte

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

Visão geral da arquitetura do roteador

Capítulo 7 CAMADA DE TRANSPORTE

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

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

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

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

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

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

REDE DE COMPUTADORES

Regras de funcionamento (Unreliable Delivery, etc.) Método de roteamento (Sem conexão) Formato dos dados em um datagrama

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

TCP - estabelecimento de conexão

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Redes de Computadores

REDES DE COMPUTADORES

Informática I. Aula Aula 22-03/07/06 1

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

Aula 6 Modelo de Divisão em Camadas TCP/IP

Camada de transporte. Camada de transporte

Cliente-servidor com Sockets TCP

MÓDULO 8 Modelo de Referência TCP/IP

Aula-16 Interconexão de Redes IP (Internet Protocol) Prof. Dr. S. Motoyama

Prof. Marcelo Cunha Parte 5

Transcrição:

Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 31. CAMADA DE TRANSPORTE

Camada de Transporte

Camada de Transporte Funções da camada controle de fluxo fim-a-fim sequênciação detecção e recuperação de erros multiplexação de várias conexões de transporte em uma conexão de rede

Camada de Transporte

Camada de Transporte Tipos de serviços oferecidos na arquitetura TCP/IP: Com conexão: protocolo TCP Sem conexão: protocolo UDP Unidade de dados TCP: segmento. UDP: datagrama.

Camada de Transporte Aplicação TCP UDP Inter-rede

Camada de Transporte

Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 32. PROTOCOLO UDP

User Datagram Protocol (UDP) Características principais do UDP: não confiável. sem conexão. não implementa acks. não implementa controle de fluxo. não garante a seqüência. A aplicação assume as responsabilidades pela garantia da confiabilidade. usado em aplicações em tempo-real e multiponto Programadores costumam esquecer essa característica uma vez que testam seus programas em ambientes de rede local, que costumam ser altamente confiáveis.

User Datagram Protocol (UDP) Identifica os processos que estão se comunicando através do conceito de porta. Permite a multiplexação do uso do serviço de rede. Características: O protocolo UDP oferece um serviço não confiável e sem conexão que usa o protocolo IP para o transporte de mensagens entre máquinas. Adiciona ao IP a funcionalidade de distinguir múltiplos destinos dentro de um mesmo host (endereçamento a nível de transporte, porta)

O conceito de porta: User Datagram Protocol (UDP) A maioria dos S.O. atuais é multi-tarefa, vários processos são executados ao mesmo tempo Ao chegar um datagrama IP para qual processo o S.O. deverá encaminhar a mensagem? End. IP identifica o host, mas não a aplicação (processo)

Uso de porta Protocolo UDP usada para distinguir entre múltiplos processos executando numa única máquina uma aplicação (ou processo) UDP é identificada por uma determinada porta em uma estação: ENDEREÇO IP + PORTA UDP

Protocolo UDP A porta permite a demultiplexação UDP Aplicação 1 Aplicação 2 Porta 126 Porta 34 Porta 22 UDP IP

User Datagram Protocol (UDP) Funcionamento: Acesso síncrono às portas Se o processo tenta extrair dados da porta antes dos dados chegarem, o S.O. bloqueia o processo até que os dados estejam disponíveis Quando os dados chegam o S.O. reinicia o processo e passa os dados. Em geral, as portas usam buffers de forma que se os dados chegarem antes do processo estar pronto para recebê-los eles não serão perdidos Para comunicação com o processo na máquina destino, o processo origem precisa saber não só o endereço IP bem como a porta destino.

User Datagram Protocol (UDP) Funcionamento: Idéia de Guichê Antes de enviar um pacote a aplicação deve associar-se a um número de porta Identificação do processo pela rede deve ser independente do S.O. Toda multiplexação e demultiplexação entre software UDP/TCP e as aplicações ocorre pelo mecanismo das portas Quando uma porta é estabelecida o S.O. cria internamente uma fila e a associa à porta Quando o UDP/TCP recebe um datagrama, ele verifica se a porta especificada existe, caso não exista uma mensagem ICMP port unreachable será enviada. Se houver um casamento o dado será colocado na fila para posterior acesso da aplicação

User Datagram Protocol (UDP) Abordagens para atribuição de números de portas: Atribuição universal: portas bem conhecidas. Associação dinâmica: uma requisição (para uma porta bem conhecida) solicita o número da porta. As portas de 0 a 1023 são bem conhecidas. Acima de 1023, livre para uso dos usuários Documentação: RFC 768

Algumas Portas Bem Conhecidas Porta Descrição do Serviço 7 eco 13 relógio (texto) 37 relógio (binário) 53 DNS - Domain Name System 67 Servidor do serviço bootstrat 68 Cliente do serviço bootstrap 69 TFTP - Trivial File Transfer Protocol 111 RPC - Remote Procedure Call 123 NTP - Network Time Protocol 161 SNMP - Simple Network Mngmt Protocol 162 SNMP traps

Datagrama UDP Datagrama UDP (em bytes): Source Port 2 2 2 2 Destination Port Lenght Checksum Variável Payload Source Port: Porta de origem. Destination Port: Porta de destino. Lenght: tamanho do datagrama inteiro. Checksum: da mensagem inteira. Payload: dados do usuário do nível de transporte.

Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 33. PROTOCOLO TCP

Características Protocolo TCP Orientado a stream (fluxo)» os dados gerados/recebidos pela aplicação são vistos como uma sequência de bytes, em oposição a uma sequência de pacotes. Stream não-estruturada» TCP não conhece a estrutura de dados usada pela aplicação Fornece um serviço confiável» dados em sequência, sem duplicações ou erros.» Realiza a detecção e correção de erros.» Realiza o controle de fluxo através de janelas deslizantes.

Características Protocolo TCP Orientado à conexão» Oferece um serviço de circuito virtual sobre IP:» antes do início da transferência de dados é necessário que ambas as partes estejam de acordo abertura da conexão, transferência dos dados e fechamento da conexão Estabelece conexão via three-way handshaking.» Multiplexa (e demultiplexa) o acesso à camada de rede. Conexões full-duplex» duas sequências de bytes (streams) independentes fluindo em direções opostas, com nenhuma interação aparente reduz o tráfego permitindo o piggybacking

Transport Control Protocol (TCP) Portas de 0 a 1023 são reservadas para aplicações oficiais - Exemplos: 20 FTP - File Transfer Protocol dados 21 FTP - File Transfer Protocol controle 23 Conexão telnet 25 SMTP - Simple Mail Transport Protocol 53 DNS - Domain Name System 70 Gopher 79 Finger 80 HTTP - HyperText Transfer Protocol 110 POP3 - Post Office Protocol v3 111 RPC - Remote Procedure Call 119 NNTP - Network News Transfer Protocol A conexão é identificada pela seguinte tupla: (IP Origem, Porta TCP Origem, IP Destino, Porta TCP Destino)

Conexão TCP O TCP usa a conexão, e não a porta de protocolo, como sua abstração principal. As conexões são identificadas por um par de pontos terminais. Ponto terminal - (ender host, nr porta) Um ponto terminal pode pertencer a várias conexões. Porta 22 Porta 2340 TCP TCP IP Inter-rede TCP/IP Host 139.82.17.10 Host 139.82.55.3 Conexão = (139.82.17.10, 22) e (139.82.55.3, 2340) IP

O Segmento TCP (em bits) 16 16 32 32 4 6 6 16 16 Source Port Destination Port Sequence Number Ack Number Data Offset Reserved Flags Window Checksum 16 32 Até 65K - Header - Header IP Urgent Pointer Options + Padding Data Source Port & Destination Port: portas origem / dest. Sequence Number: Número de seqüência utilizado na janela deslizante. É determinado no estabelecimento da conexão. Leva em consideração o tamanho do segmento. Ack Number: utilizado para o piggybacking. Trás o número do próximo segmento esperado pelo destino.

O Segmento TCP (em bits) 16 16 32 32 4 6 6 16 16 Source Port Destination Port Sequence Number Ack Number Data Offset Reserved Flags Window Checksum 16 32 Até 65K - Header - Header IP Urgent Pointer Options + Padding Data Data Offset: tam. do header (múltiplos de 32 bits). Reserved: zero. Flags: todos de 1 bit: Urg: indica a presença de Urgent Field Ack: indica a presença de ack. Push: solicita a função push (envio imediato). Rst: solicita o reinício da conexão.

O Segmento TCP (em bits) 16 16 32 32 4 6 6 16 16 Source Port Destination Port Sequence Number Ack Number Data Offset Reserved Flags Window Checksum 16 32 Até 65K - Header - Header IP Urgent Pointer Options + Padding Flags: todos de 1 bit: Syn: solicita a sincronização dos sequence numbers. Fin: indica que a origem não enviará mais dados. Window: tamanho da janela de recepção da origem. Checksum: checksum do segmento e do cabeçalho IP. Urgent point: indica o final dos dados urgentes. Data

O Segmento TCP (em bits) 16 16 32 32 4 6 6 16 16 Source Port Destination Port Sequence Number Ack Number Data Offset Reserved Flags Window Checksum 16 32 Até 65K - Header - Header IP Urgent Pointer Options + Padding Options: apenas uma opção está definida, que limita o tamanho do segmento TCP (MSS). Data Padding: faz com que o tamanho do cabeçalho seja múltiplo de 32 bits. Data: dados a serem transportados. O MSS típico é de 1024 bytes.

Cliente Conexão TCP Pedido de abertura Servidor SP: Source Port DP: Destination Port Resposta ao pedido Confirmação Three Way Handshake Write & Read Troca de dados Aplicação ordenou close SO envia eof Confirmação do recebimento Pedido de encerramento Half Close Dados Pedido de encerramento t Confirmação

Abertura da Conexão TCP Three-way Handshake Envia um SYN com seq = x Recebe SYC com seq = y e ACK x+1, envia ACK y+1 Recebe um SYN com seq = x, responde através de SYN com seq = y, ACK x+1 Recebe ACK y+1 Um número de seqüência é gerado para cada conexão. Requisições para uma nova conexão a partir da mesma origem, após a abertura de uma primeira conexão, são rejeitadas.

Fechamento da Conexão TCP Aplicação fecha a conexão Envia um FIN com seq = x Recebe ACK x+1 Recebe um FIN com seq = x, responde através de ACK x+1 Informa à aplicação (half close) Aplicação fecha a conexão Envia um FIN com seq = y, ACK x+1 Recebe FIN com seq = y e ACK x+1, envia ACK y+1 Recebe ACK y+1

Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 34. CONTROLE DE FLUXO RETRANSMISSÃO

Controle de Fluxo Evitar que o TX afogue o RX com dados RX tipicamente aloca um buffer para armazenar dados recebidos enquanto está ocupado realizando outras tarefas (processamento) A ausência de controle de fluxo pode causar overflow nesse buffer. Como implementar? 1. RX atrasa o envio de ACKs, desta forma após enviar N quadros sem reconhecimento o TX para (timeout). 2. Uso de quadros especiais: RNR (Receiver not Ready). Por exemplo, RNR-5 recebi todos os quadros até o 5, mas no momento não posso aceitar mais. Depois o RX envia um ACK normal para reabrir a janela do transmissor. 3. Controle sobre o tamanho da janela do TX por meio de informação do status do buffer do receptor (usado no TCP) Geralmente funciona em conjunto com o controle de erros (ARQ)

Proposta Inicial: usar confirmação, ACK TX ACK ACK RX tempo

Proposta Inicial: usar confirmação, ACK TX ACK ACK RX tempo Erro ou perda do quadro?

Timeout timeout X ACK

Timeout timeout X ACK Erro ou perda do ACK?

Erro ou Perda do ACK timeout X ACK Duplicata passada para o Nível 3 Solução?

Identificação dos Quadros timeout 1 1 2 X ACK 1 1 Solução final? Descartado! Quadro 1 já foi recebido, estou esperando o Quadro 2

Timeout Prematuro timeout 1 2 2 3 4 ACK ACK ACK X 1 2 2 duplicata Solução? 4 Perdeu o Quadro 3!

Solução: Identificação dos ACKs timeout 1 2 2 3 3 ACK1 ACK2 ACK2 X 1 2 2 duplicata 3 OK!

Solução: Identificação dos ACKs timeout 1 2 2 3 3 ACK1 ACK2 ACK2 X 1 2 2 duplicata Adicionalmente: dimensionar corretamente o timeout. 3 OK! Pergunta: até quando deve ir a sequência de identificação dos quadros?

Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 35. ESTRATÉGIAS DE RETRANSMISSÃO

Stop-and-Wait ARQ timeout timeout 0 1 0 0 0 ACK0 ACK1 X X ACK0 0 1 0

Stop-and-Wait ARQ (cont) Um novo quadro é enviado somente se for recebida confirmação do anterior; Há timeout para controlar o tempo de espera; Só é necessário 1 bit para numerar os quadros; Fluxo unidirecional; Para bidirecional: usar 2 Stop-and-Wait, um para cada sentido. No caso bidirecional: técnica de piggybacking pode ser usada Melhor aproveitamento de banda. Timeout2 no caso de não haver informação para ser TX em um dos sentidos.

Problema do Stop-and-Wait ARQ Canais que apresentam grandes retardos Desperdício de banda é grande Baixa utilitização do canal Utilização: percentual de tempo dedicado a transmissão de informação útil. Como estimar a utilização do canal usando o protocolo Stop-and-Wait ARQ? Incluir todos os retardos Análise do melhor caso Considerar perdas, erros na transmissão Ronaldo M Salles

Melhor Caso: sem erros ou ReTX t I t p t proc t p t ACK t proc 0 1 t p 0 ACK0 t p : tempo de propagação (supondo igual nos 2 sentidos) t proc : tempo de processamento (supondo igual nos 2 sentidos) t T = t I + 2t p + 2t proc + t ACK Ronaldo M Salles

Go-Back-n ARQ (sliding window) Vários quadros são enviados sem espera de confirmação O número máximo de quadros que podem ser TX define o tamanho da janela de transmissão (n) Neste protocolo a janela de recepção é igual a 1 (igual a do Stop-and-Wait) A ReTX é realizada a partir do quadro que não foi reconhecido. Os quadros seguintes, mesmo sendo recebidos sem erros são descartados (não armazenados pelo receptor)

Go-back-n ARQ (sliding window) W = 7 0 [0,6] [1,7] [2,8] [3,9] 1 2 3 4 5 6 7 8 ACK0 ACK1 0 1 2

Go-back-n ARQ (sliding window) W = 4 0 [0,3] [1,4] [1,4] [2,5] 1 2 3 4 1 2 3 4 2 X ACK0 ACK0 ACK0 ACK0 ACK1 0 2 3 4 Não tem buffer p/ armazenar Janela recepção = 1 1

Go-back-n ARQ W = 5 0 timeout 1 2 3 4 0 1 2 3 4 X ACK0-4 0 1 2 3 4 0 RX espera novo quadro 0 Aceito por como novo quadro FUROU! Ronaldo M Salles

Go-back-n módulo m > n W = 5 timeout Seq.: 0,1,2,3,4,5 0 1 2 3 4 0 1 2 3 4 X ACK0-4 0 1 2 3 4 0 RX espera quadro 5 Descartado já recebeu o quadro 0 Ronaldo M Salles

Selective Repeat ARQ (sliding window) Funcionamento semelhante ao Go-back-n, porém o tamanho da janela do receptor é igual a do transmissor. O RX armazena os pacotes recebidos sem erros mesmo fora de ordem, desde que os números de sequência estejam dentro da janela. Quantidade de buffers necessária no receptor é igual ao tamanho da janela. Implementa a retransmissão seletiva Existe ainda um número Go-back caso a janela se esgote Objetivo: maximizar a utilização do canal

Sliding-window (janela deslizante) envio de vários quadros sem reconhecimento Transmissor Receptor Quadro 0 Quadro 1 Quadro 2 Quadro 3 ACK 3 Quadro 4 Quadro 5 Quadro 0 Quadro 0 Quadro 1 Quadro 2 Quadro 3 ACK 3 Quadro 4 Quadro 5 Quadro 0 Quadro 1 Quadro 1 Quadro 2 Quadro 2 ACK 2 ACK 2 T pacotes são numerados em sequência (NrSeq) 0.. NrSeqMax o número máximo de pacotes transmitidos e ainda não reconhecidos é determinado pelo tamanho da janela qdo o tamanho da janela é igual a 1 => stop-and-wait

Sliding-window (janela deslizante) Transmissor Receptor 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Envia um quadro 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Envia dois quadros 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Envia um quadro 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Recebe Ack de quatro quadros Recebe um quadro 0 Recebe dois quadros 0 1 2 Recebe um quadro 0 1 2 3 Envia Ack de quatro quadros 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Envia um quadro 0 1 2 3 Recebe um quadro 0 1 2 3 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Envia três quadros 4 0 1 2 3 4 0 1 2 3 4 Recebe Ack de quatro quadros 0 1 2 3 4 Recebe três quadros 0 1 2 3 4 0 1 2 Envia Ack de quatro quadros 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2

Selective Repeat ARQ (sliding window) W = 4 [0,3] [1,4] [5,8] 0 1 2 3 4 1 2 3 4 5 X ACK0 ACK0 ACK0 ACK0 ACK4 0 2 3 4 1 [1,4] [5,8] Armazena os quadros recebidos que não apresentaram erros.

Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 36. ESTRATÉGIAS DE RETRANSMISSÃO E CONTROLE FLUXO DO TCP

Segmento, Stream e Seq.Numbers TCP é orientado a bytes (octetos) stream é toda a sequência de bytes número de seq. aponta para o último byte do stream que foi transmitido conjunto de bytes forma o segmento TCP Mecanismo sliding window

Funções do protocolo TCP Controle de erros (confiabilidade) usa estratégias de retransmissão reconhecimentos positivos - a cada segmento recebido, o receptor envia um reconhecimento (ACK) Controle de fluxo (janela deslizante) evita que o emissor sobrecarregue o receptor uma função fim-a-fim Controle de congestionamento evita que uma grande quantidade de dados sejam injetados na rede, fazendo com que os roteadores e os enlaces fiquem sobrecarregados

Controle de erro ARQ (Automatic Repeat Request) reconhecimentos + temporizadores reconhecimentos positivos» a cada pacote recebido, o receptor envia um reconhecimento (ACK) reconhecimentos negativos» o receptor envia um reconhecimento (NAK) apenas qdo a perda de um pacote é detectada FEC (Forward Error Control) transmissão redundante de dados utilização de códigos corretores de erro

Funções do sliding-window no TCP entrega confiável de pacotes reconhecimento acumulativo» receptor reconhece o número de sequência do próximo octeto esperado estratégia go-back-n modificada preserva a ordem de transmissão dos pacotes» receptor só passa um pacote para a aplicação qdo todos os pacotes com nr. de sequência inferior já foram entregues

Controle de Fluxo Controle da taxa de transmissão para evitar que um transmissor rápido sobrecarregue um receptor lento Evita perda de informação, garante confiabilidade na transmissão Fundamental em redes como a Internet onde existe uma grande diversidade de hosts e links Implementado através de ajustes no tamanho da janela de transmissão (janela de tamanho variável) Campo window do segmento TCP

Window advertisement Controle de Fluxo quando o receptor envia um ACK (confirmação de recebimento de bytes), ele usa o campo window para informar quantos bytes adicionais ele está preparado para receber. espaço disponível do buffer do receptor No caso extremo a janela pode ser zero Quando o receptor ficar disponível de novo ele envia uma janela maior para reiniciar novamente o fluxo de dados

controle de fluxo Funções do sliding-window no TCP o receptor informa ao emissor o espaço livre que ele tem no seu buffer de recepção Aplicação emissora Aplicação receptora TCP último byte escrito último byte lido TCP último byte reconhecido último byte enviado próximo byte esperado último byte recebido advwindow = maxrcvbuffer - (ultbyterecebido - ultbytelido) effwindow = advwindow - (ultbyteenviado - ultbytereconhecido)

Sliding-window - Controle de Fluxo Controle de fluxo o receptor informa ao emissor o espaço livre que ele tem no seu buffer de recepção

Problemas do sliding window a cada segmento enviado, TCP inicia um temporizador e espera por um ACK se temporizador expira antes da chegada do reconhecimento o segmento é retransmitido Protocolo de janelas deslizantes necessitam de uma boa estimativa para o timeout Timeout curto: duplicatas Timeout longo: ineficiência No caso do enlace (ponto-a-ponto) é mais simples, o retardo de ida e volta (RTT) é mais determinístico No nível de transporte o problema é fim-a-fim o que dificulta a estimativa do RTT

Timeout e Retransmissão TCP: adaptive retransmission algorithm Os delays na Internet são variáveis e exigem um algoritmo de retransmissão adaptativo. RTT é estimado dinamicamente para acompanhar as flutuações no tráfego da rede Cálculo do RTT» TCP grava o tempo do envio de cada segmento e o tempo da chegada da confirmação (ACK)» O TCP calcula o RTS (Round Trip Sample) para cada segmento e ajusta o round trip médio para a conexão, o RTT (RT Time) utilizando uma média ponderada» RTT = ( * OldRTT ) + ( ( 1 - ) * NewRTS ) perto de 1: imunidade a mudanças de curta duração. perto de 0: reação rápida as mudanças. Timeout = ß * RTT» ß = 1 provoca retransmissão desnecessária