Você está na página 1de 6

Pilha de protocolo TCP/IP

CASTRO, Douglas Augusto Mena¹


douglasaugusto@hotmail.com.br

Resumo

Com o crescimento cada vez mais acentuado das redes de computadores surge a necessidade de
interconecta-las haja visto que uma grande rede é formada por pequenas unidades de LAN (Local
Area Network ), MAN (Metropolitan Area Network) ou WAN (Wide Area Network).

Como existem diversos tipos de usuários e diversos tipos de aplicações, existem tecnologias de
redes que se adequam melhor a cada perfil de usuário. O problema começa a surgir quando
precisamos conectar diferentes tecnologias de redes de forma transparente.

Torna-se então necessário um protocolo (ou linguagem) comum que independente da tecnologia
de rede utilizada permita uma comunicação (ou internetworking) de forma transparente. Neste
contexto, o protocolo TCP/IP (Transport Control Protocol / Internet Protocol) vem suprir esta
necessidade dando total transparência aos usuários finais das diversas tecnologias de rede
empregadas pelas diversas LANs, MANs e WANs existentes, mascarando todos os detalhes da
tecnologia de Hardware utilizada.

Histórico
A plataforma TCP/IP surgiu através dos trabalhos do DARPA (Defense Advanced Research
Projects Agency) dos Estados Unidos, em meados da década de 70, constituindo a ARPANET,
que mais tarde se desmembrou em ARPANET, para pesquisa, e MILNET, voltada para as
instituições militares.
Vale ressaltar que desde o princípio a arquitetura TCP/IP foi concebida em um contexto de guerra
(Guerra Fria), onde uma das grandes preocupações era interligar os diversos computadores
(independente da tecnologia de rede utilizada), de forma simples e não centralizada, ou seja, se
determinados computadores fossem eventualmente destruídos a rede continuasse funcionando
independente daqueles computadores, o que inclui um conceito muito forte de descentralização,
característica essa que não era comum na época.
Para encorajar os pesquisadores universitários a adotar o TCP/IP, o DARPA fez uma
implementação de baixo custo, integrando-o ao sistema operacional UNIX da Universidade de
Berkeley (BSD) já em uso em todas as universidades americanas. Além disso, teve-se o cuidado
de definir aplicações de rede similares às já conhecidas em Unix, como rusers e rcp.
Mais tarde a NSF (National Science Foundation) estimulou o seu crescimento criando a NSFNET,
que ligava centros de supercomputação espalhados por todo o Estados Unidos, numa rede de longa
distância, também o utilizando o protocolo TCP/IP para interligar as diferentes tecnologias de
redes.
Devido a sua grande facilidade de implementação, baixo custo e as vantagens que esta rede
oferecia, ela cresceu rapidamente e se espalhou por diversos países, construindo o que hoje
conhecemos como Internet.
Quando alguém nos fala do protocolo TCP/IP logo nos vem a cabeça a palavra Internet, porque a
Internet só é o que é graças a este protocolo, vale observar que você pode utilizar o TCP/IP
independentemente de estar ligado a Internet. A palavra que usamos atualmente para definir uma
rede que utiliza o TCP/IP mas não está ligada à Internet é Intranet. Neste contexto, é possível ter
todas as facilidades das aplicações Internet, ou seja, do protocolo TCP/IP, dentro de um ambiente
fechado.
Introdução ao TCP / IP

Existem quatro grupos responsáveis pela supervisão dos processos de estandardização do TCP/IP:
– ISOC (Internet Society) Suporta, facilita e promove a evolução e crescimento da
Internet como infraestrutura de comunicações.
– IAB (Internet Architecture Board) Coordenação e supervisão técnica dos standards.
Efectua a revisão e garante a qualidade dos standards.
– IETF (Internet Engineering Task Force) Desenvolve especificações técnicas que mais
tarde se podem tornar standards.
– IRTF (Internet Research Task Force) Coordena projetos de investigação a longo prazo.

RFCs

Os standards são publicados sob a forma de RFCs


