Anda di halaman 1dari 89

SANTA CATARINA

Campus So Jos

Redes de Computadores e a Internet

Evandro Cant u
Instituto Federal de Santa Catarina Campus So Jos a e cantu@ifsc.edu.br

Julho de 2009.

Apresentao ca

O objetivo desde texto servir de material de apoio para um curso introdutrio de redes de e o computadores, voltado para a disciplina de Redes de Computadores I do CST em Sistemas de Telecomunicaes e para a disciplina de Redes de Computadores do Curso Tcnico de Telecoco e municaes do Instituto Federal de Santa Catarina, Campus So Jos. co a e As redes de computadores so estudadas tomando como referncia a arquitetura Internet, a e estudada em torno de seus principais protocolos, o TCP/IP. A principal referncia bibliogrca utilizada na construo deste material foi o livro de e a ca KUROSE e ROSS, Redes de Computadores e a Internet: Uma abordagem top-down, no qual os autores abordam os conceitos de redes de computadores, iniciando pelas aplicaes e co depois descendo pelas demais camadas que formam a arquitetura Internet. As RFCs (Request for comments), que constituem os padres para a Internet, tambm foram consultadas e sempre o e que poss foram inclu vel dos ilustraes e desenhos constantes nestes documentos. co O texto est organizado em seis cap a tulos. O primeiro faz uma introduo `s redes de comca a putadores e a arquitetura Internet, dando uma viso ampla das redes e dos principais conceitos a envolvidos. O segundo cap tulo apresenta os protocolos e as aplicaes de rede, apresentando co em particular a aplicao WWW, o correio eletrnico e a transferncia de arquivos e a aplicao ca o e ca DNS. O terceiro cap tulo apresenta os protocolos de transporte da Internet, UDP e TCP. O quarto cap tulo aparesenta os protocolos de rede da Internet, cujo principal componente o e protocolo IP. Finalmente, o quinto cap tulo apresenta as redes locais e os protocolos de enlace, com destaque para a tecnologia Ethernet.

Evandro Cant, Julho de 2009. u

Sumrio a

1 Introduo as redes de computadores e a Internet ca 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 A Rede Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formas de conectividade em rede . . . . . . . . . . . . . . . . . . . . . . . Classicaao das redes quanto a abrangncia geogrca . . . . . . . . . . . c e a Comutao de pacotes X comutao de circuitos . . . . . . . . . . . . . . . ca ca

5 5 7 8 9

Tipos de roteamento em redes de comutaao de pacotes . . . . . . . . . . . 11 c Vazo, atraso e perda de pacotes . . . . . . . . . . . . . . . . . . . . . . . 13 a Suporte a servios comuns para as aplicaes . . . . . . . . . . . . . . . . . 14 c co Padronizao na rea de redes de computadores . . . . . . . . . . . . . . . 15 ca a Arquitetura de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Aplicaes Internet e co Protocolos de Aplicao ca 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9

21

Protocolos de aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ca Clientes e servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Portas e comunicaao atravs da rede . . . . . . . . . . . . . . . . . . . . . 22 c e Endereamento das aplicaoes . . . . . . . . . . . . . . . . . . . . . . . . . 22 c c Agente usurio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 a Servios de transporte utilizados pelas aplicaes c co . . . . . . . . . . . . . . 23

Protocolo HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Protocolo FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Protocolo SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.10 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3 Camada de Transporte da Internet 3.1 31

O servio de multiplexaao e demultiplexao de aplicaes . . . . . . . . . 31 c c ca co 1

3.2

UDP (User Datagram Protocol ) . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.1 Checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 . . . . . . . . . . . . . . . . . . . . 34

3.3

TCP (Transmission Control Protocol ) 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8

Mecanismo de transmisso Garantida . . . . . . . . . . . . . . . . . 35 a Segmento TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Nmeros de seqncia e reconhecimento no TCP u ue . . . . . . . . . . 38

O servio transferncia de dados garantida no TCP . . . . . . . . . 40 c e Gerenciamento de conexes no TCP . . . . . . . . . . . . . . . . . . 42 o Controle de uxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Temporizaao no TCP . . . . . . . . . . . . . . . . . . . . . . . . . 47 c Controle de congestionamento no TCP . . . . . . . . . . . . . . . . 48 51

4 Camada Rede 4.1

Protocolo IP (Internet protocol ) . . . . . . . . . . . . . . . . . . . . . . . . 51 4.1.1 4.1.2 Datagrama IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Fragmentao do IP . . . . . . . . . . . . . . . . . . . . . . . . . . 54 ca

4.2

Endereamento IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 c 4.2.1 4.2.2 4.2.3 Classes de endereamento de IP . . . . . . . . . . . . . . . . . . . . 56 c Diviso em sub-redes . . . . . . . . . . . . . . . . . . . . . . . . . . 58 a Endereos IP privados . . . . . . . . . . . . . . . . . . . . . . . . . 59 c

4.3 4.4 4.5 4.6 4.7

NAT (Network Address Translation) . . . . . . . . . . . . . . . . . . . . . 60 protocolo DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Protocolo ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Protocolo ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Roteamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.7.1 Roteamento esttico e protocolos de roteamento . . . . . . . . . . . 67 a

4.8

Protocolo IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.8.1 4.8.2 4.8.3 4.8.4 Estrutura do datagrama IPv6 . . . . . . . . . . . . . . . . . . . . . 68 ICMPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Autocongurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ca Transiao de IPv4 para IPv6 . . . . . . . . . . . . . . . . . . . . . . 74 c 77

5 Protocolos de Enlace e Redes Locais 2

5.1

Protocolos de enlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.1.1 5.1.2 5.1.3 Servios oferecidos pelos protocolos de enlace . . . . . . . . . . . . . 77 c Protocolos de enlace ponto-a-ponto . . . . . . . . . . . . . . . . . . 79 Protocolos de enlace de mltiplo acesso u . . . . . . . . . . . . . . . 80

5.2

Redes Locais 5.2.1 5.2.2 5.2.3 5.2.4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Topologia de redes locais . . . . . . . . . . . . . . . . . . . . . . . . 81 Placas adaptadoras . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Endereos f c sicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.3

Hubs, pontes e switches 5.3.1 5.3.2 5.3.3

Hubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Pontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Cap tulo 1 Introduo as redes de ca computadores e a Internet


1.1 A Rede Internet

A rede Internet hoje a principal redes de computadores no mundo e ser utilizada como e a exemplo principal no nosso estudo sobre redes de computadores. A Internet na verdade uma rede de redes, interligando milhes de dispositivos e o computacionais espalhados ao redor do mundo, cuja topologia bsica est ilustrada na a a gura 1.1. A maioria dos dispositivos que compem a Internet formada por computadores o e pessoais, estaes de trabalho, ou servidores, que armazenam e transmitem informaoes, co c como por exemplo, pginas Web, arquivos de texto ou mensagens eletrnicas. Todos estes a o dispositivos so chamados hospedeiros (hosts) ou sistemas terminais. a As aplicaoes de rede, como por exemplo, paginaao na Web, transferncia de c c e arquivos ou correio eletrnico, rodam nos sistemas terminais. o Os sistemas terminais, assim como os principais componentes da Internet, precisam de protocolos de comunicao, que servem para controlar o envio e a recepao das ca c informaoes na Internet. O TCP (Transmission Control Protocol ) e o IP (Internet Protoc col ) so os principais protocolos da Internet, da o fato de a Internet ser tambm conhecida a e como rede TCP/IP. Os sistemas terminais so conectados entre si por meio de enlaces de comunicao, a ca que por sua vez podem ser de diferentes tipos, como por exemplo, um enlace ponto-a-ponto (tipo o PPP) ou multiponto (como uma rede local Ethernet). Os enlaces de comunicaao, c por sua vez, so suportados por um meio f a sico, os quais podem ser cabos coaxiais, os de cobre, bras opticas ou o ar a partir do uso do espectro de freqncia de rdio. ue a Na Internet, nem todos os computadores so diretamente conectados, neste caso, a utilizam-se dispositivos de chaveamento intermedirio, chamados roteadores (routers ou a ainda gateways). Em cada roteador da Internet as mensagens que chegam nos enlaces de entrada so a armazenadas e encaminhadas (store-and-forward ) aos enlaces de sa da, seguindo de 5

Figura 1.1: Rede Internet

(KUROSE; ROSS, 2006a).

roteador em roteador at seu destino. Neste processo, a tcnica de comutao utilizada e e ca e conhecida como comutao de pacotes, em contraste com a comutao de circuitos ca ca que comumente utilizada nos sistemas telefnicos. e o Na comutaao de pacotes, as mensagens que sero transmitidas so fragmentadas em c a a pacotes menores, os quais viajaram na Internet de forma independente uns dos outros. O protocolo IP o responsvel por estabelecer a rota pela qual seguir cada pacote e a a na malha de roteadores da Internet. Esta rota constru tendo como base o endereo e da c de destino de cada pacote, conhecido como endereo IP. c Alm de um endereo IP, um nome tambm pode ser associado a um sistema terminal e c e a m de facilitar sua identicao por ns humanos. Por exemplo, 200.18.10.1 o endereo ca o e c IP e www.ifsc.edu.br o nome do servidor Web do Instituto Federal de Santa Catarina. e A aplicaao DNS (domain name system) associa dinamicamente nomes a endereos IP. c c Em outras palavras, pode-se dizer que a Internet uma rede de redes, interconectando e redes de computadores pblicas e privadas, as quais devem rodar o protocolo IP em u conformidade com a convenao de endereos IP e nomes da Internet. c c A topologia da Internet hierrquica, onde os sistemas terminais so conectados a e a a provedores locais (ou ISP Internet Service Provider ), que por sua vez so conectados a a provedores regionais, e estes ultimos a provedores nacionais ou internacionais. O provedor local do IF-SC em So Jos est conectado ao provedor nacional da RNP a e a (Rede Nacional de Ensino e Pesquisa www.rnp.br) (veja mapa da rede da RNP no endereo www.rnp.br/backbone). c A conexo de um computador a um provedor local feita por meio de uma rede a e de acesso, a qual pode ser um acesso residencial (por exemplo, via modem e linha discada) ou acesso corporativo via rede local. Todos os conceitos a pouco citados sero nossos objetos de estudo ao longo deste a curso de redes de computadores. Iniciaremos a partir de alguns conceitos gerais sobre redes e depois avanaremos em direao aos conceitos espec c c cos que compe a arquitetura o Internet.

1.2

Formas de conectividade em rede

Uma rede de computadores conexo de dois ou mais computadores para permitir o e a compartilhamento de recursos e a troca de informaoes entre as mquinas. c a A conectividade dos computadores em rede pode ocorrer em diferentes escalas. A rede mais simples consiste em dois ou mais computadores conectados por um meio f sico, tal como um par metlico ou um cabo coaxial. O meio f a sico que conecta dois computadores costuma ser chamado de enlace de comunicao e os computadores so chamados de ca a hospedeiros (ou hosts). Um enlace de comunicaao limitado a um par de ns chamado c o e de enlace ponto-a-ponto. Um enlace pode tambm envolver mais de dois ns, neste e o caso, podemos cham-lo de enlace multiponto. Um enlace multiponto, formando um a barramento de mltiplo acesso, um exemplo de enlace utilizado nas redes locais, como u e uma rede local Ethernet. A gura 1.2 ilustra estas formas de conectividade em rede. 7

(a) Ponto a ponto.

(b) Multiponto.

Figura 1.2: Conectividade em rede. Se as redes de computadores fossem limitadas a situaes onde todos os ns fossem co o diretamente conectados a um meio f sico comum, o nmero de computadores que poderiam u ser interligados seria tambm muito limitado. Na verdade, numa rede geogracamente e distribu da, como a Internet, nem todos os computadores precisam estar diretamente conectados. Uma conectividade indireta pode ser obtida usando uma rede comutada. Nesta rede comutada podemos diferenciar os ns da rede que esto na sua periferia, o a como computadores terminais conectados ao ncleo da rede via enlaces ponto-a-ponto ou u multiponto, daqueles que esto no ncleo da rede, formado por comutadores ou roteadores, a u como mostra a gura 1.3. Note que esta ultima forma de conectividade equivalente a e mostrada na gura 1.1 que mostrou a topologia bsica da Internet. a

Figura 1.3: Rede chaveada.

1.3

Classicao das redes quanto a abrangncia geca e ogrca a

Uma forma de classicar as redes de computadores quanto a sua abrangncia geogrca. e e a Dois exemplos bem conhecidos so as rede locais (ou LANs local area networks) e a as redes geogracamente distribu das (ou WANs wide area networks). As LANs geralmente esto limitadas ao espao de uma instituiao. As WANs, por sua vez, tm a c c e alcance global, como a Internet. Alm da questo do tamanho, este tipo de classicao tambm tem relaao com a e a ca e c tecnologia utilizada para interconexo em rede. Por exemplo, uma rede local geralmente a conecta diretamente seus hospedeiros por um enlace multiponto, como descrito na sesso a anterior. As WANs, por outro lado, geralmente so formadas pela interconexo de vrias a a a redes por meio de elementos de chaveamento, como roteadores. Outras redes so ainda classicadas como redes metropolitanas (MANs metroa politan area networks), as quais tem abrangncia de uma regio metropolitana. Quanto e a as tecnologias empregadas nas redes MANs, podem ser tanto a interconexo de redes por a 8

meio de elementos de chaveamento e utilizando um backbone comum, como tambm as e novas tecnologias redes sem o, como as redes WiMax. Outra denominaao utilizada so as redes pessoais (PAMs personal area network ), c a as quais tem a abrangncia de uma sala, como as redes Bluetooth (IEEE802.15) ou as redes e de sensores sem o (IEEE802.15.4), as quais permitem interconectar diversos disposistivos por meio de enlaces sem o.

1.4

Comutao de pacotes X comutao de circuitos ca ca

Nas redes de computadores se utiliza a comutao de pacotes como tecnologia de ca comunicao no ncleo da rede, em contraste com as redes telefnicas tradicionais que ca u o usam a comutao de circuitos. ca Na comutao de circuitos, quando dois sistemas terminais desejam se comunicar ca a rede estabelece um circuito dedicado m-a-m entre os dois sistemas. E por exemplo o que acontece numa ligaao telefnica. A partir do nmero discado, a rede estabelece um c o u caminho entre os dois interlocutores e reserva um circuito para possibilitar a conversaao. c O circuito car reservado durante todo o tempo em que durar a comunicao. a ca A comutaco de circuitos se mostrou ineciente para ser aplicada nas redes de compua tadores devido as caracter sticas do trfego nestas redes. Nas primeiras redes de compua tadores as aplicaoes t c picas eram o acesso remoto e a transferncia de arquivos, nas quais e o trfego consistia de um uxo espordico de dados, com curtos intervalos de atividade a a espaados no tempo, diferente do uxo cont c nuo do trfego telefnico. a o Na comutao de pacotes, os recursos da rede no so reservados. As mensagens ca a a usam os recursos da rede na medida da necessidade, compartilhando os recursos na forma de uma multiplexao estat ca stica, como mostra a gura 1.4. Considere, por exemplo, o que acontece quando um computador deseja enviar um pacote de dados a outro computador da rede. Como na comutao de circuitos, o pacote ser transmitido sobre uma srie ca a e de diferentes enlaces de comunicaao, todavia, no haver uma reserva de um circuito c a a m-a-m. O pacote ser encaminhado de roteador em roteador, e caso o enlace de sa a da de um roteador de sua rota esteja ocupado, o pacote dever ser armazenado e aguardar a a liberaao do enlace em uma la, sofrendo um atraso. c Os defensores da comutaao de pacotes sempre argumentam que a comutao de c ca circuitos ineciente, pois reserva o circuito mesmo durante os per e odos de silncio na coe municao. Por exemplo, durante uma conversa telefnica, os silncios da conversao, ou ca o e ca as esperas para chamar uma outra pessoa, no podem ser utilizados para outras conexes. a o Alm disto, os tempos necessrios para o estabelecimento de circuitos m-a-m so grane a a des, alm de ser uma tarefa complicada e requerer esquemas complexos de sinalizao ao e ca longo de todo o caminho da comunicao. ca Por outro lado, os opositores da comutao de pacotes argumentam que a mesma ca no seria apropriada para aplicaes tempo real, como por exemplo conversas telefnicas, a co o devido os atrasos variveis em las de espera, dif a ceis de serem previstos. Todavia, com o desenvolvimento de tcnicas espec e cas e o aumento da velocidade dos enlaces, observa-se uma tendncia em direao a migraao dos servios telefnicos tambm para a tecnologia e c ` c c o e de comutaao de pacotes. c 9

Figura 1.4: Comutacao de Pacotes

(KUROSE; ROSS, 2006a).

Comutao de pacotes X comutao de mensagens ca ca Na comutao de pacotes moderna, o computador que vai transmitir uma mensagem ca longa, fragmenta esta mensagem em pacotes menores antes de envi-la pela rede. O a receptor, por sua vez, reagrupa os pacotes recebidos para formar a mensagem original. Este processo realizado visando melhorar a performance da rede. e Uma comutao de pacotes na qual o emissor no fragmenta a mensagem chamada ca a e de comutao de mensagens. ca Considere o exemplo apresentado por Kurose e Ross (2006b), ilustrado na gura 1.5, na qual uma mensagem de 7,5 Mbits enviada entre um computador origem e um destino, e passando por dois roteadores e trs enlaces. Considere ainda que cada enlace tem taxa de e transmisso de 1,5 Mbps. Assumindo que no h congestionamento na rede, a mensagem a a a leva 5 segundos para ser transmitida da origem at o primeiro roteador. O atraso de e transmisso dado pelo quociente entre o tamanho do pacote (bits) pela transmisso do a e a enlace (bits/seg). Como em cada roteador a mensagem deve ser armazenada e transmitida, a mesma s pode ser reencaminhada aps ser recebida completamente pelo roteador. o o Desta forma, o tempo total para a mensagem percorrer os trs enlaces e ser transmitida e da origem at o destino de 15 segundos. e e

Figura 1.5: Comutaao de pacotes x comutaao de mensagens. c c Suponha agora que a mesma mensagem foi fragmentada em 5000 pacotes, cada um com 1,5 Kbits. Neste caso, cada pacote leva 1 mseg para ser transmitido da origem at e o primeiro roteador. Todavia, enquanto este pacote movido do primeiro roteador para e 10

o segundo, outro pacote pode j ser enviado da origem at o primeiro roteador. Assim a e o segundo pacote chega ao primeiro roteador no tempo 2 mseg. Seguindo neste lgica, o o ultimo pacote chega ao primeiro roteador no tempo 5000 mseg = 5 segundos. Como este ultimo pacote deve ainda percorrer os dois ultimos enlaces, ele chegar ao destino no a tempo 5,002 segundos. No segundo caso o tempo total para transmitir os 7,5 Mbits foi reduzido praticamente a 1/3 do tempo anterior! Porque isto ocorre? Observe que na comutao de mensagem, ca enquanto um n est transmitindo, os demais ns permanecem ociosos. No caso da o a o comutao de pacotes, uma vez que o primeiro pacote chega ao ultimo roteador, teremos ca trs ns transmitindo ao mesmo tempo, otimizando o uso dos enlaces. e o Outra vantagem da comutaao de pacotes ser na recuperaao de poss c a c veis perdas ou erros de bits nos pacotes. Quando uma perda de pacotes ou erro ocorre, muitas vezes o pacote precisa ser retransmitido. No caso de uma mensagem segmentada em vrios pacotes, apenas os pacotes com erro precisam ser retransmitidos e no a mensagem a a inteira. A desvantagem da comutao de pacotes ser as informaoes adicionais que precisam ca a c ser adicionadas ao cabealho (header ) de cada pacote ou mensagem. c

1.5

Tipos de roteamento em redes de comutao de ca pacotes

H duas classes de redes de comutaao de pacotes, as redes baseadas em datagramas, a c como a Internet, e as redes baseadas em circuito virtual. A diferena bsica destas duas c a redes est na forma como os pacotes so roteados em direao ao destino. a a c

Roteamento em redes baseadas em circuito virtual


Nas redes baseadas em circuito virtual, a rota para os pacotes estabelecida a priori, e numa fase de estabelecimento do circuito virtual. Uma vez estabelecido o circuito virtual, todos os pacotes seguem pela mesma rota, cada um deles carregando a informao de qual ca circuito virtual o mesmo deve tomar em cada roteador. Os exemplos de redes que utilizam esta tcnica incluem as redes X.25, as redes frame-relay e as redes ATM (asynchronous e transfer mode). O processo de estabelecimento de um circuito virtual similar ao estabelecimento e de conexo nas redes de comutaao de circuitos, entretanto, os enlaces individuais no a c a cam reservados de forma exclusiva para uma unica conexo, podendo, durante uma a transmisso, serem compartilhados por outras transmisses. a o

Roteamento em redes baseadas em datagrama


Nas redes baseadas em datagramas, no h estabelecimento de conexo ou circuito a a a virtual. Os pacotes so encaminhados em funao do endereo do destino. a c c 11

