Hoje começo a olhar para o sujeito de TCP/IP cobrindo alguma informação de fundo que precisará de pôr TCP/IP na perspectiva, e entender porque os protocolos TCP/IP se projetaram de maneira são. Este capítulo cobre um pouco de informação importante, inclusive o seguinte:
Poderia ser ansioso por começar com o âmago da questão dos protocolos TCP/IP ou descobrir como usar os serviços mais conhecidos como FTP e Telnet. Se tem uma exigência específica de satisfazer (tal como como transferir um arquivo de um sistema ao outro), por todos os meios use o Índice para encontrar a seção que quer. Mas se quiser entender realmente TCP/IP, precisará de passar com dificuldade pelo material neste capítulo. Não se complica, embora haja vários sujeitos a ser cobertos. Afortunadamente, nenhum dele necessita a comemoração; mais muitas vezes do que não é uma matéria de preparar o terreno para algo mais que discuto na próxima semana mais o menos. Por isso não se torne demasiado dominado por este capítulo!
Isto é um livro sobre uma família de protocolos chamados TCP/IP, então, por que preocupação que olha para sistemas abertos e padrões em absoluto? Principalmente porque TCP/IP cresceu fora da necessidade de desenvolver um procedimento de comunicações estandardizado que se usaria inevitavelmente em várias plataformas. A necessidade de um padrão e aquela que esteve prontamente disponível para cada um (daqui aberto), foram vitalmente importantes para o êxito de TCP/IP. Por isso, um pequeno contexto ajuda a pôr o desenho de TCP/IP na perspectiva.
O que é mais importante, os sistemas abertos tornaram-se de rigueur no mercado competitivo atual. O sistema aberto do termo troca-se em volta por muitas pessoas como uma solução de todos os problemas (para substituir-se ocasionalmente pelo termo cliente/servidor), mas nenhum termo se usa normalmente propriamente ou se entende pelas pessoas que jorram sobre eles. Entender o que um sistema aberto realmente é e o que contém leva a uma melhor consciência do papel de TCP/IP em uma rede e através de grandes interredes como a Internet.
Em uma veia semelhante, o uso de padrões assegura que um protocolo como TCP/IP é o mesmo em cada sistema. Isto significa que o seu PC pode falar com um mini-computador que dirige TCP/IP sem tradução especial ou rotinas de conversão. Significa que uma rede inteira de hardware diferente e sistemas operacionais pode trabalhar com os mesmos protocolos de rede. O desenvolvimento de um padrão não é um processo trivial. Muitas vezes um padrão único implica mais que um documento único que descreve um sistema de software. Um padrão muitas vezes implica a relação mútua de muitos protocolos diferentes, como faz TCP/IP. Saber as interações entre TCP/IP e outros componentes de um sistema de comunicações é importante para configuração própria e otimização, e assegurar que todos os serviços dos quais precisa estão disponíveis e intertrabalham propriamente.
Há muitas definições de sistemas abertos, e uma definição única, concisa com que todo o mundo está feliz é distante de aceitar-se. Para a maior parte de pessoas, um sistema aberto define-se melhor livremente como um para o qual a arquitetura não é um segredo. A descrição da arquitetura publicou-se ou está prontamente disponível para cada um que quer construir produtos da plataforma de software ou um hardware. Esta definição de um sistema aberto aplica-se igualmente bem a hardware e software.
Quando mais que um vendedor único começa a produzir produtos de uma plataforma, os clientes têm uma escolha. Você não gosta em particular do software de monitorização de rede de software Nocrash? Nenhum problema, porque o produto de software de FaultFree corre no hardware de Nocrash, e você gosta da sua interface de fantasia muito melhor. Precisa de uma parte dianteira gráfica mais colorida ao seu PC Whizbang do que aquele que Whizbang fornece? Carregue um do software Super pela Internet, e trabalha perfeitamente. A ideia primária, naturalmente, é um movimento longe de plataformas proprietárias àquela que é multivendedor.
Há uma década, os sistemas abertos foram praticamente não existentes. Cada fabricante de hardware tinha uma linha de produtos, e atou-se praticamente àquele fabricante de todo o seu software e necessidades de hardware. Algumas companhias aproveitaram-se do mercado preso, cobrando preços ultrajantes ou forçando configurações não desejadas nos seus clientes. A vaga larga do ressentimento cresceu ao ponto que os clientes começaram a forçar a questão. A falta de escolha no software e compras de hardware é porque vário mini-computador dedicado e as companhias de computador central abriram falência ou tiveram de aceitar princípios de sistema abertos: os seus clientes cevaram-se com a confiança em um vendedor único. Um bom exemplo de uma companhia que fez a adaptação é Digital Equipment Corporation (DEC). Moveram-se de um sistema operacional proprietário para os seus mini-computadores VMS a um sistema operacional aberto UNIX-padrão. Fazendo isto, guardaram os seus clientes felizes, e venderam mais máquinas. Isto é uma das razões primárias o DEZEMBRO ainda está no negócio hoje.
UNIX é um exemplo clássico de uma plataforma de software aberta. UNIX esteve em volta durante 30 anos. O texto fonte do sistema operacional UNIX pôs-se à disposição de cada um que o quis, quase da partida. O texto fonte de UNIX entende-se bem e fácil trabalhar com, o resultado de 30 anos de desenvolvimento e melhora. UNIX pode transportar-se em diagonal para continuar praticamente qualquer plataforma de hardware, eliminando todas as dependências proprietárias. A atração de UNIX não é as características do próprio sistema operacional mas simplesmente que um usuário UNIX pode dirigir o software de outras plataformas UNIX, que os arquivos são compatíveis de um sistema UNIX com o outro (exceto formatos de disco), e que uma grande variedade de vendedores vende produtos por UNIX.
O crescimento de UNIX empurrou os grandes fabricantes de hardware ao princípio de sistemas aberto, resultando na maior parte de fabricantes que autorizam o direito de produzir uma versão UNIX do seu próprio hardware. Este passo deixou clientes combinar sistemas de hardware diferentes em redes maiores, toda a gerência UNIX e colaboração. Os usuários podem mover-se entre máquinas quase transparentemente, ignorante da plataforma de hardware real foram ligados. Os sistemas abertos, originalmente da importância principal só às maiores corporações e governos, são agora um elemento-chave em até a estratégia de computador da companhia mais pequena.
Embora UNIX seja um trabalho protegido por direitos autorais agora possuído por X/Open, os detalhes do sistema operacional publicaram-se e estão prontamente disponíveis para qualquer desenvolvedor que quer produzir aplicações ou hardware que funcionam com o sistema operacional. UNIX é único neste aspecto.
A ligação em rede de sistema aberta do termo significa muitas coisas, dependendo de quem pergunta. Na sua definição mais larga, a ligação em rede de sistema aberta refere-se a uma rede baseada em um protocolo bem conhecido e entendido (como TCP/IP) que manda publicar os seus padrões e prontamente disponível para cada um que quer usá-los. O sistema aberto que transmite em rede também se refere ao processo de transmitir sistemas abertos em rede (hardware machaine-específico e software) utilização de um protocolo de rede. É fácil ver porque as pessoas querem a ligação em rede de sistemas aberta, entretanto. Três serviços usam-se largamente e prestam contas da percentagem mais alta do tráfego de rede: transferência de arquivos, correio eletrônico e senha de entrada remota. Sem ligação em rede de sistemas aberta, fundando algum destes três serviços seria um pesadelo.
As transferências de arquivos permitem a usuários compartilhar arquivos rapidamente e eficientemente, sem duplicação excessiva ou assuntos com o método de transporte. As transferências de arquivos de rede são muito mais rápidas do que um mensageiro noturno que cruza o país, e normalmente mais rápido do que a cópia de um arquivo em um disco e transporte dele através do quarto. A transferência de arquivos também é extremamente conveniente, que não só agrada usuários mas também elimina retardamentos esperando pelo material. Um sistema aberto comum que governa transferências de arquivos significa que qualquer incompatibilidade entre as duas máquinas que transferem arquivos pode superar-se facilmente.
O correio eletrônico apanhou cogumelos a um serviço fenomenalmente grande, não somente dentro de um negócio único mas no mundo inteiro. A Internet transporta milhões de mensagens de pessoas em governo, indústria privada, instituições de educação e interesses privados. O correio eletrônico é barato (nenhum papel, envelope ou batida de pé) e rápido (no mundo durante aproximadamente 60 segundos). Também é uma extensão óbvia do mundo baseado em computador no qual trabalhamos. Sem um sistema de correio aberto, não teria em nenhuma parte perto das capacidades das quais agora gosta.
Finalmente, as senhas de entrada remotas permitem a um usuário que é baseado em um sistema para unir-se por uma rede a qualquer outro sistema que o aceita como um usuário. Isto pode estar no seguinte grupo de trabalho, o seguinte estado, ou em outro país. As senhas de entrada remotas permitem a usuários aproveitar-se de determinado hardware e software em outra posição, bem como dirigir aplicações em outra máquina. Mais uma vez, sem um padrão aberto, isto seria quase impossível.
Para entender protocolos de ligação em rede, é útil saber um pouco sobre redes. Uma olhada rápida para as arquiteturas de rede mais comuns ajudará depois neste livro quando ler sobre operações de rede e encaminhamento. O termo rede normalmente significa o grupo de computadores e peripherals (impressoras, moduladores, cartógrafos, scanners, e assim por diante) que se unem em conjunto por algum meio. A conexão pode ser direta (por um fio) ou indireta (por um modulador). Os dispositivos diferentes na rede comunicam-se um com outro por um conjunto de regras predestinado (o protocolo).
Os dispositivos em uma rede podem estar no mesmo quarto ou espalhados por um edifício. Podem separar-se por muitas milhas por meio do uso de linhas telefônicas dedicadas, microonda ou um sistema semelhante. Podem até espalhar-se no mundo, novamente unir-se por um meio de comunicações remoto. O leiaute da rede (os dispositivos reais e a maneira na qual se unem um a outro) chama-se a topologia de rede.
Normalmente, se os dispositivos em uma rede estão em uma posição única como um edifício ou um grupo de quartos, chamam-nos uma rede local ou LAN. a LAN Normalmente tem todos os dispositivos na rede unida por um tipo único do fio de rede. Se os dispositivos se espalharem largamente, tal como em edifícios diferentes ou cidades diferentes, fundam-se normalmente em vária LAN que se junta em conjunto em uma estrutura maior chamada uma rede de longa distância, ou PÁLIDA. Um PÁLIDO compõe-se de duas ou mais LAN. Cada LAN tem o seu próprio fio de rede que une todos os dispositivos naquela LAN. A LAN junta-se em conjunto por outro método de conexão, linhas telefônicas muitas vezes de alta velocidade ou fios de rede muito rápido dedicados chamados espinhas dorsais, que discuto durante um momento.
Um ponto último sobre WANs: muitas vezes tratam-se como uma entidade única com objetivos organizacionais. Por exemplo, a Empresa de software de ALFABETO poderia ter ramos em quatro cidades diferentes, com uma LAN em cada cidade. A quatro LAN junta-se em conjunto por linhas telefônicas de alta velocidade. Contudo, pelo que a Internet e cada um do lado de fora da Empresa de software de ALFABETO se preocupem, o software de ALFABETO PÁLIDO é uma entidade única. (Tem um nome de domínio único da Internet. Não se incomode se não faz conhecido o que um domínio é neste momento; refere-se a uma entidade única com objetivos organizacionais na Internet, como verá depois.)
Os trabalhos de TCP/IP através da LAN e WANs e há vários aspectos importantes de LAN e topologia PÁLIDA sobre a qual deve saber. Pode começar com a LAN e olhar para a sua topologia. Embora haja muita topologia da LAN, três topologia é dominante: ônibus, anel e cubo da roda.
A rede de ônibus é a mais simples, compreender um caminho de comunicações principal único com cada dispositivo anexado ao fio principal (ônibus) por um dispositivo chamou a caixa de ligação ou um transceptor. O ônibus também se chama uma espinha dorsal porque se parece com uma espinha humana com costelas que emanam dele. De cada transceptor no ônibus, outro fio (muitas vezes muito curto) corre ao adaptador de rede do dispositivo. Um exemplo de uma rede de ônibus mostra-se na Figura 1.1.
A figura 1.1. Uma esquemática de uma rede de ônibus mostrando a espinha dorsal com transceptores que levam a dispositivos de rede.
A vantagem primária de uma rede de ônibus consiste em que leva em conta um ônibus de alta velocidade. Outra vantagem da rede de ônibus consiste em que é normalmente imune a problemas com qualquer placa de rede única dentro de um dispositivo na rede. Isto é porque o transceptor permite o tráfego pela espinha dorsal se um dispositivo se anexa à caixa de ligação ou não. Cada fim do ônibus termina-se com um bloco de resistores ou um dispositivo elétrico semelhante para marcar o fim do fio eletricamente. Cada dispositivo no caminho tem um número de identificação especial ou endereço, que deixa o dispositivo saber que a informação de entrada é para aquele dispositivo.
Uma rede de ônibus é raramente um fio direto. Em vez disso, torce-se normalmente em volta de paredes e edifícios como necessário. Realmente tem um caminho único de um fim ao outro, com cada fim terminado de algum modo (normalmente com um resistor). A figura 1.1 mostra uma representação lógica da rede, significando que simplificou a aparência física real da rede em um esquemático com linhas diretas e nenhuma verdadeira escala às conexões. Uma representação física da rede mostraria como atravessa paredes, em volta de escrivaninhas, e assim por diante. A maior parte de dispositivos na rede de ônibus podem enviar ou receber dados ao longo do ônibus empacotando uma mensagem com o endereço do recipiente desejado.
Uma variação da topologia de rede de ônibus encontra-se em muita pequena LAN que o fio Thin Ethernet de uso (que parece ao fio coaxial de televisão) ou fio de par torcido (que se parece com fios telefônicos). Este tipo da rede compõe-se de um comprimento do fio coaxial que cobras da máquina à máquina. Diferentemente da rede de ônibus na Figura 1.1, não há transceptores no ônibus. Em vez disso, cada dispositivo une-se no ônibus diretamente usando um conector T-shaped no cartão de interface de rede, muitas vezes usar um conector chamou um BNC. O conector une a máquina aos dois vizinhos por dois fios, um a cada vizinho. Nos fins da rede, um resistor simples acrescenta-se a um lado do T-conector para terminar a rede eletricamente.
Um esquemático deste tipo da rede mostra-se na Figura 1.2. Cada dispositivo de rede manda anexar um T-conector ao cartão de interface de rede, levando aos seus dois vizinhos. Os dois fins do ônibus terminam-se com resistores.
A figura 1.2. Uma esquemática de uma rede de ônibus de máquina a máquina.
Esta máquina a máquina (também chamado par a par) rede não é capaz de segurar as velocidades mais altas da rede de ônibus baseada na espinha dorsal, principalmente por causa do meio do fio de rede. Uma rede de espinha dorsal pode usar fios muito de alta velocidade como ótica de fibras, com o mais pequeno (e mais devagar) fios de cada transceptor ao dispositivo. Uma rede de máquina a máquina constrói-se normalmente usando o par torcido ou o fio coaxial porque estes fios são muito mais baratos e mais fáceis trabalhar com. Até há pouco, as redes de máquina a máquina limitaram-se a uma quantidade tratada de aproximadamente 10 Mbps (megabites por segundo), embora os desenvolvimentos recentes chamados 100VG AnyLAN e Ethernet Rápida permitam 100 Mbps neste tipo da rede.
A vantagem desta rede de ônibus de máquina a máquina é a sua simplicidade. Acrescentar novas máquinas à rede significa instalar uma placa de rede e unir a nova máquina em um lugar lógico na espinha dorsal. Uma vantagem principal da rede de ônibus de máquina a máquina também é o seu preço: é provavelmente a topologia de LAN de preço mais baixa disponível. O problema com este tipo da rede de ônibus consiste em que se uma máquina se tomar do fio de rede ou maus funcionamentos de cartão de interface de rede, a espinha dorsal se quebra e deve atar-se em conjunto novamente com um saltador de algum tipo ou a rede poderia deixar de funcionar propriamente.
Uma topologia de rede anular muitas vezes desenha-se como o seu nome sugere, formado como um anel. Uma rede anular típica esquemática mostra-se na Figura 1.3. Poderia ter ouvido de uma rede anular simbólica antes, que é uma rede de topologia anular. Poderia desapontar-se não encontrar nenhuma arquitetura anular física em uma rede anular, entretanto.
A figura 1.3. Uma esquemática de uma rede anular.
Apesar da suposição quase automática que uma rede anular tem uma espinha dorsal com os fins do fio juntado para formar um laço, não há verdadeiro anel de telegrafar em absoluto. O nome anular deriva da construção da unidade de controle central.
O termo anel é um erro de nome porque as redes anulares não têm um fio interminável como uma rede de ônibus com os dois terminators juntados em conjunto. Em vez disso, o anel refere-se ao desenho da unidade central que trata a passagem de mensagem da rede. Em uma rede anular simbólica, a unidade de controle central chama-se uma Unidade de Acesso a Meios de comunicação ou MAU. O MAU tem um circuito anular dentro dele (para o qual a topologia de rede se denomina). O anel dentro do MAU serve do ônibus de dispositivos para obter mensagens.
Uma rede de cubo da roda usa um fio principal muito como a rede de ônibus, que se chama o painel traseiro. A topologia de cubo da roda mostra-se na Figura 1.4. Do painel traseiro, o grupo de fios leva a um cubo da roda, que é uma caixa que contém vários portos nos quais os dispositivos se tapam. Os fios a um ponto de conexão muitas vezes chamam-se baixas, porque caem do painel traseiro aos portos.
A figura 1.4. Uma esquemática de uma rede de cubo da roda.
As redes de cubo da roda podem ser muito grandes, usando uma fibra de alta velocidade o painel traseiro ótico e Ethernet ligeiramente mais lenta caem até cubos da roda dos quais um grupo de trabalho pode apoiar-se. A rede de cubo da roda também pode ser pequena, com um par de cubos da roda que apoiam alguns dispositivos unidos em conjunto por fios Ethernet padrão. A rede de cubo da roda é vendável (significação que pode começar pequeno e expandir-se como precisa a), que é parte da sua atração.
As redes de cubo da roda ficaram populares para grandes instalações, em parte porque são fáceis estabelecer-se e manter. Também podem ser o sistema menos caro em muitas instalações maiores, que acrescenta à sua atração. O painel traseiro pode estender-se através de uma distância considerável como uma rede de ônibus, ao passo que os portos ou pontos de conexão, se agrupam normalmente em um jogo colocado em uma caixa ou lista. Podem haver muitas listas ou as caixas de conexão anexadas ao painel traseiro.
Como mencionei antes, a LAN pode combinar-se em uma grande entidade chamada um PÁLIDO. WANs compõem-se normalmente da LAN juntada em conjunto por uma conexão de alta velocidade (como uma linha telefônica ou dedicou o fio). Ao entrar em cada LAN, uma ou várias máquinas atuam como a conexão entre a LAN e PÁLIDO: estes chamam-se portões. Falo sobre portões e os tipos de portões usados em um PÁLIDO mais detalhadamente em muitos dos dias seguintes, mas por agora só tem de saber que um portão é a interface entre uma LAN e um PÁLIDO. O mesmo solicita qualquer LAN que acessa a Internet: uma máquina normalmente atua como o portão da LAN à Internet (que é realmente somente um PÁLIDO muito grande).
Muitos termos outros do que o portão também se usam. Ouvirá termos como encaminhador e ponte. São todos os portões, mas executam tarefas ligeiramente diferentes. Para entender os seus papéis (que menciono muitas vezes no material da próxima semana), tem de tomar uma olhada rápida para como WANs se expõem.
A LAN pode atar-se a um PÁLIDO por um portão que trata a passagem de dados entre a LAN e espinha dorsal PÁLIDA. Em um leiaute simples, um encaminhador usa-se para executar esta função. Isto mostra-se na Figura 1.5.
A figura 1.5. Um encaminhador une uma LAN à espinha dorsal.
Outro dispositivo de portão, chamado uma ponte, usa-se para unir a LAN usando o mesmo protocolo de rede. As pontes só usam-se quando o mesmo protocolo de rede (como TCP/IP) está em amba a LAN. A ponte não se preocupa que meios de comunicação físicos se usa. As pontes podem unir a LAN de par torcido à LAN coaxial, por exemplo, ou atuar como uma interface para uma fibra a rede ótica. Enquanto o protocolo de rede é o mesmo, a ponte funciona propriamente.
Se duas ou mais LAN se implicar em uma organização e há possibilidade de muito tráfego entre eles, é melhor unir a duas LAN diretamente com uma ponte em vez de carregar a espinha dorsal com o transversal tráfego. Isto mostra-se na Figura 1.6.
A figura 1.6. Usar uma ponte para unir duas LAN.
Em uma configuração usando pontes entre a LAN, o tráfego de uma LAN ao outro pode enviar-se pela ponte em vez de para a espinha dorsal, fornecendo a melhor realização. Para serviços como Telnet e FTP, a diferença de velocidade entre utilização de uma ponte e passagem de um encaminhador para uma espinha dorsal pesadamente usada pode ser significante.
WANs são um sujeito importante, e olho para eles novamente mais detalhadamente no Dia 13, "Arranjando-me e Investigando TCP/IP".
Suponha que tem de escrever um programa que fornece funções de ligação em rede a cada máquina na sua LAN. Escrever um pacote de software único que realiza cada tarefa necessitada para comunicações entre computadores diferentes seria uma tarefa de pesadelo. À parte da necessidade de enfrentar as arquiteturas de hardware diferentes, simplesmente escrevendo o código de todas as aplicações deseja resultaria em um programa que esteve longe demasiado grande para realizar ou manter.
A divisão de todas as exigências em grupos de objetivo semelhante é uma aproximação razoável, muito como um programador quebra o código em pedaços lógicos. Com comunicações de sistemas abertas, os grupos são bastante óbvios. Um grupo trata com o transporte de dados, o outro com a embalagem de mensagens, o outro com aplicações de usuário final, e assim por diante. Chamam cada grupo de tarefas relacionadas uma camada.
As camadas de uma arquitetura estão destinadas para ser entidades autônomas, independentes. Normalmente não podem executar nenhuma tarefa observável sem interagir com outras camadas, mas de um ponto de vista de programação são reservados.
Naturalmente, alguma passagem da funcionalidade deve esperar-se, e propuseram-se várias abordagens diferentes à mesma divisão de camadas de um protocolo de rede. Aquele que ficou adotado como um padrão é o Modelo de referência de Ligação de Sistemas Aberto (que se discute mais detalhadamente na seguinte seção). O Modelo de referência OSI (OSI-RM) usa sete camadas, como mostrado na Figura 1.7. A arquitetura TCP/IP é semelhante mas implica só cinco camadas, porque combina um pouco da funcionalidade OSI em duas camadas em uma. Por agora, entretanto, considere o modelo OSI de sete camadas.
A figura 1.7. O Modelo de referência OSI mostrando as sete camadas.
A aplicação, a apresentação e as camadas de sessão orientam-se à aplicação todos nisto são responsáveis por apresentar a interface aplicada para o usuário. Todos os três são independentes das camadas em baixo deles e são totalmente esquecidos dos meios pelos quais os dados vêm à aplicação. Estas três camadas chamam-se as camadas superiores.
Quatro camadas mais baixas tratam com a transmissão de dados, cobrindo a embalagem, encaminhamento, verificação e transmissão de cada grupo de dados. As camadas mais baixas não se incomodam com o tipo de dados que recebem ou enviam à aplicação, mas tratam simplesmente com a tarefa do envio dele. Não se diferenciam entre as aplicações diferentes de nenhum modo.
As seções seguintes explicam cada camada para ajudá-lo a entender a arquitetura do OSI-RM (e contraste posterior ele com a arquitetura de TCP/IP).
A camada de aplicação é a interface de usuário final para o sistema OSI. É onde as aplicações, como correio eletrônico, leitores de notícias de USENET, ou módulos de exposição de banco de dados, residem. A tarefa da camada de aplicação é expor a informação recebida e enviar os novos dados do usuário às camadas mais baixas.
Em aplicações distribuídas, como sistemas de cliente/servidor, a camada de aplicação é onde a aplicação cliente reside. Comunica-se pelas camadas mais baixas ao servidor.
A tarefa de camada de apresentação é isolar as camadas mais baixas do formato de dados da aplicação. Converte os dados da aplicação em um formato comum, muitas vezes chamado a representação canônica. A camada de apresentação processa dados dependentes da máquina da camada de aplicação em um formato independente da máquina das camadas mais baixas.
A camada de apresentação é onde formatos de arquivo e até os formatos de caráter (ASCII e EBCDIC, por exemplo) se perdem. A conversão do formato de dados aplicado realiza-se por uma "linguagem de programação de rede comum" (como se chama nos documentos de Modelo de referência OSI) que tem um formato estruturado.
A camada de apresentação faz o reverso de dados de entrada. Converte-se do formato comum em formatos específicos para a aplicação, baseados no tipo da aplicação para a qual a máquina tem instruções. Se os dados entram sem reformatar instruções, a informação não poderia reunir-se na maneira correta da aplicação do usuário.
A camada de sessão organiza e sincroniza a troca de dados entre processos de aplicação. Trabalha com a camada de aplicação para prover conjuntos de dados simples chamados sincronização aponta que avisam uma aplicação como a transmissão e a recepção de dados progridem. Em termos simplificados, podem pensar na camada de sessão como camada de controle de fluxo e uma regulação de tempo.
A camada de sessão implica-se na coordenação de comunicações entre aplicações diferentes, deixando cada um saber a posição do outro. Um erro em uma aplicação (se na mesma máquina ou por todo o país) trata-se pela camada de sessão para deixar a aplicação de recepção saber que o erro ocorreu. A camada de sessão pode resincronizar aplicações que se unem atualmente um a outro. Isto pode ser necessário quando as comunicações se interrompem temporariamente, ou quando um erro ocorreu o que resulta na perda de dados.
A camada de transporte, como o seu nome sugere, projeta-se para fornecer a "transferência transparente de dados de um fim de fonte sistema aberto a um fim de destino sistema aberto", segundo o Modelo de referência OSI. A camada de transporte estabelece, mantém e termina comunicações entre duas máquinas.
A camada de transporte é responsável por assegurar que os dados enviaram a jogos os dados recebidos. Este papel de verificação é importante na asseguração que os dados se enviam corretamente, com reenviar se um erro se descobriu. A camada de transporte dirige o envio de dados, determinando a sua ordem e a sua prioridade.
A camada de rede fornece o encaminhamento físico dos dados, determinando o caminho entre as máquinas. A camada de rede trata todas estas questões de encaminhamento, aliviando as camadas mais altas desta questão.
A camada de rede examina a topologia de rede para determinar a melhor via para enviar uma mensagem, bem como compreensão de sistemas de revezamento. É a única camada de rede que envia uma mensagem da fonte para visar a máquina, dirigindo outros pedaços de dados que passam pelo sistema no seu caminho a outra máquina.
Os dados ligam a camada, segundo o papel de referência OSI, "provê o controle da camada física, e descobre e possivelmente corrige erros que podem ocorrer". Na natureza prática, a camada de conexão de dados é responsável por corrigir erros de transmissão induzidos durante a transmissão (ao contrário de erros nos próprios dados aplicados, que se tratam na camada de transporte).
A camada de conexão de dados preocupa-se normalmente com a interferência de sinal nos meios de comunicação de transmissão físicos, se pelo arame de cobre, fibra fio ótico ou microonda. A interferência é comum, resultando de muitas fontes, inclusive raios cósmicos e interferência magnética desgarrada de outras fontes.
A camada física é a camada mais baixa do modelo OSI e trata com os "meios mecânicos, elétricos, funcionais, e processuais" necessitados para a transmissão de dados, segundo a definição OSI. Isto é realmente a instalação elétrica ou outra forma de transmissão.
Quando o modelo OSI se desenvolvia, muito assunto tratou com duas camadas mais baixas, porque são, na maioria dos casos, inseparáveis. O mundo real trata a camada de conexão de dados e a camada física como uma camada combinada, mas a definição OSI formal estipula objetivos diferentes para cada um. (TCP/IP inclui a conexão de dados e camadas físicas como uma camada, reconhecendo que a divisão é mais acadêmica do que prático.)
Tanto OSI como TCP/IP arraigam-se em descrições formais, apresentadas como uma série de documentos complexos que definem todos os aspectos dos protocolos. Para definir OSI e TCP/IP, vários novos termos desenvolveram-se e introduziram-se no uso; alguns (pela maior parte termos de OSI) são bastante excepcionais. Poderia encontrar que o termo OSI-fala usado para referir-se a algumas destas definições bastante grotescas, muito como o legalês se refere a termos legais.
Para entender melhor os detalhes de TCP/IP, é necessário tratar com estes termos agora. Não verá todos estes termos neste livro, mas poderia encontrá-los lendo manuais ou documentação online. Por isso, todos os termos principais são cobertos aqui.
Muitos dos termos usados tanto por OSI como por TCP/IP poderiam parecer ter múltiplas significações, mas há uma tentativa definida de fornecer uma definição única, consistente para cada palavra. Infelizmente, a comunidade de usuário é lenta para adotar a nova terminologia, então há um montante considerável da confusão.
Para transferir dados efetivamente, muitos experimentos mostraram que criar um pedaço uniforme de dados é melhor do que o envio de carateres isoladamente ou em grupos classificados largamente variados. Normalmente estes pedaços de dados têm alguma informação à frente deles (a cabeçada) e às vezes um indicador no fim (o trailer). Estes pedaços de dados chamam-se pacotes na maior parte de sistemas de comunicações síncronos.
O montante de dados em um pacote e a composição da cabeçada pode modificar-se dependendo do protocolo de comunicações bem como algumas limitações de sistema, mas o conceito de um pacote sempre se refere ao jogo inteiro (inclusive cabeçada e trailer). O termo pacote muitas vezes usa-se na indústria de computador, às vezes quando não deve ser.
Muitas vezes vê o pacote de palavra usado como uma referência genérica para qualquer grupo de dados empacotados para a transmissão. Como os dados de uma aplicação passam pelas camadas da arquitetura, cada um acrescenta mais informação. O termo pacote usa-se frequentemente em cada etapa. Trate o termo pacote como uma generalização de quaisquer dados com a informação adicional, em vez do resultado específico da adição de só uma camada de cabeçada e trailer. Isto vai contra os esforços tanto de OSI como das administrações TCP, mas ajuda a guardar a sua sanidade mental intata!
Um subsistema é o coletivo de uma determinada camada através de uma rede. Por exemplo, se 10 máquinas se unem em conjunto, cada um que dirige o modelo OSI de sete camadas, as 10 camadas de aplicação são o subsistema aplicado, as 10 camadas de conexão de dados são o subsistema de conexão de dados, e assim por diante. Como já poderia ter deduzido, com o Modelo de referência OSI há sete subsistemas.
É inteiramente possível (e até provavelmente) que todos os componentes individuais em um subsistema não serão ativos um dia. Usando o exemplo de 10 máquinas novamente, só três poderiam ter a camada de conexão de dados de fato ativa em qualquer momento a tempo, mas a cumulativa de todas as máquinas compõe o subsistema.
Uma camada pode ter-lhe mais de uma parte. Por exemplo, a camada de transporte pode ter rotinas que verificam somas de controle bem como rotinas que tratam o reenvio de pacotes que não transferiram corretamente. Não todas estas rotinas são ativas ao mesmo tempo, porque não poderiam necessitar-se em qualquer momento. As rotinas ativas, entretanto, chamam-se entidades. A entidade de palavra adotou-se para encontrar um termo único que não pode confundir-se com outro termo de computador como módulo, processo ou tarefa.
As notações N, N+1, N+2, e assim por diante usam-se para identificar uma camada e as camadas que se relacionam a ela. Respeito à Figura 1.7, se a camada de transporte for camada N, a camada física é N–3 e a camada de apresentação é N+2. Com OSI, N sempre tem um valor de 1 para 7 inclusivamente.
Uma razão esta notação adotou-se foi permitir a escritores referir-se a outras camadas sem ter necessidade de escrever os seus nomes cada vez. Também faz diagramas de fluxo e diagramas de interações um pouco mais fáceis desenhar. Os termos N+1 e N–1 usam-se comumente tanto em OSI como em TCP das camadas em cima e em baixo da camada atual, respectivamente, como verá.
Para fazer coisas até mais confusas, muitos padrões OSI referem-se a uma camada na primeira carta do seu nome. Isto pode levar a um verdadeiro desordem do leitor casual, porque "S-entidade", e "camada "de 5 entidades" 5" todos se referem à camada de sessão.
Cada camada executa N-funções. As funções são as coisas diferentes que a camada faz. Por isso, as funções da camada de transporte são as tarefas diferentes que a camada fornece. Com a maior parte de objetivos neste livro, as funções e as entidades significam a mesma coisa.
Isto usa a estrutura de camada hierárquica para exprimir a ideia que uma camada fornece o grupo de facilidades à seguinte camada mais alta. Isto é razoável, porque a camada de aplicação espera que a camada de apresentação lhe forneça um jogo robusto, bem definido de facilidades. Em OSI-falam, (N+1) - as entidades assumem um jogo definido de N-facilidades da N-entidade.
O jogo inteiro de N-facilidades fornecidas (N+1) - entidades chama-se o N-serviço. Em outras palavras, o serviço é o jogo inteiro de N-funções fornecidas à seguinte camada mais alta. Os serviços poderiam parecer funções, mas há uma diferença formal entre os dois. Os documentos OSI não medem esforços para fornecer descrições detalhadas de serviços, com um "padrão de definição de serviço" de cada camada. Isto foi necessário durante o desenvolvimento do padrão OSI para que as tarefas diferentes implicadas no protocolo de comunicações possam destinar-se a camadas diferentes, e para que as funções de cada camada sejam tanto bem definidas como isoladas de outras camadas.
As definições de serviço desenvolvem-se formalmente da camada de fundo (física) para cima à camada superior. A vantagem desta aproximação consiste em que o desenho da camada N+1 pode ser baseado nas funções executadas na camada N, evitando duas funções que realizam a mesma tarefa em duas camadas adjacentes.
Um jogo inteiro de variações no nome de serviço desenvolveu-se para aplicar estas definições, algumas das quais estão no uso regular:
Um usuário de N-serviço é usuário de um serviço fornecido pela camada N ao seguinte mais alto (N+1) camada.
Um N-fornecedor-de-serviços é o jogo de N-entidades que se implicam no fornecimento do serviço de camada N.
Um ponto de acesso de N-serviço (muitas vezes abreviado ao N-SAP) é onde um N-serviço se fornece (N+1) - entidade pelo N-fornecedor-de-serviços.
Os dados de N-serviço são o pacote de dados trocados em um N-SAP.
As unidades de dados de N-serviço (N-SDUs) são as unidades individuais de dados trocados em um N-SAP (para que os dados de N-serviço se componham de N-SDUs).
Estes termos mostram-se na Figura 1.8. Outro termo comum é encapsulation, que é a adição da informação sobre controle a um pacote de dados. Os dados de controle contêm detalhes de endereçamento, somas de controle de detecção de erros e funções de controle de protocolo.
A figura 1.8. Os fornecedores de serviços e os usuários de serviço comunicam-se por pontos de acesso a serviço.
É importante lembrar-se de que todos estes termos se usam em uma descrição formal, porque uma língua formal é normalmente o único método para descrever apropriadamente algo tão complexo como um protocolo de comunicações. É possível, entretanto, ajustar estes termos em conjunto para que façam um pouco mais sentido quando os encontra. Um exemplo deve ajudar.
A camada de sessão tem o grupo de funções de sessão. Fornece o grupo de facilidades de sessão à camada acima dele, a camada de apresentação. A camada de sessão compõe-se de entidades de sessão. A camada de apresentação é usuário dos serviços fornecidos pela camada de sessão (camada 5). Uma entidade de apresentação é usuário dos serviços fornecidos pela camada de sessão e chama-se um usuário de serviço de apresentação.
O fornecedor de serviços de sessão é a coleção de entidades de sessão que se implicam ativamente em prover a camada de apresentação com os serviços da sessão. O ponto no qual o serviço de sessão se fornece à camada de apresentação é o ponto de acesso a serviço de sessão, onde os dados de serviço de sessão se enviam. Os bits individuais de dados nos dados de serviço de sessão chamam-se unidades de dados de serviço de sessão.
Confuso? Acredite ou não, daqui a pouco começará a sentir-se mais cômodo com estes termos. Os importantes para saber agora são que uma camada provê grupo de entidades por um acesso a serviço apontam para a seguinte camada mais alta, que se chama o usuário de serviço. Os dados enviam-se em pedaços chamados dados de serviço, compostos de unidades de dados de serviço.
A comunicação entre dois partidos (se sobre um telefone, entre camadas de uma arquitetura, ou entre próprias aplicações) realiza-se em três etapas distintas: estabelecimento da conexão, transferência de dados e terminação de conexão.
A comunicação entre duas aplicações OSI na mesma camada é por filas à camada abaixo deles. Cada aplicação (mais propriamente chamou um usuário de serviço) tem duas filas, um para cada direção ao fornecedor de serviços da camada abaixo de (que controla a camada inteira). Em OSI-falam, as duas filas provêem simultâneo (ou atômico) interações entre dois pontos de ação de N-serviço.
Os dados, chamados primitivos de serviço, põem-se em e recuperam-se da fila pelas aplicações (usuários de serviço). Um serviço primitivo pode ser um bloco de dados, um indicador que algo se necessita ou se recebe, ou um indicador de posição. Como com a maior parte de aspectos de OSI, um léxico desenvolveu-se para descrever as ações nestas filas:
Um pedido primitivo consiste em quando um serviço submete um serviço primitivo à fila (pelo N-SAP) solicitação de permissão de comunicar-se com outro serviço na mesma camada.
Uma indicação primitiva é o que o fornecedor de serviços na camada abaixo da aplicação de envio envia à aplicação de recepção desejada para deixá-la saber que a comunicação se deseja.
Uma resposta primitiva envia-se pela aplicação de recepção ao fornecedor de serviços de beneath's de camada para reconhecer a adjudicação de comunicações entre os dois usuários de serviço.
Uma confirmação primitiva envia-se do fornecedor de serviços à aplicação final para indicar que ambas as aplicações na camada em cima podem comunicar-se agora.
Um exemplo poderia ajudar a clarificar o processo. Suponha que duas aplicações na camada de apresentação queiram comunicar-se um com outro. Não podem fazer tão diretamente (segundo o modelo OSI), portanto devem atravessar a camada em baixo deles. Estes passos mostram-se na Figura 1.9.
A figura 1.9. Duas aplicações comunicam-se por SEIVAS usando primitivos.
A primeira aplicação envia um pedido primitivo ao fornecedor de serviços da camada de sessão e espera. O fornecedor de serviços de camada de sessão retira o pedido primitivo da fila vinda para casa da primeira aplicação e envia uma indicação primitiva à fila vinda para casa da segunda aplicação.
A segunda aplicação toma a indicação primitiva da sua fila ao fornecedor de serviços de sessão e decide aceitar o pedido na conexão enviando a uma resposta positiva costas primitivas pela sua fila à camada de sessão. Isto recebe-se pelo fornecedor de serviços de camada de sessão, e uma confirmação primitiva envia-se à primeira aplicação na camada de apresentação. Isto é um processo chamado serviço confirmado porque as aplicações esperam pela confirmação que as comunicações se estabelecem e prontas.
OSI também provê o serviço não confirmado, no qual um pedido primitivo se envia ao fornecedor de serviços, enviando a indicação primitiva à segunda aplicação. Os primitivos de confirmação e resposta não se enviam. Isto é uma espécie de "preparam-se, porque aqui vem se o quer ou não" comunicação, muitas vezes mencionada como enviam e rezam.
Quando dois usuários de serviço usam o serviço confirmado comunicar-se, consideram-se ligados. Duas aplicações falam um com outro, sabendo o que o outro faz com os dados de serviço. OSI refere-se ao estabelecimento e a manutenção da informação estatal entre os dois ou o fato que cada um sabe quando o outro envia ou recebendo. OSI chama isto orientado à conexão ou comunicações de modo da conexão.
A comunicação de Connectionless consiste em quando os dados de serviço se enviam independentemente, como com o serviço não confirmado. Os dados de serviço são reservados, possuindo tudo que um usuário de serviço de recepção tem de saber. Estes pacotes de dados de serviço muitas vezes chamam-se datagramas. A aplicação que envia o datagrama não tem nenhuma ideia quem recebe o datagrama e como se trata, e os usuários de serviço de recepção não têm nenhuma ideia quem o enviou (outro do que a informação que poderia conter-se dentro do próprio datagrama). OSI chama este connectionless-modo.
OSI (e TCP/IP) usam tanto sistemas unidos como connectionless entre camadas da sua arquitetura. Cada um tem os seus benefícios e implementações ideais. Todas estas comunicações estão entre aplicações (usuários de serviço) em cada camada, usando a camada abaixo de para comunicar-se. Há muitos usuários de serviço, e este processo continua todo o tempo. É bastante assombroso quando pensa nele.
As pessoas não duvidam da necessidade de regras em um jogo de tabuleiro. Se não teve regras, cada jogador pode estar jogando felizmente como os ajusta, mesmo que o seu jogo fosse compatível com aquele de outros jogadores. A existência de regras assegura que cada jogador joga o jogo de mesmo modo, que não poderia ser tanto divertimento como uma luta. Contudo, quando uma luta sobre ações de um jogador surge, as regras escritas claramente indicam quem tem razão. As regras são grupo de padrões nos quais um jogo se joga.
Os padrões previnem um surgimento de situação onde dois sistemas aparentemente compatíveis realmente não são. Por exemplo, há 10 anos quando CP/M foi o sistema operacional dominante, o disquete de 5,25 polegadas usou-se pela maior parte de sistemas. Mas o disquete de Kaypro II não pode ler-se por Osbourne I porque as pistas se expuseram em uma maneira diferente. Um programa de serviço pode converter entre os dois, mas que o extra passo foi um aborrecimento principal de usuários de máquina.
Quando o IBM PC se tornou a plataforma da escolha, o formato de 5,25 polegadas usado pelo IBM PC adotou-se por outras companhias para assegurar a compatibilidade de disco. O formato de IBM tornou-se um padrão de fato, um adotado por causa de pressões de mercado e exigência de cliente.
Criar um padrão no mundo de hoje não é uma matéria simples. Várias organizações dedicam-se ao desenvolvimento dos padrões em uma maneira completa, inequívoca. O mais importante destes é a Organização internacional para a Padronização, ou OIS (muitas vezes chamava a Organização de Padronização Internacional para ajustar o seu acrônimo, embora isto seja incorreto). OIS compõe-se de organizações de padrões de muitos países que tentam combinar o critério internacional. American National Standards Institute (ANSI), British Standards Institute (BSI), pele dos Alemães Institut Normung (ESTRONDO) e Association Francaise du Normalization (AFNOR) são todos os grupos de membro. A OIS desenvolveu o padrão de Open Systems Interconnection (OSI) que se discute em todas as partes deste livro.
Cada organização de padrões nacional pode criar um padrão daquele país, naturalmente. A meta de OIS, contudo, é combinar padrões mundiais. De outra maneira, a incompatibilidade pode existir o que não permitiria ao sistema de um país usar-se no outro. (Um exemplo disto é com sinais de televisão: os EU confiam em NTSC, ao passo que a Europa usa o COMPANHEIRO — sistemas que são incompatíveis um com outro.)
Curiosamente, a língua usada para a maior parte de padrões internacionais é inglesa, embora a maioria de participantes em um comitê de padrões não seja de países falantes de inglês. Isto pode causar bastante de confusão, especialmente porque a maior parte de padrões se formulam desajeitadamente em primeiro lugar.
A razão a maior parte de padrões implicam a língua desajeitada consiste em que descrever algo inequivocamente pode ser muito difícil, às vezes exigindo a criação de novos termos que o padrão define. Não só os conceitos devem definir-se claramente, mas o comportamento absoluto é necessário também. Com a maior parte de coisas a que os padrões aplicam, isto significa usar números e termos físicos para fornecer uma definição concreta. Definindo um 2x4 a parte da madeira serrada exige o uso de uma medição de algum tipo, e de mesmo modo a definição de termos de computador necessita matemáticas.
Simplesmente definir um método de comunicações, como TCP/IP, seria regularmente franco se não a complicação da definição dele para sistemas abertos. O uso de um sistema aberto acrescenta outra dificuldade porque todos os aspectos do padrão devem ser independentes da máquina. Imagine tentar definir um 2x4 sem usar uma medição é familiar com, como polegadas, ou se as polegadas se adotarem, seria difícil definir polegadas de um modo inequívoco (que de fato é o que acontece, porque a maior parte de unidades do comprimento se definem com respeito ao comprimento de onda de uma determinada espécie da luz coerente).
Os computadores comunicam-se por bits de dados, mas aqueles bits podem representar carateres, números ou algo mais. Os números podem ser números inteiros, frações ou representações octais. Novamente, deve definir as unidades. Pode ver que as complicações aumentam, um em cima do outro.
Para ajudar a definir um padrão, uma aproximação abstrata usa-se normalmente. Em caso de OSI, a significação (chamou a semântica) dos dados transferidos (a sintaxe abstrata) trata-se primeiro, e a representação exata dos dados na máquina (a sintaxe concreta) e os meios pelos quais se transfere (sintaxe de transferência) trata-se separadamente. A separação do resumo deixa os dados representar-se como uma entidade, sem assunto com o que realmente significa. Parece-se com pouco trato do seu carro como uma unidade em vez de um motor, transmissão, direção de roda, e assim por diante. A abstração dos detalhes a um total mais simples facilita transmitir a informação. ("O meu carro quebra-se" é abstrato, ao passo que "o fluido de direção de poder vazou tudo" é concreto.)
Para descrever sistemas abstratamente, é necessário ter uma língua que encontra o objetivo. A maior parte de corpos de padrões desenvolveram tal sistema. O mais comumente usado é a Notação de Sintaxe Abstrata de OIS Um, frequentemente encurtado a ASN.1. Ajusta-se especialmente para descrever a ligação em rede de sistemas aberta. Assim, não é surpreendente encontrar que usou extensivamente no OSI e descrições TCP. De fato, ASN.1 desenvolveu-se concorrentemente com os padrões OSI quando ficou necessário descrever funções de camada superior.
O conceito primário de ASN.1 é que todos os tipos de dados, apesar do tipo, tamanho, origem, ou objetivo, podem representar-se por um objeto que é independente do hardware, software de sistema operacional ou aplicação. O sistema ASN.1 define os conteúdos de uma cabeçada de protocolo de datagrama — o pedaço da informação no início de um objeto que descreve os conteúdos ao sistema. (As cabeçadas discutem-se mais detalhadamente na seção intitulada "Cabeçadas de Protocolo" depois neste capítulo.)
A parte de ASN.1 descreve a língua usada para descrever objetos e tipos de dados (como uma língua de descrição de dados na terminologia de banco de dados). Outra parte define as regras de codificação básicas que tratam com o movimento dos objetos de dados entre sistemas. ASN.1 define tipos de dados que se usam na construção de pacotes de dados (datagramas). Provê tanto tipos de dados estruturados como não estruturados, com uma lista de 28 tipos apoiados.
Demasiado não se preocupe com a aprendizagem de ASN.1 neste livro. Refiro-me a ele de passagem em só um par de lugares. É útil, entretanto, saber que a língua se fornece para a definição formal de todos os aspectos de TCP/IP.
Quando Agência de Projetos de Pesquisa Avançada (DARPA) se estabeleceu em 1980, um grupo formou-se para desenvolver o grupo de padrões da Internet. O grupo, chamado Internet Configuration Control Board (ICCB) reorganizou-se em Internet Activities Board (IAB) em 1983, cuja tarefa foi projetar, projetar e dirigir a Internet.
Em 1986, o IAB virou a tarefa de desenvolver os padrões de Internet a Internet Engineering Task Force (IETF), e a pesquisa de longo prazo destinou-se a Internet Research Task Force (IRTF). O IAB conservou a autorização final sobre algo proposto pelas duas forças de tarefa.
O passo último nesta saga foi a formação da Sociedade de Internet em 1992, quando o IAB se renomeou o Conselho de Arquitetura de Internet. Este grupo ainda é responsável por padrões existentes e futuros, informando ao conselho da Sociedade de Internet.
No fim de tudo isto, o que aconteceu durante o arrastar dos pés? Quase do começo, a Internet definiu-se como "uma colaboração internacional livremente organizada de redes autônomas, interligadas", que apoiaram comunicações de anfitrião de anfitrião "pela aderência voluntária para abrir protocolos e os procedimentos" definidos em um documento técnico chamaram os Padrões de Internet, RFC 1310,2. Aquela definição ainda se usa hoje.
O IETF continua trabalhando na refinação dos padrões usados para comunicações pela Internet por um número de grupos de trabalho, cada um dedicado a um aspecto específico da suite de protocolo de Internet total. Há grupos de trabalho dedicados a gestão de rede, segurança, serviços de usuário, encaminhamento e muitas outras coisas. É interessante que os grupos do IETF sejam consideravelmente mais flexíveis e eficientes do que aqueles de, digam, a OIS, cujos grupos de trabalho podem tomar anos para combinar um padrão. Em muitos casos, os grupos do IETF podem formar, criar uma recomendação e dispersar-se dentro de um ano mais o menos. Isto ajuda continuamente a refinar os padrões de Internet para refletir hardware que se modifica e capacidades de software.
Criar um novo padrão de Internet (que aconteceu com TCP/IP) segue um processo bem definido, mostrado esquematicamente na Figura 1.10. Começa com um pedido em comentário (RFC). Isto é normalmente um documento que contém uma proposta específica, às vezes nova e às vezes uma modificação de um padrão existente. RFCs distribuem-se largamente, tanto na própria rede como a clientes potenciais como documentos impressos. RFCs importante e as instruções para recuperá-los incluem-se nos apêndices no fim deste livro.
A figura 1.10. O processo de adotar um novo padrão de Internet.
O RFC discute-se normalmente durante algum tempo na própria rede, onde cada um pode exprimir a sua opinião, bem como em reuniões de grupo de trabalho IETF formais. Depois de um montante conveniente da revisão e continuou a discussão, um esboço de Internet cria-se e distribui-se. Este esboço está perto da forma final, fornecendo uma consolidação de todos os comentários o RFC gerado.
O seguinte passo é normalmente um padrão proposto, que permanece como tal durante pelo menos seis meses. Durante este tempo, a Sociedade de Internet necessita que pelo menos duas implementações independentes e interoperáveis se escrevam e se testem. Qualquer problema que resulta dos testes reais então pode dirigir-se. (Na prática, é habitual para muitas implementações escrever-se e dar-se uma prova completa.)
Depois que aquele processo de refinamento e prova conclui-se, um padrão de esboço escreve-se, que permanece durante pelo menos quatro meses, durante que tempo muitas outras implementações se desenvolvem e se testam. O passo último — depois de muitos meses — é a adoção do padrão, em que ponto se implementa por todos os sítios que o necessitam.
Os diplomatas seguem regras quando conduzem o negócio entre nações, que vê mencionado nos meios de comunicação como protocolo. O protocolo diplomático precisa que não insulte os seus anfitriões e que realmente respeita a alfândega local (mesmo se isto significar que tem de comer alguns jantares insossos!). A maior parte de embaixadas e as comissões têm especialistas no protocolo, cuja função deve assegurar que tudo prossegue lisamente quando as comunicações se realizam. O protocolo é grupo de regras que devem seguir-se para "jogar o jogo", como dizem os diplomatas de carreira. Sem os protocolos, um lado da conversação realmente não poderia entender o que o outro diz.
Semelhantemente os protocolos de computador definem a maneira na qual as comunicações se realizam. Se um computador estiver enviando a informação ao outro e ambos eles seguem o protocolo propriamente, a mensagem termina, apesar de que tipos de máquinas são e que sistemas operacionais dirigem (a base de sistemas abertos). Enquanto as máquinas têm o software que pode dirigir o protocolo, as comunicações são possíveis. Essencialmente, um protocolo de computador é grupo de regras que coordena a troca de informações.
Os protocolos desenvolveram-se de processos muito simples ("lhe enviarei um caráter, retorna-o, e vou me assegurar que os dois combinam") entrar em detalhes, mecanismos complexos que cobrem todos os problemas possíveis e transferem condições. Uma tarefa como envio de uma mensagem de uma costa ao outro pode ser muito complexa quando considera a maneira para a qual se move. Um protocolo único para cobrir todos os aspectos da transferência seria demasiado grande, pesado, e demais especializou-se. Por isso, vários protocolos desenvolveram-se, cada um que trata uma tarefa específica.
Combinar vários protocolos, cada um com os seus próprios objetivos dedicados, seria um pesadelo se as interações entre os protocolos não se definissem claramente. O conceito de uma estrutura em camadas desenvolveu-se para ajudar a guardar cada protocolo no seu lugar e definir a maneira da interação entre cada protocolo (essencialmente, um protocolo de comunicações entre protocolos!).
Como viu antes, a OIS desenvolveu um sistema de protocolo em camadas chamado OSI. OSI define um protocolo como "grupo de regras e formatos (semântico e sintático), que determina o comportamento de comunicação de N-entidades na realização de N-funções". Poderia lembrar-se de que N representa uma camada, e uma entidade é um componente de serviço de uma camada.
Quando as máquinas se comunicam, as regras definem-se formalmente e prestam contas de interrupções possíveis ou faltas no fluxo de informações, sobretudo quando o fluxo é connectionless (nenhuma conexão formal entre as duas máquinas existe). Em tal sistema, a capacidade de propriamente a via e verificam que cada pacote de dados (datagrama) é vitalmente importante. Como discutido antes, os dados enviados entre camadas chamam-se uma unidade de dados de serviço (SDU), portanto OSI define os dados análogos entre duas máquinas como uma unidade de dados de protocolo (PDU).
O fluxo de informações controla-se pelo grupo de ações que definem a máquina de Estado do protocolo. OSI define estas ações como informação sobre controle sobre protocolo (PCI).
É necessário introduzir muitos outros termos comumente usados em OSI e TCP/IP, mas afortunadamente se entendem prontamente por causa das suas conotações do mundo real. Estes termos são necessários porque os dados não existem normalmente em pedaços manejáveis. Os dados deveriam romper-se em mais pequenas seções, ou várias pequenas seções podem combinar-se em uma grande seção da transferência mais eficiente. Os termos básicos são como se segue:
A segmentação é o processo de quebrar uma unidade de dados de N-serviço (N-SDU) em várias unidades de dados de N-protocolo (N-PDUs).
A remontagem é o processo de combinar vários N-PDUs em um N-SDU (o reverso da segmentação).
O bloqueio é a combinação de vários SDUs (que poderia ser de serviços diferentes) em um PDU maior dentro da camada na qual o SDUs se originou.
O desagrupamento é a rompedura de um PDU em vários SDUs na mesma camada.
A concatenação é o processo de uma camada que combina vários N-PDUs da seguinte camada mais alta em um SDU (como bloqueio exceto a ocorrência através de um limite de camada).
A separação é o reverso da concatenação, para que uma camada quebre um SDU único em vários PDUs da seguinte camada mais alto (como desagrupamento exceto através de um limite de camada).
Estes seis processos mostram-se na Figura 1.11.
A figura 1.11. Segmentação, remontagem, bloqueio, desagrupamento, concatenação e separação.
Finalmente, aqui está um jogo último de definições que tratam com conexões:
A multiplexão consiste em quando várias conexões se apoiam por uma conexão única na seguinte camada mais baixa (portanto três conexões de serviço de apresentação podem multiplexar-se em uma conexão de sessão única).
A desmultiplexagem é o reverso da multiplexão, na qual uma conexão se parte em várias conexões da camada acima dele.
A divisão consiste em quando uma conexão única se apoia por várias conexões na camada abaixo (portanto a camada de conexão de dados poderia ter três conexões para apoiar uma conexão de camada de rede).
A recombinação é o reverso da divisão, para que várias conexões se combinem em um único da camada em cima.
Multiplexar e partir-se (e os seus reversos, demultiplexar-se e recombinar-se) são diferentes na maneira na qual as linhas se partem. Com a multiplexão, várias conexões combinam-se em uma na camada abaixo. Com a divisão, contudo, uma conexão pode partir-se em vário na camada abaixo. Como poderia esperar, cada um tem a sua importância dentro de TCP e OSI.
A informação sobre controle sobre protocolo é informação sobre o datagrama ao qual se anexa. Esta informação reúne-se normalmente em um bloco que se anexa à frente dos dados acompanha e chama-se a cabeçada de protocolo ou uma cabeçada. As cabeçadas de protocolo usam-se para transferir a informação entre camadas bem como entre máquinas. Como mencionado antes, as cabeçadas de protocolo desenvolvem-se segundo as regras estabelecidas no jogo de documento ASN.1 da OIS.
Quando uma cabeçada de protocolo se passa à camada abaixo de, o datagrama inclusive a cabeçada da camada trata-se como o datagrama inteiro daquela camada de recepção, que acrescenta a sua própria cabeçada de protocolo à frente. Assim, se um datagrama começasse na camada de aplicação, em que conseguiu a camada física, teria sete jogos de cabeçadas de protocolo nele. Estas cabeçadas de protocolo de camada usam-se recuando a estrutura de camada; despem-se de quando o datagrama sobe. Uma ilustração disto mostra-se na Figura 1.12.
A figura 1.12. Acrescentar a cabeçada de protocolo de cada camada a dados de usuário.
É mais fácil pensar neste processo como camadas em uma cebola. O interior é os dados que devem enviar-se. Como passa por cada camada do modelo OSI, outra camada da pele de cebola acrescenta-se. Quando se termina movendo-se pelas camadas, várias cabeçadas de protocolo cercam os dados. Quando o datagrama se passa suportam as camadas (provavelmente em outra máquina), cada camada descama a cabeçada de protocolo que corresponde à camada. Quando consegue a camada de destino, só os dados se deixam.
Este processo faz sentido, porque cada camada do modelo OSI necessita a informação diferente do datagrama. Usando uma cabeçada de protocolo dedicada para cada camada do datagrama, é uma tarefa relativamente simples de retirar a cabeçada de protocolo, decifrar as suas instruções e transmitir o resto da mensagem. A alternativa deveria ter uma grande cabeçada única que conteve toda a informação, mas isto tomaria mais longo para processar. Os conteúdos exatos da cabeçada de protocolo não são importantes agora mesmo, mas examino-os depois olhando para o protocolo TCP.
Como de hábito, OSI tem uma descrição formal para tudo isso, que afirma que os dados de N-usuário a transferir-se se preesperam com a informação sobre controle de N-protocolo (N-PCI) para formar uma unidade de dados de N-protocolo (N-PDU). Os N-PDUs passam-se através de um ponto de acesso de N-serviço (N-SAP) como um do grupo de parâmetros de serviço que compreendem uma unidade de dados de N-serviço (N-SDU). Os parâmetros de serviço que compreendem o N-SDU chamam-se dados de usuário de N-serviço (N-SUD), que se preespera a (N–1) PCI para formar outro (N–1) PDU.
Para cada serviço em uma camada, há um protocolo para ele para comunicar-se à camada em baixo dele (lembre-se de que as aplicações se comunicam pela camada abaixo, não diretamente). As trocas de protocolo de cada serviço definem-se pelo sistema, e até um menor grau pelo desenvolvedor de aplicações, que deve estar seguindo as regras do sistema.
Os protocolos e as cabeçadas poderiam soar um pequeno complexo ou demais complicado para a tarefa que deve realizar-se, mas consideração das metas originais do modelo OSI, se reconhece geralmente que isto é o melhor modo de ir. (Muitos comentários sarcásticos fizeram-se sobre OSI e TCP que afirmam que a informação sobre cabeçada é muito mais importante do que os conteúdos de dados. De alguns modos isto é verdade, porque sem a cabeçada os dados nunca viriam ao seu destino.)
O texto de hoje lançou muita terminologia em você, a maioria do qual verá frequentemente nos seguintes capítulos. Na maioria dos casos, uma lembrança doce da definição acompanha a primeira ocorrência do termo. Para entender as relações entre os termos diferentes, entretanto, deveria referir-se atrás ao material de hoje.
Agora tem o conhecimento básico para relacionar TCP/IP ao modelo em camadas do OSI, que o ajudará a entender o que TCP/IP faz (e como vai sobre a realização dele). O seguinte capítulo olha para a história de TCP/IP e o crescimento da Internet.
Quais são três tipos principais da arquitetura de LAN? Quais são as suas características primárias?
As três arquiteturas de rede são o ônibus, o anel e o cubo da roda. Há outros, mas estes três descrevem a grande maioria de toda a LAN.
Uma rede de ônibus é um comprimento do fio que tem um conector de cada dispositivo diretamente anexado a ela. Terminam-se ambos os fins do fio de rede. Uma rede anular tem uma unidade de controle central chamada uma Unidade de Acesso a Meios de comunicação à qual todos os dispositivos se anexam por fios. Uma rede de cubo da roda tem um painel traseiro com conectores que conduzem por outro fio aos dispositivos.
Quais são sete camadas OSI e as suas responsabilidades?
As camadas OSI (do fundo) são como se segue:
Físico: Transmite dados
Conexão de dados: Corrige erros de transmissão
Rede: Fornece a informação sobre encaminhamento física
Transporte: Verifica que os dados se transmitem corretamente
Sessão: Sincroniza a troca de dados entre camadas superiores e mais baixas
Apresentação: dados de rede de conversos a formatos específicos para a aplicação
Aplicação: interface de usuário final
Qual é a diferença entre segmentação e remontagem, e concatenação e separação?
A segmentação é a quebra à parte de uma grande unidade de dados de N-serviço (N-SDU) em várias mais pequenas unidades de dados de N-protocolo (N-PDUs), ao passo que a remontagem é o reverso.
A concatenação é a combinação de vários N-PDUs da seguinte camada mais alta em um SDU. A separação é o reverso.
Defina a multiplexão e a desmultiplexagem. Como são úteis?
A multiplexão consiste em quando várias conexões se apoiam por uma conexão única. Segundo a definição formal, isto aplica a camadas (para que três conexões de serviço de apresentação possam multiplexar-se em uma conexão de sessão única). Contudo, está um termo geralmente usado para todas as espécies de conexões, como colocação de quatro chamadas de modulador abaixo uma linha de modulador única. A desmultiplexagem é o reverso da multiplexão, na qual uma conexão se parte em várias conexões.
A multiplexão é uma chave ao apoio de muitas conexões ao mesmo tempo com recursos limitados. Um exemplo típico é um escritório remoto com vinte terminais, cada um dos quais se une ao escritório principal por uma linha telefônica. Em vez de necessitar vinte linhas, podem multiplexar-se todos em três ou quatro. O montante de multiplexar possível depende da capacidade máxima de cada linha física.
Quantas cabeçadas de protocolo se acrescentam em que uma aplicação de e-mail baseada em OSI (na camada de aplicação) enviou uma mensagem à camada física da transmissão?
Sete, um para cada camada OSI. Mais cabeçadas de protocolo podem acrescentar-se pelo sistema de rede físico real. Como uma regra geral, cada camada acrescenta a sua própria informação sobre protocolo.