SANTA CATARINA

Campus São José

Redes de Computadores e a Internet

Evandro Cant´ u
Instituto Federal de Santa Catarina Campus S˜ ao Jos´ e cantu@ifsc.edu.br

Agosto de 2011.

Apresenta¸ c˜ ao

O objetivo desde texto ´ e servir de material de apoio para um curso introdut´ orio de redes de computadores, voltado para a disciplina de Redes de Computadores I do CST em Sistemas de Telecomunica¸ c˜ oes e para a disciplina de Redes de Computadores do Curso T´ ecnico de Telecomunica¸ c˜ oes do Instituto Federal de Santa Catarina, Campus S˜ ao Jos´ e. As redes de computadores s˜ ao estudadas tomando como referˆ encia a arquitetura Internet, estudada em torno de seus principais protocolos, o TCP/IP. A principal referˆ encia bibliogr´ afica utilizada na constru¸ c˜ ao deste material foi o livro de 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 aplica¸ c˜ oes e depois descendo pelas demais camadas que formam a arquitetura Internet. As RFCs (Request for comments ), que constituem os padr˜ oes para a Internet, tamb´ em foram consultadas e sempre que poss´ ıvel foram inclu´ ıdos ilustra¸ c˜ oes e desenhos constantes nestes documentos. O texto est´ a organizado em cinco cap´ ıtulos. O primeiro faz uma introdu¸ c˜ ao ` as redes de computadores e a arquitetura Internet, dando uma vis˜ ao ampla das redes e dos principais conceitos envolvidos. O segundo cap´ ıtulo apresenta os protocolos e as aplica¸ c˜ oes de rede, apresentando em particular a aplica¸ c˜ ao WWW, o correio eletrˆ onico e a transferˆ encia de arquivos e a aplica¸ c˜ ao 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 ´ e o protocolo IP. Finalmente, o quinto cap´ ıtulo apresenta as redes locais e os protocolos de enlace, com destaque para a tecnologia Ethernet.

Evandro Cant´ u, agosto de 2011.

Sum´ ario

1 Introdu¸ c˜ ao as redes de computadores e a Internet 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 . . . . . . . . . . . . . . . . . . . . . . . Classifica¸ ca ˜o das redes quanto a abrangˆ encia geogr´ afica . . . . . . . . . . . Comuta¸ c˜ ao de pacotes X comuta¸ c˜ ao de circuitos . . . . . . . . . . . . . . .

5 5 7 8 8

Tipos de roteamento em redes de comuta¸ ca ˜o de pacotes . . . . . . . . . . . 11 Vaz˜ ao, atraso e perda de pacotes . . . . . . . . . . . . . . . . . . . . . . . 12 Suporte a servi¸ cos comuns para as aplica¸ c˜ oes . . . . . . . . . . . . . . . . . 13 Padroniza¸ c˜ ao na ´ area de redes de computadores . . . . . . . . . . . . . . . 15 Arquitetura de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Aplica¸ c˜ oes Internet e Protocolos de Aplica¸ c˜ ao 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9

21

Protocolos de aplica¸ c˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Clientes e servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Portas e comunica¸ ca ˜o atrav´ es da rede . . . . . . . . . . . . . . . . . . . . . 22 Endere¸ camento das aplica¸ co ˜es . . . . . . . . . . . . . . . . . . . . . . . . . 22 Agente usu´ ario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Servi¸ cos de transporte utilizados pelas aplica¸ c˜ oes . . . . . . . . . . . . . . 23

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

2.10 Telnet e SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.11 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3 Camada de Transporte da Internet 1 33

. . . . . . . .2 4. . . . . . . . . . . . . . . . 62 Endere¸ cos IP privados . . . . . . . . . . 35 . . . . . . . . . . . . . . . . . . . .3. .2. . . . . . . . . . . . . . . . . .1 4. . . . . . . . . . . . . . 41 O servi¸ co transferˆ encia de dados garantida no TCP . . . . . . . . . . . . . . . .2. . . . . . .4 4. . . . . . . . . . . . . . . . .1 3. . . . . . . .3 TCP (Transmission Control Protocol ) 3. . . . . . 77 Transi¸ ca ˜o de IPv4 para IPv6 . . . . . . . . . . . .8. . . . 65 Protocolo ARP . . . . . . .3 Classes de endere¸ camento de IP . . . . . . . . 69 4. . 72 ICMPv6 . . . . . . . . . . . .7 NAT (Network Address Translation ) . . . . . . . . .2. . . . . 40 N´ umeros de sequˆ encia e reconhecimento no TCP . . . . . .3. . 60 Divis˜ ao em sub-redes . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . 64 protocolo DHCP . . . . . . . . . . .1 3. . . . 65 Protocolo ICMP . . . . . . . . . . . . . . . .3 4.2 Datagrama IP . . . . . . . . . . . . . . . . . . . .4 Estrutura do datagrama IPv6 . . .4 3. . . . . . . . . . . .5 4. . . . . . . . . . . . . 59 4. . . . . . . . . . . . . . . . . . . . 75 Autoconfigura¸ c˜ ao . . . .3. . . . . . . . . . . . . . . . . . . . . . . . 63 4. . . . . . . . . . 34 3.8. . . . . . . . . . . . . . . . . . . . .3. . . . . 51 55 4 Camada Rede 4. .3. . . . . . . . . . . .8 Mecanismo de transmiss˜ ao Garantida . . . . .1 Protocolo IP (Internet protocol ) .3 4. . . . . . . . . . . . . .3. . . . . . .2 3. .3. . . . . . . . . . . . . . . .7 3. . . . . . 36 Segmento TCP . . . . . . . . . . . . . . . . . 67 Roteamento . . . 50 Controle de congestionamento no TCP . .3. . . . . . .8 Protocolo IPv6 . . . . 57 4. . . . . . 42 Gerenciamento de conex˜ oes no TCP . . 36 3. . . . . .2. . 45 Controle de fluxo . .1 4. . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . .6 3. . . . . . . . 56 Fragmenta¸ c˜ ao do IP . . . . . . . . . . . . . . . . . . . . . . . . . . .5 3. . . . 50 Temporiza¸ ca ˜o no TCP . . . . . . 78 2 . . . . . . . . . .8. . . . . . . . . . 33 UDP (User Datagram Protocol ) . . . . . .6 4. . . .1. . . . . . . .2 O servi¸ co de multiplexa¸ ca ˜o e demultiplexa¸ c˜ ao de aplica¸ c˜ oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 4. .2 4. . . . . . . . . . . . . . . . . . . . 72 4. .1 Roteamento est´ atico e protocolos de roteamento . . . . . .2 Endere¸ camento IP . . . . .1 Checksum . . . . . . . . . . . . . . . . . . . . . . . . 71 4. . . . . . . . . . . . . 55 4. .1. . . . .3. . . . . . . . . . . . . . . . .3 3. . . . . .

. . . . . . . . . . . . . . . 87 . . 81 5. . . . . . . . . . . . . . . . . . . . . . . . . . .2 5. . 84 5. .2. .3. . 86 Endere¸ cos f´ ısicos .1 5. . . . .3 Servi¸ cos oferecidos pelos protocolos de enlace . . . . .2 5. . . . .3. . . . . . .1. . . . . . . . . .1.1 81 Protocolos de enlace . .2 5. . . . . 88 5. . . . . . . . .2 Redes Locais 5. . . . . . . . pontes e switches 5. . . . . . . . . . . . . . . . . . . . . . .3 Hubs.2. . . . . . . . . . 85 Topologia de redes locais . . . .1. . . . . . . . . . .3 5. . .5 Protocolos de Enlace e Redes Locais 5. . . . . . . . . . . . . . 81 Protocolos de enlace ponto-a-ponto . . . . . . . . . . . . . . . . . . . . . . . .3 Hubs . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Ethernet . .1 5. . . 83 Protocolos de enlace de m´ ultiplo acesso . 85 Placas adaptadoras . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . . . . . . . . . . 88 Pontes . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 5. . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . 88 Switches . . 89 3 . .

4 .

Os sistemas terminais. fibras o ´pticas ou o ar a partir do uso do espectro de freq¨ uˆ encia de r´ adio. Os sistemas terminais s˜ ao conectados entre si por meio de enlaces de comunica¸ c˜ ao. Em cada roteador da Internet as mensagens que chegam nos enlaces de entrada s˜ ao armazenadas e encaminhadas (store-and-forward ) aos enlaces de sa´ ıda. fios de cobre. Todos estes dispositivos s˜ ao chamados hospedeiros (hosts ) ou sistemas terminais. rodam nos sistemas terminais.Cap´ ıtulo 1 Introdu¸ c˜ ao as redes de computadores e a Internet 1. esta¸ c˜ oes de trabalho. A maioria dos dispositivos que comp˜ oem a Internet ´ e formada por computadores pessoais. que por sua vez podem ser de diferentes tipos. nem todos os computadores s˜ ao diretamente conectados. p´ aginas Web. neste caso. que servem para controlar o envio e a recep¸ ca ˜o das informa¸ co ˜es na Internet. transferˆ encia de arquivos ou correio eletrˆ onico. As aplica¸ co ˜es de rede. utilizam-se dispositivos de chaveamento intermedi´ ario. A Internet ´ e na verdade uma “rede de redes”. assim como os principais componentes da Internet. pagina¸ ca ˜o na Web. chamados roteadores (routers ou ainda gateways ).1 A Rede Internet A rede Internet ´ e hoje a principal redes de computadores no mundo e ser´ a utilizada como exemplo principal no nosso estudo sobre redes de computadores.1. como por exemplo. os quais podem ser cabos coaxiais. da´ ı o fato de a Internet ser tamb´ em conhecida como rede TCP/IP. seguindo de 5 . precisam de protocolos de comunica¸ c˜ ao. como por exemplo. por sua vez. arquivos de texto ou mensagens eletrˆ onicas. s˜ ao suportados por um meio f´ ısico. cuja topologia b´ asica est´ a ilustrada na figura 1. como por exemplo. O TCP (Transmission Control Protocol ) e o IP (Internet Protocol ) s˜ ao os principais protocolos da Internet. interligando milh˜ oes de dispositivos computacionais espalhados ao redor do mundo. um enlace ponto-a-ponto (tipo o PPP) ou multiponto (como uma rede local Ethernet). ou servidores. que armazenam e transmitem informa¸ co ˜es. Os enlaces de comunica¸ ca ˜o. Na Internet.

Figura 1.1: Rede Internet

(KUROSE; ROSS, 2006a).

roteador em roteador at´ e seu destino. Neste processo, a t´ ecnica de comuta¸ c˜ ao utilizada ´ e conhecida como comuta¸ c˜ ao de pacotes, em contraste com a comuta¸ c˜ ao de circuitos que ´ e comumente utilizada nos sistemas telefˆ onicos. Na comuta¸ ca ˜o de pacotes, as mensagens que ser˜ ao transmitidas s˜ ao fragmentadas em pacotes menores, os quais viajaram na Internet de forma independente uns dos outros. O protocolo IP define o formato dos pacotes na Internet, os quais ser˜ ao encaminhados segundo uma rota estabelecida por protocolos de roteamento na malha de roteadores da Internet. Esta rota ´ e constru´ ıda tendo como base o endere¸ co de destino de cada pacote, conhecido como endere¸ co IP. Al´ em de um endere¸ co IP, um nome tamb´ em pode ser associado a um sistema terminal a fim de facilitar sua identifica¸ ca ˜o por n´ os humanos. Por exemplo, 200.135.37.65 ´ e o endere¸ co IP e www.sj.ifsc.edu.br ´ e o nome do servidor Web do Campus S˜ ao Jos´ e do IFSC. A aplica¸ ca ˜o DNS (domain name system ) associa dinamicamente nomes a endere¸ cos IP. Em outras palavras, pode-se dizer que a Internet ´ e uma rede de redes, interconectando redes de computadores p´ ublicas e privadas, as quais devem rodar o protocolo IP em conformidade com a conven¸ ca ˜o de endere¸ cos IP e nomes da Internet. A topologia da Internet ´ e hier´ arquica, onde os sistemas terminais s˜ ao conectados a provedores locais (ou ISP – Internet Service Provider ), que por sua vez s˜ ao conectados a provedores regionais, e estes u ´ltimos a provedores nacionais ou internacionais. 6

O provedor local do Campus S˜ ao Jos´ e do IF-SC est´ a conectado ao provedor nacional da RNP (Rede Nacional de Ensino e Pesquisa – www.rnp.br) (veja mapa da rede da RNP no endere¸ co www.rnp.br/backbone). A conex˜ ao de um computador a um provedor local ´ e feita por meio de uma rede 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 ser˜ ao nossos objetos de estudo ao longo deste curso de redes de computadores. Iniciaremos a partir de alguns conceitos gerais sobre redes e depois avan¸ caremos em dire¸ ca ˜o aos conceitos espec´ ıficos que comp˜ oe a arquitetura Internet.

1.2

Formas de conectividade em rede

Uma rede de computadores ´ e conex˜ ao de dois ou mais computadores para permitir o compartilhamento de recursos e a troca de informa¸ co ˜es entre as m´ aquinas. 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 met´ alico ou um cabo coaxial. O meio f´ ısico que conecta dois computadores costuma ser chamado de enlace de comunica¸ c˜ ao e os computadores s˜ ao chamados de hospedeiros (ou hosts ). Um enlace de comunica¸ ca ˜o limitado a um par de n´ os ´ e chamado de enlace ponto-a-ponto. Um enlace pode tamb´ em envolver mais de dois n´ os, neste caso, podemos cham´ a-lo de enlace multiponto. Um enlace multiponto, formando um barramento de m´ ultiplo acesso, ´ e um exemplo de enlace utilizado nas redes locais, como uma rede local Ethernet. A figura 1.2 ilustra estas formas de conectividade em rede.

(a) Ponto a ponto.

(b) Multiponto.

Figura 1.2: Conectividade em rede.

Se as redes de computadores fossem limitadas a situa¸ c˜ oes onde todos os n´ os fossem diretamente conectados a um meio f´ ısico comum, o n´ umero de computadores que poderiam ser interligados seria tamb´ em muito limitado. Na verdade, numa rede geograficamente 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 n´ os da rede que est˜ ao na sua periferia, como computadores terminais conectados ao n´ ucleo da rede via enlaces ponto-a-ponto ou multiponto, daqueles que est˜ ao no n´ ucleo da rede, formado por comutadores ou roteadores, como mostra a figura 1.3. Note que esta u ´ltima forma de conectividade ´ e equivalente a mostrada na figura 1.1 que mostrou a topologia b´ asica da Internet. 7

Figura 1.3: Rede chaveada.

1.3

Classifica¸ c˜ ao das redes quanto a abrangˆ encia geogr´ afica

Uma forma de classificar as redes de computadores ´ e quanto a sua abrangˆ encia geogr´ afica. Dois exemplos bem conhecidos s˜ ao as rede locais (ou LANs – local area networks ) e as redes geograficamente distribu´ ıdas (ou WANs – wide area networks ). As LANs geralmente est˜ ao limitadas ao espa¸ co de uma institui¸ ca ˜o. As WANs, por sua vez, tˆ em alcance global, como a Internet. Al´ em da quest˜ ao do tamanho, este tipo de classifica¸ c˜ ao tamb´ em tem rela¸ ca ˜o com a tecnologia utilizada para interconex˜ ao em rede. Por exemplo, uma rede local geralmente conecta diretamente seus hospedeiros por um enlace multiponto, como descrito na sess˜ ao anterior. As WANs, por outro lado, geralmente s˜ ao formadas pela interconex˜ ao de v´ arias redes por meio de elementos de chaveamento, como roteadores. Outras redes s˜ ao ainda classificadas como redes metropolitanas (MANs – metropolitan area networks ), as quais tem abrangˆ encia de uma regi˜ ao metropolitana. Quanto as tecnologias empregadas nas redes MANs, podem ser tanto a interconex˜ ao de redes por meio de elementos de chaveamento e utilizando um backbone comum, como tamb´ em as novas tecnologias redes sem fio, como as redes WiMax. Outra denomina¸ ca ˜o utilizada s˜ ao as redes pessoais (PAMs – personal area network ), as quais tem a abrangˆ encia de uma sala, como as redes Bluetooth (IEEE802.15), as quais permitem interconectar diversos disposistivos por meio de enlaces sem fio.

1.4

Comuta¸ c˜ ao de pacotes X comuta¸ c˜ ao de circuitos

Nas redes de computadores se utiliza a comuta¸ c˜ ao de pacotes como tecnologia de comunica¸ c˜ ao no n´ ucleo da rede, em contraste com as redes telefˆ onicas tradicionais que usam a comuta¸ c˜ ao de circuitos. Na comuta¸ c˜ ao de circuitos, quando dois sistemas terminais desejam se comunicar ´ por exemplo o a rede estabelece um circuito dedicado fim-a-fim entre os dois sistemas. E que acontece numa liga¸ ca ˜o telefˆ onica. A partir do n´ umero discado, a rede estabelece um caminho entre os dois interlocutores e reserva um circuito para possibilitar a conversa¸ ca ˜o. O circuito ficar´ a reservado durante todo o tempo em que durar a comunica¸ c˜ ao. A comuta ¸ c˜ ao de circuitos se mostrou ineficiente para ser aplicada nas redes de compu8

pois reserva o circuito mesmo durante os per´ ıodos de silˆ encio na comunica¸ c˜ ao. Todavia. Por exemplo. o que acontece quando um computador deseja enviar um pacote de dados a outro computador da rede. compartilhando os recursos na forma de uma “multiplexa¸ c˜ ao estat´ ıstica”. Por outro lado.4. Al´ em disto. ROSS. n˜ ao podem ser utilizados para outras conex˜ oes. todavia. os opositores da comuta¸ c˜ ao de pacotes argumentam que a mesma n˜ ao seria apropriada para aplica¸ c˜ oes tempo real. como por exemplo conversas telefˆ onicas. n˜ ao haver´ a uma reserva de um circuito fim-a-fim. por exemplo. sofrendo um atraso. devido os atrasos vari´ aveis em filas de espera. observa-se uma tendˆ encia em dire¸ ca ˜o a ` migra¸ ca ˜o dos servi¸ cos telefˆ onicos tamb´ em para a tecnologia de comuta¸ ca ˜o de pacotes.tadores devido as caracter´ ısticas do tr´ afego nestas redes. e caso o enlace de sa´ ıda de um roteador de sua rota esteja ocupado. ou as esperas para chamar uma outra pessoa. As mensagens usam os recursos da rede na medida da necessidade. Figura 1. os silˆ encios da conversa¸ c˜ ao. o pacote ser´ a transmitido sobre uma s´ erie de diferentes enlaces de comunica¸ ca ˜o. O pacote ser´ a encaminhado de roteador em roteador. Considere.4: Comutacao de Pacotes (KUROSE. Os defensores da comuta¸ ca ˜o de pacotes sempre argumentam que a comuta¸ c˜ ao de circuitos ´ e ineficiente. com o desenvolvimento de t´ ecnicas espec´ ıficas e o aumento da velocidade dos enlaces. Na comuta¸ c˜ ao de pacotes. Como na comuta¸ c˜ ao de circuitos. 2006a). os recursos da rede n˜ ao s˜ ao reservados. Nas primeiras redes de computadores as aplica¸ co ˜es t´ ıpicas eram o acesso remoto e a transferˆ encia de arquivos. como mostra a figura 1. com curtos intervalos de atividade espa¸ cados no tempo. durante uma conversa telefˆ onica. diferente do fluxo cont´ ınuo do tr´ afego telefˆ onico. dif´ ıceis de serem previstos. 9 . al´ em de ser uma tarefa complicada e requerer esquemas complexos de sinaliza¸ c˜ ao ao longo de todo o caminho da comunica¸ c˜ ao. os tempos necess´ arios para o estabelecimento de circuitos fim-a-fim s˜ ao grandes. o pacote dever´ a ser armazenado e aguardar a libera¸ ca ˜o do enlace em uma fila. nas quais o tr´ afego consistia de um fluxo espor´ adico de dados.

enquanto este pacote ´ e movido do primeiro roteador para o segundo. Assim o segundo pacote chega ao primeiro roteador no tempo 2 mseg.5: Comuta¸ ca ˜o de pacotes x comuta¸ ca ˜o de mensagens. por sua vez. cada um com 1. o tempo total para a mensagem percorrer os trˆ es enlaces e ser transmitida da origem at´ e o destino ´ e de 15 segundos. apenas os pacotes com erro precisam ser retransmitidos e n˜ ao a mensagem inteira. Todavia. Neste caso. Seguindo neste l´ ogica. ou ´ltimo pacote chega ao primeiro roteador no tempo 5000 mseg = 5 segundos. uma vez que o primeiro pacote chega ao u ´ltimo roteador. na qual uma mensagem de 7. ele chegar´ a ao destino no tempo 5. No caso de uma mensagem segmentada em v´ arios pacotes. enquanto um n´ o est´ a transmitindo. fragmenta esta mensagem em pacotes menores antes de envi´ a-la pela rede. cada pacote leva 1 mseg para ser transmitido da origem at´ e o primeiro roteador. O atraso de transmiss˜ ao ´ e dado pelo quociente entre o tamanho do pacote (bits) pela transmiss˜ ao do enlace (bits/seg). otimizando o uso dos enlaces. reagrupa os pacotes recebidos para formar a mensagem original. No caso da comuta¸ c˜ ao de pacotes. Considere ainda que cada enlace tem taxa de transmiss˜ ao de 1. Considere o exemplo apresentado por Kurose e Ross (2006b).5 Mbits foi reduzido praticamente a 1/3 do tempo anterior! Porque isto ocorre? Observe que na comuta¸ c˜ ao de mensagem. Outra vantagem da comuta¸ ca ˜o de pacotes ser´ a na recupera¸ ca ˜o de poss´ ıveis perdas ou erros de bits nos pacotes. A desvantagem da comuta¸ c˜ ao de pacotes ser´ a as informa¸ co ˜es adicionais que precisam ser adicionadas ao cabe¸ calho (header ) de cada pacote ou mensagem. O receptor. a mensagem leva 5 segundos para ser transmitida da origem at´ e o primeiro roteador. a mesma s´ o pode ser reencaminhada ap´ os ser recebida completamente pelo roteador. passando por dois roteadores e trˆ es enlaces. Desta forma.Comuta¸ c˜ ao de pacotes X comuta¸ c˜ ao de mensagens Na comuta¸ c˜ ao de pacotes moderna.5 Mbps.5 Mbits ´ e enviada entre um computador origem e um destino. Figura 1. Uma comuta¸ c˜ ao de pacotes na qual o emissor n˜ ao fragmenta a mensagem ´ e chamada de comuta¸ c˜ ao de mensagens.002 segundos. No segundo caso o tempo total para transmitir os 7. outro pacote pode j´ a ser enviado da origem at´ e o primeiro roteador. teremos trˆ es n´ os transmitindo ao mesmo tempo. os demais n´ os permanecem ociosos.5 Kbits. Assumindo que n˜ ao h´ a congestionamento na rede. muitas vezes o pacote precisa ser retransmitido. ilustrado na figura 1. Como em cada roteador a mensagem deve ser armazenada e transmitida. Quando uma perda de pacotes ou erro ocorre.5. 10 . Suponha agora que a mesma mensagem foi fragmentada em 5000 pacotes. o computador que vai transmitir uma mensagem longa. Este processo ´ e realizado visando melhorar a performance da rede. Como este u ´ltimo pacote deve ainda percorrer os dois u ´ltimos enlaces.

