Upload
internet
View
111
Download
0
Embed Size (px)
Citation preview
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
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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.
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
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
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
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.
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.
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.
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.
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.
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.
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
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
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
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
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.
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
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.
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.
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
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.
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