Buscar

Pilha TCP_IP

Prévia do material em texto

Arquitetura de Redes em Camadas
Dominar a área de redes de computadores equivale a entender o que são, por que existem e como funcionam os protocolos de redes e as arquiteturas de rede em camadas. 
Protocolos
As redes de computadores são sistemas complexos e que possuem muitos componentes. Para que um sistema tão complexo possa permitir a comunicação de usuários de forma independente de plataforma de software, hardware ou meio físico de transmissão, foi necessária a criação de padrões e regras. Com isso, surgiram os protocolos de rede. Um protocolo é uma descrição formal de um conjunto de regras e convenções que controlam a comunicação entre os dispositivos em uma rede. Podemos pensar em um protocolo como um arquivo de texto, por exemplo, um arquivo PDF, que descreve para os fabricantes e desenvolvedores de software e hardware como esses elementos devem funcionar. 
Existe uma quantidade enorme de protocolos e, de hardware e software que os implementam. Por isso, esses protocolos são organizados em conjuntos de acordo com suas funções. Esses conjuntos são chamados de camadas. Em todas as redes o objetivo de cada camada é oferecer determinados serviços às camadas superiores, isolando as camadas mais altas dos detalhes de implementação desses recursos. Essa simplificação em camadas provê modularidade, tornando muito mais fácil modificar a execução do serviço prestado pela camada. Para sistemas grandes e complexos que são atualizados constantemente, a capacidade de modificar a realização de um serviço sem afetar outros componentes do sistema é uma vantagem importante da divisão em camadas.
Um conjunto de camadas e seus protocolos é chamado arquitetura de rede. A especificação de uma arquitetura deve conter informações suficientes para permitir que um implementador desenvolva o programa ou construa o hardware de cada camada, de forma que ela obedeça corretamente ao protocolo adequado. Nem os detalhes da implementação nem a especificação das interfaces pertencem a arquitetura, pois tudo fica oculto dentro das máquinas e nao é visivel do exterior. Examinaremos duas importantes arquiteturas de rede, o modelo de referência OSI, o modelo de referência TCP/IP e o modelo híbrido.
Modelo de referência OSI
O Modelo OSI (acrônimo do inglês Open System Interconnection) é um modelo de rede de computadores criado em 1971 e formalizado em 1983 pela ISO (International Standards Organization). O Modelo OSI surgiu como um modelo de referência ou seja, para definir diretivas genéricas para a construção de redes de computadores (seja de curta, média ou longa distância) independente da tecnologia utilizada. Este modelo divide as redes de computadores em 7 camadas: aplicação, apresentação, sessão, transporte, rede, enlace de dados e física. 
 
Figura 4 - Modelo de referência OSI
As principais aplicações do modelo OSI foram as redes X.25 (redes de pacotes), redes X.400 (correio eletrônico privativo) e o serviço de diretório X.500. Porém, Tanenbaum afirma que o modelo OSI propriamente dito não é uma arquitetura de rede, pois não especifica os serviços e os protocolos exatos que devem ser usados em cada camada. Ele apenas informa o que cada camada deve fazer. O modelo OSI foi criado antes mesmo de surgirem diversos protocolos e devido sua complexidade não é realmente implementado. Na atualidade, o uso principal do modelo OSI é como uma referência para o ensino.
Modelo de referência TCP/IP
O modelo TCP/IP foi desenvolvido na década de 1970, antes que o modelo OSI fosse criado na década de 1980. A arquitetura TCP/IP não surgiu como um modelo de referência, assim como o modelo OSI, mas sim como uma pilha de protocolos que foram implementados na prática sem um modelo pré-definido. TCP/IP foi projetado para resolver um conjunto específico de problemas, especificamente como um recurso para a ARPANET( Advanced Research Project Agency Network) a fim de preencher a necessidade de comunicação entre um grande número de sistemas de computadores e várias organizações militares dispersas. A grande preocupação dessa pilha de protocolos era interligar essas grandes redes locais, utilizando como elementos essenciais o protocolo IP e o protocolo TCP. Essa dupla permitia o transporte de dados de qualquer aplicação entre redes distintas de longa distância, tendo como principais serviços o envio de mensagens (SMTP), o transporte de arquivos (FTP) e o acesso remoto (TELNET). A implementação desses protocolos em conjunto dá origem às camadas de Aplicação (SMTP, FTP, TELNET, etc), de Transporte (TCP, UDP) e de Inter-rede (IP). Contudo, a pilha TCP/IP, por ter foco principal na interligação de redes distintas, não especifica protocolos de rede local para as camadas inferiores, permitindo que qualquer protocolo de rede local seja utilizado desde que faça uso do protocolo IP nas comunicações inter-redes. Essa despreocupação com os protocolos de baixo nível faz surgir a camada “genérica” e polêmica conhecida por vários nomes como Host/Rede, Interface com a Rede, Interface Física com a Rede, Acesso à Rede, etc. Por conta disso, o modelo original do TCP/IP possui 4 camadas.
Figura 5 - Modelo de referência TCP/IP
Modelo Híbrido 
Os modelos OSI e TCP/IP se tornaram apenas modelos de referência. Os protocolos associados ao modelo OSI raramente são usados nos dias de hoje, porém modelo em si é bastante geral e ainda válido, e as características descritas em cada camada ainda são muito importantes. O modelo TCP/IP tem características opostas ao OSI, o modelo propriamente dito não é muito utilizado, mas os protocolos tem uso geral. Portanto o modelo TCP/IP é mais próximo à realidade da comunicação na grande rede mundial. 
Na prática, as redes e a internet utiliza uma pilha de protocolos mista, ou seja, ela é resultado da mistura do modelo OSI e TCP/IP. O resultado desta mistura, gerou um modelo de abstração chamado de Pilha de Protocolos da Internet ou modelo Híbrido. A maioria dos autores de bibliografias consagradas na área de redes também adotam didaticamente o modelo híbrido de 5 camadas: Aplicação, Transporte, Rede, Enlace e Física. As camadas de Apresentação e Sessão do modelo OSI são descartadas nesse modelo, pois fazem parte da camada de Aplicação do TCP/IP. A camada de Host/Rede do TCP/IP é dividida nas camadas de Enlace e Física pois, na prática, a camada física e de enlace são definidas conforme regras do modelo OSI. 
Figura 6 - Modelo Híbrido
Figura 7 - Comparação entre modelos de camadas
Comunicação entre camadas
Uma maneira bastante fácil e simplista de se enxergar a funcionalidade de um modelo em camadas, é imaginar que cada camada tem como função adicionar um cabeçalho aos dados do usuário a serem transmitidos para outro sistema. Deste modo a função de cada camada do outro sistema é exatamente a inversa, ou seja, retirar os cabeçalhos dos dados que chegam e entregá-los ao usuário em sua forma original. Portanto cada camada além de se comunicar com suas camadas adjacentes, também se comunica com suas camadas pares de outro computador. Quando um programa em um computador necessita enviar uma mensagem a um programa em outro computador, ela é entregue a camada superior que acrescenta seu cabeçalho passando-a a camada seguinte, e assim sucessivamente, até a camada inferior (física), que transmite a mensagem pelo meio de comunicação até o receptor. A camada mais inferior do receptor lê as informações enviadas a ela, contidas no cabeçalho, e entrega seu conteúdo a camada seguinte, e assim sucessivamente, até que a mensagem seja recebida pelo programa receptor. 
Figura 8 -Comunicação entre camadas
Em função da camada de origem, o pacote de informação recebe um nome específico, conforme pode ser visto na figura a seguir.
Figura 9 -Pacote de dados de cada camada
Em nossa disciplina, adotaremos o modelo híbrido de camada. Nos próximos tópicos aprofundaremos o estudo dos serviços fornecidos por camada a medida em que aprendemos como eles são aplicados nas redes locais e redes de longa distância.
Camada Física e Camada de Enlace(Acesso à Rede)
Camada Física
O objetivo da camada física é transmitir um fluxo bruto de bits de uma máquina para outra. Portanto, a camada física define as interfaces mecânica, elétrica e de sincronização para a rede. Vários meios físicos podem ser usados para realizar a transmissão. Os meios físicos são agrupados em meios guiados e não guiados. O padrão Ethernet trabalha apenas com meios físicos guiados (fig. 1).
	Figura 1 - Meios físicos guiados 
Camada de Enlace
Embora o serviço básico de qualquer camada de enlace seja mover um datagrama de um nó até um nó adjacente por um único enlace de comunicação, os detalhes do serviço podem variar de um protocolo da camada de enlace para outro. Entre os serviços que podem ser oferecidos por um protocolo da camada de enlace, estão:
	
