Por Marcos Bernardino em 18/09/2018 em Artigo

Em uma rede, os equipamentos precisam se comunicar. Para isso, surgiram protocolos de comunicação e modelos para eles. Entre eles, existe o modelo TCP/IP. O nome vem de dois de seus protocolos o TCP e o IP.

De uma maneira simples, pode-se dizer que protocolo é a “língua” que os equipamentos ligados em uma rede utilizam para se comunicarem. Dessa forma se permite que equipamentos de diferentes tecnologias, fabricantes e finalidades possam se entender.

Sem os protocolos de comunicação padronizados, seria difícil, por exemplo, que existisse um rede de alcance mundial como a Internet.

Para padronizar a criação de protocolos, foi criado em 1971 e formalizado em 1983 o modelo OSI (Open Systems Interconnection). Este modelo define uma arquitetura de protocolos para redes. Com ele, diferentes fabricantes podem produzir seus equipamentos de maneira a se comunicarem, interpretar a informação contida na comunicação e executar a tarefa solicitada.

O modelo OSI prevê que uma rede deve possuir 7 camadas:

Aplicação – Funções especializadas no nível de aplicação

Apresentação – Formatação de dados e conversão de caracteres e códigos

Sessão – Negociação e estabelecimento de conexão com outro nó

Transporte – Meios e métodos para a entrega de dados ponta-a-ponta

Rede – Roteamento de pacotes por através de uma ou várias redes

Enlace – Detecção e correção de erros introduzidos pelo meio de transmissão

Física – Transmissão dos bits através do meio de transmissão

O TCP/IP

O TCP/IP é um conjunto de protocolos de comunicação. O nome vem de dois protocolos TCP (Transmission Control Protocol) e o IP (Internet Protocol). Ele tem por objetivo padronizar todas as comunicações de rede, principalmente as comunicações na web.

Esse modelo foi desenvolvido em 1969 pelo Departamento de Defesa dos Estados Unidos, como recurso de comunicação da ARPANET, precursora da Internet. Ele tinha a função de permitir a troca de um grande volume de informações entre um número imenso de sistemas computacionais envolvendo empresas, universidades e órgãos do governo, tudo isso com grande velocidade e confiabilidade.

Ele deveria possuir a capacidade de decidir qual a melhor rota a seguir dentro da malha de rede formada pelas organizações envolvidas. Em 1983, com a formalização do modelo OSI, o TCP/IP foi adequado ao modelo e definido como padrão de comunicação de redes. Depois, expandindo-se para a interligação externa dessas redes e constituindo o padrão de comunicação da Internet.

O modelo TCP/IP possui apenas 4 camadas que englobam as 7 camadas do modelo OSI. As camadas mais acima recebem informações e as distribui para as camadas inferiores, atribuindo a cada uma delas a função que exercerá durante a comunicação.

Comparação com modelo OSI

Comparativamente ao modelo OSI, pode-se observar como se relacionam as 4 camadas TCP/IP e suas funções:

Aplicação (Camada 4)

Aqui encontra-se todos os protocolos de serviço que efetuam a comunicação direta com o software para identificar o tipo de requisição que está sendo realizada.

Assim, encontramos o HTTP que permite a navegação na web, o DNS que realiza a conversão da url do navegador em um número único (IP) utilizado para identificar a localização na rede do meio que quer conectar, o SMTP utilizado no envio de e-mails, o SSH que permite uma conexão remota de maneira segura e muitos outros.

Após a comunicação entre software e a camada de Aplicação, a informação é codificada dentro do padrão do protocolo e repassada para as camadas inferiores.

Transporte (Camada 3)

Responsável pela comunicação entre os pontos (hosts) envolvidos. Ela tem como função a manutenção da confiabilidade e integridade da comunicação, verificando se o pacote alcançou seu destino e se os dados nele contidos chegaram de maneira integra.

Aqui encontramos o TCP, utilizado na conexão ponto-a-ponto. Sendo um protocolo de conexão mais confiável, ele é utilizado em aplicações que não possuem muita tolerância à perda de pacotes.

Também encontramos o protocolo UDP (User Datagram Protocol), um protocolo com conexão não tão confiável. Ele não verifica a confiabilidade e a integridade da informação, porém, por não possuir as características de controle que são pertinentes ao TCP, permite a transmissão mais rápida da informação.

Assim, temos o TCP como principal protocolo para conexão entre aplicações e o UDP para tráfego de mídias (vídeos e áudios), onde a velocidade é mais importante do que a integridade.

Portas