– Request for Comments
Cada RFC é identificado por um número.
– RFC 0007 Host-IMP Interface G.Deloche May 1969
Um RFC não é obrigatoriamente um standard:
– Muitos são publicados para fins informativos
– Outros não chegam sequer a ser aceites como standards.
Os RFCs encontram-se disponíveis para download
– http://www.ietf.org/rfc.html
Existe um índex com cada RFC e o seu estado:
– Standard, Informational, Experimental, Proposed
Standard, Draft Standard, Best Current Practice, Historic, Unknown

Alguns RFCs importantes:


– RFC 1700 Parâmetros (números) usados em protocolos.
– RFC 2500 Estado de estandardização dos protocolos.
– RFC 1122 Requisitos para hosts nível de comunicação
– RFC 1123 Requisitos para hosts nível aplicativo
– RFC 1127 Perspectivas sobre os requisitos
– RFC 1812 Requisitos para routers IPV4

Níveis

Os protocolos de comunicação modernos são normalmente baseados em camadas.


O modelo OSI (Open Systems Interconnection) define o processo de comunicação como um
conjunto de sete níveis.
As camadas implementam diferentes funcionalidades.

O TCP/IP possui quatro níveis.

Figura 1: Os níveis do TCP/IP e camada OSI.


O nível de ligação inclui o driver e a interface de rede correspondente. É responsável por lidar com
todos os detalhes da ligação física entre o sistema e a rede.
1. O nível de rede lida com a movimentação de pacotes de dados na rede. O
encaminhamento (routing) é efetuado neste nível. Ex: O IP, ICMP e IGMP são protocolos
de nível de rede.
2. O nível de transporte lida com os fluxos de dados usados pelas aplicações para comunicar
entre dois sistemas.
Ex: O TCP e o UDP são protocolos de nível de transporte
3. O nível de aplicação é constituído pelos programas usados pelos utilizadores.
Por exemplo:
a. Cliente SSH usado para efetuar logins remotos.
b. Cliente FTP usado para transferir ficheiros.
c. Servidor HTTP usado para dar acesso a documentos.

Níveis e Funcionalidades

Figura 2: Esquema de protocolos em cada nível.

No exemplo anterior são exibidos quatro protocolos, um em cada nível.


O TCP/IP é um conjunto de muitos mais protocolos. Embora o nome do conjunto de protocolos seja TCP/IP
o TCP e o IP são apenas dois dos protocolos. Outro nome possível para o TCP/IP é “Protocolo Internet”. O
termo Internet surge de “Internetwork” ou seja a combinação de múltiplas redes numa só através da sua
interligação física e de um protocolo comum.

Para criar uma internet basta:


 Instalar e configurar o TCP/IP nos vários sistemas.
 Criar pelo menos duas redes
 Interligar as duas redes através de um dispositivo de encaminhamento (router ou switch L3).

É na função de encaminhamento que o nível de rede IP assume o seu destaque. Um sistema que possui mais
de um interface de rede chama-se “multihomed”.
Um sistema “multihomed” que encaminha tráfego entre as suas várias interfaces chama-se “router”.
Figura 3: Encaminhamento dos pacotes.

O nível de rede (IP) implementa um serviço não fiável chamado Best Effort.
O IP nada garante: não garante a entrega de pacotes e não garante a sequência de chegada.
Os níveis acima do IP nada sabem sobre: topologia física da rede e a existência de routers.

TCP

O TCP implementa um fluxo (byte stream) de dados fiável entre dois sistemas.
Divide os dados em pacotes e envia-os. Implementa o mecanismo de acks, timeouts e retransmissão.
Recebe os pacotes e reconstrói o fluxo de dados. Como é um protocolo fiável a aplicação não precisa de se
preocupar com detalhes como retransmissão ou ordenação dos pacotes na recepção.

UDP

O UDP implementa um serviço simples e não garantido


 Como o IP mas orientado para aplicações
 Não possui conceito de ligação (pacote a pacote)
Envia pacotes de dados (datagramas) entre duas aplicações em dois sistemas.
 Não oferece garantias de que os pacotes cheguem na mesma sequência em que foram enviados.
 Não oferece sequer garantia de que os pacotes cheguem ao destino.
As aplicações que usem UDP têm elas mesmo de implementar um protocolo fiável.

Endereços IP

Dentro de uma rede cada interface tem de possuir um endereço IP diferente. Um endereço IP (v4) é um
número de 32 bits (4 bytes).
Um endereço IP é normalmente representado como:
 Quatro números decimais separados por pontos.
 Cada número representa um dos quatro bytes.

