Ontem olhei para a história de TCP/IP e a Internet em algum detalhe. Hoje mudo ao primeiro de dois elementos de protocolo importantes de TCP/IP: o Protocolo de Internet, a parte "IP" de TCP/IP. Uma boa compreensão de IP é necessária para continuar a TCP e UDP, porque o IP é o componente que trata o movimento de datagramas através de uma rede. Saber como deve reunir-se um datagrama e como se move pelas redes ajuda-o a entender como as camadas de nível mais alto trabalham com IP. Para quase todos os protocolos na família TCP/IP, IP é o elemento essencial que os dados de pacotes e asseguram que se envia ao seu destino.
Este capítulo contém, infelizmente, até mais detalhe de cabeçadas, protocolos e transmissão de mensagens do que viu durante o último par de dias. Este nível da informação é necessário para você para tratar com a compreensão das aplicações e a sua interação com IP, bem como resolução de problemas do sistema. Embora não entre no detalhe exaustivo, há bastante aqui que pode referir-se atrás a este capítulo sempre que necessário.
Como com muitos dos sujeitos olho para neste livro, não suponha que este capítulo cubra tudo lá deve saber sobre IP. Há muitos livros escritos no IP sozinho, entrando em cada faceta do protocolo e a sua funcionalidade. Afortunadamente, a maioria dos detalhes são transparentes para você, e há pouca vantagem ganha no conhecimento dele. Por essa razão, simplifico o sujeito um pouco, ainda fornecendo bastante detalhe para você para ver como IP trabalha e o que faz.
Internet Protocol (IP) é um protocolo primário do modelo OSI, bem como uma parte integrante de TCP/IP (como o nome sugere). Embora a palavra "Internet" apareça no nome do protocolo, não se restringe para usar com a Internet. É verdade que todas as máquinas na Internet podem usar ou entender IP, mas IP também pode usar-se em redes dedicadas que não têm relação à Internet em absoluto. IP define um protocolo, não uma conexão. De fato, IP é uma escolha muito boa de qualquer rede que precisa de um protocolo eficiente de comunicações de máquina a máquina, embora fique em frente de alguma competição de protocolos como IPX de NetWare de Novell no pequeno a redes locais médias que usam NetWare como um sistema operacional de servidor de PC.
O que faz IP fazem? As suas tarefas principais dirigem-se de datagramas da informação entre computadores e dirigindo o processo de fragmentação destes datagramas. O protocolo tem uma definição formal do leiaute de um datagrama da informação e a formação de uma cabeçada composta da informação sobre o datagrama. IP é responsável pelo encaminhamento de um datagrama, determinando onde se enviará, e inventando vias alternativas em caso de problemas.
Outro aspecto importante do objetivo de IP tem a ver com a entrega insegura de um datagrama. Inseguro no sentido IP significa que a entrega do datagrama não se garante, porque pode atrasar-se, misrouted, ou calandrou no esgotamento e a remontagem de fragmentos de mensagem. IP não tem nada a ver com controle de fluxo ou confiança: não há capacidade inerente de verificar que uma mensagem enviada se recebe corretamente. IP não tem uma soma de controle dos conteúdos de dados de um datagrama, só para a informação sobre cabeçada. A verificação e as tarefas de controle de fluxo deixam-se a outros componentes no modelo de camada. (No que diz respeito ao assunto, IP até não trata propriamente a expedição de datagramas. IP pode fazer uma suposição quanto ao melhor encaminhamento para mover um datagrama para o seguinte nó ao longo de um caminho, mas não verifica inerentemente que o caminho escolhido é a via mais rápida ou mais eficiente.) A parte do sistema IP define como os portões dirigem datagramas, como e quando devem produzir mensagens de erro, e como recuperar-se de problemas que poderiam surgir.
No primeiro capítulo, viu como os dados podem quebrar-se em mais pequenas seções da transmissão e logo reagrupar-se em outra posição, um processo chamado fragmentação e remontagem. IP provê um tamanho de pacote máximo de 65.535 bytes, que é muito maior do que a maior parte de redes podem tratar, daqui a necessidade da fragmentação. IP tem a capacidade de dividir automaticamente um datagrama da informação em mais pequenos datagramas se necessário, usando os princípios que viu no Dia 1.
Quando o primeiro datagrama de uma mensagem maior que se dividiu em fragmentos chega ao destino, um cronômetro de remontagem começa-se pela camada IP da máquina de recepção. Se todas as partes do datagrama inteiro não se receberem quando o cronômetro consegue um valor predeterminado, todos os datagramas que se receberam descartam-se. A máquina de recepção sabe a ordem na qual as partes devem reagrupar-se por causa de um campo na cabeçada IP. Uma consequência deste processo é que uma mensagem fragmentada tem uma possibilidade mais baixa da chegada do que uma mensagem não fragmentada, que é porque a maior parte de aplicações tentam evitar a fragmentação sempre que possível.
IP é connectionless, significando que não se incomoda sobre que nós um datagrama passa ao longo do caminho, ou até no qual trabalha a máquina as partidas de datagrama e fins. Esta informação está na cabeçada, mas o processo de análise e transmissão de um datagrama não tem nada a ver com IP análise do envio e recepção de endereços IP. IP trata o endereçamento de um datagrama com o endereço de Internet de 32 bits cheio, embora os endereços de protocolo de transporte usem 8 bits. Uma nova versão de IP, chamado a versão 6 ou IPng (Próxima geração de IP) pode tratar cabeçadas muito maiores, como verá em direção ao fim do material de hoje na seção intitulada "IPng: a Versão 6 de IP".
É tentador comparar IP com uma rede de hardware como Ethernet por causa das semelhanças básicas na informação de embalagem. Ontem viu como Ethernet reúne uma armação combinando os dados aplicados com um bloco de cabeçada que contém informação sobre endereço. IP faz o mesmo, exceto os conteúdos da cabeçada são específicos para IP. Quando Ethernet recebe um datagrama IP-assembled (que inclui a cabeçada IP), acrescenta a sua cabeçada à frente para criar uma armação — um processo chamou encapsulation. Uma das diferenças primárias entre o IP e cabeçadas de Ethernet é que a cabeçada de Ethernet contém o endereço físico da máquina de destino, ao passo que a cabeçada IP contém o endereço IP. Poderia lembrar da discussão de ontem que a tradução entre os dois endereços se executa pelo Protocolo de Resolução de Endereço.
Encapsulation é o processo da soma de algo à partida (e às vezes o fim) de dados, tão como uma cápsula de pílula mantém os conteúdos medicinais. A cabeçada acrescentada e o rabo dão detalhes sobre os dados cercados.
O datagrama é a unidade de transferência usada por IP, às vezes mais especificamente chamado um datagrama de Internet ou datagrama IP. As especificações que definem IP (bem como a maioria de outros protocolos e serviços na família TCP/IP de protocolos) definem cabeçadas e rabos quanto a palavras, onde uma palavra é 32 bits. Alguns sistemas operacionais usam um comprimento de palavra diferente, embora 32 bits por palavra sejam o valor mais encontrado (alguns mini-computadores e os sistemas maiores usam 64 bits por palavra, por exemplo). Há oito bits a um byte, portanto uma palavra de 32 bits é o mesmo como quatro bytes na maior parte de sistemas.
A cabeçada IP é seis palavras de 32 bits no comprimento (total de 24 bytes) quando todos os campos opcionais se incluem na cabeçada. A cabeçada mais curta permitida por IP usa cinco palavras (total de 20 bytes). Para entender todos os campos na cabeçada, é útil lembrar-se de que IP não tem dependência de hardware mas deve prestar contas de todas as versões do software IP que pode encontrar (prover compatibilidade para trás cheia com versões prévias de IP). O leiaute de cabeçada IP mostra-se esquematicamente na Figura 3.1. Os campos diferentes na cabeçada IP examinam-se mais detalhadamente nas seguintes subseções.
A figura 3.1. O leiaute de cabeçada IP.
Isto é um campo de 4 bits que contém o número da versão IP que o software de protocolo usa. O número da versão necessita-se para que a recepção de software IP saiba como decifrar o resto da cabeçada, que se modifica com cada novo lançamento dos padrões IP. A versão o mais largamente usada é 4, embora vários sistemas estejam testando agora a versão 6 (chamou IPng). A Internet e a maior parte de LAN não apoiam a versão 6 IP no momento.
A parte da definição de protocolo estipula que o software de recepção deve verificar primeiro o número da versão de datagramas de entrada antes de passar a analisar o resto da cabeçada e dados encapsulados. Se o software não puder tratar a versão usada para construir o datagrama, a camada IP da máquina de recepção rejeita o datagrama e ignora os conteúdos completamente.
Este campo de 4 bits reflete o comprimento total da cabeçada IP construída pela máquina de envio; especifica-se em palavras de 32 bits. A cabeçada mais curta é cinco palavras (20 bytes), mas o uso de campos opcionais pode aumentar o tamanho de cabeçada ao seu máximo de seis palavras (24 bytes). Para decifrar propriamente a cabeçada, IP deve saber quando os fins de cabeçada e os dados começam, que é porque este campo se inclui. (Não há marcador de partida dos dados para mostrar onde os dados no datagrama começam. Em vez disso, o comprimento de cabeçada usa-se para computar uma compensação da partida da cabeçada IP para dar a partida do bloco de dados.)
O campo de Tipo de Serviço de 8 bits (de 1 byte) instrui IP como processar o datagrama propriamente. 8 bits do campo leem-se e destinam-se como mostrado na Figura 3.2, que mostra o leiaute do campo de Tipo de Serviço dentro da cabeçada IP maior mostrada na Figura 3.1. Primeiros 3 bits indicam a precedência do datagrama, com um valor de 0 (normal) a 7 (controle de rede). Mais alto o número, mais importante o datagrama e, na teoria pelo menos, mais rápido o datagrama deve derrotar-se ao seu destino. Na prática, entretanto, a maior parte de implementações de TCP/IP e praticamente todo o hardware que usa TCP/IP ignoram este campo, tratando todos os datagramas com a mesma prioridade.
A figura 3.2. O leiaute de campo de Tipo de Serviço de 8 bits.
Seguintes três bits são bandeiras de 1 bit que controlam o atraso, quantidade tratada e confiança do datagrama. Se o bit se estabelecer em 0, a colocação é normal. Um bocado o jogo a 1 contém o atraso baixo, a alta quantidade tratada e a alta confiança das respetivas bandeiras. Dois bits últimos do campo não se usam. A maioria destes bits ignoram-se por implementações de IP atuais, e todos os datagramas tratam-se com o mesmo atraso, quantidade tratada e colocações de confiança.
Com a maior parte de objetivos, os valores de todos os bits no campo de Tipo de Serviço estabelecem-se em 0 porque as diferenças em precedência, atraso, quantidade tratada e confiança entre máquinas são praticamente não existentes a menos que uma rede especial se tenha estabelecido. Embora estas bandeiras fossem úteis no estabelecimento do melhor método de encaminhamento de um datagrama, nenhum sistema IP baseado em UNIX atualmente disponível se preocupa com avaliar os bits nestes campos. (Embora seja possível que o código possa modificar-se para alta segurança ou altas redes de confiança.)
Este campo dá o comprimento total do datagrama, inclusive a cabeçada, em bytes. O comprimento da própria área de dados pode computar-se subtraindo o comprimento de cabeçada deste valor. O tamanho do campo de comprimento de datagrama total é 16 bits, daqui o comprimento máximo de 65.535 bytes de um datagrama (inclusive a cabeçada). Este campo usa-se para determinar o valor de comprimento a passar-se ao protocolo de transporte para estabelecer o comprimento de armação total.
Este campo mantém um número que é um identificador único criado pelo nó de envio. Este número necessita-se quando as mensagens fragmentadas se reúnem, assegurando que os fragmentos de uma mensagem não se misturam com outros. Cada pedaço de dados recebidos pela camada IP de uma camada de protocolo mais alta destina-se um destes números de identificação quando os dados chegam. Se um datagrama se fragmentar, cada fragmento tem o mesmo número de identificação.
O campo de Bandeiras é um campo de 3 bits, o primeiro bit do qual se deixa não usado (se ignora pelo protocolo e normalmente não tem valor escrito para ele). Dois bits de resto dedicam-se a bandeiras chamadas DF (não Fragmente) e MF (mais Fragmentos), que controlam o manejo dos datagramas quando a fragmentação é desejável.
Se a bandeira DF se estabelecer em 1, o datagrama não pode fragmentar-se em nenhuma circunstância. Se o software de camada de IP atual não puder remeter o datagrama a outra máquina sem fragmentá-lo, e este bit estabelece-se em 1, o datagrama descarta-se e uma mensagem de erro retorna-se ao dispositivo de envio.
Se a bandeira MF se estabelecer em 1, o datagrama atual segue-se de mais pacotes (subpacotes às vezes chamados), que deve reagrupar-se para recriar a mensagem cheia. O fragmento último que se envia como parte de uma mensagem maior mandou estabelecer a sua bandeira MF em 0 (de) para que o dispositivo de recepção saiba quando deixar de esperar por datagramas. Como a ordem da chegada dos fragmentos não poderia corresponder à ordem na qual se enviaram, a bandeira MF usa-se em conjunto com o campo de Compensação de Fragmento (o seguinte campo na cabeçada IP) para indicar à recepção trabalham a máquina o ponto cheio da mensagem.
Se o MF (mais Fragmentos) a bandeira mordeu estabelece-se em 1 (indicação de fragmentação de um datagrama maior), a compensação de fragmento contém a posição na mensagem completa da submensagem contida dentro do datagrama atual. Isto permite a IP reagrupar pacotes fragmentados na ordem própria.
As compensações sempre se dão quanto ao começo da mensagem. Isto é um campo de 13 bits, portanto as compensações se calculam em unidades de 8 bytes, correspondendo ao comprimento de pacote máximo de 65.535 bytes. Usando o número de identificação para indicar ao qual a mensagem um datagrama de recepção pertence, a camada IP em uma máquina de recepção então pode usar a compensação de fragmento para reagrupar a mensagem inteira.
Este campo dá o período de tempo durante segundos que um datagrama pode permanecer na rede antes que se descarte. Isto estabelece-se pelo nó de envio quando o datagrama se reúne. Normalmente o campo TTL estabelece-se em 15 ou 30 segundos.
Os padrões TCP/IP estipulam que o campo TTL deve reduzir-se por pelo menos um segundo de cada nó que processa o pacote, mesmo se o tempo de processamento for menos de um segundo. Também, quando um datagrama se recebe por um portão, a hora de chegada marca-se para que se o datagrama dever esperar para processar-se, aquele tempo prejudique o seu TTL. Daqui, se um portão se sobrecarrega em particular e não pode vir ao datagrama na ordem curta, o cronômetro TTL pode vencer esperando o processamento, e o datagrama abandona-se.
Se o campo TTL conseguir 0, o datagrama deve descartar-se pelo nó atual, mas uma mensagem se retorna à máquina de envio quando o pacote se deixa. A máquina de envio então pode reenviar o datagrama. As regras que governam o campo TTL projetam-se para prevenir pacotes IP de circular infinitamente por redes.
Este campo mantém o número de identificação do protocolo de transporte que o pacote se entregou. Os números definem-se por Network Information Center (NIC), que administra a Internet. Há atualmente aproximadamente 50 protocolos definidos e destinaram um número de protocolo de transporte. Os dois protocolos mais importantes são ICMP (detalhado na seção intitulada "Internet Control Message Protocol (ICMP)" depois hoje), que é o número 1 e TCP, que é o número 6. A lista cheia de números não é necessária aqui porque a maioria dos protocolos nunca se encontram por usuários. (Se realmente quiser esta informação, está em vários RFCs mencionados nos apêndices.)
O número neste campo da cabeçada IP é uma soma de controle do campo de cabeçada de protocolo (mas não os campos de dados) para permitir mais rápido processar. Como o campo de Tempo para viver (TTL) é decremented em cada nó, a soma de controle também se modifica com cada máquina pela qual o datagrama passa. O algoritmo de soma de controle toma o complemento do da soma de 16 bits de todas as palavras de 16 bits.
Isto é um algoritmo rápido, eficiente, mas falta a algumas circunstâncias de corrupção excepcionais como a perda de uma palavra de 16 bits inteira que só contém 0s. Contudo, porque as somas de controle de dados usadas tanto por TCP como por UDP cobrem o pacote inteiro, estes tipos de erros normalmente podem pegar-se como a armação se reúne para o transporte de rede.
Estes campos contêm os endereços IP de 32 bits de dispositivos de destino e o envio. Estes campos estabelecem-se quando o datagrama se cria e não se altera durante o encaminhamento.
O campo de Opções é opcional, composto de vários códigos do comprimento variável. Se mais de uma opção se usar no datagrama, as opções aparecem consecutivamente na cabeçada IP. Todas as opções controlam-se por um byte que se divide normalmente em três campos: uma bandeira de cópia de 1 bit, uma classe de opção de 2 bits e um número de opção de 5 bits. A bandeira de cópia usa-se para estipular como a opção se trata quando a fragmentação é necessária em um portão. Quando o bit se estabelece em 0, a opção deve copiar-se ao primeiro datagrama mas não subsequentes. Se o bit se estabelecer em 1, a opção copia-se a todos os datagramas.
A classe de opção e o número de opção indicam o tipo da opção e o seu determinado valor. No momento, há só dois jogo de classes de opção. (Com só 2 bits para trabalhar com no campo, um máximo de quatro opções pode estabelecer-se.) Quando o valor é 0, a opção aplica a datagrama ou controle de rede. Um valor de 2 significa que a opção é com objetivos de administração ou depuração. Os valores de 1 e 3 são não usados. Os valores atualmente apoiados da classe de opção e número dão-se na Tabela 3.1.
Classe de opção |
Número de opção |
Descrição |
0 |
0 |
Marca o fim da lista de opções |
0 |
1 |
Nenhuma opção (usado para forrar) |
0 |
2 |
Opções de segurança (objetivos militares só) |
0 |
3 |
Encaminhamento de fonte solto |
0 |
7 |
Ativa o registro de encaminhamento (acrescentam os campos) |
0 |
9 |
Encaminhamento de fonte estrito |
2 |
4 |
Timestamping ativo (acrescenta campos) |
Da maior parte de interesse a você são opções que permitem ao encaminhamento e timestamps registrar-se. Estes usam-se para fornecer um registro da passagem de um datagrama através das interredes, que podem ser úteis com objetivos diagnósticos. Ambas estas opções acrescentam a informação a uma lista contida dentro do datagrama. (O timestamp tem um formato interessante: exprime-se em milissegundos desde a meia-noite, Tempo universal. Infelizmente, porque a maior parte de sistemas têm colocações de tempo largamente se diferenciam — mesmo quando corrigido ao Tempo universal — o timestamps deve tratar-se com mais que uma pequena suspeita.)
Há duas espécies do encaminhamento indicado dentro do campo de Opções: solto e estrito. O encaminhamento solto fornece uma série de endereços IP pelo que a máquina deve passar, mas permite a qualquer via usar-se para vir a cada um destes endereços (normalmente portões). O encaminhamento estrito não permite nenhum desvio da via especificada. Se a via não puder seguir-se, o datagrama abandona-se. O encaminhamento estrito usa-se frequentemente para testar vias mas raramente para a transmissão de datagramas de usuário por causa das possibilidades mais altas do datagrama que se perde ou abandona-se.
O conteúdo da área de enchimento depende das opções selecionadas. O enchimento usa-se normalmente para assegurar que a cabeçada de datagrama é um número redondo de bytes.
Para entender como IP e outras camadas TCP/IP trabalham para empacotar e enviar um datagrama de uma máquina ao outro, tomo uma olhada simplificada na passagem de um datagrama típico. Quando uma aplicação deve distribuir um datagrama na rede, executa alguns passos simples. Em primeiro lugar, constrói o datagrama IP dentro dos comprimentos legais estipulados pela implementação IP local. A soma de controle calcula-se para os dados, e logo a cabeçada IP constrói-se. Depois, o primeiro pulo (a máquina) da via ao destino deve determinar-se à via o datagrama à máquina de destino diretamente sobre a rede local, ou a um portão se as interredes se usarem. Se o encaminhamento for importante, esta informação acrescenta-se à cabeçada usando uma opção. Finalmente, o datagrama passa-se à rede da sua manipulação do datagrama.
Como um datagrama passa ao longo das interredes, cada portão executa uma série de testes. Depois que a camada de rede despiu-se da sua própria cabeçada, o portão a camada de IP calcula a soma de controle e verifica a integridade do datagrama. Se as somas de controle não combinarem, o datagrama descarta-se e uma mensagem de erro devolve-se ao dispositivo de envio. Depois, o campo TTL é decremented e verificado. Se o datagrama tenha vencido, descarta-se e uma mensagem de erro retorna-se à máquina de envio. Depois de determinar o seguinte pulo da via, pela análise do endereço de objetivo ou de uma instrução de encaminhamento especificada dentro do campo de Opções da cabeçada IP, o datagrama reedifica-se com o novo valor de TTL e nova soma de controle.
Se a fragmentação for necessária por causa de um aumento no comprimento do datagrama ou uma limitação no software, o datagrama divide-se, e reúnem-se os novos datagramas com a informação sobre cabeçada correta. Se um encaminhamento ou timestamp se necessitarem, acrescenta-se também. Finalmente, o datagrama passa-se atrás à camada de rede.
Quando o datagrama se recebe finalmente no dispositivo de destino, o sistema executa um cálculo de soma de controle e — assunção do dois jogo de somas — cheques para ver se há outros fragmentos. Se mais datagramas deverem reagrupar a mensagem inteira, o sistema espera, entretanto dirigindo um cronômetro para assegurar que os datagramas chegam perante um tempo razoável. Se todas as partes da mensagem maior tenham chegado mas o dispositivo não pode reagrupá-los antes que o cronômetro consiga 0, o datagrama descarta-se e uma mensagem de erro devolve-se ao remetente. Finalmente, a cabeçada IP despe-se de, a mensagem original reconstrói-se se se fragmentou, e a mensagem deixa-se passar as camadas à aplicação de camada superior. Se uma resposta se necessitou, então gera-se e retorna-se ao dispositivo de envio.
Quando a extra informação se acrescenta ao datagrama de encaminhamento ou registro de timestamp, o comprimento do datagrama pode aumentar. O manejo de todas estas condições é parte do forte de IP, para o qual praticamente cada problema tem um sistema de resolução.
Como viu hoje e durante dois dias anteriores, muitos problemas podem ocorrer no encaminhamento uma mensagem do remetente ao receptor. O cronômetro TTL poderia vencer; os datagramas fragmentados não poderiam chegar com todos os segmentos intatos; um portão podia misroute um datagrama, e assim por diante. Deixar o dispositivo de envio saber de um problema com um datagrama é importante, como trata corretamente condições incorretas dentro do próprio encaminhamento de rede. Internet Control Message Protocol (ICMP) desenvolveu-se para esta tarefa.
ICMP é um sistema de informação incorreto. É uma parte integrante de IP e deve incluir-se em cada implementação IP. Isto provê mensagens de erro consistentes, compreensíveis e sinais através das versões diferentes de IP e sistemas operacionais diferentes. É útil pensar em ICMP como um pacote IP projetado especificamente para falar com outro pacote IP através da rede: em outras palavras, ICMP é o sistema de comunicações da camada IP. As mensagens geradas por ICMP tratam-se pelo resto da rede como qualquer outro datagrama, mas se interpretam diferentemente pelo software de camada IP. As mensagens de ICMP mandam construir uma cabeçada na mesma maneira que qualquer datagrama IP, e os datagramas ICMP não se diferenciam em nenhum ponto de datagramas transportam os dados normais até que a camada IP de uma máquina de recepção processe o datagrama propriamente.
Em quase todos os casos, as mensagens de erro enviadas por ICMP derrotam-se atrás ao envio do datagrama original de máquina. Isto é porque só o remetente e os endereços IP de dispositivo de destino se inclui na cabeçada. Como o erro não significa nada para o dispositivo de destino, o remetente é o recipiente lógico da mensagem de erro. O remetente então pode determinar da mensagem ICMP o tipo do erro que ocorreu e estabeleça como reenviar melhor o datagrama fracassado.
As mensagens de ICMP atravessam dois encapsulations, como fazem todas as mensagens IP: incorporação em um datagrama IP regular e logo na armação de rede. Isto mostra-se na Figura 3.3. As cabeçadas de ICMP têm um formato diferente do que as cabeçadas IP, entretanto, e o formato se diferenciam ligeiramente dependendo do tipo da mensagem. Contudo, todas as cabeçadas ICMP começam com os mesmos três campos: um tipo de mensagem, um campo de código e uma soma de controle da mensagem ICMP. A figura 3.4 mostra o leiaute da mensagem ICMP.
A figura 3.3. Dança de passo duplo encapsulation de uma mensagem ICMP.
A figura 3.4. O leiaute de uma mensagem ICMP.
Normalmente, qualquer mensagem ICMP que informa um problema com a entrega também inclui a cabeçada e primeiros 64 bits do campo de dados do datagrama para o qual o problema ocorreu. Inclusive 64 bits do datagrama original realiza duas coisas. Em primeiro lugar, permite ao dispositivo de envio combinar com o fragmento de datagrama ao datagrama original na comparação. Também, porque a maioria dos protocolos implicados se definem na partida do datagrama, a inclusão do fragmento de datagrama original leva em conta alguma diagnóstica a executar-se pela máquina que recebe a mensagem ICMP.
A mensagem de 8 bits campo de Tipo na cabeçada ICMP (mostrado na Figura 3.4) pode ter um dos valores mostrados na Tabela 3.2.
Valor |
Descrição |
0 |
Resposta de eco |
3 |
Destino não alcançável |
4 |
Fonte extingue |
5 |
Redirecionamento necessário |
8 |
Pedido de eco |
11 |
Tempo para viver excedido |
12 |
Problema de parâmetro |
13 |
Pedido de Timestamp |
14 |
Resposta de Timestamp |
15 |
Pedido de informação (agora obsoleto) |
16 |
Resposta de informação (agora obsoleto) |
17 |
Pedido de máscara de endereço |
18 |
Resposta de máscara de endereço |
O campo de Código estende-se sobre o tipo de mensagem, fornecendo um pouco mais informação para a máquina de recepção. A soma de controle na cabeçada ICMP calcula-se na mesma maneira que a soma de controle de cabeçada IP normal.
O leiaute da mensagem ICMP é ligeiramente diferente para cada tipo da mensagem. A figura 3.5 mostra o leiaute de cada tipo da cabeçada de mensagem ICMP. O Destino Inalcançável e Tempo as mensagens Excedidas são evidentes, embora se usem em outras circunstâncias, também, tal como quando um datagrama deve fragmentar-se mas não bandeira de Fragmento se estabelece. Isto resulta em um Destino mensagem Inalcançável que se devolve à máquina de envio.
A figura 3.5. Leiaute de cabeçada de mensagem de ICMP.
A Fonte Extingue a mensagem ICMP usa-se para controlar a tarifa na qual os datagramas se transmitem, embora isto seja uma forma muito rudimentar do controle de fluxo. Quando um dispositivo recebe uma Fonte Extinguem a mensagem, deve reduzir a tarifa de transmissão sobre a rede até que a Fonte Extinga mensagens cessam. As mensagens geram-se tipicamente por um portão ou anfitrião que tem um buffer de recepção cheio ou reduziu a velocidade do processamento de datagramas de entrada por causa de outros fatores. Se o buffer for cheio, supõe-se que o dispositivo emane uma Fonte Extinguem a mensagem de cada datagrama que se descarta. Algumas implementações emanam Fonte Extinguem mensagens quando o buffer excede certa percentagem para diminuir a recepção de novos datagramas e permitir ao dispositivo compensar o buffer.
As mensagens de redirecionamento enviam-se a um portão no caminho quando uma melhor via está disponível. Por exemplo, se um portão acaba de receber um datagrama de outro portão mas na verificação os seus arquivos de dados encontram uma melhor via, retorna a mensagem de Redirecionamento àquele portão com o endereço IP da melhor via. Quando uma mensagem de Redirecionamento se envia, um número inteiro coloca-se no campo de código da cabeçada para indicar as condições para as quais o desvio se aplica. Um valor de 0 meios que os datagramas de qualquer dispositivo na rede de destino devem redirecionar-se. Um valor de 1 indica que só os datagramas do dispositivo específico devem reencaminhar-se. Um valor de 2 contém que só os datagramas da rede com o mesmo tipo do serviço (lido em um dos campos de cabeçada IP) devem reencaminhar-se. Finalmente, um valor de 3 só reencaminha para o mesmo anfitrião com o mesmo tipo do serviço.
A mensagem de problema de Parâmetro usa-se sempre que um erro semântico ou sintático se tenha encontrado na cabeçada IP. Isto pode acontecer quando as opções se usam com argumentos incorretos. Quando uma mensagem de problema de Parâmetro se retorna ao dispositivo de envio, o campo de Parâmetro na mensagem de erro ICMP contém um ponteiro para o byte na cabeçada IP que causou o problema. (Ver a Figura 3.5.)
O pedido de eco ou as mensagens de resposta usam-se comumente para depurar objetivos. Quando um pedido se envia, um dispositivo ou portão abaixo o caminho retorna uma resposta ao dispositivo especificado. Estes pares de pedido/resposta são úteis para identificar problemas de encaminhamento, portões reprovados ou problemas de telegrafar de rede. O ato simples de processar uma mensagem ICMP também controla da rede, porque cada portão ou o dispositivo ao longo do caminho devem decifrar corretamente as cabeçadas e logo passar ao longo do datagrama. Qualquer fracasso ao longo do caminho pode ser com a implementação do software IP. Um sistema de pedido/resposta comumente usado é a ordem de silvo. A ordem de silvo envia uma série de pedidos e espera por respostas.
Os pedidos de Timestamp e as respostas permitem à regulação de tempo da mensagem que passa ao longo da rede controlar-se. Quando combinado com o encaminhamento estrito, isto pode ser útil em gargalos identificam. Os pedidos de máscara de endereço e as respostas usam-se para testar dentro de uma rede específica ou subrede.
Quando a versão 4 IP (o lançamento atual) se desenvolveu, o uso de um endereço IP de 32 bits pareceu mais do que bastante tratar o uso projetado da Internet. Com a taxa de crescimento incrível da Internet durante os últimos poucos anos, contudo, o endereço IP de 32 bits poderia tornar-se um problema. Para contrariar este limite, a Próxima geração de IP, versão 6 (IPv6) IP normalmente chamada, é no desenvolvimento.
Várias propostas da implementação IPng estão atualmente estudando-se, o mais popular dos quais são TUBA (TCP e UDP com Endereços Maiores), GATARIA (Arquitetura comum da Internet), e SIPP (Protocolo de Internet Simples mais). Nenhum dos três encontra todas as modificações propostas da versão 6, mas um compromisso ou a modificação baseada em uma destas propostas são prováveis.
O que faz IPng têm de oferecer? A lista de modificações diz-lhe as características principais de IPng em uma casca de noz:
Depois olho para IPng em um pouco mais detalhe para mostrar as modificações que tocam a maior parte de usuários, bem como programadores de rede e administradores de rede. Começo com uma olhada na cabeçada IPng. Lembre-se de que no momento IPng ainda é no desenvolvimento e não se desdobra largamente exceto em redes de experiência.
Como mencionado antes, a cabeçada de datagramas IPng modificou-se sobre a cabeçada da versão 4 mais adiantada. As modificações devem fornecer pela maior parte o suporte dos endereços IP de 128 bits novos, mais longos e retirar campos obsoletos e desnecessários. O leiaute básico da cabeçada IPng mostra-se na Figura 3.6. Como pode ver, há várias modificações da cabeçada IP usada na versão 4 IP (ver a Figura 3.1).
A figura 3.6. O leiaute de cabeçada IPng.
O número da versão na cabeçada de datagrama IP é quatro bits de longitude e mantém o número do lançamento (que é 6 com IPng). O campo de Prioridade é quatro bits de longitude e mantém um valor que indica a prioridade do datagrama. A prioridade usa-se para definir a ordem de transmissão. A prioridade estabelece-se primeiro com uma larga classificação, logo um identificador mais estreito dentro de cada classe. Olho para a classificação de prioridade em um pouco mais detalhe durante um momento.
O campo de Etiqueta de Fluxo é 24 bits de longitude e ainda está na etapa de desenvolvimento. Provavelmente vai se usar na combinação com o endereço IP de máquina de fonte para fornecer a identificação de fluxo para a rede. Por exemplo, se usa uma estação de trabalho UNIX na rede, o fluxo é diferente de outra máquina como um PC do Windows 95. Este campo pode usar-se para identificar características de fluxo e fornecer algumas capacidades de ajuste. O campo também pode usar-se para ajudar a identificar máquinas de objetivo de grandes transferências, em que caso um sistema de esconderijo fica mais eficiente no encaminhamento entre fonte e destino. As etiquetas de fluxo discutem-se mais detalhadamente na seção intitulada "Etiquetas de Fluxo" depois hoje.
O campo de Comprimento de Carga paga é um campo de 16 bits usado para especificar o comprimento total do datagrama IP, dado em bytes. O comprimento total é exclusivo da própria cabeçada IP. O uso de um campo de 16 bits limita o valor máximo neste campo a 65.535, mas há uma provisão para enviar grandes datagramas usando uma cabeçada de extensão (ver a seção intitulada "Cabeçadas de Extensão de IP" depois hoje).
O Seguinte campo de Cabeçada usa-se para indicar que cabeçada segue a cabeçada IP quando outras aplicações querem a costas vorazes na cabeçada IP. Vários valores definiram-se para o Seguinte campo de Cabeçada, como mostrado na Tabela 3.3.
Valor |
Descrição |
0 |
Opções de pulo por pulo |
4 |
IP |
6 |
TCP |
17 |
UDP |
43 |
Encaminhamento |
44 |
Fragmento |
45 |
Rotina de interdomínio |
46 |
Reserva de recurso |
50 |
Encapsulação de segurança |
51 |
Autenticação |
58 |
ICMP |
59 |
Nenhuma seguinte cabeçada |
60 |
Opções de destino |
O campo de Limite de Pulo determina o número de pulos o datagrama pode viajar. Com cada expedição, o número é decremented por 1. Quando o campo de Limite de Pulo consegue 0, o datagrama descarta-se, tal como com a versão 4 IP.
Finalmente, os Endereços IP de Destino e Envio no formato de 128 bits colocam-se na cabeçada. Olho para o novo formato de endereço IP mais detalhadamente na seção intitulada "Endereços IP de 128 bits" depois neste capítulo.
O campo de Classificação de Prioridade na cabeçada IPng primeiro divide o datagrama em uma de duas categorias: a congestão controlada ou a não-congestão controlam-se. Os datagramas controlados de não-congestão sempre se derrotam como uma prioridade sobre a congestão controlou datagramas. Há subclassificações de prioridades de datagrama controladas de não-congestão disponíveis para o uso, mas nenhuma das categorias se aceitou como padrão ainda.
Se o datagrama for congestão controlada, é sensível a problemas de congestão na rede. Se a congestão ocorrer, o datagrama pode diminuir-se e manter-se temporariamente em esconderijos até que o problema se alivie. Abaixo da categoria controlada da larga congestão são várias subclasses que além disso refinam a prioridade do datagrama. As subcategorias de prioridades controladas de congestão dão-se na Tabela 3.4.
Valor |
Significação |
0 |
Nenhuma prioridade se especifica |
1 |
Tráfego de fundo |
2 |
Transferência de dados desacompanhada |
3 |
Não destinado |
4 |
Transferência de volume assistida |
5 |
Não destinado |
6 |
Tráfego interativo |
7 |
Tráfego de controle |
O tráfego controlado de não-congestão tem prioridades 8 para 15 disponíveis, mas como mencionei antes, não se definem.
Os exemplos de cada uma das subcategorias primárias poderiam ajudá-lo a ver como os datagramas se priorizam. O tráfego de gestão de rede e encaminhamento que se considera a prioridade mais alta é a categoria destinada 7. As aplicações interativas como Telnet e remoto X sessões destinam-se como tráfego interativo (categoria 6). As transferências que não são limitadas no tempo (como sessões de Telnet) mas ainda se controlam por uma aplicação interativa como FTP se destinam como categoria 4. O e-mail destina-se normalmente como categoria 2, ao passo que o material de prioridade baixa como notícias se estabelece na categoria 1.
Como mencionado antes, o campo de Etiqueta de Fluxo novo para a cabeçada IPng pode usar-se para ajudar a identificar o remetente e o destino de muitos datagramas IP. Empregando esconderijos para tratar fluxos, os datagramas podem derrotar-se mais eficientemente. Não todas as aplicações podem tratar etiquetas de fluxo, em que caso o campo se estabelece em um valor de 0.
Um exemplo simples poderia ajudar a mostrar que a utilidade do fluxo etiqueta o campo. Suponha que o Windows 95 de gerência de PC se une a um servidor UNIX em outra rede e envia um grande número de datagramas. Estabelecendo um valor específico da etiqueta de fluxo de todos os datagramas na transmissão, os encaminhadores ao longo do caminho ao servidor podem reunir entradas nos seus esconderijos de encaminhamento que indicam que caminho à via cada datagrama com o mesmo fluxo etiqueta. Quando os datagramas subsequentes com a mesma etiqueta de fluxo chegam, o encaminhador não tem de recalcular a via; simplesmente pode verificar o esconderijo e extrair a informação salvada disto. Isto acelera a passagem dos datagramas por cada encaminhador.
Para impedir esconderijos de tornar-se demasiado grandes ou manter a informação envelhecida, IPng estipula que o esconderijo mantido em um dispositivo de encaminhamento não pode guardar-se durante mais de seis segundos. Se um novo datagrama com a mesma etiqueta de fluxo não se receber dentro de seis segundos, a entrada de esconderijo retira-se. Para prevenir valores repetidos da máquina de envio, o remetente deve esperar seis segundos antes de usar o mesmo valor de etiqueta de fluxo de outro destino.
IPng permite a etiquetas de fluxo usar-se para reservar uma via de aplicações limitadas no tempo. Por exemplo, uma aplicação em tempo real que tem de enviar vários datagramas ao longo da mesma via e precisa de uma transmissão a mais rápida possível (tal que é necessária para vídeo ou áudio, por exemplo) pode estabelecer a via enviando datagramas antes do tempo, procurar não excedem o intervalo de seis segundos nos encaminhadores provisórios.
Provavelmente o aspecto mais importante de IPng é a sua capacidade de prover endereços IP mais longos. IPng aumenta o endereço IP de 32 bits a 128 bits. Isto permite a um número incrível de endereços reunir-se, provavelmente mais do que pode usar-se alguma vez.
Os novos endereços IP apoiam três espécies de endereços: unicast, multiforma e anycast.
O manejo de fragmentação e remontagem também se modifica com IPng para fornecer mais capacidades para IP. Também proposto para IPng é um esquema de autenticação que pode assegurar que os dados não se corromperam entre remetente e receptor, bem como assegurando que o envio e a recepção de máquinas consistem em quem afirmam que são.
IPng tem a provisão para permitir a cabeçadas adicionais pregar-se para a cabeçada IP. Isto poderia ser necessário quando um encaminhamento simples ao destino não é possível, ou quando os serviços especiais como autenticação se necessitam para o datagrama. A informação adicional necessitada empacota-se em uma cabeçada de extensão e acrescenta-se à cabeçada IP.
IPng define vários tipos de cabeçadas de extensão identificadas por um número colocado no Seguinte campo de Cabeçada da cabeçada IP. Os valores atualmente aceitos e as suas significações mostraram-se na Tabela 3.3. Várias extensões podem acrescentar-se para uma cabeçada IP, com o Seguinte campo de Cabeçada de cada extensão indicação da seguinte extensão. Normalmente, as cabeçadas de extensão acrescentam-se no ascendente de ordem numérica. Isto facilita para encaminhadores analisar as extensões, parando o exame quando passa extensões específicas para o encaminhador.
O tipo 0 de extensão é pulo por pulo, que se usa para fornecer opções IP a cada máquina pela qual o datagrama passa. As opções incluídas na extensão de pulo por pulo têm um formato padrão de um valor de Tipo, um Comprimento e um Valor (exceto a opção Pad1, que tem um conjunto de valores único a 0 e nenhum comprimento ou campo de valor). Tanto os campos de Comprimento como Tipo são um byte único no comprimento, ao passo que o comprimento de campo de Valor é variável e indicado pelo byte de comprimento.
Há três tipos de extensões de pulo por pulo definidas por enquanto, chamadas Pad1, PadN e Carga paga Gigantesca. A opção Pad1 é um byte único com um valor de 0, nenhum comprimento e nenhum valor. Usa-se para alterar a ordem e a posição de outras opções na cabeçada quando necessário, ditado normalmente por uma aplicação. A opção de PadN é semelhante exceto ele tem zeros N colocados no campo de Valor e um valor calculado do comprimento.
A opção de extensão de Carga paga Gigantesca usa-se para tratar tamanhos de datagrama mais de 65.535 bytes. O campo de Comprimento na cabeçada IP limita-se a 16 bits, daqui o limite de 65.535 para o tamanho de datagrama. Para tratar comprimentos de datagrama maiores, o campo de Comprimento da cabeçada IP estabelece-se em 0, que redireciona os encaminhadores à extensão para apanhar um valor de comprimento correto. O campo de Comprimento pode definir-se na cabeçada de extensão usando 32 bits, que é mais de 4 terabytes.
Uma extensão de encaminhamento pode pregar-se para a cabeçada IP quando a máquina de envio quer controlar o encaminhamento do datagrama em vez de deixá-lo aos encaminhadores ao longo do caminho. A extensão de encaminhamento pode usar-se para dar vias ao destino. A extensão de encaminhamento inclui campos de cada endereço IP ao longo da via desejada.
A cabeçada de fragmento pode acrescentar-se a um datagrama IP para permitir a uma máquina fragmentar um grande datagrama em mais pequenas partes. A parte do desenho de IPng deveu prevenir a fragmentação subsequente, mas em alguns casos a fragmentação deve permitir-se para passar o datagrama ao longo da rede.
A cabeçada de autenticação usa-se para assegurar que nenhuma alteração se fez aos conteúdos do datagrama e que o datagrama se originou na máquina mostrada na cabeçada IP. À revelia, IPng usa um esquema de autenticação chamado Message Digest 5 (MD5). Outros esquemas de autenticação podem usar-se enquanto ambos os fins da conexão combinam o mesmo esquema.
A cabeçada de autenticação compõe-se de um índice de parâmetros de segurança (SPI) que, quando combinado com o endereço IP de destino, define o esquema de autenticação. O SPI segue-se de dados de autenticação, que com MD5 são 16 bytes de longitude. MD5 começa com uma chave (forrado a 128 bits se for mais curto), logo acrescenta o datagrama inteiro. A chave então marca-se no fim, e o algoritmo MD5 dirige-se em conjunto. Para prevenir problemas com balcões de pulo e a própria cabeçada de autenticação que altera os valores, são zeroed com os objetivos de calcular o valor de autenticação. O algoritmo MD5 gera um valor de 128 bits que se coloca na cabeçada de autenticação. Os passos repetem-se ao contrário no fim de recepção. Ambos os fins devem ter o mesmo valor da chave, naturalmente, para o esquema de trabalhar.
Os conteúdos de datagrama podem encriptar-se antes da geração de valores de autenticação usando o default esquema de encriptação de IPng, chamado Cipher Block Chaining (CBC), parte de Data Encryption Standard (DES).
Deram a universidade da Califórnia em Berkeley uma subvenção no início dos anos 1980 para modificar o seu sistema operacional UNIX ao suporte incluído de IP. O lançamento de BSD4.2 UNIX já ofereceu o suporte de TCP e IP, bem como Simple Mail Transfer Protocol (SMTP) e Address Resolution Protocol (ARP), mas com fundos de DARPA, BSD4.3 se desenvolveu para fornecer o suporte mais completo.
O suporte de BSD4.2 de IP foi bastante bom antes desta subvenção, mas se limitou para usar em pequenas redes locais só. Para aumentar as capacidades do suporte de IP de UNIX BSD, BSD acrescentou capacidades de retransmissão, Tempo para Viver informação e mensagens de redirecionamento. Outras características acrescentaram-se, também, permitindo a BSD4.3 trabalhar com redes maiores, interredes (conexões entre redes diferentes), e redes de longa distância unidas por linhas arrendadas. Este processo trouxe o BSD UNIX sistema (e os seus titulares de licença, como SunOS de Sol) de acordo com os padrões IP usados em AT&T UNIX e outras plataformas baseadas em UNIX.
Com o forte apoio de IP entre a comunidade UNIX, foi inevitável que os fabricantes de outros sistemas operacionais de software começassem a produzir o software que permitiu às suas máquinas interligar ao UNIX IP o sistema. A maioria do passeio para produzir versões IP de sistemas operacionais non-UNIX foi não devido à Internet (que não tinha começado o seu crescimento fenomenal no momento) mas o desejo de integrar outros sistemas operacionais em redes locais que usaram servidores UNIX.
Esta seção do material de hoje examina vário hardware e sistemas de software, concentrando-se nas plataformas o mais largamente usadas, e mostra a disponibilidade de IP (e suites TCP/IP inteiras) para aquelas máquinas. A maior parte disto tem o interesse só se tiver a determinada plataforma discutida (DEZEMBRO os usuários de VAX tendem a não se preocupar com a interconectividade a plataformas de IBM SNA, por exemplo), portanto pode ser seletivo sobre as seções lê. Em alguns casos, uso um pacote IP de algumas destas plataformas como um exemplo e para a tela captura depois neste livro.
Os PCs vieram para a cena quando TCP/IP já esteve no uso comum, portanto não foi surpreendente achar o software de ligação rapidamente introduzido. De muitos modos, o PC foi uma plataforma perfeita como uma máquina autônoma com o acesso por um pacote de comunicações a outros sistemas maiores. O PC foi perfeito para um ambiente de cliente/servidor.
Há muitas versões baseadas no PC de TCP/IP. Os pacotes o mais largamente usados vêm do software de FTP, Wollongong Group e Beame and Whiteside Software Inc. Todos os pacotes apresentam capacidades de ligação a outras máquinas usando TCP/IP, e a maioria acrescenta outras características úteis como encaminhamento de correio e FTP.
O software de FTP PC/TCP é um do mais largamente usado. PC/TCP apoia os interfaces de rede principais: Motorista de Pacote, Adapter Support Interface (ASI) de IBM, a Interface de Conexão de Dados Aberta de Novell (ODI) e Network Driver Interface Specification (NDIS) de Microsoft/3Com. As quatro interfaces de LAN discutem-se mais detalhadamente em "Redes locais" intituladas da seção depois hoje.
O desenho de PC/TCP cobre as sete camadas do modelo OSI, desenvolvido em tal maneira que os componentes podem configurar-se como necessitado para apoiar mecanismos de transporte diferentes e aplicações. Tipicamente, o Motorista de Pacote, ASI, ODI ou o módulo NDIS têm um núcleo PC/TCP genérico em cima dele, com a aplicação PC/TCP em cima disto.
PC/TCP permite ao software dirigir tanto TCP/IP como outro protocolo, como DECnet, Novell NetWare ou Gerente de LAN, simultaneamente. Isto pode ser útil para permitir a um PC funcionar dentro de um pequeno grupo de trabalho de LAN, bem como dentro de uma rede maior, sem trocar o software.
Há vários produtos TCP/IP que aparecem para o Windows 3.x de Microsoft, Windows de Grupos de trabalho e o Windows 95. A maioria dos primeiros pacotes do Windows 3.x foram os portos dos produtos de DOS. Embora estes tendam a trabalhar bem, um produto totalmente projetado pelo Windows tende a ter uma borda leve quanto a integração com o ambiente de Windows. O Windows de Grupos de trabalho 3.11 não tem passeios de TCP/IP inerentes, mas vários produtos estão disponíveis para acrescentar suites TCP/IP deste GUI, bem como o Windows 3.1 e o Windows 3.11.
Um Windows produto 3.x-projetado é o Cameleão de NetManage TCP/IP do Windows. O cameleão oferece um porto completo de TCP/IP e utilidade de software adicional para permitir ao Windows 3.x de gerência de PC integrar-se em uma rede TCP/IP. O cameleão oferece emulação terminal, Telnet, FTP, correio eletrônico, serviços de diretório DNS e capacidades de NFS. Há várias versões do Cameleão, dependendo de se o NFS se necessita.
O Windows 95 tem drivers TCP/IP incluídos com o software de distribuição, mas não se carregam à revelia (IPX/SPX de NetWare é o protocolo à revelia do Windows 95). Deve instalar e configurar o produto TCP/IP como um passo separado depois de instalar o Windows 95 se quiser usar IP na sua rede. Pode ver como isto se faz no Dia 10, "Fundando uma Rede de TCP/IP de Mostra: DOS e Clientes de Windows".
O Windows NT ajusta-se de maneira ideal para TCP/IP porque se projeta para atuar como um servidor e portão. Embora o Windows NT não seja inerentemente multiusuário, realmente trabalha bem como um dispositivo de acesso TCP/IP. O Windows NT inclui o suporte dos protocolos TCP/IP como um transporte de rede, embora a implementação não inclua toda a utilidade normalmente associada com TCP/IP. TCP/IP pode escolher-se como o protocolo à revelia em uma máquina de Windows NT quando o sistema operacional se instala.
Entre os produtos de addon disponíveis para o Windows NT, Chameleon32 de NetManage é um pacote popular. Semelhante à versão de Windows de Microsoft, Chameleon32 oferece versões do NFS.
A plataforma OS/2 de IBM tem uma presença forte em corporações por causa da reputação de IBM e a realização sólida de OS/2. Não surpreendentemente, os produtos de TCP/IP são populares nestas instalações, também. Embora OS/2 se diferencie do DOS de muitos modos, é possível dirigir portos baseados no DOS do software TCP/IP abaixo de OS/2. Uma melhor solução é dirigir uma aplicação OS/2 nativa. Vários TCP/IP OS/2-native implementações estão disponíveis, inclusive um produto TCP/IP de própria IBM.
Exceto versões de UNIX que correm no Macintosh, o Macintosh e os mundos UNIX dependeram de várias versões diferentes de TCP/IP para guardá-los unido. Com muitas corporações agora querendo o seu investimento em computadores de Macintosh servir o dever duplo como X terminais para a estação de trabalho UNIX, TCP/IP de Mac ficou até mais importante.
Macintosh produtos de TCP está disponível em várias formas, normalmente como uma aplicação de addon ou motorista de dispositivo do sistema operacional de Macintosh. Uma alternativa é Intersistemas de Espiga linha de produtos de MachTen, que permite a um núcleo UNIX e o sistema operacional de Macintosh coexistir na mesma máquina, fornecendo a compatibilidade entre UNIX e o sistema de arquivos de Macintosh e eventos de Apple. TCP/IP é parte do produto de MachTen.
O sistema de ligação em rede de AppleTalk permite a máquinas de UNIX e Macs interligar até um ponto limitado, embora isto necessite a instalação do software AppleTalk no anfitrião de UNIX — algo que muitos administradores de sistema mostram relutância a fazer. Também, porque AppleTalk não é tão rápido e versátil como Ethernet e outros médios de transporte de rede, esta solução favorece-se raramente.
Uma melhor solução simplesmente é instalar TCP/IP no Macintosh usando um de vários pacotes comerciais disponíveis. O próprio produto de software de MacTCP de Apple pode executar os serviços básicos mas deve ligar-se com o software de outros vendedores das aplicações de camada mais altas. MacTCP também necessita que um Protocolo de Entrega de Datagrama ao Protocolo de Internet (DDP-to-IP) encaminhador trate o envio e a recepção de DDP e datagramas IP.
MacTCP de Apple funciona fornecendo o exame médico por camadas de transporte da arquitetura. MacTCP leva em conta tanto o hardware de Ethernet como LocalTalk e apoia tanto IP como TCP, bem como vários outros protocolos. A gerência em cima de MacTCP é a aplicação da terceira pessoa, que usa chamadas da função de MacTCP fornecer a aplicação final para o usuário. As funções como Telnet e protocolos de FTP apoiam-se com o software de addon, também.
Os mini-computadores de Digital Equipment Corporation foram por muitos anos um estai na pesquisa científica e educativa, portanto um desenvolvimento óbvio para DEZEMBRO e empresas de software da terceira pessoa deveu introduzir o software IP. A maior parte de máquinas de DEZEMBRO dirigem VMS ou Ultrix (a versão autorizada de DEZEMBRO de UNIX). Fornecer capacidades de IP a Ultrix foi uma matéria de duplicar o código desenvolvido em Berkeley, mas VMS não se projetou para comunicações de IP-tipo, confiando em vez disso no software de rede proprietário de DEZEMBRO.
O software de ligação em rede de DEZEMBRO é a Arquitetura de Rede digital (DECnet). A versão primeira largamente usada foi a Fase IV DECnet (introduzido em 1982), que usou protocolos padrão pela indústria para as camadas mais baixas mas foi proprietário nas camadas superiores. O lançamento de 1987 da Fase V DECnet forneceu um DECnet combinado IV e sistema OSI que permitiu a novos protocolos OSI usar-se dentro do ambiente DECnet.
O DEZEMBRO anunciou as redes da VANTAGEM em 1991 como um aumento da Fase V DECnet, acrescentando o suporte dos Protocolos de Internet. Com as redes da VANTAGEM, os usuários podem selecionar entre o DECnet mais velho, específico para o DEZEMBRO, OSI ou esquemas IP. As redes da VANTAGEM são a tentativa de DEZEMBRO de fornecer a interoperabilidade, fornecendo o sistema DECnet exclusivo pelo DEZEMBRO para o uso de LAN, e o TCP/IP e sistemas OSI de WANs e ligação de sistema entre tipos de hardware diferentes.
Os usuários de sistemas VMS podem unir-se ao ambiente UNIX de vários modos. O mais fácil deve usar um portão de software entre a máquina VMS e uma máquina UNIX. TCP/IP Services de DEZEMBRO de VMS executa esta função, como fazem várias soluções de software da terceira pessoa, como o protocolo de Kermit da universidade de Colômbia, WIN/TCP de Wollongong Group e MultiNet de TGV. A vantagem dos produtos de protocolo de comunicações da terceira pessoa como Kermit consiste em que não têm de unir-se a uma máquina UNIX, porque qualquer sistema operacional que apoia o protocolo de comunicações funcionará.
Os usuários de redes da VANTAGEM têm mais opções disponíveis, muitos desde DEZEMBRO. Como o protocolo já é introduzido no software de rede, faz a maior parte de sentido simplesmente para usá-lo como vem, se se ajustar na arquitetura de sistema existente. Por causa do software de conversão interno, as redes da VANTAGEM podem unir-se de uma máquina DECnet usando o DECnet ou os protocolos OSI.
Systems Network Architecture (SNA) de IBM está no uso comum tanto de computadores centrais como de mini-computadores. Essencialmente todo o equipamento de IBM fornece o suporte cheio de IP e TCP, bem como muitos outros protocolos populares. O software IBM nativo está disponível para cada máquina, e vários produtos da terceira pessoa apareceram (normalmente com um preço mais baixo do que os oferecidos por IBM).
A versão de IBM UNIX, AIX (que poucas pessoas sabem estantes do Executivo Interativo Promovido), manda construir o software TCP/IP em, permitindo qualquer máquina que pode dirigir AIX (de estações de trabalho a grandes mini-computadores) para interligar por IP sem software adicional. As versões diferentes de AIX têm o suporte ligeiramente diferente, portanto os usuários devem verificar antes de tentar cegamente unir máquinas AIX.
Para grandes sistemas como computadores centrais, IBM tem 3.172 Controlador Interligado, que se senta entre o computador central e uma rede. Os 3172 são uma caixa grande que trata o tráfego de alta velocidade entre um canal de computador central e a rede, desfazendo-se do processamento do aspecto de comunicações do processador de computador central. Pode unir-se a Ethernet ou redes anulares simbólicas e pelo software adicional a DECnet de DEZEMBRO.
Os computadores centrais de IBM que dirigem MVS ou VM podem dirigir o software TCP/IP apropriadamente chamado de MVS e TCP/IP de VM. Estes produtos fornecem o acesso de outras máquinas que dirigem TCP/IP para acessar o sistema operacional de computador central remotamente, normalmente sobre uma LAN. O software permite à máquina de chamada (o cliente em um esquema de cliente/servidor) atuar como um terminal de 3270 séries a MVS ou VM. O FTP fornece-se para transferências de arquivos com a conversão automática de EBCDIC a ASCII. Uma interface para PROFS está disponível. Ambos produtos de software TCP/IP apoiam SMTP do correio eletrônico.
A LAN é um objetivo óbvio de TCP/IP, porque TCP/IP ajuda a resolver muitos problemas de ligação entre hardware diferente e plataformas de software. Para dirigir TCP/IP sobre uma rede, a rede existente e o software de camada de transporte devem substituir-se com TCP/IP, ou os dois devem fundir-se em conjunto em alguma maneira para que o protocolo de LAN possa transportar a informação TCP/IP dentro do seu protocolo existente (encapsulation).
Qualquer solução toma-se para a camada mais baixa, uma interface de camada mais alta também deve desenvolver-se, que reside no equivalente da camada de conexão de dados, que se comunica entre as aplicações de camada mais altas e o hardware. Esta interface permite às camadas mais altas ser independentes do hardware usando TCP/IP, que muitos sistemas operacionais de LAN populares não são atualmente capazes de reclamar.
Três interfaces (que se mencionaram antes hoje) estão atualmente no uso comum. A interface de Motorista de Pacote foi a primeira interface desenvolvida para encontrar estas necessidades. 3Com a Corporação e Microsoft desenvolveram Network Driver Interface Specification (NDIS) de OS/2 e 3Com's ligação em rede de software. NDIS fornece um driver para comunicar-se com o hardware de ligação em rede e um driver de protocolo que atua como a interface para as camadas mais altas. A Interface de Conexão de Dados Aberta de Novell (ODI) é semelhante a NDIS.
Para vendedor único, redes baseadas no PC, vário dedicaram pacotes TCP/IP estão disponíveis, como a LAN de Novell WorkPlace, projetado para permitir a qualquer sistema de NetWare unir-se a uma LAN usando um cartão de hardware de interface e um motorista de software.
Hoje comecei uma olhada detalhada na família de protocolo TCP/IP com o Protocolo de Internet. Cobri o que IP é e como faz a sua tarefa de datagramas passantes entre máquinas. A construção do datagrama IP e o formato da cabeçada IP mostram-se detalhadamente. A construção da cabeçada IP é importante para muitos membros de protocolo de família TCP/IP, portanto pode usar este conhecimento em capítulos posteriores. Também olhei para Internet Control Message Protocol (ICMP), um aspecto importante do sistema TCP/IP.
O seguinte capítulo move-se para a camada seguinte e mais alta na arquitetura em camadas TCP/IP e olha para Transmission Control Protocol (TCP). Também olho para User Datagram Protocol (UDP) relacionado. TCP e UDP formam a base de todos os protocolos TCP/IP.
Porque a cabeçada IP tem um Tempo para Viver o campo?
O modo mais fácil de responder isto é considerar o que aconteceria sem o campo. Um datagrama com a informação defeituosa na cabeçada IP pode circular em volta de uma rede para sempre, expedindo de um portão ao outro à procura de um destino. Com um Tempo para Viver o campo, o número de pulos que o datagrama faz limita-se. Isto provou-se para ter um efeito importante sobre o tráfego de rede.
Dê uma descrição de uma oração de ICMP.
ICMP é um sistema de informação incorreto que se comunica entre dispositivos baseados em IP diferentes, fornecendo a informação sobre modificações de posição e dispositivos reprovados.
Quem é vizinho no sentido IP?
Os vizinhos unem-se por um portão. Não há restrição física na distância entre vizinhos. Contudo, todos os vizinhos compartilham portões.
Como um datagrama de mensagem ICMP se constrói?
A mensagem ICMP, que pode incluir a parte do datagrama que faz que a uma mensagem ICMP se gere, manda anexar uma cabeçada ICMP à frente dela. Isto então passa-se a IP, que o encapsula dentro de uma cabeçada IP. Finalmente, uma cabeçada de rede acrescenta-se quando o datagrama se envia sobre a rede.