· Enquadramento de dados: Quase todos os protocolos da camada de enlace encapsulam cada datagrama da camada de rede dentro de um quadro da camada de enlace antes de transmiti-lo pelo enlace. Um quadro consiste em um campo de dados no qual o datagrama da camada de rede é inserido, e em uma série de campos de cabeçalho. A estrutura do quadro é especificada pelo protocolo da camada de enlace. Nesta disciplina estudaremos a estrutura do quadro ethernet.
· Acesso ao enlace: Um protocolo de controle de acesso ao meio (medium access control— MAC) especifica as regras segundo as quais um quadro é transmitido pelo enlace. Para enlaces ponto a ponto que têm um único remetente em uma extremidade do enlace e um único receptor na outra, o protocolo MAC é simples (ou inexistente) — o remetente pode enviar um quadro sempre que o enlace estiver ocioso. O caso mais interessante é quando vários nós compartilham um único enlace de difusão — o denominado problema de acesso múltiplo. Aqui, o protocolo MAC serve para coordenar as transmissões de quadros dos muitos nós. 
· Entrega confiável: Quando um protocolo da camada de enlace fornece serviço confiável de entrega, ele garante que vai transportar sem erro cada datagrama da camada de rede pelo enlace. Lembre-se de que certos protocolos da camada de transporte (como o TCP) também fornecem um serviço confiável de entrega. Semelhante ao que acontece com um serviço confiável de entrega da camada de transporte, consegue-se um serviço confiável de entrega da camada de enlace com reconhecimentos e retransmissões. Um serviço confiável de entrega da camada de enlace é muito usado por enlaces que costumam ter altas taxas de erros, como é o caso de um enlace sem fio, com a finalidade de corrigir um erro localmente, no enlace no qual o erro ocorre, em vez de forçar uma retransmissão fim a fim dos dados por um protocolo da camada de transporte ou de aplicação. Contudo, a entrega confiável da camada de enlace pode ser considerada uma sobrecarga desnecessária para enlaces de baixa taxa de erros, incluindo enlaces de fibra, enlaces coaxiais e muitos enlaces de pares de fios trançados de cobre. Por essa razão, muitos protocolos da camada de enlace com fio não fornecem um serviço de entrega confiável.
· Detecção e correção de erros: O hardware da camada de enlace de um nó receptor pode decidir incorretamente que um bit de um quadro é zero quando foi transmitido como 1 e vice-versa. Esses erros de bits são introduzidos por atenuação de sinal e ruído eletromagnético. Como não há necessidade de repassar um datagrama que tem um erro, muitos protocolos da camada de enlace oferecem um mecanismo para detectar a presença de tais erros. Isso é feito obrigando o nó transmissor a enviar bits de detecção de erros no quadro e o nó receptor a realizar uma verificação de erros. As camadas de transporte e de rede da Internet também fornecem um serviço limitado de detecção de erros — a soma de verificação. A detecção de erros na camada de enlace geralmente é mais sofisticada e é executada em hardware. A correção de erros é semelhante à detecção de erros, exceto que um receptor não só detecta quando ocorreram os erros no quadro, mas também determina exatamente em que lugar do quadro ocorreram (e, então, os corrige).
Onde a camada de enlace é implementada?
Na maior parte, a camada de enlace é implementada em um adaptador de rede , às vezes também conhecido como placa de interface de rede (NIC). No núcleo do adaptador de rede está o controlador da camada de enlace, em geral um único chip de sistema especial, que executa vários serviços da camada de enlace (enquadramento, acesso ao enlace, detecção de erros etc.). Dessa forma, muito da funcionalidade do controlador da camada de enlace é realizado em hardware. 
Até o final dos anos 1990, a maioria dos adaptadores de rede eram placas fisicamente separadas (como a placa PCMCIA ou uma placa plug-in que se encaixa em um compartimento para cartão PCI de um computador), porém agora cada vez mais adaptadores de rede estão sendo integrados à placa-mãe do hospedeiro — uma configuração chamada LAN-na-placa-mãe.
No lado transmissor, o controlador separa um datagrama que foi criado e encapsula o datagrama em um quadro da camada de enlace (preenchendo os vários campos do quadro), e então transmite o quadro para um enlace de comunicação, seguindo o protocolo de acesso ao enlace. No lado receptor, um controlador recebe todo o quadro e extrai o datagrama da camada de rede. Se a camada de enlace efetuar uma verificação de erros, é o controlador transmissor que estabelece os bits de detecção de erros no cabeçalho de quadro e é o controlador receptor que executa a verificação de erros.
A Figura 3 mostra um adaptador de rede conectado ao barramento do computador (por exemplo, barramento PCI ou PCI-X). A Figura 3 mostra também que, enquanto a maior parte da camada de enlace é executada em hardware, parte dela é implementada em software que é executada na CPU do hospedeiro. Os componentes do software da camada de enlace implementam uma funcionalidade da camada de enlace de um nível mais alto, montando informações de endereçamento da camada de enlace e ativando o hardware do controlador. No lado receptor, o software da camada de enlace responde às interrupções do controlador (por exemplo, pelo recebimento de um ou mais quadros), lida com condições de erro e passa o datagrama para a camada de rede, mais acima. Assim, a camada de enlace é uma combinação de hardware e software — o lugar na pilha de protocolos, onde o software encontra o hardware. 
Figura 3 - Adaptador de rede: seu relacionamento com o resto dos componentes do
hospedeiro e a funcionalidade da Pilha de Protocolos
Endereços MAC
Na verdade, não é o nó (isto é, o hospedeiro ou o roteador) que tem um endereço da camada de enlace, mas o adaptador de rede do nó. Um hospedeiro ou roteador com várias interfaces de rede, portanto, terá vários endereços da camada de enlace associados a ele, assim como também teria vários endereços IP associados. Porém, é importante observar que os comutadores (swtiches) da camada de enlace não têm endereços da camada de enlace associados às suas interfaces, que se conectam aos hospedeiros e roteadores. Isso porque a função do comutador da camada de enlace é transportar datagramas entre hospedeiros e roteadores; um comutador faz isso de modo transparente, ou seja, sem que o hospedeiro ou roteador tenha que endereçar o quadro explicitamente para o comutador intermediário. Um endereço da camada de enlace é também denominado endereço de LAN, endereço físico ou endereço MAC (Media Access Control — controle de acesso ao meio). 
Para a maior parte das LANs (incluindo a Ethernet e as LANs 802.11 sem fio), o endereço MAC tem 6 bytes de comprimento, o que dá 248 endereços MAC possíveis. Como ilustrado na Figura 4, tais endereços de 6 bytes costumam ser expressos em notação hexadecimal, com cada byte do endereço mostrado como um par de números hexadecimais. Apesar de os endereços MAC serem projetados como permanentes, agora é possível mudar o endereço de MAC de um adaptador via software.
Figura 4 - Cada interface conectada à LAN tem um endereço MAC exclusivo
Uma propriedade interessante dos endereços MACé que não existem dois adaptadores com o mesmo endereço. Isso pode parecer surpreendente, dado que os adaptadores são fabricados em muitos países por inúmeras empresas diferentes. Como uma empresa fabricante de adaptadores no Japão se certifica de que está usando endereços diferentes dos usados por um fabricante de adaptadores dos Estados Unidos? A resposta é que o IEEE gerencia o espaço físico de endereços MAC. Em particular, quando uma empresa quer produzir adaptadores, compra, por uma taxa nominal, uma parcela do espaço de endereços que consiste em 224 endereços. O IEEE aloca a parcela de 224 endereços fixando os primeiros 24 bits de um endereço MAC e permitindo que a empresa crie combinações exclusivas com os últimos 24 bits para cada adaptador. 
O endereço MAC de um adaptador, ao contrário um endereço IP, nunca muda, não importando para onde vá o adaptador. Um notebook com um cartão Ethernet tem sempre o mesmo endereço MAC, não importando aonde o computador vá. Um smartphone com uma interface 802.11 tem sempre o mesmo endereço MAC aonde quer que vá. 
Quando um adaptador de rede quer enviar um quadro para algum adaptador de destino, o remetente insere no quadro o endereço MAC do destino e envia o quadro para dentro da LAN. Como veremos em breve, um comutador às vezes transmite por difusão um quadro que chega para todas as suas interfaces. A LAN 802.11 também transmite quadros por difusão. Assim, um adaptador pode receber um quadro que não está endereçado a ele. Desse modo, quando o adaptador receber um quadro, ele verificará se o endereço MAC de destino combina com seu próprio endereço MAC. Se ambos combinarem, o adaptador extrai o datagrama encerrado no quadro e o passará para cima na pilha de protocolos. Se não combinarem, o adaptador descarta o quadro sem passar o datagrama da camada de rede para cima na pilha de protocolos. Assim, somente o destino será interrompido quando receber um quadro. No entanto, às vezes um adaptador remetente quer que todos os outros adaptadores na LAN recebam e processem o quadro que ele está prestes a enviar. Nesse caso, o adaptador remetente insere um endereço de difusão MAC especial no campo de endereço do destinatário do quadro. Para LANs que usam endereços de 6 bytes (como a Ethernet e 802.11), o endereço de difusão é uma cadeia de 48 bits 1 consecutivos, isto é, FF-FF-FF-FF-FF-FF em notação hexadecimal.
Porque não usar os endereços IPs no lugar do MAC?
Há diversas razões por que os nós têm endereços MAC além de endereços da camada de rede. Primeiro, LANs são projetadas para protocolos da camada de rede arbitrários, e não apenas para IP e para a Internet. Se os adaptadores recebessem endereços IP, e não os endereços MAC “neutros”, eles não poderiam suportar com facilidade outros protocolos da camada de rede (por exemplo, IPX ou DECNet). Segundo, se adaptadores usassem endereços da camada de rede — em vez de endereços MAC — o endereço da camada de rede teria de ser armazenado na RAM do adaptador de rede e reconfigurado toda vez que este mudasse de local (ou fosse ligado). 
Outra opção seria não usar nenhum endereço nos adaptadores e fazer que cada um deles passe os dados (em geral um datagrama IP) de cada quadro que recebe para cima na pilha de protocolos. A camada de rede poderia, então, verificar se o endereço combina com o da camada de rede. Um problema com essa opção é que o hospedeiro seria interrompido por cada quadro enviado à LAN, inclusive pelos destinados a outros nós na mesma LAN de difusão. Em resumo, para que as camadas sejam blocos de construção praticamente independentes em uma arquitetura de rede, diferentes camadas precisam ter seu próprio esquema de endereçamento. 
Padrão Ethernet
A partir dos avanços tecnológicos da sociedade moderna, observou-se a necessidade dos computadores de empresas, universidade, instituições governamentais e outras estarem conectados entre si localmente, o que deu origem às redes locais ou LANs. O padrão Ethernet é a tecnologia LAN mais conhecida e usada mundialmente. Porém, antes de falarmos sobre o Ethernet, estudaremos brevemente a organização IEEE que cuida da padronização de redes de computadores.
 IEEE Standards Association
