Buscar

Trabalho de redes - TCP - final

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
APRESENTAÇÃO SOBRE 
TCP
Alunos:	André de Oliveira Dias
	Jonas Ribeiro da Silva
*
*
INTRODUÇÃO
Em uma arquitetura de protocolos, o protocolo de transporte fica acima de uma rede ou camada internetwork, que fornece serviços relacionados à rede. O protocolo de transporte presta serviços de transporte (TS) às camadas superiores que utilizam protocolos FTP, HTTP, SMTP e etc., escondendo dos mesmos detalhes das camadas inferiores e das redes participantes da transferência de dados.
*
*
INTRODUÇÃO
O protocolo de transporte fornece um serviço de transferência de dados fim-a-fim que protegem os protocolos de camadas superiores das intervenções na rede. A camada de transporte transporta mensagens da camada de aplicação entre os lados do cliente e servidor de uma aplicação.
*
*
INTRODUÇÃO
Dois tipos básicos de serviço de transporte são possíveis: orientado à conexão e sem conexão ou serviço de datagrama.
Há dois protocolos de transporte: TCP, orientado a conexão, e o UDP, que é sem conexão. Qualquer um deles pode levar mensagens de camada de aplicação.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Endereçamento: Necessita haver uma padronização em como identificar destinatários na rede. O usuário destino precisa ser especificado por:
Identificação do Usuário
Identificação da Entidade de Transporte
Endereço do Host
Número da Rede
*
*
SERVIÇOS DE REDE CONFIÁVEL
Endereçamento: O endereço do usuário é especificado em host e porta.
	Geralmente há uma entidade de transporte em cada host, portanto, a identificação da entidade de transporte não é necessária. Se mais de uma entidade de transporte estiver presente, o endereço deve incluir uma designação do tipo de protocolo de transporte (exemplo, TCP e UDP).
*
*
SERVIÇOS DE REDE CONFIÁVEL
Endereçamento: O roteamento não é uma preocupação da camada de transporte, ele simplesmente passa um pedaço de endereço do host até o serviço de rede, a porta está incluída no cabeçalho, para ser usada no destino pelo protocolo de transporte da entidade destino. 
*
*
SERVIÇOS DE REDE CONFIÁVEL
Endereçamento: Como o usuário inicial do TS sabe o endereço de destino? 4 estratégias:
 O usuário TS sabe o endereço que deseja usar antes mesmo de usá-lo, isso é basicamente uma função da configuração do sistema.
 Alguns serviços usualmente utilizados são assinados como “endereços bem conhecidos”, como FTP, SMTP, pelo lado do servidor.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Endereçamento: Como o usuário inicial do TS sabe o endereço de destino? 4 estratégias:
 O usuário TS sabe o endereço que deseja usar antes mesmo de usá-lo, isso é basicamente uma função da configuração do sistema.
 Alguns serviços usualmente utilizados são assinados como “endereços bem conhecidos”, como FTP, SMTP, pelo lado do servidor.
Um servidor de nomes é fornecido, o usuário TS solicita um serviço por um nome genérico ou global, o pedido é enviado para o servidor de nomes que faz uma pesquisa nos diretórios e retorna um endereço, a entidade de transporte prossegue com a conexão.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Endereçamento: Como o usuário inicial do TS sabe o endereço de destino? 4 estratégias:
 O usuário TS sabe o endereço que deseja usar antes mesmo de usá-lo, isso é basicamente uma função da configuração do sistema.
 Alguns serviços usualmente utilizados são assinados como “endereços bem conhecidos”, como FTP, SMTP, pelo lado do servidor.
