Vous êtes sur la page 1sur 23

1 Captulo

1.1 O que Internet?



1.1.1 Uma descrio detalhada da rede:

A Internet pblica uma rede de computadores mundial, isto , uma rede que
interconecta milhes de equipamentos de computao em todo o mundo. O termo rede de
computadores est comeando a soar um tanto desatualizado, dados os muitos
equipamentos no tradicionais que esto sendo ligados Internet, todos esses
equipamentos so denominados hospedeiros ou sistemas finais.
Sistemas finais so conectados entre si por enlaces (links) de comunicao.
Enlaces diferentes podem transmitir dados em taxas diferentes, sendo a taxa de
transmisso (banda passante) de um enlace medida em bits/s.
Em geral, sistemas finais no so interligados diretamente por um nico enlace de
comunicao, em vez disso, so interligados indiretamente por equipamentos
intermedirios de comutao conhecidos como comutadores de pacotes (tipos mais
predominantes: roteadores e comutadores de camada de enlace). Eles encaminham a
informao que est chegando em um de seus enlaces de entrada para um de seus enlaces
de sada. Em redes de computadores o bloco de informao denominado pacote.
A sequncia de enlaces de comunicao e comutadores de pacotes que um pacote
percorre desde o sistema final remetente at o sistema final receptor conhecida como
rota ou caminho atravs da rede. A Internet usa uma tcnica conhecida com comutao
de pacote, que permite que vrios sistemas finais comunicantes compartilhem ao mesmo
tempo um caminho ou partes dele.
Sistemas finais acessam a Internet por meio de Provedores de Servios de
Internet (ISPs). Cada ISP uma rede de comutadores de pacotes e enlaces de
comunicao. ISPs proveem aos sistemas finais uma variedade de tipos de acesso rede
(acesso por modem discado, banda larga) e acesso a provedores de contedo, conectando
sites Web diretamente Internet. Para permitir a comunicao entre usurios da Internet
e possibilitar a usurios acesso mundial ao contedo da Internet, ISPs de nvel mais baixo
so interconectados por meio de ISPs de nvel mais alto (consiste em roteadores de alta
velocidade interconectados com enlaces de fibra tica de alta velocidade).
Os sistemas finais, os comutadores de pacotes e outras peas da Internet executam
protocolos que controlam o envio e o recebimento de informaes dentro da Internet. O
TCP e o IP so dois dos protocolos mais importantes da Internet. O protocolo IP
especifica o formato dos pacotes que so enviados e recebidos entre roteadores e sistemas
finais. Os principais protocolos da Internet so conhecidos coletivamente como TCP/IP.
Os padres da Internet so desenvolvidos pela IETF e os documentos
padronizados dela so denominados RFCs.
Existem redes privadas cujos hospedeiros no podem trocar mensagens com hospedeiros
que esto fora da rede privada, elas so denominadas intranets, pois usam o mesmo tipo
de hospedeiros, roteadores, enlaces e protocolos da Internet pblica.

1.1.2 Uma descrio do servio:

A Internet permite que aplicaes distribudas que executam em seus sistemas
finais troquem dados entre si. Exemplos de aplicaes: navegao na Web, mensagem
instantnea, udio e vdeo em tempo real, etc.
A Internet prov dois servios a suas aplicaes distribudas: um servio
confivel orientado para conexo (garante que os dados transmitidos de uma origem a
um destino sejam finalmente entregues ao destinatrio em ordem e completos) e um
servio no confivel no orientado para conexo (no oferece nenhuma garantia
quanto entrega final). A aplicao distribuda usa um ou outro desse servio, mas no
ambos.
Atualmente, a Internet no prov um servio que oferea garantias quanto ao
tempo que gastar para levar os dados da origem ao destino.

1.1.3 O que um protocolo?

Um protocolo de rede semelhante a um protocolo humano, a diferena que as
entidades que trocam mensagens e realizam aes so componentes de hardware ou
software de algum equipamento. Todas as atividades na Internet que envolvem duas ou
mais entidades remotas comunicantes so governadas por um protocolo.
Um protocolo define o formato e a ordem das mensagens trocadas entre duas ou
mais entidades comunicantes, bem como as aes realizadas na transmisso e/ou no
recebimento de uma mensagem ou outro evento.

1.2 A periferia da Internet

1.2.1 Sistemas finais, clientes, servidores:

Os computadores conectados Internet so usualmente chamados de sistemas
finais (computadores de mesa, servidores, computadores mveis), por que esto na
periferia da internet. Sistemas finais tambm so denominados hospedeiros (hosts) por
que hospedam programas de aplicao. s vezes, sistemas finais so ainda subdivididos
em duas categorias: clientes e servidores. Normalmente, clientes costumam ser PCs de
mesa ou mveis, enquanto servidores tendem a ser mquinas mais poderosas que
armazenam e distribuem pginas Web, vdeo em tempo real, etc. Um programa cliente
um programa que funciona em um sistema final, que solicita e recebe um servio de um
programa servidor, que funciona em outro sistema final. Uma vez que um programa
cliente normalmente roda em um computador e o programa servidor, em outro, aplicaes
cliente-servidor de Internet so, por definio, aplicaes distribudas. Eles interagem
enviando mensagens um para o outro pela Internet. Nem todas as aplicaes de hoje
consistem em programas puramente clientes ou servidores, as aplicaes P2P de
compartilhamento de arquivos populares, o sistema final do usurio funciona como um
programa cliente (quando requisita um arquivo de outro par) e tambm como um
programa servidor (quando envia um arquivo para outro par).

1.2.2 Servio no orientado para conexo e servio orientado para conexo:

Servio orientado para conexo: Quando uma aplicao usa o servio orientado para
conexo, o programa cliente e o programa servidor (sistemas finais diferentes) enviam
pacotes de controle um para o outro antes de remeter pacotes com dados reais que devero
ser transferidos. Este procedimento, apresentao, alerta o cliente e o servidor para que
se preparem para uma rajada de pacotes. Quando o processo de apresentao for
concludo uma conexo foi estabelecida entre os dois sistemas finais. Os servios
orientados para conexo providos pela Internet vm conjugados com diversos outros
servios, entre eles a transferncia de dados confivel, que quer dizer que uma aplicao
pode confiar que a conexo entregar todos os seus dados sem erro e na ordem certa. A
confiabilidade na Internet conseguida por meio da utilizao de confirmaes e
retransmisses. O controle de fluxo garante que nenhum dos lados de uma conexo
sobrecarregue o outro enviando demasiados pacotes muito rapidamente. O servio de
controle de congestionamento da Internet ajuda a evitar que ela trave, quando os
comutadores de pacotes ficam congestionados, seus buffers podem transbordar e pode
ocorrer perda de pacotes. O servio orientado para conexo da Internet tem um nome
Protocolo de Controle de Transmisso (TCP). Entre os servios que o TCP prov a
uma aplicao esto: transporte confivel, controle de fluxo e controle de
congestionamento.

Servio no orientado para conexo: No h apresentao mtua no servio no
orientado para conexo da Internet. Quando um lado quer enviar pacotes ao outro lado,
ele simplesmente envia. Como no processo de apresentao, os dados podem ser
entregues mais rpido, o que torna esse servio ideal para aplicaes simples orientadas
para transao. Porm, como no h nenhuma transferncia confivel de dados, uma fonte
nunca tem certeza de quais pacotes chegaram ao destino. Este servio tambm no prov
controle de fluxo, nem de congestionamento. O servio de Internet no orientado para
conexo denominado Protocolo de Datagrama do Usurio (UDP).

1.3 O ncleo da rede

1.3.1 Comutao de circuitos e comutao de pacotes:

H duas abordagens fundamentais para montagem de um ncleo de rede:
comutao de circuitos e comutao de pacotes. Em redes de comutao de circuitos,
os recursos necessrios ao longo de um caminho para prover comunicao entre sistemas
finais so reservados pelo perodo da sesso de comunicao. Em redes de comutao de
pacotes, esses recursos no so reservados; as mensagens de uma sesso usam os recursos
por demanda, e como consequncia, podero ter de esperar para conseguir acesso a um
enlace de comunicao. As redes de telefonia so exemplos de redes de comutao de
circuitos. A Internet um exemplo de rede de comutao de pacotes.

