39
Prof. Arthur Prof. Arthur Transmissão de Transmissão de Dados Dados A Camada de Transporte A Camada de Transporte Transmissão de Dados Transmissão de Dados Prof. Arthur Prof. Arthur [email protected] [email protected] 2009 2009 O Modelo de Referência TCP/IP A Camada de Transporte

Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur [email protected] O Modelo de Referência TCP/IP A Camada de

Embed Size (px)

Citation preview

Page 1: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

Transmissão de DadosTransmissão de Dados

Prof. ArthurProf. [email protected]@unip.br

20092009

O Modelo de Referência TCP/IPA Camada de Transporte

Page 2: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

A Camada de Transporte

É o núcleo de toda a hierarquia de protocolos.

A Camada de TransporteA Camada de Transporte

Sua função é promover uma transferência de dados confiável e econômica entre a máquina de origem e a máquina de destino, independente das redes físicas em uso no momento.

Page 3: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

1. Oferecer serviços à camada de Aplicação.

A Camada de TransporteA Camada de Transporte

2. Oferecer qualidade de serviços.

Page 4: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

1. Serviços de Transporte

A Camada de TransporteA Camada de Transporte

Os serviços desta camada são muito semelhantes aos da camada de Rede. Por que existem as duas?

• A camada de Rede faz parte da sub-rede de comunicações, e pode ser executada pela empresa concessionária.

• Se a concessionária não oferecer um serviço confiável, os dados recebidos devem ser tratados na camada de Transporte.

• A camada de Transporte isola as camadas superiores dos defeitos na sub-rede.

Page 5: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

A função aqui é verificar se os parâmetros do serviço estão dentro dos limites pré-estabelecidos efetivando, ou não, a comunicação.

Alguns exemplos de parâmetros de serviços são:

Page 6: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

Retardo no estabelecimento da conexãoÉ o tempo decorrido entre a solicitação de uma conexão e o recebimento da confirmação de que ela se estabeleceu.

Probabilidade de falha no estabelecimento da conexãoÉ a chance de que uma conexão não seja estabelecida dentro do tempo máximo de retardo pré-fixado.

Page 7: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

ThroughputÉ o número de bytes de dados transferidos, por segundo, em cada sentido.

Retardo de trânsitoÉ o tempo decorrido entre o envio de uma mensagem pelo transmissor e sua recepção pelo receptor, em cada sentido.

Page 8: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

Taxa de erro residualÉ o número de mensagens perdidas, ou alteradas, em relação ao número total de mensagens enviadas.

Probabilidade de falha de transferênciaÉ o número de vezes que os parâmetros anteriores não foram atingidos.

Page 9: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

Retardo na liberação da conexãoÉ o tempo decorrido entre o início da desconexão e o recebimento de sua confirmação enviada pelo destinatário.

Probabilidade de falha de liberação da conexãoÉ o número de tentativas de liberar conexões que não se completam dentro do tempo pré-fixado.

Page 10: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

ProteçãoEspecifica o nível de proteção desejado contra leitura ou modificação dos dados transmitidos.

PrioridadeIndica se há conexões mais importantes que outras.

Page 11: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Funções Principais

2. Qualidade de serviço

A Camada de TransporteA Camada de Transporte

ResiliênciaIndica a probabilidade de que a própria camada de Transporte encerre uma conexão devido a problemas internos ou congestionamentos.

Page 12: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Soquetes de Berkeley

A Camada de TransporteA Camada de Transporte

São um conjunto de primitivas de Transporte usadas no UNIX para o TCP. Essas primitivas são amplamente usadas em programação para a Internet.

Page 13: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Soquetes de Berkeley

A Camada de TransporteA Camada de Transporte

A seguir é apresentado um diagrama de estados para um esquema simples de gerenciamento de conexão. As transições são causadas pela chegada de pacotes. As linhas contínuas mostram a sequência de estados do cliente. As linhas tracejadas mostram a sequência de estados do servidor.

Page 14: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Soquetes de Berkeley – Diagrama de Estados

A Camada de TransporteA Camada de Transporte

OCIOSA

ESTABELECIDA

ESTABELECIMENTO PASSIVO PENDENTE

OCIOSA

DESCONEXÃOPASSIVA PENDENTE

ESTABELECIMENTO ATIVO PENDENTE

DESCONEXÃOATIVA PENDENTE

Primitiva Connection

Request recebida

Primitiva Connect executada

Primitiva Connect executada

Primitiva Disconnection

Request recebida

Primitiva Disconnect executada

Primitiva Disconnection

recebida

Primitiva Connection

Accepted recebida

Primitiva Disconnect executada

Page 15: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Primitivas de Soquetes de Berkeley

A Camada de TransporteA Camada de Transporte