Em muitos aspectos as redes baseadas em datagramas so anlogas aos servios posa a c tais. Quando algum vai enviar uma carta a um destinatrio, o mesmo coloca a carta e a em um envelope e escreve o endereo do destino sobre o envelope. O endereo tem uma c c estrutura hierrquica, incluindo, no caso do Brasil, o pa o estado, a cidade, a rua e a s, o nmero da casa. Por exemplo, se algum enviar uma carta da Frana para sua casa, u e c o correio da Frana primeiro vai direcionar a carta para o centro postal do Brasil (por c exemplo, situado em So Paulo). O centro postal do Brasil vai ento direcionar a carta a a para Santa Catarina, estado destino da carta (na agncia central de Florianpolis, por e o exemplo). A agncia de Florianpolis vai ento direcion-la a agncia de sua cidade, que e o a a e por sua vez vai repassar ao carteiro para entregar a carta emsua casa. Na rede baseada em datagrama, cada pacote atravessa a rede contendo no cabealho c o endereo do n destino, que como o endereo postal, tem uma estrutura hierrquica. c o c a Quando o pacote chega a um roteador, o mesmo examina uma parte do endereo e o c encaminha ao roteador adjacente. No prximo roteador o processo se repete. o Na Internet a comutaao de datagramas implementada pelo protocolo IP, o qual o c e e responsvel por estabelecer a rota pela qual seguir cada pacote na malha de roteadores. a a Esta rota constru tendo como base o endereo de destino de cada pacote, conhecido e da c como endereo IP. c O servio de comunicao por datagramas oferecido pelo protocolo IP conhecido c ca e como servio melhor esforo (best eort), uma vez que no h garantia que o dado c c a a chegue ao destino. Este servio envolve cada roteador no caminho entre o computador c origem e o destino da comunicaao. c A gura 1.6 ilustra, na forma de um mapa conceitual, uma taxonomia das redes de telecomunicaes, mostrando as diferentes formas de comutaao e multiplexaao utilizaco c c das.

Figura 1.6: Taxonomia das redes de telecomunicaes. co

12

1.6

Vazo, atraso e perda de pacotes a

Segundo Peterson e Davie (2004) a performance das redes de pacotes pode mensurada de dois modos principais: Vazo (throughput), tambm chamada de largura de banda (bandwith); a e Atraso (delay). A vazo denida como o nmero de bits que podem ser transmitidos sobre a rede a e u num dado tempo, sendo expressa em bits/segundo (bps). Por exemplo, numa rede Ethernet podemos ter como vazo 10Mbps. Muitas vezes usa-se o termo taxa de transmisso a a para se referir a vazo. a O atraso o tempo que um pacote leva para atravessar uma rede desde a origem e at o destino, passando pelos roteadores e enlaces intermedirios. O atraso medido em e a e termos de tempo. Por exemplo, uma rede transcontinental pode ter um atraso de 20 milisegundos, isto , um pacote leva 20 ms para atravessar a rede. e Ao percorrer uma rede, um pacote sofre uma srie de atrasos em cada um dos ns e o do caminho. Este atraso em cada n da rede tem quatro componentes principais: o o atraso de processamento, o atraso de la, o atraso de transmisso e o atraso de a propagao (KUROSE; ROSS, 2006b). ca Atraso de processamento E o tempo necessrio para examinar o cabealho do pacote, checar a integridade dos a c dados recebidos e determinar para onde o mesmo dever ser encaminhado. Estes a atrasos geralmente esto na ordem de micro-segundos. a Atraso de la E o tempo que cada pacote espera em la nos roteadores antes de ser encaminhado ao prximo enlace. Este atraso varivel e depende do trfego na rede. Se a la o e a a estiver vazia e no houver outro pacote sendo transmitido o atraso zero. Se h a e a pacotes na la o tempo de espera pode ser longo e pode chegar a ordem de milisegundos. Atraso de transmisso a E o tempo necessrio para que cada bit do pacote seja empurrado para dentro do a enlace. Se o tamanho do pacote for L bits e a taxa de transmisso do enlace for R a bits/seg. Ento o atraso de transmisso ser L/R segundos. a a a Atraso de propagao ca Uma vez que o pocote foi empurrado para dentro do enlace, o atraso de propagaao c e o tempo de viagem at o prximo n. Este tempo funo da distncia entre os ns e o o e ca a o e da velocidade de propagaao do sinal no meio f c sico. A velocidade de propagaao c depende do meio f sico (par tranado, bra ptica, espectro eletromagntico, etc) c o e e um pouco menor ou igual a velocidade da luz. Para distncia pequenas, como e a num enlace entre dois computadores de um campus, este atraso pode ser desprez vel, 13

cando na ordem de poucos micro-segundos. Para grandes distncias, como num a enlace de satlite, pode levar um tempo importante, da ordem de centenas de milie segundos. O atraso total m a m ser a soma dos atrasos em cada um dos ns do caminho. a o dn = dproc + df ila + dtrans + dprop o

Perda de pacotes
A perda de pacotes ocorre quando a capacidade de armazenamento da la de um roteador se esgota. Neste caso os novos pacotes que chegam so descartados (dropped ) e so a a considerados perdidos. A frao dos pacotes perdidos aumenta a medida que a intensidade ca de trfego aumenta. a Pacotes corrompidos totalmente tambm podem ser considerados como perdidos. e

1.7

Suporte a servios comuns para as aplicaoes c c

O objetivo das redes de pacotes oferecer um suporte de comunicao para que as e ca aplicaoes rodando em dois computadores remotos possam trocar informaoes. c c Intuitivamente, podemos ver a rede como provendo um canal lgico de comunicao o ca para que os processos de aplicaao cliente e servidor possam se comunicar. Para usar este c canal de comunicaao, os programas de aplicao cliente enviam seus pedidos atravs de c ca e uma porta, que conecta o cliente ao servidor, e atravs da qual ele espera a resposta do e servio requisitado. c e Dois tipos comuns de servio solicitado pelas aplicaoes a rede so: c c ` a Servio tipo pedido/resposta (request/reply); c Servio tipo uxo de dados tempo real (audio/video streaming). c A paginaao na Web um exemplo de servio tipo pedido/resposta, onde um processo c e c cliente solicita uma informaao e um processo servidor fornece a informao solicitada. c ca No h restries de tempo entre o pedido e a resposta, entretanto, necessrio que a a a co e a informaao transmitida seja livre de erros. c Uma conversa telefnica via Internet um exemplo de uxo de dados em tempo real, o e neste caso h restries temporais na transmisso, por outro lado, um pequeno silncio a co a e ocasionado por um erro ou ru pode no ser um problema grave para o entendimento do a geral da conversa. Para estes dois tipos de requisies de servios, muitas redes de computadores dispem co c o de dois tipos de servios de transporte: c Servio orientado a conexo, com transmisso de dados garantida; c a a 14

Servio no orientado a conexo, com transmisso de dados tipo melhor esforo c a a a c (best eort). Quando uma aplicaao usa o servio orientado a conexo o cliente e o servidor troc c a cam pacotes de controle entre si antes de enviarem os pacotes de dados. Isto chamado e de procedimento de estabelecimento de conexo (handshaking), onde se estabelecem os a parmetros para a comunicao. Uma vez conclu o handshaking a conexo dita esa ca do a e tabelecida e os dois sistemas terminais podem trocar dados. O servio de transferncia c e garantida, que assegura que os dados trocados so livres de erro, o que conseguido a a e partir de temporizaoes, mensagens de reconhecimento e retransmisso de pacotes. Por c a exemplo, quando um sistema terminal B recebe um pacote de A, ele envia um reconhecimento; quando o sistema terminal A recebe o reconhecimento ele sabe que o pacote que ele enviou foi corretamente recebido; caso A no recebe conrmaao, ele assume que o a c pacote no foi recebido por B e retransmite o pacote. a No servio no orientado a conexo no h handshaking. Quando um lado de uma c a a a a aplicaao quer enviar pacotes ao outro lado ele simplesmente envia os pacotes. Como o c servio no garantido, tambm no h reconhecimento, de forma que a fonte nunca tem c e a e a a certeza que o pacote foi recebido pelo destinatrio. Como o servio mais simples, os a c e dados podem ser enviados mais rapidamente. Na Internet, o servio orientado a conexo implementado pelo protocolo TCP c a e (Transmission Control Protocol ) e o servio no orientado a conexo implementado c a a e pelo protocolo UDP (User Datagram Protocol ). As aplicaoes conhecidas como o telc net, correio eletrnico, transferncia de arquivos e WWW usam o TCP. Outras aplicaoes o e c usam o UDP, como o DNS (domain name system) e aplicaoes multim como voz sobre c dia Internet e aplicaes de udio e v co a deo.

1.8

Padronizao na rea de redes de computadores ca a

Durante os primeiros tempos das redes de computadores os diversos fabricantes trabalharam de forma separada no desenvolvimento de suas tecnologias, muitas delas incompat veis entre si. Com o intuito de estabelecer uma padronizaao e permitir uma integrao enc ca tre as diversas tecnologias, a ISO (International Standard Organization www.iso.org), juntamente com o ITU (International Telecommunication Union www.itu.int), organismos responsveis pelo estabelecimento de normas e padres em telecomunicaoes, a o c deniram um modelo de referncia com sete camadas de protocolos. Este modelo e cou conhecido como modelo OSI (open system interconnection), no qual cada camada deveria criar um n de abstraco diferente, devendo realizar uma funco bem denida vel a a a camada superior, omitindo detalhes quanto a sua implementaco. a As sete camadas do modelo OSI, apresentadas na gura 1.7, tiveram muito sucesso na literatura de redes de computadores, sendo uma referncia para a sistematizao e e ca descriao protocolos de rede. Todavia, o modelo OSI no teve sucesso comercial, uma vez c a que poucos produtos seguiram a risca as recomendaes do modelo. co Outro importante organismo de padronizaao na area de redes de computadores o c e IETF (Internet Engineering Task Force www.ietf.org), o qual coordena a pradonizaao c 15

Aplicao

Camada 7

Apresentao

Camada 6

Sesso

Camada 5

Transporte

Camada 4

Rede

Camada 3 Camada 2

Enlace Fsica

Camada 1

Figura 1.7: As sete camadas do modelo OSI. dos protocolos para a Internet. Cada padro publicado atravs de documentos conhecia e e dos como RFCs (Request For Comments www.ietf.org/rfc.html), os quais contm a e descriao de cada protocolo padro utilizado na Internet. c a Na area de redes locais de computadores os esforos de padronizaao so coordenados c c a pelo IEEE (Institute of Electrical and Electronics Engineers www.ieee.org), atravs e dos padres IEEE802. Dentre as tecnologias conhecidas para redes locais em uso atualo mente, destaca-se a redes Ethernet, padronizadas como IEEE802-3, as redes locais sem o IEEE802-11, as redes metropolitanas sem o IEEE802-16, entre outras. A gura 1.8 ilustra, na forma de um mapa conceitual, os principais organismos de padronizaao na area de redes de computadores. c

1.9

Arquitetura de redes

As camadas de protocolos facilitam o projeto e a implementaao das redes de computac dores, e no nosso caso, tambm o estudo das redes. Atravs das camadas de protocolos, o e e problema de construir uma rede ca decomposto em diversas partes, onde cada camada pode ser implementada separadamente, sem afetar as demais. A idia geral da diviso em camadas de protocolos comear com os servios oferecidos e a e c c pelo hardware, e ir adicionando uma sequncia de camadas, cada uma delas provendo um e servio com maior grau de abstraao a camada superior. c c A gura 1.9 mostra um exemplo de arquitetura de rede com quatro camadas de protocolos (PETERSON; DAVIE, 2004). Nesta arquitetura poder amos agrupar na camada inferior os protocolos relacionados relacionados a comunicaao entre ns vizinhos e a trans` c o ` misso de bits sobre os enlaces f a sicos. Na camada imediatamente superior poder amos agrupar os protocolos para tratar os problemas relativos ao encaminhamento de pacotes entre dois computadores remotos, passando pelos roteadores intermedirios, permitindo a a conectividade computador a computador, abstraindo o fato de que existe uma topologia complexa entre quaisquer dois computadores. A prxima camada poderia implementar o um canal de comunicaao lgico m a m entre os processos de aplicaao, oferecendo c o c um servio apropriado para que os processos de aplicaao troquem mensagens. Por m, c c 16

Figura 1.8: Padronizaao na area de redes de telecomunicaoes. c c

camada superior poderia denir as regras para a troca de mensagens entre os processos de aplicaao espec c cos.

Programas de aplicao Canais processo a processo Conectividade host a host Comunicao sobre hardware

Figura 1.9: Exemplo de arquitetura em camadas. No caso dos canais de comunicao lgicos m a m entre os processos de aplicao, ca o ca para atender aos dois tipos de aplicaes descritos na seo 1.7 (aplicaes tipo pedido/co ca co resposta e aplicaoes tipo uxo de dados tempo real), poder-se-ia ter dois canais distintos, c como mostrado na gura 1.10, um oferecendo um servio orientado a conexo e garantido, c a e outro oferecendo um servio no orientado a conexo. Esta arquitetura de redes, com c a a quatro camadas de protocolos, muito prxima do modelo utilizado pela Internet. e o Na arquitetura Internet os diversos protocolos esto organizados em quatro camadas a 17

Programas de aplicao Canal tipo Canal tipo pedido/resposta fluxo de dados Conectividade host a host Comunicao sobre hardware

Figura 1.10: Arquitetura em camadas com alternativas de servios em uma dada c camada. chamadas: a camada de aplicao, a camada de transporte, a camada rede1 e ca 2 a camada enlace/f sica . A gura 1.11 mostra uma ilustrao da pilha de protocolos ca Internet.

Figura 1.11: Camadas da arquitetura Internet.

Camada de Aplicao ca Os protocolos da camada de aplicaao denem as regras e o formato das mensagens que c so trocadas entre as aplicaoes de rede, por exemplo, a aplicaao WWW (world wide web) a c c governada pelas regras do protocolo de aplicao HTTP (hiper text transfer protocol ); e ca o correio eletrnico envia as mensagens usando o protocolo de aplicao SMTP (simple o ca mail transfer protocol ); a transferncia de arquivos usa o protocolo de aplicao FTP e ca (le transfer protocol ). As mensagens trocadas entre as entidades da camada aplicaao c utilizam os canais disponibilizados pelos protocolos da camada inferior.

Camada de Transporte Os protocolos da camada de transporte garantem um canal de comunicaao lgico mc o a-m entre os processos rodando no lado do cliente e no lado do servidor, para que as aplicaoes possam trocar mensagens entre si. Esta camada oferece dois tipos de servios c c as aplicaes: ` co
O modelo de referncia da arquitetura Internet dene esta camada como camada inter-rede, ene tretanto, muitos autores se referem ` ela simplesmente como camada rede. a 2 O modelo Internet no especica claramente o que acontece abaixo da camada rede; alguns autores, a como Tanenbaum (2003), se referem a esta camada como camada host/rede; outros autores, como Kurose e Ross (2006a), a dividem em camada enlace e camada f sica, como no modelo OSI.
1

18

Um servio orientado a conexo, fornecido pelo protocolo TCP (Transmission Conc a trol Protocol ), utilizado por aplicaoes tipo pedido/resposta; c Um servio de datagrama, no orientado a conexo, atravs do protocolo UDP (User c a a e Datagram Protocol ), utilizado por aplicaoes tipo uxo de dados em tempo real. c Como em cada computador da rede podemos ter diferentes processos de aplicaao c rodando, por exemplo, vrias seoes de navegadores Web, um dos servios oferecidos pela a c c camada de transporte a multiplexaao/demultiplexao de aplicaoes, entregando as e c ca c mensagens em portas espec cas para cada processo. Camada rede A camada rede fundamentada num servio no-orientado a conexo, no qual as mene c a a sagens so fragmentadas em pacotes, chamados datagramas, os quais atravessam a rede a de roteador em roteador, desde o computador origem at o computador destino usando e a tcnica de comutaao de pacotes. Nesta viagem, uma das tarefas dos protocolos da cae c mada rede denir a rota que seguiro os datagramas. Na Internet o principal protocolo e a da camada rede o protocolo IP (Internet Protocol ). e Os componentes principais da camada rede so: a O protocolo IP, que dene o formato do datagrama e a forma de endereamento; c Os protocolos e algoritmos de roteamento. A camada rede envolve cada computador e roteador do caminho entre o computador origem e o destino, diferentemente das camadas de aplicaao e transporte que somente c precisam implementadas nas duas pontas da comunicaao. c A camada rede se situa logo abaixo da camada de transporte na pilha de protocolos. Enquanto os protocolos de transporte oferecem comunicaao lgica entre processos c o rodando em diferentes computadores, a camada rede oferece comunicao lgica entre os ca o computadores. Camada Enlace/F sica Para mover um pacote de um n at o n adjacente, dentro de uma determinada rota, o e o a camada rede necessita dos servios dos protocolos da camada de enlace. Por exemplo, c para transferir dados entre dois computadores conectados em uma rede local Ethernet, utilizado um protocolo de enlace de mltiplo acesso, como o CSMA-CD (carrier sense e u multiple acssess protocol with colision detection). J no caso de dois computadores coneca tados por um enlace ponto a ponto, como uma linha discada, utilizado um protocolo de e enlace ponto-a-ponto, como o PPP (point to point protocol ). Vinculado a camada enlace est a camada f ` a sica, que responsvel por mover os bits e a que compe os dados entre um n e outro utilizando um meio f o o sico espec co. Os meios f sicos podem ser cabos coaxiais, os de cobre, bras pticas ou o ar a partir do uso do o espectro de freqncia de rdio. ue a 19

A gura 1.12 ilustra, na forma de um mapa conceitual, uma relaao da arquitetura c Internet com os principais conceitos e tecnologias da rea de redes de computadores. a

Figura 1.12: Viso da arquitetura Internet. a

20

Cap tulo 2 Aplicaes Internet e co Protocolos de Aplicao ca


As aplicaes so a razo de ser da Internet, permitindo que os usurios possam fazer co a a a coisas uteis e interessantes na rede. Sem as aplicaoes, a Internet no teria sentido. c a As aplicaoes de rede so programas que rodam nos sistemas terminais ou hosts e c a se comunicam entre si atravs da rede. So programas de aplicao t e a ca picos da Internet: o login remoto a sistemas (Telnet ou SSH), a transferncia de arquivos (FTP), o correio e eletrnico (e-mail), a paginao na Web ou WWW (world wide web), o bate-papo em rede o ca (chat), telefonia na Internet (VoIP), a v deo conferncia, a execuao de audio e v e c deo, etc. As aplicaes de rede so programas ou, como dizem no jargo dos sistemas opeco a a racionais, processos que se comunicam entre si pela da troca de mensagens atravs da e rede. A Internet oferece o suporte para a troca de mensagens entre as aplicaoes atravs c e de canais de comunicaao lgicos, que so oferecidos pelos protocolos de transporte da c o a Internet, o TCP e o UDP.

2.1

Protocolos de aplicao ca

Cada aplicaao utiliza protocolos espec c cos, chamados protocolos de aplicao, que deca nem como os processos de aplicaao, rodando em diferentes computadores, trocam menc sagens entre si. Em particular, os protocolos de aplicaao denem: c Os tipos de mensagens trocadas, por exemplo, uma mensagem de solicitaao ou c resposta; A sintaxe e a semntica das mensagens, denindo os campos de cada mensagem e a seu signicado; As regras denindo quando e como um processo envia ou responde uma mensagem. Os protocolos de aplicao, apesar de importantes, so apenas uma pequena parte de ca a uma aplicaao de rede. Por exemplo, a aplicao WWW uma aplicao de rede que c ca e ca 21

permite aos usurios obterem documentos da Web sob demanda. Os componentes da a aplicaao WWW incluem documentos em formato HTML (hypertext markup language), c navegadores Web (como o Firefox ou o Internet Explorer), servidores de pginas Web a (como o Apache do Linux) e o protocolo de aplicaao HTTP (hiper text transfer protocol ). c

2.2

Clientes e servidores

Uma aplicaao de rede tem tipicamente duas partes, um lado cliente e um lado servidor c que se comunicam entre si. Por exemplo, um navegador Web implementa o lado cliente do HTTP, e um servidor Web implementa o lado servidor HTTP. Para algumas aplicaoes, um computador pode implementar ora o lado cliente ora o c lado servidor. Por exemplo, considere um de acesso remoto via Telnet entre um computador A e um computador B. Se o computador A inicia a seo Telnet, ento A o cliente ca a e e B o servidor. Por outro lado, se o computador B inicia a seao, ele que ser o cliente e c e a e A o servidor.

2.3

Portas e comunicao atravs da rede ca e

Uma aplicao envolve a comunicaao de dois processos atravs da rede. Os dois processos ca c e se comunicam atravs do envio e recebimento de mensagens atravs mecanismos chamados e e portas (sockets). Os processos assumem que h uma infraestrutura de transporte no outro a lado da porta do processo emissor que transportar as mensagens at a porta do processo a e destino. O conceito de portas faz parte da implementaao dos protocolos de transporte da c Internet TCP e UDP (ver pgina ??). Em resumo, pode-se dizer que os protocolos de a transporte estabelecem um canal de comunicaao lgico para a transferncia de mensagens c o e porta-a-porta entre os processos de aplicaao rodando em dois computadores remotos. c

2.4

Endereamento das aplicaoes c c

Para que um processo em um computador possa enviar uma mensagem a um computador remoto, ele deve enderear quem vai receber a mensagem. O endereo envolve duas peas c c c de informao: (1) o nome ou o endereo IP da mquina destino; (2) o nmero da porta ca c a u do processo do lado do receptor. Por exemplo, para enderear o servidor Web do IF-SC devemos fornecer o endereo c c IP ou o nome do servidor, por exemplo, 200.18.10.1 ou www.ifsc.edu.br, respectivamente. Quanto ao nmero da porta, como algumas aplicaoes tem o nmero padronizado, e em u c u geral o agente usurio escolhe o nmero de porta automaticamente em funo da aplicao a u ca ca em uso. 22