Roteamento em redes baseadas em datagrama Nas redes baseadas em datagramas. as redes baseadas em datagramas. A diferen¸ ca b´ asica destas duas redes est´ a na forma como os pacotes s˜ ao roteados em dire¸ ca ˜o ao destino. n˜ ao h´ a estabelecimento de conex˜ ao ou circuito virtual. como a Internet. No pr´ oximo roteador o processo se repete. o correio da Fran¸ ca primeiro vai direcionar a carta para o centro postal do Brasil (por exemplo.5 Tipos de roteamento em redes de comuta¸ c˜ ao de pacotes H´ a duas classes de redes de comuta¸ ca ˜o de pacotes. serem compartilhados por outras transmiss˜ oes. o mesmo coloca a carta em um envelope e escreve o endere¸ co do destino sobre o envelope. Em muitos aspectos as redes baseadas em datagramas s˜ ao an´ alogas aos servi¸ cos postais. conhecido como endere¸ co IP. Na rede baseada em datagrama.1. as redes frame-relay e as redes ATM (asynchronous transfer mode ). cada um deles carregando a informa¸ c˜ ao de qual circuito virtual o mesmo deve tomar em cada roteador. tem uma estrutura hier´ arquica. os enlaces individuais n˜ ao ficam reservados de forma exclusiva para uma u ´nica conex˜ ao. O processo de estabelecimento de um circuito virtual ´ e similar ao estabelecimento de conex˜ ao nas redes de comuta¸ ca ˜o de circuitos. Esta rota ´ e constru´ ıda tendo como base o endere¸ co de destino de cada pacote. o pa´ ıs.25. por exemplo). O servi¸ co de comunica¸ c˜ ao por datagramas oferecido pelo protocolo IP ´ e conhecido 11 . Roteamento em redes baseadas em circuito virtual Nas redes baseadas em circuito virtual. no caso do Brasil. A agˆ encia de Florian´ opolis vai ent˜ ao direcion´ a-la a agˆ encia de sua cidade. o qual ´ eo respons´ avel por estabelecer a rota pela qual seguir´ a cada pacote na malha de roteadores. O endere¸ co tem uma estrutura hier´ arquica. entretanto. durante uma transmiss˜ ao. Na Internet a comuta¸ ca ˜o de datagramas ´ e implementada pelo protocolo IP. a cidade. que como o endere¸ co postal. a rua e o n´ umero da casa. se algu´ em enviar uma carta da Fran¸ ca para sua casa. O centro postal do Brasil vai ent˜ ao direcionar a carta para Santa Catarina. e as redes baseadas em circuito virtual. Quando o pacote chega a um roteador. Uma vez estabelecido o circuito virtual. Quando algu´ em vai enviar uma carta a um destinat´ ario. o estado. situado em S˜ ao Paulo). numa fase de estabelecimento do circuito virtual. estado destino da carta (na agˆ encia central de Florian´ opolis. incluindo. cada pacote atravessa a rede contendo no cabe¸ calho o endere¸ co do n´ o destino. Os exemplos de redes que utilizam esta t´ ecnica incluem as redes X. podendo. Os pacotes s˜ ao encaminhados em fun¸ ca ˜o do endere¸ co do destino. o mesmo examina uma parte do endere¸ co e o encaminha ao roteador adjacente. todos os pacotes seguem pela mesma rota. a rota para os pacotes ´ e estabelecida a priori. que por sua vez vai repassar ao carteiro para entregar a carta emsua casa. Por exemplo.

na forma de um mapa conceitual. Muitas vezes usa-se o termo taxa de transmiss˜ ao para se referir a vaz˜ ao. mostrando as diferentes formas de comuta¸ ca ˜o e multiplexa¸ ca ˜o utilizadas. A figura 1.6 Vaz˜ ao. A vaz˜ ao ´ e definida como o n´ umero de bits que podem ser transmitidos sobre a rede num dado tempo. O atraso ´ e medido em termos de tempo. Por exemplo. 12 . Ao percorrer uma rede. numa rede Ethernet podemos ter como vaz˜ ao 10Mbps. • Atraso (delay). O atraso ´ e o tempo que um pacote leva para atravessar uma rede desde a origem at´ e o destino. tamb´ em chamada de largura de banda (bandwith ). um pacote leva 20 ms para atravessar a rede. um pacote sofre uma s´ erie de atrasos em cada um dos n´ os do caminho. isto ´ e.6: Taxonomia das redes de telecomunica¸ c˜ oes. ROSS. o atraso de transmiss˜ ao e o atraso de propaga¸ c˜ ao (KUROSE. sendo expressa em bits/segundo (bps). uma rede transcontinental pode ter um atraso de 20 milisegundos. atraso e perda de pacotes Segundo Peterson e Davie (2004) a performance das redes de pacotes pode mensurada de dois modos principais: • Vaz˜ ao (throughput ). uma vez que n˜ ao h´ a garantia que o dado chegue ao destino.como servi¸ co “melhor esfor¸ co” (best effort ). 1. o atraso de fila.6 ilustra. uma taxonomia das redes de telecomunica¸ c˜ oes. 2006b). Este servi¸ co envolve cada roteador no caminho entre o computador origem e o destino da comunica¸ ca ˜o. Por exemplo. Este atraso em cada n´ o da rede tem quatro componentes principais: o atraso de processamento. Figura 1. passando pelos roteadores e enlaces intermedi´ arios.

checar a integridade dos dados recebidos e determinar para onde o mesmo dever´ a ser encaminhado. • Atraso de transmiss˜ ao ´ o tempo necess´ E ario para que cada bit do pacote seja empurrado para dentro do enlace.7 Suporte a servi¸ cos comuns para as aplica¸ co ˜es O objetivo das redes de pacotes ´ e oferecer um suporte de comunica¸ ca ˜o para que as aplica¸ co ˜es rodando em dois computadores remotos possam trocar informa¸ co ˜es. o atraso de propaga¸ ca ˜o ´ e o tempo de viagem at´ e o pr´ oximo n´ o. Se a fila estiver vazia e n˜ ao houver outro pacote sendo transmitido o atraso ´ e zero. da o ´rdem de centenas de milisegundos. como num enlace de sat´ elite.• Atraso de processamento ´ o tempo necess´ E ario para examinar o cabe¸ calho do pacote. fibra ´ optica. 13 . como num enlace entre dois computadores de um campus. 1. pode levar um tempo importante. ficando na ordem de poucos micro-segundos. Pacotes corrompidos totalmente tamb´ em podem ser considerados como perdidos. etc) e´ e um pouco menor ou igual a velocidade da luz. • Atraso de propaga¸ c˜ ao Uma vez que o pocote foi empurrado para dentro do enlace. dno ´ = dproc + df ila + dtrans + dprop Perda de pacotes A perda de pacotes ocorre quando a capacidade de armazenamento da fila de um roteador se esgota. Se o tamanho do pacote for L bits e a taxa de transmiss˜ ao do enlace for R bits/seg. Este atraso ´ e vari´ avel e depende do tr´ afego na rede. Para distˆ ancia pequenas. O atraso total fim a fim ser´ a a soma dos atrasos em cada um dos n´ os do caminho. Neste caso os novos pacotes que chegam s˜ ao descartados (dropped ) e s˜ ao considerados perdidos. A velocidade de propaga¸ ca ˜o depende do meio f´ ısico (par tran¸ cado. este atraso pode ser desprez´ ıvel. • Atraso de fila ´ o tempo que cada pacote espera em fila nos roteadores antes de ser encaminhado E ao pr´ oximo enlace. Estes atrasos geralmente est˜ ao na ordem de micro-segundos. espectro eletromagn´ etico. A fra¸ c˜ ao dos pacotes perdidos aumenta a medida que a intensidade de tr´ afego aumenta. Para grandes distˆ ancias. Se h´ a pacotes na fila o tempo de espera pode ser longo e pode chegar a ordem de milisegundos. Este tempo ´ e fun¸ c˜ ao da distˆ ancia entre os n´ os e da velocidade de propaga¸ ca ˜o do sinal no meio f´ ısico. Ent˜ ao o atraso de transmiss˜ ao ser´ a L/R segundos.

entretanto. O servi¸ co de transferˆ encia garantida. onde se estabelecem os parˆ ametros para a comunica¸ c˜ ao. Para estes dois tipos de requisi¸ c˜ oes de servi¸ cos. Por exemplo. quando o sistema terminal A recebe o reconhecimento ele sabe que o pacote que ele enviou foi corretamente recebido. N˜ ao h´ a restri¸ c˜ oes de tempo entre o pedido e a resposta. Como o servi¸ co ´ e n˜ ao garantido. Isto ´ e chamado de procedimento de estabelecimento de conex˜ ao (handshaking ). ´ e necess´ ario que a informa¸ ca ˜o transmitida seja livre de erros. • Servi¸ co tipo fluxo de dados tempo real (audio/video streaming ). muitas redes de computadores disp˜ oem de dois tipos de servi¸ cos de transporte: • Servi¸ co orientado a conex˜ ao. o que ´ e conseguido a partir de temporiza¸ co ˜es. Na Internet. Uma vez conclu´ ıdo o handshaking a conex˜ ao ´ e dita estabelecida e os dois sistemas terminais podem trocar dados. mensagens de reconhecimento e retransmiss˜ ao de pacotes. Quando um lado de uma aplica¸ ca ˜o quer enviar pacotes ao outro lado ele simplesmente envia os pacotes. Uma conversa telefˆ onica via Internet ´ e um exemplo de fluxo de dados em tempo real. por outro lado. quando um sistema terminal B recebe um pacote de A. os programas de aplica¸ c˜ ao cliente enviam seus pedidos atrav´ es de uma “porta”. podemos ver a rede como provendo um canal l´ ogico de comunica¸ c˜ ao para que os processos de aplica¸ ca ˜o cliente e servidor possam se comunicar. Para usar este canal de comunica¸ ca ˜o. o servi¸ co orientado a conex˜ ao ´ e implementado pelo protocolo TCP (Transmission Control Protocol ) e o servi¸ co n˜ ao orientado a conex˜ ao ´ e implementado 14 . e atrav´ es da qual ele espera a resposta do servi¸ co ´ e requisitado. onde um processo cliente solicita uma informa¸ ca ˜o e um processo servidor fornece a informa¸ c˜ ao solicitada. ele assume que o pacote n˜ ao foi recebido por B e retransmite o pacote. que assegura que os dados trocados s˜ ao livres de erro. No servi¸ co n˜ ao orientado a conex˜ ao n˜ ao h´ a handshaking. um pequeno silˆ encio ocasionado por um erro ou ru´ ıdo pode n˜ ao ser um problema grave para o entendimento geral da conversa.Intuitivamente. tamb´ em n˜ ao h´ a reconhecimento. caso A n˜ ao recebe confirma¸ ca ˜o. ele envia um reconhecimento. de forma que a fonte nunca tem certeza que o pacote foi recebido pelo destinat´ ario. neste caso h´ a restri¸ c˜ oes temporais na transmiss˜ ao. com transmiss˜ ao de dados garantida. Como o servi¸ co ´ e mais simples. Quando uma aplica¸ ca ˜o usa o servi¸ co orientado a conex˜ ao o cliente e o servidor trocam pacotes de controle entre si antes de enviarem os pacotes de dados. Dois tipos comuns de servi¸ co solicitado pelas aplica¸ co ˜es a ` rede s˜ ao: • Servi¸ co tipo pedido/resposta (request/reply ). os dados podem ser enviados mais rapidamente. com transmiss˜ ao de dados tipo “melhor esfor¸ co” (best effort ). que conecta o cliente ao servidor. A pagina¸ ca ˜o na Web ´ e um exemplo de servi¸ co tipo pedido/resposta. • Servi¸ co n˜ ao orientado a conex˜ ao.

Todavia.itu. as redes locais sem fio IEEE802-11. Este modelo ficou conhecido como modelo OSI (open system interconnection ). a ISO (International Standard Organization – www.ietf. As aplica¸ co ˜es conhecidas como o telnet.ieee. as redes metropolitanas sem fio IEEE802-16. tiveram muito sucesso na literatura de redes de computadores. destaca-se a redes Ethernet.org/rfc. entre outras. devendo realizar uma fun ¸ c˜ ao bem definida a camada superior. como o DNS (domain name system ) e aplica¸ co ˜es multim´ ıdia como voz sobre Internet e aplica¸ c˜ oes de ´ audio e v´ ıdeo. os quais cont´ em a descri¸ ca ˜o de cada protocolo padr˜ ao utilizado na Internet. o qual coordena a pradoniza¸ ca ˜o dos protocolos para a Internet. muitas delas incompat´ ıveis entre si.iso. Outro importante organismo de padroniza¸ ca ˜o na a ´rea de redes de computadores ´ eo IETF (Internet Engineering Task Force – www. 1.8 Padroniza¸ c˜ ao na ´ area de redes de computadores Durante os primeiros tempos das redes de computadores os diversos fabricantes trabalharam de forma separada no desenvolvimento de suas tecnologias. no qual cada camada deveria criar um n´ ıvel de abstra ¸ c˜ ao diferente.7: As sete camadas do modelo OSI. atrav´ es dos padr˜ oes IEEE802.int).pelo protocolo UDP (User Datagram Protocol ).org). transferˆ encia de arquivos e WWW usam o TCP.org).org). o modelo OSI n˜ ao teve sucesso comercial. Cada padr˜ ao ´ e publicado atrav´ es de documentos conhecidos como RFCs (Request For Comments – www. Na a ´rea de redes locais de computadores os esfor¸ cos de padroniza¸ ca ˜o s˜ ao coordenados pelo IEEE (Institute of Electrical and Electronics Engineers – www. correio eletrˆ onico. As sete camadas do modelo OSI. juntamente com o ITU (International Telecommunication Union – www. Dentre as tecnologias conhecidas para redes locais em uso atualmente. definiram um modelo de referˆ encia com sete camadas de protocolos.html). organismos respons´ aveis pelo estabelecimento de normas e padr˜ oes em telecomunica¸ co ˜es. Outras aplica¸ co ˜es usam o UDP. 15 .7. padronizadas como IEEE802-3. uma vez que poucos produtos seguiram a risca as recomenda¸ c˜ oes do modelo. apresentadas na figura 1.ietf. Aplicação Camada 7 Apresentação Camada 6 Sessão Camada 5 Transporte Camada 4 Rede Camada 3 Camada 2 Enlace Física Camada 1 Figura 1. sendo uma referˆ encia para a sistematiza¸ c˜ ao e descri¸ ca ˜o protocolos de rede. Com o intuito de estabelecer uma padroniza¸ ca ˜o e permitir uma integra¸ c˜ ao entre as diversas tecnologias. omitindo detalhes quanto a sua implementa ¸ c˜ ao.

e ir adicionando uma sequˆ encia de camadas.9 mostra um exemplo de arquitetura de rede com quatro camadas de protocolos (PETERSON. A pr´ oxima camada poderia implementar um canal de comunica¸ ca ˜o l´ ogico fim a fim entre os processos de aplica¸ ca ˜o. na forma de um mapa conceitual. A figura 1. DAVIE. A id´ eia geral da divis˜ ao em camadas de protocolos ´ e come¸ car com os servi¸ cos oferecidos pelo hardware.8: Padroniza¸ ca ˜o na a ´rea de redes de telecomunica¸ co ˜es.8 ilustra. onde cada camada pode ser implementada separadamente. passando pelos roteadores intermedi´ arios. Atrav´ es das camadas de protocolos. oferecendo 16 . permitindo a conectividade computador a computador. tamb´ em o estudo das redes. e no nosso caso.9 Arquitetura de redes As camadas de protocolos facilitam o projeto e a implementa¸ ca ˜o das redes de computadores. Figura 1. 1. os principais organismos de padroniza¸ ca ˜o na a ´rea de redes de computadores. 2004).A figura 1. Na camada imediatamente superior poder´ ıamos agrupar os protocolos para tratar os problemas relativos ao encaminhamento de pacotes entre dois computadores remotos. abstraindo o fato de que existe uma topologia complexa entre quaisquer dois computadores. cada uma delas provendo um servi¸ co com maior grau de abstra¸ ca ˜o a camada superior. Nesta arquitetura poder´ ıamos agrupar na camada inferior os protocolos relacionados relacionados a ` comunica¸ ca ˜o entre n´ os vizinhos e a ` transmiss˜ ao de bits sobre os enlaces f´ ısicos. sem afetar as demais. o problema de construir uma rede fica decomposto em diversas partes.

a aplica¸ ca ˜o WWW (world wide web ) ´ e governada pelas regras do protocolo de aplica¸ c˜ ao HTTP (hiper text transfer protocol ). a camada rede1 e 2 a camada enlace/f´ ısica .10: Arquitetura em camadas com alternativas de servi¸ cos em uma dada camada. por exemplo. ´ e muito pr´ oxima do modelo utilizado pela Internet. camada superior poderia definir as regras para a troca de mensagens entre os processos de aplica¸ ca ˜o espec´ ıficos.um servi¸ co apropriado para que os processos de aplica¸ ca ˜o troquem mensagens. O modelo de referˆ encia da arquitetura Internet define esta camada como camada inter-rede. muitos autores se referem ` a ela simplesmente como camada rede. e outro oferecendo um servi¸ co n˜ ao orientado a conex˜ ao. Na arquitetura Internet os diversos protocolos est˜ ao organizados em quatro camadas chamadas: a camada de aplica¸ c˜ ao.11 mostra uma ilustra¸ c˜ ao da pilha de protocolos Internet. entretanto. como no modelo OSI. 1 17 . como Tanenbaum (2003). Esta arquitetura de redes. Programas de aplicação Canal tipo Canal tipo pedido/resposta fluxo de dados Conectividade host a host Comunicação sobre hardware Figura 1. Programas de aplicação Canais processo a processo Conectividade host a host Comunicação sobre hardware Figura 1. poder-se-ia ter dois canais distintos. 2 O modelo Internet n˜ ao especifica claramente o que acontece abaixo da camada rede. se referem a esta camada como camada host/rede. como mostrado na figura 1. a dividem em camada enlace e camada f´ ısica. outros autores.7 (aplica¸ c˜ oes tipo pedido/resposta e aplica¸ co ˜es tipo fluxo de dados tempo real). a camada de transporte. Camada de Aplica¸ c˜ ao Os protocolos da camada de aplica¸ ca ˜o definem as regras e o formato das mensagens que s˜ ao trocadas entre as aplica¸ co ˜es de rede. A figura 1. alguns autores. para atender aos dois tipos de aplica¸ c˜ oes descritos na se¸ c˜ ao 1.9: Exemplo de arquitetura em camadas.10. como Kurose e Ross (2006a). um oferecendo um servi¸ co orientado a conex˜ ao e garantido. com quatro camadas de protocolos. Por fim. No caso dos canais de comunica¸ c˜ ao l´ ogicos fim a fim entre os processos de aplica¸ c˜ ao.

Camada rede A camada rede ´ e fundamentada num servi¸ co n˜ ao-orientado a conex˜ ao. no qual as mensagens s˜ ao fragmentadas em pacotes. • Os protocolos e algoritmos de roteamento. fornecido pelo protocolo TCP (Transmission Control Protocol ). Nesta viagem. Os componentes principais da camada rede s˜ ao: • O protocolo IP. para que as aplica¸ co ˜es possam trocar mensagens entre si. que define o formato do datagrama e a forma de endere¸ camento.Figura 1. As mensagens trocadas entre as entidades da camada aplica¸ ca ˜o utilizam os canais disponibilizados pelos protocolos da camada inferior. os quais atravessam a rede de roteador em roteador. entregando as mensagens em “portas” espec´ ıficas para cada processo. uma das tarefas dos protocolos da camada rede ´ e definir a rota que seguir˜ ao os datagramas. • Um servi¸ co de datagrama. um dos servi¸ cos oferecidos pela camada de transporte ´ e a multiplexa¸ ca ˜o/demultiplexa¸ c˜ ao de aplica¸ co ˜es. n˜ ao orientado a conex˜ ao. utilizado por aplica¸ co ˜es tipo pedido/resposta.11: Camadas da arquitetura Internet. o correio eletrˆ onico envia as mensagens usando o protocolo de aplica¸ c˜ ao SMTP (simple mail transfer protocol ). por exemplo. chamados datagramas. Camada de Transporte Os protocolos da camada de transporte garantem um canal de comunica¸ ca ˜o l´ ogico fima-fim entre os processos rodando no lado do cliente e no lado do servidor. Como em cada computador da rede podemos ter diferentes processos de aplica¸ ca ˜o rodando. atrav´ es do protocolo UDP (User Datagram Protocol ). desde o computador origem at´ e o computador destino usando a t´ ecnica de comuta¸ ca ˜o de pacotes. v´ arias se¸ co ˜es de navegadores Web. a transferˆ encia de arquivos usa o protocolo de aplica¸ c˜ ao FTP (file transfer protocol ). 18 . utilizado por aplica¸ co ˜es tipo fluxo de dados em tempo real. Esta camada oferece dois tipos de servi¸ cos a `s aplica¸ c˜ oes: • Um servi¸ co orientado a conex˜ ao. Na Internet o principal protocolo da camada rede ´ e o protocolo IP (Internet Protocol ).

A figura 1. na forma de um mapa conceitual. dentro de uma determinada rota. diferentemente das camadas de aplica¸ ca ˜o e transporte que somente precisam implementadas nas duas pontas da comunica¸ ca ˜o. Enquanto os protocolos de transporte oferecem comunica¸ ca ˜o l´ ogica entre processos rodando em diferentes computadores.12: Vis˜ ao da arquitetura Internet. ´ e utilizado um protocolo de enlace de m´ ultiplo acesso.A camada rede envolve cada computador e roteador do caminho entre o computador origem e o destino. Por exemplo. como uma linha discada. A camada rede se situa logo abaixo da camada de transporte na pilha de protocolos. como o CSMA-CD (carrier sense multiple acssess protocol with colision detection ). J´ a no caso de dois computadores conectados por um enlace ponto a ponto. a camada rede oferece comunica¸ c˜ ao l´ ogica entre os computadores. 19 . fibras ´ opticas ou o ar a partir do uso do espectro de freq¨ uˆ encia de r´ adio. Os meios f´ ısicos podem ser cabos coaxiais. a camada rede necessita dos servi¸ cos dos protocolos da camada de enlace. para transferir dados entre dois computadores conectados em uma rede local Ethernet. que ´ e respons´ avel por mover os bits que comp˜ oe os dados entre um n´ o e outro utilizando um meio f´ ısico espec´ ıfico.12 ilustra. uma rela¸ ca ˜o da arquitetura Internet com os principais conceitos e tecnologias da ´ area de redes de computadores. ´ e utilizado um protocolo de enlace ponto-a-ponto. Figura 1. fios de cobre. Camada Enlace/F´ ısica Para mover um pacote de um n´ o at´ e o n´ o adjacente. como o PPP (point to point protocol ). Vinculado a ` camada enlace est´ a a camada f´ ısica.

20 .

• As regras definindo quando e como um processo envia ou responde uma mensagem.Cap´ ıtulo 2 Aplica¸ c˜ oes Internet e Protocolos de Aplica¸ c˜ ao As aplica¸ c˜ oes s˜ ao a “raz˜ ao de ser” da Internet. a execu¸ ca ˜o de a ´udio e v´ ıdeo. trocam mensagens entre si. o TCP e o UDP. Em particular. Os protocolos de aplica¸ c˜ ao. uma mensagem de solicita¸ ca ˜o ou resposta. processos que se comunicam entre si pela da troca de mensagens atrav´ es da rede. Por exemplo. chamados protocolos de aplica¸ c˜ ao.1 Protocolos de aplica¸ c˜ ao Cada aplica¸ ca ˜o utiliza protocolos espec´ ıficos. Sem as aplica¸ co ˜es. a pagina¸ c˜ ao na Web ou WWW (world wide web ). permitindo que os usu´ arios possam fazer coisas u ´teis e interessantes na rede. A Internet oferece o suporte para a troca de mensagens entre as aplica¸ co ˜es atrav´ es de canais de comunica¸ ca ˜o l´ ogicos. o correio eletrˆ onico (e-mail). As aplica¸ c˜ oes de rede s˜ ao programas ou. a Internet n˜ ao teria sentido. o bate-papo em rede (chat). como dizem no jarg˜ ao dos sistemas operacionais. 2. rodando em diferentes computadores. apesar de importantes. que definem como os processos de aplica¸ ca ˜o. os protocolos de aplica¸ ca ˜o definem: • Os tipos de mensagens trocadas. • A sintaxe e a semˆ antica das mensagens. por exemplo. As aplica¸ c˜ oes de rede s˜ ao programas que rodam nos sistemas terminais ou hosts e se comunicam entre si atrav´ es da rede. a v´ ıdeo conferˆ encia. a transferˆ encia de arquivos (FTP). definindo os campos de cada mensagem e seu significado. s˜ ao apenas uma pequena parte de uma aplica¸ ca ˜o de rede. que s˜ ao oferecidos pelos protocolos de transporte da Internet. a aplica¸ c˜ ao WWW ´ e uma aplica¸ c˜ ao de rede que 21 . etc. S˜ ao programas de aplica¸ ca ˜o t´ ıpicos da Internet: o acesso remoto a sistemas (Telnet ou SSH). telefonia na Internet (VoIP).

Por outro lado. O conceito de portas faz parte da implementa¸ ca ˜o dos protocolos de transporte da Internet TCP e UDP (ver p´ agina 33). ent˜ ao A ´ e o cliente eB´ e o servidor. navegadores Web (como o Firefox ou o Internet Explorer). Por exemplo. por exemplo. servidores de p´ aginas Web (como o Apache do Linux) e o protocolo de aplica¸ ca ˜o HTTP (hiper text transfer protocol ).edu. Por exemplo. 2.4 Endere¸ camento das aplica¸ co ˜es Para que um processo em um computador possa enviar uma mensagem a um computador remoto. O endere¸ co envolve duas pe¸ cas de informa¸ c˜ ao: (1) o nome ou o endere¸ co IP da m´ aquina destino. 200. um lado cliente e um lado servidor que se comunicam entre si. Por exemplo. (2) o n´ umero da porta do processo do lado do receptor. Quanto ao n´ umero da porta. um navegador Web implementa o lado cliente do HTTP. Os componentes da aplica¸ ca ˜o WWW incluem documentos em formato HTML (hypertext markup language ). um computador pode implementar ora o lado cliente ora o lado servidor. Os dois processos se comunicam atrav´ es do envio e recebimento de mensagens atrav´ es mecanismos chamados portas (sockets ). ele deve endere¸ car quem vai receber a mensagem. 2.ifsc.2 Clientes e servidores Uma aplica¸ ca ˜o de rede tem tipicamente duas partes. Para algumas aplica¸ co ˜es.10.18. 2. se o computador B inicia a se¸ ca ˜o. pode-se dizer que os protocolos de transporte estabelecem um canal de comunica¸ ca ˜o l´ ogico para a transferˆ encia de mensagens porta-a-porta entre os processos de aplica¸ ca ˜o rodando em dois computadores remotos. Se o computador A inicia a se¸ c˜ ao Telnet. ele ´ e que ser´ a o cliente e A o servidor. e um servidor Web implementa o lado servidor HTTP.permite aos usu´ arios obterem documentos da Web sob demanda. considere um de acesso remoto via Telnet entre um computador A e um computador B. e em geral o agente usu´ ario escolhe o n´ umero de porta automaticamente em fun¸ c˜ ao da aplica¸ c˜ ao em uso. Em resumo.1 ou www. 22 . respectivamente. como algumas aplica¸ co ˜es tem o n´ umero padronizado.br.3 Portas e comunica¸ c˜ ao atrav´ es da rede Uma aplica¸ c˜ ao envolve a comunica¸ ca ˜o de dois processos atrav´ es da rede. para endere¸ car o servidor Web do IF-SC devemos fornecer o endere¸ co IP ou o nome do servidor. Os processos assumem que h´ a uma infraestrutura de transporte no outro lado da porta do processo emissor que transportar´ a as mensagens at´ e a porta do processo destino.

Para atender a estes requisitos. 23 . outras aplica¸ co ˜es s˜ ao mais “el´ asticas” e conseguem usar qualquer quantia de banda dispon´ ıvel. • Transporte confi´ avel: garante comunica¸ ca ˜o livre de erros entre o processo emissor e receptor. • Quanto a ` largura de banda Algumas aplica¸ co ˜es. A escolha depender´ a do tipo servi¸ co que a aplica¸ ca ˜o vai necessitar. comercial ou de dom´ ınio p´ ublico. outras aplica¸ co ˜es. o agente usu´ ario ´ e um programa de computador. multim´ ıdia. o navegador Firefox. Por exemplo. podemos classific´ a-los em trˆ es dimens˜ oes: • Quanto a ` perda de dados Algumas aplica¸ co ˜es. como por exemplo. requerem baixo retardo para serem vi´ aveis. n˜ ao tem restri¸ co ˜es temporais. telefonia na Internet. 2. requerem transferˆ encia confi´ avel. como por exemplo. requerem quantia m´ ınima de banda para serem “vi´ aveis”. o UDP e o TCP. • Controle de congestionamento: permite “estrangular” o emissor quando a rede est´ a sobrecarregada.5 Agente usu´ ario O agente usu´ ario ´ e a interface entre o usu´ ario e a aplica¸ ca ˜o de rede. • Quanto aos requisitos temporais Algumas aplica¸ co ˜es. os protocolos de transporte da Internet TCP e UDP oferecem as seguintes facilidades: Servi¸ co TCP • Servi¸ co orientado a conex˜ ao: uma abertura de conex˜ ao ´ e requerida entre cliente e servidor. Quanto aos tipos de servi¸ cos requisitados pelas aplica¸ co ˜es. transmiss˜ ao de ´ audio.6 Servi¸ cos de transporte utilizados pelas aplica¸ c˜ oes A Internet disp˜ oe de dois servi¸ cos de transporte para os protocolos de aplica¸ c˜ ao. Mais especificamente. • Controle de fluxo: evita que o emissor possa “afogar” com dados um receptor mais lento. a primeira decis˜ ao do projetista deve ser definir qual protocolo de transporte ser´ a utilizado. Quando uma aplica¸ ca ˜o ´ e projetada para a Internet. o agente usu´ ario para um cliente WWW pode ser.2. como uma mensagem de correio eletrˆ onico. como por exemplo. que implementa a interface do lado cliente de uma aplica¸ ca ˜o de rede. como por exemplo. a pagina¸ c˜ ao na Web. outras. por exemplo. uma transferˆ encia de arquivos. como por exemplo. podem tolerar algumas perdas.

a 24 . confiabilidade.ifsc.html Host: www. onde ap´ os a requisi¸ ca ˜o de cada objeto.1 permitiu melhorar o desempenho dos navegadores Web atrav´ es do uso de conex˜ oes persistentes. • N˜ ao Provˆ e: abertura de conex˜ ao. 2. onde o servidor mant´ em a conex˜ ao TCP aberta ap´ os o envio da resposta. as requisi¸ c˜ oes e as respostas subsequentes entre o mesmo par cliente/servidor podem utilizar a mesma conex˜ ao j´ a aberta. seguido pela parte do URL que indica o caminho e o nome do objeto que se deseja (GET /diretorio/pagina.0 Accept-language:pt (extra carriage return.edu. Formato das mensagens HTTP O protocolo HTTP ´ e baseado no paradigma pedido/resposta.br Connection: close User-agent: Mozilla/4. Desta forma.br) indica o nome computador onde reside o objeto. Uma vez aberta a conex˜ ao TCP o cliente envia mensagens de requisi¸ ca ˜o HTTP para o servidor Web. Servi¸ co UDP • Transferˆ encia de dados n˜ ao confi´ avel: n˜ ao h´ a garantia de entrega de dados livre de erros. o cliente HTTP primeiramente abre uma conex˜ ao TCP na porta 80 do servidor. o HTTP/1. line feed) A primeira linha apresenta o comando b´ asico para requisi¸ ca ˜o de uma p´ agina Web. As linhas seguintes. s˜ ao opcionais.edu.7 Protocolo HTTP O protocolo HTTP define como os navegadores Web (clientes) requisitam p´ aginas de servidores Web. Para requisitar uma p´ agina Web.0 usa o que se chama conex˜ oes n˜ ao persistentes. controle de congestionamento. O HTTP/1. A segunda linha (Host: www. H´ a duas vers˜ oes do protocolo HTTP implementadas pelos navegadores. o servidor responde e encerra a conex˜ ao TCP. eliminando o tempo de abertura de conex˜ ao. O HTTP/1.• N˜ ao provˆ e: garantias temporais ou de banda m´ ınima. A mensagens de requisi¸ c˜ ao (request ) tem a seguinte estrutura: GET /diretorio/pagina.ifsc. Caso a conex˜ ao deixe de ser utilizada por um certo tempo o servidor se encarrega de liberar a conex˜ ao.0 (RFC1945) e o HTTP/1.1 (RFC2068) e ambas as vers˜ oes usam como protocolo de transporte o TCP. havendo dois tipos de mensagens: mensagens de requisi¸ c˜ ao e mensagens de resposta.html). garantias temporais ou de banda m´ ınima. chamadas de cabe¸ calho. o qual responde com uma mensagem de resposta HTTP que cont´ em os objetos solicitados. controle de fluxo.

. a terceira linha (Date: Thu.das. Em seguida.ufsc.3.) A resposta tem trˆ es partes.0 (Unix)) indica o tipo do servidor.1 200 OK)..html permite estabelecer um canal TCP na porta 80 com servidor www. a quarta linha (Server: Apache/1. Para tal.162.ufsc. o c´ odigo e estado da mensagem (HTTP/1. com um servidor Web. GET /~cantu/index.terceira linha (Connection: close) informa para fechar a conex˜ ao ap´ os envio da resposta. A segunda linha (Connection: close) indica que a conex˜ ao ser´ a encerrada. A primeira linha indica a vers˜ ao do protocolo.0 (Unix) Last-Modified: Mon. a quinta linha (Last-Modified) indica a data da u ´ltima modifica¸ ca ˜o no objeto solicitado. 25 . Do ponto de vista do usu´ ario o mesmo s´ o enxerga o endere¸ co URL que digitou e o navegador monta e envia as mensagens HTTP de forma transparente.12. Os dados vem em seguida.1 200 OK Connection: close Date: Thu.br.das. a quarta linha (User-agent: Mozilla/4. . na porta 80.das. na porta 80 de um servidor Web.br 80 Trying 150. pode-se trocar comandos HTTP manualmente. A mensagens de resposta (response ) tem a seguinte estrutura: HTTP/1. uma vez estabelecida a conex˜ ao. 06 Aug 1998 12:00:15 GMT) informa a data da solicita¸ ca ˜o. Escape character is ’^]’..br e receber o arquivo HTML com a p´ agina do usu´ ario cantu. 06 Aug 1998 12:00:15 GMT Server: Apache/1. executando manualmente os comandos em uma conex˜ ao TCP. 22 Jun 1998 09:23:24 GMT Content-Length: 6821 Content-Type: text/html (data data data data data . seis linhas de cabe¸ calho e os dados que comp˜ oe objeto solicitado. pode-se fazer primeiramente um Telnet (acesso remoto). utilizada por servidores proxy. Por exemplo: $ telnet www.ufsc.3. uma primeira linha informando o estado (status) da solicita¸ ca ˜o. a sexta linha (Content-Length: 6821) indica o tamanho do objeto em bytes e a u ´ltima linha (Content-Type: text/html) informa o conte´ udo da mensagem.10 .0) indica o tipo do agente usu´ ario utilizado e a linha (Accept-language:pt) indica que o portuguˆ es ´ e a l´ ıngua preferencial. Os c´ odigos de estado (status) mais comuns s˜ ao: 200 301 400 404 505 OK Moved Permanently Bad Request Not Found HTTP Version Not Supported Exerc´ ıcio ´ poss´ E ıvel ver as mensagens trocadas pelo protocolo HTTP. Connected to www.

As mensagens de controle FTP s˜ ao codificadas em formato ASCII. com caracteres mai´ usculos. ------------|/---------\| || 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.2. estabelecendo com isto uma conex˜ ao TCP entre o processo FTP cliente e servidor. respectivamente). etc. conforme descrito na RFC959. A figura 2. A conex˜ ao de dados ´ e usada para transferir os arquivos propriamente ditos. tanto do lado do servidor quanto do lado do usu´ ario. como nos exemplos abaixo. O controle de conex˜ ao ´ e usado para trocar informa¸ co ˜es como a identifica¸ ca ˜o do usu´ ario e senha e para transferir os comandos FTP.8 Protocolo FTP O protocolo FTP (file transfer protocol ) (RFC959) ´ e o protocolo que suporta a aplica¸ ca ˜o de transferˆ encia de arquivos entre computadores. Outros comandos poss´ ıveis s˜ ao: mudar de diret´ orio (cd). Cada uma destas duas conex˜ oes TCP usa uma porta espec´ ıfica: a conex˜ ao de controle de conex˜ ao usa a porta 21 e a conex˜ ao de dados usa a porta 20. Na figura os blocos Server/User PI identificam o interpretador de protocolo e Server/User DTP identificam o processo de transfereˆ encia de dados.1 ilustra o servi¸ co FTP. Depois o usu´ ario deve fornecer sua identifica¸ ca ˜o e sua senha. iniciando a aplica¸ ca ˜o e executando os comandos apropriados. O protocolo FTP usa duas conex˜ oes paralelas TCP para transferir arquivos: uma para controle da conex˜ ao e outra para a transferˆ encia de dados. solicitar arquivos (get). Uma maneira t´ ıpica de realizar um FTP ´ e utilizar um terminal de texto do Linux (ou Windows). enviar arquivos (put).1: Servi¸ co FTP (RFC959). O primeiro comando do usu´ ario (open) deve fornecer endere¸ co do computador remoto. Numa sess˜ ao FTP um usu´ ario pode transferir arquivos de um computador remoto para um computador local e vice-versa (download e upload. USER NAME (USER) PASSWORD (PASS) CHANGE WORKING DIRECTORY (CWD) LOGOUT (QUIT) RETRIEVE (RETR) STORE (STOR) 26 .

Quem envia a mensagem faz o papel do cliente e quem recebe de servidor. o servidor de email tentar´ a envi´ a-la mais tarde. password required Data conection already open.As respostas s˜ ao sempre de trˆ es d´ ıgitos. Para enviar uma mensagem. para depois repassar as mensagens que porventura chegaram a esta pessoa. na porta 25. persistindo nestas tentativas por alguns dias. com uma mensagem opcional seguindo o n´ umero.9 Protocolo SMTP O protocolo SMTP (simple mail transfer protocol ) (RFC821) ´ e o protocolo utilizado pelo correio eletrˆ onico. Green. O servidor de email ent˜ ao requisita uma autentica¸ ca ˜o do usu´ ario. requisit´ a-la de seu servidor. 331 125 425 452 User name OK. o servidor de email envia as mensagens que est˜ ao na sua fila de sa´ ıda em dire¸ c˜ ao ao servidor destino..ARPA e Jones. com o servidor SMTP. como nos exemplos abaixo. Uma vez estabelecida a ` conex˜ ao TCP. o cliente SMTP estabelece uma conex˜ ao TCP. 27 . Atrav´ es do protocolo SMTP.|Commands/Replies| Receiver-| +------+ | SMTP |<-------------->| SMTP | +------+ | File |<-->| | and Mail | |<-->| File | |System| | | | | |System| +------+ +----------+ +----------+ +------+ Sender-SMTP Receiver-SMTP Figura 2. ambos os lados do SMTP devem ser implementados em cada servidor de email. cliente e servidores de email entram em uma fase de apresenta¸ c˜ ao m´ utua (handshaking ). a partir de seu leitor de email. 2. ou email (electronic mail ). quando ent˜ ao remove a mensagem e notifica quem a tinha enviado. trocando algumas informa¸ co ˜es (como. Caso o servidor destino n˜ ao esteja acess´ ıvel. o cliente indica o endere¸ co de email do emissor e do destinat´ ario). Veja um exemplo de uma sequˆ encia de mensagens SMTP.ARPA. Ele usa o servi¸ co de transferˆ encia de dados confi´ avel do TCP para transferir uma mensagem desde o remetente at´ e a caixa postal do destinat´ ario. As mensagens trocadas pelo protocolo SMTP s˜ ao mensagens em caracteres ASCII. constantes na RFC821.2 ilustra o modelo de uso do SMTP.2: Modelo de uso do SMTP (RFC821). A figura 2. O SMTP. o lado cliente e o lado servidor. antes de enviarem a mensagem eletrˆ onica em si. +----------+ +----------+ +------+ | | | | | User |<-->| | SMTP | | +------+ | Sender. tem dois lados. trocadas entre Smith no host Alpha. Assume-se que o host Alpha contata o host Beta diretamente. Para ler uma mensagem em sua caixa postal o destinat´ ario da mensagem deve. atrav´ es de uma identifica¸ ca ˜o e uma senha. e Brown no host Beta. todavia. como outros protocolos de aplica¸ ca ˜o. transfer starting Can^ A´t open data conection Error writing file.

<CRLF> 250 OK O email foi aceito por Jones e Brown. etc.10 Telnet e SSH Telnet ´ e um protocolo cliente-servidor usado para acesso remoto a ` dispositivos computacionais. Com a conex˜ ao TCP estabelecida. e roda sobre o protocolo de transporte TCP. O Telnet permite que um usu´ ario em um dado host e estabele¸ ca uma se¸ ca ˜o interativa com um host remoto. ela ´ e colocada na caixa postal do destinat´ ario. . como se estivesse utilizando um terminal. Protocolo para leitura de email POP3 Uma vez enviada uma mensagem eletrˆ onica. Cada comando digitado pelo usu´ ario no terminal cliente ser´ a 28 . etc.etc.ARPA> R: 250 OK S: RCPT TO:<Jones@Beta...ARPA> R: 550 No such user here S: RCPT TO:<Brown@Beta. o POP3 processa trˆ es fases: autoriza¸ ca ˜o (quando o usu´ ario envia seu nome e senha e recebe suas mensagens).ARPA> R: 250 OK S: R: S: S: S: R: DATA 354 Start mail input. Uma maneira natural para o destinat´ ario de ler as mensagens de sua caixa postal. O host que realiza o Telnet assume o papel de cliente. <CRLF>.. vai haver a necessidade de transferir as mensagens do usu´ ario do seu servidor de email para seu computador..ARPA> R: 250 OK S: RCPT TO:<Green@Beta. seria acessar diretamente o seu servidor de email atrav´ es de um web-mail. O usu´ ario Green n˜ ao tem caixa postal no host Beta. transa¸ ca ˜o (quando o usu´ ario requisita a¸ co ˜es sobre as mensagens. Caso o usu´ ario deseje utilizar um leitor de email diretamente em seu computador pessoal (como Outlook). como computadores ou roteadores. 2.S: MAIL FROM:<Smith@Alpha. O processo inicia quando o cliente abre uma conex˜ ao TCP na porta 110 do servidor de email. como por exemplo marcando algumas para serem apagadas) e atualiza¸ c˜ ao (quando o usu´ ario encerra a sess˜ ao e o servidor apaga as mensagens marcadas para serem removidas). end with <CRLF>. Para realizar esta tarefa normalmente utiliza-se um protocolo POP3 (RFC1939).<CRLF> Blah blah blah.

ifsc. Uma solicita¸ c˜ ao de tradu¸ c˜ ao de um nome a um resolvedor de nomes pode usar um ou mais resolvedores para obter o endere¸ co desejado. o DNS realiza uma busca em um banco de dados distribu´ ıdo. cujo conte´ udo ´ e criptografado antes de ser enviado. A resposta obtida do servidor externo ´ e ent˜ ao passada ao usu´ ario solicitante e tamb´ em armazenada na cache do resolver local visando atender poss´ ıveis consultas futuras ao mesmo endere¸ co. por sua vez. pode realizar socilita¸ co ˜es a outros servidores para obter a resposta que lhe foi solicitada. O programa usu´ ario interage com o DNS atrav´ es de um resolvedor de nomes local. Isto facilita na medida em que n˜ ao precisamos mais memorizar endere¸ cos IP. mas sim nomes de dom´ ınio. caso n˜ ao as tenha. H´ a dois modos poss´ ıveis para um servidor resolver um nome: resolu¸ c˜ ao interativa ou resolu¸ c˜ ao recursiva.3. o host remoto executa o comando recebido e o resultado ser´ a enviado de volta pela rede para ser mostrado no terminal do cliente. traduz o nome ao endere¸ co de acordo com sua base de dados. Se o cliente solicitou busca recursiva o servidor contata um DNS que possa resolver o nome e devolve a resposta ao cliente. ele fornece o nome de um DNS ao cliente e n˜ ao a resposta da resolu¸ ca ˜o completa do nome. O uso do protocolo Telnet tem sido desaconselhado. Uma configura¸ c˜ ao t´ ıpica de para um programa usu´ ario socilitar consultas ao servi¸ co DNS ´ e mostrada na figura 2. abre uma conex˜ ao TCP na porta 22 do servidor. 2.18. Se n˜ ao puder resolver o nome completamente. ou. O cliente SSH. O protocolo Telnet vem sendo gradualmente substitu´ ıdo pelo SSH. ele faz uma consulta a um resolvedor de nomes externo. O resolvedor de nomes externo. Por padr˜ ao um Telnet solicitado por um cliente abre uma conex˜ ao TCP na porta 23 do servidor habilitado para ser acessado remotamente.br) em um endere¸ co IP (como 200. chamados resolvedores de nomes. Para resolver os nomes. o servidor consultado verifica se o nome solicitado pertence a seu sub-dom´ ınio.11 DNS O DNS (domain name system ) (RFC1034 e RFC 1035) ´ e um sistema de nomes de dom´ ınio que permite traduzir um nome de dom´ ınio (como www. por sua vez. enviando solicita¸ co ˜es (queries ) e recebendo respostas (responses ). permitindo assim que com o uso de ferramentas de captura de pacotes. Com o Telnet todas as comunica¸ co ˜es entre o cliente e o servidor podem ser vistas. O resolvedor de nomes pode ter as informa¸ c˜ oes solicitadas pelo usu´ ario em mem´ oria cache.enviado ao host remoto.como o tcpdump (ver p´ agina 46) intercepte a conex˜ ao e vizualide o conte´ udo dos pacotes. Caso a solicita¸ ca ˜o foi do tipo interativa. Em ambos os casos. inclusive senhas. Se for o caso.1). j´ a que s˜ ao somente texto aberto. a medida que os administradores de sistemas v˜ ao tendo maiores preocupa¸ c˜ oes de seguran¸ ca. Na hierarquia de servidores de nomes da Internet os servidores DNS est˜ ao organizados nas seguintes categorias: 29 . que fazem a tradu¸ ca ˜o do nome de dom´ ınio em endere¸ co IP.edu. muito mais f´ aceis de serem lembrados e ao mesmo tempo identificados com o propriet´ ario do dom´ ınio.10. armazenado em sistemas cooperativos independentes. verifica o tipo de solicita¸ c˜ ao feita pelo cliente.

retornando uma lista dos servidores de nome apropriados para dar continuidade a resolu¸ c˜ ao do nome. Basta fazer uma requisi¸ c˜ ao a um servidor raiz. bem como a informa¸ ca ˜o de como foram obtidos. . . Como a informa¸ c˜ ao em mem´ oria pode estar desatualizada. 30 .fr. Todos os nomes recentemente usados s˜ ao armazenados na na mem´ oria cache local do resolvedor de nomes. ou o endere¸ co de algum servidor DNS intermedi´ ario que conhece um servidor autoritativo. • Servidores de nomes raiz: S˜ ao 13 servidores raiz espalhados pelo mundo (10 nos EUA.com. 2 na Europa e 1 na ´ Asia). Ent˜ ao repete-se a requisi¸ ca ˜o para o servidor de topo. Repete-se a requisi¸ ca ˜o aos servidores intermedi´ arios (se houver) at´ e obter o endere¸ co do servidor autoritativo. . que retornar´ a o endere¸ co do servidor de topo respons´ avel.gov. Toda vez que um dom´ ınio adquire um novo endere¸ co. etc. Com essas trˆ es classes de servidores. que finalmente retornar´ a o endere¸ co IP do dom´ ınio desejado. que retornar´ a o endere¸ co do servidor autoritativo ou algum intermedi´ ario. O nome mais ` a direita ´ e chamado de dom´ ınio de topo.3: DNS (RFC1035). podendo o cliente contatar a autoridade para ver se o nome ainda ´ e v´ alido. Cada servidor de dom´ ınio de topo conhece os endere¸ cos dos servidores autoritativos que pertencem a `quele dom´ ınio de topo. essa informa¸ ca ˜o deve ser adicionada a pelo menos dois servidores autoritativos (um deles ser´ a o servidor autoritativo principal e o outro o secund´ ario). .br. o resolvedor de nomes marca como n˜ ao autoritativa (non authoritative ).org. • Servidores de nomes autoritativos: Um servidor de nomes autoritativo de um dom´ ınio possui os registros originais que associam aquele dom´ ınio a seu endere¸ co de IP.| Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | cache | | +----------+ | Local Host Figura 2. . • Servidores de dom´ ınio de topo: Cada dom´ ınio ´ e formado por nomes separados por pontos. Por exemplo. j´ a´ e poss´ ıvel resolver qualquer requisi¸ ca ˜o DNS. Sua fun¸ ca ˜o ´ e responder ` as requisi¸ co ˜es de registros da zona raiz.

O campo quest˜ ao (Question ) cont´ em a solicita¸ c˜ ao ao resolvedor de nomes.www.4: Formato da mensagem DNS (RFC1035). +---------------------+ | 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. AUTHORITY: 2.ufsc. IN A 31 . ANSWER: 1. as quais.ufsc.. O servi¸ co DNS est´ a situado no n´ ıvel da camada aplica¸ ca ˜o. precisam obter o endere¸ co IP do seu correspondente. <<>> DiG 9.opcode: QUERY. O campo autoridade (Authority ) cont´ em RRs que apontam para um resolverdor de nomes com “autoridade” para responder a solicita¸ ca ˜o..4. As mensagens DNS s˜ ao encaminhadas como mensagens de aplica¸ ca ˜o utilizando como protocolo de transporte o UDP e a porta 53. Muitos administradores utilizam o dig para diagnosticar problemas no DNS. A seguir ´ e mostrada uma sa´ ıda do comando dig: cantu@loureed:~$ dig www. chamada de RR (resource record ). O cabe¸ calho (Header ) ´ e sempre presente e especifica a quantidade campos presentes na sequˆ encia da mensagem e tamb´ em se a mensagem ´ e uma solicita¸ ca ˜o ou resposta. QUESTION SECTION: . id: 43816 .. ->>HEADER<<.2 <<>> www. Ele realiza procura e mostra as respostas que foram obtidas do servidor de nomes que foi inquerido. antes iniciar uma comunica¸ ca ˜o na Internet. Aplicativo dig O aplicativo dig (domain information groper ) ´ e uma ferramenta flex´ ıvel para interrogar servidores de nomes DNS. contudo ´ e um servi¸ co auxiliar utilizado pelas aplica¸ co ˜es usu´ arios.ufsc.. ADDITIONAL: 0 .br .. global options: printcmd .4. Got answer: .Mensagem DNS Toda comunica¸ ca ˜o do servi¸ co DNS ´ e realizada por meio de uma mensagem cujos campos s˜ ao mostrados na figura 2. O campo resposta (Answer ) cont´ em a resposta. flags: qr rd ra. status: NOERROR.br.br . QUERY: 1. O campo adicional (Additional ) cont´ em RRs outras indorma¸ co ˜es relacionadas a solicita¸ ca ˜o.

Outros detalhes sobre o uso do aplicativo dig pode ser obtido nas p´ aginas man do Linux.br.152 . a quest˜ ao que foi realizada.ufsc. 32 .br. ANSWER SECTION: www.br. .162. ..65) WHEN: Tue Mar 16 13:46:10 2010 MSG SIZE rcvd: 92 A sa´ ıda do comando mostra detalhes do cabe¸ calho da mensagem. Query time: 1 msec SERVER: 200. ..ufsc.37..ufsc.. . www.37.br. AUTHORITY SECTION: www.135. 21955 IN NS ns. 21955 IN NS ns. al´ em informa¸ co ˜es adicionais... 180 IN A 150..135.ufsc.npd. a resposta.br. e as indica¸ co ˜es de quem tem autoridade para responder sobre este nome.1.65#53(200.reitoria.ufsc.

aos quais adiciona-se um cabe¸ calho. Na Internet cada uma das aplica¸ co ˜es mais conhecidas utilizam portas padronizadas. como exemplificado abaixo. como mostra a figura 3. No lado do emissor.1 O servi¸ co de multiplexa¸ c˜ ao e demultiplexa¸ c˜ ao de aplica¸ co ˜es O protocolo IP entrega dados entre dois sistemas terminais (hosts ). O cabe¸ calho inclui um campo com o n´ umero de porta do emissor e o n´ umero de porta do receptor. n˜ ao necessitando serem implementados nos roteadores da rede. as mensagens recebidas das aplica¸ co ˜es s˜ ao fragmentadas e encapsuladas em unidades de dados de protocolos. Cada segmento ´ e ent˜ ao repassado a camada rede que por sua vez encapsula em unidades de dados de protocolos da camada rede. sem se preocupar com os detalhes da infra-estrutura f´ ısica usada para carregar as mensagens entre eles. ou datagramas. chamadas segmentos. os quais atuam somente at´ e a camada rede. ----------------------------------------------------------------------13 TCP daytime Daytime 13 UDP daytime Daytime 33 . ou PDUs (protocol data unit ). cada qual identificado por seu endere¸ co IP. Os protocolos de transporte s˜ ao implementados nos sistemas terminais. Os n´ umeros de porta variam de 0 a 65535. Estes campos s˜ ao conhecidos como n´ umeros de porta. Cada um dos segmentos da camada transporte tem em seu cabe¸ calho um campo que indica a qual processo o mesmo deve ser entregue. sendo que at´ e a porta 1023 s˜ ao n´ umeros reservados para aplica¸ co ˜es espec´ ıficas. a camada de transporte tem a fun¸ ca ˜o de prover um canal de comunica¸ c˜ ao l´ ogico fim-a-fim entre os processos de aplica¸ c˜ ao rodando em diferentes computadores. 3. A responsabilidade dos protocolos de transporte ´ e entregar estes dados (segmentos) a aplica¸ c˜ ao apropriada rodando em cada host.1.Cap´ ıtulo 3 Camada de Transporte da Internet Situada entre a camada de aplica¸ ca ˜o e a camada rede.

No envio da resposta o servidor inverte as portas origem e destino.2.Porta Origem Porta Destino Outros campos do cabeçalho Dados da aplicação Figura 3.2: Portas origem e destino em uma aplica¸ ca ˜o Telnet. a porta 1040. ele verifica que o mesmo ´ e endere¸ cado a porta 23 e ent˜ ao sabe que se trata da aplica¸ ca ˜o Telnet. estendendo o servi¸ co oferecido pelo IP com a multiplexa¸ c˜ ao e demultiplexa¸ c˜ ao de aplica¸ co ˜es 34 . ilustrado na figura 3.Ver 3 443 TCP https http protocol over TLS/SSL ----------------------------------------------------------------------- Um servidor de aplica¸ co ˜es espera conex˜ oes em portas bem conhecidas. 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 .1: Portas no cabe¸ calho dos protocolos de transporte. A porta 1040 ser´ a onde o cliente vai esperar a resposta do servidor. por exemplo. Quando um cliente Telnet inicia uma se¸ c˜ ao. ele envia ao servidor um segmento TCP com porta destino 23 e coloca como n´ umero de porta origem uma porta que n˜ ao esteja sendo utilizada no host cliente. Figura 3. a aplica¸ ca ˜o Telnet utiliza a porta 23 para aceitar conex˜ oes. Por exemplo. 3. Quando o servidor recebe o segmento. Enviando ao cliente um segmento com porta destino 1040 e origem 23.2 UDP (User Datagram Protocol ) O protocolo UDP (RFC768) oferece ` as aplica¸ co ˜es um servi¸ co de datagramas.

• N˜ ao provˆ e mecanismos para controle de fluxo.. como mostra a figura 3. como telefonia e transferˆ encia de a ´udio e v´ ıdeo sobre a Internet.3. pois pouco acrescenta ao datagrama IP) ´ e bastante simples.. atrasos para esta tarefa. Figura 3. Por exemplo. o qual ´ e utilizado para o detec¸ ca ˜o de erros no segmento.e um mecanismo de detec¸ c˜ ao de erros. 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | | Length | Checksum | +--------+--------+--------+--------+ | | data octets . O campo de dados da aplica¸ c˜ ao ´ e preenchido com os dados da aplica¸ ca ˜o. O formato do “segmento” UDP (alguns autores chamam de datagrama UDP..3: Formato do datagrama UDP (RFC768). Por estas caracter´ ısticas ´ e apropriado para aplica¸ co ˜es tempo real. para aplica¸ co ˜es de a´ udio tempo real o campo ´ e preenchido com as amostras de a´ udio.1 Checksum O checksum do UDP permite a detec¸ c˜ ao de erros nos dados transmitidos.2. 3. +---------------. suponha que temos trˆ es palavras de 16 bits: 0110011001100110 0101010101010101 0000111100001111 A soma ser´ a 0110011001100110 0101010101010101 +________________ 1011101110111011 35 ... n˜ ao introduzindo. 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. portanto. • Tem pequeno overhead (informa¸ co ˜es de controle) no cabe¸ calho. al´ em dos campos reservados para as portas de origem e destino. por exemplo. garantias temporais ou de banda m´ ınima. Para isto. h´ a um campo que indica o comprimento do segmento (length ) e o checksum. Caracter´ ısticas do UDP: • N˜ ao orientado a conex˜ ao. controle de congestionamento.

3 TCP (Transmission Control Protocol ) O protocolo TCP (RFC793). tamb´ em oferece a multiplexa¸ c˜ ao/demultiplexa¸ c˜ ao de aplica¸ co ˜es e o mecanismo de detec¸ c˜ ao de erros. por sua vez. todas as palavras de 16 bits recebidas s˜ ao adicionadas.Adicionando a terceira palavra a esta soma 1011101110111011 0000111100001111 +________________ 1100101011001010 O complemento 1 ´ e obtido invertendo cada bit 1 por 0 e vice-versa.1 Mecanismo de transmiss˜ ao Garantida Para garantir uma entrega de dados livre de erros. A aplica¸ ca ˜o no lado do receptor ent˜ ao lˆ e os dados a partir deste buffer.3. 3. A figura 3. que s˜ ao enviados atrav´ es da rede. s˜ ao passados a camada rede onde eles s˜ ao separadamente encapsulados em datagramas IP. Uma vez estabelecida ` a conex˜ ao os dois processos podem trocar informa¸ c˜ oes. entre o host emissor e o host receptor. Desta forma o complemento da soma ser´ a 0011010100110101. Uma conex˜ ao TCP ´ e uma conex˜ ao full-duplex (isto ´ e. No lado do receptor UDP. Os dados s˜ ao ent˜ ao fragmentados e encapsulados na forma de segmentos. ent˜ ao ´ e sabido que houve erros. inicia um temporizador para cada pacote que envia e retransmite o pacote caso este temporizador se complete antes que chegue uma confirma¸ c˜ ao de recebimento. Quando o TCP do receptor recebe os dados. Al´ em destas caracter´ ısticas. os mesmos s˜ ao recebidos no buffer de recep¸ ca ˜o. O processo cliente passa o bloco de dados atrav´ es da porta apropriada. muitos protocolos com transmiss˜ ao garantida utilizam uma t´ ecnica conhecida como confirma¸ ca ˜o positiva com retransmiss˜ ao. A t´ ecnica exige que um receptor comunique-se com a origem. 36 . o TCP integra ainda um servi¸ co de controle de fluxo. por sua vez. onde os dois processos devem acordar entre eles uma abertura de conex˜ ao para que os dados possam ser transferidos. a soma ser´ a 1111111111111111.Se n˜ ao houve erros na transmiss˜ ao. A grande diferen¸ ca ´ e que o TCP ´ e um protocolo orientado a conex˜ ao e com transferˆ encia garantida. o qual ser´ a o cheksum. uma vis˜ ao dos principais conceitos da camada de transporte da Internet. O transmissor. O TCP ent˜ ao manipula estes dados. na forma de um mapa conceitual. pois uma aplica¸ ca ˜o em um lado pode n˜ ao conseguir processar a informa¸ ca ˜o na velocidade que est´ a recebendo. que assegura que nenhum dos lados da comunica¸ c˜ ao envie pacotes r´ apido demais. Os segmentos. em ambos os sentidos e simultˆ anea) e ´ e sempre fim-a-fim. dirigindo para o buffer de envio. incluindo o cheksum.4 ilustra. 3. mostrando explicitamente a rela¸ c˜ ao entre os mesmos. como o UDP. Se um dos bits for 0. e um servi¸ co de controle de congestionamento ajuda a prevenir congestionamentos na rede. retornando uma mensagem de reconhecimento (acknoledge ) a medida que recebe os dados.

para cada pacote que envia aguarda um reconhecimento. A figura 3.6 (b). Na literatura de redes de computadores dois protocolos bem conhecidos que implementam o mecanismo de janelas deslizantes s˜ ao o protocolo Go-Back-N e o protocolo Selective-Repeat. O problema de um protocolo como o Bit-alternado ´ e que o emissor deve esperar o reconhecimento de cada pacote antes que um novo pacote possa ser enviado. Este protocolo utiliza n´ umeros de sequˆ encia 0 e 1 para identificar os pacotes enviados. uma vez que v´ arios pacotes podem ser enviados antes de esperar um reconhecimento. figura 3.6 (a) . No mecanismo de janelas deslizantes o emissor pode enviar uma sequˆ encia de pacotes. como o TCP. Na figura 3. Para reconhecer os pacotes recebidos a esta¸ ca ˜o receptora envia um reconheci37 . os pacotes devem ser identificados com uma faixa maior de n´ umeros de sequˆ encia. os pacotes contidos dentro da janela (numerados de 1 a 4) podem ser enviados em sequˆ encia. Este processo ´ e chamado de pipeline e ´ e geralmente implementado atrav´ es de um mecanismo conhecido como “janelas deslizantes”. O protocolo Bit-alternado ´ e um protocolo tipo p´ ara e espera (stop-and-wait ). Quando o transmissor redece a confirma¸ ca ˜o do primeiro pacote da janela. a janela desliza.5 (a) ilustra um caso do funcionamento do protocolo Bit-alternado onde n˜ ao ocorreram erros no envio dos pacotes e nem na recep¸ c˜ ao dos reconhecimentos. permitindo que um novo pacote seja enviado.5 figura (d) um caso de estouro do tempozador prematuramente. o que torna a transmiss˜ ao bastante ineficiente. A figura 3. contidos dentro de uma “janela” de tamanho fixo. permitem que o emissor transmita m´ ultiplos pacotes antes de esperar uma confirma¸ c˜ ao. isto ´ e. A implementa¸ ca ˜o de um destes protocolos permite que uma esta¸ ca ˜o transmissora transmita N pacotes antes de esperar por um reconhecimento da esta¸ ca ˜o receptora. A figura 3.4: Vis˜ ao dos principais conceitos da camada de transporte da Internet.5 (c) ilustra um caso no qual houve uma perda de um reconhecimento e a 3. antes de esperar uma confirma¸ c˜ ao.5 (b) ilustra um caso no qual houve uma perda de pacotes. Neste caso.Figura 3. Protocolos mais elaborados.

ROSS.. 2006a)... 1 2 3 4 5 6 7 . (a) 1 2 3 4 5 6 7 .Figura 3.. (b) Figura 3.6: Mecanismo de janelas deslizantes. 38 .5: Envio de pacotes e reconhecimentos TCP (KUROSE.

mento com o n´ umero de sequˆ encia do pr´ oximo quadro esperado, indicando que recebeu todos os anteriores. Uma vez que a esta¸ c˜ ao transmissora recebeu reconhecimentos de pacotes anteriormente enviado, ela pode deslizar a janela, permitindo que novos pacotes sejam enviados. No protocolo Go-Back-N, caso o transmissor n˜ ao receba reconhecimento de algum pacote anteriormente enviado, ele volta atr´ as e retransmite todos os pacotes a partir daquele que n˜ ao teve reconhecimento. No protocolo Selective-Repeat o transmissor faz a retransmiss˜ ao seletiva somente dos pacotes que tiveram erro. Uma vis˜ ao mais detalhada dos protocolos Go-Back-N e Selective-Repeat pode ser consultada na bibliografia de redes de computadores (KUROSE; ROSS, 2006b). No caso do TCP, o mesmo implementa um mecanismo pr´ oprio com algumas caracter´ ısticas similares ´ as utilizadas por estes protocolos. A figura 3.7 mostra uma compara¸ c˜ ao entre um protocolo p´ ara e espera (stop-and-wait ) e um protocolo que utiliza o mecanismo de janelas deslizantes (pipeline ).

Figura 3.7: Compara¸ ca ˜o de um protocolo stop-and-wait e um pipeline 2006a).

(KUROSE; ROSS,

39

3.3.2

Segmento TCP

A figura 3.8 mostra a estrutura do segmento TCP. No cabe¸ calho, al´ em dos n´ umeros de porta e checksum, que tamb´ em existem no UDP, h´ a outros campos com informa¸ c˜ oes necess´ arias a implementa¸ c˜ ao do servi¸ co de transferˆ encia garantida, controle de fluxo e controle de congestionamento.
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.8: Formato do segmento TCP (RFC793). Os campos fundamentais do segmento TCP s˜ ao os seguintes: • Porta origem e porta destino (Source Port e Destination Port ); • N´ umero de sequˆ encia e reconhecimento, utilizado para o emissor e receptor implementarem o servi¸ co de transferˆ encia garantida (Sequence Number e Acknowledgment Number ). • Tamanho da janela do receptor, usado para o controle de fluxo, e indica o n´ umero de bytes que o receptor ´ e capaz de receber (Window ). • Seis bits de flags : o Ack ´ e usado para indicar que o campo de reconhecimento ´ e v´ alido; o Rst, Syn e Fin s˜ ao usados para abertura e encerramento de conex˜ ao, o Psh indica que o receptor deve passar imediatamente os dados para a camada superior e o Urg indica urgente (pouco usado). • Tamanho do cabe¸ calho (Data Offset ), especifica o tamanho da cabe¸ calho, que pode variar em fun¸ co ˜es do campo de op¸ co ˜es; tipicamente o cabe¸ calho cont´ em as 5 primeiras linhas, totalizando 20 bytes. • O checksum ´ e usado para detec¸ c˜ ao de erros. • O campo de op¸ c˜ oes (Options ) ´ e usado quando o emissor e receptor precisam negociar o tamanho m´ aximo de segmento (MSS). • O Padding ´ e utilizado para completar o campo op¸ c˜ oes (se necess´ ario). 40

O campo de dados da aplica¸ c˜ ao (data ) do segmento TCP, cont´ em um fragmento ou peda¸ co dos dados da aplica¸ ca ˜o, cujo tamanho m´ aximo em bytes ´ e chamado de MSS (maximum segment size ), n˜ ao considerando o cabe¸ calho (header ). O valor do MSS ´ e acertado entre o emissor e o receptor durante a abertura da conex˜ ao TCP. Entretando, todo host deve poder trabalhar com MSS de no m´ ınimo 536 bytes. Respeitando o valor de MSS os dados da aplica¸ ca ˜o caber˜ ao em um segmento TCP e por consequˆ encia em um datagrama IP. Em geral o valor de MSS ´ e escolhido para evitar a fragmenta¸ ca ˜o do datagrama IP na camada inferior. Ou seja: M SS + Headers ≤ M T U O valor MTU (maximum transfer unit ) ´ e a unidade m´ axima de transferˆ encia da camada enlace (ver na p´ agina 58). Por exemplo, um valor t´ ıpico para MTU nas redes locais Ethernet ´ e 1.500 bytes. Considerando que tanto o TCP quanto o IP tenham o cabe¸ calho padr˜ ao com 20 bytes, um valor comum para MSS ´ e 1460 bytes.

3.3.3

N´ umeros de sequˆ encia e reconhecimento no TCP

Dois campos importantes do segmento TCP s˜ ao os n´ umeros de sequˆ encia e reconhecimento, os quais fazem o controle da transferˆ encia de dados confi´ avel. Como vimos, os dados das aplica¸ co ˜es s˜ ao transportados pelos segmentos TCP. Caso as mensagens forem maior que o valor de MSS, tamanho m´ aximo do segmento, as mesmas s˜ ao fragmentadas para poderem ser acomodadas na parte de dados do segmento. Por exemplo, um arquivo GIF de 500K bytes trocado pelo HTTP ser´ a fragmentado em v´ arios peda¸ cos para ser transmitido pelo TCP. Os n´ umeros de sequˆ encia servem, portanto, para que o lado receptor TCP possa reordenar corretamente os dados recebidos. Os n´ umeros de sequˆ encia n˜ ao correspondem a uma s´ erie de segmentos transmitidos, mas refletem a quantidade de bytes que o TCP est´ a transmitindo. Por exemplo, suponha que o bloco total de dados que ser´ a transmitido tenha 500.000 bytes, que o valor de MSS ´ e de 1.000 bytes, e que o primeiro byte dos dados ´ e numerado como zero. Para transmitir esta quantidade de bytes o TCP formar´ a 500 segmentos. Ao primeiro segmento atribui-se o n´ umero de sequˆ encia zero, ao segundo 1000, ao terceiro 2000 e assim por diante, como mostra a figura 3.9.
500 K Bytes

0

1

...

1000

1001

...

...

499.999

1o Segmento

2o Segmento

Figura 3.9: N´ umeros de sequˆ encia TCP. Os reconhecimentos servem para o receptor informar o emissor quais blocos que foram recebidos corretamente. Todavia, lembre-se que uma comunica¸ ca ˜o TCP ´ e sempre fullduplex, o que significa que o host A pode estar recebendo dados do host B ao mesmo tempo em que est´ a enviando dados ao host B (como parte da mesma conex˜ ao TCP). Desta forma, haver´ a n´ umeros de reconhecimentos para dados seguindo de A para B e outros para dados seguindo de B para A. 41

Desta forma. 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. o computador remoto ent˜ ao enviar´ a uma c´ opia de cada caractere para ser mostrado na tela do cliente. 42 . Lembre tamb´ em que o n´ umero de reconhecimento indica o n´ umero de sequˆ encia do pr´ oximo byte esperado. Vamos examinar os segmentos TCP trocados durante uma se¸ ca ˜o Telnet. Suponha ainda que os n´ umeros de sequˆ encia iniciais usados pelo cliente e pelo servidor sejam 42 e 79. Continuando este exemplo. respectivamente. cada caractere atravessa a rede duas vezes entre o tempo em que o usu´ ario digita uma tecla e a visualiza¸ c˜ ao da mesma na tela.Por exemplo. o cliente reconhece o caractere recebido (n´ umero de reconhecimento 80). o cliente esta esperando pelo byte 79 e o servidor est´ a esperando pelo byte 42. A figura 3. 3. Telnet: Caso de estudo para n´ umeros de sequˆ encia e reconhecimento (KUROSE. Suponha que o usu´ ario tecla a letra C. Desta forma. Cada caractere digitado pelo usu´ ario cliente ser´ a enviado ao computador remoto.4 O servi¸ co transferˆ encia de dados garantida no TCP Para criar o servi¸ co de transferˆ encia de dados garantida o TCP manipula trˆ es grandes eventos relacionados a ` transmiss˜ ao/retransmiss˜ ao de dados. Neste caso. como se estivesse utilizando um terminal. O segundo segmento ´ e enviado pelo servidor ao cliente e serve para dois prop´ ositos: provˆ e um reconhecimento do caractere recebido (n´ umero de reconhecimento 43) e envia o caractere C de volta para ser apresentado na tela do cliente (n´ umero de sequˆ encia 79).10 mostra trˆ es segmentos trocados entre o cliente e o servidor. O primeiro segmento ´ e enviado pelo cliente. ele envia um reconhecimento com n´ umero 1001. Neste caso. o host A coloca como n´ umero de reconhecimento 536. 2006b) O Telnet ´ e uma aplica¸ c˜ ao interativa usada para acesso remoto a sistemas e roda sobre o protocolo de transporte TCP. suponha que o host A recebeu todos os bytes numerados de 0 a 535 de B e que est´ a prestes a enviar um segmento a B. o que vai indicar a B que o mesmo recebeu todos os bytes at´ e este n´ umero. Quem solicita o Telnet assume o papel de cliente. Como A ainda est´ a esperando bytes a partir de 536. Isto ´ e chamado de reconhecimento cumulativo. ele reenvia a B um segmento com n´ umero de reconhecimento 536. depois de estabelecia a conex˜ ao TCP. suponha agora que A receba o segmento que faltava. com os bytes que v˜ ao de 536 a 899. Em outro exemplo. ROSS. que indica que recebeu todos os bytes at´ e este n´ umero.O n´ umero de reconhecimento que o host A coloca no seu segmento ´ e o n´ umero de sequˆ encia do pr´ oximo byte que o host A espera receber do host B. Isto indica que o primeiro byte a ser enviado pelo cliente ao servidor ter´ a o n´ umero de sequˆ encia 42 e o primeiro byte a ser enviado pelo servidor ao cliente ter´ a o n´ umero de sequˆ encia 79. contendo um caractere ASCII com a letra C (n´ umero de sequˆ encia 42). O Telnet permite que um usu´ ario utilize uma m´ aquina A e estabele¸ ca uma se¸ ca ˜o interativa em uma m´ aquina B. como ele j´ a recebeu inclusive os dados contendo os bytes de 900 a 1000.3. e antes do envio de quaisquer dados. No terceiro segmento trocado. Note que A n˜ ao recebeu os bytes que v˜ ao de 536 a 899.