O IEEE Standards Association (IEEE-SA) é uma organização dentro do IEEE que desenvolve padrões globais para uma ampla gama de indústrias, incluindo: energia, saúde e biomedicina, tecnologia da informação e robótica, telecomunicações e automação doméstica, transporte, nanotecnologia, entre outros. Especialistas de todo o mundo participam do desenvolvimento de padrões IEEE. Em 2017, o IEEE tinha mais de 1100 padrões ativos, com mais de 600 padrões em desenvolvimento. 
Um dos padrões mais notáveis do IEEE-SA ​​é o grupo de padrões IEEE 802 LAN/MAN, do qual pertence os padrões de rede de computadores mais utilizados para redes LAN/MAN com fio (Ethernet, também conhecido como IEEE 802.3) e sem fio (IEEE 802.11). Portanto, o IEEE 802 é uma família de padrões IEEE que trata de LAN/WAN. No contexto dessa família de padrões, o termo LAN é usado para indicar todas as redes que utilizam o algum padrão IIEEE 802 para comunicação. Na tabela 1 estão listados os padrões do grupo IEEE 802 LAN/MAN. 
Tabela 1 - Os grupos de padrões 802. Os grupos importantes estão marcados com *
Os serviços e protocolos especificados no IEEE 802 mapeiam as duas camadas inferiores (enlace de dados e física) do modelo de referência OSI ou do modelo híbrido. Na verdade, o IEEE 802 divide a camada de enlace em duas subcamadas denominadas Controle de Enlace Lógico (LLC - Logical Link Control) e Controle de Acesso ao Meio (MAC), como mostrado na figura 1.
Figura 1 - Camadas de trabalho da família de padrões 802
As subcamadas da camada de enlace de dados (LLC e MAC) contribuem para a compatibilidade da tecnologia e a comunicação entre computadores. A subcamada MAC trata dos componentes físicos que serão usados para comunicar as informações. A subcamada LLC permanece independente do equipamento físico que será usado para o processo de comunicação. 
Padrão Ethernet - IEEE 802.3
Nesta UC focaremos o estudo do subgrupo de padrões 802.3 Ethernet, que é a tecnologia de rede local (LAN) com fio mais usada no mundo. As conexões físicas são feitas entre nós e/ou dispositivos de infra-estrutura (hubs, switches, roteadores) por vários tipos de cabos de cobre ou de fibra. 
A tecnologia Ethernet trabalha na camada física e na subcamada MAC (fig. 2). O padrão 802.3 e o 802.11 têm camadas físicas diferentes e subcamadas MAC diferentes, mas convergem para a mesma subcamada LLC (definida no padrão 802.2), e portanto tem a mesma interface para a camada de rede. Dessa forma, a tecnologia Ethernet com fio 802.3 é uma tecnologia que suporta a arquitetura de rede IEEE 802.11.
Figura 2 - Camadas de atuação Ethernet (Física e MAC)
Porque Ethernet?
A Ethernet praticamente tomou conta do mercado de LANs com fio. Essa tecnologia se mantém no mercado a mais de 30 anos por ser simples e flexível. Ela é confiável, tem baixo custo e fácil manutenção. Além disso a Ethernet se relaciona bem com o protocolo IP, dominante no mercado atual. Outras soluções surgiram como mais rápidas porém, elas eram caras e complexas além de incompatíveis com a própria Ethernet. Com a evolução da Ethernet elas entraram em desuso. Na década de 1980 e início da década de 1990, a Ethernet enfrentou muitos desafios de outras tecnologias LAN com fio, incluindo Token Ring, FDDI e ATM. Porém, desde sua invenção, em meados da década de 1970, a Ethernet continuou a se desenvolver e crescer e conservou sua posição dominante no mercado. Podemos dizer que a Ethernet está sendo para a rede local o que a Internet tem sido para a rede global. 
Há muitas razões para o sucesso da Ethernet. Primeiro, ela foi a primeira LAN de alta velocidade amplamente disseminada. Segundo, token ring, FDDI e ATM são tecnologias mais complexas e mais caras do que a Ethernet. Terceiro, a razão mais atraente para mudar para uma outra tecnologia LAN (como FDDI e ATM) era em geral a velocidademais alta da nova tecnologia; contudo, a Ethernet sempre produziu versões que funcionam a velocidades iguais, ou mais altas. E, também, a Ethernet comutada foi introduzida no início da década de 1990, o que aumentou ainda mais suas velocidades efetivas de dados. Por fim, como se tornou muito popular, o hardware para Ethernet (em particular, adaptadores e comutadores/switches) passou a ser mercadoria comum de custo muito baixo.
Topologias Ethernet
A LAN Ethernet original usava uma topologia de barramento coaxial para interconectar os nós. As topologias de barramento da Ethernet persistiram durante toda a década de 1980 e até metade da década de 1990. Com uma topologia de barramento, a Ethernet era uma LAN de transmissão por difusão — todos os quadros transmitidos movem-se para, e são processados por, todos os adaptadores conectados ao barramento. 
No fim da década de 1990, a maioria das empresas e universidades já tinha substituído suas LANs por instalações Ethernet usando topologia de estrela baseada em um hub (repetidor). Nessas instalações, os hosts estão diretamente conectados a um hub com um cabo de pares trançados de cobre. Um hub é um dispositivo de camada física que atua sobre bits individuais e não sobre quadros. Quando um bit, representando 0 ou 1, chega de uma interface, o hub apenas recria o bit, aumenta a energia e o transmite para todas as outras interfaces. Sendo assim, Ethernet com uma topologia de estrela baseada em um hub também é uma LAN de difusão — sempre que um Hub recebe um bit de uma de suas interfaces, ele envia uma cópia para todas as outras interfaces. Em particular, se um hub recebe quadros de duas diferentes interfaces ao mesmo tempo, ocorre uma colisão e os nós que criaram os quadros precisam retransmitir. Portanto, apesar da topologia física em estrela, a topologia lógica continuou sendo de barramento. Na figura 3 é mostrado as topologias Ethernet em barramento e estrela (hub).
Figura 3 - Topologias Ethernet barramento e estrela
No começo dos anos 2000, Ethernet passou por outra grande mudança evolucionária. As instalações Ethernet continuaram a usar a topologia de estrela, mas o hub no núcleo foi substituído por um comutador ou switch (fig. 4). Um switch é não apenas um aparelho “sem colisões”, mas também um comutador de pacotes do tipo armazena-e-repassa. Porém, ao contrário dos roteadores, que operam até a camada 3 (rede), um comutador opera até a camada 2 (enlace). 
Figura 4 - Topologia Ethernet estrela com switch
Tecnologias Ethernet
Até agora nos referimos à Ethernet como se fosse um único protocolo padrão. Mas, na verdade, ela aparece em diferentes versões, com acrônimos como 10BASE-T, 100BASE-T ou 10GBASE-T, por exemplo. A seguir os significados de cada parte do acrônimo. 
· A primeira parte do acrônimo se refere à velocidade-padrão: por exemplo 100Base-T é 100 Mbps.
· “BASE” se refere à banda-base, significando que a mídia física só suporta o tráfego da Ethernet; quase todos os padrões 802.3 são para banda-base. 
· A parte final do acrônimo se refere à mídia física em si que inclui cabo coaxial, fio de cobre ou fibra. Em geral um “T” se refere a um cabo de par trançado de fios de cobre. 
Nessas especificações também consideram-se, conforme figura 5, velocidade máxima atingível, máximo comprimento do cabo, tipo de sinalização etc.
				Figura 5 - Especificações Ethernet
