Você está na página 1de 8

4.

4 Protocolos da Internet
Nesta seo, investigaremos como as mensagens so transferidas pela In-
ternet. Este processo de transferncia requer a cooperao de todos os com-
putadores do sistema e, logo, os sistemas de software para controlar esse
processo residem em cada computador na Internet. Iniciamos pelo estudo
da estrutura geral desses sistemas de software.

A abordagem em camadas de software na Internet


Uma das principais tarefas dos aplicativos de redes fornecer a infraestrutu-
ra necessria para transferir mensagens de uma mquina a outra. Na Inter-
net, esta atividade de passagem de mensagens realizada por meio de uma
hierarquia de unidades de software, que realizam tarefas anlogas s que
seriam realizadas se voc precisasse enviar um presente da costa oeste dos
Estados Unidos para um amigo na costa leste (Figura 4.12). Voc primeiro
faria um pacote com o presente e escreveria o endereo apropriado no lado
externo do pacote. Ento, voc levaria o pacote para uma empresa de envio
e recebimento de encomendas, como o U.S. Postal Service (servio de correio
dos Estados Unidos). A empresa de envio e recebimento de encomendas
poderia colocar o pacote juntamente a outros em um grande continer e
enviar o continer para uma empresa area, cujos servios ela contratou.
A empresa area colocaria o continer em uma aeronave e o transportaria
para a cidade de destino, possivelmente com paradas intermedirias ao lon-
go do caminho. No destino final, a empresa area removeria o continer da
aeronave e o enviaria para o escritrio da empresa de envio e recebimento
de encomendas sediado na cidade de destino. Por sua vez, a empresa de
envio e recebimento de encomendas tiraria seu pacote do continer e o en-
tregaria para o destinatrio.
Em resumo, o transporte do presente seria feito por meio de uma hie-
rarquia de trs camadas: (1) o nvel de usurio (que consiste em voc e seu

Origem Destino final

Prepara o pacote Recebe e abre


para o envio Voc Amigo o pacote

Empresa de Remove o pacote


Coloca o pacote Empresa de
envio e do continer e
em um continer envio e
recebimento entrega ao
para a empresa recebimento Paradas intermedirias de encomendas destinatrio
area de encomendas

Coloca o Empresa Empresa Empresa Empresa Envia o continer


continer na para a empresa de
area area area area
aeronave envio e
recebimento
de encomendas
Transfere o continer
para outra aeronave

Figura 4.12 Exemplo de envio de um pacote.


amigo), (2) a empresa de envio e recebimento de encomendas e (3) a empresa
area. Cada nvel usa o prximo nvel inferior como uma ferramenta abstrata.
(Voc no se preocupa com os detalhes da empresa de envio e recebimento de
encomendas, e a empresa de envio e recebimento de encomendas no se preo-
cupa com as operaes internas da empresa area.) Cada nvel na hierarquia
tem representantes na origem e no destino, com os representantes no destino
tendendo a fazer o inverso do que fazem seus correspondentes na origem.
Assim com os sistemas de software para controle de comunicao
pela Internet, exceto que o sistema de software da Internet possui quatro ca-
madas em vez de trs, cada uma dela formada por uma coleo de rotinas de
software no lugar de pessoas e empresas. As quatro camadas so conhecidas
como a camada de aplicao, a camada de transporte, a camada de rede
e a camada de ligao (Figura 4.13). Uma mensagem normalmente tem
origem na camada de aplicao. A partir disso, ela passada para baixo pelas
camadas de transporte e de rede enquanto preparada para a transmisso e,
por fim, transmitida pela camada de ligao. A mensagem recebida pela
camada de ligao no destino e passada para cima na hierarquia at ser en-
tregue camada de aplicao no destino da mensagem.
Vamos investigar esse processo mais atentamente, rastreando uma
mensagem medida que ela encontra seu caminho atravs do sistema (Fi-
gura 4.14). Iniciamos nossa jornada com a camada de aplicao.
A camada de aplicao formada por unidades de software, como
clientes e servidores, que usam a comunicao da Internet para conduzir
suas tarefas. Embora os nomes sejam similares, essa camada no restrita
classificao de aplicaes apresentada na Seo 3.2, mas tambm inclui
muitos pacotes utilitrios. Por exemplo, sistemas de software para transfe-
rir arquivos usando FTP ou para fornecer recursos de login remoto usando
SSH se tornaram to comuns que so normalmente considerados software
utilitrio.
A camada de aplicao usa a camada de transporte para enviar e re-
ceber mensagens pela Internet praticamente da mesma forma como voc