Um servidor de nomes é fornecido
Em alguns casos, o destino é um processo que é gerado no momento que é solicitado, o remetente pode solicitar o processo a um endereço conhecido, o usuário deste endereço é um processo privilegiado do sistema que irá criar um novo processo e retornar o seu endereço. 
*
*
SERVIÇOS DE REDE CONFIÁVEL
Multiplexação: No que diz respeito à interface entre o protocolo de transporte e protocolos de nível superior, o protocolo de transporte executa uma função de multiplexação / demultiplexação, ou seja, vários usuários usam o mesmo protocolo de transporte e são distinguidos por números de porta ou pontos de acesso ao serviço. 
*
*
SERVIÇOS DE REDE CONFIÁVEL
Multiplexação: A entidade de transporte também pode desempenhar uma função de multiplexação com respeito aos serviços de rede que utiliza. Existe a multiplexação para cima que é a multiplexação de várias conexões em uma conexão única no nível inferior e a multiplexação para baixo que é a multiplexação como a divisão de uma única conexão em várias conexões no nível inferior. 
*
*
SERVIÇOS DE REDE CONFIÁVEL
Multiplexação para cima: Existem pelo menos 4095 circuitos virtuais disponíveis, isto é mais do que suficiente para lidar com todos os usuários TS ativos. Se um único circuito virtual fornece throughput suficiente para usuários TS múltiplos, a multiplexação para cima é indicada.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Multiplexação para baixo: Pode ser usada para melhorar o throughput. Por exemplo, cada circuito virtual X.25 é restrito a um número de sequência de 3 ou 7 bits. Um espaçamento maior na sequência pode ser necessário para redes com latência e velocidade altas. Se existir um único nó do host sobre o qual todos os circuitos virtuais são multiplexados, o throughput de uma conexão de transporte não pode exceder a taxa de dados desse link.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo: É um mecanismo bastante complexo na camada de transporte. Motivos:
O atraso de transmissão entre as entidades de transporte é geralmente longo quando comparado ao tempo de transmissão real. Isto significa que há um atraso considerável na a comunicação do controle de fluxo de informação.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo: É um mecanismo bastante complexo na camada de transporte. Motivos:
O atraso de transmissão entre
Como a camada de transporte opera através de uma rede ou internet, a quantidade do atraso de transmissão pode ser altamente variável. Isto torna complicado usar efetivamente um mecanismo de timeout para retransmissão de dados perdidos.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo: Há duas razões pelas quais uma entidade de transporte gostaria de restringir a taxa de transmissão do segmento através de uma conexão de outra entidade de transporte:
O usuário da entidade de transporte de recebimento não pode manter-se com o fluxo de dados.
A entidade de transporte de recebimento em si não pode manter-se com o fluxo de segmentos.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo: Qualquer um dos dois problemas mencionados fará com que o buffer fique cheio. Assim, a entidade de transporte precisa tomar medidas para parar ou diminuir o fluxo de segmentos para evitar um overflow no buffer. Este problema é difícil de resolver por causa da diferença de tempo entre o emissor e o receptor. 4 maneiras de lidar com o controle de fluxo:
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo: 4 maneiras de lidar com o controle de fluxo:
Não fazer nada.
Recusar a aceitar novos segmentos a partir do serviço de rede.
Usar um protocolo fixo de janela deslizante.
Usar o esquema de alocação crédito.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo:
	Não fazer nada: os segmentos que geram overflow no buffer são descartados, a entidade de transporte emissora não obtém o ACK e irá retransmití-los.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo:
	Recusar a aceitar novos segmentos a partir do serviço de rede: Quando um buffer da entidade de transporte está cheio, ele recusa dados adicionais do serviço de rede, isto provoca procedimentos de controle de fluxo dentro da rede que acelera os serviços de rede. Este serviço, por sua vez, recusa segmentos adicionais a partir da sua entidade de transporte.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo:
	Usar um protocolo fixo de janela deslizante: Com um serviço de rede confiável, a técnica de janela deslizante funcionaria muito bem. Quando o buffer do receptor estiver cheio, pode-se reter os segmentos que ainda estão por vir, a fim de evitar overflow.
	O funcionamento com uma rede não confiável já não é bom,
pois não será possível saber se a falta de ACK é por tática de controle ou por segmento perdido.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Controle de Fluxo:
	Usar o esquema de alocação crédito: Desacopla o ACK do controle de fluxo. Cada segmento transmitido inclui em seu cabeçalho três domínios relacionados ao controle de fluxo: Número de sequência, o número de confirmação e janela. Quando uma entidade de transporte envia um segmento, ela inclui o número de sequência do primeiro octeto no campo de dados segmento, esse número de sequência é único e os octetos de dados restantes são numerados sequencialmente após o primeiro octeto de dados.