O primeiro cabo utilizado no padrão Ethernet foi o cabo coaxial grosso (10Base5), ele possuía marcas a cada 2,5m onde deveriam ser encaixados os conectores. Depois foi utilizado o cabo coaxial fino (10Base2), mais flexível e utilizando um conector BNC mais fácil de instalar. Porém, o 10Base2 só comportava 30 nós por segmento e o mesmo atinge apenas 185m. Esses dois primeiros cabos possuíam alguns problemas e caíram em desuso. A detecção de cabos quebrados, conectores mal encaixados ou defeituosos eram um problema tanto na manutenção quanto na instalação. 
Para solucionar os problemas dos cabos anteriores surgiu o 10Base-T, cabo par trançado, com as vantagens de um dispositivo hub, ao qual todas as estações são ligadas por meio de um fio dedicado de no máximo 100m. 
A última opção de cabeamento é a fibra ótica, o 10Base-F. Apesar de caro, esse cabeamento proporciona acesso a distâncias muito maiores com um único cabo de fibra, sendo assim, interessantes para edifícios ou hubs distantes entre si.
Fast Ethernet 
Com a necessidade de transmitir um maior volume de dados foi criado o padrão 802.3u, ou Fast Ethernet. Ele mantinha os formatos antigos dos quadros, interfaces e regras, mas evoluiu para uma banda de 100Mbps. Esse projeto baseou-se no 10Base-T, e por isso, todos sistemas Fast Ethernet usam hubs ou switches. Praticamente todos os switches do mercado podem trabalhar com estações de 10Mbps e 100Mbps. A maioria dos produtos configura automaticamente a velocidade a ser usada.
	Figura 6 - Especificações Fast Ethernet
Gigabit Ethernet
O padrão 802.3z ou Gigabit Ethernet foi criado logo após o lançamento do 802.3u e opera a 1000Mbps. A Ethernet Gigabit admite tanto cobre quanto fibra óptica e também usa o formato-padrão do quadro Ethernet. Portanto, o 802,3z é compatível com as tecnologias 10BASE-T e 100BASE-T. Isso permite fácil integração da Gigabit Ethernet com a base instalada de equipamentos Ethernet. 
	Nome
	Meio
	Distância
	1000BASE-CX
	Shielded balanced copper cable
	25 meters
	1000BASE-KX
	Copper backplane
	1 meter
	1000BASE-SX
	Multi-mode fiber
	220 to 550 meters dependente on fibe diameter and bandwidth
	1000BASE-LX
	Single-mode fiber
	550 meters
	1000BASE-LX
	Single-mode fiber using 1,310 wavelength
	5 km
	1000BASE-LX10
	Single-mode fiber at 1,310 wavelength
	10 km
	1000BASE-EX
	Single-mode fiber at 1,310 wavelength
	~40 km
	1000BASE-ZX
	Single-mode fiber at 1,550 wavelength
	~70 km
	1000BASE-BX10
	Single-mode fiber, over single-strand fiber: 1,490 nm downstream 1,310 nm upstream
	10 km
	1000BASE-T
	Twisted-pair cabling (Cat-5, Cat-5e, Cat-6, Cat-7)
	100 meters
	1000BASE-TX
	Twisted-pair cabling (Cat-6, Cat-7)
	100 meters
Figura 7 - Especificações Gigabit Ethernet
10 Gigabit Ethernet 
A tecnologia 10 Gigabit Ethernet foi padronizada em 2002 com o IEEE 802.3ae e é o mais rápido padrão de Ethernet em uso. Este define uma versão da Ethernet com uma taxa de transferência de dados de 10 Gbit/s, dez vezes mais rápido que a Ethernet Gigabit. A Ethernet 10 Gigabit está sendo implementada rapidamente em LAN's, MAN's e WAN's devido ao seu grande potencial de transmissão de dados e seu longo alcance sem necessidade de repetidores (na casa de 40 quilômetros). A IEEE também cogita futuros padrões de 40, 80 e 100 e 400 Gbps. A Ethernet 10 Gigabit suporta apenas conexões full duplex os quais podem ser conectados com switches. Operações half duplex e CSMA/CD não são suportadas em 10GbE. Uma desvantagem da rede 10 Gigabit Ethernet é que ela pode ser somente ponto-a-ponto, o que significa que ela não possui tecnologia broadcast (difusão), então ela tem usos bastante específicos, como em backbones. 
Figura 8 - Resumo tecnologias Ethernet
Quadro Ethernet
Existem vários tipos de quadros Ethernet (figura 10). Os diferentes tipos de quadros têm diferentes formatos e valores MTU, mas podem coexistir no mesmo meio físico. A diferenciação entre tipos de quadros é possível com base na tabela. O quadro Ethernet II ou Ethernet Versão 2 ou quadro DIX é o tipo mais comum em uso hoje, pois é usado diretamente pelo protocolo Internet. 
 Figura 10- Tipos de quadro Ethernet
Além disso, todos os quatro tipos de quadros Ethernet podem, opcionalmente, conter uma etiqueta IEEE 802.1Q para identificar a VLAN a qual pertence e a sua prioridade (qualidade de serviço). Este encapsulamento é definido na especificação IEEE 802.3ac e aumenta o quadro máximo por 4 octetos.
Um quadro Ethernet possui o formato mostrado na figura. Esse quadro é dividido em cabeçalho, payload (carga útil) e CRC.
	MAC destino
	MAC origem
	802.1Q tag (optional)
	Ethertype (Ethernet II)ou 
tamanho (IEEE 802.3)
	Payload (carga útil)
	CRC
	6 octetos
	6 octetos
	(4 octets)
	2 octets
	46‑1500 octets
	4 octets
 ← 64–1522 octets →