2.5

Agente usurio a

O agente usurio a interface entre o usurio e a aplicaao de rede. Mais especicamente, a e a c o agente usurio um programa de computador, comercial ou de dom a e nio pblico, que u implementa a interface do lado cliente de uma aplicaao de rede. Por exemplo, o agente c usurio para um cliente WWW pode ser, por exemplo, o navegador Firefox. a

2.6

Servios de transporte utilizados pelas aplicaes c co

A Internet dispe de dois servios de transporte para os protocolos de aplicao, o UDP e o o c ca TCP. Quando uma aplicaao projetada para a Internet, a primeira deciso do projetista c e a deve ser denir qual protocolo de transporte ser utilizado. a A escolha depender do tipo servio que a aplicaao vai necessitar. Quanto aos tipos a c c de servios requisitados pelas aplicaoes, podemos classic-los em trs dimenses: c c a e o Quanto a perda de dados ` Algumas aplicaoes, como por exemplo, transmisso de udio, podem tolerar alguc a a mas perdas; outras aplicaoes, como por exemplo, uma transferncia de arquivos, c e requerem transferncia convel. e a Quanto aos requisitos temporais Algumas aplicaoes, como por exemplo, telefonia na Internet, requerem baixo rec tardo para serem viveis, outras, como uma mensagem de correio eletrnico, no a o a tem restrioes temporais. c Quanto a largura de banda ` Algumas aplicaoes, como por exemplo, multim c dia, requerem quantia m nima de banda para serem viveis; outras aplicaoes so mais elsticas e conseguem usar a c a a qualquer quantia de banda dispon vel, como por exemplo, a paginao na Web. ca Para atender a estes requisitos, os protocolos de transporte da Internet TCP e UDP oferecem as seguintes facilidades: Servio TCP c Servio orientado a conexo: uma abertura de conexo requerida entre cliente e c a a e servidor; Transporte convel: garante comunicaao livre de erros entre o processo emissor e a c receptor; Controle de uxo: evita que o emissor possa afogar com dados um receptor mais lento; Controle de congestionamento: permite estrangular o emissor quando a rede est a sobrecarregada. 23

No prov: garantias temporais ou de banda m a e nima. Servio UDP c Transferncia de dados no convel: no h garantia de entrega de dados livre de e a a a a erros; No Prov: abertura de conexo, conabilidade, controle de uxo, controle de cona e a gestionamento, garantias temporais ou de banda m nima.

2.7

Protocolo HTTP

O protocolo HTTP dene como os navegadores Web (clientes) requisitam pginas de a servidores Web. Para requisitar uma pgina Web, o cliente HTTP primeiramente abre a uma conexo TCP na porta 80 do servidor. Uma vez aberta a conexo TCP o cliente a a envia mensagens de requisiao HTTP para o servidor Web, o qual responde com uma c mensagem de resposta HTTP que contm os objetos solicitados. e H duas verses do protocolo HTTP implementadas pelos navegadores, o HTTP/1.0 a o (RFC1945) e o HTTP/1.1 (RFC2068) e ambas as verses usam como protocolo de transo porte o TCP. O HTTP/1.0 usa o que se chama conexes no persistentes, onde aps a o a o requisiao de cada objeto, o servidor responde e encerra a conexo TCP. O HTTP/1.1 c a permitiu melhorar o desempenho dos navegadores Web atravs do uso de conexes pere o sistentes, onde o servidor mantm a conexo TCP aberta aps o envio da resposta. Desta e a o forma, as requisies e as respostas subsequentes entre o mesmo par cliente/servidor poco dem utilizar a mesma conexo j aberta, eliminando o tempo de abertura de conexo. a a a Caso a conexo deixe de ser utilizada por um certo tempo o servidor se encarrega de a liberar a conexo. a Formato das mensagens HTTP O protocolo HTTP baseado no paradigma pedido/resposta, havendo dois tipos de mene sagens: mensagens de requisio e mensagens de resposta. ca A mensagens de requisio (request) tem a seguinte estrutura: ca
GET /diretorio/pagina.html Host: www.ifsc.edu.br Connection: close User-agent: Mozilla/4.0 Accept-language:pt (extra carriage return, line feed)

A primeira linha apresenta o comando bsico para requisiao de uma pgina Web, a c a seguido pela parte do URL que indica o caminho e o nome do objeto que se deseja (GET /diretorio/pagina.html). As linhas seguintes, chamadas de cabealho, so opcionais. A c a segunda linha (Host: www.ifsc.edu.br) indica o nome computador onde reside o objeto; a 24

terceira linha (Connection: close) informa para fechar a conexo aps envio da resposta; a a o quarta linha (User-agent: Mozilla/4.0) indica o tipo do agente usurio utilizado e a linha a (Accept-language:pt) indica que o portugus a l e e ngua preferencial. Do ponto de vista do usurio o mesmo s enxerga o endereo URL que digitou e o navegador monta e envia a o c as mensagens HTTP de forma transparente. A mensagens de resposta (response) tem a seguinte estrutura:
HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT Content-Length: 6821 Content-Type: text/html (data data data data data . . .)

A resposta tem trs partes, uma primeira linha informando o estado (status) da e solicitaao, seis linhas de cabealho e os dados que compe objeto solicitado. A primeira c c o linha indica a verso do protocolo, o cdigo e estado da mensagem (HTTP/1.1 200 OK). a o A segunda linha (Connection: close) indica que a conexo ser encerrada; a terceira a a linha (Date: Thu, 06 Aug 1998 12:00:15 GMT) informa a data da ultima modicao ca no objeto solicitado, utilizada por servidores proxy; a quarta linha (Server: Apache/1.3.0 (Unix)) indica o tipo do servidor, a quinta linha (Content-Length: 6821) indica o tamanho do objeto em bytes e a ultima linha (Content-Type: text/html) informa o contedo da u mensagem. Os dados vem em seguida. Os cdigos de estado (status) mais comuns so: o a
200 301 400 404 505 OK Moved Permanently Bad Request Not Found HTTP Version Not Supported

Exerc cio E poss ver as mensagens trocadas pelo protocolo HTTP, executando manualmente vel os comandos em uma conexo TCP, na porta 80, com um servidor Web. Para tal, pode-se a fazer primeiramente um Telnet (acesso remoto), na porta 80 de um servidor Web. Em seguida, uma vez estabelecida a conexo, pode-se trocar comandos HTTP manualmente. a Por exemplo:
$ telnet www.das.ufsc.br 80 Trying 150.162.12.10 ... Connected to www.das.ufsc.br. Escape character is ^]. GET /~cantu/index.html

permite estabelecer um canal TCP na porta 80 com servidor www.das.ufsc.br e receber o arquivo HTML com a pgina do usurio cantu. a a 25

2.8

Protocolo FTP

O protocolo FTP (le transfer protocol ) (RFC959) o protocolo que suporta a aplicaao e c de transferncia de arquivos entre computadores. e Numa sesso FTP um usurio pode transferir arquivos de um computador remoto a a para um computador local e vice-versa (download e upload, respectivamente). Uma maneira t pica de realizar um FTP utilizar um terminal de texto do Linux (ou Windows), e iniciando a aplicaao e executando os comandos apropriados. O primeiro comando do c usurio (open) deve fornecer endereo do computador remoto, estabelecendo com isto a c uma conexo TCP entre o processo FTP cliente e servidor. Depois o usurio deve fora a necer sua identicao e sua senha. Outros comandos poss ca veis so: mudar de diretrio a o (cd), solicitar arquivos (get), enviar arquivos (put), etc. O protocolo FTP usa duas conexes paralelas TCP para transferir arquivos: uma o para controle da conexo e outra para a transferncia de dados. O controle de conexo a e a e usado para trocar informaoes como a identicaao do usurio e senha e para transferir c c a os comandos FTP. A conexo de dados usada para transferir os arquivos propriamente a e ditos. Cada uma destas duas conexes TCP usa uma porta espec o ca: a conexo de a controle de conexo usa a porta 21 e a conexo de dados usa a porta 20. a a A gura 2.1 ilustra o servio FTP, conforme descrito na RFC959. Na gura os blocos c Server/User PI identicam o interpretador de protocolo e Server/User DTP identicam o processo de transferencia de dados, tanto do lado do servidor quanto do lado do usurio. e a
------------|/---------\| || User || -------||Interface|<--->| User | |\----^----/| ----------------| | | |/------\| FTP Commands |/----V----\| ||Server|<---------------->| User || || PI || FTP Replies || PI || |\--^---/| |\----^----/| | | | | | | -------|/--V---\| Data |/----V----\| -------| File |<--->|Server|<---------------->| User |<--->| File | |System| || DTP || Connection || DTP || |System| -------|\------/| |\---------/| ----------------------------Server-FTP USER-FTP

Figura 2.1: Servio FTP (RFC959). c As mensagens de controle FTP so codicadas em formato ASCII, com caracteres a maisculos, como nos exemplos abaixo. u

USER NAME (USER) PASSWORD (PASS) CHANGE WORKING DIRECTORY (CWD) LOGOUT (QUIT) RETRIEVE (RETR) STORE (STOR)

26

As respostas so sempre de trs d a e gitos, com uma mensagem opcional seguindo o nmero, como nos exemplos abaixo.. u
331 125 425 452 User name OK, password required Data conection already open; transfer starting Cant open data conection Error writing file.

2.9

Protocolo SMTP

O protocolo SMTP (simple mail transfer protocol ) (RFC821) o protocolo utilizado pelo e correio eletrnico, ou email (electronic mail ). Ele usa o servio de transferncia de dados o c e convel do TCP para transferir uma mensagem desde o remetente at a caixa postal a e do destinatrio. O SMTP, como outros protocolos de aplicaao, tem dois lados, o lado a c cliente e o lado servidor. Quem envia a mensagem faz o papel do cliente e quem recebe de servidor, todavia, ambos os lados do SMTP devem ser implementados em cada servidor de email. Atravs do protocolo SMTP, o servidor de email envia as mensagens que esto na sua e a la de sa em direo ao servidor destino. Caso o servidor destino no esteja acess da ca a vel, o servidor de email tentar envi-la mais tarde, persistindo nestas tentativas por alguns a a dias, quando ento remove a mensagem e notica quem a tinha enviado. a Para ler uma mensagem em sua caixa postal o destinatrio da mensagem deve, a a partir de seu leitor de email, requisit-la de seu servidor. O servidor de email ento a a requisita uma autenticaao do usurio, atravs de uma identicaao e uma senha, para c a e c depois repassar as mensagens que porventura chegaram a esta pessoa. A gura 2.2 ilustra o modelo de uso do SMTP.
+----------+ +----------+ +------+ | | | | | User |<-->| | SMTP | | +------+ | Sender- |Commands/Replies| Receiver-| +------+ | SMTP |<-------------->| SMTP | +------+ | File |<-->| | and Mail | |<-->| File | |System| | | | | |System| +------+ +----------+ +----------+ +------+ Sender-SMTP Receiver-SMTP

Figura 2.2: Modelo de uso do SMTP (RFC821). As mensagens trocadas pelo protocolo SMTP so mensagens em caracteres ASCII. a Para enviar uma mensagem, o cliente SMTP estabelece uma conexo TCP, na porta a 25, com o servidor SMTP. Uma vez estabelecida a conexo TCP, cliente e servidores ` a de email entram em uma fase de apresentao mtua (handshaking), trocando algumas ca u informaoes (como, o cliente indica o endereo de email do emissor e do destinatrio), c c a antes de enviarem a mensagem eletrnica em si. o Veja um exemplo de uma seqncia de mensagens SMTP, constantes na RFC821, ue trocadas entre Smith no host Alpha.ARPA e Jones, Green, e Brown no host Beta.ARPA. Assume-se que o host Alpha contata o host Beta diretamente. 27

S: MAIL FROM:<Smith@Alpha.ARPA> R: 250 OK S: RCPT TO:<Jones@Beta.ARPA> R: 250 OK S: RCPT TO:<Green@Beta.ARPA> R: 550 No such user here S: RCPT TO:<Brown@Beta.ARPA> R: 250 OK S: R: S: S: S: R: DATA 354 Start mail input; end with <CRLF>.<CRLF> Blah blah blah... ...etc. etc. etc. <CRLF>.<CRLF> 250 OK

O email foi aceito por Jones e Brown. O usurio Green no tem caixa postal no host a a Beta. Protocolo para leitura de email POP3 Uma vez enviada uma mensagem eletrnica, ela colocada na caixa postal do destinatrio. o e a Uma maneira natural para o destinatrio de ler as mensagens de sua caixa postal, seria a acessar diretamente o seu servidor de email atravs de um web-mail. e Caso o usurio deseje utilizar um leitor de email diretamente em seu computador a pessoal (como Outlook), vai haver a necessidade de transferir as mensagens do usurio a do seu servidor de email para seu computador. Para realizar esta tarefa normalmente utiliza-se um protocolo POP3 (RFC1939). O processo inicia quando o cliente abre uma conexo TCP na porta 110 do servidor de email. Com a conexo TCP estabelecida, o a a POP3 processa trs fases: autorizaao (quando o usurio envia seu nome e senha e recebe e c a suas mensagens), transaao (quando o usurio requisita aoes sobre as mensagens, como c a c por exemplo marcando algumas para serem apagadas) e atualizao (quando o usurio ca a encerra a sesso e o servidor apaga as mensagens marcadas para serem removidas). a

2.10

DNS

O DNS (domain name system) (RFC1034 e RFC 1035) um sistema de nomes de dom e nio que permite traduzir um nome de dom nio (como www.ifsc.edu.br) em um endereo IP c (como 200.18.10.1). Isto facilita na medida em que no precisamos mais memorizar ena dereos IP, mas sim nomes de dom c nio, muito mais fceis de serem lembrados e ao mesmo a tempo identicados com o proprietrio do dom a nio. Para resolver os nomes, o DNS realiza uma busca em um banco de dados distribu do, 28

armazenado em sistemas cooperativos independentes, chamados resolvedores de nomes, que fazem a traduao do nome de dom c nio em endereo IP. c Uma solicitao de traduo de um nome a um resolvedor de nomes pode usar um ca ca ou mais resolvedores para obter o endereo desejado. H dois modos poss c a veis para um servidor resolver um nome: resoluo interativa ou resoluo recursiva. Em ambos os ca ca casos, o servidor consultado verica se o nome solicitado pertence a seu sub-dom nio. Se for o caso, traduz o nome ao endereo de acordo com sua base de dados. Se no puder c a resolver o nome completamente, verica o tipo de solicitao feita pelo cliente. Se o cliente ca solicitou busca recursiva o servidor contata um DNS que possa resolver o nome e devolve a resposta ao cliente. Caso a solicitaao foi do tipo interativa, ele fornece o nome de um c DNS ao cliente e no a resposta da resoluao completa do nome. a c Uma congurao t ca pica de para um programa usurio socilitar consultas ao servio a c DNS mostrada na gura 2.3. O programa usurio interage com o DNS atravs de um e a e resolvedor de nomes local, enviando solicitaoes (queries) e recebendo respostas (responc ses). O resolvedor de nomes pode ter as informaes solicitadas pelo usurio em memria co a o cache, ou, caso no as tenha, ele faz uma consulta a um resolvedor de nomes externo. a A resposta obtida do servidor externo ento passada ao usurio solicitante e tambm e a a e armazenada na cache do resolver local visando atender poss veis consultas futuras ao mesmo endereo. O resolvedor de nomes externo, por sua vez, pode realizar socilitaoes c c a outros servidores para obter a resposta que lhe foi solicitada.
| Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | cache | | +----------+ | Local Host

Figura 2.3: DNS (RFC1035). Todo resolvedor de nomes precisa saber como contatar pelo menos um servidor de nomes raiz. Em adio, um resolvedor de nomes deve saber o endereo de um resolvedor ca c de nomes de dom nio imediatamente superior (servidor pai). Todos os nomes recentemente usados so armazenados na na memria cache local do resolvedor de nomes, bem a o como a informaao de como foram obtidos. Como a informaao em memria pode estar c c o desatualizada, o resolvedor de nomes marca como no autoritativa (non authoritative), a podendo o cliente contatar a autoridade para ver se o nome ainda vlido. e a

Mensagem DNS
Toda comunicaao do servio DNS realizada por meio de uma mensagem cujos campos c c e so mostrados na gura 2.4. a 29

+---------------------+ | Header | +---------------------+ | Question | +---------------------+ | Answer | +---------------------+ | Authority | +---------------------+ | Additional | +---------------------+

the question for the name server RRs answering the question RRs pointing toward an authority RRs holding additional information

Figura 2.4: Formato da mensagem DNS (RFC1035). O cabealho (Header ) sempre presente e especica a quantidade campos presenc e tes na sequncia da mensagem e tambm se a mensagem uma solicitaao ou resposta. e e e c O campo questo (Question) contm a solicitao ao resolvedor de nomes. O campo a e ca resposta (Answer ) contm a resposta, chamada de RR (resource record ). O campo autoe ridade (Authority) contm RRs que apontam para um resolverdor de nomes com autorie dade para responder a solicitaao. O campo adicional (Additional ) contm RRs outras c e indormaoes relacionadas a solicitaao. c c As mensagens DNS so encaminhadas como mensagens de aplicaao utilizando como a c protocolo de transporte o UDP e a porta 53. O servio DNS est situado no n c a vel da camada aplicaao, contudo um servio c e c auxiliar utilizado pelas aplicaoes usurios, as quais, antes iniciar uma comunicaao na c a c Internet, precisam obter o endereo IP do seu correspondente. c

30

Cap tulo 3 Camada de Transporte da Internet


Situada entre a camada de aplicaao e a camada rede, a camada de transporte tem a c funao de prover um canal de comunicao lgico m-a-m entre os processos c ca o de aplicao rodando em diferentes computadores, sem se preocupar com os detalhes da ca infra-estrutura f sica usada para carregar as mensagens entre eles. Os protocolos de transporte so implementados nos sistemas terminais, no necessia a tando serem implementados nos roteadores da rede, os quais atuam somente at a camada e rede. No lado do emissor, as mensagens recebidas das aplicaoes so fragmentadas e enc a capsuladas em unidades de dados de protocolos, ou PDUs (protocol data unit), chamadas segmentos, aos quais adiciona-se um cabealho. Cada segmento ento rec e a passado a camada rede que por sua vez encapsula em unidades de dados de protocolos da camada rede, ou datagramas.

3.1

O servio de multiplexao e demultiplexao de c ca ca aplicaoes c

O protocolo IP entrega dados entre dois sistemas terminais (hosts), cada qual identicado por seu endereo IP. A responsabilidade dos protocolos de transporte entregar estes c e dados (segmentos) a aplicao apropriada rodando em cada host. ca Cada um dos segmentos da camada transporte tem em seu cabealho um campo que c indica a qual processo o mesmo deve ser entregue. Estes campos so conhecidos como a nmeros de porta. O cabealho inclui um campo com o nmero de porta do emissor e o u c u nmero de porta do receptor, como mostra a gura 3.1. u Os nmeros de porta variam de 0 a 65535, sendo que at a porta 1023 so nmeros reu e a u servados para aplicaoes espec c cas. Na Internet cada uma das aplicaoes mais conhecidas c utilizam portas padronizadas, como exemplicado abaixo.
----------------------------------------------------------------------13 TCP daytime Daytime 13 UDP daytime Daytime

31

Porta Origem

Porta Destino

Outros campos do cabealho

Dados da aplicao

Figura 3.1: Portas no cabealho dos protocolos de transporte. c


20 TCP ftp-data File Transfer [Default Data] 21 TCP ftp File Transfer [Control] 22 TCP ssh SSH Remote Login Protocol 23 TCP telnet Telnet 25 TCP smtp Simple Mail Transfer 53 UDP domain Domain Name Server 80 TCP www-http World Wide Web HTTP 110 TCP pop3 Post Office Protocol - Ver 3 443 TCP https http protocol over TLS/SSL -----------------------------------------------------------------------

Um servidor de aplicaoes espera conexes em portas bem conhecidas. Por exemplo, c o a aplicaao Telnet utiliza a porta 23 para aceitar conexes. Quando um cliente Telnet c o inicia uma seao, ele envia ao servidor um segmento TCP com porta destino 23 e coloca c como nmero de porta origem uma porta que no esteja sendo utilizada no host cliente, u a por exemplo, a porta X. A porta X ser onde o cliente vai esperar a resposta do servidor. a Quando o servidor recebe o segmento, ele verica que o mesmo endereado a porta 23 e c e ento sabe que se trata da aplicaao Telnet. No envio da resposta o servidor inverte as a c portas origem e destino. Enviando ao cliente um segmento com porta destino X e origem 23.

3.2

UDP (User Datagram Protocol )

O protocolo UDP (RFC768) oferece `s aplicaoes um servio de datagramas, estena c c dendo o servio oferecido pelo IP com a multiplexao e demultiplexao de aplicaoes c ca ca c e um mecanismo de deteco de erros. ca Caracter sticas do UDP: No orientado a conexo, no introduzindo, portanto, atrasos para esta tarefa. a a a Tem pequeno overhead (informaoes de controle) no cabealho. c c No prov mecanismos para controle de uxo, controle de congestionamento, garana e tias temporais ou de banda m nima. Por estas caracter sticas apropriado para aplicaoes tempo real, como telefonia e e c transferncia de audio e v e deo sobre a Internet. 32

