Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Uberlândia Redes de Computadores Modelo OSI e Protocolos TCP/IP Jonatha Michael Lima de Almeida 11221EEL013 Uberlândia 2017 2 SUMÁRIO O modelo OSI (Open System Interconnection) . . . . . . . . . . . . . . . . . . . . . . .03 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03 As Camadas do modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 05 Camada de aplicação (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .05 Camada de apresentação (6) . . . . . . . . . . . . . . . . . . . . . . . . . . . 05 Camada de sessão (5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06 Camada de transporte (4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06 Camada de rede (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 08 Camada de enlace de dados (2) . . . . . . . . . . . . . . . . . . . . . . . . .09 Camada física (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 09 Funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Protocolo TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Camadas do TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Camada de Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Camada de Transporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Camada Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Camada Interface com a Rede . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Outras funcionalidades e protocolos do TCP/IP . . . . . . . . . . . . . . . . . . 23 Serviços de Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 TFTP (Trivial File Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . .24 DHCP (Dynamic Host Configuration Protocol) . . . . . . . . . . . . . . 25 DNS (Domain Name System) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 ICMP (Internet Control Message Protocol) . . . . . . . . . . . . . . . . . 27 Protocolos de Roteamento: RIP, OSPF e BGP . . . . . . . . . . . . . .29 ARP e RARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Outras Funcionalidades e Protocolos . . . . . . . . . . . . . . . . . . . . .32 Referências bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 3 O modelo OSI (Open System Interconnection) Introdução O Modelo OSI (acrônimo do inglês Open System Interconnection) é um modelo de rede de computador referência da ISO dividido em camadas de funções, criado em 1971 e formalizado em 1983, com objetivo de ser um padrão, para comunicação entre os mais diversos sistemas em uma rede local (Ethernet), garantindo a comunicação entre dois sistemas computacionais (end-to-end). Este modelo divide as redes de computadores em 7 camadas, de forma a se obter camadas de abstração. Cada protocolo implementa uma funcionalidade assinalada a uma determinada camada. Segundo Tanenbaum o Modelo OSI não é uma arquitetura de redes, pois não especifica os serviços e protocolos exatos que devem ser usados em cada camada. Ele apenas informa o que cada camada deve fazer. O Modelo OSI permite comunicação entre máquinas heterogêneas e define diretivas genéricas para a construção de redes de computadores (seja de curta, média ou longa distância) independente da tecnologia utilizada A Figura 1 mostra uma ilustração do modelo de referência OSI. Os programas comunicam-se apenas com a camada 7, a camada de Aplicação, enquanto que a camada “abaixo” da camada 1 é o meio de transmissão da rede (por exemplo, cabo ou ar, no caso de redes sem fio). O cabeamento de rede é às vezes referido como “camada 0”. 4 Figura 1: Modelo de referência OSI. As sete camadas podem ser agrupadas em três grupos: Aplicação, Transporte e Rede, como você pode ver na Figura 1. Rede: As camadas deste grupo são camadas de baixo nível que lidam com a transmissão e recepção dos dados da rede. Transporte: Esta camada é responsável por pegar os dados recebidos da rede e transformá-los em um formato compreensível pelo programa. Quando seu computador está transmitindo dados, esta camada pega os dados e os divide em vários pacotes para serem transmitidos pela rede. Quando seu computador está recebendo dados, esta camada pega os pacotes recebidos e os coloca em ordem. Aplicação: Essas são as camadas mais altas que colocam os dados no formato usado pelo programa 5 As Camadas do modelo OSI O modelo OSI é dividido em sete camadas hierárquicas, ou seja, cada camada usa as funções da própria ou da camada anterior, para esconder a complexidade e transparecer de modo simples as operações ao usuário, seja ele um programa ou uma outra camada. As camadas são empilhadas na seguinte ordem: 7. Camada de aplicação; 6. Camada de apresentação; 5. Camada de sessão; 4. Camada de transporte; 3. Camada de rede; 2. Camada de enlace de dados; 1. Camada física. Camada de Aplicação (7) A camada de aplicação corresponde às aplicações (programas) no topo da camada OSI que serão utilizadas para promover uma interação entre a máquina-usuário (máquina destinatária e o usuário da aplicação). Esta camada também disponibiliza os recursos (protocolo) para que tal comunicação aconteça, por exemplo, ao solicitar a recepção de e-mail através do aplicativo de e-mail, este entrará em contato com a camada de Aplicação do protocolo de rede efetuando tal solicitação (POP3 ou IMAP). Tudo nesta camada é relacionado ao software. Alguns protocolos utilizados nesta camada são: HTTP, SMTP, FTP, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, ICMP. Camada de Apresentação (6) A camada de Apresentação, também chamada camada de Tradução, converte o formato do dado recebido pela camada de Aplicação em um formato comum a ser usado na transmissão desse dado, ou seja, um formato entendido 6 pelo protocolo usado. Um exemplo comum é a conversão do padrão de caracteres (código de página) quando o dispositivo transmissor usa um padrão diferente do ASCII. Pode ter outros usos, como compressão de dados e criptografia. Os dados recebidos da camada 6 estão descomprimidos, e a camada 6 do dispositivo receptor fica responsável por comprimir esses dados. A transmissão dos dados torna-se mais rápida, já que haverá menos dados a serem transmitidos: os dados recebidos da camada 4 foram "encolhidos" e enviados à camada 1. Para aumentar a segurança, pode-se usar algum esquema de criptografia neste nível, sendo que os dados só serão descodificados na camada 6 do dispositivo receptor. Ela trabalha transformando os dados em um formato no qual a camada de aplicação possa aceitar, minimizando todo tipo de interferência. Camada de Sessão (5) Responsável pela troca de dados e a comunicação entre hosts, a camada de Sessão permite que dois programas em computadores diferentes estabeleçam uma sessão de comunicação. Nesta sessão, esses dois programas definem como será feita a transmissão dos dados e coloca marcações nos dados que estão sendotransmitidos. Se porventura a rede falhar, os dois computadores reiniciam a transmissão dos dados a partir da última marcação recebida em vez de retransmitir todos os dados novamente. Por exemplo, você está baixando e-mails de um servidor de e-mails e a rede falha. Quando a rede voltar a estar operacional, a sua tarefa continuará do ponto em que parou, não sendo necessário reiniciá-la. Note que nem todos os protocolos implementam esta função. Camada de Transporte (4) A camada de transporte é responsável por receber os dados enviados pela camada de sessão e segmentá-los para que sejam enviados a camada de rede, que por sua vez, transforma esses segmentos em pacotes. No receptor, a 7 camada de Transporte realiza o processo inverso, ou seja, recebe os pacotes da camada de rede e junta os segmentos para enviar à camada de sessão. Isso inclui controle de fluxo, ordenação dos pacotes e a correção de erros, tipicamente enviando para o transmissor uma informação de recebimento, garantindo que as mensagens sejam entregues sem erros na sequência, sem perdas e duplicações. A camada de transporte separa as camadas de nível de aplicação (camadas 5 a 7) das camadas de nível físico (camadas de 1 a 3). A camada 4, Transporte, faz a ligação entre esses dois grupos e determina a classe de serviço necessária como orientada à conexão, com controle de erro e serviço de confirmação ou sem conexões e nem confiabilidade. O objetivo final da camada de transporte é proporcionar serviço eficiente, confiável e de baixo custo. O hardware e/ou software dentro da camada de transporte e que faz o serviço é denominado entidade de transporte. A entidade de transporte comunica-se com seus usuários através de primitivas de serviço trocadas em um ou mais TSAP (Transport Service Access Point), que são definidas de acordo com o tipo de serviço prestado: orientado ou não à conexão. Estas primitivas são transportadas pelas TPDU (Transport Protocol Data Unit). Na realidade, uma entidade de transporte poderia estar simultaneamente associada a vários TSA e NSAP (Network Service Access Point black). No caso de multiplexação, associada a vários TSAP e a um NSAP e no caso de splitting, associada a um TSAP e a vários NSAP. A ISO define o protocolo de transporte para operar em dois modos: Orientado a conexão Não-Orientado a conexão. Como exemplo de protocolo orientado à conexão, temos o TCP, e de protocolo não orientado à conexão, temos o UDP. É óbvio que o protocolo de transporte não orientado à conexão é menos confiável. Ele não garante - entre outras coisas - a entrega das TPDU, nem tão pouco a ordenação das mesmas. Entretanto, onde o serviço da camada de rede e das outras camadas inferiores 8 é bastante confiável - como em redes locais - o protocolo de transporte não orientado à conexão pode ser utilizado, sem o overhead inerente a uma operação orientada à conexão. O serviço de transporte baseado em conexões é semelhante ao serviço de rede baseado em conexões. O endereçamento e controle de fluxo também são semelhantes em ambas as camadas. Para completar, o serviço de transporte sem conexões também é muito semelhante ao serviço de rede sem conexões. Constatado os fatos acima, surge a seguinte questão: "Por que termos duas camadas e não uma apenas?". A resposta é sutil, mas procede: A camada de rede é parte da sub-rede de comunicações e é executada pela concessionária que fornece o serviço (pelo menos para as WAN). Quando a camada de rede não fornece um serviço confiável, a camada de transporte assume as responsabilidades, melhorando em suma importância a qualidade do serviço. Camada de Rede (3) Esta camada é responsável pelo endereçamento dos pacotes, convertendo endereços lógicos em endereços físicos, de forma que os pacotes consigam chegar corretamente ao destino. Essa camada também determina a rota que os pacotes irão seguir para atingir o destino, levando em consideração fatores como condições de tráfego da rede e prioridades. A camada de rede fornece os meios funcionais e de procedimento de transferência de comprimento variável de dados de sequências de uma fonte de acolhimento de uma rede para um host de destino numa rede diferente (em contraste com a camada de ligação de dados que liga os hosts dentro da mesma rede), enquanto se mantém a qualidade de serviço requerido pela camada de transporte. A camada de rede realiza roteamento de funções, e também pode realizar a fragmentação e remontagem e os erros de entrega de relatório. Roteadores operam nesta camada, enviando dados em toda a rede estendida e tornando a Internet possível. Este é um esquema de endereçamento lógico - os valores são escolhidos pelo engenheiro de rede. O esquema de endereçamento não é hierárquico. A camada de rede pode ser dividida em três subcamadas: 9 Sub-rede de acesso - considera protocolos que lidam com a interface para redes, tais como X.25; Sub-rede dependente de convergência - necessária para elevar o nível de uma rede de trânsito, até ao nível de redes em cada lado; Sub-rede independente de convergência - lida com a transferência através de múltiplas redes. Controla a operação da sub rede roteamento de pacotes, controle de congestionamento, tarifação e permite que redes heterogêneas sejam interconectadas. Camada de Enlace (2) Essa camada (também chamada camada de Link de Dados) pega os pacotes de dados recebidos da camada de rede e os transforma em quadros que serão trafegados pela rede, adicionando informações como o endereço da placa de rede de origem, o endereço da placa de rede de destino, dados de controle, os dados em si e uma soma de verificação, também conhecida como CRC. O quadro criado por esta camada é enviado para a camada Física, que converte esse quadro em sinais elétricos (ou sinais eletromagnéticos, se você estiver usando uma rede sem fio) para serem enviados através do cabo de rede. Quando o receptor recebe um quadro, a sua camada de Link de Dados confere se o dado chegou íntegro, refazendo a soma de verificação (CRC). Se os dados estiverem o.k., ele envia uma confirmação de recebimento (chamada acknowledge ou simplesmente ack). Caso essa confirmação não seja recebida, a camada Link de Dados do transmissor reenvia o quadro, já que ele não chegou até o receptor ou então chegou com os dados corrompidos. Camada Física (1) Esta camada pega os quadros enviados pela camada de Enlace e os transforma em sinais compatíveis com o meio onde os dados deverão ser transmitidos. Se o meio for elétrico, essa camada converte os 0s e 1s dos quadros em sinais elétricos a serem transmitidos pelo cabo; se o meio for óptico (uma fibra óptica), essa camada converte os 0s e 1s dos quadros em sinais luminosos; se uma rede sem fio for usada, então os 0s e 1s são convertidos em sinais eletromagnéticos; e assim por diante. No caso da recepção de um quadro, a camada física converte os sinais do cabo em 0s e 1s e envia essas informações para a camada de Link de Dados, que montará o quadro e verificará se ele foi recebido corretamente. 10 Funcionamento O funcionamento do modelo OSI se dá da seguinte maneira; cada camada se comunica apenas com a camada imediatamente acima e/ou abaixo dela. Quando seu computador está transmitindo dados, o fluxo da informação é do programa para a rede (isto é, o caminho de dados é de cima para baixo), portanto os programas se comunicam com a camada 7, que por sua vez se comunica com a camada 6 e assim por diante. Quando seu computador está recebendo dados, o fluxo da informação é da rede para o programa (isto é,o caminho de dados é de baixo para cima), portanto a rede se comunica com a camada 1, que por sua vez se comunica com a camada 2 e assim por diante. Na transmissão de dados, cada camada pega as informações passadas pela camada superior, acrescenta informações de controle e passa os dados para a camada imediatamente inferior. Na recepção de dados o processo inverso acontece: cada camada remove informações de controle e passa para a camada imediatamente superior. Dessa forma, na transmissão de dados para a rede a camada 7 pega os dados enviados pelo programa e adiciona informações de controle e envia este novo pacote formado pelo dado original mais suas informações de controle para a camada inferior. A camada 6 adicionará suas próprias informações de controle ao pacote recebido da camada superior e envia o novo pacote para a camada 5, agora contendo o dado original, informações de controle adicionadas pela camada 7 mais informações de controle adicionadas pela camada 6 e assim por diante. Na recepção dos dados o processo inverso é feito: cada camada removerá as informações de controle de sua responsabilidade. Cada camada entende apenas as informações de controle da sua responsabilidade. Quando uma camada recebe dados da camada superior ela não entende as informações de controle adicionadas pela camada superior, portanto ela trata os dados mais as informações de controle como se tudo fosse um único pacote de dados. A figura abaixo mostra esta ideia, onde você pode ver um computador enviando dados para a rede. Cada número adicionado ao dado original representa as informações de controle adicionadas por cada camada. Cada camada trata o pacote recebido da camada superior como se ele fosse um 11 pacote único, não diferenciando o dado original das informações de controle adicionadas pelas camadas superiores. Figura 2: Como o modelo OSI funciona. Nós podemos ainda dizer que cada camada no computador transmissor se comunica diretamente com a mesma camada no computador receptor. Por exemplo, a camada 4 no computador transmissor se comunica diretamente com a camada 4 no computador receptor. Nós podemos dizer isso porque as informações de controle adicionadas por cada camada só podem ser interpretadas pela mesma camada no computador receptor. 12 Protocolo TCP/IP Introdução O TCP/IP é o protocolo de rede mais utilizado atualmente. O TCP/IP não é na verdade um protocolo, mas sim um conjunto de protocolos – uma pilha de protocolos, como ele é mais chamado. Seu nome, por exemplo, já faz referência a dois protocolos diferentes, o TCP (Transmission Control Protocol, Protocolo de Controle de Transmissão) e o IP (Internet Protocol, Protocolo de Internet). Existem muitos outros protocolos que compõem a pilha TCP/IP, como o FTP, o HTTP, o SMTP e o UDP por exemplo. A arquitetura do TCP/IP pode ser vista na Figura 1. Figura 1: Arquitetura do TCP/IP. O TCP/IP tem quatro camadas. Os programas se comunicam com a camada de Aplicação. Na camada de Aplicação temos os protocolos de aplicação tais como o SMTP (para e-mail), o FTP (para a transferência de arquivos) e o HTTP (para navegação web). Cada tipo de programa se comunica com um protocolo de aplicação diferente, dependendo da finalidade do programa. 13 Após processar a requisição do programa, o protocolo na camada de Aplicação se comunicará com um outro protocolo na camada de Transporte, normalmente o TCP. Esta camada é responsável por pegar os dados enviados pela camada superior, dividi-los em pacotes e enviá-los para a camada imediatamente inferior, a camada Internet. Além disso, durante a recepção dos dados, esta camada é responsável por colocar os pacotes recebidos da rede em ordem (já que eles podem chegar fora de ordem) e também verificam se o conteúdo dos pacotes está intacto. Na camada Internet nós temos o IP (Internet Protocol, Protocolo Internet), que pega os pacotes recebidos da camada de Transporte e adiciona informações de endereçamento virtual, isto é, adiciona o endereço do computador que está enviando os dados e o endereço do computador que receberá os dados. Esses endereços virtuais são chamados endereços IP. Em seguida os pacotes são enviados para a camada imediatamente inferior, a camada Interface com a Rede. Nesta camada os pacotes são chamados datagramas. A camada Interface com a Rede receberá os pacotes enviados pela camada Internet e os enviará para a rede (ou receberá os dados da rede, caso o computador esteja recebendo dados). O que está dentro desta camada dependerá do tipo de rede que seu computador estiver usando. Atualmente praticamente todos os computadores utilizam um tipo de rede chamado Ethernet (que está disponível em diferentes velocidades; as redes sem fio também são redes Ethernet) e, portanto, você deve encontrar na camada Interface com a Rede as camadas do Ethernet, que são Controle do Link Lógico (LLC), Controle de Acesso ao Meio (MAC) e Física, listadas de cima para baixo. Os pacotes transmitidos pela rede são chamados quadros. Camadas do TCP/IP Camada de Aplicação Esta camada faz a comunicação entre os programas e os protocolos de transporte. Existem vários protocolos que operam na camada de aplicação. Os mais conhecidos são o HTTP (HyperText Transfer Protocol, Protocolo de Transferência Hipertexto), o SMTP (Simple Mail Transfer Protocol, Protocolo Simples de Transferência de Correspondência), o FTP (File Transfer Protocol, 14 Protoloco de Transferência de Arquivos), o SNMP (Simple Network Management Protocol, Protocolo Simples de Gerenciamento de Redes), o DNS (Domain Name System, Sistema de Nome de Domínio) e o Telnet. Você já deve ter ouvido falar nesses nomes antes. Quando um programa cliente de e-mail quer baixar os e-mails que estão armazenados no servidor de e-mail, ele efetuará esse pedido para a camada de aplicação do TCP/IP, sendo atendido pelo protocolo SMTP. Quando entramos com um endereço www em seu navegador para visualizar uma página na Internet, ele se comunicará com a camada de aplicação do TCP/IP, sendo atendido pelo protocolo HTTP (é por isso que as páginas da Internet começam com http://). E assim por diante. A camada de aplicação comunica-se com a camada de transporte através de uma porta. As portas são numeradas e as aplicações padrão usam sempre uma mesma porta. Por exemplo, o protocolo SMTP utiliza sempre a porta 25, o protocolo HTTP utiliza sempre a porta 80 e o FTP as portas 20 (para transmissão de dados) e 21 (para transmissão de informações de controle). O uso de um número de porta permite ao protocolo de transporte (tipicamente o TCP) saber qual é o tipo de conteúdo do pacote de dados (por exemplo, saber que o dado que ele está transportando é um e-mail) e, no receptor, saber para qual protocolo de aplicação ele deverá entregar o pacote de dados, já que, como estamos vendo, existem inúmeros. Assim, ao receber um pacote destinado à porta 25, o protocolo TCP irá entregá-lo ao protocolo que estiver conectado a esta porta, tipicamente o SMTP, que por sua vez entregará o dado à aplicação que o solicitou (o programa de e-mail). A Figura 2 mostra como a camada de Aplicação funciona. 15 Figura 2: Como a camada de Aplicação funciona. Camada de Transporte Na transmissão de dados, a camada de transporte é responsável por pegar os dados passados pela camada de aplicação e transformá-los em pacotes. O TCP (Transmission Control Protocol, Protocolo de Controle da Transmissão) é o protocolo mais usado na camada de Transporte. Na recepçãode dados, o protocolo TCP pega os pacotes passados pela camada Internet e trata de colocá-los em ordem, já que os pacotes podem chegar ao destino fora de ordem, confere se os dados dentro dos pacotes estão íntegros e envia um sinal de confirmação chamado “acknowledge” (“ack”) ao transmissor, avisando que o pacote foi recebido corretamente e que os dados estão íntegros. Se nenhum sinal de confirmação (acknowledge) for recebido (ou porque o dado não chegou ao destino ou porque o TCP descobriu que o dado estava corrompido), o transmissor enviará novamente o pacote perdido. Enquanto que o TCP reordena os pacotes e usa mecanismo de confirmação de recebimento – o que é desejável na transmissão de dados – existe um outro protocolo que opera nesta camada que não tem esses recursos. Este protocolo é o UDP (User Datagram Protocol, Protocolo de Datagrama do Usuário). Por essa razão o TCP é considerado um protocolo confiável, enquanto que o UDP é considerado um protocolo não confiável. O UDP é tipicamente usado quando nenhum dado importante está sendo transmitido, como requisições DNS (Domain Name System, Sistema de Nome de Domínio). 16 Como o UDP não reordena os pacotes e nem usa mecanismo de confirmação, ele é mais rápido do que o TCP. Quando o UDP é usado, a aplicação que solicita a transmissão será a responsável por verificar se os dados recebidos estão intactos ou não e também de reordenar os pacotes recebidos, isto é, a aplicação fará o trabalho do TCP. Durante a transmissão de dados, tanto o UDP quanto o TCP receberão os dados passados da camada de Aplicação e adicionarão a esses dados um cabeçalho. Na recepção de dados, o cabeçalho será removido antes de os dados serem enviados para a porta apropriada. Neste cabeçalho estão várias informações de controle, em particular o número da porta de origem, o número da porta de destino, um número de seqüência (para a confirmação de recebimento e mecanismos de reordenamento usado pelo TCP) e uma soma de verificação (chamada checksum ou CRC, que é um cálculo usado para verificar se o dado foi recebido intacto no destino). O cabeçalho UDP tem 8 bytes, enquanto que o cabeçalho TCP tem entre 20 e 24 bytes (dependendo se o campo opções estiver sendo ou não usado). Na Figura 3 vemos um pacote de dados gerado na camada de transporte. Este pacote de dados será enviado para a camada Internet (se estivermos transmitindo dados) ou será recebido da camada Internet (se estivermos recebendo dados). Figura 3: Pacote de dado na camada de Transporte. 17 Camada Internet Em redes TCP/IP cada computador é identificado com um endereço virtual único, chamado endereço IP. A camada Internet é responsável por adicionar um cabeçalho ao pacote de dados recebidos da camada de Transporte onde, entre outros dados de controle, será adicionado também o endereço IP de origem e o endereço IP de destino – isto é, o endereço IP do computador que está enviando os dados e o endereço IP do computador que deverá recebê-los. A placa de rede de cada computador tem um endereço físico. Este endereço está gravado na memória ROM da placa de rede e é chamado endereço MAC. Dessa forma, em uma rede local se o computador A quiser enviar dados para o computador B, ele precisará saber o endereço MAC do computador B. Enquanto que em uma pequena rede local os computadores podem facilmente descobrir o endereço MAC de todos os PCs, esta não é uma tarefa tão simples em uma rede global como a Internet. Se nenhum esquema de endereçamento virtual for usado, você precisa saber o endereço MAC do computador de destino, o que não é apenas uma tarefa complicada, mas também não ajuda no roteamento dos pacotes, já que este endereço não usa uma estrutura em árvore (em outras palavras, enquanto o endereçamento virtual usado na mesma rede terá endereços seqüenciais, com o endereçamento MAC o computador com o endereço MAC seguinte ao seu pode estar na Rússia). Roteamento é o caminho que os dados devem usar para chegar ao destino. Quando você solicita dados de um servidor da Internet, por exemplo, este dado passa por vários locais (chamados roteadores) antes de chegar ao seu computador. Em todas as redes conectadas à Internet existe um dispositivo chamado roteador, que faz a ponte entre os computadores na sua rede local e a Internet. Todo roteador tem uma tabela contendo as redes conhecidas e também uma configuração chamada gateway padrão apontando para outro roteador na Internet. Quando seu computador envia um pacote de dados para a Internet, o roteador conectado à sua rede primeiro verifica se ele conhece o computador de destino – em outras palavras, o roteador verifica se o computador de destino está localizado na mesma rede ou em uma rede que ele conhece a rota. Se ele não conhecer a rota para o computador de destino, ele enviará o pacote para seu gateway padrão, que é outro roteador. Este processo é repetido até que o pacote de dados chegue ao seu destino. 18 Há vários protocolos que operam na camada Internet: IP (Internet Protocol, Protocolo de Internet), ICMP (Internet Control Message Protocol, Protocolo de Controle de Mensagens Internet), ARP (Address Resolution Protocol, Protocolo de Resolução de Endereços) e RARP (Reverse Address Resolution Protocol, Protocolo de Resolução de Endereços Reversos). Os pacotes de dados são enviados usando o protocolo IP. O IP pega os pacotes de dados recebidos da camada de Transporte (do protocolo TCP se você está transmitindo dados como e-mails ou arquivos) e os divide em datagramas. O datagrama é um pacote que não contém nenhum tipo de confirmação de recebimento (acknowledge), o que significa que o IP não implementa nenhum mecanismo de confirmação de recebimento, isto é, ele é um protocolo não confiável. Durante a transferência de dados o protocolo TCP será usado acima da camada Internet (ou seja, acima do IP) e o TCP implementa mecanismo de confirmação de recebimento. Portanto apesar de o protocolo IP não verificar se o datagrama chegou ao destino, o protocolo TCP fará esta verificação. A conexão será então confiável, apesar do IP sozinho ser um protocolo não confiável. Cada datagrama IP pode ter um tamanho máximo de 65.535 bytes, incluindo seu cabeçalho, que pode usar 20 ou 24 bytes, dependendo se um campo chamado “opções” for usado ou não. Dessa forma os datagramas IP podem transportar até 65.515 ou 65.511 bytes de dados. Se o pacote de dados recebidos da camada de Transporte for maior do que 65.515 ou 65.511 bytes, o protocolo IP fragmentará os pacotes em quantos datagramas forem necessários A figura 4 ilustra o datagrama gerado na camada Internet pelo protocolo IP. É interessante notar que o que a camada Internet vê como sendo “dados” é o pacote completo que ela recebe da camada de Transporte, que inclui o cabeçalho TCP ou UDP. Este datagrama será enviado para a camada Interface com a Rede (se estivermos transmitindo) ou pode ter sido recebido da camada Interface com a Rede (se estivermos recebendo dados). O cabeçalho adicionado pelo protocolo IP inclui o endereço IP de origem, o endereço IP de destino e várias outras informações de controle. 19 Figura 4: Datagrama na camada de Internet. O datagrama IP não tem necessariamente 65.535 bytes, mas ele pode ter até 65.535 bytes. Isto significa que o campo de dados do datagrama não tem um tamanho fixo. Como os datagramas serão transmitidos pela rede dentro de quadros produzidos pela camada Interface com a Rede, normalmente o sistema operacional configurará o tamanho do datagrama IP para ter o tamanho máximo da área de dadosdo quadro de dados usado em sua rede. O tamanho máximo do campo de dados dos quadros que são transmitidos pela rede é chamado MTU, Maximum Transfer Unit, ou Unidade de Transferência Máxima. As redes Ethernet – que são o tipo de rede mais comum hoje em dia, incluindo sua encarnação sem fio – pode transportar até 1.500 bytes de dados, ou seja, seu MTU é de 1.500 bytes. Por isso o sistema operacional configura automaticamente o protocolo IP para criar datagramas IP com 1.500 bytes em vez de 65.535 (que não caberia no quadro). Na próxima página veremos que o seu tamanho real é de 1.497 ou 1.492 bytes, já que a camada LLC “come” 3 ou 5 bytes para adicionar seu cabeçalho. Outra característica que o protocolo IP permite é a fragmentação. Como mencionamos, até chegar a seu destino o datagrama IP provavelmente passará por várias outras redes no meio do caminho. Se todas as redes no caminho entre o computador transmissor e o receptor usarem o mesmo tipo de 20 rede (por exemplo Ethernet), maravilha, já que todos os roteadores trabalharão com a mesma estrutura do quadro (isto é, o mesmo tamanho de MTU). No entanto, se aquelas outras redes não forem redes Ethernet, elas podem usar um tamanho diferente de MTU. Se isto acontecer, o roteador que está recebendo os quadros com o MTU configurado com 1.500 bytes dividirá o datagrama IP em quantos quadros forem necessários para atravessar a rede com o tamanho de MTU menor. Ao chegar no roteador que tem sua saída conectada a uma rede Ethernet, este roteador remontará o datagrama original. A Figura 5 mostra um exemplo disto. O quadro original usa um MTU de 1.500 bytes. Quando o datagrama chega a uma rede com o tamanho de MTU de 620 bytes, cada quadro tem de ser dividido em três quadros (dois com 600 bytes e um com 300 bytes). Em seguida o roteador na saída desta rede (roteador 2) remonta o datagrama original. O cabeçalho IP tem um cabo para controlar a fragmentação. Figura 5: Fragmentação de datagrama Camada Interface com a Rede Os datagramas gerados na camada Internet serão passados para a camada Interface com a Rede, durante a transmissão de dados, ou a camada 21 de Interface com a Rede pegará os dados da rede e os enviará para a camada de Internet, na recepção dos dados. Esta camada é definida pelo tipo de rede física a qual seu computador está conectado. Quase sempre seu computador estará conectado a uma rede Ethernet (redes sem fio também são redes Ethernet). O TCP/IP é um conjunto de protocolos que lida com as camadas 3 a 7 do modelo de referência OSI, enquanto que o Ethernet é um conjunto de protocolos que lida com as camadas 1 e 2 do modelo de referência OSI – o que significa que o Ethernet lida com os aspectos físicos da transmissão de dados. Por isso um complementa o outro, já que precisamos das sete camadas completas (ou suas equivalentes) para estabelecer uma conexão de rede. O Ethernet tem três camadas: LLC (Controle do Link Lógico), MAC (Controle de Acesso ao Meio) e Física. O LLC e o MAC correspondem(aproximadamente), juntas, a segunda camada do modelo de referência OSI. Figura 6: Arquitetura do Ethernet. A camada LLC é a responsável por adicionar informações de que protocolo na camada Internet foi o responsável por gerar os dados. Dessa forma, durante a recepção de dados da rede, esta camada no computador receptor tem que saber que protocolo da camada de Internet ele deve entregar os dados. Esta camada é definida pelo protocolo IEEE 802.2. 22 A camada de Controle de Acesso ao Meio (MAC) é a responsável por montar o quadro que será enviado para a rede. Esta camada é responsável por adicionar o endereço MAC de origem e de destino. Os quadros que são destinados a outras redes utilizarão o endereço MAC do roteador da rede como endereço de destino. Esta camada é definida pelo protocolo IEEE 802.3, se uma rede com cabos estiver sendo usada, ou pelo protocolo IEEE 802.11, se uma rede sem fio estiver sendo usada. A camada Física é a responsável por converter o quadro gerado pela camada MAC em sinais elétricos (se for uma rede cabeada) ou eletromagnéticos (se for uma rede sem fio). Esta camada é também definida pelo protocolo IEEE 802.3, se for uma rede com cabos estiver sendo usada, ou pelo IEEE 802.11, se uma rede sem fio estiver sendo usada. As camadas LLC e MAC adicionam suas informações de cabeçalho ao datagrama recebido da camada Internet. Portanto uma estrutura completa de quadros gerados por essas duas camadas pode ser vista na Figura 7. Note que os cabeçalhos adicionados pelas camadas superiores são vistos como “dados” pela camada LLC. A mesma coisa acontece com o cabeçalho inserido pela camada LLC, que será visto como dado pela camada MAC. A camada LLC adiciona um cabeçalho de 3 ou 5 bytes e seus datagrama tem um tamanho total máximo de 1.500 bytes, deixando um máximo de 1.497 ou 1.492 bytes para dados. A camada MAC adiciona um cabeçalho de 22 bytes e um CRC (soma dos dados para identificação de erros) de 4 bytes ao final do datagrama recebido da camada LLC, formando o quadro Ethernet. Com isso o tamanho máximo de um quadro Ethernet é de 1.526 bytes. 23 Figura 7: Quadro na camada de Interface com a Rede. Outras funcionalidades e protocolos do TCP/IP Serviços de Terminal Os serviços de terminal permitem que você acesse remotamente um servidor e tenha acesso ao seu shell (isto é, seu prompt de comando) como se você estivesse fisicamente em frente ao teclado e ao monitor do servidor. Os três protocolos de terminal mais comuns são o Telnet, o Rlogin e o SSH (Secure Shell). Todos fazem a mesma coisa, mas as conexões do SSH são criptografadas e, por isso, mais seguras. Se você tem de gerenciar um servidor remotamente, opte por usar o SSH em vez do Telnet ou do Rlogin. Como tanto as conexões Telnet ou quanto as conexões Rlogin não são criptografadas, qualquer pessoa usando um programa de “sniffer” – que é um tipo de programa que permite ao hacker ler os pacotes de dados que trafegam na rede – pode ler tudo o que você digita, incluindo senhas. 24 O Telnet, o Rlogin e o SSH são protocolos da camada de aplicação e usam o protocolo TCP na camada de transporte. O Telnet usa a porta 23, o Rlogin usa a porta 513 e o SSH usa a porta 22. Um dos programas de Terminal mais famosos para Windows que permite conexões Telnet, Rlogin e SSH é o PuTTY (o Windows vem com um utilitário Telnet – que pode ser acessado através do menu Iniciar, Executar, Telnet – mas não vem com nenhum utilitário com suporte ao SSH). TFTP (Trivial File Transfer Protocol) O TFTP (Trivial File Transfer Protocol, Protocolo Trivial de Transferência de Arquivo) é um protocolo que desempenha o mesmo tipo de aplicação (transferência de arquivos) que o FTP, mas ao contrário do FTP usa o protocolo UDP na camada de transporte. A diferença entre o TCP e o UDP é que enquanto o TCP verifica se cada pacote chegou corretamente ao destino, o UDP não. Outra diferença é que o TCP reordena os pacotes que podem ter chegado fora de ordem, enquanto que o UDP também não realiza tal tarefa. Por outro lado, por não usar mecanismos de confirmação e reordenamento de pacotes, os pacotes UDP são menores (já que o cabeçalho UDP é menor do que o cabeçalho TCP) e necessitam de menos poder computacional para serem processados – já que o processo de reordenamento e confirmação de recebimento não são necessários. Será a aplicação – e não o protocolo – que se encarregará de executar essas funções. Para aplicações cotidianas, o protocolo TFTP não temmuita utilidade, já que o FTP é muito mais confiável. No entanto, existe um tipo de aplicação que tira proveito do TFTP: o boot remoto. Você pode ter um computador sem disco rígido ou qualquer outra mídia de armazenamento e configurá-lo para realizar o boot pela rede, isto é, carregar o sistema operacional e programas a partir de um servidor. O programa que carregará o sistema operacional remotamente precisa estar armazenado em uma pequena memória ROM localizada na placa de rede do 25 computador sem mídia de armazenamento. Como este processo necessita de um protocolo para transferência de arquivos, o TFTP é mais indicado do que o FTP, já que os clientes TFTP são muito menores que os clientes FTP, podendo ser armazenado na memória ROM da placa de rede – para você ter uma idéia, o tamanho do maior chip de memória ROM usado para boot remoto é de apenas 64 KB (sim, kilobytes). Em resumo, o TFTP é um protocolo da camada de aplicação que usa o protocolo UDP (porta 69) na camada de transporte. DHCP (Dynamic Host Configuration Protocol) Todos os computadores conectados a uma rede TCP/IP precisam ser configurados com um endereço IP. Sem um endereço IP um computador não pode se comunicar com outros computadores da rede. Imagine uma rede grande com centenas de computadores. Configurar cada um desses computadores individualmente seria uma tarefa um tanto ou quanto enfadonha. Além disso, pense como seriam os provedores de acesso à Internet: ele teriam de ensinar cada cliente a configurar seus computadores e teriam de fornecer o endereço IP de cada cliente por telefone – e monitorar esses endereços, já que dois computadores não pode ter o mesmo endereço IP. De modo a facilitar esta configuração, existe um protocolo chamado DHCP (Dynamic Host Configuration Protocol, Protocolo de Configuração Dinâmica de Máquinas) que permite que computadores recebam suas configurações através de um servidor DHCP. Esta é a configuração padrão para todos os computadores atualmente. Quando você liga seu computador ele pergunta ao servidor DHCP da sua rede (localizado no seu provedor de acesso se você é um usuário doméstico conectado à Internet): “alô, me manda meu endereço IP!” e pronto, seu computador está configurado. Se você montou uma pequena rede com um roteador de banda larga, o roteador tem embutido um servidor DHCP, sendo, portanto, o responsável por distribuir os endereços IP para os computadores da sua rede. Além do endereço IP, o servidor DHCP também envia outras informações de configuração, como o endereço IP do servidor DNS que seu 26 computador deve usar, o gateway padrão (o endereço IP do roteador da sua rede – isto é, se seu computador não pode encontrar o computador de destino na sua rede local, para qual endereço os pacotes devem ser enviados) e a máscara de sub-rede (usada por questões de endereçamento). Com o uso do servidor DHCP o administrador da rede pode configurar todos os computadores de uma rede a partir de uma localização central, facilitado em muito sua vida. O DHCP é um protocolo da camada de aplicação e usa o protocolo UDP na camada de transporte. O DHCP usa as portas 67 e 68 e na verdade ele substitui um protocolo antigo chamado BOOTP. Em algumas publicações você pode encontrar referências ao BOOTP em vez do DHCP. Tudo discorrido sobre o DHCP é válido para o BOOTP, já que o DHCP é 100% compatível com o BOOTP (apesar do DHCP oferecer mais opções do que o BOOTP). DNS (Domain Name System) Em redes TCP/IP cada computador tem um endereço virtual único, chamado endereço IP. No entanto, para nós, humanos, nomes são mais fáceis de serem memorizados do que números. O DNS (Domain Name System, Sistema de Nome de Domínio) permite o uso de nomes como apelidos para os endereços IP. Por exemplo, é mais fácil memorizar o nome do site www.ufu.br do que 200.19.146.58 . Quando você digita em seu navegador http://www.ufu.br , o protocolo DNS entra em ação, contatando um servidor DNS e perguntando qual endereço IP está associado ao nome www.ufu.br. O servidor DNS responderá 200.19.146.58 e então o seu navegador saberá qual endereço IP usar nesta conexão. O servidor DNS que o seu navegador usará é o servidor DNS que o seu computador está configurado para usar – todos os computadores que estão conectados à Internet têm um campo para configuração do endereço IP de pelo 27 menos um servidor DNS. Normalmente esta configuração é feita automaticamente via DHCP. Se o servidor DNS não conhece o nome que você perguntou, ele entrará em contato com outro servidor DNS com um nível hierárquico maior de modo a aprender este nome/endereço IP. Todas as entradas no servidor DNS têm um campo “tempo de vida” (também chamado TTL, Time To Live), que diz ao servidor por quanto tempo aquela informação é válida. Quando a informação vence, ela deve ser atualizada contatando novamente o servidor DNS com um nível hierárquico maior. Isto é feito desta forma porque caso o endereço IP de um servidor mude, o tempo máximo que você precisará aguardar para aprender qual é o novo endereço IP para aquele servidor será o campo TTL da sua entrada no servidor DNS - que pode variar de algumas horas a alguns dias. O DNS é um protocolo da camada de aplicação e suas requisições são feitas usando a porta 53 do protocolo UDP na camada de transporte. Como já explicamos, o UDP não verifica se os pacotes chegaram ou não ao destino, mas, por outro lado, ele é mais rápido, já que seu cabeçalho é menor e exige menos poder computacional para ser processado. O DNS permite que mais de um nome seja associado a um mesmo endereço IP. Isto permite que você hospede mais de um site em um único servidor, por exemplo. Quando você acessa um servidor que tem mais de um site hospedado, seu navegador acessará ele através do seu endereço IP (descoberto através de uma requisição DNS), enquanto que o servidor verificará o nome que você está usando em seu navegador para saber qual site fornecer para você. ICMP (Internet Control Message Protocol) O ICMP (Internet Control Message Protocol, Protocol de Mensagens de Controle Internet) é usado para enviar mensagens de controle para os roteadores. Este é um protocolo da camada Internet e que funciona em conjunto com o protocolo IP. Ele pode ser usado em várias situações em que pode ser necessário que um roteador instruia outro sobre algo – normalmente quando um roteador recebe um datagrama que não pode ser entregue, ele 28 enviará de volta ao roteador que o enviou o datagrama uma mensagem ICMP explicando o motivo pelo qual ele não pôde entregar o datagrama. Algumas mensagens de controle que podem ser enviadas usando o ICMP são: Eco: Usada para testar se o caminho entre o receptor e o transmissor está bom. O uso mais conhecido deste tipo de mensagem é através do comando Ping. Se você enviar um comando Ping ao endereço www.clubedohardware.com.br, por exemplo, nosso servidor responderá a essas solicitações de eco, e o Ping dirá a você se as mensagens chegaram ou não ao servidor e qual foi o tempo gasto entre você enviar o comando e a mensagem de eco voltar ao seu computador, normalmente dado em milisegundos (ms). Destino Inalcançável: Dentro desta mensagem o roteador pode dizer exatamente o que ocorreu de errado, como rede inalcançável, computador inalcançável, protocolo inalcançável, porta inalcançável, rede de destino inalcançável, computador de destino inalcançável, se o administrador da rede bloqueou a rede ou o computador de destino, problemas de roteamento, etc. Congestionamento:Esta mensagem é enviada caso o roteador esteja sobrecarregado – isto é, caso ele esteja recebendo mais datagramas do é capaz de processar – de modo a fazer com que o roteador que esteja enviando os datagramas reduza a taxa de datagramas enviados para o roteador que está sobrecarregado. Redirecionamento: Esta mensagem é normalmente usada quando um roteador descobre que existe uma rota melhor para alcançar o destino, atualizando o roteador transmissor. Este recurso apenas funciona em redes local, não funcionando em redes grandes que tenham várias redes interconectadas, como a Internet. Tempo de Vida Excedido: Todos os datagramas IP têm um campo tempo de vida (TTL, Time To Live), que indica a quantidade de saltos (isto é, roteadores) que o datagrama pode passar do computador transmissor até o computador receptor. Se um datagrama está configurado com um TTL de 20, isto significa que se ele não chegar no destino dentro de 20 saltos, o datagrama deverá ser descartado. Isto é feito para evitar que os datagramas fiquem eternamente circulando na rede ou na Internet caso a rede não esteja configurada corretamente e o datagrama esteja circulando sem qualquer caminho para alcançar seu destino. Solicitação de Hora: Roteadores (e computadores) podem perguntar a hora a outro roteador ou computador. Um dos usos desta mensagem é para sincronizar os relógios dos dois computadores, apesar desta 29 sincronização não ser perfeita, já que existe um pequeno retardo introduzido pela rede (na ordem de milisegundos). Esta mensagem pode ainda ser usada para medir o tempo de retardo da rede entre dois computadores, se seus relógios estiverem sincronizados. Protocolos de Roteamento: RIP, OSPF e BGP O roteamento pode ser estático ou dinâmico. Enquanto que em pequenas redes o roteamento estático é usado – isto é, os datagramas sempre trafegam pelo mesmo caminho para alcançarem o seu destino – na Internet ou em redes maiores o roteamento dinâmico faz-se necessário. Com o roteamento dinâmico, roteadores podem mudar as rotas a qualquer momento, desde que eles percebam que existem melhores caminhos para alcançar um determinado destino. Por exemplo, se existe mais de um caminho para alcançar um dado destino e a rota atual é mais longa do que uma outra rota disponível, os roteadores podem mudar a sua configuração para usarem a rota mais curta. Aqui “longa” e “curta” referem-se ao número de saltos (isto é, roteadores) existentes no caminho. Rotas mais curtas não são necessariamente mais rápidas, como explicaremos. A comunicação entre os roteadores de modo a reprogramarem as suas tabelas de roteamento é feita usando um protocolo de roteamento. Os três protocolos de roteamento dinâmico mais conhecidos são o RIP (Routing Information Protocol, Protocolo de Informação de Roteamento), OSPF (Open Shortest Path First, Primeiro o Caminho Mais Curto – o “Open” no nome refere- se ao fato do protocolo ser “livre”, sendo significando “Abrir”) e o BGP (Border Gateway Protocol, Protocolo de Gateway de Fronteira). Se os roteadores estão usando o protocolo RIP, eles enviarão suas tabelas de roteamento para todos os roteadores que eles têm acesso a cada 30 segundos. A tabela de roteamento contém todas as redes que os roteadores conhecem e como alcançá-las, além da distância (dada em número de saltos) até elas. Quando cada roteador recebe uma nova tabela de roteamento de outro roteador, ele pode ver se existe alguma rede nesta lista que tenha um caminho mais curto (isto é, usando menos saltos – tradução: passando por menos 30 roteadores) do que ele está atualmente configurado para usar. Se existir, o roteador se reconfigurará para usar este novo caminho mais curto. O problema é que os caminhos mais curtos nem sempre são os melhores, já que o protocolo RIP não implementa nenhum modo para verificar o desempenho do caminho. Ele também não verifica o congestionamento ou se o caminho é realmente confiável. Portanto uma rota mais longa pode acabar sendo mais rápida. O RIP usa a porta 520 do UDP. Apesar do seu nome, o protocolo OSPF não procurar o caminho mais curto, mas sim o caminho mais rápido. Quando os roteadores usam o protocolo OSPF, eles verificam o estado dos outros roteadores que eles têm acesso de tempos em tempos enviando mensagens chamadas “hello”. Através destas mensagens eles sabem se um roteador está operacional e qual é o seu estado. Outra diferença é que usando o OSPF os roteadores conhecem todos os caminhos que podem ser usados para alcançar um determinado destino, enquanto que roteadores RIP conhecem apenas o caminho mais curto. Uma terceira diferença é que roteadores baseados no RIP enviarão suas tabelas de roteamento inteiras a cada 30 segundo, aumentando o tráfego da rede. Uma outra diferença é que os roteadores baseados no OSPF permitem balanceamento de carga: se existir mais de uma rota para um dado destino, o roteador pode dividir os datagramas entre eles de modo a reduzir o tráfego em cada um dos caminhos. O OSPF funciona diretamente na camada Internet com o protocolo IP, portanto ele não usa os protocolos TCP ou o UDP. O BGP é um protocolo usado em redes grandes, como a Internet – na verdade o BGP é o protocolo usado pelos roteadores da Internet. Como tal, ele é classificado como um protocolo externo, enquanto que o RIP e o OSPF são classificados como protocolos internos – já que eles são usados em redes que estão sob a mesma administração. O BGP agrupa roteadores e computadores sob uma mesma administração em uma unidade chamada Sistema Autônomo (SA) – por exemplo, todos os roteadores e computadores que pertencem ou estão conectados ao mesmo provedor de Internet fazem parte de um mesmo SA. O BGP é chamado IBGP (Interno) se trabalha dentro de um mesmo sistema autônomo ou de EBGP (Externo) se trabalha entre dois sistemas autônomos diferentes. 31 O BGP é muito mais complexo do que o RIP e o OSPF, já que ele usa vários critérios (chamados atributos) para determinar qual é a melhor rota a ser tomada: Peso, Preferência Local, Discriminador de Saídas Múltiplas, Origem, Caminho_SA, Próximo Salto e Comunidade. Ao contrário do RIP, os roteadores baseados no BGP enviam apenas o que há de novo em suas tabelas de roteamento em vez de enviar a tabela inteira de tempos em tempos, ajudando a diminuir o tráfego da rede. Uma diferença entre o BGP e o RIP é que o BGP verifica de tempos em tempos se um dado caminho está acessível ou não. O BGP utiliza a porta 179 do TCP. ARP e RARP O ARP (Address Resolution Protocol, Protocolo de Resolução de Endereço) é o responsável por aprender qual é o endereço MAC (isto é, o endereço físico) de um computador que tem um dado endereço IP e o RARP (Reverse Address Resolution Protocol, Protocolo de Resolução de Endereço Reverso) faz o contrário: ele é o responsável por descobrir qual é o endereço IP de um computador que tem um determinado endereço MAC. Enquanto um datagrama está sendo transmitido pela Internet o endereço MAC do computador de destino não é necessário – os roteadores no meio do caminho estão interessados apenas em entregar o datagrama para a rede de destino. Mas uma vez que os pacotes chegam na rede de destino, o roteador conectado nessa rede precisa saber o endereço MAC do computador de destino, já que ele irá entregar o datagrama localmente (provavelmente usando o protocolo Ethernet). Por exemplo, se o endereço IP de destino é 75.126.102.248, quando o datagrama chegar no roteador da rede 75.126.102.0, ele perguntará a todos os computadores (quando uma mensagem é enviada para todos oscomputadores dizemos que ela é uma mensagem de broadcast) usando o protocolo ARP: “alô, qual é o computador que tem o endereço 75.126.102.248 ?” Em seguida o computador que tiver este endereço IP responderá “sou eu!”. Claro que enviar uma mensagem de broadcast toda hora congestiona a rede, e por isso os roteadores mantêm uma tabela com os endereços IP conhecidos e seus respectivos endereços MAC, dispensando assim que a 32 mesma requisição seja feita caso um novo datagrama destinado ao endereço 75.126.102.248 seja recebido. O RARP, por outro lado, foi usado no passado pelos computadores sem mídia de armazenamento para boot remoto. Como este tipo de computador não tem um sistema operacional instalado, ele não sabe qual endereço IP usar. Ele precisa, portanto, saber qual endereço IP usar de modo a iniciar a carga do sistema operacional do servidor de boot remoto. Com você pode ver, este é exatamente o mesmo papel do DHCP e como atualmente todas as redes usam um servidor DHCP, o uso do RARP tornou-se obsoleto. Tanto o ARP e o RAR funcionam na camada de Interface com a Rede. Outras Funcionalidades e Protocolos NAT (Network Address Translation, Tradução de Endereço de Rede): Teoricamente cada computador conectado à Internet precisa de um endereço IP “público” válido. O NAT permite a uma rede local usar um único endereço IP “público”. Por exemplo, quando você conecta sua rede doméstica ou da sua empresa à Internet usando um roteador de banda larga, o roteador usará o único endereço IP “público” atribuído por seu provedor, enquanto que seus computadores usarão os endereços IP que são válidos apenas dentro da sua rede (chamados endereços IP “mágicos”, normalmente na faixa 192.168.x.x). Do ponto de vista da Internet, todos os computadores da sua rede estão usando o mesmo endereço IP. Portanto, para enviar dados para um dos computadores da sua rede, o computador de origem usará o endereço IP do roteador e quando este datagrama chegar no roteador, ele substituirá seu endereço IP pelo endereço IP que o computador de destino está usando, que é válido apenas dentro da sua rede. Esta técnica é chamada NAT. IGMP (Internet Group Management Protocol, Protocolo de Gerenciamento de Grupo Internet): A técnica de enviar o mesmo datagrama para todos os computadores da rede é chamada broadcast, enquanto que a técnica de enviar o mesmo datagrama para um determinado grupo de computadores (mas não todos) é chamada multicast. O multicast no TCP/IP pode ser feito até mesmo se computadores estiverem localizados em redes diferentes. Esses grupos 33 são gerenciados usando mensagens de controle IGMP. O IGMP usa o protocolo IP, trabalhando na camada Internet. SNMP (Simple Network Management Protocol, Protocolo Simples de Gerenciamento de Rede): Este protocolo é usado para monitorar os dispositivos de hardware conectados a redes TCP/IP que o implementem. O SNMP é um protocolo da camada de aplicação e usa as portas 161 e 162 do UDP. Finger: Este é um protocolo da camada de aplicação que usa a porta 79 do TCP e é usado para descobrir informações sobre um dado usuário em um servidor. Como ter acesso às informações pessoais de todos os seus usuários é realmente uma má idéia, este serviço está quase sempre desabilitado. 34 Referências bibliográficas: Redes de Computadores e A Internet, 6°Ed , Jim Kurose, Keith W. Ross http://www.hardwaresecrets.com/how-tcp-ip-protocol-works-part-1/ http://www.comptechdoc.org/independent/networking/protocol/protnet.html http://www.thegeekstuff.com/2011/11/tcp-ip-fundamentals/ https://pt.wikipedia.org/wiki/Modelo_OSI http://www.clubedohardware.com.br/artigos/redes/ https://www.citisystems.com.br/protocolo-tcp-ip/
Compartilhar