Noções básicas de rede
11. Tarefa da camada de transporte
A camada de transporte ou camada de transporte (estes nomes podem ser utilizados de forma intermutável) é uma parte muito importante do processo de comunicação. As tarefas mais importantes desta camada incluem:
· Estabelecer e manter ligações (sessões) entre anfitriões,
· Ligações de pista entre hospedeiros,
· Dividir os dados em peças mais pequenas,
· Identificar aplicações individuais,
· Controlo do fluxo de dados,
· Retransmissão em caso de perda de dados.
O seguimento de chamadas, que são conversas entre anfitriões, permite que múltiplas aplicações enviem e recebam dados simultaneamente. Num computador, podemos verificar o nosso correio, utilizar a banca eletrónica ou comunicar com os nossos amigos. Neste momento, parece-nos natural que seja realmente difícil imaginar uma situação sem esta possibilidade, mas vale a pena lembrar que isto é possível graças à camada de transporte.
A capacidade de utilizar múltiplos serviços ao mesmo tempo também inclui a divisão de dados, ou seja, parti-los em pedaços mais pequenos. Isto permite uma comunicação mais eficiente, já que grandes quantidades de dados não são transmitidas simultaneamente. Se não fosse a segmentação, apenas uma aplicação poderia receber dados de cada vez e as outras aplicações que utilizamos teriam de esperar pela sua vez. Como se pode ver na imagem abaixo, segmentos são enviados alternadamente, segmentos de páginas web, segmentos de correio eletrónico, segmentos de mensageiros instantâneos, etc. são enviados alternadamente. Todo o processo de transmissão alternada de segmentos de múltiplas aplicações é chamado multiplexing.
Outra tarefa ou função importante da camada de transporte é passar dados para a aplicação relevante. Cada aplicação tem o seu próprio identificador para o definir de forma única. Este identificador é o número do porto da aplicação.
É atribuído a um segmento ou datagrama durante o encapsulamento ao nível da camada de transporte e garante a entrega de dados a uma aplicação específica. Tal como os endereços IP, os números de porto são atribuídos pela IANA (Internet Assigned Numbers Authority), que divide os números de porto em 3 grupos:
Nome do grupo de portos |
Intervalo de numeração |
Aplicação |
Bem conhecido |
0 - 1023 |
Serviços de servidor e aplicações |
Registado |
1024 - 49151 |
Serviços aos utilizadores e aplicações |
Dinâmico |
49152 - 65535 |
Selecionados aleatoriamente para aplicações do cliente |
Portos bem conhecidos, ou seja, portos 0 a 1023, estão registadas para serviços e aplicações específicas de servidores, por exemplo, servidores web para a porto 80 e servidores POP3 para o porto 110 por defeito. Um conjunto de aplicações com portos conhecidas, incluindo protocolos da camada de transporte, como se mostra abaixo.
Protocolo da camada de aplicação |
Número do porto |
Protocolo da camada de transporte |
HTTP |
80 |
TCP |
HTTPS |
443 |
TCP |
POP3 |
110 (cifrado 995) |
TCP |
IMAP |
143 (cifrado 993) |
TCP |
SMTP |
25 (criptografados 465 ou 587) |
TCP |
FTP |
21 (comandos) e 20 (ficheiros) |
TCP |
FTPS |
990 |
TCP |
TELNET |
23 |
TCP |
DNS |
53 |
TCP ou UDP |
DHCP |
67 e 68 (IPv6 - 546 e 547) |
UDP |
LDAP |
389 (codificado 639) |
TCP ou UDP |
SNMP |
161 |
UDP |
O segundo grupo, portos registados, é utilizado por aplicações instaladas no computador do utilizador. Por exemplo, se instalarmos a aplicação do sistema de gestão de bases de dados MySQL no nosso computador, esta será executada no porto 3306.
O terceiro grupo e último grupo, o número do porto dinâmico, é atribuído aleatoriamente à aplicação cliente, por exemplo, quando um cliente envia um pedido ao servidor para partilhar uma página web, o servidor por defeito aceita o pedido no porto 80, mas o cliente recebe o pedido do servidor. A resposta recebida não será enviada para o porto 80, uma vez que esta é reservada para o processo do servidor web, mas para um número aleatório de portos atribuídos a partir do pool dinâmico de portos.
Múltiplas aplicações não podem funcionar com o mesmo número de porto. Uma vez que uma aplicação esteja a funcionar no porto 53 (DNS), é impossível que outra aplicação possa funcionar nessa porto.
Se já sabemos o que é um porto de aplicação, vamos introduzir outro conceito. Esta será uma tomada. Já encontrou o conceito de tomadas ao discutir as placas-mãe e os processadores nas classes de tecnologia informática, e também aparece nas redes informáticas. Uma tomada é uma combinação de um endereço IP e um número de porto:
192.168.20.20:80
Um socket identifica de forma única um processo particular em execução num dispositivo, por exemplo, quando o nosso navegador invoca um servidor web para servir uma página web, os pedidos do servidor serão enviados para o seu socket, o processo (aplicação do servidor web).
O TCP é um protocolo complexo, orientado para a ligação, que visa garantir a transferência de dados e o controlo do fluxo fiáveis. Até 20 bytes de dados de controlo são adicionados ao cabeçalho TCP durante o encapsulamento, mas isto é necessário para a fiabilidade TCP. As aplicações que utilizam este protocolo incluem navegadores web, clientes de correio electrónico e programas de transferência de ficheiros. Pode ver o modo de segmento TCP abaixo. Os números entre parênteses indicam o número de bits reservados para o campo.
BIT (0) |
BIT (15) BIT (16) |
BIT (31) |
||
Porto de origem (16) |
Porto de destino (16) |
|||
Número sequencial (32) |
||||
Número de confirmação (32) |
||||
Rubrica compriment o (4) |
Reservado (6) |
Bocados de código (bandeiras) (6) |
Janela (16) |
|
Checksum (16) |
Índice de urgência (16) |
|||
Opções (0 ou 32) |
||||
Dados da camada de aplicação (comprimento variável) |
· Porto de origem - o porto da aplicação que envia os dados.
· Porto de destino - o porto de aplicação para o qual os dados são enviados.
· Número de sequência - o número do último byte no segmento.
· Número de reconhecimento - o número do próximo byte esperado pelo destinatário.
· Comprimento - o comprimento de todo o segmento TCP.
· Bocados de código (bandeiras) - informação do segmento de controlo.
· Janela - Quantidade de dados que podem ser transmitidos sem confirmação.
· Checksum - utilizado para verificar os dados carregados.
· Indicador de emergência - apenas utilizado quando a bandeira URG é hasteada.