O formato do segmento UDP (alguns autores chamam de datagrama UDP, pois pouco acrescenta ao datagrama IP) bastante simples, alm dos campos reservados para e e as portas de origem e destino, h um campo que indica o comprimento do segmento a (length) e o checksum, o qual utilizado para o detecao de erros no segmento, como e c mostra a gura 3.2. O campo de dados da aplicao preenchido com os dados da ca e aplicaao, por exemplo, para aplicaoes de adio tempo real o campo preenchido com c c u e as amostras de adio. u
0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | | Length | Checksum | +--------+--------+--------+--------+ | | data octets ... +---------------- ...

Figura 3.2: Formato do datagrama UDP (RFC768).

3.2.1

Checksum

O checksum do UDP permite a deteco de erros nos dados transmitidos. Para isto, ca o emissor UDP faz o complemento 1 da soma de todos as palavras de 16 bits do segmento e coloca o resultado no campo cheksum. Por exemplo, suponha que temos trs palavras e de 16 bits:
0110011001100110 0101010101010101 0000111100001111

A soma ser a
0110011001100110 0101010101010101 +________________ 1011101110111011

Adicionando a terceira palavra a esta soma


1011101110111011 0000111100001111 +________________ 1100101011001010

O complemento 1 obtido invertendo cada bit 1 por 0 e vice-versa. Desta forma o e complemento da soma ser 0011010100110101, o qual ser o cheksum. No lado do recepa a tor UDP, todas as palavras de 16 bits recebidas so adicionadas, incluindo o cheksum.Se a no houve erros na transmisso, a soma ser 1111111111111111. Se um dos bits for 0, a a a ento sabido que houve erros. a e 33

3.3

TCP (Transmission Control Protocol )

O protocolo TCP (RFC793), como o UDP, tambm oferece a multiplexao/demultie ca plexao de aplicaoes e o mecanismo de deteco de erros. A grande diferena ca c ca c e que o TCP um protocolo orientado a conexo e com transferncia garantida, onde e a e os dois processos devem acordar entre eles uma abertura de conexo para que os dados a possam ser transferidos. Alm destas caracter e sticas, o TCP integra ainda um servio de c controle de uxo, que assegura que nenhum dos lados da comunicao envie pacotes ca rpido demais, pois uma aplicaao em um lado pode no conseguir processar a informaao a c a c na velocidade que est recebendo, e um servio de controle de congestionamento ajuda a c a prevenir congestionamentos na rede. Uma conexo TCP uma conexo full-duplex (isto , em ambos os sentidos e sia e a e multnea) e sempre m-a-m, entre o host emissor e o host receptor. Uma vez estabea e lecida ` conexo os dois processos podem trocar informaes. O processo cliente passa o a a co bloco de dados atravs da porta apropriada. O TCP ento manipula estes dados, dirie a gindo para o buer de envio. Os dados so ento fragmentados e encapsulados na forma a a de segmentos. Os segmentos, por sua vez, so passados a camada rede onde eles so sea a paradamente encapsulados em datagramas IP, que so enviados atravs da rede. Quando a e o TCP do receptor recebe os dados, os mesmos so recebidos no buer de recepao. A a c aplicaao no lado do receptor ento l os dados a partir deste buer. c a e A gura 3.3 ilustra, na forma de um mapa conceitual, uma viso dos principais cona ceitos da camada de transporte da Internet, mostrando explicitamente a relao entre os ca mesmos.

Figura 3.3: Viso dos principais conceitos da camada de transporte da Internet. a

34

3.3.1

Mecanismo de transmisso Garantida a

Para garantir uma entrega de dados livre de erros, muitos protocolos com transmisso a garantida utilizam uma tcnica conhecida como conrmaao positiva com retransmisso. e c a A tcnica exige que um receptor comunique-se com a origem, retornando uma mensagem e de reconhecimento (acknoledge) a medida que recebe os dados. O transmissor, por sua vez, inicia um temporizador para cada pacote que envia e retransmite o pacote caso este temporizador se complete antes que chegue uma conrmao de recebimento. ca O protocolo Bit-alternado um protocolo tipo pra e espera (stop-and-wait), isto , e a e para cada pacote que envia aguarda um reconhecimento. Este protocolo utiliza nmeros u de sequncia 0 e 1 para identicar os pacotes enviados. A gura 3.4 (a) ilustra um caso do e funcionamento do protocolo Bit-alternado onde no ocorreram erros no envio dos pacotes a e nem na recepo dos reconhecimentos. A gura 3.4 (b) ilustra um caso no qual houve ca uma perda de pacotes. A gura 3.4 (c) ilustra um caso no qual houve uma perda de um reconhecimento e a 3.4 gura (d) um caso de estouro do tempozador prematuramente. O problema de um protocolo como o Bit-alternado que o emissor deve esperar o e reconhecimento de cada pacote antes que um novo pacote possa ser enviado, o que torna a transmisso bastante ineciente. Protocolos mais elaborados, como o TCP, permitem que a o emissor transmita mltiplos pacotes antes de esperar uma conrmao. Este processo u ca chamado de pipeline e geralmente implementado atravs de um mecanismo conhecido e e e como janelas deslizantes. No mecanismo de janelas deslizantes o emissor pode enviar uma sequncia de pacotes, e contidos dentro de uma janela de tamanho xo, antes de esperar uma conrmao. ca Neste caso, os pacotes devem ser identicados com uma faixa maior de nmeros de u sequncia, uma vez que vrios pacotes podem ser enviados antes de esperar um recoe a nhecimento. Na gura 3.5 (a) , os pacotes contidos dentro da janela (numerados de 1 a 4) podem ser enviados em sequncia. Quando o transmissor redece a conrmaao do e c primeiro pacote da janela, a janela desliza, gura 3.5 (b), permitindo que um novo pacote seja enviado. A gura 3.6 mostra uma comparao entre um protocolo pra e espera (stop-and-wait) ca a e um protocolo que utiliza o mecanismo de janelas deslizantes (pipeline).

3.3.2

Segmento TCP

A gura 3.7 mostra a estrutura do segmento TCP. No cabealho, alm dos nmeros de c e u porta e checksum, que tambm existem no UDP, h outros campos com informaes e a co necessrias a implementao do servio de transferncia garantida, controle de uxo e a ca c e controle de congestionamento. Os campos fundamentais do segmento TCP so os seguintes: a Porta origem e porta destino (Source Port e Destination Port); Nmero de seqncia e reconhecimento, utilizado para o emissor e receptor impleu ue mentarem o servio de transferncia garantida (Sequence Number e Acknowledgment c e Number ). 35

Figura 3.4: Envio de pacotes e reconhecimentos TCP

(KUROSE; ROSS, 2006a).

...

(a)

...

(b)

Figura 3.5: Mecanismo de janelas deslizantes.

36

Figura 3.6: Comparaao de um protocolo stop-and-wait e um pipeline c 2006a).

(KUROSE; ROSS,

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 3.7: Formato do segmento TCP (RFC793).

37

Tamanho da janela do receptor, usado para o controle de uxo, e indica o nmero u de bytes que o receptor capaz de receber (Window ). e Seis bits de ags: o Ack usado para indicar que o campo de reconhecimento e e vlido; o Rst, Syn e Fin so usados para abertura e encerramento de conexo, a a a o Psh indica que o receptor deve passar imediatamente os dados para a camada superior e o Urg indica urgente (pouco usado). Tamanho do cabealho (Data Oset), especica o tamanho da cabealho, que pode c c variar em funoes do campo de opoes; tipicamente o cabealho contm as 5 pric c c e meiras linhas, totalizando 20 bytes. O checksum usado para deteco de erros. e ca O campo de opes (Options) usado quando o emissor e receptor precisam negociar co e o tamanho mximo de segmento (MSS). a O Padding utilizado para completar o campo opes (se necessrio). e co a O campo de dados da aplicaao (data) do segmento TCP, contm um fragmento c e ou pedao dos dados da aplicao, cujo tamanho mximo, chamado de MSS (maximum c ca a segment size), depende da implementaao do TCP. Os valores t c picos so 1.500 bytes a ou 512 bytes, no incluindo o cabealho. (Em geral o valor de MSS escolhido para a c e evitar a fragmentao do datagrama IP na camada inferior. Este valor em algumas ca implementaes pode ser congurado manualmente ou estabelecido automaticamente pelo co protocolo).

3.3.3

N meros de seqncia e reconhecimento no TCP u ue

Dois campos importantes do segmento TCP so os nmeros de seqncia e reconhecia u ue mento, os quais fazem o controle da transferncia de dados convel. e a Como vimos, os dados das aplicaoes so transportados pelos segmentos TCP. Caso as c a mensagens forem maior que o valor de MSS, tamanho mximo do segmento, as mesmas a so fragmentadas para poderem ser acomodadas na parte de dados do segmento. Por a exemplo, um arquivo GIF de 500K bytes trocado pelo HTTP ser fragmentado em vrios a a pedaos para ser transmitido pelo TCP. Os nmeros de seqncia servem, portanto, para c u ue que o lado receptor TCP possa reordenar corretamente os dados recebidos. Os nmeros de seqncia no correspondem a uma srie de segmentos transmitidos, u ue a e mas reetem a quantidade de bytes que o TCP est transmitindo. Por exemplo, suponha a que o bloco total de dados que ser transmitido tenha 500.000 bytes, que o valor de MSS a de 1.000 bytes, e que o primeiro byte dos dados numerado como zero. Para transmitir e e esta quantidade de bytes o TCP formar 500 segmentos. Ao primeiro segmento atribui-se a o nmero de seqncia zero, ao segundo 1000, ao terceiro 2000 e assim por diante, como u ue mostra a gura 3.8. Os reconhecimentos servem para o receptor informar o emissor quais blocos que foram recebidos corretamente. Todavia, lembre-se que uma comunicaao TCP sempre fullc e duplex, o que signica que o host A pode estar recebendo dados do host B ao mesmo 38

500 K Bytes

...

1000

1001

...

...

499.999

1o Segmento

2o Segmento

Figura 3.8: Nmeros de sequncia TCP. u e

tempo em que est enviando dados ao host B (como parte da mesma conexo TCP). a a Desta forma, haver nmeros de reconhecimentos para dados seguindo de A para B e a u outros para dados seguindo de B para A. O nmero de reconhecimento que o host A coloca no seu segmento o nmero de u e u seqncia do prximo byte que o host A espera receber do host B.Por exemplo, suponha ue o que o host A recebeu todos os bytes numerados de 0 a 535 de B e que est prestes a enviar a um segmento a B. Neste caso, o host A coloca como nmero de reconhecimento 536, o u que vai indicar a B que o mesmo recebeu todos os bytes at este nmero. e u Em outro exemplo, suponha que o host A recebeu todos os bytes numerados de 0 a 535 de B e em seguida recebeu de B um segmento contendo bytes de 900 a 1000. Note que A no recebeu os bytes que vo de 536 a 899. Como A ainda est esperando bytes a partir de a a a 536, ele reenvia a B um segmento com nmero de reconhecimento 536. Continuando este u exemplo, suponha agora que A receba o segmento que faltava, com os bytes que vo de a 536 a 899. Neste caso, como ele j recebeu inclusive os dados contendo os bytes de 900 a a 1000, ele envia um reconhecimento com nmero 1001. Isto chamado de reconhecimento u e cumulativo, que indica que recebeu todos os bytes at este nmero. e u Telnet: Caso de estudo para n meros de seqncia e reconhecimento (KUu ue
ROSE; ROSS, 2006b)

O Telnet uma aplicao interativa usada para acesso remoto a sistemas e roda sobre e ca o protocolo de transporte TCP. O Telnet permite que um usurio utilize uma mquina A e estabelea uma seao a a c c interativa em uma mquina B, como se estivesse utilizando um terminal. Quem solicita a o Telnet assume o papel de cliente. Cada caractere digitado pelo usurio cliente ser a a enviado ao computador remoto; o computador remoto ento enviar uma cpia de cada a a o caractere para ser mostrado na tela do cliente. Desta forma, cada caractere atravessa a rede duas vezes entre o tempo em que o usurio digita uma tecla e a visualizao da a ca mesma na tela. Vamos examinar os segmentos TCP trocados durante uma seao Telnet. Suponha que c o usurio tecla a letra C. Suponha ainda que os nmeros de seqncia iniciais usados pelo a u ue cliente e pelo servidor sejam 42 e 79, respectivamente. Isto indica que o primeiro byte a ser enviado pelo cliente ao servidor ter o nmero de seqncia 42 e o primeiro byte a a u ue ser enviado pelo servidor ao cliente ter o nmero de seqncia 79. Lembre tambm que a u ue e o nmero de reconhecimento indica o nmero de seqncia do prximo byte esperado. u u ue o Desta forma, depois de estabelecia a conexo TCP, e antes do envio de quaisquer dados, a o cliente esta esperando pelo byte 79 e o servidor est esperando pelo byte 42. a A gura 3.9 mostra trs segmentos trocados entre o cliente e o servidor. O primeiro e segmento enviado pelo cliente, contendo um caractere ASCII com a letra C (nmero de e u 39

seqncia 42). O segundo segmento enviado pelo servidor ao cliente e serve para dois ue e propsitos: prov um reconhecimento do caractere recebido (nmero de reconhecimento o e u 43) e envia o caractere C de volta para ser apresentado na tela do cliente (nmero de u seqncia 79). No terceiro segmento trocado, o cliente reconhece o caractere recebido ue (nmero de reconhecimento 80). u

Figura 3.9: Nmeros de sequncia TCP u e

(KUROSE; ROSS, 2006a).

3.3.4

O servio transferncia de dados garantida no TCP c e

Para criar o servio de transferncia de dados garantida o TCP manipula trs grandes c e e eventos relacionados a transmisso/retransmisso de dados. ` a a 1. Quando recebe dados da camada aplicaao o TCP cria segmentos com nmeros de c u seqncia, correspondentes aos prximos nmero de seqncia a serem transmitidos, ue o u ue e inicia um temporizador para cada segmento criado. 2. Caso o temporizador de um segmento enviado estoure o tempo (time-out), o TCP retransmite este segmento. 3. Caso o TCP receba um reconhecimento um segmento enviado (ou de um conjunto de segmentos), ele cancela os temporizadores remanescentes a estes segmentos; ou ainda, caso receba reconhecimentos de segmentos que j haviam sido reconhecia dos (reconhecimentos cumulativos), ele retransmite os segmentos cujos nmeros de u seqncia so superiores ao reconhecimento cumulativo. ue a Vamos explicar como estes eventos que so tratados pelo TCP analisando alguns a cenrios descritos em (KUROSE; ROSS, 2006b). No primeiro cenrio, mostrado na gura a a 3.10, o host A envia 8 bytes de dados ao host B (com nmero de seqncia 92). O host u ue B envia reconhecimento dos 8 bytes recebidos (reconhecimento 100), o qual perdido. e 40

Figura 3.10: Nmeros de sequncia TCP: Cenrio 1 u e a

(KUROSE; ROSS, 2006a).

Depois do estouro do temporizador do segmento 92, o mesmo reenviado pelo host A. e Quando o host B recebe o segmento duplicado, ele reenvia o reconhecimento. No segundo cenrio, mostrado na gura 3.11, o host A transmitiu ao host B um a segmento com 8 bytes (nmero de seqncia 92) e em seguida mais um segmento com 20 u ue bytes (nmero de seqncia 100). O host B recebeu estes segmentos e enviou nmeros de u ue u reconhecimento (100 e 120 respectivamente). Todavia, o reconhecimento do segmento 92 (reconhecimento 100) chegou depois do time-out. Logo o host A retransmitiu o segmento com nmero de seqncia 92. Como o host B j havia recebido este segmento e tambm o u ue a e seguinte (com nmero de seqncia 100), ele reenviou o reconhecimento cumulativo deste u ue ultimo segmento (reconhecimento 120).

Figura 3.11: Nmeros de sequncia TCP u e 41

(KUROSE; ROSS, 2006a).

No prximo cenrio, mostrado na gura 3.12, como no caso anterior, o host A transo a mitiu ao host B um segmento com 8 bytes (nmero de seqncia 92) e em seguida mais u ue um segmento com 20 bytes (nmero de seqncia 100). O host B recebeu estes segmentos u ue e enviou nmeros de reconhecimento (100 e 120 respectivamente). Todavia, o reconheciu mento do segmento 92 (nmero de reconhecimento 100) se perdeu, o que no aconteceu u a com o segmento 100 (nmero de reconhecimento 120). Como o host A recebeu este ultimo u reconhecimento, ele sabe que o host B recebeu todos os segmentos por ele enviados, e est a esperando agora segmentos com nmero de seqncia 120. u ue

Figura 3.12: Nmeros de sequncia TCP u e

(KUROSE; ROSS, 2006a).

3.3.5

Gerenciamento de conexes no TCP o

Para trocarem segmentos de dados utilizando o TCP o emissor e o receptor devem estabelecer uma conexo TCP atravs da troca de pacotes de controle entre si. Isto chamado a e e de procedimento de estabelecimento de conexo (handshaking), onde se estabelecem os a parmetros para a comunicao. Uma vez conclu o handshaking a conexo dita a ca do a e estabelecida e os dois sistemas terminais podem trocar dados. Abertura de conexo a Na fase de estabelecimento de conexo, so inicializadas as variveis do protocolo a a a TCP, como os nmeros de seqncia inicial e o tamanho de buers. O processo cliente u ue e o que inicia o estabelecimento da conexo sendo o servidor contatado pelo cliente. a O estabelecimento da conexo se d em trs passos, conforme mostrado na gura 3.13: a a e 1. O lado cliente do TCP envia um segmento de sincronizaao, chamado SYN (com o c ag Syn setado em 1), ao lado servidor do TCP, especicando um nmero inicial u de seqncia escolhido aleatriamente (Seq=X). ue o 42

SYN (Seq=X)

SYN-ACK (Seq=Y, Ack=X+1)

ACK (Seq=X+1, Ack=Y+1)

Figura 3.13: Abertura de conexo TCP. a 2. O servidor recebe o SYN, aloca buers e inicializa variveis, e envia uma mensagem a de reconhecimento da conexo, chamada SYNACK (com o ag Syn e ag Ack a setados em 1), onde reconhece o pedido de conexo e especica seu nmero inicial a u de seqncia (Seq=Y, Ack=X+1). ue 3. Uma vez recebido o reconhecimento da conexo pelo servidor, o cliente conrma a o recebimento com um segmento chamado ACK (ag Syn agora em 0 e ag Ack setado em 1 indicando um reconhecimento vlido) e tambm aloca buers e inicializa a e variveis da conexo (Seq=X+1, Ack=Y+1). a a

Uma vez que os trs passos do estabelecimento da conexo forem completados, os e a hosts cliente e servidor podem trocar segmentos contendo dados entre eles. Recusa de conexo a No caso de uma recusa de conexo, por exemplo quando um cliente solicita uma a conexo numa porta inativa, o servidor contatado envia um segmento de controle chamado a RST (reset) (com o ag Rst setado em 1), conforme ilustra a gura 3.14:
SYN (Seq=X)

RST (Ack=X+1)

Figura 3.14: Recusa de conexo TCP. a Encerramento de conexo a Para o enceramento da conexo quatro segmentos so trocados, conforme mostrado a a na gura 3.15. Quem inicia a desconexo envia de um segmento especial, chamado FIN a (com ag Fin setado em 1). Quem recebe o segmento solicitando o m da conexo, a primeiro reconhece o segmento recebido e depois envia ele tambm um segmento FIN e (Estas duas mensagens podem estar concatenadas em uma unica mensagem FIN-ACK). O encerramento denitivo da conexo se d quando o que iniciou a desconexo recebe e a a a reconhece o segundo segmento FIN. 43

FIN (Seq=M)

ACK (Ack=M+1)

FIN (Seq=N)

FIN (Ack=N+1)

Figura 3.15: Enceramento de conexo TCP. a Programa tcpdump O programa tcpdump permite colocar uma interface de rede em modo prom scuo, capturando cada pacote circulando no meio f sico junto a interface. A partir dos pacotes capturados poss analizar pacotes trocados durante uma conexo TCP. e vel a O exemplo abaixo mostra uma sa do tcpdump, no qual esto listados cinco segda a mentos TCP trocados entre um cliente e um servidor Web. No comando o parmetro -n a imprime endereos IP e portas em formato numrico, -t no imprime a marca de tempo e c e a o -S mostra os nmeros de sequncia e reconheciento absolutos. Cada linha da sa apreu e da sentada mostra na sequncia: IP.porta origem > IP.porta destino: ags setados, nmero e u de sequncia inicial:nal (nmero de bytes do segmento), janela do receptor, etc. O prie u meiro segmento a solicitao de abertura de conexo (SYN), com ag S setado e nmero e ca a u de sequncia inicial 2203768770 (X). O segundo segmento a resposta a solicitaao do e e c cliente (SYN-ACK) com ag S setado e nmero de sequncia inicial 4002349619 (Y) e u e nmero de reconhecimento 2203768771 (X + 1). O terceiro segmento naliza a abertura u de conexo (ACK), com reconhecimento 4002349620 (Y + 1). O quarto segmento uma a e requisiao do cliente ao servidor, com 681 Bytes de dados e com o ag P setado, inforc mando que os dados devem ser passados a aplicaao. O quinto segmento reconhece os c 681 bytes recebidos com o nmero de reconhecimento 2203769452. u
root@loureed:/home/professores/cantu# tcpdump -ntS tcp and port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes IP 172.18.20.155.56481 > 200.135.37.65.80: S 2203768770:2203768770(0) win 5840 <mss 1460,sackOK,timestamp 60932550 0,nop,wscale 6> IP 200.135.37.65.80 > 172.18.20.155.56481: S 4002349619:4002349619(0) ack 2203768771 win 5792 <mss 1460,sackOK,timestamp 614688407 60932550,nop,wscale 2> IP 172.18.20.155.56481 > 200.135.37.65.80: . ack 4002349620 win 92 <nop,nop,timestamp 60932550 614688407> IP 172.18.20.155.56481 > 200.135.37.65.80: P 2203768771:2203769452(681) ack 4002349620 win 92 <nop,nop,timestamp 60932550 614688407> IP 200.135.37.65.80 > 172.18.20.155.56481: . ack 2203769452 win 1789 <nop,nop,timestamp 614688407 60932550> ...