Comutao de circuitos: Quando dois sistemas finais querem se comunicar, a rede
estabelece uma conexo fim-a-fim dedicada entre os dois sistemas finais. Para que o
sistema final A envie mensagens ao sistema B, a rede deve primeiramente reservar um
circuito em cada dois enlaces.
Multiplexao: Um circuito implementado em um enlace por multiplexao por
diviso de frequncia (FDM) ou por multiplexao por diviso de tempo (TDM).
Com FDM, o espectro de frequncia de um enlace compartilhado entre as conexes
estabelecidas atravs do enlace que reserva uma banda de frequncia para cada conexo
durante o perodo da ligao. Em um enlace TDM, o tempo dividido em quadros de
durao fixa, e cada quadro dividido em um nmero fixo de compartimentos (slots)
Quando estabelece uma conexo por meio de um enlace, a rede dedica conexo um
compartimento de tempo em cada quadro. Esses compartimentos so reservados para o
uso exclusivo dessa conexo, e um dos compartimentos de tempo (em cada quadro) fica
disponvel para transmitir os dados dela.

Comutao de pacotes: Em redes de computadores modernas, o originador fragmenta
mensagens longas em pores de dados menores, os pacotes. Entre origem e destino, cada
um desses pacotes percorre enlaces de comunicao e comutadores de pacotes. Pacotes
so transmitidos por casa enlace de comunicao a uma taxa igual de transmisso total
do enlace. A maioria dos comutadores de pacotes armazena e reenvia os pacotes nas
entradas dos enlaces, onde ele deve receber o pacote inteiro antes de poder comear a
transmitir o primeiro bit do pacote para o enlace de sada. Assim, eles introduzem um
atraso de armazenamento e reenvio na entrada de cada enlace (se um pacote consiste em
L bits e deve ser reenviado por um enlace de sada de R bits, ento atraso = L/R).

Comutao de pacotes versus comutao de circuitos: multiplexao estatstica:
Comutao de circuitos aloca previamente a utilizao do enlace de transmisso
independentemente de demanda, com desperdcio de tempo de enlace desnecessrio
alocado e no utilizado. Comutao de pacotes, por outro lado, aloca utilizao de enlace
por demanda. A capacidade de transmisso do enlace ser compartilhada pacote por
pacote somente entre os usurios que tenham pacotes que precisem ser transmitidos pelo
enlace. Tal comportamento de recursos por demanda (e no por alocao prvia) s vezes
denominado multiplexao estatstica de recursos.

1.3.2 Redes de comutao de pacotes: redes datagramas e redes de circuitos
digitais

H duas grandes classes de redes de comutao de pacotes: redes de datagramas
(qualquer rede que transmite pacotes segundo endereos de sistemas finais de destino,
exemplo: roteadores) e redes de circuitos virtuais(qualquer rede que transmita pacotes
segundo nmeros de circuitos virtuais).

Redes de circuitos virtuais: Um circuito virtual pode ser imaginado como uma conexo
virtual entre um sistema final de origem e um sistema final de destino. Um identificador
de circuito virtual ser atribudo a CV quando ele for estabelecido pela primeira vez entre
a fonte e o destino. Qualquer pacote que faa parte do CV ter esse identificador em seu
cabealho. Quando um pacote chega a um comutador de pacotes, este examina o ID CV,
indexa a sua tabela e transmite o pacote ao enlace de sada. Um comutador em uma rede
de CVs mantm informao de estado para suas conexes em curso, cada vez que uma
nova conexo ativada por um comutador, um novo registro de conexo deve ser
adicionado tabela de traduo dele, e cada vez que uma conexo desativada, um
registro deve ser removido da tabela.

Redes de datagramas: As redes de datagramas so anlogas, em muitos aspectos, ao
servio postal. Quando um remetente envia uma carta a um destino, ele a coloca em um
envelope e nele escreve o endereo do destinatrio. Em uma rede de datagramas, cada
pacote que transita por ela contm em seu cabealho o endereo de destino. Quando um
pacote chega a um comutador de pacotes da rede, ele examina uma parte do endereo de
destino do pacote e o remete a um comutador adjacente. Redes de datagramas no mantm
informao de estado de conexo em seus comutadores.

1.4 Redes de acesso e meios fsicos

1.4.1 Redes de acesso

Acesso Residencial: Refere-se conexo de um sistema final residencial a um roteador
de borda (primeiro roteador de um caminho entre um sistema final e qualquer outro
sistema final remoto). Uma forma comum de acesso residencial o modem discado
ligado por uma linha telefnica a um ISP residencial. O modem converte o sinal digital
de sada do PC em formato analgico para transmisso pela linha telefnica ( a mesma
usada para fazer chamadas telefnicas normais). Na outra extremidade da linha telefnica
analgica, um modem no ISP converte o sinal analgico novamente para sinal digital para
entrar no roteador ISP. A rede de acesso simplesmente um par de modens juntamente
com uma linha telefnica ponto a ponto discada. Como o acesso discado lento e impede
a utilizao normal da linha telefnica, novas tecnologias surgiram, como a banda larga
que oferece taxas mais altas de bits a usurios residenciais, alm de fornecer meios para
que o usurio acesse a Internet e falem ao telefone ao mesmo tempo. H dois tipos comuns
de acesso banda larga, o DLS e o HFC.
O acesso DSL normalmente fornecido por uma companhia telefnica, s vezes em
parceria com um ISP independente. A DSL usa multiplexao por diviso de frequncia.
Diferentemente de modens discados, as DSLs foram explicitamente projetadas para
distancias curtas entre modens residenciais e modens de ISP, o que permite taxas de
transmisso substancialmente mais altas do que as de acesso discado. Enquanto DSL e
modens discados usam linhas telefnicas comuns, redes de acesso HFC so extenses das
redes de cabos existentes usadas para transmisso de TV a cabo. Como acontece com a
DSL, o HFC requer modens especiais, denominados modens a cabo, eles dividem a rede
HFC em dois canais, um canal na direo do usurio (descida) e um na direo do
provedor (subida). Como na DSL, taxa de transmisso de descida normalmente maior
do que a de subida. A rede HFC um meio de transmisso compartilhado. DSL e HFC
possuem servios sempre disponveis.

Acesso corporativo: Refere-se conexo de sistemas finais de uma empresa ou
instituio educacional rede (roteador de borda). Nesses locais, normalmente usada
uma rede local (LAN). O roteador de borda responsvel pelo roteamento de pacotes
cujo destino externo LAN. A tecnologia Ethernet , hoje, a que predomina em redes
corporativas, como o HFC, ela usa um meio compartilhado, de modo que usurios finais
compartilham a velocidade de transmisso da LAN.

Acesso sem fio: H duas categorias amplas de acesso sem fio Internet Nas LANS sem
fio, os usurios sem fio transmitem/recebem pacotes de/para uma estao-base dentro de
um raio de algumas dezenas de metros. No acesso sem fio usa um espectro de rdio para
conectar um sistema final porttil a uma estao-base, que estar conectada um roteador
de borda.

1.4.2 Meios fsicos:

Os meios fsicos se enquadram em duas categorias, meios guiados e meios no
guiados. Nos meios guiados, as ondas so dirigidas ao longo de um meio slido, tal como
um cabo de fibra tica, um par de fios de cobre tranado ou um cabo coaxial. Nos meios
no guiados, as ondas se propagam na atmosfera e no espao, como o caso de uma LAN
sem fio ou de um canal digital de satlite. O custo de um enlace fsico em geral
relativamente insignificante em comparao a outros custos da rede.

Par de fios de cobre tranado: Meio de transmisso guiado mais barato e mais
comumente usados. Esse par constitudo de dois fios de cobre isolados, cada um com
aproximadamente um milmetro de espessura, enrolados em espiral. Os fios so tranados
para reduzir a interferncia eltrica de pares semelhantes que estejam prximos.
Tecnologia de modem discado e DSL usam pares tranados.

Cabo coaxial: Como o par tranado, o cabo coaxial constitudo de dois condutores de
cobre, porm concntricos e no paralelos, bidirecional. Cabos coaxiais so muito
comuns em sistemas de televiso a cabo.

Fibras ticas: A fibra tica um meio delgado e flexvel que conduz pulsos de luz, sendo
que cada um desses pulsos representa um bit. Suporta taxas de transmisso elevadssimas.
Fibras ticas so imunes interferncia eletromagntica, tm baixssima atenuao de
sinal de at cem km e so muito difceis de derivar. Essas caractersticas fizeram da fibra
tica o meio preferido para a transmisso guiada de grande alcance, em particular para
cabos submarinos.

Canais de rdio terrestres: Canais de rdio carregam sinais dentro do espectro
eletromagntico. Sua instalao no requer cabos fsicos, podem atravessar paredes, do
conectividade ao usurio mvel e, podem transmitir um sinal a longas distancias. Suas
caractersticas dependem do ambiente de propagao e da distncia pela qual o sinal deve
ser transmitido. Condies ambientais determinam perda de sinal no caminho e atenuao
por efeito de sombra e interferncia. Podem ser classificados em dois grupos, os de
pequeno alcance, e os de longo alcance.

