Resumos dos capítulos :::

Camada de Transporte e TCP/IP

  1. Introdução

  2. Funções

  3. Conexão/desconexão

  4. QoS

  5. Endereçamento

  6. Multiplexação

  7. TCP/IP

Os tópicos a serem examinados podem ser encontrados nos seguintes capítulos de livros:

  1. Computer Networks, Tanenbaum, cap. 6

  2. Redes de Computadores, Soares et alii, cap. 12

  3. Outros bons livros de redes de computadores, nos capítulos sobre camada de transporte do protocolo OSI e sobre TCP/IP

1. Introdução

A camada de transporte do protocolo OSI é a primeira em que apenas as duas entidades que querem se comunicar tomam parte. É por isso que uma de suas funções é o estabelecimento de um padrão de qualidade de serviço (QoS) sobre o qual a comunicação deve ocorrer.

Além do estabelecimento da qualidade de serviço, cabe ainda à camada de transporte a definição de como uma conexão deve ser estabelecida, mantida e encerrada. Também é na camada de transporte (em conjunto com a de rede) que se materializa o protocolo TCP/IP, que é, sem sombra de dúvida, o padrão dominante na Internet.

2. Funções

A camada de transporte trata, fundamentalmente, do processo de conexão entre duas entidades que irão se comunicar. Nesse processo, as principais funções por ela oferecidas às camadas superiores são:

  1. Definição da Qualidade de Serviço (QoS)

  2. Definição do processo de conexão e desconexão de uma sessão

  3. Definição de endereçamento dos processos comunicantes associado ao protocolo TCP/IP

3. Protocolos de Conexão e desconexão

Como a camada de transporte é a primeira em que os pacotes transferidos entre as duas entidades que se comunicam só circulam nas máquinas em que estão executando, cabe a ela fazer o controle da conexão e desconexão entre essas máquinas. Por apenas envolver as máquinas origem e destino, os protocolos dessa camada são chamados de protocolos ponto-a-ponto.

Dentro desse cenário a operação do protocolo de conexão é bastante simples, requerendo apenas que se enviem mensagens solicitando a conexão, aceitando o pedido e confirmando o estabelecimento da conexão após acordos sobre o padrão de QoS a ser admitido. Todo esse processo é bastante bem definido através de primitivas chamadas TPDUs (Transport Protocol Data Unit), que possuem sintaxe e relações de dependência delimitadas.

Os problemas surgem, de fato, no momento da desconexão entre as duas máquinas, o que deve ocorrer de modo a evitar que uma delas permaneça acreditando que a conexão ainda está em atividade. Isso ocorre pela falta de capacidade de se identificar que o parceiro da comunicação está pronto para se desconectar sem que ele lhe envie uma mensagem sobre isso. Ao receber tal mensagem, é o seu parceiro que ficará na dúvida sobre se você recebeu, ou não, a última mensagem enviada. Esse processo de dúvidas prossegue ad infinitum caso um dos dois parceiros não admita, sem necessidade de uma mensagem, que o outro está pronto para a desconexão.

A esse problema se aplicam soluções de concordância (Agreement), em que o protocolo de desconexão deve ser feito de modo que, num dado ponto, um dos parceiros admita que o outro iniciou a desconexão real caso não receba mensagem indicando o contrário.

4. QoS

Durante o processo de estabelecimento de uma conexão devem ser definidos alguns detalhes sobre como a mesma transcorrerá. Um desses detalhes é a definição da qualidade de serviço (QoS), a qual, na prática, define os limites mínimos aceitáveis para certos parâmetros de desempenho para que a conexão seja mantida. Os valores estabelecidos de QoS durante a fase de conexão são, portanto, pisos de desempenho para a conexão. Dentro do protocolo OSI se definem diversas classes de QoS, segundo patamares de erros e perdas de pacotes. A classe de uma rede (do ponto de vista de qualidade) é definido pela classificação ISO.

Além dos tipos de classe do protocolo OSI ainda se definem, durante o estabelecimento da conexão, parâmetros de qualidade como:

  1. Atraso de estabelecimento de conexão

  2. Probabilidade de falha de estabelecimento de conexão

  3. Vazão (velocidade) da rede

  4. Atraso de trânsito

  5. Prioridade

  6. Resiliência

  7. Taxa de erros residuais

5. Endereçamento

O problema de endereçamento consiste em permitir que várias conexões sejam estabelecidas, por uma mesma máquina, com uma ou mais máquinas simultaneamente. Isso implica em que cada conexão deverá ter endereços específicos, que permitam à camada de transporte diferenciar entre uma conexão e outra. Isso é feito através de endereços de portas de serviço, conhecidas por TSAP (Transport Service Access Point). As entidades que querem trocar informações devem, então, especificar endereços TSAP em que efetivarão tais trocas. No caso particular do TCP/IP as TSAPs são implementadas através de sockets para identificar os pontos (portas) de acesso.