Exemplos: 193.136.90.81
10.0.0.254

Uma vez que os endereços das interfaces têm de ser únicos a sua atribuição tem de ser controlada.
O ICANN “Internet Corporation for Assigned Names and Numbers” supervisiona a delegação do espaço
de endereçamento.
A ICANN delega o espaço de endereçamento a “Regional Internet Registries” (RIR):
ARIN: América do Norte
RIPE: Europa, Médio Oriente
APNIC: Ásia/Pacifico
AfriNIC: África
LACNIC: América Latina
Cada “RIR” pode delegar a atribuição de partes do espaço de endereçamento a “Local Internet Registries”.
Os “Local Internet Registries” (LIR) dependem dos “RIR” e são operados tipicamente por service providers
para alocação de endereços aos seus clientes.
O espaço de endereçamento IP era originalmente dividido em 5 classes:

Figura 4: Classes dos endereços IP.

O modelo de classes possui sérios problemas de escalabilidade. O modelo atual designa-se por Classless
and Subnet Address Extensions ( CIDR ). No CIDR a divisão entre endereço de rede e de máquina não é
limitada às 5 classes. Qualquer divisão do número de bits entre endereço de rede e de máquina é válida.
Na nova notação a separação entre endereço de rede e de máquina é efetuada especificando o número de
bits alocados ao endereço de rede.
O número de bits de rede é especificado sob a forma de um numero decimal separado do endereço IP por
um “/”.

Endereços IP
Exemplos de endereços:

Figura 5: Exemplo de um endereço IP.

Endereço de Broadcast
• Um datagrama de broadcast chega a todos os hosts de uma rede IP.
• Cada rede IP possui um endereço de broadcast.
• O Endereço de broadcast tem todos os bits do host a 1
– Rede 193.137.98.0/24 broadcast 193.137.98.255
– Rede 193.137.98.0/23 broadcast 193.137.99.255
DNS

Embora as interfaces de rede as maquinas e o encaminhamento de pacotes seja feito com base no endereço
IP para conveniência dos humanos é possível usar nomes em vez de endereços IP.
O mecanismo que permite a tradução de nomes em endereços IP e vice versa chama-se Domain Name
System (DNS). O DNS é uma “base de dados” hierárquica distribuída.
As aplicações convertem nomes em endereços através de funções de biblioteca, este processo designa-se
de “lookup”. Da mesma forma o processo de obtenção de um nome com base num endereço IP designa-se
“reverse lookup”.
A maior parte das aplicações que aceita nomes também aceita endereços IP no formato “dotted decimal”.

Portas
Os protocolos TCP e UDP identificam as aplicações com base nos números de porta.
Existem três conjuntos de portas:

Well Known Ports


– Portas entre 0 e 1023
– Reservadas para servidores de algumas aplicações bem conhecidas
– Atribuição das portas a aplicações controlada pelo ICANN
– Necessário privilegio de root para criar sockets neste espaço
Registered Ports
– Portas entre 1024 e 49151
– Podem ser usadas por qualquer aplicação
– O ICANN mantém um registo para conveniência dos utilizadores
Dynamic / Private Ports
– Portas entre 49152 e 65535
– Portas efémeras para alocação automática para clientes

Exemplo:
O processo servidor SSH:
• Arranca e associa-se à well-known-port atribuída ao SSH
– Associação OK se for root e a porta não estiver ocupada
• Fica à escuta de ligações de clientes na well-known-port
– Quando um cliente SSH se pretende ligar ao servidor:
• Pede ao kernel associação a uma porta local efémera
– O kernel decide qual porta atribuir
• Estabelece uma ligação TCP com o servidor SSH
• A ligação TCP é entre a porta efémera e a well-known-port

Bibliografia

Comer, Douglas E., Internetworking with TCP/IP – Volume I – Principles, Protocols and
Architecture – 2001

Cordeiro, Roberto Cesar, Apostila TCP/IP – Departamento de Informática Universidade


Federal do Espírito Santo – UFES, 2004

Kurose, James F., Redes de computadores e a Internet – 5º Edição. 2011

Você também pode gostar