Prévia do material em texto
AULA 6 ARQUITETURA E PRÁTICAS TCP/IP I E II Prof.ª Cassiana Fagundes da Silva 2 CONVERSA INICIAL Ao longo dos anos, com a evolução tecnológica, observa-se que cada vez mais as pessoas estão conectadas em seus dispositivos eletrônicos. E, neste sentido, há necessidade de que as redes de computadores acompanhem essa evolução e se interliguem a todos os tipos de dispositivos. Com essa modernização tecnológica, muitas organizações adotam vários tipos de redes de computadores, pois essas podem ser locais, metropolitanas, móveis, entre outras. Na grande maioria das vezes, é necessário que todas essas redes sejam interligadas e, principalmente, que funcionem adequadamente. Nesse contexto de interligação de redes, é necessário que vários protocolos sejam aplicados a cada camada de rede, de modo correto e seguro. Desta forma esta aula tem como objetivo: descrever os conceitos de interligação de redes; entender o funcionamento do roteamento em redes e fragmentos de pacotes; conhecer o funcionamento da camada de rede; conceitos de IPv4; conceitos de IPv6. CONTEXTUALIZANDO Conforme descrito anteriormente, as redes de computadores são de diversos tipos, que precisam ser interligados devido à necessidade das organizações e dos protocolos da Internet e Ethernet. Dessa forma, é necessário entender como a interligação de redes é importante para a troca de informações entre os protocolos e camadas de rede. É preciso também entender a evolução dos protocolos de IP nas versões 4 e 6. TEMA 1 – INTERLIGAÇÃO DE REDES Atualmente, nota-se que existe uma diversidade de redes, incluindo PANs, LANs, MANs e WANs, assim como as redes de telefone fixo e móvel, Internet por cabo, Ethernet, entre outras. Assim, vários protocolos estão sendo utilizados em cada camada dessas redes; quando duas ou mais redes são interconectadas, são denominadas de rede interligada ou, simplesmente, internet (com i minúsculo). Para Tanenbaum e Wetherall (2011), diferentes tipos de redes resolvem diferentes problemas, de modo que, por exemplo, a ethernet e as redes por cabo, 3 assim como a rede telefônica e as linhas da rede de energia elétrica acrescentam restrições que causam divergências nos recursos da rede. Dessa forma, pode-se dizer que as redes interligadas podem se diferenciar no modo como os pacotes são enviados de uma rede para outra, por divergirem em vários aspectos. Algumas dessas diferenças, como técnicas de modulação ou formatos de quadros distintos, encontram-se nas camadas física e de enlace de dados (Quadro 1). Quadro 1 – Diferenças possíveis entre as redes Fonte: Tanenbaum; Wetherall, 2011, p. 267. Todo e qualquer pacote enviado por uma rede necessita percorrer uma ou mais redes externas até encontrar o seu destino final. Dentre as possibilidades de escolhas, temos: a criação de dispositivos que permitem traduzir ou converter os diversos tipos de pacotes para a rede. Essa técnica tem sido tremendamente bem-sucedida, e a camada que eles propuseram por fim foi separada nos protocolos TCP e IP. Como diferentes redes podem, em geral, com diferentes formas de endereçamento, o pacote transporta um endereço da camada de rede que pode identificar qualquer host pelas três redes. O primeiro limite que o pacote alcança é quando se faz a transição de uma rede 802.11 para uma rede MLPS. A 802.11 oferece um serviço orientado a conexões; ou seja, um circuito virtual precisa ser estabelecido para cruzar a rede. Quando o pacote tiver atravessado o circuito virtual, ele alcançará a rede ethernet. 4 A Figura 1 demonstra o processamento de protocolo para essa jornada. A origem aceita dados da camada de transporte e gera um pacote com o cabeçalho comum de rede – neste exemplo, o IP. Figura 1 – Pacote cruzando diferentes redes (a); Processamento de protocolo das camadas de rede e de enlace (b) Fonte: Tanenbaum; Wetherall, 2011, p. 268. O cabeçalho de rede contém o endereço de destino final, que é usado para determinar que o pacote deva ser enviado pelo primeiro roteador. Nesse caso, remove-se o roteador do campo de dados, e o cabeçalho do quadro 802.11 é descartado. A interconexão de redes tem sido muito bem-sucedida na montagem de grandes redes, mas ela só funciona quando existe uma camada de rede comum. Na verdade, têm surgido muitos protocolos de rede com o tempo. Denomina-se roteador multiprotocolos os roteadores que são capazes de trabalhar com vários protocolos de redes. Isso é, é necessário ou traduzir os protocolos, ou permitir a conexão por um protocolo de camada mais alta. Uma conexão em uma camada mais alta, usando o TCP, requer que todas as redes o implementem, para que posteriormente limite-se o uso das redes em aplicações quer usam TCP. Normalmente, a interligação de redes é uma tarefa árdua, porém em situações em que os hosts de origem e destino encontram-se na mesma rede, e outra rede encontra-se entre elas, é possível adotar a técnica de tunelamento. 5 Como exemplo dessa técnica, pode-se pensar na seguinte situação: imagine que você precisa encaminhar um pacote IP a determinado escritório em Londres por meio de um host. Para que isso seja possível, em Paris um host constrói um pacote com o endereço IPv6 em Londres, que por sua vez o envia para um roteador multiprotocolo, conectando a rede IPv6 de Paris à Internet de IPv4. Dessa forma, ao receber o pacote IPv6, o roteador o encapsula com um cabeçalho IPv4 endereçado ao lado IPv4 do roteador multiprotocolo que se conecta à rede IPv6 de Londres. Outra forma de entendimento dessa técnica é por meio da locomoção de uma pessoa dirigindo um carro de Paris a Londres. Neste exemplo, pode-se perceber que as velocidades de tráfegos são diferentes em cada uma das regiões; isto é, na França, a velocidade de tráfego é baixa e os automóveis utilizam sua própria energia. Porém, quando chegamos ao canal da mancha, o automóvel é colocado em um trem de alta velocidade para que possa ser transportado para a Inglaterra, por meio do Eurotúnel. Nota-se neste caso que o carro é transportado de um local para outro como sendo uma carga. Ao chegar ao destino, o carro retorna ao tráfego de baixa velocidade, e volta a consumir sua própria energia. O mesmo acontece em uma rede externa com a técnica de tunelamento. Assim, o tunelamento é bastante usado para conectar hosts e redes isoladas usando outras redes. TEMA 2 – ROTEAMENTO EM REDES E FRAGMENTAÇÃO DE PACOTES O roteamento em redes interligadas é semelhante ao roteamento em uma única rede, mas há algumas outras complicações. As redes podem usar internamente diferentes algoritmos de roteamento; isto é, uma rede pode usar o roteamento de estado de enlace e outro roteamento por vetor de distância. Porém, os algoritmos de estado de enlace precisam conhecer a topologia, ao passo que os algoritmos por vetor de distância não apresentam essa necessidade; essas diferenças apenas não deixam claro como se encontram os caminhos mais curtos pela rede interligada. Tanenbaum e Wetherall (2011) afirmam que as redes usadas por diferentes operadoras normalmente ocasionam problemas maiores. Primeiramente, os operadores podem ter diferentes ideais sobre qual é um bom caminho pela rede. Dessa forma, um operador pode querer rotear com o menor atraso, ao passo que outro pode querer a rota menos dispendiosa. 6 Outra situação seria se o operador não desejar que outro operador conheça os detalhes dos caminhos em sua rede, isso porque talvez os pesos e os caminhos contenham informações confidenciais que representa uma vantagem comercial competitiva. Cabe ressaltar que todas essas considerações são uteis e levam a um algoritmo de roteamento de dois níveis. Dentro de cada rede, um intradomínio é usado para o roteamento. Já entre as redes que compõem as redes interligadas, é usado um protocolointerdomínio; todas as redes podem usar diversos protocolos intradomínio, mas precisam usar o mesmo protocolo interdomínio (Maia, 2009). Nesse contexto, os dois níveis normalmente não são estritamente hierárquicos, pois caminhos muito abaixo do ideal podem resultar em uma grande rede internacional e uma pequena rede regional, se ambos forem considerados uma única rede. Em relação a fragmentação de pacotes, cada rede é responsável pelo tamanho máximo adotado por seus pacotes. Segundo Tanenbaum e Wetherall (2011, p. 271), as principais causas para essa limitação são: hardware, sistema operacional, protocolos, compatibilidade com algum padrão (inter)nacional, desejo de reduzir de alguma forma as retransmissões provocadas por erros, e desejo de evitar que um pacote ocupe o canal por muito tempo. Em redes interligadas, o maior problema encontrado é quando um pacote de tamanho grande deseja trafegar por uma rede cujo tamanho é menor que o necessário para permitir a travessia. Esse problema tem sido bastante persistente, e as soluções tem evoluído com a experiência obtida na Internet. Dentre as soluções existentes, uma elas é garantir que o problema não ocorra em primeiro lugar. Uma origem normalmente não conhece o caminho que um pacote tomou na rede até um destino, de modo que certamente não sabe o tamanho que os pacotes devem ter para chegar até lá. Outra solução é permitir que os roteadores quebrem os pacotes em fragmentos; cada um deles é enviado como um pacote separado da camada de rede. Além disso, há duas estratégias opostas para recombinar os fragmentos de volta ao pacote original. A primeira faz a fragmentação, causada por uma rede de pacotes pequenos transparentes, a quaisquer redes subsequentes, por meio das 7 quais o pacote deve passar em seu caminho até o destino final, conforme ilustrado na figura abaixo. Figura 2 – Fragmentação transparente Fonte: Tanenbaum; Wetherall, 2011, p. 272. A segunda estratégia é evitar recombinar os fragmentos em qualquer roteador intermediário; isto é, quando um pacote é fragmentado, cada fragmento é tratado como se fosse o pacote original. TEMA 3 – CAMADA DE REDE DA INTERNET A camada de rede da Internet é de suma importância; para entender melhor esse quadro, é necessário o entendimento dos princípios que auxiliam o bom funcionamento desse projeto de rede. Segundo Tanenbaum e Wetherall (2011, p. 273) os princípios são enumerados e discutidos na RFC 1958: certifique-se de que funciona; mantenha a simplicidade; faça escolhas claras; explore a modularidade; espere heterogeneidade; evite opções e parâmetros estáticos; procure um bom projeto, ele não precisa ser perfeito; seja rígido ao enviar e tolerante ao receber; pense na escalabilidade e considere desempenho e custo. O primeiro princípio diz respeito à funcionalidade do projeto; isto é, ao desenvolver qualquer protótipo se certifique que funciona, e não o finalize enquanto não conseguir se comunicar com sucesso com todos os envolvidos. Em relação à simplicidade: é necessário analisar as diversas opções e, então, escolher as mais simples, em caso de dúvidas. Essa simplicidade acaba sendo importante também na escolha clara das decisões, principalmente quando há mais de uma opção. A modularidade permite entender as camadas de forma transparente, independentemente umas das outras. Isto é, caso seja necessário modificar uma camada, não é necessário alterar as camadas inferiores ou superiores, pois os itens alterados não exercem influência e não são afetados. 8 Tratando-se de um projeto de redes, normalmente há diversos hardwares e instalações diferentes. Neste sentido, quanto mais simples, geral e flexível for o projeto, melhor é a forma de tratar essa heterogeneidade. O mesmo pensamento serve para os parâmetros estáticos, pois a falta de flexibilidade nos parâmetros muitas vezes dificulta o tráfego na rede. Quanto ao item destinado a procurar por um bom projeto, refere-se a situações em que os projetistas não sabem ou desconhecem a solução para a complexidade de determinado problema. Como solução, é necessário que o projeto gerado não seja descontinuado, e que as exigências sejam discutidas com as partes interessadas. Quando os pacotes são enviados pela rede, é necessário adotar um padrão rígido de tráfego. Outro ponto de suma importância é relacionado à escalabilidade; isto é, se o sistema tiver de manipular milhões de hosts e bilhões de usuários de forma efetiva, nenhum banco de dados centralizado de qualquer tipo será tolerável, e a carga deverá ser espalhada da maneira mais uniforme possível pelos recursos disponíveis. Por fim, outro ponto importante é o desempenho e o custo de uma rede: quanto mais cara, e quanto menor for o desempenho, pior será a adesão ao seu uso. O IP é apontado como elemento que possibilita à Internet se manter unida, e tem como principal objetivo fazer a interligação entre os diversos tipos de redes. Na Internet, a camada de transporte recebe os fluxos de dados e os divide para que possam ser enviados como pacotes IP. Vejamos o exemplo ilustrado na figura a seguir: um pacote originando-se em um host na rede doméstica precisa atravessar quatro redes e um grande número de roteadores IP, antes que consiga chegar à rede da empresa na qual o host de destino está localizado. 9 Figura 3 – A Internet é uma coleção interconectada de muitas redes Fonte: Tanenbaum; Wetherall, 2011, p. 274. Na prática, isso é bastante comum, e existem muitos caminhos maiores. Existe também uma conectividade redundante na Internet, com backbones se ISPs conectando-se uns aos outros em diversos locais. Sendo assim, a tarefa dos protocolos de roteamento IP é decidir quais caminhos serão usados. TEMA 4 – IPv4 Segundo Tanenbaum e Wetherall (2011, p. 275), “um datagrama IPv4 consiste em uma parte do cabeçalho e uma parte de dados. O cabeçalho tem uma parte fixa de 20 bytes e uma parte opcional de tamanho variável”. A figura a seguir ilustra o formato do cabeçalho IPv4 do protocolo Internet. Figura 4 – Cabeçalho IPv4 Fonte: Tanenbaum; Wetherall, 2011, p. 275. 10 Nesse cabeçalho, os bits são transmitidos sempre nas seguintes direções: esquerda para a direita e de cima para baixo, sempre com o bit de mais alta ordem do campo Versão aparecendo por primeiro. O campo Versão apresenta como funcionalidade o controle da versão do protocolo a qual o datagrama pertence. A versão 4 domina a Internet hoje; incluindo a versão no início de cada datagrama, é possível ter uma transição entre as versões por um longo período. Como o tamanho do cabeçalho não é constante, existe um campo denominado de IHL, que informa seu tamanho em palavras de 32 bits. Sendo o valor mínimo 5, quando não há nenhuma opção presente. O valor Máximo desse campo de 4 bits é 15, que limita o cabeçalho a 60 bytes, e, portanto, o campo opções a 40 bytes. Já o campo Serviços diferenciados é um dos poucos campos que mudaram seu significado com o passar dos anos. Originalmente era conhecido por Tipo de Serviço, porém ainda é destinado a distinguir entre diferentes classes de serviços, isto é, são possíveis várias combinações de confiabilidade e velocidade. O campo Tipo de serviço fornecia anteriormente 3 bits para a prioridade de sinal e 3 bits para a sinalizar se um host se importava mais com atraso ou confiabilidade. Quando os serviços diferenciados foram projetados, a IETF reutilizou esse campo, desta forma os seis bits superiores são usados para marcar o pacote com sua classe de serviço. E os 2 bits inferiores são usados para transportar informações explicitas de notificação de congestionamento, como se o pacote a tivesse experimentado. (Tanenbaum; Wetherall, 2011, p. 275) O campo Tamanho total é responsável por incluir tudo que existe no datagrama, como o cabeçalho e os dados. Por outro lado,o campo Identificação destina-se a permitir ao host de destino determinar qual o datagrama que pertence a um fragmento (Tanenbaum; Wetherall, 2011). Informações relacionadas ao datagrama a que um fragmento pertence são organizadas no campo Deslocamento. Segundo Tanenbaum e Wetherall (2011, p. 276), “todos os fragmentos de um datagrama, com exceção do último, devem ser múltiplos de 8 bytes, a unidade elementar de fragmento”. Já o campo TTL é um contador usados para limitar a vida útil dos pacotes. Esse campo originalmente deveria contar o tempo em segundos, permitindo uma vida útil máxima de 255s. Esse contador deve ser decrementado a cada hop e supõe-se que ele seja decrementado diversas vezes quando estiver enfileirado durante um longo tempo em um roteador. O campo Protocolo informa a que processo de transporte o datagrama deve ser entregue. O TCP é uma possibilidade, mas também há o UDP e alguns outros. A numeração dos protocolos se aplica toda a Internet. Os protocolos e outros números atribuídos foram listados inicialmente na RFC 1700, mas hoje eles estão contigo em um bani de dados on-line localizado em www.iana.org. (Tanenbaum; Wetherall, 2011, p. 276) Ainda segundo Tanenbaum e Wetherall (2011, p 2760), “os campos Endereço de origem e Endereço de destino indicam o endereço IP das interfaces 11 de rede de origem e destino”. O campo Opções tem como finalidade inserir informações relevantes e posteriores dos protocolos, possibilitando ideias novas e evitando a alocação de bits de cabeçalho para informações raramente necessárias. Já a opção Security mostra o nível de segurança da informação. Na pratica, todos os roteadores a ignoram, pois, sua única função prática é ajudar os espiões a descobrir mais facilmente onde estão as melhores informações. A opção Strict source routing fornece o caminho completo da origem ao destino como uma sequência de endereços IP. O datagrama é obrigado a seguir exatamente essa rota. Essa opção é mais útil principalmente para os gerentes de sistemas enviarem pacotes de emergência quando as tabelas de roteamento estão danificadas ou para fazer medições de sincronização. A opção Loose source routing exige que o pacote percorra uma lista de roteadores específicos, na ordem especificada, mas permite que ele passe o pior outros roteadores durante o percurso. A opção Record route informa aos roteadores ao longo do caminho que eles devem anexar seu endereço IP ao campo Opções. Por fim, a opção Timestamp é semelhante à opção Record route, exceto pelo fato de, além de registrar seu endereço IP de 32 bits, cada roteador também mantém um registro de tempo de 32 bits. (Tanenbaum; Wetherall, 2011, p. 276- 277) Um recurso que define o IPv4 são seus endereços de 32 bits. Cada host e roteador na Internet tem um endereço IP que pode ser usado nos campos Endereço de origem e Endereço de destino dos pacotes. Os endereços IP são hierárquicos, diferentes dos endereços Ethernet. Cada endereço de 32 bits é composto de uma parte de rede de tamanho variável nos bits superiores e uma parte de host nos bits inferiores. Os endereços IP são escritos em notação decimal com ponto. Nesse formato, cada um dos 4 bytes é escrito em decimal, de 0 a 255. Os prefixos são escritos dando o menor endereço IP no bloco de endereços. O tamanho do prefixo é determinado pelo número de bits na parte de rede; os bits restantes fazem parte do campo de host e podem variar. Isso significa que o tamanho do endereço deve ser uma potência de dois. Como o tamanho do prefixo não pode ser deduzido apenas pelo endereço IP, os protocolos de roteamento devem transportar os prefixos aos roteadores. Porém, as vezes os prefixos são simplesmente descritos por seu tamanho, como em um ‘/16’ que é prenunciado como ‘barra 16’. (Tanenbaum; Wetherall, 2011, p. 278) Endereços hierárquicos trazem vantagens e desvantagens significativas. A principal vantagem dos prefixos é que os roteadores podem encaminhar pacotes com base apenas na parte de rede do endereço, desde que cada uma das redes tenha um bloco de endereços exclusivos. Como desvantagem, a hierarquia desperdiça endereços, a menos que seja cuidadosamente gerenciada. Se os endereços são atribuídos a redes em blocos grandes, haverá endereços que são alocados, mas não usados. Assim, o IPV6 é a solução para essa escassez. 12 TEMA 5 – IPv6 Deste o início dos anos 90, a pilha TCP/IP encontrou sérios problemas. Nessa época, a Internet estava sendo usada principalmente para fins industriais. A maioria das organizações começou a criar suas redes empresariais, usando a Internet como sistema de transporte. Além disso, as organizações também começaram a usar tecnologias da Web para acessar informações coorporativas, assim como outros serviços de correio eletrônico, difusão de áudio e vídeo e jogos interativos (Olifer, 2008). Desse modo, todos os fatores resultaram no explosivo crescimento do número de hosts das redes. Ou seja, nesta época novos hosts eram conectados a cada 30 segundos; consequentemente, o tipo de tráfego sofreu alterações e os requisitos de QoS tornaram-se mais rígidos (Olifer, 2008). O IPv6, (IP versão 6) é um projeto que usa endereços de 128 bits, além de ser um protocolo diferente da camada de rede, e não se interliga realmente com o IPv4, apesar de apresentar muitas semelhanças. Para Tanenbaum e Wetherall (2011, p. 286), a IETF começou a trabalhar em uma nova versão de IP, a partir dos anos 1990, com o intuito de resolver vários problemas de endereços. Dentre os principais objetivos, destacamos: aceitar bilhões de hosts, menos com alocação ineficiente de espaço de endereços; reduzir o tamanho das tabelas de roteamento; simplificar o protocolo, de modo a permitir que os roteadores processem os pacotes com ais rapidez; oferecer mais segurança; dar mais importância ao tipo de serviço, particularmente no caso e dados em tempo real; auxiliar o multicasting, possibilitando a especificação de objetivos; permitir que um host mude de lugar sem precisar mudar de endereço; permitir que o protocolo evoluísse no futuro; permitir a coexistência entre protocolos novos e antigos durante anos. A Figura 5 apresenta o cabeçalho do protocolo IPv6, com 40 bytes e oito campos. O campo Versão indica a versão do protocolo, permitindo que os roteadores identifiquem pacotes IPv4 e IPv6. 13 Já o campo Serviços diferenciado, também denominado de Classe de tráfego, é usado para distinguir a classe de serviço para pacotes com diferentes requisitos a classe de serviço para pacotes com diferentes requisitos de entrega em tempo real. O campo Rótulo de fluxo permite que uma origem e um destino marquem grupos de pacotes que têm os mesmos requisitos e devem ser tratados da mesma maneira pela rede, formando uma pseudoconexão. Na prática os fluxos são uma tentativa de ter a flexibilidade de uma rede de datagramas com as garantias de uma rede de circuitos virtuais. Quando trata-se de qualidade de serviço, cada fluxo é designado por endereço de origem, endereço de destino e número de fluxo (Tanenbaum; Wetherall, 2011, p.287) Figura 5 – Cabeçalho do IPv6 Fonte: Tanenbaum; Wetherall, 2011, p. 287. No campo Tamanho de carga útil é determinado o número de bytes que seguem o cabeçalho de 40bytes. O nome desse campo, que no IPv4 era tamanho total, foi alterado em virtude de uma pequena mudança de significado a que foi submetido: os 40 bytes do cabeçalho deixaram de ser contados como parte do tamanho, como acontecia até então. Sendo assim, essa mudança significa que a carga útil agora pode ser de 65.535 bytes em de 65.515 bytes. O campo Próximo cabeçalho pode ser simplificado, pois existe a possibilidade de haver outros cabeçalhos de extensão, isto é, esse campo informa quais dos seus cabeçalhos de extensão (atuais) seguem esse cabeçalho, se houver algum. Já caso o cabeçalho foro último IP, o campo Próximo cabeçalho revelará para qual tratador de protocolo de transporte o pacote deverá ser enviado. (Tanenbaum; Wetherall, 2011, p. 287) Objetiva-se, no campo Limite de hops, impedir que os pacotes tenham duração eterna. A proposta original de Deering, o SIP, utilizava endereços de 8 bytes; porém, durante o processo de revisão, muitas pessoas perceberam que, com endereços de 8 bytes, o IPv6 esgotaria; os endereços de 16 bytes nunca se esgotariam. 14 Cabe ressaltar e comparar o cabeçalho do IPv4 (Figura 4) com o cabeçalho do IPv6 (Figura 5), e ver o que foi mantido e o que foi descartado no Ipv6. O campo IHL foi eliminado, pois o cabeçalho IPv6 tem um tamanho fixo. Já o campo Protocolo foi retirado porque o campo Próximo cabeçalho identifica o que vem depois do último cabeçalho IP. Todos os campos relacionados à fragmentação foram removidos, pois o IPv6 dá um tratamento diferente à fragmentação. Para começar, todos os hosts e roteadores compatíveis com o IPv6 devem determinar dinamicamente o tamanho de pacote que será usado. Por fim, o campo Checksum foi eliminado, porque esse cálculo reduz o desempenho de forma significativa. Com as redes confiáveis usadas atualmente, além do fato e a camada de enlace de dados e as camadas de transporte terem seus próprios checksums, a importância de um novo é insignificante,se comparada com a queda de desempenho que ele implica. (Tanenbaum; Wetherall,, 2011, p. 289) Atualmente, os cabeçalhos de extensão são definidos por seis tipos, conforme ilustrado no quadro a seguir. Quadro 2 – Cabeçalhos de extensão do IPv6 Fonte: Tanenbaum; Wetherall, 2011, p. 289. Dentre esses tipos de cabeçalhos, observa-se que alguns apresentam formato fixo, assim como números variáveis de campos de comprimento. Nesses casos, cada item PE é codificado como uma tupla (Tipo, Tamanho, Valor). Já o Tipo é um campo de 1 byte que identifica a opção. Segundo Tanenbaum e Wetherall (2011, p. 289), o “tamanho também PE um campo de 1 byte, mas este identifica o tamanho do Valor (0 a 255 bytes), o qual contém todas as informações obrigatórias, com no máximo 255 bytes.”. 15 REFERÊNCIAS COMER, D. E. Interligação de redes com TCP/IP. Rio de Janeiro: Elsevier, 2006. MAIA, L. P. Arquitetura de redes de computadores. Rio de Janeiro: LTC, 2009. OLIFER, N. Redes de computadores: princípios, tecnologias e protocolos para o projeto de redes. Rio de Janeiro: LTC, 2008. TANENBAUM, A.; WETHERALL, J. D. Redes de computadores. 5. ed. São Paulo: Pearson, 2011.