Canais de rdio por satlite: Existem dois tipos de satlites usados para comunicao,
satlites geoestacionrios e satlites de baixa altitude. Os geoestacionrios ficam
permanentemente sobre o mesmo lugar na Terra, esto a grandes distancias da Terra e
causam atraso de propagao. Os de baixa altitude so posicionados muito mais prximos
da Terra e no ficam permanentemente sobre um nico lugar, giram ao redor da Terra.

1.5 ISPs e backbones da Internet

Na Internet pblica, redes de acessos situadas na borda da Internet so conectadas ao
restante segundo uma hierarquia de nveis de ISPs. Os ISPs de acesso esto no nvel mais
baixo dessa hierarquia. No topo dela est um nmero relativamente pequeno de ISPs
denominados ISPs de nvel 1, eles apresentam as seguintes caractersticas: conectam-se
diretamente a cada um dos outros ISPs de nvel 1, conectam-se a um grande nmero de
ISPs de nvel 2 e a outras redes clientes, tm cobertura internacional. Esses ISPs tambm
so conhecidos como redes de backbone da Internet.
Um ISP de nvel 2 normalmente tem alcance regional ou nacional e conecta-se apenas
a uns poucos ISPs de nvel 1. Para alcanar uma grande parcela da Internet global, um
ISP de nvel 2 tem de direcionar o trfego por um dos ISPs de nvel 1 com o qual est
conectado o qual o provedor do cliente (ISP de nvel 2). Uma rede de nvel 2 tambm
pode preferir conectar-se diretamente a outras redes de mesmo nvel. Alguns provedores
de nvel 1 tambm so provedores de nvel 2(integrados verticalmente). Quando dois ISPs
esto ligados diretamente um ao outro so denominados peers um do outro.
Dentro de uma rede de um ISP, os pontos em que ele se conecta a outros ISPs so
conhecidos como pontos de presena (POP). Um POP simplesmente um grupo de um
ou mais roteadores na rede do ISP com os quais roteadores em outros ISPs, ou em redes
pertencentes a clientes do ISP, podem se conectar. Alm de se conectarem entre si em
pontos privados de formao de par, ISPs muitas vezes se interconectam em pontos de
acesso de rede (NAPs), podendo cada um deles ser controlado e operado por alguma
empresa privada de telecomunicaes ou por um provedor de backbone de Internet, eles
trocam enormes volumes de trafego entre muitos ISPs.
A topologia da Internet complexa, consistindo em dezenas de ISPs de nveis 1 e 2 e
milhares de ISPs de nveis mais baixos. A cobertura dos ISPs bastante diversificada. Os
ISPs de nveis mais baixos conectam-se a ISPs de nveis mais altos e estes se
interconectam em pontos privados de emparelhamento(onde ISPs de nvel 1 fazem
interconexo entre si) e NAPs (onde ISPs de nvel 2 fazem interconexo entre eles
mesmos e de nvel 1).

1.6 Atraso e perda em redes de comutao de pacotes

Quando um pacote viaja da sua origem para seu destino, ele sofre, ao longo do
caminho, diversos tipos de atraso em cada n (sistema final ou roteador) existente no
caminho.

1.6.1 Tipos de atraso

Um pacote enviado do n anterior por meio do roteador A at o roteador B, o
roteador A possui um enlace de sada que o leva ao B, este enlace e precedido de uma fila
(buffer). Quando o pacote chega em A, o roteador examina o cabealho do pacote para
determinar o enlace de sada apropriado e ento o direciona ao mesmo.

Atraso de processamento: O tempo requerido para examinar o cabealho do pacote e
determinar para onde direcion-lo parte do atraso de processamento, que pode incluir
outros fatores, como o tempo necessrio para verificar erros em bits existentes.
Geralmente esses atrasos so da ordem de microssegundos.

Atraso de fila: O pacote sofre um atraso de fila enquanto espera para ser transmitido no
enlace. O tamanho desse atraso depender da quantidade de outros pacotes que chegaram
antes e que j estiverem na fila. Se a fila estiver vazia, ento o tempo de atraso de fila do
pacote ser zero, porm se o trafego estiver pesado e houver muitos pacotes tambm
esperando, o atraso ser longo. Esses atrasos so da ordem de micro a milissegundos.

Atraso de transmisso: Um pacote transmitido depois que todos os pacotes que
chegaram antes dele tenham sido enviados. O atraso de transmisso L/R (onde L o
tamanho do pacote e R a velocidade de transmisso do enlace do roteador A ao roteador
B). Esta a quantidade de tempo requerida para empurrar (transmitir) todos os bits do
pacote para o enlace. Da ordem de micro a milissegundos.

Atraso de propagao: Assim que lanado no enlace, um bit precisa se propagar at o
roteador B. O tempo necessrio para propagar o bit desde o incio do enlace at o roteador
B o atraso de propagao. O atraso de propagao D/S (onde D a distncia entre os
dois roteadores e S a velocidade de propagao do enlace).

Comparao entre atrasos de transmisso e de propagao: O atraso de transmisso
a quantidade de tempo requerida para o roteador empurrar o pacote para fora (no tem
nada a ver com a distncia entre os dois roteadores) e atraso de propagao o tempo que
leva para um bit se propagar de um roteador ao outro (no tem nada a ver com o tamanho
do pacote).

O atraso nodal (em um nico roteador) a soma de todos os atrasos.

1.6.2 Atraso de fila e perda de pacote:

Quando o atraso de fila grande ou insignificante?
Depende da intensidade de trfego a qual dada por L.A/R (onde L o tamanho
de todos os pacotes, A a taxa mdia com que os pacotes chegam fila e R a taxa com
que os bits so retirados da fila). Se a intensidade for maior que 1, ento a velocidade
mdia com que os bits chegam fila exceder a velocidade com que eles podem ser
transmitidos para fora, ento a fila ir aumentar sem limite e o atraso tender ao infinito.
Porm se a intensidade for prxima a zero, ento as chegadas de pacotes sero poucas e
bem espaadas e improvvel que um pacote que esteja chegando encontre outro na fila.

Perda de pacote: Quando um pacote chega e encontra uma fila cheia, sem espao
disponvel para armazena-lo, o roteador descartar esse pacote, isto , ele ser perdido.

1.6.3 Atraso e rotas na Internet

Utilizando o Traceroute, o caminho da origem ao destino ser mostrado, onde os
pacotes passam por uma srie de roteadores. O resultado formado por seis colunas, a
primeira indica o nmero do roteador ao longo da rota, a segunda os nomes delem a
terceira o endereo do roteador, as trs ltimas indicam os atrasos de ida e volta para as
trs tentativas

1.7 Camadas de protocolo e seus modelos de servio

1.7.1 Arquitetura de camadas

Camada de aplicao: onde residem aplicaes de rede e seus protocolos. Inclui
muitos protocolos como o HTTP, SMTP e o FTP.

Camada de transporte: Transporta mensagens da camada de aplicao entre os lados
do cliente e servidor. H dois protocolos de transporte na Internet, o TCP e o UDP, e
qualquer um deles pode levar mensagens de camada de aplicao.

Camada de rede: responsvel pela movimentao, de uma mquina para outra, de
pacotes de camada de rede conhecidos como datagramas. Tem dois componentes
principais. Um deles o protocolo que define os campos no datagrama, bem como o modo
como os sistemas finais e os roteadores agem nesses campos (protocolo IP). O outro
componente o protocolo de roteamento que determina as rotas que os datagramas
seguem entre origens e destinos.

Camada de enlace: Roteia um datagrama por meio de uma srie de comutadores de
pacotes entre a origem e o destino. Pacotes de camada de enlace sero denominados
quadros.

Camada fsica: A tarefa da camada fsica de movimentar os bits individuais que esto
dentro do quadro de um n para o seguinte.

1.7.2 Camadas, mensagens, segmentos, datagramas e quadros.

Uma mensagem de camada de aplicao na mquina emissora passada para a
camada de transporte, esta pega a mensagem e anexa informaes adicionais que sero
usadas pela camada de transporte do receptor. A mensagem de camada de aplicao e as
informaes de cabealho da camada de transporte, justas, constituem o segmento de
camada de transporte, que encapsula a mensagem de camada de aplicao. A camada de
transporte ento passa o segmente camada de rede que adiciona informaes de
cabealho de camada de rede, como endereos de sistemas finais de origem e de destino,
criando um datagrama de camada de rede, este ento passado para a camada de enlace
que adiciona suas informaes e cria um quadro de camada de enlace. O nome disso
encapsulamento.

2 Captulo

2.1 Princpios de aplicaes de rede

