Introdução à Camada de Transporte

outubro 19, 2008 at 10:01 pm (Uncategorized)

Posicionada entre as camadas de aplicação e de rede, a camada de transporte ocupa uma posição importantíssima no processo de transferência de dados, sendo considerada a parte central da arquitetura de redes em camadas. Sua função principal é fornecer serviços de comunicação aos processos de aplicação que rodam em hospedeiros diversos. Os protocolos de transporte mais populares são: TCP (Transfer Control Protocol) e UDP (User Datagram Protocol).

Os protocolos da camada de transporte são executados nos hospedeiros e funcionam da seguinte maneira:

*Lado que envia: parte a mensagem da aplicação em segmentos e passa à camada de rede;

*Lado que recebe: junta os segmentos em mensagens e passa à camada de aplicação.

Um protocolo desta camada fornece comunicação lógica entre os processos de aplicação que rodam em sistemas terminais distintos, ou seja, é como se os hospedeiros envolvidos estejam conectados diretamente (fim-a-fim). A diferença, porém entre a comunicação das camadas de transporte e de rede (também fornece comunicação lógica) é que a de transporte faz uma comunicação lógica entre processos e a de rede entre Sistemas Finais.

Para visualizarmos melhor a diferenciação entre as camadas de rede e transporte, podemos pegar o exemplo clássico de envio de cartas entre primos de uma cidade a outra. Nesse ambiente, podemos identificar os elementos da seguinte forma:

* Os hospedeiros (Sistemas Finais) => casas;

* Os processos => “primos”;

* As mensagens de aplicação => cartas nos envelopes;

* Protocolo de transporte => primos que tratam do correio;

* Protocolo de rede => serviço postal.

Assim, na figura abaixo podemos ilustrar como é feita a comunicação lógica

fim-a-fim dos protocolos da camada de transporte, bem como compreender um pouco

melhor o exemplo citado acima:

O TCP corresponde a um protocolo orientado a conexão, oferecendo assim, uma comunicação confiável, ordenada, unicast. Portanto, o TCP garante que os dados são entregues livres de erros, em seqüência e sem perdas ou duplicação. O lema do TCP é “transmitir com segurança”.

Já o UDP é um protocolo sem conexão, não confiável (melhor esforço, “best effort”), não ordenada, unicast ou multicast. O UDP não implementa nenhum mecanismo de controle de congestionamento, de fluxo ou de erros. Geralmente é utilizado por aplicações que necessitam de velocidade (o UDP é um protocolo bastante leve) e dispensam a confirmação de que as informações foram recebidas (como videoconferências).

Assim, o TCP e o UDP não oferecem, conjuntamente, suporte a alguns tipos de serviços. Esses serviços não disponíveis são:

· Garantias de controle de banda;

· Multicast confiável;

· Tempo real.

Anúncios

Link permanente Deixe um comentário

DNS (Domain Name Server)

outubro 14, 2008 at 10:21 pm (Uncategorized)

O ser humano tem a facilidade de identificar as coisas através da utilização de nomes. Dada essa facilidade de memorização e reconhecimento, fez-se necessário também na Internet o uso de nomes de hospedeiro (hostname) para identificar máquinas.

Tendo em vista que esses nomes são de comprimento variável (caracteres alfanuméricos) e que eles fornecem uma pouca informação a respeito da localização do hospedeiro na Internet, a identificação dos hospedeiros, para serem processados pelos roteadores, ocorre por meio do enderaçamento IP. Portanto, “As pessoas preferem o identificador nome de hospedeiro por ser mais fácil de lembrar, ao passo que roteadores preferem endereços IP de comprimento fixo e estruturados hierarquicamente.” (J. F. KUROSE).

Assim, o DNS (Domain Name Service – Sistemas de nomes de domínio) foi criado com o intuito de conciliar as preferências acima citadas, ou seja, para traduzir nomes de hospedeiros para endereços IP. Segundo Andrew Tanenbaum, “A essência do DNS é a criação de um esquema hierárquico de atribuição de nomes baseado no domínio e de um sistema de bancos de dados distribuídos para implementar esse esquema de nomenclatura.”

