Académique Documents
Professionnel Documents
Culture Documents
REDES DE COMPUTADORES II
Jane Queiroz jane.queiroz@ifrn.edu.br
Arquitetura da Aplicao Par a Par (ou P2P) Cada PC funciona como cliente e servidor. Simples e barata Menos de 10 PCs Grupos de trabalho Cliente-Servidor Servidor dedicado Um cliente no pode oferecer servios rede Redes com mais de 10 PCs
Arquitetura da Aplicao
Hbrida (cliente-servidor/P2P) Consiste em uma juno das duas arquiteturas abordadas anteriormente. Ora utilizam P2P, ora cliente-servidor
Exemplo: MSN A conversa entre dois usurios P2P, no entanto, ao abrir o MSN, o usurio precisa se autenticar em um servidor remoto. Alm disso, quando um usurio quer conversar com outro, seu mensageiro instantneo (ou cliente) precisa contactar o servidor para saber quais usurios de sua lista de amigos esto on line.
Torre de Babel
Protocolo
Conjunto de regras que controla a interao de duas mquinas ou dois processos semelhantes (ou com funes semelhantes). Para que dois computadores se comuniquem, necessrio que usem o mesmo protocolo. Sem protocolos, o computador no pode reconstruir, no formato original, a sequncia de bits recebida de outro computador
Sutes de protocolo
Colees de protocolos que habilitam a comunicao em rede de uma mquina outra. Estruturadas em camadas, de forma a dividir e organizar as funes de cada camada
Camadas
Se comunicam somente com camadas adjacentes Recebe servios da camada inferior Presta servios camada superior
OSI
TCP/IP
Camada de Aplicao
Trata os detalhes especficos de cada aplicao. Uma aplicao consiste em um programa em execuo (processo). Cada tipo de aplicao define um protocolo de aplicao. Cada protocolo de aplicao especifica a sintaxe (ordenao/disposio) e a semntica (significado) de suas mensagens.
Exemplos de protocolos de aplicao: FTP, SMTP, DNS, HTTP.
Camada de Aplicao
Na arquitetura TCP/IP, os programas de aplicao interagem adotando o padro de interao denominado cliente-servidor
Um cliente envia requisies por meio da rede para um ou vrios servidores e aguarda o recebimento das respectivas respostas Um servidor aceita requisies dos clientes, executa seu servio processando as requisies e retornando os resultados para os respectivos clientes.
Camada de Aplicao
Comunicao entre processos rodando em mquinas hospedeiras diferentes e com sistemas operacionais (possivelmente) diferentes
A comunicao se d pela troca de mensagens por meio da rede de computadores.
Camada de Aplicao
Cada aplicao escolhe o servio de transporte requerido A camada de aplicao usa os servios da camada de transporte para permitir que as aplicaes se comuniquem Para selecionar e usar os servios da camada de transporte, as aplicaes interagem com os protocolos de transporte no sistema operacional atravs de uma API (Aplication Programming Interface)
Exemplo de interface de interao: socket
Camada de Aplicao
Um processo envia mensagens para a rede e recebe mensagens dela atravs de seu socket.
Um processo como uma casa Um socket como a porta dessa casa
Camada de Aplicao
Um socket ento uma interface entre a camada de aplicao e a camada de transporte dentro de uma mquina (tambm denominado API).
Camada de Aplicao
O cliente deve conhecer previamente a porta utilizada pelo servidor O cliente inicia a interao com o servidor O servidor s descobre o nmero da porta utilizada pelo cliente aps receber a requisio Aps receber uma requisio na porta determinada, o servidor trata a requisio, retorna a resposta para o cliente e volta a aguardar novas requisies
Camada de Aplicao
Para que um processo envie uma mensagem para outro so necessrias duas informaes:
O nome ou endereo da mquina hospedeira Endereo IP Um identificador que especifique o processo destinatrio na mquina de destino Nmero de Porta
Fazendo uma analogia, seria algo como o CEP de determinado local e o nmero da residncia.
Camada de Aplicao
A alocao de portas realizada pela IANA (Internet Assigned Number Authority) e so divididos em trs faixas:
Portas reservadas ou bem conhecidas (0 at 1023) Portas registradas (1024 at 49151) Portas dinmicas (49152 at 65535)
Definem como processos de uma aplicao, que funcionam em sistemas finais diferentes, passam mensagens entre si.
Tipos de mensagens trocadas (requisio/resposta) Sintaxe dos tipos de mensagens (campos da mensagem e como so delineados) Semntica dos campos (significado da informao nos campos) Regras para determinar quando e como um processo envia mensagens e responde a mensagens
Transferncia de dados
O protocolo da camada de transporte dever ser escolhido de acordo com as exigncias da aplicao...
Transferncia confivel de dados: no pode haver perda de dados Protocolo de transporte: TCP (orientado conexo) Correio eletrnico, mensagem instantnea, transferncia de arquivos, acesso remoto, acesso a pginas web e aplicaes financeiras Transferncia no confivel de dados: a perda de alguns dados resulta em pequenas falhas, mas nada grave. Protocolo de transporte: UDP (no orientado conexo) Aplicaes multimdia (udio/vdeo em tempo real), telefonia IP, videoconferncias.
Servios de Aplicao
Servio de Nomes
DNS
DNS ou Domain Name System o servio responsvel por atribuir nomes nicos s estaes conectadas Internet e por traduzir os nomes de mquinas (conhecidos como domnios) para seus respectivos endereos IP e vice-versa. Exemplo: www.jose.com.br 221.0.0.9 (mapeamento direto) 221.0.0.9 www.jose.com.br (mapeamento reverso) 1970 ARPANet era uma pequena rede de pesquisa
Essa rede utilizava um arquivo HOST.TXT para prover resoluo de nomes A cada nova modificao, o arquivo era redistribudo via FTP ou e-mail Com o crescimento da rede (em 1980, devido adoo da pilha de protocolos TCP/IP), a redistribuo desse arquivo tornou-se invivel
DNS
Especificado nos RFCs 1034 e 1035 Define a sintaxe dos nomes e a delegao de autoridade para gerenciamento de nomes
Sintaxe: regras que dizem como os nomes devem ser escritos Delegao de autoridade: no h uma entidade central que gerencie todos os nomes de domnios, mas sim vrios servidores de nomes espalhados pelo mundo Por isso, em se tratando de DNS, falamos em Base de Dados distribuda.
Utiliza a porta 53/UDP para resoluo de nomes e a porta 53/TCP para enviar atualizaes do servidor mestre (master) para o servidor escravo (slave)
DNS
O servio de nomes implementado em um conjunto hierrquico e geograficamente distribudo de servidores de nomes Nenhum servidor de nomes mantm todas as informaes do servio de nomes Quando um usurio informa a URL www.jose.br/index.html, antes de requisitar o servidor web, o navegador (cliente) precisa saber o IP desse servidor. Ento ele pergunta ao DNS:
DNS, quem o IP de www.jose.br?
Cada n da rvore hierrquica tem um rtulo de at 63 caracteres A raz da rvore um n especial, cujo rtulo representado por um ponto . Cada n intermedirio denominado domnio Cada n folha representa uma estao Exemplos:
br e jose.br so nomes de domnios www.jose.br nome de estao www.jose.br. um nome de domnio absoluto (tambm chamado FQDN, do ingls Fully Qualified Domain Name ou nome de domnio totalmente qualificado. O servidor DNS s resolve nomes de domnio absolutos)
Primrio (ou master/mestre): mantm, em arquivos de configurao local, as informaes sobre a *zona que possui autoridade Secundrio (ou slave/escravo): uma cpia do servidor primrio. Caso o servidor primrio sofra algum problema e pare de responder requisies, o secundrio assume imediatamente a funo do primrio. A porta 53/TCP usada para enviar periodicamente informaes do primrio para o secundrio, atualizando-o.
DNS Zonas
Zona: sub-rvore do espao de nomes hierrquico, composta por seus domnios e estaes. A zona delimita que informaes de um domnio so delegadas a um servidor. A abrangncia depende da autoridade desse servidor.
Nesse caso, a configurao para permitir mapeamento reverso no servidor ficaria: 0.0.221.in-addr.arpa
Servio Web
J imaginou a vida sem o nosso ami Agora imagine algo pior: o fim dos websites!
Nada de enciclopdias on line Nada de transaes bancrias via rede Nada de chats, jogos on line e facebook O fim das pesquisas de preo e compras on line
Servio Web
Servio WEB
WWW (World Wide Web) Teve incio em 1989, no CERN (centro europeu para pesquisa nuclear) Surgiu da necessidade de se criar uma ferramenta colaborativa para a troca de documentos entre grupos de cientistas de diferentes nacionalidades 1 prottipo da WWW: criado por Tim BernersLee em maro de 1989
Servio WEB
Aplicao mais usada na Internet Permite a publicao, recuperao, visualizao e navegao na estrutura hipertexto definida pelos documentos publicados na Internet Utiliza o protocolo HTTP (HyperText Transfer Protocol)
Esse protocolo define como as mensagens so formadas e transmitidas e quais aes os servidores web e browsers (navegadores) devem realizar em resposta aos vrios comandos.
Servio WEB
Documento Web = Pgina Web = Site Um site possui diversos objetos, com diferentes contedos e formatos HTML (HyperText Markup Language)
Linguagem para desenvolvimento de pginas web ela quem define como uma pgina web ser apresentada pelo navegador Contm referncias (links) aos demais objetos (imagens, por exemplo) que compem o documento/site
Servio WEB
Servio WEB
Toda requisio feita ao servidor web exige a realizao de um acesso ao disco para obter o arquivo. Assim, o servidor no pode atender a mais solicitaes por segundo que o nmero de acessos de disco que ele pode realizar. Soluo:
manter um cache na memria com os n arquivos mais recentemente usados. Antes de ir ao disco para obter um arquivo, o servidor verifica o cache. Se o arquivo estiver l, ele poder ser atendido diretamente da memria, eliminando assim o acesso ao disco
Conexo Persistente: O servidor mantm a conexo aberta, permitindo que requisies e respostas subsequentes sejam enviadas na mesma conexo.
Servio WEB
A verso 1.0 do protocolo HTTP suporta apenas conexes no persistentes O servidor web fecha uma conexo persistente aps um tempo de inatividade Em conexes persistentes, as requisies podem ser realizadas de duas formas:
Com paralelismo: o cliente envia diversas requisies antes mesmo de receber as respostas s requisies anteriores Sem paralelismo: o cliente envia uma nova requisio somente aps receber a resposta da requisio anterior.
Mtodos HTTP
Mtodos HTTP
O navegador requisita o servidor web local utilizando um mtodo GET O servidor web local serve como cache para pginas j consultadas anteriormente O servidor web local realiza uma consulta ao servidor web responsvel pela pgina, usando um mtodo GET condicional GET condicional verifica se os objetos do servidor web de cache esto atualizados. Possui a seguinte linha de cabealho:
If-Modified-Since
Se a pgina existente no cache do servidor local estiver atualizada, o servidor local responde requisio do cliente.
Padronizado nas RFCs 821 e 822 que especificam o protocolo SMTP (Simple Mail Transfer Protocol) e formato das mensagens, respectivamente. SMTP: Protocolo que define como as mensagens so enviadas. Utiliza a porta TCP 25.
Componentes
Agente de usurio (UA User Agent): o leitor de correio, programa usado pelo usurio para ler, compor e enviar mensagens. Ex.: Microsoft Outlook. Servidor de Correio (MTA Message Transfer Agent): responsvel pelo roteamento de mensagens na Internet. Ex.: sendmail
Spooling
Tcnica adotada pelo servio de correio eletrnico em que cada servidor mantm uma fila de mensagens (spool) que armazena temporariamente as mensagens at que seja possvel entreg-las.
Remetente
UA SMTP
Servidor de Correio
SMTP
UA
3.O servidor remetente envia ento a mensagem para o servidor de correios do destinatrio 4.O servidor do destinatrio armazena a mensagem na caixa de mensagens do usuiro 5.Quando o usurio destinatrio deseja ler a mensagem, usando um UA, ele acessa a mensagem armazenada em sua caixa de mensagens.
Estrutura da Mensagem
A mensagem composta por 3 partes: Envelope usado pelo servidor para entregar a mensagem. Contm os endereos do remetente e do destinatrio Cabealho Descreve caractersticas da mensagem Ex.: endereos do remetente (From) e do destinatrio (To), assunto da mensagem (Subject) Cada entrada possui um nome seguido por dois pontos (:) e o valor do campo Corpo Contedo da mensagem Deve conter apenas caracteres ASCII de 7 bits
ASCII
Cdigo ASCII (American Standard Code for Information Interchange) A memria do computador conserva todos os dados sob a forma numrica. No existe um mtodo para armazenar diretamente os caracteres. Cada caracter possui o seu equivalente em cdigo numrico: o cdigo ASCII. O cdigo ASCII bsico representava os caracteres em 7 bits (quer dizer 128 caracteres possveis, de 0 a 127).
MIME
Multipurpose Internet Mail Extensions Definida em 1992 pela IETF Especificao para formatao de mensagens no-ASCII Permite enviar e receber arquivos de imagens, udio e vdeos atravs do sistema de correio eletrnico S/MIME nova verso MIME que suporta mensagens criptografadas.
Estrutura da Mensagem
O UA adiciona o cabealho ao corpo da mensagem e envia o resultado para o servidor do usurio remetente. O servidor do usurio remetente adiciona algumas entradas no cabealho e envia o resultado ao servidor do usurio destinatrio. O servidor do usurio destinatrio adiciona algumas entradas no cabealho e armazena a mensagem na caixa de mensagens do usurio destinatrio.
FTP (File Transfer Protocol) Permite que arquivos completos sejam transferidos de uma estao para outra Envolve 2 componentes: Cliente FTP: possui um UA que prov uma interface de interao, permitindo ao usurio interagir com o cliente FTP para solicitar a transferncia de arquivos do servidor para o cliente e vice-versa Servidor FTP: processa as requisies de transferncia de arquivos dos clientes FTP.
Para acessar um servidor FTP, o usurio precisa: Ter uma conta particular de acesso no servidor ou Utilizar o usurio anonymous (annimo), que permite a qualquer usurio acessar o repositrio pblico de arquivos no servidor. O cliente e o servidor interagem usando comandos e respostas do protocolo FTP. (O UA converte os comandos do usurio em comandos FTP)
UA Cliente FTP
Porta 21
Servidor FTP
O envio de informaes de controle por uma conexo separada denominado sinalizao fora de banda (out-of-band).
Diferentemente do HTTP, o FTP um protocolo de estado, pois o servidor deve manter informaes locais sobre o estado de cada conexo de controle estabelecida. Em particular, o servidor deve associar a conexo de controle com uma conta de usurio especfica e deve monitorar o diretrio corrente do usurio enquanto ele passeia pela rvore do diretrio remoto Esse monitoramento limita o nmero de sesses que o FTP pode manter simultaneamente.
Camada de Transporte
Camada de Transporte
Tem a funo de fornecer servios de comunicao diretamente aos processos de aplicao que rodam em hospedeiros diferentes. Ela amplia o servio de entrega da camada de rede entre dois sistemas finais para um servio de entrega entre dois processos da camada de aplicao que rodam nos sistemas finais Um protocolo de camada de transporte fornece comunicao lgica entre processos de aplicao Comunicao lgica (ou comunicao fim-a-fim): do
ponto de vista de uma aplicao, tudo se passa como se os hospedeiros estivessem conectados diretamente (sendo que na verdade, eles podem estar em lados opostos do planeta).
Camada de Transporte
Protocolos de camada de transporte so implementados nos sistemas finais, mas no em roteadores de rede. No lado remetente, a camada de transporte converte as mensagens que recebe de uma aplicao em segmentos de camada de transporte. Isso feito fragmentando-se as mensagens de aplicao em pedaos menores e adicionando-se um cabealho a cada pedao Esses segmentos passam ento para a camada de rede, onde so encapsulados em datagramas e enviados ao destinatrio.
Camada de Transporte
No lado destinatrio, a camada de rede extrai do datagrama o segmento de camada de transporte e passa-o para a camada de transporte. Essa camada processa o segmento recebido, disponibilizando os dados para a camada destinatria. Na Internet, temos dois protocolos de transporte: TCP UDP
Camada de Transporte
Protocolos da camada de transporte fornecem comunicao lgica entre processos que rodam em hospedeiros diferentes Protocolos de camada de rede fornecem comunicao lgica entre hospedeiros Roteadores no reconhecem nenhuma informao que a camada de transporte possa ter anexado s mensagens da aplicao, nem agem sobre ela.
Camada de Transporte
Os servios que um protocolo de transporte pode fornecer so limitados pelo modelo de servio do protocolo subjacente da camada de rede (ex.: atraso, largura de banda). O protocolo IP (camada de rede) um servio de entrega de melhor esforo, o que significa que o IP faz o melhor esforo para levar segmentos entre hospedeiros comunicantes, mas no garante:
A entrega de segmentos A entrega ordenada de segmentos A integridade dos dados nos segmentos
Camada de Transporte
Multiplexao e demultiplexao
Ampliao do servio de entrega hospedeiro a hospedeiro (provido pela camada de rede) para um servio de entrega processo a processo (provido pela camada de transporte) Um processo pode ter um ou mais sockets (portas pelas quais dados passam da rede para o processo e do processo para a rede) A camada de transporte do host destinatrio entrega dados a um socket
Como podem haver mais de um socket no host, cada um tem um identificador exclusivo. O formato desse socket difere se ele UDP ou TCP
Camada de Transporte
Multiplexao
Tarefa de reunir, no host de origem, pores de dados proveniente de diferentes portas, encapsular cada poro de dados com informaes de cabealho para criar segmentos e passar esses segmentos para a camada de rede.
Demultiplexao
Tarefa de entregar os dados contidos em um segmento da camada de transporte porta correta
Camada de Transporte
Camada de Transporte
Porta
Nmero de 16 bits na faixa de 0 a 65.535 Portas bem conhecidas: de 0 a 1023. Esto reservadas para uso por protocolos de aplicao bem conhecidos, como HTTP (80), por exemplo Lista de nmeros de porta disponvel em http://www.iana.org Quando um segmento chega ao host de destino, a camada de transporte examina seu nmero de porta de destino e o direciona porta correspondente.
Camada de Transporte
Camada de Transporte
Um socket UDP identificado por uma tupla com dois elementos: Endereo IP de destino Nmero de porta de destino Se dois segmentos UDP tiverem IPs e portas de fonte diferentes, porm o mesmo IP e porta de destino, eles sero direcionados ao mesmo processo de destino, por meio do mesmo socket
Camada de Transporte
Camada de Transporte
Camada de Transporte
Camada de Transporte
Servidores web e TCP Quando clientes (browsers) enviam segmentos ao servidor, todos os segmentos tero a porta 80 como destino O servidor distingue os segmentos dos diferentes clientes pelo IP e porta de origem Servidores web geram um novo processo ou criam uma nova thread para cada nova conexo cliente
Camada de Transporte
Servidores web e TCP Cada um desses processos tem seu prprio socket de conexo atravs do qual chegam requisies HTTP e so enviadas respostas HTTP. Servidores web de alto nvel utilizam somente um processo e criam uma nova thread com um novo socket de conexo para cada nova conexo cliente
Camada de Transporte
Camada de Transporte
UDP
O UDP no se importa com a ordem dos segmentos. Simplesmente numera-os, transmiteos e os esquece Por isso, o UDP um protocolo no-confivel No estabelece um circuito virtual antes da transmisso, por isso um protocolo noorientado conexo
Camada de Transporte
Camada de Transporte
Camada de Transporte
Camada de Transporte
Camada de Transporte
TCP Aps o envio desses segmentos, o TCP aguarda uma confirmao da mquina receptora, retransmitindo os segmentos que no forem devidamente confirmados
Camada de Transporte
TCP Antes que a transmisso se inicie, o protocolo TCP da mquina origem contata o protocolo TCP da mquina destino para que uma conexo seja estabelecida. Essa conexo chamada circuito virtual. Esse tipo de comunicao chamado orientada conexo.
Camada de Transporte
TCP Durante esse aperto de mo (hand-shake) inicial, o protocolo TCP das pontas envolvidas tambm determina o volume de dados a ser transmitido antes de ocorrer a confirmao por parte do destinatrio. Com tudo acertado com antecedncia, o caminho para uma comunicao confivel est pavimentado
Camada de Transporte
TCP O TCP um protocolo full-duplex, orientado conexo e altamente confivel O TCP complexo, acarretando em grande custo em termos de cabealho (overhead)
Camada de Transporte
TCP Aps o envio desses segmentos, o TCP aguarda uma confirmao da mquina receptora, retransmitindo os segmentos que no forem devidamente confirmados
Camada de Transporte
Camada de Transporte
Camada de Transporte
Camada de Transporte
Camada de Transporte
Flags TCP
ACK: indica se o valor carregado no campo de reconhecimento vlido, ou seja, se o segmento contm um reconhecimento para o segmento que foi recebido com sucesso. RST, SYN e FYN: so usados para estabelecer e encerrar a conexo. PSH: indica que o destinatrio deve passar os dados para a camada superior imediatamente. URG: usado para mostrar que h dados nesse segmento que a entidade da camada superior do lado remetente marcou como urgentes.
Referncias
Livro: Redes de Computadores e a Internet. Autores: Kurose e Ross. 3 edio. Livro: Redes de Computadores. 4 Edio. Autor: Andrew S. Tanenbaum. Apotila: Arquitetura e Protocolos de Rede TCP/IP. Escola Superior de Redes (RNP). Um ami muito legal! =)