A maior rede de estudos do Brasil

Grátis
21 pág.
TCP_v2

Pré-visualização | Página 1 de 4

Faculdade de Engenharia - UERJ
Departamento de Engenharia de Sistemas e Computação
Teleprocessamento e Redes de Computadores
Professora: Marley Vellasco
 
Transmission Control Protocol
André de Oliveira Dias
Jonas Ribeiro
Protocolo de Transporte
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. A entidade de transporte local se comunica com alguma entidade de transporte remota, utilizando os serviços de alguma camada inferior, tal como o Protocolo de Internet. 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. 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. Um serviço orientado a conexão prevê a criação, manutenção, e término de uma conexão lógica entre os usuários do TS. 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. 
Geralmente o serviço orientado a conexão implica que o serviço é confiável, mas para isso quatro problemas precisam ser abordados:
Endereçamento
Multiplexação
Controle de Fluxo
Conexão (estabelecimento e término)
Serviço de Rede Confiável
2.1 Endereçamento
O problema com o endereçamento é simplesmente este: Um usuário de uma determinada entidade de transporte quer estabelecer uma conexão com ou fazer uma transferência de dados para um usuário de alguma entidade de transporte diferente usando o mesmo protocolo. 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
O protocolo de transporte deve ser capaz de obter essas informações do endereço de TS do usuário. O endereço do usuário é especificado em host e porta. A variável porta representa um usuário TS particular no host especificado. 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, há normalmente apenas uma de cada tipo, neste caso, o endereço deve incluir uma designação do tipo de protocolo de transporte (por exemplo, TCP e UDP). No caso de uma rede única, o Host identifica um dispositivo de rede conectado. No caso de internet, o Host é endereço global de internet. No TCP, a combinação de porta e host é referido como socket.
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. Uma questão continua por resolver: Como o usuário inicial do TS sabe o endereço de destino? Para isso existem duas estratégias estáticas e duas dinâmicas:
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. De tempos em tempos, uma rotina realiza uma conexão a um processo para obter estatísticas, esses processos não são conhecidos e acessíveis a todos.
Alguns serviços usualmente utilizados são assinados como “endereços bem conhecidos”, como exemplos no lado do servidor o FTP, SMTP e outros protocolos padrões.
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. Este serviço é útil para aplicações que mudam de local de tempos em tempos. Por exemplo, um processo de entrada de dados pode ser movido de um host para outro em uma rede local para balancear a carga.
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. Por exemplo, um programador desenvolveu uma aplicação particular que irá executar remotamente num servidor, mas foi iniciada localmente. Um pedido é emitido remotamente ao gerenciador de Jobs que inicia o processo. 
2.2 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 / desmultiplexaçã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. 
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. Considerando uma entidade de transporte fazendo uso de um serviço X.25, por que a entidade de transporte deve aplicar a 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.
Por outro lado, a 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.
 2.3 Controle de Fluxo
O controle de fluxo é um mecanismo relativamente simples na camada de enlace, mas bastante complexo na camada de transporte, por dois 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.
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.
Em geral, 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.
Como esses problemas se manifestam? Presumivelmente, uma entidade de transporte tem certa quantidade de espaço de buffer. Segmentos de entrada são adicionados ao buffer. Cada segmento de buffer é processado (o cabeçalho de transporte é examinado) e os dados são enviados para o usuário TS. 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. Existem quatro maneiras de lidar com o controle de fluxo, a entidade receptora pode:
Não fazer nada.
Recusar a aceitar novos segmentos a partir do serviço de rede.
Usar um