O DNS corresponde a um protocolo da camada de aplicação, que roda sobre UDP e usa a porta de comunicação 53. Ele é especificado nas RFCs 1034 e 1035. É usado para variadas aplicações, como por exemplo: apelidos para hospedeiros (aliasing), apelido para o servidor de mails, distribuição da carga.

Por segurança, um domínio pode definir vários servidores DNS. O DNS primário é o primeiro sistema a ser consultado no momento da resolução do nome, caso o servidor DNS primário esteja em manutenção, o servidor DNS secundário é consultado, e assim sucessivamente.

Devido ao intenso tráfego da internet e devido à segurança da rede, a estrutura do banco de dados DNS é distribuída e hierárquica. Ou seja, ao invés de um banco de dados central e único com informações de todos os domínios, a resolução ocorre consultando-se diversos servidores DNS e sua resolução é hierárquica (um servidor DNS pode apontar para outro servidor DNS e assim sucessivamente).

A estrutura hierárquica equivale a uma árvore invertida, ou seja, existe um servidor principal que aponta para um secundário que aponta para um terceiro e assim sucessivamente. O servidor DNS que está no topo da internet é o servidor raiz.

Para que um host acesse uma URL qualquer (“www.amazon.com”, por exemplo) na internet, primeiramente ele envia uma mensagem de requisição para o servidor de nomes local. O servidor local envia uma consulta ao DNS raiz, o qual percebe o sufixo ‘com’ e responde uma lista de endereços IP para o DNS local contendo servidores TLD que são reponsáveis por ‘com’. Em seguida, o DNS local faz requisição para um desses servidores TLD, o qual percebe o sufixo ‘amazon.com’ e envia ao DNS local o endereço IP do servidor DNS com autoridade para a Amazon. Finalmente, o DNS local consulta o servidor com autoridade e esse responde com o endereço do hospedeiro ‘www.amazon.com’. Assim, o DNS local responde ao hospedeiro o IP do nome solicitado.

A partir do processo relatado acima, vemos que há consultas recursivas e iterativas. Entre o hospedeiro e o DNS local, a consulta é recursiva, uma vez que o hospedeiro pede que o DNS local obtenha o mapeamento em seu nome. Enquanto que as outras três consultas (DNS local com DNS raiz, TLD e autoridade) são iterativas, já que as respostas são retornadas diretamente ao DNS local. Em teoria, qualquer consulta DNS pode ser iterativa ou recursiva, porém, na prática, as consultas geralmente são feitas conforme o padrão exposto acima.

Quando se faz uma requisição DNS, a informação recebida (IP do nome resolvido) é armazenada na cache do DNS. Essa informação permanece armazenada por um certo período (normalmente 2 dias) e, dentro desse tempo, uma requisição repetida é buscada diretamente na cache DNS, não sendo preciso percorrer novamente todo o caminho para resolução do nome.

Link permanente Deixe um comentário

Pilhas de Protocolos de Internet

setembro 7, 2008 at 8:42 pm (Uncategorized)

Quando se deseja efetuar uma determinada tarefa que tenha um considerável nível de complexidade, é necessário que se faça a divisão em etapas dessa tarefa, para melhor compreensão, controle e eficiência da mesma. Assim, uma vez que a Internet corresponde a um complexo sistema de comunicação, fez-se necessário a criação de determinadas camadas (etapas de um processo), para que através delas se pudesse conseguir criar padrões, facilitando a universalização da rede de computadores. James F. Kurose diz que “Uma arquitetura de camadas nos permite discutir uma parcela específica e bem definida de um sistema grande e complexo.”

Toda a comunicação da Internet é feita através do uso de protocolos, os quais são divididos e classificados nas camadas em que se enquadram. Desta forma, a transferência de pacotes segue uma pilha de protocolos para que eles cheguem até seu destino.

A partir disso, foi feita a criação de arquiteturas de rede, sendo as duas mais importantes o modelo de referência OSI e o modelo de referência TCP/IP. Embora os protocolos associados ao modelo OSI seja raramente usado nos dias de hoje, o modelo propriamente dito é bastante geral e válido. Já o modelo TCP/IP corresponde ao contrário, ou seja, o modelo em si não é muito utilizado e os protocolos têm uso geral.