Em situações específicas, como acesso a serviços considerados padrões na internet (acesso a um sistema de arquivos, por ex.), esse processo de endereçamento faz uso de portas (TSAPs) pré-definidas para a conexão, que depois são redirecionadas para portas gerais. No protocolo TCP essas portas pré-definidas estão abaixo da porta 49151, como por exemplo o serviço de telnet na porta 23, ssh na porta 22 e http na porta 80.

6. Multiplexação

Como a camada de aplicação trata de multiplas conexões simultâneas e as camadas abaixo dela podem tratar apenas de uma informação por vez, é necessário definir como isso pode ser acomodado. A técnica usada é a de multiplexação das conexões, ficando a camada de aplicação responsável por definir qual porta (TSAP) acessará a camada de rede por vez.

7. TCP/IP

Finalmente, para concluir o estudo da camada de transporte falta examinar o funcionamento do protocolo TCP/IP. Na realidade, esse protocolo trabalha em cinco camadas, que são as camadas física, de enlace, de rede, de transporte e de aplicação. Dessas camadas todas é nas camadas de rede e de transporte que aparecem as diferenças significativas entre TCP/IP e OSI. Em específico, é na camada de rede que está regulado o protocolo IP, enquanto o TCP funciona na camada de transporte para trocas de dados que demandem o estabelecimento de conexão. Além do TCP existe também na camada de transporte o protocolo UDP, usado quando não existe necessidade de conexão.

  1. IP:

    O protocolo IP é encarregado de definir endereços das máquinas que participarão integralmente do processo de comunicação. Para essa tarefa se define um cabeçalho (o IP header) contendo informações tais como endereços internet da fonte e do destino do pacote, tamanho do pacote, identificação, opções de serviço (como restrições de roteamento, nível de segurança, etc.), entre outros dados, que podem ser vistos com detalhes na maioria dos livros de redes de computadores.

    Os endereços IP são endereços de 32 bits (no caso do IPv4), divididos em classes de redes, que especificam o número máximo de máquinas em uma rede específica. A classificação de endereços IP também pode ser vista em livros da área, assim como um detalhamento das especificações do IPv6 (nele os endereços são de 128 bits). Vale observar que o protocolo IPv4 vem sendo substituído pelo IPv6, com endereços de 128 bits e uma gama bastante maior de serviços oferecidos ao processo de roteamento e identificação de endereços.

    Como endereços IP na realidade são obtidos a partir de nomes, através de um serviço de nomes de domínio, eles identificam uma máquina de forma lógica. A localização física de uma máquina, ou o mapeamento entre endereço lógico e físico, é distinto do endereço IP. Na prática cada máquina possui uma placa de rede que possui um endereço Ethernet (48 bits, único para cada placa existente no mundo). Então é preciso que se transforme endereços IP para endereços Ethernet e vice-versa. Isso é feito por um par de protocolos definidos na camada de rede, chamados ARP (Address Resolution Protocol) e RARP (Reverse Address Resolution Protocol), que fazem, respectivamente, o mapeamento entre um endereço IP para um Ethernet e entre um endereço Ethernet para um IP.

  2. TCP:

    O protocolo TCP faz a definição dos serviços listados aqui para a camada de transporte, em especial os serviços de QoS e de endereçamento, além de prover primitivas de controle de conexão (TPDUs para estabelecer, manter e fechar uma conexão).

    Parte desse serviço é definido através de um cabeçalho (TCP header, que define os sockets envolvidos na comunicação, padrões de qualidade para o serviço, etc. (mais uma vez, a descrição completa do cabeçalho pode ser vista nos bons livros da área).

    Uma observação importante a fazer nesse ponto é que a camada de transporte deve fornecer serviços equivalentes para uma comunicação quer seja ela orientada a conexão quer não seja. Em específico, dentro do TCP/IP, o serviço orientado a conexão é provido pelo protocolo TCP, enquanto que o não orientado a conexão (connectionless) é provido pelo protocolo UDP.

  3. UDP:

    O protocolo UDP é utilizado para trocas de mensagens em que não se necessite do estabelecimento prévio de conexão entre as máquinas comunicantes. Existem várias aplicações em que isso é interessante e até mesmo necessário, devendo ficar claro que quando a transmissão ocorre por UDP não existe a garantia de que a mensagem foi entregue com sucesso. Endereços UDP são os mesmos do TCP, sendo a diferença apenas a necessidade de conexão prévia. O cabeçalho UDP também é descrito nos bons livros de redes de computadores, não sendo detalhado aqui.

 
 
DISCLAIMER
 
 
O conteúdo desta página é de minha total responsabilidade, não representando o pensamento ou posições da UNESP.