44

Mquina de Estados do TCP a A gura 3.16 ilustra o diagrama de estados poss veis que o protocolo TCP pode assumir durante o processo e abertura e encerramento de conexes. o
+---------+ ---------\ active OPEN | CLOSED | \ ----------+---------+<---------\ \ create TCB | ^ \ \ snd SYN passive OPEN | | CLOSE \ \ ------------ | | ---------\ \ create TCB | | delete TCB \ \ V | \ \ +---------+ CLOSE | \ | LISTEN | ---------- | | +---------+ delete TCB | | rcv SYN | | SEND | | ----------| | ------| V +---------+ snd SYN,ACK / \ snd SYN +---------+ | |<---------------------------------->| | | SYN | rcv SYN | SYN | | RCVD |<-----------------------------------------------| SENT | | | snd ACK | | | |------------------------------------| | +---------+ rcv ACK of SYN \ / rcv SYN,ACK +---------+ | -------------| | ----------| x | | snd ACK | V V | CLOSE +---------+ | ------| ESTAB | | snd FIN +---------+ | CLOSE | | rcv FIN V ------| | ------+---------+ snd FIN / \ snd ACK +---------+ | FIN |<---------------------------------->| CLOSE | | WAIT-1 |-----------------| WAIT | +---------+ rcv FIN \ +---------+ | rcv ACK of FIN ------| CLOSE | | -------------snd ACK | ------- | V x V snd FIN V +---------+ +---------+ +---------+ |FINWAIT-2| | CLOSING | | LAST-ACK| +---------+ +---------+ +---------+ | rcv ACK of FIN | rcv ACK of FIN | | rcv FIN -------------- | Timeout=2MSL -------------- | | ------x V -----------x V \ snd ACK +---------+delete TCB +---------+ ------------------------>|TIME WAIT|------------------>| CLOSED | +---------+ +---------+

Figura 3.16: Diagrama de estados das conexes TCP (RFC793). o Durante o processo de estabelecimento de conexo o TCP passa por uma srie de a e estados. Os estados so: LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FINa WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, e o estado CLOSED. CLOSED um estado ct e cio, porque representa um estado onde no h TCB a a (Transmission Control Block ) (Bloco de controle de transmisso), pois no h mais coa a a nexo. a O signicado dos estados so: a

LISTEN - representa a espera de uma conexo de algum TCP remoto e porta. a 45

SYN-SENT - representa a espera de uma conrmao de conexo aps o envio de ca a o uma solicitaao de conexo. c a SYN-RECEIVED - representa a espera de uma conrmao de conexo aps ter ca a o recebido uma solicitao de conexo e enviado uma conrmao . ca a ca ESTABLISHED - representa uma conexo aberta, na qual dados recebidos podem a ser entregues ao usurio. a FIN-WAIT-1 - representa a espera de um encerramento de conexo aps o envio de a o uma solicitaao de encerramento. c FIN-WAIT-2 - representa a espera de uma solicitaao de encerramento de conexo c a de um TCP remoto. CLOSE-WAIT - representa a espera de uma solicitaao de encerramento de conexo c a do usurio local. a CLOSING - representa a espera de uma conrmaao de encerramento de conexo c a de um TCP remoto. LAST-ACK - representa a espera de uma conrmao de encerramento de conexo ca a previamente enviada ao TCP remoto (a qual inclui um reconhecimento de sua solicitaao de encerramento de conexo). c a TIME-WAIT - representa a espera de um tempo suciente para garantir que o TCP remoto receba a conrmao de encerramento de conexo. ca a CLOSED - representa a coenxo fechada. a Comando netstat O comando netstat, com o parmetro -t, pode ser utilizado para visualizar o estado das a conexes TCP ativas em um host, como mostrado no exemplo a seguir: o
evandro@Campeche:~$ netstat -t Conex~es Internet Ativas (sem os servidores) o Proto Recv-Q Send-Q Endereo Local c Endereo Remoto c tcp 0 0 Campeche.local:54203 helmet.uol.com.br:www tcp 0 0 Campeche.local:36536 i.uol.com.br:www tcp 0 0 Campeche.local:38409 200-98-211-131.inte:www tcp 0 0 Campeche.local:48448 200.221.7.75:www tcp 0 1 Campeche.local:54565 200.221.6.19:www tcp 0 0 Campeche.local:38408 200-98-211-131.inte:www tcp 1 0 Campeche.local:38408 200-98-211-131.inte:www

Estado ESTABELECIDA ESTABELECIDA ESTABELECIDA TIME_WAIT LTIMO_ACK U ESTABELECIDA ESPERANDO_FECHAR

O comando netstat com o parmetro -n imprime endereos IP e portas em formato a c numrico. e 46

3.3.6

Controle de uxo

O controle de uxo no TCP visa evitar que um emissor no afogue um receptor, a enviando mais dados que ele possa processar. Quando uma conexo TCP recebe bytes que a esto corretos e em sequncia, ela os armazena em um buer de recepo, antes de entrega e ca a los a aplicaao. Como o processo de aplicaao pode no ler estes dados imediatamente, c c a pode ocorrer um estouro da capacidade do buer. Assim, o mecanismo de controle de uxo implementa um tipo de casamento de velocidades entre o emissor e o receptor. O controle de uxo implementado por meio de uma varivel, chamada janela do e a receptor (receive window ), que mantm o valor atual da capacidade de armazenamento e do buer de recepo. Esta janela limita a quantidade de bytes que pode ser enviada antes ca de esperar por um reconhecimento. O tamanho desta janela dinmico, podendo variar e a durante uma conexo. Como a conexo full-duplex, cada um dos receptores mantm a a a e e informaao sobre sua janela de recepo. c ca A gura 3.17 ilustra o mecanismo de controle de uxo. Novos dados chegando da camada IP ocupam o espao livre do buer. Dados consumidos pela aplicaao liberam c c espao do buer. c

Figura 3.17: Janela do receptor (RcvWindow ) e buer de recepao (RcvBuer ) do c mecanismo de controle de uxo do TCP (KUROSE; ROSS, 2006a).

3.3.7

Temporizao no TCP ca

A cada segmento enviado pelo TCP ele inicializa um temporizador visando aguardar um reconhecimento em um tempo limite. Caso o temporizador se esgote (timeout) o TCP retransmite o segmento. O valor do temporizador deve ser maior que o tempo de ida e volta dos pacotes. Contudo, no pode ser muito pequeno, pois pode gerar estouros desnecessrios do tema a porizador, nem muito longo, pois aumenta o tempo de reao a poss ca veis erros. Para denir o valor do temporizador o TCP faz uma estimativa dinmica do tempo a de ida e volta dos pacotes, chamado RTT (roud trip time). A partir desta estimativa, calcula o valor mdio e desvio, e aplica uma margem de segurana para denir o valor do e c temporizador. A gura 3.18 ilustra o processo de estimativa do tempo de ida e volta (RTT) dos pacotes no TCP . 47

Figura 3.18: Estimativa do tempo de ida e volta (RTT) no TCP

(KUROSE; ROSS, 2006a).

3.3.8

Controle de congestionamento no TCP

O controle de congestionamento visa minimizar o congestionamento no ncleo da rede. u O TCP implementa um mecanismo de controle de congestionamento m a m inferido a partir da observao dos pacotes perdidos ou recebidos com atraso. A ca idia relativamente simples. Caso o TCP detecte perda de pacotes ele supe que h e e o a congestionamento da rede. A partir dai o TCP diminui o uxo de pacotes enviado, visando colaborar com a diminuio do poss congestionamento no ncleo da rede. Lembre que ca vel u a perda de pacotes ocorre principalmente quando estoura a capacidade de armazenamento nos roteadores devido ao congestionamento e os novos pacotes que chegam so descartados a (dropped ). O TCP controla sua taxa de transmisso limitando o nmero de segmentos transmitia u dos e ainda no reconhecidos. Este controle depende do tamanho da janela do receptor, a como vimos na seo 3.3.6 no estudo do controle de uxo. Idealmente, deve-se permitir ca que o TCP transmita o mais rpido poss a vel, desde que no perca segmentos. Para isto, a a conexo TCP comea com uma janela de tamanho pequeno, visando sondar a existncia a c e de banda, e vai aumentando at que ocorra uma perda. Quando isto acontece, o TCP ree duz o tamanho da janela para um n seguro, e volta a aument-la, sondando novamente vel a a existncia de banda. e Uma das medidas de performance do TCP a vazo (throughput) na qual o emissor e a transmite dados ao receptor. Esta taxa depende do tamanho da janela do receptor. Se o TCP transmite um conjunto de segmentos, totalizando a quantidade de bytes dispon veis na janela, ento ele deve esperar um tempo de ida e volta (RTT) at receber um recoa e nhecimento, a partir dai ele pode voltar a enviar dados. Se uma conexo transmite uma a quantidade de segmentos do tamanho da janela do receptor a cada RTT, ento a taxa a ser: a V azo = a
Janela RT T

(KUROSE; ROSS, 2006b).

Vimos que para o controle de uxo, o uxo de pacotes controlado pela varivel e a 48

janela do receptor (RevWindow ), a qual informada constantemente pelo receptor ao e remetente por meio do campo window, presente no cabealho do segmento TCP (ver c gura 3.7). Para o controle de congestionamento utilizado duas variveis a mais: a e a janela de congestionamento (CongWin) e o limiar. A janela de congestionamento vai impor uma limitaao adicional a quantidade de trfego que um emissor pode gerar. Esc a pecicamente a quantidade de dados enviados e no reconhecidos dentro de uma conexo a a TCP no deve exceder o m a nimo de CongWin e RevWindow. Vamos examinar como a janela de congestionamento (CongWin) evolui durante uma conexo TCP. Assim que a conexo estabelecida, o processo de aplicao remetente a a e ca escreve bytes no buer de envio do TCP emissor. O TCP agrupa os bytes em segmentos de tamanho MSS e envia para a camada rede para transmisso. Inicialmente a janela de a congestionamento igual a MSS. Isto signica que o TCP envia um segmento e espera e por um reconhecimento. Se este segmento foi reconhecido antes do esgotamento do temporizador, o TCP dobra o tamanho da janela de congestionamento, passando a enviar dois segmentos. Se receber reconhecimentos novamente, volta a dobrar o tamanho da janela para quatro. O TCP continua este procedimento enquanto: a) a janela de congestionamento estiver abaixo do valor de limiar; b) os reconhecimentos chegarem antes do esgotamento do temporizador. Esta fase do procecimento de controle de congestionamento chamada de partida e lenta, na qual a janela inicia com o valor de MSS e aumenta de forma exponencial. A fase de partida lenta termina quando o tamanho da janela atinge o valor de limiar (threshold ). A partir deste momento a janela continua a crescer linearmente, um MSS para cada RTT. Esta fase chamada de preveno de congestionamento. e ca Se houver um esgotamento de temporizao, o valor do limiar ajustado para ca e a metade do valor corrente da janela, e a janela ajustada para um MSS, reiniciando o e processo de partida lenta. Como renamento deste mecanismo, o TCP cancela o processo de partida lenta caso receba trs reconhecimentos duplicados antes de um estouro de temporizador. Neste e caso, ele reduz o tamanho da janela para a metade de seu valor corrente e volta a crescer linearmente. Este algoritmo chamado de aumento aditivo, dimuinuio multiplie ca cativa (AIMD additive-increase, multiplicative-decrease). A losoa do AIMD que trs reconhecimentos duplicados indica que a rede capaz e e e de entregar alguns segmentos. Entretanto, um estouro de temporizador antes de trs e reconhecimentos duplicados mais alarmante. e A evoluao do mecanismo de controle de congestionamento TCP ilustrada na gura c e 3.19.

49

Figura 3.19: Evoluao da janela de congestionamento TCP c

(KUROSE; ROSS, 2006a).

50

Cap tulo 4 Camada Rede


A camada de transporte prov um canal lgico processo a processo para as aplicaes e o co rodando em diferentes hosts. Para prover este servio, a camada de transporte usa a c camada rede, a qual prov um servio de comunicao de computador a computador na e c ca rede. Papis da camada rede: e Determinaao da rota que tomaro os datagramas desde o computador origem at c a e o destino, a partir de algor tmos de roteamento. Chaveamento dos datagramas chegando nos enlaces de entrada de cada roteador para a sa apropriada. da

4.1

Protocolo IP (Internet protocol )

Na Internet a camada rede implementada pelo protocolo IP, o qual oferece um servio e c de datagramas, onde cada datagrama tratado como uma unidade independente e no e a recebe nenhum tratamento de erros ou reconhecimento m a m. O protocolo IP em uso atualmente na Internet o IPv4, denido na RFC791. Outra verso do protocolo, e a conhecida como IPv6, ser apresentada na seao 4.8. a c Quando a camada rede do lado de um emissor recebe um segmento da camada de transporte ela o encapsula em um datagrama IP, escreve o endereo do destino e outros c campos do cabealho e envia ao primeiro roteador em direo ao computador destino. c ca Para que o datagrama atinga o destino, a camada rede envolve cada computador e cada roteador no caminho entre a origem e o destino dos segmentos. Os trs principais componentes da camada rede da Internet so: e a Protocolo IP, que prov uma forma de endereamento, formato do datagrama e e c convenes de empacotamento. co Protocolos de roteamento, que permitem a determinao de rotas e elaboraao ca c de tabelas de roteamento. Os protocolos de roteamento mais conhecidos so o RIP, a o OSPF e o BGP. 51

Protocolo ICMP, utilizado para reportagem de erros e sinalizaao entre os rotec adores e entre os computadores. A gura 4.1 ilustra, na forma de um mapa conceitual, uma viso dos principais cona ceitos da camada rede da Internet, mostrando explicitamente a relaao entre os mesmos. c

Figura 4.1: Viso dos principais conceitos da camada rede da Internet. a

4.1.1

Datagrama IP

Um datagrama IP a unidade bsica de transferncia na Internet. O formato do datae a e grama apresenta um cabealho, que contm os endereos IP da fonte (Source Address) e c e c do destino (Destination Address), alm de outros campos, e uma area de dados. e
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 4.2: Formato do datagrama IP (RFC791). O campo verso (Version) indica a verso do protocolo, no caso a verso 4, tambm a a a e conhecida como IPv4. 52

O campo IHL (internet header length) indica o comprimento do cabealho, em c funao dos campos opcionais, tipicamente o cabealho contm as 5 primeiras linhas, c c e totalizando 20 bytes.. O tipo de servio (Type of Service) permite diferenciar datagramas de diferentes c tipos de servio, sendo utilizado para implementar mecanismos de QoS (Qualidade c de Servio). c O campo Total Length indica o comprimento total do datagrama em bytes. Os parmetros identicao (Identication), ags e fragmentaao (Fragment Oset) a ca c so usados em caso de fragmentao do datagrama IP. a ca O tempo de sobrevida, TTL (Time to Live), indica o tempo de vida do datagrama, aps o qual o mesmo descartado. Na prtica medido em nmero de saltos (hops), o e a e u sendo decrementado de uma unidade em cada roteador. O protocolo (Protocol ) indica o protocolo da camada superior que est sendo transa portado, como por exemplo TCP ou UDP. Para cada protocolo h um nmero a u padronizado pela RFC1700, como por exemplo:

Assigned Internet Protocol Numbers Decimal Keyword Protocol 1 ICMP Internet Control Message 2 IGMP Internet Group Management 4 IPv4 IP in IP (encasulation) 6 TCP Transmission Control 17 UDP User Datagram O Header Checksum utilizado para deteco de erros no cabealho. e ca c O campo de opoes (Options) raramente usado. c e Os dados sucedem o cabealho, podendo ser, por exemplo, segmentos TCP ou UDP, c mensagens do protocolo ICMP, mensagens de roteamento, etc.

O comprimento total do datagrama teoricamente poderia ser de 64K bytes (em funo ca 16 dos 16 bits do campo: 2 = 65535), todavia, na prtica, nunca maior que 1.500 bytes a e e freqentemente limitado em 576 bytes. Isto feito para evitar a fragmentaao do u e e c datagrama na rede f sica, j que o mesmo encapsulado em um quadro da camada enlace a e e nem todas tem quadros de mesmo tamanho. No caso das redes locais Ethernet o tamanho do quadro de 1.500 bytes e em outros enlaces de 576 bytes. O tamanho mximo dos e e a pacotes que podem ser transportados pela camada enlace chamado de MTU (maximum e transfer unit), como ilustrado na gura 4.3: 53

20 bytes

MSS 1460 bytes

Cabe. IP

Cabe. TCP

Dados da aplicao

Cabe. Enlace

MTU 1500 bytes

Figura 4.3: Valor t pico de MSS e MTU.

4.1.2

Fragmentao do IP ca

A fragmentao de um datagrama IP pode ocorrer quando um datagrama chega em um ca enlace de entrada de um roteador e precisa ser enviado atravs de um enlace de sa e da cuja MTU (maximum transfer unit) no permite acomodar todos os bytes do datagrama. a Neste caso, o datagrama dever ser fragmentado em dois ou mais fragmentos (datagramas a de menor tamanho) antes de ser enviado atravs do enlace de sa e da. Os fragmentos precisam ser remontados antes de serem entregues a camada transporte no destino, uma vez que tanto o TCP quanto o UDP aguardam um datagrama completo. A soluao adotada pelos projetistas do IPv4 foi fragmentar os datagramas nos roteadores c intermedirios e somente remont-los no destino nal. Para permitir a remontagem do a a datagrama so utilizados trs campos do cabealho IP: identicao (Identication), a e c ca ags e fragmentao (Fragment Oset). Quando um datagrama criado o emissor ca e o identica com um nmero de identicaao (Identication), assim como um endereo u c c IP de origem e destino. Para cada novo datagrama criado o emissor gera uma nova identicao incrementando o valor deste campo. Quando um datagrama fragmentado ca e cada fragmento recebe o nmero de identicaao, endereo IP de origem e destino iguais u c c aos do datagrama original. Uma vez fragmentado o datagrama, cada fragmento ser a transmitido de forma independente, podendo inclusive chegarem no destino fora de ordem. Para a remontagem, a m de identicar a posio de cada fragmento dentro do datagrama ca original, o campo Fragment Oset utilizado. O ultimo fragmento reconhecido atravs e e e do ag, que denido como 0 (zero), cando para os demais fragmentos o ag denido e como 1 (um). A gura 4.4 ilustra um exemplo, apresentado por Kurose e Ross (2006a), no qual um datagrama de 4000 bytes (20 bytes de cabealho IP mais 3980 bytes de dados) chega a c um roteador e deve ser reenviado por um enlace com MTU de 1500 bytes. Para isto, os 3980 bytes de dados devem ser alocados em trs fragmentos, todos identicados com o e mesmo nmero de identicaao. u c A tabela abaixo ilustra os valores dos campos Identication, Oset e Flag para os trs fragmentos. O terceiro fragmento carrega somente 1020 bytes de dados (=3980-1480e 1480). O campo Oset do primeiro fragmento 0, signicando que os dados devem ser e inseridos a partir da posio 0 byte do datagrama a ser remontado. Para o segundo ca fragmento o Oset 185, signicando deve ser inserido na posiao 1480 bytes (note que e c 185 . 8=1480). Para o terceiro fragmento o Oset 370, signicando deve ser inserido e na posio 2960 bytes (note que 370 . 8 =2960). ca 54

Fragmento 1o 2o 3o

Bytes Identication 1480 777 1480 777 1020 777

Oset 0 185 370

Flag 1 1 0

Figura 4.4: Fragmentao do datagrama IP ca

(KUROSE; ROSS, 2006a).

4.2

Endereamento IP c

Endereo IP um endereo lgico de 32 bits, escrito em quatro octetos representados c e c o em decimal, cada um variando de O a 255. Os nmeros so separados por pontos. Por u a exemplo, 193.32.216.9 um endereo vlido e sua notao em binrio : e c a ca a e 11000001 00100000 11011000 00001001. Cada computador que esteja rodando o TCP/IP exige um endereo IP exclusivo. c Cada endereo IP engloba duas partes: o identicador da rede e o identicador c do computador. O identicador da rede identica a rede onde se encontram todos os computadores da mesma rede local. O identicador do computador identica um dispositivo em uma rede local, como um computador ou roteador. Por exemplo, a gura 4.5 ilustra trs redes locais interconectadas por um roteador com trs interfaces. Olhando e e para os endereos IP atribu c dos a cada computador e a cada interface do roteador, podemos notar, por exemplo, que os dispositivos conectados a rede local da direita e acima tem os endereos IP da forma 200.1.1.X. Isto , compartilham os 24 bits mais a esquerda do c e ` endereo IP. No jargo IP, esta parte do endereo forma o identicador da rede. Os 8 bits c a c restantes permitem identicar cada computador da rede local. O endereo da rede local c seria 200.1.1.0/24, onde a notaao /24 tambm conhecida como mscara de rede, e c e e a indica que os 24 bits mais a esquerda dos 32 bits do IP identicam a rede. ` O valor da mscara de rede pode tambm ser representado em decimal com pontos. a e 55