Exemplos de aplicaes de rede: correio eletrnico, a Web, mensagem
instantnea, login em computador remoto como Telnet e SSH, compartilhamento de
arquivos P2P, transferncia de arquivos, etc.
O cerne do desenvolvimento de aplicao de rede escrever programas que rodem em
sistemas finais diferentes e se comuniquem entre si pela rede. Por exemplo, a na Web h
dois programas distintos que se comunicam, o programa do browser (roda na mquina do
usurio) e o programa servidor Web (roda na mquina do servidor Web).

2.1.1 Arquiteturas de aplicao de rede:

A arquitetura da aplicao determina como a aplicao organizada nos vrios
sistemas finais.
Em uma arquitetura cliente-servidor h um hospedeiro sempre em funcionamento,
denominado servidor, que atende a requisies de muitos outros hospedeiros,
denominados clientes, estes podem estar em funcionamento s vezes ou sempre. Os
clientes no se comunicam diretamente uns com os outros. O servidor tem um endereo
fixo, denominado endereo de IP, o cliente sempre pode contat-lo, enviando um pacote
ao endereo do servidor. Em aplicaes cliente-servidor, muitas vezes acontece de um
nico hospedeiro servidor ser incapaz de atender a todas as requisies de seus clientes,
por essa razo, muitas vezes so utilizados conjuntos de hospedeiros (server farm) para
criar servidor virtual poderoso em arquiteturas cliente-servidor.
Em uma arquitetura P2P pura, no h um servidor sempre funcionando no centro
da aplicao, em vez disso pares arbitrrios de hospedeiros comunicam-se diretamente
entre si. Como os pares se comunicam sem passar por nenhum servidor especial, a
arquitetura denominada peer-to-peer, onde nela nenhuma das mquinas participantes
precisa estar sempre em funcionamento. Um de suas caractersticas mais fortes a
escalabilidade, onde cada par adicional no apenas aumenta a demanda, mas tambm a
capacidade de servio. Por outro lado, devido sua natureza altamente distribuda e
descentralizada, pode ser difcil de gerenciar aplicaes P2P.
Muitas aplicaes so organizadas segundo arquiteturas hibridas cliente/servidor/P2P, a
Napster era um exemplo disso, no sentido de que era P2P porque arquivos MP3 eram
trocados diretamente entre pares, sem passar por servidores dedicados, sempre em
funcionamento, mas tambm era cliente-servidor, j que um par consultava um servidor
central para determinar quais pares que estavam em funcionamento tinham um arquivo
MP3 desejado.

2.1.2 Comunicao entre processos:

No jargo de sistemas operacionais, na verdade no so programas que se comunicam,
mas processos, que podem ser imaginados com programas que esto sendo rodados
dentro de um sistema final. Processos que rodam em sistemas finais diferentes se
comunicam pela troca de mensagens por meio da rede de computadores.

Processos clientes e processos servidores: Para cada par de processos comunicantes
normalmente rotulamos um dos dois processos de cliente (que inicia a comunicao) e o
outro de servidor (processo que contatado para iniciar a sesso).
Na Web, um processo browser inicia o contato com um processo do servidor Web
(cliente) e o processo do servidor Web o servidor. No compartilhamento de arquivos
P2P, quando o Par A solicita ao Par B o envio de um arquivo especifico, o Par A o
cliente enquanto o Par B o servidor.

Sockets: Um processo envia mensagens para a rede e recebe mensagens dela atravs de
seu socket. Uma analogia para se entender: Um processo anlogo a uma casa e seu
socket porta da casa, quando um processo quer enviar uma mensagem a um outro
processo em outro hospedeiro, ele a empurra porta (socket) afora para dentro da rede, ao
chegar ao hospedeiro destinatrio, a mensagem passa atravs da porta (socket) do
processo receptor. Um socket a interface entre a camada de aplicao e a de transporte
dentro de uma mquina.

Endereamento de processos: Para que um processo em um hospedeiro envie uma
mensagem a um processo em outro, o processo de origem tem de identificar o processo
destinatrio. Para isso ele precisa de duas informaes, o nome ou o endereo da mquina
hospedeira e um identificador que especifique o processo destinatrio.
O processo destinatrio identificado por seu endereo de IP que uma
quantidade de 32 bits que identifica exclusivamente o sistema final. Alm de saber o
endereo, o processo de origem tem de identificar o processo que est rodando no outro
hospedeiro, um nmero de porta de destino atende a essa finalidade.

2.1.3 Protocolos de camada de aplicao:

Um protocolo de camada de aplicao define como processos de uma aplicao,
que funcionam em sistemas finais diferentes, passam mensagens entre si, em particular
ele define os tipos de mensagens trocadas, a sintaxe dos vrios tipos de mensagem, a
semntica dos campos, regras para determinar quando e como um processo envia e
responde mensagens. Muitos protocolos de camada de aplicao so proprietrios e no
esto disponveis ao pblico. importante distinguir aplicaes de rede de protocolos de
camada de aplicao, um protocolo de camada de aplicao apenas um pedao de
aplicao de rede.

2.1.4 De que servios uma aplicao necessita?

Transferncia confivel de dados: Algumas aplicaes exigem transferncia de dados
totalmente confivel, isto , no pode haver perda de dados (que pode ter conseqncias
devastadoras). Outras aplicaes podem tolerar uma certa perda de dados, mais
notavelmente aplicaes de multimdia.

Largura de banda: Algumas aplicaes tm de transmitir dados a uma certa velocidade
para serem efetivas. Se essa largura de banda no estiver disponvel, a aplicao precisar
codificar a uma taxa diferente ou ento desistir, j que receber metade da largura de banda
que precisa de nada adianta para tal aplicao sensvel largura de banda. Embora
aplicaes sensveis largura de banda exijam uma dada quantidade de largura de banda,
aplicaes elsticas (correio eletrnico, transferncia de arquivos, etc...) podem fazer uso
de qualquer quantidade mnima ou mxima que por acaso esteja disponvel.

Temporizao: O requisito final de servio a temporizao. Aplicaes interativas em
tempo real, exigem limitaes estritas de temporizao na entrega de dados para serem
efetivas.

2.1.5 Servios providos pelos Protocolos de Transporte da Internet:

Servios do TCP: O modelo do servio TCP inclui um servio orientado para conexo e
um servio confivel de transferncia de dados. Faz com que o cliente e o servidor
troquem informaes de controle de camada de transporte antes que as mensagens de
camada de aplicao comecem a fluir. Depois da apresentao diz-se que existe uma
conexo TCP. A conexo full-duplex (simultnea), visto que os dois processos podem
enviar mensagens um ao outro pela conexo ao mesmo tempo. Os processos podem
confiar no TCP para a entrega de todos os dados enviados sem erro e na ordem correta.
O TCP tambm inclui um controle de congestionamento (voltado ao bem estar geral da
Internet e no ao benefcio direto dos processos comunicantes) que limita a capacidade
de transmisso de um processo quando a rede est congestionada. O TCP no garante
uma taxa de transmisso mnima, o processo de origem no pode transmitir com a taxa
que quiser, pois a taxa regulada pelo controle de congestionamento. Ele tambm no
garante absolutamente nenhum limite de tempo para que os dados cheguem ao receptor,
ele garante a entrega de todos os dados, mas no d nenhuma garantia quanto velocidade
de entrega ou aos atrasos.

Servios do UDP: Protocolo de transporte simplificado, no orientado para conexo,
portanto no h apresentao antes que os dois processos comecem a se comunicar. Prov
um servio no confivel, ele no oferece nenhuma garantia de que a mensagem chegar
ao processo receptor e as realmente chegam podem ser fora de ordem. No inclui um
mecanismo de controlo de congestionamento, portanto um processo de origem pode
mandar os mandos taxa que quiser. O UDP tambm no oferece nenhuma garantia
quanto a atrasos.

2.2 A Web e o HTTP

A Web funciona por demanda.

2.2.1 Descries geral do HTTP

O HTTP (Protocolo de Transferncia de Hipertexto) um protocolo da camada
de aplicao, ele implementado em dois programas, um cliente e outro servidor. Os dois
programas, executados em sistemas finais diferentes, conversam um com o outro por
meio da troca de mensagens HTTP. O protocolo define a estrutura dessas mensagens e o
modo como o cliente e o servidor as trocam.
Uma pgina Web constituda de objetos que so simplesmente arquivos que se
podem acessar com um nico URL. A maioria das pginas Web constituda de um
arquivo-base HTML e diversos objetos referenciados. Cada URL tem dois componentes,
o nome do hospedeiro do servidor que abriga o objeto e o nome do caminho do objeto.
Um browser um agente de usurio para a Web, apresenta a pgina requisitada
ao usurio e fornece numerosas caractersticas de navegao e de configurao. Um
servidor Web abriga objetos Web, cada um endereado por um URL.
Quando um usurio requisita uma pgina Web, o browser envia ao servidor
mensagens de requisio HTTP para os objetos da pgina, o servidor recebe as
requisies e responde com mensagens de resposta HTTP que contm os objetos.
At 1997, essencialmente todos os browser e servidores Web implementavam a
verso HTTP/1.0, a partir de 1998 eles comearam a implementar a verso HTTP/1.1. O
HTTP /1.1 compatvel com o HTTP /1.0, um servidor Web que executa a verso 1.1
pode se comunicar com um servidor que executa a 1.0.
O HTTP usa o TCP como seu protocolo de transporte subjacente.
O servidor HTTP no mantm nenhuma informao sobre clientes, por isso
denominado protocolo sem estado.