Aplicao

Transporte

Rede

Ligao

Figura 4.13 Camadas de software da Internet.


A cada parada intermediria,
a camada de rede determina
a direo na qual o pacote
deveria ser encaminhado.

Prepara a Recebe o
mensagem e Aplicao Aplicao pacote
fornece o
endereo de
destino

Quebra a Coleta os
mensagem Transporte Transporte pacotes e
em pacotes remonta a
mensagem

Atribui endereos Detecta que o


intermedirios a Rede Rede Rede Rede pacote alcanou
cada pacote seu destino final

Transfere o Recebe a
pacote Ligao Ligao Ligao Ligao mensagem

Origem Paradas Destino


intermedirias final

Figura 4.14 Rastreio uma mensagem atravs da Internet.

usaria uma empresa de envio e recebimento de encomendas para enviar e


receber pacotes. Assim como sua responsabilidade fornecer um endereo
compatvel com as especificaes da empresa de envio e recebimento de
encomendas, responsabilidade da camada de aplicao fornecer um en-
dereo compatvel com a infraestrutura da Internet. Para satisfazer a essa
necessidade, a camada de aplicao pode usar os servios de servidores de
nomes dentro da Internet para traduzir os endereos mnemnicos usados
por humanos para os endereos IP compatveis com a Internet.
Uma tarefa importante da camada de transporte aceitar mensagens
da camada de aplicao e se certificar de que as mensagens sejam for-
matadas apropriadamente para transmisso pela Internet. Para alcanar
esse ltimo objetivo, a camada de transporte divide longas mensagens em
pequenos segmentos, que so transmitidos pela Internet como unidades
individuais. Essa diviso necessria porque uma mensagem longa ni-
ca pode obstruir o fluxo de outras mensagens nos roteadores da Internet
nos quais muitas mensagens cruzam seus caminhos. De fato, pequenos
segmentos de mensagens podem se misturar nestes pontos, enquanto que
uma longa mensagem fora as outras a esperarem enquanto ela passa (de
maneira bastante parecida com carros esperando que um longo trem passe
em uma interseco ferroviria).
A camada de transporte adiciona nmeros de sequncia aos peque-
nos segmentos que ela produz, de forma que esses segmentos possam ser
remontados quando a mensagem chegar a seu destino. Ento, ela passa es-
ses segmentos, conhecidos como pacotes, para a camada de rede. A partir
deste ponto, os pacotes so tratados como se fossem mensagens individuais,
no relacionadas, at que alcancem a camada de transporte em seu destino
final. bastante possvel que os pacotes relacionados a uma mesma mensa-
gem sigam diferentes caminhos pela Internet.
trabalho da camada de rede decidir em qual direo um pacote deve
ser enviado em cada passo, juntamente ao caminho do pacote pela Inter-
net. Na verdade, a combinao da camada de rede e da camada de ligao
abaixo dela compe os sistemas de software que residem nos roteadores da
Internet. A camada de rede responsvel por manter a tabela de encami-
nhamentos do roteador e por usar essa tabela para determinar a direo na
qual os pacotes devem ser encaminhados. A camada de ligao no roteador
responsvel por receber e transmitir os pacotes.
Ento, quando a camada de rede na origem de um pacote recebe o paco-
te da camada de transporte, ela usa sua tabela de encaminhamentos para de-
terminar para onde o pacote deve ser enviado para iniciar sua jornada. Ten-
do determinado a direo apropriada, a camada de rede passa o pacote para
a camada de ligao, de forma que a transmisso propriamente dita ocorra.
A camada de ligao tem a responsabilidade de transferir o pacote.
Logo, a camada de ligao deve lidar com os detalhes de comunicao espe-
cficos da rede individual na qual o computador est. Por exemplo, se essa
rede uma Ethernet, a camada de ligao aplica CSMA/CD. Se a rede
WiFi, a camada de ligao aplica CSMA/CA.
Quando um pacote transmitido, ele recebido pela camada de liga-
o na outra extremidade da conexo. L, a camada de ligao encaminha o
pacote para cima, para sua camada de rede, na qual o destino final do pacote
comparado com a tabela de encaminhamentos da camada de rede para
determinar a direo do prximo passo. Com essa deciso tomada, a cama-
da de rede retorna o pacote para a camada de ligao de forma que ele seja
encaminhado para a direo correta. Dessa maneira, cada pacote pula de
mquina em mquina em seu caminho rumo ao destino final.
Note que apenas as camadas de ligao e de rede esto envolvidas nos
passos intermedirios durante essa jornada (veja novamente a Figura 4.14)
e, assim, essas so as nicas camadas presentes nos roteadores, conforme
dissemos anteriormente. Alm disso, para minimizar a demora em cada
uma dessas paradas intermedirias, o papel de encaminhamento da ca-
mada de rede dentro de um roteador fortemente integrado com a camada
de ligao. Por sua vez, o tempo necessrio para que um roteador moderno
encaminhe um pacote medido em milionsimos de segundo.
No destino final de um pacote, a camada de rede que reconhece que
a jornada do pacote est completa. Nesse caso, a camada de rede passa o
pacote para sua camada de transporte em vez de encaminh-lo adiante.
medida que a camada de transporte recebe pacotes da camada de rede, ela
extrai os segmentos da mensagem subjacente e reconstri a mensagem ori-
ginal de acordo com os nmeros de sequncia fornecidos pela camada de
transporte na origem da mensagem. Uma vez que a mensagem tenha sido
montada, a camada de transporte a passa para a unidade apropriada dentro
da camada de aplicao assim completando o processo de transmisso da
mensagem.
Determinar qual unidade dentro da camada de aplicao deve rece-
ber uma mensagem que est chegando uma tarefa importante da camada
de transporte. Isso tratado atribuindo nmeros de portas nicos (no
relacionados com as portas de E/S discutidas no Captulo 2) para as vrias
unidades e requerendo que o nmero de porta apropriado seja anexado ao
endereo da mensagem antes de a mensagem iniciar sua jornada. Ento,
uma vez que a mensagem tenha sido recebida pela camada de transporte
no destino, a camada de transporte simplesmente passa a mensagem para o
sistema de software da camada de aplicao no nmero de porta designado.
Os usurios da Internet raramente precisam se preocupar com nme-
ros de portas, pois as aplicaes mais comumente usadas possuem nmeros
de portas universalmente aceitos. Por exemplo, se for solicitado a um nave-
gador Web que obtenha o documento cuja URL seja http://www.zoo.org/
animals/frog.html, o navegador assume que ele deve contatar o servidor
HTTP em www.zoo.org por meio da porta de nmero 80. De maneira simi-
lar, quando est transferindo um arquivo, um cliente FTP assume que deve
comunicar-se com o servidor FTP por meio das portas de nmeros 20 e 21.
Em resumo, a comunicao pela Internet envolve a interao de quatro
camadas de software. A camada de aplicao trata de mensagens a partir do
ponto de vista da aplicao. A camada de transporte converte essas men-
sagens em segmentos compatveis com a Internet e monta novamente as
mensagens recebidas antes de entreg-las aplicao apropriada. A camada
de rede trata de direcionar os segmentos atravs da Internet. A camada de li-
gao trata da transmisso propriamente dita de segmentos de uma mquina
para outra. Com toda essa atividade, um tanto surpreendente que o tempo
de resposta da Internet seja medido em milissegundos, de forma que muitas
transaes parecem ocorrer instantaneamente.