200.1.1.1

200.1.1.2

A
200.1.2.1 200.1.2.2

200.1.1.3

200.1.2.3

200.1.3.12

200.1.3.11

200.1.3.10

Figura 4.5: Endereamento IP e sub-redes. c Por exemplo, a mscara /24 pode ser representada como 255.255.255.0, o que signica a que os 24 primeiros bits so um e os 8 restantes zero. a A mscara de rede utilizada para mascarar uma parte do endereo IP para que se a e c possa distinguir o identicador da rede do identicador do computador. Para se extrair o identicador da rede a partir do endereo IP completo uma operaao lgica AND c c o e realizada com a mscara de rede. a Por exemplo, para descobrir o identicador de rede do computador cujo endereo IP c e 200.135.233.4 e cuja mscara de rede 255.255.255.0, devemos fazer uma operao AND a e ca desdes dois valores:
11001000 10000111 11101001 00000100 11111111 11111111 11111111 00000000 AND ___________________________________ 11001000 10000111 11101001 00000000

que resulta no endereo de rede 200.135.233.0. c

4.2.1

Classes de endereamento de IP c

Para garantir endereos exclusivos em mbito mundial, os endereos IP so licenciados a c a c a partir do organismo internacional chamado IANA (Internet Assigned Numbers Authority www.iana.org). Quando o protocolo IP foi criado previa trs classes de endereamento: Classe A (bits e c mais signicativos do endereo 00), com 128 redes poss c veis e 16777216 sistemas nais (menos os valores especiais tudo zero, reservados para o endereamento da rede, e tudo c um, reservado para broadcast); Classe B (MSB 10), com 16384 redes poss veis e 65536 sistemas nais (menos os dois valores reservados); e a Classe C (MSB 110) com 2097152 redes poss veis, cada qual com 254 sistemas nais (256 combinaes de bit combinations co menos os valores reservados tudo zero e tudo um). O conjunto de endereos com MSB c 1110 cou reservado para multicast e o restante para uso futuro. A gura 4.6 ilustra as classes de endereamento IP. c 56

1o octeto

2o octeto

3o octeto

4o octeto

Valor do primeiro octeto 0 - 127

Classe A

Rede

Host

Classe B

10

Rede

Host

128 - 191

Classe C

110

Rede

Host Multicast

192 - 223

Classe D

1110

224 - 239

Figura 4.6: Classes de endereamento IP. c Estas classes de endereamento no so mais utilizadas como parte formal dos da c a a arquitetura de endereamento IP, pois, com o crescimento do nmero de organizaes de c u co pequeno e mdio porte o espao de endereamento cou limitado. Por exemplo, uma rede e c c classe C pode acomodar at 28 endereos, ou seja 256 hosts, o que pode ser muito pouco e c para muitas organizaoes. J uma classe B, poderia acomodar 216 endereos, ou 64.634 c a c endereos, o que seria demais para uma organizaao com, por exemplo, 2000 computadoc c res. O endereamento CIDR (classless interdomain routing) (RFC4632), apresenta esc tratgias para atribuioes de endereos IPv4 de 32 bits, tendo em vista a preservaao do e c c c espao de endereamento e a limitaao do crescimento das tabelas de roteamento. c c c Na notaao CIDR um prexo representado por de 4-octetos, como um endereo c e c tradicional IPv4 ou um endereo de rede, seguido pelo caracter / (barra) e um decimal c entre 0 e 32, o qual descreve um nmero signicativo de bits. u Por exemplo, a rede Classe B de nmero 172.16.0.0 denida no CIDR com o prexo u e 172.16.0.0/16, na qual o /16 indica que a mscara de rede utilizada para extrair a poro a ca da rede do nmero de 32 bits. u A tabela a seguir (RFC4632), mostra um resumo de todos os prexos CIDR poss veis.
notation -------n.n.n.n/32 n.n.n.x/31 n.n.n.x/30 n.n.n.x/29 n.n.n.x/28 n.n.n.x/27 n.n.n.x/26 n.n.n.x/25 n.n.n.0/24 n.n.x.0/23 n.n.x.0/22 n.n.x.0/21 n.n.x.0/20 n.n.x.0/19 n.n.x.0/18 n.n.x.0/17 n.n.0.0/16 n.x.0.0/15 n.x.0.0/14 n.x.0.0/13 n.x.0.0/12 n.x.0.0/11 addrs/block ----------1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 # blocks ---------4294967296 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048

host route p2p link

legacy Class C

legacy Class B

57

n.x.0.0/10 n.x.0.0/9 n.0.0.0/8 x.0.0.0/7 x.0.0.0/6 x.0.0.0/5 x.0.0.0/4 x.0.0.0/3 x.0.0.0/2 x.0.0.0/1 0.0.0.0/0

4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296

1024 512 256 128 64 32 16 8 4 2 1

legacy Class A

default route

n um decimal de 8-bit. e x um valor de 1 a 7 bits, dependendo do comprimento do prefixo. e

Um enlace ponto a ponto (p2p link) denido na RFC3021, permitindo que um e enlace ponto-a-ponto, entre dois roteadores por exemplo, possa utilizar apenas dois endereos IP, j que no tem sentido falar em endereo de rede ou broadcast em um enlace c a a c deste tipo. Endereos IP especiais c Alguns endereos IP tm utilizao especial: c e ca 0.0.0.0 Endereo com todos os 32 bits iguais a 0: Pode aparecer em tabelas de c roteamento identicando o destino como a prria rede e tambm identicar rotas o e default; 255.255.255.255 Endereo com todos os 32 bits iguais a 1: E considerado um enc dereo de difuso limitado a rede do host origem do datagrama (no encaminhado); c a a 127.0.0.0 Endereo reservado para teste de (loopback ) e comunicaao entre proc c cessos da mesma mquina. a Os endereos com o primeiro octeto entre 240 e 255 so reservados para uso futuro. c a

4.2.2

Diviso em sub-redes a

Alm de poder solicitar um bloco de endereos IP de qualquer tamanho, com o CIDR e c uma organizao pode ainda dividir seu bloco de endereo em sub-redes, criando suas ca c prprias redes internas. o Por exemplo, imagine que uma organizaao tenha recebido o bloco de endereos c c 200.23.16.0/20. A mscara de rede /20 indica que os 20 primeiros bits do endereo identia c cam a rede, sobrando, portando, 12 bits para identicar hosts dentro desta rede. Assim, com este bloco de endereos, esta organizao pode enderear 212 hosts (4096 hosts). Esta c ca c organizaao pode tambm dividir este bloco em blocos menores, formando sub-redes. No c e exemplo abaixo, o bloco 200.23.16.0/20 foi sub-dividido em oito blocos, cada um podendo alocar 29 hosts (512 hosts), um para cada departamento da organizaao. c
Organiza~o ca 11001000.00010111.00010000.00000000 200.23.16.0/20

58

Departamento1 Departamento2 ... Departamento7

11001000.00010111.00010010.00000000 11001000.00010111.00010100.00000000 11001000.00010111.00011110.00000000

200.23.18.0/23 200.23.20.0/23 200.23.30.0/23

Comando ifconfig O comando ifconfig pode ser utilizado para visualizar a congurao ou congurar uma ca interface de host. A seguir mostrada uma sa do comando ifconfig: e da
cantu@loureed:~$ ifconfig eth0 Link encap:Ethernet Endereo de HW 00:1a:4d:a5:13:34 c inet end.: 172.18.20.155 Bcast:172.18.255.255 Masc:255.255.0.0 endereo inet6: 2001:db8::21a:4dff:fea5:1334/64 Escopo:Global c endereo inet6: fe80::21a:4dff:fea5:1334/64 Escopo:Link c UP BROADCAST RUNNING MULTICAST MTU:1500 Mtrica:1 e pacotes RX:744290 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:7757 erros:0 descartados:0 excesso:0 portadora:0 colis~es:0 txqueuelen:1000 o RX bytes:81021465 (77.2 MB) TX bytes:1235085 (1.1 MB) IRQ:221 Endereo de E/S:0x4000 c lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereo inet6: ::1/128 Escopo:Mquina c a UP LOOPBACK RUNNING MTU:16436 Mtrica:1 e pacotes RX:2102 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:2102 erros:0 descartados:0 excesso:0 portadora:0 colis~es:0 txqueuelen:0 o RX bytes:105100 (102.6 KB) TX bytes:105100 (102.6 KB)

Na primeira parte da sa do comando ifconfig mostrada a conguraao da da e c interface eth0 relativa a placa de rede Ethernet informando o endereo f c sico, endereo c IP, endereo de broadcast, mscara de rede, MTU (maximum transfer unit) do enlace, c a entre outras informaoes. Na segunda parte mostrada a conguraao da interface lgica c e c o para testes de loopback.

4.2.3

Endereos IP privados c

A RFC1918 reservou os seguintes trs blocos de endereos IP para uso privado na Internet: e c
10.0.0.0 172.16.0.0 192.168.0.0 10.255.255.255 (10/8 prefix) 172.31.255.255 (172.16/12 prefix) 192.168.255.255 (192.168/16 prefix)

59

Nos referimos ao primeiro bloco como bloco de 24-bit, o segundo bloco como bloco de 20-bit, e o terceiro bloco como bloco de 16-bit . Note que (na notaao anterior ao CIDR) c o primeiro bloco consiste de uma rede classe A, enquanto que o segundo bloco consiste de um conjunto cont guo de 16 redes classe B, e o terceiro bloco consiste de um conjunto cont guo de 256 classe C. Os endereos acima so ditos endereos IP privados e tem validade somente no c a c escopo da rede interno de uma organizaao. Para conexo a Internet pblica, precisa-se c a u de endereos IP p blicos. c u Utilidade dos endereos privados c Os hosts dentro de uma organizaao podem ser particionados em trs categorias: c e 1. Hosts que no requerem acesso a outras organizaoes ou a Internet global; hosts a c nesta categoria podem utilizar endereos IP privados. c 2. Hosts que requerem acesso a um conjunto limitado de servios externos ` organizaao c a c (como E-mail, FTP, login remoto), os quais podem ser mediados por gateways (como um roteador NAT). Para muitos hosts nesta categoria um acesso externo irrestrito pode no ser necessrio, ou at mesmo no desejvel para ns de segurana. Hosts a a e a a c nesta categoria tambm podem utilizar endereos IP privados. e c 3. Hosts que requerem acesso a servios externos a organizao; hosts nesta categoria c ` ca requerem endereos IP pblicos (como servidores web). c u

4.3

NAT (Network Address Translation)

O NAT (network address translation) um mecanismo que possibilita a uma rede local e usar apenas um endereo IP p blico, no que concerne ao mundo exterior, e utilizar c u endereos IP privados no que concerne a rede interna. Apenas um endereo IP pblico c c u usado para todos os dispositivos, o que possibilita modicar endereos de dispositivos e c na rede local sem noticar o mundo exterior. Com o NAT os dispositivos dentro da rede local no so explicitamente endereveis, ou vis a a ca veis do mundo exterior, o que pode ser considerado uma forma de segurana para a rede interna. c Outra importante vantagem do uso do NAT a economia de IP pblicos. e u A implementaao do NAT faz uso das portas dos protocolos da camada de transporte. c Todos os datagramas deixando a rede local tm o mesmo e unico endereo IP NAT de e c origem e diferentes nmeros de porta origem. Para isto, um roteador NAT deve: u Datagramas saindo: trocar (IP origem, porta ) de cada datagrama saindo para (IP NAT, nova-porta). Os clientes/servidores remotos vo responder usando (IP NAT, a nova-porta) como endereo destino; c Lembrar, utilizando uma tabela de traduo NAT, de cada par de traduao (IP ca c origem, porta ) para (IP NAT, nova-porta); 60

Datagramas entrando: trocar (IP NAT, nova-porta) nos campos de destino de cada datagrama entrando para o (IP origem, porta) correspondente armazenado na tabela NAT. A gura 4.7. ilustra um exemplo apresentado por Kurose e Ross (2006a). Neste exemplo uma estaao da rede local contata um servidor web remoto no endereo 128.119.40.186, c c porta 80, e informa seu endereo e porta origem 10.0.0.1, 3345. O roteador NAT traduz c o endereo IP e porta da estaao interna pelo IP NAT, nova-porta, 138.76.29.7, 5001. c c O servidor responde ao IP NAT, nova-porta. O roteador NAT, uma vez que recebe a resposta do servidor, traduz novamente para o endereo IP e porta origem da estao da c ca rede local.

Figura 4.7: NAT

(KUROSE; ROSS, 2006a).

4.4

protocolo DHCP

O protocolo DHCP (dynamic computador conguration protocol ) e permite a alocaao c dinmica de endereos IP dentro de uma rede local. Com o DHCP, um servidor DHCP a c recebe uma solicitao de um cliente e aloca dinamicamente um endereo IP em resposta ca c ao pedido do cliente. Com o DHCP um computador cliente pode adquirir toda a conguraao necessria em uma unica mensagem (por exemplo, o endereo IP, mscara de c a c a rede, roteador padro, servidor DNS, etc). a O servidor DHCP deve ser congurado com a faixa de endereos IP dispon c veis para oferecer. Quando um computador se conecta na rede, ele solicita um endereo IP se c apresentando com seu endereo f c sico. O servidor ento escolhe um endereo IP dentro a c da faixa dispon e aloca ao solicitante. vel 61

4.5

Protocolo ARP

Quando um computador deseja enviar um datagrama a um destinatrio conectado ` sua a a rede local, ele entrega o datagrama a interface de rede para ela mapear o endereo IP no c endereo f c sico do computador destino. O endereo f c sico tambm conhecido como endereo de MAC e corresponde ao e e c endereo Ethernet de 48 bits, representado na forma de seis bytes hexadecimais, por c exemplo, 00:19:21:55:61:d0. O protocolo ARP, denido na RF826, permite encontrar o endereo f c sico a partir do endereo IP da mquina alvo. Para tal, o protocolo usa um mecanismo de difuso c a a (broadcast), enviando uma solicitao a todas as mquinas da rede, sendo que a mquina ca a a alvo responde indicando o par endereo IP/endereo f c c sico. A gura 4.8 ilustra o funcionamento do protocolo ARP.

Figura 4.8: Protocolo ARP. Para melhorar a performance do protocolo, cada mquina possui uma memria (caa o che) com as ultimas consultas realizadas, evitando mltiplos broadcasts. Ainda como u renamento, junto com o broadcast, a estaao solicitante envia seu par endereo IP/enc c dereo f c sico, permitindo que todas as mquinas da rede incluam este par em suas caches a locais. Quando um hardware trocado, a mquina que sofreu a mudana se anuncia na rede e a c com o novo par endereo IP/endereo f c c sico, logo aps sua entrada em operao. o ca Comando arp O comando arp, com parmetro -a, mostra todas as entradas ARP armazenadas na a memria cache, como no exemplo abaixo, relacionando endereos IP e endereos f o c c sicos.
cantu@loureed:~$ arp -an ? (172.18.0.4) em 00:83:08:00:22:CE [ether] em eth0 ? (172.18.0.1) em 00:08:54:B0:8C:C3 [ether] em eth0 ? (172.18.0.254) em 00:08:54:19:E6:9D [ether] em eth0

Protocolo RARP O protocolo RARP realiza a operaao inversa do ARP, isto , a partir de um endereo c e c f sico permite encontrar o endereo IP da mquina. c a 62

E geralmente utilizado por mquinas sem disco r a gido (disk-less) para obter um endereo IP de um servidor. Para tal, um computador RARP envia um broadcast com o seu c endereo f c sico solicitando um endereo IP. A mquina autorizada a responder o pedido c a RARP envia a resposta.

4.6

Protocolo ICMP

Conforme j mencionado, o protocolo IP fornece um servio de datagramas no convel e a c a a no orientado a conexo, onde um datagrama segue de roteador em roteador at alcanar a a e c seu destino nal. Se um roteador no consegue encontrar uma rota ou entregar um a datagrama, ou se uma condiao anormal detectada, o roteador precisa informar a fonte c e original dos dados para que esta tome alguma ao ou corrija o problema. O protocolo ca ICMP (Internet Control amd Message Protocol ), denido na RFC792, permite que os roteadores enviem mensagens de erro e controle a outros roteadores ou hosts; oferecendo uma comunicao entre a camada rede de uma mquina e a camada rede de outra mquina. ca a a Tecnicamente o ICMP um mecanismo de reportagem de erros. Ou seja, quando e um datagrama causa um erro, o ICMP pode reportar a condio de erro de volta a fonte ca original do datagrama; a fonte ento relata o erro para a aplicao ou realiza uma ao com a ca ca vistas a corrigir o erro. Por exemplo, quando rodando uma aplicaao Telnet ou HTTP, c podemos encontrar mensagens como Destination Network Unreachable (rede destino no a encontrada), que tem origem no protocolo ICMP. O ICMP normalmente considerado como parte do IP, todavia as mensagens ICMP e so carregadas na porao de dados de um datagrama IP, que as identica como tipo a c ICMP (Type 1). Os datagramas contendo as mensagens ICMP seguem de volta, seguindo exatamente o caminho que tomaram os dados do usurio, podendo elas tambm serem a e perdidas ou corrompidas. Formato das Mensagens ICMP Cada mensagem ICMP tem um campo de tipo (Type) e um campo de cdigo (Code), e o tambm contm os primeiros 8 bytes do datagrama que causou o erro (com isto o emissor e e pode determinar o pacote que causou o erro). Por exemplo, a mensagem ICMP Destino Inalcanavel (Fig. 4.9). c Na sequncia esto listados alguns tipos de mensagens ICMP. e a
Summary of Message Types 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect 8 Echo 11 Time Exceeded 12 Parameter Problem 13 Timestamp 14 Timestamp Reply

63

Destination Unreachable Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type Code 0 1 2 3 4 5 3 = = = = = = net unreachable; host unreachable; protocol unreachable; port unreachable; fragmentation needed and DF set; source route failed.

Figura 4.9: Mensages ICMP Destino Inalcanavel (RFC792). c


15 16 Information Request Information Reply

Ping
Nem todas as mensagens ICMP so de reportagem de erros. A aplicao ping, por exemplo, a ca envia mensagens ICMP Echo Request a um host e espera como retorno mensagens Echo Reply para vericar se o host est dispon a vel A origem do nome ping vem do sonar para localizar objetos (STEVENS, 2008) e na Internet serve para testar se um host alcanvel pela rede IP. e ca A gura 4.10 mostra o formato da mensagem ICMP de requisio e resposta de eco. ca
Echo or Echo Reply Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+Type 8 for echo message; 0 for echo reply message. Code 0

Figura 4.10: Mensages ICMP Requisiao e Resposta de Eco (RFC792). c


So identicadas com cdigo (0) e tipo (8 echo request; 0 echo reply). O campo idena o ticador (identier ) permite ao ping identicar se a resposta recebida quando h mltiplas a u instncias do ping rodando. O campo nmero de sequncia (sequence number ) inicia com 0 e a u e e incrementado a cada nova requisio de eco enviada. O ping imprime os nmeros de sequncia ca u e de cada pacote retornado, permitindo ao usurio acompanhar quais pacotes foram perdidos, a reordenados ou ducplicados. A seguir est o exemplo de uma sa t a da pica do ping:

64

cantu@loureed:~$ ping 200.135.37.65 PING 200.135.37.65 (200.135.37.65) 56(84) bytes of data. 64 bytes from 200.135.37.65: icmp_seq=1 ttl=63 time=0.288 ms 64 bytes from 200.135.37.65: icmp_seq=2 ttl=63 time=0.329 ms 64 bytes from 200.135.37.65: icmp_seq=3 ttl=63 time=0.268 ms 64 bytes from 200.135.37.65: icmp_seq=4 ttl=63 time=0.355 ms 64 bytes from 200.135.37.65: icmp_seq=5 ttl=63 time=0.342 ms --- 200.135.37.65 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 3998ms rtt min/avg/max/mdev = 0.268/0.316/0.355/0.036 ms A sa do ping mostra o retorno de cada datagrama enviado, identicado pelo nmero de da u sequncia. Outras informaes so o tempo de ida e volta do datagrama e o campo TTL (time e co a to live) do datagrama IP. O valor inicial recomendado para o TTL 64 (servidores Linux usam e este valor). Outros sistemas inicializam com outros valores (servidores Windows usam o valor mximo 255). No exemplo acima, portanto, pode-se concluir que o datagrama com a resposta a de eco passou por um roteador intermedirio. a

Traceroute
Outra aplicao que utiliza mensagens ICMP o traceroute. ca e O traceroute, que capaz de traar a rota que liga um computador a outro computador. e c Para determinar o nome e o endereo dos roteadores entre a fonte e o destino, o traceroute c na fonte envia uma srie de datagrama IP ordinrios ao destino. O primeiro datagrama tem e a o campo TTL (time to live) igual a 1, o segundo 2, o terceiro 3, e assim por diante, e inicia temporizadores para cada datagrama. Quando o ensimo datagrama chega ao ensimo roteador, e e este verica que o tempo de sobrevida do datagrama acaba de terminar. Pelas regras do IP, o datagrama ento descartado e uma mensagem ICMP de advertncia tempo excedido (Time e a e Exceeded ) enviada a fonte (tipo 11 cdigo 0), com o nome do roteador e seu endereo IP. e o c Quando a resposta chega de volta a fonte, a mesma calcula o tempo de viagem em funo dos ca temporizadores. O traceroute envia datagramas IP encapsulados em segmentos UDP a um host destino. Todavia escolhe um nmero de porta destino com um valor desconhecido (maior que 30000), u tornando improvvel que o host destino esteja usando esta porta. Quando o datagrama chega a ao destino uma mensagem ICMP porta inalcanvel (port enreachable) (tipo 3 cdigo 3) ca o gerada e enviada a origem. O programa traceroute precisa saber diferenciar as mensagens e ICMP recebidas tempo excedido e porta inalcanvel para saber quando a rota foi conclu ca da. A seguir est o exemplo de uma sa t a da pica do traceroute, executado de um host na rede interna do Campus So Jos do IF-SC no servidor Web da UFSC: a e cantu@loureed:~$ traceroute www.ufsc.br traceroute to www.ufsc.br (150.162.1.151), 30 hops max, 40 byte packets 1 172.18.0.254 (172.18.0.254) 0.205 ms 0.181 ms 0.169 ms 2 200.135.233.254 (200.135.233.254) 0.563 ms 0.878 ms 1.113 ms 3 rt-85-PoP-SaoJose-CEFET.remep.pop-sc.rnp.br (200.237.201.85) 0.529 ms 0.638 ms 0.628 4 rt1-PoP-UFSC.remep.pop-sc.rnp.br (200.237.201.62) 0.602 ms 0.691 ms 0.682 ms 5 ge1-1-rt199-UFSC.bb.pop-sc.rnp.br (200.237.194.199) 0.669 ms 0.759 ms 0.850 ms 6 web1.ufsc.br (150.162.1.151) 0.511 ms 0.517 ms 0.488 ms

65

4.7

Roteamento

O roteamento de datagramas na Internet uma das principais funes da camada rede. O protoe co colo IP assume que um computador capaz de enviar datagramas a qualquer outro computador e conectado mesma rede local. Caso o destinatrio no esteja na mesma rede, parte da funo a a a ca de roteamento transferida para os roteadores (gateways). e Os roteadores podem ser equipamentos espec cos ou computadores normais que possuem mais de uma interface de rede. O roteamento no IP baseia-se exclusivamente no identicador de rede do endereo destino. Cada roteador possui uma tabela, chamada tabela de roteamento, c cujas entradas so pares: endereo de rede/endereo de roteador. Por exemplo, quando um a c c computador deseja enviar um datagrama, inicialmente ele verica se o destinatrio est coneca a tado a rede local. Se for o caso, ele entrega o datagrama a interface de rede que se encarrega de mapear o IP no endereo f c sico do computador destino, encapsular o datagrama IP em um quadro da rede e transmiti-lo. Caso o computador destino no se encontre na rede local, ele a envia o datagrama ao roteador padro (gateway default) da rede local. O roteador procura na a sua tabela de roteamento o endereo do roteador que deve ser usado para alcanar a rede onde c c est conectado o destinatrio do datagrama. O roteador encontrado pode no fazer parte da a a a rede destino, mas, deve fazer parte do caminho a ser percorrido para alcan-la. ca Veja um exemplo de como funcionam as tabelas de roteamento, considerando a rede apresentada na gura 4.11.
200.1.1.1 200.1.1.2

A
200.1.2.1 200.1.2.2

200.1.1.3

200.1.2.3

200.1.3.12

200.1.3.11

200.1.3.10

Figura 4.11: Roteamento na Internet.


Suponha que o computador A (IP 200.1.1.1) tenha a tabela de roteamento dada na tabela a seguir e deseja enviar um datagrama IP ao computador B (IP 200.1.1.2). Neste caso, o computador consulta sua tabela de roteamento e descobre que a rede 200.1.1.0/24 casa com o identicador da rede do computador B. A tabela indica que o prximo roteador 0.0.0.0, o que o e quer dizer que est na mesma rede local. Ento o computador A passa o datagrama diretamente a a a camada enlace atravs da interface eth0 para proceder ` entrega ao computador B. e a Tabela de Roteamento do computador A Destino Roteador Mscara a 200.1.1.0 0.0.0.0 255.255.255.0 200.1.2.0 200.1.1.3 255.255.255.0 200.1.3.0 200.1.1.3 255.255.255.0