2.2.2 Conexes persistentes e no persistentes:

Em seu modo default, o HTTP usa conexes persistentes, mas pode ser configurado para
utiliza as no persistentes.

Conexes no persistentes:
Possui cinco etapas de transferncia:
1. O processo cliente HTTP inicia uma conexo TCP com o servidor na porta de
nmero 80.
2. O cliente envia uma mensagem (inclui o caminho) de requisio ao servidor
atravs de seu socket associado com a conexo TCP.
3. O processo servidor recebe a mensagem de requisio atravs de seu socket
associado conexo, extrai o objeto de seu armazenamento, encapsula o objeto
em uma mensagem de resposta e a envia ao cliente.
4. O processo servidor ordena ao TCP que encerre a conexo TCP, que s encerrar
quando tiver certeza de que o cliente recebeu a mensagem de resposta.
5. O cliente recebe a mensagem de resposta e a conexo TCP encerrada.

Cada conexo TCP encerrada aps o servidor enviar o objeto, ela no persiste para
os outros objetos. Usurios podem configurar browsers modernos para controlar o grau
de paralelismo (conexes paralelas podem ser abertas).
O tempo de requisio que transcorre entre a requisio e o recebimento de um arquivo-
base HTTP por um cliente denominado tempo de viagem de ida e volta (RTT), j inclui
atrasos.
Possui algumas desvantagens: uma nova conexo deve ser estabelecida e mantida
para cada objeto solicitado. Para cada uma delas, devem ser alocados buffers TCP e
conservadas variveis TCP tanto no cliente quanto no servidor.
Conexes persistentes:
Em conexes persistentes, o servidor deixa a conexo TCP aberta aps enviar a
resposta, requisies e repostas subsequentes entre os mesmos cliente e servidor podem
ser enviadas por meio da mesma conexo. Normalmente, o servidor HTTP fecha uma
conexo quando ela no usada durante um certo tempo.

H duas verses de conexes persistentes:
Sem paralelismo: O cliente emite uma nova requisio somente quando a resposta
anterior for recebida. Sofre um RTT para requisitar e receber cada um dos objetos. Aps
o servidor enviar um objeto, a conexo fica ociosa enquanto espera a chegada de outra
requisio.
Com paralelismo: O cliente emite uma requisio logo que encontra uma referncia,
assim pode fazer requisies sequenciais para os objetos relacionados, isto , pode fazer
uma nova requisio antes de receber uma resposta a uma requisio anterior. possvel
gastar somente um RTT para todos os objetos. A conexo TCP com paralelismo fica
ociosa durante uma frao menor de tempo.

2.2.3 Formatos da mensagem HTTP

H dois tipos de mensagens HTTP: de requisio e de resposta.

Mensagem de requisio HTTP

1. GET /somedir/page.html HTTP/1.1
2. Host: www.someschool.edu
3. User-agent: Mozilla/4.0
4. Connection: close
5. Accept-language:fr

Escrita em ASCII, constituda de cinco linhas, cada uma seguida de um carriage
return e line feed. Embora esta mensagem tenha 5 linhas, uma mensagem pode ter
muito mais ou menos que isso. A primeira linha de uma mensagem denominada linha
de requisio, as subsequentes so denominadas linhas de cabealho.
1. O mtodo GET usado quando o browser requisita um objeto e este
identificado no campo do URL.
2. Especifica o hospedeiro no qual o objeto se encontra.
3. O browser est dizendo que no quer usar conexes persistentes.
4. Especifica o agente de usurio.
5. Mostra que o usurio prefere receber uma verso, na lngua especificada, do
objeto se esse existir no servidor.

Mtodo POST: Utilizado quando o usurio preenche um formulrio.
Mtodo HEAD: semelhante ao GET, quando um servidor recebe uma requisio com
ele, responde com uma mensagem HTTP, mas deixa de fora o objeto requisitado.

HTTP/1.0 permite somente trs tipos de mtodos GET, POST e HEAD. Alm desses
trs mtodos, a especificao HTTP/1.1 permite vrios mtodos adicionais, entre eles
PUT(permite que um usurio carregue um objeto para um caminho especifico) e
DELETE(permite que o usurio elimine um objeto).

Mensagem de resposta HTTP

1. HTTP/1.1 200 OK
2. Connection close
3. Date: Thu, 06 Aug 1998 12:00:15 GMT
4. Server: Apache/1.3.0 (Unix)
5. Last-Modified: Mon, 22 Jun 1998
6. Content-Length: 6821
7. Content-Type: text/html

1. Linha de estado.
2. Conexo no persistente
3. Indica a hora e a data em que a resposta foi criada e enviada pelo servidor.
4. Mostra que a mensagem foi gerada por um servidor Web Apache.
5. Indica a hora e data em que o objeto foi criado ou sofre a ltima modificao.
6. Indica o nmero de bytes do objeto que est sendo enviado.
7. Tipo do objeto.

Cdigos de estado:
200 OK: requisio bem-sucedida e informao entregue com a resposta.
301 Moved Permanently: Objeto requisitado foi removido permanentemente, novo URL.
400 Bad Request: Cdigo genrico de erro que indica que a requisio no pde ser
entendida pelo servidor.
400 Not Found: o documento requisitado no existe no servidor.
505 HTTP Version Not Supported: a verso do protocolo requisitada no suportada pelo
servidor.

2.2.4 Interao usurio-servidor: cookies

Cookies, permitem que sites monitorem seus usurios. A tecnologia dos cookies tem
quatro componentes, uma linha de cabealho de cookie na mensagem de resposta HTTP
uma linha de cabealho de cookie na mensagem de requisio HTTP; um arquivo de
cookie mantido no sistema final do usurio e gerenciado pelo browser do usurio; um
banco de dados de apoio no site Web.

2.2.5 Contedo HTTP

Alm da Web, usado para aplicaes de comrcio eletrnico para transferncia de
arquivos XML de uma mquina a outra; para transferir Voice XML, WML e
frequentemente usado como o protocolo de transferncia de arquivos no
compartilhamento de arquivos P2P.

2.2.6 Caches Web

Um cach Web (servidor proxy) uma entidade da rede que atende requisies
HTTP em nome de um servidor Web de origem. Tem seu prprio disco de
armazenamento, e mantm, dentro dele, cpias de objetos recentemente requisitados.
O browser de um usurio pode ser configurado de modo que todas as suas
requisies HTTP sejam dirigidas primeiramente ao cache Web. Quando um browser
requisita um objeto, ele estabelece uma conexo TCP com o cach Web e envia a ele uma
requisio HTTP para um objeto, o cach verifica se tem uma cpia do objeto
armazenada, se tiver, a envia para o browser do cliente, se no tiver, o cache abre uma
conexo TCP com o servidor de origem, envia uma requisio do objeto para a conexo
TCP, aps receber essa requisio, o servidor de origem envia o objeto ao cache, quando
este recebe o objeto, ele guarda uma cpia em seu armazenamento local e envia outra, ao
browser do cliente.
Um cache , ao mesmo tempo, um servidor (quando recebe requisies de um
browser) e um cliente (quando envia requisies para um servidor de origem).
O cache na Web tem sido utilizado amplamente na Internet por duas razes: um
cache Web pode reduzir substancialmente o tempo de resposta para a requisio de um
cliente; chances Web podem reduzir substancialmente o trfego no enlace de acesso de
uma instituio qualquer Internet e tambm o da Internet como um todo, melhorando o
desempenho para todas as aplicaes.

2.2.7 GET condicional

O HTTP tem um mecanismo que permite que um cache verifique se seus objetos esto
atualizados, o GET condicional.

2.3 Transferncias de arquivo: FTP

