Académique Documents
Professionnel Documents
Culture Documents
UniversidadeFederaldeItajub
InstitutodeEngenhariadeSistemaseTecnologiasda
Informao
GrupodePesquisasemEngenhariadeSistemaseComputao
Prof.IsaasLima
Prefcio
Esta apostila dedica-se aos cursos de Redes de Computadores I e II ministrados na
Universidade Federal de Itajub, cujos captulos e assuntos tratados nas sees seguem
exatamente o livro texto referenciado no plano de ensino, e que serviu de base para uma
traduo livre.
Portanto, dentro das expectativas de um curso introdutrio ou de nvel mais avanado,
algumas incorrees so meramente erros de compreenso ou entendimento do autor. Assim,
numa tentativa de apresentar um contedo abrangente e necessariamente direto, procurou-se
descrever da melhor forma possvel, os termos que por ora so correntes em Rede de
Computadores em geral.
De outra forma, apesar de um nvel relativamente satisfatrio, uma traduo livre nem
sempre se prende rigorosamente ao contedo explcito da obra; cabendo a ressalva de alguns
questionamentos em relao estrutura das sees, os termos tcnicos e as descries, bem
como ao prprio texto traduzido dos pargrafos e sees.
Fica ainda a necessidade de recorrncia ao livro original em ingls, cujo
acompanhamento recomendado desde o incio do curso, e consta das referncias bibliogrficas
da ementa de Redes de Computadores I e II.
2/223
Sumrio
3/223
11/223
O cabo coaxial apresenta uma maior proteo que o par tranado, em vez de tranar os
fios, utilizado um anel metlico em volta de um ncleo, com um nico fio.
Este anel de metal forma um cilindro flexvel em volta do fio isolado, o que gera uma
barreira radiao eletromagntica. Esta barreira protege o fio de duas maneiras, evitando que o
mesmo gere radiao eletromagntica, e evitando que a radiao eletromagntica gerada por
outros fios interfira no mesmo. Sua eficcia se deve ao fato de o anel blindar o fio central.
Assim o cabo coaxial pode ser posto em paralelo com outros cabos. A figura a seguir ilustra o
escudo e o cabo coaxial.
12/223
A idia de um escudo para proteger a fiao tambm aplicada ao par tranado. Um par
tranado protegido consiste em um par de fios blindados por uma rede metlica. Cada fio
ainda revestido por um material isolante, evitando o contato direto. Este tipo adicional de
proteo utilizado em cabos que estejam perto de equipamentos que tenham campos
magntico ou eltrico intensos.
1.4 Rdio-Freqncia
Alm de ser usada na transmisso de rdio, televiso e comunicao privada entre walktalks, a radiao eletromagntica pode ser usada para transmitir dados. As redes que usam ondas
de rdio so feitas para trabalharem em uma determinada rdio-freqncia, e as transmisses
so referidas como transmisses RF. Diferentemente de redes que usam a fibra ptica, redes
usando transmisses em RF no necessitam de um meio fsico que conecte os computadores.
Assim cada computador conectado a uma antena, que pode mutuamente transmitir e receber
RF.
Fisicamente, as antenas usadas para transmisso de RF podem ser grandes ou pequenas,
dependendo do alcance necessrio. Por exemplo, uma antena projetada para transmitir sinais a
muitos quilmetros deve ter uma altura de um plo metlico com dois metros de altura, p.e.,
instalada no topo de um edifcio. J uma antena para permitir comunicao entre dois prdios
to pequena que caberia em um computador porttil.
13/223
1.5 Satlites
Transmisses em RF nem sempre alcanam todo o territrio na superfcie da Terra,
assim podem ser combinadas com satlites, que provero uma comunicao a grandes
distncias. Como mostrado na figura abaixo, a transmisso de dados pode ocorrer entre
continentes.
1.7 Microondas
A radiao eletromagntica que apresenta uma freqncia acima das freqncias de
rdio e televiso chamada de microondas; e tambm utilizada para transmitir informaes.
Ondas de microondas alm de terem a freqncia maior do que as ondas de rdio,
tambm tm um comportamento diferente. Diferentemente das ondas de rdio, que so
transmitidas em todas as direes, as microondas so transmitidas em uma nica direo,
dificultando a transmisso do sinal. Alm disso, as microondas no passam atravs de metais, e
tem precisam ser emitidas e recebidas em meios desprovidos de obstculos, sem a presena de
vegetao alta nem edifcios. Como resultado, as torres de microondas so mais altas que
qualquer obstculo e cada transmissor de microondas diretamente direcionado um para o
outro.
1.8 Infravermelho
Os controles remotos utilizados em aparelhos de som e televiso so exemplos do uso
da radiao infravermelha na comunicao entre dispositivos eletrnicos. Porm ela limitada a
pequenas distncias, e usualmente requer que seja direcionada para o receptor. O dispositivo de
infravermelho no caro quando comparado a outros dispositivos, alm do que no precisa de
antena transmissora de sinais.
Redes de computador podem usar a radiao infravermelha para transmisso de dados.
possvel, por exemplo, um equipamento em uma ampla sala prover conexes em
infravermelho e permitir a conexo a um mesmo provedor e o compartilhamento de dados. O
infravermelho conveniente para pequenos aparelhos, porque oferece as vantagens das redes
sem fio, sem necessidade de antenas.
1.9 Laser
J foi mencionado que a luz pode ser um meio de comunicao via fibras pticas. Como a
comunicao por microondas, o laser consiste em duas localidades com um transmissor e um
receptor. Este equipamento fixo normalmente em uma torre e o transmissor de um mirado no
receptor do outro. O transmissor usa um laser para gerar o feixe de luz, e a luz laser se manter
em foco durante a longa distncia.
Como a transmisso por microondas, o feixe de luz deve viajar em linha reta e no deve
ser bloqueado. Infelizmente o raio laser no consegue ultrapassar vegetao ou condies
climticas adversas, como fumaa ou neve, tendo, portanto, seu uso limitado.
15/223
2.1 Introduo
Por serem equipamentos digitais, os computadores utilizam os dgitos binrios para
representar os dados. Assim, transmitir dados atravs de uma rede, de um computador para
outro, consiste em enviar bits atravs de um meio de comunicao.
Fisicamente, o meio para se enviar bits o meio eltrico, as ondas de rdio ou os feixes
de luz. Neste captulo explicado uma dessas formas, a corrente eltrica - que pode ser usada
para transmitir dados curta distncia.
Alm de discutir o bsico da comunicao, so introduzidas duas propriedades
importantes em uma rede de comunicao de dados: a largura de banda e delay (atraso). Ambos
podem ser quantizadas.
16/223
17/223
de dados. Por exemplo, enquanto o receptor est apto a receber dados, este receptor fornece uma
tenso em um fio de controle, que o emissor interpreta como estando livre para enviar. Para
reduzir custos, os hardwares podem ser configurados para ignorarem os fios de controles e
assumirem que a outra parte esteja funcionando corretamente. A figura abaixo mostra um
circuito de trs fios.
Como a figura mostra, o fio terra conecta diretamente o terra de um dispositivo com o
terra do outro dispositivo. Os outros dois fios esto cruzados porque o transmissor de um est
ligado no receptor do outro. Para tornar os cabos mais simples, os projetistas decidiram que os
computadores e modems devem usar pinos opostos do conector DB-25. O computador transmite
no pino 2 e recebe no pino 3, enquanto o modem transmite no pino 3 e recebe no pino 2.
19/223
em um fio pode ser atribudo termodinmica. Assim, o teorema de Shannon informa aos
engenheiros que nenhuma soluo inteligente para codificarem dados pode sobrepor as leis da
fsica, que colocam um limite fundamental no nmero de bits por segundo que podem ser
transmitidos em um sistema real de comunicao.
Na prtica, o teorema de Shannon ajuda a explicar a que velocidade os dados podem ser
enviados, p.e., atravs de uma ligao telefnica. A voz no telefone tem uma taxa de rudos de
interferncia de sinal de aproximadamente 30 dB e uma largura de banda de aproximadamente
3000 Hz. E, de acordo com a o Teorema de Shannon, o nmero mximo de bits que podem ser
transmitidos de aproximadamente 30.000 bits por segundo. Os engenheiros e projetistas
reconhecem este limite fundamental, e transmisses mais rpidas sero possveis se a taxa de
rudos for diminuda.
21/223
3.1 Introduo
Pequenas redes so freqentemente projetadas para permitir que mltiplos
computadores compartilhem recursos como: impressoras, arquivos, etc.; e mesmo conexes
com a Internet.
A tecnologia de hardware usada em redes locais no consiste em modems e cabos
isolados, ao invs disso a tecnologia projetada para o compartilhamento. Ela permite que
mltiplos computadores e equipamentos, como impressoras, sejam ligadas diretamente em rede.
Este captulo descreve os conceitos que do suporte as tecnologias de uma rede local, e explica
porque as redes locais se tornaram to populares.
Por exemplo, suponha uma empresa com cinco computadores, com dois em um andar
do prdio e outros trs computadores em outro andar do mesmo prdio. A figura abaixo ilustra
cada computador e suas respectivas conexes; seis conexes passaram entre duas localizaes em muitos casos essas conexes seguem o mesmo caminho, aumentando os custos.
quantidade de computadores no aleatria, mas, ao invs disso, segue dois modelos. Primeiro,
um par de computadores que se comunica uma vez, ir se comunicar novamente em um tempo
prximo, e mais freqentemente. Essa corrente chamada de localizao de referncia
temporal, e implica um relacionamento no tempo. Segundo, um computador tende a
comunicar-se com mais freqncia com computadores que esto mais prximos a ele. O
segundo modelo chamado de localizao de referncia fsica e enfatiza o relacionamento
geogrfico.
Como uma topologia em estrela lembra uma roda, o centro da estrela comumente
chamado de hub. Um hub tpico consiste em um equipamento eletrnico que aceita dados de
computadores e entrega ao destino certo.
A figura acima ilustra uma rede em estrela idealizada. Na prtica, redes em estrela
raramente tm um formato simtrico no qual o hub localizado numa distncia igual para todos
os computadores. Ao invs disso, freqentemente, o hub est localizado em um local diferente
do centro da estrela.
3.5.2 Topologia em Anel
Uma rede usa uma topologia em anel para agrupar computadores conectados em uma
seqncia fechada - um cabo conecta o primeiro computador ao segundo computador, um outro
cabo conecta o segundo ao terceiro e assim por diante. O nome anel se deve conexo entre os
computadores em circunferncia, como a figura a seguir ilustra.
24/223
25/223
Assim, para verificar quando o cabo est disponvel, o computador procura por uma
portadora no cabo. Se a portadora no est presente, o computador transmite o frame. Se a
portadora est presente, o computador dever esperar pelo fim da transmisso antes de us-lo.
Tecnicamente, o processo de checar por uma portadora chamado de sensor de portadora
(CSMA).
Sua vantagem principal o baixo custo, pois o hardware necessrio para fazer a
conexo j est incluso no computador. Por exemplo, um nico cabo necessrio para conectar
dois computadores Macintosh.
Para verificar que no houve erros na transmisso, o emissor compara os dados que ele
recebeu com os que foram enviados. Se um frame destinado a um determinado computador,
este computador faz uma cpia dos bits que esto passando pelo anel.
Para coordenao no envio dos dados, usada uma mensagem especial chamada de
Token. O Token um bit padro que difere do formato normal de dados. Para assegurar que
dados normais no sejam interpretados como Token, algumas tecnologias usam bits de
preenchimento. E o mais importante, h apenas um Token circulando em toda rede.
Em essncia, o Token d ao computador a permisso para enviar um frame. Assim,
antes de enviar um frame, o computador deve esperar o Token chegar. Quando o Token chega, o
computador remove o Token temporariamente do anel e usa o anel para transmitir um frame;
logo aps, transmite um Token. Assim, o Token viaja de um computador para o computador
adjacente que pode usar a rede para enviar um frame.
Note que o esquema garante um acesso justo: pois, medida que o Token circula no
anel, cada computador tem a oportunidade de usar a rede. Se um computador no tem nenhum
frame para enviar, ele repassa o Token sem nenhum delay. Alm disso, o tempo necessrio para
que um Token passe por todo o anel, com todos os computadores sem enviar nenhum dado
muito pequeno, na casa de milissegundos.
Ring e dez vezes maior que a Ethernet original. Para prover taxas to altas, o FDDI utiliza fibra
ptica em vez de fios de cobre.
O FDDI tambm utiliza redundncia para evitar que a rede falhe. Uma rede em FDDI
contm dois anis completos um para enviar dado quando tudo est funcionando
corretamente, e outro que usado quando o primeiro anel falha.
Os anis em uma rede FDDI so chamados de counter rotation porque os dados
percorrem o segundo anel num sentido diferente da direo de fluxo de dados do anel principal.
Para entender a motivao da rotao contrria, considere que uma falha ocorra. Como um par
de fibras pticas que conectam dois locais geralmente percorre o mesmo caminho, uma quebra
acidental iria danificar o par. Se os dados sempre passam na mesma direo em ambos os cabos,
ao desconectar-se uma estao, desconectar-se-iam ambos os cabos e os dados estariam
perdidos. Porm, se os dados estiverem circulando em sentidos contrrios, as estaes
remanescentes podem reconfigurar a rede, a figura abaixo ilustra o conceito.
A figura acima ilustra o caminho dos dados e a ocorrncia de uma falha. O hardware
nas estaes adjacentes detecta a desconexo e reconfigura a rede de modo que os dados que
chegam voltam pelo caminho inverso. Esse processo de reconfigurao chamado de self
healing, ou cura automtica, e o FDDI conhecido como self healing network.
30/223
Como a figura mostra, a rede ATM tem topologia em estrela. Diferentemente das
topologias em barramento ou em anel, uma rede em estrela no propaga dados para qualquer
computador, a no ser o par que est se comunicando o hub recebe os dados diretamente do
emissor e os transmitem diretamente para o receptor. Assim, a rede ATM tem menor
dependncia das conexes individuais de cada computador do que uma rede em anel. Portanto,
se a conexo entre um computador e o switch falha, apenas esse computador afetado.
Como a rede ATM projetada para ter uma alta largura de banda, uma conexo tpica
entre um computador e um switch ATM opera na velocidade de 155 Mbps ou mais rpido que
isso. Normalmente usada fibra ptica ao invs de fio de cobre. De fato, um nico cabo de fibra
ptica no consegue levar dados nas duas direes simultaneamente, assim cada conexo utiliza
um par de fibras pticas, como a figura abaixo ilustra.
31/223
4.1 Introduo
Este captulo apresenta com mais detalhes a transmisso em uma LAN, e explica como
um par de computadores se comunica atravs da LAN sem forar os outros computadores a
receberem e processarem uma cpia de cada mensagem. Assim, este captulo descreve o
endereamento de hardware, e mostra como um computador emissor usa o endereamento de
hardware para identificar qual computador dever receber a cpia de um determinado frame.
Esse captulo tambm explica como a interface do hardware de rede usa o endereamento para
filtrar os frames recebidos.
Tambm examinado um mecanismo que permite ao emissor identificar o tipo de
dados em cada frame. Isso explica o propsito conceitual do tipo de identificao de frame e o
usa como exemplo para ilustrar o conceito de frames da Ethernet.
33/223
4.5 Broadcasting
O termo broadcasting (transmisso) que foi originalmente aplicado em transmisses de
rdio e televiso, refere-se transmisso para uma ampla audincia. Quando um aplicativo
realiza uma transmisso em broadcast, todos os outros computadores da rede recebem uma
cpia dos dados enviados.
O broadcast tem muitos usos, por exemplo, suponha que um computador precise
encontrar uma impressora na rede. O computador pode formar uma mensagem que especifique
uma impressora e transmitir a mensagem para todas as estaes na rede. Mesmo que todas
recebam a mensagem, apenas as que contenham a impressora iro responder.
Como a maioria das tecnologias usa um meio compartilhado, elas podem fazer do
broadcasting uma tcnica extremamente eficiente. De fato, no necessrio nenhum hardware
adicional para ocorrncia de um broadcast na LAN, pois todas as estaes esto conectadas ao
meio comum. Tudo que preciso em um broadcast um mecanismo para que todas as estaes
extraiam e processem uma cpia dos frames.
Para fazer um broadcast eficiente, a maioria das LAN estende o esquema de
endereamento. O projetista da LAN define um endereo especial e reservado, conhecido como
broadcast address. A interface em um computador construda para reconhecer o broadcast
address, como reconhece os demais endereos das estaes.
4.6 Multicasting
Diferentemente da aparente facilidade do uso do broadcast, poucos aplicativos em redes
foram projetados como aquele descrito na seo anterior. A razo simples o broadcasting
extremamente ineficiente. Mesmo que cada estao na rede possa ser configurada para descartar
frames desnecessrios, processar e descartar um frame requer recursos computacionais. Quando
um frame chega, o hardware da interface de rede coloca o frame na memria, interrompe a CPU
e permite que o software do sistema determine se o frame deve ser ignorado. Assim, descartar
frames envolve uma deciso da CPU. Temos ento um grande desperdcio de tempo de
processamento em toda a rede.
Como os computadores em uma LAN podem tirar vantagem do broadcasting, sem
desperdiar recursos da CPU? A resposta est na forma restrita de broadcasting, o multicasting.
Ele se parece muito com o broadcasting, porm, quando os frames chegam no so repassados
diretamente para a CPU. A prpria interface de rede toma a deciso de aceitar ou no o frame.
Para que isso ocorra, o hardware deve ser programado com determinadas especificaes, e s
sero aceitos frames que atendam essas especificaes.
34/223
Tipo de frame implcito _ neste mtodo, o hardware de rede no inclui o tipo de frame
em cada frame. Em vez disso, o frame leva apenas dados. Assim, o emissor e o receptor
devem concordar sobre o tipo de frame ou concordar em usar uma poro dos dados
para ser usado como campo de tipo.
35/223
Cada campo no cabealho do frame tem tamanho e localizao fixos. Como resultado,
todos os frames usados com a mesma tecnologia tm o mesmo tamanho de cabealho. Em
contraste, a rea dos dados no tem tamanho fixo a quantidade de dados que ser enviada
que determina o tamanho da rea final dos dados.
36/223
Usar parte da rea de dados para informar o tipo do frame levanta duas questes. Qual
ser o tamanho exato do tipo da informao? E quem ir especificar os valores que so
permitidos e os seus significados? Essas decises so tomadas pelos projetistas do hardware de
rede. Mesmo assim, se o hardware de rede no incluir o tipo dos frames, o software do receptor
livre para interpretar o tipo da informao. Infelizmente, permitir que cada programador
escolha valores para o campo do tipo no funciona bem, pois dois programadores podem
escolher acidentalmente os mesmos valores para diferentes tipos. O problema se torna complexo
se o aplicativo realizar broadcasts.
Para assegurar que todos os softwares usam os mesmos valores para especificar os tipos,
as organizaes padres definiram os significados para cada valor. Infelizmente, mltiplas
organizaes determinaram valores diferentes para o mesmo tipo. Como resultado, duas
organizaes pode acidentalmente escolher o mesmo valor para diferentes tipos; o IEEE definiu
um padro que inclui um campo para identificar a organizao padro, bem como o tipo do
frame. Essa especificao conhecida com Logical Link Control (LLC) SubNetwork Attachment
Point (SNAP). E esse padro largamente aceito.
37/223
Como conseqncia, qualquer usurio com um computador conectado rede pode ler
todos os pacotes que passam atravs dela. Assim, pode-se notar que mensagens em uma LAN
no so totalmente privadas.
Para entender como isso possvel, considere como um analisador de rede trabalha. O
analisador pode examinar os campos no cabealho do frame para determinar o emissor, o
destinatrio, o tipo, ou olhar a rea dos dados.
Um analisador de rede configurvel: a exata configurao que um usurio seleciona
determina que campo o analisador examina e qual informao ele mantm. Assim, um
analisador pode tanto gerenciar o trfego, ou checar todos os frames que um determinado
computador envia.
39/223
5.1 Introduo
Este captulo continua a discusso das redes locais examinando o esquema de
cabeamento com mais detalhes. O captulo comea considerando a interface de rede que conecta
um computador a uma rede e trata dos detalhes da transmisso e recepo de pacotes.
Depois de discutir as interfaces de rede, o captulo descreve as LANs convencionais e
identifica os vrios componentes usados em quase todos os esquemas de rede cabeadas,
incluindo a descrio do hub.
Por fim, o captulo discute a diferena entre topologia lgica e topologia fsica e mostra
como os conceitos discutidos no captulo sete so implementados na prtica.
40/223
mostra a figura a seguir); este conectado ao computador atravs de um cabo que recebe o
nome de AUI (Attachment Unit Interface). Na placa de rede, o conector que recebe o cabo se
chama conector AUI. Um AUI contm vrios pinos para transportar dados e alguns fios que so
destinados a controlar o transceiver e energizar o circuito.
42/223
Cada computador tem sua prpria placa de rede, mas ao invs de se conectar a rede
atravs de um transceiver, ele faz isso se conectando ao multiplexador. Os AUIs que
convencionalmente se conectariam a um transceiver, se conectam ao multiplexador. O
multiplexador faz o papel do transceiver para todos os computadores da rede.
Como se pode ver na figura, esse esquema tambm utiliza terminais nas pontas do cabo,
no entanto o cabo coaxial esticado entre pares de computadores.
Apesar de a Thinnet e a Thicknet parecerem muito diferentes elas tm muita coisa em
comum: ambas usam um cabo coaxial para proteger o sinal de interferncias externas; ambas
usam terminais nas pontas do cabo principal; ambas usam bus topology (topologia em
43/223
Redes que usam hub so bastante imunes s desconexes acidentais, e se isso acontece
apenas uma mquina da rede vai ser afetada, e todo o restante permanecendo funcionando.
Hoje em dia, h um fator muito importante na escolha de qual tipo de cabeamento usar:
o preo. Atualmente o sistema que vem dominando o mercado o 10Base-T, por causa de seu
baixo custo (comparando com os outros dois). Mas o preo depende de vrios fatores, como por
exemplo, distncia entre as mquinas, preo da placa de rede, a quantidade de micros na rede, o
custo dos reparos e da freqncia com que novos computadores so adicionados ou retirados
dessa rede.
A figura acima compara uma rede de nove computadores usando diferentes sistemas de
cabeamento. Repare que para este caso, por exemplo, a quantidade de cabos poderia ser um
fator importante na hora de escolher um esquema.
45/223
A figura ilustra tal situao: uma mesma placa de rede pode ser usada no esquema
Thicknet, Thinnet ou de Par Tranado.
Apesar de isso acontecer, apenas um conector pode estar funcionando por vez, no se
pode ligar um computador a duas redes de dois esquemas diferentes ao mesmo tempo. Um
software deve decidir qual dos trs conectores ser habilitado. Isso torna possvel usar um
computador com vrios esquemas de cabeamento, ou seja, a placa de rede no precisar ser
trocada caso a rede seja substituda por outra que usa outro esquema de cabeamento.
Mas o melhor de tudo isso que o endereo do computador na rede determinado no
pelo sistema de cabeamento, mas sim pela placa de rede. Por isso o endereo fsico de uma
mquina continua inalterado quando se substitui o sistema de cabeamento por outro.
46/223
6.1 Introduo
Cada tecnologia de rede se aplica a uma situao diferente, e os fatores que determinam
qual tipo usar, so geralmente a velocidade, a distncia e principalmente o custo. Quando se
projeta uma LAN, deve-se planejar a distncia mxima que ela poder atingir (normalmente
algumas centenas de metros). Por isso a grande maioria das LANs se restringe a um prdio
apenas.
Muitas vezes, computadores em uma rede precisam estar a uma distncia maior do que
aquela que a rede pode atingir. Por isso foram desenvolvidos mecanismos capazes de estender
uma rede a uma distncia maior. Este captulo trata desse assunto e aborda: extenses de LANs
em longas distncias, o uso de modems de fibra, repetidores e bridges.
Devido ao baixo delay e a alta condutividade da fibra ptica, alguns mecanismos podem
aceitar que um computador seja conectado a uma rede remota. Para se usar uma extenso
dessas, deve-se proceder como na figura: os modems servem para transformar o sinal analgico
47/223
(pulso eltrico) em luz, para que o dado possa ser transportado pela fibra e vice-versa. A
principal vantagem dessa extenso poder conectar um computador rede a uma distncia
absurdamente grande (vrios quilmetros); e a desvantagem que cada computador precisa de
um par de modems, o que encarece esse tipo de extenso. importante lembrar que essa
extenso se aplica entre uma rede e um computador.
6.4 Repetidores
Para ultrapassar as limitaes de distncia algumas tecnologias de rede permitem que
dois cabos sejam colocados juntos em um dispositivo conhecido pelo nome de repetidor. Um
repetidor um dispositivo analgico que monitora constantemente o sinal eltrico nas pontas
dos cabos. Quando um sinal chega ao dispositivo, ele (o repetidor) emite uma cpia amplificada
no outro cabo. A figura mostra um esquema usando repetidor.
Um repetidor conecta-se a dois cabos, cada um com terminais nas pontas (isso pode ser
observado na figura acima). Os repetidores no conseguem identificar um frame, por isso eles
apenas emitem cpias idnticas do sinal que recebem. O mximo comprimento que um
segmento de rede pode ter de 500 metros, no entanto, se usarmos um repetidor esse
comprimento pode dobrar; mas numa LAN estendida podemos ter no mximo quatro
repetidores separando duas estaes. Isso acontece porque cada repetidor acrescenta um delay, e
se o delay comea a ficar significativo o esquema comea a falhar.
Os repetidores apresentam alguns problemas, o mais grave deles o fato de um
repetidor no conseguir identificar um frame. Quando esse dispositivo recebe um sinal, ele no
faz nenhuma verificao de erros, por isso se um sinal sofrer uma interferncia eletromagntica
antes de chegar ao repetidor, esse sinal continuar a se propagar.
6.5 Bridges
Uma bridge um dispositivo eletrnico que conecta dois segmentos de rede, mas
diferentemente dos repetidores, uma bridge consegue identificar frames completos. Quando uma
bridge recebe um frame de um dos segmentos conectados a ele, este verifica se o frame est
chegando intacto e s depois envia uma cpia para o outro segmento, se necessrio. Uma bridge
unindo dois segmentos transforma-os em uma nica rede. A figura a seguir ilustra esse conceito.
O uso de bridge se tornou mais popular do que o uso de repetidores, porque as bridges
evitam a propagao de erros e faz isso comparando o frame que foi enviado pelo computador
com o frame que ele recebeu. Se esses dois frames forem iguais, a bridge transmite o frame para
o computador de destino.
48/223
6.9
Uma rede com bridge pode se expandir por uma distncia muito longa de dois modos
diferentes. O primeiro usa cabos para conectar os dois lados, o segundo usa satlites.
Normalmente o uso de cabos o mais comum porque mais barato. Tanto a linha quanto o
satlite podem ser alugados. Neste tpico analisaremos a comunicao via satlite, ela permite
comunicao a qualquer distncia.
50/223
Como pode ser visto na figura, o hardware usado nesta situao completamente
diferente do usado na comunicao local, note que cada segmento tem uma bridge. Neste tipo
de comunicao comum usar o filtro de frame em ambos os lados, isto porque os satlites so
alugados e quanto menos frames forem enviados, menor ser o custo do aluguel.
Conseqentemente, um canal de satlite opera com uma capacidade menor do que um
segmento. O resultado que o canal do satlite no capaz de enviar todos os frames de um
segmento para outro na mesma velocidade que um cabo ou uma fibra fariam. Para evitar
problemas de comunicao, a bridge usada nesses casos, faz um buffer dos frames excedentes
que chegam. Fazer um buffer significa salvar uma cpia dos frames que esto sendo enviados na
memria at que eles possam ser enviados. Bufferizar no resolve todos os problemas deste
tipo de transmisso, se os frames continuarem chegando a uma velocidade maior do que os
satlites podem enviar dados, a bridge comear a descartar os frames que chegarem por ltimo.
Se uma rede com bridges fizer um crculo, como na figura a seguir, podem acontecer
problemas na hora da transmisso dos dados. Considere, p.e., o que acontece se um computador
envia um frame. Com uma rede aberta, a informao chegaria ao computador de destino e
depois seria descartada. No entanto, com o sistema em crculo, o frame fica passando de um
segmento para o outro infinitamente, isso significa que a rede fatalmente ficar congestionada.
51/223
Para evitar esse problema de looping infinito, uma rede com bridges no pode permitir
que todas as bridges enviem todos os frames simultaneamente e, portanto, tenha um crculo de
bridges. Isso na prtica pode se tornar difcil numa rede extensa, mas por sorte a preveno pode
ser automtica.
6.11 Switching
O conceito de bridge fundamental para entender um switch. Um switch um
dispositivo que pode transferir frames, como uma bridge. Um switch lembra um hub quando
visto externamente, mas do ponto de vista de funcionamento eles so diferentes: um hub
funciona como um cabo coaxial, ou seja, como um meio. J o switch funciona simulando uma
rede de bridges, com um computador por segmento (a figura abaixo ilustra essa idia).
52/223
7.1 Introduo
O captulo anterior tratou de tecnologias que oferecem comunicao digital a longas
distncias e fornecem comunicao digital aos assinantes. Esse captulo mostra como aquelas
tecnologias podem ser usadas para construir redes que se expandem por grandes reas. O
captulo descreve os componentes bsicos necessrios para se montar uma rede interconectada.
Como parte do assunto discutido o conceito fundamental do roteador e mostrado como ele
usado em WANs.
Local rea Network (LAN) - pode se estender desde um simples prdio ou campus
universitrio;
Metropolitan Area Network (MAN) - pode se estender por toda uma cidade;
Wide rea Network (WAN) - pode se estender por grandes reas, cidades, pases e at
mesmo continentes.
Temos visto ao longo dos captulos, que apesar de uma LAN ser desenvolvida para ser
usada apenas em um prdio, existem maneiras de estend-la (satlite com uma bridge pode
estend-la por qualquer distncia). Apesar disso, uma LAN estendida no pode ser considerada
uma WAN, porque no possvel conectar muitos computadores e no possvel que se tenham
diversidades de crescimento.
A questo bsica que separa uma WAN de uma LAN a escalabilidade. Uma WAN
capaz de crescer o quanto for necessrio para conectar a outras WANs e com quantos
computadores forem necessrios. Felizmente uma tecnologia no classificada como WAN a
menos que ela seja capaz de permitir a comunicao entre vrios computadores
simultaneamente. E por esse motivo que se usa um roteador para oferecer escalabilidade s
WANs.
7.3 O Roteador
interessante pensar em como uma WAN consegue lidar com tantos computadores.
Para entender isso preciso primeiro entender que a rede deve ser capaz de crescer. No entanto,
usando uma conexo ponto-a-ponto com circuitos alugados, que conecta um computador
diretamente a outro, possvel construir uma WAN - para isso basta adicionar roteadores e
switches para conectar os computadores individualmente. Depois que uma WAN montada
possvel aumentar seu tamanho facilmente apenas adicionando outros roteadores e switches.
O roteador tem a habilidade de mover pacotes inteiros de computador para computador.
Conceitualmente, cada roteador um computador com processador, memria, e dispositivos I/O
usados para enviar e receber os pacotes.
A figura a seguir mostra um roteador esquematicamente (packet switch).
53/223
Uma parte do dispositivo I/O usada para operar em altas velocidades e conecta o
roteador linha alugada, que, por sua vez, se conecta a outro roteador. Assim sendo a
transmisso de dados entre os roteadores se processa em alta velocidade. Uma outra parte do
dispositivo I/O opera em baixas velocidades e usada para conectar switches e hubs. A
transmisso de dados entre switches e hubs pendurados em um mesmo roteador acontece em
baixa velocidade. importante ressaltar que todas as formas de comunicao ponto-a-ponto so
usadas para montar as WANs, incluindo circuitos alugados, fibras pticas, microondas e canais
de satlites.
7.7 Next-Hop
O roteador deve escolher uma de suas sadas atravs da qual enviar o pacote, e essa
escolha feita de acordo com o cabealho do prprio pacote. Se o destino for um dos
computadores conectado ao segmento do qual este computador faz parte, ele descarta o pacote.
Mas se o pacote tem como destino um computador conectado a outro roteador da WAN, a
transmisso feita pela porta adequada at o prximo roteador.
O roteador no tem informaes sobre todos os destinos possveis da WAN, mas ele
tem informaes sobre o prximo salto (next-hop). O conceito um pouco abstrato, mas para
compreend-lo imagine que na figura a seguir haja um pacote no roteador 2. A tabela mostra o
next-hop para todas as possibilidades.
55/223
A tabela acima uma tabela reduzida da anterior. Todos os pacotes que tm o roteador
1 como destino, so enviados atravs da interface 1, o processo igual para os outros destinos.
Cabe ao roteador de destino analisar e direcionar o pacote para uma das interfaces conectadas a
ele.
56/223
Onde se l (1,3), por exemplo, entenda como interface entre 1 e 3, repare que a ordem
importante.
57/223
58/223
59/223
8.1 Introduo
Cada tecnologia de rede classificada em uma das trs categorias: LAN, MAN, ou
WAN, com a maioria sendo classificada como LAN ou WAN. Essa classificao til porque
permite comparar a arquitetura das redes.
Este captulo discute trs caractersticas adicionais de redes de computadores: rede
proprietria, tipo de servios providos por uma rede, e o desempenho do sistema resultante.
O servio orientado para conexo opera de modo anlogo ao sistema de telefonia. Antes
de dois computadores poderem se comunicar, eles devem estabelecer uma conexo atravs da
rede. Um computador pede rede uma forma de conectar-se ao outro computador, e o segundo
computador aceita a conexo. Aps esse incio, ambos os computadores concordam em se
conectarem, e o sistema forma um caminho digital ou conexo, e informa aos computadores.
A comunicao atravs dessa conexo no precisa ser contnua. Ela existe at que um
computador decida que no ela no mais necessria. Para fazer isso o computador informa
rede (destinatrio) que a conexo no mais necessria, similar ao se desligar o telefone.
O servio no orientado para conexo opera analogamente ao servio dos correios.
Quando um computador for enviar dados, dever colocar esses dados em um formato
apropriado (envelope), adicionando o endereo do computador que receber os dados; depois,
passar o pacote para a rede e ela se encarregar da entrega ao computador de destino.
Cada um desses servios apresenta vantagens e desvantagens. A vantagem do servio
orientado para conexo a habilidade de informar imediatamente a um computador se a
conexo foi interrompida; j o servio no orientado para conexo no h como reportar um
erro imediatamente, assim, o computador continua enviando pacotes mesmo depois que uma
falha acontea.
A vantagem do servio no orientado para conexo permitir que um computador envie
dados imediatamente, sem ter que esperar pelo estabelecimento da conexo - estabelecida em
milissegundos, um tempo considerado alto para as atuais velocidades de processamento.
61/223
A maioria das conexes feitas por um switch tem curta durao. Se um computador
trava enquanto est usando uma conexo com switch, tal conexo dever ser restabelecida aps
o computador ser reiniciado.
O termo switch aplicado hoje a equipamentos eletrnicos usados em redes de dados, e
essas redes so chamadas de switched data networks.
Muitas redes que provem as conexes switched (chaveadas) usam uma idia derivada
do sistema de telefonia: mltiplas ligaes ao mesmo tempo. A rede permite ao computador
estabelecer mais de uma conexo ao mesmo tempo e especificar qual conexo usada em
determinado instante.
A vantagem de conexes permanentes a persistncia e a disponibilidade garantida.
Assim, exige-se pouca manuteno, alm disso uma conexo permanente est sempre pronta
para receber dados.
As vantagens da conexo switched (chaveada) so a flexibilidade e a generalidade.
Como so formadas eletronicamente, no necessrio instalar ou mudar fisicamente os cabos.
Alm disso, uma rede switched necessita apenas de uma conexo fsica por computador.
O quadro a seguir sumariza as caractersticas de vrias tecnologias de rede.
62/223
63/223
64/223
65/223
9.1 Introduo
Esse captulo examina a estrutura de um software utilizado no sistema de comunicao
das redes de computadores. O captulo explica porque o hardware no consegue resolver
sozinho todos os problemas de comunicao, e mostra o porqu da necessidade dos protocolos.
Esse captulo tambm ir descrever o conceito das camadas, que provem uma base conceitual
para a compreenso do conjunto completo de protocolos que trabalham para prover um rpido e
eficaz sistema de comunicao.
em pequenos pedaos, chamados de layer (camadas). A figura abaixo ilustra a idia (ISO
layering model).
Camada 1: Fsica
Camada 2: Enlace
Camada 3: Rede
Essa camada de protocolo especifica quais endereos sero marcados e como os pacotes
so enviados de um computador na rede para outro.
Camada 4: Transporte
Especifica como lidar com os detalhes de uma transferncia confivel, est entre um dos
protocolos mais complexos.
Camada 5: Sesso
Camada 6: Apresentao
Camada 7: Aplicao
68/223
9.8 Cabealhos
Usualmente, cada camada coloca informaes adicionais no cabealho antes de enviar
os dados para uma camada abaixo. Assim, um pacote viajando atravs da rede contm uma srie
de cabealhos agregados, como a figura abaixo mostra.
70/223
71/223
72/223
73/223
74/223
10.1 Introduo
O captulo anterior descreveu uma rede bsica, incluindo os componentes de hardware
usados um uma LAN e em uma WAN; e tratou de conceitos como endereamento e roteamento.
Este captulo comea analisando outro conceito fundamental em comunicao entre
computadores: uma tecnologia entre redes que pode ser usada para conectar vrias redes
formando um nico sistema de comunicao. O captulo discute o motivo pelo qual o estudo da
interao de redes importante, descreve o hardware usado e a arquitetura nas quais os
componentes so conectados.
Com duas ou mais redes ligadas, tm-se o que se chama de Internet. Numa Internet no
h um limite de tamanho ou do nmero de computadores interconectados.
O mais importante saber que um roteador pode interconectar redes que usam
tecnologias diferentes, incluindo meios de transmisso diferentes, esquema de endereamento,
ou at mesmo formatos de pacotes ou frames diferentes.
76/223
77/223
78/223
Quatro das camadas na pilha TCP/IP correspondem a uma ou mais camadas do modelo
ISO. No entanto, o modelo ISO no tem a camada da Internet. Resumidamente, as camadas da
pilha TCP/IP so:
Camada 1: physical - corresponde ao hardware bsico da rede;
Camada 2: network interface - especifica como se organizam os dados dentro dos
frames e como o computador transmite os frames atravs da rede;
Camada 3: internet - especifica o formato dos pacotes enviados atravs da Internet,
bem como o mecanismo usado para transmitir os pacotes de um computador at seu
destino final;
Camada 4: transporte - especifica como assegurar uma transferncia confivel;
Camada 5: aplicao - especifica como uma aplicao ou aplicativo usa a Internet
para troca de informaes e dados.
79/223
11.4 Hierarquia IP
Para tornar o roteamento mais eficiente, o IP dividido em duas partes: prefixo e
sufixo. O prefixo do endereo identifica a rede na Internet, enquanto o sufixo identifica o
computador na rede local onde se encontra (no na Internet). Para entender, basta pensar que
cada rede na Internet recebe um valor nico de identificao (network number, que significa
nmero de rede). Falar em nmero de rede o mesmo que falar em prefixo; falar em sufixo o
mesmo que falar em nmero do computador dentro da rede local (cada computador recebe um
nico nmero que no pode ser usado por nenhum outro computador da mesma rede). Perceba
que se dois computadores tiverem o mesmo sufixo, mas estiverem em redes diferentes, ou seja,
tiverem prefixos diferentes, os endereos de IP sero vlidos, porque sero nicos; um endereo
IP formado por prefixo e sufixo.
80/223
81/223
Perceba que cada grupo de oito bits tratado como um nico nmero decimal, por isso,
os endereos de IP podem variar de 0.0.0.0 at 255.255.255.255.
A tabela das classes de endereos IP fica assim:
O nmero de redes possveis numa Internet est diretamente relacionado com a classe
dos IPs. O assunto pode ser facilmente abreviado pela tabela a seguir.
82/223
Uma Internet pode ter vrias redes distintas, e cada uma delas com uma classe de
endereos. A prxima figura exemplifica uma Internet com mais de uma classe. No exemplo, h
duas redes de classe B, uma de classe A e uma de classe C.
83/223
Os endereos especiais so reservados e nunca devem ser usados por hosts; cada
endereo especial tem um uso determinado, por exemplo, um endereo facilita o envio de um
pacote em massa.
84/223
O IP no requer que o mesmo sufixo seja dado para todas as interfaces do roteador.
85/223
Dizemos que o mapeamento de endereos sempre restrito a uma nica rede. Na figura
acima, se um aplicativo no host A envia uma mensagem para um aplicativo no host F, o qual
est em uma rede remota; o software em A no determina o endereo do host F. Em invs disso,
o software em A primeiro determina que o pacote primeiro passe pelo roteador R1. O software
em A, ento, determina o endereo de R1, e envia o pacote para o roteador. O software em R1
determina que o pacote deva alcanar R2; e, portanto, determina o endereo de R2 e envia o
pacote. Finalmente, R2 recebe o pacote, descobre que o destinatrio F est ligado diretamente a
sua rede, e ento determina o endereo de F, finalmente entregando o pacote a F.
86/223
Resumindo:
O mapeamento entre um endereo IP e o endereo fsico ou de hardware chamado de
mapeamento de endereos (Address Resolution). Um host ou roteador utiliza o mapeamento de
endereos quando precisa enviar um pacote para outro computador no mesmo enlace fsico. Um
computador nunca determina o endereo de um computador em uma rede remota.
Para cada rede fsica, uma tabela de mapeamento de endereos utilizada. Como
conseqncia, todos os endereos IP em uma tabela tm o mesmo prefixo.
A grande vantagem da tabela a generalidade uma tabela pode armazenar os
endereos para um conjunto de computadores na rede. Em particular, um endereo IP pode ser
mapeado para um endereo de hardware arbitrrio. Quando se tem o endereo N (IP) do
prximo salto, o software procura na tabela at que encontre uma entrada com endereo N
correspondente. O software, ento, extrai o endereo de hardware de entrada na tabela.
Para redes com grande nmero de hosts, uma busca seqencial requer excessivo uso de
tempo de processamento de CPU. Nesses casos, o software pode utilizar duas implementaes
padres para melhorar a eficincia computacional: o hashing ou o direct indexing.
Hashing uma tcnica de estrutura de dados, com vrios propsitos, e conhecida por
muitos programadores. J o Direct Indexing um pouco mais eficiente, mas menos geral. Em
particular, o Direct Indexing possvel apenas em casos que o endereo IP determinado dentre
um conjunto compacto. Para utilizar o Direct Indexing, o software mantm um vetor
87/223
89/223
91/223
13.4 O Datagrama IP
O protocolo TCP/IP usa o nome datagrama IP para se referir aos pacotes da camada da
Internet. Surpreendentemente, um datagrama IP apresenta sempre um mesmo formato. O
datagrama comea com um cabealho, seguido de uma rea de dados.
A quantidade de dados em um datagrama no fixa. O host que envia escolhe o quanto
de dado que mais apropriado para seu propsito em particular. Por exemplo, uma aplicao
que transmite caracteres atravs da Internet pode colocar cada caracter em um datagrama
diferente, enquanto que uma aplicao que transfere grandes arquivos pode enviar datagramas
maiores.
Na verso atual do IP (verso 4), um datagrama pode conter um nico byte ou at 64kB,
incluindo o cabealho. Na maioria dos datagramas, o cabealho muito menor que a rea de
dados. Para entender o porqu necessrio examinar o custo da transmisso de dados. Como o
cabealho de um frame usado na camada fsica, um cabealho do datagrama representa perda
enquanto a rede ocupada transferindo cabealhos, no poder transferir os dados do usurio.
Como o tamanho do datagrama fixo, enviar grandes datagramas resulta em mais bytes de
dados enviados por unidade de tempo (por exemplo, maior largura de banda).
Similar ao cabealho de um frame, o cabealho de um datagrama contm informao
para o roteamento do mesmo atravs da Internet. Por exemplo, o cabealho contm o endereo
do computador que enviou o datagrama, assim como o endereo do computador de destino. O
endereo presente no cabealho de um datagrama difere do endereo usado no cabealho do
frame um datagrama contm um endereo IP, enquanto um frame contm um endereo de
hardware.
Destino
Prximo salto
Rede 1
Roteador 1
Rede 2
Entrega direta
Rede 3
Entrega direta
Rede 4
Roteador 3
93/223
40.0.0.8
30.0.0.7
30.0.0.0
40.0.0.0
40.0.0.7
128.1.0.9
128.1.0.0
128.1.0.8
192.4.10.0
192.4.10.9
Destino
Mscara
Prximo salto
30.0.0.0
255.0.0.0
40.0.0.7
40.0.0.0
255.0.0.0
Entrega direta
128.1.0.0
255.255.0.0
Entrega direta
192.4.10.0
255.255.255.0
128.1.0.9
Podemos observar que as duas primeiras redes tm um prefixo classe A; a terceira rede
tem um prefixo classe B e a quarta rede possui um prefixo classe C. A cada roteador foram
designados dois endereos IP, um para cada interface. Por exemplo, o roteador que conecta a
rede 30.0.0.0 rede 40.0.0.0 foi designado com os endereos 30.0.0.7 e 40.0.0.7. Embora ambas
as interfaces do roteador tenham recebido o mesmo sufixo de host, o IP no requer essa
uniformidade um administrador de rede livre para designar diferentes valores para cada
interface.
dado um datagrama para ser encaminhado. Assuma tambm que o datagrama possui um
endereo IP D. O software de roteamento deve encontrar uma entrada na tabela de roteamento
que especifique o prximo salto para D. Para isso, o software examina cada entrada na tabela
usando a mscara para extrair o prefixo do endereo D e comparar o resultado com o campo
destino da mesma entrada. Se os dois forem iguais, o datagrama ser encaminhado para o
prximo salto daquela entrada.
A mscara torna a extrao do prefixo eficiente o software faz a operao booleana
and (&) entre a mscara e o endereo de destino do datagrama, D. Sendo assim, para examinar a
entrada i, pode-se expressar:
se ( (mscara[i] & D) = Ddestino[i] )encaminhar para o prximo salto[i]);
Como exemplo, considere um datagrama com endereo de destino 192.4.10.3, e assuma
que esse mesmo datagrama chegue ao roteador que possui a tabela de roteamento apresentada
anteriormente. E assuma ainda que o software procure pelas entradas em ordem. A primeira
entrada falharia, pois 255.0.0.0 & 192.4.10.3 no igual a 30.0.0.0. Aps rejeitar a segunda e a
terceira entradas da tabela, o software de roteamento escolheria o prximo salto 128.1.0.9, pois:
255.255.255.0 & 192.4.10.3 = 192.4.10.0
duplicao de datagrama
entregas atrasadas ou fora de ordem
dados corrompidos
perda de datagramas
95/223
Cabec. Tam.
16
Tipo do serv.
Identificao
Tempo de vida
19
24
31
Tamanho Total
Flags
Tipo
Offset do Fragmento
Checksum do cabealho
Endereo IP de Origem
Endereo IP de Destino
Opes do IP (pode ser omitido)
Preenchimento
Dados
.
.
.
Cada campo em um cabealho de um datagrama IP tem um tamanho fixo. O datagrama
comea com um nmero de 4 bits da verso do protocolo (a verso atual a 4) e 4 bits do
tamanho do cabealho, que especifica o nmero de grupos de 32 bits no cabealho. O campo
Tipo de Servio contm um valor que especifica se a origem prefere que o datagrama viaje
atravs de uma rota com um mnimo de atraso ou com uma maior largura de banda: um roteador
que tenha mltiplas rotas para o destino pode usar esse valor para escolher a rota. O campo
Tamanho Total contm um nmero inteiro de 16 bits que especifica o nmero total de bytes em
um datagrama, incluindo o cabealho e a rea de dados. Posteriormente, os campos
Identificao, Flag e Offset do Fragmento sero mais detalhados.
O campo Tempo de Vida usado para evitar que um datagrama circule para sempre em
um caminho que contenha um loop; esse tipo de caminho pode ocorrer quando o software no
funciona corretamente ou quando um administrador configura erroneamente um roteador. A
origem inicializa esse campo com um nmero inteiro e positivo entre 1 e 255. Cada roteador no
caminho decrementa de uma unidade esse nmero. Se esse contador chegar a zero, o datagrama
descartado e uma mensagem de erro enviada de volta para a origem.
O campo Checksum do Cabealho assegura que os bits do cabealho no foram
modificados em trnsito. Um host de origem calcula a soma dos complementos de 1 de todas as
quantidades de 16 bits presentes no cabealho, excluindo o prprio campo de checksum, e ento
guarda essa soma no campo Checksum do Cabealho. Um host receptor calcula a mesma soma
de quantidades de 16 bits, incluindo o campo de checksum. Se o checksum estiver correto, o
resultado ser 0 (matematicamente, o complemento de 1 um aditivo inverso). Por isso,
somando um valor 1 ao seu complemento produz-se o valor 0.
Para manter os cabealhos dos datagramas os menores possveis, o IP define um
conjunto de Opes que podem estar presentes, se necessrio. Quando um datagrama IP no
carrega tais opes, o campo Tamanho do Cabealho contm o valor 5, e o cabealho termina
depois do campo Endereo de IP de Destino. Devido ao tamanho do cabealho ser especificado
por mltiplos de 32 bits, se o campo Opes no terminar em um limite de 32 bits, o campo
Preenchimento conter bits 0 para fazer com o cabealho tenha um mltiplo de 32 bits.
96/223
14.1 Introduo
No captulo anterior descrevemos um formato de um datagrama IP e discutimos a
informao em uma tabela de roteamento, que utilizada para selecionar o prximo salto a cada
passo ao longo do caminho at o destino do datagrama. Esse captulo conclui a discusso sobre
o IP, descrevendo a transmisso dos datagramas em detalhes. Mostrando como um host ou um
roteador envia um datagrama atravs da rede fsica, e como os roteadores lidam com o problema
de envio de grandes datagramas.
14.3 Encapsulamento
Como pode um datagrama ser transmitido atravs de uma rede fsica que no entende o
formato do datagrama? A resposta est na tecnologia chamada encapsulamento. Quando um
datagrama IP encapsulado em um frame, o datagrama inteiro colocado na rea destinada aos
dados, dentro de um frame. O hardware de rede trata o frame que contm o datagrama
exatamente da mesma maneira que qualquer outro frame. Na verdade, o hardware no examina
ou modifica o contedo da rea de dados de um frame. A figura abaixo ilustra esse conceito.
Cabealho IP
Cabealho do Frame
rea de dados do IP
encapsulamento requer que a origem fornea um endereo fsico do prximo computador para o
qual o datagrama deve ser enviado. Para calcular o endereo apropriado, um software no
computador de origem deve realizar o mapeamento entre endereos como descrito
anterirormente. O mapeamento traduz o endereo IP do prximo salto em um endereo de
hardware equivalente, o qual ento utilizado como o endereo de destino no cabealho do
frame.
98/223
H2
Rede 1
MTU=1500
Rede 2
MTU=1000
Na figura, o host 2 (H2) est ligado a uma rede que tem uma MTU de 1000. Ento, cada
datagrama que H2 transmitir deve ter 1000 bytes ou menos. Entretanto, devido ao host 1 (H1)
estar ligado a uma rede que tenha uma MTU de 1500 bytes, H1 poder transmitir datagramas
que contenham at 1500 bytes. Se H1 enviar um datagrama de 1500 bytes para H2, o roteador
(R) receber o datagrama, mas no ser capaz de enviar atravs da Rede 2.
Um roteador IP usa a tcnica conhecida por Fragmentao para resolver o problema das
MTUs heterogneas. Quando um datagrama maior que a MTU da rede pela qual ele deve ser
enviado, o roteador divide o datagrama em pedaos menores, chamados fragmentos, e envia
cada fragmento independentemente.
Surpreendentemente, um fragmento tem o mesmo formato que os outros datagramas
um bit no campo FLAGS do cabealho indica quando um datagrama um fragmento ou um
datagrama completo. Outros campos do cabealho so preenchidos com a informao que ser
utilizada para reunir os fragmentos e reproduzir o datagrama original. Em particular, o campo
Offset do Fragmento no cabealho de um fragmento especifica em qual posio esse fragmento
est localizado no datagrama original.
Para fragmentar um datagrama para transmisso atravs da rede, um roteador deve
utilizar a MTU da rede e o tamanho de cabealho do datagrama para calcular o mximo de
dados que podero ser enviados em cada fragmento; e o nmero de fragmentos que sero
necessrios. Ento, o roteador cria os fragmentos. Ele comea copiando o cabealho original no
incio de cada fragmento, e ento modifica os campos individuais. Por exemplo, o roteador
atribui o valor 1 ao bit apropriado no campo FLAGS para indicar que aquele datagrama um
fragmento. Finalmente, o roteador copia os dados apropriados do datagrama original para cada
fragmento e os transmite. A figura abaixo ilustra o processo.
Cabealho IP
Cab.
IP 1
Dados
1
Cab.
IP 2
Dados
2
Cab.
IP 3
Dados
3
99/223
14.6 Agrupamento
O processo de criar uma cpia do datagrama original a partir dos fragmentos chamado
de agrupamento. Como cada fragmento comea com uma cpia do cabealho do datagrama
original, todos os fragmentos tm o mesmo endereo de destino, como o datagrama original do
qual eles derivam. Alm disso, o fragmento que carrega o pedao final de dados atribui o valor
1 a um bit adicional no cabealho. Dessa forma, o receptor que ir fazer o agrupamento pode
determinar quando todos os fragmentos chegaram com sucesso.
Compreensivamente, o protocolo IP especifica que o host do destino final deve reunir os
fragmentos. Por exemplo, considere a Internet da figura abaixo:
H1
H2
R1
Rede 1
MTU=1500
R2
Rede 2
MTU=1000
Rede 3
MTU=1500
Na figura, se o host H1 enviar um datagrama de 1500 bytes para o host H2, o roteador R1
dividir o datagrama em dois fragmentos, que sero encaminhados para o roteador R2. O
roteador R2 no ir reunir os fragmentos. Em vez disso, R2 utiliza o endereo de destino de cada
fragmento para encaminh-lo. O host de destino, H2, coleta os fragmentos e os rene para
reproduzir o datagrama original.
Como o destino final o responsvel por reunir os fragmentos, tem-se duas vantagens
principais. Primeira, isso reduz a quantidade de processamento de informao nos roteadores.
Quando um datagrama encaminhado, o roteador no precisa saber quando um datagrama um
fragmento. Segunda, isso permite que as rotas mudem dinamicamente. Se um roteador
intermedirio rene os fragmentos, todos os fragmentos precisariam alcanar tal roteador.
Adiando o agrupamento at o destino final, o IP fica livre para transmitir alguns fragmentos do
datagrama atravs de uma rota diferente da dos demais fragmentos.
100/223
101/223
15.1 Introduo
Em captulos anteriores foi discutida a verso atual do Internet Protocol (IP). O captulo
14 descreve como um datagrama IP encapsulado em uma rede de comutao de pacotes e
como ele enviado atravs da rede fsica interconectada.
Este captulo concentra-se no futuro do IP. O captulo comea analisando as limitaes
e qualidades da atual verso do IP, e assim considera uma nova verso do IP, que o IETF props
para substituir a atual verso.
15.2 O Sucesso do IP
A verso atual do IP tem um sucesso considervel. Este sucesso foi possvel por lidar
com redes heterogneas, mudanas drsticas na tecnologia de hardware e um crescimento
extremo em escala. Para lidar com redes heterogneas, o padro IP define um pacote com
formato uniforme (o datagrama IP) e um mecanismo de transmisso de pacotes. O IP tambm
define um conjunto de endereos, permitindo que aplicaes em camadas superiores da rede se
comuniquem atravs da rede heterognea, sem conhecimento das diferenas entre os
endereamentos de hardware utilizados nas camadas inferiores. O crescimento em escala pode
ser notado com a expanso atual da Internet.
A verso atual tambm acomoda as mudanas nas tecnologias de hardware. O projeto
original continua se dando bem com as vrias geraes de tecnologias de hardware criadas
desde ento. O IP agora usado em redes que operam com velocidade muito mais alta que
quela das iniciais de projeto.
102/223
103/223
105/223
Como a figura mostra cada fragmento menor que o datagrama original. Como no
IPv4, o tamanho do fragmento escolhido para ter um tamanho mximo de transmisso por
unidade (MTU, maximum transmission unit) da rede para onde o fragmento dever ser enviado.
Assim, o fragmento final pode ser menor que os outros, porque representa o que sobrou aps
vrios fragmentos de tamanho mximo (MTU) terem sido extrados do datagrama original.
Alm disso, no IPv6, o host emissor responsvel pela fragmentao. Isto , os hosts
devero escolher o menor tamanho de datagrama que no ir necessitar de fragmentao; os
roteadores pelo caminho que receberem um datagrama grande, no iro fragmentar o datagrama.
O host dever determinar a MTU de cada rede no caminho at o destinatrio, e escolher,
ento, o menor tamanho de datagrama. A MTU mnima de um caminho entre emissor e receptor
conhecido como path MTU, e o processo de descoberta do path MTU conhecido como path
MTU discovery. Em geral, o processo path MTU discovery iterativo. O host envia uma
seqncia com vrios tamanhos de datagramas para o destinatrio e verifica quais chegaram
com erro. Uma vez que um datagrama pequeno o suficiente para passar sem ser fragmentado,
o host escolhe o tamanho deste datagrama como o tamanho de path MTU.
107/223
108/223
16.1 Introduo
Nos captulos anteriores apresentou-se o servio de entrega de datagramas a qualquer
custo que o Protocolo da Internet prov. Definiu-se o formato do datagrama IP, explicou-se
como as tabelas de roteamento so utilizadas para selecionar o prximo salto para o
encaminhamento do datagrama, e mostrou-se como os datagramas so encapsulados para
transmisso. Este captulo examina um protocolo de informao de erro integrado com o IP. Os
erros bsicos que podem ser informados, e explica como e quando essas mensagens so
enviadas.
Embora a pretenso original fosse prover um modo de a origem entender o porqu de
datagramas no serem entregues, pesquisadores encontraram maneiras criativas de utilizar o
sistema de mensagens de controle. Em particular, ferramentas foram criadas para colher
informao sobre a Internet atravs do envio de datagramas que gerassem mensagens de erro. O
captulo examina algumas ferramentas e tcnicas que utilizam mensagens de erro para recolher
tais informaes.
A pilha TCP/IP inclui um protocolo que o IP utiliza para enviar mensagens de erro
quando condies adversas, como a descrita anteriormente, ocorrem: o Protocolo de Mensagens
de Controle da Internet (ICMP). O protocolo requerido em uma implementao padro do IP.
Veremos que os dois protocolos so co-dependentes. O IP utiliza o ICMP quando envia
mensagens de erro, e o ICMP utiliza o IP para transportar essas mensagens.
A lista a seguir e a tabela mostram as mensagens do ICMP, que incluem o erro e a
mensagem de informao. Aps analisar alguns exemplos, veremos como elas podem ser
utilizadas.
Exemplos de erros que incluem mensagens ICMP:
Source Quench: Um roteador envia uma mensagem Source Quench sempre que ele
recebe tantos datagramas que o seu espao disponvel de buffer se esgota. Um roteador
que tenha temporariamente acabado seu espao de buffer deve descartar os datagramas
que chegam. Quando ele descarta um datagrama, o roteador envia uma mensagem
Source Quench ao host que criou tal datagrama. Quando um host recebe uma mensagem
Source Quench, o host obrigado a reduzir a taxa na qual ele est transmitindo.
Time Exceeded: Uma mensagem Time Exceeded enviada em dois casos. Sempre que
um roteador reduz o campo Tempo de Vida de um datagrama a zero, o roteador descarta
o datagrama e envia uma mensagem Time Exceeded. Fora isso, uma mensagem Time
Exceeded enviada a um host se o tempo de agrupamento dos fragmentos expirar antes
que todos os demais fragmentos de um datagrama cheguem.
Redirect: Quando um host cria um datagrama destinado a uma rede remota, o host envia
o datagrama a um roteador, que encaminha o datagrama ao seu destino. Se o roteador
determinar que o host tenha enviado o datagrama incorretamente, pois deveria ser
enviado para um roteador diferente, o roteador envia uma mensagem Redirect, fazendo
com que o host mude sua rota. Uma mensagem Redirect pode especificar ainda a
mudana para um host especfico ou para uma rede; a ltima opo a mais comum.
Echo Request/Reply: Uma mensagem de Echo Request pode ser enviada a qualquer
computador. Em resposta a essa mensagem de Echo Request, o ICMP obrigado a
enviar uma mensagem ICMP de Echo Reply. A resposta carrega os mesmos dados que o
requerimento.
Address Mask Request/Reply: Um host transmite a todos os host de sua rede uma
mensagem Address Mask Request quando inicializado, e os roteadores que recebem o
requerimento enviam uma mensagem Address Mask Reply, que contm a mscara de
sub-rede de 32 bits que est sendo utilizada por aquela rede.
110/223
Tipo
Nome
Echo Reply
No atribudo
No atribudo
Destination Unreachable
Source Quench
Redirect
No atribudo
Echo
Router Advertising
10
Router Selection
11
Time Exceeded
12
Parameter Problem
13
Timestamp
14
Timestamp Reply
15
Information Request
16
Information Reply
17
18
19
20-29
30
Traceroute
31
32
33
IPv6 Where-Are-You
34
IPv6 I-Am-Here
35
36
37-255
Reservado
111/223
Cabealho IP
Cabealho do Frame
rea de dados do IP
Para onde uma mensagem ICMP deve ser enviada? Mensagens ICMP so sempre
criadas em resposta a um datagrama, ou quando o datagrama encontra algum problema (por
exemplo, um roteador acha que o destino especificado no datagrama est inalcanvel); ou
quando o datagrama carrega uma solicitao ICMP para o qual um roteador cria uma resposta.
Em ambos os casos, o roteador manda uma mensagem ICMP de volta origem do datagrama.
Enviar a mensagem de volta a origem direto, porque cada datagrama carrega o
endereo IP de sua origem no cabealho. O roteador extrai o endereo da origem do cabealho
do datagrama que chegou e coloca esse endereo no campo Destino do cabealho do datagrama
que carrega a mensagem ICMP.
Datagramas que carregam mensagens ICMP no tem nenhuma prioridade especial
eles so encaminhados como qualquer outro datagrama, com uma pequena exceo. Se o
datagrama que carrega uma mensagem de erro ICMP causar um erro, nenhuma mensagem de
erro enviada. A razo clara: os projetistas queriam evitar que Internet se tornasse
congestionada carregando mensagens de erro em cima de mensagens de erros.
112/223
114/223
timo Fim de Conexo. Um programa pode abrir uma conexo, enviar dados
quando necessitar, e ento requisitar que a conexo seja finalizada. O TCP
garante a entrega de todos os dados antes de fechar a conexo TCP.
116/223
17.6 Confiabilidade
Um protocolo de transporte como o TCP deve ser projetado cuidadosamente para
garantir confiabilidade. Os principais problemas numa rede de comutao de pacotes
justamente a entrega no confivel devido ao projeto bsico do sistema de comunicao e a
inicializao do computador. Considere uma situao na quais dois computadores formam uma
conexo, transferem dados e fecham a conexo. Aps isso, abrem uma nova conexo. Como
cada mensagem pode ser perdida, duplicada, atrasada ou entregue fora de ordem, mensagens
ainda da primeira conexo aberta podem ser duplicadas e a cpia entregue tarde o bastante para
a segunda conexo j estar formada. Mensagens no podem ser ambguas, ou o protocolo ir
aceitar as mensagens duplicadas da conexo antiga e permitir que interfiram na nova conexo
aberta.
Quando o sistema de um computador reiniciado este um srio desafio para o
protocolo TCP. Imagine a situao onde dois aplicativos estabelecem a conexo e, ento, um
computador reinicia. Embora o protocolo no computador que reinicia tenha conhecimento da
conexo, o software no computador que no reiniciou considera a conexo vlida. Mais
importante, pacotes duplicados, que esto atrasados, se tornam um desafio; pois o protocolo tem
que ser hbil para rejeitar os pacotes antes de o computador reiniciar.
A retransmisso pelo TCP a chave para o sucesso do mesmo, pois lida com
comunicaes atravs de redes arbitrrias e permite que mltiplos aplicativos se comuniquem ao
mesmo tempo. A questo : quanto tempo o TCP deve esperar antes de retransmitir?
117/223
17.8
Retransmisso Adaptativa
118/223
Como a figura mostra, o TCP configura o tempo de retransmisso para ser um pouco
maior que a mdia dos tempos de resposta. Se o delay grande, o TCP utiliza um tempo grande
de retransmisso; se o delay pequeno, o TCP utiliza um tempo pequeno de retransmisso. A
meta esperar um tempo suficiente para determinar se um pacote se perdeu ou no, sem esperar
mais tempo do que o necessrio.
119/223
Uma parte do three-way handshake usado para criar uma conexo requer que cada
ponto da conexo gere uma seqncia aleatria de 32 bits. Se um aplicativo tenta estabelecer
uma nova conexo aps o computador reiniciar, o TCP ir escolher uma nova seqncia
aleatria de 32 bits. Como cada nova conexo recebe esta seqncia aleatria, um par de
120/223
aplicativos que use o TCP pode fechar a conexo, estabelecer uma nova conexo e no ter
interferncia de pacotes duplicados ou de delay.
Para entender o formato do segmento TCP, necessrio lembrar que a conexo TCP
tem dois pontos finais e dois fluxos de dados, um em cada direo. Se os aplicativos em cada
ponto enviam dados simultaneamente, o TCP pode enviar um nico segmento contendo o
acknowledgement para os dados que chegam; o aviso de janela, que especifica o tamanho
adicional de buffer disponvel para os dados que chegaro, e os dados que esto de sada.
121/223
Assim, alguns campos no segmento referem-se aos dados que seguem na direo direta,
enquanto outros campos se referem aos dados que viajam na direo oposta.
Quando o computador envia um segmento, os campos ACKNOWLEDGMENT
NUMBER e WINDOW se referem aos dados que chegam: o ACKNOWLEDGMENT NUMBER
especifica a seqncia de nmeros dos dados que so recebidos, e WINDOW especifica o quanto
de espao est disponvel no buffer para receber dados. O campo SEQUENCE NUMBER se
refere aos dados que so enviados. Ele d uma seqncia numrica para os dados que esto
sendo transportados no segmento. O receptor utiliza a seqncia de nmeros para reordenar os
segmentos que chegam fora da ordem e para computar o nmero do acknowledgement. O
campo DESTINATION PORT identifica qual aplicativo no computador receptor dever receber
os dados, enquanto o campo SOURCE PORT identifica a porta especfica do aplicativo que
enviou os dados. Finalmente, o campo CHECKSUM contm a soma dos bits, abrangendo o
cabealho e os dados.
122/223
18.1 Introduo
Este captulo inicia em um novo assunto e foca principalmente nas aplicaes de rede.
Captulos e sees anteriores forneceram um embasamento geral e necessrio para entender
como aas aplicaes utilizam as redes. Explicaram o hardware usado em LANs e WANs,
mostraram como redes heterogneas podem se interconectar, e examinaram os protocolos
usados para tornar possvel o transporte confivel atravs da Internet. A combinao de
hardwares de rede e protocolos resulta em uma infra-estrutura de comunicao com um
propsito geral que permite que os programas de aplicao em um par arbitrrio de
computadores possam se comunicar. Em todo o captulo vamos assumir que tal infra-estrutura
est pronta e preparada. Em particular, assumiremos que o protocolo e a informao de
roteamento necessria esto disponveis em todos os computadores (por exemplo, todos os
computadores esto conectados a redes que estejam funcionando).
Os captulos dessa seo focam nos servios de alto nvel disponveis na Internet e em
softwares de aplicao que fornecem tais servios. O texto explica os princpios, as tcnicas, e a
interface de programao utilizada para se produzir as aplicaes de rede, assim como a
estrutura do software. Muitos captulos contm exemplos de aplicaes populares. Alm da
caracterizao do servio que a aplicao fornece, cada captulo descreve a estrutura do
software e mostra como a aplicao usa a comunicao virtual da rede.
Este captulo apresenta ainda o conceito fundamental que forma a base para todas as
aplicaes de rede: a Interao Cliente-Servidor. O captulo examina o modelo Cliente-Servidor
bsico e descreve como a necessidade da interao Cliente-Servidor aparece, e de que maneira
os protocolos de rede operam nessa arquitetura. Captulos futuros expandiram a discusso,
mostrando como as aplicaes utilizam o paradigma Cliente-Servidor.
123/223
iniciada diretamente por um usurio, que executa apenas uma seo por vez;
roda localmente em um computador pessoal do usurio;
inicia efetivamente o contato com um servidor;
pode acessar quantos servios forem necessrios, mas contata efetivamente com o
acesso a um servidor por vez;
no requer hardware especial ou sistema operacional sofisticado.
J um servidor:
125/223
Cliente
Servidor
Transporte
Transporte
Internet
Internet
Interface de rede
Interface de rede
Internet
126/223
Cliente1
Servidor1
Servidor2
Cliente2
Transporte
Transporte
Transporte
Internet
Internet
Internet
Interface rede
Interface rede
Interface rede
Internet
128/223
129/223
uma aplicao cliente no est restrita ao acesso apenas a um nico servio. Uma s
aplicao pode primeiramente se tornar cliente de um servio e depois se tornar cliente
de outro. O cliente contata um servidor diferente (talvez at em um computador
diferente) para cada servio;
uma aplicao no est restrita ao acesso a um nico servidor para um dado servio. Em
alguns servios, cada servidor fornece informaes diferentes s informaes de outros
servidores rodando em outros computadores. Por exemplo, um servidor de datas pode
prover hora certa e data do computador onde ele est rodando. Um servidor em um
computador em um fuso horrio diferente fornecer uma resposta diferente. Em outros
servios, todos os servidores podem fornecer a mesma informao. Nesses casos, um
cliente pode enviar um pedido para vrios servidores para aumentar a performance o
cliente utiliza a informao enviada pelo servidor que responder primeiro;
130/223
131/223
mesmo procedimento para enviar dados para outro programa, arquivo, ou atravs da rede. Na
terminologia atual, o descritor representa um objeto, e o procedimento write representa o
mtodo aplicado ao objeto.
A vantagem principal deste sistema a flexibilidade: um nico aplicativo para gravar os
dados pode transferir dados para um local arbitrrio. Se o aplicativo recebe um descritor que
corresponde a um componente, o aplicativo ir enviar dados ao componente. Se o aplicativo
recebe um descritor que corresponde a um arquivo, o aplicativo ir armazenar dados no arquivo.
Se o aplicativo recebe um descritor que corresponde a um socket, o aplicativo enviar dados
atravs da rede para um computador remoto.
133/223
134/223
136/223
msgstruct{
sockaddr
*m_saddr;
datavec *m_dvec;
m_dvlength;
access
*m_rights;
m_alength;
138/223
Como a figura mostra, o servidor utiliza sete processos do socket, e o cliente utiliza seis.
O cliente comea chamando a biblioteca de procedimentos gethostbyname para converter o
nome do computador para um endereo IP e getprotoname para converter o nome do protocolo
para binrios internos, usados no processo do socket. O cliente ento utiliza o processo socket
para criar o socket e connect para conectar o socket ao servidor. Uma vez que a conexo
estabelecida, o cliente utiliza repetidamente o processo recv para receber os dados que o
servidor envia. Finalmente, aps todos os dados serem transferidos, o cliente usa a rotina close
para fechar o socket.
O servidor tambm utiliza getprotobyname para gerar os binrios internos que
identificam o protocolo antes de usar o socket para criar o socket. Uma vez que o socket foi
criado, o servidor utiliza bind para especificar a porta do protocolo para o socket, e listen para
ativar o modo passivo. O servidor ento entra em um loop infinito no qual chama accept para
aceitar as prximas requisies de conexo, usa ento send para enviar uma mensagem para o
cliente, e close para fechar a nova conexo. Aps fechar a conexo, o servidor chama a rotina
accept para aceitar as prximas novas conexes.
140/223
141/223
if (argc >1) {
host = argv[1];
} else {
host = localhost;
}
ptrh = gethostbyname (host);
if ( ((char *) ptrh) == NULL) {
fprint (stderr, invalid host : %s\n, host);
exit(1);
}
memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length);
if ( ((int) (ptrp = getprotobyname(tcp))) = = 0 ) {
fprintf(stderr, cannot map \tcp\ to protocol number);
exit(1);
}
sd = socket (PF_INET, SOCK_STREAM, ptrp->p_proto);
if (sd<0) {
fprintf(stderr, socket creation failed\n);
exit(1);
}
if (connect(sd, (struct sockaddr *)&sad, sizeof(sad))<0) {
fprintf(stderr, connect failed\n);
exit(1);
}
n = recv(sd, buf , sizeof(buf), 0);
while (n>0) {
write(1,buf,n);
n=recv(sd, buf, sizeof(buf), 0) ;
}
closesocket(sd);
exit(0)
}
142/223
visits
=0;
main(argc, argv)
int
argc;
char *argv[];
{
struct hostent
struct protoent
struct sockaddr_in
struct sockaddr_in
int
sd, sd2;
int
port;
int
alen;
char buf[1000];
*ptrh;
*ptrp;
sad;
cad;
#ifdef WIN32
WSDATA wsaData;
WSAStartup(0x0101, &wsaData);
#endif
memset((char *)&sad,0,sizeof(sad));
sad.sin_family = AF_INET;
sad.sin_addr.s_addr = INADDR_ANY;
if(argc>1) {
port = atoi (argv[1]);
} else {
port = PROTOPORT
}
if (port >0)
sad.sin_port = htons((u_short)port);
else {
fprintf(stderr, bad port numer %s\n,argv[1]);
exit(1);
}
143/223
144/223
146/223
21.1 Introduo
Foi descrito nos captulos passados que a cada computador designado um Endereo de
Protocolo da Internet, o IP, que aparece em cada datagrama IP enviado pelo computador.
Embora os endereos IP sejam fundamentais para a pilha TCP/IP, qualquer pessoa que tenha
utilizado a Internet sabe que os usurios no precisam lembrar ou fornecer um endereo IP. Os
computadores so tambm designados por nomes simblicos; e os softwares de aplicao
permitem ao usurio entrar com um dos nomes simblicos quando estiver especificando
determinado computador. Por exemplo, quando se especifica um destino para uma mensagem
de correio eletrnico, o usurio escreve um cabelhao que identifica o receptor para o qual a
mensagem dever ser entregue e o nome simblico do computador de destino. Similarmente, o
nome de um computador inserido em um janela quando o usurio especifica um site na World
WideWeb.
Embora nomes simblicos sejam convenientes aos homens, eles so inconvenientes
para os computadores. Devido forma binria de um endereo IP, mais compacta que os nomes
simblicos, ela requer menos computao para ser manipulada (por exemplo, na comparao
com outro nome). Alm disso, um endereo IP ocupa menos espao de memria e requer menos
tempo para ser transmitido atravs da rede do que um nome. Assim, embora softwares de
aplicao permitam que os usurios entrem nomes simblicos, os protocolos da camada de rede
precisam de endereos IP uma aplicao deve traduzir cada nome para um endereo IP
equivalente antes de us-lo para a comunicao. Na maioria dos casos, a traduo feita
automaticamente e os resultados no so revelados ao usurio o endereo IP mantido na
memria e s utilizado para enviar ou receber datagramas.
O software que traduz os nomes simblicos dos computadores em endereos de Internet
equivalentes provem um exemplo interessante de interao Cliente-Servidor. O banco de dados
de nomes no mantido em um s computador. Ao invs disso, as informaes sobre os nomes
so distribudas ao longo de um grande conjunto de potenciais servidores, localizados por toda a
Internet. Sempre que um programa de aplicao precisa traduzir um nome, a aplicao se torna
cliente do sistema de nomenclatura. O cliente envia uma mensagem de pedido para o servidor
de nomes, o qual encontra o endereo correspondente e envia uma mensagem de resposta. Se
ele no puder responder a um pedido, o servidor de nomes se torna temporariamente cliente de
outro servidor de nomes, at que um servidor seja encontrado e responda ao pedido.
Esse captulo descreve a hierarquia de traduo, a organizao dos servidores de nomes
e os detalhes da interao Cliente-Servidor entre eles. O captulo tambm explica como o
caching melhora a eficincia do sistema de nomenclatura e torna possvel o funcionamento de
um sistema distribudo em larga escala.
Designado para
com
organizaes comerciais
edu
instituies educacionais
gov
organizaes governamentais
mil
grupos militares
net
org
arpa
int
organizaes internacionais
cdigo do pas
um pas
Mais sete domnios de nvel nximo foram propostos em 1997, para posteriormente
dividir o espao do nome e eliminar o excesso de nomes que tem o domnio comercial. Os
nomes propostos foram firm, store, web, arts, rec, info e nom. Arts e Rec seriam propostos para
acomodar organizaes como museus de arte e web sites de recreao; Nom foi proposto para
permitir que pessoas registrassem seus prprios nomes. Por muitas outras razes, entretanto, os
novos nomes no receberam aprovao oficial.
Quando uma organizao quer participar do DNS, a organizao deve registrar um
nome dentro de um domnio de nvel mximo. A maioria das organizaes escolhe registrar-se
sob o domnio com. Por exemplo, a corporao nomeada Foobar poderia pedir para designar o
domnio foobar sob o domnio de nvel nximo com. Se o pedido fosse aprovado, a autoridade
da Internet responsvel pelos nomes de domnio designaria Corporao Foobar o domnio:
foobar.com.
Uma vez que um domnio tenha sido designado a uma organizao, o sufixo reservado
organizao nenhuma outra organizao designar esse mesmo sufixo para seu nome. Por
exemplo, uma vez que foobar.com tenha sido designado, outra organizao chamada Foobar
poderia solicitar o domnio foobar.edu ou foobar.org, mas no o domnio foobar.com.
148/223
150/223
151/223
O servidor L no responsvel por esse nome, ento ele atua como cliente de outros
servidores. Em um primeiro passo, o servidor L envia um pedido ao servidor raiz. O servidor
raiz no responsvel por esse nome, mas a resposta dele fornece a localizao do servidor
responsvel pela foobar.com.
Quando o servidor L recebe a resposta do servidor raiz, ele contata o servidor da
foobar.com. Embora ele no seja responsvel pelos nomes da subdiviso walnut, esse servidor
principal da Foobar sabe a localizao do servidor para tal subdiviso. Por isso, ele retorna uma
resposta para informar o servidor L. Finalmente, o servidor L contata o servidor que
responsvel pelos nomes com a forma: computador.walnut.candy.foobar.com.
O servidor responsvel envia uma resposta (chamada Authoritative Answer) ao servidor
L, com o endereo IP para aquele nome ou com a indicao que aquele nome no existe.
Esse processo de procura atravs da hierarquia dos servidores, a fim de encontrar o
servidor que responsvel por um nome, chamado de Pesquisa de Resoluo Repetitiva e
utilizada somente quando um servidor precisa traduzir um nome. Os solucionadores, os quais as
aplicaes chamam, sempre requerem uma Pesquisa de Resoluo Recursiva. Isto , ele requer
a traduo completa a resposta para um pedido recursivo o endereo IP procurado ou uma
instruo do servidor responsvel que tal nome no existe.
153/223
154/223
independentemente. Assim, com o MIME, o usurio pode enviar um texto e anexar imagens.
Quando o receptor visualiza a mensagem, o sistema de e-mail mostra a mensagem de texto e
pergunta ao usurio como lidar com a imagem. Quando o usurio decide como lidar com o
anexo, o software MIME decodifica automaticamente o anexo.
Para alcanar transparncia na codificao e decodificao, o MIME adiciona duas
linhas no cabealho do e-mail: uma declara que o MIME foi usado para criar a mensagem; e
outra especifica como a informao MIME est disposta no corpo do texto. Por exemplo, as
linhas de cabealho abaixo:
MIME-Version: 1.0
Content-Type: Multipart/Mixed; Boundary=Mime_separator
Estas linhas especificam que a mensagem foi composta usando a verso 1.0 do MIME, e
que a linha que contm Mime_separator ir aparecer no corpo antes de cada parte da
mensagem. Quando o MIME usado para enviar uma mensagem padro de texto, a segunda
linha se torna:
Content-Type: text/plain
A vantagem principal do MIME a flexibilidade no h um padro especifico ou um
esquema nico de codificao que todos os emissores e receptores devem usar. Ao invs disso,
o MIME permite que novos sistemas sejam criados a qualquer momento. O emissor e receptor
podem usar um sistema convencional de e-mail para comunicar, fornecido pelo acordo no
esquema de codificao e um nome nico para o mesmo. Alm dissso, o MIME no especifica
um valor para ser usado ao separar as partes da mensagem ou uma maneira de nomear o sistema
de codificao usado. O emissor pode escolher qualquer separador, desde que este no aparea
no corpo do texto; o receptor usa ento a informao no cabealho para determinar como
decodificar a mensagem.
O MIME compatvel com sistemas de e-mail antigos. Em particular, um sistema de email que transfere a mensagem no precisa entender a codificao utilizada no corpo do texto
ou na linha do cabealho MIME a mensagem tratada exatamente como qualquer outra
mensagem de e-mail. O sistema de e-mail transfere a mensagem sem interpretar as linhas do
cabealho e trata o corpo do texto como um nico bloco de texto.
157/223
Como a figura mostra, a mensagem passa atravs da Internet no mnimo duas vezes.
Inicialmente uma nica cpia enviada do computador emissor ao e-mail gateway.
159/223
Aps este consultar o banco de dados das listas de endereos, o exploder gera uma
requisio para enviar cpias da mensagem. Um programa de transferncia de e-mail no
computador do gateway envia cada cpia da mensagem atravs da Internet para os
computadores destinatrios, onde um servidor armazena a mensagem na caixa de mensagem do
destinatrio.
Contedo
8456311@bubbles.soap.foobar.com
Como a figura mostra, o computador que tem a caixa de mensagens deve executar dois
servidores. O servidor convencional de e-mail aceita as mensagens de e-mail e as armazena na
caixa de mensagens correta. O e-mail pode ir tanto na direo do emissor original ou do
gateway de e-mail. E o servidor POP permite ao usurio em um computador remoto acessar a
caixa de mensagens.
Ambos os servidores, o de e-mail e o POP, se comunicam atravs da Internet, porm
temos grandes diferenas. Primeiro, o servidor de e-mail utiliza o protocolo SMTP, enquanto
que o servidor POP utiliza o protocolo POP. Segundo, o servidor de e-mail aceita uma
mensagem de um emissor arbitrrio, enquanto que o servidor POP permite apenas o usurio
acessar sua caixa de mensagens aps o mesmo fazer uma autenticao com senha. Terceiro, o
servidor de e-mail pode transferir apenas mensagens de e-mail; enquanto o servidor POP pode
fornecer informaes sobre o contedo da caixa de mensagens.
162/223
23.1 Introduo
Os captulos anteriores definiram o paradigma cliente-servidor e deram um exemplo de
uma aplicao de rede. Este captulo apresenta outro exemplo que permite transferir cpias de
um arquivo de um computador para outro. Alm da discusso sobre a interface de transferncia
de arquivos, o captulo considera o acesso aos arquivos e explica como o software utilizado usa
o paradigma cliente-servidor.
163/223
Para tal, o servio deve prover uma interface que permita tanto um usurio humano ou
um programa utiliz-lo-no. Para operar interativamente, o usurio humano abre o programa,
entra com um pedido e espera pela resposta. Para operar no modo batch, um programa de
transferncia administra a fila de pedidos. Quando ele lida com um pedido, o programa de
transferncia passa o pedido para o servio e espera pelo trmino da transferncia.
cr
macdef
proxy
sendport
delete
mdelete
put
status
account
debug
mdir
pwd
struct
append
dir
mget
quit
sunique
ascii
disconnect
mkdir
quote
tenex
bell
form
mls
Recv
trace
binary
get
mode
remotehelp
type
bye
glob
mput
rename
user
case
hash
nmap
reset
verbose
cd
help
ntrans
rmdir
cdup
lcd
open
runique
close
ls
prompt
send
A lista de comandos pode parecer grande demais para um iniciante por duas razes.
Primeira, a interface BSD contm opes que so raramente implementadas (por exemplo, o
comando proxy que permite comunicao simultnea com dois sites remotos). Segunda, a
interface prov muitas opes que lidam com detalhes antigos, alguns dos quais se tornaram
irrelevantes. Por exemplo, quando a interface foi definida, j existia uma verso do FTP para um
sistema operacional chamado TENEX. Entretanto, devido representao usada pelo TENEX
diferir da representao de arquivos usada pelo UNIX, foi introduzido um esquema para traduzir
uma representao para outra, e para isso foi criado o comando tenex, o qual executava tal
traduo. Hoje em dia, outros sistemas operacionais tm tomado o lugar do TENEX, fazendo
com que esse comando se tornasse inutilizado.
Similarmente, antigos sistemas computacionais implementavam o carriage control,
colocando um caracter extra no incio de cada linha do arquivo de texto, para especificar o
espaamento da impressora. Existem muitos padres de carriage control. Quando a interface
BSD foi projetada, opes foram includas a fim de permitir ao usurio especificar que um
arquivo particular inclusse o carriage control. A inteno era ter uma traduo do FTP entre os
diferentes padres de carriage control. Devido aos arquivos serem agora armazenados raramente
com carriage control, somente alguns fabricantes projetaram essa opo.
O FTP tambm acomoda diversas representaes de arquivos de texto. Por exemplo,
alguns sistemas operacionais usam um nico caracter de preenchimento de linha para separar as
linhas de um texto. Outros sistemas usam uma seqncia de dois caracteres que consiste em um
carriage return, seguido por um preenchimento de linha. O comando cr permite ao usurio
especificar qual representao uma mquina remota usa, tornando possvel ao FTP traduzir as
representaes local e remota.
Uma forma final de complexidade aparece porque a interface BSD tambm inclui
apelidos (por exemplo, muitos nomes para a mesma funo). Por exemplo, ambos os comandos
close ou disconnect podem ser utilizados para terminar uma conexo com um computador
remoto. Similarmente, bye e quit podem ser utilizados para sair do programa FTP e help e ?
podem ser utilizados para obter uma lista dos comandos disponveis.
166/223
Uma vez que ele sabe o nome do arquivo, o FTP executa a transferncia e informa ao
usurio quando ela estiver completa. O comando mget permite ao usurio o pedido de vrios
arquivos ao mesmo pedido. O usurio especifica uma lista de arquivos remotos e o FTP
transfere cada arquivo para o computador do usurio.
Para transferir uma cpia de um arquivo local para o computador remoto, o usurio
entra o comando put, send ou mput. Put e send so dois nomes para o mesmo comando que
transfere um s arquivo. Assim como com o get, o usurio deve entrar o nome de um arquivo no
computador local e pode tambm entrar um nome de arquivo diferente para usar no computador
remoto. Se nenhum nome de arquivo estiver presente na mesma linha de comando, o FTP
solicita-o ao usurio. O comando mput anlogo ao mget ele permite ao usurio pedir a
transferncia de vrios arquivos com um s comando. O usurio especifica uma lista de
arquivos e o FTP transfere cada um.
Tal comando como uma chave que reverte o modo toda vez que executado. Por isso,
ao entrar o comando verbose uma vez, o modo verbose desligado, e ao entr-lo mais uma vez,
o modo verbose ligado mais uma vez.
170/223
Alm da reduo de largura banda da rede, o esquema de acesso a arquivos usado pelo
NFS permite acesso compartilhado a arquivos. Um arquivo que est em um servidor NFS pode
ser acessado por vrios clientes. Para impedir que outros clientes interfiram com atualizaes, o
NFS permite que um cliente trave o arquivo. Quando ele termina de fazer as modificaes,
destrava o arquivo, permitindo o acesso dos demais.
A interface para o NFS diferente da interface para o FTP. Ao invs de criar uma
aplicao cliente separada, o NFS integrado em um sistema de arquivos de computador. Tal
integrao possvel porque o NFS prov as operaes convencionais de arquivos como abrir,
ler e escrever. Para configurar o NFS, um diretrio especial criado no sistema de arquivos do
computador, e associado a um computador remoto. Quando um programa de aplicao realiza
uma operao em um arquivo nesse diretrio, o software NFS cliente utiliza a rede para realizla em um arquivo no sistema de arquivos remoto. Por isso, uma vez que o NFS tenha sido
instalado e configurado, o sistema de arquivos do computador conter diretrios que
correspondem a sistemas de arquivos remotos qualquer operao realizada em um arquivo
dentro de um diretrio especial ocorre no arquivo remoto correspondente. A principal vantagem
em tal esquema a flexibilidade: qualquer programa de aplicao pode ser usado em um
arquivo remoto, porque a aplicao precisa apenas realizar operaes padro de arquivos.
172/223
24.1 Introduo
Captulos anteriores mostraram exemplos de servios de rede providos por programas
de aplicao. Os captulos descreveram as funes de clientes e de servidores, e mostraram
como cada servio usa o paradigma cliente-servidor. Esse captulo continua a discusso
considerando a World Wide Web e o Web Browsing interativo.
Depois de descrever o modelo de hipertexto e o conceito geral da Web, o captulo
examina a estrutura do software do browser. Mostra como o browser reage a uma seleo do
usurio, tornando-se um cliente e contatando o servidor para obter a informao e, ento,
disponibiliz-la ao usurio. O captulo tambm explica como um URL colocado em um
documento e descreve como um browser usa um URL para determinar qual protocolo utilizar e
qual servidor contatar.
24.7 Ttulos
O HTML inclui seis pares de sinalizadores que podem ser usados para mostrar ttulos na
pgina. Um sinalizador que tem a forma <Hi> marca o incio de um ttulo nvel i e um
sinalizador que tem a forma </Hi> marca o fim. Por exemplo, o texto do ttulo de nvel mais
importante deve estar entre os sinalizadores <H1></H1>. Os browsers normalmente mostram o
texto de um ttulo tipo 1 no maior tamanho de letra, o ttulo de nvel 2 um pouco menor, e assim
por diante. Por isso, quando para um browser o seguinte cdigo:
Ol.<BR><H1> Isto Um Ttulo</H1><BR>De volta ao normal.
O browser ir escolher um tamanho grande para o ttulo:
Ol
Isto Um Ttulo
De volta ao normal.
24.8 Listas
Alm do ttulo, o HTML permite que um documento contenha listas. O modo mais
simples a lista sem ordenao, a qual o browser ir apenas mostrar sem fazer qualquer tipo de
ordenao. Na especificao HTML, os sinalizadores <UL></UL> envolvem toda a lista, e cada
item da lista deve comear com o sinalizador <LI>. Usualmente, um browser coloca um ponto
na frente de cada item. Na maioria dos browsers, o cdigo fonte:
Aqui est uma lista com 5 nomes:
<UL>
<LI> Scott
<LI> Sharon
<LI> Jan
<LI> Stacey
<LI> Rebecca
</UL>
Esse texto vem depois da lista.
Produziria o texto seguinte:
Aqui est uma lista com 5 nomes:
Scott
Sharon
Jan
Stacey
Rebecca
Esse texto vem depois da lista.
176/223
177/223
Por isso, um documento HTML pode conter uma imagem ou um cone que corresponda
a um link de hipertexto, assim como uma seqncia de palavras.
179/223
Se o browser for bem desenvolvido, ele esconde todos os detalhes do usurio, que pode
no estar ciente de que um servio opcional foi executado. Por exemplo, uma transferncia de
arquivo pode estar associada a um item selecionvel na tela. Quando o usurio seleciona o item,
o browser usa o cliente FTP para obter uma cpia do arquivo.
Como uma transferncia de arquivo pode ser especificada em uma pgina da Web?
Lembre-se de que o primeiro campo num URL especifica o protocolo. O controlador usa o
campo para determinar qual o cliente a ser chamado. Por exemplo, se a URL especificar o
HTTP, o controlador chama o cliente HTTP. Similarmente, o URL:
ftp://ftp.cs.purdue.edu/pub/comer/netbook/client.c
Especifica que o browser deve usar anonimamente o FTP para obter o arquivo
pub/comer/netbook/client.c do computador ftp.cs.purdue.edu.
Um URL que especifique o FTP pode ser colocado em uma ncora HTML to
facilmente como um URL que especifique o HTTP. Por exemplo, o cdigo HTML abaixo:
A maioria dos exemplos nesse texto est disponvel
on-line. O cdigo fonte de
<A HREF=ftp://ftp.cs.purdue.edu/pub/comer/netbook/
client.c>
um exemplo de programa cliente
</A>
ou o cdigo de
<A HREF=ftp://ftp.cs.purdue.edu/pub/comer/netbook/
server.c>
um exemplo de programa servidor
</A>
esto disponveis.
Faz com que o browser mostre duas sentenas, parte das quais ser selecionvel:
A maioria dos exemplos nesse texto est disponvel on-line. O cdigo fonte de um
exemplo de programa cliente ou o cdigo de um exemplo de programa servidor esto
disponveis.
Se o usurio selecionar o primeiro segmento sublinhado, o browser usa o cliente FTP
para obter uma cpia do arquivo client.c; clicando no segundo segmento faz com que o browser
retorne o arquivo server.c. Depois de retornar uma cpia do arquivo, o browser verifica o
contedo e exibe o resultado.
O browser coloca uma cpia de cada item que ele obtm em um cache no disco local.
Quando um usurio seleciona um item, o browser verifica o cache do disco antes de tentar obter
uma nova cpia. Se o cache contiver o item, o browser obtm a cpia do cache sem usar a rede.
Manter itens em um cache pode melhorar o desempenho drasticamente um browser
pode ler um item do cache sem ter que esperar pelos delays da rede. Esse armazenamento
especialmente importante para usurios que possuem conexes de rede lentas. Por exemplo,
considere um usurio que se conecte Internet por uma conexo discada. Embora um modem
rpido possa transferir dados a uma taxa terica de 56Kbps, a taxa efetiva pode ser
substancialmente menor se a conexo possuir rudos indesejados. Em tais velocidades, obter um
item grande atravs da Internet pode levar muito mais tempo do que obt-lo do cache do disco
local. De fato, o acesso local pode parecer instantneo, quando comparado ao acesso Internet.
Sem contar com a grande melhoria na velocidade de acesso. Reter itens em cache por longos
perodos nem sempre desejvel. Primeiro, um cache pode ocupar muito espao em disco. Por
exemplo, suponha que um usurio visite 10 pginas, com 5 figuras grandes em cada uma delas.
O browser armazenar os documentos da pgina mais todas as 50 figuras no cache do disco
local. Segundo, a melhoria no desempenho s ocorre quando um usurio decide ver o mesmo
item de novo. Infelizmente, usurios freqentemente navegam pela rede porque esto
procurando informao; quando a informao encontrada, o usurio pra de navegar. Por
exemplo, um usurio que v 10 pginas, pode decidir que 9 delas no contm nada de
interessante. Por isso, manter cpias de tais pginas em cache no melhorar o desempenho,
porque o usurio nunca retornar quelas pginas. De fato, em tais situaes, o armazenamento
no cache diminui o desempenho, porque o browser leva tempo para armazenar os itens no disco
desnecessariamente.
Para ajudar os usurios a controlar o modo como o browser lida com o cache, a maioria
deles permite que o usurio ajuste a poltica de armazenamento. O usurio pode ajustar um
tempo limite de armazenamento e, ento, o browser remove os itens do cache depois que o
tempo limite expira. Os browsers normalmente mantm um cache durante uma sesso
particular. O usurio que no quer que os itens permaneam no cache depois de terminada uma
sesso e iniciada outra, pode solicitar um tempo de armazenamento igual a zero. Em tais casos,
um browser remove o cache sempre que o usurio termina uma sesso.
182/223
25.1 Introduo
Os captulos anteriores descreveram aplicaes especficas, que usam o modelo clienteservidor para se comunicarem atravs da rede, e mecanismos como o CGI que programadores
usam para construir sistemas cliente-servidor. Esse captulo continua a discusso sobre as
ferramentas que ajudam os programadores a criar sistemas cliente-servidor.
programador divide as tarefas em vrios conjuntos e usa as rotinas menores para lidar com cada
um deles. Se as tarefas resultantes precisarem de quantidades substanciais de cdigo, o
programador subdivide a tarefa e usa sub-rotinas para realizar cada uma das subtarefas. Por isso,
a forma geral de um programa consiste em uma hierarquia de chamadas de rotinas.
A hierarquia de rotinas de um programa pode ser representada em um grafo direcional,
em que cada n representa um rotina, e a ligao direcionada de um n X para um n Y,
significa que a rotina X contm uma chamada para a rotina Y. A representao grfica
conhecida como grfico de chamadas de rotinas. A figura abaixo mostra um exemplo:
Programa Principal
Rotina A
Rotina D
Rotina B
Rotina C
Rotina E
Rotina F
Programa Principal
cliente
Rotina A
Rotina D
Rotina B
servidor
Rotina C
Rotina E
Rotina F
185/223
Programa Principal
Procedimento B
Programa
Principal
Stub servidor
para o B
Stub cliente
para o B
Procedimento B
O exemplo da seo 25.4 mostrou a chamada da rotina no programa original antes dos
stubs do RPC terem sido adicionados. Quando a rotina principal chama a rotina B, os
argumentos que ela transmite devem concordar exatamente com o formato dos parmetros de B.
Isto , a chamada deve conter o nmero correto de argumentos; e o tipo de cada argumento deve
combinar com o tipo declarado para o parmetro.
J o exemplo desta seo, figura acima, mostra os stubs de comunicao, que devem ser
adicionados ao programa quando ele dividido em cliente e servidor. importante entender que
as interfaces da rotina no exemplo acima usam o mesmo nmero e tipo de argumentos que a
interface original da figura da seo 25.4. Por isso, a chamada da rotina principal para o stub
cliente e a chamada do stub servidor para a rotina B utilizam a mesma interface que uma
chamada convencional da rotina principal para a B. Mais importante, os stubs cliente podem
receber o mesmo nome da rotina que eles esto substituindo. Como resultado disso, o cdigo do
programa original no precisa ser modificado.
186/223
Finalmente, como a maioria das outras tecnologias RPC, o ONC RPC usa os protocolos
TCP/IP e permite que o programador escolha entre o transporte UDP ou TCP.
25.7.2 DCE RPC
O The Open Group definiu o Distributed Computing Environment (DCE), o qual
composto de muitos componentes e ferramentas que so designadas para trabalharem juntas. O
DCE inclui sua prpria tecnologia de chamada de rotinas remotas, que freqentemente
chamada de DCE/RPC e sua prpria IDL, a qual difere das outras em pequenos detalhes. O
DCE/RPC tambm permite que um cliente acesse mais de um servidor (por exemplo, algumas
rotinas remotas podem estar localizadas em um servidor, enquanto que outras rotinas podem
estar em outro). Em todos os casos, o DCE/RPC pode usar os protocolos TCP/IP, com a escolha
pelo programador entre o transporte por UDP ou TCP.
25.7.3 MSRPC
A Microsoft Corporation definiu sua prpria tecnologia de chamada de rotinas remotas,
a Microsoft Remote Procedure Call (MSRPC). Devido MSRPC ter sido derivada da
DCE/RPC, ela compartilha os mesmos conceitos centrais e a estrutura geral de programa.
Entretanto, a MSRPC difere em alguns pequenos detalhes. Ela define sua prpria IDL e tem seu
prprio protocolo que os stubs cliente e servidor usam para se comunicarem.
25.7.4 CORBA
Talvez o middleware com orientao a objeto mais conhecido o chamado Common
Object Request Broker Architecture (CORBA). O CORBA permite que um objeto inteiro seja
colocado no servidor e estende a execuo de mtodos usando a mesma abordagem geral
descrita anteriormente. Existe uma diferena, porque os proxies so instanciados em tempo real
como os outros objetos. Quando um programa recebe uma referncia de um objeto remoto, um
proxy local criado, que corresponde ao objeto criado. Quando o programa executa um mtodo
daquele objeto, o controle passa para o proxy local. O proxy ento envia uma mensagem atravs
da rede para o servidor, o qual executa o mtodo especificado e retorna os resultados. Por isso, o
CORBA faz com que a execuo de mtodos para objetos locais e remotos paream idnticos.
Alm de focar objetos em vez de rotinas, o CORBA difere das tecnologias RPC
convencionais porque ele mais dinmico. Nas tecnologias RPC convencionais, o programador
utiliza uma ferramenta para criar rotinas de stub quando constri o programa. No CORBA, o
software cria um proxy em tempo real quando necessrio (por exemplo, quando o mtodo
executado em um objeto remoto para o qual no existe proxy).
25.7.5 MSRPC2
A Microsoft desenvolveu uma segunda gerao do MSRPC chamado MSRPC2. A
Microsoft freqentemente utiliza o nome Object RPC (ORPC) ao invs de MSRPC2, porque a
segunda verso representa uma mudana mais significativa do que uma simples reviso. Ela
estende os conceitos do MSRPC para fornecer mais suporte aos objetos. As idias no MSRPC2
so derivadas de muitas fontes, incluindo a pesquisa feita pela Digital Equipment Corporation
usando o Modula-3.
25.7.6 COM/DCOM
Em outro esforo, a Microsoft Corporation tambm produziu o COM e o DCOM, os
quais so tecnologias com orientao a objeto. O Component Object Model (COM) uma
estrutura de software com orientao a objeto que foi definido em 1994. O padro define uma
interface binria entre os componentes em um dado computador, algumas vezes sendo referido
188/223
como um esquema de empacotamento. Com o COM, todos os objetos tinham nomes globais
nicos e todas as referncias de objetos usavam o esquema global.
Definido em 1998, o Distributed COM (DCOM) estendeu o COM criando um protocolo
de nvel de aplicao para as chamadas de rotinas remotas com orientao a objeto. O DCOM, o
qual foi proposto pela IETF como padro para a Internet, utiliza o ORPC para transporte. Como
o ORPC foi derivado do DCE/RPC, o DCOM usa exatamente o mesmo formato de pacote e
semntica para execuo remota, que o DCE/RPC utiliza para chamadas de rotinas remotas.
189/223
190/223
26.3 As Vantagens
Documento
Desvantagens
de
Cada
Tipo
de
consiste em uma ou mais linhas de texto e uma linha em branco. Cada linha do cabealho
especifica informaes sobre o documento e a representao de dados.
Aps o executar o programa CGI, o servidor examina o cabealho antes de retornar o
documento ao navegador que criou a requisio. Assim, quando necessrio, o programa CGI
pode usar o cabealho para se comunicar com o servidor. Por exemplo, o cabealho que consiste
da linha:
Content-type: text/html
Seguido de uma linha em branco, especifica que a resposta um documento HTML.
O cabealho da resposta de um programa CGI tambm pode ser usado para especificar
que o documento est em uma nova localizao. A tcnica conhecida como redirecionamento.
Por exemplo, suponha que o programa CGI associado com o seguinte URL:
http://someserver/cgi+bin/foo
E necessita referir-se s requisies que chegam ao documento associado com o URL:
http://someserver/new/bar.txt
O programa CGI pode gerar duas linhas de resposta:
Location: /new/bar.txt
<linha em branco>
Quando o servidor detecta a diretiva Location no cabealho, o mesmo ir responder
como se o navegador tivesse requisitado o documento /new/bar.txt (ao invs de cgi+bin/foo)
com o URL:
http://someserver/new/bar.txt
Quando invocado sem argumentos, o echo cria uma linha em branco de resposta. De
outra maneira, o echo escreve exatamente uma cpia de seus argumentos. Por exemplo, o
comando:
echo smord hplar
Gera uma linha de sada que contm as duas palavras:
smord hplar
O nico item no usual no script exemplo a construo date. O shell interpreta as
aspas graves como requisio de execuo do programa date e substitui o mesmo na sada.
Assim, antes de invocar o echo pela terceira vez, o shell substitui a string date pela data e hora
atuais. Como resultado, a terceira invocao de echo gera uma linha de resposta que contm a
data atual. Por exemplo, se o script executado em 3 de Junho de 1999, s 14 horas, 39 minutos
e 37 segundos, o script ir gerar a seguinte resposta:
Content-type: text/plain
This document was created on Thu Jun 3 14:19:37 EST 1999
O servidor que capaz de executar um programa CGI deve ser configurado antes de
executar o script. A configurao especifica o URL que o servidor usa para localizar o script.
Quando o navegador contata o servidor e requisita o URL especifico, o servidor executa o
programa. Quando o navegador recebe o documento, este ir exibir a seguinte linha ao usurio:
This document was created on Thu Jun 3 14:19:37 EST 1999
Diferente do documento esttico, o contedo do documento dinmico muda a cada vez
que o usurio instrui o navegador a recarregar o documento. Isto porque o navegador no
armazena um documento dinmico, a requisio para recarregar o documento faz com que o
navegador contate o servidor. O servidor executa o programa CGI, o qual cria um novo
documento com a data e hora atuais. Assim, o usurio v a mudana de contedo do documento
a cada vez que requisita a pgina.
195/223
Embora muitos detalhes sintticos faam com que o script parea complexo, sua
operao direta. Na essncia, o script mantm a lista de endereos IP em um arquivo local
chamado ipaddrs. Quando executado, o script procura o arquivo para o endereo de IP do
navegador. Se for encontrado, o script reporta que ele j foi contatado pelo navegador do
computador anteriormente; se no, o script adiciona o endereo IP do navegador ao arquivo, e
reporta que o contato foi o primeiro feito pelo navegador do computador.
O script usa a varivel global REMOTE_ADDR para obter o endereo IP do computador
que est executando o navegador que solicitou a requisio. Na linguagem shell, as variveis
so referenciadas com o smbolo dlar ($) frente do nome da varivel. Assim, a string
$REMOTE_ADDR substituda pelo valor da varivel REMOTE_ADDR.
O corpo principal do script consiste em um nico enunciado if-then-else. A instruo
usa o comando grep para determinar se o endereo IP do navegador aparece no arquivo ipaddrs.
O resultado da busca determina que o script siga o comando then ou siga o comando else, partes
do enunciado if. Se o endereo encontrado, o script emite uma mensagem de que a requisio
no a primeira. Se o endereo no est presente, o script adiciona o endereo ao arquivo, e
ento emite uma mensagem que aquele o primeiro contato.
Quando executado, o script gera trs linhas de resposta. Duas linhas de cabealho,
seguidas por uma nica linha de texto. A linha de texto contm o endereo IP do computador e
conta se alguma requisio foi feita anteriormente. Por exemplo, a primeira vez que o
computador 128.10.2.26 requisita o documento, o usurio receber a seguinte linha de resposta:
This is the first contact from computer 128.10.2.26
As requisies subseqentes para o documento, feitas pelo mesmo computador
produziria:
Computer 128.10.2.26 has requested this URL previously.
case "x$N" in
x)
N=1
echo "This is the initial page.<BR><BR>"
;;
x[0-9]*)
N=`expr $N + 1`
echo "You have refreshed this page $N times.<BR><BR>"
;;
*)
esac
echo "<A HREF=\"http://$SERVER_NAME$SCRIPT_NAME?$N\">"
echo "Click here to refresh the page.</A></HTML>"
O script descrito mais complexo que o exemplo anterior. Primeiro, o script emite um
documento HTML ao invs de um texto comum. Segundo, o script usa a varivel global
QUERY_STRING para determinar quando o servidor passou um argumento ao script. Terceiro,
o script concatena as variveis SERVER_NAME e SCRIPT_NAME para obter o URL do script, e
adiciona o marca de questo (?) e conta a varivel N. Quarto, o script usa um enunciado case
para escolher dentre trs possibilidades: a string do argumento est vazia, a string do argumento
contm um inteiro, ou a string do argumento contm algo mais. Em dois casos, o script emite a
resposta apropriada; no ultimo caso, o script reporta que o URL invalido.
Para entender como o script passa a informao de estado, assuma que o servidor
www.nonexist.com tenha sido configurado para que o script corresponda ao caminho /cgi/ex4.
Quando o usurio executa o URL: http://www.nonexist.com/cgi/ex4
O script ir gerar seis linhas de resposta:
Content-type: text/html
<HTML>
This is initial page. <BR><BR>
<A HREF = http://www.nonexist.com/cgi/ex4?1>
Click here to refresh the page. </A> </HTML>
Como o cabealho especifica que o documento do tipo HTML, o navegador ir
interpretar os comandos HTML e exibir trs linhas de resposta.
This is the initial page.
Click here to refresh the page.
Embora isto no aparea na tela do usurio, a informao de estado est embutida no
URL do documento. Para ver a informao de estado, olhe para o URL na verso HTML do
documento. Os dois ltimos caracteres, ?1, codificam a informao sobre o nmero de vezes
que a pgina foi atualizada. Se o usurio clicar na segunda sentena, o navegador ir requisitar o
seguinte URL: http://www.nonexist.com/cgi/ex4?1.
197/223
198/223
200/223
Como a figura mostra, um documento ativo comea com uma source representation. A
source representation contm declaraes para os dados locais e algoritmos de implementao
usados para computar e exibir informaes. Em adio, a source representation permite ao
programador inserir comentrios que ajudem os usurios a entenderem o programa. De fato,
como a source representation de um documento ativo similar a source representation de
programas de computador, o programador pode usar ferramentas convencionais de
programao, como editores de texto para criar e mudar a fonte de um documento ativo.
Embora algumas tecnologias de documento ativo obriguem que o navegador aceite e
intrprete um documento source, a maioria dos sistemas fornece uma otimizao para grandes
documentos: o compilador usado para traduzir um documento com source representation para
a binary representation, similar a representao de objeto usado em programas convencionais.
Na binary representation, cada declarao executvel representada na forma binria, e
identificadores no programa so substitudos por marcas binrias. Tambm como um arquivo
objeto convencional, a representao binria inclui uma tabela de smbolos, que grava as
relaes entre nomes na representao fonte e localizaes na representao binria.
Aps o navegador obter uma cpia do documento ativo na forma binria, o software no
navegador traduz o documento para o executable representation, e carrega o programa
resultante dentro da memria do navegador. A traduo similar aos passos finais que um
sistema operacional realiza quando carrega um programa na forma de objeto. O navegador deve
resolver as diferenas que permaneceram e deve conectar o programa biblioteca de rotinas e as
funes do sistema. Uma vez que a conexo esteja completa, a tabela de smbolos no mais
necessria todo o documento foi traduzido para valores binrios.
201/223
Na prtica, isso pode tornar a distino entre os componentes difcil, pois estes so
projetados para trabalharem juntos. Por exemplo, a linguagem contm atributos que dependem
do suporte de tempo de execuo, e a biblioteca contm o software que fornece a interface que
facilita o ambiente de tempo de execuo. As prximas sees caracterizam cada componente
separadamente; sees frente explicam as relaes entre eles.
203/223
204/223
Por outro lado, o conjunto inclui classes de alto nvel que fornecem uma janela
completa, com cabealho, bordas e barras verticais e horizontais. O programador pode
escolher quando usar a janela estilizada fornecida ou programar os detalhes.
O programador deve escolher entre as facilidades de alto nvel ou de baixo nvel
para interagir com o usurio. Por exemplo, um applet pode usar classes de alto nvel do
conjunto de ferramentas para criar botes, menus pull-down, ou caixas de dilogo na
tela. Alternativamente, o applet pode criar estes itens usando o conjunto de ferramentas
de baixo nvel de classes para desenhar linhas, especificar sombras, e controlar a fonte
usada no texto exibido.
Como o applet pode necessitar de interaes com documentos estticos, o
conjunto de ferramentas fornece classes que realizam a navegao Web convencional.
Por exemplo, dado um URL, o applet pode usar o conjunto de ferramentas de classes
para buscar e exibir um documento HTML esttico, buscar e exibir uma imagem, ou um
clipe de udio.
207/223
208/223
Um boto nomeado Ying, enquanto o outro nomeado Yang. Uma vez que o init est
completo, a tela aparece igual figura abaixo.
O cdigo que interage com o navegador pode ser encontrado no mtodo action.
Quando o usurio clica no boto Ying, o mtodo action realiza trs tarefas. Primeiro, o
enunciado if checa qual dos botes foram clicados. Segundo, o applet retorna o applet
correto. Por exemplo, se o usurio clicar no boto nomeado Ying, o applet ir invocar:
new URL(http://www.nonexist.com/ying)
Requisitando ao cliente HTTP do navegador que ele consiga uma cpia do
documento associado com http://www.nonexist.com/ying. A operao new cria um
objeto local para armazenar o documento. Terceiro, o cdigo Java:
getAppleContext().showDocument
Requisita ao intrprete HTML que exiba o documento na tela do usurio. O
navegador ir substituir a exibio atual com o novo documento; o usurio deve clicar
no boto voltar no navegador para retornar ao applet.
211/223
212/223
213/223
214/223
Inteiro em
decimal
Equivalente em
hexadecimal
Octeto de
tamanho
Octetos de valor
(em hexa)
27
1B
01
1B
792
318
02
03 18
24567
5FF7
02
5F F7
190345
2E789
03
02 E7 89
Ao invs disso, referncias indexadas esto implcitas quem envia deve saber que o
objeto referido uma tabela e deve anexar a informao de indexao no nome dele. Por
exemplo, a varivel MIB:
Prefixo MIB padro.ip.TabelaRoteamentoIP
Corresponde a uma tabela de roteamento IP, da qual cada entrada possui vrios campos.
Conceitualmente, uma tabela indexada pelo endereo IP de destino. Para obter o valor de um
campo em particular dentro de uma entrada, o administrador especifica o nome na forma:
Prefixo MIB padro.ip.TabelaRoteamentoIP.EntradaRotaIP.campo.endIPdest
Onde o campo corresponde a um dos campos vlidos em uma entrada e o endIPdest
um endereo IP de 8 bytes que usado para indexar. Por exemplo, o campo ProxSaltoRotaIP
corresponde ao prximo salto de uma entrada. Quando se converte a representao para
nmeros inteiros, o pedido de prximo salto fica assim: 1.3.6.1.2.1.4.21.1.7.destino
Onde 1.3.6.1.2.1 o prefixo MIB padro, 4 o cdigo para ip, 21 o cdigo para
TabelaRoteamentoIP, 1 o cdigo para EntradaRotaIP, 7 o cdigo para o campo
ProxSaltoRotaIP e o destino o valor numrico do endereo IP do destino.
217/223
29.1 Introduo
Nos captulos anteriores foi descrito como os sistemas de hardwares e softwares de rede
operam. Tambm foi explicado como aplicaes cliente e servidor usavam os equipamentos de
rede para se comunicarem. Este captulo considera o importante aspecto da segurana da rede. O
captulo caracteriza os problemas de segurana, descreve os nveis de segurana que os usurios
esperam de um sistema de rede e explica tcnicas bsicas utilizadas para melhorar a segurana
da rede.
Um segundo aspecto de valor est nas perdas financeiras que uma organizao pode
sofrer se a informao estiver incorreta. Por exemplo, se uma pessoa no autorizada aumentar o
salrio por hora em um banco de dados da folha de pagamento, a companhia pode ter custos no
esperados, pois os empregados receberiam dinheiro a mais. Um terceiro aspecto de valor est
nos custos indiretos que podem ocorrer de violaes na segurana. Por exemplo, se as
informaes da folha de pagamento se tornarem pblicas, competidores podem escolher
contratar trabalhadores, o que resulta em custos de contratao e treinamento de substitutos,
assim como o aumento de salrio necessrio para manter outros empregados.
E = encriptar (K , M)
M = decriptar (K , E)
221/223
192.5.48.0
Roteador
pacotes que carregam comunicao da World Wide Web, enquanto permite pacotes que
carregam trfego de e-mail.
Um mecanismo de filtro de pacotes permite que um administrador especifique
combinaes complexas de endereos de origem e destino, e servios. Tipicamente, o software
de filtro de pacotes permite que o administrador especifique combinaes booleanas de origem,
destino e tipo de servio. Por isso, um administrador pode controlar o acesso a servios
especficos em computadores especficos. Por exemplo, o administrador pode escolher bloquear
todo o trfego destinado para o servio FTP no computador 128.10.2.14, todo o trfego da
World Wide Web que deixa o computador 192.5.48.33 e todo o e-mail do computador
192.5.48.34. O filtro bloqueia apenas as combinaes especificadas o filtro deixa passar o
trfego destinado para outros computadores e trfego para outros servios nos computadores
especificados.
Rede da empresa
Internet
Filtro de pacotes
que protege a
organizao