Primitiva Significado

SOCKET Criar um novo ponto final de comunicação e aloca espaço de tabela para ele na entidade de transporte

BIND Anexar um endereço local a um soquete

LISTEN Anunciar a disposição para aceitar conexões; mostra o tamanho da fila

ACCEPT Bloquear o responsável pela chamada até uma tentativa de conexão ser recebida

Soquetes de Berkeley

Page 16: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Primitivas de Soquetes de Berkeley

A Camada de TransporteA Camada de Transporte

Primitiva Significado

CONNECT Tentar estabelecer uma conexão ativamente

SEND Enviar alguns dados através da conexão

RECEIVE Receber alguns dados da conexão

CLOSE Encerrar a conexão

Soquetes de Berkeley

Page 17: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Primitivas de Soquetes de Berkeley

A Camada de TransporteA Camada de Transporte

Exemplo de relacionamento cliente/servidor através dos soquetes de APIs para conexão em protocolo TCP.

API - Application Programming Interface

Soquetes de Berkeley

Page 18: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Primitivas de Soquetes de Berkeley

A Camada de TransporteA Camada de Transporte

Exemplo de relacionamento cliente/servidor

através dos soquetes de APIs para conexão em protocolo UDP.

Soquetes de Berkeley

Page 19: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Protocolos

Diferenças entre os serviços das camadas de Enlace de Dados e de Transporte

A Camada de TransporteA Camada de Transporte

Enlace de Dados Transporte

Dois roteadores se comunicam através de um canal físico.

Dois roteadores se comunicam através de uma sub-rede.

Cada linha de saída de um roteador já determina qual é o roteador na outra ponta.

Cada destino precisa ser endereçado.

Não há potencial para armazenamento de quadros.

Há potencial para armazenamento e deve ser administrado.

Há um número pequeno de conexões.

Há um número grande e dinamicamente variável de conexões.

Page 20: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Protocolos

Ambiente da camada de Enlace de Dados

A Camada de TransporteA Camada de Transporte

• O roteador não precisa especificar com qual outro roteador deseja se comunicar, pois cada linha de saída já especifica um determinado roteador.

• O estabelecimento de uma conexão com a outra ponta do meio de comunicação é simples.

• Não há capacidade para armazenamento de dados.

Roteador RoteadorCanal físico de comunicação

Page 21: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Protocolos

A Camada de TransporteA Camada de Transporte

Ambiente da camada de Transporte

Sub-rede

Roteador

Roteador

Host

Host

Page 22: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Protocolos

A Camada de TransporteA Camada de Transporte

• É necessário especificar o endereço do roteador de destino.

• O estabelecimento de uma conexão não é simples.

• Há capacidade para armazenamento de dados.

Ambiente da camada de Transporte

Page 23: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Conexões

A Camada de TransporteA Camada de Transporte

• Podem surgir problemas quando a rede perde, armazena e duplica pacotes.

• Para solucionar:√ Atribui-se um número sequencial a cada

conexão, através do transmissor.√ Quando a conexão se desfaz, seu número é

incluído numa tabela de conexões encerradas (no receptor).

√ Os pacotes podem ficar duplicados na tabela de pacotes recebidos, e não serem descartados.

Page 24: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Conexões

A Camada de TransporteA Camada de Transporte

• Problema:

√ E se ocorrer defeito no roteador e a tabela se perder?

Utiliza-se um algoritmo para eliminar pacotes muito antigos na sub-rede, e que ainda estejam circulando até um tempo de permanência máximo pré-estabelecido.

Page 25: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Conexões

A Camada de TransporteA Camada de Transporte

O tempo de vida de um pacote na sub-rede pode ser restringido através de uma das seguintes técnicas:

A. Restringindo-se o projeto da sub-rede, evitando que um pacote entre em loop, associado a algum método para limitar o retardo devido a congestionamentos.

Page 26: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Conexões

A Camada de TransporteA Camada de Transporte

O tempo de vida de um pacote na sub-rede pode ser restringido através de uma das seguintes técnicas:

B. Adotando um contador de hops em cada pacote:

• Incrementar o contador de hops cada vez que o pacote passar por um roteador intermediário da rede.

• A camada de Enlace de Dados descarta qualquer pacote com o contador superior ao um certo valor pré-determinado.

Page 27: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Conexões

A Camada de TransporteA Camada de Transporte

O tempo de vida de um pacote na sub-rede pode ser restringido através de uma das seguintes técnicas:

C. Adotando um timestamp em cada pacote:

• Isto exige que os relógios dos roteadores estejam sincronizados.

• Todos os pacotes gerados anteriormente a um determinado horário são descartados pelos roteadores.

Page 28: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Desconexões

A Camada de TransporteA Camada de Transporte