O usurio quer transferir arquivos de ou para um hospedeiro remoto, para acessar
a conta remota, ele deve fornecer uma identificao e uma senha, aps fazer isso, ele pode
transferir arquivos do sistema local de arquivos para o sistema remoto e vice-versa. O
usurio interage com o FTP por meio de um agente de usurio FTP. Primeiro, ele fornece
o nome do hospedeiro remoto (estabelece conexo TCP com o processo servidor), depois
ele fornece sua identificao e senha sendo enviadas pela conexo TCP.
O HTTP e o FTP so protocolos de transferncia de arquivos e tm muitas
caractersticas em comum: por exemplo, ambos utilizam o TCP. Mas tambm possuem
diferenas importantes, o FTP usa duas conexes TCP paralelas para transferir um
arquivo, uma de controle e uma de dados. A primeira usada para enviar informaes de
controle entre os dois hospedeiros, a segunda usada para efetivamente enviar um
arquivo. Como o FTP usa uma conexo de controle separada, dizemos que ele envia suas
informaes de controle fora da banda. O HTTP envia linhas de cabealho de requisio
e de resposta pela mesma conexo TCP que carrega o prprio arquivo transferido, por
essa razo diz-se que ele envia suas informaes de controle na banda.
O FTP envia exatamente um arquivo pela conexo de dados e em seguida a fecha,
se o usurio quiser enviar um outro arquivo, o FTP abrir outra conexo de dados. Durante
uma sesso, o servidor FTP deve manter informaes de estado sobre o usurio, ele deve
associar a conexo de controle com uma conta de usurio especfica e tambm deve
monitorar o diretrio corrente do usurio enquanto este passeia pela arvore do diretrio
remoto.

2.3.1 Comandos e respostas FTP:

Alguns comandos:

USER username: enviar identificao do usurio ao servidor.
PASS password: enviar a senha do usurio ao servidor
LIST: pedir ao servidor que envie uma lista com todos os arquivos existentes no atual
diretrio remoto.
RETR filename: obter um arquivo do diretrio atual do hospedeiro remoto.
STOR filename: armazenar um arquivo no diretrio atual.

Respostas tpicas:

331 Nome de usurio OK, senha requisitada
125 Conexo de dados j aberta; iniciando transferncia
425 No possvel abrir a conexo de dados
452 Erro ao escrever o arquivo


2.4 Correio eletrnico na Internet

Tal como o correio normal, o e-mail um meio de comunicao assncrono,
rpido, fcil de distribuir e barato. No sistema de correio da Internet h trs componentes,
os agentes de usurios, servidores de correio e o SMTP. Servidores de correio formam o
ncleo da infraestrutura do e-mail, cada destino. Cada destinatrio tem uma caixa postal
localizada em um dos servidores de correio. Uma mensagem tpica inicia sua jornada no
agente de usurio do remetente, vai at o servidor de correio dele e viaja at o servidor de
correio do destinatrio, onde depositada na caixa postal. Quando o destinatrio que
acessar as mensagens de sua caixa postal, o servidor de correio que contem sua caixa
postal o autentica. Se o servidor de correio do remetente no puder entregar a
correspondncia ao servidor dele, manter a mensagem em uma fila de mensagens e
tentar transferi-la depois.
O SMTP o principal protocolo de camada de aplicao do correio eletrnico da
Internet. Usa o servio confivel de transferncia de dados do TCP.

2.4.1 SMTP

O SMTP transfere mensagens de servidores de correio remetentes para servidores de
correio destinatrios. O SMTP uma tecnologia antiga que possui certas caractersticas
arcaicas, por exemplo, restringe o corpo de todas as mensagens de correio ao simples
formato ASCII de 7 bits.

Enviando uma mensagem:
1. O remetente chama seu agente de usurio para e-mail, fornece o endereo do
destinatrio, compe uma mensagem e instrui o agente a enviar a mensagem.
2. O agente de usurio do remetente envia a mensagem para o seu servidor de
correio, onde ela colocada em uma fila de mensagens.
3. O lado cliente do SMTP, que funciona no servidor de correio do remetente, v a
mensagem na fila e abre uma conexo TCP para um servidor SMTP, que funciona
no servidor de correio do destinatrio.
4. Aps alguns procedimentos iniciais de apresentao, o cliente SMTP envia a
mensagem do remetente para dentro da conexo TCP.
5. No servidor de correio do destinatrio, o lado servidor SMTP recebe a mensagem
e a coloca na caixa postal dele.
6. O destinatrio chama seu agente de usurio para ler a mensagem quando for mais
conveniente para ele.
O SMTP no usa servidores de correio intermedirios para enviar correspondncia,
mesmo quando os dois servidores esto localizados em lados opostos do mundo.

Como o SMTP transfere uma mensagem de um servidor de correio remetente para
um servidor de correio destinatrio:
O Cliente SMTP faz com que o TCP estabelea uma conexo na porta 25 com o
servidor SMTP, se o servidor no estiver em funcionamento, o cliente tenta novamente
depois, seno, o servidor e o cliente trocam alguns procedimentos de apresentao, assim
que acabam de se apresentar, o cliente envia a mensagem.

2.4.2 Comparaes com o HTTP:

Ambos os protocolos so usados para transferir arquivos de um hospedeiro para
outro. O HTTP transfere arquivos de um servidor Web para um cliente Web. O SMTP
transfere arquivos de um servidor de correio para outro. Possuem caractersticas em
comum (conexes persistentes) mas diferenas importantes tambm. O HTTP um
protocolo de recuperao de informaes e o SMTP um protocolo de envio de
informaes. Outra diferena que o SMTP exige que cada mensagem, inclusive o corpo,
esteja no formato ASCII de 7 bits e o HTTP no impe essa restrio. O HTTP encapsula
cada objeto em sua prpria mensagem HTTP, o correio pela Internet coloca todos os
objetos de mensagem em uma nica mensagem.

2.4.3 Formatos de mensagem de correio e MIME:

Formato: Possui um cabealho contendo informaes (From, To, Subject) e o corpo da
mensagem.

A extenso MIME para dados que no seguem o padro ASCII: Para enviar contedo
que no seja texto ASCII, o agente de usurio remetente deve incluir cabealhos
adicionais na mensagem, esses cabealhos so Content-Type (permite que o agente de
usurio destinatrio realiza uma ao adequada sobre a mensagem) e Content-Transfer-
Enconding (converter o corpo da mensagem sua forma original).
O cabealho Received: Especifica o nome do servidor SMTP que enviou a mensagem, o
do que recebeu e o horrio em que o servidor destinatrio recebeu a mensagem.

2.4.4 Protocolos de acesso ao correio:

Como o agente de usurio do destinatrio no pode usar SMTP para obter as mensagens
por que essa uma operao de recuperao e o SMTP um protocolo de envio, existem
protocolos especiais que acessam o correio, entre eles o POP3, IMAP e HTTTP.

POP3: Protocolo de acesso de correio extremamente simples, possui funcionalidade
limitada. O POP3 comea quando o agente de usurio (o cliente) abre uma conexo TCP
com o servidor de correio (o servidor) na porta 110. Com a conexo ativada, o protocolo
passa por trs fases: autorizao (o agente de usurio envia um nome de usurio e uma
senha para autenticar o usurio), transao (recupera mensagens, o agente de usurio pode
marcar mensagens que devem ser apagadas,), atualizao (apaga as mensagens que foram
marcadas). Em uma transao POP3, o agente de usurio emite comandos e o servidor,
uma resposta para cada um deles, h duas respostas possveis +OK (quando ocorreu tudo
bem) e ERR:(informa que houve algo de errado). A fase de autorizao tem dois
comandos principais user e pass. O servidor POP3 mantm como informao de estado
apenas quais mensagens devem ser apagadas. O modo ler-e-apagar no permite que o
usurio acesse uma mensagem j lida atravs de um outro computador. O modo ler-e-
guardar permite que isso acontea.

IMAP: Protocolo com mais recursos e mais complexo que o POP3. Um servidor IMAP
associa cada mensagem a uma pasta. Este protocolo prov comandos que permitem que
os usurios criem pastas e transfiram mensagens de uma para outra e comandos que os
usurios podem usar para pesquisar pastas remotas em busca de mensagens que obedeam
a critrios especficos. Mantm informao de estado de usurio. Tem comandos que
permitem que um agente de usurio obtenha componentes de mensagens.

E-mail pela Web: O agente de usurio um browser Web comum e o usurio se
comunica com sua caixa postal via HTTP. E quando se quer enviar uma mensagem de e-
mail, esta enviada do browser do remetente para seu servidor de correio e no por
SMTP.

2.5 DNS: o servio de diretrio da Internet