Interface 0 eth0 0 eth0 0 eth0

Suponha agora o caso em que o computador A queira enviar um datagrama ao computador C (IP 200.1.3.10), situado em outra rede, no caso a rede 200.1.3.0/24. Consultando sua tabela

66

de roteamento ele verica que esta rede acess a partir do roteador 200.1.1.3. Ento ele e vel a passa o datagrama ao roteador para dar prosseguimento a entrega, o qual tambm acess a e e vel partir da interface eth0. O roteador ento consulta sua tabela de roteamento (veja tabela abaixo) e verica que a a rede 200.1.3.0/24 acess diretamente atravs da sua interface eth2. Sendo assim, ele entrega e vel e o datagrama a camada de enlace da rede 200.1.3.0/24 para fazer a entrega ao computador C.

Tabela de Roteamento do roteador R Destino Roteador Mscara a 200.1.1.0 0.0.0.0 255.255.255.0 200.1.2.0 0.0.0.0 255.255.255.0 200.1.3.0 0.0.0.0 255.255.255.0

Interface 0 eth0 0 eth1 0 eth2

Comando netstat
O comando netstat pode ser utilizado para visualizar as tabelas de roteamento. O parmetro a -r serve para listar a tabela de roteamento e o parmetro -n imprime os endereos IP no formato a c numrico. e A seguir mostrada uma sa do comando netstat: e da

cantu@loureed:~$ netstat -rn Tabela de Roteamento IP do Kernel Destino Roteador MscaraGen. a 172.18.0.0 0.0.0.0 255.255.0.0 169.254.0.0 0.0.0.0 255.255.0.0 0.0.0.0 172.18.0.254 0.0.0.0

Op~es co U U UG

MSS 0 0 0

Janela 0 0 0

irtt 0 0 0

Iface eth0 eth0 eth0

4.7.1

Roteamento esttico e protocolos de roteamento a

A construo das tabelas de roteamento em cada roteador pode ser feita manualmente por um ca administrador de rede ou atravs do uso de protocolos de roteamento. A construo manual das e ca tabelas de roteamento chama-se roteamento esttico. a O uso de protocolos de roteamento permite que as tabelas sejam constru das e atualizadas dinamicamente. Devido a problemas de escala e de autonomia administrativa, os roteadores que vo participar de um roteamento dinmico devem ser agrupados em regies, ou sistemas a a o autnomos (SAs) e devem rodar o mesmo protocolo em cada regio. o a H duas classes de protocolos de rotemento dinmico na Internet: os protocolos intraSA a a e inter-SA. Os protocolos de rotemento intraSA atuam internamente ao sistema autnomo, denindo o as melhores rotas em funo de um custo atribuido a cada enlace a percorrer. Dois protocolos ca de rotemento intraSA bastante utilizados na Internet so o RIP e o OSPF. a O RIP (routing information protocol ) constri as tabelas dinamicamente utilizando um o algoritmo de roteamento chamado vetor de distncias, calculando as melhores rotas tendo a como base o nmero de enlaces a percorrer. u

67

O OSPF (Open Shortest Path First) um protocolo de roteamento mais elaborado, baseado e no algoritmo estado do enlace, desenhado para convergir rapidamente ao ser informado de qualquer alterao de estado do enlace dentro da rede. ca O roteamento inter-SA permite interconectar diferentes sistemas autnomos. Na Internet o o protocolo mais utilizado neste dom nio o BGP (border gateway protocol ), o qual permite e implementar pol ticas espec cas dependendo dos sistemas autnomos que sero integrados. o a

4.8

Protocolo IPv6

O protocolo IPv6 a nova verso do IP, especicado pela RFC2460, e deve substituir o IPv4. e a Alm disto, o IPv6 incrementado por vrias outras RFCs, por exemplo: RFC2463 (ICMP for e e a the Internet Protocol Version 6 ) e RFC3775 (Mobility Support in IPv6 ). Apesar de ter sido denido a quase 10 anos o IPv6 ainda no tem data para ser implementado a dinitivamente na Internet. Este atraso se justica pelo sucesso do IPv4, em particular por sua simplicidade de administrao. Sua resilincia, que a capacidade de voltar ao seu estado ca e e normal depois de ter sofrido uma presso, como por exemplo, congesto ou falta de memria. a a o Sua escalabilidade, na qual partes do sistema podem ser administrados como sistemas autnomos o independentes. Sua exibilidade e extensibilidade, a qual tem possibilitado solues de alguns co de seus problemas, como o CIDR que acabou com as classes de endereamento, o NAT que c possibilitou o uso de IP privados em uma rede interna e a autocongurao dos endereos em ca c uma rede local com DHCP. Um dos motivos que levaram ao desenvolvimento do IPv6 foi a escassez de endereos IP c que se avizinhava no in dos anos 1990. Em partes isto foi devido ao uso de classes no IPv4, cio a qual atribuiu faixas gigantescas de endereos para algumas poucas empresas e instituies. c co Posteriormente, este problema acabou sendo minimizado com a proposio do endereamento IP ca c sem classes (CIDR) e tambm com o uso do NAT. Alm da limitao do espao de endereamento e e ca c c o IPv4 no incluia em seu projeto original suporte para mobilidade, segurana e qualidade de a c servio. Na questo da qualidade de servio (QoS), o campo TOS (type of service) acabou c a c sendo utilizado posteriormente, como especicado na RFC1349 (Type of Service in the Internet Protocol Suite). As principais melhorias introduzidas pelo IPv6 so: a Ampliao do espao de endereamento de 32 bits para 128 bits; ca c c Melhoria no formato do datagrama IP; Melhoria no processo de autocongurao; ca Insero de mecanismos para tratamento de mobilidade (MIPv6); ca Insero de mecanismos de segurana (IPsec); ca c Insero de mecanismos para facilitar o gerenciamento de QoS. ca

4.8.1

Estrutura do datagrama IPv6

O datagrama IPv6 possui seu cabealho com tamanho xo de 40 bytes, como mostra a gura c 4.12.

68

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 4.12: Formato do datagrama IPv6 (RFC2460).


O campo verso (Version), de 4 bits, indica a verso do protocolo, no caso = 6. a a Classe de trfego (Trac Class), com 8 bits, utilizado por ns de origem e roteadores a e o intermedirios para diferenciar diferentes classes e prioridade de trfego entre os pacotes a a IPv6; tem funcionalidade similar a utilizao do campo TOS do IPv4 permitindo de ca implementar servios diferenciados de QoS (DiServ ) para os pacotes IP. c Rtulo de uxo (Flow Label ), com 20 bits, pode ser utilizado por ns de origem para o o rotular sequncias de pacotes que requerem tratamento especial em roteadores, como e servios tempo real. c Comprimento dos dados (Payload Length), com 16 bits, especica o tamanho dos dados aps o cabealho, em bytes. o c Prximo cabealho (Next Header ), com 8 bits, especica o tipo do cabealho imediatao c c mente aps o cabealho IPv6; pode utilizar nmeros similares aos do campo Protocol do o c u IPv4, ou nmeros espec u cos para o IPv6 (RFC3232), os quais so atualmente estabelecia dos por uma base on-line no endereo www.iana.org, como por exemplo: c

Next Header IPv6 - Header types 00 = Hop-by-Hop Options 41 = ipv6 43 = Routing 44 = Fragment 51 = Authentication 60 = Destination Options 50 = Encapsulating Security Payload xx = Upper Layer Header 58 = Internet Control Message Protocol (ICMP) 59 - no next header Limite de saltos (Hop Limit), com 8 bits, decrementado de 1 em cada n de encaminhae o mento do pacote; o pacote descartado quando o Hop Limit chega a zero. e

69

Endereo fonte (Source Address), com 128 bits. c Endereo destino (Destination Address), com 128 bits. c Foram removidos do cabealho IPv6 os seguintes campos que haviam no IPv4: c Tamanho do cabealho (Header Length), uma vez que o cabelalho IPv6 possui tamanho c xo; Identication, Flags, Fragment Oset, uma vez que no IPv6 no h mais fragmentao do a a ca datagrama, sendo utilizada uma tcnica conhecida como descoberta da MTU do caminho e (Path MTU Discovery); Header Checksum, o que tornou o processamento mais leve, evitando recalcular o valor do checksum em cada n. o

Extenses do cabealho IPv6 o c


As extenses do cabealho IPv6, denidas na RFC2460 so as seguintes: o c a Hop-by-Hop Options header Routing header Fragment header Destination Options header Authentication header Encrypted Security Payload header As extenses so identicados pelo campo Next Header e so colocados entre o cabealho o a a c IPv6 e o pacote de n vel superior. Elas so examinados unicamente pelo n identicado no a o endereo de destino, a no ser o cabealho hop-by-hop. c a c O cabealho de opes Hop-by-Hop carrega informaes que devem ser processadas por todos c co co ns ao longo do caminho. As informaes podero ser utilizadas para reserva de recursos (exemo co a plo RSVP), para encontrar destinos de multicast, entre outras, e deve seguir necessariamente o cabealho IPv6. A opo Jumbogram da extenso hop-by-hop permite que pacotes maiores c ca a que 64K sejam transmitidos. O campo Option Data Lenght, de 32 bits informa o tamanho dos dados, que devem se seguir ao mesmo. A extenso cabealho de roteamento (Routing header ) permite informar um conjunto de a c roteadores que devem ser visitados at o seu destino nal e pode ser utilizada por aplicaes que e co exigem qualidade de servio. c A extenso cabealho de fragmentao (Fragment header ) usada para possibilitar a fraga c ca e mentao e remontagem de datagramas. O IPv6 usa a tcnica PATH MTU Discovery para ca e determinar a mxima MTU na trajetria do pacote. Se o pacote for maior que esta MTU ento a o a ele fragmentado na fonte. Os roteadores ao longo da rota no fragmentam o pacote. O destino e a remonta o pacote fragmentado.

70

Endereamento IPv6 (RFC 3513) c


O IPv6 tem endereamento de 128 bits: espao de 2128 endereos!! c c c E utilizada uma notao hexadecimal com agrupamento de 16 bits separados por dois ca pontos, como por exemplo: 2001:0DB8:5002:2019:1111:76ff:FEAC:E8A6 . So utilizadas regras para simplicar a representao de zeros, por exemplo o endereo: a ca c 0237:0000:ABCD:0000:0000:0000:0000:0010 , pode ser transformado em: 237::ABCD:0:0:0:0:10 , ou, melhor ainda, 237:0:ABCD::10.

Tipos de endereamento IPv6 c


Unicast: identica um hospedeiro (interface); Multicast: identica um conjunto de hospedeiros. O Ipv6 eliminou o broadcast e enriqueceu o processo de multicast; Anycast: uma novidade no Ipv6. E um endereo que pode ser atribu a mltiplos c do u hospedeiros. O roteamento da Internet permite encaminhar pacotes ao endereo anycast c mais prximo. o

Endereo Unicast c
Os endereos unicast so endereos p blicos, roteveis na Internet. Apresentam uma estruc a c u a tura hierrquica, cujas interfaces so conguradas com mscaras de 64 bits. a a a O endereo link-local traz a noo de endereos privados dentro de uma rede. No so c ca c a a roteveis e comeam com 1111111010. Por exemplo: FE80:A0000::1 . a c Outros endereos notveis: c a Endereo Loopback : ::1 c Endereo no especicado: :: c a Endereos Multicast: FF02::1 todos os ns do enlace; FF02::2 todos os roteadores c o do enlace.

4.8.2

ICMPv6

O ICMPv6 (RFC2463) reporta erros se pacotes no podem ser processados apropriadamente e a envia informaes sobre o status da rede. Apresenta vrias melhorias em relao ao ICMPv4. O co a ca IGMP, que trata multicast no IPv4, foi incorporado no ICMPv6. O ARP/RARP foi incorporado atravs da utilizao da tcnica Neighbour Discovery (descoberta de informaes da vizinhana). e ca e co c Incorporou mensagens de registro de localizao para IP Mvel. ca o As mensagens ICMPv6 so transportadas por datagramas IPv6 com nmero Next Header a u igual a 58H e tem formato geral mostrado na guraa 4.13.

71

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Message Body + | |

Figura 4.13: Formato geral da mensagem ICMPv6 (RFC2463).


As mensagem com bit mais signicativo (MSB) do campo type = 0 indicam erro (valores de 0127) e com o MSB = 1 so de informao (valores de 128255). a ca So exemplos de mensagens de erro: a Type 1 2 3 4

Destination Unreachable Packet Too Big Time Exceeded Parameter Problem

So exemplos de mensagens de informao: a ca Type 128 129 133-136

Echo Request Echo Reply Neighbor Discovery

O campo Code indica o cdigo da mensagem, por exemplo, para mensagens de erro Destio nation Unreachable poderemos ter: Type Code 1 0 - No route to destination 1 - Communication with destination administratively prohibited 2 - Beyond scope of source address 3 - Address unreachable 4 - Port unreachable 5 - Source address failed ingress/egress policy 6 - Reject route to destination

A mensagems de erro Packet Too Big (Type = 2, Code = 0) utilizada pela tcnica de e e descoberta da MTU do enlace (Path MTU Discovery), uma vez que o IPv6 no fragmenta do a datagrama nos roteadores intermedirios. Nesta tcnica o n emissor assume a MTU do seu a e o enlace de sa e envia o pacote para destino. Caso algum roteador da rota detecte que o pacote da muito grande para o MTU ento ele avisa o n fonte com ICMPv6 Packet Too Big (que inclui e a o o tamanho da MTU do enlace problema). O n usa esta nova MTU para encaminhar o pacote o novamente ao seu destino, podendo o processo todo pode se repetir em outros roteadores. A mensagems de erro Time Exceeded (Type = 3, Code = 0) enviada quando o limite de e saltos (hop limit) excedido em um dado roteador. e

72

4.8.3

Autocongurao ca

A autocongurao (RFC2462) um dos pontos fortes do IPv6 permitindo gerar endereos IP ca e c automaticamente para as interfaces, sem nenhum tipo de congurao manual. Para isto o IPv6 ca combina prexos divulgados pelos roteadores com o endereo de MAC (ou nmero randmico) c u o para. Na ausncia de roteadores usa-se o prexo FE80 para gerar um endereo privado linke c local. A autocongurao usada quando um s no necessita estabelecer endereos particuca e tio a c lares as estaes. Caso haja necessidade de se atribuir endereos espec co c cos, pode-se utilizar o DHCPv6, como no IPv4. Na autocongurao so utilizadas mensagens ICMPv6 de descoberta de vizinhos (Neighbor ca a Discovery) (RFC2461), as quais so equivalentes as mensagens ARP. As mensagens ICMPv6 a Neighbor Discovery podem ser do tipo (entre outras):

Neighbor Discovery: Type Code 133 0 Router Solicitation 134 0 Router Advertisement 135 0 Neighbor Solicitation 136 0 Neighbor Advertisement As mensagens Neighbor Solicitation e Neighbor Advertisement so utilizadas para a descoa berta de vizinhos e deteco de endereos duplicados, como ilustra a gura 4.14. ca c
Endereo tentativa: FE80::200:88FF:22:10

Neighbor Solicitation para: FE80::200:88FF:22:10 Neighbor Advertisiment

Figura 4.14: Neighbor Solicitation e Neighbor Advertisement.


A mensagem Router Solicitation utilizada para a descoberta de roteadores na rede loe cal e Router Advertisement so utilizadas pelos roteadores, periodicamente, para anunciar sua a presena e divulgar seu prexo, como ilustra a gura 4.15. c .

Passos para autocongurao ca


1. Um endereo tentativa formado com o prexo FE80 (link-local address) e associado a c e interface; 2. O n se junta aos grupos multicasting; o

73

Endereo tentativa: FE80::200:88FF:22:10

Router Solicitation Router Advertisiment Prefixo: 2001:10::

Figura 4.15: Router Solicitation e Router Advertisement.


3. Uma mensagem Neighbor Solicitation enviado com o endereo tentativa como target e c address. Se detectado IP duplicado o n dever ser congurado manualmente; o a 4. O n realiza um Router Solicitation para o endereo FF02::2. (grupo multicast dos o c roteadores); 5. Todos roteadores do grupo multicast respondem e o n se autocongura para cada um o deles;

Formao do Endereo a partir do MAC ca c


Os 64 bits do identicador de hospedeiro so formados pela insero de FFFE entre o terceiro e a ca quarto byte do MAC e complementando-se o segundo bit menos signicativo do primeiro. Supondo que o hospedeiro possui endereo MAC de 11:AA:BB:2A:EF:35 e o prexo recebido do Roc teador (via Advertncia) 2001:10:/64 ento o endereo formado : 2001:10::11A8:BBFF:FE2A:EF35 e e a c e .

4.8.4

Transio de IPv4 para IPv6 ca