Abaixo seguem duas figuras ilustrando os dois modelos acima citados:

Modelo OSI

Modelo OSI

Modelo TCP/IP

Modelo TCP/IP

Assim, as camadas do modelo OSI (que é base para o TCP/IP) possuem funções específicas, tais como:

A camada física trata coisas tipo distância máxima dos cabos (por exemplo no caso do UTP onde são 90m), conectores físicos (tipo BNC do coaxial ou RJ45 do UTP), pulsos elétricos (no caso de cabo metálico) ou pulsos de luz (no caso da fibra ótica), etc. Resumindo, ela recebe os dados e começa o processo, ou insere os dados finalizando o processo, de acordo com a ordem. Podemos associa-la a cabos e conectores. Exemplos de dispositivos que atuam nessa camada são: Hubs e tranceivers.

A camada de enlace trata as topologias de rede, dispositivos como Switch, placa de rede, interfaces, etc. E após o recebimento dos bits, ela os converte de maneira inteligível, os transforma em unidade de dado, subtrai o endereço físico e encaminha para a camada de rede que continua o processo. Exemplos de protocolos da camada de enlace são o Ethernet e o PPP. Nesta camada, os pacotes são denominados quadros.

A camada de rede entende o endereço físico e o converte para o endereço lógico (endereço IP). A partir de dispositivos, como roteadores, consegue-se, através dessa camada, decidir qual o melhor caminhos para os pacotes no processo. Os principais protocolos são IP e IPX. Nessa camada, os pacotes são identificados como datagramas.

A camada de transporte é responsável pela qualidade na entrega/recebimento dos dados. Após os dados já endereçados virem da camada 3, é hora de começar o transporte dos mesmos. Um serviço bastante interessante que atua de forma interativa nessa camada é o Q.O.S ou Quality of Service (Qualidade de Serviço), que é um assunto bastante importante e fundamental no processo de internetworking. O pacote, nessa camada, é denominado segmento e os principais protocolos de transporte são o TCP e o UDP. No primeiro, há a garantia da entrega de pacotes, sendo assim um protocolo orientado a conexão; o que não ocorre com o UDP (não orientado a conexão), em que não há a garantia do recebimento dos pacotes pelo destinatário, porém corresponde a um protocolo “mais leve” que o TCP, o que aumenta muito sua velocidade de transmissão.

A camada de sessão é responsável por iniciar, gerenciar e terminar a conexão entre hosts. Após a recepção dos bits, a obtenção do endereço, e a definição de um caminho para o transporte, se inicia então a sessão responsável pelo processo da troca de dados/comunicação. Para obter êxito no processo de comunicação, a camada de seção têm que se preocupar com a sincronização entre hosts, para que a sessão aberta entre eles se mantenha funcionando. Exemplos de aplicativos que trabalham com a camada de sessão são o ICQ e o MIRC.

A camada de apresentação cuida da formatação dos dados, e da representação destes, e ela é a camada responsável por fazer com que duas redes diferentes (por exemplo, uma TCP/IP e outra IPX/SPX) se comuniquem, “traduzindo” os dados no processo de comunicação. Um dispositivo muito conhecido atuante nessa camada é o gateway.

A camada de aplicação corresponde à interface direta para inserção/recepção de dados. É a camada mais notada no dia a dia, pois interagimos com ela através de softwares como cliente de correio e de mensagens instantâneas, por exemplo. Protocolos como HTTP, SMTP, DNS, FTP e Telnet enquadram-se nessa camada. E ela pode tanto iniciar quanto finalizar o processo, pois, assim como a camada física, está em um dos extremos do modelo.

Portanto, nesse artigo relatamos as características principais relacionadas às pilhas de protocolos de Internet, o que nos permitem ter uma visão geral de como é feita a troca de pacotes na Internet (caminho percorrido pelos dados), bem como a função de alguns protocolos importantes através do reconhecimento de onde os mesmos se encontram no processo de comunicação de dados.

Link permanente Deixe um comentário

Hello world!

agosto 26, 2008 at 10:26 pm (Uncategorized)

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Link permanente 1 Comentário