Hospedeiros da Internet podem ser identificados de muitas maneiras. Um identificador
seu nome de hospedeiro (hostname), fceis de lembrar, porm eles fornecem pouca, se
que alguma, informao sobre a localizao de um hospedeiro na Internet. Alm disso,
como nomes de hospedeiros podem consistir em caracteres alfanumricos de
comprimento varivel, seriam difceis de serem processados por roteadores. Hospedeiros
tambm so identificados pelos endereos de IP (constitudo de 4 bytes), que possui uma
estrutura hierrquica (ao examin-lo da esquerda para a direita, obtm-se informaes
especficas sobre onde o hospedeiro se encontra).

2.5.1 Servios fornecidos pelo DNS

As pessoas preferem o identificador nome de hospedeiro e os roteadores os endereos de
IP, para conciliar essas preferncias, necessrio um servio de diretrio que traduza
nomes de hospedeiro para endereos de IP. Esta a tarefa principal do DNS (sistema de
nomes de domnio). O DNS um banco de dados distribudo implementado em uma
hierarquia de servidores nome (servidor DNS) e um protocolo de camada de aplicao
que permite que hospedeiros consultem o banco de dados distribudos. comumente
empregado por outras entidades da camada de aplicao (como HTTP, SMTP, FTP).
Exemplo: Um browser (cliente HTTP) quer que roda na mquina de um usurio requisita
um URL. Para que a mquina do usurio possa enviar uma mensagem de requisio
HTTP ao servidor WEB, ela precisa primeiramente obter o endereo de IP e isso feito
da seguinte maneira:
1. A prpria mquina do usurio executa o lado cliente da aplicao DNS
2. O browser extra o nome de hospedeiro do URL e passa o nome para o lado cliente
da aplicao DNS.
3. O cliente DNS envia uma consulta contendo o nome do hospedeiro para um
servidor DNS.
4. O cliente DNS finalmente recebe uma resposta, que inclui o endereo IP para o
nome do hospedeiro.
5. To logo o browser receba o endereo do DNS, pode abrir uma conexo TCP com
o processo servidor http localizado naquele endereo IP.
Outros servios importantes do DNS:

Apelidos de hospedeiro: Um hospedeiro com nome complicado pode ter um ou mais
apelidos. Um nome como ralayl.west-coast.enterprise.com (nome cannico) pode ter,
por exemplo, enterprise.com como apelido. O DNS pode ser chamado por uma
aplicao para obter o nome cannico correspondente a um apelido fornecido.

Apelidos de servidor de correio: Endereos de e-mail so fceis de lembrar, por
exemplo bob@hotmail.com, porm o nome de hospedeiro do hospedeiro do servidor
do Hotmail mais complicado do que hotmail.com, ento o DNS pode ser chamado
por uma aplicao de correio para obter o nome cannico a partir do apelido
fornecido.

Distribuio de carga: O DNS tambm usado para realizar distribuio de carga
entre servidores replicados, tais como os servidores Web replicados. Sites
movimentados so replicados em vrios servidores, sendo que cada servidor roda em
um sistema final diferente e tem um endereo IP diferente. Assim, um conjunto de
endereos IP fica associado a um nico nome cannico e contido no banco de dados
do DNS.

2.5.2 Viso geral do modo de funcionamento do DNS:

Suponha que uma certa aplicao que executa na mquina de um usurio, precise
traduzir um nome de hospedeiro para um endereo de IP. A aplicao chamar o lado
cliente do DNS, especificando o nome de hospedeiro que precise ser traduzido. A
partir da, o DNS do hospedeiro do usurio assume o controle, enviando uma
mensagem (enviada dentro de datagramas UDP porta 53) de consulta para dentro da
rede. O DNS no hospedeiro do usurio recebe uma mensagem de resposta DNS
fornecendo o mapeamento desejado. O DNS uma caixa-preta que prov um servio
de traduo simples e direto. Um arranjo simples para DNS seria ter um servidor de
nomes contendo todos os mapeamentos, porm existem problemas em fazer isso.
Um nico ponto de falha: Se o servidor de nomes quebrar, a Interne inteira quebrar.
Volume de trfego: Um nico servidor teria de manipular todas as consultas DNS.
Banco de dados centralizado distante: Um nico servidor de nomes nunca poderia
estar prximo de todos os clientes que fazem consultas.
Manuteno: O nico servidor de nomes teria de manter registros de todos os
hospedeiros da Internet.

Um banco de dados distribudo, hierrquico: O DNS usa um grande nmero de
servidores, organizados de maneira hierrquica e distribudos por todo mundo. H trs
classes de servidores de nomes: de nomes raiz, de domnio de alto nvel (TLD) e
servidores DNS com autoridade.
Servidores de nomes raiz: Existem 13 servidores de nomes raiz.
Servidores de nomes de domnio de alto nvel: So responsveis por domnios de alto
nvel como .com, .org, .net, .edu e tambm por todos os domnios de alto nvel de
pases como .fr, .uk, .br.
Servidores de nomes com autoridade: Toda organizao que tiver hospedeiros que
possam ser acessados publicamente na Internet deve fornecer registros DNS tambm
acessveis publicamente que mapeiam os nomes desses hospedeiros para endereos
de IP.

Exemplo: O hospedeiro cis.poly.edu deseja o endereo IP de gaia.cs.umass.edu

Consulta Iterativa: O hospedeiro envia uma mensagem de consulta DNS a seu
servidor de nomes local(dns.poly.edu). Essa mensagem contm o nome de hospedeiro
a ser traduzido. O servidor de nomes local transmite a mensagem de consulta a um
servidor de nomes raiz, que percebe o sufixo edu e retorna ao servidor de nomes local
uma lista de endereos IP contendo servidores TLD responsveis por edu. Ento, o
servidor de nomes local retransmite a mensagem de consulta a um desses servidores
TLD, que recebe o sufixo umass.edu e responde com o endereo IP do servidor de
nomes com autoridade para a University of Massachusetts (dns.umass.edu).
Finalmente, o servidor de nomes local reenvia a mensagem de consulta diretamente a
dns.umass.edu que responde com o endereo IP de gaia.cs.umass.edu

Consulta Recursiva: O hospedeiro requisita o endereo IP, este envia uma
mensagem de consulta para o servidor de nomes loca, que envia ao servidor de nomes
raiz, que envia ao de nomes TLD, que envia ao de nomes com autoridade, que retorna
o endereo IP para o TLD, que retorna ao de nomes raiz, que retorna ao de nomes
local.

Cache DNS: O DNS explora extensivamente o cache para melhorar o desempenho
quanto ao atraso e reduzir o nmero de mensagem DNS que ricocheteia pela Internet.
A ideia por trs do cache muito simples. Em uma cadeia de consultas, quando um
servidor de nomes recebe uma resposta DNS, ele pode fazer cache das informaes
da resposta em sua memria local.

2.5.3 Registros e mensagens DNS:

Os servidores de nomes que juntos implementam o banco de dados distribudo do
DNS armazenam registros de recursos, que fornecem mapeamentos de nomes de
hospedeiros para endereos IP. Cada mensagem DNS carrega um ou mais registros
de recursos.
Um registro de recurso uma tupla de quatro elementos:
(Name, Value, Type, TLL)
TLL o tempo de vida til do registro. Os significados de Name e Value dependem
de Type.

Type = A -> Name o noem de hospedeiro e Value o endereo IP para o nome de
hospedeiro.
Type = NS -> Name um domnio e Value o nome de um servidor de nomes com
autoridade que sabe como obter endereos IP para hospedeiros do domnio.
Type = CNAME -> Value um nome cannico de hospedeiro para o apelido de
hospedeiro contido em Name.
Type = MX -> Value o nome cannico de um servidor de correio cujo apelido de
hospedeiro est contido em Name.

Mensagens DNS: As duas nicas espcies de mensagens DNS so mensagens de
consulta e de resposta DNS.
A semntica de vrios campos de uma mensagem a seguinte:
1. Os primeiros 12 bytes formam a seo de cabealho que contm vrios campos: O
primeiro campo o identificador da consulta. Campos de flag (flag para dizer se a
mensagem de consulta ou resposta, flag de autoridade que marcado em uma
mensagem de resposta quando o servidor de nomes um servidor com autoridade
para um nome consultado, flag de recurso, quando um cliente quer que um servidor
de nomes proceda recursivamente sempre que no tem registro). H tambm quatro
campos de nmero de.
2. A seo pergunta contm informaes sobre a consulta que est sendo feita. Inclui
um campo de nome que contm o nome que est sendo consultado e um campo de
tipo que indica o tipo de pergunta que est sendo feito sobre o nome.
3. Em uma resposta de um servidor de nomes, a seo resposta contm os registros
de recursos par ao nome que foi consultado originalmente.
4. A seo de autoridade contm registros de outros servidores com autoridade.
5. A seo adicional contm outros registros teis.

