(Parte 1 de 2)

Protocolo TCP/IP

Introdução

Um protocolo é um conjunto de regras que governam como computadores conversam a cada outro. TCP/IP é um protocolo extensamente usado e muito popular. Com TCP/IP, sistemas de computador diferentes podem trocar dados de maneira confiável em uma rede interconectada. As configurações desses protocolos tem como função controlar como a informação é passada de uma rede a outra, e como manipular

o endereçamento contido nos pacotes, a fragmentação dos dados e a checagem de erros. Também provê um conjunto consistente de interfaces de programação de aplicativos(API) sustentando desenvolvimento de aplicativos. Isto significa que programas de software podem usar TCP/IP para trocar dados. Um exemplo disto é servidores de rede e browsers de rede, software de aplicativos que usam TCP/IP para trocar dados.

Há dois tipos de protocolos para transmissão:

Protocolos Orientados à Conexão

Em uma transmissão orientada à conexão, é necessário que se faça uma chamada e conexão antes de cada transmissão. Nesse tipo de transmissão os pacotes não precisam possuir overheads, como ocorre nas transmissões não orientadas à conexão. Isso é possível pois logo no início da conexão, a origem e o destino trocam todas as informações necessárias à transmissão.

Protocolos Não Orientados à Conexão

O modo de transmissão não orientado à conexão conserva pouca informação durante uma conexão. A origem e o destino necessitam ter um prévio acerto de como sera a comunicação e as características do QOS - Quality of Service - já devem estar definidas. Esse modo de transmissão associa a cada pacote um endereço global, que identifica a origem e o destino do pacote. Nesse modo de transmissão, os sucessivos pacotes transferidos podem não ter qualquer relação, pois são considerados independentes uns dos outros.

O modo de transmissão não orientado a conexão não dá importância a controles de fluxo nem realiza qualquer reconhecimento ou reenvio de pacotes.

Através desse modo pode-se fazer uma comunicação com qualquer máquina sem precisar realizar uma conexão, sendo assim mais rápido. Em compensação, não tem-se a certeza do sucesso da transmissão e o acompanhamento do processo precisa ser

mais eficaz.

Host - Um computador que esteja ligado à rede IP e possua um número IP é chamado de host.Um host pode estar caracterizado por qualquer tipo de computador, desde um mainframe até um palmtop.

Roteador : É um computador especial que é utilizado para conectar 2 ou mais redes distintas. Ele tem esse nome porque tem de "rotear" (ou redirecionar) os pacotes de uma rede para outra, atuando como um "guarda de trânsito" para os pacotes entre as redes.Gateway - Um gateway (ponte) é um componente que pode conectar diferentes redes, convertendo protocolos de diferentes níveis, ou exercer roteamento, no caso de um gateway IP. Ou seja, um gateway é sempre um componente intermediário numa rede. A principal diferença para o roteador é que o gateway não tem hardware especial para efetuar o roteamento. Usualmente os gateways conectam LANs e os roteadores, WANs. Em vários casos se utiliza um roteador em conjunto com um gateway.História de TCP/IP O conceito de conectar computadores não similares em uma rede comum surgiu de pesquisa administrada pela Agência de Projetos de Pesquisa Avançada de Defesa(DARPA). .

A arquitetura TCP/IP surgiu com a criação de uma rede patrocinada pelo Departamento de Defesa do governo dos Estados Unidos da América (DoD - Department of Defense). Uma das tarefas essenciais dessa rede seria manter comunicados, mesmo que apenas uma parte, órgãos do governo e universidades, numa ocorrência de guerras ou catástrofes que afetassem os meios de comunicação daquele país. Dessa necessidade, surgiu a ARPANET, uma rede que permaneceria intacta caso um dos servidores perdesse a conexão.

A ARPANET necessitava então de um modelo de protocolos que assegurasse tal funcionalidade esperada, mostrando-se confiável, flexível e de fácil implementação. É então desenvolvida a arquitetura TCP/IP, que se torna um padrão de fato.

A ARPANET cresceu e tornou-se a rede mundial de computadores - internet. A utilização (e facilidades) do padrão TCP/IP utilizado pelos fabricantes de outras redes, com a finalidade da conectividade com a internet. A normalização do TCP/IP chegou após a sua utilização em massa.

Hoje, quando se menciona TCP/IP, vem imediata a associação com a internet, ocorrendo de modo idêntico o inverso: a internet está diretamente relacionada à arquitetura TCP/IP.

MODELO TCP/IP

