Você está na página 1de 65
Capitulo 3 TCP/IP Reoes ve Conrutavones Curso Comtero FUNDAMENTOS 0 protocol TCP/IP atualmente € o protocolo mais usado em redes locais. Isso se deve basicamente a popularizacao da Internet, a rede mundial de computadores, jé que esse protocolo foi criado para ser usado na Internet. Mesmo os sistemas operacionais de redes, que no passado $6 utilizavam 0 seu protocolo proprictario (como o Windows NT ‘com 0 seu NetBEUL e 0 Netware com 0 seu IPX/SPX), hoje suportam 0 protocolo TCP/IP, Uma das grandes vantagens do TCP/IP em relacao a outros protocolos existentes é que ele € rotedvel, isto é, foi ctiado pensando em redes grandes e de longa distancia, onde pode haver varios caminhos para o dado atingir 0 computactor receptor. Outro fato que tomou 0 TCP/IP popular é que ele possui arquitetura aberta e qualquer fabricante pode adotar a sua propria versdo do TCP/IP em seu sistema operacional, sem a necessidade de pagamento de direitos autorais a ninguém. Com isso, todos os fabricantes de sistemas operacionais acabaram adotando o TCP/IP, transformando-o em um protocolo universal, possibilitando que todos os sistemas possam comunicar-se entre si sem dificuldade. £ por esse motivo que em nosso livro estaremos dando énfase a este protocolo. A arquitetura do TCP/IP € mostrada na Figura 3.1, Como vocé pode observar, ele € um Protocolo de q TCP/IP com as camadas do modelo OSI. latra camadas. Nesta mesma figura fazemos a correlagao das camadas do Interface com a Rede 1 Fisica Modelo OS! Topp Figure 3.1: Arteta do TCP/P 64 + uso Come Grito 3 -TOPAP ‘OTCP/IPE, na realidade, um conjunto de protocolos. Os mais conhecidos dao justamente o nome desse conjunto: TCP (Transmission Control Protocol, Protocolo de Controle da Iransmissao) e IP (Internet Protocol), que operam nas camadas Transporte e Internet, respectivamente. Mas eles nao sao 0s tinicos. Vamos falar rapidamente dos protocolos mais usuais durante a nossa explicagao sobre o funcionamento das camadas do protocol ‘TCP/IP ¢, posteriormente, uma explicagao mais detalhada, ‘Todos 0s protocolos do TCP/IP s4o documentados nos RECs (Request for Comments), que sto documentos descritivos do protocolo TCP/IP e que estdo disponivets na Internet. Camapa pe APticacho Esta camada equivale as camaday 5, 6 € 7 do modelo OSI € faz a comuntcagao entre os aplicativos e o protocolo de transporte, Existem varios protocolos que operam na camada deaplicagao. Os mais conhecidos sio 0 HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol), o FTP (File Transfer Protocol), 0 SNMP (Simple Network Man- agement Protocol), 0 DNS (Domain Name System) ¢ o Telnet, Se vocé entrosado com a Internet, jd deve ter ouvido falar nesses termos, Dessa forma, quando um programa cliente de e-mail quer baixar os e-mails que esto armazenadios no servidor de e-mail, ele ira efetuar esse pedido para a camada de aplicagaio do TCP/IP, sendo atendido pelo protocolo SMTP. Quando vocé entra um endereco www em seu browser para visualizar uma pagina na Internet, o seu browser iré comunicar-se com a camada de aplicagao do TCP/IP, sendo atendido pelo protocolo HTTP. E assim por diante. A camada de aplicagdo comunica-se com a camada de transporte através de uma porta. As portas sio numeradas ¢ as aplicagées padrdo usam sempre uma mesma porta, Por exemplo, 0 protocolo SMTP utiliza sempre a porta 25, 0 protocolo HTTP utiliza sempre a porta 80 € o FIP as portas 20 (para a transmissao de dados) ¢ 21 (para transmissiio de informagoes de controle). ‘© uso de um mamero de porta permite ao protocolo de transporte (tipicamente o TCP) saber qual € 0 tipo de contetido do pacote de dados (por exemplo, saber que 0 dado que cle esté transportando é um e-mail) e, no receptor, saber para qual protocolo de aplicagao cle deverd entregar o pacote de dados, j4 que, como estamos vendo, existem intimeros. Assim, ao receber um pacote destinado a porta 25, 0 protocolo TCP ira entregi protocolo que estiver conectado a esta porta, tipicamente © SMTP, q entregara 0 dado a aplicagao que 0 solicitou (0 programa de e-mail). Jo a0 por sua vez Caso Counce > 65 Renes ve Coneutanones Curso Comput & psn igre pdr wa un ado nimer depres exons ex gk poe una uraocein, Programa de E-mail Browser WHA Programa de FIP FP | Camada de aplcagao (Comada de transporte Figoro 3.2: Fndonomente do comada de apicao Camapa De Transporte A camada de transporte do TCP/IP é um equivalente direto da camada de transporte (camada 4) do modelo OSI. Esta camada é responsavel por pegar os dados enviados pela camada de aplicagao e transformé-los em pacotes, a serem repassados para a camada de Internet No modelo TCP/IP a camada de transporte utiliza um esquema de multiplexagdo, onde ¢ possivel transmitir “simultaneamente” dados das mais diferentes aplicagoes. Na verdade, ocorre 0 conceito de intercalamento de pacotes; varios programas poderdo estar comunicando-se com a rede a0 mesmo tempo, mas os pacotes gerados serao enviados & rede de forma intercalada, nao sendo preciso terminar um tipo de aplicacao de rede para entdo comegar outta. Isso € possivel gragas ao uso do conceito de portas, explicado no. informagdo da porta de o do dado. Ou seja, em uma mesma seqiiéncia de pacotes recebidos pelo micro receptor, topico passado, ja que dentro do pacote hi sm ede destino as informacées podem nao ser da mesma aplicacio. Ao receher trés pacotes, por exemplo, © primeiro pode ser de e-mail, o segundo de www e o terceiro, de FTP. Nesta camada operam dois protocolos: o jé falado TCP (Transmission Control Protocol) ©€ 0 UDP (User Datagram Protocol), Ao contrério do TCP, este segundo protocolo nao verifica se 0 dado chegou ou nao ao destino, Por esse motivo, o protocolo mais usado na transmissao de dados é o TCP, enquanto que o UDP é tipicamente usado na transmissdo de informagdes de controle. 66 > Crs Comuen Gariruto 3 - TCP/IP Na recepgao de dados, a camada de transporte pega os pacotes passados pela camada Internet e trata de colocé-los em ordem e verificar se todos chegaram corretamente, Como chegamos a comentar no capitulo passado, em redes grandes (e especialmente na Internet) 0 quadros enviados pelo transmissor podem seguir por diversos caminhos até chegar a0 receptor. Com isso, 05 quadros podem chegar fora de order. Além disso, como estudaremos mais adiante, 0 protocolo IP, que 6 0 protocolo mais conhecido da camada de Internet, nao verifica se o pacote de dados enviado chegou ou nao ao destino; é 0 protocolo de transporte (0 TCP) que, ao remontar a ordem dos. pacotes recebidos, verifica se esté faltando algum, pedindo, entao, uma retransmissao do pacote que nao chegou. Camana ve INTERNET A camada de Internet do modelo TCP/IP ¢ equivalente a camada 3 (Rede) do modelo OSI. Assim, todas as explicagdes dadas sobre essa camada no capitulo passado so 100% validas para a Camada de Internet do TCPAP. Ha varios protocolos que podem operar nessa camada: IP (Internet Protocol), ICMP (Internet Control Message Protocol), ARP (Address Resolution Protocol) e RARP (Re- verse Address Resolution Protocol). Na transmissao de um dado de programa, o pacote de dados recebido da camada TC! dividido em pacotes chamados datagramas. Os datagramas so enviados para a camada de interface com a rede, onde sio transmitidos pelo cabeamento da rede através de quadros Ista camada nao verifica se os datagramas chegaram ao destino, isto é feito pelo TCP. Esta camada 6 responsavel pelo roteamento de pacotes, isto é, adiciona ao data \grama Informages sobre caminho que ele devera percorrer. Para entendermos mais a fundo mos estudar © funcionamento desta camada © dos protocolos envolvidos, de primeiramente o esquema de enderecamento usado pelas redes baseadas no protocolo TCP/IP (enderegamento IP). Curso Gomer 67 Reoes ne Conputanones Curso ComPiero ‘Camapa pe Interrace com a REDE Esta camada, que ¢ equivalente as camadas 1 € 2 do modelo OSI, é responsavel por enviar o datagrama recebido pela camada de Internet em forma de um quadro através, da rede. Nés estudamos 0 funcionamento desta camada no capitulo pasado. A Figura 3.3 mostra o esquema completo de um computador operando com 0 protocolo TCP/IP. Aicagies ty ‘Camada de Apkoagdo (SMIP HTTP FIP Tenet t 4 Cemada de Trensporte (TTP WP) t+ Camada de Internet (OP, AP RARE t¥ Contre do Unk goo UI) EEE 602-2) (Controle do Acesso a0 Meio (MAC) (IEEE 802.3) Driver da Placa de Rede Place de Rede t+ Figura 3.3: Fundonamonto do TCP/IP. O esquema apresentado na Figura 3.3 poderd ter mais uma camada no topo camada de Interface com a Rede: NDIS ou ODI, caso o sistema operacional use algum desses padroes (ver capitulo pasado). 68 > Css Coun ‘Camads de intertace com a rede Corinto 3 TCP/IP EnpERECAMENTO IP Como dissemos anteriormente, 0 protocolo TCP/IP € rotedvel, isto 6, ele foi criado, pensando-se na interligagao de diversas redes ~ onde podemos ter diversos caminhos interligando 0 transmissor e o receptor -, culminando na rede mundial que hoje conhecemos por Internet. Por isso, ele utiliza um esquema de enderecamento logico ivo conectado em rede lentificar 0 dispositivo chamado enderecamento IP, Em uma rede TCP/IP cada dispo necessita usar pelo menos um endereco IP. Fsse endereco permite ea rede na qual ele pertence. Vamos pegar o exemplo da Figura 3.4, onde temos trés redes interligadas. As redes sao interligadas através de dispositivos chamados roteadores. Quando um computador da rede 1 quer enviar um dado para um computador da rede 2, ele envia o pacote de dados a0 roteador 1, que fica respon: ‘el por encaminhar esse pacote ao computador de destino. No caso de um computador da rede 1 querer enviar um pacote de dados para. um computador da rede 3, ele envia 0 pacote ao roteador 1, que entio repassara esse pacote diretamente ao roteador 2, que entdo se encarregard de entregar esse pacote a0 computador de destino na rede 3. Roteador 4 Roveador 2 Figure 3.4 nega entre reds. Fsse esquema de entrega de pacotes ¢ feito facilmente pelo roteador porque os pacotes de dados possuem 0 enderego IP do computador de destino. Nesse enderego IP ha a informagao de qual a rede onde 0 pacote deve ser entregue. Por esse motivo, quando o computador da rede 1 quer falar com © computador da rede 3, 0 roteador 1 sabe que aquele pacote de dados nao é paraa rede 2, pois no enderego IP de destino ha a informagio de que 0 pacote deve ser entregue a rede 3, Entao o roteador 1 envia o pacote diretamente ao roteador 2, sem perder tempo tentando entregé-lo a todos os computadores existentes na rede 2 para entao verificar que o pacote nao era para aquela rede (Isto é, ficar esperando ‘que todos os computadores recusem o pacote para entio tentar entregé-lo para a proxima rede existente), Cuso Come > 69 ‘eves ve Compuraoores Curso Conetero E assim que as redes baseadas no protocolo Tt P/IP funcionam, Elas tm um ponto de saida da rede, também chamado gateway, que € para onde vao todos os pacotes de dados recebidos e que nao sto para aquela rede. As redes subseqtientes vao, por sua vez, envianda © pacote aos seus gateways até que o pacote atinja a rede de destino. Como dissemos, isso é possivel porque o endereco IP possui basicamente duas partes: uma que indica a rede e outra que indica o dispositive (um computador, por exemplo), como ilustra a Figura 3.5. Figue 3.5: Compos de um endoreso IP. enderego IP 6 um néimero de 32 bits, representado em decimal em forma de quatro niimeros de oito bits separados por um ponto, no formato a.b.c.d. Assim, 0 menor enderego IP possivel € 0.0.0.0 e 0 maior, 255.255.255.255 Cm cto bis podemos representa fé 256 nimers (2, de 00255. ‘NOTA Com isso, teoricamente uma rede TCP/IP pode ter até 4.294.967.296 enderegos IP (2564), ou seja, esse ntimero de dispositivos conectados a ela (dissemos teoricamente porque, como veremos, alguns enderecos sio reservados € nao podem ser usados) £ claro que em poucos anos essa quantidade de dispositivos conectados a Internet ~ que no inicio parecia ser algo impossivel de se alcangar-— tera sido atingida, até yesmo porque hha alguns enderegos que nao podem ser usados, diminuindo 0 ntimero maximo de enderegos IP disponivel. Por isso, jd foi padronizado o enderesamento IP usando 128 bits em vez de 32 bits, Esse enderegamento, que ainda nao esté comercialmente em uso, € chamado IPV6, IP Next Generation (Png) ou Simple Internet Protocol Plus (SIPP). Com 128 bits ¢ possivel enderegarmos 340.282.366.920.938.463.463.374.607.431.770.000.000 dispositivos diferentes. Um nerd qualquer calculou que com esse néimero da para termos 1.564 enderegos IP por metro quadrado da superficie do planeta Terra, Nada mal. Cada dispositive de uma rede ‘TCP/IP precisa ter um endereco IP tinico, para que 0 pacote de dacios consiga ser entregue corretamente. Por isso, voce no pode simplesmente 70 + Gs9 Como Goituo 3—TEP/IP usar em sua rede qualquer enderego TP que vocé quiser. Vocé tera de obrigatoriamente usar enderecos que nao estejam sendo usados por nenhum outro computador da rede. Quanto maior a rede, maior a probabilidade de ter computadores usando enderecos IP que voce pensou em usar, Imagine entdo a situacdo de uma rede conectada a Internet; nenhum dos enderegos IP de sua rede poderdo ser enderegos que estejam sendo usados por outras maquinas ao redor do mundo. Para facilitar a distribuicao dos enderecos IP, foram especificadas cinco classes de enderegos IP, como mostra a Figura 3.6, a . b e J cassea [| Seer ee Casec [110 era rete (21 ts GasseD [1118 Endeeramerto macast Gasset [ait eserado pare ous fre Figura'3.6: Closes de endreos IP Como voce pode reparar, ha alguns bits fixos no inicio de cada faz. com que cada classe de enderecos IP seja dividida conforme mostra a tabela a seguir. lasse de enderego IP. Isso esse Enderee cis ato a 000 a wi25500 c i010 3.255250 o manne 139.255255255, Sal t mao 185255255254 Cus0 Cowen 71 Reoes v& Conruravones Curso Coneicto Ko Em redes usamos somente os enderegos IP das classes A, Be C. Para que voce entenda melhor a Figura 3.6 ¢ a tabela anterior, fizemos 0 seguinte resumo: Como vec pode repr, elgusenderas nao constam ness tobela pis so de wo reservdo, po exemple os enderecos 127-x3.« (que so usados com a finaldade de testo a ree). + Classe A: O primeiro nimero identifica a rede, os demais trés ndimeros indicam a maquina, Cada endereco classe A consegue enderegar até 16.777.216 maquinas. ¢ Classe B: Os dois primeiros nimeros identificam a rede, os dois demais indicam a maquina. Esse tipo de enderego consegue enderegar até 65.536 maquinas, # Classe C: Os trés primeiros mimeros identificam a rede, o tiltimo mimeto indica a méquina. Com isso, consegue enderecar até 256 maquinas. Para que voce entenda melhor ess de classe C. Nesse tipo de enderego IP, os trés primeiros niimeros indicam a rede € 0 classificagao, vamos explicar primeiro os enderegos, {iltimo némero indica a maquina. Se vocé for usar um endereco IP classe C em sua rede, voce poder ter, pelo menos teoricamente, até 256 dispositivos conectaclos em sua rede (de 0 a 255). Na verdade, vocé podera ter até 254 dispositivos, j4 que os enderegos 0 & 255 sao reservados, como veremos aciante, Se vocé precisar de mais enderecos IP, voce precisard ter acesso a mais um endereco classe C, ou mesmo pleitear um enderego classe B, caso sua rede seja realmente muito grande (com um endereco classe B & possivel enderecar até 65.536 maquinas diferentes, sem descontar os enderecos reservados). Ou seja, a escotha do tipo de classe de enderecamento (A, B ou C) é feita com base no tamanho da sua rede. As redes locais em sua esmagadora maioria utilizam enderegos de classe C. sistema de redes que forma a estrutura basica da Internet & chamado backbone. Para que a sia rede estoja conectada A Internet, ola tord de 6 an hackhone de alguma forma, seja diretamente, seja indiretamente, através de uma outra rede que esteja conectada ao backbone. Por exemplo, no Brasil, um dos backbones existentes & 0 da Embratel, Dessa forma, se voce quiser que sua rede esteja conectada a Internet, ela deverd estar conectada diretamente 4 rede da Embratel ou indiretamente, conectando a sua rede a uma outra rede que posstia essa conexio, 72 Cos Counen Cpituto 3 — TCP/IP A Internet possui uma estrutura hierdrquica. O responsavel pelo backbone € 0 responsavel pelo controle e fornecimento de ntimeros IPs a seus subordinados; por sua vez os ntimeros IPs que © responsdvel pelo backbone pode ceder a seus subordinados foi estabelecido pelo backbone hierarquicamente superior ao backbone em questao. Em principio, sea sua rede nao for estar conectada na Internet, vocé pode definir qualquer endereco IP para os dispositivos que estejam nela conectados. © problema é que mais, cedo ou mais tarde surgiré a necessidade de conectar a sua rede a Internet € 0 conflito de enderegos seré inevitavel, caso vocé tenha montado toda a sua rede baseada em enderecos IP ja existentes. Existem alguns enderegos que si conhecidos como “enderecos magicos”, que s endereyos IPs reservados para redes privadas, Assim, voce pode inontar a sud rede TCP/ IP baseada nesses enderegos que nao gerard conflito com os enderesos IP da Internet, pois os roteadores da Internet reconhecem esses enderecos ct particular e nao repassam os pedidos de pacotes que fagam referéncia a esses enderesos para o resto da Internet. Mesmo que o roteadlor de sua rede esteja configurado de forma errénea e passar 0 pacote adiante, o pacote acabard atingindo um roteador que estar mo sendo de uma rede configurado corretamente, “barrando” © pedido de seguir para o resto da Internet, indo 0 conflito. Esses enderegos especiais (reservados para redes privadas) s 10 0s seguinte 4 Classe A: 10.0.0.0 a 10.255.255.255 # Classe B: 172.16.0.0 a 172.31.255.255 4 Classe 192.168.0.0 a 192.168.255.255 Ou seja, se voce pretende montar uma rede TCP/IP particular, sem estar conectada ao backbone da Internet, baseada em um enderego classe C, podera usar o enderego 192.168.0.0. A Figura 3.7 mostra o exemplo de uma rede TCP/IP com cinco computadores usando esse enderegamento. Como vocé pode ver, cada maquina possuira o seu proprio enderego IP. Corso Cuero + 73 ee Reves ve Computanoees Curso ComPueto Rede 192.168.0.0 192.168.0.1 192.168.0.3 192,168.05 192,168.02 192.16804 __\ ‘Se __3_ Figore 3.7: Exempla do uma rede TCP/IP. Ocenderego 0 indica “rede”. Assim, o enderego 192.168.0.0 indica a rede que usa enderecos que comecem por 192.168.0, Como esse enderego € classe C, somente o iiltimo byte ¢ usado para endleregar as maquinas presentes na rede, por isso os tis primeiros ntimeros so fixos e 56 0 tltimo varia, J4 0 enderego 10.0.0.0, por ser da classe A, indica a rede que usa enderecos que comecem por 10, pois no endereramento classe A somente o primeiro byte indica a rede, os trés bytes segt 1e8 Sio usados para o enderecamento das maquinas presentes na rede. Jao enderego 255 é reservado para broadcast, o ato de enviar um mesmo pacote de dados para mais de uma maquina ao mesmo tempo. Um pacote de dados de broadcast é recebido por todas as maquinas da rede. Para fazer a ligacdo da rede apresentada na Figura 3.7 com a Internet, hé duas solugoes. A primeira ¢ simplesmente conseguir um enderego classe € piiblico para a sua rede e re. configurar todas as méquinas usando enderecos IP Gnicos dentro da Internet. Por exemplo, digamos que voce ‘onsiga o enderego 200.123.123.0. A Figura 3.8 mostra a estrutura de enderegamento IP dessa rede. Repare que 0 roteador possuii duas portas, uma conectada a sua rede € outra conectada a outra rede (rede 2, em nosso exemplo). A cada uma das portas deverd ser definido um endereco IP valido dentro da rede na qual a Porta esté conectada. Repare que definimos o enderego 200,321.321.1 para a porta deste dlispositivo que esté conectada a rede 2 (200.321.321.0) 74 + Cuso Cure Gerituwo 3— TCP/IP Rede 1 200.123,123.0 200,129,123. 200.123.1233 200.123.123.5 200.123,123.2 200,123.123.4 200.123,123.6 Roteador 200.321.921.1 Rede 2 200.321.321.0 Figure 3.8: Exemple de uma rede conctade internet. Outra solugao ¢ criar uma tabela de tradugdo no roteador, que pega os pacotes vindos com enderegos IP vilidos na Internet e converte esses enderegos em enderegos privados, aceitos somente na rede local. Essa tradugdo pode ser estitica ou dindmica Na tradugao estatica, um determinado endereco privado & sempre convertido em um mesmo endereco piiblico. Por exemplo, ao receber um pacote destinado ao enderego 200.123.123.1, 0 roteador pegatia esse pacote e trocaria 4.0 enderego 192.168.0.1. A tradugio estatica é usada com computadores servidores, que necessitam 0 seu endereco ter sempre o mesmo endereco IP. namica é usada por clientes, iste é computadores que nin prestam servigos para a rede. Nesse tipo de traducdo, o enderego privado nem sempre usara o mesmo endereco pablico. Com isso, € possivel que mais de um endereco privado, usado na rede local, acesse a Internet usando um mesmo endereco IP piiblico, Essa solucao é inte sssante para quando temos mais computadores do que enderegos IPs disponiveis para montarmos a rede Giese Cuneo > 75 Reoes ve Coweutapores Cusso Cowpusro No uso da tradugdo dinamica € muito comum o uso de um protocolo chamado DHCP (Dy- namic Host Configuration Protocol, Protocolo de Configuragao Dinamica de Maquinas). Um servidor DHCP distribui para os computadores clientes um IP valido na Internet assim que ‘um computador cliente pede. Desa forma, se um micro da rede interna pedir uma pagina ‘www da Internet, 0 servidor DHCP fornece um enderego IP pablico valido para ele poder se conectar a Intemet. Assim que essa méquina terminar de carregar a pagina www solicitada, 0 servidor DHCP “toma” esse enderego IP de volta, Seo usuario desse cliente continuar navegando, ‘ servidor poder dar o mesmo enderego IP ou mesmo dar um outro enderego IP. Mascara ve Reve Um termo que voce encontrata com facilidade ao configurar redes baseadas no protocolo TCP/IP 6 mascara de rede. A mascara € formada por 32 bits no mesmo formato que o enderecamento IP e cada bit 1 da ra informa a parte do endereco IP que € usada para 0 enderegamento da rede e cada bit 0 informa a parte do endereco IP que é usada en para o enderecamento das maquinas. Dessa forma, as mascaras padroes sao © Classe A: 255.0.0.0 @ Classe B: 255.255.0.0 @ Classe C: 255.255.255. k = ‘voor 255 equivle oui grup de cit bits (bye) com todos os seus bts em I (OTA A mascara é usada fora de seus valores padrao quando ha a necessidade de segmentacao da rede, Damos um exemplo na Figura 3.9. Neste exemplo, recebemos somente um. enderego IP de classe C (200.123.123.0), mas pretendemos usar esses enderegos para distribui-los em quatro redes: uma rede local ¢ trés redes situadas em outros locais, sendo a nossa necessidade a seguinte: 4 Rede local: 31 enderegos IP (de 200.123.123.1 a 200,123.12 255.255.255.224) 1, mascara # Rede 1: 32 enderegos IP (de 200.123 255.255.255.224) 123.32 a 200.123,123.63, mascara 76 > Cus0 Coun Goin 3— TCP/IP 4 Rede 2: 64 enderegos IP (de 200.123.123.64 a 200.123.123.127, mascara 258.255.255.192) # Rede 3: 127 enderecos IP (de 200.123.123.128 a 200.123 255.255.255.128) 123.254, mascara © valor da mascara ¢ a diferenga entre 256 ¢ 0 ntimero de IPs disponiveis na sub-rede , apesar de eles nao poderem ser usados para o enderegamento de méquinas (veja 0 exemplo real acima € na Figura 3.9). em questao. Nessa conta vocé deve levar em conta os enderegos 0 € Rede 1 '200.123.123.32 Mascara: 258,255.255.224, Roteador 2 200.123.1232 Rede 2 200.120,123.64 Mascara: 255,255,255, 192, Rotzador 3 Rede extarna 200-18 128.2 (Internat Pateador 1 Roteador 4 200.123,129.1 \_____-___ 200,123.123.4 Rede Local 200.128.1280 Miccara: 255 255,955 204 Figure 3.9: Rede segmentada usando méscar de rede. Nesse caso, configuramos 0s roteadores com uma mascara fora do padrao, para que ele nao precise enviar pacotes desnecessariamente para redes que nao a de destino do pacote. Por exemplo, da maneira que esté feita a configuracao da Figura 3.9, um pacote destinado a0 endereco 200.123.123.200 serd recusado pelos roteadores 2 € 3, mas aceito pelo aso Come + 77 ET Rees ve Coneutanones Curso Cometeto roteador 4, que iré transmiti-lo para a rede 3. Se a mascara de rede nao fosse usada, os roteadores 2 € 3 enviariam esse pacote desnecessariamente para as redes 1 € 2, congestionando essas redes sem necessidade ia que 0 destino encontra-se na rede 3, Aproveitamos a oportunidade para explicarmos esse assunto, que veremos em profundidade quando falarmos sobre roteadores no capitulo 8, ARP (Apress Resowution Protocoi) Como acabamos de ver, as redes baseadas no protocolo TCP/IP baseiam-se inteiramente em um endereso virtual, chamado enderecamento IP, Acontece que as placas de rede das maquinas conectadas a rede operam com o esquema de enderecamento MAC, como comentamos no capitulo passado. 0 protocolo ARP é responsavel por fazer a conversao entre os enderesos IPs ¢ os enderegos MAC da rede. Em uma rede grande, os pacotes TCP/IP s4o encaminhados até a rede de destino através dos roteadores, como explicamos. Atingindo a rede de destino, 0 protocolo ARP entra em ago para detectar 0 enderege da placa de rede para a qual pacote deve ser entregue, j4 que no pacote ha somente o endereco IP de destino e nao o enderego da placa de rede. © ARP funciona mandando primeiramente uma mensagem de broadcast para a rede perguntando, a todas as maquinas, qual responde pelo enderego IP para 0 qual pretende- se transmitic um pacote. Entao, a maquina que corresponde a tal enderego responde, identificando-se e informando o seu endereso MAC para que a transmissio de dados entre essas maquinas possa ser estabelecida. Na Figura 3.10 vemos um exemplo pritico do funcionamento do protocolo ARP. O primeito micro da rede quer enviar um pacote para o endereco 200,123.123.1. Ele manda a mensagem “Que € 200.123.123.12” para todos os micros da rede, em broadcast. 0 micro que esté usando este enderego responde, informando © seu enderego MAC e iniciando a comunicagao entre os dois micros. Para enderego IP 0 ARP tem de enviar uma mensagem para todas as maquinas -, 0 dispositive transmissor armazena os enderecos IPs recentemente acessados ¢ seus enderegos MAC ocupar a rede muitas vezes ~ jé que, para saber quem ¢ responsavel por um 78 + Co Cuneo Geriruto 3 - TCP/IP correspondentes em uma tabela na memoria; assim ele ndo precisara fazer um broadcast se precisar acessar um enderego IP ja conhecido. - = #2 SU ee! Lacie acento’, (Wuem e 200,128.128.12 = -&-& z= = aa 200,123,123." t ban i Figura 3.10: Exempla defcenamente do protocol ARP. RARP (Reverse Apress Resowution Protocot) © protocolo RARP permite que uma maquina descubra um endereco IP através de um enderego MAC, fazendo 0 inverso do que o protocolo ARP faz. Quando ligamos um computador, ele nao sabe qual é 0 seu enderego IP. Essa informagaio estard gravada em algum arquivo de configuragio dentro do disco rigido da maquina (ou dentro de alguma memoria eletronica nao volatil, no caso de dispositivos que nao sejam computadores, como roteadores, switches, etc). Acontece que maquinas que nao tenham disco rigido (estagdes que usem o recurso de boot remoto, que consiste em carregar o sistema operacional através da propria rede em 0 + 79 so C Reoes v& Conputaoones Curso Cowptro vez de carregé-lo através do disco rigido da maquina) nao tém, portanto, como saber 0 seu endereco IP e, portanto, nao tém como iniciarem uma comunicagao de rede usando, © protocolo TCP/IP, Assim, em redes TCP/IP com esse tipo de maquina haverd a necessidade de ser criado um servidor RARP. Esse servidor armazenaré uma tabela contendo os enderegos MAC das placas de rede presentes na rede € os seus respectivos enderecos IP. Uma maquina que necessite saber o seu proprio enderego IP envia para todas as maquinas esse pedido, mas somente o servidor RARP responde, informando o seu IP e podendo, a partir de entao, iniciar a comunicagao com a rede usando o protocol TCP/IP, ‘Apés a maquina saber o seu endereco IP, essa informagao fica armazenada em sua memoria RAM, resolvendo o problema ¢ tormando possivel qualquer comunicagao via rede utilizando © protocolo TCP/IP. IP (IntERNET Protocol) Como vimos em Fundamentos, 0 protocolo IP pega os dados enviados pela camada de transporte (pelo protocolo TCP ou UDP) e envia para a camada fisica (ver Figura 3.1). Na camada IP, os dados sao empacotados em datagramas. Na camada fisica, os datagramas serdio empacotados em quadros (ver capitulo pasado), Como comentamos, o protocolo IP € um protocolo nao orientado a conexao, isto 6, ele nao verifica se o datagrama chegou ou nao ao destino. Isso é feito pelo protocolo TCR, que pega os datagramas que esto chegando e os coloca em ordem, pedindo uma retransmissdo dos datagramas que estejam faltando. A principal fungio do IP € 0 roteamento, ou seja, adicionar mecat datagrama chegue o mais rapidamente possivel ao seu destino. Isso € feito com 0 auxilio dos roteadores da rede, que escolhem os caminhos mais ripidos entre a origem e 0 destino, jd que em redes grandes (especialmente a Internet) ha intimeros caminhos que um pacote pode tomar para chegar até o seu destino. smoy para que © ‘Vamos estudar a estrutura do datagrama IP para entendermos melhor como funciona esse mecar 80 + Corso Counce Corinto 3 — TCP/IP Estrutura 00 Datarama IP A estrutura do datagrama IP € apresentada nas Figura 3.11 €3.12, Na Figura 3.11 apresentamos 4 estrutura simplificada do datagrama, ¢ na Figura 3.12 apresentamos todos os campos existentes no cabegalio. © campo Opgbes + Pad pode no existir, reduzindo o tamanho do cabegalho para 20 bytes. A area de dados nao tem tamanho fixo e, portanto, o tamanho de um datagrama IP € varivel. O tamanho maximo de um datagrama IP € de 65.535 bytes, incluindo ai © cabecalho (ou seja, a area de dados € de 65.515 bytes ou 65.511 bytes, dependenclo se 0 campo Opeoes + Pad for ou nao usado). (06 85.511 ou 65.515 bytes) Figura 3.11: strotar snplifcada do detagrame IP Cabegaho (20 ou 24 bytes) po de y Protocolo (1 byte) : Checksum do Cabecalho (4 bytes) Enderego IP de Orgem (4 bytes) Enderego IP de Destino 4 bytes) Opcdes + Pad (4 bytes — opciona Dados (até 65.517 ou 65.515 bytes Figure 3.12: Estrutora de dotograme IP Embora a representacao da estrutura do datagrama IP apresentada na Figura 3.12 seja a mais didatica, ela nao é a representagao que voce encontraré em outros livros, que usa a representacao tradicional apresentada na Figura 3.13. Apesar de ambas as figuras ilustrarem exatamente a mesma coisa, acreditamos que a representagao mostrada na Figura 3.13 seja de dificil compreensao para iniciantes. Nesta representagao, os campos de controle sao divididos em seis linhas de 32 bits (4 bytes) e no topo da figura hd a indicacdo dos bits (numerados de 0a 31), Garso Courero BV Reoes ve Coupstanones Curso Compu ‘Figo 3.19: Mane radon des epeenter steered detegea No datagrama IP encontramos os seguintes campos: Versio: Indica a versio do protocolo IP que esta sendo usado, © protocolo IP que estamos descrevendo ¢ 0 IPv4; portanto neste campo encontraremoso valor quatro. ‘Tamanho do Cabecalho (IHL, Internet fieader Length): Indica o comprimento do cabegatho do datagrama, dado em néimero de palavras de 32 bits, isto é, 0 mimero de linhas existentes na Figura 3.13 (em outras palavras, o mimero de bits existentes no cabecalho dividido por 32). © tamanko minimo do cabecaiho é de cinco palavras de32 bits (20 bytes), sendo esse o valor mais comum, 4 que normaimente o campo Opstes + Pad nao é usado. Tipo de Servico: Este campo informa a qualidade desejada para a entrega do datagrama. Como esse assunto é um pouco extenso e bastante interessante, tremtos cexplicé-lo sepatadamente mais adiante. ‘Tamanho Total: Indica o néimero total de bytes que compéem o datagrama, Como esse campo possui 16 bits, o datagrama s6 pode ter, no maximo, 65.535 bytes (2°. f claro que, quanto maior o tamanho do datagrama, mais uma estagio ocupa a rede, deixando-a mais Jenta (ver capitulo pasado). Por esse motivo, os datagramas. usar tamaninos bem menores que 65.535 bytes, como, por exemplo, 576 bytes. Wentificagdo: Usado para identificar 0 datagrama, Quando © transmissor cria & envia um datagrama pela rede, €atribuido a ele um ntimero de identificagao. Fsse rnéimero sera usado para identiticar o datagrama caso ele seja fragmentado no caminho até 0 destino, Explicaremos em detalhes esse procedimento no topico Fragmentagto de Datagramas. 82 + Gwolanco Goituwo 3 — TCP/IP Flags: Esse campo € usado para controlar a fragmentagao de datagramas, que estudaremos mais adiante. Offset do Fragmento: Esse campo também é usado para o controle da fragmentagao de datagramas, que explicaremos mais adiante. Tempo de Vida (TTL, Time to Live): Indica o tempo maximo de vida do datagrama cada vez que 0 datagrama passa por um gateway (um roteador, por exemplo) esse nimero € decrementado. Quando chega a zero, 0 datagrama ¢ descartado, nao atingindo o destino. No receptor, 0 protocolo um datagrama e pedira uma retransmissZo do datagrama que esté faltando. 4 perceber que esta faltando objetivo ¢ eliminar os datagramas que demorem tempo demais para chegar a0 destino, 0 que pode ocorrer caso a rota escolhida seja muito longa ou mesmo errada, caso exista um roteador mal-configurado no meio do caminho. Assim, elimina-se datagramas que poderiam fi seu destino caso eles encontrem problemas de rota, 0 que congestionaria a rede. 1 vagando eternamente pela Internet a procura de Protocolo: Esse campo indica o protocolo de que pediu © envio do datagrama, através de um cédigo numérico, Por exemplo, o némero seis indica o TCP, o nimero 17 indica o UDP, 6 namero um indica o ICMP e assim por diante. Dessa maneira, no dispositivo receptor, a camada IP sabe pata qual protocolo superior ela deverd entregar os dados presentes dentro do datagrama. Checksum do Cabegalho: O protocolo IP adiciona um campo de checksum para os valores presentes no cabegalho (0 conceito de chet ksum ja foi explicado no capitulo passado), Note que esse campo calcula o checksum somente do cabegalho ¢, portanto, nao usa 0 campo de dados no calculo. A vantagem de se usar somente © cabegalho é que a conta fica menor e mais rapida de ser feita (j4 que o cabegalho tem tipicamente 20 bytes). Os roteadores analisam esse campo e refazem o checksum para saber se 0 cabegalho esta ou nao corrompido. Endereco IP de Origem: Como o proprio nome diz, neste campo hé 0 enderego IP de onde esta partindo o datagrama. Endereco IP de Destino: Como o anterior, neste campo hao endereco IP de destino do datagrama ‘Opsoes + Pad: Esse campo € opcional. Se nao for usadto, 0 cabegalho possuira 20 bytes. Caso seja usado, o cabegalho passa a ter 24 bytes. Como 0 campo de opgoes possui tamanho variavel, ele ¢ preenchido com zeros até ter 32 bits de comprimento. Esses zeros adicionais sao conhecidos como pad ou padding. Esse campo € usado em Gie0 Comm BB Reoes v¢ Comrutapores Curso Comptero situagdes de teste e verificago de erros na rede, Como 0 assunto € um pouco ex- tenso, iremos estudé-lo separadamente mais adiante. + Dados: Sao os dados que o datagrama esta carregando, Como falamos anteriormente, apesar de o tamanho maximo do datagrama ser de 65.535 bytes (0 que deixa 65.515 ‘ou 65.511 bytes disponiveis para dados, dependendo do tamanho do cabegalho), esse tamanho ¢ muito grande, pois dificulta a transmissao e congestiona a rede. Por isso, na maioria das vezes trabalhamos com um campo de dados na faixa de 556 bytes. Tiro be Servico 0 campo Tipo de Servico indica detalhes sobre o tipo de servico que pretendemos ter na entrega do datagrama IP. Originalmente, esse campo tinha o formato mostrado ng Figura 3.14, Tey A To uso be) hia bis) campo Tipo de Servis. Figure 3.14: Formate orga Os trés bits de precedéncia informavam a prioridade do datagrama, dependendo do tipo de dado que ¢le carregava. Zero indicava um datagrama normal, e sete, uma informayao de controle de 1edle, Ou seja, quainto maior v valor neste can prioridade do datagrama. s bits D, Te R significam, respectivamente, Delay (atraso), Throughput (velocidade) € Reliability (confiabilidade). O transmissor poderia ativar cada um desses bits (colocando- ‘0s em 1) quando necessitasse de baixo atraso, alta velocidade e/ow alta confiabilidade, dependendo da situagao, ‘claro que naio ha como garantir essas caracteristicas em uma rede grande, mas facilitariam © trabalho do roteador. Por exemplo, se houvesse mais de uma rota para atingir o destino, a escolha poderia ser feita baseada na configuragdo dos bits D, Te R do campo Tipo de Servigo, Por exemplo, um roteador poderia enviar 0 datagrama para um caminho lento porém de alta confiabilidade caso 0 bit R estivesse habilitado, liberando uma outra rota para © mesmo destino para os datagramas que necessitassem de alto desempenho. 84 + CsoCome Garituwo 3 - TCP/IP S6 que essa idéia nao deu certo, Apesar deo sistema de indicar prioridade ser interessante, ter indicadores demais (atraso, velocidade e confiabilidade) acaba atrapalhando em vez de ajudat. Primeito, atraso e velocidade s40 conceitos muito préximos para termos uma distingao clara da diferen atraso, Confiabilidade nao ¢ tao facil de se medir: que parametros serio usados para indicar que uma rota 6 ou ndo “confidvel”? Depots, ter esses indicadores significa aumentar a complexidade dos roteadores, aumentando 0 seu custo. de o que é uma conexio ripida e 0 que é uma conexao sem. © IETF (Internet Engineering Task Force) estuda ha anos como usar 0 campo Tipo de Servigo de uma forma melhor, mas nenhuma das idéias apresentadas fo ainda aceita pelo mercado, pelo menos na data de publicacao deste livro (inicio de 2001), Orcoes Como vimos, o campo Opsoes é usado em situagoes de teste e deteccdo de erro, As duas fungoes mais importantes desse campo sao tragar a rota de rede que esta sendo usada da origem até 0 destino (traceroute) € marcar 0 horario (com preciso de milissegundos) com que o datagrama passa por cada roteador da origem até o destino (timestamp). Esses dois recursos sio muito titeis na detecgao de erros em uma rede. Por causa das diferentes opgdes possiveis, ele tem tamanho variavel e, caso seu conteido fique menor que 4 bytes (32 bits), € preenchido com zeros até atingir este tamanho. Esse preenchimento € chamado pad ou padding. mo vimos, esse campo nem sempre é usado, Neste caso, 0 tamanho do cabegalho do datagrama cai de 24 para 20 bytes. O primeiro byte deste campo possui o formato da Figura 3.15. O primeizo bit, chamado Copiar, € um flag que, quando esté em um, indica que as opgdes presentes no campo ‘Opgdes devem ser copiadas para todos os datagramas caso ocorra uma fragmentagao do datagrama (nosso proximo assunto). Caso esteja em zero, as Opgdes serdo copiadas apenas para o primeiro datagrama fragmentado. © campo Classe da Opgao indica o tipo de opgao, como mostramos na tabela a seguir. Como vocé pode ver, s6 existem atualmente duas classes de )PeAO: a opeao zero, que éusada basicamente pela op¢do de gravacdo de rota, €a opgao dois, que é basicamente usada pela opgao de gravacao de hordrio (timestamp). Gio Come BS | | Reois vt Computaoores Curso Cowrueo Figura 3.15: Formato do primers byte de compo Opies. assed Ope Signed o Cidederiendoogors | i erro pa 2 Tee dead eno =| 3 esr pra sito © campo Namero da Opgao indica a opydo em sl, Existem intimeras opgoes, mas 6 discutiremos as duas mais importantes (e mais usadas), que sto, como falamos, a gravagao de rota (route recording), que possui nimero sete (classe zero), e a gravagao de horario (timestamp), que usa 0 nximero quatro (classe dots}. A gravagao da rota é uma opgio que permite tragar a rota usada desde o endereco IP de origem até o endereco IP de destino, Quando essa opgaio esta ativada, cada roteador por ‘onde o datagrama passa acrescenta ao campo de dados do pacote 0 seu proprio enderego IP. Assim, quando o datagrama chega até o destino, ele possuird os enderegos IP. por onde ele passou desde a arigem até o destino. Vimos que o campo Opgoes usa até quatro bytes. No comando de gravar a rota, como a opeio de gravagdo da rota possui valor sete, sendo este o primeiro byte do campo Opgdes. O segundo byte, chamado Comprimento, indica quantos bytes serio usados para armazenar classe ¢ zero e 0 néimero da opgao € sete e 0 bit Copiar fica desabilitado, ‘05 enderecos IP que serdo gravados (Isto é, qual sera o tamanho do campo de dados). O tetceiro byte é chamado Ponteiro ¢ a cada enderego IP acrescentado a lista, ele & incrementado em quatro (j4 que cada endereco IP tem 4 bytes). Quando 0 ponteiro atinge o mesmo valor do comprimento, significa que a lista est cheia € nao ha como, acrescentar novos enderecos IP a ela, © quarto byte nao é usado sendo, portanto, pteenchido com zeros. © comando de gravacao de hordrio, timestamp, funciona de maneira similar, Quando usado, a cada roteador que 0 datagrama passa cle adiciona a hora (em milissegundos) ¢ © seu endereco IP. No campo de dados do datagrama, primeiro ¢ gravado 0 enderego IP 86 + Cus Counro Griruo 3 TCP/IP (4 bytes) e depois a hora, usando um niimero de 32 bits (4 bytes) que indica o namero de milissegundos decorridos desde a meia-noite, Horario Universal (GMT, Greenwich Mean Time, horatio de Greenwich). * \ Restante do caberalho — Campo Opctes Area de dados Figure 3.16 strwra de campo Opes paso comando de grave rote (revte recording. No comando timestamp, o campo Opgoes (que tem 4 bytes) € usado da seguinte forma: 0 primeiro byte possui valor 68 (que é 0 valor, em decimal, de 01000100, que indi a Classe 2, Nuimero 4); 0 segundo byte e o tercetro byte sto o Comprimento ¢ o Pont iro, com funcionamento igual ao do comando de gravar a rota; 0 quarto byte € dividido em over flow (4 bits), que indica o ntimero de vezes que algum roteador tentou escrever dados no datagrama mas nao péde porque ele jé estava “cheio”, e flag (4 bits), que indica o tipo de ago que 0 comando efetuard. Normalmente este campo possui valor 1, que faz com que 05 roteadores gravem 0 seu endereco IP eo hordrio (ver Figura 3.17). Colocando-se o valor zero neste campo, 0s roteadores gravam somente os horitios. . colocando-se o valor 3, selecionamos somente os roteadores de que queremos informacdes de horitio, Para isso, © datagrama ¢ enviado ja com os campos de enderecos IP preenchidos com os enderegos dos roteadores preenchidos (ver Figura 3.17). Os roteadores com esses enderegos iro completar 0 pedido colocando a intormacao de horario, de forma que o datagrama chegard totalmente preenchido com os enderecos IP e com os horarios Guso Corso > 87 Reves o€ Compunsoones Curso ComPueto : saat an — Campo Ongées (4 bits) Avea de dados | 2° Horério IP | Figra 3.17: Estrutora do campo Opies pra ocomando do gravcio de horse (timestamp). FRAGMENTACAO DE DATAGRAMAS ‘Como os datagramas sao enviados a rede através da camada Fisica, 0 seu tamanho fica limitado ao tamanho da area de dados do quadro do protocolo que estiver sendo usado nesta camada, Por exemplo, como vimos no capitulo pasado, 0 protocolo mais usado nessa camada € © Ethernet (IEEE 602.3), que possui uma area de dados maxima de 1,500 bytes. Com isso, em uma rede Ethernet, 0 datagrama todo (cabegalho mais a area de dados) 86 poderd ter, no maximo, 1.500 bytes (ver Figura 3.18). Essa caracteristica € chamada MTU (Maximum Transfer Unit, Unidade Maxima de Transferéncia). Dados Datagram IP ‘ Dados (até 1500 bytes! Quadro Ethernet Figera 3.18: Como um datagrama IP &tronsitdo om uma rod Ethernet (IEEE 802.3) 88 4+ Geo Counc Gerinuo 3 TCP/IP Como vimos anteriormente, TCP/IP foi criado para ser usado em um ambiente com diversas redes interligadas, Pode ser que aconteca de uma rede no meio do caminho por onde 0 pacote de dados tenha de passar para atingir 0 seu destino ter um MTU menor que 0 da rede de onde partiu © quadro. Isto é, no quadro de uma rede no meio do caminho por onde o pacote de dados tem de passar cabem menos dados do que no quadro da rede que transmitiu 0 pacote original. Com isso, ocorte de, teoricamente, 0 pacote nao poder ser transmitido, ja que ele nao “cabe” dentro do quadro de dados da rede que ha no meio, como ilustra a Figura 3.19: nas redes 1 e 2 cabem 1500 bytes de dados nos quadros, mas na rede do meio, caminho obrigatorio para essas duas redes poderem se comunicar, os quadros comportam apenas 620 bytes. MIU=1500 bytes MIU=620 bytes MTU= 1500 bytes, Figura 3.19: Ito de redes com diferentes tmanbos de quads. A solugao para esse problema é a fragmentacéo de datagramas. Supondo que um computador da rede 1 quer mandar um datagrama para um computador na rede 3, 0 rotwador 1 sabe que a rede 2 tem um MTU menor ¢, com isso, divide © quadro recebide em varios quadros, A solucao para o problema da Figura 3.19 € mostrada na Figura 3.20: © roteador dividiu o quadro original com 1500 bytes de dados em trés quadros, dois de 600 bytes e um de 300 bytes. O roteador 2 por sua vez iré pegar os quadros fragmentados €remonté-los em um tinico quadro de 1500 bytes de dados, de forma que ele seja enviado corretamente para a rede 3, atingindo o seu destino, ——————_ MTU="500 bytes [1500 bytes Figure 3.20: Fragmentoro de datogromas. Cues Comes + 89 Renes o¢ Compuranones Curso Compteto Ko protocolo IP permite a fragmentagdo de seus datagramas gracas a existéncia de tres campos: Identificagao, Flags ¢ Offset do Fragmento. © tamanho ds fragments tm de sr mio de ito bytes; or is os fragments do figra 320 tem 600 byes © no 620 bytes. ‘0 campo Identificagao é preenchido com um ntimero gerado pela maquina que enviou ‘odatagrama. Fm geral, esse niimero é um ntimero seqtiencial e, a cada datagrama gerado, ‘© computador incrementa um contador em meméria, isto &, 0 primeiro datagrama criado quando um datagrama pela maquina possui nimero 1, o segundo néimero 2, ete. As: 6 fragmentado. todos os fragmentos criados possuem o mesmo numero de identificacao. Va hora de remontar o datagrama, 0 roteador sabe quais fragmentos pertencem a um mesmo datagrama, Como esse campo possui 16 bits, significa que ele pode gerar ntimeros até 65.536 (2") ‘Quando esse ntimero é atingido, 0 computador zera 0 seu contador € comeca 6 process. novamente, Com isso, pode ser que exista mais de um datagrama com um mesmo r de identificagao na rede ao mesmo tempo! Isso do chega a ser um problema. Mesmo. mero que 0s dois datagramas com mesma identificagao sejam fragmentados € ocorra de 0 nto, roteador remontar o datagrama trocando as fragmentos (isto 6, colocanda frag do primeito datagrama no segundo ¢ vice-versa), ao chegar ao destino a camada de transporte do protocolo recalculard o checksum do pacote e vera que ele nao confere (Fé que os dados do datagrama foram trocados) e, com isso, a camada de transporte pediré ‘uma retransmissao do pacote ao transmissor. ‘© campo Flags possui trés bits. O primeiro & sempre zero, o segundo é chamado DF (Don’t Fragment —-Nao Fragmentar), eo terceiro, MF (Mote Fragments ~ Mais Fragmentos). Quando o flag DF esta ativado, 0 datagrama no pode ser fragmentado. Jé o flag MF indica qual ¢o dltimo fragmento: todos os fragmentos possuem esse bit em 1, indicando: Imo fragmento possui esse bit em que ha mais fragmentos depois deles. Somente o «i zero, informando que ele é 0 tiitimo fragmento do datagrama, © campo Offset do Fragmento controla a fragmentacdo em si, isto é, a ordem dos fragmentos. Esse campo conta os fragmentos em blocos de vito bytes, € por isso a obrigagdo de © tamanho dos fragmentos ter de ser multiplo desse valor. Assim, para 0 exemplo que demos na Figura 3.20, 0 primeiro fragmento tera um offset de zero, 0 90 + Gis0 Counce Gorituo 3 — TCP/IP segundo, um offset de 75 (600 bytes +8) € 0 terceiro, um offset de 150 (1.200 bytes + 8). Quando 0 roteador vai remontar o quadro a ser enviado para a proxima rede, ele sabe a ordem dos fragmentos através desse campo. ICMP (IntERNET ContRoL Messace Protocot) Caso um roteador nao consiga pasar adiante um datagrama recebido ~ por estar congestionado demais ou entao por ter zerado 0 campo Tempo de Vida (TTL, Time to Live) do datagrama, por exemplo -, ele precisa informar ao transmissor do datagrama que ocorreu um erro, © mecanisino usado pelos roteadores para informiar esse t1py de erry €0 uso do protocolo ICMP, Internet Control Message Protocol. Apesar de estarmos tratando o ICMP como um assunto a parte, ele é parte integtante do protocolo IP. E importante notar que o ICMP ésomente um mecanismo usado para Informara maquina transmissora da ocorréncia de um erro com 0 datagrama enviado, através de mensagens enviadas pelos roteadores da rede. Ele nao se preocupa em corrigir 0 erro nem tampouco em vetificar a integridade dos datagramas que circulam pela rede. Como mostramos na Figura 3.21, a mensagem ICMP é transmitida usando um datagrama IP, Como o IP nao verifica se um datagrama chegou ou nao ao destino, pode ocorrer de a propria mensagem ICMP ser perdida no meio do caminho! Cbegabo IMP | Mensegem IoMP Cebegalho IP Arn tara Cabegatho io uadro Figura 3.21: Encpsulamento de uma mensoger ICMP, Gis Couns 91 Renes o& Cowmrurapones Curso Coupuero F também importante notar que o ICMP, apesar de ser encapsulado em um datagrama IP, nao é considerado um protocolo de alto nivel (como 0 TCP ou 0 UDP). Estrutura pas Mensacens ICMP Cada mensagem ICMP possui uma estrutura propria, mas todas elas comegam da mesma maneira, mostrada na Figura 3.22. O campo Tipo informa justamente 0 tipo da mensagem ICMP. S6 para vocé ter uma idéia mais concreta dos tipos de mensagens ICMP existentes, na tabela a seguir mostramos alguns desses tipos e seu valor numérico (entrado no campo Tipo), Tipo Cédigo 8 bits) B bits) Figera3.22: oberlo des mensogens ICMP. Valor Tipo da mensagem ICMP 0 Repo a mensogem deo 3 so de des inlet — ‘ody dowloidde de rossi. 5 Sokitwin de rfredonaants a exsope deo u Tempo de vida oxo 2 Preble os pares 8 Solbode hori 4 Resp hago de bsrio a Soleo do nésere de endereareri io egos slo da mira de endear © campo Cédigo prové mais informagdes sobre a mensagem ICMP, eo campo Checksum apresenta a soma de todos os valores presentes na mensagem ICMP (0 conceito de checksum foi apresentado no Capitulo 2). £ importante saber que as mensagens ICMP que informam ertos ocorridos com um datagrama trazem 0 cabecalho do datagrama problemitico e os primeiros 64 bits da area 92 + Cus0 Counc Grito 3- TCP/IP de dados deste datagrama. Como os protocolos de alto nivel (TCP e UDP, por exemplo) adicionam informagdes importantes nos primeiros 64 bits da area de dados do datagrama IP (como 0 proprio cabecalho desses protocolos), ¢ possivel saber, tendo esses bits disponiveis, 0 protocolo ¢ a aplicagdo envolvidos com o datagrama problemético, facilitando 0 gerenciamento do erro, Para que voce entenda melhor o funcionamento do ICMP, iremos explicar rapidamente © funcionamento de algumas das mensagens ICMP existentes. ‘A mensagem de eco serve para verificar se o caminho entre 0 trarismissor e o receptor ‘est bom. © transmissor envia um datagrama contendo uma mensagem ICMP de eco € © receptor, ao receber essa mensagem, responde com uma mensagem ICMP de resposta de eco, incluindo no datagrama os dados recebidos no datagrama original. Na maioria dos sistemas operacionais, o comando que efetua esta tarefa é chamado Ping. Verses mais sofisticadas do ping, em vez de enviarem uma Gnica mensagem de eco, enviam varias, mostrando estatisticas de tempo de resposta ¢ perda de datagramas. Destino Inarcanchven ‘Caso urn roreador nao consiga entregar um determinado datagrain, ele envia para transtnissor uma mensagemn ICMP de destino inalcangvel. Essa mensagem também ¢ enviada quando for necessério fragmentar um datagrama e o flag DF (Don’t Fragment) estiver ativado (ver 0 t6pico Fragmentagdo de Datagramas). Na mensagem de destino inalcancdvel, o campo Cédigo do cabecalho ICMP (ver Figura 3.22) & preenchido com um dos seguintes valores: Gato Sigticede o Aedeinkanivd 1 ena inden 2 Frolic a tance - 4 Fragreron neces flag Dvds Curso Counce + 9B Renes o& Coweutavonts Curso Compueto Codigo ——_—Signicodo 5 Fela ot de org Aedede dso dso eqn desi descanecida ain dorgen ods Commerc td des et pre pel adn dred 0 Comair com outa de desi st probidapl dnd ede u ede ian pr ipo de serio sudo n gin nave pra ipo de servi soade Concestionamento Um roteador pode porventura receber um mimero maior de datagramas do que ele é capaz de processar. Caso isso ocorra, dizemos que 0 roteador esta congestionado. Neste amas por nao estar tipo de situagao, 0 roteador inclusive pode ter de descartar datags sendo capaz de recebé-los naquele momento. Quando isso ocorre, o roteador envia uma mensagem de redugdo da velocidade de transmissao ao transmissor do datagrama descartado, © transmissor, ao receber essa mensagem, passa a transmitir datagramas a uma velocidade menor. Como vocé pode perceber pela tabela mostrada anteriormente, nao existe nenhuma mensagem ICMP para fazer o transmissor retornar a sua velocidade de transmissao nor- mal. Entdo, transmissor voltara medida em que for parando de receber mensagens ICMP de redugao da velocidade de gradualmente a sua velocidade de transmisso normal transmissao. AREDIRECIONAMENTO Caso 0 roteador verifique que na rede local onde ele est instalado existe uma rota melhor a set usada para en 1 um datagrama recebido, ele envia uma mensagem ICMP de solicitagao de redirecionamento ao transmissor, enviando também o datagrama ao destino, Essa mensagem ¢ extremamente ttil para atualizar as maquinas a respeito das melhores rotas disponiveis na rede local. Para entender melhor esse procedimento, observe a Figura Imagine que a maquina 200,123.123.1 queira mandar um pacote de dados para 94 + Gis Coun Gvituo 3 - TCP/IP um micro presente na rede 3 mas, por causa de sua configuragao (que est indicando 0 endereco 200.123.123.2 com defiault gateway, isto &, © ponto de saida padrao da rede ~ esta configuragao nao esté indicada na Figura 3.23), em jou o datagrama para o roteador 1 (enderego 200.123.123.2). © rotcador 1 encaminhard 0 datagrama ao roteador 2 © mandaré uma mensagem ICMP de redirecionamento a maquina transmissora informando que o melhor caminho para aquele destino (rede 3) € através do roteador 2 (enderego 200.123.123.3), Rede 2 Rede 3 aw Roteedor 1 -_ Rotzedor 2 200.128.1232 200.123.1283 200.123.123.1 Transmissor Rede 1 (200.123.123.0) Figure 3.23: Fundonamente da mensogem de pedide de edreonamento (ver texte). Note que esse esquema s6 funciona na rede local onde o roteador esta instalado. Ele nao serve para apontara melhor rota dentro de uma rede interconectada com outras redes, onde h4 outros roteadores envolvidos. Por exemplo, observe a Figura 3.24, O roteador 5, ao receber um datagrama vindo da maquina transmissora nao tem como enviar de volta uma mensagem ICMP para 0 roteador | informando que o caminho mais curto até ele ¢ feito através do roteador 4, ja que 0 roteador 5 nao sabe qual ¢ o enderego IP do roteador 1! Corso Coun + 95 Reoes ne Conpuranores Curso Conptsio ent} Figre 3.240 comonds ICMP de redveonamente ni programa otadores om rede interconetdes vet lex). Tero ve Vina Excepino Quando 0 contador Tempo de Vida (TTL, Time to Live) do datagrama é zerado, 0 roteador envia para a maquina transmissora uma mensagem ICMP de tempo de vida excedido Como vimos anteriormente, todo datagrama IP possul um campo tempo de vida, que possui um valor que é decrementado a cada vez que o datagrama passa por um roteador. Esse campo serve para que 05 roteadores descartem datagramas que nao estejam conseguindo atingir 0 seu destino por algum motivo (um roteador mal-configurado no meio do caminho, por exemplo). Dessa forma, esse mecanismo faz com que datagramas Jo fiquem infinitamente circulande na rede perdi ProsisMa nos Parimetros Quando um roteador ou uma maquina encontra problemas para processar um datagrama endo hé nenhuma outra mensagem ICMP que cubrao problema encontrado, 0 roteador (ou maquina) envia uma mensagem de problema nos pardmetros para o transmissor. Normalmente essa mensagem € usada quando © roteador no consegue decodificar 's presentes no cabecalho IP do datagrama, isto é, quando ha algum problema no cabegalho do datagrama, corretamente as informag Soucrtacio oe HorAwio Atraveés dessa mensagem de controle, uma maquina pode pedir 0 hordrio do rel6gio de outra maquina que esteja conectada na rede. A maquina transmissora envia um comando de solicitagao de hordrio (mensagem ICMP tipo 13) a maquina da qual ele quer saber 0 horatio, incluindo no datagrama a hora do envio do datagrama. A maquina receptora responde ao 96 + Caso Come Gariruio 3 — TCP/IP comando de solicitagdo de horirio (mensagem ICMP tipo 14) incluindo 0 horirio que 0 datagrama chegou até ela e o hordrio em que o datagrama de resposta foi enviado. © horario € contado em milissegundos a partir da meia-noite, Horario Universal (GMT, Greenwich Mean ‘lime, horario de Greenwich) Um dos usos desse comand poderia ser 0 de sincronizar o reldgio de duas maquinas. O problema é que ha um atraso provocado pela rede, que impede que essa sincronia fique 100% perfeita. Outro uso desse comando é para medir 0 tempo de resposta da rede, isto, 6, 0 tempo que um datagrama demora para atingir um determinado destino. UDP (User Data Protocot) © protocolo UDP € um protocolo de transporte nao orientado a conexao, isto é, a0 contrario do TCE, ele ndo verifica se o pacote de dados chegou ou nao ao seu destino. Por esse motivo, esse protocolo nao é usado no transporte de dados importantes como, por exemplo, arguivos € e-mails. Na verdade, as aplicagoes que usem o UDP deverdo criar mecanismos para verificar se os dados foram recebidos corretamente e para colocar os datagramas recebidos em ordem Em outras palavras, a aplicagay passat a fazer 0 papel que numalimente € feito pelo protocolo TCP, que estarmos estudando adiante, A vantagem para programas usarem 0 UDP em vez do TCP é que a transmissao de dados fica mais rapida. Primeiro, 0 tamanho do pacote de dados a ser transmitido fica menor, ia que o cabegalho UDP é bem menor que o cabecalho TCP ¢, segundo, no UDP nao existe um mecanismo de verificagao de chegada do pacote (acknowledge), que existe no TCP, acelerando o envio de pacotes, jd que o transmissor nao precisaré esperar receber uma mensagem de acknowledge do receptor para enviar o proximo pacote. Em redes locais confidveis, onde nao ha quase perda de pacotes, 0 uso do protocolo UDP 6 até vidvel, Mas, em redes grandes e, principalmente, na Inte et, a taxa de perda de pacotes pode ser alta demais e acabar dando muito trabalho para a aplicacao, tormando o envio de pacotes UDP invidvel do ponto de vista pratico. Por esse motivo, o UDP s6 é usado para 0 envio de dades pequenos ¢ onde a taxa de perda de pacotes, problema, isto €, nao vai dar muito trabalho para a aplicacdo, Um dos usos mais conhecidos io seja um do protocolo UDP € para o envio de mensagens DNS (Domain Name System). Caso Com + 97 Renes ve Conruranores Cunso Conrtsto | Na tabela a seguir mostramos os usos mais comuns do protocolo UDP, Como voce pode reparar, somente aplicagdes que nao estdo preocupadas com a contiabilidade dos dados & que fazem uso do protocolo UDP. bins (s,m presets rae so oes omands do Ui. Na Figura 3.25 mostramos o encapsulamento do datagrama UDT; ‘rea de dados Gabegao UPD Yo datagrams UOP Cabeza en SR Figora 3.25: Encopsulamento de um detgroma UDP. 98 + Cus Cornen Gerinuo 3 TCP/IP Estrutura po Daracrama UDP ‘Como vimos anteriormente, no TCP/IP as aplicagdes comunicam- e com os protocolos da camada de transporte (0 UDP e 0 TCP) através de portas (ver Figura 3.2). As portas ‘mats Comuns usadas por aplicagdes que usam protocolo UDI foram vistas na tabela anterior. A estratura do datagrama UDP pode ser vista na Figura 3.26. Figure 3.26: strata d dategrama UDP, Os campos porta de origem ¢ porta de destino especificam a aplicacao que originou o datagrama e para cuja aplicagio o datagrama deverd ser entregue na maquina de destino. ‘Meso que a méquina de destino receba varios datagramas UDP vindos de varias aplicagoes diferentes, ela tem como saber para qual aplicacdo ela deve entregar 0 contetido do. datagrama por causa da existéncia do campo Porta de Destino. © campo Tamanho especifica o tamanho do datagrama UDP em bytes, incluindo o seu cabecalho ea sua drea de dados. O valor minimo para esse campo ¢ oito, que 60 tamanho, do proprio cabecalho (64 bits equivalem a oito bytes). Ja 0 checksum € calculado de uma forma nao convencional, O protocolo UDP eria um. pyeudocabecalho, mostrado na Figura 3.27. Esse pseudocabegalho é formado apenas pata ser utilizado na soma que resultard no checksum do datagrama, nao sendo transmitido junto com 0 datagrama, Esse pseudocabecalho ¢ formaco pelo enderego IP de origem, pelo endereco IP de destino, pelo conjunto de oito zeros (campo Zeros), pelo niimero que © protocolo UDP representa no protocolo IP (17, campo Protocolo) e, hovamente, o tamanho do datagrama UDP (mesmo valor presente no campo Tamanho do Datayrama do verdadeiro cabegalho UDP). Para formar o seu checksum, 0 UDP faz uma soma usando os valores desse pseudocabecalho (que ndo ¢ transmitid), os valores de seu cabegalho verdadeizo (este sim 6 transmitido), ¢ 6s valores presentes em seu campo de dados, Gus0 Conner > 99 Renes ve Conrutavones Curso Cowrusto ieee Po | gee ter lt er Figura 3.27; Pseudcaberalo UDF, usadosomeate no clo do checksum. ‘Teoricamente o campo checksum ¢ opcional (para nao usar o checksum, basta preencher esse campo com todos os bits em um). Entretanto, sem 0 uso do checksum tomna-se impossivel saber se 0 dado reccbido esta ou nio corrompido (isto é, se ele sofreu ou Nao alteragoes durante 0 caminho entre © transmissor € 0 receptor). Por isso, a maioria das aplicagoes que usam o UDP prefere realizar 0 checksum, TCP (Transmission Controt Protoco1) Como vimos no inicio do capitulo, o protocol TCP é 0 mais complexo do sistema de protocolos TCP/IP, Ele recebe os datagramas IP e trata de colocé-los em ordem (6 que em redes grandes os datagramas geralmente chegam fora de ordem) e verificar se todos chegaram corretamente. Como vimos anteriosmente, o IP nao verifica se um datagrama chegou ou ‘nao ao destino, ficando o TCP responsivel por essa tarefa. Lembrando 0 que vimos no inicio do capitulo, as aplicagdes enviam dados a serem uunis dle comunicagao transmitides pela rede a0 protocol TCP, através de canais chamados portas. As portas mais usadas pelo protocolo TCP sao: Pata Uk 4 u Sat 4 5 Abit | 0 FP (ois) x] = eer) a “bet - % sm | 3 Ws Le Finger Spt 0 om 100 + Gis Couns Gerituto 3 - TCP/IP O-TCP empacota os dados recebidos adicionando as informacoes da porta de origem & da porta de destino, entre outras, pasando o pacote de dados ao protocolo IP. O protocolo, IP adiciona as informag6es de enderego IP de origem e destino (entre outras) aos dados recebidos da camada TCP, encapsulando esses dados em um datagrama. Esse datagrama €passado para a camada de interface com a rede (o driver da placa de rede), que encapsula © datagrama em um quadro que sera enviado para rede através da placa de rede. Reveja ura 3.3 para uma melhor compreensio. A Figura 3.28 mostra o encapsulamento do pacote de dados TCP. | Area de dados ato] ‘do pacote TOP Cabecalho do quadro i ra 3.28: Encapsulamento do pacote de dads TCP Ao receber um quadro, a camada de interface com a rede da maquina receptora (o driver ea placa de rede) ird passar os dados para a camada IP, que por sua vez, passara os dados para a camada TCP, que passaré os dados para a aplicagao correta. A camada TCP sabe para qual aplicagao ela deve entregar os dados por causa do uso do conceito de portas. Por exemplo, se o pacote de dados é destinado a porta 25, a camada TCP sabe que os dados devem ser entregues ao programa de e-mail Como dissemos, a camada TCP € que colocara os datagramas recebidos em ordem € verificard se todos os pacotes chegaram ao destino. Transmissio & REcePcho pE Pacotes Ao re eber um pacote de dados, o protocolo TCP envia uma mensagem de confirmagio de recebimento a maquina transmissora, chamada acknowledge (também chamada ack) CuesoCoureo «TON Reves o€ Comeutaoores Curso ComPuero Se o transmissor nao receber uma confirmagio de recebimento dentro de um determinado tempo, o pacote é retransmitido, ja que isso significa que datagramas IP carregando informagées inseridas pelo protocolo TCP foram descartadas no meio do caminho por algum motivo, Fsse “determinado tempo” @ que nos referimos no pardgrafo anterior, chamado RTT (Round Trip Time, Tempo Aproximado de Viagem), € calculado dinamicamente pelo protocolo TCP, jé que em redes grandes nao da para utilizarmos um valor de tempo fixo. Se definirmos um tempo curto demais, pode ser que o transmissor, por nao ter recebido a confirmagao de recebimento, reenvie o pacote, enquanto na realidade 0 pacote nao tenha sido perdido ¢ esteja na rede corretamente a caminho do receptor, apenas 0 caminho 6 que esta lento. Neste caso, 0 receptor acabara recebendo dois pacotes, o que aliés 6 outva t fa do protocolo TCH, identificar pacotes duplicados. Por outro lado, se 0 tempo definido for longo demais, caso o pacote se perca no meio do caminho, © transmissor demorara muito tempo para perceber que o pacote foi perdido, fazendo com que 0 desempenho da rede caia. Ou seja, tanto se 0 tempo for curto demais quanto se for longo demais, o desempenho da rede seri comprometido (no primeiro caso, pelo envio excessivo de pacotes, e no segundo, pela demora no reenvio de pacotes perdidos). © TCP cronometra o tempo demorado entre o envio do pacote TC? € 0 recebimento de sua confirmagao. A cada nova contirmagao de recebimento que chega, 0 TCP recalcula © tempo aproximado de viagem (RIT), que € uma média desses tempos que foram cronometrados No entanto, esse calculo nao é tao simples quanto parece, por causa do sistema usado pelo protocoto ICP para confirmar pacotes, que pode gerar varias confirmagoes idénticas caso um pacote seja perdido, fazendo com que 0 crondmetro do RTT marque tempos falsos. Lendo 0 t6pico Orgunizacao dos Segmentas Revebidos voc’ entenderé o problema. Em principio, o esquema de envio e recebimento de pacotes pela camuada TCP funciona como mostra a Figura 3.29. O transmissor sabe que tum pacote é perdido quando uma mensagem de confirmagdo nao é recebida dentro do periodo de tempo experado, Essa situagdo é ilustrada na Figura 3.30, 102 + Cis Counce Grituio 3 — TCP/IP Tone] [Taam fos Lop] reese bl és pete pacts Figue 3.29: Process de transmis de posts 0 lange do tempo. Tempo Perdido Taran rans Pate & emus Low] Pert pacte 1 ee Figura 330: Procsso de retrensmisso de um poate de datos. © problema da retransmissdo € 0 tempo que é¢ perdido. Além disso, em principio o transmissor tem dle esperar © recebimento de uma mensagem de confirmagae para entao enviar um novo pacote, tornando o mecanismo de envio de dados extremamente lento: sempre sero acumulados inumeros p cotes a serem transmitidos, mas 0 transmissor nao os pode enviar para a camada LP enquanto a confirmagao do ailtimo pacote enviado nao chegar, © protocolo TCP nao conta os dados transmitidos através de pacotes, mas sim através dos bytes que esto sendo enviados da aplicagao para a camada TCP. Com isso, os pacotes nao so numerados seqitencialmente como estamos mostrando em nossas ilustraco mas sim numerados de acordo com 0 niimero de ordem do primeiro byte do pacote dentro do fluxo de dados que esta sendo recebido pelo protocolo TCP. Essa num¢ € armazenada no cabecalho TCP dentro de um campo chamado Niimero de Seqiiéncia, ao Por exer nplo, vamos imaginar que a area de dados que esteja sendo usada no pacote TCP seja de 536 bytes. Assim, o néimero de seqiténcia do primeiro pacote sera 1, o mimero de seqiiéncia do segundo pacote sera 537 e o numero de seqiiéneia do terceiro pacote sera 1.073, ¢ assim por diante. Gus0 Come + 103 Reves ve Coururanones Curso Cowrtero Quando a maquina receptora recebe um pacote, ela tem de enviar uma mensagem de confirmagdo de recebimento — 0 acknowledge, como vimos. No protocolo TCP, o recep- tor na realidade envia ao transmissor o numero de seqiiéncia do préximo pacote que ele espera receber. Continuando com © nosso exemplo, ao receber o primeito pacote, 0 receptor iri enviar como confirmacao de recebimento 0 nimero 537, que 6 0 namero de seqiiéncia do segundo pacote. Essa informacao de confirmagao de recebimento enviada no cabegatho TCP dentro de um campo chamado Niimero de Confirmacao. : Opinio peste ena pl TCP nunca om um mero do seqiéca 1.0 nimero de seqica do primer past de uma JOT ‘enexio um nimerogerodocleotoroment, Usama nimeo 1 apenas ora fates oss expos. Conexio A comunicacao entre duas aplicagdes em duas diferentes maquinas é chamada conexao, © protocolo TCP ¢ responsavel por abrir uma conexdo, manté-la ¢ feché-la. A abertura da conexao ¢ feita através de um processo chamado handshake (aperto de mao), onde © transmissor e o receptor irdo confirmar qual é 0 ntimero de sequéncia niclal que eles usardo (apesar de estanmios dandy exemplus usanndy Y primeity 0 de seqiiéncia como sendo 1, isto na realidade nao ocorre). O transmissor envia um pacote contendo apenas o ntimero de seqiiéncia € 6 bit SYN do campo Bits de Controle ativado (ver Estrutura do Segmento TCP adiante). O receptor pega esse numero de sequiencia € confirma o recebimento do pacote, respondendo com um pacote contendo o nimero de seqiiéncia ¢ os bits SYN e ACK ativados, O transmissor, ao receber esse pacote, envia um pacote de confirmagao de recebimento de volta ao receptor, Como voce pode perceber, ao final h4 uma confirmacdo do transmissor, 0 que nao muito usual nesse tipo de proceso. Por isso, esse procedimento ¢ também chamado de handshake de trés tempos (three-way handshake), A conexao € mantida através do envio de dados do transmissor ao receptor. tudo correr bem durante a conexao, o transmissor ira fechar a conexao quando cle se fechamento ¢ feito da mesma forma 1ndo tiver mais dados para serem transmitidos. 104 + Ciiso Couns Gariruto 3 — TCP/IP que a abertura, usando um handshake de trés tempos. Para a aplicagao transmissora fechar a conexao, 0 transmissor envia um pacote com 0 bit de controle FIN ativado. O receptor, ao receber um pacote com esse bit ativado, informa a aplicagdo receptora que os dados chegaram ao fim e, a0 mesmo tempo, envia um pacote de confirmagio a0 transmissor (s6 que com o bit FIN desativado). Quando a aplicagao no receptor fecha a conexao, a maquina receptora envia um pacote com o bit FIN ativado, que é recebido pelo transmissor, que envia em seguida uma confirmagao de recebimento, fechando a conexao. Socket Temos falado que © TCP recebe pacotes ¢ os entrega ao protocolo de aplicagdo que esteja esperando receber aqueles dados, Isso é feito através do uso do conceito de portas. As im, quando 0 TCP recebe um pacote destinado a porta 80, cle sabe que deve entregar aqueles dados ao protocolo HTTP (que por sua vez os entregara ao browser Internet do usuario, por exemplo), Ou seja, a porta serve para identificar o tipo de apli tipo de aplicagao os dados devem ser entregues. ‘acdo que gerou pacote e para qual Acontece que esse canceito par si sé nao resolve um outta problema: a entrega de dados a mais de uma aplicagao do mesmo tipo comunicando-se com a rede ao mesmo tempo. Por exemplo, vocé pode ter dois ou mais browsers Internet abertos em sua maquina abrindo sites diferentes da Internet em cada um deles, Se o protocol TCP simplesmente entregar 0 pacote de dados & camada de aplicagao, como ela saberd a qual browser ela devera entregar os dados recebidos? Cada porta permite 0 uso de um conceito chamado socket. © socket define uma conexdo dentro de uma porta. Com 0 uso deste conceito, pode-se ter varias conexdes diferentes, em uma mesma porta, Assim, dois browsers podem estar abertos simultaneamente € carregando dados totalmente diferentes da rede, A camada de aplicagdo sabera para qual browser deverd entregar os dados recebidos por causa da existéncia da informagio de qual € 0 socket de destino dentro da area de dados do pacote, inserida pela camada de aplicagao do transmissor. Os sockets podem ser classificados em ativos ou passivos. Um socket ativo € aquele que envia dados e um passivo é aquele que recebe dados. Normalmente as maquinas possuem Cus Como 105 a Reoss v& Conrutanones Curso ConPtrto um socket passivo monitorando uma determinada porta a espera de uma conexao. Ao receber umia conexao, esse socket passivo pode gerar um socket ativo ou socket passivo, para aquela conexio, dependendo do sentido (se for uma transmisséo ou uma recepeao). JaNeLA Para aumentar 0 desempenho do envio de pacotes, 0 protocolo TCP trabatha com o conceito de janela. Com esse conceito, o transmissor pode enviar outros pacotes antes, de ter recebido a confirmagio de recebimento do primeiro pacote enviado. Na Figura 3.31 mostramos um exemplo de um sistema utilizando uma janela de quatro pacotes, isto ¢, 0 transmissor podendo enviar até quatro pacotes antes de receber a confirmagao de recebimento do primeiro pacote. Traore on ‘Reopor aoe 4 soos meen ee beers a eee Trereriasor Rector emo fem| race, me woate 2 sta Pacotes Torariseor | [Tanase Feeste bp| ewvapriaro bp oo confi eeste Figure 3.31: xomplo do uma transmisse usando ume onela de quatro poctes. Esse sistema aumenta 0 desempenho do protocolo, jd que o tempo que teoricamente seria perdido entre a transmissdo do pacote e a recepcao de sua confirmagao é usado para transmitir mais pacotes. No exemplo dado, quando 0 transmissor recebe a confirmagao do primeiro pacote, o quinto pacote sera enviado (j4 que os pacotes 2, 3 & 4 ja estao na rede), Caso 0 tempo expire e o transmissor nao receba a confirmagio de recebimento do primeiro pacote, ele é retransmitido. O procedimento continua analogamente para os demais pacotes. 106 + Caso Counen Geriruvo 3 — TCP/IP No caso especifico do protocolo 'CP, 0 sistema de janela funciona de uma maneira um pouco mais complexa do que a apresentada, Neste protocolo a janela nao é contada em namero de pacotes a serem enviados, mas sim em niimero de bytes a serem enviados Além disso, 0 tamanho da janela no protocolo TCP € varidvel e pode ser alterado a qualquer instante, de forma a methorar o desempenho da conexao. Dessa forma, a janela opera no fluxo de dados enviados pela aplicagaio e que esto sendo empacotados pelo protocolo TCP. Na Figura 3.32 vemos o exemplo desse tluxo de dados © 0 funcionamento da janela, onde ilustramos a transmissio dos 11 primeiros bytes de uma conexao e 0 uso de uma janela de sete bytes. O protocolo TCP u de jancla. © primeiro (ponteiso 1) marca o inicio da janela, O segundo (ponteiro 2) separa, dentro da janela, os bytes que foram enviados daqueles que ainda nao foram enviados. E 0 terceiro ponteiro indica o fim da janela. za trés pont Em outras palavras, 0 ponteiro do meio (ponteiro 2) vai “correndo” da esquerda para a direita a uma velocidade fixa, até atin medida em que os primeitos bytes enviados vao sendo confirmados, criando espago para esse ponteiro ir “correndo”, © limite da janela. A propria janela “anda” a No exemplo da Figura 3.32, os bytes 1 € 2 jd foram enviados ¢ tiveram a recepgao confirmada, Os bytes de 3 a 6 ja foram enviados mas ainda nao tiveram a sua recepgao confirmada, Os bytes de 7 a 9 ainda serdo enviados. E os bytes a partir do décimo s6 poderdo ser enviados quando a janela se mover, o que ocorrera a medida que a recepgao dos bytes for sendo contirmada, Como vocé pode perceber, o sistema de janela do TCP é extremamente rapido, ja que ele lida diretamente com bytes, e nao com pacotes. Janel 12af9 45 617 @a]0 1 t Ty Panteira1 —Ponteiro 2 Ponteiro 3 Figur 3.32: Funconcmento da anele do protecle TP. Geo Cumin 4 107 Renes ot Compuranones Curso Cowpueto E claro que os bytes vao preenchendo a area de dados do pacote TCP (o pacote TCP é também chamado segniento). Quando atingem o tamanho definido do segmento, um novo segmento ¢ criado, Isso se repete até que todos os bytes tenham sido transmitidos. © tamanho padrao do pacote IP € de 576 bytes. Como 0 cabecalho IP padrao possui 20 bytes ¢ 0 cabegalho TCP padrao também ocupa 20 bytes, o tamanho padrao da area de dados dos segmentos TCP € de 536 bytes (ver Figura 3.28). ‘Como dissemos, 0 tamanho da janela TCP ¢ varidvel. Esse tamanho ¢ definide em um campo do cabecalho do segmento TCP. Esse campo possui 16 bits e, com isso, o tamanho maximo da janela TCP é de 64 KB (65.535 bytes, 2'° - 1), mas normalmente o valor da janela TCP 6 inferior a 32 KB. OnGanizacho pos SecmeNtos ReceBivos Por causa do uso de uma janela, 0 receptor pode receber os pacotes de dados fora de orem. Em principio, 0 protocolo TCP da maquina receptora pode colocar os segmentos recebidos em ordem facilmente observando o campo Niimero de Sequténcia dos segmentos. ‘Também vimos que a confirmaciio de recebimento no protocolo TCP éfeita nao confirmando © pacote recebido, mas sim enviando ao transmissor 0 ntimero de seqtiéncia do préximo pacote que ele espera receber — 0 que teoricamente acabaria dando no mesmo, sé que na pratica acaba gerando um outro problema, Para que voce entenda melhor essa questo, imagine que o protocol TCP esteja trabalhando com uma area de dados de 536 bytes. Os trés primeitos pacotes de uma seqtiéncia foram enviados, com ntimeros de seqii@ncia 1, $37 ¢ 1.073. Caso 0 primeiro pacote seja perdido no meio do caminho, ao receber 0s outros dois pacotes o receptor ira enviar como ntimero de confirmagao para cada um desses pacotes © valor 1 ~0 niimero de seqiiéncia do proximo pacote que ele espera receber, pois ele ainda esté esperando receber o primeizo pacote. Ou seja, 0 transmissor ird retransmitir os trés pacotes novamente, | que ele ndo recebeu a confirmagao de recebimento de nenhum pacote, por incrivel que pareca, JA que a confirmagao recebida para cada pacote recebido nao foi “recebi o pacote 2” nem “recebi o pacote 3”, mas sim “ainda estou esperando o pacote 1”. Eo transmissor 108 + Caso Cuneo Geinno 3-TOPAP ficou sem nenhum mecanismo para saber se os demais pacotes enviados chegaram corretamente ao destino, Dessa forma, o esquema de confirmacdo de recebimento de pacotes do protocolo TCP tem como grande falha fazer com que todos os segmentos presentes em uma mesma janela tenham de ser retransmitidos quando um dos segmentos é perdido, mesmo quando 4 maior parte dos segmentos ja tenha chegado corretamente ao receptor. Estrutura po Seomento TCP Estudando a estrutura do segmento TCP, o funcionamento deste protocolo ficard ainda mais claro. Na Figura 3.33 mostramos essa estrutura, Embora essa seja a representacao mais didatica, na maioria dos outros livros sobre o assunto voce encontrara a representagdo mostrada na Figura 3.34, que 6 a representagio tradicional. Bits de Controle (6 bts) anal 16 bits) Checksum (16 bits), Panto de Urgéncia (6 bits) Opctes + Pad (32 bits) Oadas Figura 3.33: Estrtura do segmento TC. Gio Cowro + 109 Reoes oe Cowpuranones Curso Comptero Pee a Figur 3.34; Moni tradonel de se epresenar a esrture do segment TCP, Encontramos os seguintes campos no cabegalho TCP: # Porta de Origem: Indica a aplicagao que originou os dados. ‘¢ Porta de Destino: Indica a aplicagdo para a qual os dados serao entregues no receptor. + Namero de Seqiiéncia: Identifica o nimero do primeiro byte presente no segmento dentro do fluxo de dados gerado pela aplicagao, Por exemplo, no segundo segmento de uma transmissao onde o tamanho da area de dados usada é de $36 bytes, 0 campo Nimero de Seqtiéncia tera o valor $37, ja que o primeiro byte do segundo Pacote ¢ 0 $37" byte que esta sendo transmitido. Ver t6pico Transinissao ¢ Recepeao de Pacotes para mais detalhes. # Nuimero de Confirmagao: f, o acknowledge (ack) do qual tanto falamos. Aqui é colacado 0 mimero de seqiiéncia do proximo segmento que o receptor espera receber, Por exemplo, vamos supor que 0 receptor acabou de receber 0 primeiro segmento de uma transmissao, de uma conexao usando uma area de dados de 536 bytes. 0 receptor itd responder ao transmissor com 0 valor 537 neste campo, informando que ele recebeu corretamente 0 pacote € esté esperando 0 envio do segmento contendo 0 ntimero de seqiiéncia $37. No t6pico Organizagdo dos Segmentos Recebidos nds discutimos o uso desse campo em mais detathes se campo (Header LENght) especifica 0 tamanho do cabegalho do pevote TCR eontudo e:mmseron de 22 il, ike 6 o arene de lis existentesa Figura 3.34 (em outras palavras, o ndmeto de bits existentes no cabecalho dividido por 32). O tamanho minimo do cabecalho é de cinco palavras de 32 bits (20 bytes), sendo esse 0 valor mais comum do campo HLEN, jé que normalmente o campo Opgoes + Pad nao é usado. Quando este campo ¢ usado, © valor do campo HLEN € seis. T10 + Caso Comnero Gerituo 3 — TCP/IP Reservado: Esse campo nao é usado. Bits de Controle ou Bits de Codigo: Esses bits sao usados para controle, conforme mostsa a proxima tabela (0s seis bits deste campo sto contados da esquerda para a direita, Isto 6, o bit URG € 0 primeiro da esquerda e assi por diante), it Siguiticade eG Ocampo Pair tiene vio hk ‘campo Haro dConlimaro vio si Foxe ene ds dds (sh) ist Rei conn =a sm Snooiso, deena o Niro Sic inl a (resi hg fn es dds Tamanho da Janela; Define o tamanho da janela, em bytes, que serd usada na conexao. Ver topico Janela para mais detalhes. Checksum: £ calculado de forma similar ao checksum do protocole UDP, com a criagao de um pseudocabegatho. Estudaremos adiante como é¢ feito esse calculo. Ponteiro Urgente: Caso existam dados que precisem ser processados antes de a conexao chegar ao fim, dentro de uma mesma conexao, 0 bit URG éativado e este campo é usado para informar a posigao, dentro do segmento, em que os dados urgentes terminam. Por exemplo, se 0 ustiério quiser abortar a conexao antes de cla chegar ao fim, essa informagao deve ser processada antes de os dados chegarem. 0 fim, ou 0 usuario nao tera como abortar o processo. Esta informagio, portanto, seguiré em um segmento com o bit URG ativado. Opgoes + Pad: Esse campo ¢ opcional e possui tamanho varidvel. Se nao for usado, © tamanho do cabegalho TCP ¢ de 20 bytes. Caso seja usado, o tamanho do cabecalho passa. tet 24 bytes. Se U Carnpo OpyOes for menor que 32 bits, ena sav adticionadoy zeros (chamados pad) até que o tamanho desse campo tenha 32 bits (4 bytes). Normalmente esse campo € usado para que o transmissor € 0 receptor troquem, informagoes sobre qual serd o tamanho maximo do segmento que seré usado na conexao. Essa informagao € chamada Tamanho Maximo do Segmento ou MSS (Maximum Segment Size). Cowso Cuneo Reoes ve Cowputapores Curso Comtero Checxsum O checksum do protocolo TCP é calculado de forma similar ao do protocolo UDP. E.criado um pseudocaberalho, apenas para efeitos de calculo, que nao € transmitido. Esse pseudocabecalho pode ser visto na Figura 3.35. Nele sdo usados o valor do enderego IP de origem, 0 valor do IP de destino, oito zeros (campo Zeros), o mimero que 0 protocol TCP representa no protocolo IP (que no caso do protocolo TCP é seis, ver t6pico Estrutura do Datagram IP) ¢ 0 tamanho total do segmento TCP em bytes, incluindo o cabegalho. gure 3.35: ssudecabeho do protocl TC. Dessa forma, o checksum é calculado somando-se 0 cabecalho, 0 pseudocabecalho e a rea de dados do segmento TCP. Mais uma vez lembrando que o pseudocabegalho € uusado apenas para efeitos de soma, nao sendo transmitido. Foxcanoo a Enineca vos Davos © tinica parte da estrutura do segmento TCP que ainda nao explicamos € o bit PSH presente no campo Bits de Controle, que forca a entrega dos dados. ‘Como comentamos anteriormente, 0 protocolo TCP é baseado no fluxo de dados vindo da aplicagao. Dessa forma, se ele estiver trabalhando com um determinado tamanho de segmento, ele nao o enviard até o momento em que ele esteja completo, cheio de dados © problema dese proceso € que, s€ @ aplicagdo resolver entregar daddos em uma quantidade muito menor do que o tamanho da area de dados do segmento TCT, esses dados nunca serao enviados - 0 TCP ficara esperando ad eterum a aplicagao passar mais dados para encher a érea de dados do segmento. V12 Gis0 Court Gortruo 3 — TCP/IP Por exemplo, uma aplicagao Telnet onde o usuario tenha de entrar caracteres no teclado, uumaum, para serem enviados ao servidor, Neste caso, cada tecla pressionada pode significar um comando ¢, por isso, 0 valor de cada tecla pressionada deve ser enviado um a um ea camada TCP nao pode ficar esperando encher o tamanho do segmento (imagine a situagao: voc’ teria de entrar 536 caracteres para que eles todos fossem enviados cle uma s6 vez). Por isso existe o bit Push (PSH). Através desse bit, a aplicagao informa a camada TCP que ‘0s dados devem ser enviados imediatamente, ¢ ela nao deve esperar receber mais dados para enviar aquele segmento, mesmo que dentro do segmento tenha apenas 1 byte (como, € 0 caso do pressionamento de uma tecla). Protocotos pe Apticacio Agora que ja terminamos de estudar 0s protocolos das camadas mais baixas do TCP/IP, estudaremos os protocolos de alto nivel, isto €, 0 funcionamento dos principais protocolos usados na comunicagao das aplicagdes com a camada de transporte, £ claro que existem indimetos protocoles # terlainée de edcrever ui livre somente sobre © TCP/IP para podermos descrever todos em detalhes. Por este motivo, estaremos abordando somente os protocolos de aplicacao mais comuns, a saber: DNS (Domain Name System): Usado para identificar maquinas através de nomes em vez de enderegos IP. Telnet: Usado para comunicar-se remotamente com uma maquina. ¢ FIP (File Transfer Protocol} Usado na transferéncia de arquivos. SMTP « nple Mail ‘Transfer Protocol): Usado no envio e recebimento de e-mails. ¢ — HIPTP (Hyper Text Transfer Protocol): Usado na transferéncia de documentos hipermidia (WWW, World Wide Web). Vamos a eles. DNS (Domain Name System) Nés vimos que todas as maquinas em uma rede TCP/IP possui um endereco IP. Acontece que 08 enderecos IP nao s80 tao faces de ser recordados quanto nomes. Por isso, foi Geo Cou 113 AReoes ve Compursnones Cunso Con? ctiado o sistema DNS, que permite dar nome a enderecos IP, facilitando a localizagdo de méquinas por nés, humanos. Voce ja conhece varios enderegos de maquinas na Internet. Enderegos como ‘www.seusite.com.brna verdade so uma conversdo para a forma nominal de um enderego IP (€ muito mais fécil guardar o endetego nominal www.seusite.com.br do que o endereco IP 200.123.123.7, por exemplo). Quando vocé entra esse endereco em um browser Internet, 0 browser se comunica com um servidor DNS, que é responsdvel por descobrir © enderego IP do nome entrado, permitindo que a conexao seja efetuada. Dessa forma, os servidores DNS possuem duas fungoes: converter enderegos nominais em enderesos IP e vice-versa, ‘Sem 0 uso de servidores DNS, cada maquina conectada internet teria de ter uma tabela contendo todos os enderegos IP ¢ os nomes das maquinas, o que atualmente ¢ impossivel, ja que existem milhoes de enderegos na Internet. Como a idéia da Intemet é ser uma rede untesca ~ ¢ ela foi criada justamente para isso -, 0 sistema de nomes foi criado de forma a acomodar o crescimento da rede. Para isso, o sistema de nomes utilizado possui uma estrutura hierarquica. Servidor Raz Figure 3.36: Exempl da estratoraberrgvica de servidres na Intret, TT4 + Caso Guns Garituwo 3 — TCP/IP Na Figura 3.36 vemos um exemplo de como funciona essa estrutura, Um servidor .com, por exemplo, ¢ responsavel por todos os enderegos terminados em .com, assim como ‘um servidor .com.br € responsivel por todos os enderecos terminados em .com.br. Cada rede local TCP/IP precisa ter ao menos um servidor DNS. Todos os pedidos por conversdo de nomes em enderecos IP ou vice-versa so enviados a este servidor. Caso ele nao consiga efetuar essa conversao (também chamada resolucdo), ele responde o pedido informando o enderego de um servidor que seja hierarquicamente superior a ele e, com. isso, a maior probabilidade de conhecer o endereco solicitado. Se 0 outro servidor contactado também nao conhecer o enderego, ele respondera informando o endereso de outro servidor hierarquicamente superior e assim sucessivamente, até o endereso ser localizado (ou nao, caso seja tum enderego inexistente). Por exemplo, se vocé pedir 0 enderego seusite.org.br ¢ servidor de DNS de sua rede nd conhecer esse enderego (supondo que o dominio de sua rede seja .com.br), ele passara esse pedido parar 0 servidor responsével pelos dominios .com.br, que passard 0 pedido para o servidor responsivel pelos dominios .br que, por sua vez, passard o pedido para 0 servidor responsivel pelos dominios .org.br (ver Figura 3.36) que, com certeza, conhecerd esse dor inio, caso ele exista (caso nao exista, este servidor retornara uma mensagem de erro de dominio inexistente), Em outras palavras, os enderegos Internet sdo resolvidos da direita para a esquerda, No exemplo dado, seusite.org.br, primeiro 0 pedido é enviado para o servidor .br, que enviard © pedido para o servidor .org. br que entao verifica se existe o dominio seusite.org.br, No caso de 0 endereco ser mais longo, www.seusite.org.br ou nome.seusite.org.br, www & nome sio nomes de maquinas dentro da rede seusite.org.br e serao resolvidos pelo servidor DNS da rede local. Da maneira que estamos explicando, o sistema DNS criaria um tréfego gigantesco na Internet, por causa da replicagao dos pedidos de resolucao de enderegos para servidores hierarquicamente superiores. Para que isso nao aconteca, quando o pedido de resolucao 6 atendido, 0 servidor DNS da rede local “aprende” aquele novo enderego. Assim, se aquele nome/enderego for pedido novamente por alguma maquina da rede, 0 servidor de DNS local poderd dessa vez atender ao pedido, nao preci para outros servidores, diminuindo, assim, 0 trfego da rede. Esse procedimento é ndlo ter de passar 0 pedido conhecido como cache. Guo Com VIS Reves o€ Computanores Curso Coneveto £ claro que pode ocorrer de as informagoes presentes no cache do servidor de DNS local estarem desatualizadas, isto €, o enderego IP de um determinado servidor ter sido alterado, por exemplo. Por isso, quando um servidor hierarquicamente superior responde a um pedido de DNS, ele inclui um valor de Tempo de Vida (TTL, ao servidor local durante quanto tempo ele pode ime To Live), que informa icar com aquela informagio. Quando © tempo de vida for atingido, o endereco IP e o nome do dominio sao removidos do cache do servidor DNS local, fazendo com que novos pedidos daquele nome/endereco tenham de ser requisitados ao servidor hierarquicamente superior, atualizando, assim, 0 cache do servidor local. Além disso, poderia haver um congestionamento gigantesco nos servidores de DNS principais da Internet, fazendo com que eles saissem do ar (por exemplo, no servidor br, ver Figura 3.36). Na verdade, um pedido enviado a um servidor de DNS principal € atendido por varias maquinas, utilizando o conceito de computacdo distribufda. Alem, disso, na maior parte das vezes eles no atendem diretamente a pedidos DN: respondem ao pedido indicando outros servidores capazes de atendé-lo. eles Forwaro as Mensacens DNS Quando 0 usuario pede uma conexio com um determinado endereco - por exemplo, digitando www-seusite.com.br dentro de um browser Internet -, a aplicagao (no caso 0 browser) precisara saber o endereco IP deste enderego para pode abrir a conextio TCP comegar a troca de dados. Para isso, a maquina pergunta ao servidor DNS local se ele conhece 0 enderego www.seusite.com.br. Se ele conhecer (isto 6, se este enderego estiver presente em seu cache), ele executa a resolugdo, passando o enderego IP referente a este enderego para a maquina. Caso contratio, ele precisara enviar uma mensagem DNS para o servidor hierarquicamente superior para descobrir o enderego IP do enderego solicitado, As mensagens DNS podem conter varios pedidos simultancamente. Caso o servidor de DNS acima do servidor local nfo consiga atender a algum pedicle, por nfo conhecer aquele endereco, ele passaré os enderegos dos servidores que ele acredita que podera resolvé-lo (autoridades). Como comentamios anteriormente, as mensagens DNS sao tipicamente trocadas usando © protocolo UDP, usando a porta $3. 0 encapsulamento da mensagem DNS € mostrada na Figura 3.37, 116 + CinsoCouneo Grito 3 — TCP/IP © formato da mensagem DNS ¢ mostrado na Figura 3.38. Ela possui um cabegalho de tamanho fixo (12 bytes) € uma area de dados varidvel (as segdes de perguntas, respostas, autoridades e informagdes adicionais), Cabegalho | Mensagem ONS ONS - 5 ‘Cabegalho gusdro Figur 3.7: Encpsolamento de mensoger DNS, de autoridades: (16 bits) ‘Womero de nfornagaes diconais (16 bits) Seco de penguntas Sedo de Faspostas ‘Segond autonidades See de nformagses adiconals Figure 3.38: Formato ds mensogens DNS. Cus Courero «VT Reps v& Conrurapones Curso Compteto ‘Os campos existentes na mensagem DNS so os seguintes: ¢ — Identificagao: Usado para numerar a mensagem DNS, para que a maquina que enviou a mensagem consiga iden quando ela chega. icar corretamente a resposta para a mensagem, + Pardmetros: Identificam 0 tipo de mensagem, conforme a tabela a seguir. Por exemplo, se 0 bit zero estiver desativado, significa que a mensagem é uma pergunta; jd se ele estiver ativado, a mensagem é uma resposta, ¢ assim por diante. Os bits so contados da esquerda para a direita dentro deste campo. Signitiade ° sree: Page: Repre Ve TyodePergun 0: Fon: Rvs; 2: Complore | os 5 Repose de etidade = ‘ Nersogen Funade 7 1 Aoninindesnds - 8 Recon dspeiel a 9011 fearon 12615 Tyo deresps: No ue ees: ron fmt do pau; 2 aba eave No iiss ‘+ Namero de Perguntas: Informa o néimero de perguntas existentes no campo Segao de Perguntas. + Nimero de Respostas: [dem para as respostas. ‘* Niimero de Autoridaci : Idem para enderecos de autoridades. Numero de Informagdes Adicionais; Idem para as infomagoes adicionais. As perguntas presentes no campo Secao de Perguntas possuem o formato apresentado na Figura 3.39. O campo Tipo de Pergunta codifica 0 tipo da pergunta que esté sendo feita (por exemplo, conversa de um nome em um endereco IP), enquanto 0 campo Classe da Pergunta na verdade s6 possui um valor possivel (Internet). TTB + Gos Guns

Você também pode gostar