Figura 9 - Formato de quadro Ethernet
Cabeçalho MAC
O cabeçalho engloba os endereços MAC de origem e destino, o campo EtherType e, opcionalmente, uma etiqueta IEEE 802.1Q. O campo EtherType tem dois octetos de comprimento e pode ser usado para duas finalidades diferentes. Valores menores ou iguais a 1500 indicam o tamanho da carga útil em octetos, enquanto os valores iguais ou maiores que 1536 indicam que ele é usado como EtherType. O campo EtherType indica qual protocolo é encapsulado na carga útil do quadro. Quando o EtherType é usado, o comprimento da quadro é determinado pela localização do intervalo entre pacotes e seqüência de verificação de quadro válida (FCS). Por exemplo, um valor EtherType de 0x0800 sinaliza que o quadro contém um datagrama IPv4. Da mesma forma, um EtherType de 0x0806 indica um quadro ARP, 0x86DD indica um quadro IPv6 e 0x8100 indica a presença de uma etiqueta IEEE 802.1Q. A tag IEEE 802.1Q, se presente, é um campo de quatro octetos que indica a assinatura da LAN virtual (VLAN) e a prioridade IEEE 802.1p.
Payload/Data
A seção do meio da quadro é a carga útil, incluindo cabeçalhos para outros protocolos carregados no quadro. A carga útil mínima é de 42 octetos quando uma etiqueta 802.1Q está presente e 46 octetos quando ausentes. Quando a carga útil atual é menor, bytes de preenchimento são adicionados. A carga útil máxima é de 1500 octetos. Porém quadros não padronizados chamados jumbo permitem tamanho de carga útil maior. Algumas implementações de Gigabit Ethernet e outras variantes de alta velocidade de Ethernet suportam quadros jumbo.
CRC Checksum
O quadro termina com uma soma de verificação que é uma verificação de redundância cíclica de 32 bits usada para detectar qualquer corrupção transitória de dados.
Ethernet II 
O enquadramento Ethernet II (fig. ) define o campo EtherType de dois octetos, precedido de endereços MAC de destino e origem. 
Figura 11 - O formato de quadro Ethernet mais comum, tipo II
Para permitir que alguns quadros usando o enquadramento Ethernet II e outros que utilizem a versão original do enquadramento 802.3 para serem usados ​​no mesmo segmento Ethernet, os valores de EtherType devem ser maiores ou iguais a 1536 (0x0600). Esse valor foi escolhido porque o comprimento máximo do campo de carga útil de um quadro Ethernet 802.3 é de 1500 octetos (0x05DC). Assim, se o valor do campo for maior ou igual a 1536, a quadro deve ser um quadro Ethernet II, sendo esse campo um campo de tipo. Se for inferior ou igual a 1500, deve ser um quadro IEEE 802.3, sendo esse campo um campo de comprimento. Os valores entre 1500 e 1536, exclusivos, são indefinidos. Esta convenção permite que o software determine se um quadro é um quadro Ethernet II ou um quadro IEEE 802.3, permitindo a coexistência de ambos os padrões no mesmo meio físico.
Comutadores 
A função de um comutador é receber quadros da camada de enlace e repassá-los para enlaces de saída. O comutador em si é transparente aos hosts e roteadores na rede; ou seja, um nó endereça um quadro a outro nó (em vez de endereçar o quadro ao comutador), sem saber que um comutador receberá o quadro e o repassará. 
A velocidade com que os quadros chegam a qualquer interface de saída do comutador pode temporariamente exceder a capacidade do enlace daquela interface. Para resolver esse problema, interfaces de saídas do comutador têm buffers, da mesma forma que uma interface de saída de um roteador tem buffers para datagramas.
Repasse e filtragem
A Filtragem é a capacidade de um comutador determinar se um quadro deve ser repassado para alguma interface ou se deve apenas ser descartado. Já o Repasse é a capacidade de um comutador que determina as interfaces para as quais um quadro deve ser dirigido e então dirigir o quadro a essas interfaces.
A filtragem e o repasse por comutadores são feitos com uma tabela de comutação (tabela CAM). A tabela de comutação contém registros para alguns hosts e roteadores da LAN, mas não necessariamente para todos. Um registro na tabela de comutação contém o endereço MAC, a interface do comutador que leva em direção a esse endereço MAC e o horário em que o registro foi colocado na tabela. Um exemplo de tabela de comutação para é mostrado na Figura. Uma diferença importante entre roteadores e comutadores é que os comutadores repassam pacotes baseados em endereços MAC, em vez de endereços IP. 
Figura 12 -Tabela de endereços MAC
Para entender como funcionam a filtragem e o repasse por comutadores, suponha que um quadro com endereço de destino DD-DD-DD-DD-DD-DD chega ao comutador na interface 1. Há três casos possíveis:
· Não existe entrada na tabela para DD-DD-DD-DD-DD-DD. Nesse caso, o comutador repassa cópias do quadro para os buffers de saída que precedem todas as interfaces, exceto a interface 1. Em outras palavras, se não existe entrada para o endereço de destino, o comutador transmite o quadro por difusão.
· Existe uma entrada na tabela, associando DD-DD-DD-DD-DD-DD com a interface 1. Nesse caso, o quadro está vindo de um segmento da LAN que contém o adaptador DD-DD-DD-DD-DD-DD. Não havendo necessidade de repassar o quadro para qualquer outra interface, o comutador realiza a função de filtragem ao descartar o quadro.
· Existe uma entrada na tabela, associando DD-DD-DD-DD-DD-DD com a interface 4. Nesse caso, o quadro precisa ser repassado ao segmento da LAN conectado à interface 4. O comutador realiza sua função de repasse ao colocar o quadro em um buffer de saída que precede a interface 4.
Autoaprendizagem
Um comutador tem a propriedade de montar sua tabela de modo automático, dinâmico e autônomo — sem nenhuma intervenção de um administrador de rede ou de um protocolo de configuração. Essa capacidade é obtida da seguinte forma:
1. A tabela de comutação inicialmente está vazia.
2. Para cada quadro recebido em uma interface, o comutador armazena em sua tabela: (1) o endereço MAC que está no campo de endereço de origem do quadro, (2) a interface da qual veio o quadro e (3) o horário corrente. Dessa maneira, o comutador registra em sua tabela o segmento da LAN no qual reside o nó remetente. Se cada host na LAN enviar um quadro, então cada um deles será registrado na tabela.
3. O comutador apagará um endereço na tabela se nenhum quadro que tenha aquele endereço como endereço de origem for recebido após certo período de tempo (o tempo de envelhecimento). Desse modo, se um PC for substituído por outro (com um adaptador diferente), o endereço MAC do PC original acabará sendo expurgado da tabela de comutação. 
Comutadores são dispositivos do tipo plug-and-play porque não requerem a intervenção de um administrador ou de um usuário da rede. Um administrador de rede que quiser instalar um comutador não precisa fazer nada mais do que conectar os segmentos de LAN às interfaces do comutador. O administrador não precisa configurar as tabelas de comutação na hora da instalação nem quando um host é removido de um dos segmentos de LAN. Comutadores também são full-duplex, ou seja, qualquer interface do comutador pode enviar e receber ao mesmo tempo.
Propriedades de comutação da camada de enlace
Podemos identificar diversas vantagens no uso de comutadores em relação a enlaces de difusão como barramentos ou topologias de estrela baseadas em hub, entre elas:
· Eliminação de colisões: em uma LAN com comutadores, não existe desperdício de banda causado por colisões. Os comutadores armazenam os quadros e nunca transmitem mais de um quadro em um segmento ao mesmo tempo. Como em um roteador, a vazão máxima agregada de um comutador é a soma da velocidade de todas as interfaces do comutador. Portanto, os comutadores oferecem uma melhoria de desempenho significativa em relação às LANs com enlaces de difusão.
· Enlaces heterogêneos: uma vez que o comutador isola um enlace do outro, os diferentes enlaces na LAN conseguem operarem diferentes velocidades e podem ser executados por diferentes mídias. Por exemplo, o comutador poderia ter enlaces de cobre 1000BASE-T de 1 Gbit/s, de fibra 100BASE-FX de 100 Mbits/s e de cobre 100BASE-T. Assim, um comutador é ideal para misturar equipamento legado e novo.
· Gerenciamento: um comutador facilita o gerenciamento da rede. Por exemplo, se um adaptador apresenta defeito e envia continuamente quadros Ethernet, um comutador pode detectar o problema e desconectar internamente o adaptador com defeito. De modo semelhante, um cabo quebrado desconecta apenas o host que o estava usando para conectar o comutador. Os comutadores também colhem estatísticas sobre uso da largura de banda, taxas de colisão e tipos de tráfego, e tornam essa informação disponível para o gerente da rede. Tal informação pode ser usada para depurar e corrigir problemas, além de planejar como a LAN deverá evoluir no futuro. 
Comutadores anunciaram o fim da Ethernet?
Em qualquer rede de difusão, a questão fundamental é determinar quem tem direito de usar o canal quando há um disputa por ele. Os protocolos usados para determinar quem será o próximo em um canal de multiacesso pertencem a subcamada da camada de enlace de dados, chamada subcamada MAC. A subcamada MAC é especialmente importante em LANs que, em sua maioria, utilizam um canal de multiacesso como base de sua comunicação. Em contrapartida, as WANs utilizam enlaces ponto a ponto, com exceção das redes de satélites.
Porém, na época da topologia de barramento e da topologia de estrela baseada em hub, a Ethernet era evidentemente um enlace de difusão, onde colisões de quadro ocorriam quando nós transmitiam ao mesmo tempo. Para lidar com essas colisões, o padrão Ethernet incluiu o protocolo CSMA/CD. Mas se o uso atual prevalente da Ethernet é baseado em comutadores com a topologia de estrela, usando o modo de comutação armazenar-e-repassar, existe mesmo a necessidade de se usar um protocolo Ethernet MAC? 
Um comutador coordena suas transmissões e nunca repassa mais de um quadro por vez na mesma interface. Além disso, comutadores modernos são full-duplex, de modo que um comutador e um nó possam enviar quadros um ao outro ao mesmo tempo sem interferência. Em outras palavras, em uma LAN Ethernet baseada em, comutador, não há colisões e, portanto, não existe a necessidade de um protocolo MAC.
A Ethernet atual é muito diferente da original. As velocidades aumentaram de três ordens de grandeza, as Ethernets comutadas se tornaram dominantes e até mesmo o protocolo MAC é muitas vezes desnecessário. Será que tudo isso realmente ainda é Ethernet? A resposta é, obviamente, “sim, por definição”. No entanto, apesar de todas essas mudanças, existiu uma constante que continuou inalterada por mais de 30 anos — o formato do quadro Ethernet. Talvez esta seja a única peça central verdadeira e eterna do padrão Ethernet.
Camada de Rede
Até agora estudamos sobre como os computadores se comunicam uns com os outros em distâncias curtas ou em um único segmento de rede ou LAN. Nessas próximas lições, estudaremos as tecnologias que permitem que os dados cruzem diversas redes facilitando as comunicações em grandes distâncias. 
Camada de Rede
O endereços MAC funcionam bem em pequena escala. Os switches aprendem rapidamente os MACs das interfaces conectadas em entre si e encaminham as mensagens adequadamente. Porém, o endereçamento MAC não é um esquema escalável. Todas as interfaces de rede do planeta possuem um único endereço MAC e não são ordenadas de forma sistemática. Não há como saber onde, no planeta, um certo endereço MAC pode estar. Por isso, ele não é ideal para comunicação em longas distâncias. Estudaremos o ARP ou Protocolo de Resolução de Endereços, e você verá que a forma como os nós aprendem sobre o endereçamento físico não é traduzível para o caso de nós que estão fora de uma rede local. Portanto, precisamos de outra solução. Essa solução está na Camada de Rede. Ela é responsável pelas conexões entre as redes locais, estabelecendo assim a interconexão. As principais funções da camada de rede são o roteamento dos pacotes entre fonte e destino, mesmo que estes tenham que passar por diversos nós intermediários durante o percurso, o controle de congestionamento e a contabilização do número de pacotes ou bytes utilizados pelo usuário, para fins de tarifação. Existem diversos protocolos que trabalham nesta camada, entre eles o IP (IPv4/IPv6), ARP, ICMP, ICMPv6, ECN, IGMP, IPsec etc. Em nossos estudos, daremos atenção especial ao principal protocolo da camada de rede, o protocolo IP. 
Endereçamento IP
Os endereços IP são números de 32 bits divididos em 4 octetos. Normalmente, cada octeto é descrito em números decimais. Um único octeto pode representar todos os números decimais de 0 a 255. Dessa forma, 12.34.56.78 é um endereço IP válido. Mas 123.456.789.100 não seria, porque tem números maiores do que poderiam ser representados por 8 bits, ou seja, maiores que 255. 
Os endereços IP são distribuídos em grandes seções para várias organizações e empresas, em vez de serem determinados por fornecedores de hardware. Isso significa que os endereços IP são mais hierárquicos e mais fáceis de armazenar dados do que os endereços físicos. A IBM, por exemplo, possui todos os endereços IP que tem o número 9 como o primeiro octeto. Isso significa que, se um roteador da Internet precisar descobrir para onde enviar um pacote de dados destinado ao endereço IP 9.0.0.1, esse roteador só precisa saber de deve enviá-lo para um dos roteadores da IBM. A partir daí, um roteador da IBM pode lidar com o resto do processo de entrega.
Figura 1- Endereço IPV4
Os endereços IP pertencem às redes e não aos dispositivos conectados a essas redes. Portanto, seu laptop sempre terá o mesmo endereço MAC, não importa onde você o use. Porém o laptop terá endereços IP diferentes ao se conectar à Internet de uma lanchonete ou de uma escola. A LAN da Internet da lanchonete ou da sua escola seria individualmente responsável pela escolha e determinação de um endereço IP ao seu laptop.
No dia-a-dia, obter um endereço IP geralmente é um processo bastante invisível. Portanto, em muitas redes modernas, você pode conectar um novo dispositivo e um endereço IP será atribuído a ele automaticamente através de uma tecnologia conhecida como Protocolo de Configuração de Host Dinâmico ou DHCP (Dynamic Host Configuration Protocol). Um endereço IP atribuído a partir desse protocolo é conhecido como um endereço IP dinâmico. O oposto é um endereço IP estático, que deve ser configurado em um nó manualmente. Geralmente, os endereços IP estáticos são reservados para servidores e dispositivos de rede, enquanto os endereços IP dinâmicos são reservados para clientes. Mas certamente há situações em que isso pode não ser verdade.
Datagramas IP e Encapsulamento
Os pacotes na camada de rede tem nomes específicos, assim como todos os pacotes de dados na camada Ethernet são quadros Ethernet. Sob o protocolo IP, um pacote geralmente é referido como um datagrama IP. Assim como qualquer quadro Ethernet, um datagrama IP é uma série de campos altamente estruturados. As duas seções principais de um datagrama IP são o cabeçalho e a carga útil (payload). 
Conforme a figura 2, o primeiro campo de um datagrama IP possui quatro bits e indica qual versão do protocolo está sendo usada. A versão mais comum do IP é a versão quatro ou IPv4, apesar de a versão 6 ou IPv6 observar crescente adoção.
Após o campo de versão, temos o campo comprimento do cabeçalho. Este também é um campo de quatro bits que indica quão grande é o cabeçalho. No IPV4, quase sempre o cabeçalho possui 20 bytes de comprimento. Na verdade, 20 bytes é o comprimento mínimo de um cabeçalho IP. Ou seja, não é possível inserir todos os dados necessários para um cabeçalho IP em menos espaço que 20 bytes. 
Figura 2 - Datagrama IP
Em seguida, temos o campo tipo de serviço. Esses oito bits podem ser usados ​​para especificar detalhes sobre qualidade de serviço ou tecnologias QoS. O importantesobre QoS é saber que existem serviços que permitem que os roteadores tomem decisões sobre qual datagrama IP pode ser mais importante do que outros. 
O próximo campo é um campo de 4 bits, conhecido como o campo comprimento total. Este é usado para indicar o comprimento total do datagrama IP ao qual está anexado.
O campo de identificação é um número de 16 bits usado para agrupar mensagens em conjunto. Os datagramas IP têm um tamanho máximo. Uma vez que o campo comprimento total é de 16 bits e este campo indica o tamanho de um datagrama individual, o tamanho máximo de um único datagrama é 65.535. Se a quantidade total de dados que precisa ser enviada é maior que o que pode caber em um único datagrama, a camada IP precisa dividir esses dados em pacotes menores. Quando isso acontece, o campo de identificação é usado para que a extremidade de recepção compreenda que cada pacote com o mesmo valor desse campo faz parte da mesma transmissão. 
Em seguida, temos dois campos estreitamente relacionados. O campo de flags ou bandeiras e o campo offset fragmentation. O campo de flags é usado para indicar se um datagrama pode ser fragmentado ou para indicar que o datagrama já foi fragmentado. A fragmentação é o processo de pegar um único datagrama IP e dividi-lo em vários datagramas menores. Embora a maioria das redes funcione com configurações semelhantes em termos de tamanho que um datagrama IP, às vezes, isso pode ser configurado de forma diferente. Se um datagrama tiver que atravessar uma rede permitindo um tamanho de datagrama maior para uma outra rede que permite datagramas com um tamanho menor, o datagrama teria que ser fragmentado em datagramas menores. O campo offset fragmentation contém valores utilizados pelo destinatário para pegar todas as partes de um pacote fragmentado e colocá-los novamente na ordem correta.
O campo Time to Live ou TTL é um campo de 8 bits que indica quantos roteadores um datagrama pode percorrer antes que ele seja descartado. Toda vez que um datagrama atinge um novo roteador, esse roteador decrementa o campo TTL em um. Uma vez que este valor chega a zero, um roteador sabe que não precisa encaminhar mais o datagrama. O objetivo principal deste campo é garantir que, quando houver uma configuração errada no roteamento que cause um loop infinito, os datagramas não gastem toda a eternidade tentando alcançar seu destino. Um loop infinito poderia ser quando o roteador A pensa que o roteador B é o próximo salto e o roteador B pensa que o roteador A é o próximo salto. 
Após o campo TTL, você encontrará o campo protocolo. Este é outro campo de 8 bits que contém dados sobre o protocolo de camada de transporte que está sendo usado. Os protocolos de camada de transporte mais comuns são o TCP e o UDP. 
Em seguida, encontramos o campo de header checksum ou soma de verificação do cabeçalho. Este campo é uma soma de verificação do conteúdo de todo o cabeçalho do datagrama IP. Funciona como o campo de checksum Ethernet. Uma vez que o campo TTL deve ser recalculado em cada roteador que um datagrama toca, o campo de soma de verificação também muda necessariamente. 
Depois de tudo isso, finalmente chegamos a dois campos muito importantes, os campos de endereço IP de origem e de destino. Lembre-se de que um endereço IP é um número de 32 bits, então, não deve surpreender que esses campos tenham 32 bits de comprimento. 
Em seguida, temos o campo de opções de IP. Este é um campo opcional e é usado para definir características especiais para datagramas usados ​​principalmente para fins de teste. O campo de opções de IP geralmente é seguido por um campo de preenchimento (padding). Uma vez que o campo de opções de IP é opcional e de comprimento variável, o campo de preenchimento é apenas uma série de zeros usados ​​para garantir que o cabeçalho tenha o tamanho total correto. 
Lembre-se de quando falamos sobre o quadro Ethernet e mencionamos uma seção de carga útil de dados. Este é exatamente o que o datagrama IP é, e esse processo é conhecido como encapsulamento. Todo o conteúdo de um datagrama IP é encapsulado como a carga útil de um quadro Ethernet. O datagrama IP também possui uma seção de carga útil. O conteúdo desta carga é a totalidade de um pacote TCP ou UDP. 
Figura 3 - Datagrama IP
Classes de endereços IP
Os endereços IP podem ser divididos em duas seções, a ID da rede e a ID do host. Anteriormente, mencionamos que a IBM possui todos os endereços IP que tem um 9 como o valor do primeiro octeto em um endereço IP. Se tomarmos um exemplo de endereço IP como o 9.100.100.100, a ID da rede seria o primeiro octeto e a ID do host seria o segundo, terceiro e quarto octetos.
Figura 3 - Datagrama IP
O sistema de classes de endereço é uma maneira de definir como o espaço de endereço IP global é dividido. Existem três tipos principais de classes de endereço. Classe A, Classe B e Classe C. Os endereços de Classe A são aqueles em que o primeiro octeto é usado para a ID da rede e os três últimos são usados ​​para o ID do host. Os endereços de Classe B são onde os dois primeiros octetos são usados ​​para a ID da rede e os dois segundos são usados ​​para o ID do host. Os endereços de Classe C são aqueles em que os três primeiros octetos são usados ​​para a ID da rede, e apenas o octeto final é usado para o ID do host. 
Cada classe de endereço representa uma rede de tamanho muito diferente. Por exemplo, uma vez que uma rede de classe A tem um total de 24 bits de espaço de ID de host, isso resulta em 24 ou 16.777.216 endereços individuais. Comparando com uma rede classe C, que possui apenas oito bits de espaço de ID do host, isso resulta em 24 ou 256 endereços. 
Você também pode dizer exatamente a qual classe de endereço pertence um endereço de IP, apenas olhando para ele. Se o primeiro bit de um endereço IP for um zero, pertence a uma rede de classe A, se os primeiros bits forem um, zero, ele pertence a uma rede classe B. Finalmente, se os primeiros bits forem 110, ele pertence a uma rede classe C. 
Como os seres humanos não são ótimos em pensar em binário, é bom saber que isso também se traduz muito bem em como esses endereços são representados em notação decimal pontilhada. Você pode lembrar que cada octeto em um endereço IP é de oito bits, o que significa que cada octeto pode ter um valor entre 0 e 255. Se o primeiro bit tiver que ser um zero, como é com o endereço da classe A, os valores possíveis para o primeiro octeto é de 0 a 127. Isso significa que qualquer endereço IP com um primeiro octeto com um desses valores é um endereço de classe A. Da mesma forma, os endereços de classe B são restritos a aqueles que começam com o primeiro valor de octeto de 128 a 191 e os endereços de classe C começam com o primeiro valor de octeto de 192 a 223.
Figura 5 - Classes de endereços IP
É possível notar que estes intervalos não cobrem todos os possíveis endereços IP. Isso ocorre porque existem outras duas classes de endereço IP.. Os endereços de classe D sempre começam com os bits 1110 e são usados ​​para multicast, que é como um único datagrama de IP pode ser enviado para toda uma rede ao mesmo tempo. Esses endereços começam com valores decimais entre 224 e 239. Por fim, os endereços de classe E compõem todos os endereços IP restantes, e que são usados ​​apenas para fins de teste. 
Em termos práticos, o sistema de classes foi substituído, principalmente, por um sistema conhecido como CIDR ou Roteamento Interdomínio Sem Classes. Porém, o sistema de classes ainda está em vigor de muitas maneiras.
Protocolo de Resolução de Endereços
Já estudamos sobre os endereços MAC da camada de enlace e os endereços IP da camada de rede. Agora discutiremos como esses dois tipos de endereços se relacionam entre si. É aí que o Protocolo de Resolução de Endereço ou o ARP (Address Resolution Protocol) entra em jogo. 
O ARP é um protocolo usado para descobrir o endereço MAC de um nó com determinado endereço IP. Uma vez que um datagrama IP foi formado na camada de rede, ele precisa ser encapsulado dentro de um quadroEthernet na camada de enlace. Isso significa que o dispositivo transmissor precisa do endereço MAC de destino para completar o cabeçalho do quadro Ethernet. Quase todos os dispositivos conectados em rede mantém uma tabela ARP local. A tabela ARP é apenas uma lista de endereços IP e os endereços MAC associados a eles. 
Digamos que queremos enviar alguns dados para o endereço IP 10.20.30.40. Pode ser que esse destino não tenha uma entrada na tabela ARP. Quando isso acontece, o nó que deseja enviar dados envia uma mensagem ARP para o endereço de broadcast MAC FF-FF-FF-FF-FF. Esses tipos de mensagens ARP são entregues a todos os computadores na rede local. Quando a interface de rede a qual foi atribuído um IP de 10.20.30.40 recebe esta transmissão ARP, ele envia de volta o que é conhecido como uma resposta ARP. Esta mensagem de resposta conterá o endereço MAC para a interface de rede em questão. 
Agora, o computador transmissor sabe qual endereço MAC colocar no campo de endereço físico de destino e o quadro Ethernet pode ser configurado. Também, o host irá armazenar este endereço de IP em sua tabela ARP local para que ele não tenha que enviar uma transmissão ARP na próxima vez que ele precisa se comunicar com este IP. As entradas da tabela ARP geralmente expiram após um curto período de tempo para garantir que as mudanças na rede sejam contabilizadas.
Figura 6 - Mensagens ARP
2 Sub-redes
Em termos básicos, a sub-rede é a parte da divisão de uma grande rede em redes menores e individuais. As configurações de sub-redes incorretas são um problema comum que você, como um técnico em redes pode encontrar. Por isso é importante ter uma forte compreensão de como isso funciona.
Na primeira sessão vimos que as classes de endereço IP possibilitam-nos quebrar o espaço total de IP global em redes discretas. Se você deseja se comunicar com o endereço IP 9.100.100.100, os roteadores principais na Internet sabem que esse IP pertence à rede da categoria A do 9.0.0.0. Em seguida, eles roteiam a mensagem para o roteador de gateway responsável pela rede, observando a ID da rede. Um roteador de gateway serve especificamente como porta de entrada e saída para uma determinada rede. Uma vez que o seu pacote chega ao roteador do gateway para a rede da categoria A do 9.0.0.0, esse roteador agora é responsável por obter esses dados no sistema apropriado, observando o ID do host. Isso faz sentido até você lembrar que a classe A contém 16,777,216 IPs de host individuais. Ou seja, é um número enorme de dispositivos para se conectar ao mesmo roteador em uma única rede. É aí que entra o conceito de sub-rede. Com sub-redes, é possível dividir uma grande rede em muitas redes menores. Essas sub-redes individuais terão seus próprios roteadores de gateway servindo como ponto de entrada e saída para cada sub-rede.
2.1 Máscara de sub-rede
Até agora, aprendemos sobre IDs de rede, que são usados ​​para identificar redes e IDs de host que são usados ​​para identificar hosts individuais. Se quisermos dividir as coisas ainda mais, precisamos de um terceiro conceito, o ID da sub-rede. Como um endereço IP é apenas um número de 32 bits, em um mundo sem sub-redes, um certo número desses bits são usados ​​para a ID da rede, e um certo número de bits são usados ​​para o ID do host. Em um mundo com sub-redes, alguns bits que normalmente incluem o ID do host são realmente usados ​​para a ID da sub-rede. 
Na Internet, os roteadores principais só se preocupam com a ID da rede e usam isso para enviar o datagrama ao roteador de gateway apropriado para essa rede. Esse roteador de gateway possui algumas informações adicionais para enviar esse datagrama para a máquina de destino ou o próximo roteador no caminho para chegar ao destino. Finalmente, o ID do host é usado por esse último roteador para entregar o datagrama à máquina destinatária.
As IDs de sub-rede são calculadas através do que é conhecido como uma máscara de sub-rede. Assim como um endereço IP, as máscaras de sub-rede são números de 32 bits que normalmente são escritos como quatro octetos em decimal. É muito importante entender corretamente como as máscaras de sub-rede funcionam já que elas são tão freqüentemente incompreendidas. As pessoas apenas memorizam algumas máscaras mais comuns sem entender o que está acontecendo nos bastidores. Por isso, é importante dedicar atenção e um pouco de tempo estudando esses conceitos.
Vamos pegar como exemplo o endereço IP 9.100.100.100. Cada parte de um endereço IP é um octeto ou oito bits. O número 9 em binário é apenas 1001. Mas, como cada octeto precisa de oito bits, precisamos acrescentar alguns zeros à esquerda. Portanto, o número 9 como o primeiro octeto é representado como 00001001. Da mesma forma, o numeral 100 é representado como 0110 0100. A representação binária do endereço IP 9.100 .100.100 é mostrada na figura 7. 
Figura 7 - Endereço IP
Uma máscara de sub-rede é um número binário que possui duas seções. A parte inicial, que é a máscara em si, é uma série de 1s. A segunda parte da máscara de sub-rede é uma sequência de 0s. A parte com números s nos diz o que podemos ignorar de uma ID de host. A parte com todos os zeros nos diz o que manter. Portanto, o objetivo da máscara ou da sequência de 1s é dizer ao roteador qual parte de um endereço IP é a ID da sub-rede. Vamos usar como exemplo a máscara de sub-rede 255.255.255.0. Essa máscara se traduz em 24 1s” seguidos por oito “0s”. 
Figura 8 - Máscara de sub-rede
Já sabemos como obter a ID da rede para um endereço IP. Para 9.100.100.100, uma rede de Classe A, é apenas o primeiro octeto. Vamos pegar esses 3 octetos restantes e imaginá-los ao lado da máscara de sub-rede em forma binária. Os números nos octetos restantes que possuem um correspondente na máscara de sub-rede formaram a ID da sub-rede. Os números nos octetos restantes que têm um zero correspondente são o ID do host. O tamanho de uma sub-rede é totalmente definido pela sua máscara de sub-rede. Então, por exemplo, com a máscara de sub-rede do 255.255.255.0, sabemos que apenas o último octeto está disponível para IDs de host, independentemente do tamanho das IDs de rede e sub-rede. Um único número de oito bits pode representar 256 números diferentes, ou mais especificamente, os números 0-255. Este é um bom momento para salientar que, em geral, uma sub-rede pode conter apenas o número total de IDs de host disponíveis subtraído de 2. Novamente, usando uma máscara de sub-rede de 255.255.255.0, sabemos que o octeto disponível para IDs de host pode conter os números 0-255, mas o 0 geralmente não é usado e o 255 normalmente é reservado como um endereço de broadcast para a sub-rede. Isso significa que, na verdade, apenas os números 1-254 estão disponíveis para atribuição a um host. Embora esta abordagem quase sempre seja verdadeira, em geral, você se referirá ao número de hosts disponíveis em uma sub-rede como o número inteiro. Então, mesmo que seja entendido que dois endereços não estão disponíveis para atribuição, você ainda diria que oito bits de espaço de ID de host possuem 256 endereços disponíveis, não 254. Isso ocorre porque esses outros IPs ainda são endereços IP, mesmo que eles não são atribuídos diretamente a um nó nessa sub-rede. 
Figura 9 - ID de sub-rede
Agora, vejamos uma máscara de sub-rede que não desenha seus limites em um octeto inteiro ou oito bits de endereço. A máscara de sub-rede 255.255.255.224 traduz-se para 27 “1s” seguidos de cinco zeros. Isso significa que temos cinco bits de espaço de ID do host ou um total de 32 endereços. Isso traz uma forma abreviada de escrever máscaras de sub-rede. Digamos que estamos lidando com o nosso antigo amigo 9.100.100.100 com uma máscara de sub-rede de 255.255.255.224. Uma vez que essa máscara de sub-rede representa 27 “1s”, seguida de cinco zeros, uma maneira mais rápida de referenciar isso é com a notação /27. Todo o IP e a máscara de sub-rede podem ser escritos agora como 9.100.100.100/27. 
Figura 10 - Exemplo IP + máscara
2.2 CIDR
As classes de endereço IP forama primeira tentativa de dividir o espaço global da Internet IP. As sub-redes foram introduzidas quando ficou claro que as próprias classes de endereços não eram uma forma tão eficiente de manter tudo organizado. Mas, à medida que a Internet continuava a crescer, as sub-redes tradicionais simplesmente não podiam acompanhar. Com a sub-rede tradicional e as classes de endereços, a identificação de rede é sempre 8 bit para redes de classe A, 16 bits para redes de classe B e 24 bit para redes de classe C. Isso significa que existem apenas 254 redes de classe A, mas também significa que existem 2.970.152 redes potenciais de classe C. Dessa forma, seriam muitas as entradas em uma tabela de roteamento. Além disso, o dimensionamento dessas redes nem sempre é apropriado para as necessidades da maioria das empresas. Por exemplo, 254 hosts em uma rede classe C são muito pequenos para muitos casos de uso, mas os 65,534 hosts disponíveis para uso em uma rede classe B geralmente são muito grandes. Muitas empresas acabaram por utilizar várias redes de classe C adjacentes para atender às suas necessidades. Isso significava que as tabelas de roteamento acabavam com um monte de entradas para um grupo de redes de classe C que estavam sendo encaminhadas para o mesmo lugar.
Nesse contexto surge o CIDR ou o roteamento interdomínio sem classe. O CIDR é uma abordagem ainda mais flexível para descrever blocos de endereços IP. Ele expande o conceito de sub-rede usando máscaras de sub-rede para demarcar redes. Demarcar algo significa desativar algo. Ao discutir redes de computadores, muitas vezes você ouvirá o termo de ponto de demarcação para descrever onde uma rede ou sistema termina e outro começa. Em nosso modelo anterior, confiamos em um ID de rede, ID de sub-rede e ID de host para entregar um datagrama IP para a localização correta. Com o CIDR, a ID da rede e a ID da sub-rede são combinadas em uma. O CIDR é onde obtemos a notação de abreviatura da taquigrafia que discutimos anteriormente sobre sub-redes. Esta notação também é conhecida como notação CIDR. O CIDR basicamente abandona completamente o conceito de classes de endereços, permitindo que um endereço seja definido por apenas duas IDs individuais.
Figura 11 - Tabela CIDR
Vamos tomar como exemplo o endereço IP 9.100.100.100 com uma máscara de rede de 255.255.255.0. Lembre-se, isso também pode ser escrito como 9.100.100.100/24.
Figura 12 - Exemplo notação CIDR
Em um mundo onde já não nos importamos com a classe de endereço deste IP, tudo o que precisamos é simplesmente o que a máscara de rede nos diz para determinar a ID da rede. Neste caso, isso seria 9.100.100, o ID do host permanece o mesmo. Esta prática não só simplifica como os roteadores e outros dispositivos de rede precisam pensar em partes de um endereço IP, mas também permite tamanhos de rede mais arbitrários. Antes, os tamanhos da rede eram estáticos. Pense apenas na classe A, na classe B ou na classe C, e apenas as sub-redes podem ter tamanhos diferentes. O CIDR permite que as próprias redes sejam de diferentes tamanhos. Antes disso, se uma empresa precisasse de mais endereços do que uma única classe C poderia fornecer, eles precisam de uma segunda classe inteira C. Com o CIDR, eles poderiam combinar esse espaço de endereço em um pedaço contíguo com uma máscara de rede de /23 ou 255.255.254.0. Isso significa que os roteadores agora só precisam saber uma entrada em sua tabela de roteamento para entregar o tráfego para esses endereços em vez de duas entradas. 
É importante que você pratique obter outras IDs de host . Lembre-se de que você sempre perde duas ID de host por rede. Então, se uma rede /24 tiver 256 hosts potenciais, você realmente só possui 256 menos dois, ou seja, 254 IPs disponíveis para atribuir. Se você precisa de duas redes deste tamanho, você tem um total de 254 mais 254 ou 508 hosts. Uma rede única /23, por outro lado possui 512 menos dois, 510 hosts. 
Figura 13 - Classes IP x CIDR
Referências
KUROSE, F. E. ROOS, K. Redes de computadores e a Internet. [S.L.]: Pearson Education, 2010.
TORRES, Gabriel. Redes de Computadores: curso completo. Rio de Janeiro: Axel Books, 2001.
TANENBAUM, Andrew S. Computer Networks. 4ª Edição. Amsterdam: Editora Campus, data de publicação da obra.
SOARES, L. F. G. et al. Redes de computadores: das LANs, MANs e WANs, às redes ATM. [S.L.]: Editora Campus, [19--].

Continue navegando