*
*
SERVIÇOS DE REDE CONFIÁVEL
Conexão: Existe uma necessidade de procedimentos para estabelecimento e término de conexão para suportar o serviço de conexão orientada (mesmo em serviços de rede confiáveis).
*
*
SERVIÇOS DE REDE CONFIÁVEL
Conexão: O estabelecimento de conexão serve para três propósitos principais: 
Ela permite que cada ponta se assegure que a outra ponta existe.
Permite a troca ou negociação de parâmetros opcionais (tamanho máximo do segmento, tamanho máximo da janela, qualidade de serviço).
Ela dispara a alocação de recursos do transporte de entidade (espaço de buffer, entrada na tabela de conexão).
*
*
SERVIÇOS DE REDE CONFIÁVEL
Conexão:
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Os problemas não são somente perdas ocasionais dos segmentos, mas a chegada deles fora de sequência devido a atrasos variáveis de trânsito. 
	
	O problema da não-confiabilidade e não-sequenciamento cria problemas com todos os mecanismos.
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Exemplos destas redes são:
Um conjunto de redes usando IP.
Uma rede frame relay usando apenas o protocolo central LAPF.
Uma IEEE 802.3 LAN usando a conexão não reconhecida LLC serviço.
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
7 problemas:
Entrega ordenada.
Estratégia de retransmissão.
Detecção de Duplicação.
Controle de fluxo.
Estabelecimento de conexão.
Término de conexão.
Recuperação de falha.
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Entrega ordenada: Devido aos diversos atrasos variáveis, os segmentos podem chegar fora de ordem. Para isso deve-se numerar os segmentos sequencialmente, o protocolo de transporte da ISO numera cada unidade de dados sequencialmente, o TCP numera implicitamente cada octeto e os segmentos são numerados pelo número do primeiro octeto do segmento.
	
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Estratégia de Retransmissão: Ocorre quando:
O Segmento foi danificado durante o trânsito na(s) rede(s), mas foi recebido ou
O Segmento não é recebido.
	O transmissor não tem conhecimento sobre a falha, então o receptor deve informar o recebimento bem sucedido de cada segmento (através de ACK) usando um sinal de aceitação cumulativo e assim o receptor utiliza um valor fixo ou método adaptativo de timeout para disparar a retransmissão.
	
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Detecção de Duplicação: Se um ou mais segmentos são retransmitidos, o receptor deve reconhecer duplicatas, existem 2 situações: 
Uma duplicata é recebida antes do CLOSE. O receptor assume que o ACK foi perdido e o retransmite Sender não deve ficar confuso com múltiplos ACKs.00000000000000000000000000. A faixa de valores para os números de sequência deve ser grande o suficiente para não permitir o reinício da numeração durante o tempo máximo de vida de um segmento
Uma duplicata é recebida após o CLOSE.
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Controle de Fluxo: Utiliza o mecanismo de alocação de crédito mas pode vir a existir problemas, tais como:
Receptor envia (AN=i,W=0), fechando a janela temporariamente.
Depois receptor envia (AN=i,W=j) para reabrir a janela, mas o segmento é perdido.
	
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Estabelecimento de conexão: Tipo básico: Two-way handshake:
	– A envia SYN, B responde com SYN
	– Perda de segmento SYN é resolvido por retransmissão
	Retransmissão pode gerar SYNs duplicados:
	– As entidades de transporte devem ignorar SYNs duplicados uma vez estabelecida a conexão
	Perda ou atraso de segmentos podem gerar problemas na conexão:
	– Recepção de segmentos SYN e de dados provenientes de conexões antigas
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Término de conexão: Entidade de transporte A envia FIN que é recebido antes do último segmento de dados, o receptor B aceita FIN podendo: fechar a conexão ou descartar o último segmento. Para evitar estes problemas deve-se utilizar estratégias, como, só encerrar a conexão após o recebimento do ACK FIN.
*
*
SERVIÇOS DE REDE NÃO CONFIÁVEL
Recuperação de falha: Quando um sistema falha, toda a informação de STATUS da entidade de transporte é perdida, a conexão fica half-open, assim o lado que não sofreu a falha pensa que a conexão ainda está ativa. Utiliza-se Close Connection através de um persistence timer, espera por um ACK, quando o tempo expirar, fecha a conexão e avisa ao usuário de transporte. Se a estação que falhou se recuperar antes de expirar o timer, deve enviar RST i em resposta a qualquer segmento recebido ou o usuário deve decidir se solicita uma reconexão.
*
*
TCP
O TCP provê serviços orientados para conexão para suas aplicações. Alguns desses serviços são a entrega garantida de mensagens da camada de aplicação ao destino e controle de fluxo. O TCP também fragmenta mensagens longas em segmentos mais curtos e provê mecanismo de controle de congestionamento, de modo que uma origem regula sua velocidade de transmissão quando a rede está congestionada.
*
*
TCP
TCP Header: O cabeçalho tem no mínimo 20 octetos. O formato do cabeçalho e seus campos são mostrados a seguir:
*
*
TCP
TCP Header:
Source Port (16 bits): Usuário TCP fonte. 
Destination Port (16 bits): Usuário TCP Destino.
Sequence Number (32 bits): Número de seqüência do primeiro octeto de dados no segmento, exceto quando o SYN flag está setado, onde este é o número de sequência inicial (ISN) e o primeiro octeto de dados é ISN+1. 
*
*
TCP
TCP Header:
Acknowledgment Number (32 bits): Contém o número da sequencia do próximo octeto de dados que a entidade TCP espera receber.
Data Offset (4 bits): Número de palavras de 32 bits no cabeçalho.
Reserved (4 bits): Reservado para uso posterior.
Flags (6 bits): Para cada flag, se estiverem setados:
*
*
TCP
TCP Header: Flags:
	- CWR: Congestion Window Reduced (janela reduzida de congestionamento).
	- ECE: Este bit e o CWR, são definidos na RFC 3168, e são usados para explicitar notificação de funcionamento em congestionamento.
	- URG: Bit de indicação do Urgent Pointer.