O modelo TCP/IP é constituído basicamente por 4 camadas: a camada de interface de rede , a camada de rede , a camada de transporte e a camada de aplicação. Tanto a camada de aplicação quanto a camada de interface de rede não possuem uma norma definida, devendo a camada de aplicação utilizar serviços da camada de transporte, e a camada de interface de rede prover a interface dos diversos tipos de rede com o protocolo (promovendo em conseqüência a interoperação entre as diversas arquiteturas de rede - Ethernet, Token Ring, ATM,etc.

Camada de Interface de Rede

Também chamada camada de abstração de hardware, tem como função principal a interface do modelo TCP/IP com os diversos tipos de redes (X.25, ATM, FDDI, Ethernet, Token Ring, Frame Relay, sistema de conexão ponto-a-ponto SLIP,etc.). Como há uma grande variedade de tecnologias de rede, que utilizam diferentes velocidades, protocolos, meios transmissão, etc. , esta camada não é normatizada pelo modelo, o que provê uma das grandes virtudes do modelo TCP/IP: a possibilidade de interconexão e interoperação de redes heterogêneas.

Camada de Rede (IP)

A camada de rede é a primeira (normatizada) do modelo. Também conhecida como camada Internet, é responsável pelo endereçamento, roteamento dos pacotes, controle de envio e recepção (erros, bufferização, fragmentação, seqüência, reconhecimento, etc.), etc.

Dentre os protocolos da Camada de Rede, destaca-se inicialmente o IP (Internet Protocol), além do ARP, ICMP, RARP e dos protocolos de roteamento (RIP ,IGP, OSPF, Hello, EGP e GGP).

A camada de rede é uma camada não orientada à conexão, portanto se comunica através de datagramas.

Camada de Aplicação

É formada pelos protocolos utilizados pelas diversas aplicações do modelo TCP/IP. Esta camada não possui um padrão comum. O padrão estabelece-se para cada aplicação. Isto é, o FTP possui seu próprio protocolo, o TELNET possui o seu próprio, bem como o SNMP, GOPHER, DNS, etc.

É na camada de aplicação que se estabelece o tratamento das diferenças entre representação de formato de dados.

O endereçamento da aplicação na rede é provido através da utilização de portas para comunicação com a camada de transporte. Para cada aplicação existe uma porta predeterminada.

Camada de Transporte

A camada de transporte é uma camada fim-a-fim, isto é, uma entidade desta camada só se comunica com a sua entidade-par do host destinatário. É nesta camada que se faz o controle da conversação entre as aplicações intercomunicadas da rede.

A camada de transporte utiliza dois protocolos: o TCP e o UDP. O primeiro é orientado à conexão e o segundo é não orientado à conexão . Ambos os protocolos podem servir a mais de uma aplicação simultaneamente.

O acesso das aplicações à camada de transporte é feito através de portas que recebem um número inteiro para cada tipo de aplicação, podendo também tais portas serem criadas ao passo em que novas necessidades vão surgindo com o desenvolvimento de novas aplicações.

A maneira como a camada de transporte transmite dados das várias aplicações simultâneas é por intermédio da multiplexação, onde várias mensagens são repassadas para a camada de rede (especificamente ao protocolo IP) que se encarregará de empacotá-las e mandar para uma ou mais interface de rede. Chegando ao destinatário o protocolo IP repassa para a camada de transporte que demultiplexa para as portas (aplicações) específicas.

Características de TCP/IP Abaixo estão algumas das características comuns de TCP/IP.

  • Transferência de arquivo O protocolo de transferência de arquivo (aplicações FTP e cópia distante (RCP)) permitem usuários transferir arquivos entre os sistemas.

  • Emulação terminal Telnet e rlogin provêem um método para estabelecer uma conexão interativa entre sistemas de computador.

  • Transparente acesso e compartilhamento de arquivo distribuídoO Sistema de Arquivo em Rede (NFS) usa o protocolo de IP para estender o sistema de arquivo suportando acesso aos diretórios e disco em outros sistemas de computador.

  • Execução de comando distante Usando o shell remoto (rsh) e programas execução remota(rexec), os usuários podem rodar programas em computadores distantes e podem ver os resultados no próprio computador. Isto deixa usuários de computadores lentos tirar proveito de computadores mais rápidos correndo os programas no computador distante mais rápido.

  • Impressão distante O comando UNIX lpr provê serviços de impressão distantes.

TCP/IP e OSI

Os protocolos usados se assemelham ao modelo de OSI. O modelo Interconexão de Sistemas Abertos é um modelo de 7 camadas que se tratam com troca de dados de um computador para outro.

Aplicações geralmente desenvolvidas para TCP/IP usam vários dos protocolos. A soma das camadas usada é conhecida como a pilha protocolar.

Programas de Aplicação de usuário comunicam com a camada de topo na pilha protocolar. Esta camada passa informação para a próxima mais baixa camada subseqüente da pilha, e tão cedo a informação é passada à mais baixa camada, a camada física que transfere a informação para a rede de destino. Os mais baixos níveis de camada do computador de destino passam a informação recebida para seus níveis mais altos que em troca passam os dados para a aplicação de destino. Cada camada protocolar executa várias funções que são independente das outras camadas. Cada camada comunica com camadas equivalentes em outro computador, por exemplo, a camada de sessão de dois computadores diferentes interage.

Um programa aplicativo transferindo arquivos que usam TCP/IP , executa o seguinte,

  • a camada de aplicação passa os dados para a camada de transporte do computador fonte

  • a camada de transporte divide os dados em segmentos de TCP soma um header com um número sucessivo para cada segmento de TCP passa os segmentos TCP para a camada IP

  • a camada IP cria um pacote com uma porção de dados que contém o segmento de TCP soma um header de pacote que contém endereços de IP da fonte e destino determina o endereço físico do computador de destino passa o pacote e endereço físico de destino para a camada de datalink

  • a camada de datalink transmite o pacote de IP na porção de dados de um frame

  • a camada datalink de computadores destino descarta o header de datalink e passa o pacote IP para a camada IP

  • os camada de destinações IP checa o header do pacote IP e checksum se ok, descarta o header IP e passa o segmento TCP à camada TCP

  • os camada de destinações TCP computa um checksum para o segmento TCP dados e header se ok, envia reconhecimento ao computador fonte descarta o header TCP e passa os dados para a aplicação

Endereços físicos e Endereços de Internet

  • Cada computador em rede é nomeado um endereço físico que leva formas diferentes em redes diferentes. Para redes de ETHERNET, o endereço físico é um valor numérico de 6 bytes (ou 12 dígitos hexadecimais) (por exemplo 080BF0AFDC09). Cada endereço de computadores Ethernet é único, e corresponde ao endereço do cartão de rede físico instalado no computador.

  • Endereços de Internet são endereços lógicos, e são independentes de qualquer hardware particular ou componente de rede.

  • O protocolo TCP/IP implementa uma numeração lógica de rede, armazenado em arquivos de configuração ,que uma máquina se identifica. Esta numeração lógica é importante ao enviar informação a outros usuários a outras redes, ou tendo acesso a máquinas remotamente. Endereços de Internet são endereços lógicos, e são independentes de qualquer hardware particular ou componente de rede. Consiste em um valor numérico de 4 bytes (32-bit) que identifica o número de rede e o número de dispositivo na rede. O endereço IP de 4 bytes que é representado em notação decimal pontilhada onde cada byte representa um valor entre 0 e 255, por exemplo, 127.46.6.11

  • Quando um computador quer trocar dados com outro computador que usa TCP/IP, primeiro traduz o destino IP em um endereço físico para enviar pacotes a outros computadores na rede (isto é chamado resolução de endereço).

  • Além, computadores em uma rede de TCP/IP cada tem nomes lógicos único como ICE.CIT.AC.NZ. Estes nomes lógicos são conectados ao endereço de IP, neste exemplo, o endereço IP de ice.cit.ac.nz é 156.59.20.50. O nome lógico também está chamado o nome de domínio.

  • Quando um computador de cliente deseja comunicar com o host de computador ICE, tem que traduzir seu nome lógico em seu endereço IP. Faz isto por uma busca de nome de domínio que pergunta para um servidor de nome de domínio o endereço IP do host de destino. O servidor de nome de domínio tem um conjunto de tabelas estáticas que usa para achar o endereço IP. Notavelmente, o servidor de nome de domínio é uma peça de missão crítica de hardware, e se falha, todos os pedidos de procura não podem ser respondidos e assim você não poderá conectar a qualquer computador que usa seu nome de domínio. Uma vez o endereço IP é conhecido, uma resolução de endereço é executada para devolver o endereço físico do computador.

  • A numeração de IP lógico é formada de um número de rede e um número local. Para sites conectados à Internet, a porção de rede é nomeada pela aplicação de uma companhia responsável para manter os Nomes de Domínio Internet.

  • A construção de um endereço IP é dividida em três classes. Qual classe é usada por uma organização depende do número de máximo de postos de trabalho que são requeridos por aquela organização. Cada nodo ou computador que usam TCP/IP dentro da organização DEVE TER um único host parte do endereço IP.

Endereçamento Classe A

  • primeiro byte especifica a porção de rede

  • bytes restantes especificam a porção de host

  • o bit de ordem mais alto do byte de rede sempre é 0

  • valores de rede de 0 e 127 são reservados

  • há 126 rede de classe A

  • há mais de 16 milhões de valores de host para cada rede de classe A

Endereçamento Classe B

  • os primeiros dois bytes especificam a porção de rede

  • os últimos dois bytes especificam a porção de host

  • os bits de ordem mais alta 6 e 7 da porção de rede são 10

  • há mais de 16 mil redes classe de B

  • há 65 mil nodos em cada rede classe de B

Endereçamento Classe C

  • os primeiros três bytes especificam a porção de rede

  • último byte especifica a porção de host

  • os bits de ordem mais alta 5, 6 e 7 da porção de rede são 110

  • há mais de 2 milhões de redes classe de C

  • há 254 nodos em cada rede classe de C

Endereços IP reservados Os Endereços IP seguintes são reservados para propósitos especiais, e não deve ser nomeado a qualquer host.

  • Endereços de rede: A porção de host é setada toda em zero (129.47.0.0)

  • Endereços de radiodifusão: A porção de host é setada toda em um (129.47.255.255)

  • Endereços Loopback: 127.0.0.0 e 127.0.0.1

Internet para Tradução de Endereço Físico Quando um pacote de IP é enviado, é encapsulado (incluso) dentro da armação física(frame) usada pela rede. O endereço IP é traçado sobre o endereço físico que usa o Protocolo de Resolução de Endereço (arp) para redes como Ethernet, token-ring, e Arcnet.

Quando um nodo quer enviar um pacote de IP, determina o endereço físico do nodo de destino radiodifundindo um pacote ARP que contém o endereço destino IP primeiro. O nodo de destino responde mandando de volta seu endereço físico ao nodo de requisição.

O Protocolo de Internet (IP) Isto define o formato dos pacotes e como os dirigir quando envia ou recebe. A forma dos pacotes é chamada um datagrama de IP.

O Protocolo Internet de Controle de Mensagem (ICMP)

Pacotes de ICMP contêm informação sobre fracassos na rede, como nodos inoperantes e portais(gateways), congestão de pacote etc. O software IP interpreta mensagens de ICMP. Mensagens de ICMP viajam freqüentemente por muitas redes para alcançar o destino , assim eles são encapsulados na porção de dados de um datagrama IP.

O Protocolo de Datagrama Usuário (UDP)Isto permite para os usuários trocar pacotes individuais sobre uma rede. Ele define um conjunto de destinos conhecido como portas de protocolo. As Portas são numeradas e o TCP/IP reserva de 1 a 255 para certas aplicações. O datagrama de UDP é encapsulado em um ou mais datagramas IP.

O Protocolo de Controle de Transmissão (TCP)TCP é um protocolo de entrega de fluxo confiável. Estabelece um circuito virtual entre as duas aplicações, e envia um fluxo de bytes ao destino exatamente na mesma ordem como eles deixaram a fonte.

Antes da transmissão começar, as aplicações em ambos fins obtêm uma porta de TCP, semelhante ao usado pelos UDP.

São encapsulados segmentos TCP em um datagrama IP. Buffers TCP esperam o fluxo de dados o bastante para preencher um datagrama grande antes de enviá-lo.

TCP é full duplex, e nomeia para cada segmento um número subsequente que o fim receptor usa para assegurar todos os segmentos são recebidos na ordem correta. Na chegada do próximo segmento, o fim receptor envia um reconhecimento ao nodo que envia.

Se o nodo que envia não recebe um reconhecimento dentro de um certo tempo, ele re-transmite o segmento.

Roteamento

É o processo de escolha do caminho pelo qual o pacote deve chegar à estação destinatária. O roteamento pode ser direto ou indireto.

Rotear é mover informações através de uma rede desde a origem até o destino, através de pelo menos 1 nodo intermediário.

Roteamento Direto

O roteamento direto ocorre quando a estação destinatária do datagrama está na mesma sub-rede física da estação origem. A checagem é feita comparando o endereço IP do emissor e do destinatário constantes no datagrama IP. Nesse caso o conteúdo do datagrama recebe o endereço físico da estação e é enviado diretamente pela mesma sub-rede.

(Parte 1 de 2)

Comentários