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