*
*
TCP
TCP Header: Flags:
	- ACK: Bit de ACK ativo.
	- PSH: Função Push.
	- RST: Reseta a conexão.
	- SYN: Sincroniza os números de sequência.
	- FIN: Bit de indicação de término de envio de dados do transmissor.
*
*
TCP
TCP Header:
Window (16 bits): Mecanismo de crédito, em octetos. Contém o número de octetos, começando pelo número de sequência indicado no campo ACK que o transmissor pode aceitar.
Checksum (16 bits): Os bits complementares a soma de todos as palavras de 16 bits no cabeçalho.
*
*
TCP
TCP Header:
Urgent Pointer (16 bits): Aponta para o último octeto na sequência de dados urgentes. Permite ao receptor saber quantos dados urgentes estão chegando.
Options (tamanho variável): Um exemplo é para indicar o tamnaho máximo permitido de cada segmento.
*
*
TCP
Mecanismos do TCP: É possível dividi-los em 3 categorias:
Estabelecimento da conexão.
Transferência de dados.
Término de conexão.
*
*
TCP
Mecanismos do TCP:
	Estabelecimento da conexão: Funciona através de Three-way Handshake. A estação A envia um sinal SYN e um valor correspondente ao número do segmento e a estação B responde com o sinal SYN e reconhece o número do segmento. Se há uma perda de segmento SYN, o segmento todo então é retransmitido. O estabelecimento da conexão é determinado unicamente pelo endereço e porta da estação fonte e destino.
*
*
TCP
Mecanismos do TCP:
	Transferência de dados: É feita transmitindo segmentos. Mas a transmissão
de dados é vista como sequências de octetos. Cada segmento possui o número do primeiro octeto em seu campo de dados.
*
*
TCP
Mecanismos do TCP:
	Término de Conexão: É um indicativo de transmissão segura dos dados. Os usuários enviam uma primitiva CLOSE. A entidade de transporte seta o bit FIN no último segmento, que contém os últimos dados a serem enviados, e o envia. 