A sute de protocolos TCP/IP


A demanda por redes abertas tem gerado uma procura por padres publica-
dos pelos quais os fabricantes possam fornecer equipamentos e sistemas de
software que funcionem corretamente com produtos de outros fabricantes.
Um padro que resultou dessa necessidade o modelo de referncia Inter-
conexo de Sistemas Abertos (OSI Open System Interconnection), produ-
zido pela ISO (International Organization for Standardization Organizao
Internacional para Padronizao). Esse padro baseado em uma hierarquia
de sete nveis, em oposio hierarquia de quatro nveis que acabamos de
descrever. um modelo citado com frequncia, pois carrega a autoridade de
uma organizao internacional, mas tem sido lento para substituir a viso de
quatro nveis, principalmente por ter sido estabelecido aps a hierarquia de
quatro nveis j ter se consolidado como o padro da Internet.
A sute de protocolos TCP/IP uma coleo de padres de protocolos
usada pela Internet para implementar a hierarquia de comunicao de qua-
tro nveis implementada na Internet. Na verdade, o Protocolo de Controle
de Transmisso (TCP Transmission Control Protocol) e o Protocolo de In-
ternet (IP Internet Protocol) so apenas dois protocolos nesta vasta coleo
o que torna o fato de a coleo inteira ser chamada de sute de protocolos
TCP/IP um tanto enganoso. Mais precisamente, TCP define uma verso da
camada de transporte. Dizemos que uma verso porque a sute de proto-
colos TCP/IP fornece mais de uma maneira de implementar a camada de
transporte; uma das outras opes definida pelo Protocolo de Datagrama
de Usurio (UDP User Datagram Protocol). Essa diversidade anloga
ao fato de que, quando est despachando um pacote, voc pode optar por
diferentes empresas de envio: todas oferecem os mesmos servios bsicos,
mas cada uma delas com suas caractersticas nicas. Logo, dependendo da
qualidade de servio necessria, uma unidade dentro da camada de apli-
cao pode escolher enviar os dados via verso TCP ou UDP da camada de
transporte (Figura 4.15).
Existem vrias diferenas entre TCP e UDP. Uma que, antes de enviar
uma mensagem conforme solicitado pela camada de aplicao, uma camada
de transporte baseada em TCP envia sua prpria mensagem para a camada de
transporte no destino, dizendo que uma mensagem ser enviada em breve.
Ela, ento, espera que essa mensagem seja confirmada pelo destinatrio an-
tes de comear a mandar a mensagem da camada de aplicao. Dessa manei-
ra, diz-se que uma camada de transporte TCP estabelece uma conexo antes
de enviar uma mensagem. Uma camada de transporte baseada em UDP no
estabelece essa conexo antes de enviar uma mensagem. Ela simplesmente
envia a mensagem ao endereo que lhe foi dado e no se preocupa mais com
isso. Por ela, o computador de destino pode nem mesmo estar operacional.
Por essa razo, diz-se que UDP um protocolo sem conexo.
Outra diferena entre TCP e UDP que camadas de transporte TCP na
origem e no destino trabalham juntas por meio de confirmaes e de retrans-
misses de pacotes para se certificarem de que todos os segmentos de uma
mensagem sejam transferidos com sucesso ao destino. Por essa razo, diz-se
que TCP um protocolo confivel, enquanto UDP, que no oferece tais servi-
os de retransmisso, considerado um protocolo no confivel.