Essa camada utiliza portas lógicas para garantir que a aplicação (software) que iniciou a conversação encontrará no seu destino a aplicação desejada. Essas portas lógicas são canais virtuais aleatórios, geralmente definidos pelo Sistema Operacional, que se abrem conforme o tipo de aplicação executando, como por exemplo, o HTTP utiliza a porta 80, o FTP a porta 21, etc.

Esse canal virtual garante que uma aplicação que iniciou uma chamada pela porta 80, como por exemplo, o uso de um navegador para abrir uma página HTTP no computador A, encontre, no destino, o servidor web que fornecerá a página HTTP solicitada também por uma porta 80. Assim se evita que a informação seja direcionada erroneamente para outra aplicação, como por exemplo, um servidor FTP (porta 21).

Ataques

Alguns tipos de ataque hacker, como o DDoS (negação de serviço), utilizam a sobrecarga de requisições sobre uma determinada porta, causando a queda do serviço. Por exemplo, milhões de pedidos de conexão simultâneas sobre a porta 80 de um servidor web é capaz de provocar a desconexão do serviço e, consequentemente, a retirada das páginas que ele hospeda para os usuários.

Para evitar isso, a camada Transporte tenta continuamente analisar e mensurar o quanto a rede está carregada e efetua um “balanceamento da carga”, reduzindo a taxa de envio dos pacotes para evitar a sobrecarga.

Pacotes

Outra função importante é a entrega adequada dos pacotes de informação, verificando a sequência de chegada dos pacotes, pois, durante o tráfego, algum pode se perder. Para ilustrarmos, digamos que uma informação produzida no equipamento A, destinada ao equipamento B, dado o seu tamanho, foi particionada na origem em 10 pacotes e encaminhadas ao ponto B.

Ao chegar ao ponto B, a camada transporte, através do TCP, verifica a sequência e, caso um pacote tenha se perdido pelo caminho, ela requisita à origem o seu reenvio.

Assim, se o ponto B recebeu os pacotes 1, 5, 3 e 2, o TCP reordena a sequência, verifica a ausência do pacote 4, solicita o reenvio desse pacote e, ao chegar, coloca-o na sequência correta de maneira que o destino interprete a informação em sua plenitude.

Internet ou Rede (Camada 2)

Pode-se dizer que aqui está o GPS do pacote TCP/IP, pois dentro dessa camada é que encontramos os endereços de origem e destino de uma conexão.

Durante todo o tráfego do pacote pela rede ele encontra diversos equipamentos que o direcionam para a melhor rota afim de atingir seu destino. Esses equipamentos são chamados de roteadores e pode-se, em uma analogia, defini-los como nós de uma rede.

O roteador ao receber o pacote efetua a leitura da camada de Internet (ou Rede), verifica o endereço de destino, checa a lista interna de rotas que possui, e direciona o pacote para o caminho adequado, que pode ser o caminho mais longo com menor tráfego ou o mais curto.

Ao chegar ao destino, o equipamento armazena o endereço de origem do pacote recebido, aciona a aplicação solicitada na camada de Transporte, realiza a ação pedida na camada de Aplicação, formula a resposta, encapsula a resposta em outro pacote TCP/IP, coloca como destino o endereço de origem armazenado e insere seu endereço como o de origem.

Dentro dessa camada podemos encontrar os protocolos ICMP e o IGMP. O primeiro é utilizado para transmitir diagnósticos sobre a rede que está trafegando. O segundo é utilizado para o gerenciamento do multicast de dados.

Outra função dessa camada é transportar protocolos de roteamento. Por exemplo, o BGP, o OSPF e o RIP, que entregam aos roteadores, durante a passagem do protocolo por eles, informações capturadas sobre o tráfego na rede. Isso permite que esses equipamentos aprimorem suas listas de rotas. Além disso, direcionem os próximos pacotes de maneira mais adequada.

Enlace ou Física (Camada 1)

Tem por função identificar a conexão física da rede pela qual o pacote trafega. Por exemplo, Ethernet, Wi-Fi, Modem discado, ATM, FDDI, Token Ring, X.2. Além disso, carrega consigo a identidade do hardware que deu origem ao envio do pacote armazenando o seu endereço MAC.

Responsável por adequar o pacote ao meio físico pelo qual está trafegando. Permite que o pacote trafegue por diferentes meios, por interconexões diversas e interoperações de redes altamente heterogêneas. Essa é uma das maiores qualidades do TCP/IP. Protocolos mais antigos permitiam o tráfego apenas em um mesmo meio físico.