Para inserir registros no banco de dados do DNS: Quando deseja-se registrar o
nome de domnio de uma empresa, isto deve ser feito em uma entidade registradora,
que uma entidade comercial que verifica se o nome de domnio exclusivo, registra-
o no banco de dados DNS e cobra uma pequena taxa por seus servios. Ao registrar o
nome de usurio, tambm deve-se informar os nomes e endereos IP dos seus
servidores DNS com autoridade, primrios e secundrios. Tambm deve-se inserir em
seus servidores de nomes com autoridade do registro de recurso Type A e o registro
de recurso Type MX para ser servidor de correio.

2.6 Compartilhamentos de arquivos P2P

Exclusivamente em termos de trfego, o compartilhamento de arquivos P2P pode
ser considerado a aplicao mais importante da Internet. Sistemas modernos de
compartilhamento de arquivos P2P no somente compartilham MP3, mas tambm
vdeos, software, documentos e imagens.

Um usurio est ligado Internet e lana sua aplicao de compartilhamento de
arquivos P2P. Ele consulta um MP3 que quer, logo aps dar o comando de busca, a
aplicao exibir uma lista de pares que tm uma cpia da cano para compartilhar
e que esto conectados na Internet no momento. Uma conexo direta estabelecida
entre os dois computadores e o arquivo MP3 enviado do par que o tem para o par
do usurio que o pediu. Se o par que o tem inadvertidamente desconectar seu PC da
Internet durante a transferncia, ento o software de compartilhamento de arquivos
P2P do usurio pode tentar obter o restante do arquivo de um outro par que o tenha.

O compartilhamento de arquivos P2P um paradigma de distribuio atraente
porque todo o contedo transferido diretamente entre pares comuns, sem passar por
servidores de terceiros. Ele altamente escalvel. Embora no exista envolvimento
de nenhum servidor centralizado, o compartilhamento de arquivos P2P ainda se baseia
no paradigma cliente-servidor. O par requisitante o cliente e o par escolhido o
servidor. O arquivo enviado do par servidor ao par cliente com um protocolo de
transferncia de arquivos. Todos os pares podem executar tanto o lado cliente quanto
o servidor.
Suponha que o protocolo de transferncia de arquivos seja HTTP. Quando o
requisitante seleciona o escolhido para baixar a cano, seu computador envia a
ele uma requisio HTTP para essa cano e este envia uma resposta HTTP contendo
a cano. Enquanto o requisitante estiver executando a aplicao de
compartilhamento de arquivos P2P, seu computador um cliente Web e tambm um
servidor Web transitrio. Seu par um servidor Web porque est servindo contedo
dentro de respostas HTTP; transitrio porque est conectado apenas
intermitentemente com a Internet e pode obter um novo endereo IP toda vez que se
conectar novamente com a rede.

Diretrio centralizado: Uma das abordagens mais diretas da localizao de contedo
prover um diretrio centralizado (como fazia o Napster). O servio de
compartilhamento de arquivos P2P usa um servidor de grande porte para prover o
servio de diretrio. Quando um usurio lana a aplicao de compartilhamento de
arquivos P2P, ela contata o servidor de diretrio. Ela informa ao servidor de diretrio
seu endereo IP e os nomes dos objetos que esto disponveis para compartilhamento
em seu disco local. O servidor de diretrio coleta essa informao de cada par que
fica ativo, criando, um banco de dados centralizado. Para manter seu banco de dados
atualizado, o servidor de diretrio deve poder determinar quando um par se
desconecta. Um modo de monitorar quais pares continuam conectados enviar
mensagens periodicamente para verificar se eles respondem. De o servidor de
diretrio determinar que um par no est mais conectado, ele remove do banco de
dados o endereo de IP dele. Utilizar um diretrio centralizado tem vrias
desvantagens:
1. Um nico ponto de falha: Se o servidor de diretrio cair, toda a aplicao P2P
cair.
2. Gargalo de desempenho: Um servidor centralizado tem de manter um banco de
dados imenso e deve responder a milhares de consultas por segundo.
3. Violao de direitos autorais: A indstria fonogrfica est preocupada que
sistemas de compartilhamento de arquivos P2P permitam que usurios obtenham
facilmente acesso gratuito a contedo protegido por direitos autorais.

Inundao de consultas: Gnutella, uma aplicao de compartilhamento de arquivos de
domnio pblico. Diferentemente do Napster, a Gnutella no utiliza um servidor
centralizado para monitorar contedo nos pares. O cliente Gnutella implementa o
protocolo Gnutella e executa em um par comum. Em Gnutella, os pares formam uma rede
abstrata, lgica, denominada rede de sobreposio. Se o par X mantiver uma conexo
TCP com um outro par Y, ento dizemos que h uma aresta (abstrata) entre X e Y. O
grafo que contm todos os pares ativos e arestas de conexo define a rede de sobreposio.
Em Gnutella, pares enviam mensagens a pares prximos na rede de sobreposio
montada sobre conexes TCP existentes. Quando o requisitante quer localizar uma
cano, seu cliente Gnutella envia a todos os seus vizinhos uma mensagem Gnutella
Query que inclui as palavras chave, esses vizinhos por sua vez, retransmitem a mensagem
a todos os seus vizinhos e assim por diante. Esse processo denominado inundao de
consultas.
Embora o projeto descentralizado da Gnutella seja simples e bem estruturado,
muitas vezes criticado por no ser escalvel. Em particular, com inundao de
mensagens, sempre que um par inicia uma consulta, ela se propaga para todos os outros
pares presentes na rede de sobreposio. Os projetistas da Gnutella enfrentaram esse
problema utilizando inundao de consultas de escopo limitado.
Descrevendo o que acontece quando um par X quer juntar-se rede Gnutella.

1. Em primeiro lugar, o par X deve achar algum outro par j que esteja na rede de
sobreposio. Uma abordagem para resolver esse auto carregamento o cliente
Gnutella de X manter uma lista de pares que esto frequentemente ativos na rede
Gnutella.

2. To logo obtenha acesso a essa lista, X faz tentativas sequenciais para estabelecer
uma conexo com pares presentes na lista at ser criada uma conexo com algum
par Y.

3. Aps estabelecida a conexo TCP entre X e Y, o par X envia a Y uma mensagem
Gnutell Ping. Ao receber a mensagem Ping, Y transmite a todos os seus vizinhos
na rede de sobreposio.

4. Sempre que um par Z recebe uma mensagem Ping, responde retornando uma
mensagem Gnutella Pong para X atravs da rede de sobreposio.

5. Quando recebe as mensagens Pong, X sabe os endereos IP de muitos pares
presentes na rede Gnutella, alm de Y. Ento pode estabelecer conexes TCP com
alguns desses outros pares.

Explorando a heterogeneidade: O Napster utiliza um servidor de diretrio centralizado
e sempre localiza contedo quando este estiver presente em algum par participante.
Gnutella utiliza uma arquitetura totalmente distribuda, mas localiza contedo somente
em pares prximos na rede de sobreposio. O Kazaa toma emprestadas ideias do Napster
e Gnutella, resultando em um poderoso sistema de compartilhamento de arquivos P2P. A
tecnologia Kazaa proprietria e, alm disso, criptografa todo o controle de trafego. O
Kazaa explora a heterogeneidade de uma maneira intuitiva e natural. Ele se parece com o
Gnutella, no sentido de que no usa um servidor dedicado para monitorar e localizar
contedo. Entretanto, diferentemente da Gnutella, nem todos os pares so iguais no
Kazaa. Os pares mais poderosos (grande largura de banda e alta conectividade com a
Internet) so lderes de grupo e tm maiores responsabilidades.
Quando um par lana a aplicao Kazaa, estabelece uma conexo TCP com um
dos lderes de grupo. Ento, o par informa a seu lder de grupo todos os arquivos que est
disponibilizando para compartilhamento.
No Kazaa cada arquivo identificado por um hash do arquivo. Cada objeto tem um
descritor, que inclui o nome do arquivo e um texto descritivo no estruturado do objeto.
A arquitetura do Kazaa explora heterogeneidade dos pares, designando como
lderes de grupo uma pequena frao dos pares mais poderosos que formam a camada
superior de uma rede de sobreposio plana e inundao de escopo limitado, o projeto
hierrquico permite a verificao de compatibilidade em um nmero significativamente
maior de pares sem criar um trafego de consultas excessivo.
Tambm emprega vrias tcnicas que melhoram seu desempenho: enfileiramento
de requisies, o usurio pode configurar seu par de modo a limitar o nmero d
transferncias simultneas em qualquer valor. Prioridades de incentivo o escolhido dar
prioridade de enfileiramento a usurios que, no passado, tenham carregado mais arquivos
do que baixado. Transferncia paralela, um requisitante pode baixar o arquivo
paralelamente, uma metade de usurio e outra de outro.