correspondentes aos pr´ oximos n´ umero de sequˆ encia a serem transmitidos. o reconhecimento do segmento 92 (reconhecimento 100) chegou depois do time-out. 3. Logo o host A retransmitiu o segmento com n´ umero de sequˆ encia 92. o host A transmitiu ao host B um segmento com 8 bytes (n´ umero de sequˆ encia 92) e em seguida mais um segmento com 20 bytes (n´ umero de sequˆ encia 100).11. o qual ´ e perdido.12. 2006a). como no caso anterior. Vamos explicar como estes eventos que s˜ ao tratados pelo TCP analisando alguns cen´ arios descritos em (KUROSE. o TCP retransmite este segmento. ROSS.10: N´ umeros de sequˆ encia TCP (KUROSE. caso receba reconhecimentos de segmentos que j´ a haviam sido reconhecidos (reconhecimentos cumulativos). ou ainda. ROSS. ele reenviou o reconhecimento cumulativo deste u ´ltimo segmento (reconhecimento 120). o host A transmitiu ao host B um segmento com 8 bytes (n´ umero de sequˆ encia 92) e em seguida mais 43 . Depois do estouro do temporizador do segmento 92. mostrado na figura 3. ele retransmite os segmentos cujos n´ umeros de sequˆ encia s˜ ao superiores ao reconhecimento cumulativo. ele reenvia o reconhecimento.13. ele cancela os temporizadores remanescentes a estes segmentos. O host B recebeu estes segmentos e enviou n´ umeros de reconhecimento (100 e 120 respectivamente). e inicia um temporizador para cada segmento criado. Como o host B j´ a havia recebido este segmento e tamb´ em o seguinte (com n´ umero de sequˆ encia 100). Quando o host B recebe o segmento duplicado. Caso o TCP receba um reconhecimento um segmento enviado (ou de um conjunto de segmentos). 1. 2006b). o mesmo ´ e reenviado pelo host A. Caso o temporizador de um segmento enviado estoure o tempo (time-out ). 2. o host A envia 8 bytes de dados ao host B (com n´ umero de sequˆ encia 92). No segundo cen´ ario. Todavia. No pr´ oximo cen´ ario. Quando recebe dados da camada aplica¸ ca ˜o o TCP cria segmentos com n´ umeros de sequˆ encia.Figura 3. No primeiro cen´ ario. mostrado na figura 3. mostrado na figura 3. O host B envia reconhecimento dos 8 bytes recebidos (reconhecimento 100).

44 .Figura 3. 2006a).12: N´ umeros de sequˆ encia TCP (KUROSE. ROSS.11: N´ umeros de sequˆ encia TCP: Cen´ ario 1 (KUROSE. ROSS. Figura 3. 2006a).

14: 1. especificando um n´ umero inicial de sequˆ encia escolhido aleat´ oriamente (Seq=X). aloca buffers e inicializa vari´ aveis. 2006a). O lado cliente do TCP envia um segmento de sincroniza¸ ca ˜o.um segmento com 20 bytes (n´ umero de sequˆ encia 100). e envia uma mensagem de reconhecimento da conex˜ ao. s˜ ao inicializadas as vari´ aveis do protocolo TCP. como os n´ umeros de sequˆ encia inicial e o tamanho de buffers. O servidor recebe o SYN. Todavia. Como o host A recebeu este u ´ltimo reconhecimento.13: N´ umeros de sequˆ encia TCP (KUROSE. chamado SYN (com o flag Syn setado em 1). Figura 3. conforme mostrado na figura 3. O processo cliente ´ e o que inicia o estabelecimento da conex˜ ao sendo o servidor contatado pelo cliente. 2. 3.3. Uma vez conclu´ ıdo o handshaking a conex˜ ao ´ e dita estabelecida e os dois sistemas terminais podem trocar dados. O host B recebeu estes segmentos e enviou n´ umeros de reconhecimento (100 e 120 respectivamente). O estabelecimento da conex˜ ao se d´ a em trˆ es passos. chamada SYNACK (com o flag Syn e flag Ack 45 . ele sabe que o host B recebeu todos os segmentos por ele enviados. Abertura de conex˜ ao Na fase de estabelecimento de conex˜ ao. ROSS. onde se estabelecem os parˆ ametros para a comunica¸ c˜ ao. ao lado servidor do TCP. e est´ a esperando agora segmentos com n´ umero de sequˆ encia 120.5 Gerenciamento de conex˜ oes no TCP Para trocarem segmentos de dados utilizando o TCP o emissor e o receptor devem estabelecer uma conex˜ ao TCP atrav´ es da troca de pacotes de controle entre si. o reconhecimento do segmento 92 (n´ umero de reconhecimento 100) se perdeu. Isto ´ e chamado de procedimento de estabelecimento de conex˜ ao (handshaking ). o que n˜ ao aconteceu com o segmento 100 (n´ umero de reconhecimento 120).

Quem inicia a desconex˜ ao envia de um segmento especial. primeiro reconhece o segmento recebido e depois envia ele tamb´ em um segmento FIN (Estas duas mensagens podem estar concatenadas em uma u ´nica mensagem FIN-ACK). Encerramento de conex˜ ao Para o enceramento da conex˜ ao quatro segmentos s˜ ao trocados. Uma vez recebido o reconhecimento da conex˜ ao pelo servidor. Programa tcpdump O programa tcpdump permite colocar uma interface de rede em modo “prom´ ıscuo”. Uma vez que os trˆ es passos do estabelecimento da conex˜ ao forem completados. A partir dos pacotes 46 .14: Abertura de conex˜ ao TCP. chamado FIN (com flag Fin setado em 1).16. por exemplo quando um cliente solicita uma conex˜ ao numa porta inativa. setados em 1). o cliente confirma o recebimento com um segmento chamado ACK (flag Syn agora em 0 e flag Ack setado em 1 indicando um reconhecimento v´ alido) e tamb´ em aloca buffers e inicializa vari´ aveis da conex˜ ao (Seq=X+1. Ack=X+1) ACK (Seq=X+1. o servidor contatado envia um segmento de controle chamado RST (reset ) (com o flag Rst setado em 1). conforme ilustra a figura 3. Recusa de conex˜ ao No caso de uma recusa de conex˜ ao. onde reconhece o pedido de conex˜ ao e especifica seu n´ umero inicial de sequˆ encia (Seq=Y.15: SYN (Seq=X) RST (Ack=X+1) Figura 3. O encerramento definitivo da conex˜ ao se d´ a quando o que iniciou a desconex˜ ao recebe e reconhece o segundo segmento FIN. Quem recebe o segmento solicitando o fim da conex˜ ao.15: Recusa de conex˜ ao TCP. Ack=Y+1) Figura 3. capturando cada pacote circulando no meio f´ ısico junto a interface. os hosts cliente e servidor podem trocar segmentos contendo dados entre eles. 3. Ack=Y+1). Ack=X+1). conforme mostrado na figura 3.SYN (Seq=X) SYN-ACK (Seq=Y.

capture size 96 bytes IP 172. O primeiro segmento ´ e a solicita¸ c˜ ao de abertura de conex˜ ao (SYN). ack 2203769452 win 1789 <nop.16: Enceramento de conex˜ ao TCP.porta origem > IP.56481 > 200.timestamp 60932550 614688407> IP 200.timestamp 614688407 60932550> .135. ack 4002349620 win 92 <nop.80 > 172.155.18.80: S 2203768770:2203768770(0) win 5840 <mss 1460.20..sackOK.porta destino: flags setados. root@loureed:/home/professores/cantu# tcpdump -ntS tcp and port 80 tcpdump: verbose output suppressed.37.56481 > 200.nop. use -v or -vv for full protocol decode listening on eth0.sackOK.timestamp 614688407 60932550. O terceiro segmento finaliza a abertura de conex˜ ao (ACK).135.155.56481: S 4002349619:4002349619(0) ack 2203768771 win 5792 <mss 1460.65. O exemplo abaixo mostra uma sa´ ıda do tcpdump.135.timestamp 60932550 614688407> IP 172. com flag S setado e n´ umero de sequˆ encia inicial 2203768770 (X). no qual est˜ ao listados cinco segmentos TCP trocados entre um cliente e um servidor Web. Cada linha da sa´ ıda apresentada mostra na sequˆ encia: IP.18. n´ umero de sequˆ encia inicial:final (n´ umero de bytes do segmento).65.135.20. No comando o parˆ ametro -n imprime endere¸ cos IP e portas em formato num´ erico.65. com reconhecimento 4002349620 (Y + 1).56481: .FIN (Seq=M) ACK (Ack=M+1) FIN (Seq=N) FIN (Ack=N+1) Figura 3.37.155.155.155.80: .wscale 6> IP 200. informando que os dados devem ser passados a aplica¸ ca ˜o. capturados ´ e poss´ ıvel analizar pacotes trocados durante uma conex˜ ao TCP.56481 > 200.nop.18.37.65.135.18. link-type EN10MB (Ethernet).nop.20. O segundo segmento ´ e a resposta a solicita¸ ca ˜o do cliente (SYN-ACK) com flag S setado e n´ umero de sequˆ encia inicial 4002349619 (Y) e n´ umero de reconhecimento 2203768771 (X + 1).nop.nop. O quarto segmento ´ e uma requisi¸ ca ˜o do cliente ao servidor. com 681 Bytes de dados e com o flag P setado.80 > 172.20. -t n˜ ao imprime a marca de tempo e o -S mostra os n´ umeros de sequˆ encia e reconheciento absolutos. O quinto segmento reconhece os 681 bytes recebidos com o n´ umero de reconhecimento 2203769452.wscale 2> IP 172. janela do receptor.18.20.37.65. 47 .80: P 2203768771:2203769452(681) ack 4002349620 win 92 <nop.timestamp 60932550 0.37.. etc.

Os estados s˜ ao: LISTEN. TIME-WAIT.| | ---------\ \ create TCB | | delete TCB \ \ V | \ \ +---------+ CLOSE | \ | LISTEN | ---------. SYN-RECEIVED.representa a espera de uma confirma¸ c˜ ao de conex˜ ao ap´ os o envio de uma solicita¸ ca ˜o de conex˜ ao. SYN-SENT. O significado dos estados s˜ ao: • LISTEN .17: Diagrama de estados das conex˜ oes TCP (RFC793).| | +---------+ 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.representa a espera de uma conex˜ ao de algum TCP remoto e porta.| Timeout=2MSL -------------. porque representa um estado onde n˜ ao h´ a TCB (Transmission Control Block ) (Bloco de controle de transmiss˜ ao). CLOSE-WAIT. CLOSING.17 ilustra o diagrama de estados poss´ ıveis que o protocolo TCP pode assumir durante o processo e abertura e encerramento de conex˜ oes. 48 . LAST-ACK. FIN-WAIT-2.| | ------x V -----------x V \ snd ACK +---------+delete TCB +---------+ ------------------------>|TIME WAIT|------------------>| CLOSED | +---------+ +---------+ Figura 3. FINWAIT-1. Durante o processo de estabelecimento de conex˜ ao o TCP passa por uma s´ erie de estados. pois n˜ ao h´ a mais conex˜ ao. e o estado CLOSED.| V x V snd FIN V +---------+ +---------+ +---------+ |FINWAIT-2| | CLOSING | | LAST-ACK| +---------+ +---------+ +---------+ | rcv ACK of FIN | rcv ACK of FIN | | rcv FIN -------------. +---------+ ---------\ active OPEN | CLOSED | \ ----------+---------+<---------\ \ create TCB | ^ \ \ snd SYN passive OPEN | | CLOSE \ \ -----------.M´ aquina de Estados do TCP A figura 3. • SYN-SENT .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 | ------. ESTABLISHED. CLOSED ´ e um estado fict´ ıcio.

representa a espera de uma solicita¸ ca ˜o de encerramento de conex˜ ao do usu´ ario local.representa a coenx˜ ao fechada.representa a espera de uma confirma¸ c˜ ao de conex˜ ao ap´ os ter recebido uma solicita¸ c˜ ao de conex˜ ao e enviado uma confirma¸ c˜ ao .representa a espera de uma solicita¸ ca ˜o de encerramento de conex˜ ao de um TCP remoto.representa uma conex˜ ao aberta.representa a espera de um tempo suficiente para garantir que o TCP remoto receba a confirma¸ c˜ ao de encerramento de conex˜ ao.75:www tcp 0 1 Campeche.representa a espera de um encerramento de conex˜ ao ap´ os o envio de uma solicita¸ ca ˜o de encerramento. pode ser utilizado para visualizar o estado das conex˜ oes TCP ativas em um host.representa a espera de uma confirma¸ ca ˜o de encerramento de conex˜ ao de um TCP remoto.local:48448 200.6.com.com.19:www tcp 0 0 Campeche. • CLOSING .representa a espera de uma confirma¸ c˜ ao de encerramento de conex˜ ao previamente enviada ao TCP remoto (a qual inclui um reconhecimento de sua solicita¸ ca ˜o de encerramento de conex˜ ao).inte:www tcp 0 0 Campeche.local:36536 i.uol.local:38408 200-98-211-131. com o parˆ ametro -t. como mostrado no exemplo a seguir: evandro@Campeche:~$ netstat -t Conex~ oes Internet Ativas (sem os servidores) Proto Recv-Q Send-Q Endere¸ co Local Endere¸ co Remoto tcp 0 0 Campeche.br:www tcp 0 0 Campeche.inte:www Estado ESTABELECIDA ESTABELECIDA ESTABELECIDA TIME_WAIT ´ ULTIMO_ACK ESTABELECIDA ESPERANDO_FECHAR O comando netstat com o parˆ ametro -n imprime endere¸ cos IP e portas em formato num´ erico.br:www tcp 0 0 Campeche. • CLOSED . • FIN-WAIT-1 . na qual dados recebidos podem ser entregues ao usu´ ario.• SYN-RECEIVED .local:54565 200.7. • LAST-ACK . 49 . • CLOSE-WAIT .local:54203 helmet. • FIN-WAIT-2 .221.local:38409 200-98-211-131.inte:www tcp 1 0 Campeche. Comando netstat O comando netstat.uol.local:38408 200-98-211-131. • TIME-WAIT .221. • ESTABLISHED .

3. A figura 3.3. n˜ ao pode ser muito pequeno. 50 . Para definir o valor do temporizador o TCP faz uma estimativa dinˆ amica do tempo de ida e volta dos pacotes. Como a conex˜ ao ´ e full-duplex. 2006a). que mant´ em o valor atual da capacidade de armazenamento do buffer de recep¸ c˜ ao.3. o mecanismo de controle de fluxo implementa um tipo de casamento de velocidades entre o emissor e o receptor. chamado RTT (roud trip time ). Contudo. Caso o temporizador se esgote (timeout ) o TCP retransmite o segmento. podendo variar durante uma conex˜ ao. O tamanho desta janela ´ e dinˆ amico. Figura 3.19 ilustra o processo de estimativa do tempo de ida e volta (RTT) dos pacotes no TCP . chamada janela do receptor (receive window ). A figura 3. pois aumenta o tempo de rea¸ c˜ ao a poss´ ıveis erros.18 ilustra o mecanismo de controle de fluxo. pois pode gerar estouros desnecess´ arios do temporizador. pode ocorrer um estouro da capacidade do buffer. Como o processo de aplica¸ ca ˜o pode n˜ ao ler estes dados imediatamente. ROSS. enviando mais dados que ele possa processar. antes de entreg´ alos a aplica¸ ca ˜o. cada um dos receptores mant´ em a informa¸ ca ˜o sobre sua janela de recep¸ c˜ ao. e aplica uma margem de seguran¸ ca para definir o valor do temporizador. Assim. O valor do temporizador deve ser maior que o tempo de ida e volta dos pacotes. Quando uma conex˜ ao TCP recebe bytes que est˜ ao corretos e em sequˆ encia. Novos dados chegando da camada IP ocupam o espa¸ co livre do buffer. nem muito longo. calcula o valor m´ edio e desvio. A partir desta estimativa.18: Janela do receptor (RcvWindow ) e buffer de recep¸ ca ˜o (RcvBuffer ) do mecanismo de controle de fluxo do TCP (KUROSE. O controle de fluxo ´ e implementado por meio de uma vari´ avel.6 Controle de fluxo O controle de fluxo no TCP visa evitar que um emissor n˜ ao “afogue” um receptor. Esta janela limita a quantidade de bytes que pode ser enviada antes de esperar por um reconhecimento. 3.7 Temporiza¸ c˜ ao no TCP A cada segmento enviado pelo TCP ele inicializa um temporizador visando aguardar um reconhecimento em um tempo limite. Dados consumidos pela aplica¸ ca ˜o liberam espa¸ co do buffer. ela os armazena em um buffer de recep¸ c˜ ao.

O TCP implementa um mecanismo de controle de congestionamento fim a fim inferido a partir da observa¸ c˜ ao dos pacotes perdidos ou recebidos com atraso. a conex˜ ao TCP come¸ ca com uma janela de tamanho pequeno. Para isto. 3. sondando novamente a existˆ encia de banda. deve-se permitir que o TCP transmita o mais r´ apido poss´ ıvel. Vimos que para o controle de fluxo. A id´ eia ´ e relativamente simples. A janela de congestionamento vai impor uma limita¸ ca ˜o adicional a quantidade de tr´ afego que um emissor pode gerar. Quando isto acontece. a qual ´ e informada constantemente pelo receptor ao remetente por meio do campo window. desde que n˜ ao perca segmentos.19: Estimativa do tempo de ida e volta (RTT) no TCP (KUROSE. visando sondar a existˆ encia de banda. O TCP controla sua taxa de transmiss˜ ao limitando o n´ umero de segmentos transmitidos e ainda n˜ ao reconhecidos. o TCP reduz o tamanho da janela para um n´ ıvel seguro. e volta a aument´ a-la. Especificamente a quantidade de dados enviados e n˜ ao reconhecidos dentro de uma conex˜ ao TCP n˜ ao deve exceder o m´ ınimo de CongWin e RevWindow. e vai aumentando at´ e que ocorra uma perda. Lembre que a perda de pacotes ocorre principalmente quando estoura a capacidade de armazenamento nos roteadores devido ao congestionamento e os novos pacotes que chegam s˜ ao descartados (dropped ). presente no cabe¸ calho do segmento TCP (ver figura 3. Idealmente.3.8 Controle de congestionamento no TCP O controle de congestionamento visa minimizar o congestionamento no n´ ucleo da rede. Caso o TCP detecte perda de pacotes ele sup˜ oe que h´ a congestionamento da rede.8). ROSS.Figura 3. Uma das medidas de performance do TCP ´ e a vaz˜ ao (throughput ) na qual o emissor 51 . o fluxo de pacotes ´ e controlado pela vari´ avel janela do receptor (RevWindow ). visando colaborar com a diminui¸ c˜ ao do poss´ ıvel congestionamento no n´ ucleo da rede. A partir dai o TCP diminui o fluxo de pacotes enviado. 2006a). O controle de congestionamento ´ e realizado localmente e para isto o emissor utiliza duas outras vari´ aveis locais: a janela de congestionamento (CongWin ) e o limiar.

o valor do limiar ´ e ajustado para a metade do valor corrente da janela. Assim que a conex˜ ao ´ e estabelecida. Esta taxa depende do tamanho da janela. ROSS. ent˜ ao ele deve esperar um tempo de ida e volta (RTT) at´ e receber um reconhecimento. na qual a janela inicia com o valor de 1 MSS e aumenta de forma exponencial. Esta fase ´ e chamada de preven¸ c˜ ao de congestionamento. Vamos examinar como a janela de congestionamento (CongWin ) evolui durante uma conex˜ ao TCP. Se houver um esgotamento de temporiza¸ c˜ ao. Isto significa que o TCP envia um segmento e espera por um reconhecimento. Se receber reconhecimentos novamente. Figura 3. o processo de aplica¸ c˜ ao remetente escreve bytes no buffer de envio do TCP emissor. o TCP dobra o tamanho da janela de congestionamento. Inicialmente a janela de congestionamento ´ e igual a 1 MSS. totalizando a quantidade de bytes dispon´ ıveis na janela. A partir deste momento a janela continua a crescer linearmente. Como refinamento deste mecanismo. O TCP continua este procedimento enquanto: a) a janela de congestionamento estiver abaixo do valor de limiar.transmite dados ao receptor. b) os reconhecimentos chegarem antes do esgotamento do temporizador. 1 MSS para cada RTT. A fase de partida lenta termina quando o tamanho da janela atinge o valor de limiar (threshold ). Se este segmento foi reconhecido antes do esgotamento do temporizador. reiniciando o processo de partida lenta. O TCP agrupa os bytes em segmentos de tamanho MSS e envia para a camada rede para transmiss˜ ao. ele reduz o tamanho da janela para a metade de seu valor corrente e volta a crescer 52 . Se o TCP transmite um conjunto de segmentos. volta a dobrar o tamanho da janela para quatro. Se uma conex˜ ao transmite uma quantidade de segmentos do tamanho da janela a cada RTT. 2006b). Neste caso.20: Partida lenta no TCP. o TCP cancela o processo de partida lenta caso receba trˆ es reconhecimentos duplicados antes de um estouro de temporizador. ent˜ ao a taxa ser´ a: V az a ˜o = Janela RT T (KUROSE. e a janela ´ e ajustada para 1 MSS. passando a enviar dois segmentos. Esta fase do procecimento de controle de congestionamento ´ e chamada de partida lenta e ´ e ilustrada na figura 3.20. a partir dai ele pode voltar a enviar dados.

21: Evolu¸ ca ˜o da janela de congestionamento TCP (KUROSE. Este algoritmo ´ e chamado de aumento aditivo. Entretanto. A filosofia do AIMD ´ e que trˆ es reconhecimentos duplicados indica que a rede ´ e capaz de entregar alguns segmentos. ROSS. 2006a). dimuinui¸ c˜ ao multiplicativa (AIMD – additive-increase. A evolu¸ ca ˜o do mecanismo de controle de congestionamento TCP ´ e ilustrada na figura 3.21. Figura 3.linearmente. 53 . um estouro de temporizador antes de trˆ es reconhecimentos duplicados ´ e mais “alarmante”. multiplicative-decrease ).

54 .

Os protocolos de roteamento mais conhecidos s˜ ao o RIP. a partir de algor´ ıtmos de roteamento. Os trˆ es principais componentes da camada rede da Internet s˜ ao: • Protocolo IP. • Chaveamento dos datagramas chegando nos enlaces de entrada de cada roteador para a sa´ ıda apropriada. escreve o endere¸ co do destino e outros campos do cabe¸ calho e envia ao primeiro roteador em dire¸ c˜ ao ao computador destino. Para prover este servi¸ co. Pap´ eis da camada rede: • Determina¸ ca ˜o da rota que tomar˜ ao os datagramas desde o computador origem at´ e o destino. • Protocolos de roteamento. conhecida como IPv6. definido na RFC791. a qual provˆ e um servi¸ co de comunica¸ c˜ ao de computador a computador na rede. ser´ a apresentada na se¸ ca ˜o 4. a camada rede envolve cada computador e cada roteador no caminho entre a origem e o destino dos segmentos.Cap´ ıtulo 4 Camada Rede A camada de transporte provˆ e um canal l´ ogico processo a processo para as aplica¸ c˜ oes rodando em diferentes hosts. 4. formato do datagrama e conven¸ c˜ oes de empacotamento. Para que o datagrama atinga o destino. o qual oferece um servi¸ co de datagramas. que provˆ e uma forma de endere¸ camento. 55 . o OSPF e o BGP. Outra vers˜ ao do protocolo. O protocolo IP em uso atualmente na Internet ´ e o IPv4. a camada de transporte usa a camada rede. que permitem a determina¸ c˜ ao de rotas e elabora¸ ca ˜o de tabelas de roteamento. onde cada datagrama ´ e tratado como uma unidade independente e n˜ ao recebe nenhum tratamento de erros ou reconhecimento fim a fim.8. Quando a camada rede do lado de um emissor recebe um segmento da camada de transporte ela o encapsula em um datagrama IP.1 Protocolo IP (Internet protocol ) Na Internet a camada rede ´ e implementada pelo protocolo IP.

56 . na forma de um mapa conceitual. tamb´ em conhecida como IPv4. que cont´ em os endere¸ cos IP da fonte (Source Address ) e do destino (Destination Address ).• Protocolo ICMP. mostrando explicitamente a rela¸ ca ˜o entre os mesmos. 4. al´ em de outros campos.1: Vis˜ ao dos principais conceitos da camada rede da Internet. A figura 4. 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. O formato do datagrama apresenta um cabe¸ calho. • O campo vers˜ ao (Version ) indica a vers˜ ao do protocolo. utilizado para reportagem de erros e sinaliza¸ ca ˜o entre os roteadores e entre os computadores. e uma a ´rea de dados. Figura 4.1. no caso a vers˜ ao 4.1 ilustra. uma vis˜ ao dos principais conceitos da camada rede da Internet.2: Formato do datagrama IP (RFC791).1 Datagrama IP Um datagrama IP ´ e a unidade b´ asica de transferˆ encia na Internet.

sendo decrementado de uma unidade em cada roteador. O comprimento total do datagrama teoricamente poderia ser de 64K bytes (em fun¸ c˜ ao 16 dos 16 bits do campo: 2 = 65535). mensagens do protocolo ICMP. O tamanho m´ aximo dos pacotes que podem ser transportados pela camada enlace ´ e chamado de MTU (maximum transfer unit ). indica o tempo de vida do datagrama. como por exemplo TCP ou UDP.500 bytes. • O tipo de servi¸ co (Type of Service ) permite diferenciar datagramas de diferentes tipos de servi¸ co.3: 4. na pr´ atica. Na pr´ atica ´ e medido em n´ umero de saltos (hops ).500 bytes. • O campo de op¸ co ˜es (Options ) ´ e raramente usado. Isto ´ e feito para evitar a fragmenta¸ ca ˜o do datagrama na rede f´ ısica. sendo utilizado para implementar mecanismos de QoS (Qualidade de Servi¸ co).. • O tempo de sobrevida. j´ a que o mesmo ´ e encapsulado em um quadro da camada enlace e nem todas tem quadros de mesmo tamanho. 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 ´ e utilizado para detec¸ c˜ ao de erros no cabe¸ calho. flags e fragmenta¸ ca ˜o (Fragment Offset ) s˜ ao usados em caso de fragmenta¸ c˜ ao do datagrama IP. tipicamente o cabe¸ calho cont´ em as 5 primeiras linhas. mensagens de roteamento. quase nunca ´ e maior que 1. segmentos TCP ou UDP. • Os dados sucedem o cabe¸ calho. ap´ os o qual o mesmo ´ e descartado. como ilustrado na figura 4. No caso das redes locais Ethernet o tamanho do quadro ´ e de 1. TTL (Time to Live ).1. em fun¸ ca ˜o dos campos opcionais. podendo ser.2 Fragmenta¸ c˜ ao do IP A fragmenta¸ c˜ ao de um datagrama IP pode ocorrer quando um datagrama chega em um enlace de entrada de um roteador e precisa ser enviado atrav´ es de um enlace de sa´ ıda 57 . totalizando 20 bytes. etc.• O campo IHL (internet header length ) indica o comprimento do cabe¸ calho. • O campo Total Length indica o comprimento total do datagrama em bytes. todavia. • O protocolo (Protocol ) indica o protocolo da camada superior que est´ a sendo transportado. por exemplo. • Os parˆ ametros identifica¸ c˜ ao (Identification). Para cada protocolo h´ a um n´ umero padronizado pela RFC1700.

no qual um datagrama de 4000 bytes (20 bytes de cabe¸ calho IP mais 3980 bytes de dados) chega a um roteador e deve ser reenviado por um enlace com MTU de 1500 bytes. apresentado por Kurose e Ross (2006a). Fragmento 1o 2o 3o Bytes Identification 1480 777 1480 777 1020 777 Offset 0 185 370 Flag 1 1 0 58 . significando que os dados devem ser inseridos a partir da posi¸ c˜ ao 0 byte do datagrama a ser remontado. Quando um datagrama ´ e criado o emissor o identifica com um n´ umero de identifica¸ ca ˜o (Identification ). Os fragmentos precisam ser remontados antes de serem entregues a camada transporte no destino. Para a remontagem. A solu¸ ca ˜o adotada pelos projetistas do IPv4 foi fragmentar os datagramas nos roteadores intermedi´ arios e somente remont´ a-los no destino final. Uma vez fragmentado o datagrama. o datagrama dever´ a ser fragmentado em dois ou mais fragmentos (datagramas de menor tamanho) antes de ser enviado atrav´ es do enlace de sa´ ıda. assim como um endere¸ co IP de origem e destino. Para isto. significando deve ser inserido na posi¸ ca ˜o 1480 bytes (note que 185 . Offset e Flag para os trˆ es fragmentos. Para o terceiro fragmento o Offset ´ e 370. todos identificados com o mesmo n´ umero de identifica¸ ca ˜o. significando deve ser inserido na posi¸ c˜ ao 2960 bytes (note que 370 . endere¸ co IP de origem e destino iguais aos do datagrama original. Neste caso. A tabela abaixo ilustra os valores dos campos Identification. podendo inclusive chegarem no destino fora de ordem.3: Valor t´ ıpico de MSS e MTU.Figura 4. 8 =2960). ficando para os demais fragmentos o flag definido como 1 (um).4 ilustra um exemplo. o campo Fragment Offset ´ e utilizado. O terceiro fragmento carrega somente 1020 bytes de dados (=3980-14801480). O u ´ltimo fragmento ´ e reconhecido atrav´ es do flag. Para cada novo datagrama criado o emissor gera uma nova identifica¸ c˜ ao incrementando o valor deste campo. cuja MTU (maximum transfer unit ) n˜ ao permite acomodar todos os bytes do datagrama. 8=1480). O campo Offset do primeiro fragmento ´ e 0. cada fragmento ser´ a transmitido de forma independente. Para permitir a remontagem do datagrama s˜ ao utilizados trˆ es campos do cabe¸ calho IP: identifica¸ c˜ ao (Identification ). A figura 4. uma vez que tanto o TCP quanto o UDP aguardam um datagrama completo. Quando um datagrama ´ e fragmentado cada fragmento recebe o n´ umero de identifica¸ ca ˜o. os 3980 bytes de dados devem ser alocados em trˆ es fragmentos. que ´ e definido como 0 (zero). a fim de identificar a posi¸ c˜ ao de cada fragmento dentro do datagrama original. Para o segundo fragmento o Offset ´ e 185. flags e fragmenta¸ c˜ ao (Fragment Offset ).

59 . cada um variando de O a 255.1.255.216. podemos notar. o que significa que os 24 primeiros bits s˜ ao um e os 8 restantes zero. Isto ´ e. por exemplo. 4. a figura 4. Cada endere¸ co IP engloba duas partes: o identificador da rede e o identificador do computador. a m´ ascara /24 pode ser representada como 255.255. 193. O identificador do computador identifica um dispositivo em uma rede local. O identificador da rede identifica a rede onde se encontram todos os computadores da mesma rede local.0/24. Os n´ umeros s˜ ao separados por pontos. Os 8 bits restantes permitem identificar cada computador da rede local.5 ilustra trˆ es redes locais interconectadas por um roteador com trˆ es interfaces. Por exemplo. esta parte do endere¸ co forma o identificador da rede.4: Fragmenta¸ c˜ ao do datagrama IP (KUROSE. Olhando para os endere¸ cos IP atribu´ ıdos a cada computador e a cada interface do roteador. que os dispositivos conectados a rede local da direita e acima tem os endere¸ cos IP da forma 200. ROSS.1.32.2 Endere¸ camento IP Endere¸ co IP ´ e um endere¸ co l´ ogico de 32 bits. No jarg˜ ao IP. escrito em quatro octetos representados em decimal.9 ´ e um endere¸ co v´ alido e sua nota¸ c˜ ao em bin´ ario ´ e: 11000001 00100000 11011000 00001001. e indica que os 24 bits mais a ` esquerda dos 32 bits do IP identificam a rede. O endere¸ co da rede local seria 200. compartilham os 24 bits mais a ` esquerda do endere¸ co IP.0.1. O valor da m´ ascara de rede pode tamb´ em ser representado em decimal com pontos. Cada computador que esteja rodando o TCP/IP exige um endere¸ co IP exclusivo. como um computador ou roteador.1. 2006a). Para se extrair o identificador da rede a partir do endere¸ co IP completo uma opera¸ ca ˜o l´ ogica AND ´ e realizada com a m´ ascara de rede. onde a nota¸ ca ˜o /24 ´ e tamb´ em conhecida como m´ ascara de rede.X. Por exemplo. Por exemplo.Figura 4. A m´ ascara de rede ´ e utilizada para mascarar uma parte do endere¸ co IP para que se possa distinguir o identificador da rede do identificador do computador.

3. reservado para broadcast ).1. reservados para o endere¸ camento da rede.255. Por exemplo.1 Classes de endere¸ camento de IP Para garantir endere¸ cos exclusivos em ˆ ambito mundial.233.1. A figura 4.2. Por exemplo.634 endere¸ cos.2. com o crescimento do n´ umero de organiza¸ c˜ oes de pequeno e m´ edio porte o espa¸ co de endere¸ camento ficou limitado.11 200. pois. com 16384 redes poss´ ıveis e 65536 sistemas finais (menos os dois valores reservados). uma rede classe C pode acomodar at´ e 28 endere¸ cos. cada qual com 254 sistemas finais (256 combina¸ c˜ oes de bit combinations menos os valores reservados “tudo zero” e “tudo um”). para descobrir o identificador de rede do computador cujo endere¸ co IP ´ e 200.0. e “tudo um”.5: Endere¸ camento IP e sub-redes.1.4 e cuja m´ ascara de rede ´ e 255.255. 60 .200.10 Figura 4.1 200.135.iana. J´ a uma classe B. Estas classes de endere¸ camento n˜ ao s˜ ao mais utilizadas como parte formal dos da arquitetura de endere¸ camento IP.1. devemos fazer uma opera¸ c˜ ao AND desdes dois valores: 11001000 10000111 11101001 00000100 11111111 11111111 11111111 00000000 AND ___________________________________ 11001000 10000111 11101001 00000000 que resulta no endere¸ co de rede 200.1.2 A 200. com 128 redes poss´ ıveis e 16777216 sistemas finais (menos os valores especiais “tudo zero”.3 200.2 B R 200.6 ilustra as classes de endere¸ camento IP.3.3 200. Classe B (MSB 10).12 C 200.135. poderia acomodar 216 endere¸ cos.1. O conjunto de endere¸ cos com MSB 1110 ficou reservado para multicast e o restante para uso futuro.1. o que seria demais para uma organiza¸ ca ˜o com. 2000 computadores.0. o que pode ser muito pouco para muitas organiza¸ co ˜es.1. 4.2.1.1 200.1. Quando o protocolo IP foi criado previa trˆ es classes de endere¸ camento: Classe A (bits mais significativos do endere¸ co 00).1. e a Classe C (MSB 110) com 2097152 redes poss´ ıveis. os endere¸ cos IP s˜ ao licenciados a partir do organismo internacional chamado IANA (Internet Assigned Numbers Authority – www.233. ou seja 256 hosts.2.1.3. ou 64.org). por exemplo.

n.x.x.0.x/27 n.x/30 n.n.n.0/24 n. mostra um resumo de todos os prefixos CIDR poss´ ıveis. A tabela a seguir (RFC4632).0/10 n.0.0.0/23 n.x/29 n.n.0/22 n.0/7 x.n.0/1 0.n.x.n. a rede Classe B de n´ umero 172.n.239 Figura 4.191 Classe C 110 Rede Host Multicast 192 .n. Por exemplo.0. notation -------n.x/31 n.0.6: Classes de endere¸ camento IP.0/3 x.x.n. apresenta estrat´ egias para atribui¸ co ˜es de endere¸ cos IPv4 de 32 bits.0/5 x. Na nota¸ ca ˜o CIDR um prefixo ´ e representado por de 4-octetos.0. na qual o /16 indica que a m´ ascara de rede utilizada para extrair a por¸ c˜ ao da rede do n´ umero de 32 bits.n.0.n.0/0 addrs/block ----------1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296 # blocks ---------4294967296 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 host route p2p link legacy Class C legacy Class B legacy Class A default route 61 .0.n.0. como um endere¸ co tradicional IPv4 ou um endere¸ co de rede.0.0.0/2 x.0/15 n.0/21 n.0/19 n. O endere¸ camento CIDR (classless interdomain routing ) (RFC4632).0/11 n.x.0/17 n.223 Classe D 1110 224 .0. o qual descreve um n´ umero significativo de bits. tendo em vista a preserva¸ ca ˜o do espa¸ co de endere¸ camento e a limita¸ ca ˜o do crescimento das tabelas de roteamento.n.x.0.n.0/13 n.0.x.0/4 x.0/18 n.x.127 Classe A 0 Rede Host Classe B 10 Rede Host 128 .n/32 n.0.0/14 n.0/20 n.0/16 n.0.0.0.x.0/6 x.n.0/9 n.n.0.0.0/12 n.0.0.n.0.x.x.0/8 x.n.0.x/25 n.n.n.0.n.n.0. seguido pelo caracter / (barra) e um decimal entre 0 e 32.x.0/16.n.0 ´ e definida no CIDR com o prefixo 172.x/28 n.0.16.x.n.0.x.1o octeto 2o octeto 3o octeto 4o octeto Valor do primeiro octeto 0 .n.x/26 n.16.

A m´ ascara de rede /20 indica que os 20 primeiros bits do endere¸ co identificam a rede. Um enlace ponto a ponto (p2p link) ´ e definido na RFC3021.0 – Endere¸ co com todos os 32 bits iguais a 0: Pode aparecer em tabelas de roteamento identificando o destino como a pr´ oria rede e tamb´ em identificar rotas default.00010111.00000000 11001000.00000000 11001000.00000000 11001000.20.0.00010111. um para cada departamento da organiza¸ ca ˜o. possa utilizar apenas dois endere¸ cos IP.0/20 200.0/20 foi sub-dividido em oito blocos. Departamento7 11001000. com este bloco de endere¸ cos. Esta organiza¸ ca ˜o pode tamb´ em dividir este bloco em blocos menores.23.00011110. No exemplo abaixo.00010000. sobrando.0/20.00010010.30.00010100.00010111. dependendo do comprimento do prefixo.16.255.00010111.0/23 200. portando.2 Divis˜ ao em sub-redes Al´ em de poder solicitar um bloco de endere¸ cos IP de qualquer tamanho. • Os endere¸ cos com o primeiro octeto entre 240 e 255 s˜ ao reservados para uso futuro. ´ considerado um en• 255.0.00010000. cada um podendo alocar 29 hosts (512 hosts). 4. criando suas pr´ oprias redes internas.2. Endere¸ cos IP especiais Alguns endere¸ cos IP tˆ em utiliza¸ c˜ ao especial: • 0. j´ a que n˜ ao tem sentido falar em endere¸ co de rede ou broadcast em um enlace deste tipo.00010111.n ´ e um decimal de 8-bit. Assim.0. com o CIDR uma organiza¸ c˜ ao pode ainda dividir seu bloco de endere¸ co em sub-redes.18.0/23 62 .0/23 200. o bloco 200.23.255.16. 12 bits para identificar hosts dentro desta rede..23. esta organiza¸ c˜ ao pode endere¸ car 212 hosts (4096 hosts).0 – Endere¸ co reservado para teste de (loopback ) e comunica¸ ca ˜o entre processos da mesma m´ aquina. x ´ e um valor de 1 a 7 bits.255 – Endere¸ co com todos os 32 bits iguais a 1: E dere¸ co de difus˜ ao limitado a rede do host origem do datagrama (n˜ ao encaminhado). Por exemplo. imagine que uma organiza¸ ca ˜o tenha recebido o bloco de endere¸ cos 200. permitindo que um enlace ponto-a-ponto.23. Organiza¸ c~ ao Departamento0 Departamento1 Departamento2 .23. entre dois roteadores por exemplo.0.0/23 200.00000000 11001000.00000000 200.23.23.16. • 127. formando sub-redes.16..

255 (192.0.6 KB) Na primeira parte da sa´ ıda do comando ifconfig ´ e mostrada a configura¸ ca ˜o da interface eth0 relativa a placa de rede Ethernet informando o endere¸ co f´ ısico.255.20.0 10.: 172.255 (172.255.155 Bcast:172.18.0.6 KB) TX bytes:105100 (102. endere¸ co de broadcast. 63 .0. MTU (maximum transfer unit ) do enlace.Comando ifconfig O comando ifconfig pode ser utilizado para visualizar a configura¸ c˜ ao ou configurar uma interface de host. A seguir ´ e mostrada uma sa´ ıda do comando ifconfig: cantu@loureed:~$ ifconfig eth0 Link encap:Ethernet Endere¸ co de HW 00:1a:4d:a5:13:34 inet end.255 Masc:255.0 172.255.0.0 endere¸ co inet6: 2001:db8::21a:4dff:fea5:1334/64 Escopo:Global endere¸ co inet6: fe80::21a:4dff:fea5:1334/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 M´ etrica:1 pacotes RX:744290 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:7757 erros:0 descartados:0 excesso:0 portadora:0 colis~ oes:0 txqueuelen:1000 RX bytes:81021465 (77.: 127.0.168/16 prefix) Nos referimos ao primeiro bloco como bloco de 24-bit.16.0 192. endere¸ co IP. entre outras informa¸ co ˜es. e o terceiro bloco como bloco de 16-bit .0. m´ ascara de rede. enquanto que o segundo bloco consiste de um conjunto cont´ ıguo de 16 redes classe B.168.16/12 prefix) 192.18.2 MB) TX bytes:1235085 (1.1 MB) IRQ:221 Endere¸ co de E/S:0x4000 lo Link encap:Loopback Local inet end.0 endere¸ co inet6: ::1/128 Escopo:M´ aquina UP LOOPBACK RUNNING MTU:16436 M´ etrica:1 pacotes RX:2102 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:2102 erros:0 descartados:0 excesso:0 portadora:0 colis~ oes:0 txqueuelen:0 RX bytes:105100 (102.255 (10/8 prefix) 172.0.255. o segundo bloco como bloco de 20-bit.0. Na segunda parte ´ e mostrada a configura¸ ca ˜o da interface l´ ogica para testes de loopback.2.1 Masc:255. Note que (na nota¸ ca ˜o anterior ao CIDR) o primeiro bloco consiste de uma rede classe A.31.255. 4.255. e o terceiro bloco consiste de um conjunto cont´ ıguo de 256 classe C.3 Endere¸ cos IP privados A RFC1918 reservou os seguintes trˆ es blocos de endere¸ cos IP para uso privado na Internet: 10.168.0.

Utilidade dos endere¸ cos privados Os hosts dentro de uma organiza¸ ca ˜o podem ser particionados em trˆ es categorias: 1. e informa seu endere¸ co e porta origem 10. no que concerne ao mundo exterior. 3. nova-porta). porta 80. os quais podem ser mediados por gateways (como um roteador NAT). de cada par de tradu¸ ca ˜o (IP origem. Para conex˜ ao a Internet p´ ublica. Neste exemplo uma esta¸ ca ˜o da rede local contata um servidor web remoto no endere¸ co 128. hosts nesta categoria requerem endere¸ cos IP p´ ublicos (como servidores web). nova-porta) nos campos de destino de cada datagrama entrando para o (IP origem. Hosts que requerem acesso a um conjunto limitado de servi¸ cos externos ` a organiza¸ ca ˜o (como E-mail. Com o NAT os dispositivos dentro da rede local n˜ ao s˜ ao explicitamente endere¸ c´ aveis. ou at´ e mesmo n˜ ao desej´ avel para fins de seguran¸ ca.7. o que possibilita modificar endere¸ cos de dispositivos na rede local sem notificar o mundo exterior. Para isto. 4. 2.0. Hosts que n˜ ao requerem acesso a outras organiza¸ co ˜es ou a Internet global. porta ) de cada datagrama saindo para (IP NAT. A implementa¸ ca ˜o do NAT faz uso das portas dos protocolos da camada de transporte. Outra importante vantagem do uso do NAT ´ e a economia de IP p´ ublicos. nova-porta).119.Os endere¸ cos acima s˜ ao ditos endere¸ cos IP privados e tem validade somente no escopo da rede interno de uma organiza¸ ca ˜o. O roteador NAT traduz 64 .3 NAT (Network Address Translation ) O NAT (network address translation ) ´ e um mecanismo que possibilita a uma rede local usar apenas um endere¸ co IP p´ ublico. Para muitos hosts nesta categoria um acesso externo irrestrito pode n˜ ao ser necess´ ario. Hosts que requerem acesso a servi¸ cos externos a ` organiza¸ c˜ ao. porta) correspondente armazenado na tabela NAT. ilustra um exemplo apresentado por Kurose e Ross (2006a). e utilizar endere¸ cos IP privados no que concerne a rede interna. 3345. A figura 4. hosts nesta categoria podem utilizar endere¸ cos IP privados. Apenas um endere¸ co IP p´ ublico ´ e usado para todos os dispositivos. Hosts nesta categoria tamb´ em podem utilizar endere¸ cos IP privados.186. porta ) para (IP NAT. FTP.1. nova-porta) como endere¸ co destino. Todos os datagramas deixando a rede local tˆ em o mesmo e u ´nico endere¸ co IP NAT de origem e diferentes n´ umeros de porta origem. precisa-se de endere¸ cos IP p´ ublicos. Os clientes/servidores remotos v˜ ao responder usando (IP NAT. utilizando uma tabela de tradu¸ c˜ ao NAT. o que pode ser considerado uma forma de seguran¸ ca para a rede interna. um roteador NAT deve: • Datagramas saindo: trocar (IP origem. login remoto). • Datagramas entrando: trocar (IP NAT. • Lembrar.0. ou vis´ ıveis do mundo exterior.40.

o endere¸ co IP e porta da esta¸ ca ˜o interna pelo IP NAT. servidor DNS. o endere¸ co IP. Figura 4.7: NAT (KUROSE. traduz novamente para o endere¸ co IP e porta origem da esta¸ c˜ ao da rede local. 2006a). 138. um servidor DHCP recebe uma solicita¸ c˜ ao de um cliente e aloca dinamicamente um endere¸ co IP em resposta ao pedido do cliente.7. 4. O servidor responde ao IP NAT. Com o DHCP um computador cliente pode adquirir toda a configura¸ ca ˜o necess´ aria em uma u ´nica mensagem (por exemplo. 5001.4 protocolo DHCP O protocolo DHCP (dynamic computador configuration protocol ) e permite a aloca¸ ca ˜o dinˆ amica de endere¸ cos IP dentro de uma rede local. Com o DHCP. 4. nova-porta. ele solicita um endere¸ co IP se apresentando com seu endere¸ co f´ ısico.5 Protocolo ARP Quando um computador deseja enviar um datagrama a um destinat´ ario conectado ` a sua rede local. Quando um computador se conecta na rede. O servidor ent˜ ao escolhe um endere¸ co IP dentro da faixa dispon´ ıvel e aloca ao solicitante. nova-porta.76. uma vez que recebe a resposta do servidor. roteador padr˜ ao.29. etc). O roteador NAT. 65 . ROSS. ele entrega o datagrama a interface de rede para ela mapear o endere¸ co IP no endere¸ co f´ ısico do computador destino. O servidor DHCP deve ser configurado com a faixa de endere¸ cos IP dispon´ ıveis para oferecer. m´ ascara de rede.

O protocolo ARP.1) em 00:08:54:B0:8C:C3 [ether] em eth0 ? (172.0. a m´ aquina que sofreu a mudan¸ ca se anuncia na rede com o novo par endere¸ co IP/endere¸ co f´ ısico. enviando uma solicita¸ c˜ ao a todas as m´ aquinas da rede. evitando m´ ultiplos broadcasts. relacionando endere¸ cos IP e endere¸ cos f´ ısicos.4) em 00:83:08:00:22:CE [ether] em eth0 ? (172. Comando arp O comando arp.O endere¸ co f´ ısico tamb´ em ´ e conhecido como endere¸ co de MAC e corresponde ao endere¸ co Ethernet de 48 bits.18. cantu@loureed:~$ arp -an ? (172. isto ´ e. cada m´ aquina possui uma mem´ oria (cache ) com as u ´ltimas consultas realizadas. com parˆ ametro -a. Para tal. o protocolo usa um mecanismo de difus˜ ao (broadcast ). um computador RARP envia um broadcast com o seu endere¸ co f´ ısico solicitando um endere¸ co IP. permitindo que todas as m´ aquinas da rede incluam este par em suas caches locais. a esta¸ ca ˜o solicitante envia seu par endere¸ co IP/endere¸ co f´ ısico. A m´ aquina autorizada a responder o pedido RARP envia a resposta. Ainda como refinamento. definido na RF826. como no exemplo abaixo.18. Figura 4.18. Quando um hardware ´ e trocado. Para melhorar a performance do protocolo. junto com o broadcast. a partir de um endere¸ co f´ ısico permite encontrar o endere¸ co IP da m´ aquina.254) em 00:08:54:19:E6:9D [ether] em eth0 Protocolo RARP O protocolo RARP realiza a opera¸ ca ˜o inversa do ARP. Para tal.0. por exemplo. logo ap´ os sua entrada em opera¸ c˜ ao.8: Protocolo ARP.0. 00:19:21:55:61:d0. sendo que a m´ aquina alvo responde indicando o par endere¸ co IP/endere¸ co f´ ısico. 66 . A figura 4. mostra todas as entradas ARP armazenadas na mem´ oria cache.8 ilustra o funcionamento do protocolo ARP. representado na forma de seis bytes hexadecimais. permite encontrar o endere¸ co f´ ısico a partir do endere¸ co IP da m´ aquina alvo. ´ geralmente utilizado por m´ E aquinas sem disco r´ ıgido (disk-less ) para obter um endere¸ co IP de um servidor.

9: Mensages ICMP Destino Inalcan¸ ca ´vel (RFC792). o ICMP pode reportar a condi¸ c˜ ao de erro de volta a fonte original do datagrama. todavia as mensagens ICMP s˜ ao carregadas na por¸ ca ˜o de dados de um datagrama IP. onde um datagrama segue de roteador em roteador at´ e alcan¸ car seu destino final. que tem origem no protocolo ICMP. Na sequˆ encia est˜ ao listados alguns tipos de mensagens ICMP. o protocolo IP fornece um servi¸ co de datagramas n˜ ao confi´ avel e n˜ ao orientado a conex˜ ao. Se um roteador n˜ ao consegue encontrar uma rota ou entregar um datagrama.4. quando um datagrama causa um erro. O protocolo ICMP (Internet Control amd Message Protocol ). Figura 4. quando rodando uma aplica¸ ca ˜o Telnet ou HTTP. port unreachable. Os datagramas contendo as mensagens ICMP seguem de volta. protocol unreachable. a mensagem ICMP Destino Inalcan¸ ca ´vel (Fig. host unreachable. Tecnicamente o ICMP ´ e um mecanismo de reportagem de erros. que as identifica no campo protocol como tipo ICMP (Type 1). oferecendo uma comunica¸ c˜ ao entre a camada rede de uma m´ aquina e a camada rede de outra m´ aquina. Formato das Mensagens ICMP Cada mensagem ICMP tem um campo de tipo (Type ) e um campo de c´ odigo (Code ). O ICMP ´ e normalmente considerado como parte do IP. a fonte ent˜ ao relata o erro para a aplica¸ c˜ ao ou realiza uma a¸ c˜ ao com vistas a corrigir o erro. podemos encontrar mensagens como Destination Network Unreachable (rede destino n˜ ao encontrada). Por exemplo. definido na RFC792. e tamb´ em cont´ em os primeiros 8 bytes do datagrama que causou o erro (com isto o emissor pode determinar o pacote que causou o erro). Ou seja.9). Por exemplo. 4. seguindo exatamente o caminho que tomaram os dados do usu´ ario. podendo elas tamb´ em serem perdidas ou corrompidas. source route failed.6 Protocolo ICMP Conforme j´ a mencionado. fragmentation needed and DF set. 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. o roteador precisa informar a fonte original dos dados para que esta tome alguma a¸ c˜ ao ou corrija o problema. ou se uma condi¸ ca ˜o anormal ´ e detectada. permite que os roteadores enviem mensagens de erro e controle a outros roteadores ou hosts. 67 .

0 for echo reply message.. O ping imprime os n´ umeros de sequˆ encia de cada pacote retornado.10 mostra o formato da mensagem ICMP de requisi¸ c˜ ao e resposta de eco.37.10: Mensages ICMP Requisi¸ ca ˜o e Resposta de Eco (RFC792).135. por exemplo. +-+-+-+-+Type 8 for echo message. permitindo ao usu´ ario acompanhar quais pacotes foram perdidos. O campo identificador (identifier ) permite ao ping identificar se a resposta recebida quando h´ a m´ ultiplas instˆ ancias do ping rodando.135.65: icmp_seq=3 ttl=63 time=0. S˜ ao identificadas com c´ odigo (0) e tipo (8 – echo request .65 PING 200.37.268 64 bytes from 200.65 (200.135.65: icmp_seq=2 ttl=63 time=0. A figura 4.37. O campo n´ umero de sequˆ encia (sequence number ) inicia com 0 e ´ e incrementado a cada nova requisi¸ c˜ ao de eco enviada.. A seguir est´ a o exemplo de uma sa´ ıda t´ ıpica do ping: cantu@loureed:~$ ping 200.135.288 64 bytes from 200.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 15 Information Request 16 Information Reply Ping Nem todas as mensagens ICMP s˜ ao de reportagem de erros. 64 bytes from 200.355 ms ms ms ms 68 . 2008) e na Internet serve para testar se um host ´ e alcan¸ c´ avel pela rede IP.65: icmp_seq=1 ttl=63 time=0. 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 .135.135.37. 0 – echo reply).37.37.65: icmp_seq=4 ttl=63 time=0. Code 0 Figura 4. envia mensagens ICMP Echo Request a um host e espera como retorno mensagens Echo Reply para verificar se o host est´ a dispon´ ıvel A origem do nome “ping” vem do sonar para localizar objetos (STEVENS.37.65) 56(84) bytes of data. reordenados ou ducplicados. A aplica¸ c˜ ao ping.329 64 bytes from 200.135.

62) 0.254 (172.37.135.37. e assim por diante. que ´ e capaz de tra¸ car a rota que liga um computador a outro computador.036 ms A sa´ ıda do ping mostra o retorno de cada datagrama enviado. portanto. Quando a resposta chega de volta a fonte.135. Para determinar o nome e o endere¸ co dos roteadores entre a fonte e o destino. O traceroute envia datagramas IP encapsulados em segmentos UDP a um host destino.151) 0.135. Outras informa¸ c˜ oes s˜ ao o tempo de ida e volta do datagrama e o campo TTL (time to live ) do datagrama IP.rnp. Todavia escolhe um n´ umero de porta destino com um valor desconhecido (maior que 30000). o segundo 2.316/0.233.200. O valor inicial recomendado para o TTL ´ e 64 (servidores Linux usam este valor). O traceroute.18.pop-sc.682 ms 5 ge1-1-rt199-UFSC.162.511 ms 0.18.199) 0.rnp.br (200. O programa traceroute precisa saber diferenciar as mensagens ICMP recebidas – tempo excedido e porta inalcan¸ c´ avel – para saber quando a rota foi conclu´ ıda.pop-sc. Quando o datagrama chega ao destino uma mensagem ICMP porta inalcan¸ c´ avel (port enreachable ) (tipo 3 c´ odigo 3) ´ e gerada e enviada a origem. o terceiro 3. pode-se concluir que o datagrama com a resposta de eco passou por um roteador intermedi´ ario.85) 0.850 ms 6 web1.563 ms 0.rnp.1.759 ms 0.0. Quando o en´ esimo datagrama chega ao en´ esimo roteador. 0% packet loss.517 ms 0. este verifica que o tempo de sobrevida do datagrama acaba de terminar.237.194.268/0.br (200. No exemplo acima.135. com o nome do roteador e seu endere¸ co IP.342 ms --. time 3998ms rtt min/avg/max/mdev = 0. o traceroute na fonte envia uma s´ erie de datagrama IP ordin´ arios ao destino.0.64 bytes from 200. 40 byte packets 1 172.529 ms 0. tornando improv´ avel que o host destino esteja usando esta porta.237.201. executado de um host na rede interna do Campus S˜ ao Jos´ e do IF-SC no servidor Web da UFSC: cantu@loureed:~$ traceroute www. Outros sistemas inicializam com outros valores (servidores Windows usam o valor m´ aximo 255).pop-sc.151). O primeiro datagrama tem o campo TTL (time to live ) igual a 1. o datagrama ´ e ent˜ ao descartado e uma mensagem ICMP de advertˆ encia tempo excedido (Time Exceeded ) ´ e enviada a fonte (tipo 11 c´ odigo 0).162. a mesma calcula o tempo de viagem em fun¸ c˜ ao dos temporizadores.201. 30 hops max.113 ms 3 rt-85-PoP-SaoJose-CEFET.bb.638 ms 0.181 ms 0.br (150.169 ms 2 200. identificado pelo n´ umero de sequˆ encia.br (150.65: icmp_seq=5 ttl=63 time=0.ufsc. Pelas regras do IP. O protocolo IP assume que um computador ´ e capaz de enviar datagramas a qualquer outro computador 69 .233. e inicia temporizadores para cada datagrama.254 (200.691 ms 0.ufsc.1.628 4 rt1-PoP-UFSC.br (200. Traceroute Outra aplica¸ c˜ ao que utiliza mensagens ICMP ´ e o traceroute.7 Roteamento O roteamento de datagramas na Internet ´ e uma das principais fun¸ c˜ oes da camada rede.65 ping statistics --5 packets transmitted.878 ms 1.237.254) 0.355/0. 5 received.br traceroute to www.205 ms 0.669 ms 0.remep.602 ms 0. A seguir est´ a o exemplo de uma sa´ ıda t´ ıpica do traceroute.remep.488 ms 4.ufsc.254) 0.

2.255.1. 200.1. o que quer dizer que est´ a na mesma rede local.1.1.12 C 200. considerando a rede apresentada na figura 4. Tabela de Roteamento do computador A Destino Roteador M´ ascara 200.3. 70 .0. no caso a rede 200.0 200.1. Caso o destinat´ ario n˜ ao esteja na mesma rede.1.2. A tabela indica que o pr´ oximo roteador ´ e 0.255. ele entrega o datagrama a interface de rede que se encarrega de mapear o IP no endere¸ co f´ ısico do computador destino. Se for o caso.3 255.0/24 casa com o identificador da rede do computador B.0/24.0.1.3.1.0.1.1) tenha a tabela de roteamento dada na tabela a seguir e deseja enviar um datagrama IP ao computador B (IP 200.1 200.2 B R 200. situado em outra rede.1.1.2.2 A 200. Os roteadores podem ser equipamentos espec´ ıficos ou computadores normais que possuem mais de uma interface de rede.255.11 200.1. ele envia o datagrama ao roteador padr˜ ao (gateway default ) da rede local.1.1.2).1.1. cujas entradas s˜ ao pares: endere¸ co de rede/endere¸ co de roteador.255. chamada tabela de roteamento. deve fazer parte do caminho a ser percorrido para alcan¸ c´ a-la.1. encapsular o datagrama IP em um quadro da rede e transmiti-lo. Cada roteador possui uma tabela. parte da fun¸ c˜ ao de roteamento ´ e transferida para os roteadores (gateways ).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. Por exemplo.3 200. quando um computador deseja enviar um datagrama.1.11. O roteador procura na sua tabela de roteamento o endere¸ co do roteador que deve ser usado para alcan¸ car a rede onde est´ a conectado o destinat´ ario do datagrama.255.1. Neste caso.0 200.1. o qual tamb´ em ´ e acess´ ıvel a partir da interface eth0.3. Ent˜ ao ele passa o datagrama ao roteador para dar prosseguimento a entrega.3.1.255.0 0.0 255. o computador consulta sua tabela de roteamento e descobre que a rede 200.0.0 200. Ent˜ ao o computador A passa o datagrama diretamente a camada enlace atrav´ es da interface eth0 para proceder ` a entrega ao computador B. Consultando sua tabela de roteamento ele verifica que esta rede ´ e acess´ ıvel a partir do roteador 200. Veja um exemplo de como funcionam as tabelas de roteamento.1.1.1.10 Figura 4.1. Suponha que o computador A (IP 200.2.1. O roteamento no IP baseia-se exclusivamente no identificador de rede do endere¸ co destino.1 200.1.conectado ´ a mesma rede local.11: Roteamento na Internet. mas.3.3.3. O roteador encontrado pode n˜ ao fazer parte da rede destino.3 255.3 200.1.10). inicialmente ele verifica se o destinat´ ario est´ a conectado a rede local.1.0. Caso o computador destino n˜ ao se encontre na rede local.0 200.

definindo as melhores rotas em fun¸ c˜ ao de um custo atribuido a cada enlace a percorrer.255.0 255.3. Devido a problemas de escala e de autonomia administrativa. baseado no algoritmo estado do enlace. O uso de protocolos de roteamento permite que as tabelas sejam constru´ ıdas e atualizadas dinamicamente.0.0.0. Dois protocolos de rotemento intra–SA bastante utilizados na Internet s˜ ao o RIP e o OSPF.0.3.0.18.254 0.0.1.7.255.255. O parˆ ametro -r serve para listar a tabela de roteamento e o parˆ ametro -n imprime os endere¸ cos IP no formato num´ erico.0. 71 .18. os roteadores que v˜ ao participar de um roteamento dinˆ amico devem ser agrupados em regi˜ oes.0. Sendo assim.1. H´ a duas classes de protocolos de rotemento dinˆ amico na Internet: os protocolos intra–SA e inter-SA.0.0.0 0.0 0.254. ele entrega o datagrama a camada de enlace da rede 200.0 169. ou sistemas autˆ onomos (SAs) e devem rodar o mesmo protocolo em cada regi˜ ao.0 200.255.0.0.0. A constru¸ c˜ ao manual das tabelas de roteamento chama-se roteamento est´ atico.0 0.0 255.O roteador ent˜ ao consulta sua tabela de roteamento (veja tabela abaixo) e verifica que a rede 200. Tabela de Roteamento do roteador R Destino Roteador M´ ascara 200.0 255. calculando as melhores rotas tendo como base o n´ umero de enlaces a percorrer.0 Interface 0 eth0 0 eth1 0 eth2 Comando netstat O comando netstat pode ser utilizado para visualizar as tabelas de roteamento. O RIP (routing information protocol ) constr´ oi as tabelas dinamicamente utilizando um algoritmo de roteamento chamado vetor de distˆ ancias.1.0 255.255.3.0.255.0.0 0. 172.0 172.0.0/24 ´ e acess´ ıvel diretamente atrav´ es da sua interface eth2. desenhado para convergir rapidamente ao ser informado de qualquer altera¸ c˜ ao de estado do enlace dentro da rede.1. Os protocolos de rotemento intra–SA atuam internamente ao sistema autˆ onomo.1.0. O OSPF (Open Shortest Path First ) ´ e um protocolo de roteamento mais elaborado.0 Op¸ c~ oes U U UG MSS 0 0 0 Janela 0 0 0 irtt 0 0 0 Iface eth0 eth0 eth0 4.255.0/24 para fazer a entrega ao computador C.255.0 0.0. A seguir ´ e mostrada uma sa´ ıda do comando netstat: cantu@loureed:~$ netstat -rn Tabela de Roteamento IP do Kernel Destino Roteador M´ ascaraGen.0 0.1 Roteamento est´ atico e protocolos de roteamento A constru¸ c˜ ao das tabelas de roteamento em cada roteador pode ser feita manualmente por um administrador de rede ou atrav´ es do uso de protocolos de roteamento.0 200.0.1.2.0 255.

congest˜ ao ou falta de mem´ oria. As principais melhorias introduzidas pelo IPv6 s˜ ao: • Amplia¸ c˜ ao do espa¸ co de endere¸ camento de 32 bits para 128 bits. o qual permite implementar pol´ ıticas espec´ ıficas dependendo dos sistemas autˆ onomos que ser˜ ao integrados. a qual tem possibilitado solu¸ c˜ oes de alguns de seus problemas. Na Internet o protocolo mais utilizado neste dom´ ınio ´ e o BGP (border gateway protocol ).12. • Inser¸ c˜ ao de mecanismos para facilitar o gerenciamento de QoS. 72 . • Inser¸ c˜ ao de mecanismos de seguran¸ ca (IPsec). Este atraso se justifica pelo sucesso do IPv4. no caso = 6. que ´ e a capacidade de voltar ao seu estado normal depois de ter sofrido uma press˜ ao. • Melhoria no processo de autoconfigura¸ c˜ ao.1 Estrutura do datagrama IPv6 O datagrama IPv6 possui seu cabe¸ calho com tamanho fixo de 40 bytes. Al´ em da limita¸ c˜ ao do espa¸ co de endere¸ camento o IPv4 n˜ ao incluia em seu projeto original suporte para mobilidade. Sua flexibilidade e extensibilidade. este problema acabou sendo minimizado com a proposi¸ c˜ ao do endere¸ camento IP sem classes (CIDR) e tamb´ em com o uso do NAT. de 4 bits. • Inser¸ c˜ ao de mecanismos para tratamento de mobilidade (MIPv6). como o CIDR que acabou com as classes de endere¸ camento. • Melhoria no formato do datagrama IP. como por exemplo. Posteriormente. 4. e deve substituir o IPv4. a qual atribuiu faixas gigantescas de endere¸ cos para algumas poucas empresas e institui¸ c˜ oes. na qual partes do sistema podem ser administrados como sistemas autˆ onomos independentes.8 Protocolo IPv6 O protocolo IPv6 ´ e a nova vers˜ ao do IP. • O campo vers˜ ao (Version ). especificado pela RFC2460. Um dos motivos que levaram ao desenvolvimento do IPv6 foi a escassez de endere¸ cos IP que se avizinhava no in´ ıcio dos anos 1990. Sua escalabilidade. o IPv6 ´ e incrementado por v´ arias outras RFCs. seguran¸ ca e qualidade de servi¸ co. Sua resiliˆ encia. como mostra a figura 4. por exemplo: RFC2463 (ICMP for the Internet Protocol Version 6 ) e RFC3775 (Mobility Support in IPv6 ).8. Al´ em disto. o NAT que possibilitou o uso de IP privados em uma rede interna e a autoconfigura¸ c˜ ao dos endere¸ cos em uma rede local com DHCP. Na quest˜ ao da qualidade de servi¸ co (QoS). 4. Em partes isto foi devido ao uso de classes no IPv4.O roteamento inter-SA permite interconectar diferentes sistemas autˆ onomos. o campo TOS (type of service ) acabou sendo utilizado posteriormente. em particular por sua simplicidade de administra¸ c˜ ao. indica a vers˜ ao do protocolo. Apesar de ter sido definido a quase 10 anos o IPv6 ainda n˜ ao tem data para ser implementado difinitivamente na Internet. como especificado na RFC1349 (Type of Service in the Internet Protocol Suite ).

com 20 bits. tem funcionalidade similar a utiliza¸ c˜ ao do campo TOS do IPv4 permitindo de implementar “servi¸ cos diferenciados” de QoS (DiffServ ) para os pacotes IP. ou n´ umeros espec´ ıficos para o IPv6 (RFC3232). 73 .no next header • Limite de saltos (Hop Limit ). como servi¸ cos tempo real. pode utilizar n´ umeros similares aos do campo Protocol do IPv4. ´ e utilizado por n´ os de origem e roteadores intermedi´ arios para diferenciar diferentes classes e prioridade de tr´ afego entre os pacotes 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 . especifica o tipo do cabe¸ calho imediatamente ap´ os o cabe¸ calho IPv6.org.12: Formato do datagrama IPv6 (RFC2460). • R´ otulo de fluxo (Flow Label ). como por exemplo: Next Header IPv6 . • Endere¸ co fonte (Source Address). • Comprimento dos dados (Payload Length ). com 8 bits. em bytes. os quais s˜ ao atualmente estabelecidos por uma base on-line no endere¸ co www. com 8 bits. especifica o tamanho dos dados ap´ os o cabe¸ calho.iana. com 8 bits. pode ser utilizado por n´ os de origem para rotular sequˆ encias de pacotes que requerem tratamento especial em roteadores.+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figura 4. com 128 bits. o pacote ´ e descartado quando o Hop Limit chega a zero. • Classe de tr´ afego (Traffic Class ). com 16 bits. • Pr´ oximo cabe¸ calho (Next Header ). ´ e decrementado de 1 em cada n´ o de encaminhamento do pacote.

que devem se seguir ao mesmo. uma vez que o cabelalho IPv6 possui tamanho fixo. Foram removidos do cabe¸ calho IPv6 os seguintes campos que haviam no IPv4: • Tamanho do cabe¸ calho (Header Length ). para encontrar destinos de multicast. a n˜ ao ser o cabe¸ calho hop-by-hop. definidas na RFC2460 s˜ ao as seguintes: • Hop-by-Hop Options header • Routing header • Fragment header • Destination Options header • Authentication header • Encrypted Security Payload header As extens˜ oes s˜ ao identificados pelo campo Next Header e s˜ ao colocados entre o cabe¸ calho IPv6 e o pacote de n´ ıvel superior. Flags. A extens˜ ao cabe¸ calho de fragmenta¸ c˜ ao (Fragment header ) ´ e usada para possibilitar a fragmenta¸ c˜ ao e remontagem de datagramas. entre outras. Extens˜ oes do cabe¸ calho IPv6 As extens˜ oes do cabe¸ calho IPv6. evitando recalcular o valor do checksum em cada n´ o. Os roteadores ao longo da rota n˜ ao fragmentam o pacote. e deve seguir necessariamente o cabe¸ calho IPv6. A extens˜ ao cabe¸ calho de roteamento (Routing header ) permite informar um conjunto de roteadores que devem ser visitados at´ e o seu destino final e pode ser utilizada por aplica¸ c˜ oes que exigem qualidade de servi¸ co. • Identification.• Endere¸ co destino (Destination Address). de 32 bits informa o tamanho dos dados. uma vez que no IPv6 n˜ ao h´ a mais fragmenta¸ c˜ ao do datagrama. A op¸ c˜ ao Jumbogram da extens˜ ao hop-by-hop permite que pacotes maiores que 64K sejam transmitidos. sendo utilizada uma t´ ecnica conhecida como descoberta da MTU do caminho (Path MTU Discovery ). 74 . O destino remonta o pacote fragmentado. Fragment Offset. As informa¸ c˜ oes poder˜ ao ser utilizadas para reserva de recursos (exemplo RSVP). O campo Option Data Lenght. • Header Checksum. O IPv6 usa a t´ ecnica “PATH MTU Discovery ” para determinar a m´ axima MTU na trajet´ oria do pacote. O cabe¸ calho de op¸ c˜ oes Hop-by-Hop carrega informa¸ c˜ oes que devem ser processadas por todos n´ os ao longo do caminho. Elas s˜ ao examinados unicamente pelo n´ o identificado no endere¸ co de destino. Se o pacote for maior que esta MTU ent˜ ao ele ´ e fragmentado na fonte. o que tornou o processamento mais leve. com 128 bits.

O Ipv6 eliminou o broadcast e enriqueceu o processo de multicast. 75 .8. pode ser transformado em: 237::ABCD:0:0:0:0:10 . O ARP/RARP foi incorporado atrav´ es da utiliza¸ c˜ ao da t´ ecnica Neighbour Discovery (descoberta de informa¸ c˜ oes da vizinhan¸ ca). O endere¸ co link-local traz a no¸ c˜ ao de endere¸ cos privados dentro de uma rede. Tipos de endere¸ camento IPv6 • Unicast : identifica um hospedeiro (interface). S˜ ao utilizadas regras para simplificar a representa¸ c˜ ao de zeros. Incorporou mensagens de registro de localiza¸ c˜ ao para IP M´ ovel.2 ICMPv6 O ICMPv6 (RFC2463) reporta erros se pacotes n˜ ao podem ser processados apropriadamente e envia informa¸ c˜ oes sobre o status da rede.13. E co que pode ser atribu´ ıdo a m´ ultiplos hospedeiros. Endere¸ co Unicast Os endere¸ cos unicast s˜ ao endere¸ cos p´ ublicos. As mensagens ICMPv6 s˜ ao transportadas por datagramas IPv6 com n´ umero Next Header igual a 58H e tem formato geral mostrado na figuraa 4. Outros endere¸ cos not´ aveis: • Endere¸ co Loopback : ::1 • Endere¸ co n˜ ao especificado: :: • Endere¸ cos Multicast : FF02::1 – todos os n´ os do enlace. Apresentam uma estrutura hier´ arquica. N˜ ao s˜ ao rote´ aveis e come¸ cam com 1111111010. • Multicast : identifica um conjunto de hospedeiros. foi incorporado no ICMPv6. ´ um endere¸ • Anycast : uma novidade no Ipv6. O IGMP. por exemplo o endere¸ co: 0237:0000:ABCD:0000:0000:0000:0000:0010 . melhor ainda. O roteamento da Internet permite encaminhar pacotes ao endere¸ co anycast mais pr´ oximo. Por exemplo: FE80:A0000::1 . Apresenta v´ arias melhorias em rela¸ c˜ ao ao ICMPv4. rote´ aveis na Internet. 4. que trata multicast no IPv4. ou. FF02::2 – todos os roteadores do enlace.Endere¸ camento IPv6 (RFC 3513) O IPv6 tem endere¸ camento de 128 bits: espa¸ co de 2128 endere¸ cos!! ´ utilizada uma nota¸ E c˜ ao hexadecimal com agrupamento de 16 bits separados por “dois pontos”. como por exemplo: 2001:0DB8:5002:2019:1111:76ff:FEAC:E8A6 . 237:0:ABCD::10. cujas interfaces s˜ ao configuradas com m´ ascaras de 64 bits.

Nesta t´ ecnica o n´ o emissor assume a MTU do seu enlace de sa´ ıda e envia o pacote para destino.Source address failed ingress/egress policy 6 .No route to destination 1 . Caso algum roteador da rota detecte que o pacote ´ e muito grande para o MTU ent˜ ao ele avisa o n´ o fonte com ICMPv6 Packet Too Big (que inclui o tamanho da MTU do enlace problema). para mensagens de erro Destination Unreachable poderemos ter: Type Code 1 0 . uma vez que o IPv6 n˜ ao fragmenta do datagrama nos roteadores intermedi´ arios. O n´ o usa esta nova MTU para encaminhar o pacote novamente ao seu destino. S˜ ao exemplos de mensagens de erro: Type 1 2 3 4 Destination Unreachable Packet Too Big Time Exceeded Parameter Problem S˜ ao exemplos de mensagens de informa¸ c˜ ao: Type 128 129 133-136 Echo Request Echo Reply Neighbor Discovery O campo Code indica o c´ odigo da mensagem. podendo o processo todo pode se repetir em outros roteadores.Address unreachable 4 .Communication with destination administratively prohibited 2 . por exemplo. As mensagem com bit mais significativo (MSB) do campo type = 0 indicam erro (valores de 0–127) e com o MSB = 1 s˜ ao de informa¸ c˜ ao (valores de 128–255).Beyond scope of source address 3 .13: Formato geral da mensagem ICMPv6 (RFC2463).Reject route to destination A mensagems de erro Packet Too Big (Type = 2. A mensagems de erro Time Exceeded (Type = 3. Code = 0) ´ e enviada quando o limite de saltos (hop limit ) ´ e excedido em um dado roteador.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. 76 . Code = 0) ´ e utilizada pela t´ ecnica de descoberta da MTU do enlace (Path MTU Discovery ).Port unreachable 5 .

para anunciar sua presen¸ ca e divulgar seu prefixo. como no IPv4.14: Neighbor Solicitation e Neighbor Advertisement.8. 2. Passos para autoconfigura¸ c˜ ao 1.14. 3. Se detectado IP duplicado o n´ o dever´ a ser configurado manualmente. Na autoconfigura¸ c˜ ao s˜ ao utilizadas mensagens ICMPv6 de descoberta de vizinhos (Neighbor Discovery ) (RFC2461). O n´ o se junta aos grupos multicasting. como ilustra a figura 4. A mensagem Router Solicitation ´ e utilizada para a descoberta de roteadores na rede local e Router Advertisement s˜ ao utilizadas pelos roteadores. A autoconfigura¸ c˜ ao ´ e usada quando um s´ ıtio n˜ ao necessita estabelecer endere¸ cos particulares as esta¸ c˜ oes. como ilustra a figura 4.3 Autoconfigura¸ c˜ ao A autoconfigura¸ c˜ ao (RFC2462) ´ e um dos pontos fortes do IPv6 permitindo gerar endere¸ cos IP automaticamente para as interfaces. pode-se utilizar o DHCPv6. Uma mensagem Neighbor Solicitation ´ e enviado com o endere¸ co tentativa como target address. Um endere¸ co tentativa ´ e formado com o prefixo FE80 (link-local address ) e associado a interface. Endereço tentativa: FE80::200:88FF:22:10 Neighbor Solicitation para: FE80::200:88FF:22:10 Neighbor Advertisiment Figura 4. Para isto o IPv6 combina prefixos divulgados pelos roteadores com o endere¸ co de MAC (ou n´ umero randˆ omico). 77 .15. Caso haja necessidade de se atribuir endere¸ cos espec´ ıficos. periodicamente. Na ausˆ encia de roteadores usa-se o prefixo FE80 para gerar um endere¸ co privado “link-local”.4. As mensagens ICMPv6 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 s˜ ao utilizadas para a descoberta de vizinhos e detec¸ c˜ ao de endere¸ cos duplicados. sem nenhum tipo de configura¸ c˜ ao manual. as quais s˜ ao equivalentes as mensagens ARP. .

Supondo que o hospedeiro possui endere¸ co MAC de 00:1a:4d:a5:0c:15 e o prefixo recebido do Roteador (via Advertˆ encia) ´ e 2001:10:/64 ent˜ ao o endere¸ co formado ´ e: 2001:10::21a:4dff:fea5:c15/64 .16. na qual datagramas IPv6 s˜ ao carregados em datagramas IPv4 entre roteadores IPv4. uma vez que “dias de mudan¸ ca geral” s˜ ao invi´ aveis. com roteadores IPv4 e IPv6 convivendo simultaneamente.4 Transi¸ c˜ ao de IPv4 para IPv6 Nem todos os roteadores podem ser atualizados simultaneamente. Os projetistas do IPv6 pensaram a transi¸ c˜ ao de forma gradativa. 4.8. Forma¸ c˜ ao do Endere¸ co a partir do MAC Os 64 bits do identificador de hospedeiro s˜ ao formados pela inser¸ c˜ ao de FFFE entre o terceiro e quarto byte do MAC e complementando-se o segundo bit menos significativo do primeiro byte do MAC. 4.Endereço tentativa: FE80::200:88FF:22:10 Router Solicitation Router Advertisiment Prefixo: 2001:10:: Figura 4. como ilustra a figura 4. Para isto ´ e utilizada uma t´ ecnica conhecida como “tunelamento”. Todos roteadores do grupo multicast respondem e o n´ o se autoconfigura para cada um deles.15: Router Solicitation e Router Advertisement. (grupo multicast dos roteadores). 5. 78 . O n´ o realiza um Router Solicitation para o endere¸ co FF02::2.

2006a).Figura 4. 79 .16: Tunelamento de um datagrama IPv6 em um IPv4 (KUROSE. ROSS.

80 .

As unidades de dados de protocolos trocadas pelos protocolos de enlace s˜ ao chamadas quadros (frames ) e tipicamente encapsulam um datagrama da camada rede. aceitando o envio de um quadro caso o meio estiver livre. No caso de um protocolo ponto a ponto o acesso ao meio ´ e bastante simples. os datagramas da camada rede s˜ ao encapsulados em quadros e o acesso ao meio vai depender do tipo de protocolo utilizado. estas u ´ltimas caracterizam as redes locais. Com a possibilidade de as redes locais serem conectadas entre si. e permitem aos computadores e usu´ arios da rede compartilharem recursos. passando por uma s´ erie de roteadores e termina no host destino. h´ a necessidades de mecanismos especiais para acesso ao meio. J´ a no caso de protocolos multiponto. 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. No caso da Internet.1. Os enlaces entre n´ os vizinhos podem ser suportados por diferentes tecnologias. 5. Assim como os protocolos rede s˜ ao protocolos fim a fim que movem datagramas de um host a outro. Esta comunica¸ c˜ ao passa por caminhos que iniciam no host de origem. os protocolos de enlace s˜ ao protocolos n´ o a n´ o. Cada equipamento. por exemplo no ˆ ambito de uma empresa ou universidade. como o protocolo de rede local Ethernet. como hosts e roteadores.Cap´ ıtulo 5 Protocolos de Enlace e Redes Locais As redes locais s˜ ao redes de computadores concentradas em uma ´ area geogr´ afica restrita. cresceu de forma extraordin´ aria as possibilidades de acesso a recursos e servi¸ cos. 5.1 Protocolos de enlace A camada rede da Internet oferece um servi¸ co de comunica¸ c˜ ao de datagramas entre dois sistemas terminais. utilizando protocolos espec´ ıficos.1 Servi¸ cos oferecidos pelos protocolos de enlace Dentre os poss´ ıveis servi¸ cos oferecidos pelos protocolos de enlace est´ a o acesso ao meio f´ ısico e o enquadramento (framing ). ele precisa percorrer cada um dos enlaces individuais entre os diversos n´ os. 81 . ´ e chamado de n´ o e o canal de comunica¸ c˜ ao entre dois n´ os adjacentes ao longo de uma rota ´ e chamado de enlace. movendo quadros sobre um simples enlace entre n´ os vizinhos. Desta forma. para mover um datagrama desde sua origem at´ e seu destino. formando a Internet. de forma que hoje praticamente n˜ ao se pensa mais uma rede local isolada. os quais s˜ ao chamados de protocolos de enlace.

de forma que seja par. Os erros de bits s˜ ao bastante raros.1. suponha que um dado D a ser transmitido tenha d bits. e verifica se o resultado ´ e par. Caso n˜ ao seja. Se o erro for muito grave. De um modo geral. havendo t´ ecnicas para detect´ a-los e mesmo corrigi-los. O m´ etodo consiste em somar a seq¨ uˆ encia de palavras e usar a soma para detectar erros nos bits.2. Checksum Na t´ ecnica de checksum o dado D ´ e tratado como uma seq¨ uˆ encia de palavras bin´ arias. evitando a liga¸ c˜ ao com defeito. a retransmiss˜ ao ´ e a solu¸ c˜ ao. incluindo o bit de paridade. Este ´ e m´ etodo utilizado pelos protocolos Internet e foi descrito na se¸ c˜ ao 3. Checagem de paridade Talvez a forma mais simples de detec¸ c˜ ao de erros de bits seja utilizar um simples bit de paridade. detec¸ c˜ ao e corre¸ c˜ ao de erros. • Perda de pacotes. Por exemplo. como: comunica¸ c˜ ao full-duplex ou half-duplex. al´ em de detectar erros em bits. pois permitem diminuir a necessidade de retransmiss˜ oes pelo emissor. Estas t´ ecnicas s˜ ao conhecidas como FEC (forward error correction ). ele computa os bits em 1. No caso da perda de pacotes. A detec¸ c˜ ao e corre¸ c˜ ao de erros no n´ ıvel de bits dos quadros enviados de um n´ o a outro n´ o fisicamente conectado s˜ ao geralmente servi¸ cos oferecidos pelos protocolos da camada de enlace. como mostra o exemplo abaixo. algumas vezes ´ e poss´ ıvel utilizar uma rota alternativa. dependendo do protocolo. Algumas t´ ecnicas permitem. Dado Paridade +----------------+-+ 0111000110101011 1 Quando o receptor recebe o dado. Elas s˜ ao u ´teis. os m´ etodos de checksum e os m´ etodos de redundˆ ancia c´ ıclica (CRC). Checagem de redundˆ ancia c´ ıclica 82 . • Falha nos enlaces de comunica¸ c˜ ao. de corrigi-los. entrega de dados garantida e controle de fluxo. T´ ecnicas de detec¸ c˜ ao e corre¸ c˜ ao de erros Em qualquer transmiss˜ ao de informa¸ c˜ ao existe o risco do erro sob o efeito de perturba¸ c˜ oes aleat´ orias ou de ru´ ıdos. o pacote pode ser descartado e ter´ a que ser retransmitido. Trˆ es t´ ecnicas simples de detec¸ c˜ ao e corre¸ c˜ ao de erros no n´ ıvel de bits s˜ ao a checagem de paridade. o receptor sabe que algum bit teve seu valor alterado.Al´ em destes servi¸ cos b´ asicos. Usando um esquema de paridade. outras a¸ c˜ oes podem ser executadas sobre os quadros. J´ a no caso de falha de um enlace. 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). os erros nos dados transmitidos atrav´ es da rede podem ser: • Erros de bit introduzidos nos dados.

Muitos protocolos tem sido desenvolvido para este tipo de comunica¸ c˜ ao. o emissor adiciona ao dado D mais r bits. como por exemplo. o emissor e o receptor devem acordar primeiramente sobre um polinˆ omio gerador. o dado ´ e considerado correto. ele sabe que h´ a erros nos dados. corresponde ao polinˆ omio M (x) = 1. Os demais campos s˜ ao os seguintes: • Protocol (1 ou 2 bytes). sempre inicia e termina com 01111110 (chamado de flag ).x3 + 0. O protocolo PPP recebe um pacote da camada rede (por exemplo. Por exemplo. j´ a que podem ser vistos como um polinˆ omio onde os coeficientes s˜ ao 0 e 1. ´ tipicamente o O PPP ´ e um dos protocolos ponto a ponto mais utilizados atualmente. • Information (tamanho vari´ avel. caso a divis˜ ao n˜ ao seja exata. 5. de forma que o resultado da soma d + r seja exatamente divis´ ıvel por G usando aritm´ etica m´ odulo 2. Os c´ odigos CRC s˜ ao tamb´ em conhecidos como c´ odigos polinomiais. est˜ ao entre os m´ etodos mais utilizados nas redes de computadores para detec¸ c˜ ao de erros. Protocolo PPP O protocolo PPP pode operar sobre uma linha telefˆ onica (usando por exemplo uma conex˜ ao via modem de 54K bps). o n´ umero bin´ ario de 4 bits. o segundo byte ´ e sempre 11111111 (chamado de endere¸ co) e o terceiro byte ´ e sempre 00000011 (chamado de controle). Para uma pe¸ ca de dados D a ser transmitida.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. podendo ter no m´ aximo 1500 bytes). ou c´ odigos CRC (cyclic redundancy check). sobre um enlace SONET/SDH (syncrhonous optical network/syncrhonous digital hierarchy ). pois podem descobrir mais erros que um checksum. o protocolo PPP (point-to-point protocol ) e o HDLC (high-level data link control ). O formato do quadro PPP. No caso de um datagrama IP. 83 .1.x2 + 1. por exemplo um datagrama IP. Quando o receptor recebe os dados. sobre uma conex˜ ao X. Tamb´ em ´ e utilizado em enlaces ponto a ponto entre roteadores. cont´ em o pacote encapsulado (dado). caso contr´ ario.Os c´ odigos de redundˆ ancia c´ ıclica. indica ao receptor qual o protocolo da camada de rede que est´ a sendo encapsulado no quadro. E protocolo escolhido para conectar um computador pessoal residencial a um provedor de acesso a Internet usando uma linha telefˆ onica. mostrado na figura 5. um datagrama IP) e o encapsula em um quadro da camada enlace PPP. ele divide d + r por G. de grau r. Assim.25 ou sobre um circuito digital RDSI (rede digital de servi¸ cos integrados). Os c´ odigos CRC operam como segue.x0 = x3 + x1 + 1 cujo grau ´ e 3. este campa tem o valor hexadecimal 21. 1011.x1 + 1.1. de forma que o receptor ser´ a capaz de identificar o in´ ıcio e o fim do quadro. bem como o pacote da camada rede que ele cont´ em. G.

usado para detectar erros nos bits do quadro transmitido. volta a escut´ a-lo depois de decorrido um tempo randˆ omico para tentar nova transmiss˜ ao. O protocolo utilizado nas redes Ethernet e nas redes locais sem fio derivam do ALOHA e s˜ ao baseados na t´ ecnica de escuta da portadora antes de enviar uma informa¸ c˜ ao (CSMA – carrier sense multiple access ). O protocolo SLIP (Serial Line Internet Protocol ) ´ e outro protocolo similar ao protocolo PPP. quando um n´ o tinha um quadro a ser transmitido. situados em diferentes ilhas do Pac´ ıfico. ele assumia que n˜ ao havia ocorrido conflito. Protocolo ALOHA Na primeira vers˜ ao do protocolo ALOHA. estes poder˜ ao colidir e ser˜ ao perdidos. V´ arios protocolos deste tipo foram desenvolvidos e os mais conhecidos derivam do protocolo ALOHA. assumia que havia ocorrido que uma colis˜ ao e retransmitia o quadro com uma probabilidade p. Nas redes de computadores as t´ ecnicas mais utilizadas para acesso a um meio comum s˜ ao conhecidas como protocolos de acesso randˆ omico. Neste processo.1: Formato do quadro PPP. Como v´ arios podem transmitir quadros ao mesmo tempo. Os protocolos de acesso m´ ultiplo ao meio permitem coordenar o acesso ao meio.01111110 11111111 00000011 Protocol Info Checksum 01111110 Figura 5. • Checksum (2 a 4 bytes). desenvolvido no final dos anos sessenta para permitir interligar via r´ adio os computadores espalhados pelo campus da universidade do Hawaii (USA).3 Protocolos de enlace de m´ ultiplo acesso O problema central nos enlaces de m´ ultiplo acesso ´ e determinar quem deve transmitir e quando. o n´ o escuta o canal: caso o canal estiver livre transmite o quadro imediatamente.1. ele o transmitia imediatamente. caso o canal estiver ocupado. sen˜ ao esperava um tempo correspondente ao tempo de transmiss˜ ao e tentava enviar novamente com probabilidade p. Se ap´ os um tempo de atraso o emissor ouvisse sua transmiss˜ ao (reflex˜ ao do sinal de r´ adio transmitido). Protocolo CSMA O protocolo CSMA foi projetado para funcionar com computadores conectados em barramento e introduziu dois novos princ´ ıpios em rela¸ c˜ ao ao ALOHA: • Escutar a portadora antes de enviar um quadro (carrier sense ) (o que n˜ ao era poss´ ıvel no ALHOA devido ao tempo de propaga¸ c˜ ao do sinal de r´ adio). 84 . evitando ou detectando estas colis˜ oes. Caso contr´ ario. 5.

6). As primeiras redes Ethernet conectavam diretamente seus n´ os por meio de um barramento de cabos coaxiais. A figura 5. 85 . as quais utilizam uma conex˜ ao f´ ısica em anel de seus n´ os e controlam o acesso ao anel por meio de um protocolo baseado na passagem de “ficha” (token ) entre as esta¸ c˜ oes.2: Rede local conectada a Internet por meio de roteador.1 Topologia de redes locais Uma maneira de classificar as redes locais ´ e quanto a topologia de conex˜ ao de seus n´ os. A topologia em barramento foi popularizada pelas redes locais Ethernet. onde os n´ os continuam ouvindo o canal enquanto transmitem: caso detectem uma sobreposi¸ c˜ ao de transmiss˜ oes (colis˜ oes). Um roteador conectando a rede local a Internet provˆ e uma forma de acesso a Internet a todos os equipamentos da rede local. As topologias mais conhecidas s˜ ao o barramento. As redes Ethernet atuais utilizam dispositivos contentradores. Numa rede local. Internet Figura 5. As redes locais sem fio (padronizadas como IEEE802.2. formando uma topologia f´ ısica do tipo estrela.5). A topologia em anel foi popularizada nos anos 1980 pelas redes token-ring (padronizadas como IEEE 802.11) tamb´ em utilizam broadcast sobre um meio comum.3) talvez seja a tecnologia mais utilizada atualmente em redes locais (LAN – local area networks ) e utiliza difus˜ ao (broadcast ) sobre um barramento l´ ogico para a comunica¸ c˜ ao entre seus pares. a estrela e o anel.2. Estas duas regras s˜ ao as caracter´ ısticas principais do protocolo (CSMA/CD – carrier sense multiple access/colision detection ). p´ ara a transmiss˜ ao.4 ilustra computadores conectados em uma topologia em anel. 5. como hubs e switches.• Se algu´ em come¸ car a transmitir no mesmo tempo. utilizando o protocolo CSMA-CD para controlar o acesso ao meio. param imediatamente a transmiss˜ ao. como as redes ´ opticas FDDI (fiber digital distributed interface ) e DQDB (distributed queue dual bus )(padronizadas como IEEE 802. utilizado nas redes locais baseadas no protocolo Ethernet. todos os computadores e demais dispositivos de rede s˜ ao diretamente conectados e usam o mesmo tipo de protocolo de enlace. A figura 5.2 Redes Locais A Ethernet (padronizadas como IEEE 802. como mostra a figura 5. no caso o ar e o espectro eletromegn´ etico.3 ilustra estas formas de conectividade em rede. Todavia a topologia l´ ogica continua sendo do tipo barramento. utilizando um protocolo de m´ ultiplo acesso para controlar o acesso ao meio. Este procedimento ´ e chamado de detec¸ c˜ ao de colis˜ oes (colision detection ). 5. Outras tecnologias tamb´ em utilizaram a topologia em anel ou variantes desta topologia.

os principais componentes de um adaptador de rede s˜ ao sua interface com o barramento do host e sua interface com o enlace f´ ısico.2. Para prover esta funcionalidade.2. Com a populariza¸ c˜ ao das redes Ethernet e o avan¸ co tecnol´ ogico que tem proporcionado taxas de transmiss˜ ao cada vez mais altas.4: Topologia em anel. em geral. os n´ os de uma rede local devem ser capaz de endere¸ car os demais n´ os quando enviam um quadro. uma placa de rede Ethernet de 100 Mbps possui uma interface para conex˜ ao da mesma diretamente no barramento do computador. e o meio f´ ısico. (b) Estrela. Por exemplo. 5. quando um n´ o recebe um quadro. Todavia. Desta forma. Figura 5.2 Placas adaptadoras Os protocolos de enlace s˜ ao em geral implementados sobre placas adaptadoras que fazem a interface entre o host. e uma interface de rede. 5. Desta maneira. seja ele um computador terminal ou um roteador. quando um n´ o transmite um quadro. que pode ser tipo RJ45 (conex˜ ao com par tran¸ cado) ou BNC (conex˜ ao com cabo coaxial) (em desuso). o mercado atual ´ e dominado por esta tecnologia. ent˜ ao o 86 .(a) Barramento.3 Endere¸ cos f´ ısicos Os n´ os das redes locais trocam quadros (frames ) entre si atrav´ es de um canal comum (broadcast ). mas sim a um n´ o particular. um n´ o n˜ ao quer enviar quadros a todos n´ os. Isto significa que. ele pode determinar se o quadro est´ a endere¸ cado a ele ou a outro n´ o da rede: • Se o endere¸ co do quadro recebido casa com o endere¸ co f´ ısico do n´ o que o recebeu.3: Topologias em barramento e estrela. estando as topologias em anel praticamente em desuso. Figura 5. todos os demais n´ os v˜ ao receber este quadro.

5 ilustra. Resolu¸ c˜ ao de endere¸ co f´ ısico Quando um datagrama da camada rede.2. A figura 5. o roteador dever´ a mapear o endere¸ co IP no endere¸ co f´ ısico do computador destino. • Endere¸ co Destino e Origem (6 + 6 bytes). mostradas na figura 5. Nas redes locais Ethernet. Quadro Ethernet O quadro (frame) Ethernet tem as seguintes caracter´ ısticas. mas sim. endere¸ cado a um computador de uma rede local chega ao roteador de borda. ao n´ ´ ıvel l´ ogico. respectivamente. e o hardware (placa de rede. a partir da Internet. por exemplo. par tran¸ cado de cobre ou ainda fibra optica. • Tipo (2 bytes). Este endere¸ co ´ e permanente. permite identificar o tipo do protocolo da camada superior. Para que isto seja feito. por exemplo. o n´ o simplesmente ignora o quadro. Na verdade n˜ ao ´ e o n´ o da rede que tem um endere¸ co f´ ısico. A Ethernet usa o protocolo de acesso randˆ omico CSMA-CD. todas as m´ aquinas compartilham um barramento comum. o endere¸ co 00:19:21:55:61:d0. o endere¸ co f´ ısico ´ e tamb´ em chamado de endere¸ co Ethernet ou ainda endere¸ co MAC (media access control ). nomeados AA-AA-AA-AA-AA-AA e BB-BB-BB-BB-BB-BB. o roteador dever´ a encapsular este datagrama em um quadro da camada enlace para poder entreg´ a-lo ao computador destino. 87 . Existem v´ arias tecnologias de rede local Ethernet.n´ o extrai o datagrama (da camada rede) do quadro recebido (camada de enlace) e repassa para cima na sua pilha de protocolos. cada adaptador de rede da rede local. na forma de um mapa conceitual. sendo que. que ´ e completamente descentralizado. sendo portando a velocidade de acesso tamb´ em compartilhada entre as esta¸ c˜ oes. cont´ em o endere¸ co f´ ısico da origem e destino do quadro. que operam em velocidades de 10/100 Mbps at´ e 1/10 Gbps. dando 248 poss´ ıveis endere¸ cos. Podem rodar sobre cabo coaxial. Um endere¸ co Ethernet ´ e um n´ umero expresso na nota¸ c˜ ao hexadecimal. sendo gravado pelo fabricante do adaptador de rede em uma mem´ oria ROM (read only memory ). • Se o endere¸ co do quadro recebido n˜ ao casa com o endere¸ co f´ ısico do n´ o o recebeu. cada um dos primeiros sete bytes do preˆ ambulo tem o valor 10101010 e o oitavo byte tem o valor 10101011.4 Ethernet Ethernet ´ e a tecnologia de redes locais mais difundida atualmente.6: • Preˆ ambulo (8 bytes).5 esta tarefa ´ e realizada pelo protocolo ARP. de seis bytes. o protocolo IP (ou outro como Novell IPX). Como descrito na se¸ c˜ ao 4. Pode-se dizer que a Ethernet est´ a para as redes locais. assim como a Internet est´ a para as redes geograficamente distribu´ ıdas de alcance global. 5. hubs e switches Ethernet) tem um custo bastante atrativo. uma vis˜ ao dos principais conceitos envolvidos nas redes Ethernet.

pontes e switches Hubs O modo mais simples para interconectar computadores numa rede local ´ e atrav´ es de um hub . Um hub. Tipo Dados CRC Figura 5.3 5. Preâmbulo End. no n´ ıvel l´ ogico um hub implementa um barramento de m´ ultiplo acesso entre os host que s˜ ao conectados em suas interfaces. Cada ponte conecta dois segmentos de rede e faz com que uma c´ opia de cada 88 .3. atuando portanto ao n´ ıvel da camada f´ ısica (camada 1 do modelo OSI). Orig. Dest. • CRC (cyclic redundancy check ) (4 bytes).6: Formato do quadro Ethernet. Hubs s˜ ao essencialmente repetidores e operam sobre os bits. • Dados (46 a 1500 bytes). Apesar de no n´ ıvel f´ ısico a topologia dos equipamentos conectados a um hub ser do tipo estrela.1 Hubs. 5. End. ´ e um dispositivo que simplesmente pega os bits dos quadros de uma porta de entrada e retransmite ` as portas de sa´ ıda.3. ou concentrador. 5.Figura 5. permite ao receptor detectar quaisquer erros introduzidos nos bits do quadro recebido.2 Pontes Uma ponte (bridge ) ´ e um dispositivo eletrˆ onico que permite que v´ arias redes locais sejam concatenadas. carrega o datagrama IP.5: Vis˜ ao dos principais conceitos das redes locais Ethernet. sendo o MTU (maximum tranfer unit ) o quadro Ethernet 1.500 bytes.

o switch consulta a tabela de encaminhamento e estabelece uma conex˜ ao virtual entre as portas. Um switch cria uma tabela de encaminhamento aprendendo os endere¸ cos MAC dos hosts que est˜ ao conectados a cada uma de suas portas.3. selecionam a porta correta para encaminhar os quadros com base no endere¸ co f´ ısico destino do quadro e. 89 . • Manter as opera¸ c˜ oes do switch – Os switches criam e mantˆ em tabelas de encaminhamento. 5. os dois segmentos da rede local operam como se fosse uma rede u ´nica. atuando no n´ ıvel da camada 2. Pelo fato de reduzir o espa¸ co de conflitos no acesso ao meio os switches aumentam a eficiˆ encia da rede local. Diferentemente do hub. atuando portanto ao n´ ıvel da camada enlace (camada 2 do modelo OSI). Os switches de rede local geralmente substituem os hubs compartilhados e s˜ ao concebidos para trabalhar com as infra-estruturas de cabeamento j´ a existentes.quadro que chega a um segmento seja transmitida ao outro segmento. uma ponte manipula quadros completos.3 Switches Um switch (ou comutador) ´ e um dispositivo eletrˆ onico capaz de comutar o tr´ afego de uma LAN. A seguir est˜ ao duas opera¸ c˜ oes b´ asicas realizadas pelos switches: • Comutar quadros de dados – Os switches recebem quadros em uma interface. encaminham os quadros com base na escolha do caminho. Deste modo. Quando dois hosts conectados querem se comunicar. em seguida. diminuindo o espa¸ co de conflitos no acesso ao meio comum.

90 .

W. ROSS. ed. 3 ed.org. 2006. 5. New York: Assidon-Wesley. Interliga¸ c˜ ao em Redes com TCP/IP. K. Rio de Janeiro: Campus. KUROSE. Rio de Janeiro: Campus. 3 ed. RFC. 91 . L. 2006. S.org>. TANENBAUM. K. DAVIE. E. Trad. 2004. S. W. Rio de Janeiro: Elsevier.. D. 2008. W. Computer Networking: A Top-Down Approach Featuring the Internet. 2003. 4 ed. KUROSE. Redes de Computadores: Uma abordagem de sistemas. Trad. trad. STEVENS.rfc-editor. PETERSON.. R. B. J.ietf. F. 2006. L. J. Redes de Computadores. Trad. 4. S˜ ao Paulo: Addison Wesley. A. F. ROSS. Request for Comments. TCP/IP Illustrated.. USA: Addison Wesley. Dispon´ ıvel em: <www.Referˆ encias Bibliogr´ aficas COMER. Redes de Computadores e a Internet: Uma abordagem top-down. www.