É por meio desta camada que um notebook ou smartphone, conectado à internet através do Wi-Fi, tem uma solicitação enviada pela frequência de rádio, pode ter o sinal convertido para trafegar na fibra óptica do equipamento de internet cedido pela operadora e chega ao destino.

Outra característica dessa camada é a tradução de nomes e endereços lógicos em endereços físicos, além de gerenciar o tráfego e as taxas de velocidade dos canais de comunicação.

Por fim, outra função é o particionamento da informação em pacotes menores, como citamos no exemplo dado na camada de Transporte.

Enquanto a camada de Transporte é responsável pelo sequenciamento correto dos pacotes da informação subdividida, a camada de Enlace é a responsável pela divisão e dessa informação.

Tem ainda as seguintes características:

  • Estabelecer e encerrar conexões;
  • Notificar e corrigir falhas;
  • Utilizar sinais analógicos ou digitais nas conexões;
  • Utilizar meios guiados (cabos) ou não guiados (rádio, micro-ondas);
  • Emissão de mais de um sinal em um mesmo meio físico;
  • Mapear endereços lógicos em físicos;
  • Converte endereços físicos em lógicos (endereço IP);
  • Comutar pacotes dentro de um equipamento;
  • Permite que o TCP/IP seja implementado em diferentes hardwares.

O Protocolo TCP

O TCP é um protocolo da camada de transporte confiável que tem por objetivo garantir que os dados são integralmente transmitidos para os hosts de destino corretos, na sequência pelo qual foram enviados.

O TCP particiona (segmenta) a informação recebida da Camada Aplicação em blocos menores de informação, conhecidos como datagramas, e embute um cabeçalho de identificação que permite ao host destino fazer a recomposição dos dados. Este cabeçalho contém um conjunto de bits (checksum) que permite a validação dos dados e do próprio cabeçalho.

Esse conjunto de bits permite que o host de destino recupere a informação em caso de erros na transmissão ou, nos casos em que a informação não pode ser recuperada ou o pacote TCP/IP se tenha perdido durante a transmissão. É tarefa do TCP retransmitir o pacote.

Para que o host de origem tenha a garantia que o pacote chegou sem erros, o host destino informa o status da transmissão através do envio de uma mensagem de acknowledgement.

Para que seja possível identificar a que serviço um determinado datagrama pertence, o TCP utiliza o conceito de portas. A cada porta está associado um serviço. Após determinada a porta, toda a comunicação com a aplicação é realizada e endereçada através dela.

Características do TCP

Transferência de dados: Padrão full-duplex entre 2 pontos, ou seja, ambos os pontos conectados podem transmitir e receber simultaneamente.

Transferência de dados com diferentes prioridades: Interpreta as sinalizações de prioridades e organiza o encaminhamento dos datagramas segundo ela.

Estabelecimento e libertação de conexões: Solicita e aceita o início e o término das transmissões entre hosts.

Sequenciação: Ordenação dos pacotes recebidos.

Segmentação e reassemblagem: Divide uma informação maior em pacotes menores para transmissão. Dessa forma, identificando-os afim de serem reagrupados adequadamente em seu recebimento.

Controle de fluxo: Analista as condições da transmissão (velocidade, meio físico, tráfego, etc.) e adapta os datagramas para essa transmissão.

Controle de erros: Através do conjunto de bits (checksum) do seu cabeçalho, verifica se os dados transmitidos estão livres de erros. Além da detecção, é possível também a sua correção.

Multiplexagem de IP: Uma vez que é utilizado o conceito de portas, é possível enviar dados de diferentes tipos de serviços (portas diferentes) para o mesmo host de destino.

O Protocolo IP

O protocolo IP define a mecânica de transmissão dos datagramas, tendo por característica a orientação à conexão. Cada pacote IP é tratado como uma unidade independente de informação, não possuindo qualquer relação com qualquer outro.

É responsável pela comunicação entre os hosts de uma rede TCP/IP, administrando o transporte de uma mensagem de um host de origem até a um host de destino. Ele faz isso mesmo quando há a necessidade do seu datagrama passar por várias sub-redes.

Porém, o protocolo IP não é confiável, pois não utiliza nenhum controle de fluxo ou tratamento de erros. Isso é responsabilidade dos protocolos das camadas superiores.

Suas funções mais relevantes são a atribuição de um esquema de endereçamento independente do endereçamento da rede utilizada e independente da própria topologia da rede.

Além disso, tem a capacidade de rotear e tomar decisões de roteamento para o transporte das mensagens entre os elementos que interligam as redes.

Características do IP