Uma desconexão pode ocorrer causada por mais de um motivo:

A. Um usuário solicita a desconexão e o outro a aceita.

B. Os dois usuários solicitam a desconexão simultaneamente.

C. A camada de Transporte desiste de manter a conexão e a desfaz.

D. Quando um usuário solicita uma desconexão e, antes de receber a indicação de que ela foi aceita, a camada de Transporte a desfaz.

Page 29: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Desconexões

A Camada de TransporteA Camada de Transporte

Todas as formas de desconexão mencionadas estão sujeitas a perda de dados, e o protocolo de encerramento de conexões deve tratar isto.

• Encerramento Assimétrico

• Encerramento Simétrico

Page 30: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Desconexões

A Camada de TransporteA Camada de Transporte

Representa o funcionamento do sistema telefônico, ou seja, quando um dos interlocutores desliga, a conexão é interrompida.

O encerramento assimétrico é abrupto e pode resultar na perda de dados.

Encerramento Assimétrico

Page 31: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Gerenciamento de Desconexões

A Camada de TransporteA Camada de Transporte

Neste caso a conexão é tratada como duas conexões unidirecionais isoladas, e exige que cada uma seja encerrada separadamente.

Caso isso ocorra, um host pode continuar a receber dados mesmo depois de ter solicitado uma desconexão.

Este tipo de encerramento é indicado quando cada processo tem uma quantidade fixa de dados a enviar e sabe, com clareza, quando terminou de enviá-los.

Encerramento Simétrico

Page 32: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

O Cabeçalho de Segmento do TCP

A Camada de TransporteA Camada de Transporte

32 bits

Porta de origem Porta de destino

Número sequencial

Número do próximo byte aguardado

Compr. do cabeçalho

6 bits não utilizados

Tamanho da janelaURG

ACK

RST

SYN

FIN

PSH

Soma de verificação Ponteiro urgente

Dados Opcionais

Page 33: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

URG (Urgent Pointer) = 1

• É utilizado para indicar um deslocamento de bytes a partir do número de sequência atual em que os dados urgentes devem ser encontrados.

O Cabeçalho de Segmento do TCP

ACK (Acknowledgement) = 0

• Indica que o segmento não contém uma confirmação.

Page 34: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

PSH (Push) = 1

• O receptor é solicitado a entregar os dados à aplicação mediante sua chegada, em vez de armazená-los até que um buffer completo tenha sido recebido (o que ele poderia fazer para manter a eficiência).

O Cabeçalho de Segmento do TCP

Page 35: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

O Cabeçalho de Segmento do TCP

RST (Restart) = 1

• Indica a necessidade de reinicializar uma conexão que tenha ficado confusa devido a uma falha no host ou por qualquer outra razão.

• Este campo também é utilizado para rejeitar um segmento inválido ou para recusar uma tentativa de conexão.

• Em geral, se este bit estiver ativado indica que há algum problema na conexão.

Page 36: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

SYN (Synchronism) = 1

• É utilizado para estabelecer conexões. A solicitação de conexão tem SYN = 1 e ACK = 0 para indicar que o campo de confirmação de piggyback não está sendo utilizado.

• A resposta contém uma confirmação e, portanto, tem SYN = 1 e ACK = 1.

O Cabeçalho de Segmento do TCP

FIN (Final) = 1

• Indica o encerramento de uma conexão.

Page 37: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

Tamanho da Janela

• Indica quantos bytes podem ser enviados a partir do byte confirmado.

• Um campo zerado é válido e informa que todos os bytes até o próximo byte aguardado (inclusive) foram recebidos, mas que o receptor precisa de um “descanso” no momento.

• A permissão para retomar a transmissão dos dados pode ser enviada mais tarde com o mesmo próximo byte aguardado e com o campo Tamanho da Janela diferente de zero.

O Cabeçalho de Segmento do TCP

Page 38: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados A Camada de TransporteA Camada de Transporte

Ponteiro Urgente

• Indica o deslocamento de bytes em que os dados urgentes devem ser encontrados

O Cabeçalho de Segmento do TCP

Campo Opcional

• Foi projetado como uma forma de oferecer recursos extras, ou seja, recursos que não foram previstos pelo cabeçalho comum.

Page 39: Prof. Arthur Transmissão de Dados A Camada de Transporte Transmissão de Dados Prof. Arthur arthur@unip.br2009 O Modelo de Referência TCP/IP A Camada de

Prof. ArthurProf. ArthurTransmissão de DadosTransmissão de Dados

Transmissão de DadosTransmissão de Dados

Prof. ArthurProf. [email protected]@unip.br

20092009

O Modelo de Referência TCP/IPA Camada de Transporte

A Camada de TransporteA Camada de Transporte