*
*
TCP
Políticas do TCP:	Os padrões do protocolo TCP permitem uma série de implementações em seu uso. As implementações do protocolo são: 
Política de Envio.
Política de Entrega.
Política de Aceitação.
Política de Retransmissão.
Política de Reconhecimento (Acknowledge).
*
*
TCP
Políticas do TCP:
	Política de Envio: Na ausência de segmentos com bit PSH setado e se permitido pela alocação de crédito, a entidade TCP transmissora é livre para enviar os dados, de acordo com sua conveniência. Os dados recebidos pelo usuário são armazenados no buffer de transmissão. O TCP pode tanto construir segmentos a cada bloco de dados ou aguardar por uma certa quantidade de dados chegarem, antes do segmento ser enviado.
*
*
TCP
Políticas do TCP:
	Política de Entrega: Na ausência de segmentos com bit PSH setado, a entidade TCP receptora é livre para entregar os seus dados ao usuário, de acordo com sua conveniência. Os dados podem ser entregues, conforme os segmentos foram recebidos (entrega em ordem) ou armazenar os dados para em um conjunto de segmentos para uma entrega posterior.
*
*
TCP
Políticas do TCP:
	Política de Aceitação: Se os segmentos chegarem fora de ordem. 2 opções para o recebimento:
Em ordem, somente os segmentos que chegarem em ordem são aceitos, os outros são descartados.
Em janela, aceita todos os segmentos dentro de uma janela.
*
*
TCP
Políticas do TCP:
Política de Aceitação: Ambas as políticas tem suas vantagens e desvantagens. Elas impactam diretamente na política de retransmissão, pois se um segmento não for aceito, independente da política utilizada, parte dos dados deverão ser retransmitidos (mediante recebimento de ACKs).
*
*
TCP
Políticas do TCP:
Política de Retransmissão: O TCP mantém uma fila de segmentos que ainda não foram reconhecidos (não receberam ACK). O TCP então retransmitirá segmentos se não recebe o ACK depois de um tempo. 3 opções de ações:
*
*
TCP
Políticas do TCP:
Política de Retransmissão: 3 opções de ações:
First-only: Há um timer para toda a fila. Se houver timeout, o TCP retransmite o primeiro segmento da fila e reseta o timer.
Batch: Há um timer para toda a fila. Se houver timeout, o TCP retransmite todos os segmentos da fila e reseta o timer.
Individual: Cada segmento tem um timer. Se houver timeout de um segmento, ele é retransmitido e o timer correspondente deste é resetado.
*
*
TCP
Políticas do TCP:
Política de Reconhecimento: Quando os segmentos chegam em ordem, o TCP tem 2 formas de enviar o sinal de ACK:
Imediata: Quando os dados são aceitos, O TCP envia imediatamente um segmento sem dados, contendo o número do ACK apropriado.
*
*
TCP
Políticas do TCP:
Política de Reconhecimento: 2 formas de enviar o sinal de ACK:
Imediata: Quando
Cumulativa: Ao receber segmentos, espera ter um segmento de dados pronto para ser enviado e mandar o sinal de ACK juntamente com este. Contudo há um timer para evitar longas esperas, se este timer expirar sem ter enviado o sinal do ACK, é enviado um sinal da forma de implementação Imediata.
*
*
UDP
O protocolo UDP é outro de uso comum dentro da camada de transporte. Ele oferece serviços sem conexão para o nível de aplicação. Basicamente o UDP é um serviço não confiável, pois não garante o recebimento e nem proteção contra duplicatas. Contudo o seu overhead é menor, e pode ser utilizado para testes de gerência de rede.
*
*
UDP
UDP Header: Possui 8 octetos, conforme mostra a figura a seguir:
*
*
UDP
UDP Header:
Source Port (16 bits): Usuário UDP fonte. 
Destination Port (16 bits): Usuário UDP Destino.
Lenght (16 bits): Contém todo o tamanho do segmento UDP, incluindo o header e os dados. 
Checksum (16 bits) (opcional): Se não for utilizado é preenchido com zero.
*
*
BIBLIOGRAFIA
VELLASCO, M. M. B. R. Transport Protocol. Cap 15 – Notas de Aula
STALLINGS, W. Data and Computer Communications. 8ª Edição
KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet 5ª Edição

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais