Você está na página 1de 148

Redes de Computadores

Carlos Antˆnio Ruggiero o ´ Janeiro de 1995 - Ultima atualiza¸˜o: janeiro de 2008 ca

2 Copyright (c) 2003 Carlos Ant^nio Ruggiero o Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Sum´rio a
I Teoria
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7
9 10 10 10 10 10 11 11 13 14 14 15 17 17 17 17 19 20 20 21 22 22 22 23 25 25 26 26 27 28 28 29 29 31 31 31 32 33 34

1 Rede de Computadores - Hist´rico e Conceitos Gerais o 1.1 Conceitos Fundamentais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 LAN x MAN x WAN . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Rede P´blica x Rede Privada . . . . . . . . . . . . . . . . . . . . . . u 1.1.3 NOS x SO + suporte de redes . . . . . . . . . . . . . . . . . . . . . . 1.1.4 Rede de Computadores x Rede de Teleprocessamento . . . . . . . . 1.1.5 Com conex˜o (Connection oriented) x Sem conex˜o (Connectionless) a a 1.2 O Modelo de Camadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Internetworking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Padr˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.5 O Meio F´ ısico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Recursos na Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Ethernet, FDDI - A camada 2 2.1 Ethernet . . . . . . . . . . . . . . . . . . 2.1.1 Hist´rico . . . . . . . . . . . . . o 2.1.2 O Meio F´ ısico . . . . . . . . . . . 2.1.3 Funcionamento da Ethernet . . . 2.1.4 Endere¸amento . . . . . . . . . . c 2.1.5 Frame (pacote) Ethernet . . . . . 2.1.6 Uso de Repetidores (“repeaters”) 2.2 FDDI . . . . . . . . . . . . . . . . . . . 2.2.1 O meio F´ ısico . . . . . . . . . . . 2.2.2 Funcionamento . . . . . . . . . . 2.2.3 Frame do FDDI . . . . . . . . . 3 Os 3.1 3.2 3.3 3.4 . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (“bridges”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Protocolos TCP/IP e Endere¸amento IP c Introdu¸˜o . . . . . . . . . . . . . . . . . . . . ca O TCP/IP e internetworking . . . . . . . . . Roteamento . . . . . . . . . . . . . . . . . . . Endere¸amento IP . . . . . . . . . . . . . . . c 3.4.1 Classes de Endere¸os IP . . . . . . . . c 3.4.2 Endere¸os Especiais . . . . . . . . . . c 3.4.3 Problemas com o Endere¸amento IP . c 3.4.4 Atribui¸˜o de endere¸os . . . . . . . . ca c protocolos ARP e RARP. Os comandos Introdu¸˜o . . . . . . . . . . . . . . . . . . . ca O Protocolo ARP . . . . . . . . . . . . . . . O formato do pacote ARP . . . . . . . . . . O comando tcpdump . . . . . . . . . . . . . Exemplo do Funcionamento do ARP . . . . 3

4 Os 4.1 4.2 4.3 4.4 4.5

tcpdump e arp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . 9. . . . . . 7. .3 O kernel . . . . . 9. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca 10. . . . . . . . . . .2 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Time to live . . . .5 PPP . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . a . . . . . . . . . 9 FDDI. . . . . . . . . . . . . . . . .1 Comandos Hayes . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . .3 Frame do FDDI . . . . . . . . . . 9. . . . . . .3. . . . . . . . . . .3. . . . . . . . . . . . . . . . .3. . . . . . . . . . . .1 6. . . .2. . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . .2. . . . . . . . . . ca 8. . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . 6. . . . ca 5. . . . . . . . . . . . . . . . . . .2 Fragmenta¸˜o e o datagrama IP . . . . . . . . . . . . . .3 O Problema dos Erros de Transmiss˜o a 10. .1 MTU e Fragmenta¸˜o . . . . . .1 O Domain Name System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Utiliza¸˜o e Aspectos de Mercado ca 9. . . . . .2 route . . . . . 6. . . . . . . . . . . . . .1. . . . . . . . . . . . . . .2 Caracter´ ısticas do IP . . . . . . . . . . . . . . . .3. . . . . . . . . . . . .1 Introdu¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Exemplo de Datagramas IP . . . . . . . . . . . . . . . . . . . . . . 7 Interface com Sistema Operacional. . . . . . . .2 Comandos Fundamentais . . . . . . . . . . . . . . .4 SLIP . . . . . . . . . . . . 5. .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Base T 9. . . . . . . . . . . . . . . . . . . . . . .2 Funcionamento . . . . . . . . . . 34 35 37 37 37 38 40 41 41 41 42 43 45 45 45 46 47 48 49 51 51 51 51 53 55 57 58 58 59 59 61 63 64 69 69 69 70 71 71 72 72 72 73 74 75 75 75 77 78 79 5 O Datagrama IP. . e O MODEM . .4 O Campo de Protocolo e de Checagem 5. . . . . . . . . . . c co 5. . . . . . . . . . . . . . . . . . . . ca 5. . . . . . . . . . . .4 Exemplo de Redes Frame Relay . . . . .4 4. . . .2 FDDI II . . . . . . . 6. . . . .1. .5 Campos de endere¸o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FDDI II. . . . . . . . . .3 Protocolos SLIP e PPP Introdu¸˜o . . . . . . . parte . . .1 Introdu¸˜o . . e 10. . . . . . . . . . . . . . . . . 8 DNS 8. . . . . . . . . . . .1 ifconfig . .1.4 Arquivos Importantes . . . . . . . . . . . . . .3 O Datagrama IP . . . 10. . . . . . .2. . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . de Cabe¸alho c . 6 Os 6. . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O Protocolo RARP . . . . . . . 7. . . . . . . . . . . . . . . . . . . 1 . . . . . . . .1 Introdu¸˜o . . . . . 9. op¸˜es e dados . . . .3 nslookup . . .1 FDDI . . . . . . . . . . . . . . . .4 Resumo . . . .1 O Meio F´ ısico . . . . . . . . . . . . . .2 Aspectos T´cnicos: O Frame Relay . . . . . . . . . . . .5 Mecanismo de Transmiss˜o . . .1. . . . . . . . . . . . . . . . ca 9. . . . . . . .1 Introdu¸˜o . . . . . . . . . . . . . . . . . . . . . . . ca 7. . . . . . . . . . . . . . . . .3 100 Base T . . . . . . . . . . . .3 Utiliza¸˜o e Aspectos de Mercado ca 10 Introdu¸˜o ao Frame Relay ca 10.2 O DNS e o Sistema Operacional Unix 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 4. . . . . . . 7. . . . . . . . . . . . . 7. . . . . . . . . . . . . . . 9. . . . . . .3 slattach . . . . . . . . . . . . . . . . . . . .2 Caracter´ ısticas do 100 Base T . . . .1 Resolu¸˜o de nomes no DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a base da Internet 5. . . . . . . . . . . . .1. . . . . . 9. .3. . . . . . . . . . . . . . ca A Id´ia . .1. . . . . . . . . . . ca 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 ´ SUMARIO O Comando arp . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 TLI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19. 111 ca 16. . . . . . . . . . . . . . .3. . . . .8 TRANSLATION . . . . . . 11.´ SUMARIO 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 O “Frame” do Frame Relay . .1 Introdu¸˜o . . . . . . . . . . .1 Introdu¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ARP 19 GNU Free Documentation License 19. . . . .10FUTURE REVISIONS OF THIS LICENSE . . . . . . . . . . . . . . . . . . . 11. . . . . . . . . . 19. . .6 Benef´ ıcios do Frame Relay . . . . . . 113 131 141 142 143 143 144 145 146 146 146 147 147 . . . . . . . . .1. . . . . . . . . . . . . . . . ca 11. . . .2 PVC e SVC . . . . . . . . . . .2.2 ISDN . .3. . . 19. . . . . . . . . . . . . . . ca 12. . . . . . . . . . . . . . . . . . . .5 COMBINING DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . ca 11.2 As chamadas de biblioteca do 12. . . . . . . . . . 109 ca 15. . . . 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Roteiro da Pr´tica . . . . . . . . . . . . . . . . . . . . . 11 Introdu¸˜o ao ISDN e Detalhes de Opera¸˜o do Frame Relay ca ca 11. . . . . . . . .3 Frame Relay. . . . . . . . . . . . . . . . . ca 11. . . . . . . . 107 ca 14. . . . . . . . .4 CLLM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Situa¸˜o no Mercado . . . . . e 11. . . . . . . . . . . . . . . . . . . . . . . . ca 11. . . . . . . . . . .1 APPLICABILITY AND DEFINITIONS . Transport Layer Interface 12. . . . . . . . . . . . . . . . . . . . . . . .6 COLLECTIONS OF DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Introdu¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 MODIFICATIONS . . . . 19. 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . 11. . . . . . . . .3 Exemplo .2 Roteiro da Pr´tica .1 Transport Layer Interface (TLI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Roteiro da Pr´tica . . . . . . . 19. . . . . . . . . . . . . . . . . . . . . . 111 a 17 RFC0792 ICMP 18 RFC0826 . . . . . . . . . . 105 ca 13. . .9 TERMINATION . . 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 a 16 Pr´tica 4 a 111 16. . . .1 Introdu¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Introdu¸˜o .3. . . . . . . . . . 5 81 83 83 84 84 86 86 86 86 87 89 89 91 91 91 92 94 II Pr´tica a 103 13 Pr´tica 1 a 105 13. . . . . . . . . .3. . . . . . . . . . . . . . . . . . .1 Introdu¸˜o . 19. . .2. . . . . . . . . . . . . . . . . . . . . . TLI . . .1 Introdu¸˜o e Generalidades . . . . .1 Caracter´ ısticas T´cnicas . . .2 VERBATIM COPYING . . . . . . 105 a 14 Pr´tica 2 a 107 14. . . . . . . . . . . . . . . . . Detalhes de Opera¸˜o . 107 a 15 Pr´tica 3 a 109 15. . .7 AGGREGATION WITH INDEPENDENT WORKS 19. . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 COPYING IN QUANTITY . . . . . . . . . . . . . . .5 Estabelecimento de SVC . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Roteiro da Pr´tica . . . . . . . . . . .

6 ´ SUMARIO .

Parte I Teoria 7 .

.

etc. significa Defense Advanced Research Projects Agency do Departamento de Defesa americano). A ARPANET e se transformaria em Internet no in´ ıcio da d´cada de 80 quando os antigos protocolos foram e gradativamente substitu´ ıdos pelo TCP/IP. financiada pela IBM mas fundamentalmente acadˆmica. Enquanto isso. a Telenet.25. Para maiores detalhes ver gopher://gopher. Surgiu tamb´m o conjunto de protocolos X. o Departamento de Defesa americano resolveu financiar a pesquisa e na ´rea para viabilizar uma rede de computadores distribu´ pelo territ´rio americano que cona ıda o seguisse se manter operacional mesmo quando de um ataque sovi´tico. A explos˜o das redes ocorreu na d´cada de 80 principalmente depois que a National a e Science Foundation (NSF) resolveu financiar uma grande espinha dorsal interconectando os EUA. Ao mesmo tempo a ARPANET evolu´ em n´mero de conex˜es e em protocolos sendo ıa u o que os protocolos TCP/IP. Nessa ´poca. a CSNet.Cap´ ıtulo 1 Rede de Computadores Hist´rico e Conceitos Gerais o Pode-se considerar que o interesse pelas redes de computadores surgiu na d´cada de 60 nos Ese tados Unidos. surgiriam no final da d´cada de 70. a e a DECNET. um dispositivo especial era usado para a liga¸˜o: o chamado IMP (Interface a ca Message Processor) fabricado pela Honeywell. 9 . Tamb´m na d´cada de 70 surgiram os protocolos ISO/OSI e o famoso modelo das e e sete camadas. a Internet se torna internacional com conex˜es para a Europa e Am´rica e e o e do Sul.25 oferecido para a popula¸˜o em ca c u ca geral. Tamb´m por essa ´poca. hoje DARPA. O surgimento dos microcomputadores na d´cada de 80 tamb´m estimulou muito a e e difus˜o das redes. muitas redes surgiram tanto academicamente quanto comercialmente. um padr˜o de redes desenvolvido pela Digital Equipament Corporation. na ARPANET o e conceito de Internetworking se tornava cada vez mais claro e importante.org:70/00/internet/history/. um servi¸o p´blico X. O financiamento acabou e resultando em 1969 numa conex˜o entre quatro pontos nos EUA: UCLA. Na d´cada de 70. Surgem v´rios protocolos espec´ a a ıficos para microcomputadores tais como o Novell Netware. Lantastic. Banyan Vines entre outros.isoc. e Exemplos importantes s˜o a BITNET. Stanford Reasearch a Institute (SRI). UC em Santa Barbara (UCSB) e Universidade de Utah em Salt Lake City. a para o pessoal de computa¸˜o. Nessa conex˜o. Essa rede ganhou o nome de ARPANET (ARPA. hoje utilizados.

etc. come¸aram a surgir o co c sistemas operacionais voltados especificamente a servi¸os de redes. .1 Conceitos Fundamentais LAN x MAN x WAN Um dos principais conceitos de redes de computadores diz respeito ` extens˜o geogr´fica coberta a a a pela rede. as “Metropolitan Area Networks” (MANs) que ´ cobrem uma ´rea equivalente a uma cidade com desempenho compar´vel `s LANs. em inglˆs. Exemplos de rede p´blica s˜o a Internet mundial. Redes restritas a um pr´dio ou a um campus com distˆncias n˜o superiores a 2 km e a a s˜o chamadas de redes locais ou. Exemplos u a de rede privada s˜o as redes da IBM (VNET).3 NOS x SO + suporte de redes Logo ap´s ao surgimento do PC e devido a limita¸˜es do sistema DOS. a RENPAC no Brasil. No caso brasileiro ´ comum referir-se a e um sistema com um computador e muitos terminais conectados (principalmente remotamente) como uma “rede de computadores”. o 1. na d´cada de 90. REDE DE COMPUTADORES . Apesar de a arquitetura descrita ser util e barata em certa ´ situa¸˜es.1. onde qualquer pessoa. com o grande apoio dado pelo vice-presidente americano e Al Gore.1. u mediante pagamento. ou. Nesse caso adotamos nesse curso a express˜o rede de teleprocessamento para designar a tal arquitetura. estas podem ser p´blicas. LANs s˜o a e a capazes de grande larguras de banda de transmiss˜o com baixo custo enquanto as taxas de a transmiss˜o em WANs s˜o consideravelmente mais baixas.10 ´ CAP´ ITULO 1. Em m´quinas maiores. Banyan Vines e de SO com suporte de redes. a e e a filosofia de redes foi incorporada ao sistema operacional “a posteriore”. o Unix em suas v´rias a vers˜es (flavors).1 1. “Local Area Network” (LAN). em inglˆs. o 1. ou privada que pertence a um grupo econˆmico o privado.2 Rede P´ blica x Rede Privada u Quanto ao controle e gerenciamento das redes. a a a 1. em estados diferentes ou mesmo em diferentes pa´ ıses s˜o a chamadas de redes de longa distˆncia. etc. “Wide Area Network” (WAN).4 Rede de Computadores x Rede de Teleprocessamento Devido ao fato de a express˜o “rede de computadores” ser usada em muitos contextos diferentes a seu real significado pode ser facilmente confundido. Numa faixa intermedi´ria. da DEC (Easynet).HISTORICO E CONCEITOS GERAIS Finalmente. o Lantastic. surgiu nos a a a ultimos anos o conceito de redes metropolitanas. Exemplos de NOS s˜o o a Novell Netware. ela claramente n˜o ´ uma rede de computadores j´ que somente um computador est´ co a e a a envolvido. pode fazer parte da rede.1. o VMS da digital etc. Redes que incluem a e computadores em cidades diferentes. a 1.1. a Internet se popularizou crescendo fantasticamente nos cinco primeiros anos da d´cada e e praticamente virando sinˆnimo da “Information Highway”. Esses sistemas receberam c o nome gen´rico de NOS do inglˆs “Network Operating Systems”.

A id´ia ´ simplificar o o e e e projeto de redes construindo-se um conjunto de protocolos onde cada um se ap´ia no protoloco o de n´ mais baixo. ca . quantos “fios” devem ser usados para a comunica¸˜o. a e o • Sem conex˜o: aqui. Fatores importantes na defini¸˜o de protocolos dessa camada s˜o quantos volts deca a vem ser utilizados na defini¸˜o dos n´ ca ıveis l´gicos. etc. E comum tamb´m implementar controle de fluxo nessa camada. A fun¸˜o fundamental dessa camada ´ rotear ıvel ca e os frames ou pacotes corretamente entre os v´rios computadores de tal forma a estabelecer a uma conex˜o eficaz entre o computador origem e o destino.2. Nesse n´ ´ que ocorre realmente a comunica¸˜o de ıvel e ca dados entre os computadores.1. usado na RENPAC e em outras redes p´blicas de pacote ao redor do mundo. 3. quais sejam: 1. Esse conjunto de dados ´ e normalmente chamado de “frame” e tem tamanho t´ ıpico de algumas centenas de bytes. N´ 1: n´ f´ ıvel ıvel ısico (Physical Layer). Exemplos de e protocolos dessa camada (pelo menos. N´ 3: a camada de rede (Network Layer). a etc. mecanismos elaborados para garantir a corre¸˜o de erro s˜o adotados nessa ca a ´ camada. Uma grande vantagem do sistema de camadas ´ que ´ poss´ trocar-se a ıvel e e ıvel implementa¸˜o de uma das camadas sem que as outras sejam modificadas. Em alguns casos. os dados s˜o transmitidos atrav´s de rotas sem que a parte que envia a a e saiba exatamente se. mesmo passando por uma a grande s´rie de computadores intermedi´rios. O MODELO DE CAMADAS 11 1. ca O modelo ISO/OSI apresenta sete camadas (figura 1.1).5 Com conex˜o (Connection oriented) x Sem conex˜o (Connectia a onless) Existem duas formas fundamentais de se trocar dados entre duas entidades: • Com conex˜o: nessa forma. etc.25. como e quando a outra parte receber´ o que foi transmitido. Aqui. o Token Ring. fibras ´ticas. estabelece-se um canal entre elas de tal forma que os dados a serem transmitidos passem por esse canal. par tran¸ado. comunica¸˜o via a c o ca sat´lite. A fun¸˜o dessa camada ´ transmitir bits de um computador ca e a outro. Pode ser importante determinar o caminho e a melhor (mais barato ou mais curto) entre dois computadores e essa ´ tamb´m uma tarefa e e para a camada de rede. a ca Exemplos de meios f´ ısicos s˜o: cabo coaxial. ca 1. A a analogia aqui ´ com o servi¸o postal (correios). quantos n´ o ıveis l´gicos devem ser poss´ o ıveis em cada instante de transmiss˜o. e 2. a a ou seja. aproximadamente!) s˜o o Ethernet. a camada de rede receber´ u a a uma aten¸˜o especial nesse curso. Exemplos importantes de protocolos dessa camada s˜o o IP a (Internet Protocol) usado na Internet e o X. a obriga¸˜o ´ empacotar um conıvel ca e junto de dados e transmiti-los sem erros ao outro computador.2 O Modelo de Camadas O modelo de camadas surgiu com as sugest˜es ISO/OSI da d´cada de 70. N´ 2: a camada de dados (Data Link Layer). Por sua importˆncia. estabelece-se uma conex˜o entre as duas partes interessadas. O exemplo cl´ssico aqui ´ o sistema telefˆnico. e c A diferencia¸˜o entre os dois m´todos de troca de informa¸˜es ´ de fundamental importˆncia no ca e co e a entendimento de protocolos de comunica¸˜o de dados.1.

HISTORICO E CONCEITOS GERAIS Computador 1 Protocolo nivel 7 Nivel 7 Protocolo nivel 6 Nivel 6 Protocolo nivel 5 Nivel 5 Protocolo nivel 4 Nivel 4 Protocolo nivel 3 Nivel 3 Protocolo nivel 2 Nivel 2 Protocolo nivel 1 Nivel 1 Nivel <=> Camada Computador 2 Nivel 7 Nivel 6 Nivel 5 Nivel 4 Nivel 3 Nivel 2 Nivel 1 Figura 1. REDE DE COMPUTADORES .1: O modelo de camadas ISO/OSI .12 ´ CAP´ ITULO 1.

a a ´ ´ 6. E importante que a conex˜o de c a um processo n˜o interfira nas outras conex˜es. N´ 5: camada de sess˜o (Session Layer) e n´ 6. que. mais precisamente. Como em geral esta a co camada n˜o ´ implementada. No computador destino. ıvel ca Essa camada ´ onde s˜o implementados os protocolos dos aplicativos que far˜o uso da rede. outras para cobrirem a a . cada ca camada retira o seu cabe¸alho e passa o pacote (menor) para as camadas superiores. pode-se dizer que a maior contribui¸˜o da ARPANET. a camada anexa uma informa¸˜o extra ao final do pacote. etc. agora maior. Logicamente. o modelo de camadas pode ser considerado a maior contribui¸˜o do ISO/OSI. em sistemas multiusu´rios. E a ultima camada da “pilha” ISO/OSI. correio eletrˆnico (ee o mail. a camada de transporte ´ a primeira da camadas conhecidas e como fim-a-fim ou “end-to-end”. N´ ıvel 4: a camada de transporte (Transport Layer). A camada f´ ısica de um computador passa ent˜o a informa¸˜o para a camada f´ a ca ısica do outro computador e a informa¸˜o ca a´ viaja em sentido inverso “subindo” as camadas at´ chegar ` camada n onde os dados s˜o ı e a a interpretados. Considere o caso da queda de conex˜o entre dois computadores que trocavam ca a dados entre si. quando do reestabelecimento da conex˜o. Exemplos de protocolos dessa camada s˜o o Telnet.3 Internetworking Conceitualmente. Fisicamente por´m. cada camada coloca um cabe¸alho seu no pacote que c ´ recebido “de cima” e passa o novo pacote. os computadores devem recome¸ar a e c a troca de dados desde o in´ ıcio. e ela passa seus dados para a camada n-1 no pr´prio computador. N˜o se deve esquecer a por´m. ca Da mesma forma. Outra fun¸˜o dessa camada ´ quebrar uma longa cadeia ca e de dados a ser transmitida em v´rias subunidades menores que possam ser tratadas pelos a n´ ıveis mais baixos e garantir que essas subunidades cheguem ao destino corretamente e na ordem esperada. A camada de apresenta¸˜o tem como objetivo a convers˜o ca a de dados a serem trocados para uma forma que ambos os computadores entendam. continuarem do ponto onde estavam na troca de informa¸˜es. A id´ia ´ conectar as in´meras redes de computadores ao redor do mundo de tal forma e e u ´ que elas se comportam como uma grande rede de computadores. INTERNETWORKING 13 4. Essas duas camadas est˜o no modelo ISO/OSI mas n˜o s˜o muito divulgadas a a a e implementadas na maioria de redes existentes. que por sua vez passa para a o camada n-2 e assim por diante at´ a informa¸˜o chegar ao n´ f´ e ca ıvel ısico. e a a Exemplos de aplicativos incluem a transferˆncia virtual de terminal. transferˆncia de arquivos. a camada n de um computador fala diretamente com a camada n do outro. Em alguns e casos. e a FTP. um dos computadores pode usar o ASCII para a representa¸˜o de caracteres ca enquanto outro usa o EBCDIC. Uma fun¸˜o da camada de sess˜o ´ a ca a e sincroniza¸˜o. No computador origem. umas s˜o a projetadas para serem muito r´pidas. As camadas anteriores (e de n´ ıvel mais baixo) se preocupam em transmitir dados entre computadores.1.3. Essa ´ uma das fun¸˜es da camada de a o e co transporte. 5. Por esse motivo. ´ E importante entender-se o correto funcionamento do modelo de camadas. camada de apresenta¸˜o (Presentation ıvel a ıvel ca Layer). E importante notar que as v´rias redes a serem interconectadas possuem tecnologias bastante d´ a ıspares. quando ocorre o descrito. processos) e a a ´ podem utilizar os servi¸os de rede simultaneamente. v´rias pessoas (ou. Outras fun¸˜es importantes da camada de apresenta¸˜o co ca s˜o a compress˜o de dados e a criptografia. FTAM. etc. Internet e dos protocolos ca TCP/IP foi o conceito de Internetworking. para a camada inferior. Os computadores deveriam ser capazes de. VTAM. outras para serem bastante confi´veis. N´ 7: camada de aplica¸˜o (Application Layer). c 1. de fato. SMTP. Por exemplo.

toda a malha telefˆnica esteja substitu´ por fibras ´ticas. com grande influˆncia no meru a e cado. o Netware da Novell. ent˜o ´ poss´ fazer A se comunicar com C. Os protocolos da ARPANET foram projetados desde o ´ a a ınicio com isso em mente e a existˆncia da Internet no mundo atual ´ prova definitiva do sucesso da e e estrat´gia. DIN. um ´ o cabo coaxial de 50 a e ohms usado no Ethernet (conhecido como “baseband”) e o outro ´ o cabo coaxial usado e em TV a cabo.14 ´ CAP´ ITULO 1. a manipula¸˜o e o ıda o e ca instala¸˜o de fibras ´ticas devem ser feitas com cuidado. o NFS sugerido pela Sun a Microsystems. ´ encontrado e o e praticamente no mundo todo. Nos EUA acredita-se que por volta de 2050. ca ıses a A Internet Architecture Board ´ composta por uma mesa diretora (board) e duas e grandes ´reas: a Internet Research Task Force (IRTF) e a IETF (Internet Engineering Task a Force). Apresenta enorme largura e a de banda com custo menor do que o “cobre”.5 O Meio F´ ısico A primeira camada do modelo ISO/OSI trata do meio f´ ısico que realmente transmite os bits de um computador a outro. c ´ 3. Exemplos s˜o a ANSI. Fibra Otica: ´ aparentemente o meio de transmiss˜o do futuro. etc. se o computador A se comunica com o computador B. Exemplos s˜o a Ethernet. devido a enorme e abrangente rede telefˆnica. etc.4 Padr˜es o Os padr˜es em redes de computadores podem surgir de duas formas diferentes: o • Organiza¸˜es espec´ co ıficas para padroniza¸˜es: Nesse caso incluem-se os protocolos co sugeridos pela ISO. apresenta baixa largura de banda e mas tamb´m baixo custo e. podem criar protocolos que acabam sendo aceitos pela comunidade como um todo. de 75 ohms (conhecido como “broadband”). . sugerida pela Xerox. Por´m. Fios. • Ind´ strias importantes na ´rea: Algumas empresas. Intel e Digital. ´ talvez o meio f´ c a e ısico mais comum. Cabo Coaxial: Dois tipos de cabos s˜o usados em redes. 2. etc. pois as fibras ´ticas rompem-se ca o o facilmente. REDE DE COMPUTADORES . a e ıvel 1. Muitas vezes chamado pelo nome gen´rico de “cobre”. Apresenta largura de banda bem melhor do que o par tran¸ado mas tem custo mais alto. 1. Os meios f´ ısicos mais usados em redes de computadores s˜o: a 1. A International Standards Organization (ISO) ´ composta por organiza¸˜es encarregadas de e co padroniza¸˜o dos 89 pa´ membros.HISTORICO E CONCEITOS GERAIS uma grande ´rea geogr´fica. e o computador B se comunica com o computador C. pela Internet Architecture Board (IAB). etc. e O conceito do Internetworking lembra a propriedade da transitividade na matem´tica: a assim. ou Par Tran¸ado: nas suas v´rias formas. o IEEE.

e a o • Para entender a distin¸˜o entre LAN.ietf.4 GB cada. No site do IETF (Internet Engineering Task Force). O problema ´ que exigem e a a e visada direta o que limita a distˆncia entre as duas antenas a menos de 50 km. Apesar de apresentar uma latˆncia muito a e e grande (o tempo do caminh˜o levar os dados de um local para o outro!) a largura de banda a ´ extremamente elevada. satelite vs. a microwave” no grupo alt.net/ftp/doc/nethist. . • Veja a discuss˜o “OSI 7 layer model” no grupo bit. veja http://www.WAN & MAN” no grupo comp. veja a discuss˜o “Re: SUBJECT: Fiber Versus ca a Copper” no grupo comp. e http://www.ms-windows. Nenhum meio f´ ca ısico (a n˜o ser a fibra ´tica) tem uma a o largura de banda t˜o grande.6 Recursos na Internet Para saber mais. a o • Tamb´m referente ` hist´ria da Internet. MAN e WAN. De fato. n˜o se pode desprezar a largura de banda de um e a caminh˜o trafegando cheio de fitas magn´ticas. ´ poss´ e ıvel encontrar a rela¸˜o de RFCs. 5.zakon.html.listserv. de S˜o Paulo ao Rio de Janeiro: o caminh˜o tem capacidade a a para levar dezenas de milhares de m´ ıdias o que corresponde a dezenas de terabytes de informa¸˜o sendo transferidas.nt. Outros a tipos de liga¸˜es com visada direta est˜o sendo pesquisados como a liga¸˜o ´tica.org.org/robert/internet/timeline traz os eventos mais importantes relacionados ` Internet em ordem cronol´gica. A largura de banda ´ moderada mas pesquisas est˜o sendo e a efetuadas para minimizar esse problema.misc. pode ser vista em “submarine fiber vs. Devem co a ca o ser inclu´ ıdos neste ´ ıtem.dcom.admin.novell a • O site da ISO ´ http://www.com. Comunica¸˜o via Sat´lite: a principal vantagem aqui ´ a rapidez de instala¸˜o e a ca e e ca alta confiabilidade do sistema.ethernet em http://groups. acesse os seguintes sites: • http://www. bem como fazer download ca deles. • Outra discuss˜o interessante.6. RECURSOS NA INTERNET 15 4. a c Tamb´m s˜o muito usados em circuitos repetidores de televis˜o. imagine-se um caminh˜o transportando DVDs.org.ocean. Meio Magn´tico: Segundo Tanenbaum.google.dcom. com e a capacidade de 9. • Para uma compara¸˜o entre fibra e cobre. de 2001.os.ic.lans.1.telecom. veja a discuss˜o de 1994 sobre “How to ca a distinguish LAN. a comunica¸˜o via celulares e dispositivos sem fio (“Wireless”) ca 6.iso. Enlaces de Microondas: s˜o bastante utilizados em telefonia para prover o servi¸o DDD. a 1.

HISTORICO E CONCEITOS GERAIS . REDE DE COMPUTADORES .16 ´ CAP´ ITULO 1.

A impedˆncia do cabo ´ 50 ohms. O principal.1. por sua vez. ele n˜o ´ o mais a a e comum. 2. O comprimento total do cabo n˜o ca a a pode ultrapassar 500m. o “frame”.1 mostra o cabo coaxial. Nas se¸˜es a seguir. FDDI .3 ´ talvez o MAC (“Medium Access a u e Sublayer”) mais usado no mundo todo. uso de repetidores e bridges. etc.1 Ethernet O protocolo Ethernet. A sa´ da placa de interface ıda do computador ´ chamada de sa´ AUI. pelo menos sob a o aspecto do padr˜o ´ o assim chamado cabo coaxial grosso. dif´ e e a e ıcil de instalar por n˜o dobrar facilmente e problem´tico quando se tem que mudar a topologia da a a 17 .2. a Intel e a Digital (DEC) concordaram em promover a tecnologia e criaram um padr˜o em 1978. A arquitetura de uma rede Ethernet com cabo coaxial e ıda grosso pode ser vista na figura 2.Cap´ ıtulo 2 Ethernet. Posterie ormente. A figura 2. O cabo que liga o computador ao transceiver ´ chamado e de “AUI cable” onde AUI significa “Attachment Unit Interface”. Esse cabo ´ composto por um a e e fio central envolvido por uma camada de polietileno que. O problema ´ que ele tende a ser caro (o transceiver tamb´m n˜o ´ barato). co 2. Apesar do cabo coaxial grosso ser o primeiro padr˜o para Ethernet. a e A conex˜o com o computador ´ feita atrav´s de um “transceiver” ou “tap” que se a e e conecta com o cabo e fica a ele preso.1.A camada 2 2.3 com pequenas a a u modifica¸˜es. estudaremos as caracter´ co ısticas b´sicas a desse protocolo tais como o meio f´ ısico utilizado. est´ envolvida por uma a prote¸˜o met´lica coberta por um material isolante externo.1 Hist´rico o O MAC Ethernet surgiu na d´cada de 70 em trabalhos efetuados na Xerox (PARC). a Xerox.2 O Meio F´ ısico V´rios meios f´ a ısicos s˜o utilizados para levar os frames Ethernet. Esse padr˜o seria adotado pelo IEEE sob o n´mero 802. hoje um padr˜o IEEE sob n´mero 802.

2: Arquitetura da Ethernet.A CAMADA 2 Camada isolante externa Protecao Metalica Fio Central Figura 2. FDDI .1: O cabo coaxial usado para Ethernet Computador 1 Computador 2 Figura 2. cabo grosso .18 CAP´ ITULO 2. ETHERNET.

Redes persistentes s˜o aquelas onde. e a Al´m das duas formas de Ethernet j´ discutidas. De fato. cada computador s´ captura os pacotes que o lhe s˜o especificamente destinados. a pr´pria cabea¸˜o telefˆnica pode ser a o ca o usada. todos os computadores est˜o “ouvindo” todos os a pacotes que transitam apesar de que. cabo fino Note que o cabo agora. a presen¸a de um “hub” para a conex˜o e c a dos computadores ` rede. De fato. Redes onde. ´ de 185 metros. distinguem-se duas variedades: as persistentes e as n˜o persistentes. normalmente. e a e n˜o ´ necess´rio o transceiver e ´ f´cil modificar a topologia da rede quando necess´rio. A sigla utilizada para designar essas redes ´ o e CSMA (“Carrier Sense Multiple Access”).1. a e “carrier sense networks”. ele tenta transmitir. Nessas redes.4. o computador espera um tempo aleat´rio depois de verificar que o ca o . foram criadas outras duas: uma e a baseada em fibra ´tica. o custo ´ muito menor j´ que o cabo ´ mais barato. O 10BaseT exige por´m. a Redes Ethernet pertencem ` classe das redes ditas sensoras de portadora ou. e uma com par tran¸ado (do inglˆs. se este estiver ocupado ele fica aguardando e verificando o canal continuamente e t˜o logo o canal desocupe. Nesse caso. do inglˆs. como thinwire) e flex´ e ıvel. a 2. Em ambas as extremidades da rede ´ necess´rio um terminador de 50Ω. o 10BaseT isola cada m´quina das outras de forma que uma desconex˜o n˜o e a a a prejudica o restante da rede. A grande vantagem do 10BaseT ´ que os custos de cabea¸˜o e ca s˜o ainda mais baratos sendo que. sendo mais flex´ ıvel.2. cada computador observa se o meio f´ ısico est´ sendo a utilizado e s´ tenta transmitir em caso negativo. a e a ca e A Ethernet com cabo grosso ´ chamada de 10base5 e a outra. ele sente o canal.1. ETHERNET 19 rede. Os dois a e a e a a principais problemas da “cheapernet” s˜o: menor tolerˆncia a ru´ eletromagn´tico e menores a a ıdo e distˆncias cobertas. vai at´ a interface do computador e se e conecta a ela atrav´s de um “T” que ´ um conector com trˆs sa´ e e e ıdas do tipo BNC.3 Funcionamento da Ethernet Uma rede Ethernet ´ composta por um meio f´ e ısico (como j´ explicado anteriormente) que cara rega os frames a uma velocidade de at´ 10 Mbps (dez megabits por segundo) para todos os e computadores da rede (barramento). se um computador a a pretende transmitir algo. em alguns casos. conhecida por 10BaseF. a na mesma situa¸˜o anterior. “twisted o c e pair”) com o nome de 10BaseT. Dentre as redes CSMA. Tamb´m. 10base2. sem repeti¸˜o. Criou-se ent˜o a “cheapernet” que ´ a Ethernet em cabo coaxial mais fino (conhecido. em a e inglˆs.3 mostra a e topologia de uma conex˜o “cheapernet”. o cabo coaxial mais fino n˜o pode ser colocado nas proximidades de a a m´quinas el´tricas potentes e o comprimento m´ximo da rede. A arquitetura da rede pode ser vista na figura 2. A figura 2. a Computador 1 Computador 2 Figura 2.3: Arquitetura da Ethernet.

´ esperado o dobro do tempo inicial e assim por diante. o tipo de pacote transmitido.1. um campo para checagem de integridade de dados (CRC) e um preˆmbulo para sincroniza¸˜o. 2. assim.5 Frame (pacote) Ethernet O pacote Ethernet tem um tamanho m´ ınimo de 64 bytes e. m´ximo de 1518 bytes. O Ethernet ´ ent˜o CSMA/CD a e e a (“Carrier Sense Multiple Access / Collision Detect). o c ca comprimento em bytes do campo de dados.4: Arquitetura da Ethernet com par tran¸ado c canal est´ ocupado antes de verificar novamente s˜o chamadas de n˜o persistentes. ETHERNET.4 Endere¸amento c No Ethernet. e a Colis˜es ocorrem no barramento Ethernet porque o sinal el´trico demora para percorrer o barrao e mento e. Quando ´ detetada uma colis˜o.20 CAP´ ITULO 2. normalmente representados por uma sequˆncia de seis bytes representados em hexadecimal e e separados por dois pontos. cada interface tem um endere¸o unico e invari´vel. duas ou mais esta¸˜es podem come¸ar a transmitir pensando que o barramento co c est´ livre. uma interface Ethernet tem o endere¸o: c 00 : 80 : 48 : 84 : 8C : 82 2. e Al´m de ser CSMA persistente. O endere¸o ´ formado por 48 c c e bits.A CAMADA 2 HUB Par Trancado Computador 1 Computador 2 Computador n Figura 2.5 mostra o formato do pacote IEEE 802. Se ocorrer novamente uma a o colis˜o. as esta¸˜es transmissoras param imediatamente com a e a co a transmiss˜o e esperam um tempo aleat´rio para tentar novamente. a ca A figura 2.1. FDDI . Esse endere¸o ´ atribu´ ` inc ´ a c e ıdo a terface pelo fabricante que compra conjuntos de endere¸os do IEEE. O formato do Ethernet original ´ ligeiramente diferente com o comprimento de dados substitu´ pelo tipo do pacote (no IEEE e ıdo . o Ethernet tem a possibilidade de detetar uma colis˜o. O pacote a identifica os endere¸os da esta¸˜o transmissora e da receptora. O Ethernet a a a ´ um protocolo persistente. Por exemplo.3.

a Ao contr´rio de repetidores. o pacote ´ de “broadcast” e todas as esta¸˜es na rede c e e co recebem o pacote. etc. ETHERNET Delimitador de frame 21 Preambulo End. o pacote IP tem tipo 0x0800. co e O campo de Checksum ´ utilizado para se saber se o envio dos dados foi efetuado sem e erro.5: Pacote Ethernet (IEEE 802. v´rios tipos de pacotes existem: por exemplo. as bridges acabam aumentando a largura de banda efetiva de transmiss˜o por a ´ isolar os v´rios segmentos a ela conectados. Se o campo ca de endere¸o destino cont´m somente uns.2.6 Uso de Repetidores (“repeaters”) e Pontes (“bridges”) Para se ampliar o alcance de redes Ethernet. O primeiro bit do campo destino ser 1 define uma transmiss˜o para um grupo a de esta¸˜es o que ´ conhecido como “multicast”. Um tipo especial de bridge (atualmente o tipo mais comum) ´ a e “learning bridge” que aprende os endere¸os das interfaces que est˜o conectadas a cada um dos c a barramentos e s´ passa os pacotes de um segmento para outro se realmente houver a necessidade o disso. e a Pontes com mais de 2 portas s˜o chamadas de chaves ou switches. Na verdade.1. Na verdade. Novell e IP) trafeguem pacotes simultaneamente no barramento. que do ponto de vista a e dos protocolos de n´ superior (por exemplo.1. o tipo est´ dentro do campo de dados). pode-se usar de repetidores ou bridges.3). TCP/IP). o a isolando colis˜es. O tipo do pacote (dois bytes) ´ muito importante pois permite que redes diferentes (por e exemplo. 802. a . mesmo dentro do TCP/IP.3. E importante notar por´m. Destino End origem Comp Dados Dados Pad Checksum 7 bytes 1 byte 6 bytes 6 bytes 2 bytes 0-1500 bytes 0-46 bytes 4 bytes Figura 2. isso acaba sendo mais uma vantagem desses dispositivos j´ que eles n˜o a a precisam ser “configurados” como ´ o caso dos roteadores que ser˜o vistos posteriormente. O preˆmbulo ´ composto por 7 bytes com 10101010 a a e que produzem uma onda quadrada de 10 MHz para a sincroniza¸˜o do receptor. Assim.5 km. ru´ o ıdos. Repetidores simplesmente refor¸am o sinal e s˜o dispositivos aplicados no n´ f´ c a ıvel ısico da rede. a o pedido ou resposta ARP tem tipo 0x0806 e o pedido ou resposta RARP tem tipo 0x8035 2. N˜o ´ poss´ a e ıvel mais do que 4 repetidores entre dois quaisquer transceivers resultando em um comprimento m´ximo de 2. uma Ethernet com repetidores e bridges ıvel ´ equivalente a uma sem esses componentes j´ que eles s˜o totalmente transparentes para os n´ e a a ıveis superiores. bridges agem na camada de dados da rede o que vale dizer a que elas interpretam os pacotes Ethernet e s´ passam para o outro segmento pacotes v´lidos.

FDDI vem de Fiber Distributed Data Interconnect. Depois da transmiss˜o de um a e o a pacote. Note que. Atualmente. ETHERNET. A topologia do FDDI com seus dois e e co an´is pode ser vista na figura 2. 2. . em e a o ca caso contr´rio. ela mant´m uma c´pia do pacote e o retransmite.2. a esta¸˜o n˜o passa para frente os pacotes que ca a estejam vindo pelo anel.2 FDDI FDDI ´ a sigla utilizada para definir uma rede de alta velocidade em fibra ´tica que se utiliza e o de uma topologia em anel. existe uma ficha (“token”) que constantemente circula o anel. FDDI .2 Funcionamento No FDDI. Quando uma esta¸˜o ca quer transmitir.22 CAP´ ITULO 2.6.1 O meio F´ ısico O FDDI trabalha numa velocidade de 100 Mbps sobre fibra ´tica. enquanto tem a ficha. ela passa o pacote para a pr´xima esta¸˜o. a A topologia do FDDI ´ em anel com redundˆncia de tal forma que a rede continua em e a funcionamento em certos casos de falha de computadores ou mesmo da conex˜o da fibra. Se o pacote n˜o for seu. ıdo ca o custo de fibras j´ ´ menor do que o de cobre o que leva ` previs˜o de que num futuro pr´ximo ae a a o o meio fibra ser´ o mais comum para redes de computadores. a esta¸˜o transmissora passa a ficha circulante e assim concede a outras esta¸˜es o direito ca co de transmitir.6: FDDI com 8 computadores conectados 2.A CAMADA 2 2. e 1 2 3 8 4 7 6 5 Figura 2.2. ela “captura a ficha” e faz a sua transmiss˜o. Toda esta¸˜o sempre pega o pacote a ca e verifica se ´ para ela. O anel a FDDI pode ter at´ 100 km de fibra e at´ 1000 esta¸˜es. Fibras ´ticas s˜o mais tolerano o a tes a ru´ que cabos de cobre e permitem velocidades de comunica¸˜o bem maiores.

2.2. FDDI

23

Quando um dos computadores falha, os outros percebem e, automaticamente, desconectam o computador quebrado da rede. Na figura 2.7 vemos a mesma topologia FDDI j´ a apresentada depois de uma falha no computador 4.

1

2

3

8

7

6

5

Figura 2.7: FDDI com falha em um computador

2.2.3

Frame do FDDI

O FDDI apresenta um pacote consideravelmente maior que o da Ethernet. Ele pode chegar a at´ 4500 bytes. O tamanho dos campos de um pacote FDDI ´ medido em “s´ e e ımbolos” de 4 bits cada um. Assim como o pacote Ethernet, ele leva o endere¸o destino e origem da trasmiss˜o. O c a endere¸o FDDI pode ser de 4 ou 12 s´ c ımbolos. Uma diferen¸a importante entre o pacote FDDI c e o Ethernet ´ que o primeiro cont´m informa¸˜o de roteamento (at´ 60 s´ e e ca e ımbolos) que facilitam a interconex˜o de mais de um anel FDDI. O campo de roteamento permite que uma esta¸˜o a ca especifique que um pacote deve primeiro ir para um determinado ponto para depois seguir para uma esta¸˜o destino num outro anel. ca

24

CAP´ ITULO 2. ETHERNET, FDDI - A CAMADA 2

Cap´ ıtulo 3

Os Protocolos TCP/IP e Endere¸amento IP c
3.1 Introdu¸˜o ca

O conjunto de protocolos da Internet ficou conhecido pelos seus dois componentes mais famosos: o Internet Protocol, ou IP e o Transmission Control Protocol ou TCP. Al´m deles, v´rios outros e a existem na mesma fam´ ılia: o Network File System (NFS), o User Datagram Protocol (UDP), o File Transfer Protocol (FTP), o Simple Mail Transfer Protocol (SMTP), o Simple Network Management Protocol (SNMP), o Internet Control Message Protocol (ICMP), o Internet Group Management Protocol (IGMP), o Bootstrap Protocol (BOOTP), o Address Resolution Protocol (ARP), o Dynamic Host Configuration Protocol (DHCP) e o telnet, originalmente Virtual Terminal Protocol (vtp). A figura 3.1 mostra os protocolos TCP/IP segundo o paradigma das camadas ISO/OSI.

Telnet, SMTP, SNMP, NFS, FTP TCP, UDP ICMP, IP, IGMP ARP, Interface
Figura 3.1: Os protocolos TCP/IP 25

7 4 3 2

dever-se-´ modificar o aplicativo. e e a 3. ´ problem´tica pois cada vez que se modificar o hardware da ca e e a rede. O fundamental e ´ da filosofia “internetworking” ´ que exista uma rede l´gica universal cobrindo todo o planeta. o protocolo respons´vel por isso ´ o IP. Esse computador intermedi´rio a ´ chamado.2: Um roteador ligando 3 redes . a e Nesse esquema. as diferen¸as entre redes seriam escondidas pelo aplicativo e ter´ c ıamos uma rede universal. caso contr´rio. mas que saiba para onde mandar os dados de tal forma que esses cheguem ao destino (ou. Rede 2 Rede 1 Roteador Rede 3 Figura 3. OS PROTOCOLOS TCP/IP E ENDERECAMENTO IP ¸ 3. pelo menos. A melhor solu¸˜o ´ ent˜o prover uma camada especificamente para essa interconex˜o ca e a a entre redes. de gateway. n˜o e e a ´ usado mais nesse contexto: o termo preferido hoje ´ roteador ou router no original inglˆs. Nesse caso. c a a e ter´ ıamos um problema muito s´rio quando fosse necess´rio mudar a tecnologia da rede: o mundo e a todo deveria fazer a mudan¸a simultaneamente! c Outra possibilidade seria adaptar os programas aplicativos para cada rede existente.26 CAP´ ITULO 3. No TCP/IP. o software (SO) primeiro verifica se o a computador destino est´ na rede local. A figura 3. Essa solu¸˜o por´m. todos os aplicativos dever˜o ser programados a e a para todas as possibilidades de redes f´ ısicas. os dados s˜o transmitidos atrav´s da a a e camada de dados. Al´m disso.2 o mostra um esquema simples de roteamento. e e e Note que o roteador deve ter.2 O TCP/IP e internetworking A filosofia de projeto mais importante para o TCP/IP ´ a do internetworking.3 Roteamento Quando uma m´quina deseja enviar dados para outra. E e o f´cil ver que um protocolo de n´ a ıvel 1 ou 2 do ISO/OSI n˜o pode satisfazer esse requisito pois a redes f´ ısicas locais e de longa distˆncia s˜o radicalmente diferentes (redes locais s˜o r´pidas e a a a a cobrem um pequeno espa¸o enquanto WANs s˜o lentas mas cobrem grandes ´reas). duas conex˜es diferentes de rede. o pacote ´ enviado para uma m´quina intermedi´ria que esteja a e a a na rede local do computador origem. Esse termo por´m. segundo a nomenclatura original da Internet. Tamb´m. se aproximem dele). em caso positivo. a id´ia de roteamento ´ fundamental na conex˜o entre duas redes. no m´ ınimo.

divididos em quatro bytes. os roteadores IP trabalham com redes ao inv´s de com computadores. o roteamento ´ simples j´ que existe apenas um roteador. . Cada c a ca byte ´ representado em decimal (um n´mero entre 0 e 255) e separado do outro byte por um e u ponto.3. Sue a ponha por´m.4 Endere¸amento IP c Considerando que o IP ´ o protocolo respons´vel pela comunica¸˜o entre dois quaisquer compue a ca tadores numa internet. Apesar de podermos c designar uma m´quina por um nome numa internet. A figura 3. O roteador 1 deve saber que. Quando a internet vai crescendo. na Internet. Nesse caso. a ultra da F´ ısica. Assim.3 ilustra o que foi explicado. e Rede 2 Roteador 2 Rede 4 Rede 1 Roteador 1 Rede 3 Figura 3.3: Quatro redes com dois roteadores 3. seu conceito de endere¸os se torna fundamental. para chegar a um computador da rede 4. para efeito de representa¸˜o.4. quando usado na Internet (note o I mai´sculo). a O endere¸o IP.228. ele precisa enviar os pacotes para o segundo roteador. deve ser unico no mundo c u ´ todo. ENDERECAMENTO IP ¸ 27 No exemplo da figura. tem o endere¸o: c 10001111011010111110010000000001 que ´ representado por: e 143. o conhecimento dos roteadores deve aumentar e seus algor´ ıtmos de roteamento se tornam cada vez mais complexos.107. Para facilitar o roteamento. que uma das redes (por exemplo a rede 2) esteja conectada a uma outra rede e (quatro) atrav´s de um segundo roteador. Os 32 bits do endere¸o s˜o. pacotes da rede 1 que v˜o para a rede e a 4 tem que passar por ambos os roteadores. escolheu-se especificar um computador por a um n´mero bin´rio de 32 bits. O problema de como transformar um nome no n´mero corresu a u pondente ser´ estudado posteriormente.1 ´ E normal dividir-se o ender¸o IP em dois: os bits do lado esquerdo s˜o associados ` c a a rede enquanto os bits do lado direito representam o host.

4 exibe as classes de endere¸amento IP. deixam-se a c a c todos os bits que especificam o computador em zero. o endere¸o se refere a todos os c a c computadores da rede.0. os trˆs primeiros bits s˜o 110 seguidos de 21 bits de rede e 8 bits para e a especificar o computador. foram definidas trˆs classes b´sicas: as classes a e a A. a classe A 127 ´ reservada para loopback. 127. Esses endere¸os n˜o devem ser roteados. Na classe C.0. A figura 3. os campos de rede e de computador serem zero especificam esta rede ou este computador.4: Classes de endere¸os IP c 3.16. B e C.0. c . Esse caso ocorre quando o computador acabou de ser ligado e c e n˜o sabe ainda seu endere¸o IP. Um caso importante ´ quando um computador quer mandar um e broadcast mas n˜o sabe o endere¸o da sua rede.0.28 CAP´ ITULO 3. Na classe B. OS PROTOCOLOS TCP/IP E ENDERECAMENTO IP ¸ 3. nesse caso. a c A 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 Rede Rede Rede Endereco Multicast reservado para uso futuro Computador Computador Computador B C D E Figura 3.1) deve voltar para ele pr´prio c o sem passar por qualquer interface de rede. os sete bits seguintes designam a rede (127 possibilidae des) e os restantes 24 bits designam o computador dentro da rede. Multicasts ser˜o vistos posteriormente.31.0 a c e as classes C que come¸am com 192. Nem todas as redes conseguem a c implementar o broadcast.1 Classes de Endere¸os IP c Para otimizar o roteamento. a rede da USP ´ especificada por e 143. Note que n˜o se deve atribuir o endere¸o zero a nenhum computador.2 Endere¸os Especiais c V´rios endere¸os especiais s˜o definidos no endere¸o IP. ou seja. fala-se de um broadcast local e o a c endere¸o ´ composto por 32 uns.0.0.0. Endere¸os que come¸am com 1110 s˜o chamados de classe D e s˜o c c a a reservados para multicast. Endere¸os que come¸am a c c com 11110 s˜o reservados para uso futuro. os endere¸os IP foram projetados para incluir tanto a rede onde c est´ o computador como o pr´prio computador dentro da rede. ou seja. classes B de 172. o primeiro bit ´ 0. Existem alguns endere¸os reservados para redes privadas.4. a c Se todos os bits do endere¸o do computador s˜o 1. a o Para cobrir os v´rios tamanhos de redes. todo pacote enviado e por um computador para um endere¸o 127 (por exemplo. Na classe A.0.0. Finalmente. redes que nunca ser˜o c a conectadas ` Internet (por exemplo. Fala-se ent˜o em endere¸o de broadcast.168. os dois primeiros bits s˜o 1 e 0 seguidos de 14 bits de rede e 16 bits de computador (16k redes de 64k computaa dores cada). a c c a S˜o os seguintes os endere¸os IP privados: classe A 10. a c Em alguns contextos bem definidos.4. por seguran¸a).107. Assim.0 a 172. Para se designar uma rede.

A causa pode ser. os n´meros precisam ser mudados. Note que o INTERNIC s´ distribui redes para as organiza¸˜es. e c a computadores com mais de uma conex˜o de rede (roteadores est˜o sempre nessa categoria) a a tem mais de um endere¸o IP. a a ca . na verdade ele ´ o endere¸o de uma interface que liga o computador ` rede. que uma u rede que usava uma classe C. passa a ter mais de 255 n´s e precisa de mais endere¸os. que s´rios proo c e e blemas existem. 3.4. Isso causa um problema interessante: dados enviados para um c computador com mais de um IP podem ter destinos diferentes. e reachable quando se usa outro. de um endere¸o u a c associado a uma interface ou computador.3 Problemas com o Endere¸amento IP c S´ temos falado das vantagens do endere¸amento IP. por e ca c qualquer motivo. de rede) e seu n´mero IP tem que ser mudado. um computador pode ser considerado unreachable quando se usa um n´mero u IP.3. o maior problema de tal endere¸amento ´ que a quantidade de n´meros c e u IP existentes ´ muito pequena para a atual demanda.4 Atribui¸˜o de endere¸os ca c A entidade m´xima que distribui endere¸os IP ´ a Internet Network Information Center a c e ou INTERNIC. dependendo do endere¸o IP c usado. O tempo o c perdido para se modificar os endere¸os e tudo voltar a funcionar como anteriormente ´ muito c e grande. tinha-se a impress˜o que 32 bits a eram mais do que suficientes mas o crescimento explosivo da Internet mostrou que essa hip´tese o era falsa. Note que. De fato. Outro problema ´ que. apesar de termos nos referido ao n´mero IP como um endere¸o de um u c computador. por exemplo. Um dos problemas mais s´rios na administra¸˜o de endere¸os IP surge quando. No in´ e ıcio.4. De fato. Assim. os endere¸os o co c espec´ ıficos dos computadores s˜o atribu´ a ıdos pela pr´pria organiza¸˜o da maneira que melhor o ca lhe convier. Deve-se mencionar por´m. como na Ethernet. se mudamos um computador de local (na verdade. Se a organiza¸˜o preferir subdividir seu espa¸o de endere¸amento usando subnets ca c c (subnets ser˜o vistas posteriormente).4. N˜o existe o conceito. ela n˜o precisa de autoriza¸˜o do INTERNIC. ENDERECAMENTO IP ¸ 29 3.

OS PROTOCOLOS TCP/IP E ENDERECAMENTO IP ¸ .30 CAP´ ITULO 3.

na camada de dados. Assim. Tamb´m. Em algumas redes f´ eo ısicas. ARP. Assim. qual co e ıvel seja. suponha que o IP esteja “sobre” Ethernet: como saber qual o u e endere¸o f´ c ısico (Ethernet) destino de um pacote quando se sabe apenas o n´mero IP destino? u Nas se¸˜es seguintes veremos como ´ poss´ resolver esse problema e o problema inverso. esse tipo de solu¸˜o ´ poss´ como ca e ıvel por exemplo. Por´m. uma solu¸˜o simples como a descrita ca acima n˜o funciona pois os endere¸os envolvidos s˜o muito grandes. suponha que o endere¸o da interface seja composto de apenas um a c byte: pode-se configurar esse endere¸o como sendo o ultimo byte do n´mero IP (numa classe C) c ´ u e assim.107. No caso da Ethernet. Os comandos tcpdump e arp 4.228. FDDI e ATM. surgiu para resolver o problema de mapeamento de endere¸os IP para endere¸os de n´ c c ıvel de dados (ou f´ ısicos).1 Introdu¸˜o ca Como foi visto anteriormente. o o c c e n´mero IP ´ completamente desconhecido. s´ querem tratar com um endere¸o: o endere¸o IP.228. Por´m. manter uma tabela a c a e 31 . Token Ring.2 O Protocolo ARP O “Address Resolution Protocol”.1? A solu¸˜o mais simples ocorre quando o endere¸o da camada de dados ´ pequeno e ca c e pode ser configur´vel. o Ethernet: qual ser´ o endere¸o u e a c destino do “frame” Ethernet quando uma m´quina quer transmitir para a m´quina 143. os protocolos de n´ ıvel superior. Qual ´ o endere¸o Ethernet da interface do computador e c 143. Seja por exemplo. a ultra3000 do IFSC). como ela poder´ saber o seu n´mero ca o c a u IP considerando-se que ela n˜o tem disco (diskless workstation). na proNET. a 4. no conjunto de protocolos TCP/IP cada m´quina tem um endere¸o a c IP de 32 bits que lhe ´ atribu´ atrav´s de configura¸˜o. De fato.107.Cap´ ıtulo 4 Os protocolos ARP e RARP. se uma esta¸˜o sabe o seu pr´prio endere¸o Ethernet. o endere¸o IP n˜o est´ associado e ıdo e ca c a a a nenhuma m´quina em particular at´ que esta m´quina seja especificamente configurada para a e a receber aquele n´mero.1 a a (por exemplo. o mapeamento ´ ´bvio.

O pacote mostrado na figura 4. e sendo seguido c pelo CRC. o computador origem armazena o endere¸o f´ c ısico do computador destino numa “cache” de tal forma que.3 O formato do pacote ARP Tanto o pedido ARP quanto a resposta ARP tem o mesmo formato. O campo do Tipo do Hardware especifica o tipo de endere¸o f´ c ısico que est´ sendo pedido ou respondido. 4. OS PROTOCOLOS ARP E RARP. o computador destino j´ c a e a armazena o endere¸o f´ c ısico do computador origem.1: O pacote ARP/RARP Note que esse pacote est´ no campo de dados do “frame” Ethernet sendo precedido a pelos endere¸os destino e origem (12 bytes) e pelo tipo (0x0806) do “frame”. 0 Tamanho do End.32 CAP´ ITULO 4. Todos os computadores da rede local recebem o pedido mas somente aquele cujo IP ´ especificado como destino no pacote. esse valor ´ 6. Esse valor ´ o mesmo e tanto para o pedido ARP quanto para a resposta. O funcionamento do ARP ´ simples: quando um computador quer transmitir um pacote para um e outro computador cujo endere¸o Ethernet ´ desconhecido. O campo Tamanho do Protocolo e . Tamb´m. o valor desse campo ´ 1. de forma que ele n˜o precise utilizar o ARP a quando precisar enviar pacotes para o computador origem. numa futura troca de pacotes. e O mapeamento provido pelo ARP ´ dito dinˆmico pois ´ executado automaticamente quando e a e for necess´rio. responde. Fisico 8 Tipo do Hardware Tamanho do Protocolo Endereco de hardware do Computador (interface) origem Computador origem do Computador (Interface) destino Numero Internet (IP) do Computador destino Numero Internet (IP) do Endereco de hardware 16 24 Tipo do Protocolo Operacao 31 Figura 4. sem a interven¸˜o da aplica¸˜o e sem configura¸˜o da m´quina. todas podem armazenar o seu endere¸o f´ c ısico. Depois do primeiro “broadcast”.1. pedido e RARP e resposta RARP. O “frame” ARP tem um tipo especial na Ethernet: 0x0806. OS COMANDOS TCPDUMP E ARP de mapeamento de endere¸os causaria s´rios problemas de manuten¸˜o. na verdade. resposta ARP. Note que o ARP a ca ca ca a s´ ´ poss´ o e ıvel em redes com capacidade de “broadcast”. Esse “frame” ´. Na verdade. este c o a campo vale 0x800 (que ´ o mesmo do tipo IP no “frame” Ethernet). Esse formato ´ mostrado e na figura 4. ele emite um pacote de “broadcast” na c e Ethernet com o seu IP e o IP do computador destino.1 ´ utilizado pelo pedido ARP. No caso do Ethernet. O ARP ´ especificado pelo RFC826 e escrito por Plummer em 1982. como todas as m´quinas a receberam o pacote ARP. uma requisi¸˜o e ca para o computador destino devolver seu endere¸o f´ c ısico. e O campo Tamanho do Endere¸o F´ c ısico especifica o tamanho em bytes do endere¸o c da camada de dados: para o Ethernet. O Tipo a e de Protocolo especifica o tipo de endere¸o l´gico (rede) que ser´ utilizado. ele j´ a saiba o endere¸o e n˜o precise utilizar o ARP novamente. A solu¸˜o sugerida foi c e ca ca a cria¸˜o de um protocolo espec´ ca ıfico para fazer o mapeamento que recebeu o nome de ARP. No caso do IP.

O tcpdump coloca a interface em modo e prom´ ıscuo e faz com que ela pegue todos os pacotes que trafegam pela rede. s˜o reservados 6 bytes para os endere¸os a c f´ ısicos e 4 para os l´gicos. Em sistemas UNIX do tipo BSD.4. No caso de IP. O campo opera¸˜o mostra que tipo de opera¸˜o o pacote representa: 1 para pedido ca ca ARP. ıda a e a a Por´m. o ARP pode ser utilizado com outras redes f´ ısicas e com outros protocolos da camada de rede. Nesse curso. que mostra o que e trafega pela rede atrav´s de uma determinada interface. a • -i interface: ouve a interface especificada. 4. Na verdade. o tcpdump se utiliza de um dispositivo no kernel chamado de BPF (“BSD Packet Filter”). Note que. Os campos seguintes representam os endere¸os de origem (f´ c ısico e de rede) e os endere¸os destino (f´ c ısico e rede). eles d˜o informa¸˜es completas sobre o que se passa na rede. A a a ıda sa´ desse programa n˜o ´ f´cil de ser lida j´ que os dados vem quase que sem processamento. na figura. esse campo tem c o valor 4.dump traffic on a network SYNOPSIS tcpdump [ -deflnNOpqStvx ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ] [ -s snaplen ] [ -w file ] expression TCPDUMP(1) Algumas op¸˜es importantes do programa s˜o: co a • -c count: p´ra depois de count pacotes terem sido recebidos. O COMANDO TCPDUMP 33 especifica o tamanho em bytes do endere¸o da camada de redes. a • -e: imprime o cabe¸alho da camada de dados em cada linha. 2 para resposta ARP. v´rios exemplos ser˜o exibidos utilizando-se da sa´ do tcpdump. • -x: d´ os bytes em hexadecimal. Isso vem do fato que o exemplo ´ baseado no ARP sendo utilizado o e com IP sobre Ethernet.4. c . e a co O formato do comando em m´quinas do tipo UNIX BSD ´ a e ixtoto# man tcpdump TCPDUMP(1) NAME tcpdump . 3 para pedido RARP e 4 para resposta RARP.4 O comando tcpdump Um comando muito importante para o aprendizado de redes ´ o tcpdump.

1.2:icmp: echo request 4500 0054 35eb 0000 ff01 f3b7 c801 0101 c801 0102 0800 07e2 e408 0000 9bba 5c30 2127 0800 0809 0a0b 0c0d 0e0f 1011 1213 1415 1617 1819 00:17:31.1 > 200.1.2 tell 200.536696 0:80:48:84:91:78 0:80:48:84:8c:82 ip 98: 200.34 CAP´ ITULO 4.1.1. simultaneae ıda a mente um ping da ixtoto para a m´quina 200.538458 0:80:48:84:8c:82 0:80:48:84:91:78 ip 98: 200.1. OS COMANDOS TCPDUMP E ARP 4. Na resposta.1 0001 0800 0604 0001 0080 4884 9178 c801 0101 0000 0000 0000 c801 0102 00:17:31.address resolution display and control SYNOPSIS arp hostname arp -a arp -d hostname .2 localizada na mesma rede Ethernet. muda a opera¸˜o e envia o “frame” de volta. no pedido ARP.1. Sua descri¸˜o ´: e ca e ARP(8) NAME UNIX System Manager’s Manual ARP(8) arp .1.1:icmp: echo reply 4500 0054 35eb 0000 ff01 f3b7 c801 0102 c801 0101 0000 0fe2 e408 0000 9bba 5c30 2127 0800 0809 0a0b 0c0d 0e0f 1011 1213 1415 1617 1819 Note que.5 Exemplo do Funcionamento do ARP Abaixo ´ reproduzida a sa´ do comando tcpdump da m´quina ixtoto.6 O Comando arp Existe um comando no Unix para se verificar o endere¸o Ethernet de uma m´quina conectada ` c a a rede local: ´ o comando arp.1.536473 0:80:48:84:8c:82 0:80:48:84:91:78 arp 60: arp reply 200.1. Era feito.1. c a e o computador destino preenche o valor que falta.2 i-at 0:80:48:84:8c:82 0001 0800 0604 0002 0080 4884 8c82 c801 0102 0080 4884 9178 c801 0101 0101 0000 305c b97c 0000 0000 6978 746f 746f 00:17:31.2 > 200.1. inverte os campos de destino e origem.1.1. a ixtoto# tcpdump -e -x -c 8 -i ed0 tcpdump: listening on ed0 00:17:31. ca 4.1.1. OS PROTOCOLOS ARP E RARP.534685 0:80:48:84:91:78 Broadcast arp 42: arp who-has 200.1. o endere¸o destino Ethernet n˜o ´ fornecido.

o tipo do “frame” Ethernet ´ 0x8035. ela guarda esse endere¸o e n˜o faz mais um pedido RARP at´ o pr´ximo c c a e o “boot”. o inverso do e ARP.1. O formato do RARP ´ o mesmo visto para ARP com as modifica¸˜es no campo de e co opera¸˜o.7 O Protocolo RARP O problema do RARP (Reverse Address Resolution Protocol) ´.1.1 netmask 0xffffff00 Se depois executarmos o comando para verificar o estado da interface ed0.255 ether 00:80:48:84:91:78 Note que o endere¸o Ethernet.1. ou seja.1. Um software local est´ habilitado a descobrir sozinho.MULTICAST> mtu 1500 inet 200. c e a esse endere¸o.2) at 0:80:48:84:8c:82 A op¸˜o -a mostra todos os endere¸os na “cache”.1. Por exemplo: ixtoto# arp 200. A m´quina sem disco gera um “broadcast” fazendo um pedido RARP: ela fornece seu a endere¸o Ethernet e pede que um servidor qualquer lhe forne¸a o seu endere¸o IP.1. considere o comando abaixo que configura uma interface Ethernet c com um endere¸o IP na m´quina ixtoto: c a ixtoto#ifconfig ed0 inet 200. A especifica¸˜o do RARP ´ o RFC ca e e ca e 903 de 1984.1. 4. . que n˜o foi especificado.1 netmask 0xffffff00 broadcast 200. aproximadamente.NOTRAILERS. j´ ´ atribu´ automaticamente c a ae ıdo a ` interface ed0.4.2 ? (200. Esse caso ocorre em c c m´quinas que n˜o tem disco (“diskless workstations”). teremos: ixtoto# ifconfig ed0 ed0: flags=8863<UP.1. Uma vez c c c obtido o endere¸o IP.1. Tamb´m. A unica informa¸˜o que essas m´quinas tem ´ o seu pr´prio endere¸o Ethernet j´ que ´ ca a e o c a esse endere¸o ´ fixo para sua interface. A op¸˜o -d hostname apaga o ca c ca endere¸o de hostname da “cache”.SIMPLEX.1. sabe-se o endere¸o Ethernet e quer-se saber o endere¸o IP.7. A op¸˜o -s hostname ether addr cria uma entrada na c ca tabela cache. O PROTOCOLO RARP arp -s hostname ether_addr [temp] [pub] arp -f filename 35 No modo mais simples.BROADCAST. Na verdade. Elas n˜o sabem seu endere¸o IP mas a a a c precisam desse endere¸o para pegar de uma m´quina servidora o c´digo necess´rio para fazer o c a o a “boot”. faz-se arp hostname para se saber o endere¸o Ethernet de c “hostname”.RUNNING.

O RARP fornece apenas um endere¸o IP. existem outros protocolos para m´quinas c a sem disco que retornam mais informa¸˜es tais como o BOOTP (“Boot Protocol”).36 CAP´ ITULO 4. as servidoras. um pacote RARP pode ser respondido por v´rias m´quinas. ou a a a ´ seja. OS COMANDOS TCPDUMP E ARP Ao contr´rio do ARP. E preciso cuidado numa rede Ethernet para que o esquema funcione sem problemas. OS PROTOCOLOS ARP E RARP. co .

Alguns podem. N˜o ´ a e necess´rio o estabelecimento de conex˜o antes do in´ da transmiss˜o dos pacotes IP. A maioria das aplica¸oes espera que a c˜ camada 4 (no caso do TCP/IP seria o protocolo TCP) introduza a confiabilidade necess´ria. mudan¸a de ordem.1 Introdu¸˜o ca Os protocolos vistos anteriormente (ARP e RARP) s˜o considerados protocolos da camada de a dados.Cap´ ıtulo 5 O Datagrama IP. Passamos agora ` camada de rede e discutimos o principal protocolo usado hoje nesse a n´ que ´ a base da comunica¸˜o na Internet: o Internet Protocol conhecido simplesmente ıvel e ca como IP. as aplica¸˜es tolerarem o fato do IP ser um servi¸o n˜o confi´vel? e co c a a ´ E importante lembrar que falamos aqui da camada 3. Falhas ocorrem s´ quando as camadas inferiores falham ou o quando n˜o existe mais capacidade de transmiss˜o devido ao excessivo uso de recursos. seguir por caminhos diferentes de outros. demora excessiva na entrega do pacote sem que o sistema c ca avise o emissor ou o receptor. inclusive. 3. M´ximo esfor¸o: Apesar dos problemas que caracterizam o servi¸o como n˜o confi´vel. por´m. a a Como podem. a c c a a o software sempre tenta enviar os pacotes da melhor maneira poss´ ıvel. 5. a 37 . nunca um pacote ´ e propositalmente jogado fora. N˜o confi´vel: a entrega de pacotes IP n˜o ´ garantida sendo poss´ a a a e ıvel haver perda. Sem conex˜o: De fato. duplica¸˜o.2 Caracter´ ısticas do IP Pode-se dizer que o IP tem trˆs caracter´ e ısticas fundamentais: 1. A a a ıcio a analogia aqui ´ com o servi¸o de correios onde os pacotes IP s˜o as cartas. os pacotes IP s˜o enviados separadamente e independentemente a a uns dos outros. a base da Internet 5. e c a 2.

38 CAP´ ITULO 5. Se n˜o a e co a houver op¸˜es. que s˜o normalc e e e a mente desprezados. O unico campo do cabe¸alho que apresenta tamanho ´ c vari´vel ´ o de op¸˜es com o correspondente enchimento (para completar os 32 bits). 5. o comprimento m´ximo do cabe¸alho IP ´ de e a c e 15 palavras de 32 bits (60 bytes no total). o datagrama IP ´ composto de duas partes: um cabe¸alho e c contendo os endere¸os IP envolvidos bem como outras informa¸˜es importantes para o correto c co funcionamento do protocolo e a parte dos dados propriamente dita. m´xima confiabilidade e m´ a ınimo custo financeiro. S´ um desses bits deve estar ligado o . co e O campo de tipo de servi¸o ´ composto por trˆs bits de precedˆncia. e Por exemplo. Como j´ foi dito. quando descartar um pacote. o valor desse campo ´ 5 como pode ser visto na figura 5. O DATAGRAMA IP. A precedˆncia vai de 0 (menor precedˆncia) at´ 7 (maior precedˆncia) permitindo a e e e e diferencia¸˜o de importˆncia entre os datagramas. 4 bits de tipo de servi¸o propriamente dito e de 1 bit que deve ser sempre c zero.3. sucessivamente.3 O Datagrama IP Assim como na Ethernet (frame).3. na Ethernet ter´ ıamos: Cabecalho Ethernet Cabecalho IP Dados do Datagrama IP Ra− bi− cho Figura 5. Note que a representa¸˜o do datagrama vai do bit 0 mais ` esquerda at´ o 31 na ca a e direita.2: O datagrama IP dentro do frame Ethernet O formato do datagrama IP pode ser visto na figura 5. Essa ´ a ordem recomendada pela Internet e todos os e computadores devem segui-la. O byte de 0 a 7 ´ transmitido primeiramente sendo seguido do bytes que compreende e os bits de 8 a 15 e assim.4. Como ele ´ composto de apenas 4 bits. m´xima largura de e a banda. A a vers˜o atual ´ 4. que ´ chamado de datagrama. Cabecalho Dados (por exemplo. etc).1 ilustra o datagrama IP. A BASE DA INTERNET O protocolo IP define o formato do pacote. esse campo n˜o ´ normalca a a a e mente implementado. O campo seguinte revela qual o comprimento do cabe¸alho IP em m´ltiplos a e c u de 32 bits. O formato desse campo pode ser visto na figura 5. A figura 5. Os 4 bits de tipo s˜o (na ordem): m´ a ınima latˆncia.1: O datagrama IP Note que o datagrama completo ´ enviado encapsulado no frame da camada de dados. a forma e como os datagramas devem ser roteados atrav´s da internet e como os datagramas devem ser e processados (como e quando gerar mensagens de erro. um pacote TCP) Figura 5. Os 4 primeiros bits do datagrama revelam a vers˜o do protocolo IP sendo utilizado.

• DNS UDP: 1000. • ICMP: 0000. • NNTP: 0001. • TFTP: 1000. .5. • FTP dados: 0100. O DATAGRAMA IP 0 Vers 4 HLEN 8 Tipo de Servico Flags 16 19 24 31 39 Comprimento Total Deslocamento do Fragmento Checksum do Cabecalho Identificacao Tempo de Vida Protocolo Endereco IP fonte Endereco IP destino Opcoes do IP Dados Dados Enchimento Figura 5.3. • FTP controle: 1000. Os valores recomendados de tipo de servi¸o para as v´rias aplica¸˜es s˜o: c a co a • Telnet ou rlogin: 1000. • DNS TCP: 0000. • BOOTP: 0000.4: O formato do tipo de servi¸o c revelando como o datagrama deve ser tratado. • SMTP dado: 0100.3: Formato do datagrama IP Precedencia Tipo de servico 0 Figura 5. • SNMP: 0010. os quatro bits devem ficar em zero. • SMTP comando: 1000. Se o tipo do datagrama for normal.

tem o mesmo formato do datagrama IP j´ a apresentado na figura 5. tipicamente. Nesse caso. os peda¸os menores n˜o s˜o mais remone c a a . Se o a e tamanho do datagrama for maior do que o tamanho m´ximo que pode ser transmitido pelo a frame na camada de dados ´ necess´rio quebrar o datagrama em v´rios peda¸os menores. o IP prevˆ a quebra a e do datagrama em peda¸os menores que sejam menores ou iguais ao MTU.3.3 Hyperchannel FDDI X. Alguns desses valores podem ser vistos na a tabela 5. a O comprimento total d´ o tamanho do datagrama IP em bytes. Com esse campo. e ´ E importante notar que. c ıda A unica restri¸˜o que ´ imposta ´ que o tamanho dos fragmentos seja m´ltiplo de 8 bytes com ´ ca e e u exce¸˜o do ultimo fragmento. Nesse caso. Uma vez que um datagrama ´ fragmentado. A essa quebra d´-se c a o nome de fragmenta¸˜o. cada fragmento. o tamanho dos dados carregados por um unico frame fica limitado. a juntamente com o campo de comprimento de cabe¸alho ´ poss´ saber onde come¸a e onde c e ıvel c acaba o campo de dados. o roteador pega a o datagrama. de uma rede Ethernet para uma conex˜o ponto a ponto).25 4 Mbps Token Ring 16 Mbps Token Ring Point-to-point MTU em bytes 1500 1492 65536 4352 576 4464 17914 296 Tabela 5. O DATAGRAMA IP.1: MTUs para v´rias redes a Muitas vezes. Ao chegar ao seu destino.40 CAP´ ITULO 5. O RFC 1191 (Mogul e Deering. esses bits podem co a c funcionar como uma esp´cie de sugest˜o para os algor´ e a ıtmos de roteamento que podem se basear neles para tomadas de decis˜o de melhor rota. ´ necess´rio transmitir-se datagramas IP cujo tamanho total ´ maior que e a e o tamanho m´ximo permitido pelo frame da camada de dados. Isso ´ e a a c e conhecido como fragmenta¸˜o e ser´ visto em detalhes a seguir. quebra-o em peda¸os que sejam menores que o MTU da rede de sa´ e os envia. 1990) d´ alguns valores de MTU para redes comuns. o a Assim. ca a 5. ´ E exigido dos computadores e roteadores que eles sejam capazes de tratar de datagramas com tamanho at´ de 576 bytes. os fragmentos s˜o montados e ca ´ e a o datagrama original ´ reconstru´ e ıdo. A esse limite d´-se o ´ a nome de Maximum Transfer (Transmission) Unit ou MTU. O tamanho m´ximo de um datagrama IP ´ de 65535 bytes. ca A fragmenta¸˜o ocorre.3.1 MTU e Fragmenta¸˜o ca Cada rede f´ ısica imp˜e um limite m´ximo no tamanho de um frame que ela pode transportar. quando um roteador recebe um datagrama por ca uma rede f´ ısica com alto MTU e tem que retransmiti-lo por uma conex˜o com baixo MTU (por a exemplo. ´ claro.1. Rede Ethernet IEEE 802. A BASE DA INTERNET Apesar de muitas implementa¸˜es do IP n˜o usarem o tipo de servi¸o.

ele n˜o o faz e retorna uma a mensagem de erro de volta ` origem. decrementa o campo de 1. d´ o comprimento total do fragmento e n˜o do datagrama original.2. na maioria das implementa¸˜es. a houver uma conex˜o com MTU baixo. Alguns ıvel a c protocolos e seus n´meros s˜o mostrados na tabela 5. Tamb´m. 5. Normalmente. Originalmente. a ca e ´ m´quina origem tem um contador que ´ incrementado a cada envio de um datagrama e ´ utilizado a e e no campo de identifica¸˜o. .2 Fragmenta¸˜o e o datagrama IP ca Trˆs campos do datagrama IP est˜o diretamente relacionados com a fragmenta¸˜o: o da idene a ca tifica¸˜o. ´ que a e e transmiss˜o dos datagramas pode se tornar ineficiente se. e ıvel ca 5.3. a no caso de fragmentos. O bit menos significativo ´ o bit de mais fragmentos. Se um roteador ca e a precisar fragmentar um datagrama que contenha esse bit em 1. a e Ele sinaliza se o fragmento ´ o ultimo a ser enviado. Esse flag ´ necess´rio para que o computador e ´ e a destino saiba quando j´ pode remontar o datagrama.3 Time to live O campo de tempo de vida ou time to live (TTL) especifica qual o tempo m´ximo que pode a levar o percurso desde a origem at´ o destino.4 O Campo de Protocolo e de Checagem de Cabe¸alho c Assim como o campo de tipo no frame Ethernet. Cada roteador. Note que o campo comprimento total. Isso ´ feito para que roteadores intermedi´rios n˜o e e a a precisem armazenar fragmentos a espera dos outros. u ca Os dois bits menos significativos do campo flags ( que tem 3 bits) tamb´m tem rela¸˜o e ca com a fragmenta¸˜o: o primeiro (mais significativo) ´ o bit n˜o fragmente. esse campo ´ dado em segundos e e mas. o campo de protocolo no datagrama IP ´ e utilizado para identificar o protocolo de n´ superior que est´ utilizando o servi¸o IP. 5. O DATAGRAMA IP 41 tados at´ chegarem ao seu destino final.3. o de flags e o de deslocamento de fragmento. u a u 1981 (RFC 790).3. a a O campo de deslocamento de fragmento d´ o deslocamento do in´ do fragmento a ıcio em rela¸˜o ao in´ do datagrama original em m´ltiplos de 8 bytes. Uma grande desvantagem por´m. os datagramas que trafegar˜o a a a ser˜o necessariamente pequenos. pois. os outros prosseguem a e seu caminho at´ o destino final sem que seja poss´ a regera¸˜o do datagrama original. antes de retransmitir o datagrama. Se o campo chegar a zero o datagrama ´ descartado.5. ca O campo de identifica¸˜o ´ unico para cada datagrama gerado. e O TTL ´ extremamente util para evitar que roteadores mal configurados acabem inune ´ dando a rede com datagramas que ficam circulando eternamente. depois dessa conex˜o. ele fornece o n´mero m´ximo de roteadores pelo qual o co u a pacote deve passar. Essa informa¸˜o ´ fundaca ıcio u ca e mental para a remontagem do datagrama original.3. Todos os fragmentos de um datagrama devem conter o mesmo ca n´mero de identifica¸˜o. se um dos fragmentos se perder. no caminho entre origem e destino. Esses n´meros foram tirados de Postel.

while( count > 1 ) { /* This is the inner loop */ sum += * (unsigned short) addr++. */ unsigned short GenerateChecksum(unsigned char* addr. Ele n˜o inclue o campo de dados. a a O campo de op¸˜es ser´ estudado com mais detalhe posteriormente. E responsabilidade das camadas o c superiores. O DATAGRAMA IP. Isso ´ feito para facilitar o trabalho dos roteadores a e ´ que s´ precisam se preocupar com a integridade do cabe¸alho. int count) { register long sum = 0. A BASE DA INTERNET N´mero em Decimal u 1 6 17 Protocolo ICMP TCP UDP Tabela 5. O n´mero ´ calculado u e considerando-se o cabe¸alho como uma sequˆncia de inteiros de 16 bits. O c´digo (em C) para c´lculo do checksum ´ apresentado no RFC 1071 e pode ser visto o a e a seguir: RFC1071 . Esses endere¸os c c n˜o s˜o alterados de forma alguma pelos roteadores pelos quais passa o datagrama.Section 4. } /* Add left-over byte. op¸˜es e dados c co O datagrama carrega o endere¸o IP de origem e o de destino (ambos de 32 bits).3. Ele fornece co a . 5. /* Compute Internet Checksum for "count" bytes * beginning at location "addr". /* Fold 32-bit sum to 16 bits */ while (sum>>16) sum = (sum & 0xffff) + (sum >> 16).1 The following "C" code algorithm computes the checksum with an inner loop that sums 16-bits at a time in a 32-bit accumulator. checksum = ~sum. Esses inteiros s˜o c e a somados em complemento de um e toma-se como “checksum”. garantir que os dados chegaram corretamente ao seu destino.42 CAP´ ITULO 5.2: MTUs para v´rias redes a O campo de checagem de cabe¸alho tenta garantir a integridade do cabe¸alho do c c datagrama. o complemento de 1 do resultado. count -= 2. if any */ if( count > 0 ) sum += * (unsigned char *) addr.5 Campos de endere¸o.

1 0001 0800 0604 0001 0080 4884 9178 c801 0101 0000 0000 0000 c801 0102 00:48:13.1.1.1.1.1.1.1.5.427741 0:80:48:84:8c:82 0:80:48:84:91:78 ip 115: 200.255.1.1209: P 1:62(61) ack 1 win 4096 4500 0065 05b9 0000 3c06 e6d4 c801 0102 c801 0101 0015 04b9 eedd 0001 3d72 d202 5018 1000 5eb9 0000 3232 3020 7874 6f74 6f2e 6966 712e .2 is-at 0:80:48:84:8c:82 0001 0800 0604 0002 0080 4884 8c82 c801 0102 0080 4884 9178 c801 0101 0101 0000 3065 fb93 0000 0000 6978 746f 746f 00:48:13.2 tell 200.1.4 Exemplo de Datagramas IP A listagem a seguir mostra a sa´ do programa tcpdump executado na m´quina ixtoto (200.1.1. ele pode carregar um pacote TCP.1.1. EXEMPLO DE DATAGRAMAS IP 43 algumas op¸˜es uteis para gerenciamento de redes. u co a Finalmente o campo de dados carrega o dado propriamente dito.1. era executado “ftp 200.2.1.316989 0:80:48:84:91:78 0:80:48:84:8c:82 ip 58: 200.ftp: .1.1209: S 4007460864:4007460864(0) ack 1030935042 win 4096 <mss 512> 4500 002c 05b8 0000 3c06 e70e c801 0102 c801 0101 0015 04b9 eedd 0000 3d72 d202 6012 1000 f6a3 0000 0204 0200 2032 00:48:13.1.ftp: S 1030935041:1030935041(0) win 16384 <mss 1460> 4500 002c a442 0000 4006 4484 c801 0101 c801 0102 04b9 0015 3d72 d201 0000 0000 6002 4000 b1de 0000 0204 05b4 00:48:13.1209 > 200. 5.1.1.1) ıda a quando.2.2” da ixtoto para uma outra m´quina na a mesma Ethernet.1.1.ftp > 200.1.1.4.ftp > 200.1209 > 200.1.1.2.1.1.1. se existir.316810 0:80:48:84:8c:82 0:80:48:84:91:78 arp 60: arp reply 200. simultaneamente. deve ter tamanho co ´ m´ltiplo de 32 bits. ack 1 win 16384 4500 0028 a443 0000 4006 4487 c801 0101 c801 0102 04b9 0015 3d72 d202 eedd 0001 5010 4000 daac 0000 00:48:13.1.1. Por exemplo.who > 200. Esse campo.1.2.who: udp 108 4500 0088 a440 0000 4011 4322 c801 0101 c801 01ff 0201 0201 0074 6579 0101 0000 3065 fc47 0000 0000 6978 746f 746f 0000 0000 0000 0000 00:48:13.314945 0:80:48:84:91:78 Broadcast arp 42: arp who-has 200.1.319199 0:80:48:84:91:78 0:80:48:84:8c:82 ip 54: 200.1. ixtoto# tcpdump -e -x -c 8 -i ed0 tcpdump: listening on ed0 00:48:07.251851 0:80:48:84:91:78 Broadcast ip 150: 200.318889 0:80:48:84:8c:82 0:80:48:84:91:78 ip 60: 200.1.1. Algumas op¸˜es s˜o o “Record Route” e o “Source Routing”.

A BASE DA INTERNET ´ E extremamente instrutivo tentar entender o porque desses n´meros em hexadecimal u nos pacotes IP.44 CAP´ ITULO 5. O DATAGRAMA IP. .

considere como exemplo. o custo de uma linha o dedicada com velocidade de 2 MB/s interligando duas cidades pr´ximas do Estado de S˜o Paulo. e um modem em cada lado da conex˜o.Cap´ ıtulo 6 Os Protocolos SLIP e PPP 6. Token Ring. O custo desse arranjo a ´ muito baixo pois s´ envolve a linha telefˆnica (que normalmente j´ existia). o m´todo cl´ssico de acesso remoto tem sido o uso de uma linha telefˆnica e a o comum. o a ele ´ de alguns milhares de reais mensais mais os custos de instala¸˜o e infra-estrutura. equivalentes ` a Ethernet. 6. De fato. derivado do fato que linhas telefˆnicas n˜o o a foram projetadas para transmitir dados e de linhas telefˆnicas serem de baixa qualidade.2 A Id´ia e Desde que redes de computadores se tornaram importantes. aqui. Para aumentar o n´mero de pessoas que u acessam as redes. etc. O funcionamento cl´ssico ´ o seguinte: normalmente se liga um usu´rio remoto a um a e a centro de computa¸˜o que disp˜e de v´rias linhas telefˆnicas dedicadas especificamente para ca o a o 45 .1 Introdu¸˜o ca Apesar de n˜o serem tratados normalmente como pertencentes ao conjunto de protocolos TCP/IP a (pelo menos o SLIP). Eles podem ser considerados protocolos da camada 2. ´ fundamental que se diminua o custo das conex˜es. A a conex˜o ´ feita atrav´s de um dispositivo chamado “modem” (de “modulador-demodulador”) que a e e se conecta ao computador via uma linha serial padr˜o do tipo RS232C. o custo tende a ser bastante alto mesmo a para conex˜es de pequena velocidade. esses protocolos ganharam enorme popularidade entre os usu´rios e dea vem necessariamente ser conhecidos por todos aqueles que trabalham seriamente com redes de computadores. que a maioria dos estabelecimentos e mesmo indiv´ ıduos j´ possuem naturalmente. ele se o tornou bastante popular devido ao baixo custo. O problema ´ particue o e larmente forte quando se fala em WANs j´ que. uma porta serial e o o a que existe na maioria dos computadores. e ca Assim. a Apesar da pouca confiabilidade do arranjo. ou seja. grande esfor¸o tem sido feito no c sentido de tornar o acesso a redes o maior poss´ ıvel.

devido a seu baixo custo. o SLIP foi mais popular que o PPP. A id´ia do SLIP ´ fornecer uma base para a e e que se trafeguem pacotes IP sobre linhas seriais de tal forma que o computador do usu´rio se a torne efetivamente um membro da rede com a qual ele se conecta. que foi projetada para transmitir sinais anal´gicos. Note que o cen´rio descrito n˜o configura uma rede de computadores. ´ a transferˆncia de arquivos. um equipamento que transforma sinais digitais oriundos e de uma interface computacional para sinais anal´gicos que s˜o transmitidos atrav´s de uma o a e linha telefˆnica comum. Os sinais digitais devem ent˜o ser modulados para serem transmitidos o a analogicamente. Apesar de ser uma solu¸˜o relativamente rudimentar ca para o problema de redes de longa distˆncia. e a 6. mas. ca Dois fatores por´m. Quando o modem do centro atende. em sua forma original. os sistemas de BBS ca´ e ıram em desuso. O suporte ao PPP em sistemas opera´ cionais populares em meados da d´cada de 90 como o Windows95 e o OS/2 Warp fizeram do e PPP o m´todo preferido de conex˜o remota barata `s WANs. a o o no caso. Surge ent˜o o SLIP ou Serial Line IP. e e a Apesar de ser uma forma rudimentar de comunica¸˜o. o coma a putador do usu´rio n˜o toma parte da comunica¸˜o a n˜o ser como um terminal “burro” do a a ca a computador central. fizeram com que os usu´rios exigissem uma funcionalidade maior e a do que a das BBSs: os computadores pessoais se tornaram muito mais poderosos e a utiliza¸˜o ca deles como simples terminais parece ser uma enorme perda de recursos. a voz humana. ´ importante que o aluno tenha alguns conhecimentos b´sicos de modens. al´m ´ claro da fune e cionalidade de terminal. ela se tornou ca bastante popular e deu origem a literalmente milh˜es de sistemas espec´ o ıficos para essa finalidade chamados de BBS (do inglˆs. devido `s tendˆncias a e verificadas nos ultimos anos. esse panorama se inverteu. Atualmente. O SLIP foi definido (ou sugerido) no RFC 1055 escrito em 1988. sua a enorme popularidade. a Durante muitos anos. o modem retorna a informa¸˜o contida no sinal anal´gico para sua ca o forma digital original (a demodula¸˜o). trafegar pacotes n˜o IP. que permitem. Surge o ent˜o o Point to Point Protocol ou PPP que mant´m a mesma necessidade m´ a e ınima de recursos do SLIP (uma linha serial ass´ ıncrona do tipo RS232C.3 O MODEM O modem ´. levaram ao desenvolvimento de um protocolo que tamb´m apresentasse e baixo custo mas que fosse um pouco mais s´lido e apresentasse maior funcionalidade. um modem e uma linha telefˆnica) o mas com recursos extras. O usu´rio se utiliza de um programa chamado de “emulador de terminal” que lhe d´ a a acesso ` porta serial e. em segundo lugar. OS PROTOCOLOS SLIP E PPP esse fim. e ıdo Os v´rios problemas do SLIP (descritos posteriormente). u ca estabelece-se a conex˜o e o computador do usu´rio se torna um terminal remoto do computador a a central. Bulletin Board System). de fato. A modula¸˜o e demodula¸˜o s˜o necess´rias para que ca ca ca a a n˜o haja perda de sinal na linha telefˆnica. O usu´rio d´ ent˜o os comandos para a a a a que o modem disque o n´mero do centro de computa¸˜o. consequentemente. No destino. Antes de entrarmos em detalhes e a a dos dois protocolos. com a populariza¸˜o da Internet. Talvez a unica coisa poss´ a e a ´ ıvel. ao modem. inclusive. ele se tornou extremamente popular nos anos 90 a at´ ser substitu´ pelo PPP.46 CAP´ ITULO 6. O grande limitante na largura de banda conseguida pelos modens vem . e ao mesmo tempo. desde que bastante guiada pelo usu´rio. a crescente popularidade da Internet fez com que os usu´rios desejassem cada vez mais ter a a funcionalidade completa da Internet nos seus computadores pessoais. Nessa configura¸˜o a versatilidade ´ muito baixa sendo que o computador ca e central n˜o “vˆ” o computador do usu´rio.

varia de fabricante para fabricante.32: Padr˜o CCITT que especifica como dois modens devem se comunicar em velocidades a de at´ 9.42: Protocolo CCITT para corre¸˜o de erro. seria material para um curso completo). e • V. os modens tˆm se tornado ca e ca e cada vez mais r´pidos sendo velocidades de at´ 33600 bits/segundo (56K) poss´ a e ıveis atualmente. o e • MNP2-4: Protocolos da firma americana Microcom. Permite coma press˜o de at´ 2:1. • V.1 Comandos Hayes O fabricante americano de modens Hayes criou um conjunto de comandos que definem a comunica¸˜o entre o computador e o modem. Alguns padr˜es o a o muito populares atualmente s˜o: a • V. que o aluno esteja o e familiarizado com alguns padr˜es e comandos b´sicos associados aos modems. . Esses comandos se tornaram bastante populares ca e acabaram se transformando num padr˜o utilizado por praticamente todos os fabricantes. Deve ser utilizado ao inv´s do MNP5 pois a e apresenta uma taxa de compress˜o maior (4:1) e nunca aumenta o tamanho dos dados.90: Protocolo para conex˜es at´ 56Kbps. u o O n´mero pode conter v´ u ırgulas que indicam que o modem deve aguardar um certo tempo para continuar a discar. Os e comandos sempre come¸am com as letras at do inglˆs attention e s˜o as vezes chamados de c e a comandos at. O MODEM 47 do fato que as linhas telefˆnicas comuns s´ permitem a passagem de frequˆncias at´ 4khz (n˜o ´ o o e e a e necess´rio mais do que isso para se manter uma conversa entre dois seres humanos de forma que a o entendimento de ambas as partes seja razo´vel. Com a evolu¸˜o da tecnologia e dos m´todos de modula¸˜o. e • V.800 bps. note por´m que muitas vezes n˜o ´ poss´ se a e a e ıvel reconhecer a voz da outra pessoa).3. e • V. o MNP5 pode at´ aumentar o a e a e tamanho dos dados.22: Padr˜o CCITT que especifica como dois modens devem se comunicar em velocidades a de at´ 1.400 bps. O a conjunto de comandos Hayes ´ enorme e.42bis: Protocolo de compress˜o do CCITT. que fornecem m´todos de corre¸˜o e ca de erros. infelizmente. Deve ser usado ao inv´s dos protocolos ca e propriet´rios MNP2-4.34: Padr˜o CCITT para velocidades de 28. a • MNP5: Protocolo de compress˜o de dados da firma americana Microcom. Se o dado j´ estiver comprimido.3.6. Os comandos mais importantes s˜o (em geral!!): a • atdt< numero > disque o n´mero telefˆnico a seguir utilizando-se da discagem por tom. e • V.22bis: Padr˜o CCITT que especifica como dois modens devem se comunicar em veloa cidades de at´ 2.200 bps (bits/segundo). E importante por´m.600 bps. por si s´. • V. N˜o ´ o objetivo desse curso dar ao aluno uma id´ia profunda do funcionamento dos modens (o a e e ´ que.32bis: Padr˜o CCITT que especifica como dois modens devem se comunicar em veloa cidades de at´ 14. a 6. a • V.400 bps.

a a 3. um modem j´ se conectou ao outro e se encontra a no modo de dados). • at&d1 e at&d0 Leva em considera¸˜o (ou n˜o) o estado do sinal DTR (Data Terminal ca a Ready). OK). use a discagem por pulso. 6. por exemplo. a . N˜o contempla corre¸˜o de erros. agora. ca • at S´ requisita uma resposta do modem (tipicamente. • ato Volta ao modo de dados. e e e ´ E de se esperar que um protocolo t˜o simples deva ter deficiˆncias. o • at&v D´ a configura¸˜o atual do modem. a • ats0=002 Coloque o valor 2 no registrador zero. o a 2. o • ata Coloque o modem imediatamente em modo resposta. N˜o permitem o tr´fego simultˆneo de protocolos outros que n˜o o IP j´ que n˜o contempla a a a a a a o tipo do protocolo. N˜o contemplam compress˜o de dados. ele atender´ o a telefone depois do segundo sinal. a ca • ath Encerra a conex˜o. o n´mero IP que lhe est´ reservado ca u a nessa particular conex˜o. Note que n˜o existe no SLIP o CRC que ´ encontrado a ca a e em outros protocolos. • +++ Cada mais deve ser separado do outro por aproximadamente um segundo. • Se um dos bytes do datagrama ´ 0xc0. Retorne ao modo comando (quando. O byte 0xdb ´ chamado de “escape” do SLIP ou ESC SLIP. • at&c1 Leve em considera¸˜o o estado da portadora (ligado ou desligado). Assim. Esse registrador controla o n´mero de u chamadas antes que o modem atenda ao telefone.48 CAP´ ITULO 6. As principais a e deficiˆncias do SLIP s˜o: e a 1. 4. No caso do exemplo. Cada lado da comunica¸˜o deve saber.4 SLIP As seguintes regras s˜o utilizadas pelo SLIP: a • Cada datagrama IP ´ transmitido precedido e seguido por um byte 0xc0 que ´ considerado e e o byte END do pacote SLIP. e • Se o datagrama cont´m o byte 0xdb. previamente. s´ que. o SLIP deixa para os protocolos de n´ ıvel superior a responsabilidade de fazer a corre¸˜o de erro.42 ou MNP2-4) pois linhas o a ca telefˆnicas s˜o muito ruidosas. OS PROTOCOLOS SLIP E PPP • atdp< numero > o mesmo anterior. ele ´ transmitido como a sequˆncia de dois bytes e e e 0xdb 0xdc. este ´ transformado na sequˆncia 0xdb 0xdd. Isso ´ particularmente problem´tico com linhas ca e a telefˆnicas comuns se o modem n˜o fizer a corre¸˜o de erro (V.

todos os bytes entre 0 e 32 ASCII s˜o transmitidos com o caracter de “escape” e a (0x7D). O CSLIP consegue reduzir o tamanho do cabe¸alho. . etc.1: O formato do pacote PPP O byte 0x7E ´ substitu´ por 0x7D 0x5E.5 PPP O PPP ´ especificado nos RFC 1331 e 1332. o de controle de fluxo). Tamb´m. o pacote PPP ´ precedido e seguido de um byte fixo. NCPs existem para diferentes fam´ ılias de protocolos tais como IP. O CSLIP tamb´m ´ conhecido como van Jacobson SLIP em e e homenagem ao seu idealizador. ´ resolvido com uma varia¸˜o a c e ca do SLIP chamada de CSLIP (para “compressed SLIP”). O formato do pacote PPP ´ visto na figura 6. DECNET.1. O LCP estabelece. 0x7E. o NCP permite a compress˜o do cabe¸alho como no CSLIP. Por exemplo. PPP 49 O problema da compress˜o. 0xFF contr 0x03 0x7E 1 byte Protocolo 2 bytes Dados Ate 1500 bytes CRC 2 bytes 0x7E 1 byte 1 byte 1 byte Figura 6. 0xC021. 6. Tamb´m permite a a c e negocia¸˜o de n´meros IP entre os computadores. O protocolo PPP tenta corrigir as deficiˆncias do e e SLIP. de 40 bytes para 5 bytes ou algo similar. Ap´s o e o primeiro 0x7E. c e e O campo de protocolo especifica que tipo de pacote ´ transmitido como dado. segue-se um byte de endere¸o que ´ sempre 0xFF e um de controle que ´ 0x03. o NCP vem como 0x8021 e o LCP. Isso ´ muito importante para aplica¸˜es c e co interativas em linhas seriais lentas. O PPP tamb´m define dois e tipos de protocolos: o LCP (“Link Control Protocol”) e o NCP (“Network Control Protocol”). Ele permite conex˜es ass´ o ıncronas como o SLIP e s´ ıncronas. No caso do IP. configura e testa a conex˜o o que permite a negocia¸˜o de op¸˜es entre as duas a ca co partes.6. O campo de CRC serve para verificar se a transmiss˜o se deu sem erros. Isso ´ muito util para permitir que os “drivers” das portas seriais usem os caracteres de e ´ controle ASCII (por exemplo. a end.25. pelo menos do cabe¸alho IP. ca u e Como no SLIP. o e pacote IP vem com tipo 0x0021. O byte 0x7D ´ transmitido como 0x7D e ıdo e 0x5D.5. X.

OS PROTOCOLOS SLIP E PPP .50 CAP´ ITULO 6.

O.1 Introdu¸˜o ca Neste cap´ ıtulo. os comandos apresentados ser˜o sempre para o UNIX a menos que se diga que se referem a a outro sistema. muitos dos comandos foram implementados com o mesmo nome em outros sistemas ou com nomes bastante parecidos.Cap´ ıtulo 7 Interface com Sistema Operacional. O nome do comando deriva-se da express˜o “Interface Configuration”. e e a 7. “flags” para a ajustar certos atributos da conex˜o. veremos v´rios desses comandos.2 Comandos Fundamentais V´rios s˜o os comandos utilizados para o correto funcionamento do TCP/IP em m´quinas UNIX. a O sistema b´sico para onde foi primeiro desenvolvido o TCP/IP foi o Unix (Berkeley). a 51 . A funcionalidade de tais comandos ´ tamb´m. parte 1 7. Note que. ser´ vista no futuro. veremos como ´ feita a interface do software de rede com o sistema operacional e do ponto de vista do usu´rio (ou do gerente do sistema). etc. outras carecter´ e u ısticas de rede podem ser atribu´ ıdas ` interface a tais como a m´scara da rede que define a que subrede o computador pertence. como o TCP/IP foi implementado primeiro para o UNIX.1 ifconfig Um dos primeiros comandos que devem ser utilizados para configurar o TCP/IP numa m´quina a ´ o ifconfig. do ponto de vista do a implementador.2. Al´m do n´mero IP. a Assim. A interface. bastante similar nos v´rios S. a a a Nas se¸˜es a seguir. e a O ifconfig ´ utilizado para se associar um n´mero IP a uma interface de rede do e u computador. co a 7.

1 netmask 255.49 ´ o IP da e e c e m´quina diretamente conectada a ixtoto pelo slip. que ´ a rapper. A seguir s˜o apresentados alguns exemplos de utiliza¸˜o do comando: a ca #ifconfig ed0 10. o exemplo a seguir: ifconfig sl0 143.228.255. it may also be used at a later time to redefine an interface’s address or other operating parameters. que ´ uma interface do tipo slip. a e .49 netmask 0xffffffc0 Esse comando configura a interface da m´quina rapper para funcionar na rede do a DFI-IFSC.255. um quarto de classe C!) Considere finalmente.0.107.0.0.107.52 CAP´ ITULO 7. apesar a e de 143. PARTE 1 A sintaxe do ifconfig no UNIX BSD (na verdade. o mascaramento de subrede indica uma rede menor que uma classe C (na verdade.0 Neste exemplo (utilizado na m´quina ixtoto para a configura¸˜o da rede local). configuraa ca se a interface ed0 para o endere¸o IP 10.107 ser originalmente uma classe B. neste exemplo.228. c A interface agora ´ a sl0.configure network interface parameters SYNOPSIS ifconfig ifconfig ifconfig ifconfig ifconfig interface address_family [address [dest_address]] [parameters] interface [protocol_family] -a -au -ad DESCRIPTION Ifconfig is used to assign an address to a network interface and/or configure network interface parameters.228.1 e classe C.51 (na ixtoto). O endere¸o 143. a m´scara de rede ´ especificada em hexadecimal e.51 143.107.228.49 Este comando configura a interface sl0 com o endere¸o IP 143. INTERFACE COM SISTEMA OPERACIONAL.107.107.0. Ifconfig must be used at boot time to define the network address of each interface present on a machine. no FreeBSD) ´: e IFCONFIG(8) NAME UNIX System Manager’s Manual IFCONFIG(8) ifconfig . Para desligar a interface pode-se fazer: c #ifconfig ed0 down Outro exemplo ´: e #ifconfig ed0 143. Note que.228.

Roteamento dinˆmico ´ muito importante no TCP/IP a a a e e ser´ visto posteriormente. as rotas s˜o manuseadas na tabela atrav´s a a a e do comando route (se pronuncia “raute” no inglˆs americano e “ruute” no inglˆs britˆnico).2. No Linux.1 Note que. Note e ´ que. etc. A maior dificuldade na utiliza¸˜o desse e ca comando ´ conseguir-se o nome da interface que se quer configurar.0 da IBM) vem com e o comando ifconfig que fica localizado normalmente em C:\TCPIP\BIN. 3COM503. O sistema OS/2 Warp Connect (que cont´m o pacote de TCP/IP 3. para uma interface Ethernet do tipo Novell 2000: #/sbin/ifconfig eth0 200. • le0: DEC Etherworks 2 e 3. um exemplo de ifconfig seria. No roteamento est´tico. No FreeBSD. • eg0: 3C505. De fato. E comum uma interface do tipo Novell (placas NE1000 e NE2000) receberem o nome de ne0 de Novell Ethernet. NE2000. Assim.2. Alguns nomes lembram os fabricantes da interface. a interface pode se chamar ix0. se tivermos mais de uma interface do mesmo tipo.7. WD8013. alguns sistemas e usam nomes dif´ ıceis de se memorizar.1. o comando localiza-se em /sbin/ifconfig. le2.3. NI5210. COMANDOS FUNDAMENTAIS 53 O ifconfig ´ um comando simples e importante. O comando apresenta uma sintaxe similar `quela encontrada no Unix. a unica diferen¸a do comando no Linux em rela¸˜o ao FreeBSD ´ o nome da ´ c ca e interface.2 route Dois tipos de roteamento existem no TCP/IP: o roteamento est´tico onde informa¸˜es de a co roteamento ficam armazenadas numa tabela fixa e dinˆmico. que lembra Lance Ethernet. • ie0: AT&T Startlan 10 e EN100. teremos le0. le1. • ep0: 3C509. no SunOS 4. NE2100. a 7. alguns nomes e usados s˜o: a • ed0: nome da interface para NE1000. WD8003. Normalmente. • de0: DEC DC21x40 PCI que inclui uma placa para Ethernet 100. NE32-VL).1. • lnc0: Lance PC/Net cards (ISOLAN. Se a placa ´ a Intel EtherExpress. a interface Ethernet mais comum ´ a le0. e e a A sintaxe do programa route ´: e . • ix0: Intel EtherExpress. onde informa¸˜es de roteamento a co s˜o trocadas entre os v´rios roteadores.1.

54 ROUTE(8) NAME CAP´ ITULO 7. Isso ´ necess´rio pois a ixtoto n˜o est´ na rede local (ethernet) da zeppelin e e a a a sim conectada via LP at´ a rapper.228. se n˜o houver nenhuma e a a outra rota espec´ ıfica.107. gradativamente. Veja: #route add default sl0 Note o uso do nome da interface diretamente no comando (sl0). a No Linux. PARTE 1 UNIX System Manager’s Manual ROUTE(8) route . O uso desse d´ e ıgito est´. SYNOPSIS route [-nqv] command [[modifiers] args] DESCRIPTION Route is a utility used to manually manipulate the network routing tables. Um exemplo do comando ´ dado a seguir: e route add default 143. a a Outro exemplo seria: #route add 143. sendo descontinuado. The route utility supports a limited number of general options.228. o comando de roteamento ´ muito parecido com aquele encontrado no Free eBSD.manually manipulate the routing tables.49 2 Esse comando pode ser dado na m´quina zeppelin. O n´mero 2 indica que dois “hops” devem ser percorridos e u para se chegar at´ a ixtoto.49 que ´ a e rapper.49 Esse comando ´ utilizado na m´quina ixtoto para dizer que.51 143.228.228.107.5. os datagramas IP devem ser enviados ao roteador 143.107. enabling the user to specify any arbitrary request that could be delivered via the programmatic interface discussed in route(4). Os datagramas s˜o enviados pela interface sl0 que liga a ixtoto ` rapper. as a system routing table management daemon such as routed(8). para se a e acessar a ixtoto.107. . It normally is not needed. As op¸˜es de comando mais importantes s˜o: co a • add: adiciona a rota ` tabela de roteamento.107. INTERFACE COM SISTEMA OPERACIONAL. a • delete: remove a rota da tabela. cujo IP ´ 143. but a rich command language.228. should tend to this task.

. a A sintaxe do comando slattach pode ser vista a seguir: SLATTACH(8) NAME UNIX System Manager’s Manual SLATTACH(8) slattach . Esse comando n˜o ´ padr˜o no UNIX mas muitas vers˜es desse sistema operacional a e a o j´ incluem o comando. COMANDOS FUNDAMENTAIS 55 7. -h -l -n -r redial-command Specifies a command to be invoked within a shell (sh -c redial-command) whenever carrier is lost on the line. disable modem control (CLOCAL) and ignore carrier detect on the slip port. The following operands are supported by slattach: -a Autoenable the VJ header compression option. -c -e exit-command Specifies a command to be invoked within a shell (sh -c exit-command) before slattach exits.3 slattach O comando slattach ´ utilizado para se definir uma interface de rede do tipo slip sobre uma ine terface serial. -f Disables the invocation of daemon() to run slattach in the background.2.attach serial lines as network interfaces SYNOPSIS Slattach [-a] [-c] [-e exit-command] [-f] [-h] [-l] [-n] [-r redial-command] [-s baudrate] [-u unit-command] [-z] ttyname DESCRIPTION Slattach is used to assign a tty line to a network interface. Enables the VJ header compression option. Turn on cts/rts style flow control on the slip port. Note that both ends of the link must be able to use VJ header compression for this to work. By default the redial-command is invoked upon carrier drop and slattach aborts if no redial-command is specified. by default no flow control is done. if the other end of the link is capable of VJ header compression then it will be used otherwise normal headers will be used. The slip interface will ignore ICMP packets to prevent slow lines being saturated by ICMP responses.2. Throw away ICMP packets. and to define the network source and destination addresses.7.

use the ‘-u unit-cmd’ option to specify a script or executable that will be invoked as ‘sh -c unit-cmd old new. The first to succeed in reconnecting will get the lowest unit number. use ‘kill -HUP’ (SIGHUP) which causes slattach to think carrier was lost and thus invoke ‘sh -c redial-command’ to reconnect to the server.56 CAP´ ITULO 7. If you use a hard-wired connection rather than a modem. The unit number can change after redialing if you are using more than one slip line. Specifies the name of the tty device.’ where old and new are the slip unit numbers before and after reconnecting the line. If not specified. the script could redial the server and log in. use ‘‘ifconfig interface-name down’’ after killing off the slattach process using ‘kill -INT’. PARTE 1 -s baudrate Specifies the speed of the connection. invoke slattach with the ‘-l’ option in order to ignore carrier on the slip line. -z forces redial redial-cmd upon startup irrespective of carrier. For example. To detach the interface. The unit number can change if you have more than one line disconnect at the same time. run ‘sh -c unit-command <last> <current>’ where <last> and <current> are the slip unit numbers when the line was last opened and the unit number of the current slip connection respecitvely.script >kermit.’ ttyname Only the super-user may attach a network interface. use the ‘-r redial-cmd’ option to specify a script or executable that will reconnect the serial line to the slip server.log 2>&1’ . the default of 9600 is used. To kill slattach use ‘kill -INT’ (SIGINT) which causes it to close the tty and exit. EXAMPLES slattach slattach slattach slattach DIAGNOSTICS ttyh8 -s 4800 /dev/tty01 -c -s 38400 /dev/sio01 -r ’kermit -y dial. INTERFACE COM SISTEMA OPERACIONAL. Ttyname should be a string of the form ‘ttyXX or’ ‘/dev/ttyXX. To reconfigure the network interface in case the slip unit number changes. Interface-name is the name that is shown by netstat(1) To setup slattach to redial the phone when carrier is lost. -u unit-command When the line is switched to slip discipline. etc. Slattach will abort if the unit number changes and ‘-u unit-command’ was not specified. To force a redial.

SEE ALSO netstat(1).255. FILES /var/run/slattach. com um exemplo do ixtoto executando FreeBSD ´: e #slattach -s 115200 -h /dev/cuaa1 #ifconfig sl0 143. A op¸˜o -s indica a velocidade da porta serial.255. This file contains the numerical process ID of the slattach process and can be examined by scripts in oder to send a signal to slattch.228.2. netintro(4).4 Resumo O conjunto de comandos para configurar uma interface.9 netmask 255.0 #ifconfig ed0 200.0 #route add default 143.51 143.228. the user is not privileged and tried to alter an interface’s configuration are logged there.107.255.<tty>. Slattach also logs failure to set the controlling terminal or failure to install signal handlers.9 .107. 4. 7. o comando ser´: a #/usr/sbin/slattach -s 115200 -p slip /dev/cua1 & Note que o protocolo slip ´ especificado e que ´ preciso colocar o sinal de “background” e e para o processo. with <tty> replaced by the terminal path name component of ttyname.2. que em DOS ´ e e chamado de COM2. the requested address is unknown. rc(8) HISTORY The slattach command appeared in 4. O dispositivo serial 1 ´ a segunda porta serial do hardware do PC. A op¸˜o -h exige o handshake de ca ca hardware. COMANDOS FUNDAMENTAIS 57 Look for error messages in /var/log/messages (slattach is a daemon).1 netmask 255. Messages indicating the specified interface does not exit. 1993 2 Um exemplo de utiliza¸˜o desse comando pode ser visto a seguir: ca #slattach -s 115200 -h /dev/cuaa1 Esse comando ´ usado no FreeBSD para configurar o protocolo slip na linha serial 1 e (/dev/cuaa1). ifconfig(8).1.255.1.3 Berkeley Distribution April 4. Upon connection and redial the ttyname and baud rate are logged and on shutdown the ttyname is logged.107.3BSD. No Linux.7.228.pid.

o programa que executa o sistema operacional ´ tratado pelo nome geral de kernel.58 CAP´ ITULO 7. O arquivo a seguir mostra um exemplo de hosts simples.228. u 127. Se n˜o tiver. INTERFACE COM SISTEMA OPERACIONAL.1 143. PARTE 1 7.ifq.br ixtoto Os computadores desse arquivo podem ser acessados diretamente pelo nome. a ´ E importante saber se o kernel j´ tem os assim chamados device drivers para as a interfaces de rede.228.51 localhost ixtoto. Mesmo no caso de um controlador de dispositivo que j´ exista no kernel. Esse arquivo cont´m algumas liga¸˜es est´ticas entre nomes de computadores e e co a seus respectivos n´meros IP. o kernel padr˜o do a a a FreeBSD para a interface de rede ethernet ed0 (em barramento ISA .4 Arquivos Importantes In´meros arquivos s˜o importantes na configura¸˜o do TCP/IP no UNIX. agora por´m menu a ca e cionaremos apenas dois.107. Por exemplo. e Por exemplo.5 .br nameserver 143.sc.0.3 O kernel No UNIX. Outro arquivo importante na resolu¸˜o de nomes ´ o resolv.usp.conf. 7. Sistemas operacionais modernos permitem que certos controladores possam ser “linkados” dinamicamente. Nomes a o como vmunix ou unix s˜o comuns.0.sc. pode ser preciso recompilar o kernel incluindo o controlador a de dispositivo. O primeiro ´ o arquivo de hosts que normalmente se localiza em e /etc/hosts. normalmente localizado no subdica e ret´rio /etc/resolv.n˜o h´ problema quando a a ´ o barramento ´ PCI) vem configurado para endere¸o de I/O 0x280 e interrup¸˜o 5. A seguir mostramos um exemplo simples desse arquivo: o domain ifq.107. no FreeBSD esse programa est´ no diret´rio raiz e tem o nome kernel.usp. ´ importante a e verificar quais os parˆmetros para os quais ele est´ configurado.conf. E poss´ e c ca ıvel mudar esses os valores sem recompilar o kernel mas isso pode n˜o ser poss´ em muitos sistemas a ıvel operacionais.

Esse processo leva a erros frequentes e o a a se o usu´rio quiser fazer a mesma liga¸˜o duas horas depois. A solu¸˜o que as TELEs brasileiras adotam de fornecer ıs ca n´meros 121 em v´rias localidades ameniza o problema mas ainda ficamos numa situa¸˜o u a ca insatisfat´ria j´ que ´ preciso contactar um operador humano com a consequente perda de o a e tempo e ´ preciso tamb´m saber qual o DDD a ser colocado antes do 121. em ordem alfab´tica. A solu¸˜o cl´ssica da telefonia ´ a utiliza¸˜o de listas e u o ca a e ca contendo. Lembre-se que o n´mero IP ´ um inteiro de 32 bits normalmente representado u e como uma sequˆncia de 4 bytes separados por um ponto. mais geralmente. e e para se obter informa¸˜es de telefone na cidade de Blumenau em Santa Catarina. Mesmo se o n´mero for achado na lista ´ preciso que ele seja anotado e discado no aparelho u e telefˆnico j´ que este n˜o entende o conceito de nome. os mecanismos de resolua c˜o de nomes s˜o raramente entendidos corretamente pelos iniciantes em redes de computadores. De fato. ´ imposs´ manter-se um conjunto de listas de todas as cidades e ıvel do pa´ e muito menos do mundo. O problema ´ u u a e parecido com aquele de se utilizar o telefone: sempre que queremos ligar para algu´m. Essa solu¸˜o ´ inconveniente por e c ca e v´rios motivos: a 1. o 2. o Toda interface de m´quina ligada ` Internet (ou. ¸a a Trata-se tamb´m de um t´pico n˜o abordado (ou abordado apenas superficialmente) em cursos e o a introdut´rios de redes de computadores. todos os assinantes do servi¸o.1 O Domain Name System Apesar de sua enorme importˆncia no conjunto de protocolos TCP/IP. Por exemplo. ´ preciso e e saber qual ´ o seu n´mero telefˆnico. ´ preciso co e 59 .Cap´ ıtulo 8 DNS 8. Toda a comuu ´ nica¸˜o entre duas m´quinas envolve os seus n´meros IP que estar˜o presentes nos pacotes IP ca a u a por elas trocados. ele dever´ novamente procurar a ca a na lista telefˆnica (a n˜o ser que ele tenha uma excelente mem´ria ou deixe um “post-it” o a o pr´ximo ao telefone com o n´mero desejado o que por sua vez cria um outro problema: o o u excesso de papel ao redor do aparelho telefˆnico). ligada a qualquer a a rede que usa os protocolos TCP/IP) tem um n´mero IP unico a ela associado. e Um problema ´bvio do endere¸amento IP para os usu´rios ´ que ´ muito dif´ se o c a e e ıcil aprender e memorizar os n´meros IP de mais do que uma d´zia de m´quinas. N˜o ´ f´cil localizarem-se n´meros telefˆnicos que n˜o estejam na localidade de onde dever´ a e a u o a a partir a chamada.

usp.br enquanto a UNIMED responde por unimed. “gov” para institui¸˜es governamentais nos EUA. O sistema de nomes descrito acima ´ conhecido como DNS do inglˆs “Domain Name e e System”. Assim.nomedaempresa. INTERNIC) com o n´mero IP da m´quina a que ele se referia.sc.com. por exemplo. associados ao n´mero IP j´ que s´ esses tem validade nos n´ u a o ıveis mais baixos de protocolo.br O nome mais a direita.60 CAP´ ITULO 8. “mil” para o setor militar americano e “sigla” para co os pa´ ıses fora dos EUA. considere o nome da ultra3000 do IFSC: uspfsc. Com a existˆncia de mais de uma operadora telefˆnica no e o pa´ o problema se agrava ainda mais.br”. o nome da ultra3000 ´ uspfsc. no caso. o nome mais a direita representa o n´ e ıvel mais alto da hierarquia (n´ mais abrangente) enquanto o nome mais a esquerda representa o n´ ıvel ıvel menos abrangente (normalmente o nome da m´quina) e mais baixo na hierarquia. Finalmente. Esse esquema de nomes rapidamente se u a tornou invi´vel com o crescimento explosivo de m´quinas ligadas a Internet j´ que o problema a a a de memoriza¸˜o e o de colis˜o de nomes acaba se tornando muito grave. ıs. o nome ´ diferente. No Brasil foi decidido que sob o e “br”.ifsc. O sub-dom´ ca o ınio ifqsc ´ controlado no Instituto de F´ e ısica e Qu´ ımica de S˜o Carlos. A solu¸˜o da comunidade do TCP/IP foi a cria¸˜o de nomes que devem ser.br. o nome de uma m´quina ´ dado como a a e uma sequˆncia de nomes separados por ponto. Dentro do “br” tem-se o dom´ ınio “usp” que se refere `s m´quinas da Universia a dade de S˜o Paulo. ´ autoridade no dom´ u e ınio itau. ou seja o “br” refere-se ao dom´ ınio mais amplo. DNS discar-se 048-121 apesar do DDD de Blumenau ser 047. a Note que o sistema hier´rquico de nomes permite que diferentes organiza¸˜es usem a co o mesmo nome para alguns computadores: de fato. Por exemplo. de alca ca guma maneira. as universidades e centros de pesquisa ganhariam um espaco diretamente abaixo de “br”: por exemplo temos “unicamp. J´ as institui¸˜es comerciais ficariam todas no sub-dom´ a co ınio “com”. praticamente todas as grandes empresas americanas tem uma m´quina chamada (ou com um alias) www. O problema se agrava em liga¸˜es co internacionais onde tal servi¸o n˜o existe e onde o usu´rio se defronta com o problema de c a a falar uma l´ ıngua estrangeira. para o Reino Unido ´ “uk” e e (United Kingdom). esses nomes eram compostos apenas de uma sequˆncia de caracteres que e eram associados centralmente (no Network Information Center — NIC — hoje.com j´ que. . e A autoridade sobre os dom´ ınios amplos (mais a direita) ainda ´ do INTERNIC que e delega os sub-dom´ ınios para as institui¸˜es de direito. o dom´ co ınio “br” ´ controlado e pela FAPESP em S˜o Paulo que por sua vez deu o dom´ a ınio usp para a Universidade de S˜o a Paulo (aqui representada pelo Centro de Computa¸˜o Eletrˆnica — CCE). o dom´ ınio Brasil. Surge ent˜o o esquema ca a a hier´rquico de nomes de computadores. “com” para as empresas comerciais americanas. e Dentro da Internet. No in´ ıcio. se a a o nome da empresa muda. Exemplos s˜o: “edu” a a a para o sistema educacional nos EUA. o dom´ ınio para o Brasil ´ “br”.com. alguns nomes de dom´ ınio j´ est˜o definidos. Dentro do dom´ a ınio (ou sub-dom´ ınio) usp. para a Alemanha ´ “de” (Deutschland) etc. O Banco Ita´. a Para se entender melhor essa nomenclatura. tem-se o sub-dom´ ınio sc que se refere aos computadores da USP em S˜o Carlos. Nesse esquema. O “ifsc” refere-se ao Instituto de F´ a ısica de S˜o a Carlos.

deve-se ter em mente que a Internet pode funcionar perfeitamente sem a resolu¸˜o de nomes j´ que os protocolos todos funcionam com o n´ mero IP e n˜o ca a u a com o nome. A diferen¸a com aplica¸˜es e c co como telnet e ftp ´ que a maioria das m´quinas da Internet n˜o est´ configurada para rodar o e a a a servidor de nomes enquanto praticamente todas executam o servidor telnet e o ftp (´ claro que e m´quinas que rodam sistemas operacionais monousu´rios tais como DOS e Windows 3.z. Apesar de ambos tratarem com bases de informa¸˜es distribu´ co ıdas. Em primeiro lugar.y. o caso mais simples onde simplesmente se deseja descobrir o endere¸o IP e c de uma determinada m´quina cujo nome sabemos ser x. O servidor ent˜o verifica se ele ´ “autoridade” no dom´ a a e ınio z. basta fazer telnet IP onde IP ´ o n´mero IP do computador remoto e e u e nenhuma resolu¸˜o de nomes acontecer´ (na verdade. Se for. se queremos ter acesso a um computador remoto atrav´s do servi¸o de e c transferˆncia de terminal.1. eles tem objetivo bastante distintos. A maioria das m´quinas por´m. n˜o se deve confundir o DNS com o Network Information Service (NIS) a anteriormente conhecido como “yellow pages” ou YP.8. O servidor de nomes inicial pergunta para o servidor que ´ autoridade em z qual o endere¸o de x. ele verifica em suas tabelas qual o IP da m´quina x. Assim. Considere com aten¸˜o.y.1 Resolu¸˜o de nomes no DNS ca Apesar do DNS ser um sistema intuitivo e f´cil de se compreender. ca co Outro conceito que se deve ter em mente ´ que o DNS ´ um servi¸o que est´ conceie e c a tualmente no n´ de aplica¸˜o do ISO/OSI.y. na camada 7. por´m. Consideremos o c primeiramente.z seja determinado. O servidor raiz ent˜o responde para o requisitante o endere¸o de um servidor de a c nomes que ´ autoridade no dom´ e ınio z.1 tˆm a a e mais dificuldades em executar esses servidores). e c Alguns pontos devem ser ressaltados no processo descrito acima: . a O software cliente DNS da m´quina que quer saber o n´mero IP (conhecido por “rea u solvedor”) verifica na configura¸˜o local qual ´ o n´mero IP do servidor de nomes que deve ser ca e u utilizado. alguns servidores telnet poder˜o tentar ca a a fazer uma resolu¸˜o reversa mas deixemos esse detalhe para se¸˜es subsequentes).1. s˜o clientes a e a do DNS. uma requisi¸˜o ´ ent˜o mandada para o servidor perguntando qual o endere¸o IP da ca e a c m´quina x.z. O DOMAIN NAME SYSTEM 61 8. ´ importante lembrar que o DNS tamb´m ´ usado para auxiliar no envio de mensagens e e e eletrˆnicas (e-mails) em cujo caso.y. O objetivo a ca fundamental desta resolu¸˜o ´ associar-se o nome conhecido ao n´mero IP correspondente. Finalmente. Analisemos ent˜o o funcionamento da resolu¸˜o de nomes numa rede IP. ou seja.y.z e retorna ao requisitante. os conceitos descritos abaixo.y. Em caso negativo. ´ importante lembrar que. ele a envia uma requisi¸˜o para um “servidor raiz” da Internet para descobrir quem ´ autoridade no ca e dom´ ınio z. Na ca e u verdade. Ele se utiliza do UDP para ıvel ca ´ transportar as requisi¸˜es e respostas. O c e processo continua at´ que o endere¸o IP de x. existem muitos detalhes na a resolu¸˜o de nomes que podem ser bastante confusos para o iniciante. ca ca portanto. O novo servidor ou responde com o IP de x.z”. o DNS ´ implementado como um sistema cliente-servidor.z. Em terceiro lugar. mais de um endere¸o IP pode estar envolvido. As m´quinas que rodam o servidor do DNS s˜o a a chamadas de name servers ou servidores de nome. assim como as demais aplica¸˜es do e co TCP/IP.z ou e c responde com o endere¸o de ainda um outro servidor de nomes que ´ autoridade em “y. E comum para o iniciante em rede achar que o DNS ´ co e um protocolo de camada 3 e confundir o processo de resolu¸˜o de nomes com o de roteamento ca com o qual o DNS nada tem a ver.

initialize cache of Internet domain name servers .INTERNIC.203. submenu InterNIC Registration Archives .NET.NET. C.ROOT-SERVERS.ISC.10. . 3600000 A 192.12 .NET . 3600000 NS C. . DNS 1. .0.90 . . formerly NS. configuration file of BIND domain name servers). 3600000 A 198.MIL .9. F.5. -OR. .ROOT-SERVERS. file named. A.DDN.NET.NIC. . formerly TERP.NET. 3600000 IN NS A.root .NET. formerly C.ROOT-SERVERS. 3600000 NS E.ROOT-SERVERS. formerly NS1. under anonymous FTP as .0.230. 3600000 A 192.NET.NASA.under Gopher at RS.UMD. Essa lista normalmente est´ localizada num arquivo c a chamado named.NET.NET.ORG . . .EDU .root .g.ROOT-SERVERS. <file>" . under menu InterNIC Registration Services (NSI) .ROOT-SERVERS.10 .ROOT-SERVERS. . 3600000 A 192. D.ISI.ROOT-SERVERS. file /domain/named.RS. . 3600000 NS D. .INTERNIC. related version of root zone: 1995110800 .EDU . reference this file in the "cache .GOV . last update: Nov 8. .NET. This file is made available by InterNIC registration services . (e.ROOT-SERVERS. . 3600000 NS G.62 CAP´ ITULO 8.107 .ROOT-SERVERS. . . 3600000 A 128.241 .4.4 . 3600000 NS B.INTERNIC. 3600000 NS F.33. formerly NS. 1995 .8. .NET. B.ROOT-SERVERS. .NET . formerly NS. 3600000 A 128. Todo servidor de nome deve ter uma lista de endere¸os dos “servidores ra´ c ızes” para que ele saiba onde come¸ar sua busca.41.PSI.NET.NET. This file holds the information on root name servers needed to . formerly NS. .ROOT-SERVERS. on server FTP. E.NET.NET .NET .5. .root e tem o formato mostrado a seguir: .ROOT-SERVERS.

Se as conex˜es e a o com servidores distantes n˜o estiverem dispon´ a ıveis.2 O DNS e o Sistema Operacional Unix O cliente DNS.2. este tentar´ perguntar a um outro servidor raiz. ´ sempre o servidor de nomes cujo endere¸o ´ configurado no cliente que e c e se responsabiliza por perguntar aos outros servidores de nome at´ finalmente chegar ao e n´mero IP. . ou seja. search ifqsc. Para aumentar a eficiˆncia do processo. 3600000 I.ARL.ROOT-SERVERS. Essas co ca rotinas se utilizam da configura¸˜o de um arquivo. Ele s´ desistir´ se nenhum servidor a o a raiz estiver dispon´ ıvel. O DOMAIN NAME SYSTEM G.sc. Por sua vez. os servidores fiquem mais pr´ximos o fisicamente do computador requisitado.148. para se descobrir o endere¸o IP de e c uma m´quina que esteja fisicamente pr´xima a m´quina requisitante (por exemplo.MIL .NET.NORDU.ROOT-SERVERS. Um exemplo de uma resolv. 3600000 . 5.53 NS A I. formerly AOS. . Assim.NET . End of File A 192.usp. 3600000 H.conf t´ ıpico pode ser visto a seguir: domain ifqsc. normalmente localizado em /etc chamado ca resolv.br nameserver 143. o servidor de nomes armazena os resultados de e suas requisi¸˜es numa estrutura tempor´ria chamada “cache”.228.sc. a maioria dos servidores de nome faz requisi¸˜es iterativas co aos servidores ra´ ızes e aos subsequentes o que significa que ele s´ recebe ponteiros para o servidores “mais pr´ximos” da autoridade no IP que ele busca. No caso normal. 3600000 . ´ as vezes imposs´ e ıvel se descobrir o n´mero IP de uma m´quina que est´ localizada num pr´dio do outro lado da rua com a u a a e qual se tem conectividade total.51 . Se por algum motivo. Os v´rios servidores de nomes est˜o espalhados pela Internet n˜o havendo nenhuma garana a a tia que.br totolocal. um “servidor raiz” n˜o responder a uma requisi¸˜o do servidor de a ca nomes. . ıcil co a 3. O cliente (“resolver”) sempre faz requisi¸˜es a co recursivas para o servidor de nomes que se vˆ ent˜o obrigado a responder com o n´mero e a u IP desejado.4 63 NS A H.1.17 2. a medida que se aproximam do nome desejado. ´ implementado por um conjunto de rotinas que s˜o chamae a das por aplica¸˜es que necessitam da resolu¸˜o de nomes para seu correto funcionamento. existem dois tipos de requisi¸˜es a um servidor de nomes: as u co recursivas e as iterativas (ou n˜o recursivas).usp.1.36.8.63. formerly NIC.ARMY. Uma consequˆncia desagrad´vel do ´ e a ıtem anterior ´ que.usp. Assim.36. numa a o a mesma universidade) ´ muitas vezes necess´rio percorrer-se o mundo todo. Na verdade.NET. 3600000 . 192. ele n˜o precisar´ percorrer os diversos a a servidores novamente.conf.NET. 8. . quando uma nova co a requisi¸˜o sobre o mesmo dom´ ca ınio lhe for efetuada. 128. o resolvedor.112.br. 6. N˜o existe rela¸˜o entre a rota seguida por pacotes a ca IP e a sequˆncia de computadores consultados para se associar um nome a um n´mero IP.NET.sc. e u 4.ROOT-SERVERS.NET. ele faz o trabalho o dif´ fazendo requisi¸˜es iterativas para v´rios servidores de nome.107.ROOT-SERVERS.ROOT-SERVERS.

.11 128. Esse programa se utiliza de um arquivo de configura¸˜o que ´ um ca e dos parˆmetros quando named ´ executado. a e chama-se: /usr/sbin/named -b /etc/named.rev.228 totolocal.rev primary primary primary primary ifqsc.br. DNS Note a utiliza¸˜o do diretivo “search” que indica o que deve ser adicionado ao nome ca para se ter o nome completo do “host”.ARPA db. Esse programa executa requisi¸˜es de resolu¸˜o de nomes e co ca interativamente. example primary server config: . para se iniciar o servidor de nomes.133.107.1.boot 5.0.1 ucbhosts. ou seja.11 128. 0.IN-ADDR.0.v 1.ifqsc 228.1 (Berkeley) 6/30/90 . . ´ normalmente um programa chamado e named de “name daemon”.IN-ADDR.IN-ADDR.1 ucbhosts. db. Por exemplo. secondary Berkeley.sc.0 directory . sortlist 128. O servidor do DNS. uma ferramenta bastante interessante ´ o programa nslookup.boot ´: e .usp.toto_local 1.IN-ADDR. example secondary server config: .1.3 1995/03/23 08:43:02 rgrimes Exp $ From: @(#)named.130.1 8.boot.ARPA db. db.127.32.3.bak .10.ARPA ucbhosts. Note that there should be one primary entry for each SOA record.rev .32. type cache primary domain .143.secondary 32. boot file for secondary name server .10.ARPA /etc/namedb source host/file backup file named.3 nslookup Para se entender e depurar o funcionamento de um servidor de nomes.usp.sc. primary 32.128.br.1.133. primary Berkeley.IN-ADDR.107.bak .143.128. example sortlist config: .root localhost.32.64 CAP´ ITULO 8.boot Um exemplo de arquivo named.130.32. o servidor de nomes. $Id: named.ARPA 128.EDU ucbhosts . Considere a transcri¸˜o abaixo que ilustra o potencial do nslookup: ca toto@ixtoto:ttyp3 ~ (166)> /usr/sbin/nslookup .EDU 128.

ROOT-SERVERS.com Served by: .man.NET > server G.ROOT-SERVERS.usp.G.NET .uk.NET Address: 192. Server: ixtoto.com.NET Default Server: G.228.107.36. Server: ixtoto.NET 192.NET .ROOT-SERVERS.ROOT-SERVERS.br Address: 143.ROOT-SERVERS.36.NET .51 Name: www.228.uk.ac.ac.228.8.A.ac.br Address: 143.cs.192.usp.51 Name: r7.man.ifqsc.ifqsc.51 Non-authoritative answer: Name: r7.cs.107.228.sc.107.F.ROOT-SERVERS.B. O DOMAIN NAME SYSTEM Default Server: ixtoto.NET .ROOT-SERVERS.I.ROOT-SERVERS.51 > r7.NET .H.uk Address: 130.112.ROOT-SERVERS.D.C.E.ROOT-SERVERS.sc.cs.72 > r7.88.ifqsc.man.ifqsc.ROOT-SERVERS.sc.ford.192.usp.4 . Server: ixtoto.88.man.4 .72 > set norecurse > www.cs.ac.usp.br Address: 143.br Address: 143.uk Address: 130.ford.112.107.NET 65 .1.NET .sc.

ford.att.ford. 1) -----------SendRequest().att. want recursion.FORD.MERIT.com Address: 198.21 FORD.com > server DNS003.80.FORD. rcode = NOERROR header flags: query.com type = A. additional = 3 QUESTIONS: www.com. res_mkquery(0.FORD.80.com 198. type = A. want recursion questions = 1. Default Server: DNS003. authority records = 3. len 29 HEADER: opcode = QUERY.21 > www. type = A.com.4 Name: www. QUESTIONS: www. DNS additional = 0 ----------------------Got answer (160 bytes): HEADER: opcode = QUERY.108. class = IN ANSWERS: -> www..42 FORD.att.236 > set recurse > set debug > set d2 > www.112.21 Name: www.111.att.NET Address: 192.111. dlen = 4 .1.com. answer. class = IN.36. 1. answers = 0. answers = 1.ROOT-SERVERS. rcode = NOERROR header flags: response.com.com. recursion avail.com. questions = 1.21 .att.DNS.com .com Address: 198.com Address: 198.111.111.1.FORD. authority records = 0.com. Server: DNS003.com Served by: .ford.FORD. auth.com Address: 198. Server: G.ford.80.80. Server: DNS003. class = IN CAP´ ITULO 8.DNS003. id = 38577. id = 38577.NET 35.66 > www.89. www.

dlen = 4 internet address = 192. class = IN. class = IN. dlen = 8 nameserver = hogw1.133.com type = A.com type = A.com Address: 198.att.com type = NS.1. O DOMAIN NAME SYSTEM internet address = 198.com type = NS.att.com ttl = 86400 (1 day) ADDITIONAL RECORDS: -> kcgw1. class = IN.52.att.185. dlen = 8 nameserver = kcgw1.att.com type = A. dlen = 4 internet address = 192.185. class = IN.186.89 ttl = 86400 (1 day) -> hogw1.33 ttl = 86400 (1 day) -----------Name: www.128.152.com type = NS. class = IN.65 ttl = 1200 (20 mins) AUTHORITY RECORDS: -> att.1 ttl = 86400 (1 day) -> cagw1.com ttl = 86400 (1 day) -> att.152.com ttl = 86400 (1 day) -> att.8. dlen = 8 nameserver = cagw1. class = IN.att.att.65 > exit toto@ixtoto:ttyp3 ~ (167)> 67 .179. dlen = 4 internet address = 204.att.128.

68 CAP´ ITULO 8. DNS .

tem-se mais 16 “s´ ımbolos” que s˜o divididos em s´ a ımbolos de controle e s´ ımbolos de viola¸˜o. ´ verificado se o e o estado ´tico se alterou (se a luz estava ligada e agora est´ desligada ou vice-versa). Ao o e inv´s disso. No Ethernet. Fibras ´ticas s˜o mais tolerano o a tes a ru´ que cabos de cobre e permitem velocidades de comunica¸˜o bem maiores. Se fosse utilizado e o o mesmo esquema no FDDI. Se o estado da luz n˜o se alterou (continua apagada ou e a continua acesa). O comprimento de onda utilizado na transmiss˜o ´ o de 1300 nm. a As seguintes fibras podem ser utilizadas no FDDI: multimodo 62. o s´ ca ımbolo de 69 . que ´ aquela utilizada tamb´m na Ethernet e no Token ca e e Ring. considera-se que o bit ´ 1.5/123 µm e multimodo 50/125 µm. e ca Assim. FDDI vem de Fibre Distributed Data Interconnect. ıdo ca o custo de fibras j´ ´ menor do que o de cobre o que leva ` previs˜o de que num futuro pr´ximo ae a a o o meio fibra ser´ o mais comum para redes de computadores. Para exemplificar. para termos um fluxo de 10 Mbps.Cap´ ıtulo 9 FDDI. para um rel´gio de 125 MHz. s˜o utizados 16 “s´ ca a ımbolos de dados” (16 seriam 4 bits — 4B) derivados de 5 bits (5B). o 100 Base T e o ATM 100 Mbps se e e utilizam da codifica¸˜o 4B/5B. seria preciso um rel´gio de 200MHz o que ´ complicado e caro. ca Na codifica¸˜o 4B/5B. considera-se que o bit ´ 0. A cada 8 ns. FDDI II.1. o FDDI utiliza uma codifica¸˜o conhecida como 4B/5B (4 bits para cada 5 baud). Assim. foi proposta uma extens˜o ao protocolo que a ficou conhecida como FDDI II. Os s´ ca ımbolos de dados s˜o escolhidos de forma que nunca ocorra a a recep¸˜o de 4 ou mais bits zeros na cadeia de bits de dados.1 O Meio F´ ısico O FDDI trabalha numa velocidade de 100 Mbps sobre fibra ´tica. para acomodar melhor os servi¸os de multim´ c ıdia. Posteriormente. Em caso o a afirmativo. a e A codifica¸˜o de Manchester. Atualmente.1 FDDI FDDI ´ a sigla utilizada para definir uma rede de alta velocidade em fibra ´tica que se utiliza e o de uma topologia em anel. 100 Base T 9. ´ preciso duas transi¸˜es. estabelece que para se representar um bit. Al´m do FDDI. tem-se os desejados 100 Mbps. isso e co implica que. 9. ´ preciso um rel´gio de 20 MHz.

O anel FDDI pode ter at´ 100 km de fibra e at´ 1000 esta¸˜es. FC. Toda esta¸˜o sempre pega o pacote a ca . 41 e 4F para “frame” de a gerenciamento de esta¸˜o (SMT — Station Management). ED. A topologia do FDDI e e co com seus dois an´is pode ser vista na figura 9. SD. Uma falha unica de conex˜o ´ automaticamente corrigida pela rea ´ a e configura¸˜o do anel (com a utiliza¸˜o do segundo anel) sem nenhuma perda de funcionalidade. Esses campos s˜o compostos por 12 s´ c a ımbolos cada. 100 BASE T dados “D” (bin´rio 1101) ´ representado por 11011. Esses s´ ımbolos n˜o s˜o utilizados em nenhuma outra situa¸˜o. O campo ED ´ constitu´ ca e ıdo de um unico s´ ´ ımbolo T que indica final de “frame”. trata-se de uma ficha n˜o a restrita e se forem C0.2 Funcionamento No FDDI.70 CAP´ ITULO 9. ED. Alguns ca a valores comuns s˜o: C2 e C3 para “frame” MAC. FDDI II. SD (“starting o a co delimiter”) indica o in´ ıcio da ficha e ´ composto por um s´ e ımbolo J seguido de um K. FDDI. DA. a e A topologia do FDDI ´ em anel com redundˆncia (na forma de um segundo anel) de e a tal forma que a rede continua em funcionamento em certos casos de falha de computadores ou mesmo da conex˜o da fibra. FC. o Q ´ 00000. existe uma ficha (“token”) que constantemente circula o anel. o T ´ 01101. SA. FS. 3 ou 4 letras.1: FDDI com 8 computadores conectados 9.1. a ficha ´ especificada como um conjunto sequencial e de 4 campos: PA. PA e SD tem o mesmo significado j´ visto a para fichas. um dos estados ´ o de erro e quando algum erro de transmiss˜o ´ detectado. INFO. o I ´ 11111 etc. ela “captura a ficha” e faz a sua transmiss˜o. FC indica qual o tipo de informa¸˜o que ser´ transmitido no campo INFO. ca ca Falhas subsequentes tamb´m ser˜o corrigidas mas podem provocar a cria¸˜o de subredes descoe a ca nexas. e e e Os “frames” e a “ficha” do FDDI s˜o especificados em termos de “campos” designados a por siglas de 2. O campo FS (“Frame Status”) ´ composto e por 3 s´ ımbolos que indicam o estado do “frame”. O s´ a e ımbolo de controle J ´ 11000. de uma ficha restrita. O FCS (“Frame Control Sequence”) ´ utilizado para a a e que a esta¸˜o receptora verifique a integridade dos dados recebidos. O formato de um “frame” no FDDI ´ a sequˆncia de e e campos: PA. e 1 2 3 8 4 7 6 5 Figura 9. 40 para “frame” nulo. Finalmente ED (“ending delimiter”) marca o final da ficha e ´ composto por dois s´ e ımbolos T. SD. DA e SA s˜o respectivamente os ca a endere¸os destino e origem. Quando uma esta¸˜o ca quer transmitir. o K ´ e e 10001. O campo INFO carrega os dados propriamente ditos e podem transportar de 0 a 4478 bytes (lembre-se: dois s´ ımbolos s˜o necess´rios para cada byte). Por exemplo. Por exemplo. FCS.1. FC (“Frame Control”) indica o tipo a a ca da ficha e ´ composto por dois s´ e ımbolos: se os s´ ımbolos forem 80. PA ´ o preˆmbulo que envolve a transmiss˜o de uma s´rie de e a a e s´ ımbolos “Idle” (I) com a finalidade de comparar os rel´gios das v´rias esta¸˜es. etc.

surgiu at´ a sigla MAN — Metropolitan Area Network — e para se designar tal rede). Ela come¸ou a ser e c especificada no in´ da d´cada de 80 e no in´ da d´cada de 90 j´ era encontrada nas principais ıcio e ıcio e a universidades americanas e em algumas empresas grandes dos EUA. ela passa o pacote para a pr´xima esta¸˜o. Assim como o pacote Ethernet. Depois da transmiss˜o de um a e o a pacote.9.1. a esta¸˜o transmissora passa a ficha circulante e assim concede a outras esta¸˜es o direito ca co de transmitir.2: FDDI com falha em um computador 9. Se o pacote n˜o for seu. Uma diferen¸a importante entre o pacote FDDI c e o Ethernet ´ que o primeiro cont´m informa¸˜o de roteamento (at´ 60 s´ e e ca e ımbolos) que facilitam a interconex˜o de mais de um anel FDDI.3 Frame do FDDI O FDDI apresenta um pacote consideravelmente maior que o da Ethernet. automaticamente. enquanto tem a ficha. em e a o ca caso contr´rio. os outros percebem e. O tamanho dos campos de um pacote FDDI ´ medido em “s´ e e ımbolos” de 4 bits cada um. ela mant´m uma c´pia do pacote e o retransmite. . ele leva o endere¸o destino e origem da trasmiss˜o. Sua principal utiliza¸˜o no ca in´ era a interconex˜o entre redes locais departamentais em grandes campi ou em empresas com ıcio a instala¸˜es multi-prediais. O c a endere¸o FDDI pode ser de 4 ou 12 s´ c ımbolos. Note que.1. isso foi raramente feito devido a dificuldade pol´ ıtica de instalar fibras nas cidades. ca 9.2 vemos a mesma topologia FDDI j´ a apresentada depois de uma falha no computador 4. FDDI 71 e verifica se ´ para ela. Na figura 9. 1 2 3 8 7 6 5 Figura 9. Quando um dos computadores falha. O campo de roteamento permite que uma esta¸˜o a ca especifique que um pacote deve primeiro ir para um determinado ponto para depois seguir para uma esta¸˜o destino num outro anel. a esta¸˜o n˜o passa para frente os pacotes que ca a estejam vindo pelo anel. Apesar de ser poss´ projetarem-se redes com cobertura municipal co ıvel com a tecnologia FDDI (na verdade. Ele pode chegar a at´ 4500 bytes.1. desconectam o computador quebrado da rede.4 Utiliza¸˜o e Aspectos de Mercado ca O FDDI ´ talvez a primeira das tecnologias de redes de alta velocidade.

o FDDI ainda ´ bastante utia e lizado na interconex˜o de redes locais. Apesar do a a tr´fego entre as unidades da USP n˜o ser muito significativo. a 9.3 9. se deve ao fato das ca interfaces para FDDI serem caras. Alguns problemas da Ethernet s˜o: a 1. No campus de S˜o Carlos da USP. o surgimento de redes chaveadas prejudicou muito e a aceita¸˜o do FDDI que ´ uma rede baseada em um meio compartilhado. criada na d´cada de e 70 e hoje encontrada em todas as partes do mundo. j´ a h´ alguns anos. A largura de e banda de 100 Mbps ´ dividida em 16 circuitos de 6. 100 BASE T Um grande problema para a aceita¸˜o e popularidade do FDDI. De fato. o FDDI II n˜o foi bem recebido pela ind´stria e poucas s˜o as ca a u a empresas que implementam interfaces FDDI II. Tamb´m. FDDI. A despeito de seu sucesso. O FDDI II ´ bastante similar ao FDDI com uma unica diferen¸a: ele engloba e ´ c o conceito de chaveamento de circuito que garante latˆncia baixa e constante. com suas facilidades de migra¸˜o para quem j´ possui Ethernet ca a tamb´m ajudou a diminuir o interesse pelo FDDI. foi proposto em 1994 um novo protocolo derivado do FDDI: o FDDI II. a e ıvel e Para resolver esse problema.72 CAP´ ITULO 9. Mesmo assim por´m. por exemplo. No FDDI comum. e o aproveitamento dessa largura de banda ´ bem melhor j´ que n˜o existem perdas devido a e a a colis˜es. Tamb´m.144 Mbps. ´ claro hoje que e a Ethernet (ou IEEE 802.1 100 Base T Introdu¸˜o ca Talvez a tecnologia de rede local mais bem sucedida tenha sido a Ethernet. A largura de banda dispon´ deve ser dividida por todas as esta¸˜es que queiram transıvel co mitir dados num determinado instante o que faz com que cada uma tenha uma largura de . a Apesar da inova¸˜o. Finalmente. o FDDI ainda sup˜e um meio compartilhado o que torna dif´ a o e o ıcil boa utiliza¸˜o da rede para aplica¸˜es de multim´ ca co ıdia que exigem boa largura de banda e latˆncia e fixa. o surgica e mento do 100 Base T e 100 VG. n˜o ´ poss´ garantir-se uma latˆncia constante no FDDI. est´ dispon´ a a a ıvel. Cada um desses circuitos pode ser e subdividido em 96 canais de 64 kbps. o a e 2. 9.2 FDDI II As redes FDDI apresentam uma largura de banda bastante superior a da Ethernet. a rede FDDI garante que n˜o exista a a a estrangulamento interno ao campus no acesso `s linhas da Internet que partem do CISC.3. uma rede FDDI que interliga os v´rios institutos e departamentos.3) tem limita¸˜es s´rias que n˜o podem mais ser aceitas em ambientes co e a onde um bom desempenho seja fundamental. sofrem de uma latˆncia constante de 125 µs entre n´s independente do tr´fego e o a da rede. FDDI II. e Apesar dos problemas apontados no par´grafo anterior. esse atraso pode chegar a v´rios milisegundos. A largura de banda de 10 Mbps j´ pode ser considerada pequena para os avan¸os teca c nol´gicos da ´rea na d´cada de 90. Circuitos estabelecidos entre duas esta¸˜es para transmitir co voz.

os dispositivos de 100 Base T passam a funcionar como 10 Base T se pelo menos um outro dispositivo da mesma rede funcionar na velocidade mais baixa. 4. 100 BASE T banda efetiva pequena quando existirem muitas esta¸˜es conectadas. como interfaces comuns 10 Base T. o IEEE definiu uma norma que ficou conhecida como “fast ethernet” ou 100 Base T. co 73 3. A grande vantagem do 100 Base T ´ que ele d´ e a ao projetista uma forma de aumentar a velocidade de uma rede 10 Base T com relativamente poucas modifica¸˜es na topologia. Sem c o o cabo coaxial. a migra¸˜o torna-se ainda mais simples.3. a princ´ ıpio. Para tentar aliviar alguns desses problemas. A existˆncia de placas com as duas interfaces permite que o gerente da rede e compre gradativamente tais placas e as use. Quando ele tiver todas as interfaces de uma sub-rede com interface dupla. 9. assim como na ethernet. E claro que ´ necess´ria a compra de interfaces e hubs (ou chaves) novos e a que implementem o novo protocolo. no cabeamento e. Em situa¸˜es onde a carga da rede ´ “pesada”. Mesmo com co tudo isso por´m. principalmente. A utiliza¸˜o de chaves 100 Base T pode aliviar o problema que a tecnologia tem de ca ainda ser baseada em um meio compartilhado. a problemas de baixa eficiˆncia com carga alta. De ca fato. em 100 Base FX. Se os equipamentos 100 Base T implementarem o Nway. pelo Nway. nos aplicativos (software) co ´ que se utilizam da rede.2 Caracter´ ısticas do 100 Base T Trˆs s˜o os tipos de meios f´ e a ısicos poss´ ıveis no 100 Base T (note a ausˆncia do cabo coaxial): par e tran¸ado n˜o blindado (UTP) categoria 5 (2 pares de cobre) especificado em 100 Base TX. O formato do pacote ´ idˆntico ao da ethernet original o que implica que o usu´rio pode e e a se utilizar de suas aplica¸˜es atuais sem modifica¸˜es. a norma permite que. Se uma interface apenas for alocada por porta da chave. a a a a . Duas outras caracter´ ısticas facilitam a migra¸˜o de 10 Base T para 100 Base T: a ca existˆncia de placas com as duas interfaces por um pre¸o um pouco maior que o da interface e c comum 10 Base T e uma nova caracter´ ıstica (que infelizmente ´ opcional) da norma conhecida e como “Nway”. a rede passa automaticamente para a velocidade mais alta. ´ dif´ se utilizar uma rede Ethernet em transmiss˜es que envolvam e ıcil o multim´ ıdia. a largura de banda dispon´ co e ıvel cai muito (n˜o ´ incomum cair abaixo de 3 Mbps). Em redes carregadas (como a do IFSC). A norma ´ bastante parecida com a do 10 Base T. basta mudar o hub ou chave para uma com suporte 100 Base T que a rede passa a funcionar a 100 Mbps. efetivamente dobrando a largura de banda. Assim. A distribui¸˜o de largura de banda pelas esta¸˜es n˜o ´ previs´ ca co a e ıvel e pode ser bastante injusta. A diferen¸a fundamental ´ que o e c e tempo de um bit ´ diminuido em 10 vezes com o consequente aumento de 10 vezes da largura de e banda. Quando todos os dispositivos forem capazes de se comunicar a 100 Mbps. ainda n˜o se pode garantir que tr´fego do tipo multim´ seja convenientemente e a a ıdia transmitido j´ que n˜o existe garantia que a chave ser´ “justa” na transmiss˜o de pacotes. a e nessa situa¸˜o. etc. Tamb´m. o usu´rio a e a pode esperar segundos para conseguir enviar seus dados. 4 c a pares tran¸ados categoria 3 especificados em 100 Base T4 e a fibra ´tica. a e dificuldade de transmiss˜o de multim´ a ıdia.9. se utilize a configura¸˜o “full duplex” que permite que dados sejam passados ca ca em ambas as dire¸˜es simultaneamente. Outras caracter´ co co ısticas da ethernet original s˜o mantidas o que leva. elimina-se completamente o problema de colis˜o.3. fica impossibilitada a topologia de barramento e torna-se essencial a presen¸a de c um hub ou de uma chave.

mais simples do que adotar um novo padr˜o. Maiores detalhes bem como vantagens e desvantagens do 100VG ser˜o vistos na pr´xima apostila. FDDI: o FDDI ´ uma tecnologia mais antiga e mais madura apesar de mais cara. por ser uma solu¸˜o barata. Tamb´m. a Como principais competidores. expans˜es de centenas de vezes na o largura de banda efetiva s˜o poss´ a ıveis. o das redes locais de alto desempenho. Est´ claro que isto n˜o ´ poss´ o a a a e ıvel com o 100 Base T. se for necess´rio se mudar a rede atual. o 100 VG tem como objetivo o mesmo mercado do 100 Base T. a o 3. ATM ou Fibre Channel: muitos projetistas e gerentes de rede acreditam que. ele enfrenta: 1. por mais que ele seja parecido com o antigo. 100 VG AnyLAN: talvez o maior competidor do 100 Base T. Desta forma ´ poss´ reduzir as colis˜es na rede existente com grande e ıvel o ganho em largura de banda efetiva sem a introdu¸˜o de qualquer interface ou hub novos.3 Utiliza¸˜o e Aspectos de Mercado ca Apesar de ser um avan¸o em rela¸˜o ao ethernet convencional. Com o ATM e Fibre Channel. A e aloca¸˜o de largura de banda no FDDI ´ intrinsicamente mais justa e mais eficiente o que ca e faz com que muitos projetistas o prefiram ao 100 Base T. 100 BASE T 9. qual seja. FDDI. pode ser uma escolha interessante para quem e ca est´ come¸ando agora com sua rede local e quer algo mais do que a ethernet tradicional. 2. a c . FDDI II. ca a 4. n˜o ´ claro que o 100 Base T seja c ca a e ou ser´ um sucesso de mercado.3. deve-se ir para um protocolo ou filosofia que permitam a expans˜es consider´veis na largura de banda efetiva. A grande vantagem do 100 Base T em rela¸˜o a todas essas solu¸˜es ´ que ele apreca co e senta um consider´vel ganho de velocidade com m´ a ınimo de transforma¸˜o da rede ethernet j´ ca a existente. ´ introduzir um conjunto de chaves a e na topologia atual.74 CAP´ ITULO 9. Redes Chaveadas: para muitos gerentes de sistema. ca Maiores detalhes desta solu¸˜o ser˜o vistos posteriormente.

A consequˆncia ´ a e e uma conex˜o r´pida. n˜o existe mecanismo para estabelecimento de conex˜o. e toda a funcionalidade da camada 3. O roteamento n˜o pode ser mudado dinamicamente.Cap´ ıtulo 10 Introdu¸˜o ao Frame Relay ca 10.1 Introdu¸˜o ca Esta apostila apresenta uma breve introdu¸˜o aos aspectos t´cnicos do protocolo Frame Relay. o Frame Relay foi projetado para suportar Permanent Virtual Circuit (PVC) e Switched Virtual Circuit (SVC). Equipamentos inteligentes do lado do usu´rio para a execu¸˜o do protocolo. Assim.1 apresenta uma compara¸˜o dos dois protocolos atrav´s de um diagrama ca e de estado. mas.25. De fato. a ıdo 75 . o Frame Relay pode ser encarado como uma simplifica¸˜o a ca do protocolo X. Originalmente. Linhas de transmiss˜o com melhor qualidade (menor ru´ e menor possibilidade de erros). com baixa latˆncia. a a e o O protocolo Frame Relay permite a multiplexa¸˜o simultˆnea de 1024 canais sobre ca a uma unica liga¸˜o f´ ´ ca ısica. sendo estas predefinidas a a pelo gerente da rede.2 Aspectos T´cnicos: O Frame Relay e Como j´ foi visto na apostila anterior. e a A figura 10. ca e 10. ideal para conex˜es entre LANs. Assim como no caso do X. o Frame Relay especifica a UNI (user network interface) que conecta o equipamento do usu´rio ao n´ processador Frame Relay. o Frame Relay perde a capacidade de corre¸˜o de erros na camada ca dois (e tamb´m a capacidade de retransmiss˜o). a ca 2.25. atualmente. ca e A apresenta¸˜o ´ fortemente baseada no livro de Daniel Minoli “Enterprise Networking”. somente o PVC est´ sendo implemena tado. Trˆs s˜o as hip´teses em a o e a o que se baseia o Frame Relay segundo Minoli: 1.

INTRODUCAO AO FRAME RELAY ¸˜ Figura 10.25. Minoli.1: Compara¸˜o entre Frame Relay e X. pg 593 ca .76 CAP´ ITULO 10.

´ sempre maior que 3 (j´ que cada transmiss˜o envolve pelo menos trˆs e a a e links). ca 10. o atraso introduzido por cada n´ seria inevit´vel devido a maior complexidade no ´ o a tratamento do pacote. e A id´ia do Frame Relay ´ a seguinte: quando as linhas de transmiss˜o apresentavam e e a alta probabilidade de erro. quanto menor a probabilidade de erro. a corre¸˜o de erros e a retransmiss˜o. Essa ´ uma grande vantagem do Frame Relay: baixa latˆncia. O Frame Relay adota o que ´ conhecido como “n´cleo” do LAP-F. s˜o dados o atraso esperado e a largura de banda utilizada nos casos de s = 0. Nesse a ultimo caso.00300 L. Assim.66135 0. toda retransmiss˜o ´ feita pelo gerador do frame e vai at´ e a e e o equipamento receptor. Prob 0.) 0. No X.41224 0. se a probabilidade de erro for baixa. Detec¸˜o e corre¸˜o de erros devem ser implementadas em n´ ca ca ıveis superiores do protocolo. a s = 0. quando isso ocorre.9 0. se a probabilidade de erro for alta. (por conex˜o) a 3. a mesma para os trˆs links para simplificar a an´lise.B. O n´ f´ ıvel ısico do Frame Relay ´ derivado do LAP-D (LAP ´ Link Access Protocol) e e e recebeu o nome de LAP-F. Por outro lado. pacotes perdidos.25. no exemplo da tabela (com 3 conex˜es). o pacote o ´ simplesmente descartado. Note que esse valor ´ dado em “unidades a e de links” e portanto. a largura e e de banda necess´ria ´ sempre menor no caso da retransmiss˜o por conex˜o que faz melhor uso a e a a dos recursos dispon´ ıveis. Considere que a probabilidade de ca e transmiss˜o correta em cada link seja s. A rede s´ consegue detectar os erros e .40120 Tabela 10. Por´m.c. Na a e a tabela a seguir. De fato.3.9. O PROBLEMA DOS ERROS DE TRANSMISSAO 77 3. B esperada e atraso nos caso de por conex˜o e fim a fim. Por outro lado.3 O Problema dos Erros de Transmiss˜o a No Frame Relay. (fim a fim) 4. Note que. e pacotes fora da sequˆncia correta.60060 Atraso (faf) 0.˜ 10.B.25.09182 3. o LAP-F-core que e u elimina as janelas e a corre¸˜o de erros. Minoli pg 596 a Note que o atraso ´ sempre menor no caso da retransmiss˜o ser feita entre os pontos e a finais. s˜o efetuadas pelos ca a a a equipamentos das pontas.53711 0. cada n´ da rede pode retransmitir o pacote no caso de erro o de transmiss˜o. se a probabilidade de sucesso da a o .00902 Atraso (p.60606 0. O LAP-F inclui campos de controle de fluxo. S˜o considerados erros: pacotes com dados errados. Note que ´ utilizado o conceito de largura de banda esperada que d´ a e a largura de banda realmente utilizada na transmiss˜o.99 e s = 0. janelas e corre¸˜o de ca erros.1: L. n˜o faz sentido esperar-se que seja feita a a retransmiss˜o entre os pontos finais (principalmente no caso de o pacote ter que passar por a v´rios n´s intermedi´rios) j´ que isso poderia introduzir grandes atrasos e faria mal uso da a o a a largura de banda dispon´ ıvel. era economicamente justific´vel investir-se em equipamentos mais a complexos que tivessem a capacidade de corre¸˜o e retransmiss˜o de pacotes como no caso do ca a X.02831 3.30674 3.99 0.999. menor ´ a diferen¸a e e c na eficiˆncia de utiliza¸˜o o que torna o uso de Frame Relay bastante conveniente com linhas e ca confi´veis. n˜o se justifica a a maior complexidade (com o consequente maior custo) dos equipamentos intermedi´rios. pacotes a a duplicados. Para ilustrar o compromisso entre as duas alternativas.03027 3. considere o caso de comunica¸˜o entre dois pontos unidos por trˆs segmentos de rede. quando necess´rias.999 L.

78 CAP´ ITULO 10.2 que mostra quatro redes a locais interconectadas atrav´s de uma rede Frame Relay. teremos o a a valor 6. porque a a a e largura de banda esperada ´ maior num caso do que no outro. nada se ganha com Frame Relay se os pontos estiverem ambos conectados ao mesmo n´ processador Frame Relay. teremos uma largura de banda necess´ria de 4. 3. o 10. privada ou h´ u ıbrida. E f´cil ver por´m. ´ E importante notar que os c´lculos dependem do n´mero de links existentes entre os a u pontos que se quer conectar. o primeiro fornecedor de redes Frame Relay ´ a Embratel. Note que. No caso de corre¸˜o e retransmiss˜o por ´ ca a conex˜o.00300 ´ praticaa a e mente a mesma do caso fim a fim. a rede ´ dita p´blica pois todos tem acesso se pagarem as tarifas e u . enquanto no caso fim a fim. com equipamentos da e Northern Telecom. Na verdade.00902 (a diferen¸a ´ de apenas 0.4 Exemplo de Redes Frame Relay Deve-se lembrar que a id´ia do Frame Relay ´ permitir uma conex˜o entre todos os locais e e a distantes de uma corpora¸˜o de forma que cada local tenha somente uma conex˜o ` rede. a largura de banda esperada no caso por conex˜o.2: Uma rede Frame Relay Note que s´ existe uma conex˜o f´ o a ısica entre cada local e a rede. No caso brasileiro. c e ´ a N˜o entraremos aqui no c´lculo dos valores da tabela. Suponha que um frame ande dois e links sem problema mas seja perdido no ultimo link. e LAN 1 PVC Roteador 1 PVC Frame Relay Network PVC PVC PVC LAN 2 Roteador 2 Roteador 4 PVC Roteador 3 PVC PVC LAN 4 LAN 3 Figura 10. Nesse caso.2 %). ca a a A arquitetura de tal conex˜o pode ser vista na figura 10.2 pode ser p´blica. e A rede Frame Relay da figura 10. nada impede que dois locais o diferentes se conectem a um mesmo n´ processador. o Os frames com destinos diferentes s˜o sempre mandados pelo mesmo canal f´ a ısico mas atrav´s de PVCs diferentes. Essa conex˜o liga o a roteador local com um n´ processador de Frame Relay. INTRODUCAO AO FRAME RELAY ¸˜ transmiss˜o for de 0. 3.999.

Internamente ` rede. a a 10. e . N˜o ´ necess´rio o e ca a e a estabelecimento da conex˜o cada vez que se desejar transmitir algo. Este determina que o equipamento 2 ´ externo e pode ser alcan¸ado atrav´s da rede Frame Relay. MECANISMO DE TRANSMISSAO 79 cobradas.5 Mecanismo de Transmiss˜o a A figura 10. N˜o confundir o a DLCI com algum tipo de endere¸o do roteador 2! O DLCI s´ tem validade local e pode mudar c o at´ chegar ` outra extremidade. Para ilustrar o funcionamento do DLCI. ele sabe. e O Frame Relay ´ um protocolo orientado a conex˜o. PVCs e VCIs. considere a figura 10. O n´ 1 transforma o DLCI num VCI (j´ que estamos supondo uma rede ATM) e o o a frame. O n´ 2 transforma o VCI num e e o o DLCI conveniente (que pode ser diferente do primeiro DLCI) e envia o frame at´ o roteador que e o entrega ao PC destino. ´ o caminho para se chegar ao roteador 2. Para isso. Ele descobre. o PVC utilizado no e a e Frame Relay ´ configurado na hora da instala¸˜o pelo gerente da rede. Suponhamos que o equipamento 1 (por exemplo. um PC). ele e determina o DLCI (Data Link Connection Identifier) correspondente ao PVC. uma esta¸˜o de trabalho Unix) queira ca se comunicar com o equipamento 2 (por exemplo.3 mostra a arquitetura de uma conex˜o entre dois pontos finais atrav´s das camadas a e ISO/OSI. e a O roteador manda o frame ent˜o ao n´ processador 1 com o DLCI correto. Ele ent˜o envia os dados atrav´s e c e a e de um determinado PVC que. agora segmentado em c´lulas (da´ a necessidade do SAR – segmentation and reassembly e ı layer).5. ´ transmitido pela rede ATM at´ o n´ processador 2. Idealmente a o o frame deve ser do mesmo tamanho do frame da rede local para que se minimizem os atrasos e overheads. Por´m. os pacotes podem ser roteados e transmitidos como for mais a conveniente (entre os n´s processadores).4 Note como ´ feito o mapeamento entre DLCI. A tendˆncia atual parece ser a utiliza¸˜o de c´lulas o e ca e (ATM) apesar de que frames podem tamb´m ser utilizados. atrav´s de sua tabela de e roteamento que os dados devem ser enviados para o roteador.˜ 10. Equip 1 Aplic Apres Sessao Transp Rede LLC MAC Roteador 1 R llc R lapf No Processador 1 CS/SAR No Processador 2 CS/SAR Equip 2 Aplic Apres Sessao Roteador 2 R R Transp Rede LLC MAC lapf cel wan wan ATM cel lapf lapf llc wan mac mac wan wan wan Figura 10.3: Conex˜o via Frame Relay – Protocolos a Note que a interconex˜o dos n´s processadores Frame Relay pode ser implementada a o com qualquer protocolo (no caso ATM). ela est´ sempre “ligada”.

INTRODUCAO AO FRAME RELAY ¸˜ Figura 10. pg 608 . Minoli.4: O DLCI em redes Frame Relay.80 CAP´ ITULO 10.

Esse ´ um fator importante pois acredita-se que at´ 50% e e do custo de uma rede atualmente vem do seu gerenciamento. As principais s˜o: e u a 1. Transi¸˜o f´cil de redes atuais: Roteadores existentes normalmente podem ser transca a formados em roteadores Frame Relay com pequeno custo adicional. Largura de Banda sob Demanda: a conex˜o Frame Relay est´ dispon´ a a ıvel. 11. BENEF´ ICIOS DO FRAME RELAY 81 10. Esse roteador tem tamb´m habilidades ´ ıda e e de multiplexa¸˜o estat´ ca ıstica fazendo uso eficiente do canal de sa´ ıda. a ca 3. Redu¸˜o de Custos: o Frame Relay reduz consideravelmente os custos de comunica¸˜o ca ca em rela¸˜o a maioria das tecnologias mais antigas de projeto de WANs ca . e a ca o o 6. Vendedores: existe atualmente um grande n´mero de fabricantes de equipamentos para u Frame Relay. Padr˜es: O Frame Relay ´ todo baseado em padr˜es estabelecidos internacionalmente e o e o tem tido aceita¸˜o tanto nos EUA quanto na Europa e Jap˜o. 7. Alto “Throuput” e Baixo Atraso: Como j´ foi dito. Fatores de 20% foram detectados em algumas redes. Facilidade de Expans˜o: Adicionar um ponto a uma rede Frame Relay ´ muito simples a e bastando adquirir-se um novo roteador com interface Frame Relay e conect´-lo ` rede. Uso eficiente de Largura de Banda: a utiliza¸˜o do Frame Relay. Facilidade de Gerenciamento: com a redu¸˜o de linhas externas. frames que se destinam a destinos diferentes tem uma unica sa´ atrav´s do roteador frame relay. e 8. o atraso no Frame Relay ´ muito a e menor do que o do X. 2. 4. a ıvel a 5.25 e a largura de banda total est´ dispon´ para cada usu´rio. para cada usu´rio da conex˜o. Compartilhamento de Portos: de fato.10. S´ a a o ´ necess´rio uma reconfigura¸˜o de software para se especificar as novas conex˜es l´gicas. ca a 10.6. em sua velocidade m´xima. Minoli d´ v´rias vantagens para a rede Frame Relay em ambientes privados (mas a a muitas valem tamb´m para redes p´blicas). Boa convivˆncia com LANs: A camada de dados do Frame Relay n˜o ´ muito diferente e a e da camada de dados das LANs existentes o que torna simples a convivˆncia entre elas. o gerenciamento da ca WAN fica bastante simplificado. E poss´ limitar-se o acesso de cada a a a ´ ıvel usu´rio em redes com alto grau de utiliza¸˜o. ao inv´s dos tradica e cionais esquemas TDM pode tornar o uso dos canais muito mais eficiente. 9.6 Benef´ ıcios do Frame Relay Para finalizar vejamos as vantagens conseguidas pela nova tecnologia Frame Relay.

INTRODUCAO AO FRAME RELAY ¸˜ .82 CAP´ ITULO 10.

opera¸˜o e manuten¸˜o dos servi¸os de comunica¸˜o. Essa variedade de servi¸os aumentava consideravelca c mente os custos de gerˆncia e manuten¸˜o al´m. principalca co e mente do ponto de vista empresarial pois a maioria das firmas tinha uma variedade de servi¸os c de comunica¸˜o tais como: diversas linhas de voz. Como a maioria dos servi¸os de comunica¸˜o de dados j´ era baseada em tecnologia c ca a digital h´ bastante tempo. a ca o o tamb´m conhecidas por POTS – Plain Old Telephone Service. nitidae ´ mente nos Estados Unidos. a De qualquer forma. etc. n˜o existem mais conex˜es anal´gicas como no ca e a a o o antigo POTS. agora. conectores e equipamentos de comunica¸˜o em geral. onde ele foi ferozmente rejeitado.1 Introdu¸˜o ca O ISDN (Integrated Services Digital Network) surgiu na d´cada de 80 com o objetivo de integrar e diferentes formas de comunica¸˜o. Com o advento da transmiss˜o digital. linhas de comuca c nica¸˜o de dados via redes de pacotes. ´ claro. Apesar de ser uma id´ia aparentemente boa. ca e linhas privativas para comunica¸˜o de dados. A qualidade da ca comunica¸˜o tamb´m melhora j´ que. outros ainda a a a diziam que o mercado n˜o estava preparado para o ISDN. as populares linhas telefˆnicas discadas. o estudo do ISDN ´ importante por dois motivos: e 83 . o ISDN foi um fracasso comercial. protocolos. e ca e e o ca Surge ent˜o o ISDN com objetivo de unificar todos esses servi¸os reduzindo o n´mero a c u de interfaces. tornou-se cada vez ca a mais vi´vel a substitui¸˜o de linhas anal´gicas de voz. por linhas digitais de melhor e qualidade. outros diziam que o custo da migra¸˜o para ca ca o ISDN n˜o era justificado j´ que ele n˜o trazia nenhuma funcionalidade extra.Cap´ ıtulo 11 Introdu¸˜o ao ISDN e Detalhes ca de Opera¸˜o do Frame Relay ca 11. ca ca ca c ca Essa unifica¸˜o parecia ser o futuro das telecomunica¸˜es na d´cada de 80. linhas para o servi¸o de TELEX. E dif´ entender os motivos de tal ıcil rejei¸˜o: alguns cr´ ca ıticos dizem que o problema ´ que o ISDN n˜o integrava servi¸os de imagem o e a c que seria essencial para sua aceita¸˜o no mercado. surge a id´ia de unificar todos esses servi¸os num servi¸o unico com a e c c ´ redu¸˜o de custos em equipamentos. do pr´prio custo de comunica¸˜o. algumas vezes conectadas atrav´s de PABX.

o PRI ´ composto por 30 canais B e 1 canal D transportados num canal E1. Os canais B operam em velocidade de 64 Kbps (apesar de que. a . dado e at´ mesmo a co a e imagens de baixa qualidade). dois protocolos s˜o poss´ a ıveis no ISDN. Finalmente. a especifica¸˜o ´ a I. muitas vezes eles s˜o de 56 Kbps. um equipamento que n˜o esteja a a preparado para isso. Nesses canais passam as informa¸˜es do usu´rio (voz.1 ISDN Caracter´ ısticas T´cnicas e A “pilha” ISDN implementa as 3 primeiras camadas do modelo de referˆncia OSI (com 7 camae das). de 16 Kbps. ´ poss´ conectar-se a 128 kbps ` Internet. No n´ ıvel f´ ısico (camada 1 OSI). o documento ´ o I. Em algumas aplica¸˜es. ´ definido e e e o TA (de “terminal adapter”) que pode conectar ` rede ISDN.2.1 a a mostra uma t´ ıpica conex˜o ISDN. o ISDN prevˆ tamb´m o PRI ou “Primary Rate Interface” que ´ come e e e posto por 23 canais B e um canal D nos EUA e Jap˜o o que equivale a uma conex˜o T1.441 a ıvel ca e conhecida como LPAD. A conex˜o entre o TE2 e o TA ´ feita.931 da ITU-T. que ´ um equipamento que se conecta diretamente ao ISDN. ´ usado para identifica¸˜o do usu´rio.450/I. O TE1 se conecta a um n´ ISDN atrav´s de 4 fios (2 pares) por onde o e passam. agora conhecido como “narrowband” a ISDN ´ a base para o B-ISDN (“broadband”) que por sua vez ´ o modelo adotado pelo e e ATM. e ca a estabelecimento de conex˜o e controle. ou “delta”. a e e a Outro equipamento ´ o NT1 (de “network termination”) que transforma os 4 fios do ISDN em e apenas um par tran¸ado convencional de linha telefˆnica e faz a conex˜o da casa ou escrit´rio c o a o do usu´rio at´ a companhia telefˆnica. Al´m do BRI.431 refere-se ` taxa prim´ria a a a a (“Primary Rate”) que ser˜o explicadas abaixo.2 11.440/I. O equipamento b´sico do usu´rio que se conecta ao ISDN ´ chamado de TE1. Eles s˜o exa plicitados nas recomenda¸˜es I. Como o ATM pode ser considerado o protocolo mais importante de redes no presente.430 e I. multiplexados. nos EUA.84CAP´ ITULO 11.451 que se e referem ao Q. e Al´m do TE1. Esse tipo de equipamento recebe o nome de TE2 na nomenclatura do ISDN. por exemplo. Esses 3 canais s˜o conhecidos como 2B + D. finalmente o ISDN est´ sendo fornecido pelas grandes companhias telefˆnicas a a o dos EUA principalmente para usu´rios que desejam acesso mais r´pido do que aquele a a conseguido por modems. de a a e “terminal equipment”. A figura 11. atrav´s de uma conex˜o RS-232. o canal D pode ser usado para a co transmitir dados digitais em redes de pacotes (estilo RENPAC).431 que fazem referˆncia a documentos da s´rie Q do co e e ITU-T. O canal D. com o ISDN. o entendimento do ISDN acaba sendo necess´rio. INTRODUCAO AO ISDN E DETALHES DE OPERACAO DO FRAME RELAY ¸˜ ¸˜ • Aceita¸˜o parcial do protocolo no mercado de acesso Internet: apesar do atraso de ca v´rios anos. O I. De fato. No n´ de dados. Na camada de redes (camada 3). e ıvel a • Importˆncia do ISDN para o B-ISDN: O ISDN.430 refere-se ` taxa b´sica (“Basic Rate”) enquanto o I. num acesso PRI. por exemplo. e um canal chamado D. a 11. O 2B + D constitui o que ´ a e conhecido como BRI de “Basic Rate Interface”. existe o NT2 que ´ um equipamento capaz a e o e de multiplexar v´rios canais B e transform´-los. Na a a Europa. 3 canais digitais: 2 canais chamados B de “bearer”.

2: O pacote LAPD O campo de flag ´ composto por um byte que ´ sempre 01111110. Flag Endereco Controle Informacao FCS Flag Figura 11. A rede faz exatamente o inverso. O ıcio c e primeiro flag de cada byte ´ o indicador de fim de endere¸o (para permitir mais do que 2 bytes e c de endere¸amento). O campo de endere¸amento ´ composto normalmente por 2 bytes.34) que conecta PCs. tal qual no frame relay (que. A camada de redes do ISDN ´ muito similar `quela do frame relay. Ele delimita o pacote e e marcando seu in´ e fim. que ser´ estudada e a a posteriormente. Ele ´ usado no canal D do ISDN. usa um protocolo muito parecido com o LAPD). ISDN R S T U 85 TE2 TA REDE NT2 TE1 NT1 ISDN Figura 11. c e A interpreta¸˜o desse bit ´ oposta entre o usu´rio e a rede: o usu´rio manda comandos com ca e a a esse bit em 0 e responde a comandos com o bit 1. as interfaces S/T s˜o a 4 fios enquanto a a a interface U ´ a 2 fios. O campo de FCS (“frame check sequence”) ´ utilizado e para se detectar se o dado foi transmitido corretamente. conjuntamente podem ser considerados e como um data link connection identifier. existem canais intermedi´rios: H0 (384 Kbps).1: Uma conex˜o ISDN a Note que as interfaces entre os equipamentos recebem nomes especiais: R ´ a conex˜o e a n˜o ISDN (RS-232 e V. . No n´ ıvel de dados (camada 2). FAXs etc. H11 (1536 Kbps) e a etc.2. o ISDN se utiliza do protocolo LAPD (“Link Access Protocol on the D-channel”). O restante dos bits ´ reservado para os campos SAPI e TEI que. por sinal.11. e Al´m de BRI e PRI. DLCI. O frame LAPD ´ baseado no LAPB usado no X. e e O frame LAPD pode ser visto na figura 11.2.25 que por sua e vez ´ similar ao HDLC. O segundo bit do primeiro byte ´ um indicador de comando ou resposta.

que desative o PVC. com o meio f´ ısico sobre os quais eles s˜o a implementados. cobra US$ 35. o custo sobe para US$ 55 mensais.3. Agora que j´ ca a a discutimos o ISDN em algum detalhe. como ser´ visto posteriormente). Pode-se dizer que o PVC ´ um circuito virtual est´tico. suas vantagens a e desvantagens em rela¸˜o a outras tecnologias e seu modo de funcionamento b´sico.3. e ca Existe por´m uma diferencia¸˜o muito importante entre PVCs e SVCs.86CAP´ ITULO 11.2 Situa¸˜o no Mercado ca Como dito na introdu¸˜o. a 11. o custo do e ´ ISDN tem se mostrado atraente para muitos usu´rios mais exigentes da Internet. Uma vez em opera¸˜o. ca Os valores de custo mencionados dizem respeito ao ano de 1997 e s˜o apresentados em a car´ter meramente ilustrativo. Se forem usados os dois e canais (2B). o ISDN come¸a agora a ser utilizado nos EUA como um meio de acesso ca c relativamente r´pido e barato ` Internet. o (s) usu´rio (s) pede a companhia a e a a que lhe fornece o servi¸o.2. os circuitos s˜o ditos virtuais pois eles e a a s˜o estabelecidos ou cancelados de acordo com a vontade dos operadores e/ou usu´rios n˜o a a a tendo rela¸˜o fixa com os circuitos f´ ca ısicos. Para ilustrar. Apesar de mais caro que o acesso padr˜o atrav´s de o a e modem e linha discada (que ´ facilmente encontrado nos EUA por US$ 19 mensais). considere os seguintes pre¸os praticados a a c atualmente nos EUA.00 por mes o acesso Internet atrav´s de um canal B ISDN (64 Kbps). j´ foram vistos os aspectos gerais da tecnologia Frame Relay.1 Frame Relay. e (e tamb´m no ATM. O PVC ´ um e ca e circuito estabelecido pelos operadores de rede. a Bell South cobra de US$ 29 a 35 d´lares mensais para manter a linha ISDN. o PVC funciona praticamente como uma linha privativa conectando sempre os ca mesmos dois pontos. ´ poss´ nos aprofundarmos em alguns aspectos t´cnicos e ıvel e importantes do Frame Relay que ainda n˜o foram abordados. ou seja. devem ser somados os pre¸os dos equipamentos que devem ser adquiridos c c e da instala¸˜o da linha ISDN. antes que o circuito possa ser utilizado. Tanto os PVCs como os SVCs (as siglas derivam do inglˆs: “permanent virtual circuit” e e “ switched virtual circuit”) s˜o circuitos virtuais como o pr´prio nome revela. Quando o circuito n˜o ´ mais necess´rio. Detalhes de Opera¸˜o ca Introdu¸˜o ca Em apostila anterior. No estado. a TELALINK do estado americano do Tennesse.2 PVC e SVC Um conceito fundamental em muitas redes WAN que contemplam liga¸˜es orientadas ` conex˜o co a a ´ aquele dos circuitos permanentes e dos chaveados. V´rios PVCs ou a o a SVCs podem conviver sobre um mesmo meio f´ ısico compartilhando sua largura de banda atrav´s e de t´cnicas de multiplexa¸˜o. a 11. e a . Uma companhia. Isto ´ ent˜o feito novamente por um operador da c e a rede.3 11. E claro que aos a pre¸os mencionados. INTRODUCAO AO ISDN E DETALHES DE OPERACAO DO FRAME RELAY ¸˜ ¸˜ 11.25 como no Frame Relay. Tanto no X.

11.3. FRAME RELAY, DETALHES DE OPERACAO ¸˜

87

J´ o SVC ´ um circuito dito chaveado, ou seja, quando um ponto A deseja se comunicar a e com um ponto B, uma requisi¸˜o a rede ´ efetuada. A rede ent˜o, automaticamente estabelece ca ` e a um circuito entre A e B (se B concordar ´ claro) e ent˜o A e B podem trocar dados at´ que e a e terminem suas transa¸˜es. Ent˜o, um pedido de desconex˜o ´ feito ` rede, que cancela o SVC. co a a e a Note que aqui, ao contr´rio do caso do PVC, n˜o existe a necessidade de operador humano a a estabelecer ou cancelar a conex˜o. Pode-se dizer portanto que o SVC implementa uma conex˜o a a virtual dinˆmica. a

11.3.3

O “Frame” do Frame Relay

O “frame” ou pacote do Frame Relay ´ muito parecido com o LAPD de onde ele foi derivado. e Na figura 11.3, o formato do frame ´ mostrado. e

1 byte

2 bytes

Numero de bytes variavel

2 bytes

1 byte

Flag

Cabecalho

Dados

FCS

Flag

CABECALHO C DLCI / R 8 7 6 5 4 3 2 F E C N 5 4 B E D E C E A N 3 2 1

E A

DLCI

1

8

7

6

Figura 11.3: O pacote Frame Relay Note que, o campo de endere¸amento e o de controle s˜o unificados num unico campo c a ´ chamado de “header” ou cabe¸alho. c Os flags tem exatamente o mesmo significado que no LAPD. Dentro do cabe¸alho, o subcampo DLCI (“Data Link Connection Identifier”) j´ foi c a visto anteriormente. Ele identifica o canal virtual seja ele PVC ou SVC. Cada equipamento da rede Frame Relay tem uma tabela que diz exatamente qual o caminho que est´ associado a cada a DLCI. Existem 10 bits para o DLCI o que implica que existem apenas 1024 valores poss´ ıveis para os circuitos (na verdade, os valores dispon´ ıveis de DLCI s˜o menores j´ que alguns valores a a s˜o reservados — ´ o caso do valor 0 reservado para sinaliza¸˜o e do valor 1023 reservado para a e ca gerˆnciamento). Esse valor n˜o ´ t˜o pequeno como pode parecer pois os DLCI tem significado e a e a apenas local (podem ser atribu´ ıdos valores globais de DLCI mas n˜o entraremos nesse detalhe a nesse curso). Isso significa que, quando o circuito passa pelos v´rios roteadores da rede, o n´mero a u DLCI varia para um mesmo circuito. Mesmo assim, algumas vezes termos apenas 10 bits para o DLCI ´ limitante. Atrav´s do bit EA, ´ poss´ estender-se o campo do cabe¸alho de tal forma e e e ıvel c que o n´mero de bits para o DLCI ´ maior. A figura 11.4 ilustra as extens˜es de tamanho de u e o frame. N˜o entraremos em detalhes do “DL-core”. Note na utiliza¸˜o do campo EA (“address a ca

88CAP´ ITULO 11. INTRODUCAO AO ISDN E DETALHES DE OPERACAO DO FRAME RELAY ¸˜ ¸˜ extension”) para determinar a extens˜o do pacote. a

DLCI DLCI FECN BECN

C/R DE

EA=0 EA=1

DLCI DLCI FECN BECN DLCI ou controle DL-core

C/R DE D/C

EA=0 EA=0 EA=1

DLCI DLCI DLCI DLCI ou controle DL-core FECN BECN

C/R DE D/C

EA=0 EA=0 EA=0 EA=1

Figura 11.4: Extens˜o do pacote Frame Relay a Os campos FECN (“forward explicit congestion notification”) e BECN (“backward explicit congestion notification”) s˜o utilizados para remediar situa¸˜es de congestionamento na a co rede. De certa forma, eles implementam um mecanismo simples de controle de fluxo. Se um equipamento da rede Frame Relay tem problemas de rotear um determinado tr´fego, ele coloca o a bit BECN do pacote em um e envia o pacote para a fonte da transmiss˜o. A fonte, ao receber um a pacote com BECN igual a um pode adotar uma pol´ ıtica de reduzir a velocidade de transmiss˜o a de dados naquele circuito virtual em particular. Da mesma forma, o FECN ´ usado para avisar e ao destino que um equipamento no caminho est´ com problemas de congestionamento. a O campo de C/R tem a mesma fun¸˜o que no LAPD utilizado no ISDN e j´ visto ca a anteriormente. O bit DE (“discard eligibility”) indica se o pacote pode ser descartado, em caso de congestionamento ou n˜o. Na verdade, ele indica que pacotes s˜o mais importantes (DE em 0). a a Em caso de congestionamento, os pacotes com DE em 1 s˜o os primeiros a serem descartados. a ´ E claro que, em caso de congestionamento severo, ou na falta de pacotes com o bit DE em 1, os pacotes com bit DE em zero tamb´m ser˜o descartados. e a Em algumas redes Frame Relay, o bit DE ´ usado pela operadora de servi¸o para tentar e c manter uma qualidade de servi¸o (QoS) pr´-estabelecida em contrato. Em redes Frame Relay, c e um fator que pode ser especificado no contrato entre usu´rio e provedor ´ o CIR (“committed a e information rate”). Se a quantidade de tr´fego utilizada pelo usu´rio num determinado intervalo a a de tempo for menor que o CIR contratado, a operadora n˜o altera o DE. Se, por outro lado, o a tr´fego for maior, a operadora come¸a a alterar bits DE de frames em excesso para 1. Desta a c forma, o usu´rio at´ pode utilizar mais largura de banda do que a contratada mas at´ o ponto a e e que isso n˜o congestione a rede da operadora. a

11.3. FRAME RELAY, DETALHES DE OPERACAO ¸˜

89

O conceito de QoS ´ muito importante em redes modernas. Em particular, trata-se de e um conceito fundamental no B-ISDN (ATM).

11.3.4

CLLM

Como j´ foi dito anteriormente, redes Frame Relay eliminam o controle de fluxo existente em a outros protocolos tais como o X.25. Assim, ´ preciso tratar-se o problema de congestionamento e de rede de forma diferente. Para isso foi criado o protocolo CLLM (“consolidated link layer management”) Suponha que o tr´fego entre usu´rio e rede atinja valores muito altos e comece a a a provocar congestionamento em alguma chave da rede. Pode acontecer que o tr´fego esteja t˜o a a intenso que n˜o seja poss´ mandar um pacote atrav´s do pr´prio circuito virtual para avisar a ıvel e o a ` fonte que o congestionamento est´ ocorrendo. a O CLLM especifica ent˜o que o circuito virtual com DLCI 1023 pode ser utilizado a para esse fim se necess´rio. O DLCI do circuito congestionante ´ detectado e seu n´mero ena e u viado atrave’s de mensagens especiais para a fonte para que esta possa tomar as providˆncias e necess´rias. a

11.3.5

Estabelecimento de SVC

No Frame Relay atualmente (1997), praticamente s´ s˜o utilizados os PVCs. Acredita-se por´m o a e que no futuro pr´ximo cres¸a o interesse por SVCs. Assim, os SVCs j´ come¸am a ser oferecidos o c a c por operadores nos EUA. Para o estabelecimento de um circuito virtual chaveado, ´ necess´ria a troca de mene a sagens entre os pontos que querem se conectar e a pr´pria rede de conex˜o. A essa troca de o a mensagens d´-se o nome de sinaliza¸ao e ´ um conceito muito importante na telefonia. Em redes a c˜ e de computadores, n˜o era muito utilizado at´ o advento do X.25, ISDN, Frame Relay e ATM. a e A sinaliza¸˜o do Frame Relay ´ especificada num documento chamado DSS1 (“Digital ca e Signaling System”). N˜o entraremos em detalhes do DSS1, que, inclusive, ´ bastante complexo. a e Basta aqui dar uma id´ia geral do que ocorre. e O ponto que origina a chamada envia para a rede uma mensagem de setup que cont´m e campos que especificam o endere¸o do ponto com o qual ele deseja estabelecer conex˜o, caracc a ter´ ısticas deseja’veis da conex˜o, DLCIs, etc. A rede envia de volta para o ponto origem uma a mensagem de call proceeding e manda o pedido de conex˜o para o ponto destino que por sua vez a pode mandar uma mensagem para a rede do tipo call proceeding. Se resolver aceitar a conex˜o, a o destino envia de volta para a origem uma mensagem do tipo connect. Quando essa mensagem chega a rede, ela pode enviar uma mensagem do tipo connect acknowlegded para o destino enquanto envia a mensagem connect para a origem. Quando a origem recebe a mensagem de connect ela envia de volta para a rede uma mensagem do tipo connect acknowlegded e come¸a c a se comunicar com o destino atrav´s do circuito que foi estabelecido no processo. Ao final da e troca de dados, a origem envia uma mensagem de disconnect para o destino que responde com uma mensagem release. Ao receber a mensagem release do destino a rede envia para o destino uma mensagem de release complete. Finalmente quando a origem recebe a mensagem release, ela envia ` rede uma mensagem de release complete a

90CAP´ ITULO 11. INTRODUCAO AO ISDN E DETALHES DE OPERACAO DO FRAME RELAY ¸˜ ¸˜ .

1) seria: co $ cc -o tli program tli program. A id´ia fundamental do TLI ´ e e prover uma interface do sistema operacional com o n´ de transporte de rede. Normalmente. e a Uma importante diferen¸a com os soquetes de Berkeley ´ que o TLI se constituiu c e de um conjunto de fun¸˜es e subprogramas que ficam armazenados numa biblioteca e n˜o de co a um conjunto de chamadas do sistema. release 3 como uma alternativa para o mecanismo de soquetes do BSD Unix [Stevens90].1. veja e [Ritchie84. at´ que surgiu o release 4 onde foi incorporado o TCP/IP.1 12.a (nsl significa Network Services Library) .Stevens90]. Uma compila¸˜o t´ (nas esta¸˜es Sun executando SunOS 4.Cap´ ıtulo 12 TLI. Na verdade. o TLI foi projetado para trabalhar juntamente com os streams. Para maiores detalhes sobre streams. surgiu no Unix System V. em especial com ıvel o n´ de transporte do modelo OSI (TP0 a TP4). Transport Layer Interface 12. que s˜o uma generaliza¸˜o do sistema de entrada e sa´ do Unix a ca ıda tendo aparecido tamb´m no System V release 3. a biblioteca de fun¸˜es est´ em /usr/lib/libnsl.c -lnsl Uma outra diferen¸a com os soquetes de Berkeley ´ que em TLI. do lado negativo. c˜ a a 91 .a co a ca ıpica com TLI ou /usr/lib/libnsl s. os dois processos que c e se comunicam s˜o chamados de pontos finais de transporte sendo que os termos soquete ou meia a associa¸ao n˜o s˜o utilizados.1. o TLI n˜o apareceu com nenhum transporte ina a clu´ ıdo. Transport Layer Interface.Bach86.1 Transport Layer Interface (TLI) Introdu¸˜o e Generalidades ca O sistema TLI. ıvel Ao contr´rio dos soquetes do BSD. Esse fato apresenta pontos e positivos e negativos: uma grande vantagem ´ que o TLI acabou sendo bastante independente e do protocolo de transporte. destaca-se a dificuldade de se utilizar o TLI j´ que a ´ necess´rio recorrer ao software de “third parties” para o transporte.

/dev/udp /dev/ip. TRANSPORT LAYER INTERFACE 12.1: Chamadas TLI num cliente-servidor com conex˜o a A fun¸˜o t open ´ a primeira a ser chamada e retorna um descritor de arquivo para ca e o dispositivo que fornecer´ o transporte. a Server Client t open() t open ? t bind() ? ? t alloc() ? t listen() ? Espera pela conexao do cliente ? t accept()  ? Pedido de ? t rcv()  Dados t snd() Estabelecimento de Conexao ? t alloc() t bind() ? t connect() ? ? t snd()  Envio de dados t rcv() Figura 12. . ´ apresentado um diagrama mostrando as chamadas do TLI num esquema e cliente-servidor orientado a conex˜o. O formato de t open ´: e a co e int t open(char *pathname. int oflag.2 As chamadas de biblioteca do TLI Na figura 12. Arquivos t´ a ıpicos s˜o /dev/tcp.1.1. TLI.92 CAP´ ITULO 12. O a descritor retornado ´ ent˜o utilizado nas outras fun¸˜es TLI. struct t info *info).

´ um novo descritor por n´s criado e o para atender ao pedido de conex˜o. int t rcv(int fd. fd e connfd s˜o idˆnticos. a a e a As fun¸˜es t snd e t rcv s˜o usadas para transmitir e receber dados. no caso de um servidor concorrente. structtype especifica uma das v´rias estruturas utilizadas nas diversas fun¸˜es. O formato ´: ca c e int t bind(int fd. int flags). struct t call *sendcall. struct t call *recvcall). Os formatos co s˜o: a int t snd(int fd. . A estrutura sendcall fornece o endere¸o do servidor ao qual o cliente tenta se conectar c bem como op¸˜es e dados usados na conex˜o. o servidor executa a fun¸˜o t accept. Seu formato a ca ´: e int t accept(int fd. struct t bind *request. Seu ca formato ´: e int t listen(int fd.1. Seu formato ´: e char *t alloc(int fd. a ca c e a A fun¸˜o t connect ´ usada pelo cliente para estabelecer uma conex˜o com o servidor. A fun¸˜o t alloc auxilia no processo de aloca¸˜o de espa¸o das v´rias estruturas utica ca c a lizadas no TLI. struct t bind *return).12. Para aceitar um pedido de conex˜o. TRANSPORT LAYER INTERFACE (TLI) 93 oflag s˜o os flags similares ao da chamada open. int flags). Assim. c u a o A estrutura t bind especifica o endere¸o e o n´mero m´ximo de conex˜es permitidas. unsigned int nbytes. co a e e a A fun¸˜o t listen ´ a espera do servidor por um pedido de conex˜o do cliente. char *buff. struct t call *call). recvcall ´ a resposta do servidor. int structtype. fields a co diz ` fun¸˜o quais os campos para os quais se deve alocar espa¸o. t info ´ uma estrutura retornada com a e valores referentes ao protocolo de transporte. struct t call *call). unsigned int nbytes. o descritor original fd fica liberado para esperar outros a pedidos de conex˜o. char *buff. Se o servidor for iterativo. int fields). ca Seu formato ´: e int t connect(int fd. O valor connfd. int connfd. A fun¸˜o t bind associa um endere¸o aos pontos finais de transporte.

argv) int argc.qlen = 5. .addr. req. *callptr.addr. DEV_TCP). childpid. e a a flags especifica se existe mais dado a ser enviado (ou recebido) e se os dados devem ser trafegar “fora de banda”. O exemplo ´ bastante simples: o cliente lˆ do terminal uma frase qualquer e e e a envia ao servidor que ecoa a frase de volta ao cliente. (struct t_info *) 0)) < 0) printf("server: can’t t_open %s".buf = (char *) &serv_addr.len = sizeof(serv_addr). serv_addr. clilen.1. /* * Bind our local address so that the client can send to us. baseado num exemplo a de Stevens [Stevens90]. req. req.s_addr = inet_addr(SERV_HOST_ADDR). serv_addr. cli_addr. newtfd. req. TLI.sin_addr. req. /* * Create a TCP transport endpoint */ if ( (tfd = t_open(DEV_TCP. 12.94 CAP´ ITULO 12.tfd).h" main(argc. */ bzero((char *) &serv_addr. serv_addr. O_RDWR.addr.3 Exemplo Nessa sess˜o apresentamos um exemplo de um par cliente-servidor em TLI. { int struct sockaddr_in struct t_bind struct t_call pname = argv[0].maxlen = sizeof(serv_addr). sizeof(serv_addr)).sin_family = AF_INET. serv_addr. char *argv[]. TRANSPORT LAYER INTERFACE Os trˆs primeiros parˆmetros s˜o similares aos das chamadas de sistema read e write. tfd.sin_port = htons(SERV_TCP_PORT). printf("Ja fiz t_open tfd= %d \n". A seguir apresenta-se o programa servidor: /* * Example of server using TCP protocol */ #include "tli_header.

1. for ( . ) { /* * Wait for a connection from a client process * This is an example of a concurrent server */ if (t_listen(tfd. str_echo(newtfd). callptr) < 0) printf("server: t_listen error"). if ( (newtfd = accept_call(tfd. atende a v´rios clientes simultaneamente. T_CALL. else if (childpid == 0) { t_close(tfd). Note e a a ca que ele chama a fun¸˜o accept call para cada cliente que tenta estabelecer a conex˜o. exit(0). /* * Allocate a t_call structure for t_listen() and t_accept(). (struct t_bind *) 0) < 0 ) printf("server: can’t t_bind local address"). callptr. A fun¸˜o ca accept call pode ser vista a seguir. */ #include #include #include #include <stdio.h> <fcntl.h> <tiuser. . printf("Aceitei %d \n". 1)) < 0) printf("server: accept_call error"). } } /* child process */ /* close original endpoint */ /* process the request */ 95 /* parent process */ Esse servidor ´ concorrente. DEV_TCP.newtfd). */ if ( (callptr = (struct t_call *) t_alloc(tfd. T_ADDR)) == NULL) printf("server: t_alloc error for T_CALL"). } close(newtfd). TRANSPORT LAYER INTERFACE (TLI) if (t_bind(tfd. if ( (childpid = fork ()) < 0) printf("server: fork error"). ou seja. The only time we return -1 is if a disconnect arrives before * the accpet is performed. * or -1.h> <stropts. /* * * Accept an incoming connection request * Return the new descriptor that refers to the newly accepted connection. &req.h> .12.

rwflag) int listenfd.96 CAP´ ITULO 12. TRANSPORT LAYER INTERFACE int accept_call(listenfd. */ if (t_accept(listenfd. We first have to pop the "timod"\ module (the * default). /* if nonzero. so that the read(2) and write(2) system calls * can be used. (struct t_bind *) 0. push the stream module "tirdwr"\ onto * the new stream . /* * Open the transport provider to get a new file descriptor. return(-1). (struct t_info *) 0)) < 0) printf("t_open error"). */ if (t_bind(newfd. */ if ( (newfd= t_open(name. newfd. O_RDWR. Go ahead and call t_rcvdis() * then close the new file descriptor that we opened * above */ if (t_rcvdis(listenfd. } /* * If the caller requests. if (t_close(newfd) < 0) printf("t_rcvdis error"). any local address will suffice. /* return error to caller */ } printf("t_accept error"). TLI. callptr) < 0) { if (t_errno == TLOOK) { /* * An asynchronous event has occurred. passed to t_accept90 */ char *name. /* from t_listen(). Since this function * is intended to be called by a server after a * connection request has arrived. */ . name. callptr. (struct t_bind *) 0) < 0) printf("t_bind error"). We must have * received a disconnect. extern int t_errno. /* * Bind any local address to the new descriptor. /* name of transport provider */ int rwflag. push read/write module */ { int newfd. (struct t_discon *) 0) < 0) printf("t_rcvdis error"). /* * Accept the connection request on the new descriptor. /* the descriptor caller used for t_listen() */ struct t_call *callptr.

5"\ #define DEV_TCP #define SERV_TCP_PORT #define SERV_HOST_ADDR #define MAXLINE 255 char *pname. argv) int argc. (char *) 0) <0) printf("I_POP of timod failed"). { int char tfd. /* host address for server */ O cliente pode ser visto a seguir.1. *t_alloc(). } return(newfd). o arquivo tli header.h> <netinet/in. O arquivo utilizado foi: e /* * Definitions for TCP client/server programs */ #include #include #include #include #include #include <stdio.54. /* * Example of client using TCP protocol */ # include "tli_header. I_PUSH.h cont´m as inicializa¸˜es de constantes utilizadas o e co no servidor (e tamb´m no cliente).107. "tirdwr") < 0) printf("I_PUSH of tirdwr failed"). I_POP. /*TLI function */ . if (ioctl(newfd.h> "/dev/tcp" 6000 "143.h> <sys/types.12.h> <sys/socket.h> <fcntl. } No c´digo acima.h> <tiuser. char *argv[].h" main(argc. TRANSPORT LAYER INTERFACE (TLI) 97 if (rwflag) { if (ioctl(newfd.

then read a line back from * the transport endpoint and print it on the standard output. /* * Fill in the structure "serv_addr"\ with the address of the * server that we want to connect with. /* * Create a TCP transport endpoint and bind it. serv_addr. /* no options */ callptr->udata. callptr->addr. */ if ( (tfd = t_open(DEV_TCP. /* no user data with connect */ /* * Connect to the server. doit(stdin.sin_port = htons(SERV_TCP_PORT). */ bzero((char *) &serv_addr.len = 0. T_ADDR)) == NULL) printf("client: t_alloc error"). (struct t_bind *) 0) < 0 ) printf("client: t_bind error"). */ if (t_connect(tfd.s_addr = inet_addr(SERV_HOST_ADDR). if (t_bind(tfd. callptr->addr.maxlen = sizeof(serv_addr). sizeof(serv_addr)). serv_addr. } /* * Read the contents of the FILE *fp.buf = (char *) &serv_addr. callptr. T_CALL. and initialize it. TRANSPORT LAYER INTERFACE t_call *callptr. DEV_TCP). tfd). O_RDWR. write each line to the * transport endpoint (to the server process). /* * Allocate a t_call structure. (struct t_bind *) 0. /* do it all */ .98 struct struct CAP´ ITULO 12. callptr->opt. pname = argv[0]. TLI. 0)) < 0) printf("client: can’t t_open %s". close(tfd). serv_addr.len = sizeof(serv_addr). exit(0). */ if ( (callptr = (struct t_call *) t_alloc(tfd.sin_family = AF_INET. * Let t_alloc() initialize the addr structure of the t_call structure. (struct t_call *) 0) < 0) printf("client: can’t t_connect to server").len = 0. sockaddr_in serv_addr.sin_addr. callptr->addr.

nread. while (nleft > 0) { nread = read(fd. TRANSPORT LAYER INTERFACE (TLI) */ doit(fp. nleft = nbytes.12. recvline. if (t_snd(tfd. /* * Now read a line from the transport endpoint and write it * to out standard output. fputs(recvline. register int nbytes. tfd) register FILE *fp. stdout). fp) != NULL) { n = strlen (sendline). 99 while (fgets(sendline. register char *ptr. nbytes) register int fd. MAXLINE. if (nread < 0) . recvline[n] = 0. ptr. &flags). nleft). recvline[MAXLINE + 1]. sendline[MAXLINE]. if (n < 0) printf("client: t_rcv error"). register int tfd. { int char n.1. */ int readn(fd. } Finalmente apresentamos as rotinas de entrada e sa´ que implementam o eco realiıda zado pelo servidor. /* * Read "n"\ bytes from a descriptor * Use in place of read() when fd is a stream socket. MAXLINE. */ n = t_rcv(tfd. n. 0) != n) printf("client: t_snd error"). ptr. } if (ferror(fp)) printf("client: error reading file"). { int nleft.sendline. flags.

1)) == 1) { *ptr++ = c. for ( n = 1. nleft). ptr. if (nwritten <= 0) return(nwritten). else if (nread == 0) break.nleft). } int writen( fd. n++) { if ( (rc = read(fd. nleft -= nread. return < 0 */ /* EOF */ nbytes) fd. no data read */ else break. } return(nbytes . ptr. /* error */ } *ptr = 0. } else if (rc == 0) { if (n == 1) return(0). int nleft. while (nleft > 0) { nwritten = write(fd. TRANSPORT LAYER INTERFACE return(nread). rc. &c. nwritten. ptr += nread. } return(nbytes . register int maxlen. char c. . some data was read */ } else return(-1). ptr. { int n. if (c == ’\n’) break. /* EOF. nleft = nbytes. maxlen) register int fd. TLI. } int readline(fd.nleft). *ptr. /* error */ nleft -= nwritten.100 CAP´ ITULO 12. ptr += nwritten. /* EOF. n < maxlen. register char *ptr. register int register char register int { /* return >= 0 */ /* error. nbytes.

os comandos s˜o: a $ cc -o tli server tli server.c -lnsl No Interactive System V Unix para 386 (agora chamado de Solaris).c str echo. { int n.c -linet -lnsl s $ cc -o tli client tli client.12.c tli accept. ) { n = readline(sockfd.c -linet -lnsl s .1. /* connection terminated */ else if (n < 0) printf("str_echo: readline error"). if (n == 0) return. } } Os comandos utilizados para a compila¸˜o dos programas acima foram. and write each line back * to sender. TRANSPORT LAYER INTERFACE (TLI) return(n). line. line.c -lnsl % cc -o tli client tli client. } 101 /* * Read a stream socket one line at a time. char line[MAXLINE]. MAXLINE). no SunOS ca 4.1.c tli accept. . for ( . */ #define MAXLINE 512 str_echo(sockfd) int sockfd. if (writen(sockfd. n) != n) printf("str_echo: writen error").c str echo. * * Return when the connection is terminated.1: % cc -o tli server tli server.

102 CAP´ ITULO 12. TLI. TRANSPORT LAYER INTERFACE .

Parte II Pr´tica a 103 .

.

Instale algum selecionador de boot para ser poss´ carregar qualquer dos sistemas. ıvel 3. o aluno instala sistemas operacionais em um computador IBM PC compat´ e a ıvel faz experimentos com placas de rede. Windows e Frea eBSD. 2. 13. Coloque um PC em uma subrede (192. 6. 5. Verifique que os sistemas reconhecem as interfaces de rede.2 Roteiro da Pr´tica a 1. Mostre que existe conectividade entre seu PC e o PC do outro grupo. 4.1) e outro em outra subrede (192.Cap´ ıtulo 13 Pr´tica 1 a 13. 8. Instale (ou verifique que est˜o instalados) os sistemas operacionais DOS. 105 .1).12. Configure um PC extra com duas placas de rede e sistema FreeBSD 4.3.1 Introdu¸˜o ca Nesta pr´tica. Mostre conectividade entre os dois PCs passando pelo PC extra (roteador).10.168. Configure tal PC como um roteador. Configure o TCP/IP no seu micro. 7.168.

106 ´ CAP´ ITULO 13. PRATICA 1 .

(b) Permita ping apenas dos computadores 1 e 2 para o gateway. Fa¸a um servidor de telnet no computador 1 e um de ftp no computador 2 que sejam c acessados por computadores da Internet atrav´s do gateway usando NAT. ROTEADOR) do seu micro. 2. e 107 . Reinicialize o “gateway” e defina as regras para o firewall. a Para isso. Inclua as op¸˜es options IPFIREWALL e options co IPDIVERT. c make e make install. Fa¸a config ROTEADOR. Em particular. tente: (a) Nao permita ping de nenhum computador para o gateway. a e 5. o aluno aprende a trabalhar com o ipfw (IP firewall) e com o NAT (Network a Address Translation) no sistema FreeBSD.Cap´ ıtulo 14 Pr´tica 2 a 14. va ao diret´rio /usr/src/sys/i386/conf e edite a configura¸˜o (com nome. Nenhum outro computador da Internet deve poder fazer ping para o gateway. por o ca exemplo. Leia atentamente os manuais de ipfw(8) e natd(8).1 Introdu¸˜o ca Nesta pr´tica. make depend. 3. Permita o acesso dos computadores 1 e 2 ` Internet atrav´s do gateway usando NAT. cd /usr/src/sys/compile/ROTEADOR. (c) Permita ping de todos os computadores para o gateway mas permita telnet somente dos computadores 1 e 2. 14.2 Roteiro da Pr´tica a 1. 4. Compile um novo kernel com suporte para firewall e “diversion” na m´quina “gateway”.

108 ´ CAP´ ITULO 14. PRATICA 2 .

conf(5). lmhosts(5) e smbclient(1). mountd(8) e showmount(8). Em um servidor.1 Introdu¸˜o ca Nesta pr´tica.Cap´ ıtulo 15 Pr´tica 3 a 15. Coloque a m´quina servidora no arquivo lmhosts do m´quina cliente Windows. Leia atentamente os manuais de mount nfs(8). 2. Teste a configura¸˜o com o smbclient. 9. utilit´rio que implementa um servidor de arquivos compat´ a ıvel com os sistemas Windows. De uma m´quina cliente. muito usado a em ambientes Unix e o samba. e 109 . co 6. Instale o pacote samba no FreeBSD do servidor. Execute nfsd e mountd no servidor com as devidas op¸˜es. Verifique a a que vocˆ pode ter acesso aos arquivos pelo Windows. Crie um arquivo /etc/exports que permita a um cliente acesso ao diret´rio /fora. 7. smbd(8). o 3. Leia atentamente os manuais de nmbd(8). nfsd(8). exports(5). a todos os arquivos em /fora. Verifique que o servidor est´ executando portmap. 8. o aluno aprende a trabalhar com dois servidores de arquivos: o NFS. a partir do cliente. 15. ca 11. Edite /usr/local/etc/smb. a 10.conf criando um diret´rio p´blico que possa ser lido e vascuo u lhado (“browseable”) por todas as m´quinas na rede local. crie um subdiret´rio /fora e coloque alguns arquivos nele. a 5.2 Roteiro da Pr´tica a 1. o 4. smb. Dispare o nmbd e o smbd. monte o diret´rio /fora do servidor em /mnt e verifique que voce a o tem acesso.

110 ´ CAP´ ITULO 15. PRATICA 3 .

Escreva um programa em turbo C 2. O programa dever´ ser a capaz de enviar e responder “echo requests” para computadores na mesma subrede 16.1 Introdu¸˜o ca ´ E pedido ao aluno que escreva um “stack” IP simplificado para DOS.2 Roteiro da Pr´tica a 1.Cap´ ıtulo 16 Pr´tica 4 a 16.01 que implementa pedido e resposta arp e pedido e resposta ICMP (echo request e echo reply) 111 . ca 2. Leia com aten¸˜o os RFCs referentes ao ICMP e ao ARP.

PRATICA 4 .112 ´ CAP´ ITULO 16.

however. 128 792 J.4]. not to make IP reliable. and when the gateway can direct the host to send traffic on a shorter route. to report an error in datagram processing. uses the basic support of IP as if it were a higher level protocol. Postel ISI September 1981 INTERNET CONTROL MESSAGE PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION Introduction The Internet Protocol (IP) [1] is used for host-to-host datagram service in a system of interconnected networks called the Catenet [2]. The purpose of these control messages is to provide feedback about problems in the communication environment. These gateways communicate between themselves for control purposes via a Gateway to Gateway Protocol (GGP) [3. ICMP. for example. For such purposes this protocol. ICMP is actually an integral part of IP. Occasionally a gateway or destination host will communicate with a source host. when a datagram cannot reach its destination. The Internet Protocol is not designed to be absolutely reliable. is used. 113 . and must be implemented by every IP module. when the gateway does not have the buffering capacity to forward a datagram. the Internet Control Message Protocol (ICMP). 760 IENs 109. ICMP messages are sent in several situations: for example.Cap´ ıtulo 17 RFC0792 ICMP Network Working Group Request for Comments: Updates: Updates: RFCs 777. The network connecting devices are called Gateways.

the value of this field determines the format of the remaining data. but receivers should not use these fields (except to include them in the checksum). [Page 1] September 1981 RFC 792 Message Formats ICMP messages are sent using the basic IP header. Type of Service 0 Total Length Length of internet header and data in octets. Fragment Offset . To avoid the infinite regress of messages about messages etc. Unless otherwise noted under the individual format descriptions. no ICMP messages are sent about ICMP messages. RFC0792 ICMP There are still no guarantees that a datagram will be delivered or a control message will be returned.114 CAP´ ITULO 17. The higher level protocols that use IP must implement their own reliability procedures if reliable communication is required.. Identification. Flags. The ICMP messages typically report errors in the processing of datagrams. (Fragment zero has the fragment offeset equal zero). the values of the internet header fields are as follows: Version 4 IHL Internet header length in 32-bit words. Also ICMP messages are only sent about errors in handling fragment zero of fragemented datagrams. Any field labeled "unused" is reserved for later extensions and must be zero when sent. The first octet of the data portion of the datagram is a ICMP type field. Some datagrams may still be undelivered without any report of their loss.

the checksum field should be zero. Destination Address The address of the gateway or host to which the message should be sent. Protocol ICMP = 1 Header Checksum The 16 bit one’s complement of the one’s complement sum of all 16 bit words in the header.115 Used in fragmentation. This checksum may be replaced in the future. the value in this field should be at least as great as the number of gateways which this datagram will traverse. [Page 2] September 1981 RFC 792 Source Address The address of the gateway or host that composes the ICMP message. [Page 3] September 1981 RFC 792 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . this can be any of a gateway’s addresses. see [1]. as this field is decremented at each machine in which the datagram is processed. Unless otherwise noted. Time to Live Time to live in seconds. For computing the checksum.

For computing the checksum . If a higher level protocol uses port numbers. 2 = protocol unreachable. This checksum may be replaced in the future. 3 = port unreachable. . ICMP Fields: Type 3 Code 0 = net unreachable. 4 = fragmentation needed and DF set. This data is used by the host to match the message to the appropriate process. Internet Header + 64 bits of Data Datagram The internet header plus the first 64 bits of the original [Page 4] September 1981 RFC 792 datagram’s data. 1 = host unreachable. they are assumed to be in the first 64 data bits of the original datagram’s data.116 CAP´ ITULO 17. 5 = source route failed. the checksum field should be zero. RFC0792 ICMP | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Destination Address The source network and address from the original datagram’s data. Checksum The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type.

ICMP Fields: . in the destination host. in some networks. 3 may be received from a host. the gateway may be able to determine if the internet destination host is unreachable. Codes 0. If. Another case is when a datagram must be fragmented to be forwarded by a gateway yet the Don’t Fragment flag is on. the gateway may send a destination unreachable message to the internet source host of the datagram. according to the information in the gateway’s routing tables. In this case the gateway must discard the datagram and may return a destination unreachable message. e. In addition. 1. Codes 2 and [Page 5] September 1981 RFC 792 Time Exceeded 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Destination Address The source network and address from the original datagram’s data. the destination host may send a destination unreachable message to the source host.g. Gateways in these networks may send destination unreachable messages to the source host when the destination host is unreachable. and 5 may be received from a gateway. the distance to the network is infinity. 4.117 Description If.. the IP module cannot deliver the datagram because the indicated protocol module or process port is not active. the network specified in the internet destination field of a datagram is unreachable.

the checksum field should be zero. Checksum CAP´ ITULO 17. 1 = fragment reassembly time exceeded. from a host.118 Type 11 Code 0 = time to live exceeded in transit. Internet Header + 64 bits of Data Datagram The internet header plus the first 64 bits of the original datagram’s data. If fragment zero is not available then no time exceeded need be sent at all. and it may send a time exceeded message. This checksum may be replaced in the future. Code 0 may be received from a gateway. The gateway may also notify the source host via the time exceeded message. For computing the checksum . If a higher level protocol uses port numbers. This data is used by the host to match the message to the appropriate process. Description If the gateway processing a datagram finds the time to live field [Page 6] September 1981 RFC 792 is zero it must discard the datagram. If a host reassembling a fragmented datagram cannot complete the reassembly due to missing fragments within its time limit it discards the datagram. they are assumed to be in the first 64 data bits of the original datagram’s data. Code 1 may be received [Page 7] . RFC0792 ICMP The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type.

119 September 1981 RFC 792

Parameter Problem 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Pointer | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Destination Address The source network and address from the original datagram’s data. ICMP Fields: Type 12 Code 0 = pointer indicates the error. Checksum The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type. For computing the checksum , the checksum field should be zero. This checksum may be replaced in the future. Pointer If code = 0, identifies the octet where an error was detected. Internet Header + 64 bits of Data Datagram The internet header plus the first 64 bits of the original datagram’s data. This data is used by the host to match the message to the appropriate process. If a higher level protocol uses port numbers, they are assumed to be in the first 64 data bits of the original datagram’s data.

120 [Page 8]

CAP´ ITULO 17. RFC0792 ICMP

September 1981 RFC 792

Description If the gateway or host processing a datagram finds a problem with the header parameters such that it cannot complete processing the datagram it must discard the datagram. One potential source of such a problem is with incorrect arguments in an option. The gateway or host may also notify the source host via the parameter problem message. This message is only sent if the error caused the datagram to be discarded. The pointer identifies the octet of the original datagram’s header where the error was detected (it may be in the middle of an option). For example, 1 indicates something is wrong with the Type of Service, and (if there are options present) 20 indicates something is wrong with the type code of the first option. Code 0 may be received from a gateway or a host.

[Page 9]

September 1981 RFC 792

Source Quench 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Destination Address The source network and address of the original datagram’s data. ICMP Fields:

121

Type 4 Code 0 Checksum The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type. For computing the checksum , the checksum field should be zero. This checksum may be replaced in the future. Internet Header + 64 bits of Data Datagram The internet header plus the first 64 bits of the original datagram’s data. This data is used by the host to match the message to the appropriate process. If a higher level protocol uses port numbers, they are assumed to be in the first 64 data bits of the original datagram’s data. Description A gateway may discard internet datagrams if it does not have the buffer space needed to queue the datagrams for output to the next network on the route to the destination network. If a gateway

[Page 10]

September 1981 RFC 792

discards a datagram, it may send a source quench message to the internet source host of the datagram. A destination host may also send a source quench message if datagrams arrive too fast to be processed. The source quench message is a request to the host to cut back the rate at which it is sending traffic to the internet destination. The gateway may send a source quench message for every message that it discards. On receipt of a source quench message, the source host should cut back the rate at which it is sending traffic to the specified destination until it no longer receives source quench messages from the gateway. The source host can then gradually increase the rate at which it sends traffic to the destination until it again receives source quench messages. The gateway or host may send the source quench message when it approaches its capacity limit rather than waiting until the capacity is exceeded. This means that the data datagram which

the checksum field should be zero. Checksum The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type. 1 = Redirect datagrams for the Host. For computing the checksum . 3 = Redirect datagrams for the Type of Service and Host. ICMP Fields: Type 5 Code 0 = Redirect datagrams for the Network.122 CAP´ ITULO 17. 2 = Redirect datagrams for the Type of Service and Network. RFC0792 ICMP triggered the source quench message may be delivered. [Page 11] September 1981 RFC 792 Redirect 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gateway Internet Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Destination Address The source network and address of the original datagram’s data. This checksum may be replaced in the future. Code 0 may be received from a gateway or a host. .

For datagrams with the IP source route options and the gateway address in the destination address field. G1. Codes 0. 2. [Page 13] September 1981 RFC 792 . X. 1. This data is used by the host to match the message to the appropriate process.123 Gateway Internet Address Address of the gateway to which traffic for the network specified in the internet destination network field of the original datagram’s data should be sent. If a higher level protocol uses port numbers. a redirect message is not sent even if there is a better route to the ultimate destination than the next address in the source route. The gateway. Description The gateway sends a redirect message to a host in the following situation. G2. a redirect message is sent to the host. checks its routing table and obtains the address of the next gateway. G1. they are assumed to be in the first 64 data bits of the original datagram’s data. on the route to the datagram’s internet destination network. [Page 12] September 1981 RFC 792 Internet Header + 64 bits of Data Datagram The internet header plus the first 64 bits of the original datagram’s data. The redirect message advises the host to send its traffic for network X directly to gateway G2 as this is a shorter path to the destination. and 3 may be received from a gateway. receives an internet datagram from a host on a network to which the gateway is attached. The gateway forwards the original datagram’s data to its internet destination. If G2 and the host identified by the internet source address of the datagram are on the same network. A gateway.

For computing the checksum . This checksum may be replaced in the future. If the total length is odd.. 0 for echo reply message. the source and destination addresses are simply reversed. the checksum field should be zero.. To form an echo reply message.124 CAP´ ITULO 17. +-+-+-+-+IP Fields: Addresses The address of the source in an echo message will be the destination of the echo reply message. and the checksum recomputed. Sequence Number [Page 14] . the received data is padded with one octet of zeros for computing the checksum. IP Fields: Type 8 for echo message. may be zero. Code 0 Checksum The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type. the type code changed to 0. an identifier to aid in matching echos and replies. RFC0792 ICMP 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 . Identifier If code = 0.

a sequence number to aid in matching echos and replies. Description The data received in the echo message must be returned in the echo reply message.125 September 1981 RFC 792 If code = 0. the source and destination addresses are simply . Code 0 may be received from a gateway or a host. The echoer returns these same values in the echo reply. The identifier and sequence number may be used by the echo sender to aid in matching the replies with the echo requests. the identifier might be used like a port in TCP or UDP to identify a session. For example. and the sequence number might be incremented on each echo request sent. To form a timestamp reply message. may be zero. [Page 15] September 1981 RFC 792 Timestamp or Timestamp 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originate Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmit Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Addresses The address of the source in a timestamp message will be the destination of the timestamp reply message.

the checksum field should be zero. One use of these timestamps is described by Mills [5]. the Receive Timestamp is the time the echoer first touched it on receipt.126 CAP´ ITULO 17. Code 0 Checksum The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type. an identifier to aid in matching timestamp and replies. 14 for timestamp reply message. The timestamp is 32 bits of milliseconds since midnight UT. The Originate Timestamp is the time the sender last touched the message before sending it. and the checksum recomputed. and the Transmit Timestamp is the time the echoer last touched the message on sending it. a sequence number to aid in matching timestamp and replies. For computing the checksum . Identifier [Page 16] September 1981 RFC 792 If code = 0. RFC0792 ICMP reversed. the type code changed to 14. Sequence Number If code = 0. Description The data received (a timestamp) in the message is returned in the reply together with an additional timestamp. This checksum may be replaced in the future. may be zero. may be zero. IP Fields: Type 13 for timestamp message. .

the source and destination addresses are simply reversed. To form a information reply message. The destination returns these same values in the reply. 16 for information reply message. For example. the identifier might be used like a port in TCP or UDP to identify a session. the type code changed to 16.127 If the time is not available in miliseconds or cannot be provided with respect to midnight UT then any time can be inserted in a timestamp provided the high order bit of the timestamp is also set to indicate this non-standard value. [Page 17] September 1981 RFC 792 Information Request or Information 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields: Addresses The address of the source in a information request message will be the destination of the information reply message. Code 0 . Code 0 may be received from a gateway or a host. and the checksum recomputed. The identifier and sequence number may be used by the echo sender to aid in matching the replies with the requests. IP Fields: Type 15 for information request message. and the sequence number might be incremented on each request sent.

The replying IP module should send the reply addresses fully specified. For example. [Page 19] September 1981 RFC 792 Summary of Message Types . RFC0792 ICMP The checksum is the 16-bit ones’s complement of the one’s complement sum of the ICMP message starting with the ICMP Type. [Page 18] September 1981 RFC 792 Description This message may be sent with the source network in the source and destination address fields zero (which means network). The destination returns these same values in the reply. This checksum may be replaced in the future. Sequence Number If code = 0. IP header "this" with the host to The identifier and sequence number may be used by the echo sender to aid in matching the replies with the requests. and the sequence number might be incremented on each request sent. may be zero. For computing the checksum . Code 0 may be received from a gateway or a host. This message is a way for a find out the number of the network it is on.128 Checksum CAP´ ITULO 17. the identifier might be used like a port in TCP or UDP to identify a session. the checksum field should be zero. may be zero. a sequence number to aid in matching request and replies. an identifier to aid in matching request and replies. Identifier If code = 0.

J. "How to Build a Gateway". September 1981. (ed. D. July 1978. Bolt Beranek and Newman." RFC 778.). "Gateway Routing: An Implementation Specification". August 1979. Mills. IEN 109. Defense Advanced Research Projects Agency." RFC 791.. V." IEN 48. [2] [3] [4] [5] [Page 21] . Information Processing Techniques Office. Cerf. "DCNET Internet Clock Service.DARPA Internet Program Protocol Specification. April 1981.. Strazisar. COMSAT Laboratories. USC/Information Sciences Institute.129 0 3 4 5 8 11 12 13 14 15 16 Echo Reply Destination Unreachable Source Quench Redirect Echo Time Exceeded Parameter Problem Timestamp Timestamp Reply Information Request Information Reply [Page 20] September 1981 RFC 792 References [1] Postel. "Internet Protocol . "The Catenet Model for Internetworking. Strazisar. V.. April 1979. Bolt Beranek and Newman. IEN 30. V..

130 CAP´ ITULO 17. RFC0792 ICMP .

-------------------------------------------------------------------131 . Generalizations have been made which allow the protocol to be used for non-10Mbit Ethernet hardware.bit Ethernet address.ARP Network Working Group Request For Comments: 826 David C. Presented here is a protocol that allows dynamic distribution of the information needed to build tables to translate an address A in protocol P’s address space into a 48. The addresses of hosts within protocol P are not always compatible with the corresponding Ethernet address (being different lengths or values).bit Ethernet address must be generated.or -Converting Network Protocol Addresses to 48. To actually transmit the Ethernet packet a 48.Cap´ ıtulo 18 RFC0826 . Plummer (DCP@MIT-MC) November 1982 An Ethernet Address Resolution Protocol -. Some packet radio networks are examples of such hardware. through protocol P’s routing mechanism. that it wants to transmit to a target host T located some place on a connected piece of 10Mbit Ethernet cable.bit Ethernet Address for Transmission on Ethernet Hardware Abstract The implementation of protocol P on a sending host S decides.

the 10Mbit Ethernet . DOD Internet Protocol will be referred to as Internet. Even closer to the hardware is the logical transport layer..] Notes: -----This protocol was originally designed for the DEC/Intel/Xerox 10Mbit Ethernet. This is a issue of general concern in the ARPA Internet community at this time. DOD TCP. which might be CHAOS protocol. which is high byte first. An agreed upon authority is needed to manage hardware name space values (see below).g. Xerox PUP. there is TELNET and SUPDUP for remote login. or DECnet. This is not the specification of a Internet Standard. IP addresses) to Local Network Addresses (e. at a high level. Inc.ARP The protocol proposed here is the result of a great deal of discussion with several other people.132 CAP´ ITULO 18. Until an official authority exists. and James E. 243 Vassar Street Cambridge. special care must be taken with the opcode field (ar$op) described below. Kulp. Plummer Symbolics. [The purpose of this RFC is to present a method of Converting Protocol Addresses (e. Xerox BSP or DECnet. It has been generalized to allow it to be used for other types of networks. DOD Internet. This is the opposite of the byte addressing of machines such as PDP-11s and VAXes. Generalizations. Numbers here are in the Ethernet standard. Yogen Dalal. network mail can be sent to DCP@MIT-MC. and the networking game contributes many animals. Somewhere below that there is a reliable byte stream protocol. and helpful comments from David Moon. where applicable. At nearly every layer of a network architecture there are several potential protocols that could be used. which might be CHAOS. However. Ethernet addresses). For example. The method proposed here is presented for your consideration and comment.. will follow the Ethernet-specific discussion. The Problem: -----------The world is a jungle in general. requests should be submitted to David C. Therefore. Noel Chiappa. most notably J. Massachusetts 02139 Alternatively. Much of the discussion will be directed toward the 10Mbit Ethernet. The 10Mbit Ethernet allows all of these protocols (and more) to coexist on a single cable by means of a type field in the Ethernet packet header.g. RFC0826 .

a packet format that embodies the Address Resolution protocol is needed. Intel and Xerox.bit Ethernet address of the hardware.133 requires 48. This proposal attempts to set the standard.bit: Ethernet address of sender 16.bit: (ar$pro) Protocol address space. Definitions: -----------Define the following for referring to the values put in the TYPE field of the Ethernet packet header: ether_type$XEROX_PUP.bits. high byte transmitted first) and ares_op$REPLY (= 2). Ethernet transmission layer (not necessarily accessible to the user): 48. There are two alternatives: (1) Every implementor invents his/her own method to do some form of address resolution.bits. A protocol is needed to dynamically distribute the correspondences between a <protocol.) 16. CHAOS addresses are 16. Packet Radio Net. The format of the packet follows. yet most protocol addresses are not 48.bits long. ether_type$DOD_INTERNET. With this increasing availability. address> pair and a 48.bit: Protocol type = ether_type$ADDRESS_RESOLUTION Ethernet packet data: 16. Packet format: -------------To communicate mappings from <protocol. this is from the set of type fields ether_typ$<protocol>. ether_type$CHAOS.bit addresses on the physical cable. and a new one: ether_type$ADDRESS_RESOLUTION. nor do they necessarily have any relationship to the 48. Ethernet. Also define the following values (to be discussed later): ares_op$REQUEST (= 1. or (2) every implementor uses a standard so that his/her code can be distributed to other systems without need for modification. more and more software is being written for these interfaces. .bit: (ar$hrd) Hardware address space (e.bit: Ethernet address of destination 48. DOD Internet addresses are 32.. and ares_hrd$Ethernet (= 1).g. Motivation: ----------Use of the 10Mbit Ethernet is increasing as more manufacturers supply interfaces that conform to the specification published by DEC.bits. and Xerox PUP addresses are 8.bit Ethernet addresses.bit Ethernet address. address> pairs to 48. For example. For Ethernet hardware.

nbytes: (ar$tha) Hardware address of target of this packet (if known).bit Ethernet address back to the caller (hardware driver) which then transmits the packet.ARP byte length of each hardware address byte length of each protocol address opcode (ares_op$REQUEST | ares_op$REPLY) Hardware address of sender of this packet. address resolution is needed and some lower layer (probably the hardware driver) must consult the Address Resolution module (perhaps implemented in the Ethernet support module) to convert the <protocol type. If it finds the pair. it gives the corresponding 48. Packet Generation: -----------------As a packet is sent down through the network layers. routing determines the protocol address of the next hop for the packet and on which piece of hardware it expects to find the station with the immediate target protocol address. ar$pln to the length of an address in that protocol. The Address Resolution module then sets the ar$hrd field to ares_hrd$Ethernet. ar$sha with the 48. target protocol address> pair to a 48.bit ethernet address of itself. Packet Reception: ----------------When an address resolution packet is received. Negative conditionals indicate an end of processing and a . mbytes: (ar$spa) Protocol address of sender of this packet. the receiving Ethernet module gives the packet to the Address Resolution module which goes through an algorithm similar to the following. RFC0826 .bit: 8. It does not set ar$tha to anything in particular. In the case of the 10Mbit Ethernet. it probably informs the caller that it is throwing the packet away (on the assumption the packet will be retransmitted by a higher network layer). The Address Resolution module tries to find this pair in a table. ar$op to ares_op$REQUEST. ar$pro to the protocol type that is being resolved. ar$hln to 6 (the number of bytes in a 48.bit: nbytes: (ar$hln) (ar$pln) (ar$op) (ar$sha) CAP´ ITULO 18. m from the ar$pln field. mbytes: (ar$tpa) Protocol address of target. It then causes this packet to be broadcast to all stations on the Ethernet cable originally determined by the routing mechanism. and ar$tpa with the protocol address of the machine that is trying to be accessed. and generates an Ethernet packet with a type field of ether_type$ADDRESS_RESOLUTION.bit Ethernet address. because it is this value that it is trying to determine. It could set ar$tha to the broadcast address for the hardware (all ones in the case of the 10Mbit Ethernet) if that makes it convenient for some aspect of the implementation. n from the ar$hln field. ar$spa with the protocol address of itself.134 8.bit Ethernet address).bit: 16. If it does not.

then the new hardware address supersedes the old one.135 discarding of the packet. sender hardware address> triplet is merged into the table before the opcode is looked at. then B will probably have some reason to talk to A. they will be mainly talking to a mainframe. the ar$pro field may no longer correspond to the Ethernet type field. 6>. ar$hln> takes on the value <1. update the sender hardware address field of the entry with the new information in the packet and set Merge_flag to true. Set the ar$op field to ares_op$REPLY Send the packet to the (new) target hardware address on the same hardware on which the request was received. Generalization: The ar$hrd and ar$hln fields allow this protocol and packet format to be used for non-10Mbit Ethernets. ?Do I have the hardware type in ar$hrd? Yes: (almost definitely) [optionally check the hardware length ar$hln] ?Do I speak the protocol in ar$pro? Yes: [optionally check the protocol length ar$pln] Merge_flag := false If the pair <protocol type. sender protocol address> pair. ?Am I the target protocol address? Yes: If Merge_flag is false. add the triplet <protocol type. but what use is it? The workstations aren’t generally going to be talking to each other (and therefore have 100 useless entries in a table). file server or bridge. Why is it done this way?? ------------------------Periodic broadcasting is definitely not desired. This is one packet every 6 seconds. This is on the assumption that communcation is bidirectional. if A has some reason to talk to B. For other hardware networks. Related Issues gives some motivation for this. each broadcasting address resolution information once per 10 minutes (as one possible set of parameters). putting the local hardware and protocol addresses in the sender fields. sender hardware address> to the translation table. For the 10Mbit Ethernet <ar$hrd. sender protocol address> is already in my translation table. but it should be associated with the protocol whose address resolution is being sought. Imagine 100 workstations on a single Ethernet. sender protocol address. This is almost reasonable. sender protocol address. Notice also that if an entry already exists for the <protocol type. but only to a small number of . ?Is the opcode ares_op$REQUEST? (NOW look at the opcode!!) Yes: Swap hardware and protocol fields. Notice that the <protocol type.

for example). Currently the only defined value is for the 10Mbit Ethernet (ares_hrd$Ethernet = 1). and to simplify the suggested processing algorithm described above (which does not look at the opcode until AFTER putting the sender information in a table). For the 10Mbit Ethernet. This is for simplicity. The target protocol address is necessary in the request form of the packet so that a machine can determine whether or not to enter the sender information in a table or to send a reply. This format allows the packet buffer to be reused if a reply is generated. the length fields (ar$hln and ar$pln) are redundant. It is not necessarily needed in the reply form if one assumes a reply is only provoked by a request. the value in the protocol field (ar$pro) is taken from the set ether_type$. If things were multiplexed the packet format would be considerably harder to digest. It is included for completeness. Combining this with the opcode (ar$op) would effectively halve the number of protocols that can be resolved under this protocol and would make a monitor/debugger more complex (see Network Monitoring and Debugging below). and several of the fields are the same. 16 bits for this is overkill. Think of a bridge that talks four protocols telling a workstation all four protocol addresses. and much of the information could be gratuitous. and only once (probably) per boot of a machine. but a flag (field) is needed. but Murphy made some laws which don’t allow us to make this assumption. and this will require another value as will other future hardware mediums that wish to use this protocol. three of which the workstation will probably never use. It is these fields that get put in a translation table. a reply has the same length as a request.ARP other workstations (for interactive conversations. RFC0826 . There has been talk of using this protocol for Packet Radio Networks as well. since the length of a protocol address should be determined by the hardware type (found in ar$hrd) and the protocol type (found in ar$pro).136 CAP´ ITULO 18. . It is hoped that we will never see 32768 protocols. This format does not allow for more than one resolution to be done in the same packet. The sender hardware address and sender protocol address are absolutely necessary. and for network monitoring and debugging (see below). It is included for optional consistency checking. The protocol described in this paper distributes information as it is needed. In theory. This is a natural reuse of the assigned protocol types. The value of the hardware field (ar$hrd) is taken from a list for this purpose. The opcode is to determine if this is a request (which may cause a reply) or a reply to a previous request. network monitoring.

it is not necessary for the monitor to speak any of the higher level protocols involved. the monitor sends a REPLY as it normally would. and table management may be slightly tricky. for example) this may save some register shuffling or stack space by sending this field to the hardware driver as the hardware destination address of the packet. Because requests are broadcast a monitor will receive the packet and can display it for debugging if desired.. The packet data should be viewed as a byte stream in which only 3 byte pairs are defined to be words (ar$hrd. A working implementation of the Address Resolution protocol can also be used to debug a non-working implementation. it always enters the <protocol type. If the opcode is a REQUEST and the target protocol address matches the protocol address of the monitor. sender protocol address. The format of the packet may not be totally correct. sender hardware address> in a table. since the REPLY to the REQUEST will be sent directly to the requesting host. The monitor could try sending its own REQUEST. DECnet) on an Ethernet cable. Presumably a hardware driver will successfully broadcast a packet with Ethernet type field of ether_type$ADDRESS_RESOLUTION. In fact. In some implementations (which do not get to look at the 14. ar$pro and ar$op) which are sent most significant byte first (Ethernet/PDP-10 byte style). and care must be taken. The length fields should also give enough information to enable it to "parse" a protocol addresses. although it has no knowledge of what the protocol addresses mean. since it is this number that the machine is requesting. Because the protocol and opcode are not combined into one field. . because initial implementations may have bugs. but this could get two monitors into a REQUEST sending loop. The monitor will only get one mapping this way. It can determine which Ethernet protocol type fields are in use (by value) and the protocol addresses within each protocol type. PUP. It can determine the length of the hardware and protocol address from the ar$hln and ar$pln fields of the packet. Its meaning in the reply form is the address of the machine making the request.byte ethernet header. CHAOS. Network monitoring and debugging: --------------------------------The above Address Resolution protocol allows a machine to gain knowledge about the higher level protocol activity (e. It has no meaning in the request form.g.137 The target hardware address is included for completeness and network monitoring. There are no padding bytes between addresses. the monitor does not need to know which request opcode is associated with which reply opcode for the same higher level protocol. It goes something like this: When a monitor receives an Address Resolution packet. Internet. If the opcode is a REPLY the monitor can then throw the packet away.

bit Ethernet address. RFC0826 . IPA(X)> maps to EA(X). It then notices that it is a request. At this point Y knows how to send to X. IPA(Y)> to EA(Y).ARP An Example: ----------Let there exist machines X and Y that are on the same 10Mbit Ethernet cable. Here is a more detailed description (thanks to MOON@SCRC@MIT-MC). any connections initiated by that host will work. The implementation of these is outside the scope of this protocol. that it speaks the indicated protocol (Internet) and that the packet is for it ((ar$tpa)=IPA(Y)). sets the opcode to reply. forms the map from <ET(IP). The driver consults the Address Resolution module to convert <ET(IP).138 CAP´ ITULO 18. assuming its own address resolution table is cleared when . If a host moves. X knows that it wants to send to IPA(Y) and tells the hardware driver (here an Ethernet driver) IPA(Y). It enters (probably replacing any existing entry) the information that <ET(IP). Related issue: --------------It may be desirable to have table aging and/or timeouts. and sends the packet directly (not broadcast) to EA(X). it does not have this information. and sooner or later wants to send an Internet packet to machine Y on the same cable. Let the Ethernet type of Internet be ET(IP). IPA(Y)> into a 48. the translation will succeed. It throws the Internet packet away and instead creates an ADDRESS RESOLUTION packet with (ar$hrd) = ares_hrd$Ethernet (ar$pro) = ET(IP) (ar$hln) = length(EA(X)) (ar$pln) = length(IPA(X)) (ar$op) = ares_op$REQUEST (ar$sha) = EA(X) (ar$spa) = IPA(X) (ar$tha) = don’t care (ar$tpa) = IPA(Y) and broadcasts this packet to everybody on the cable. so it swaps fields. this will also succeed since Y has remembered the information from X’s request for Address Resolution. and the packet will (hopefully) arrive. notices the packet is a reply and throws it away. If Y’s Internet module then wants to talk to X. putting EA(Y) in the new sender Ethernet address field (ar$sha). but because X was just started. but X still doesn’t know how to send to Y. The next time X’s Internet module tries to send a packet to Y on the Ethernet. Machine Y gets this packet. Machine X gets the reply packet from Y. and determines that it understands the hardware type (Ethernet). They have Ethernet address EA(X) and EA(Y) and DOD Internet addresses IPA(X) and IPA(Y) . Machine X has just been started.

which must be regained. the daemon considers removing an entry. This issue clearly needs more thought if it is believed to be important. possibly because it is down or the old translation is no longer valid. connections initiated to it by other hosts will have no particular reason to know to discard their old address. Since hosts don’t transmit information about anyone other than themselves. The request is sent directly so as not to bother every station on the Ethernet. then the sender hardware address supersedes the existing entry. the address resolution entry is forgotten. Therefore. there is always the danger of incorrect routing information accidentally getting transmitted through hardware or software error. 48.bit Ethernet address. Perhaps failure to initiate a connection should inform the Address Resolution module to delete the information on the basis that the host is not reachable. Recall that if the <protocol type. Perhaps manually resetting (or clearing) the address mapping table will suffice. However. rebooting a host will cause its address mapping table to be up to date. Just forgetting entries will likely cause useful information to be forgotten. Another alternative is to have a daemon perform the timeouts. The suggested algorithm for receiving address resolution packets tries to lessen the time it takes for recovery if a host does move. each station will be get the new hardware address. After a suitable time. the only bad information that can exist is in a machine that doesn’t know that some other machine has changed its 48. It first sends (with a small number of retransmissions if needed) an address resolution packet with opcode REQUEST directly to the Ethernet address in the table. Bad information can’t persist forever by being passed around from machine to machine. if no packets are received from a host for a suitable length of time. A host could "move" if a host name (and address in some other protocol) were reassigned to a different physical piece of hardware. If a REPLY is not seen in a short amount of time. so they shouldn’t change. It is caused by any address resolution-like protocol. as we know from experience. However. . sender protocol address> is already in the translation table.bit Ethernet addresses are supposed to be unique and fixed for all time. the entry is deleted. Or perhaps receiving of a packet from a host should reset a timeout in the address resolution entry used for transmitting packets to that host. Also. it should not be allowed to persist forever.139 it moves. Perhaps a hash or index can make this faster. on a perfect Ethernet where a broadcast REQUEST reaches all stations on the cable. This may cause extra overhead to scan the table for each incoming packet.

RFC0826 .ARP .140 CAP´ ITULO 18.

We recommend this License principally for works whose purpose is instruction or reference. Boston. It complements the GNU General Public License. it can be used for any textual work. PREAMBLE The purpose of this License is to make a manual. Suite 330. which means that derivative works of the document must themselves be free in the same sense. either commercially or noncommercially. 59 Temple Place. while not being considered responsible for modifications made by others. 141 . Secondarily.Cap´ ıtulo 19 GNU Free Documentation License Version 1. because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals.2002 Free Software Foundation. with or without modifying it. regardless of subject matter or whether it is published as a printed book. Inc. We have designed this License in order to use it for manuals for free software. This License is a kind of “copyleft”. this License preserves for the author and publisher a way to get credit for their work. November 2002 Copyright c 2000. or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it. but changing it is not allowed. which is a copyleft license designed for free software.2. MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document.2001. textbook.

An image format is not Transparent if used for any substantial amount of text. if the Document is in part a textbook of mathematics. The “Invariant Sections” are certain Secondary Sections whose titles are designated. Examples of transparent image formats include PNG. Examples of suitable formats for Transparent copies include plain ASCII without marA kup. A “Modified Version” of the Document means any work containing the Document or a portion of it.142 CAP´ ITULO 19. SGML or XML using a publicly available DTD. royalty-free license. A “Transparent” copy of the Document means a machine-readable copy. in the notice that says that the Document is released under this License. either copied verbatim. PostScript or PDF produced by some word processors for output purposes only. to use that work under the conditions stated herein. The “Cover Texts” are certain short passages of text that are listed. Texinfo input format. and the machinegenerated HTML. unlimited in duration. A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. as Front-Cover Texts or Back-Cover Texts. GNU FREE DOCUMENTATION LICENSE 19. a Secondary Section may not explain any mathematics. or with modifications and/or translated into another language.1 APPLICABILITY AND DEFINITIONS This License applies to any manual or other work. PostScript or PDF designed for human modification. The Document may contain zero Invariant Sections. as being those of Invariant Sections. and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. below. philosophical. modify or distribute the work in a way requiring permission under copyright law. A copy that is not “Transparent” is called “Opaque”. XCF and JPG. ethical or political position regarding them. (Thus. SGML or XML for which the DTD and/or processing tools are not generally available. Such a notice grants a world-wide. and is addressed as “you”. has been arranged to thwart or discourage subsequent modification by readers is not Transparent. If the Document does not identify any Invariant Sections then there are none. The “Document”. in any medium. and standard-conforming simple HTML. and a Back-Cover Text may be at most 25 words. refers to any such manual or work. the title page itself. that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor. that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License.) The relationship could be a matter of historical connection with the subject or with related matters. or of legal. represented in a format whose specification is available to the general public. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. You accept the license if you copy. in the notice that says that the Document is released under this License. The “Title Page” means. L TEX input format. A copy made in an otherwise Transparent file format whose markup. commercial. for a printed book. plus such following . or absence of markup. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors. A Front-Cover Text may be at most 5 words. Any member of the public is a licensee.

the material this License requires to appear in the title page. and Back-Cover Texts on the back cover. and the license notice saying this License applies to the Document are reproduced in all copies. numbering more than 100.3 COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document.2 VERBATIM COPYING You may copy and distribute the Document in any medium. However. as long as they preserve the title of the Document and satisfy these conditions. you should put the first ones listed (as many as fit reasonably) on the actual cover. 19. 19. If you distribute a large enough number of copies you must also follow the conditions in section 19. VERBATIM COPYING 143 pages as are needed to hold. clearly and legibly. provided that this License. You may also lend copies. Copying with changes limited to the covers. or “History”.19. (Here XYZ stands for a specific section name mentioned below. and that you add no other conditions whatsoever to those of this License. legibly. you must enclose the copies in covers that carry. such as “Acknowledgements”. the copyright notices.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition. and continue the rest onto adjacent pages. either commercially or noncommercially. The front cover must present the full title with all words of the title equally prominent and visible. all these Cover Texts: FrontCover Texts on the front cover.3. preceding the beginning of the body of the text. “Dedications”. If you publish or distribute Opaque copies of the Document numbering more than . you may accept compensation in exchange for copies. “Title Page” means the text near the most prominent appearance of the work’s title. A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. under the same conditions stated above.2. Both covers must also clearly and legibly identify you as the publisher of these copies. and the Document’s license notice requires Cover Texts. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. “Endorsements”. can be treated as verbatim copying in other respects. You may add other material on the covers in addition. For works in formats which do not have any title page as such. If the required texts for either cover are too voluminous to fit legibly. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License. and you may publicly display copies. but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

with the Modified Version filling the role of the Document. to give them a chance to provide you with an updated version of the Document. and publisher of the Document as given on its Title Page. you must either include a machine-readable Transparent copy along with each Opaque copy. Preserve the section Entitled “History”. Include an unaltered copy of this License. or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document. 5. as the publisher. If you use the latter option. if it has fewer than five). unless they release you from this requirement. 9. create one stating the title. Preserve its Title. one or more persons or entities responsible for authorship of the modifications in the Modified Version. . but not required. together with at least five of the principal authors of the Document (all of its principal authors. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.144 CAP´ ITULO 19. If there is no section Entitled “History” in the Document. immediately after the copyright notices. you must take reasonably prudent steps. a license notice giving the public permission to use the Modified Version under the terms of this License. year. year. 7. 3. thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. when you begin distribution of Opaque copies in quantity. free of added material. that you contact the authors of the Document well before redistributing any large number of copies. to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. and publisher of the Modified Version as given on the Title Page. you must do these things in the Modified Version: 1. List on the Title Page. and from those of previous versions (which should. 4.4 MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 19. if there were any. and add to it an item stating at least the title. if any) a title distinct from that of the Document. then add an item describing the Modified Version as stated in the previous sentence. Include. authors. as authors. be listed in the History section of the Document). State on the Title page the name of the publisher of the Modified Version. In addition. provided that you release the Modified Version under precisely this License. in the form shown in the Addendum below. 6.2 and 19. 19. GNU FREE DOCUMENTATION LICENSE 100.3 above. 2. new authors. It is requested. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. You may use the same title as a previous version if the original publisher of that version gives permission. 8. Use in the Title Page (and on the covers. Preserve all the copyright notices of the Document.

15. You may add a passage of up to five words as a Front-Cover Text. Section numbers or the equivalent are not considered part of the section titles. under the terms defined in section 19. if any. You may add a section Entitled “Endorsements”. If the Document already includes a cover text for the same cover. COMBINING DOCUMENTS 145 10. given in the Document for public access to a Transparent copy of the Document. provided that you include in the combination all of the Invariant Sections of all of the original documents. If there are multiple Invariant Sections . Preserve the Title of the section.19. and a passage of up to 25 words as a Back-Cover Text. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section. 19. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document.5. to the end of the list of Cover Texts in the Modified Version. These may be placed in the “History” section.4 above for modified versions. You may omit a network location for a work that was published at least four years before the Document itself. 14. To do this. unaltered in their text and in their titles. provided it contains nothing but endorsements of your Modified Version by various parties–for example. For any section Entitled “Acknowledgements” or “Dedications”. 13. and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. 11. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. and that you preserve all their Warranty Disclaimers. 12. Such a section may not be included in the Modified Version. unmodified. you may not add another. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. Delete any section Entitled “Endorsements”. Preserve all the Invariant Sections of the Document. The combined work need only contain one copy of this License. but you may replace the old one. Preserve any Warranty Disclaimers. These titles must be distinct from any other section titles.5 COMBINING DOCUMENTS You may combine the Document with other documents released under this License. and list them all as Invariant Sections of your combined work in its license notice. Preserve the network location. statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. and multiple identical Invariant Sections may be replaced with a single copy. on explicit permission from the previous publisher that added the old one. previously added by you or by arrangement made by the same entity you are acting on behalf of. add their titles to the list of Invariant Sections in the Modified Version’s license notice. you may at your option designate some or all of these sections as invariant. or if the original publisher of the version it refers to gives permission. and likewise the network locations given in the Document for previous versions it was based on.

you must combine any sections Entitled “History” in the various original documents. the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate. In case of a disagreement between the . provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You must delete all sections Entitled “Endorsements”.4. then if the Document is less than one half of the entire aggregate.8 TRANSLATION Translation is considered a kind of modification. so you may distribute translations of the Document under the terms of section 19. GNU FREE DOCUMENTATION LICENSE with the same name but different contents. this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. and any sections Entitled “Dedications”. When the Document is included in an aggregate. in or on a volume of a storage or distribution medium. forming one section Entitled “History”. is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. If the Cover Text requirement of section 19. and any Warranty Disclaimers. 19. likewise combine any sections Entitled “Acknowledgements”.3 is applicable to these copies of the Document. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. or the electronic equivalent of covers if the Document is in electronic form. make the title of each such section unique by adding at the end of it.6 COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License. the name of the original author or publisher of that section if known. but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. in parentheses. Otherwise they must appear on printed covers that bracket the whole aggregate. and replace the individual copies of this License in the various documents with a single copy that is included in the collection. and distribute it individually under this License. You may include a translation of this License. and all the license notices in the Document. provided that you also include the original English version of this License and the original versions of those notices and disclaimers. 19. Replacing Invariant Sections with translations requires special permission from their copyright holders. or else a unique number. In the combination.7 AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works. and follow this License in all other respects regarding verbatim copying of that document. provided you insert a copy of this License into the extracted document. You may extract a single document from such a collection. 19.146 CAP´ ITULO 19.

” line with this: with the Invariant Sections being LIST THEIR TITLES. If a section in the Document is Entitled “Acknowledgements”. Any other attempt to copy.4) to Preserve its Title (section 19.. See http://www.gnu. modify. the requirement (section 19.10 FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new. replace the “with. 19. distribute and/or modify this document under the terms of the GNU Free Documentation License.. . from you under this License will not have their licenses terminated so long as such parties remain in full compliance. Such new versions will be similar in spirit to the present version. the original version will prevail. ADDENDUM: How to use this License for your documents To use this License in a document you have written. or distribute the Document except as expressly provided for under this License. revised versions of the GNU Free Documentation License from time to time.Texts.org/copyleft/. you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. 19. sublicense or distribute the Document is void. or “History”. modify. no Front-Cover Texts. with the Front-Cover Texts being LIST. with no Invariant Sections.9 TERMINATION You may not copy. If you have Invariant Sections.9. “Dedications”. but may differ in detail to address new problems or concerns. and no Back-Cover Texts. However. If the Document specifies that a particular numbered version of this License “or any later version” applies to it. Front-Cover Texts and Back-Cover Texts. TERMINATION 147 translation and the original version of this License or a notice or disclaimer. If the Document does not specify a version number of this License. Version 1. sublicense.2 or any later version published by the Free Software Foundation. or rights. you may choose any version ever published (not as a draft) by the Free Software Foundation. parties who have received copies. and will automatically terminate your rights under this License. Permission is granted to copy. A copy of the license is included in the section entitled “GNU Free Documentation License”. and with the Back-Cover Texts being LIST.19.1) will typically require changing the actual title. include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright c YEAR YOUR NAME. Each version of the License is given a distinguishing version number.

we recommend releasing these examples in parallel under your choice of free software license. merge those two alternatives to suit the situation. to permit their use in free software. or some other combination of the three. such as the GNU General Public License.148 CAP´ ITULO 19. . GNU FREE DOCUMENTATION LICENSE If you have Invariant Sections without Cover Texts. If your document contains nontrivial examples of program code.