{"id":456,"date":"2013-05-30T05:09:03","date_gmt":"2013-05-30T08:09:03","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=456"},"modified":"2013-05-30T05:09:03","modified_gmt":"2013-05-30T08:09:03","slug":"datagramas-ip-protocolo-internet","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=456","title":{"rendered":"Datagramas IP (Protocolo Internet)"},"content":{"rendered":"<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\"><b>Datagrama IPv4<\/b><\/p>\n<div>Um datagrama IP, consiste de duas partes: cabe\u00e7alho e o campo de dados que transporta o IP de origem e o IP de destino.<\/p>\n<p>O cabe\u00e7alho possui uma parte fixa de 20 bytes e um campo &#8220;Options&#8221; de tamanho vari\u00e1vel. O formato do datagrama IPv4 \u00e9 mostrado na figura abaixo:<\/p>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/IPv4.jpg\" width=\"396\" height=\"209\" \/><\/div>\n<p>O campo &#8220;Version&#8221;, armazena a vers\u00e3o do protocolo a que o datagrama pertence, na vers\u00e3o 4 possui tamanho de 4 bits (0100).<\/p>\n<p>O segundo campo, de quatro bits, \u00e9 o &#8220;IHL&#8221; (acr\u00f4nimo para Internet Header Length, ou seja, Comprimento do Cabe\u00e7alho da Internet), com o n\u00famero de palavras de 32 bits no cabe\u00e7alho IPv4.<\/p>\n<p>Como o cabe\u00e7alho IPv4 pode conter um n\u00famero vari\u00e1vel de op\u00e7\u00f5es, este campo essencialmente especifica o <em>offset<\/em> para a por\u00e7\u00e3o de dados de um datagrama IPv4.<\/p>\n<p>O campo &#8220;Type of service&#8221;, representa os 8 bits seguintes. A inten\u00e7\u00e3o original era para um n\u00f3 (roteador) especificar uma prefer\u00eancia para como os datagramas poderiam ser manuseados assim que circulariam pela rede. Na pr\u00e1tica, o campo ToS n\u00e3o foi largamente implementado.<\/p>\n<p>O campo &#8220;Total Length&#8221; \u00e9 o campo seguinte de dezesseis bits do IPv4, define todo o tamanho do datagrama, incluindo cabe\u00e7alho e dados, em bytes de oito bits. O datagrama de tamanho m\u00ednimo \u00e9 de vinte bytes, e o m\u00e1ximo \u00e9 64 Kb.<\/p>\n<p>O tamanho m\u00e1ximo do datagrama que qualquer n\u00f3 requer para estar apto para manusear s\u00e3o 576 bytes, mas os roteadores mais modernos manuseiam pacotes bem maiores.<\/p>\n<p>O campo &#8220;Identification&#8221; \u00e9 um campo de identifica\u00e7\u00e3o de 16 bits. Este campo \u00e9 usado principalmente para identificar fragmentos identificativos do datagrama IP original.<\/p>\n<p><em>Flags<\/em> \u2192 O campo \u00e9 utilizado para identificar e controlar fragmentos, o campo \u00e9 composto por tr\u00eas (3) bits.<\/p>\n<p><em>Offset<\/em> \u2192 O campo \u00e9 constitu\u00eddo por 13 (treze) bits, o offset permite que o receptor do datagrama determine o local do fragmento do pacote IP original.<\/p>\n<p><em>TTL<\/em> \u2192 O campo (time to live) ou tempo de vida do pacote, \u00e9 composto por oito (8 bits), o campo tem a funcionalidade de evitar que o pacote fique percorrendo em loop sem encontrar o destino final, evitando que o datagrama IP persista. Sem o campo TTL, ter\u00edamos muitas requisi\u00e7\u00f5es na rede mundial (Internet), o que causaria uma enorme lentid\u00e3o da rede (delay), ou at\u00e9 mesmo, o travamento de alguns dispositivos de borda (roteadores ). O campo TTL limita a vida \u00fatil do pacote em segundos, onde cada roteador que o datagrama atravessa, \u00e9 decrementado o valor do TTL que se inicia no n\u00famero cento e vinte e oito (128), quando o valor chega a 0 (zero), o pacote \u00e9 descartado, o TTL \u00e9 considerado como uma contagem de hops (saltos).<\/p>\n<p><em>Protocol<\/em> \u2192 O campo \u00e9 constitu\u00eddo por oito (8) bits, \u00e9 neste campo que \u00e9 realizado a defini\u00e7\u00e3o de qual \u00e9 o protocolo usado na por\u00e7\u00e3o de dados de um pacote IP. Existe a possibilidade de ser o TCP, mas h\u00e1 tamb\u00e9m o UDP e outros. A numera\u00e7\u00e3o que se aplica a todos protocolos da Internet \u00e9 definida na RFC 1700.<\/p>\n<p><em>Checksum<\/em> \u2192 O campo \u00e9 respons\u00e1vel por detectar inconsist\u00eancia no datagrama IP, realizando uma checagem c\u00edclica de todos os campos de um datagrama e identificar se nos HOPS (saltos), onde o datagrama percorreu, se n\u00e3o houve nenhuma falha.<\/p>\n<p>Um pacote em tr\u00e2nsito \u00e9 alterado por cada ponto (roteador) na rede por onde passa, e um destes pontos pode comprometer a integridade do pacote e o campo checksum \u00e9 uma forma mais simples de detectar falhas no pacote IPv4.<\/p>\n<p><em>Endere\u00e7o de origem e destino<\/em> \u2192 O campo \u00e9 respons\u00e1vel em trafegar os endere\u00e7os IPv4 de origem e destino composto por 32 bits cada, segmentado em quatro octetos de oito bits. No caso do IPv6, o campo \u00e9 composto por 128 bits cada endere\u00e7o.<\/p>\n<p>A seguir, mostrarei as especifica\u00e7\u00f5es do novo datagrama IPv6 e comentar as mudan\u00e7as.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Datagrama IPv6<\/b><\/p>\n<div>Como vimos, o cabe\u00e7alho IPv4 \u00e9 composto por 12 campos fixos, respons\u00e1veis por fazer com que o tamanho varie de 20 a 60 Bytes. Nesta se\u00e7\u00e3o, veremos as novas especifica\u00e7\u00f5es do datagrama vers\u00e3o 6, que possui um total de apenas oito campos (incluindo source e destination address) e um valor fixo de 40 bytes para o cabe\u00e7alho.<\/p>\n<p>Sendo assim, ele ficou mais flex\u00edvel e eficiente com a adi\u00e7\u00e3o de cabe\u00e7alhos de extens\u00e3o que n\u00e3o precisam ser processados por roteadores intermedi\u00e1rios. A nova vers\u00e3o do datagrama IPv6 ficou assim:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/ipv6.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_ipv6.jpg\" width=\"500\" height=\"404\" border=\"0\" \/><\/a><\/div>\n<p>Assim, o cabe\u00e7alho IPv6 ficou dividido nos seguintes campos:<\/p>\n<p>* O campo &#8220;Vers\u00e3o&#8221;, possui 4 bits representando a vers\u00e3o do datagrama 0110.<\/p>\n<ul>\n<li>Traffic Class (8 bits) \u2192 Esse campo \u00e9 respons\u00e1vel por distinguir os pacotes que podem ter o controle de fluxo alterado. Na pr\u00e1tica, funcionaria da seguinte forma: os campos com valores menores teriam a sua velocidade mais reduzida, ou seja, sofreriam um maior retardo diante de um congestionamento do que os datagramas com valores maiores que s\u00e3o destinados ao tr\u00e1fego em tempo real. O \u00e1udio e video fazem parte dessa \u00faltima categoria.<\/li>\n<li>Flow label (24 bits) \u2192 Permite com que se realize um fluxo de pacotes entre dois hosts com caracter\u00edsticas especiais, utilizando um identificador atribu\u00eddo a ele. Em termos pr\u00e1ticos, seria conseguir realizar uma pseudo-conex\u00e3o baseada em circuitos virtuais.<\/li>\n<li>Payload Length (16 bits) \u2192 Tamanho, em bytes do datagrama com exce\u00e7\u00e3o do cabe\u00e7alho que possui 40 bytes, ou seja, o tamanho total do bloco de dados (source address e destination address). Lembrando que os cabe\u00e7alhos de extens\u00e3o, quando inseridos no datagrama, fazem parte dessa contagem.<\/li>\n<li>Next Header (8 bits) \u2192 Caso seja o \u00faltimo cabe\u00e7alho, identifica qual o protocolo da camada de transporte ser\u00e1 utilizado para transmiss\u00e3o dos pacotes (TCP\/UDP e outros), caso contr\u00e1rio, qual dos seis cabe\u00e7alhos de extens\u00e3o ser\u00e3o anexados ao datagrama.<\/li>\n<li>Hop Limit (8 bits) \u2192 N\u00famero m\u00e1ximo de saltos (roteadores) que um pacote pode ter para caso haja algum erro nas tabelas de roteamento, por exemplo. A cada hop (salto), o valor desse campo vai ser subtra\u00eddo por 1 bit, caso atinja o valor 0 (zero), ser\u00e1 descartado.<\/li>\n<li>Source Address (128 bits) \u2192 Endere\u00e7o de origem do datagrama.<\/li>\n<li>Destination Address (128 bits) \u2192 Endere\u00e7o de destino do datagrama.<\/li>\n<\/ul>\n<p>Gostaria de enfatizar algumas funcionalidades dos campos Traffic Class e Flow Label.<\/p>\n<blockquote><p>\u201c Os campos Priority (Traffic Class) e Flow Label, t\u00eam por finalidade, a facilita\u00e7\u00e3o de implementa\u00e7\u00e3o de aplica\u00e7\u00f5es em tempo real e com Qualidade de Servi\u00e7o (QoS).<\/p>\n<p>O primeiro determina a prioridade que um pacote ou grupo destes deve receber. Deve-se utilizar valores de 0 a 7 para aqueles que podem sofrer atraso, como por exemplo, aplica\u00e7\u00f5es de FTP e HTTP; e valores de 8 a 15 para aqueles com tr\u00e1fico em tempo real, que n\u00e3o devem ser atrasados, como aplica\u00e7\u00f5es de v\u00eddeo e sons.<\/p>\n<p>J\u00e1 o segundo campo, ainda em fase experimental, permitir\u00e1 que dois hosts estabele\u00e7am uma pseudo-conex\u00e3o (circuitos virtuais) com caracter\u00edsticas espec\u00edficas. Esta conex\u00e3o ser\u00e1 unicamente identificada pelos endere\u00e7os IP de envio e destino e pelo valor do campo Flow Label.<\/p>\n<p>Deste modo, ser\u00e1 poss\u00edvel prover tratamento diferenciado para diferentes fluxos, de acordo com as necessidades de cada um. \u201d<\/p><\/blockquote>\n<p>[Tanenbaum, 1997]<\/p>\n<h1>Cabe\u00e7alhos de extens\u00e3o<\/h1>\n<p>Diferente do IPv4, que inclui no cabe\u00e7alho base todas as informa\u00e7\u00f5es opcionais, o IPv6 trata essas informa\u00e7\u00f5es atrav\u00e9s dos cabe\u00e7alhos de extens\u00e3o.<\/p>\n<p>As novas especifica\u00e7\u00f5es do IPv6 definem seis cabe\u00e7alhos de extens\u00e3o:<\/p>\n<ol>\n<li>Hop-by-Hop Options<\/li>\n<li>Destination Options<\/li>\n<li>Routing<\/li>\n<li>Fragmentation<\/li>\n<li>Authentication Header<\/li>\n<li>Encapsulating Security Payload<\/li>\n<\/ol>\n<p>A cria\u00e7\u00e3o dos cabe\u00e7alhos de extens\u00e3o do IPv6, teve a finalidade de aumentar a velocidade de processamento nos roteadores. De acordo com a necessidade, novos tipos de cabe\u00e7alho de extens\u00e3o podem ser criados, permitindo assim, maior flexibilidade na adi\u00e7\u00e3o de mais op\u00e7\u00f5es no futuro. Isto permitir\u00e1 que o protocolo evolua, dentro de certos limites, \u00e0 medida que haja necessidade.<\/p>\n<p>Na pr\u00f3xima se\u00e7\u00e3o, veremos mais detalhes com rela\u00e7\u00e3o aos cabe\u00e7alhos de extens\u00e3o.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Cabe\u00e7alhos de extens\u00e3o<\/b><\/p>\n<div>Antes de iniciarmos a se\u00e7\u00e3o sobre cabe\u00e7alhos de extens\u00e3o, \u00e9 importante analisarmos o formato e a l\u00f3gica com que eles foram organizados.<\/p>\n<p>Primeiramente, estes cabe\u00e7alhos devem ser transportados segundo uma ordem com o objetivo de evitar que os n\u00f3s (roteadores) intermedi\u00e1rios tenham que analisar toda a cadeia de cabe\u00e7alhos, para decidir quais cabe\u00e7alhos devem processar.<\/p>\n<p>Desta forma, os cabe\u00e7alhos mais importantes para o roteamento (n\u00f3s intermedi\u00e1rios), devem ser colocados antes daqueles cabe\u00e7alhos que s\u00e3o importantes apenas para os destinat\u00e1rios.<\/p>\n<p>A grande vantagem em termos de desempenho, \u00e9 que os roteadores intermedi\u00e1rios podem parar de processar os cabe\u00e7alhos do datagrama assim que encontrar algum cabe\u00e7alho de extens\u00e3o encaminhado ao destinat\u00e1rio, com exce\u00e7\u00e3o das informa\u00e7\u00f5es do cabe\u00e7alho de extens\u00e3o <em>hop-by- hop<\/em>, que como veremos a seguir, devem ser analisados por todos roteadores intermedi\u00e1rios, caso este cabe\u00e7alho de extens\u00e3o esteja presente.<\/p>\n<p>Atualmente, h\u00e1 seis tipos de cabe\u00e7alhos de extens\u00e3o, todos eles s\u00e3o opcionais, mas, se houver mais de um deles, eles aparecer\u00e3o imediatamente depois do cabe\u00e7alho fixo e, na ordem listada:<\/p>\n<ul>\n<li>Hop-by-Hop Options \u2192 Informa\u00e7\u00f5es diversas para os roteadores;<\/li>\n<li>Destination Options \u2192 Informa\u00e7\u00f5es adicionais para o destino;<\/li>\n<li>Routing \u2192 Rota parcial ou integral a ser seguida;<\/li>\n<li>Fragmentation \u2192 Gerenciamento de fragmentos de datagrama;<\/li>\n<li>Authentication Header \u2192 Verifica\u00e7\u00e3o de identidade do transmissor;<\/li>\n<li>Encapsulating Security Payload \u2192 Informa\u00e7\u00f5es sobre o conte\u00fado criptografado.<\/li>\n<\/ul>\n<h1>Hop-by-hop<\/h1>\n<p>O cabe\u00e7alho &#8220;hop-by-hop&#8221; \u00e9 identificado pelo valor 0 (zero) no cabe\u00e7alho &#8220;Next Header&#8221; e possui, informa\u00e7\u00f5es que todos os roteadores ao longo do caminho devem examinar.<\/p>\n<p>O formato do cabe\u00e7alho hop-by-hop, pode ser visto a seguir:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/hop-by-hop-2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"Linux: Datagramas\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_hop-by-hop-2.png\" width=\"500\" height=\"138\" border=\"0\" \/><\/a><\/div>\n<blockquote><p>\u201c N\u00e3o s\u00e3o permitidos datagramas com menos de 65.536 bytess e, nesse caso, ser\u00e3o descartados no primeiro roteador, que envia uma mensagem de erro ICMP.<\/p>\n<p>O uso de datagramas que utilizam este cabe\u00e7alho de extens\u00e3o, s\u00e3o chamados de <em>jumbogramas<\/em>. O uso de jumbogramas \u00e9 importante para as aplica\u00e7\u00f5es de supercomputador, que devem transferir gigabytes de dados pela Internet com grande efici\u00eancia. \u201d<\/p><\/blockquote>\n<p>[Tanenbaum, 1997]<\/p>\n<p>O formato do cabe\u00e7alho de extens\u00e3o hop-by-hop (jumbogramas) pode ser visto a seguir:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/jumbograma-2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"Linux: Datagramas\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_jumbograma-2.png\" width=\"500\" height=\"204\" border=\"0\" \/><\/a><\/div>\n<h1>Destination Options<\/h1>\n<p>Este cabe\u00e7alho \u00e9 identificado pelo valor 60 no campo &#8220;Next Header&#8221;, este cabe\u00e7alho deve ser processado apenas pelo host de destino.<\/p>\n<p>Ele \u00e9 utilizado no suporte ao mecanismo de mobilidade ao IPv6, atrav\u00e9s da op\u00e7\u00e3o Home Address que cont\u00e9m o IP de origem do host m\u00f3vel, quando est\u00e1 em tr\u00e2nsito.<\/p>\n<h1>Routing<\/h1>\n<p>Este cabe\u00e7alho \u00e9 identificado pelo valor 43 no campo &#8220;Next Header&#8221; e exibe um ou mais roteadores, que devem ser visitados no caminho para o destino.<\/p>\n<p>O formato do cabe\u00e7alho routing, pode ser visto a seguir:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/routing-2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"Linux: Datagramas\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_routing-2.png\" width=\"500\" height=\"151\" border=\"0\" \/><\/a><\/div>\n<blockquote><p>\u201c Os primeiros bytes do cabe\u00e7alho de extens\u00e3o de roteamento cont\u00eam quatro inteiros de 1 byte: o primeiro byte indica o pr\u00f3ximo cabe\u00e7alho, o segundo o tipo de roteamento, o terceiro os n\u00fameros de endere\u00e7os presentes nesse cabe\u00e7alho (1 a 24) e o quarto, o \u00edndice do pr\u00f3ximo endere\u00e7o a ser visitado. O \u00faltimo campo come\u00e7a em 0 e \u00e9 incrementado a medida que cada endere\u00e7o \u00e9 visitado.<\/p>\n<p>Em seguida, vem um byte reservado seguido de um mapa de bits (bit map) com bits para cada um dos 26 poss\u00edveis endere\u00e7os IPv6 que o sucedem. Estes bits mostram se cada endere\u00e7o deve ser visitado diretamente depois do que o antecede (roteamento r\u00edgido na origem) ou se outros roteadores podem vir entre eles (roteamento flex\u00edvel na origem). \u201d<\/p><\/blockquote>\n<p>[Tanenbaum, 1997]<\/p>\n<h1>Fragmentation<\/h1>\n<p>Este cabe\u00e7alho \u00e9 identificado pelo valor 44 no campo &#8220;Next Header&#8221;, e \u00e9 utilizado quando o tamanho do pacote \u00e9 maior do que o MTU &#8211; Unidade m\u00e1xima de transfer\u00eancia em um meio f\u00edsico.<\/p>\n<blockquote><p>\u201c No IPv6 ao contr\u00e1rio do IPv4, apenas o host de origem pode fragmentar o pacote. Os roteadores ao longo do caminho n\u00e3o podem faz\u00ea-lo, embora represente uma grande ruptura com o passado, este recurso simplifica o trabalho dos roteadores e faz com que o roteamento seja mais r\u00e1pido.<\/p>\n<p>Como j\u00e1 dissemos, se um roteador for confrontado com um pacote muito grande, ele o descartar\u00e1 e reenviar\u00e1 um pacote ICMP para a origem. \u201d<\/p><\/blockquote>\n<p>[Tanenbaum, 1997]<\/p>\n<h1>Authentication Header e Encapsulating Security Payload<\/h1>\n<p>Estes dois cabe\u00e7alhos de extens\u00e3o s\u00e3o identificados pelos valores 51 e 52 nos campos &#8220;Next Header&#8221; e fazem parte do cabe\u00e7alho IPsec.<\/p>\n<p>O funcionamento do IPsec \u00e9 o mesmo tanto na vers\u00e3o IPv4 quanto IPv6, mas a implementa\u00e7\u00e3o e utiliza\u00e7\u00e3o foi facilitada na vers\u00e3o IPv6, pois os principais elementos do IPsec est\u00e1 integrada na vers\u00e3o do datagrama IPv6.<\/p>\n<h1>Conclus\u00e3o<\/h1>\n<p>Na minha opini\u00e3o, existem muitos assuntos ligados ao Protocolo IPv6, e a Camada de Internet na arquitetura TCP\/IP, por isso, uma s\u00e9rie deles deixaram de ser explorados, como os protocolos ARP, RARP e ICMP.<\/p>\n<p>E tamb\u00e9m, os protocolos de rotemento OSPF (Open Shortest First) e o BGP (Border Gateway Protocol), devido \u00e0 import\u00e2ncia de cada um e a extens\u00e3o do artigo.<\/p>\n<p>E viva o kernel !!!<\/p><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Datagrama IPv4 Um datagrama IP, consiste de duas partes: cabe\u00e7alho e o campo de dados que transporta o IP de origem e o IP de destino. O cabe\u00e7alho possui uma parte fixa de 20 bytes e um campo &#8220;Options&#8221; de tamanho vari\u00e1vel. O formato do datagrama IPv4 \u00e9 mostrado na figura abaixo: O campo &#8220;Version&#8221;, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[68],"tags":[266,142,143,14,265],"class_list":["post-456","post","type-post","status-publish","format-standard","hentry","category-redes-2","tag-datagrama","tag-ipv4","tag-ipv6","tag-linux","tag-protocolo"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=456"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/456\/revisions"}],"predecessor-version":[{"id":457,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/456\/revisions\/457"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}