Serviço de datagrama não confiável;

Endereçamento hierárquico;

Facilidade de fragmentação e de reassemblagem de pacotes;

Campo especial indicando qual o protocolo de transporte a ser utilizado no nível superior;

Identificação da importância do datagrama e do nível de confiabilidade exigido de forma a oferecer prioridade na transmissão;

Descarte e controle de tempo de vida dos pacotes a circular na rede.

O Endereço IP

É a identificação única e inequívoca de cada um dos hosts que compõem uma rede. É um conjunto de 32 bits, normalmente escritos em decimal e distribuídos por 4 octetos. Ele segue as especificações definidas pela NIC (Network Information Center). O NIC atribui e controla os endereços IP pelo mundo. Dessa forma, se garante a segurança e unicidade dos endereços.

Está associado ao host, também à uma máscara de Rede que define a identificação, os limites e o número de equipamentos da rede onde este host está conectado.

Devido a existirem redes de vários tamanhos, é utilizado o conceito de Classe de Endereçamento. Assim é possível distinguir as seguintes classes:

Classe A: suporta 128 redes com a possibilidade de endereçar 16 milhões de hosts;

Classe B: suporta 16384 redes com a possibilidade de endereçar 64 mil hosts;

Classe C: suporta 2 milhoes de redes com a possibilidade de endereçar 256 hosts;

Classe D: permite que um datagrama seja distribuído por um conjunto de hosts;

Classe E: São endereços que começam por 1111 e está reservado para uso futuro.

Por padrão a Internet utiliza a classe C para endereçamento das suas redes e hosts. Assim quando um novo ISP (Internet Service Provider) se conecta à internet, recebe no mínimo um conjunto de 256 endereços para utilizar em seus hosts. Dessa forma, permitindo o acesso simultâneo à Internet de 256 utilizadores.

Como o crescimento da Internet foi exponencial, os endereços IP disponíveis diminuíram drasticamente e uma forma de resolver o inevitável esgotar de endereços IP consistiu em criar o conceito de sub-redes.

O IPv4 e o IPv6

Inicialmente, a Internet não foi projetada para uso comercial. Por isso, com o possível esgotamento dos endereços, além de melhorias na tecnologia, foi criado o IPv6. O IPv6 tem endereços de 128 bits. Dessa forma, permitindo que haja um número imensamente maior de endereços.

Qualidades do TCP/IP

O TCP/IP foi adotado como protocolo padrão por uma série de qualidades que possibilitam uma versatilidade enorme nas comunicações. Além disso, permite padronização no desenvolvimento de novas tecnologias em software e hardware. Destacadamente, pode-se relacionar as seguintes qualidade como principais:

Padronização: é um padrão e um protocolo roteável que é o mais completo e aceito, disponível atualmente. Todos os sistemas operacionais modernos oferecem suporte para o TCP/IP. Também a maioria das grandes redes se baseia em nele para a maior parte de seu tráfego.

Interconectividade: é uma tecnologia para conectar sistemas não similares. Muitos utilitários padrões de conectividade estão disponíveis para acessar e transferir dados entre esses sistemas não similares. Entre eles, estão incluidos  o FTP (File Transfer Protocol) e  o Telnet (Terminal Emulation Protocol).

Roteamento: permite e habilita as tecnologias mais antigas e as novas a se conectarem à Internet. Trabalha com protocolos de linha como PPP (Point to Point Protocol). Dessa maneira, permitindo conexão remota a partir de linha discada ou dedicada. Também como os mecanismos IPCs e interfaces mais utilizados pelos sistemas operacionais, como Windows sockets e NetBIOS.

Protocolo Robusto: é escalável e multiplataforma, com estrutura para ser utilizada em sistemas operacionais cliente/servidor, permitindo a utilização de aplicações desse porte entre dois pontos distantes.

Internet: é através da suíte de protocolos TCP/IP que obtemos acesso a Internet. As redes locais distribuem servidores de acesso a Internet (proxy servers). Os hosts locais se conectam a estes servidores para obter o acesso à Internet. Este acesso só pode ser conseguido se os computadores estiverem configurados para utilizar TCP/IP.

Conclusão

Em resumo, o TCP/IP especifica como os dados são trocados pela Internet. Ele fornece comunicações de ponta a ponta. Ele identifica como elas devem ser divididas em pacotes, endereçados, transmitidos, roteados e recebidos no destino.

O TCP/IP requer pouco gerenciamento central e é projetado para tornar as redes confiáveis. Com ele, é possível a recuperação automática da falha de qualquer dispositivo na rede.