Nem todos os roteadores podem ser atualizados simultaneamente, uma vez que dias de mudana geral so inviveis. Os projetistas do IPv6 pensaram a transio de forma gradativa, c a a ca com roteadores IPv4 e IPv6 convivendo simultaneamente. Para isto utilizada uma tcnica e e conhecida como tunelamento, na qual datagramas IPv6 so carregados em datagramas IPv4 a entre roteadores IPv4, como ilustra a gura 4.16.

74

Figura 4.16: Tunelamento de um datagrama IPv6 em um IPv4

(KUROSE; ROSS, 2006a).

75

76

Cap tulo 5 Protocolos de Enlace e Redes Locais


As redes locais so redes de computadores concentradas em uma rea geogrca restrita, por a a a exemplo no mbito de uma empresa ou universidade, e permitem aos computadores e usurios a a da rede compartilharem recursos. Com a possibilidade de as redes locais serem conectadas entre si, formando a Internet, cresceu de forma extraordinria as possibilidades de acesso a recursos e a servios, de forma que hoje praticamente no se pensa mais uma rede local isolada. c a

5.1

Protocolos de enlace

A camada inter-rede da Internet oferece um servio de comunicao de datagramas entre dois c ca sistemas terminais. Esta comunicao passa por caminhos que iniciam no host de origem, ca passando por uma srie de roteadores e termina no host destino. Cada equipamento, como e hosts e roteadores, chamado de n e o canal de comunicao entre dois ns adjacentes ao longo e o ca o de uma rota chamado de enlace. Desta forma, para mover um datagrama desde sua origem e at seu destino, ele precisa percorrer cada um dos enlaces individuais entre os diversos ns. e o Os enlaces entre ns vizinhos podem ser suportados por diferentes tecnologias, utilizando o protocolos espec cos, os quais so chamados de protocolos de enlace. As unidades de dados a de protocolos trocadas pelos protocolos de enlace so chamadas quadros (frames) e tipicamente a encapsulam um datagrama da camada rede. Assim como os protocolos inter-rede so protocolos m a m que movem datagramas de um a host a outro, os protocolos de enlace so protocolos n a n, movendo quadros sobre um simples a o o enlace entre ns vizinhos. o

5.1.1

Servios oferecidos pelos protocolos de enlace c

Dentre os poss veis servios oferecidos pelos protocolos de enlace est o acesso ao meio f c a sico e o encapsulamento (framing). No caso da Internet, os datagramas da camada inter-rede so encapsulados em quadros e o acesso ao meio vai depender do tipo de protocolo utilizado. a Grosso modo podemos dividir os protocolos de enlace em dois grandes grupos: os protocolos de enlace ponto a ponto e os protocolos de enlace multiponto, que caracterizam as redes locais. No caso de um protocolo ponto a ponto o acesso ao meio bastante simples, aceitando e o envio de um quadro caso o meio estiver livre. J no caso de protocolos multiponto, como o a protocolo de rede local Ethernet, h necessidades de mecanismos especiais para acesso ao meio. a

77

Alm destes servios bsicos, dependendo do protocolo, outras aes podem ser executadas e c a co sobre os quadros, como: comunicao full-duplex ou half-duplex, deteco e correo de erros, ca ca ca entrega de dados garantida e controle de uxo.

Tcnicas de deteco e correo de erros e ca ca


Em qualquer transmisso de informao existe o risco do erro sob o efeito de perturbaes a ca co aleatrias ou de ru o dos. De um modo geral, os erros nos dados transmitidos atravs da rede e podem ser: Erros de bit introduzidos nos dados; Perda de pacotes; Falha nos enlaces de comunicao. ca Os erros de bits so bastante raros, havendo tcnicas para detect-los e mesmo corrigi-los. a e a Se o erro for muito grave, o pacote pode ser descartado e ter que ser retransmitido. No caso da a perda de pacotes, a retransmisso a soluo. J no caso de falha de um enlace, algumas vezes a e ca a poss utilizar uma rota alternativa, evitando a ligao com defeito. A deteco e correo e vel ca ca ca de erros no n de bits dos quadros enviados de um n a outro n sicamente conectado so vel o o a geralmente servios oferecidos pelos protocolos da camada de enlace. c Trs tcnicas simples de deteco e correo de erros no n e e ca ca vel de bits so a checagem de a paridade, os mtodos de checksum e os mtodos de redundncia c e e a clica (CRC). Checagem de paridade Talvez a forma mais simples de deteco de erros de bits seja utilizar um simples bit de ca paridade. Por exemplo, suponha que um dado D a ser transmitida tenha d bits. Usando um esquema de paridade, o emissor acrescenta ao dado um bit adicional e escolhe seu valor como o total de bits em 1 de d + 1 bits (o total de bits em D mais o bit de paridade), de forma que seja par, como mostra o exemplo abaixo. Dado Paridade +----------------+-+ 0111000110101011 1 Quando o receptor recebe o dado, ele computa os bits em 1, incluindo o bit de paridade, e verica se o resultado par. Caso no seja, o receptor sabe que algum bit teve seu valor e a alterado. Algumas tcnicas permitem, alm de detectar erros em bits, de corrigi-los. Estas tcnicas e e e so conhecidas como FEC (forward error correction). Elas so uteis, pois permitem diminuir a a a necessidade de retransmisses pelo emissor. o Checksum Na tcnica de checksum o dado D tratado como uma seqncia de palavras binrias. O e e ue a mtodo consiste em somar a seqncia de palavras e usar a soma para detectar erros nos bits. e ue Este mtodo utilizado pelos protocolos Internet e foi descrito na seo 3.2.1. e e ca Checagem de redundncia c a clica

78

Os cdigos de redundncia c o a clica, ou cdigos CRC (cyclic redundancy check), esto o a entre os mtodos mais utilizados nas redes de computadores para deteco de erros, pois podem e ca descobrir mais erros que um checksum. Os cdigos CRC so tambm conhecidos como cdigos polinomiais, j que podem ser vistos o a e o a como um polinmio onde os coecientes so 0 e 1. Por exemplo, o nmero binrio de 4 bits, o a u a 1011, corresponde ao polinmio o M (x) = 1.x3 + 0.x2 + 1.x1 + 1.x0 = x3 + x1 + 1 cujo grau 3. e Os cdigos CRC operam como segue. Para uma pea de dados D a ser transmitida, o o c emissor e o receptor devem acordar primeiramente sobre um polinmio gerador, G, de grau r. o Assim, o emissor adiciona ao dado D mais r bits, de forma que o resultado da soma d + r seja exatamente divis por G usando aritmtica mdulo 2. vel e o Quando o receptor recebe os dados, ele divide d + r por G; caso a diviso no seja exata, a a ele sabe que h erros nos dados; caso contrrio, o dado considerado correto. a a e

5.1.2

Protocolos de enlace ponto-a-ponto

Um protocolo de enlace ponto a ponto consiste de um simples emissor em uma extremidade de um enlace e um simples receptor na outra ponta. Muitos protocolos tem sido desenvolvido para este tipo de comunicao, como por exemplo, o protocolo PPP (point-to-point protocol ) e ca o HDLC (high-level data link control ). O PPP um dos protocolos ponto a ponto mais utilizados atualmente. E tipicamente o e protocolo escolhido para conectar um computador pessoal residencial a um provedor de acesso a Internet usando uma linha telefnica. Tambm utilizado em enlaces ponto a ponto entre o e e roteadores.

Protocolo PPP
O protocolo PPP pode operar sobre uma linha telefnica (usando por exemplo uma conexo via o a modem de 54K bps), sobre um enlace SONET/SDH (syncrhonous optical network/syncrhonous digital hierarchy), sobre uma conexo X.25 ou sobre um circuito digital RDSI (rede digital de a servios integrados). c O protocolo PPP recebe um pacote da camada inter-rede (por exemplo, um datagrama IP) e o encapsula em um quadro da camada enlace PPP, de forma que o receptor ser capaz de a identicar o in e o m do quadro, bem como o pacote da camada rede que ele contm. cio e O formato do quadro PPP, mostrado na gura 5.1, sempre inicia e termina com 01111110 (chamado de ag), o segundo byte sempre 11111111 (chamado de endereo) e o terceiro byte e c sempre 00000011 (chamado de controle). Os demais campos so os seguintes: e a Protocol (1 ou 2 bytes), indica ao receptor qual o protocolo da camada de rede que est a sendo encapsulado no quadro. No caso de um datagrama IP, este campa tem o valor hexadecimal 21. Information (tamanho varivel, podendo ter no mximo 1500 bytes), contm o pacote a a e encapsulado (dado), por exemplo um datagrama IP.

79

01111110

11111111

00000011

Protocol

Info

Checksum

01111110

Figura 5.1: Formato do quadro PPP.


Checksum (2 a 4 bytes), usado para detectar erros nos bits do quadro transmitido. O protocolo SLIP (Serial Line Internet Protocol ) outro protocolo similar ao protocolo e PPP.

5.1.3

Protocolos de enlace de m ltiplo acesso u

O problema central nos enlaces de mltiplo acesso determinar quem deve transmitir e quando. u e Como vrios podem transmitir quadros ao mesmo tempo, estes podero colidir e sero perdidos. a a a Os protocolos de acesso mltiplo ao meio permitem coordenar o acesso ao meio, evitando ou u detectando estas colises. o Nas redes de computadores as tcnicas mais utilizadas para acesso a um meio comum so e a conhecidas como protocolos de acesso randmico. Vrios protocolos deste tipo foram deo a senvolvidos e os mais conhecidos derivam do protocolo ALOHA, desenvolvido no nal dos anos sessenta para permitir interligar via rdio os computadores espalhados pelo campus da universia dade do Hawaii (USA), situados em diferentes ilhas do Pac co. O protocolo utilizado nas redes Ethernet e nas redes locais sem derivam do ALOHA e so baseados na tcnica de escuta da a e portadora antes de enviar uma informao (CSMA carrier sense multiple access). ca

Protocolo ALOHA
Na primeira verso do protocolo ALOHA, quando um n tinha um quadro a ser transmitido, ele a o o transmitia imediatamente. Se aps um tempo de atraso o emissor ouvisse sua transmisso (reo a exo do sinal de rdio transmitido), ele assumia que no havia ocorrido conito. Caso contrrio, a a a a assumia que havia ocorrido que uma coliso e retransmitia o quadro com uma probabilidade p, a seno esperava um tempo correspondente ao tempo de transmisso e tentava enviar novamente a a com probabilidade p.

Protocolo CSMA
O protocolo CSMA foi projetado para funcionar com computadores conectados em barramento e introduziu dois novos princ pios em relao ao ALOHA: ca Escutar a portadora antes de enviar um quadro (carrier sense) (o que no era poss no a vel ALHOA devido ao tempo de propagao do sinal de rdio). Neste processo, o n escuta ca a o o canal: caso o canal estiver livre transmite o quadro imediatamente; caso o canal estiver ocupado, volta a escut-lo depois de decorrido um tempo randmico para tentar nova a o transmisso. a

80

Se algum comear a transmitir no mesmo tempo, pra a transmisso. Este procedimento e c a a chamado de deteco de colises (colision detection), onde os ns continuam ouvindo o e ca o o canal enquanto transmitem: caso detectem uma sobreposio de transmisses (colises), ca o o param imediatamente a transmisso. a Estas duas regras so as caracter a sticas principais do protocolo (CSMA/CD carrier sense multiple access/colision detection), utilizado nas redes locais baseadas no protocolo Ethernet.

5.2

Redes Locais

A Ethernet (padronizadas como IEEE 802.3) talvez seja a tecnologia mais utilizada atualmente em redes locais (LAN local area networks) e utiliza difuso (broadcast) sobre um barraa mento lgico para a comunicao entre seus pares. As redes locais sem o (padronizadas como o ca IEEE802.11) tambm utilizam broadcast sobre um meio comum, no caso o ar e o espectro elee tromegntico. e Numa rede local, todos os computadores e demais dispositivos de rede so diretamente a conectados e usam o mesmo tipo de protocolo de enlace. Um roteador conectando a rede local a Internet prov uma forma de acesso a Internet a todos os equipamentos da rede local, como e mostra a gura 5.2.

Internet

Figura 5.2: Rede local conectada a Internet por meio de roteador.

5.2.1

Topologia de redes locais

Uma maneira de classicar as redes locais quanto a topologia de conexo de seus ns. As e a o topologias mais conhecidas so o barramento, a estrela e o anel. a A topologia em barramento foi popularizada pelas redes locais Ethernet. As primeiras redes Ethernet conectavam diretamente seus ns por meio de um barramento de cabos coaxiais, o utilizando um protocolo de mltiplo acesso para controlar o acesso ao meio. As redes Ethernet u atuais utilizam dispositivos contentradores, como hubs e switches, formando uma topologia f sica do tipo estrela. Todavia a topologia lgica continua sendo do tipo barramento, o utilizando o protocolo CSMA-CD para controlar o acesso ao meio. A gura 5.3 ilustra estas formas de conectividade em rede. A topologia em anel foi popularizada nos anos 1980 pelas redes token-ring (padronizadas como IEEE 802.5), as quais utilizam uma conexo f a sica em anel de seus ns e controlam o o acesso ao anel por meio de um protocolo baseado na passagem de cha (token) entre as estaes. Outras tecnologias tambm utilizaram a topologia em anel ou variantes desta topologia, co e como as redes pticas FDDI (ber digital distributed interface) e DQDB (distributed queue dual o bus)(padronizadas como IEEE 802.6). A gura 5.4 ilustra computadores conectados em uma topologia em anel.

81

(a) Barramento.

(b) Estrela.

Figura 5.3: Topologias em barramento e estrela.

Figura 5.4: Topologia em anel.


Com a popularizao das redes Ethernet e o avano tecnolgico que tem proporcionado taxas ca c o de transmisso cada vez mais altas, o mercado atual dominado por esta tecnologia, estando as a e topologias em anel praticamente em desuso.

5.2.2

Placas adaptadoras

Os protocolos de enlace so em geral implementados sobre placas adaptadoras que fazem a a interface entre o host, seja ele um computador terminal ou um roteador, e o meio f sico. Desta forma, os principais componentes de um adaptador de rede so sua interface com o barramento a do host e sua interface com o enlace f sico. Por exemplo, uma placa de rede Ethernet de 100 Mbps possui uma interface para conexo da mesma diretamente no barramento do computador, a e uma interface de rede, que pode ser tipo RJ45 (conexo com par tranado) ou BNC (conexo a c a com cabo coaxial) (em desuso).

5.2.3

Endereos f c sicos

Os ns das redes locais trocam quadros (frames) entre si atravs de um canal comum (broadcast). o e Isto signica que, quando um n transmite um quadro, todos os demais ns vo receber este o o a quadro. Todavia, em geral, um n no quer enviar quadros a todos ns, mas sim a um n o a o o particular. Para prover esta funcionalidade, os ns de uma rede local devem ser capaz de o enderear os demais ns quando enviam um quadro. Desta maneira, quando um n recebe um c o o quadro, ele pode determinar se o quadro est endereado a ele ou a outro n da rede: a c o Se o endereo do quadro recebido casa com o endereo f c c sico do n que o recebeu, ento o a

82

o n extrai o datagrama (da camada inter-rede) do quadro recebido (camada de enlace) e o repassa para cima na sua pilha de protocolos; Se o endereo do quadro recebido no casa com o endereo f c a c sico do n o recebeu, o n o o simplesmente ignora o quadro. Na verdade no o n da rede que tem um endereo f a e o c sico, mas sim, cada adaptador de rede da rede local. Nas redes locais Ethernet, o endereo f c sico tambm chamado de endereo e e c Ethernet ou ainda endereo MAC (media access control ). Um endereo Ethernet um nmero c c e u expresso na notao hexadecimal, de seis bytes, dando 248 poss ca veis endereos, por exemplo, o c endereo 00:19:21:55:61:d0. Este endereo permanente, sendo gravado pelo fabricante do c c e adaptador de rede em uma memria ROM (read only memory). o

Resoluo de endereo f ca c sico


Quando um datagrama da camada inter-rede, endereado a um computador de uma rede local c chega ao roteador de borda, a partir da Internet, o roteador dever encapsular este datagrama a em um quadro da camada enlace para poder entreg-lo ao computador destino. Para que isto a seja feito, o roteador dever mapear o endereo IP no endereo f a c c sico do computador destino. Como descrito na seo 4.5 esta tarefa realizada pelo protocolo ARP. ca e

5.2.4

Ethernet

Ethernet a tecnologia de redes locais mais difundida atualmente. Pode-se dizer que a Ethernet e est para as redes locais, assim como a Internet est para as redes geogracamente distribu a a das de alcance global. A Ethernet usa o protocolo de acesso randmico CSMA-CD, que completamente deso e centralizado, e o hardware (placa de rede, hubs e switches Ethernet) tem um custo bastante atrativo. Existem vrias tecnologias de rede local Ethernet, que operam em velocidades de 10/100 a Mbps at 1/10 Gbps. Podem rodar sobre cabo coaxial, par tranado de cobre ou ainda bra e c o ptica, sendo que, ao n vel lgico, todas as mquinas compartilham um barramento comum, o a sendo portando a velocidade de acesso tambm compartilhada entre as estaes. e co A gura 5.5 ilustra, na forma de um mapa conceitual, uma viso dos principais conceitos a envolvidos nas redes Ethernet.

Quadro Ethernet
O quadro (frame) Ethernet tem as seguintes caracter sticas, mostradas na gura 5.6: Prembulo (8 bytes), cada um dos primeiros sete bytes do prembulo tem o valor 10101010 a a e o oitavo byte tem o valor 10101011. Endereo Destino e Origem (6 + 6 bytes), contm o endereo f c e c sico da origem e destino do quadro, nomeados AA-AA-AA-AA-AA-AA e BB-BB-BB-BB-BB-BB, respectivamente. Tipo (2 bytes), permite identicar o tipo do protocolo da camada superior, por exemplo, o protocolo IP (ou outro como Novell IPX).

83

Figura 5.5: Viso dos principais conceitos das redes locais Ethernet. a
Prembulo End. Dest. End. Orig. Tipo Dados CRC

Figura 5.6: Formato do quadro Ethernet.

Dados (46 a 1500 bytes), carrega o datagrama IP, sendo o MTU (maximum tranfer unit) o quadro Ethernet 1.500 bytes.

CRC (cyclic redundancy check ) (4 bytes), permite ao receptor detectar quaisquer erros introduzidos nos bits do quadro recebido.

5.3
5.3.1

Hubs, pontes e switches


Hubs

O modo mais simples para interconectar computadores numa rede local atravs de um hub. e e Um hub, ou concentrador, um dispositivo que simplesmente pega os bits dos quadros de uma e porta de entrada e retransmite `s portas de sa a da. Hubs so essencialmente repetidores e operam a sobre os bits, atuando portanto ao n da camada f vel sica (camada 1 do modelo OSI). Apesar de no n vel f sico a topologia dos equipamentos conectados a um hub ser do tipo estrela, no n lgico um hub implementa um barramento de mltiplo acesso entre os host que vel o u so conectados em suas interfaces. a

84

5.3.2

Pontes

Uma ponte (bridge) um dispositivo eletrnico que permite que vrias redes locais sejam e o a concatenadas. Cada ponte conecta dois segmentos de rede e faz com que uma cpia de cada o quadro que chega a um segmento seja transmitida ao outro segmento. Deste modo, os dois segmentos da rede local operam como se fosse uma rede unica. Diferentemente do hub, uma ponte manipula quadros completos, atuando portanto ao n da camada enlace (camada 2 do vel modelo OSI).

5.3.3

Switches

Um switch (ou comutador) um dispositivo eletrnico capaz de comutar o trfego de uma LAN, e o a atuando no n da camada 2, diminuindo o espao de conitos no acesso ao meio comum. Pelo vel c fato de reduzir o espao de conitos no acesso ao meio os switches aumentam a ecincia da c e rede local. Os switches de rede local geralmente substituem os hubs compartilhados e so concebidos a para trabalhar com as infra-estruturas de cabeamento j existentes. a A seguir esto duas operaes bsicas realizadas pelos switches: a co a Comutar quadros de dados Os switches recebem quadros em uma interface, selecionam a porta correta para encaminhar os quadros com base no endereo f c sico destino do quadro e, em seguida, encaminham os quadros com base na escolha do caminho. Manter as operaes do switch Os switches criam e mantm tabelas de encaminhamento. co e Um switch cria uma tabela de encaminhamento aprendendo os endereos MAC dos hosts c que esto conectados a cada uma de suas portas. Quando dois hosts conectados querem se a comunicar, o switch consulta a tabela de encaminhamento e estabelece uma conexo virtual a entre as portas.

85

86

Referncias Bibliogrcas e a
COMER, D. E. Interligao em Redes com TCP/IP. Trad. 5. Rio de Janeiro: Campus, 2006. ca KUROSE, J. F.; ROSS, K. W. Computer Networking: A Top-Down Approach Featuring the Internet. 4. ed. USA: Addison Wesley, 2006. KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: Uma abordagem top-down. Trad. 3 ed. So Paulo: Addison Wesley, 2006. a PETERSON, L. L.; DAVIE, B. S. Redes de Computadores: Uma abordagem de sistemas. Trad. 3 ed. Rio de Janeiro: Campus, 2004. RFC. Request for Comments. Dispon em: <www.ietf.org; www.rfc-editor.org>. vel STEVENS, W. R. TCP/IP Illustrated. New York: Assidon-Wesley, 2008. TANENBAUM, A. S. Redes de Computadores. trad. 4 ed. Rio de Janeiro: Elsevier, 2003.

87

Anda mungkin juga menyukai