Camada de aplicao

?
Camada de
transporte

TCP UDP

Mais confivel, Mais eficiente,


mas menos eficiente mas menos confivel

Figura 4.15 Escolha entre TCP e UDP.


Outra diferena entre TCP e UDP que TCP fornece tanto controle
de fluxo o que significa que uma camada de transporte TCP na origem
da mensagem pode reduzir a taxa pela qual ela transmite os segmentos para
evitar que a camada correspondente no destino no seja sobrecarregada
quanto controle de congestionamento que significa que uma camada de
transporte TCP na origem da mensagem pode ajustar sua taxa de transmis-
so para aliviar um congestionamento entre ela e o destino da mensagem.
Ainda assim, isso no significa que a UDP seja uma escolha ruim. Afi-
nal, uma camada de transporte baseada em UDP mais fluida que uma ca-
mada baseada em TCP e, logo, se uma aplicao est preparada para lidar
com as consequncias da UDP, essa opo pode ser a melhor escolha. Por
exemplo, a eficincia da UDP a torna o protocolo de escolha para buscas de
DNS e para VoIP. Entretanto, como emails so menos sensveis a questes
temporais, os servidores de correio usam TCP para transferir emails.
IP o padro da Internet para implementar as tarefas atribudas cama-
da de rede. J observamos que essa tarefa consiste em encaminhamento,
que envolve o envio de pacotes pela Internet, e roteamento, que envolve a
atualizao da tabela de encaminhamentos da camada para refletir condies
mutveis. Por exemplo, um roteador pode estar com problemas de funciona-
mento, o que significa que o trfego no pode mais ser encaminhado nessa
direo, ou uma seo da Internet pode se tornar congestionada, o que sig-
nifica que o trfego deve ser redirecionado para circundar o bloqueio. Muito
do protocolo IP associado a roteamento lida com protocolos usados para a
comunicao entre camadas de rede vizinhas, medida que elas trocam in-
formaes de roteamento.
Um recurso interessante associado ao encaminhamento que cada vez
que uma camada de rede IP na origem de uma mensagem prepara um pa-
cote, ela adiciona um valor chamado de contador de saltos, ou tempo de
vida, a esse pacote. Esse valor um limite relacionado ao nmero de vezes
que o pacote deve ser reencaminhado enquanto tenta achar seu caminho
atravs da Internet. Cada vez que uma camada de rede IP encaminha um
pacote, ela diminui o contador de saltos do pacote em um. Com essa infor-
mao, a camada de rede pode proteger a Internet de pacotes que entrem
em ciclos infinitamente dentro do sistema. Apesar de a Internet continuar a
crescer diariamente, um contador de saltos de 64 continua sendo suficiente
para permitir que um pacote encontre seu caminho atravs do labirinto de
roteadores dentro dos ISPs de hoje.
Durante anos, uma verso do IP conhecida como IPv4 (IP verso qua-
tro) tem sido usada para implementar a camada de rede dentro da Internet.
No entanto, a Internet est rapidamente ultrapassando o sistema de ende-
reamento de 32 bits ditado pelo IPv4. Para resolver esse problema, assim
como para implementar outras melhorias como multicast, uma nova verso
do IP conhecida como IPv6, que usa endereos de internet formados por 128
bits, tem sido implementada. O processo de converso de IPv4 para IPv6
est atualmente em curso essa a converso qual fizemos uma aluso na
introduo acerca dos endereos da Internet na Seo 4.2 e espera-se que o
uso de endereos de 32 bits na Internet esteja extinto at 2025.
Questes e exerccios
1. Que camadas da hierarquia de software da Internet no so necessrias em um roteador?
2. Cite algumas diferenas entre uma camada de transporte baseada no protocolo TCP e outra
baseada no protocolo UDP.
3. Como a camada de transporte determina qual unidade das presentes na camada de aplica-
o deve receber uma mensagem que tenha chegado camada?
4. O que impede que um computador na Internet faa cpias de todas as mensagens que pas-
sam por ele?