Você está na página 1de 142
Capitulo 2 ProTocotos: FUNDAMENTOS Rents o¢ Conputaoones Curso Cowptsto Conceitos BAsicos No capitulo passado falamos que protocolo é a “linguagem” usada pelos dispositivos de uma rede de modo que eles consigam se entender, to 6, trocar informagdes entre si Para que todos os dispositivos de uma rede consigam conversar entre si, todos eles deverao estar usando uma mesma linguagem, isto é, um mesmo protocolo. Uma rede pode usar diversos protocolos, como 0 TCP/IP, © NetBEUI e 0 SPX/IPX, entre outros. Nos préximos capitulos estaremos explicando aprofundadamente o funcionamento de cada um desses protocolos. Embora cada um desses protocolos funcione de uma forma particular, eles tém algumas similaridades, que estaremos explorando neste capitulo. Essas similaridades existem porque, na verdade, os protocolos surgiram com um mesmo objetivo: transmitir dados através de uma rede. Para entendermos melhor como os protocolos funcionam, considere as seguintes premissas: ¢ — Amaioria das transmissoes de dados em redes locais é do tipo balf-cuplex (ver Capitulo 1). «Tra cionalmente os computadores de uma rede compartilham wm mesmo cabo e, com isso, todas os computadores recebem uma mesma informagao ao mesmo tempo. Mesmo em redes que utilizem hubs (ver Figura 1.16), onde cada micro é conectado a rede usando ‘um cabo individual, esse componente na verdade funciona apenas como um repetidor, enviando para todas as méquinas as informagdes que ele recebe, ao me mo tempo (ver Capitulo 16). Observe a Figura 2.1. Se 0 computador A quiser enviar um dado para 0 computador B, este dado também chegaré ao computador C. Se uma transmissio est sendo feita entre dois dispositivos, nenhuma outra transmissdo poderd ser feita ao mesmo tempo, mesmo que seja entre dois dispositivos que nao estejam participando da transmissdio em curso, ja que 0 cabo sendo usado. Como vocé pode ver na Figura 2.2, 0 computador C nao podera enviar dados para nenhum outro micro da rede enquanto 0 cabo estiver sendo usado, mesmo que seja um micro que nao esteja participando da comunicacao atualmente em curso (por exemplo, para um hipote estara o computador D). 34 + Cinco Counce Gerituvo 2 — Protoco.os: Funoauentos ¢__AN\ f__iANr hum computador pode transmits dads exquantoo cabo esté send usade, + Seum arquivo grande tiver de ser transmitido, os demais dispositivos da rede te rquivo ¢ gr le de esperar muito tempo para comegarem a transmitir (pois 0 demora algum tempo para ser transmitido), j4 que 0 cabo ja estara sendo usado. Mostramos um exemplo na Figura 2.3, onde o computador C tera de esperar 0 computador A acabar de transmitir 0 arquivo para B para entao poder usar 0 cabo ao. efetuar uma transr + 35 Gunso Conn Reoes ve Conruranones Curso Conetero ‘Arquivo grande sendo trensmitida de A pera B Figure 2.3: Os compotedores da rede tim de esperar o cabo fcarlvre para enviar dados. # — Poderdo ocorrer interferéncias de algum tipo no meio do caminho e o dado pode nao chegar corretamente ao seu destino. Os protocolos sio justamente uma solugdo para todos esses problemas. Primeiro, 0 protocolo pega os dados que devem ser transmitidos na rede e divide ele em pequenos pedagos de tamanho fixo chamados pacotes ou quadros. Isso significa que um arquivo nao é transmitido na rede de uma s6 vez. Por exemplo, se um arquivo a ser transmitido possui 100 KB e 0 protocolo usado divide os dados em p arquivo seré transmitido em 100 pacotes de 1 KB cada. ‘otes de 1 KB, entdo esse Dentro de cada pacote ha uma informacao de enderegamento que informa a origem eo destino do pacote. Observe a Figura 2.1. Se o computador A est enviando um arquivo para o computador B e todos os computadores da rede recebem essa informacao ao mesmo tempo, como o computador B sabe que o dado é para ele? Como os demais computadores da rede sabem que 0 dado nao é para eles? Justamente observando essa informagao de enderecamento. As placas de rede dos computadores possuem um endereco fixo, que é gravado em hard- ware, Dessa forma, 0 computador de destino sabe que o pacote atualmente transitando no cabo da rede é para ele, porque hé o enderego de sua placa de rede no cabegalho de destino do pacote. Da mesma forma, os demais computadores sabem que aquele pacote 36 + Cus Gm Geriruio 2 — Prorocotos: Funoamentos nao é para eles, ja que nao hé o enderego de nenhuma das placas de rede dos outros computadores no pacote. © uso de pacotes de dados otimiza enormemente o uso da rede, jé que, em vez de uma Xinica transmissio de um dado grande (um arquivo grande, por exemplo), existirdo varias transmissdes de dados menores. Com isso, estatisticamente havera uma maior probabilidade de um outro dispositive que queira transmitir um dado encontrar 0 cabo da rede livre, podendo iniciar uma nova transmissao. Dessa forma, é possivel que varios dispositives se comuniquem “ao mesmo tempo” em uma rede, Fisicamente, essas transmissoes nao sto efetuadas simultaneamente, mas intercalando os varios pacotes de dados, como exemplificamos na Figura 2.4, onde mostramos 0 exemplo de dois computadores, A e C, enviando um arquivo cada para o computador B. Ao longo do tempo, serdo intercalados no cabo pacotes vindos do computador A e do computador C. O computador receptor se encarregaré de “montar” os pacotes a medida em que eles vao chegando, o que € facil, é que em cada pacote hd a informagao do computador de origem. A 8 —_ 4 a= t=. A A x pe] [a | A Heo t eee Figura 24: Tonsnissosinltine de dois aruives, Como voce pode facilmente notar, a velocidade da transmissio de dados em uma rede & altamente dependente do ntimero de transmiss6es “simultineas” que esto sendo efetuadas. Quanto mais transmiss6es estiverem em curso ao mesmo tempo, mais lenta sera a rede, Cunso Court + 37 Reoes oe Conutanores Cunso Conrueto Suponha o seguinte: se somente ha uma transmissao de dados entre o computador Ae © computador B, essa transmissiio pode ser feita na velocidade maxima do meio de transmissao, por exemplo, 10 Mbps. Para fazer duas transmisses simultaneasa 10 Mbps, 6 meio teria de aumentar a sua velocidade para 20 Mbps (para conseguir transferir dois dados a 10 Mbps). No caso de trés comunicagdes simultaneas, a velocidade do meio teria de passar para 30 Mbps e assim por diante. Acontece que o meio — isto é, 0 cabeamento da rede ~ possui um limite de velocidade, que é justamente a sua velocidade maxima de transmissao. Dessa forma, um cabo que transmite dados a 10 Mbps nao consegue transmitir dados a uma velocidade maior do que esta. Com isso, para conseguir transmitir dois dados a 10 Mbps, obrigatoriamente a velocidade desses dois dados tendera a cair pela metade—5 Mbps. No caso de trés dactos, a velocidade individual de cada dado passa para 3,33 Mbps e assim por diante. Isso ocotre porque, como explicamos anteriormente, somente um dispositive pode usar cabo por vez ¢, portanto, as transmissdes na verdade nao serao simultaneas, mas intercaladas, como exemplificamos na Figura 2.4. Dessa forma, ha uma relacdo direta entre © néimero de maquinas instaladas em uma rede e o seu desempenho. ‘Teoricamente, quanto mais maquinas colocarmos na rede, mais lenta cla seré, pois maior sera a probabilidade de mais de uma transmissao ser requerida por vez. Ha varias maneiras de se transpor esse problema ¢ estaremos analisando esas solugdes ao longo do livro. A placa de rede, ao colocar um pacote de dados no cabo da rede, faz uma conta chamada checksum ou CRC (Cyclical Redundancy Check). Essa conta consiste em somar todos os bytes presentes no pacote de dados e enviar o resultado dentro do proprio pacote. A placa de rede do dispositivo receptor iré refazer essa conta ¢ verificar se o resultado calculado corresponde ao valor enviado pelo dispositivo transmissor, Se os valores forem. iguais, significa que 0 pacote chegou integro ao seu destino. Caso contrario, significa que houve algo de errado na transmissao (uma interferéncia no cabo, por exemplo) e 0s dados recebidos sao diferentes dos originalmente enyiados, ou seja, os dados chegaram corrompidos ao destino. Nesse caso, o dispositivo receptor pede ao transmissor uma retransmissio do pacote defeituoso. Essa @ outra vantagem de se trabalhar com pequenos pacotes em vez de transmitir diretamente o arquivo. Imagine ter de esperar receber 0 arquivo todo para s6 entao 38 + G50 Cuneo Cariruro 2 — Prorocotos: Funoamenros verificar se ele chegou em perieito estado! Com 0 uso de pacotes, a verificagao de erros é feita a cada pacote recebido. Na Figura 2.5 nds vemos um exemplo hipotético de um pacote de dados. een de Cot Figura 2.5: Exempla de um pacote de dodos. O Mopzeio OSI Quando as redes de computadores surgiram, as solugdes eram, na maioria das vezes, proprietarias, isto ¢, uma determinada tecnologia s6 era suportada por seu fabricante. Nao havia a possibilidade de se misturar solugdes de fabricantes diferentes. Dessa forma, um mesmo fabricante era responsavel por construir praticamente tudo na rede. Para facilitar a interconexao de sistemas de computadores, a ISO (Intemational Standards Organization) desenvolveu um modelo de referéncia chamado OSI (Open Systems Inter- connection), para que 0s fabricantes pudessem criar protocolos a partir desse modelo. Interessante notar que a maioria dos protocolos existentes ~ como 0 TCP/IP, IPX/SPX € 0 NetBEUI ~ nao segue esse modelo de referéncia ao pé da letra (como veremos, esses protocolos s6 correspondem a partes do padrio OSI). Todavia, o estudo deste modelo 6 extremamente didatico, pois através dele hé como entender como deveria set um “protocolo ideal”, bem como facilita enormemente a comparagao do funcionamento de protocolos criados por diferentes fabricantes. O modelo de protocolos OS! é um modelo de sete camadas, apresentadas na Figura 2.6. Na transmissao de um dado, cada camada pega as informagées passadas pela camada superior, acrescenta informacoes pelas quais ela seja responsavel e passa os dados para a camada imediatamente inferior, como mostra a Figura 2.7. Esse processo € conhecido Cwso Cowen 39 Reots ot Coupurapores Curso Conrusto como encapsulamento, Na camada 4, Transporte, o dado enviado pelo aplicativo € dividido em pacotes. Na camada 2, Link de Dados, 0 pacote € dividido em varios guaudros. Na recepcdo de um dado, 0 processo € o inverso. Figure 2.6: Modo OS de protocols. Um usuério que pede para o seu programa de e-mail baixar seus os e-mails, na verdade esté fazendo com que o seu programa de e-mail inicie uma transmissao de dados com a camada 7 ~ Aplicacao - do protocolo usado, pedindo para baixar os e-mails do servidor de e-mails. Essa camada processa esse pedido, acrescenta informag6es de sua competéncia, € passa os dados para a camada imediatamente inferior, a camada 6 (Apresentagao). Esse proceso continua até a camada 1 ( ica) enviar © quadro de dados para o cabeamento da rede, quando, entdo, atingira 0 dispositivo receptor, que fara 0 processo inverso, até @ sua aplicagdio ~ no nosso exemplo, um programa servidor de e-mail A comunicagao estudada na Figura 2.7 € a comunicagao real, ou seja, como funciona a transmissao de um dado através de uma rede. Na pratica acabamos simplificando falando que uma determinada camada do transmissor comunica-se diretamente com a mesma camada do dispositive receptor. Por exemplo, a camada 4, Transporte, do dispositive transmissor comunica-se diretamente com a camada 4 do dispositivo recep- tor e simplesmente ignoramos as comunicagdes efetuadas pelas camadas inferiores existentes, E assim por diante. Essa comunicacao virtual, ilustrada na Figura 2.8, é possivel porque cada camada, durante a criagao do pacote que seré enviado através da rede, acrescentou o seu proprio cabegalho, como esta ilustrado na Figura 2.7. 40 + Gus Gon 0 Fico (Cabeaments de Rede) ‘comunicardo entre os camadas do modelo OSI. Por exemplo, na pratica simplesmente falamos que um programa cliente de e-mail esta requisitando dacios de um programa servidor de e-mail, € ndo nos preocupamos muito como isto € feito, O mesmo ocorre na comunicagdo virtual do modelo OSI. Quando analisamos a comunicagao de uma camada do transmissor com a mesma camada no receptor, normalmente nio estamos nos preocupando (ou nao precisamos saber) como esta ocorrendo a comunicacao nas camadas inferiores aquela estudada. A maioria dos protocolos comerciais também trabalha com o conceito de camadas, porém madas nao necessariamente possuem 0 mesmo nome e fungao das apresentadas no modelo OSI. Muitas vezes, para cada uma dessas camadas hd um protocolo envolvido. Dessa forma, muitos protocols sao, na verdade, um conjunto de protocols, cada um essas €3 com papel especifico em sua estrutura de camadas. Estudaremos isso melhor no desenrolar deste capitulo e nos proximos capitulos, Curso Cours AT Rents ot Conpuraports Curso Cowrteto 7 aay 7 6 => 6 5 aa 5 i | Se 4 3 ane a a 2 Link de Dados oe Link de Dados 2 a Fisica =) Fisica 1 Figur 2.8: Comunicario vietwl ne modelo OSI, As camadas do modelo OSI podem ser divididas em trés grupos: aplicagao, transporte e rede, como voce confere na Figura 2.9, As camadas de rede se preocupam com a transmissao e recepgaio dos dados através da rede e, portanto, sd camadas de baixo nivel. A camada de transporte ¢ responsavel por pegar 0s dados recebidos pela rede e repassé-los para as camadas deaplicacao de uma forma compreensivel, isto é, ela pega os pacotes de dados e transforma- os em dados quase prontos para serem usados pela aplicagao. As camadas de aplicagao, que sao camadas de alto nivel, colocam o dado recebido em um padrao que seja compreensivel pelo programa (aplicagao) que fara uso desse dado. ? 6 Aplicagao 5 4 — Transporte 3 2 Link de Dados Rede 1 Fisica Figura 2.9; Gropos des camadas do modelo OSI. 42 + Caso Counso ‘Geriruio 2 — Proroco.os: Funpanenros Até entdo estévamos usando os termos pacotes e quadros como sindnimos, mas estes termos se referem a duas coisas distintas. Um quadro é um conjunto de dados enviado através da rede, de forma mais "brata” ou, melhor dizendo, de mais baixo nivel, Dentro de um quadro encontramos informacées de enderecamento fisice, como, por exemplo, © enderego real de uma placa de rede. Logo, um quadro esté associado as camadas mais baixas (1 e 2) do modelo OSI Um pacote de dados se refere a um conjunto de dados manipulados nas camadas 3 e 4 do modelo OSI. No pacote ha informasées de enderesamento virtual. Por exemplo, a camada 4 cria um pacote de dados para ser enviado pela rede e a camada 2 divide esse pacote em vatios quadros que serdo efetivamente enviados através do cabo da rede, Um pacote, portanto, contém a informagao proveniente de varios quadros. Para dar um exemplo real € elucidar de uma vez essa diferenga, em uma rede usando 0 protocolo TCP/IP, a camada IP adiciona informagoes de enderegamento de um pacote {ndimero do enderego IP da maquina de destino), que ¢ um enderecamento virtual. f4 a ‘camada Controle de Acesso a0 Meio (MAC) ~ que corresponde a camada 2 do modelo OSI transformard esse pacote em um ou mais quadros e esses quadros terdo 0 endereso da placa de rede de destino (endereco real, fisico) que corresponda ao nimero IP fornecido. Lendo atentamente este capitulo acreditamos que essa idéia ficara mais clara. Estudaremos agora cada uma das camadas do modelo OSI e suas fungdes. Note que as explicagdes serdo dadas como se estivéssemos transmitindo um dado do computador A para o computador B. O processo de recepsao é o inverso do descrito. Camapa 7 ~ Apucacio A camada de aplicagao faz a interface entre o protocole de comunicagao eo aplicativo que pediu ou receberd a informagio através da rede. Por exemplo, se voce quiser baixar o seu e- mail com seu aplicativo de e-mail, ele entraré em contato com a camada de Aplicacéo do protocolo de rede efetuando este pedido. Camana 6 — Apresentacio A camada de Apresentagio, também chamada camada de Tradugdo, converte o formato Go dado recebido pela camada de Aplicagao em um formato comum a ser usado na Gus Course + 43 Renes 0& Courutapones Curso Cowpteto transmisséo desse dado, ou seja, um formato entendido pelo protocolo usado. Um exemplo comum ¢ a conversao do padrao de caracteres (c6dligo de pagina) quando, por exemplo, o dispositivo transmissor usa um padrdo diferente do ASCII, por exemplo. Pode ter outros usos, como compressdo de dados e criptografia A compressao de dados pega os dados recebidos da camada sete ¢ os comprime (como se fosse um Compactador comumente encontrado em PCs, como 0 Zip ou 0 Ar) ea camada 6 do dispositivo receptor fica responsavel por descompactar esses dados, A transmissao dos dados torna-se mais répida, j4 que haveré menos dados a serem transmitidos: os dados recebidos da camada 7 foram “encolhidos” e enviados a camada 5, Para aumentar a seguranga, pode-se usar algum esquema de criptografia neste nivel, sendo que os dados s6 serdo decodificados na camada 6 do dispositivo receptor. Camapa 5 — Sessio A camada de Sessdo permite que duas aplicag6es em computadores diferentes estabelecam uma sesso de comunicagdo. Nesta sessdo, essas aplicagSes definem como sera feita a transmissio de dados e coloca marcagdes nos dados que esto sendo transmitidos. Se porventura a rede falhar, os computadores reiniciam a transmissao dos dados a partir da iltima marcagao recebida pelo computador receptor. Por exemplo, vocé esté baixando e-mails de um servidor de e-mails e a rede falha. Quando: a rede voltar a estar operacional, a sua tarefa continuaré do ponto em que parou, nao sendo necessario reinicia-la. ‘Camapa 4 — TRANSPORTE A camada de Transporte é responsavel por pegar os dados enviados pela camada de Sessio e dividi-los em pacotes que serao transmitidos pela rede, ou, melhor dizendo, repassados para a camada de Rede. No receptor, a camada de Transporte ¢ responsavel por pegar os pacotes recebidos da camada de Rede e remontar o dado original para envid-lo a camada de Sessao, Isso inclui controle de fluxo (colocar os pacotes recebidos em ordem, caso eles tenham chegado fora de ordem) e correcao de erros, tipicamente enviando para 0 transmissor uma informagao de reconhecimento (acknowledge), informando que o pacote foi recebido com sucesso. 4+ Cus0 Couto Corituvo 2 — Protocotos: Funpanevtos A camada de Transporte separa as camadas de nivel de aplicagao (camadas 5 a 7) das camadas de nivel fisico (camadas de 1 a 3). Como vocé pode facilmente perceber, as camadas de 1 a3 esto preocupadas com a maneira com que 0s dads serio transmitidos e recebidos pela rede, mais especificamente com os quadros transmitidos pela rede. Ja as camadas de § a7 est&o preocupadas com os dados contidos nos pacotes de dados, para serem enviados ou recebidos para a aplicagao responsavel pelos dados. A camada 4, ‘Transporte, faz a ligagao entre esses dois grupos. Camaa 3 — Reve Acamada de Rede ¢ responsivel pelo enderegamento dos pacotes, convertendo enderegos légicos em enderegos fisicos, de forma que os pacotes consigam chegar corretamente ao destino. Essa camada também determina a rota que os pacotes irdo seguir para atingir o destino, baseada em fatores como condigdes de trifego da rede e prioridades ‘Como vocé pode ter percebido, falamos em rota. Essa camada é, portanto, usada quando a rede possul mais de um segmento e, com isso, ha mais de um caminho para um pacote de dados trafegar da origem até o destino. Camapa 2 — Link vé Davos ‘Acamada de Link de Dados (também chamada camada de Enlace) pega os pacotes de dados recebidos da camada de Rede ¢ os transforma em quadros que serao trafegados pela rede, adicionando informagdes como 0 endereco da placa de rede de origem, o enderego da placa de rede de destino, dados de controle, os dados em si e © CRC. A estrutura do pacote de dados criado por essa camada n6s j4 vimos na Figura 2.5. (O quadro criado pela camada Link de Dados é enviado para a camada Fisica, que converte esse quadro em sinais elétricos para serem enviados através do cabo da rede, Quando 0 receptor recebe um quadro, a sua camada Link de Dados confere se 0 dado chegou integro, refazendo 0 CRC. ¢ os dados estao o.k., ele envia uma confirmagao de recebimento (chamada acknowledge ou simplesmente ack), Caso essa confirmagao nao ida, a camada Li seja recel kde Dados do transmissor reenvia o quadro, ja que ele nao chegou até 0 receptor ou entao chegou com os dados corrompidos. N6s j4 haviamos visto esse prinefpio de corregiio de erros no tépico Conceitos Basicos. Gunso Cowen 4% 45 Revés o& Cowputapores Curso ComPuero Camapa 1 — Fisica A camada Fisica pega 0s quadros enviados pela camada de Link de Dados ¢ os transtorma em sinais compativeis com 0 meio onde os dados deverao ser transmiticlos. Se o meio for elétrico, essa camada converte os Os € 1s dos quadros em sinais elétricos a serem transmitidos pelo cabo. Se 0 meio for Sptico (uma fibra 6ptica), essa camada converte os 0s € 1s dos quadros em sinais h inosos e assim por diante, dependendo do meio de transmissao de dados. A camada Fisica especifica, portanto, a maneira com que os 0s e 1s dos quadros serio enviados para a rede (ou recebidos da rede, no caso da recepsao de dados). Ela nao sabe indo. Por exemplo, no caso da ‘0 significado dos 0s e 1s que esté recebendo ou transmit recep essas informages para a camada de Link de Dados, que montat ele foi recebido corretamente. > de um quadro, a camada fisica converte 0s sinais do cabo em 0s € 1s € envia o quadro e verifi Como vocé pode facilmente perceber, 0 papel dessa camada € efetuado pela placa de rede dos dispositives conectados em rede. Note que a camada Fisica ndo inclui o meio onde os dados circulam, isto é, 0 cabo da rede. O maximo com que essa camada se preocupa é com o tipo de conector ¢ 0 tipo de cabo usado para a transmissao e recepgao dos dados, de forma que 0s 0s ¢ 1s sejam convertidos corretamente no tipo de sinal requerido pelo cabo, mas © cabo em si nao ¢ responsabilidade dessa camada Paprio IEEE 802 OIEEE (Institute of Electrical and Electronic Engineers) criou uma série cle padres de protocolos. © mais importante foi a série 802, que € largamente usada e é um conjunto de protocolos Jomo vocé pode ver na Figura 2.10, os protocolos IEE tres camadas, que equivalem as camadas 1 2 do modelo OSI. A camada 2 do modelo OSI no modelo IEEE 802 é dividida em duas: Controle do Link Légico (LLC, Logic Link Control) e Controle de Acesso ao Meio (MAC, Media Access Control). usados no acesso a rede. £802 possuem, Como a maioria das redes usa o padrio IEEE 802 para acessar a rede (isto €, 0 cabeamento), podemos dizer que o modelo de protocolo é 0 mostrado na Figura 2.11. Ascamadas 3 a 7 do modelo OSI serdo preenchidas de acordo com os protocolos usados pela rede, que podera equivaler a uma ou mais dessas camadas. 46% Cis Comic —- Cariruto 2 — Prorocotos: Funoawentos 1EE 802 Controle do Link gic (10) Controle de y tHE me Acesso ao Meio (MAC) Fisica Figura 2.11: Modelo de protacolo usado por dispesitves que usam » protocol IEEE 802. Existem varios padroes IEBE 802, como IEEE (02.2, IEEE 802.3, etc, O padrao IEEE 802.2 especifica 0 funcionamento da camada de Controle do Link Logico (LLC). Os demais padroes IEEE operam na camada de Controle de Acesso a0 Meio (MAC) e na camada fisica, como mostra a Figura 2.12. Padrao 0S! Pardo JEEE 802 ‘ tink de Dados 3| 802.4} 802.5} Fisica Poses IEF. Curso Connero + «AT Renes o€ Computaoones Curso Compusto Comparando mais uma vez o padrio IEEE 802 com © modelo OSI, o padrao IEEE 802.2 equivale a parte da camada 2 (Link de Dados), enquanto que padrées como 0 802. 802.4 e 802.5 equivalem a parte da camada 2 (Link de Dados) ¢ a camada 1 (Fisica). Entre os padroes 802 existentes, destacam-se: + IEEE 802.3 (Ethernet): Usa 0 conceito de detecgao de colisiio, chamade CSMA/CD (Carrier Sense, Multiple Access with Collision Detection), onde todos os computadores. da rede compartilham um mesmo cabo. Os computadores s6 podem enviar dados para a rede quando 0 cabo esta livre. Caso dois computadores tentem enviar um daclo a mesmo tempo na rede, hé uma colisdo € as placas de rede esperam um periodo de tempo aleatério ¢ tentam reenviar pacote para o cabo de rede, Esse método € 0 mais usado na transmissio de dados em redes locais, tanto que as explicages dadas sobre o funcionamento de redes no inicio deste capitulo foram baseadas neste método, Tipicamente as transmissdes de dados desse padrio so de 10 Mbps, embora ja existam as revis6es para suportar taxas de transmissio mais altas: 100 Mbps e 1 Gbps. Estudaremos este padrao em detalhes no capitulo 13. + _ IEFE 802.5 (Token Ring): Usado em redes com topologia em anel, como estudaremos no Capitulo 14. Um pacote especial, chamiado token (ficha) circula no anel passando de micro em micro, Somente o computador que detenha o token pode enviar dados, gravando 0 seu pacote de dados dentro do token. A ficha circula no anel até atingi © destino do dado, quando entao sera descarregada, ficando livre para receber um novo dado. Esse padrio de transmissio de dados nao ¢ to comum como o Ethernet. Existem outros padroes, como o IEEE 802.4 (token passing), mas, por nao serem tao comuns, deixaremos de comenté-los propositadamente. Como dissemos, esses padrdes IEEE, além de desermpenharem parte do papel da camada 2 do padrao OSI (através da camada de Controle de Acesso ao Meio), desempenham também © papel da camada 1, a camada fisica. Como isso, esses padres definem outros detalhes como, por exemplo, o tipo de conector que serd usado pela placa de rede. Por motivos didaticos, n6s preferimos abordar neste capitulo somente o funcionamento do protocolo em si, Detalhes sobre conectores, topologias e cabos serao abordados em momentos mais 802. ‘oportunos, quando eventualmente voltaremos a mencionar os padres 1 Como dissemas, 0 padrao Ethernet (IEEE 802.3) 60 protocolo mais comum para a transmissi0 de dados na rede. Em geral, quando usamos 0 termo protocolo de rede normalmente estamos nos referindo a protocolos que trabalham nas camadas 3 e 4 do modelo OSI, como 0 'TCP/ 48 + Cus Gouneio Geriuio 2 — Prorocovos: Funoanteytos IP, 0 IPS/SPX e 0 NetBEUL O Ethernet e o Token Ring séo protocolos que trabalham nas camadas 1 € 2 e, portanto, podem coexistir com outros protocolos comerciais. Em outras palavras, 0 modelo OSI apresenta um modelo de sete camadas que, em principio, poderia usar até sete protocolos (um para cada camacda) para fazer uma rede funcionar. Na pratica, para que computadores consigam trabalhar em rede, uma série de protocolos sao usados, em geral cada um equivalendo a uma ou mais camadas do modelo OSI. Os protocolos IEEE 802 trabalham nas camadas 1 ¢ 2 € podem ser usados em conjunto com outros protocolos comerciais, como o TCP/IP, o IPX/SPX ¢ o NetBEUL, entre outros. Uma representagao mais fiel a0 mundo real do que ocorre na maioria das redes pode ser vista na Figura 2.13, As reticéncias indicam camadas superiores, isto é, os protocolos de redes usados na méquina. t t Driver da Placa de Rado te Fisica - IEEE 802.3 tt Figura 2.13: RoprasontgGo do que ocorre no mundo rea. Camapa Fisica A camada fisica pega os quadros enviados pela camada de Controle de Acesso a0 Meio ¢ 0 envia para o meio fisico (cabeamento). A camada fisica do padrao IEEE 802 define também o tipo de topologia usado pela rede e 0 tipo de conector usado pela placa de Curso Conner + «49 Reoes € Comruranores Curso Compuero rede ¢, conseqitentemente, 0 tipo de cabo que sera usado. Como dissemos, por motivos didaticos explicaremos aprofundadamente sobre esse assunto em futuros capitulos. Como dissemos, a camada fisica do padrao IEEE 802 esta presa ao padrao usado: 802.3, 802.5, ete. O mais importante a saber sobre a camada fisica do padrdo IEBE 802 é que ela pega os Os e Is enviados pela camada de Controle de Acesso a0 Meio e nao os envia diretamente para © cabo, sendo esses dados antes codificados. Para que vocé entenda melhor como essa codificagao funciona, vamos estudar o funcionamento de um algoritmo chamado Manchester, que é usado por redes Ethernet (IEEE 802.3) operando a 10 Mbps. A codificagao Manchester transforma um bit 0 em uma descida de 1 para 0 e um bit 1 em uma subida de 0 para 1, como mostra a Figura 2.14, Figura 2.14: Como feta a cdificacéo Manchester. O.uso desse sistema de codificacao é muito interessante, pois obriga o dado transmitido a ter uma inversdo de fase (isto 6, passar de O para 1 ou de 1 para 0) sempre, Por exemplo, se 0 dado a ser transmitido for 00000000, com essa codificagao o dado passara a ter 8 inversbes de fase, enquanto que originalmente ndo haveria nenhuma, Ou seja, independentemente do dado que esta sendo transmitido, sempre haverd uma inversdo de fase por bit transmitido, Com isso, é criado um sistema de sincronismo entre o transmissor ¢ o receptor, isto é, um. sistema de clock, embora teoricamente este sinal nao exista durante a transmissao, No dispositive receptor esse sinal de clock pode ser criado através de um circuito chamado Digital Phase Locked Loop (DPLL), que se encarrega de contar essas varlagdes de fase & 50 + Guso Counc Crituto 2 — Prorocotos: Funoamenros gerar um sinal clock a partir dessas variagdes. Como a codificagao Manchester obriga a ter uma variagdo de fase por bit enviado, 0 receptor, em conjunto com esse circuito gerador de clock, pode facilmente receber os bits que estao sendo enviados, isto é, pode facilmente saber a hora de inicio ¢ a hora de término de cada bit enviado, jé que havera um sinal de sincronismo. Normalmente em transmissdes em série, é necessario o uso de informagdes adicionais de start bite stop bit (que indicam, respectivamente, 0 inicio eo fim do byte transmitido) — que tornam- se desnecessarias com esse esquema, tomando a transmissao mais répida e mais eficiente. Na Figura 2.15 vemos 0 exemplo da codificagao do dado 01001011 usando esta técnica. Como voce pode contar, ha oito inversdes de fase, uma para cada bit Dada sem codificagao \ Dado coifcado (Manchester) Figur 2.15: Exemplo de codificaco Manchest Controte bE Actsso ao Meio (MAC) O controle de acesso ao meio define, entre outras coisas, 0 uso de um enderego MAC em cada placa de rede. Quando falamos anteriormente que cada placa de rede possui um enderego tinico gravado em hardware, na verdade estavamos nos referindo ao seu enderego MAG, jé que 0 padrao IEEE 802 ¢ o mais usado em redes. Cada placa de rede existente em um dispositivo conectado a rede possui um enderego MAC tinico, que é gravado em hardware e teoricamente nao ha como ser alterado (isto Curso Como + 51 Renes o¢ Courutapores Curso Compuero @,a placa de rede vem de fabrica com esse endereco gravado). Esse endereco utiliza seis bytes, como, por exemplo, 02608C428197 ‘0 endners MAC so rpresenads por nimeros em hexadecimal. nda claro em hexodecimoleqivle a wm nimera i de quar bts. Dess frmo, um bye & repesentado por dos algarsmas em hexadecimal e, com isso, 0 endereco MAC é ‘NOTA ‘sempre representado como um conjunto de 12 algarismos em hexadecimal. OTEEE padronizou os endetecos MAC na forma mostrada na Figura 2.16. Os trés primeiros bytes sdo o enderego OUT (Organizationally Unique Identifier), que indicam o fabricante da placa de rede, Os trés altimos bytes sao controlados pela fabricante da placa de rede, e cada placa de rede produzida por cada fabricante recebe um néimero diferente. Assim, © fabricante que quiser produzir uma placa de rede deverd se cadastrar no IEEE para ganhar 0 seu ntimero OUI. Cada fabricante 6 responsavel por controlar a numeragdo MAC das placas de rede que produz. Um mesmo fabricante pode ter mais de um enderego OUI, evitando, assim, o problema de ter produzido mais placas do que 0 ntimero de enderecos que possui disponivel para numerar as suas placas. Cédigo OU! Aefinido pelo IEEE (indica quem & o fabricante) Definido pelo febricente i SS Sc Figura 2.16: Estrutura do endereco MAC. No quadro enviado a rede, a camada de Controle de Acesso ao Meio ird incluir o enderego MAC de origem e de destino. A placa de rede contendo 0 endereco de destino ira capturar © quadro, enquanto as demais placas de rede nao entrardo em agdo naquele momento. Outra fungao da camada de Controle de Acesso ao Meio é justamente controlar 0 uso do. cabo. Ela verifica se 0 cabo esta ou nao ocupado. Se 0 cabo estiver ocupado, 0 quadro nao é enviado. Caso o quadro seja enviado ao mesmo tempo em que outra maquina, hé uma colisiio, que ¢ detectada pelas camadas de Controle de Acesso ao Meio das maquinas envolvidas com a colisto. Essa camada espera 0 cabo ficar livre para tentar uma retransmissio, esperando um periodo aleatério de tempo, para que nao ocorra uma 52 + (uso Couns Criruto 2— Prorocovos: FunoaMenros nova colisao (se os dois micros esperassem uma mesma quantidade de tempo, obviamente iria haver uma nova colisdo e © proceso iria ficar se repetindo indefinidamente) A camada de Controle de Acesso ao Meio usa um driver para acessar a camada fisica. Esse driver ¢ justamente o driver da placa de rede, que ensina a esta camada como lidar com o modelo da placa de rede atualmente instalada no micro (ver Figura 2.13). Esreurura o€ un auaoro MAC Como 0 padrao IEEE 802.3 (Ethernet) € 0 mais usado por redes locais, estudaremos a estrutura de seu quadro. Esse quadro € passado para a camada Fisica (através do driver da placa de rede), para ser enviado para o cabeamento da rede, Os dados presentes no quadro. so fornecidoys pela camada Controle do Link Logico (LLC), que estudaremos a seguir. Dados « Pad Fos. 46 0 1500 bytes)] (4 bytes) Figura 2.17: Formato de um quadro MAC Ethernet (IEEE 802.3) Neste quadro ha as seguintes informagdes: 4 Preambulo: Marca o inicio do quadro. Sao sete bytes 10101010. Junto com o SED forma um padrao de sincronismo, isto 6, a0 encontrar sete bytes 10101010 e um byte 10101011 (ver SED), 0 dispositivo receptor sabe estar diante do inicio de um quadro. Na realidade esse padrao 10101010 ira gerar, por causa da codificagao Manchester, um sinal de clock de 10 MHz. (no caso do uso da velocidade Ethernet padrao de 10 Mbps), utilizado no sincronismo entre o transmissor e 0 receptor. 4 SED (Start of Frame Delimiter): £ um byte 10101011. # Enderego MAC de destino: Neste campo é incluido o enderego MAC da placa de rede de destino, que possui seis bytes. + Enderego MAC de origem: Neste campo ¢ informado o endere rede que esta gerando 0 quadro, £ um nitmero de seis bytes. > MAC da placa de ¢ — Comprimento: Indica quantos bytes estdo sendo transferidos no campo de dados do quadro, Como veremos, 0 campo de dados um quadro MAC tem tamanho variavel e nao fixo. Caso Conus + 53 Repes oe Compuravonss Curso Conrter0 Esse *# Dados: S20 0s dados enviados pela camada de Controle de Link Logico (LLC). campo possui um comprimento minimo de 46 bytes e maximo de 1.500 bytes. ¢ Pad: Sea camada LLC enviar menos do que 46 bytes de dados para a camada MAC, entao so inseridos dados chamados pad para que 0 campo de dados atinja o seu tamanho minimo de 46 bytes Contém informacdes para o controle de correeao de ¢ FCS (Frame Check Sequence erros (CRC) que, como dissemos, é 0 resultado de uma soma efetuada com os dados presente no campo de dados do quadro. Usa 4 bytes. Como 0 campo de dados do quadro usado em redes Ethernet é variével (pode ter entre 46 e 1.500 bytes), 0 tamanho do quadro Ethernet ¢ variavel. O tamanho minimo de um quadro Ethernet é de 72 bytes eo tamanho maximo, 1.526 bytes. Se dois quadros forem enviados em seqiiéncia e nao houver colisoes, haverd um “espaco em branco” entre esses dois quadros, chamado gap, que dura 9,6 us. A Figura 2.18 ilustra este espago. Figura 2.18: Espo existente entre qoadros Ethernet. Supondo uma rede padrao de 10 Mbps, esse tempo entre um quadro e outro (gap) corresponde a 12 bytes. A conta é simples: 9,6 us x 10.000.000 bps + Is +8 (trata-se de uma regra de tr@s: se 10,000,000 bits circulam em um segundo, quantos bits citculam (0 por oito ¢ feita para obtermos o resultado em bytes eno em bits, em 9,6 us?) A divi Com isso, para efeitos de calculos praticos, devemos levar esse espago em consideragaio. Com isso, na pratica, o tamanho minimo de um quadro Ethernet ¢ de 84 bytes e o 0, 1.538 bytes. tamanho ma Dessa mesma maneira é facil calcularmos que 0 nimero de quadros por segundo em uma rede Ethernet varia entre 14.880 quadros por segundo (quando 0 quadro transfere 54% Gs Cuneo Cpituto 2 — Protocotos: Funoawentos 46 bytes de dados) ¢ 812,74 quadros por segundo (quando o quadro transfere 1.500 bytes de dados), levando-se em conta uma rede Ethernet padrao de 10 Mbps. Conrtrote po Link Locico (LLC) Acamada de Controle do Link Logico, que é regida pelo padrao IEEE 802.2, permite que mais de um protocolo seja usado acima dela (protocolos de camada 3, Rede, no modelo OS. Para isso, essa camada define pontos de comunicagdo entre © transmissor € © re- ceptor chamados SAP (Service Access Point, Ponto de Acesso a Servigos). Na Figura 2.19 exemplificamos trés conexdes entre os computadores A € B. Fssas trés Conexdes poderiam estar sendo efetuadas por trés diferentes protocolos na camada superior da pilha de protocolos que esteja sendo usada nos computadores. SAP 1 SAP2 SAP3 SAP1 SAP2 SAP. t t ft MMP Fisica ab Figur 2.19; Funconomento da comods Controle do Link Logic (UC Dessa forma, o papel da camada de Controle do Link Logico ¢ adicionar, ao dado recebido, informagoes de quem enviou esta informagao (0 protocolo responsavel por ter passado essa informagao) para que, no receptor, a camada de Controle do Link L6gico consiga entregar a informagao ao protocolo de destino, que conseguira ler 4 informagio corretamente. Cuxso Couners 55 Renes ve Compuranores Curso Conpteto Se essa camada nao existisse e os computadores estivessem usando mais de um protocolo de alto nivel, 0 receptor nao entenderia 0 dado recebido, pois nao saberia para qual protocolo (camada 3 no modelo OSI) ele deveria entregar aquele dado. Dessa forma, a camada Controle do Link Légico serve para enderegar o quadro de dados a um determinado protocolo da camada 3 do modelo OSI no computador de destino, permitindo que exista mais de um protocolo desta camada nos computadores da rede. Esrrutura oé um auaoRo LLC Como vimos, esta camada passa para a camada inferior, Controle de Acesso ao Meio, | um dado que pode ter entre 46 ¢ 1.500 bytes. Desses bytes de dados, oito sao usados para armazenar informagdes de controle inseridas por esta camada, sendo que os dados sio | passados da camada superior (camada de Rede, no modelo OSI). Esses dados adicionados | so justamente o enderecamento SAP de origem ¢ de destino, que, como vimos, significé | 0 protocolo usado na conexao. Originalmente, o quadro LLC adicionava apenas trés bytes de controle aos dados recebidos da camada superior (SAP de origem, SAP de destino e controle). ‘Teoricamente, cada Protocolo que operasse na camada 3 do modelo OSI (Rede) teria de tet o seu proprio } niimero SAP, para que tanto o transmissor quanto o receptor soubessem qual é 0 protocolo envolvido na comunicagao. Acontece que o IEEE, em vez de simplesmente ir dando um ntimero SAP & medida que ‘0s desenvolvedores de protocolos fossem pedindo, queria fazer algo mais padronizado (assim como ocorre com os enderegos MAC usados por placas de rede), onde um determinado grupo de bits significa o fabricante/desenvolvedor do protocolo € outro grupo de bits significa qual € 0 protocolo em si. Dessa forma, o IEEE s6 precisaria cadastrar 0 fabricantes (dando a eles um ntimero) € 0s fabricantes em si ficariam responsaveis por definir os bits referentes aos seus protocolos, como mostra a Figura 2.20. Definido pelo IEEE DDefinido pelo fabricantey indica quem 6 o fabricante/desenvolvedor) sesenvolvedor a1 aq" Figura 2.20: Como deveria sr strutura do enderego SAP. 56 + Cuso Cour (Cariruvo 2 — Peorocotos: Funoswentos © enderego SAP é um néimero de um byte, sendo que dentro desses oito bits disponive dois sao reservados e ndo podem ser usados no enderegamento. Com isso sobram apenas seis bits, 0 que é muito pouco para enderecar todos os protocolos que e jem ou que possam a vir existir, ou, melhor dizendo, é muito pouco para usar a estrutura proposta no pardgrafo anterior (Figura 2.20), que necessita de cinco bytes (40 bits) ‘Com isso, para que 0 enderecamento SAP possa funcionar corretamente para indicar 0 protocolo que enviou o dado a ser transmitido, foi criado um novo campo, chamado SNAP (Sub Network Access Protocol, Protocolo de Acesso a sub-rede), que utiliza a estrutura apresentada na Figura 2.20. Quando esse campo é usado, os campos contendo ‘0s enderecgos SAP de origem € destino sao colocados em 10101010, que indica o u: campo SNAP para fazer o enderegamento dos protocolos usados. do Na Figura 2.21 vemos a estrutura do quadro de controle LLC. LAC (3 bytes) SNAP (5 bytes) Tipo Dedos (Bytes) | (Oe 38 a 1.492 bytes) do quadro de controle LLC. Neste quadro de controle vocé encontraré os seguintes campos ¢ — DSAP (Destination Service Access Point): Indica 6 enderego SAP de destino (um byte). Se o campo SNAP for usado, 0 DSAP ¢ fixado em 10101010. # SSAP (Source Service Access Point): Indica 0 enderego SAP de origem (um byte). Se ‘0 campo SNAP for usado, o SSAP € fixado em 10101010, * Controle: Também chamado CTL, pode assumir basicamente trés valores. UI (Un- numbered Information), usado quando se esta transmitindo dados; XID (eXchange IDentification), usado para trocar dados de identificacdo entre o transmissor e 0 receptor e pode ser um comando, que informa a identidade do emissor e pede para receptor enviar a sua identidade, ou uma resposta, que retorna a identidade do re- ceptor quando um comando é solicitado; e Teste, onde o transmissor envia um dado © 0 receptor © recebe ¢ 0 envia de volta, a fim de testar a comunicagao. ¢ Codigo: £ 0 eddigo do fabricante/desenvolvedor do protocolo no IEEE (ver Figura 2.20). Corso Como + 5ST Rents ve Couputanores Curso ComPueTo + Tipo: Lo cédigo dado pelo fabricante/desenvolvedor ao protocolo (ver Figura 2.20) NDIS ¢ ODI Criado pela Microsoft e pela 3 Com, o NDIS (Network Driver Interface Specification) é um driver instalado no sistema operacional que permite que uma tinica placa de rede possa utilizar mais de um protocolo de rede ao mesmo tempo. A Figura 2.22 ilustra o exemple pritico de um micro com driver NDIS instalado, usando dois protocolos ao mesmo tempo. O ariver NDIS possui duas partes, como voce pode ver na Figura 2.22. A primeira é chamada driver MAC NDIS, que é 0 driver da placa de rede (que deve ser escrito usando © padrao NDIS) e que utiliza padrao IEEE 802.3, se a rede for Bthernet (0 que ocorre na maioria las vezes). A segunda parte é chamada vector, Essa camada € que faz a “magica” de permitir que uma mesma placa de rede possa usar mais de um protocolo, ja que o driver da placa de rede (driver MAC NDIS) s6 permite uma Gnica conexiio. Quando um quadro é recebido pelo driver da placa de rede, ele 0 passa para a camada vector, que o envia para o primeiro protocolo, que poderd aceitar ou rejeitar o pacote. Caso 0 primeizo protocolo rejeite o quadro, a camada vector entrega o quadro ao segundo protocolo. Esse processo continua até que um dos protocolos instalados aceite o quadro ou entao todos o tenham rejeitado. Figura 2.22: Funcionomento do NDIS. 58 + Cix0Counew Goituro 2 — Protocotos: Funoamentos Outra finalidade da especificagdo NDIS é possibilitar a e rede em um mesmo micro. Muitas vezes esse procedimento € neces réncia de mais de uma placa de para ligar um. mesmo computador a dois segmentos de rede diferentes, No caso de termos mais de uma placa de rede instalada no micro, o NDIS funciona da maneira mostrada na Figura 2.23 t+ t 4 ST t+ Driver MAC NDIS. (Driver de Pca de Rede 1) at Placa de Rede 1 t4 Caho da Rede Cabo da Rede Figura 2.23: Funconamenta do NDIS em wm micro com duasplacs de rede. Em principio, sem o NDIS, se vocé tivesse duas placas de rede em um micro, voc? teria de ter duas pilhas de protocolos completas, uma para cada placa de rede (isto é, se fOssemos seguir 0 modelo OSI, teriamos protocolos completos com sete camadas para cada placa de rede instalada). Com © NDIS, voce pode compartilhar uma tinica pilha de protocolos (isto &, tudo aquilo que estiver da camada 3 do modelo OSI para cima) com todas as placas de rede instaladas, ja que o que houver acima da camada vector podera ser compartilhado por todas as placas instaladas. Isso significa que vocé nao precisa instalar cada um dos protocolos que voce deseja usar em sua rede (protocolo 1 ¢ protocolo 2, no nosso exemplo) para cada placa de rede, 0 que daria um total de quatro protocolos instalados, d em cada placa, como mostra a Figura 2.24. Como a camada vector pode comunicar-se com mais de uma placa de rede, ela permite o compartilhamento de tudo o que estiver acima dela por todas as placas de rede instaladas (ver Figura 2.23). Corso Cure & 59 Reoes ve Compurapones CuRso Compusto Protocolo 1] [Protocolo te tt ¢ t+ Driver MAC NDIS (Drive da Place de ese 1) t+ Placa de Rede 1 t 4 Cabo da Rede. + > € => oe > « ‘ Figura 2.24: A camoda vector nd fundons assim (vor text). Como voce pode facilmente notar, a camada vector do padrao NDIS possui exatamente amesma finalidade da camada Controle do Link Légico (LLC) do padrdo IEEE 802 (IEEE 802.2), porém nao usando este padrao. © ODI (Open Datalink Interface) ¢ um driver com o mesmo objetivo que o NDIS, criado pela Novell e pela Apple para os seus sistemas operacionais, 6 que com um funcionamento um pouco mais complexo (¢ mais completo). A grande diferenga entre 0 ODI eo NDIS € 0 uso da camada Controle do Link Légico (LLC) do padrao IEEE (IEEE 802.2), que nao é usada no NDIS (no NDIS haa camada vector, que possui funcionamento similar, porém funciona de maneira diferente). No modelo ODI, essa camada ¢ chamada Camada de Suporte ao Link (Link Support Layer), como voct pode ver na Figura 2 Neste modelo sio adicionadas duas interfaces, uma chamada Interface para Maltiplos Protocolos (MPI, Multiple Protocol Interface), que faz a interface entre a Camada de Suporte ao Link e os protocolos instalados, e outra chamada Interface para Maltiplos Links (MLI, Multiple Link Interface), que faz a interface entre a Camada de Suporte ao Link ¢ os drivers das placas de rede instaladas. Os drivers da placa de rede compativeis com © padrao ODI sao chamados MLID ou Multiple Link Interface Driver. Como utiliza a arquitetura IEEE 802.2, isto 6 a camada Controle do Link Logico, a esséncia do funcionamento do ODI jé foi explicado no t6pico Controfe do Link Légico (LLC). 60 + Gis0 Cure Garinuto 2 — Prorocotos: Funoanentos Protocolo 1 Protocolo 2 t+ at +4 (Liver mac mun ee Placa de Rede t+ Cabo da Rede Figure 2.25: Funcionamento do ODI, A principal diferenga entre 0 NDIS ¢ 0 ODI é que, como a camada Controle do Link Logico (ou Camada de Suporte ao Link, como é chamada no padrao ODI) possi um campo de enderecamento de protocolos, tanto o transmissor quanto o receptor sabem qual € 0 protocolo que esta sendo usado no dado que foi encapsulado dentro do quadro. Com isso, ao receber um quadro, a interface de miltiplos protocols (MPI) entrega diretamente os dados para o protocolo responsavel. No NDIS, quando um quadro chega, a camada vector tenta “empurrar” o quadro para cada um dos protocolos instalados, até um deles aceitar (ou todos rejeitarem), j4 que nao hé o campo do enderegamento. A existéncia da Interface para Maltiplos Links (MLN) permite a instalagao de mais de uma placa de rede na maquina, tendo as vantagens que ja explicamos quando falamos do NDIS, isto €, as duas placas de rede podem compartilhar os protocolos existentes acima desta camada. Curso Counen > 61 Capitulo 3 TCP/IP Reoss v& Comutapores Curso Compueto FUNDAMENTOS O protocolo TCP/IP atualmente é 0 protocolo mais usado em redes locais. Isso se deve basicamente a popularizagao da Internet, a rede mundial de computadores, j4 que esse protocolo foi criado para ser usado na Internet. Mesmo os sistemas operacionais de redes, que no passado s6 utilizavam o seu protocolo proprietitio (como o Windows NT com 0 seu NetBEUI e o Netware com o seu IPX/SPX), hoje suportam o protocolo TCP/IP. Uma das grandes vantagens do TCP/IP em relagao a outros protacolos existentes é que ele é roteavel, isto €, foi criado pensando em redes grandes ¢ de longa distancia, onde pode haver varios caminhos para o dado atingir 0 computador receptor. Outro fato que tornou o TCP/IP popular é que ele possul arquitetura aberta e qualquer fabricante pode adotar a sua propria versao do TCP/IP em seu sistema operacional, anecessidade de pagamento de direitos autorais a ninguém, Com isso, todos os fabricantes, de sistemas operacionais acabaram adotando o TCP/IP, transformando- em um protocolo universal, possibilitando que todos os sistemas possam comunicar-se entre si sem dificuldade. E por esse motive 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 quatro camadas. Nesta mesma figura fazemos a correlago das camadas do ‘TCP/IP com as camadas do modelo OSI. Modelo OSI TePAP Figura 3.1: Arguiteta do TORR, 64 + Gus0 Cuneo Geiruwo 3 - TCP/IP ‘O TCP/IP 6, na realidade, um conjunto de protocolos. Os mais conhecidos dao justamente o nome desse conjunto: TCP (Transmission Control Protocol, Protocolo de Controle da ‘Transmissao) e IP (Internet Protocol), que operam nas camadas Transporte e Internet, respectivamente. Mas eles nao sao os tinicos. Vamos falar rapidamente dos protocolos mais usuais durante a nossa explicagao sobre o funcionamento das camadas do protocolo ‘TCP/IP e, posteriormente, uma explicacao mais detalhada. ‘Todos os protocolos do TCP/IP sd documentados nos RFCs (Request for Comments), que sao documentos descritivos do protocolo TCP/IP e que estdo disponiveis na Internet. Camapa DE Apticacio Esta camada equivale as camadas 5, 6 € 7 do modelo OSI e faz a comunicagao entre os aplicativos eo protocolo de transporte, Existem varios protacolos que operam na camada de aplicagao. Os mais conhecidos sto o HTTP (HyperText Transfer Protocol), SMTP (simple Mail Transfer Protocol), 0 FIP (File Transfer Protocol), o SNMP (Simple Network Man- agement Protocol), 0 DNS (Domain Name System) e o Telnet. a Internet, ja deve ter ouvido falar nesses termos, vocé ¢ entrosado com Dessa forma, quando um programa cliente de e-mail quer baixar os e-mails que esta armavenados no servidor de e-mail, ele ird efetuar esse pedido para a camada de aplicagao do TCP/IP, sendo atendido pelo protocolo SMTP. Quando vocé entra um enderego www em. seu browser para visualizar uma pagina na Internet, o seu browser ira comunicar-se com a camada de aplicagdo do TCP/IP, sendo atendido pelo protocolo HTTP. E assim por diante, ‘A.camada de aplicagéo comunica-se com a camada de transporte através de uma porta. As portas sto numeradas ¢ as aplicagées padrao usam sempre uma mesma porta. Por exemplo, 0 protocolo SMTP utiliza sempre a porta 25, 0 protocolo HTTP u a sempre a porta 80 ¢ o FTP as portas 20 (para a transmissdo de dados) ¢ 21 (para transmissio de informagoes de controle). ‘Ouso de um ntimero de porta permite ao protocolo de transporte (tipicamente 0 TCP) saber qual € 0 tipo de contetido do pacote de dados (por exemplo, saber que 0 dado que ele estd transportando é um e-mail) e, no receptor, saber para qual protocolo de aplicacao ele deverd entregar o pacote de dados, j4 que, como estamos vendo, existem intimeros. Assim, ao receber um pacote destinado a porta 25, 0 protocol TCP iré entregé-lo ao protocol que estiver conectado a esta porta, tipicamente 0 SMTP, que por sua vez entregaré 0 dado a aplicagao que o sol ou (0 programa de e-mail). (uso Coinso + 65 Repes ot Conrutaoores Curso Conricto Kors Programa de Ema Browser WW Programe de FIP tt tt £ pve gu os pos pd sa um oo mere de pois deixar es expt aro umn as, ‘SMIP HTTP Camada de aplicagao oe eee eee cP Camada de transporte Figura 3.2; Fundonomento da camada de apc Camapa DE TRANsPORTE Acamada 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 multiplexacao, onde € possivel transmitir “simultancamente” dados das mais diferentes ap! ‘aces, Na verdade, to de intercalamento de pacotes; varios programas poderao estar comunicando-se com a rede ao mesmo tempo, mas os pacotes gerados serao enviados & rede de forma intercalada, nao sendo preciso terminar um tipo de aplicagao de rede para entdo comecar outta. Isso ¢ possivel gragas a0 uso do conceito de portas, explicado no t6pico pasado, j4 que dentro do pacote hd a informagao da porta de origem e de destino do dado. Ou seja, em uma mesma seqiiéncia de pacotes recebidos pelo micro receptor, as informagdes podem nao ser da mesma aplicagdo. Ao receber trés pacotes, por exemplo, © primeiro pode ser de e-mail, o segundo de www ¢ 0 terceiro, de FIP. ocorre © conc Nesta camada operam dois protocolos: o ja falado TCP (Transmission Control Protocol) © 0 UDP (User Datagram Protocol). Ao contrario do TCP, este segundo protocolo nao verifica se 0 dado chegou ou nao ao destino, Por esse motive, o protocolo mais usado na transmissao de dados é o TCP, enquanto que o UDP é ti de informagoes de controle. icamente usado na transm 66 + C150 Cuneo Gerituto 3 - TCP/IP Na recepgao de dados, a camada de transporte pega os pacotes passados pela camada Internet ¢ trata de colocé-los em ordem e verificar se todos chegaram corretamente, Como chegamosa comentar no capitulo pasado, 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 ordem. Além disso, como estudaremos mais adiante, 0 protocolo IP, que é 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 retransmissdo do pacote que nao chegou. Camapa DE INTERNET A camada de Internet do modelo TCP/IP € equivalente a camada 3 (Rede) do modelo OSI. Assim, todas as explicacdes dadas sobre essa camada no capitulo passado sdo 100% vilidas para a Camada de Internet do TCP/IP. Ha varios protocolos que podem operar nessa camada: IP (Internet Protocol), ICMP (Internet Control Message Protocol), ARP (Address Resolution Protocol) ¢ RARP (Re- verse Address Resolution Protocol) Na transmissdo de um dado de programa, o pacote de dados recebido da camada TCP é dividido em pacotes chamados datagramas. Os datagramas sto enviados para a camada de interface com a rede, onde so transmitidos pelo cabeamento da rede através de quadros, Esta camada nao verifica se os datagramas chegaram ao destino, isto € feito pelo TCP. Ista camada é responsivel pelo roteamento de pacotes, isto é, adiciona ao datagrama informag6es sobre o caminho que ele deverd percorrer, Para entendermos mais a fundo © funcionamento desta camada € dos protocolos envolvidos, devemos estudar primeiramente o esquema cle enderegamento usado pelas redes baseadas no protocolo TCP/IP (enderegamento IP). Goes0 Conta + 67 Reoes oe Compuranones Cuaso Cowrtero CAMADA DE INTERFACE com A ReDE Esta camada, que ¢ equivalente as camadas 1 € 2 do modelo OSI, é responsavel por enviar 0 datagrama recebido pela da rede. Nés estudamos o funcionamento desta camada no capitulo passado. A Figura amada de Internet em forma de um quadro através, 3 mostra 0 esquema completo de um computador operando com o protocolo TCP/IP. Aplicagies tt Camads de Aplicagéa (SMP HTTR. FIP Telnet tt Camada de Transporte (TCP ov UDP) tv Camada de Internet CM, ARP RAPD tt Controle do Link Légico (LLC) (IEEE 602.2) Controle do Avesso a0 Meio (MAC) (IEEE 802.9) Driver da Placa de Rede Placa de Rede t+ | Ce > Camada de interface com a rede Figura 3.3: Funconamento do TCP/IP. © esquema apresentado na Figura 3.3 poderé 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 + Ces Guns Gerituto 3— TCP/IP ENDERECAMENTO IP Como dissemos anteriormente, 0 protocolo TCP/IP é rotedvel, isto é, ele foi criado palsies ria Insiigagad de diverda redes~ondes podeniey fox diveiios camlanas interligando o transmissor ¢ o receptor -, culminando na rede mundial que hoje conhecemos por Internet. Por isso, ele utiliza um esquema de enderegamento légico chamado enderegamento IP. Em uma rede TCP/IP cada dispositivo conectado em rede necessita usar pelo menos um endereco IP. Esse enderego permite identificar 0 dispositivo ea rede na qual ele pertence. Vamos pegar o exemplo da Figura 3.4, onde temos trés redes interligadas, As redes sa0 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 ao roteador 1, que fica responsavel 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 entdo repassard esse pacote diretamente ao roteador 2, que entdo se encarregara de entregar esse pacote ao computador de destino na rede 3. Roteador 4 Rede 2 Roteador 2 Figura 3.4: Interligacéo entre redes. Esse esquema de entrega de pacotes é feito facilmente pelo roteador porque os pacotes de dados possuem 0 endereco IP do computador de destino. Nesse enderego IP ha a informagao de qual a rede onde o pacote deve ser entregue. Por esse motive, quando © 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 haa informacao de que 0 pacote deve ser entregue a rede 3. Entdo o roteador 1 envia o pacote diretamente a0 roteador 2, sem perder tempo tentando entregé-lo a todos os computadores existentes, na rede 2 para entao verificar que © pacote nao era para aquela rede (isto ¢, ficar esperando que todos os computadores recusem pacote para entio tentar entregé-lo para a proxima rede existente). Curso Cours + 69 eves ve Compuaoones Curso Compuero £ assim que as redes baseadas no protocolo TCP/IP funcionam. Elas tem um ponto de saida da rede, também chamado gateway, que é para onde vao todos os pacotes de dados recebidas e que ndo so para aquela rede, As redes subseqilentes vao, por sua ve7, envianda © pacote aos seus gateways até que o pacote atinja a rede de destino. Como dissemos, isso é possivel porque o enderego 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, Figura 3.5: Campos de um endereso IP © enderego IP € um niimero de 32 bits, representado em decimal em forma de quatro nu eros de ito bits separados por um ponto, no formato ab.c.d. Assim, 0 menor ‘0 IP possivel € 0.0.0.0 e 0 maior, 255.255.255.255. ender INOTA Com it bis podemesregresenarlé 256 nimeos (2, de 0 0255 Com i 0, teoricamente uma rede TCP/IP pode ter até 4.294.967.296 enderegos IP (256), ou seja, esse ntimero de dispositivos conectados a ela (dissemos teoricamente porque, como veremos, alguns enderecos sao reservados e no podem ser usados) E elaro que em poucos anos essa quantidade de dispositivos conectados a Internet — que icio parecia ser algo impossivel de se alcancar — terd sido atingida, noi mesmo porque ha alguns enderecos que nao podem ser usados, diminuindo 0 ntimero maximo de enderegos IP disponivel. Por isso, jé foi padronizado 0 enderegamento IP usando 128 bits em ver de 32 bits, Esse enderegamento, que ainda nao esta comercialmente em uso, ¢ chamado IPv6, IP Next Generation (IPng) ou Simple Internet Protocol Plus (SIP), 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 nimero da para termos 1.564 enderecos IP por metro quadrado da superfi do planeta ‘Terra, Nada mal. Cada dispositive de uma rede TCP/IP precisa ter um enderego IP nico, para que o pacote de dados consiga ser entregue coretamente. Por isso, vocé nao pode simplesmente 70 + Cso Conn Gariruwo 3 TCP/IP usar em sua rede qualquer enderego IP 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 vocé pensou em usar, Imagine entao a situacao de uma rede conectada a Internet: nenhum dos enderegos IP de sua rede poderao ser enderecos que estejam sendo usados por outras maquinas ao redor do mundo. Para facilitar a distribuigao dos enderegos IP, foram especificad: IP, como mostra a Figura 3.6. S cinco classes de enderegos Classe A Classe B Classe C CrasseD | 1110 Enderogimenta mubicast GasseE [1111 esevado para 0 usa futuro Figura 3.6: Classes de enderogos IP. Como vocé pode reparar, ha alguns bits fixos no inicio de cada classe de endereco IP, Isso faz com que cada classe de enderecos IP seja dividida conforme mostra a tabe a a seguir. hs Enderego mais beixo—_Endereo mais a 1000 va4.00 | 5 1281.00 9125500 t 2010 42552380 D man00 139255235255, £ 240900 135255255254 Caso Count 71 Reoes v& Conrutavones Curso Conricto Como voc pode repr, olguns enderos no constom nessa obela pois so de uso reservado, por exemplo os endercas ben, 127.x2x (qu sto vsodos com ofinaidde de esto 0 rede). Em redes usamos somente os enderegos IP das classes A, Be C. Para que vocé entenda melhor a Figura 3.6 ¢ a tabela anterior, fizemos o seguinte resumo: # Classe A: O primeito numero identifica a rede, os demais trés nuimeros indicam a maquina. Cada enderego classe A consegue enderegar até 16.777.216 maquinas. 4 Classe B: Os dois primeiros nimeros identifica a rede, os dois demais indicam a maquina, Esse tipo de enderego consegue enderecar até 65.536 maquinas. 4% Classe C: Os trés primeiros mimeros identificam a rede, 0 tiltimo mimero indica a maquina. Com isso, consegue enderegar até 256 maquinas. Para que vocé entenda melhor essa classificagao, vamos explicar primeiro os enderegos de classe C. Nesse tipo de enderego IP, os trés primeiros ntimeros indicam a rede e 0 liltimo nGimero indica a maquina. Se vocé for usar um enderego IP classe C em sua rede, vocé poderd ter, pelo menos teoricamente, até 256 dispositivos conectaclos em sua rede (de 0 a 255). Na verdade, voct poderd ter até 254 dispositivos, ja que os enderegos 0 255 sao reservados, como veremos adiante. Se vocé precisar de mais enderecos IP, voce precisara ter acesso a mais um endereco classe C, oul mesmo pleitear um enderego classe B, caso sua rede seja realmente muito grande (com um endereco classe B é possivel enderegar até 65.536 maquinas diferentes, sem descontar os enderegos reservados). Ou seja, a escolha 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 enderecos de classe C. sistema de redes que forma a estrutura basica da Internet é chamado backbone. Para que a sua rede esteja conectada a Internet, ela teré de estar conectada ao backbone 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 vocé quiser que sua rede esteja conectada a Internet, ela devera estar conectada diretamente a rede da Embratel ou indiretamente, conectando a sua rede a uma outra rede que possua essa conexao. 72. uso Counc Geriuwo 3- TCP/IP. A Internet possui uma estrutura hierarquica. © responsavel pelo backbone € 0 responsavel pelo controle ¢ fornecimento de ntimeros IPs a seus subordinados; por sua vez os ntimeros IPs que o responsavel pelo backbone pode ceder a seus sttbordinados foi estabelecido pelo backbone hierarquicamente superior ao backbone em questo, Em principio, se a 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 € 6 conflito de enderecos sera inevitavel, caso vocé tenha montado toda a sua rede baseada em enderegos IP ja existentes. Existem alguns enderegos que so conhecidos como “enderegos magicos”, que sao enderegos IPs reservados para redes privadas. Assim, vocé pode montar a sua rede TCP/ IP baseada nesses enderecos que ndo gerard conflito com os endere¢os IP da Internet, pois os roteadores da Internet reconhecem esses enderesos como sendo de uma rede particular e ndo repassam os pedidos de pacotes que fagam referencia a esses enderegos para o resto da Internet. Mesmo que o roteador de sua rede esteja configurado de forma errOnea € passar o pacote adiante, 0 pacote acabard atingindo um roteador que estaré configurado corretamente, “barrando” 0 pedido de seguir para o resto da Internet, evitando 0 conflito, Esses ende! os especiais (reservados para redes privadas) sdo os seguintes # Classe A: 10.0.0.0 a 10.255.255.255 @ Classe B: 172,16.0.0 a 172.31.255,.255, ' + Classe C: 192.168.0.0 a 192.168.255.255 Ou seja, se vocé pretende montar uma rede TCP/IP particular, sem estar conectada ao backbone da Internet, baseada em um endereco classe C, poderd 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 endereco IP. Girso Cours 73 oe Reoes oe Computsoones Curso ComPuero Rede 192.168.0.0 192.168.0.1 192.168.0.3, 192.188.0.5 192.168.0.2 192,168.04 —Y oS Figura 3.7: Exemplo de uma rede TCP/IP. Oenderego Vindica “rede”, Assim, o enderego 192.168.0.0 indica a rede que usa enderegos que comecem por 192.168.0. Como esse enderego € classe 2, somente o iiltimo byte ¢ usado para enderecar as maquinas presentes na rede, por isso os trés primeiros ntimeros do fixos e 56 o iltimo varia, J4 0 endereco 10.0.0.0, por ser da classe A, indica a rede que usa enderecos que comecem por 10, pois no enderecamento classe A somente 0 primeiro byte indica a rede, os trés bytes seguintes so usados para o enderegamento das maquinas presentes na rede. J 0 enderego 255 é reservado para broadcast, 0 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 ligagé 10 da rede apresentada na Figura 3.7 com a Internet, hd duas solugoes. A primeira ¢ simplesmente conseguir um endereco classe C putblico para a sua rede e r configurar todas as maquinas usando enderegos IP tinicos dentro da Internet. Por exemplo, digamos que vocé consiga 0 endereco 200,123.123.0. A Figura 3.8 mostra a estrutura de enderecamento IP dessa rede. Repare que 0 roteador possuii duas portas, uma conectada a sua rede e outra conectada 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.3211 para a porta deste dispositivo que esta conectada a rede 2 (200.321.321.0). 74 + C50 Court Geinuio 3 TCP/IP Rede 1 200.123.123.0 200.123.123.1 200.123.128.3 200.123.123.5, 200.123.123.2 200.123.123.4 200.123,123.6 Pe oa : 200.921.321.1 Rede 2 200.321.321.0 Figura 3.8: Exemplo de wna rede conectada& Internet. Outra solugao é criar uma tabela de tradugio no roteador, que pega os pacotes vindos com enderegos IP validos na Internet € converte esses enderecos em enderecos privades, aceitos somente na rede local. Essa tradugdo pode ser estatica ou dinamica. Na tradugao estatica, um determinado enderego privado é sempre convertido em um mesmo endereso piblico. Por exemplo, ao receber um pacote destinado ao enderego 200.123.123.1, 0 roteador pegaria esse pacote e trocaria o seu endereco para o enderego 192.168.0.1. A tradugao estatica é usada com computadores servidores, que necessitam ter sempre o mesmo enderego IP. Ja a tradugdo dinamica é usada por clientes, isto 6, computadores que nao prestam servigos para a rede. Nesse tipo de tradugao, o endereco privado nem sempre usara 0 mesmo enderego piiblico. Com isso, é possivel que mais de um endereco privado, usado na rede local, acesse a Internet usando um mesmo endereco IP piiblico. Essa solugao interessante para quando temos mais computadores do que enderegos I's disponiveis para montarmos a rede. +75 Cueso Comeerd Rees oe Cowputapores Curso Cowpteto No uso da tradugao dinamica é muito comum 0 uso de um protocolo chamado DHCP (Dy- namic Host Configuration Protocol, Protocolo de Configuracdo Dinamica de Maquinas). Um. servidor DHCP distribui para os computadores clientes um IP valido na Intemet assim que um computador cliente pede. Dessa forma, se um micro da rede intema pedir uma pagina www da Intemet, o servidor DHCP fornece um endereco IP publico valido para ele poder se conectara Internet. Assim que essa maquina terminar de carregar a pagina www solicitada, 0 servidor DHCP “toma’” esse endereco IP de volta. Se o usuario desse cliente continuar navegando, o servidor poderd dar o mesmo enderego IP ou mesmo dar um outro endereco IP. Mascara ve Reve Um termo que voce encontrara com facilidade ao configurar redes baseadas no protocol TCP/IP € mascara de rede. A mascara ¢ formada por 32 bits no mesmo formato que o enderecamento IP e cada bit 1 da mascara informa a parte do endereco IP que é usada para o enderecamento da rede e cada bit 0 informa a parte do endereco IP que é usada para o enderecamento das maquinas. Dessa forma, as mas fas padrdes sao: # Classe A: 255.0.0.0 ¢ Classe B: 255.255.0.0 @ Classe C: 255.255.255.0 i 0 volr 255 equiva « um gropo de its bits (ble com todos os seus its em 1, (OTA A mascara é usada fora de seus valores padrao quando hé a necessidade de segmentagao 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 e trés redes situadas em outros locais, sendo a nossa necessidade a seguinte: @ Rede local: 31 enderecos IP (de 200.123.123.1 a 200.123.123.31, mascara 255.255.255.224) # Rede 1: 32 enderecos IP (de 200,123.123.32 a 200.123.123.683, mascara 255.255.255.224) 76 + Cs0Conneo Geiruio 3 - TCP/IP @ Rede 2: 64 enderegos IP (de 200.123.123.64 a 200.123.123.127, mascara 255.255.255.192) ¢ Rede 3: 127 enderecos IP (de 200.123.123.128 a 200.123.123.254, mascara 255.255.255.128) © valor da mascara é a diferenga entre 256 ¢ 0 niimero de IPs disponiveis na sub-rede em questao. Nessa conta voce deve levar em conta os enderecos 0 e 255, apesar de eles no poderem ser usados para o enderecamento de maquinas (veja o exemplo real acima e na Figura 3.9). Rede 1 200.123.128.32 Méscara: 255.255.255.224 Roteador 2 200.128.123.2 Rede 2 200.123.123.64 Mascara: 259.255.258.192 Roteador 3 Rede externa {internet} 200.18.123.3 Rede 3 200.123.123.128 Miéscara: 255.255.255.128) Roteador 1 Roteador 4 200.123.129,1 \-___.______ 200.128.128.4 Rede Local 200.123 123.0 Méscara: 255.255.255.224 Figura 3.9: Rode segmentada usando méscara de rede, Nesse caso, configuramos os 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 ao endereco 200.123.123.200 sera recusado pelos roteadores 2 e 3, mas aceito pelo uso Conso + 77 EO Renes ve Courutanones Curso Conpusto roteador 4, que ird 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 e 2, congestionando essas redes sem necessidade ~ ja que o destino encontra-se na rede 3. Aproveitamos a oportunidad para explicarmos esse assunto, que veremos em profundidade quando falarmos sobre rotcadores no capitulo 8. ARP (Appress Resowution Protocol) ‘Como acabamos de ver, as redes baseadas no protocolo TCP/IP baseiam-se inteiramente em um endereco virtual, chamado enderegamento IP, Acontece que as placas de rede das méquinas conectadas a rede operam com o esquema de enderegamento MAC, como comentamos no capitulo passado. 0 protocolo ARP ¢ responsavel por fazer a conversao entre os enderegos IPs e os enderegos MAC da rede. Em uma rede grande, os pacotes TCP/IP stio encaminhados até a rede de destino através dos roteadores, como explicamos. Atingindo a rede de destino, o protocolo ARP entsa em ago para detectar 0 endereco da placa de rede para a qual o pacote deve ser entregue, j4 que no pacote hé somente o enderego IP de destino e ndo 0 enderego da placa de rede. © ARP funciona mandando primeiramente uma mensagem de broadcast para a rede petguntando, a todas as maquinas, qual responde pelo endereso IP para o qual pretende- se transmitir um pacote. Entao, a maquina que corresponde a tal endereco responde, identificando-se e informando o seu endereco 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 ptimeiro micto da rede quer enviar um pacote para o endereco 200.123.123.1. Elemanda a mensagem “Que 200.123.123.1?" para todos os micros da rede, em broadcast. micro que esta usando este endereco responde, informando o seu enderego MAC & iniciando a comunicagao entre os dois micros. Para no ocupar a rede muitas vezes ~ j que, para saber quem ¢ responsével por um enderego IP 0 ARP tem de enviar uma mensagem para todas as maquinas-, 0 dispositive transmisyor armazena os enderegos IPs recentemente acessados € seus enderegos MAC. 78 + Go Cure Gariruto 3 — TCP/IP correspondentes em uma tabela na memoria; assim ele nao precisara fazer um broadcast se precisar acessar um endereco IP ja conhecido. Quem 6 200,123.123.12 =zs 200.123.123.1 t Sou eu! J Figura 3.10: Exempla de furcionamenta do protocolo ARP. RARP (Reverse Appress Resowution Protocot) © protocolo RARP permite que uma maquina descubra um enderego 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 informagao estard gravada em algum arquivo de configuragao dentro do disco rigido da maquina (ou dentro de alguma meméria cletrénica nao volitil, 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 Cuxso Cone + 79 Reoes oe Computanores Curso Compusto vez de carregé-lo através do disco rigido da maquina) nao tém, portanto, como saber 0 seu enderego IP e, portanto, nao tem como iniciarem uma comunicagao de rede usando 0 protocolo TCP/IP. Assim, em redes TCP/IP com esse tipo de maquina havera a necessidade de ser criado um servidor RARP. Esse servidor armazenara uma tabela contendo os enderecos MAC das placas de rede presentes na rede ¢ 0s 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 entdo, iniciar a comunicagao com a rede usando 0 protocolo TCP/IP, Ap6s a maquina saber o seu endereco IP, essa informagao fica armazenada em sua meméria RAM, resolvendo o problema e tornando possivel qualquer comunicacao via rede utilizando 0 protocolo TCP/IP. IP (InteRNET Protocol) Como vimos em Fundamentos, o protocolo IP pega os dados enviados pela camada de transporte (pelo protocol TCP ou UDP) ¢ envia para a camada fisica (ver Figura 3.1). Na camada IP, os dados sio empacotados em datagramas. Na camada fisica, os datagramas serdo empacotados em quadros (ver capitulo passado). Como comentamos, 0 protocolo LP € um protocolo nao orientado a conexao, isto é, ele nao verifica se o datagrama chegou ou nao ao destino. Isso ¢ feito pelo protocolo TCP, que pega os datagramas que esto chegando ¢ os coloca em ordem, pedindo uma retransmissao dos datagramas que estejam faltando. A principal fungao do IP € 0 roteamento, ou seja, adicionar mecanismos para que 0 datagrama chegue o mais rapidamente possivel ao seu destino, Isso € feito com 0 auxilio dos roteadores da rede, que escolhem os caminhos mais répidos entre a origem e 0 destino, jé que em redes grandes (especialmente a Internet) ha intimeros caminhos que um pacote pode tomar para chegar até o seu destino. Vamos estudar a estrutura do datagrama IP para entendermos melhor como funciona esse mecanismo. 80 + Caso Count Grito 3— TCP/IP Estrutura 00 Datacrama IP Aestrutura do datagrama IP é apresentada nas Figura 3.11 e 3.12. Na Figura 3.11 apresentamos a estrutura simplificada do datagrama, ¢ na Figura 3.12 apresentamos todos os campos existentes no cabecalho. O campo Opgoes + Pad pode nao existir, reduzindo o tamanho do cabegalho para 20 bytes. A rea de dados nao tem tamanho fixo e, portanto, o tamanho de um datagrama IP é variével. © tamanho maximo de um datagrama IP ¢ de 65.535 bytes, incluindo ai o cabecalho (ou seja, a area de dados é de 65.515 bytes ou 65.511 bytes, dependendo se o campo Opgdes + Pad for ou ndo usado} Dados: (Ath 65.511 ou 65.515 bytes) Figure 3.11: Estratue simplficaa do datograme IP, Cabegalho (20 ou 24 bytes} (Checksum do Cabegalha (4 bytes) Endereco IP de Origem (4 bytes) Enderego P de Destino (4 bytes) Opedes + Pad (4 bytes — opcional Dados (até 65.911 ou 65.515 bytes) igo 3.12: fstuturs do dotograme IP. Embora a representacao da estrutura do datagrama IP apresentada na Figura 3.12 seja a mais didatica, ela ndo €a representago 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 representagio mostrada na Figura 3.13 seja de dificil compreensao para iniciantes. Nesta representagao, os campos de controle sio divididos em seis linhas de 32 bits (4 bytes) e no topo da figura ha indicagdo dos bits (numerados de 0 a 31) Gunso Curero BV Revts v& Conrtanones Curso Courteto Peek eae pe ae a we Le ‘gore 3.13: Maneica tradconl dese represetar «estrtara do dotagroma i, No datagrama IP encontramos os seguinites campos: * Versio: Indica a versio do protocalo IP que esta sendo usado. O protocolo IP que estamos descrevendo ¢ 0 v4; portanto neste campo encontraremos 0 valor quatro. Tamanho do Cabecalho (IHL, Internet Header Length): Indica o comprimento do cabecallho do datagrama, dado em nimero de palavras de 32 bits, isto & o nimero, de linhas existentes na Figura 3.13 (em outras palavras, o ntimero de bits existentes no cabecalho dividido por 32). 0 tamanko minimo do cabecatho € de cinco palavras de 32 bits (20 bytes), sendo esse o valor mais comum, ja que normalmente o campo Opgdes + Pad nao é usado. Tipo de Servigo: Este campo informa a qualidade desejada para a entrega do datagrama, Como esse assunto é um pouco extenso e bastante interessante, iremos cexplicéslo separadamente mats adiante. ‘Tamanho Total: Indica 0 namero total de bytes que compoem o datagrama. Como esse campo possui 16 bits, o datagrama s6 pode ter, no maximo, 65.535 bytes (2). £ claro que, guanto maior o tamanho do datagrama, mais uma estagdo ocupa a rede, defxando-a mais jenta (ver capitulo passado). Por esse motivo, os datagramas uusart tamanios bem menores que 65.535 bytes, como, por exemplo, 576 bytes. Identificacao: Usado para identificar 0 datagrama, Quando o transmissor ctia € envia um datagrama pela rede, € atribuido a ele um niémero de identificagao. Esse niimero sera usado para identificar o datagrama caso ele seja fragmentado no caminho até o destino. Explicaremos em detalhes esse procedimento no t6pico Fragmentagao de Datagramas. 82 + Geo Comin Geituto 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 fragmentacao de datagramas, que explicaremos mais adiante. ‘Tempo de Vida (TTL, Time to Live): Indica o tempo maximo de vida do datagrama. cada vez que o datagrama passa por um gateway (um roteador, por exemplo) esse mamero é dectementado. Quando chega a zero, 0 datagrama 6 descartado, nao atingindo o destino. No receptor, 0 protocolo TCP ird perceber que esta faltando um datagrama e pediré uma retransmissio do datagrama que esta faltando. objetivo € eliminar os datagramas que demorem tempo demais para chegar a0 destino, o que pode ocorrer caso a rota escolhida seja muito longa ou mesmo errada, caso exista um rotcador mal-configurado no meio do caminho. Assim, elimina-se datagramas que poderiam ficar vagando eternamente pela Internet a procura de seu destino caso eles encontrem problemas de rota, o que congestionaria a rede, Protocolo: Esse campo indica o protocolo de que pediu envio do datagra através de um cddigo numérico. Por exemplo, o ntimero se a, indica o TCP, o nfimero 17 indica o UDP, 0 ntimero um indica o ICMP e assim por diante. Dessa maneira, no dispositive receptor, a camada IP sabe para qual protocolo superior ela devera entregar os dados presentes dentro do datagrama. Checksum do abecalho: O protocolo IP adiciona um campo de checksum para os valores presentes no cabegalho (0 conceito de checksum ja foi explicado no capitulo pasado), Note que esse campo calcula o checksum somente do cabegalho e, portanto, 10 usa 0 campo de dados no célculo. A vantagem de se usar somente 0 cabecalhio é que a conta fica menor e mais répida de ser feita (ja 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. ndereco IP de Origem: Como o préprio nome diz, neste campo hé o enderego IP de onde esta partindo o datagrama. ndere¢o IP de Destino: Como o anterior, neste campo ha o endereco IP de destino do datagrama. Opes + Pad: Esse campo é opcional. Se nao for usado, 0 cabegalho possuiré 20 bytes. Caso seja usado, 0 cabegalho passa a ter 24 bytes. Como 0 campo de opgdes possui tamanho varidvel, ele é preenchido com zeros até ter 32 bits de comprimento. Esses zeros adicionais sai conhecidos como pad ou padding. Esse campo ¢ usado em, Caso Conners + 83 eves o& Comutanores Curso Comeueto situagOes de teste e verificacdo de erros na rede, Como o assunto é um pouco ex- tenso, iremos estudé-lo separadamente mais adiante. + Dados: Sdo 0s dados que o datagrama esta carregando. Como falamos anteriormente, apesar de 0 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. Tipo ve Servico 0 campo Tipo de Servigo indica detalhes sobre o tipo de servigo que pretendemos ter na entrega do datagrama IP. Originalmente, esse campo tinha o formato mostrado, na Figura 3.14 EE Figura 3.14: Formato original do campo Tipo de Servo. 8 ‘Nao usado ity 2 bits) Os trés bits de precedéncia informavam a prioridade do datagrama, dependendo do tipo de dado que ele carregava. Zero indicava um datagrama normal, e sete, uma informagao de controle de rede. Ou seja, quanto maior o valor neste campo, maior a prioridade do datagrama. Os bits D, Te R significam, respectivamente, Delay (atraso), Throughput (velocidade) e Reliability (confiabilidade). O transmissor poderia ativar cada um desses bits (colocando- 08 em 1) quando necessitasse de baixo atraso, alta velocidade e/ou alta confiabilidade, dependendo da situacao. Eclaro que nao ha como garantir essas caracteristicas em uma rede grande, mas facilitariam © trabalho do roteador, Por exemplo, se houvesse mais de uma rota para atingir 0 destino, a escolha poderia ser feita baseada na configuragao dos bits D, Te R do campo Tipo de Servigo. Por exemplo, um roteador poderia enviar o datagrama para um caminho lento porém de alta confiabilidade caso o bit R estivesse habilitado, liberando uma outra rota para o mesmo destino para os datagramas que necessitassem de alto desempenho. 84 + uso Cuneo Cavituto 3 — TCP/IP So que essa idéia nao deu certo. Apesar de o sistema de indicar prioridade ser interessante, ter indicadores demais (atraso, velocidade e confiabilidade) acaba atrapalhando em vez de ajudar. Primeiro, atraso e velocidade sao conceitos muito proximos para termos uma distingao clara da diferenca de o que é uma conexiio répida eo que é uma conexio sem atraso. Confiabilidade nao é tao facil de se medir: que parametros serdo usados para indicar que uma rota é ou nao “confiével”? Depois, ter esses indicadores significa aumentar a complexidade dos roteadores, aumentando o seu custo. © 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 foi ainda aceita pelo mercado, pelo menos na data de publicagao deste livro (inicio de 2001), Orcoes Como vimos, 0 campo OpgGes é usado em situagdes de teste e deteccao de erro. As duuas fungdes mais importantes desse campo sao tragar a rota de rede que esta sendo usada da origem até o destino (traceroute) ¢ marcar 0 hordrio (com precisiio 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 varidvel e, caso seu contedido fique menor que 4 bytes (32 bits), é preenchido com zeros até atingir este tamanho. fsse preenchimento @ chamado pad ou padding, Como vimos, esse campo nem sempre é usado, Neste caso, 0 tamanho do cabecalho do datagrama cai de 24 para 20 bytes. O primeiro byte deste campo possui o formato da Figura 3.15. O primeiro bit, chamado Copiar, é um flag que, quando esté em um, indica que as opgoes presentes no campo Opgoes devem ser copiadas para todos os datagramas caso ocorra uma fragmentagao do datagrama (nosso proximo assunto). Caso esteja em zero, as Opgoes serdio copiadas apenas para o primeiro datagrama fragmentado. © campo Classe da Opgao indica o tipo de opsao, como mostramos na tabela a seguir. Como vocé pode ver, s6 existem atualmente duas classes de opgao: a opsao zero, que 6 usada basicamente pela opgao de gravagao de rota, ¢a op¢ao dois, que é basicamente usada pela opgao de gravacao de horario (timestamp). Reoes vt Cowpurapores Curso Cowrtst0 asse da Opie Signiiendo o Corl derade ou dtgroms Reseed parauso ftw x Teste deo ds a Reserydo pare so fro © campo Niimero da Opgao indica a opgéo em si. E istem intimeras opgoes, mas so discutiremos as duas mais importantes (¢ mais usadas), que so, como falamos, a gravacao de rota (route recording), que possui ntimero sete (classe zero), € a gravacio de horario (timestamp), que usa 0 ntimero quatro (classe dois). A gravacdo da rota é uma op¢do que permite tragar a rota usada desde 0 enderego IP de origem até o enderego IP de destino. Quando essa opgao esta ativada, cada roteador por onde o datagrama passa acrescenta ao campo de dados do pacote o seu proprio ender IP. Assim, quando o datagrama chega até o destino, ele possuiré os enderecos IP por onde ele passou desde a origem até o destino. 60 Vimos que 0 campo Opgoes usa até quatro bytes. No comando de gravar a rota, como a classe ero € © Néimero da opcao é sete € © bit Copiar fica desabilitado, a opgao de gravacdo da rota possui valor sete, sendo este o primeiro byte do campo Opgdes. O segundo byte, chamado Comprimento, indica quantos bytes serdio usados para armazenar ‘0s enderecos IP que serdo gravados (isto é, qual sera o tamanho do campo de dados). O terceito byte € chamado Ponteiro a cada endereco IP acrescentado 4 lista, ele € incrementado em quatro (j4 que cada endereco IP tem 4 bytes). Quando o ponteito atinge o mesmo valor do comprimento, significa que a lista esta cheia e nao hé como acrescentar novos enderegos IP a ela. O quarto byte nao ¢ usado sendo, portanto, preenchido com zeros. © comando de gravacao de horario, timestamp, funciona de maneia similar. Quando usaco, a cada roteador que o datagrama passa ele adiciona a hora (em milissegundos) (© set endereco IP. No campo de dados do datagrama, primeiro ¢ gravado 0 endere¢o IP 86 + Ciro Conc Grituto 3 TCP/IP (4 bytes) e depois a hora, usando um ntimero de 32 bits (4 bytes) que indica 0 nimero de milissegundos decorridos desde a meia-noite, Hordrio Universal (GMT, Greenwich Mean Time, horario de Greenwich). : } Restante do cabecalho — Campo Opeées Area de dados Figura 3.16: Esruura do compo Opeées para o comand de gravar a ota (route recording) No comando timestamp, o campo Opgdes (que tem 4 bytes) ¢ usado da seguinte forma: o primeiro byte possui valor 68 (que € o valor, em decimal, de 01000100, que indica Classe 2, Némero 4); 0 segundo byte e o terceito byte sdo 0 Comprimento e © Ponteiro, com funcionamento igual ao do comando de gravar a rota; o quarto byte é dividido em over- flow (4 bits), que indica o ntimero de vezes que algum roteador tentou escrever dados no datagrama mas nao pode porque ele jé estava “cheio”, e flag (4 bits), que indica o tipo de agdo que © comando efetuara. Normalmente este campo possui valor 1, que jaz com que 05 roteadores gravem o seu endereco IP eo horario (ver Figura 3.17). Colocando-se o valor zero neste campo, 0s roteadores gravam somente os horarios. E colocando-se o valor 3, selecionamos somente os roteadores de que queremos informacdes de horario, Para isso, © datagrama ¢ enviado ja com os campos de enderecos IP preenchidos com os enderecos dos roteadores preenchidos (ver Figura 3.17). Os roteadores com esses enderegos irao completar 0 pedido colocando a informagao de horario, de forma que o datagrama chegara totalmente preenchido com os enderecos IP ¢ com os horarios. Curso Curso + 87 Rees o€ Coururapores Curso CowPieto } Restante do cabegalho Flag (4 bits) — Campo Opcies ———— ime Pe i ‘Avea de dados Figura 3.17: Esrutara do campo Opes para o comando de gravorae de horério (restam). FRAGMENTACAO DE DATAGRAMAS Como os datagramas sio enviados a rede através da camada Fisica, o 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 passado, 0 protocolo mais usado nessa camada é o Ethernet (IEEE 802.3), que possui uma area de dados maxima de 1.500 bytes. Com isso, em uma rede Ethernet, o datagrama todo (cabecalho mais a area de dados) s6 podera ter, no maximo, 1.500 bytes (ver Figura 3.18). Essa caracteristica € chamada MTU (Maximum Transfer Unit, Unidade Maxima de Transferéncia). | Fro aor) Dados Datagrama IP [| Gaber Dados (até 1500 bytes) Guatro Ethernet: Figura 3.18: Como um datagrama IP ¢tronsmitido em uma rede Ethernet (IEEE 802.3). 88 + Cuso Cure Grituo 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 o pacote de dados tenha de passar para atingir 0 seu destino ter um MTU menor que o da rede de onde partiu 0 quadro, Isto é, no quadro de uma rede no meio do caminho por onde © pacote de dados tem de passar cabem menos dados do que no quadro da rede que transmitiu 0 pacote original. Com isso, ocorre de, teoricamente, 0 pacote nao poder ser transmitido, j4 que ele nao "cabe” dentro do quadro de dados da rede que hé 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 obrigatério para essas duas redes poderem se comunicar, os quadros comportam apenas 620 bytes. Roteador 3 Rede 3 MIU=1500 bytes MTU=620 bytes MTU=1500 bytes Figura 3.19: Interligaro de redes com diferentes tomanbos de quadros. A solugao para esse problema é a fragmentacao de datagramas. Supondo que um computador da rede 1 quer mandar um datagrama para um computador na rede 3, 0 roteador 1 sabe que a rede 2 tem um MTU menor e, com isso, divide o quadro recebido em varios quadros, A solugao para o problema da Figura 3.19 é mostrada na Figura 3,20: © roteador dividiu 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 ira pegar os quadros fragmentados eremonté-los em um tinico quadro de 1500 bytes de dados, de forma que ele seja enviado conretamente para a rede 3, atingindo o seu destino. Poteedor 1 Roweedor2 MTU=T500 bytes _tu=820 bytes, _ mu=7500 bytes [isos] 1500 byt BOO Hes 300 bytes Figure 3.20; Frogpentario de datagrams. Ceeso Conner + BY Reves v¢ Commutanores Curso CowmeLeto © tamanho dos fragmentos tm de sot milled ait bytes; or isa os fregmentos do figu 3.20 tém 600 byes © bo 620 bytes, protocolo IP permite a fragmentacao de seus datagramas gracas a existéncia de trés campos: Identificacao, Flags e Offset do Fragmento. j © campo Identificagao é preenchido com um miimero gerado pela maquina que enviou odatagrama, Em geral, esse néimero é umn ndimero seqiiencial e, a cada datagrama gerado, © computador incrementa um contador em meméria, isto 6, o primeiro datagrama criado pela maquina possui ntimero 1, o segundo niimero 2, ete. Assim, quando um datagrama @ fragmentado, todos os fragmentos criados possuem o mesmo numero de identificagao. Na hora de remontar 0 datagrama, o 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 nfimero ¢ atingido, 0 computador zera o seu contador € comega 0 processo novamente, Com isso, pode ser que exista mais de um datagrama com um mesmo nimero de identificagdo na rede ao mesmo tempo! Isso nao chega a ser um problema, Mesmo, que os dois datagramas com mesma identificagao sejam fragmentados e ocorra de 0 roteador remontar o datagrama trocando 0s fragmentos (isto é, colocando fragmentos do primeiro datagrama no segundo ¢ vice-versa), a0 chegar a0 destino a camada de transporte do protocolo recalculara o checksum do pacote e vera que ele nao confere (ja 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. © primeito é sempre zero, 0 segundo é chamado DF (Don't Fragment — Nao Fragmentar), €0 terceiro, MF (More Fragments ~ Mais Fragmentos). Quando o flag DF esta ativado, o datagrama nao pode ser fragmentado. Jé 0 flag MF indica qual 60 titimo fragmento: todos os fragmentos possuem esse bit em 1, indicando que ha mais fragmentos depois deles. Somente o iiltimo fragmento possui esse bit em jormando que ele ¢ 0 iiltimo fragmento do datagrama. 2810, i © campo Offset do Fragmento controla a fragmentacao em si, isto é, a ordem dos fragmentos. Esse campo conta os fragmentos em blocos de oito bytes, e por isso a obrigacao de o tamanho dos fragmentos ter de ser mialtiplo desse valor. Assim, para 0 exemplo que demos na Figura 3.20, o primeiro fragmento teré um offset de zero, © 90 + Cio Counem Geriruto 3 — TCP/IP segundo, um offset de 75 (600 bytes + 8) ¢ o terceiro, um offset de 150 (1.200 bytes + 8). Quando o roteador vai remontar o quadro a ser enviado para a proxima rede, ele sabe a ‘ordem dos fragmentos através desse campo. ICMP (Internet Controt Messact Protocot) Caso um roteador nao consiga passar adiante um datagrama recebido ~ por estar congestionado demais ou entdo por ter zerado o campo ‘Tempo de Vida (TTL, Time to Live) do datagrama, por exemplo -, ele precisa informar ao transmissor do datagrama que ocorreu um erro, O mecanismo usado pelos roteadores para informar esse tipo de erro é 0 uso do protocolo ICMP, Internet Control Message Protocol. Apesar de estarmos tratando 0 ICMP como um assunto a parte, ele é parte integrante do protocolo IP. E importante notar que o ICMP é somente um mecanismo usado para informar a maquina transmissora da ocorréncia de um erro com o datagrama enviado, através de mensagens enviadas pelos roteadores da rede. Ele nao se preocupa em cortigir o erro nem tampouco em verificar a integridade dos datagramas que ci culam 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! Cabegalho MP | Mensagem ICMP CabegahoP | Ares de dads to detgrama pees » Cabegalho do quadro Figura 3.21: Encopsolamento de urna mensogem ICMP, Caeso Cours + OT Reves o& Conutaports Curso Compusto E 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 o UDP). Estrutura pas Mensacens ICMP Cada mensagem ICMP possui uma estrutura propria, mas todas elas comecam da mesma maneira, mostrada na Figura 3.22. © 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écigo (6 bits) bits) Figura 3.22; Cabecalho das mensogens ICMP, Volor Tipo da mensagom ICMP o Rosposta 8 monsogem de oc - a ‘iso de desi inane 4 Redon de velcidade de rans 5 Solr de redireinamena 4 Nensogem de eo [0 Tempo de vida exeido 2 Problems poms a [13 Solita de hora. u spot solar dehortio W Selo da néscara de edeesomenio " Fesposta salar da misara de ederecmento © campo Cédigo prové mais informagoes sobre a mensagem ICMP, e o 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 erros ocorridos com um datagtama trazem 0 cabegalho do datagrama problematico e os primeiros 64 bits da area 92 + CusoCowen Gerituvo 3— TCP/IP de dados deste datagrama, Como os protocolos de alto nivel (TCP ¢ UDP, por exemplo) adicionam informagées importantes nos primeiros 64 bits da area de dados do datagrama IP (como o proprio cabegalho desses protocolos), € possivel saber, tendo esses bits disponiveis, 0 protocolo e a aplicagao envolvides com o datagrama problemitico, facilitando o gerenciamento do erro. Para que vocé entenda melhor o funcionamento do ICMP, iremos explicar rapidamente © funcionamento de algumas das mensagens ICMP existentes. A mensagem de eco serve para verificar se 0 caminho entre o transmissor e © receptor esté bom. © transmissor envia um datagrama contendo uma mensagem [CMP de eco e © 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, 0 comando que efetua esta tarefa 6 chamado Ping. Versdes mais sofisticadas do ping, em vez de enviarem uma Gnica mensagem de eco, enviam varias, mostrando estatisticas de tempo de resposta e perda de datagramas. Destino Inaucancavet Caso um roteador nao consiga entregar um determinado datagrama, ele envia para o transmissor uma mensagem ICMP de destino inaicangfvel. Essa mensagem também é enviada quando for necessério fragmentar um datagrama e o flag DF (Don't Fragment) estiver ativado (ver 0 topico Fragmentacao de Datagramas). Na mensagem de destino inalcancével, 0 campo Cédigo do cabegalho ICMP (ver Figura 3.22) & preenchido com um dos seguintes valores: Gidigo —__Sigficado Rede accel quis inden Protocol inalcangavel Povo iene 1 2 3 4 Frogmentaio neces flag DF alivedo Coss Coane + 93 Reoes 0& Conputapones Curso Compusto Cidigo__‘Siatcado [5 Flo nat de rg 6 Rede de dein debe 7 ein de desi donde | 6 equi de gen ale 4 Connie com tle deste ts pie pelo drinsrxendo roe | 0 Conu rind esin et roti pl ania drede u fede incanive pro pod svi alto 2 ei nena pra op de sei sae Coneestionamento Um roteador pode porventura receber um nimero maior de datagramas do que ele capaz de processar. Caso isso ocorra, dizemos que o roteador est congestionado, Neste tipo de situagao, 0 roteador inclusive pode ter de descartar datagramas por nao estar sendo capaz de recebé-los naquele momento. Quando isso ocorre, o roteador envia uma mensagem de redugdo da velocidade de transmiss4o ao transmissor do datagrama descartado. © transmissor, ao receber essa mensagem, passa a transmitir datagramas a uma velocidade menor. Como voce pode perceber pela tabela mostrada antetiormente, nao existe nenhuma mensagem ICMP para fazer o transmissor retornar a sua velocidade de transmissdo nor- mal. Entao, o transmissor voltard gradualmente a sua velocidade de transmissio normal a medida em que for parando de receber mensagens ICMP de redugao da velocidade de transmissao. ReDiRecionaMeNTO Caso © roteador verifique que na rede local onde ele esta instalado existe uma rota melhor a ser usada para enviar um datagrama recebido, ele envia uma mensagem ICMP de solicitagao de redirecionamento ao transmissor, enviando também o datagrama ao destino. Tssa mensagem ¢ extremamente titil para atualizar as maquinas a respeito das melhores rotas disponiveis na rede local, Para entender melhor esse procedimento, observe a Figura 3.23. Imagine que a maquina 200.123.123.1 queira mandar um pacote de dados para 94 + Cus Curso Garituwo 3 — TCP/IP um micro presente na rede 3 mas, por causa de sua configuracdo (que esta indicando o enderego 200.123.123.2 com defiuult gateway, isto & 0 ponto de saida padrao da rede ~ esta configuragao nao esta indicada na Figura 3.23), 1 (ender nviou © datagrama para o roteador o 200.123.123.2). © roteador 1 encaminharé o 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 (ender 200.123.123.3). 0 Rede 2 Roteador 1 / Roteador 2 200.123.1232 200.123.123.3 200.123.123.1 Transmissor Rede 1 (200.128.123.0) Figura 3.23: Foncionamenta ds mensagem do pede de redtecionamento (ver texto) Note que esse esquema sé funciona na rede local onde o roteador esta instalado. Ele nao serve para apontar a melhor rota dentro de uma rede interconectada com outras redes, onde hé 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 o roteador 1 informando que o caminho mais curto até ele ¢ feito através do roteador 4, ja que 0 roteador § nao sabe qual ¢ 0 endereco IP do roteador 1! Corso Como + 95 Renes ve Conputavones Curso Cowpusro Figua 3.24: 0 comando CMP de redeconamento no reprograms roteadres om redesinterconctdes (vr texto). Teno be Vina Exceoio0 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 possui 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 os roteadores descartem datagramas que nao estejam conseguindo atingir o seu destino por algum motivo (um roteador mal-configurado no meio do caminho, por exemplo). Dessa forma, esse mecanismo faz com que datagramas perdidos nao fiquem infinitamente circulando na rede. Pros.ema Nos PaRietRos Quando um roteador ou uma maquina encontra problemas para processar um datagrama endo hd nenhuma outra mensagem ICMP que cubra o problema encontrado, 0 roteador (ou maquina) envia uma mensagem de problema nos parametros para o transmissor, Normalmente essa mensagem € usada quando © roteador nao consegue decodificar corretamente as informagdes presentes no cabecalho IP do datagrama, isto é, quando ha algum problema no cabegalho do datagrama. Sourcacio pe Horério Através dessa mensagem de controle, uma maquina pode pedir 0 horirio do relégio de outra maquina que esteja conectada na rede. A maquina transmissora envia um comando de solicitagao de horario (mensagem ICMP tipo 13) & méq incluindo no datagrama a hora do envio do datagrama. A maquina receptora responde ao ina da qual ele quer saber 0 horitio, 96 + Cro Come Grinuto 3— TCP/IP comando de solicitagao de hordrio (mensagem ICMP tipo 14) incluindo © horirio que o 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 Time, horério de Greenwich), Um dos usos desse comando poderia ser o de sincronizar o reldgio de duas maquinas. 0 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 & conexao, isto 6, contririo do TCP, ele nao verifica se 0 pacote de dados chegou ou nao ao seu destino. Por esse motivo, esse protocolo nao € usado no transporte de dados importantes como, 10 por exemplo, arquivos e e-mails. Na verdade, as aplicagdes que usem 0 UDP deverao criar mecanismos para verificar se os dados foram recebidos corretamente e para colocar os datagramas recebidos em ordem. Em outras palavras, a aplicagao passa a fazer o papel que normalmente ¢ feito pelo protocolo TCP, que estaremos estudando adiante. Avantagem para programas usarem o UDP em vez do TCP é que a transmissao de dados fica mais rapida. Primeiro, o tamanho do pacote de dados a ser transmitido fica menor, jd que 0 cabegalho UDP é bem menor que o cabegalho TCP e, segundo, no UDP nao existe um mecanismo de verificagao de chegada do pacote (acknowledge), que existe no TCP, acelerando o envio de pacotes, ja que o transmissor ndo precisara esperar receber uma mensagem de acknowledge do receptor para enviar 0 proximo pacote. Em redes locais confiaveis, onde nao hé quase perda de pacotes, o uso do protocolo UDP vel. Mas, em redes grandes e, principalmente, na Intemet, a taxa de perda de pacotes pode ser alta demais e acabar dando muito trabalho para a aplicagao, tornando envio de pacotes UDP inv’ até cl do ponto de vista pratico, Por esse motivo, 0 UDP s6 é usado para o envio de dados pequenos e onde a taxa de perda de pacotes nao seja um problema, isto é, nao vai dar muito trabalho para aplicagao. Um dos usos mais conh do protocolo UDP ¢ para o envio de mensagens DNS (Domain Name System). cidos Caso Courun + OT Renes o€ Coururanores Cunso Cowpusto Na tabela a seguir mostramos os usos mais comuns do protocolo UDP, Como voce pode reparar, somente aplicagdes que nao estado preocupadas com a contiabilidade dos dados € que fazem uso do protocolo UDP. Bi laser tn lat eo cd orc dU Na Figura 3.25 mostramos 0 encapsulamento do datagrama UDP. ‘Area de dados abegalho UPD | datagrama UDP 98 + Caso Counen Gerituio 3— TCP/IP Estrutura po Daracrama UDP Como vimos anteriormente, no TCP/IP as aplicagdes comunicam-se com os protocolos da camada de transporte (0 UDP € 0 TCP) através de portas (ver Figura 3.2), As portas mais comuns usadas por aplicagdes que wsam o protocolo UDP foram vistas na tabela anterior, A estrutura do datagrama UDP pode ser vista na Figura 3.26. mean [Por accom [aga [eat ea Figoa 3.26: Estrutura do datograma UDP. Os campos porta de origem ¢ porta de destino especificam a aplicagdo que originou 6 datagrama e para cuja aplicacdo 0 datagrama deverd ser entregue na maquina de dest ‘Mesmo quea maquina de destino receba varios datagramas UDP vindos de varias aplicagdes diferentes, ela tem como saber para qual aplicagdo ela deve entregar 0 contetido do datagrama por causa da existencia do campo Porta de Destino. 0. © campo Tamanho especifica 0 tamanho do datagrama UDP em bytes, incluindo o seu cabecalho ea sua area de dados, O valor minimo para esse campo do proprio cabegalho (64 bits equivalem a oito bytes). ito, que Eo tamanho J4 o checksum é calculado de uma forma nao convencional, O protocolo UDP cria um pscudocabegalho, mostrado na Figura 3.27. Esse pseudocabegalho é formado apenas para ser utilizado na soma que resultaré no checksum do datagrama, nao sendo ‘oP de origem, pelo endereco IP de destino, pelo conjunto de oito zeros (campo Zeros), pelo niimero que 0 protocolo UDP representa no protocol IP (17, campo Protocolo) ¢, transmitido junto com o datagrama, Esse pseudocabecalho é formado pelo ender hovamente, o tamanho do datagrama UDP (mesmo valor presente no campo Tamanho do Datagrama do verdadeiro cabegalho UDP) Para formar o seu checksum, 0 UDP faz uma soma usando os valores desse pscudocabegalho (que nao é transmitido), os valores de seu cabegalho verdadeiro (este sim 6 transmitido), e os valores presentes em seu campo de dados. Caso Comin + 99 Reoes oe Couputaooees Curso Comptero oa Figura 3.27: Pseudocabecalho UDP, esado somente no célule do checksum. ‘Teoricamente o campo checksum é opcional (para nao usar o checksum, basta preencher esse campo com todos os bits em um). Entretanto, sem © uso do checksum toma-se impossivel saber se 0 dado recebido esta ou nao corrompido (isto é, se ele sofreu ou nao alteragoes durante 0 caminho entre 0 transmissor € 0 receptor). Por isso, a maioria das aplicagdes que usam o UDP prefere realizar 0 checksum, TCP (Transmission ConTRoL Protocot) ‘Como vimos no inicio do capitulo, 0 protocol TCP é o mais complexo do sistema de protocolos TCP/IP. Ble recebe os datagramas IP e trata de colocé-los em ordem {ja que em redes grandes os datagramas geralmente chegam fora de ordem) e verificarse todos chegaram corretamente. Como vimos anteriormente, o IP nao verifica se um datagrama chegou ou 1nJo ao destino, ficando 0 TCP responsavel por essa tarefa. Lembrando 0 que vimos no inicio do capitulo, as aplicagdes enviam dados a serem transmitidos pela rede ao protocolo TCP, através de canais virtuais de comunicagao chamados portas. As portas mais usadas pelo protocolo TCP sdo: 100 + Css Cave Gariruco 3 TCP/IP O TCP empacota os dados recebidos adicionando as informagdes da porta de origem € dia porta de destino, entre outras, passando o pacote de dados ao protocolo IP: © protocolo IP adiciona as informagdes 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 (0 driver da placa de rede), que encapsula © datagrama em um quadro que sera enviado para rede através da placa de rede. Reveja a Figura 3.3 para uma melhor compreensdo. A Figura 3.28 mostra o encapsulamento do pacote de dados TCP. Area de dados Cabegaho TP} do pacate TOP Cobegala IP Cabegalho do quadro 3: Encapsulamento do pacote de dads TCP, Figure 3. Ao receber um quadro, a camada de interface com a rede da maquina receptora (0 driver ea placa de rede) ira 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 aplicacao ela deve entregar os dados por causa do uso do conceito de portas. Por exemplo, se 0 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 colocard os datagramas recebidos em ordem vetificard se todos os pacotes chegaram ao destino. TRansmissAo E REcePcAo DE Pacores Ao receber um pacote de dados, o protocolo TCP envia uma mensagem de confirmagae de recebimento a maquina transmissora, chamada acknowledge (também chamada ack), Corso Cowen + TOT Reoes ve Conputavones Curso Comptsto 6 transmissor nao receber uma confirmagao de recebimento dentro de um determinado ‘tempo, o pacote é retransmitido, j4 que isso significa que datagramas IP carregando informagGes inseridas pelo protocolo TCP foram descartadas no meio do caminho por algum motivo. Esse “determinado tempo” a que nos referimos no parigrafo anterior, chamado RTT (Round Trip Time, Tempo Aproximado de Viagem), calculado dinamicamente pelo protocolo TCP, ja que em redes grandes nao da para utilizarmos um valor de tempo fixo. Se definitmos 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 € que esta lento, Neste caso, 0 receptor acabaré recebendo dois pacotes, o que alias ¢ outta tarefa do protocolo TCP, identificar pacotes duplicados, Por outro lado, seo ho, o \smissor demorard muito tempo para perceber que o pacote foi perdido, fazendo com que o desempenho da rede caia. Ou seja, tanto se o tempo for curt demais quanto tempo definido for longo demais, caso 0 pacote se perca no meio do can se for longo demais, o desempenho da rede seré comprometido (no primeira caso, pelo envio excessivo de pacotes, e no segundo, pela demora no reenvio de pacotes perdidos). on } cronometra o tempo demorado entre o envio do pacote'TCP e o recebimento de sua confirmagao. A cada nova confirmagao de recebimento que chega, 0 TCP recalcula © tempo aproximado de viagem (RTT), que 6 uma média desses tempos que foram cronometrados. No entanto, esse calculo nao ¢ tao simples quanto parece, por causa do sistema usado pelo protocolo TCP para confirmar pacotes, que pode gerar varias confirmagdes idénticas aso um pacote seja perdido, fazendo com que o crondmetro do RTT marque tempos falsos. Lendo 0 topico Organizagao dos Segmentos Recebidos voc’ entenderd o problema. Em principio, o esquema de envio e recebimento de pacotes pela € como mostra a Figura 3.29. O transmissor sabe que um pacote ¢ perdido quando uma mensagem de confirmagdo no é recebida dentro do period de tempo esperado. Essa situagdo ¢ ilustrada na Figura 3.30, mada TCP funciona 102 + GxoComen Carino 3- TCP/IP Trananssor |_| Tenemsar ens recete Lop é pecoce 1 pect 1 550 de transmisséo de pacotes eo longo do tempo. Tempo Perdido “ranassr posatet Figura 3.30: Processo de retransmisso de um pacate de dados. © problema da retransmissao ¢ 0 tempo que é perdido. Além disso, em principio o transmissor tem de esperar 0 recebimento de uma mensagem de confirmagio para ento enviar um novo pacote, tornando 0 mecanismno de envio de dados extremamente lento: sempre serao acumulados intimeros pacotes a serem transmitidos, mas o transmissor nao os pode enviar para a camada LP enquanto a confirmagio do tiltimo pacote enviado nao chegar. © protocol TCP nao conta os dados transmitidos através de pacotes, mas sim através dos bytes que estao sendo enviados da aplicagio para a camada TCP. Com isso, os pacotes nao so numerados seqtiencialmente como estamos mostrando em nos ilustrag mas sim numerados de acordo com 0 mimero de ordem do primeiro byte do pacote dentro do fluxo de dados que esté sendo recebido pelo protocolo TCP. Essa numeragao € armazenada no cabecalho TCP dentro de um campo chamado Nrimero de Segiiéncia. Pores emplo, vamos imaginar que a area de dados que esteja sendo usada no pacote TCP seja de 536 bytes. Assim, o ntimero de seqtiéncia do primeiro pacote sera I, o mimero de seqiiéncia do segundo pacote sera $37 ¢ o néimero de seqiiéncia do terceiro pacote sera 1.073, ¢ assim por diante. Caso Cows + 103 Repos é Computanones Curso Conetsto Quando a maquina receptora recebe um pacote, ela tem de enviar uma mensagem de confirmacao de recebimento — 0 acknowledge, como vimos. No protocol TCP, o recep- tor na realidade envia ao transmissor 0 niimero de sequi \cia do préximo pacote que ele espera receber. Continuando com 0 nosso exemplo, ao receber o primeiro pacote, 0 receptor ira enviar como confirmagao de recebimento 0 ntimerto 537, que € 0 mamero. de seqiiéncia do segundo pacote. Essa informagao de confirmagao de recebimento ¢ enviada no cabegalho TCP dentro de um campo chamado Nimero de Confirmagao. : 0 primers pcseeniado pelo TCP nunca em um nomero de sequénia IO nimero de seqdéca do primeira pace de una OTA oreo ¢ um mimeo gerodocesorimert.Usomosonimero 1 apes pra facts nsss exces. Conexio A comunicacdo entre duas aplicagdes em duas diferentes maquinas é chamada conexdo. © protocolo TCP ¢ responsavel por abrir uma conexao, manté-la ¢ fecha-la. A abertura da conexao é feita através de um proceso chamado handshake (aperto de mao), onde © transmissor ¢ o receptor iro confirmar qual é 0 ntimero de seqdéncia inicial que eles usarao (apesar de estarmos dando exemplos usando o primeiro nimero. de seqiiéncia como sendo 1, isto na realidade nao ocorre). O transmissor envia um pacote contendo apenas 0 ntimero de seqiiéncia eo bit SYN do campo Bits de Controle ativado (ver Estrutura do Segmento TCP adiante). O receptor pega esse niimero de seqiiencia © confirma o recebimento do pacote, respondendo com um pacote contend o niimero de seqiiéncia ¢ os bits SYN e ACK ativados. © transmissor, ao receber esse pacote, envia um pacote de confirmacao de recebimento de volta ao receptor. Como vocé pode perceber, ao final hé uma confirmagao do transmissor, 0 que néo é muito ustial nesse tipo de proceso. Por isso, esse procedimento é também chamado de handshake de trés tempos (three-way handshake). A conexio é mantida através do envio de dados do transmissor ao receptor. Se tudo correr bem durante @ conexdo, 0 transmissor id fechar a conexao quando ele nio tiver mais dados para serem transmitidos. Esse fechamento ¢ feito da mesma forma 104 + Cs Gains 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 o bit de controle FIN ativado. receptor, ao receber um pacote com esse bit ativado, informa a aplicagao receptora que os dados chegaram ao fim e, a0 mesmo tempo, envia um pacote de confirmagao, ao 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 confirmagio de recebimento, fechando a conexao. Socket Temos falado que o TCP recebe pacotes e os entrega ao protocolo de aplicagao que esteja esperando receber aqueles dados. Isso ¢ feito através do uso do conceito de portas. Assim, quando 0 TCP recebe um pacote destinado a porta 80, ele sabe que deve entregar aqueles dados ao protocolo HTTP (que por sua vez os entregaré ao browser Internet do usuario, por exemplo). Ouseja, a porta serve para identificar o tipo de aplicagao que gerou o pacote e para qual tipo de aplicagao os dados devem ser entregues. Acontece que esse conceito por si s6 nao resolve um outro 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. Seo protocolo TCP simplesmente entregar 0 pacote de dados a camada de aplicacdo, como ela saberé a qual browser ela deverd entregar os dados recebidos? Cada porta permite o uso de um conceito chamado socket. O socket define uma conexdo dentro de uma porta. Com o uso deste conceito, pode-se ter varias conexdes diferentes em uma mesma porta. Assim, dois browsers podem estar abertos simultaneamente e carregando dados totalmente diferentes da rede. A camada de aplicagao sabera para qual browser devera entregar os dados rec bidos por causa da existéncia da informagao de qual é © socket de destino dentro da area de dados do pacote, inserida pela camada de aplicagdo 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 Corso Comers 105 SSS eee Reps o& Conpuranones Curso Cowpusto um socket passive monitorando uma determinada porta a espera de uma conexao. Ao receber uma conexdo, esse socket passivo pode gerar um socket ativo ou socket passive para aquela conexdo, dependendo do sentido (se for uma transmissao ou uma recep¢ao). JaNeLa Para aumentar o desempenho do envio de pacotes, 0 protocolo TCP trabalha com o conceito de jantela. ym esse COnceito, o transmissor pode enviar outros pacotes antes ilo. Na Fi 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. de ter recebido a confirmagao de recebimento do primeiro pacote envi Tame | agar oom 4 oe wommer] ee |_ Peace a oaas bk weed [| resem | Tronsmissoe Receptor Les [eb ono ree we see 2 Pacotes Figura 3.31: Exempla de uma transmissio usando wma janela de quotra pacotes. Esse sistema aumenta 0 desempenho do protocolo, j4 que o tempo que teoricamente seria perdido entre a transmissao do pacote € a recepgdo de sua confirmagao é usado para transmitir mais pacotes. No exemplo dado, quando o transmissor recebe a confirmagao do primeiro pacote, 0 quinto pacote sera enviado (j4 que os pacotes 2, 3 € 4 ja estao na rede). Caso 0 tempo expire e o transmissor no receba a confirmagao de recebimento do primeiro pacote, ele € retransmitido. O procedimento continua analogamente para os demais pacotes. 106% Cis0 Conn Geriruo 3 — TCP/IP. No caso especifico do protocolo TCP, o sistema de janela funciona de um: pouco mais complexa do que a apresentada. Neste protocolo a janela nao € contada em ntimero de pacotes a serem enviados, mas sim em ntimero de bytes a serem enviados. maneira um, Além disso, 0 tamanho da janela no protocolo TCP é varidvel e pode ser alterado a qualquer instante, de forma a melhorar © desempenho da conexio. Dessa forma, a janela opera no fluxo de dados enviados pela aplicagdo € que estao sendo empacotados pelo protocolo TCP. Na Figura 3.32 vemos 0 exemplo dese fluxo de dados 0 funcionamento da janela, onde ilustramos a transmissao dos 11 primeiros bytes de uma conexao e 0 uso de uma janela de sete bytes. O protocolo TCP utiliza trés ponteiros de janela. © primeiro (ponteiro 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, Em outras palavras, 0 ponteiro do meio (ponteiro 2) vai “correndo” da esquerda para a direita a uma velocidade fixa, até atingir o limite da janela. A propria janela “anda” medida em que os primeiros bytes enviados vao sendo confirmados, criando espago para esse ponteiro ir “correndo”’ ‘o exemplo da Figura 3.32, os bytes 1 2 jé foram enviados ¢ tiveram a recepgao confirmada. Os bytes de 3 a 6 ja foram enviados mas ainda nao tiveram a sua recepgio contirmada. Os bytes de 7 a 9 ainda serdo enviados. E os bytes a partir do décimo s6 poderao ser enviados quando a janela se mover, o que ocorrera a medida que a recep¢ao dos bytes for sendo confirmada Como vocé pode perceber, o sistema de janela do TCP é extremamente r lida diretamente com bytes, ¢ nao com pacotes. pido, ja que ele Janela 12/39 4 5 617 8 8/10 1 ove t Tie il Ponteira 1 Ponteiro 2 Pontwica 3 Figura 3.32: Foncionamento da jonele do protocol TCP. Curso Curtro <1O7 Reoes o& Conpumipones Curso Conptsto E claro que os bytes vio preenchendo a area de dados do pacote TCP (0 pacote TCP é também chamado segmento). Quando atingem o tamanho definido do segmento, um novo segmento é criado. Isso se repete até que todos os bytes tenham sido transmit idos. © tamanho padrao do pacote IP é de 576 bytes. Como o cabegalho IP padrao possui 20 bytes e 0 cabecalho TCP padrdo 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 € definido em um campo do cabegalho do segmento TCP. Esse campo possui 16 bits ¢, com isso, o tamanho maximo da janela TCP é de 64 KB (65. inferior a 32 KB. 5 bytes, 2" - 1), mas normalmente o valor da janela TCP é OrGaNiZAcio Dos SEGMENTOS RECEBIDOS Por causa do uso de uma janela, 0 receptor pode receber os pacotes de dados fora de ordem, Em principio, 0 protocolo TCP da maquina receptora pode colocar os segmentos recebidlos em orem facilmente observando o campo Naimero de Seqiiéncia dos segmentos ‘Também vimos que a confirmacio de recebimento no protocolo TCP é feita nao confirmando © pacote recebido, mas sim enviando ao transmissor 0 ntimero de seqiténcia do proximo pacote que cle espera receber ~ 0 que teoricamente acabaria dando no mesmo, s6 que na pratica acaba gerando um outro problema. Para que vocé entenda melhor essa questo, imagine que o protocolo TCP esteja trabalhando com uma area de dados de $36 bytes. Os trés primeiros pacotes de uma sequiéncia foram enviados, com ntimeros de sequéncia 1, 537 ¢ 1.073. Caso o primeiro pacote seja perdido no meio do caminho, ao receber os outros dois pacotes o receptor ira enviar como néimero de confirmagao para cada um desses pacotes 0 valor 1 ~ 0 nimero de seqiiéncia do proximo pacote que ele espera receber, pois ele ainda esta esperando receber © primeiro pacote. Ou seja, o transmissor ird retransmitir os trés pacotes novamente, j4 que ele n40 recebeu a confirmagao de recebimento de nenhum pacote, por incrivel que parega, j4 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”. E 0 transmissor 108 + aso Cone Goria 3 —TEP/AP ficou sem nenhum mecanismo para saber se os demais pacotes enviados chegaram corretamente ao destino. Dessa forma, o esquema de confirmagao 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 Do Secmento 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 representacdo mais didatica, na maioria dos outros livros sobre o assunto vocé encontraré a representagao mostrada na Figura 3.34, que é a representagao tradicional Bis de Cortrdle (6 bits) Janea ce btst Checksum Ce biel Ponteira de UrgBncia (16 bits) Oogles Pad (22 bits) Dados Figura 3.33: Estrutura do segmento TCP Curso Connsto + 109 eves ve Conpurapones Curso Cowpusto Ai pe ge doa ge dy gh esa gp eg Spt ga ) Figura 3.34: Mani tradonl dese reprsentr a estrutra do segmento TC. Encontramos os seguintes campos no cabegalho TCP: 4 Porta de Origem: Indica a aplicagao que originou os dados, ¢ Porta de Destino: Indica a aplicagao para a qual os dados serao entregues no receptor. + Namero de Seqiténcia: Mlentifica o ndamero do primeiro byte presente no segmento dentro do fluxo de dados gerado pela aplicag20. Por exemplo, no segundo segmento de uma transmissio onde o tamanho da area de dados usada é de 536 bytes, 0 campo Nimero de Seqiiéncia tera o valor $37, ja que o primeizo byte do segundo pacote € 0 537° byte que esta sendo transmitido. Ver t6pico Transitissao e Recepeito de Pacotes para mais dletalhes. Numero de Confirmagao: & o acknowledge (ack) do gual tanto falamos. Aqui colocado o mimero de seqtiéncia do préximo segmento que o receptor espera receber. Por exemplo, vamos supor que 0 receptor acabou de receber o primeiro segmento de uma transmissao, de uma conexao usando uma drea de dados de 536 bytes. O receptor itd responder ao transmissor com o valor 537 neste campo, informando que ele re contendo o mimero de seqiténcia 537. No t6pico Organizagao dos Segmentos Recebidos nds discutimas o uso desse campo em mais detalles. cbeu corretamente © pacote € esta esperando 0 envio do segmento ¢ HLEN ou Offset: Esse campo (Header LENght) especifica 0 tamanho do cabegalho do pacote TCP, contado em ntimeros de 32 bits, isto é, 0 ntimero de linhas existentes na Figura 3.34 (em outras palavras, 0 mimero de bits existentes no cabecalho dividido por 32). O tamanho minimo do cabegalho é de cinco palavras de 32 bits (20 bytes), sendo i esse 0 valor mais comum do campo HLEN, j4 que normalmente 0 campo Opgoes + Pad ndio é usado, Quando este campo ¢ usado, 0 valor do campo HLEN seis. T10 + Cus Cuneo Gerituio 3 - TCP/IP Reservado: Esse campo nao é usado. Bits de Controle ou Bits de Cédigo: Esses bits so usados para controle, conforme mostra a proxima tabela (0s seis bits deste campo so contados da esquerda para a direita, isto é, o bit URG € 0 primeiro da esquerda e assim por diante) Bir ‘Significado. URG 0 compo Pontsira Urgent ¢ valida ak 0 compo Nimo de Conia € vido 2 BH fox oenag dos dads ph Lal Reiioroconede = | si Sincronimo, determina 0 Nomere de Seq nol i (0 tronsmissor chegou oo Fim de seus dados Tamanho da Janela: Define 0 tamanho da janela, em bytes, que sera usada na conexdo. Ver t6pico Janela para mais detalhes. Checksum: E calculado de forma similar ao checksum do protocolo UDP, com a criagao de um pseudocabegalho. Estudaremos a inte como € feito esse calculo. Ponteiro Urgente: conexao chegar ao fim, dentro de uma mesma conexao, o bit URG ¢ ativado e este campo ¢ usado para informar a posig&o, dentro do segmento, em que os dados urgentes terminam, Por exemplo, se 0 usuario quiser abortar a conexao antes de ‘aso existam dados que precisem ser processados antes de a cla chegar ao fim, essa informagao deve ser processada antes de os dados chegarem ao fim, ou 0 usuario nao teré como abortar o processo. Esta informacao, portanto, seguira em um segmento com o bit URG ativado. Opgdes + Pad: Esse campo é opcional ¢ possui tamanho varidvel. Se nao for usado, ‘© tamanho do cabegalho TCP é de 20 bytes. Caso seja usado, 0 tamanho do cabecalho passa a ter 24 bytes. Se o campo Opgdes for menor que 32 bits, entdo sao adicionados zeros (chamados pad) até que o tamanho desse campo tenha 32 bits (4 bytes). Normalmente esse campo é usado para que o transmissor e 0 receptor troquem informagdes sobre qual sera o tamanho maximo do segmento que sera usado na conexao. Essa informagao é chamada Tamanho Maximo do Segmento ou MSS (Maximum Segment Size). Curso Connero + TNA Rees ve Cowpuravones Curso Coneteto Checksum O checksum do protocolo TCP é calculado de forma similar ao do protocolo UDP. f criado um pseudocabegalho, apenas para efeitos de calculo, que nao é transmitido. Esse pseudocabecalho pode ser visto na Figura 3.35, Nele so usados o valor do endereco IP de origem, 0 valor do IP de destino, oito zeros (campo Zeros), niimero que o protocolo TCP. representa no protocol IP (que no caso do protocolo TC Datagrama IP) ¢ 0 tamanho total do segmento TCP em bytes, incluindo 0 cabegalho, OP 6 seis, ver tépico Estrutura do Enderego de Origem B bits) (pee rR (8 bits) Figur 3.35: Psoudocabectho do protocolo TC. Dessa forma, o checksum é calculado somando-se 0 cabegalho, © pseudocabegalho e a rea de dados do segmento TCP. Mais uma vez lembrando que 0 pseudocabegalho & usado apenas para efeitos de soma, nao sendo transmitido, Forcanoo & Ewtress pos Dapos © 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 aplicacdo. Dessa forma, se ele estiver trabalhando com um determinado tamanho de segmento, ele nao 0 enviard até o momento em que ele esteja completo, cheio de dados © problema desse processo é que, se a aplicacdo resolver entregar dados em uma quantidade muito menor do que o tamanho da area de dados do segmento TCP, esses dados nunca serdo enviados - 0 TCP ficaré esperando ad cternum a aplicagao passar mais dados para encher a area de dados do segmento. V12 Giro Conner Gita 3-TCP/P Por exemplo, uma aplicacao Telnet onde o usuario tenha de entrar caracteres no teclado, um a um, 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 wm a um ea camada TCP nao pode ficar esperando encher o tamanho do segmento (imaginea situacao: voce teria de entrar $36 caracteres para que eles todos fossem enviados de uma sé vez). Por isso existe 0 bit Push (PSH). Através desse bit, a aplicago informa a camada TCP que os dados devem ser enviados imediatamente, ¢ ela ndo deve esperar receber mais dados para enviar aquele segmento, mesmo que dentro do segmento tenha apenas I byte (como, 0 caso do pressionamento de uma tecla). Protocotos pe ApLicacio Agora que j terminamos de estudar 0s protocolos das camadas mais baixas do TCP/IP, estudaremos 0s protocolos de alto nivel, isto 6, 0 funcionamento dos principais protocolos usados na comunicagao das aplicagses com a camada de transporte. E claro que exi em intimeros protocolos ¢ teriamos de escrever um livro somente sobre 0 TCP/IP para podermos descrever todos em detalhes. Por este motivo, estaremos abordando somente os protocolos de aplicagao 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 arquives. # SMTP (Simple Mail Transfer Protocol): Usado no envio e recebimento de e-mails. ncia de documentos ¢ HPTP (Hyper ‘Text Transfer Protocol): Usado na transfer hipermidia (WWW, World Wide Web). Vamos a eles. DNS (Domain Name System) Nos vimos que todas as maquinas em uma rede TCP/IP possui um endereco IP. Acontece que os enderecos IP no sio to faceis de ser recordados quanto nomes. Por isso, foi + 113 Repis ne Compuravones Cuxso Comrurro criado o sisterna DNS, que permite dar nome a enderecos IP, facilitando a localizagio de maquinas pot nés, humanos. Vocé ja conhece varios enderegos de maquinas na Internet. Enderegos como ‘www-seusite.com.br na verdade so uma conversao para a forma nominal de um enderego. IP (muito mais fécil guardar o endereco nominal www.seusite.com.br do que 0 endereco JP 200.123.123.7, por exemplo). Quando vocé entra esse enderego em um browser Internet, o browser se comunica com um servidor DNS, que € responsdvel por descobrir © endereco IP do nome entrado, permitindo que a conexao seja efetuada. Dessa forma, os servidores DNS possuem duas fungOes: converter enderegos nominais em enderegos IP € vice-versa, Sem o uso de servidores DNS, cada maquina conectada 4 internet teria de ter uma tabela contendo todos 0s enderesos IP ¢ 0s nomes das méquinas, o que atualmente ¢ impossivel, ja que existem milhdes de enderegos na Internet. Como a idéia da Internet ¢ ser uma rede ‘gigantesca — e ela foi criada justamente para isso -, 0 sistema de nomes foi criado de forma a acomodar 0 crescimento da rede. Para isso, o sistema de nomes utilizado possui uma estrutura hierdrquica. igus 3.36: Exemplo da estatora bierrquica de srvidoes a Internet, V4 + Curso Counsio Carita 3 TCP/IP Na Figura 3.36 vemos um exemplo de como funciona essa estrutura, Um servidor com, por exemplo, € responsavel por todos 0s enderegos terminados em com, assim como um servidor .com.br é responsavel 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. so ele no consiga efetuar essa conversdo (também chamada resolugdo), ele responde o pedido informando o enderego de um servidor que seja hierarquicamente superior a ele e, com isso, a maior probabilidade de conhecer 0 endereco solicitado, Se 0 outro servidor contactado também nao conhecer o endereco, ele respondera informando o enderego de outro servidor hierarquicamente superior ¢ assim sucessivamente, até o endereco ser localizado (ou nao, caso seja um endereco inexistente). Por exemplo, se voce pedir 0 endereco seusite.org.bs € o servidor de DNS de sua rede conhecer esse enderego (supondo que o dominio de sua rede seja .com.br), ele passara esse pedido parar o servidor responsavel pelos dominios .com.br, que passara 0 pedido para o servidor responsavel pelos dominios .br que, por sua vez, passaré o pedido para o servidor responsavel pelos dominios .org.br (ver Figura 3.36) que, com certeza, conhecerd esse dominio, caso ele exista (caso ndo exista, este servidor retornaré uma mensagem de erro de dominio inexistente) Em outras palavras, os enderegos Internet sao resolvidos da direita para a esquerda. No exemplo dado, seusite.org.br, primeito o pedido é enviado para o servidor .br, que enviara © 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 so 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 trafego gigantesco na Internet, por causa da replicago dos pedidos de resoluctio de enderecos para servidores hierarquicamente superiores. Para que isso nao acontega, quando 0 pedido de resolugao € atendido, 0 servidor DNS da rede local “aprende” aquele novo enderego. Assim, se aquele nome/endereso for pedido novamente por alguma maquina da rede, o servidor de DNS local podera dessa vez atender ao pedido, nao precisando ter de passar 0 pedido para outros servidores, diminuindo, assim, 0 trafego da rede. Esse procedimento é conhecido como cache. Caso Como TNS Reots o& Conutapores Curso Cowpusto £ claro que pode ocorrer de as informagdes 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, Time To Live), que informa ao servidor local durante quanto tempo ele pode ficar com aquela informagao, Quando © tempo de vida for atingido, o endereco IP e © nome do dominio sao removidos do cache do servidor DNS local, fazendo com que novos pedicl s daquele nome/endereco tenham de ser requisitados ao servidor hierarquicamente superior, atualizando, assim, o cache do servidor local. Além disso, poderia haver um congestionamento gigantesco nos servidores de DNS. principais da Internet, fazendo com que eles safssem 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 0 conceito de computagao distribuida, Além disso, na maior parte das vezes eles nao atendem diretamente a pedidos DNS: eles respondem ao pedido indicando outros servidores capazes de atendé-to. Forwaro oas Mensacens DNS Quando 0 usudrio pede uma conexao com um determinado enderego - por exemplo, digitando www.seusite.com.br dentro de um browser Internet -, a aplicagao (no caso 0 browser) precisara saber o enderego IP deste endereco para pode abrir a conexao TCP e comegar a troca de dados. Para isso, a maquina pergunta ao servidor DN local se ele conhece o enderego www.seusite.com.br. Se ele conhecer (isto é, se este endereco estiver presente em seu cache), ele executa a resolugao, pasando o endereco IP referente a este endereco para a maquina. Caso contrario, ele precisara enviar uma mensagem DNS para o servidor hierarquicamente superior para descobrir o enderego IP do enderego solicitado, los simultaneamente, Caso 0 servidor de DNS acima do servidor local nao consiga atender a algum pedido, por nao conhecer aquele enderego, ele passard os enderegos dos servidores que ele acredita que poder resolvé-lo (autoridades), As mensagens DNS podem conter varies pedi Como comentamos anteriormente, as mensagens DNS sdo tipicamente trocadas usando 0 protocolo UDP, usando a porta na Figura 3.37. € mostrada O encapsulamento da mensagem D) 116 + Gas Cur Griruo 3 - TCP/IP O formato da mensagem DNS é mostrado na Figura 3.38. Fla possui um cabegalho de tamanho fixo (12 bytes) ¢ uma drea de dados varidvel (as segdes de perguntas, respostas, autoridades e informagoes adicionais). Cabecalho | Mensagem ONS ONS Cebegalho po Cabegalho quadro Figura 3.37: Encapsvlamento da mensogem DNS. de autondades ~ (18 bts) ‘Nimero de informagies aciconas (16 bts) ‘Seco de perguntas ‘Secso de respostas ‘Seco de evrrides ‘Sagao de informagaes adicionais Figura 3.38: Frmoto das mensagens DNS. Gunso Commer > WNT Rees ne Conrutavones Cuaso Commeto Os campos existentes na mensagem DNS sao 0s seguintes: 4 Identificagao: Usado para numerar a mensagem DNS, para que a maquina que enviou a mensagem consiga identificar corretamente a resposta para a mensagem, quando ela chega. * 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; ja se ele estiver ativado, a mensagem € uma resposta, e assim por diante. Os bits sao contados da esquerda para a direita dentro deste campo. Bir Significado 0 Operocio: 0: Pergunta; 1: Resposta lod Tipo de Pergunt: 0: Padrda; 1: Revers; 2: Complementar | (obsolete); 3: Complementar 2 (obsoleto) 5 Rest de eutiade 6 Mensagem Truncode 7 Recorrénca desejado a Recor dponive doll Reservado 12015 Tipo deresposta: 0 Mao howve eras; I: iro no frmato da perguntc; 2:Folha no servidor; 3: Nome inexstente + Nimero de Perguntas: Informa o mimero de perguntas existentes no campo Secao de Perguntas. + Numero de Respostas: Idem para as respostas. Niimero de Autoridades: Idem para enderecos de autoridades. # Numero de Informagdes Adicionais: Idem para as infomagdes adicionais. As perguntas presentes no campo Segao de Perguntas possuem 0 formato apresentado na Figura 3.39. O campo Tipo de Pergunta codifica o tipo da pergunta que esta sendo feita (por exemplo, conversio de um nome em um enderego IP), enquanto 0 campo Classe da Pergunta na verdade s6 possui um valor possivel (Internet) > Co Counter Gpiruto 3 - TCP/IP Classe de pergunta (16 bits) Figura 3.39: Formato do campo Sexéo de Pergunes. Jé as respostas presentes nos campos Seco de Respostas, Segdo de Autoridades e Secao de Informagées adicionais possuem o formato apresentado na Figura 3.40, Em uma resposta contendo um endereco IP de um nome de dominio, a resposta contera o nome do dominio, o tipo do dado da resposta (no caso, enderego), a classe do dado da resposta (internet, a tinica op¢ao disponivel), 0 tempo de vida, dado em segundos (conforme discutimos anteriormente), o comprimento do campo de dados (dado em bytes) ¢ os dados em si (no caso, 0 enderego IP solicitado). Ti (18 bit Classe (16 bits) Tempo de vide (TTD (32 bits) Comprimento dos dados (16 bits) Dados Figura 3.40: Formato des respostes DNS. TeLnet O Telnet é um terminal remoto, onde o micro cliente pode fazer um login em um servidor qualquer que esteja conectado 4 rede (ou a Internet, se a rede estiver conectada a ela). Com isso, através do Telnet o usuario pode manipular o servidor como se ele estivesse sentado em frente a ele, localmente - muito embora 0 usuario possa estar a milhares de quilometros de distancia. Tudo aquilo que o usuario fizer no terminal remoto, na verdade ele estara fazendo no servidor, e no em seu computador local. Coro Como + WTO Reoes o& Conputaports Curso Compusto A Figura 3.41 mostra o uso do Telnet. Tudo aquilo que esté passando na tela do programa cliente Telnet na verdade esta ocorrendo no servidor e nao no micro do usuario. Cliente Telnet Servidor Figura 3.41; Fundonomento do Telnet, Telnet é extremamente simples. Ele usa 0 c6digo ASCII puro para a transmissao de dados, utilizando o protocolo TCP através da porta 23. Assim, quando é pressionada a tecla A no cliente é imediatamente enviado o valor 65 para 0 servidor (65 € 0 valor ASCII da tecla A). Quando estudamos o protocolo TCP vimos que Telnet geralmente usa 0 bit de controle Push para forcar a transmissao de apenas um byte de dado ~ 0 pressionamento de uma tecla, por exemplo (ver topico Forgando a Entrega dos Dados), FTP (Fite TRANSFER Protocot) Como 0 préprio nome sugere, o FTP é um protocolo usado na transferéncia de arquivos. Esse protocolo utiliza duas portas para se comunicar com 0 TCP: 21, por onde circulam informagoes de controle (por exemplo, 0 nome do arquivo a ser transferido) e 20, por onde circulam os dados. Na Figura 3.42 mostramos um esquema simplificado do funcionamento do FTP. 120 + G50 Coun Geiruto 3 - TCP/IP. Porta 20: dados Porta 20: dados ——— > Porta 21: controle Porta 21: controle _ _ Cliente FIP Servidor Figura 3.42: Funcionamento do FTP, Os micros clientes necessitam de um programa cliente FTP para terem acesso a um servidor FTP, Na cones 4o, € pedido um login e uma senha. O servidor de FTP pode ser configurado para receber conexdes andnimas, sem a necessidade de senha, para arquivos que deseje tornar pablicos O FIP opera com varios comandos, como vocé pode ver na Figura 3.43. Figura 3.43: Comandos FTP. Cuso Cone + 121 Rents o& Compuranores Curso Coneero Além disso, cada mensagem FTP é codificada de uma forma numérica (trés ntimeros, que sao processados pelo cliente FTP) e de uma forma verbal (usada somente para ser mostrada na tela, pois nao € compreendida pelo cliente FTP, ver Figura 3.44) Figura 3.44: Exomplo de uma conexio FTP. TFIP (Triviat Fite Transfer PRotocoL) Apesar de muito usado e de ser extremamente eficiente, 0 protocolo FTP € complexo de ser programado. Com isso, programas clientes FTP sdo relativamente complexos. Algumas aplicagdes nao necessitam de tanta complexidade e precisam que o programa cliente seja muito, mas muito pequeno. Um exemplo de aplicagao seria um computador sem disco rigid necessitando fazer transferéncias de arquivos ~ para carregar 0 seu proprio sistema operacional, por exemplo ~ necessitando, portanto, que o programa responsavel pela transferéncia de arquivos esteja armazenado em sua meméria ROM (¢ dai a importancia desse tipo de programa ser pequeno). 0 protocolo TFTP (Trivial File Transfer Protocol) é um protocolo para a transferéncia de arquives muito mais simples e mais rudimentar que o FTP. Para comegar, ele usa 0 protocolo de transporte UDP (utilizando a porta 69), que nao possui nenhum mecanismo 122 + (rs0 Cuneo Garituo 3— TCP/IP para verificar se o pacote de dados chegou corretamente ao destino. Com isso, €a propria aplicagdo que tem de verificar isso. O TETP divide os dados a serem transmitidos em blocos de 512 bytes. Para cada bloco enviado, o transmissor espera o receptor enviar um bloco de confirmagao de recebimento (acknowledge). Caso esse bloco nao seja recebido, 0 bloco de dados é reenviado. O primeiro bloco de dados enviado informa ao servidor se haverd uma transferéncia de um arquivo do servidor para o cliente (operagao de leitura de arquivo) ou se haverd uma transferéncia de arquivo do cliente para 0 servidor (operagdo de escrita de arquivo). canismo a Figura 3.45 nés vemos os cinco tipos de mensagens TFTP existentes. O mi de transferéncia comeca com 0 envio de uma mensagem informando a transferéncia de uum arquivo (mensagem 1 ou mensagem 2, dependendo se sera uma leitura ou uma set 0 servidor ou 0 cliente, escrita de arquivo). Em seguida, 0 transmissor (que pode dependendo do sentido que o arquivo estiver sendo transferido) envia 0 primeiro bloco de dados (uma mensagem do tipo 3), contendo 512 bytes de dados do arquivo. O recep- tot, apds receber esse bloco, envia uma confirmagao (mensagem do tipo 4). Esse processo continua até o arquivo chegar ao fim, Para terminar a conexao, o transmissor envia um bloco com menos de 512 bytes € o receptor entende isso como um sinal de fim de arquivo. Caso erros ocortam, uma mensagem do tipo 5 é usada. Opcade (16 tits) ‘ ae Taree Tees iced abies | Mods | iets) 8 "Tres Tors its) | Motos |B bits) c Nimero do blaco Dados C6 bits) (512 bytes) Figura 3.45: Mensagens TFTP, Curso Connro + 123 Repes oe Comruraoonés Curso Comeuero Como vocé pode ver, este sistema realmente ¢ muito mais simples que 0 FTP. Como baseia-se no UDP que, além de nao confirmar o recebimento dos dados, nao trabalha com 0 conceito de janela, esse protocolo deve ser usado s6 se houver real necessidade, 0 que na maioria das vezes nao ocorre. SMTP (Simete Mai. Transrer Protocot) O e-mail € hoje um dos meios mais conhecidos para nés, humanos, trocarmos informagoes. Ble é trocado através de um protocolo chamado SMTP (Simple Mail Trans- fer Protocol). Ao contrario dos outros métodos de troca de informagGes que discutimos até agora, a transferéncia de e-mails tem de levar em conta a possibilidade de o servidor de destino estar temporariamente fora do ar, pois o usuario nao ira querer ficar manualmente tentando enviar um determinado e-mail até conseguir que ele consiga chegar ao destino. A mensagem ¢ enviada pelo usudrio para o seu servidor de e-mail, que, por sua vez, trata de entregar a mensagem até o destino (muitas vezes usando 0 sistema DNS para descobrir o endereco IP da maquina para a qual ele deve enviar o e-mail). Caso o destino esteja inalcangavel por algum motivo, o servidor armazena a mensagem e tenta uma nova el por muito tempo (tipicamente transmissao mais tarde. Se 0 servidor ficar inalcan por trés ou quatro dias), o servidor remove a mensagem de sua lista de entrega e envia uma mensagem de erro ao remetente. Além disso, o sistema de e-mail deve levar em conta que 0s usuarios nao necessariamente possuem computadores com conexao 24 horas por dia com a Internet. Mesmo em redes locais conectadas a Internet, os micros clientes ndo ficam ligados diretos (eles sao desligados quando os funcionérios va embora para casa, por exemplo). Com isso, a necessidade nao s6 de um servidor para entregar as mensagens de e-mail pela Internet, mas também a necessidade de configuré-lo para receber ¢ armazenar mensagens temporariamente, enquanto 0 computador do usuario estiver desligado. Quando 0 usuario se conecta a rede, ele podera transferir o e-mail contido no servidor para o seu micro, para poder ler, editar, responder e criar novas mensagens. Os dois protocolos mais conhecidos para se efetuar essa tarefa sdo o POPS (Post Office Protocol 3) eo IMAP4 (Internet Message Access Protocol 4). A Figura 3.46 mostra esse esquema. 124 + Gus0 Cuneo Geituwo 3- TCP/IP POPSIMAPA |) ‘SMIP | | = ——$— | Ciente I Servidor de e-mail Servidor de e-mail Figura 3.46: Funconomente do e-mail A comunicagao entre os programas clientes e os servidores de e-mail é extremamente simples. Toda comunicagao é feita em ASCII puro, através de comandos extremamente simples que sao facilmente entendidos por humanos. O contetido da mensagem em si também é enviado em ASCII puro. Atualmente pode-se usar o padrao MIME (Multipur- pose Internet Mail Extensions) em lugar do ASCII. O padrao MIME. © envio de informagoes nao-, fo\ criado para permitit “II, como imagens e documentos que nao estejam no formato texto puro dentro do e-mail. Em outras palavras, para permitir o envio de arquivos anexados (em attach) ao e-mail. HTTP (HyperTExt TRANSFER ProTOcoL) A Internet nao seria a mesma sem o WWW (World Wide Web). 0 “boom” que a Internet sofreu nos tiltimos anos foi gracas a criagao desse recurso. Um site www consiste em uma série de documentos hipermidia, acessados através de um endereso, também chamado URL (Uniform Resource Locator), como, por exemplo, www.seusite.com.br. E claro que, como vimos anteriormente, quando entramos um enderego como www.seusite.com.br em um browser ele ira consultar o servidor DNS para conseguir 0 endereco IP do servidor www e, com isso, iniciar a conexao. A transferéncia de documentos hipermidia € feita através do protocolo HTTP, Um servidor www hospeda o site, enquanto um cliente (um browser Internet) faz a req) documentos lé contidos. Essa transferéncia é feita usando a porta 80 do protocolo TCP. Jo dos Esses documentos sao escritos em diversas linguagens e o browser ¢ 0 responsavel por interpretar tais linguagens. A mais simples de todas é 0 texto puro, pasando pelo famoso HTML (HyperText Markup Language) e chegando a outras linguagens mais recentes e suportadas somente pelos browsers mais novos. Corso Correa 125 Revis ve Computapones Corso Conpusto D Bi pate ie Cliente WWW (browser! Figura 3.47: Exemplo de uma comonicago HTTP Outro recurso interessante do HTTP chama-se CGI (Common Gateway Interface), que permite que programas sejam armazenados e executados no proprio servidor www, ‘emitindo uma resposta no formato HTML para ser transmitida para 0 browser do micro cliente, Esse recurso permite que documentos sejam criados dinamicamente. A comunicagao usando 0 protocol HTTP é bidirecional e permite dois recursos para a diminuigao do trafego da rede e para o aumento do desempenho. Primeiro, 0 cache, que € a copia dos Ultimos arquivos acessados no disco rigido do usuario, permite que o browser em vez de ir novamente no servidor www buscar os mesmos arquivos ja lidos, os busque do disco rigido local do usuario, aumentando 0 desempenho (jé que 6 mais rapido ler um arquivo do disco rigido do que carrega-lo através da Internet) ¢ diminuindo o trafego da rede (nao sera necessaria a transferéncia dos arquivos novamente). © segundo € chamado proxy, que permite que uma méquina intermediaria entre 0 cliente e o servidor www funcione como um cache. Por exemplo, vocé pode configurar um servidor proxy em sua rede local para ser usado como intermediario no acesso a Internet. Quando uma maquina faz acesso a Internet, os dados so copiados para © disco rigido do servidor proxy. Com isso, se alguma maquina pedir um documento que ja esteja no proxy, nao sera necessario ir na Internet buscar os dados, aumentando 126 + Grs0 Curen Carituto 3— TCP/IP ‘0 desempenho e diminuindo o trafego da Internet. O danico detalhe € que os browsers Internet de todas as maquinas deverdo estar configurados a acessar 0 proxy em vez de fazer um acesso direto 4 Internet, ou caso contrario no adiantara em nada ter um servidor proxy na rede. Fisicamente folando, o esquema mostrado na Figura 3.48 estd errado, como veremos em um momento mais oportuno. Colocomos dessa farma apenas para que oentendento do expla Fis o mas aro posvel. f Existem diversos outros detalhes referentes ndo sé. ao HTTP mas também a outros assuntos abordados neste capitulo, que fogem completamente ao escopo deste livro. Por isso, ficaremos por aqui. Curso Connon + «127 Capitulo 4 IPX/SPX Renes o& Conputanores Curso Compuero FUNDAMENTOS © IPX/SPX € 0 protocolo proprietirio criado pela Novell para o seu sistema operacional Netware, baseado no protocolo XNS (Xerox Network Systems). Como veremos, 0 funcionamento deste protocolo possui muita semelhanga com 0 TCP/IP. O IPX (Internet Packet Exchange) é um protocol que opera na camada de rede, equivalendo ao IP, enquanto o SPX (Sequenced Packet exchange) opera na camada de transporte, equivalendo ao TCP, como voce pode observar na Figura 4.1. Além disso, 0 IPX/SPX faz uso do ODI (Open Datalink Interface) para se comunicar com o driver da placa de rede (esse assunto ja foi apresentado no Capitulo 2), 001 Interface com a Rede Modelo 0S! IPXISPX Figura 4.1: Arguitetora do IPX/SPK. ‘A Microsoft chama o IPX/SPX de MWLink, OIPX é um protocolo rotedvel, assim como o IP, podendo operar em redes gigantescas e, por incrivel que parega, € um protocolo verdadeiramente autoconfiguravel (plug and play), como veremos Entao, por que hoje em dia o IPX/SPX nao é um protocolo tao popular quanto oT 1P? ‘stem varias respostas. Primeiro, no passado 0 IPX/SPX era, sim, muito mais popu- lar que o TCP/IP. Na década de 80, o Netware era o sistema operacional para redes locais, 130 ¢ Gus Cour Cariruco 4 — IPX/SPX mais usado no mercado, e ¢ justamente por isso que apresentamos um capitulo dedicado somente a este protocolo. Mas com o aumento € a popularizacao da Internet, a escolha pelo TCP/IP passou a ser dbvia, j4 que é este 0 protocolo usado na Internet — e ninguém, monta uma rede hoje nao pensando em conecté-la de alguma forma a Internet (a Novell, inclusive, a partir do Netware 4 passou a permitir 0 TCP/IP como protocolo de rede). E, como veremos depois, o protocolo SPX trabalha com uma janela muito pequena, fazendo com que 0 IPX/SPX nao tenha um bom desempenho para redes realmente muito grandes. importante notar que a maioria dos assuntos abordados neste capitulo ja foi abordada no capitulo passado. Por esse motivo, recomendamos a leitura do Capitulo 3 e estaremos assumindo que voce ja tenha o Lido. Além disso, como neste livro estamos dando énfase ao protocolo TCP/IP, estaremos, sempre que possivel, comparando o IPX/SPX a esse protocolo. IPX (Internet Packet EXCHANGE) O IPX € 0 equivalente no IPX/SPX ao IP do TCP/IP. Uma das diferengas entre esses dois protocolos € o sisterna de enderecamento usado pelo IPX. Nele, ha dois campos: rede, de 4 bytes, e nd, de 6 bytes. Como esté claro, o enderego IPX (que possui 10 bytes) € muito maior que o endereco IP (que s6 possui 4 bytes). Mas hé uma enorme vantagem neste sistema, No campo né sio colocados os 6 bytes do enderego MAC da placa de rede (ver Capitulo 2), Como cada maquina possui um enderego MAC tinico no mundo, nao é necessai o ficar criando, gerenciando e atribuindo enderegos IPX para cada maquina — ao contrario do que ocorre no IP, onde temos de atribuir um enderego IP para cada maqu Isso torna 0 protocolo IPX autoconfiguravel (plug and play), jd que ele nao precisa se preocupar em ficar atribuindo enderegos as maquinas da rede (cada maquina possui seu enderego MAC gravado em hardware, na placa de rede). Outra vantagem desse sistema é que 0 IPX ndo precisa de um protocolo como o ARP, usado no TCP/IP para descobrir o enderego MAC de uma maquina, jd que 0 seu sistema de enderegamento ja € baseado no enderegamento MAC. Isso obviamente diminui 0 trfego da rede. ‘Ocampo Rede é usado para identificar a rede em ambientes com diversas redes interligadas, Com 4 bytes é possivel termos até 4.294.967.296 redes (com até 281.474.976.710.656 méquinas em cada uma). Caso Counro # 131 Reoes ve Coneutavores Curso ComPteto No (6 bytes) Figura 4.2: Formato do enderesamontoIPX. Se 0 campo Né iver todos os seus bits clades em I (endereo de FTFFFFFFFA, gia que o dtogram IP esta ccrrogand uma mensagem de broadest (mensagem a ser eniregue a ods os méquinos da rede), Jo enderece do NB com ‘olor um indica servidr da vde local sistema de enderecamento do IPX, porém, traz um pequeno problema, mostrado na Figura 4.3. Se um servidor tiver duas placas de rede e cada placa de rede estiver conectando ele a uma rede diferente, ele terd dois enderecos diferentes. Supondo que a seja o endereco MAC da primeira placa de rede e b seja o endereco da segunda placa de rede, esse servidor teré automaticamente os enderegos 32.a e 43.b. Normalmente, na configuragao do servidor, somente um desses enderecos é usado para identifica 0 servidor. Vamos supor que o enderego 32.2 foi o escolhido. Com isso, se uma maquina na rede 43 quiser trocar dados com o servidor, ele pedir4 uma conexdo com 0 enderego 32.a (¢ nao 43.b), sendo atendido pelo roteador existente, fazendo com que os dados demorem mais tempo para chegar ao destino (j4 que a maquina da rede 43 nao sabe que pode acessar 0 servidor pelo enderego 43.b, j4 que © servidor foi configurado para informar o seu enderego como sendo 32.a), Para resolver essa situagdo, o IPX utiliza um esquema chamado miimero de rede interno, onde o servidor € configurado para divulgar 0 seu enderego como sendo o enderego de uma rede que nao existe (em nosso exemplo, rede 90 ~ normalmente 0 enderego de nd do servidor é configurado com um valor baixo, como 90.1). Com isso, quando um mi- cro da rede 43 quiser acessar o servidor, ele acessard através do endereco 43.b, jd que ele pedir para a rede a entrega do datagrama ao endereco 90.1, nao passando pelo roteador. (© mesmo ocorrerd com os micros na rede 32, que passardo a entregar os seus datagramas IPX para 0 endereco 90.1 em vez. de 32.a, atingindo, da mesma forma, o endereco 32. problema é que a configuragao de um endereco de rede interno tornou-se praxe e mesmo servidores que nao tenham duas placas de rede so configurados com um ntimero interno de rede. Com isso, o ntimero de redes rede ira utilizar um ntimero de rede para ser usado como seu ntimero interno de rede. poniveis cai bastante, jé que cada servidor da 132 + Caso Comes Griruio 4 — IPX/SPX Rede {Rede 90) Rede 43 Figura 4.3: Servidor com duos placas de rede recebe dois endereos. Da mesma forma que o IP, o IPX baseia-se em um datagrama que nao utiliza nenhum sistema para verificar se o dado chegou ou nao ao destino. £ 0 protocolo de transporte, © SPX, que envia pacotes contendo a confirmacdo de recebimento do pacote (acknow ledge). A estrutura do datagrama IPX é extremamente simples, como veremos a seguir. Estrutura 00 Daracrama IPX Como vocé pode ver na Figura 4.4, a estrutura do cabecalho IPX é extremamente simples € nao possui muito mistério. Falaremos somente dos campos que nao so facilmente compreendidos + Checksum: Apesar de existir esse campo, 0 IPX nao o utiliza, Nele todos os bits sao colocados em 1. Veremos no topico O Problema do IPX em Redes Ethernet mais informagoes sobre esse campo. *# Controle de Transporte: Esse campo equivale ao Tempo de Vida (TTL) do IP. Ele conta por quantos roteadores o datagrama ja passou. O campo Controle de Transporte é incrementado cada vez que passa por um roteador (¢ nao decrementado, como ocorre no TTL). Quando esse campo chega ao valor padrao de 16 (ou outro valor configurado no roteador), o datagrama € descartado. + Tipo do Pacote: Identifica 0 tipo do pacote, conforme a tabela a seguir. Caso Cowes + 133 Rees o€ Conputanones Curso Comucro Socket de Origam (2 bytes) ‘Area de dados. Figore 4.4: Esrtura do dotegroma IPX. # Socket: £0 equivalente, no IPX/SPX, ao conceito de portas usado pelo TCP/UDP. O niimero do socket identifica 0 protocolo acima do IPX que 0 estd usando. Na tabela usuais, a seguir mostramos os sockets m: Socket Protcle “usth ne. <= 4st st o4sth tr 134 + Gus Cowun Cariruto 4 ~ IPX/SPX Socket Protocolo 45h Net 0456h Dignétn 0 Propuena 00 IPX ent Rees ErveRner Quando 0 padrao IEEE 802 foi definido, os desenvolvedores do IPX/SPX tiveram de, obviamente, fazer com que esse protocolo pudesse ser transmitido usando esse padrao, para que esse protocolo pudesse ser utilizado em redes Ethernet. Acontece que 0s desenvolvedores nao leram direito as especificagoes do padrao IEEE 802 e acabaram fazendo besteira. Acredite, isso realmente ocorreu! A historia é a seguinte: como vimos no Capitulo 2, 0 padrao IEEE 802 define duas subcamadas para a camada 2 (Link de Dados) do padrao OST: Controle de Acesso ao Meio (MAC, IEEE 802.3) e Controle do Link Légico (LLC, IEEE 802.2). A camada LLC é encapsulada dentro da camada MAC como mostra a Figura 4.5 (recomendamos a leitura do Capitulo 2 para uma melhor compreensao desta questao). LUC (3 bytes) SNAP (5 bytes) Dados (De 38 a 1.492 bytes) Figura 4.5: Encapsulomento da comade LLC na comada MAC do IEEE 802. 0 protocolo IPX, para poder ser encapsulado em um quadro Ethernet, deve comunicar- se com a camada LLC. $6 que 0s desenvolvedores implementaram o IPX achando que ele deveria comunicar-se somente com a camada MAC (eles s6 leram a especificagio IEEE, 802.3 e nao levaram em conta 0 protocolo operando na camada 3 do modelo OSI = no caso, o IPX - que deveria comunicar-se com a camada Controle do Link L6; E 802.2), 0, seguindo as especificagoes Givso Comer + «135 Reots o& Compuapores Curso Comptsto Com isso, a camada de Controle do Link Logico (LLC) iria sobrepor os dois primeiros bytes do datagrama IPX, adicionando as informacées DSAP ¢ SSAP. Por sorte, os dois primeiros bytes do datagrama IPX so usados para armazenar a informagao de checksum. Esse campo passou a nao ser usado, tendo seus bits todos colocados em 1, que indica que esse campo nao esta sendo usado e deve ser ignorado. Assim, para que 0 protocolo IPX funcionasse corretamente em redes Ethernet, bastaria configurar 0 enderego SAP do IPX como sendo 255 (que equivale a um byte com todos (08 seus bits em 1). Ou seja, tendo a configuragao do checksum com todos os bits em 1, bastaria configurar as méquinas transmissora e receptora para interpretar o enderego SAP 255 como sendo correspondente ao IPX, resolvendo, em principio, o problema 6 que o valor 255 era reservado para indicar um endereco SAP de broadcast, isto é, quando um quadro é recebido ele deve ser entregue para todos os protocolos da camada 3 do modelo a receptora poderia entregar um quad:o OSI instalados na maquina. Com isso, a maqui enviado pelo protocolo IPX para todos os demais protocolos instalados na maquina, fazendo com que nada funcionasse corretamente (dissemos poderia porque, apesar de a definigao de endere¢o SAP de broadcast existir, poucos desenvolvedores implementaram essa op¢ao). Ou seja, a solugao apresentada, apesar de plausivel, gerava um quadro ilegal. Com isso, foram criados dois novos tipos de quadros, um usando 0 padrao 802.2 “puro” isto sem implementar 0 esquema de enderegamento SNAP) € um usando 0 formato SNAP. Com isso, passaram a existir quatro formatos de quadro para o transporte de datagramas IPX, como vemos na Figura 4.6. MAC orga Byte Guadro IPX, Ethernet padréo Cuadro PX, IEE 802.3 “puro" Canprnen hi ie saan Datayreme Px Quadro IPX, IEEE 802.2 aa S| Quadro PX, SNAP Figwa 4.6: Formatos de querosIPK. 136 + Cus0 Coun Gapiruto 4 —IPX/SPX © primeito tipo de quadro, chamado Ethernet padrao, eta 0 quadro usado pelo protocolo IPX em redes Ethernet antes dea padronizagao IEEE 802 ter sido criada. Quando esta padronizagao foi criada, 0 quadro passou a ter 0 formato IEEE 802.3 “puro” (segundo formato), que, como falamos, era um quadro ilegal, jé que o valor 255 (FFh) nos campos DSAP e SSAP — forgado pelo contetido do campo checksum a ter seus bits todos colocados em 1 - indicavam um enderego SAP de broadcast. A solugao foi a criagao de dois novos formatos de quadro: o quadro IEEE 802.2 e 0 quadro SNAP. © valor Eh nos campos DSAP e SSAP identificam 0 protocolo [PX. Ja o valor AAh nesses campos indicam que 0 formato SNAP sera utilizado, acrescentando 0s campos Codigo e Tipo (ver Capitulo 2). valor 0,0.0.81.37 no campo SNAP identifica 0 protocolo IPX. Esse valor foi herdado do padrao Ethernet original (ver Figura 4.6). Aono um mera posi umf ofits quel est epreseiodo em exer ado gris exdeil > representa um nimero de quaro bits. Assim, 0 volor Adh é um volor de 8 bits. Possomos @ representa os nimeros em [NOTA bexoecimel no mos em bind poser msl Entdo, em uma mesma rede pode haver maquinas operando com quadros Ethernet/IPX de padrdes diferentes. O problema é que maquinas configuradas para operar com um padrao mais antigo nao conseguem entender um quadro de um padrdo mais novo. Para resolver essa situacao, a solugo é 0 uso de um roteador. Neste roteador podemos contigurar um ntimero de rede para cada tipo de quadro, como voce vé na Figura 4.7. Roteador Ja f Ss lace go22 Je 8 jgo2.2 _}a02.2 ls 20828 So 7 8 E-Ethemnet padrao NAP Rede 9246 Figura 4.7: Rsolvendo o problema de formats diferentes de quads através de um roteador. Caso Conner % 137 Reoes oe Compuranones Curso Conmiero Assim, 0 tipo de quadro passa a ser identificado através do campo que identifica o nimero da rede no datagrama IPX, Em nosso exemplo, se a maquina 1 quiser conversar com a maquina 5, ela enviard o pacote diretamente para ela. Como as duas maquinas possuem: um mesmo ntimero de rede (92A6), elas se comunicam diretamente sem o uso do roteacor Quando a maquina 1 quer enviar dados para a maquina 10, 0 roteador entra em agao, fazendo a conversao entre 0s tipos de quadro utilizados, possibilitando a troca de dados. Lembramos que a representacao da parte inferior da Figura 4.7 ¢ apenas uma representagao logica, j4 que todos os computadores nesse exemplo estio fi uma mesma rede, como mostra a parte superior da mesma figura. mente presentes em SPX (Stquencep Packet EXCHANGE) O SPX trabalha de maneira muito parecida com o TCP, com a diferenga de nao trabalhar com 0 conceito de janela e, por isso, ter um baixo desempenho. Em outras palayras, 0 SPX tem de esperar receber a confirmagao do diltimo pacote enviado para poder enviar um novo pacote. J4 0 protocol SPX Il, langado junto com o Netware 4, resolve esse problema. Esta nova versao do SPX trabalha com o conceito de janela ¢ ainda permite uma quantidade maior de dados na area de dados do pacote. Niner de Confirmayso AO Wamero de Alocagao (2 bytes) Confirmacao Estendida (2 bytes) - Somente no SPX I ‘rea de dados {até 534 bytes) Figura 4.8: Formato do pacote SPX. 138 ¢ Gus0 Cuneo Geituio 4 — IPX/SPX Aeestrutura do pacote SPX pode ser vista na Figura 4.8, O sistema de envio e confirmagao funciona de maneira similar ao TCP. © transmissor adiciona ao pacote um ntimero de seqiiéncia ¢, quando o destinatério recebe o pacote, ele envia uma mensagem de confirmagao (acknowledge) informando o néimero de seqiténcia do préximo pacote que ele espera receber. Os campos presentes no pacote SPX so: . Controle da Conexao: Esse campo ¢ utilizado da maneira descrita na proxinia tabela, Qs bits 2 € 3 sao usados somente pelo protocolo SPX II. Bit Signitiado 2 Noga de tara 3 Anco eo prota 60 SPX = 4 5 pane ‘ ACK (Cnfimoxi de recoimenoreaweia} 2 5I 7 15 (Comle de waspore) ‘Tipo de Fluxo de dados: Especifica 0 tipo de dado que esta sendo transportado dentro do pacote. Valores de 0 a 253 neste campo sao ignorados pelo SPX. O valor 254 neste campo indica o fim da conexao e o valor 25S indica fim da confirmagao de recebimento de um pacote (acknowledge). No protocolo SPX II, © valor 252 indica um pedido de liberagio de ordenamento e 0 valor 253 indica uma confirmagao deste pedido. Identificagao da Conexao: Usado para identificar 0 protocolo de alto nivel que gerou os dados que esto sendo transportados pelo SPX. Equivale ao conceito de porta usado pelo TCP/UDP. Numero de Seqtiéncia: Namero que identifica 0 pacote Niimero de Contirmagao: Confirmagao do recebimento do pacote. O receptor envia aqui 0 ntimero do proximo pacote (niimero de sequiéncia) que ele espera receber. Numero de Alocagdo: Informa 0 namero de pacotes ja enviados que ainda nao tiveram o recebimento confirmado. Confirmagao Estendida: Esse campo s6 existe no protocolo SPX Il. Coso Conniro + «139 Reoes ve Conputanores Curso Courtsto SAP (Service ApvertisemeNT Protocot) © Netware utiliza um protocolo chamado SAP (nao confundir com a sigla SAP usada na camada de Controle do Link Logico, LLC, do padrao IFEE 802.2) para comunicat as maquinas na rede os recursos existentes fodas. ‘Todo servigo periodicamente (tipicamente a cada minuto) envia para todas as maquinas da rede (através de broadcast) a informacao de que servico ele é, 0 seu nome e 0 seu endereco através do SAP. Quando uma nova impressora ou um novo servidor de arquivos torna-se disponivel na rede, quase que imediatamente todos os computadores sabem disso, nao havendo a necessidade de configuragdo manual para esse tipo de deteccao. Por outro lado, as mensagens SAP congestionam a tede, ja que sao enviadas informagoes emt broadcast (isto , para todas as méquinas da rede) de minuto em minuto, Em redes pequenas isso ndo ¢ um problema, mas para redes grandes esse é um inconveniente ¢ tanto. Uma das maneizas de se livrar desse congestionamento é através da configuragao dos roteadores da rede, para nao replicarem mensagens SAP, por exemplo. Outra solugao é 0 uso do protocolo NLSP (Netware Link Services Protocol), que faz com que os roteadores da rede divulguem os recursos presentes na rede apenas uma tinica vez, s6 divulgando novamente caso haja alguma alteracao (algum recurso adicionado ou removido, por exemplo). Na verdade, 0s roteadores reenviam essa informagao a cada duas horas, © que € bem menos freqiiente do que envi las a cada minuto. Por isso, a partir do Netware 4, em vez de o sistema operacional usar o SAP, ele mantém um diretério no servidor contendo todos 0s recursos da rede. As maquinas que desejarem saber os recursos existentes na rede basta acessar esse diretorio. © protocol SAP no faz parte da pilha de protocolos IPX/SPX; ele é um recurso do sistema operacional Netware. O problema € que muita gente pensa equivocadamente que, por causa desse recurso, © protocol IPX/SPX trabalha enviando mensagens de broadcast para informar os servicos existentes na rede (assim como 0 protocol NetBEUI, como veremos no Capitulo 8) ~ 0 que nao é verdade. Enfatizando: 0 SAP é uma caracteristica do Netware, nao do IPX/SPX. 140 + Gis Conruo Capitulo 5 Renes ne Cowrutapores Curso Compteto FUNDAMENTOS Até agora falamos de protocolos nao orientados a conexio operando na camada 3 do modelo OSI (camada de rede), como o IP € 0 IPX. Esse tipo de protocol nao garante a entrega dos dados, A entrega dos dados ¢ conferida pelo protocolo que esté trabalhando acima deles, como 0 TCP e 0 SPX, respectivamente. Neste capitulo e no Capitulo 7 estudaremos dois protocolos bastante usados que operam na camada 3 do modelo OSI € que sao orientados 4 conexao, isto é, eles garantem a entrega dos dados: X.25 ¢ ATM. Esses dois protocolos e mais o Frame Relay, que estudaremos no proximo capitulo, baseiam- se no conceito de redes comutadas. © Frame Relay, apesar de ser usado em redes comutadas, um protocolo nao orientado a conexdo, diferentemente do X.25 ¢ do ATM Em redes convencionais baseadas em protocolos nao orientados a conexao, os datagramas sio enviados para a rede e os roteadores da rede decidem, dinamicamente, qual é a melhor rota para o datagrama seguir até chegar ao seu destino, Ja nas redes comutadas, 0 funcionamento ¢ diferente. Suponha que 0 computador A deseja enviar dados para o computador B usando a estrutura de redes mostrada na Figura $.1 (é claro que entre cada roteador hé uma rede local, mas nés as removemos para facilitar a compreensao). Primeiro, o computador A enviard ao roteador 1 uma mensagem pedindo para abrir uma cone: 6. com o computador B. O roteador I replicara esse pedido para o roteador 2, que o replicaré para o roteador 3, até que a mensagem chega ao computador B. O computador B, aceitando essa conexao, enviar uma resposta usando © mesmo caminho. Quando a conexao se estabelece, os dados poderio set trocados livremente nos dois sentidos (a conexao é full duplex), mas sempre usando 0 mesmo. caminho estabelecido quando A pediu uma cone: conexao é conhecido como chamada). para B (0 estabelecimento da Dessa forma, essa é a primeira caracteristica das redes comutadas: durante a conexao, 0 caminho usado sera sempre 0 mesmo. Esse caminho é chamado circuito virtual. Esse caminho, 0 circuito virtual, fica "preso” conexdo que esté em curso, mesmo que nenhum dado esteja sendo transmitido em um determinado momento. O ca “Niberado” quando a conexao é terminada, inho s6 & 142 + Cus0Comuro Goirui 5 — X.25 Figura 5.1: Foncionmento de uma rede rientade & conexio. A melhor maneira de vocé entender esse conceito é comparar redes comutadas ao sistema telefinico. Quando vocé liga para alguém, a conexdo se mantém até ela ser desligada por uma das duas partes (ou entdo “cair"), mesmo que nenhuma das duas pessoas ndo esteja falando absolutamente nada. Os roteadores permitem varias conexdes simultaneas. Assim, a conexdo de A com B 6 esté ocupando um dos canais de comunicagao existentes nos roteadores envolvidos. Supondo que 0 roteador 1 tenha 1,000 canais, ainda sobrariam outros 999 para novas conexdes. Por outro lado, na milésima primeira chamada 0 roteador iré automaticamente recusar esta ‘chamada, jé que ele nao terd nenhum canal disponivel para efetuar essa chamada, Mais uma vez a comparagao das redes comutadas com o sistema telefonico é esclarecedora. © mesmo ocorre com centrais telefnicas. Elas possuem um limite de chamadas simutténeas. Se todos os canais de comunicagao estiverem sendo usados, a central gera um sinal de ocupado em qualquer linha telefdnica que tente acessar a central. Por exemplo, se a tentativa for de uma linha telefonica que esteja conectada 4 central, um sinal de ocupado sera escutado tio logo o fone seja retirada do gancho (j4 que nao é posstvel abrir um canal para esta linha). Se uma linha conectada a uma outra central tenta ligar para uma linha conectada a central que esté com todos os seus canais ocupados, 0 sinal de ocupado sera escutado antes mesmo do término da discagem pelo numero pretendido. Em redes nao-comutadas isso nfio ocorn ‘odo roteador possui uma memoria (chamada buffer) que armazena os tiltimos datagramas recebidos. Mesmo que 0 roteador nao seja capaz de responder aos datagramas recebidos naquele momento, cles sao armazenados nessa memoria, até que o roteador fique livre para atend los. A nao ser que o trifego seja intenso demais € o roteador nao possua mais meméria disponivel para armazenar Gonso Cuneo «143 a Reves ot Computavonts Curso Comuero os datagramas recebidos, quando entéo comega a descarti-los (no caso do TCP/IP, é enviada uma mensagem [CMP informando 0 ocortido, ver Capitulo 3). A grande vantagem de reservar um canal para a conexao é 0 desempenho. Quando novas conexdes sao estabelecidas no roteador, o desempenho do fluxo de dados dos demais canais nao éalterado. Como acabamos de ver, isso nao corre em redes ndo-comutadas: os roteadores aceitam mais dados mesmo que estejam sobrecarregados, diminuindo 0 desempenho das conex6es (j4 que 0 roteador demoraré mais tempo até atender os tiltimos datagramas recebidos, pois existem outros a serem atendidos na frente deles). Dessa forma, 0 fato de os roteaclores de redes comutadas recusarem chamadas quando estao com todos 08 seus canais tomados é, na verdade, uma medida para proteger o desempenho das demais conexdes em curso, E, por fim, como dissemos, os protocols orientados & conexio, como 0 X.25 € 0 ATM, garantem a entrega dos dados. Isso significa que a cada pacote recebido ele é confirmado através de uma mensagem de confirmagao (acknowledge), 0 que no ocorre no IP eno IPX, por exemplo. Quat é 0 MetHor Tipo pe Reve? Afinal, qual € 0 melhor tipo de rede: orientada a conexao ou nao orientada a conexio? Comutada ou nao-comutada? Depende do uso. As redes orientadas a conexdio tém como vantagens a garantia da entrega dos dados. Nao toa, bancos e outras aplicagdes que necessitam dessas caracteristicas usam esse tipo de protocolo para a comunicagao de seus computadores. Redes comutadas garantem ‘0 desempenho da transmissdo, mas, em compensagio, conexdes 6 podem ser estabelecidas se houver canais disponiveis (isto é, se for possivel formar um circuito virtual entre as duas pontas da conexdo pretendida) e os custos envolvidos em geral so maiores. As redes nao orientadas 4 conexao e nao-comutadas séo baratas e, teoricamente, nao possuem limites de conexdes, mas em compensacdo o desempenho diminui conforme 0 aumento do trafego na rede (0 que nao ocorre com as redes comutadas). Dessa forma, a aplicagao € que especifica o tipo de rede a ser usada, nao importando muito quem é “melhor” ou “pior” V44 + Cis Comm Cerituwo 5 —X.25 Por que Reves Comutaoas Orientapas A CONEXAo? Como dissemos, as redes comutadas possuem uma incrivel semelhanga com o sistema telefonico. Nao ¢ a toa. Estabelecendo um canal de transm: o digital entre Ae B dessa maneira (confiavel, utilizando um protocolo orientado a conexio, e sem queda de desempenho, utilizando uma rede comutada) seré possivel integrar, através de um mesmo sistema de redes, o sistema de telefonia, de ‘TV por assinatura (TV digital), Internet, videoconferéncia, ete. £ por isso que termos como X.25 e ATM estao na moda! Hoje, a grande dificuldade ainda ¢ largura de banda para essas aplicagoes, isto 6, velocidade, especialmente para video (TV digital por ass atura e videoconferéncia). O protocolo X.25 trabalha a, no maximo, 64 Kbps, por exemplo. Apesar de existirem redes ATM operando na casa de Gbps, a grande questdo ¢ 0 custo. Esses protocolos operam nas camadas de 1 a 3 do modelo OSI e, por isso, eles nao impedem o funcionamento de outros protocolos ja existentes acima deles. Pelo contrario, como eles so basicamente protocolos que operam na camada de rede (equiyalendo ao IPe ao IPX), eles precisam de protocolos operando acima deles. Ianto que um dos assuntos mais populares nos tiltimos tempos na area de redes ‘TCP/IP trabalhando em redes ATM, como veremos no Capitulo 7. FUNCIONAMENTO DO X.25 Aarquitetura do X.25 € mostrada na Figura 5.2. Em geral quando falamos apenas "X.25" estamos nos referindo a camada Nivel de Pacote, como fica claro na figura, A camada Nivel de Link ¢ responsavel por transformar os pacotes recebidos do protocolo X.25 em quadros a serem transmitidos pela rede. © protocolo mais usado nesta camada chama- se LAPB (Link Access Protocol, Balanced). Ea camada Nivel Fisico recebe os quadros enviados pela camada superior, Nivel de Link, ¢ os transforma em sinais elétricos a serem transmitidos pela rede, O padrao mais usual nesta camada ¢ 0 X.21, que especifica a interface com o cabeamento da rede (pinos, sinais elétricos, etc.). Como vocé pode reparar na Figura $.2, as camadas Nivel de Link e Nivel Fisico do padrao X.25 sao amarradas ao protocolo X.25 como sendo parte dele, a0 contrario do que ocorre em outros protocolos como o TCP/IP eo IPX/SPX. Nestes, o protocolo pode usar qualquer outro tipo de protocolo nas camadas 1 ¢ 2 do modelo OSI como, por exemplo, o Ethernet, Curso Conner + TAS Rees ne Cowputapores Curso Cowptero o Token Ring, o FDDIe, inclusive, o proprio X.25. Isso significa que, enquanto o TCP/IP e 0 IPX/SPX podem ser utilizados em qualquer rede independente de sua estrutura fisica (tipo de cabo e como esse cabo transmite informagdes), © X.25 esta amarrado em um nico tipo de estrutura fisica, definida por suas camadas Nivel de Link e Nivel Fisico. ‘Nivel de link (LAPB) Nivel fisica (X 21) si X25 Figura 5.2: Argolteture do X.25. © protocol X.25 trabalha com dois conceitos: DTE (Data Terminal Equipment) e DCE (Data Circuit Terminating Equipment), Normalmente o DTE é um computador ¢ o DCE um roteador ou um switch, como mostra a Figura 5.3. O DCE também pode ser um modem. 0 caminho entre 0 DTE ¢ 0 DCE ¢, normalmente, uma rede local. E muiti imo interessante nota que a especificagio X.25 padrao estabelece apenas as regras de comunicacao entre o DTE e 0 DCE— ou seja, entre 0 computador A ¢ 0 roteador Ae entre 0 computador B e 0 roteador B. Em principio, a maneira como ¢ feita a comunicagao entre 0s roteadores A e B na rede da Figura 5.3 nao é uma tarefa do X.25, Um exemplo pritico é a comunicagao entre duas redes X.25 usando modems (os DCEs serdo modems e © circulo do meio sera a rede telefonica), onde os modems utilizardo os seus proprios protocolos na comunicagao entre si. Entretanto, muitas redes X.25 implementam os recursos X.25 também dentro da rede por onde os dados circularao (0 circulo na Figura 5.3), de forma a torné-la 100% orientada & conexiio. S6 que essas implementagoes nao sao padronizadas. 146 + Gas Cure Geinuio 5 X.25 Figuea 5.3: Fundanamenta do X.25. Uma caracteristica ruim em redes X.25 é 0 atraso causado pelo funcionamento desse protocolo. Cada DCE armazena os dados recebidos para depois envié-los para o destino, em vez de simplesmente comutar a origem com o destino. Em outras palavras, na Figura 5.3, os dados enviados do DTE A para o DTE B sao armazenados pelo DCE A, para entao EB. Esse mecanismo € chamado store-and-forward e causa um atraso tipico de 600 milissegundos, que é quase uma eternidade. ser enviado para o DCE B, que também os armazena, para s6 entao enviar para o D’ ‘Outro ponto de ser levado em conta € que os DCEs, por armazenarem os dados a serem transmitidos para a rede, precisam ter bastante memoria para esse armazenamento, Um roteador X.25 , portanto, mais caro que um roteador Frame Relay, por exemplo (que é um protocolo com funcionamento muito parecido com 0 X.25, mas nao usando esse esquema de store-and-forward). Para que o DTE A inicie uma comunicagao com o DTE B, existem trés possibilidades; 1, ODE A informa ao DCE A que ele quer estabelecer uma conexiio com o DTE B. Esse procedimento é conhecido como chamada. Quando a chamada ¢ estabelecida, é fechado © circuito virtual. No X.25 0 circuito virtual é chamado SVC (Switched Virtual Circuit). 2. O DCE A informa ao DTE A que o DTE B esté querendo estabelecer uma conexao com ele (ou seja, 0 DTE A esta recebendo uma chamada). 3. A conexao do DTE A com o DTE B pode ser estabelecida permanentemente. Esse tipo de conexao é chamado PVC (Permanent Virtual Circuit). A conexao PVC equivale, no sistema telefOnico, a vocé ter uma Linha Privada (LP) com uma conexdo 24 horas por dia ligando dois locais. Ja a conexao SVC equivale a uma chamada telefonica convencional, A seguir veremos como 0 protocol X.25 funciona em detalhes. Gs Coen 147 Reves vé Computavores Curso Coneueto | Niven pe Pacote (X.25) O protocolo X.2S utiliza um nimero de 12 bits para numerar os canais de comunicagao, Como o canal 0 é reservado, pode-se ter até 4.095 canais em cada DCE (2! - 1), Nos pacotes X.25 0 ntamero do canal é separado em dois campos, Grupo (com 4 bits) e Canal (com 8 bits). A seguir vamos estudar como uma conexao € estabelecida e, em seguida, como os dados | sao transmitidos. CHAMADA Para estabelecer uma conexao, 0 DTE de origem (vamos chamé-lo de A) manda um pedido de chamada para o DTE de destino (vamos chamié-lo de B). Esse pedido de chamada um pacote que possui a estrutura apresentada na Figura 5.4. Figura 5.4: Pacote X.25 de pedo de chameda. ODTEA, ao comunicar-se com o DCE A (ver Figura esteja vago. Fle coloca esse néimero no campo Néimero do Canal. © campo Tipo informa que © pacote é um pedido de chamada (para pacotes contendo pedidos de chamada, este campo possui o valor 00001011, OBh). Os campos Enderego DTE de Origem, Enderego DTE de Destino ¢ Servigos possuem tamanho varidvel, por isso a existéncia de um campo para definir 0 comprimento desses campos dentro do pacote. O campo Servigos serve para .3), escolhe um ntimero de canal que comunicar ou configurar servigos adicionais na rede X.25 (como, por exemplo, 0 tamanho da janela de comunicacao ¢ a velocidade de transmissao). Esses servigos nao fazem parte da especificagaio X.25 padrao e, portanto, variam de acordo com o desenvolvedor que esta implementando a rede X.25 (em outras palavras, esses servigos variam de acordo com a empresa que esté implementando a rede X.25). Se o DTE B aceitar 0 pedido de chamada do DTE A, ele enviaré um pacote de chamada aceita para o DTE A. Esse pacote pasando pelo DCE Be pelo DCE A ira fechar 0 circuito virtual, isto é, itd criar um SVC. O canal usado pata comunicar o DTE A com 0 DCE Aird permanecer o mesmo até o fim da conexao, assim como o canal usado para comunicar 0 DCE B com 0 DTEB. 148 + Gis0 Coureo Coriruto 5 — X.25, A conexao permanece até um dos dois DTEs enviar um pacote de término de conexdo para 0 seu DCE, chamado clear request. © DCE enviaré esse pacote para 0 outro DCE, liberando a conexao assim que 0 pedido for confirmado pelo outro DCE, desfazendo 0 circuito virtual e liberando os canais envolvidos na comunicagao. Transmissio dé Dapos © protocolo X.25 permite 0 uso de dois tipos de pacotes de dados. No primeiro tipo, chamado Médulo 8, 0 ntimero do pacote eo ntimero de confirmagao utilizam 3 bits. No segundo tipo, chamado Médulo 128, 0 ntimero do pacote € ntimero de confirmagao utilizam 7 bits, O tamanho do Médulo identifica o tamanho da janela do protocolo X.25 (explicamos 0 conceito de janela no Capitulo 3). Dessa forma, em uma conexio usando pacotes Médulo 8, 0 transmissor pode enviar até 8 pacotes antes de receber a confirmagao do primeiro pacote pelo receptor. Em uma conexao usando pacotes Médulo 128, 0 transmissor pode enviar até 128 pacotes antes de receber a confirmagio de recebimento do primeiro pacote. Aescolha entre pacotes Médulo 8 ou Médulo 128 depende da implementagio da rede. Em alguns casos, a escolha do tipo de pacote se dé quando a rede ¢ implementada. Em outros, € possivel escolher o tipo de pacote em cada chamada. A partir do momento em que uma conexao € estabelecida, nao 6 possivel alterar o tipo de pacote que esté sendo usado, o | o | 94 r creo | re | eee Figura 5.5: Esrtura do paote X.25 Médula 8. 0 ° oe cite Figura 5.6: Estrtura do pacote X.25 Médolo 128. Os campos existentes no cabegalho dos dois tipos de pacotes sio os mesmos, o que muda 6a ordem deles (0 cabegalho do pacote Médulo 128 € 8 bits maior que o cabecalho do pacote Médulo 8). © terceiro € 0 quarto bit do cabegalho indicam se 0 pacote € Médulo 8 (quando valem 01) ou se pacote é médulo 128 (quando valem 10). E dessa forma que é feita a identificagao do tipo de pacote utilizado. Curso Cuno + 149 Reoes ve Compuravores Curso Cowrusto Os DTEs podem usar o bit Q da maneira que eles bem entenderem (para identificar algum tipo de controle, por exemplo), ja que a especificagao X.25 nao define a fungao desse bit. Se 0 DTE de origem colocar esse bit em 1, ele chegaré ao DTE de destino valendo 1 (o mesmo ocorte para o valor 0). Dessa forma, a fungao do bit Q, isto é, 0 seu significado, depende do desenvolvedor que implementou 0 protocol X.25. © bit D informa se on nero de confirmacao (acknowledge) informado indica o recebimento do pacote no DTE de destino (este bit estando em 1) ou somente ao DCE. no qual o DTE de destino esta conectado (este bit estando em 0). Jé 0 bit M quando ativado indica que o pacote foi fragmentado e ha mais pacotes a serem recebidos que pertencem a um mesmo pacote original. Nos estudamos 0 conceito de fragmentagao no Capitulo 3 e veremos como funciona a fragmentacao no protocolo X.25 a seguir. A Area de dados do pacote X.25 pode ter um tamanho entre 64 e 4.096 bytes, sendo 128 bytes o valor mais comum de ser encontrado. Os demais campos sao auto-explicativos e vocé nao encontrara dificuldades em entendé-los. L importante lembrar que o X.25 é um protocolo simétrico. Ele permite transmissées e recepgdes simultaneas (isto é, comunicagao full-duplex). Com isso, enquanto um computador esta recebendo dados, ele pode, ao mesmo tempo, estar enviando pacotes de confirmagao sem, com isso, ter de parar de receber mais dados. FRAGMENTACAO Pode ser que rede de destino utilize pacotes de tamanhos menores que a rede de origem. Quando isso ocorre, os pacotes enviados precisam ser fragmentados (nds estudamos 0 conceito de fragmentagao no Capitulo 3). Apenas para que a idéia fique mais clara, devemos lembrar que um DTE é normalmente um computador e um DCE é normalmente um roteador. Assim, 0 caminho entre o DTEe 0 DCE é normaimente uma rede local. Assim, 0 que queremos realmente dizer é se 0 tamanho dos pacotes na rede de origem for maior do que os da rede de destino, 0 pacote de dados precisa ser fragmentado, como mostra a Figura 5.7. 150 + CusoCouneio Cerituwo 5 —X.25, oo |} OER mee F406 pee Bl 4 0b bnes Tea bres BRA tes 1.024 bes 028 tea 1024 bes 1.024 bea (__ sees res Figure 5.7: Fragmentag de pacotes X.25. Na Figura 5.7 mostramos uma rede de origem trabalhando com pacotes de 4.096 bytes © uma rede de destino trabalhando com pacotes de 1.024 bytes, Ao chegar no DCE de destino (um roteador), ele quebrara o pacote em varios outros com o tamanho de pacote que esta sendo usado na rede. O bit M sera ativado indicando que o proximo pacote possui informagdes que estavam, presentes originalmente no mesmo pacote em que o pacote corrente (0 bit M significa “Mais dados”). Assim, o tiltimo pacote gerado na fragmentagao de um pacote nao teré esse bit ativado, como mostra a figura, j4 que os dados do préximo pacote nao estavam armazenados junto com os demais, isto 6, fazem parte de um outro pacote. Outro detalhe interessante é que © DCE receptor itd numerar os pacotes fragmentados seqiiencialmente, independente da numeragao original, como vo Figura 5.7, onde o pacote 1 gerou no DCE de destino os pacotes de 1a 4, e 0 pacote 2 gerou os pacotes de 5a 8 pode observar na Este sistema funciona também no outro sentido, isto é, quando a rede de destino usa pacotes maiores do que a rede de origem, Essa situagdo é mostrada na Figura 5.8, onde a rede de origem utiliza pacotes de 1.024 bytes ea de destino, de 4.096 bytes. O DCE de destino junta ‘05 pacotes menores em um s6 maior antes de envid-lo A sua rede local, Repare também que ‘0s pacotes gerados possuem uma numeragdo diferente dos pacotes de origem. Curso Cuero + 151 Reots ve Cowrutapores Curso Cowptcto Te] oases J Blea] cakes = +s BY mM] 1024 yes > A] 1a2hopes _ BM] 1024 es — BI M| 1.024 byes — ae = __~* | ae Ge} Figura 5.8: Juntando pocotes menores em um s6 pacte maior em redes X.25. Nivet pe Link (LAPB, Link Access Protocot, BALANCED) O nivel de link ¢ responsavel por pegar os pacotes gerados pelo nivel de pacote ¢ encapsulé-los em forma de quadros que serao enviados para a rede. O protocolo mais usado nesta camada € © LAPB. Na Figura 5.9 vemos o pacote X.25 sendo encapsulado em um quadro LAPB. 7 a ‘Area de dados Pacate X.25 a Figura 5.9: Encapsolamento do protocol X.25. Quadro LAPB. Um quadro LAPB possui a estrutura mostrada na Figura 5.10. 152 + Gxs0 Cuneo Gerituwo 5 —X.25 Libis) I Figura §.10: Estratwra do quadro LAP. Os campos existentes no quadro LAPB séo os seguintes: + Flag: Indica 0 inicio ou o fim do quadro. Sempre possui 0 valor 01111110 (7Eh). + Enderego: Em principio, esse campo indicaria o enderego do DTE ou DCE de destino, mas isso no ocorre na pritica, j4 que o pacote X.25 (que é encapsulado dentro do quadro LAPB) j4 possui essa informagio. Por isso, esse campo € usado para indicar sentido dos comandos de controle. O valor 1 neste campo indica quadros contendo comandos do DTE para o DCE e respostas do DCE para 0 DTE. O valor 3 neste campo indica quadros contendo comandos do DCE para o DTE respostas do DTE para o DCE. + Controle: Indica o tipo de quadzo, como, por exemplo, “Informagao”, quando o quadro possui dados a serem transmitidos e “Supervisao”, quando 0 quadro possui comandos de controle, Na tabela a seguir mostramos alguns dos comandos LAPB possivels. Comando LAPB Descrixio RR Reccve Ready) ( dipostve recon coretament iti quod es toto pra _eceet roxio. _| RE ej) reronsmiso de ods os undo pore de um determinade rimeto de seine. RR Recie Wot Reedy) Ind qu dips est pronto para recaber mcs ads. DISC (1SComecon) Pedi de descoexn. DW (Disooneded Mode) Repstuo ptido de desonexn, FRR (Fol Rie) Rejta oiimo unto rece + Checksum: 0 checksum é calculado e colocado neste campo, para que o dispositivo receptor possa recalculé-lo e verificar se os dados chegaram integros. Nivet Fisico (X.21) A especificacdo X.21 6a mais usada em redes X.25. Essa especificagao determina 0 conector € 0 pinos do conector que os dispositivos de redes X.25 devem utilizar, Esse conector possuii 15 pinos e a pinagem é mostrada na Figura 5.11 e expli ida na tabela a seguir. Curso Corio + 153 Ress o€ Courutapores Curso Comrusto ‘Sinal 1 ‘No usedo = = [2 oy ti 3 Co) 4 K(a) 5 teh | [2 eee ‘ ’ 1 2 a so 4 Bib) Temporizacio dos bytes De Ss ‘Wao usndo - - © DIE utiliza os pinos T e C para transmitir dados para 0 DCE. Jé 0 DCE utiliza os pinos Re | para transmitir dados para o DTE. Dessa forma, os termos “transmissio” ¢ “recepcao" usados pelo X.21 referem-se ao ponto de vista do DTE. O pino § é um sinal de clock que informa o inicio e o final de cada bit de dado. J4 0 pino B € um sinal de clock que indica inicio € 0 final de cada byte (grupo de oito bits). Esse pino normalmente nao ¢ utilizado. 154 + Gis come Capitulo 6 FRAME RELAY Renes n€ Coururapores Curso Compucto FUNDAMENTOS O Frame Relay € um protocolo baseado em redes comutadas, assim como 0 X.25 ¢ 0 M. © funcionamento do Frame Relay € muito parecido com o do X.25. A grande diferenga é que o Frame Relay, ao contririo do X.25, ndo é um protocolo orientado & conexao. Portanto, em redes usando o Frame Relay, a entrega dos dados nao é garantida, A verificagao dos pacotes recebidos nao é feita pelo Frame Relay, mas sim pelo protocolo que estiver acima dele, igual ao que ocorte com o IP e com 0 IPX, por exemplo, onde verificagao é feita pelo TCP e pelo SPX, respectivamente. O Frame Relay opera nas camadas 2. 3 do modelo OSI, como mostrado na Figura 6.1 Como veremos adiante, o Frame Relay ¢ um protocolo extremamente simples. Recomendomes a leitura do Capitulo 5 para vocé entender o conceito de redes comutadas e de redes orientados & conexio. 7 6 5 4 —————_ a ‘Frame Relay 2 Fisica Fisica ost Frame Relay Figura 6.1: Aruitetara do Frame Relay. A vantagem do Frame Relay em relacao ao X.25 € a velocidade. Por nao possuir nenhum mecanismo para verificar se o datagrama chegou ou nao ao destino, este protocolo consegue ser mais rapido do que o X.25, jé que no X.25 0 receptor pret ‘cisa enviar uma informagao de confirmagao (acknowledge) ao transmissor a cada pacote recebido. 156 + GosoCounco Grito 6 — Frame Retay Quando um roteador Frame Relay encontra um erro com o quadro recebido, ele é simplesmente descartado, sem avisar nada tanto ao transmissor quanto ao receptor (no protocolo IP, quando isso ocorte 0 roteador envia uma mensagem ICMP ao transmis informando a ocorréncia do erro) or Além disso, 0 X.25, ao contrario do Frame Relay, utiliza 0 esquema store-and-forward, onde cada DCE (roteador, switch, modem, etc.) armazena os dados antes de passa-los adiante, O atraso, que no X.25 de 600 milissegundos, praticamente nao ocorre no Frame Relay, onde cada DCE. simplesmente envia diretamente os dados ao proximo DCE através do canal virtual estabelecido. i de se pensar que, quando quadros sao descartados, os pedidos de retransmissao sa0 Jentos, jd que sera o protocolo acima do Frame Relay que tera de fazer todo o trabalho de controle (pedindo uma retransmissao do pacote) e esse protocolo demorara um tempo até verificar que um pacote nao chegou, pedindo entao uma retransmissao. Se esse controle fosse feito pelo proprio Frame Relay, © processo de retransmissio de pacotes seria mais rapido. Isso ¢ verdade. Por outro lado, se o Frame Relay tivesse incorporado um sistema de retransmissio de pacotes, ele seria um protocolo mais lento, ja que ele teria de enviar uma mensagem de contirmagao a cada pacote recebido, perdendo todo o propésito para o qual ele foi criado: ser um protocolo rapido. O fato € que o X.25, que incorpora esse sistema de confirmagao de recebimento, foi criado na década de 70, quando linhas de transmissio igitais eram uma raridade. O excesso de confiabilidade foi criado justamente para resolver problemas de transmissa0 encontrados em linhas anal6gicas, tipicamente linhas privadas alugadas das operadoras de telefonia. Tanto que a velocidade maxima do protocolo X.25 - 64 Kbps ~ reflete bem essa realidade. Na maioria das vezes os DCEs em redes X.25 eram modems, fazendo a interligagdo de duas redes através de uma linha privada analogica, Jé 0 Frame Relay foi criado em uma época em que linhas digitais ja estavam disponiveis, onde a taxa de ertos € muito baixa e, portanto, as retransmissoes de pacotes perdidos ou com erros nao sao tao freqiientes quanto em linhas analégi as, A interliga usando o Frame Relay ¢ tipicamente feita usando-se canais 1 (de 1,544 Mbps, padrao usado nos Estados Unidos) ou E1 (de 2 Mbps, padrao usado na Europa e no Brasil). £ Jo de redes Curso Commo «157 eves 0& Computanones Curso Compisto possivel também usar canais T1 ou E1 fracionarios (isto é, usando taxas menores que as taxas maximas, pagando-se menos pelo servigo). Para quem nao sabe, esses canais podem ser alugados das empresas que oferecem redes piiblicas, como a Embratel. Dessa maneira, a demora na retransmisséo de um pacote é compensada pela velocidade na transmisséo de dados. Além disso, a taxa de erros é baixa. Ou seja, o Frame Relay ¢ um protocolo usado em redes comutadas que ¢ extremamente ripido, porém nao garante a entrega dos dados. FUNCIONAMENTO DO Frame RELAY No Frame Relay cada canal virtual é chamado de DLCI (Data Link Connection Identi- fier). Apesar de o Frame Relay permitir conexes utilizando 0 método por chamada (SVC, Switched Virtual Circuit), isto é, abrindo um canal somente quando o DTE A quiser transmitir dados ao DTE B, 0 tipo de conexao mais usado em redes Frame Relay € 0 PVC (Permanent Virtual Circuit), onde a conexao fica aberta permanentemente, ¢ € estabelecida pelo provedor do servigo. Em redes Frame Relay 0 DCE é chamado né. Assim como um DCE, um né pode ser qualquer dispositivo que esteja fazendo 0 chaveamento da rede: um roteador, um switch, um modem, etc. Como © ntimero do canal DLCI é armazenado em uma varidvel de 10 bits no quadro Frame Relay, em prinefpio existem 1.024 canais em cada né (2), permitindo, portanto, até 1,024 conexées. Entretanto, como veremos adiante, € possivel aumentarmos 0 tamanho do cabegalho do quadro Frame Relay, de forma a usarmos mais bits para o enderecamento DLCI. Nesse caso, ha duas opgées: usar mais oito bits (aumentando © niimero de possiveis canais para 262.144) ou usar mais 16 bits (aumentando o ntimero de possiveis canais para 67.108.864) Tipicamente as redes Frame Relay so redes ptiblicas, podendo ser alugadas de uma empresa que oferece redes piiblicas para conectar duas redes de uma mesma organizacio (ver exemplo na Figura 6.3) como, por exemplo, a Embratel. Quando o servico é 158 + Grs0 Cunew Cariruto 6 — Frame Reuay contratado, duas informagées sao solicitadas: a velocidade maxima de transferéncia, ou seja, a velocidade do link da sua rede com a rede Frame Relay, ¢ a velocidade média de transmissao, chamada CIR (Committed Information Rate), Avelocidade média, CIR, é usada para detectar 0 congestionamento da rede. Voce deve estar se perguntando o seguinte: “se a rede é comutada, como pode haver congestionamento, ja que a rede esta fazendo a ligagao direta do transmissor com o receptor?” O que ocorre é que a rede pode usar linhas de comunicagao de diferentes velocidades. Por exemplo, considere a Figura 6.3. A linha comunicando 0 roteador 1 a0 n6 1 pode usar uma velocidade diferente da linha comunicando 0 né 3 ao roteador 2. Imagine a situagao de um roteador recebendo informagoes de um lado a 2 Mbps e tendo de envid-las para uma rede do outro lado a apenas 1 Mbps. Normalmente, como as redes nao ‘operam transferindo dados o tempo inteiro, essa comunicagao € possivel, O roteador possui um buffer, que é uma meméria temporaria, onde ele vai armazenando os quadros que vao chegando. Quando dados param momentaneamente de entar (j4 que as redes normalmente nao operam transferindo dados 0 tempo todo), 0 roteador € capaz de colocar suas transmissoes “em dia”, isto &, enviar os dados que estdo no buffer para a rede de de: Entretanto, se a rede mais rpida enviar mais dados que o roteador é capaz de armazenar, © congestionamento ocorre € o roteador tera de comegar a descartar quadros recebidos, j4 que o buffer do roteador estara cheio. Se a velocidade de transmissdo de quadros for maior que o CIR estipulado na entrada da rede Frame Relay (n6 1 na Figura 6.3), isso indica uma boa probabilidade de essa transferéncia de quadros acima da velocidade média gerar um congestionamento na rede. Por isso, quando a transmis: de quadros acima da velocidade média estipulada (CIR) ocorre, os quadros Frame Relay terdio 0s seus bits DE ativados, como uma forma de indicar a origem de um possivel congestionamento, jé que a rede est transmitindo dados acima de sua taxa de tray feréncia considerada normal. Em caso de congestionamento na rede Frame Relay, 05 quadros com o bit DE ativado serdo os primeiros a serem descartados. Voltaremos a falar nesse assunto no topico Congestionamento, Provedores de redes Frame Relay mais baratos configuram o CIR como zero, fazendo com que todos os quadros Frame Relay enviados pela rede de origem tenham esse bit Gso Cowen 159

Você também pode gostar