CENTRO DE CIÊNCIAS EXATAS
DEPARTAMENTO DE COMPUTAÇÃO
REDES DE COMPUTADORES
HTTP
Metro Ethernet
André Ricardo Gonçalves
Daniel César Romano Luvizotto
Heber A. A. do Nascimento
Luiz Gustavo de Andrade dos Santos
Prof. Dr. Mário Lemes Proença Júnior
LONDRINA - PR
2007
Sumário
1 Hypertext Transfer Protocol
p. 4
1.1
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 4
1.2
Uniform Resource Locator . . . . . . . . . . . . . . . . . . . . . . .
p. 4
1.3
HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 5
1.4
Caracterı́sticas do protocolo . . . . . . . . . . . . . . . . . . . . . .
p. 6
1.5
Como funciona . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 8
1.6
Requisição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 9
1.6.1
Métodos Seguros e Idempotentes . . . . . . . . . . . . . . . p. 10
1.6.2
Definição dos Métodos de Requisição . . . . . . . . . . . . . p. 10
1.7
Resposta do Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
1.8
HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
1.9
1.8.1
SSL e TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
1.8.2
HTTP sobre TLS . . . . . . . . . . . . . . . . . . . . . . . p. 15
Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2 Metro Ethernet
p. 17
2.1
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
2.2
Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.3
Serviços Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
2.3.1
Parâmetro de Tráfego (Bandwidth Profile) . . . . . . . . . . p. 20
2.4
Identificadores de Classes de Serviços (CoS) . . . . . . . . . . . . . p. 22
2.5
Carrier Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
2.6
Aspectos Básicos de QoS . . . . . . . . . . . . . . . . . . . . . . . p. 23
2.7
Provider Bridge (PB) ou Q-in-Q
2.8
Provider Backbone Bridge (PBB) ou MinM . . . . . . . . . . . . . . p. 25
2.9
Provider Backbone Transport (PBT) . . . . . . . . . . . . . . . . . p. 25
. . . . . . . . . . . . . . . . . . . p. 23
2.10 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
Referências
p. 28
4
1
Hypertext Transfer Protocol
1.1
Introdução
A Internet é basicamente constituı́da por milhões de web pages, as conhecidas páginas de internet, que podem ser publicadas e acessadas de qualquer parte do mundo.
Essas páginas podem conter textos, imagens, filmes, sons, entre outros, que em conjunto com uma linguagem de marcação denominada HyperText Markup Language
(HTML), formam um página. As páginas são requisitadas por meio de um navegador (browser) que o usuário utiliza para solicitar e posteriormente apresentar a página
solicitada, do outro lado está o servidor que contém a página, ele é quem recebe a
solicitação envia a página que será interpretada pelo navegador, mostrando então a página ao usuário. A partir deste contexto o HyperText Transfer Protocol (HTTP) vêm
com o intuito de definir as regras de requisição/resposta e como deve ser transmitidos
esses dados.
1.2
Uniform Resource Locator
Para identificar cada página (recurso) na internet é atribuı́do a ela um nome, o
chamado URL (Uniform Resource Locators), que é utilizado com um esquema para
acessar um item, o URL é um subconjunto da URI (Uniform Resource Identifiers). Este
esquema define todos os atributos necessários para acessar aquela página na internet.
Abaixo é mostrado um exemplo de um esquema:
1.3 HTTP
5
http:
// hostname [: port] / path [:parameters][?query]
A parte em itálico denota o item a ser fornecido, e as partes entre colchetes “[...]”
denotam itens opcionais.
http: identifica o protocolo que esta utilizando;
hostname: é o nome do domı́nio ou o IP do servidor que contém o item solicitado;
port: é utilizado caso o servidor não utilize a porta padrão 80;
path: é o caminho que identifica o recurso no servidor;
parameters: são algum parametros adicionais fornecidos pelo cliente;
? query: é uma string opcional informando que o cliente está ouvindo uma questão.
Existem outras duas definições sobre a URL que são a URL Absoluta e Relativa.
URL absoluta é a especificação completa, exemplo
http://www.uol.com.br/esportes/formula1
e a URL relativa é a forma que omite o endereço do servidor, somente usado quando
o servidor é implicitamente conhecido.
1.3
HTTP
O HyperText Transfer Protocol que a partir daqui chamaremos de HTTP é um
protocolo da camada de aplicação do modelo OSI que é responsável por definir as
regras de emissão e recebimento de dados pela World Wide Web. A utilização do
protocolo é definida pela string http: na URL.
Segundo (COMER, 2006) o intuito original era de prover uma maneira de publicar
e resgatar páginas de hipertexto na web, o HTTP foi inicialmente apresentado em
1990, com nome de HTTP/0.9 que apenas transmitia dados no formato texto ASCII.
Este protocolo é classificado como um protocolo orientado a conexão, pois necessita
1.4 Caracterı́sticas do protocolo
6
estabelecer uma conexão para iniciar a troca de mensagens. Para que isso seja possı́vel o HTTP utiliza um protocolo para realizar esta tarefa, o TCP (Transfer Control
Protocol) é geralmente utilizado e usa como padrão a porta 80.
No inı́cio da era da Internet o intuito era apenas utilizar a rede para realizar trocas
de mensagens, mas com a explosão da internet foi necessitando o envio não somente de
textos, mas também de imagens, vı́deos e sons, tendo em vista esta necessidade surgiu
o HTTP/1.0 em 1996, descrito por meio da RFC 1945 por (BERNERS-LEE, 1996), que a
partir deste nova versão o protocolo passou a enviar mensagens no mesmo formato que
era utilizado para envio de e-mail e também da Multipurpose Internet Mail Extensions
(MIME). Segundo (BERNERS-LEE, 1996) o HTTP/1.0 utiliza muitas das construções
definidas pelo MIME, as poucas diferenças estavam ligadas a questão da otimização da
performance sobre as conexões binárias, para fornecer maior liberdade para os novos
tipos de mı́dias.
A versão utilizada atualmente é o HTTP/1.1 que foi apresentado em 1999 por
meio da RFC 2616 por (FIELDING, 1999). Esta versão do protocolo implementa alguns
outros recursos não suportados pela até então atual versão, segundo (FIELDING, 1999)
os procotolo HTTP1.0 não era suficiente para considerar os efeitos dos proxys, cache,
conexões persistentes e hosts virtuais. O HTTP também é utilizado como um protocolo
genérico para comunicação entre os agentes utilizadores e proxies/gateways para outros
sistemas, incluindo aqueles suportados pelo SMTP, NNTP, FTP, Gopher e WAIS,
permitindo o acesso à recursos disponı́veis em aplicações diversas (FIELDING, 1999).
As requisições são feitas a partir de métodos, que serão discutidos na secção 1.6.
Os métodos vão identificar que tipo de requisição o cliente esta realizando ao servidor.
E a resposta do servidor em relação à requisição é apresentado na seção 1.7.
1.4
Caracterı́sticas do protocolo
Algumas das principais caracterı́sticas da versão atual do HTTP (HTTP/1.1) são
apresentadas por (COMER, 2006) as quais são descritas abaixo:
1.4 Caracterı́sticas do protocolo
7
Nı́vel de Aplicação O protocolo HTTP trabalha no nı́vel de aplicação do modelo
OSI, sendo assim ele utiliza um protocolo de transporte orientado á conexão
como o TCP.
Requisição/Resposta Considerando a conexão já estabelecida, um cliente solicita
uma requisição HTTP para o um servidor que envia uma resposta a esta requisição.
Sem preservação de estado As requisições são independentes. Um servidor não
mantém as informações das requisições realizadas anteriormente.
Transferência Bi-direcional A transferência de dados é realizada de uma forma bidirecional, ou seja, tanto podem ser enviados dados do servidor para cliente,
exemplo o envio de uma página para o cliente, como do cliente para o servidor,
exemplo o envio de dados de um formulário.
Capacidade de Negociação O HTTP permite ao servidor e cliente a negociação de
detalhes como o conjunto de caracteres que serão utilizados durante a transferência. O emissor pode especificar suas capacidades oferecidas e o receptor as
suas capacidades aceitáveis.
Suporte à cache Para melhorar o tempo de resposta, o navegador armazena uma
cópia de todas as páginas recebidas. Caso o cliente solicitar uma página já
acessada anteriormente, o HTTP permite o navegador perguntar ao servidor se
a página foi alterada desde que a cópia foi armazenada.
Suporte à intermediários O HTTP permite as máquinas que estão entre o servidor
e o cliente, armazenar uma cópia das páginas que passam por ela, como se fosse
um servidor proxy e responde a uma requisição do cliente à esta cache.
1.5 Como funciona
1.5
8
Como funciona
O protocolo HTTP é definido principalmente para determinar como será o processo de requisição e resposta do cliente e servidor respectivamente. Entende-se por
requisição o ato de um cliente solicitar dados, uma página por exemplo, de um servidor
e por resposta entende-se como o retorno do servidor a esta solicitação.
A RFC 2616 (FIELDING, 1999) apresenta o processo de transmissão de dados utilizando o HTTP, inicialmente o cliente estabelece uma conexão com o servidor, após
estabelecida a conexão o cliente envia uma requisição em forma de método de requisição, o identificador do servidor (o Uniform Resource Identifier, URI), a versão do
protocolo que está sendo utilizada, seguido pela mensagem a ser enviada para o servidor. Após o recebimento desta requisição o servidor envia uma resposta que contém
uma linha de status, que inclui a versão do protocolo e o status-line que é um código
de retorno e a mensagem que contém informações sobre o servidor.
Até a versão HTTP/1.0, após este procedimento a conexão era encerrada, na
versão atual, HTTP/1.1, foi implementada o conceito de conexão persistente, que
mantém a conexão estabelecida, encerrando-a caso uma requisição incluir em seu
cabeçalho uma operação de fechamento de conexão, outra maneira é se a conexão
ficar ociosa por um determinado perı́odo de tempo.
A figura 1 apresenta o esquema de requisição/resposta definido pelo HTTP.
Figura 1: Esquema do funcionamento do procedimento requisição/resposta.
1.6 Requisição
1.6
9
Requisição
Para que um programa cliente (navegador) possa acessar uma página na internet,
ele solicita ao servidor uma cópia da mesma para apresentá-la na tela. Esta solicitação
é feita por meio de requisições, que são cabeçalhos que vão informar ao servidor qual
página ele deseja e algumas de suas caracterı́sticas.
Uma requisição é composta básicamente por 4 partes:
1. o método de definição da ação a ser realizada pelo servidor,
2. a URI que define o endereço do recurso que deve ser realizado a ação,
3. a versão do HTTP que utilizado (1.0 ou 1.1),
4. informações adicionais sobre o recurso e sobre o cliente.
Os métodos de definição da ação são discutidos na seção 1.6.2. A URI utilizada
pelo HTTP é a URL que define a localização do servidor e do caminho do recurso no
servidor, a URL foi apresentada na seção 1.2. Abaixo é apresentado um exemplo de
uma requisição.
GET /internet/index.html HTTP/1.0
User-agent: Mozilla/4.5b1 [en] (WinNT; I)
Accept: text/plain, text/html, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png
Accept-Charset: iso-8859-1,*,utf-8
Accept-Encoding: gzip
Accept-Language: en
O exemplo acima é uma requisição que solicita uma cópia da página que está na
URL relativa
/internet/index.html
, a versão do HTTP utilizada é a HTTP/1.0 e abaixo
algumas informações sobre o cliente, como o browser utilizado (Mozilla), o sistema
operacional utilizado (Windows NT), além de outras informações.
1.6 Requisição
1.6.1
10
Métodos Seguros e Idempotentes
A RFC 2616 (FIELDING, 1999) apresenta a definição de métodos seguros e idempotentes. Essas definições apresentam algumas caracterı́sticas dos métodos de requisição.
Um método seguro não deve ser utilizado para realizar mudanças nos dados contidos no servidor. Alguns exemplos de métodos seguros são os métodos GET e HEAD
que serão apresentados na seção 1.6.2. Um método é dito ser idempotente se o resultado de múltiplas requisições de um mesmo recurso for o mesmo resultado de uma
única requisição a este mesmo recurso. Alguns métodos que possuem esta caracterı́stica são GET, HEAD, PUT e DELETE.
1.6.2
Definição dos Métodos de Requisição
Abaixo serão apresentados os principais métodos de requisição presentes na versão
atual do protocolo, a HTTP/1.1, segundo a RFC 2616 (FIELDING, 1999).
GET Este solicita a recuperação de um determinado recurso. É o método mais utilizado, é um método não seguro, assim não pode ser utilizado para atualizar dados
em um servidor por exemplo e também é um método idempotente.
HEAD Este método é idêntico ao método GET, a exceção é que o servidor não retorna
o recurso, ele apenas retorna as informações do recurso.
POST É utilizado para requisitar que o servidor de origem utilize as informações
presentes no corpo da mensagem para criar um novo recurso subordinado ao
recurso especificado na URI. É responsável também em realizar processamento
que não são diretamente relacionadas ao recurso.
PUT É utilizado para atualizar um recurso especificado. Caso o recurso não exista,
um novo recurso é criado e o código de retorno 201 (Created) é emitido pelo
servidor indicando a ação executada. A principal diferença entre POST e o PUT
1.7 Resposta do Servidor
11
é forma que cada um interpreta o recurso especificado na URI, no caso do POST
a URI identifica o recurso que manipulará o recurso enviado, este recurso pode
ser um validador, um gateway pra outro protocolo e o PUT apenas identifica o
recurso incluido na requisição.
DELETE Utilizado para remover um recurso especificado pela URI. Caso não exista
nenhum recurso o servidor deve retornar o código de status 204 (Not Found)
informando que este recurso não existe.
OPTIONS Este método é utilizado para retornar informações sobre as opções da
comunicação, como os requerimentos associados a um recurso, as capacidades
do servidor, sem implicar em uma ação ou recuperação do recurso.
TRACE Utilizado para ecoar a requisição recebida, para o cliente saber o que os
servidores intermediários estão adicionando e/ou alterando na requisição.
CONNECT É usado com um proxy para que possa ser realizado um túnel, exemplo
para estabelecer uma conexão segura.
1.7
Resposta do Servidor
Quando o servidor recebe uma requisição de um cliente ele a analisa e tenta
executa-lá, após esta tentativa ele retorna uma reposta para o cliente informando
qual foi o resultado da ação. A resposta é um cabeçalho basicamente divido em três
partes:
• o código do status, que indicará ao cliente o resultado da execução,
• descrição da informação sobre o recurso solicitado,
• o recurso solicitado, um exemplo o código HTML de uma página.
Abaixo é apresentado um exemplo de uma resposta enviada pelo servidor após a
execução de uma requisição, esta requisição foi exemplificada na seção 1.6.
1.7 Resposta do Servidor
12
HTTP/1.0 200 Document follows
Date: Thu, 20 Aug 1998 18:47:27 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Fri, 14 Aug 1998 20:14:23 GMT
Content-length: 5807
Na primeira linha o código 200 identifica que a requisição foi executada com sucesso
e que a informação será retornada, nas linhas seguintes algumas caracterı́sticas do
servidor e do recurso solicitado. Na segunda linha a data da resposta, na terceira há
informações sobre o servidor e sua versão, na linha quatro o tipo do recurso solicitado
(um arquivo html), na quinta linha a data da última alteração do arquivo solicitado e
por fim o tamanho do documento que está sendo retornado.
Segundo (FIELDING, 1999) o código de status é um número de 3 dı́gitos, sendo que
o primeiro dı́gito corresponde a classe de respostas que o código pertence. As classes
definem uma curta descrição textual do código, e os dois últimos dı́gitos definem o
resultado mais detalhadamente. Há 5 classes distintas que são apresentadas abaixo:
1xx Informacional, a requisição foi recebida e o processo continua;
2xx Sucesso, a ação foi recebida com sucesso, compreendida e aceita;
3xx Redirecionamento, mais uma ação dever ser recebida em ordem para completar a
requisição;
4xx Erro no cliente, a requisição contém um erro de sintaxe ou não pôde ser completada;
5xx Erro no servidor, o servidor falhou em completar uma requisição aparentemente
válida.
1.7 Resposta do Servidor
13
Os valores dos principais códigos de status definido pelo HTTP/1.1 estão definidos
abaixo, a lista completa de todos os códigos de status suportados pelo HTTP/1.1 pode
ser vista em (FIELDING, 1999).
200 OK A requisição foi executada com sucesso.
201 Created A requisição foi completada e resultado em um novo foi criado.
202 Accepted A requisição foi aceita para processamento, mas o processamento não
foi completado.
301 Moved Permanently O recurso foi movido permanentemente para outra URI.
302 Found O recurso foi movido temporariamente para outra URI.
304 Not Modified O recurso não foi alterado.
401 Unauthorized A URI especificada exige autenticação do cliente. O cliente pode
tentar fazer novas requisições.
403 Forbidden O servidor entende a requisição, mas se recusa em atendê-la. O
cliente não deve tentar fazer uma nova requisição.
404 Not Found O servidor não encontrou nenhuma URI correspondente.
405 Method Not Allowed O método especificado na requisição não permitido para
o recurso indentificado pela URI. A resposta deve incluir um cabeçalho Allow
com uma lista dos métodos aceitos para aquele recurso.
410 Gone O recurso solicitado está indisponı́vel mas seu endereço atual não é conhecido.
500 Internal Server Error O servidor não foi capaz de concluir a requisição devido
a um erro inesperado.
502 Bad Gateway O servidor, enquanto agindo como proxy ou gateway, recebeu
uma resposta inválida do servidor upstream a que fez uma requisição.
1.8 HTTPS
14
503 Service Unavailable O servidor não é capaz de processar a requisição pois está
temporariamente indisponı́vel.
1.8
HTTPS
Inicialmente o HTTP foi criado para definir um simples esquema de requisição/resposta
que era suficiente até então. Quando começaram a surgir aplicações mais complexas, como vendas pela internet, foram surgindo necessidades de atribuir segurança a
este esquema, a partir disto foi apresentado o HyperText Transfer Protocol Security
(HTTPS), que nada mais é que o HTTP sobre uma camada de transporte segura,
como o Secure Sockets Layer (SSL) ou seu sucessor o Transport Layer Security (TLS).
O HTTPS não é um protocolo separado, mas sim uma referência a uma combinação de dois protocolos, o HTTP sobre um protocolo de segurança. A string https:
no inı́cio da URL indica que se trata de um esquema de comunicação de dados segura.
Na seção 1.8.1 serão apresentados os protocolos SSL e TSL e na seção 1.8.2 como
é usado o HTTP sobre o TLS.
1.8.1
SSL e TLS
O protocolos SSL e TLS são protocolos que proveêm comunicação segura na
internet. Segundo (COMER, 2006) o protocolo SSL foi originalmente desenvolvido pela
Netscape e atua na mesma camada como um API de socket.
O SSL funciona da seguinte maneira, suponhamos que um cliente utiliza o SSL
para conectar com o servidor, o SSL permite que ambos os lados se autentiquem, após
a autenticação os lados escolhem um algoritmo de encriptação de dados suportado por
ambos os lados. Finalmente o SSL permite que os dois lados estabeleçam um conexão
criptografada.
Definido inicialmente na versão 1.0 por meio da RFC 2246 por (DIERKS, 1999) em
1.8 HTTPS
15
1999, atualmente na versão o TLS/1.1 definido pela RFC 4346 por (DIERKS, 2006) o
protocolo TLS é o sucessor do SSL, que permite aplicações cliente/servidor se comunicarem de maneira que previne o eavesdropping (escuta), tampering (adulteração) e
message forgery (falsificação de mensagem).
1.8.2
HTTP sobre TLS
O HTTP sobre TLS é conceitualmente muito simples, ele usa o HTTP sobre o
TLS assim como usa-se o HTTP sobre o TCP (RESCORLA, 2000).
No HTTP sobre SSL utiliza-se portas TCP diferentes para identificar uma conexão
segura, a porta padrão é 443 e é adicionada uma camada de encriptação/autenticação
entre HTTP e o TCP, já no HTTP sobre TLS ele utiliza a mesma porta 80. A figura
2 apresenta o esquema do HTTP sobre TLS.
Figura 2: Esquema do HTTP sobre TLS
A conexão é inicializada quando o cliente envia um TLS ClientHello para iniciar o
processo de verificação da autenticidade handshake, após a autenticação o cliente pode
1.9 Conclusão
16
então enviar a primeira requisição HTTP. Todos os dados HTTP devem ser enviados
como se fossem dados de aplicação TLS.
Para o fechamento da conexão o TLS deve iniciar uma troca de alertas de fechamento, antes do real fechamento da conexão. O TLS também pode, depois de
enviadas alertas de fechamento, fechar a conexão mesmo antes do outro lado (servidor
ou cliente) ter enviado seu alerta, caracterizando o fechamento incompleto. Outro
caso chamado de fechamento prematuro ocorre quando um lado fecha a conexão sem
receber nenhum alerta.
1.9
Conclusão
O HTTP está atendendo bem até agora as necessidades da web, mesmo com seu
rápido crescimento, mas um projeto está sendo desenvolvido paralelamente, o protocolo
chamado HTTP-NG (HTTP New Generation), que está sendo desenvolvido a partir
do zero, mas utilizando a experiência que foi obtida até agora com o HTTP. O HTTPNG tem como objetivo diminuir o overhead, aumento da confiabilidade, aumento da
velocidade de acesso, entre outros. Em um futuro breve muitos conceitos devem mudar
na World Wide Web.
17
2
Metro Ethernet
2.1
Introdução
O mercado de redes cada vez mais busca por soluções com custo baixo e que
garantem qualidade de serviço. Com isso aumenta-se a interconexão entre as redes
corporativas distribuı́das geograficamente e com a Internet. Com isso Metro Ethernet
tem sido bastante visada, pois tem fácil interconexão, administração, boa granularidade
e é claro baixo custo.
Com o aparecimento de novos protocolos, visando aumentar a qualidade de serviço,
segurança para deixar semelhante as redes de circuito tradicionais, mas com as vantagens de rede de pacotes. O protocolo Ethernet tem sido dominante em redes LAN,
segundo (FRAULOD; PIACENTINI, 2006) mais de 98% do tráfego corporativo passa por
interfaces Ethernet, isto se deve por causa da facilidade de execução e o preço. Mas
isso não ocorre nas redes MAN e WAN, que usam serviços em ATM, Frame Relay e
linhas linhas privativas, todos um razoavelmente mais complicados e mais caros.
A definição de uma rede Metro Ethernet (Metropolitan Ethrnet Network) é uma
rede que interconecta LANs separadas geograficamente, e também interconectando-se
a uma rede WAN ou backbone operados através do provedor de serviços. Ilustrando
na figura 3.
As principais vantagens da utilização de uma rede Metro Ethernet estão descritas
abaixo:
2.2 Arquitetura
18
Figura 3: Esquema da rede Metro Ethernet
• Custo de planejamento e operacional mais baixo que redes comutadas tradionais;
• Equipamentos de menor custo;
• Facilidade de aumento de banda, melhor granularidade comparando com redes
de circuito comutado (E1/T1, E3/T3, SDH/SONET), por exemplo aumento da
banda de 1 Mbps a 1 Gbps em passos de 1 Mbps;
• Transmissão baseada em pacotes que comparada com transmissão em circuitos
é significativamente melhor;
• Permite a interconexão direta com as redes LAN (Interoperabilidade), não necessitando de protocolos, pois quase todas as redes Lan são baseadas em Ethernet.
2.2
Arquitetura
É utilizado um modelo genérico para descrever os componentes de externos e
internos da rede Metro Ethenet.
O fluxo Ethernet flow mostrado na figura 4 mostra o tráfego de dados fim-a-fim
entre dois equipamentos terminais, nos quais mostram o inı́cio e termino dos quadros
Ethernet. O interface que interliga o cliente à rede é chamado de UNI (User Network
Interface) e parte do cliente de UNI-C (User Network Interface Client) e do provedor
UNI-N (User Network Interface Network).
2.3 Serviços Ethernet
19
Figura 4: Arquitetura da rede Metro Ethernet
Um conceito muito importante em redes Metro Ethernet é a EVC conexão Ethernet
virtual (it Ethernet Virtual Connection), pois associa 2 ou mais UNIs, com o objetivo
de passar fluxo entre dois ou mais clientes, além de ajudar a visulaizar o conceito de
conexões eles podem ser comparados com os PVS no ATM. Existem dois tipos de
EVCs, o ponto-ponto (E-Line) e o multiponto-multiponto (E-LAN).
2.3
Serviços Ethernet
Os três principais fatores que influenciam na escolha de serviços Ethernet são:
1. Facilidade de uso através de uma interface padrão e bem conhecida;
2. Baixo custo por causa da produção dos equipamentos em larga escala;
3. Flexibilidade: modificação da banda em minutos ao contrário de dias e semanas
em outras redes.
4. Pode-se realizar diversos tipos de serviços utilizando a mesma interface.
O modelo básico para o serviços Ethernet é apresentado na 5, o equipamento do
cliente (CE = Customer Equipment) se interconecta à rede por meio da UNI através
de uma interface Ethernet padrão 10Mbps, 100Mbps, 1Gbps ou 10Gbps.
2.3 Serviços Ethernet
20
Figura 5: Modelo Básico
A figura 6 mostra os dois serviços Ethernet reconhecidos pelo Metro Ethernet
Forum MEF 1 , que consiste em uma aliança global de indústrias na área de comunicação
de dados, que possui como intuito desenvolver especificações técnicas na área de redes
Metro, e um resumo dos atributos e parâmetros.
2.3.1
Parâmetro de Tráfego (Bandwidth Profile)
O Bandwidth Profile diz o limite da taxa média de quadros de serviços Ethernet
que podem entrar na rede do provedor de serviços através de uma UNI. O MEF tem
definido três atributos de ıBandwidth Profile:
Perfil por UNI aplicados a todos os serviços que entram na rede pelo provedor UNI;
Perfil por EVC aplicados a quadros que passam por determinado EVC dentro da UNI;
Perfil por Indentificador CoS aplica-se a todos os quadros de um EVC identificados
pelos bits de prioridade da marcação (tag).
Cada um dos atributos possui 4 parâmetros de tráfegos:
1
www.metroethernetforum.org
2.3 Serviços Ethernet
21
Figura 6: Serviços Ethernet reconhecidos pelo MEF
1. Committed Information Rate (CIR): taxa média de desempenho de acordo com
desempenhos contratados (atraso, etc.) especificados por um SLA (Service Level
Agreement).
2. Committed Burst Size (CBS): define o número máximo de bytes permitidos por
quadros de serviços e são contados pelo CIR.
3. Excess Information Rate (EIR): taxa média excedente ao CIR, no qual o quadros
são entregues sem garantia.
4. Excess Burst Size (EBS): define o número máximo de bytes permitidos por quadros de serviços, e são contados pelo EIR.
Um meio eficiente de descrever se os quadros de serviços estão na média é através
do uso de cores, verde se estiver dentro do contrato SLA, amarelo não está de acordo,
mas não serão descartados imediatamente e vermelho que não está de acordo e serão
descartados imediatamente.
2.4 Identificadores de Classes de Serviços (CoS)
2.4
22
Identificadores de Classes de Serviços (CoS)
As redes Metro Ethernet necessitam oferecer várias classes de serviço (Cos) distintas, as quais são identificados através de:
• Porta fı́sica: apenas uma classe de serviço pode ser fornecida nesse caso;
• CE-VLAN CoS (802.1p): classe de serviço identificada pelas tags de VLAN do
cliente.
• DiffServ/IP TOS: neste caso o segundo byte do cabeçalho IP pode ser usado
para definir classes de serviço e que podem ser definidas até 8 classes.
2.5
Carrier Ethernet
O termo Carrier Ethernet significa oferecer serviços através de uma rede Metro
Ethernet Global com uma qualidade similar as encontradas nas redes comutadas, tentando manter o mesmo grau de simplicidade e o baixo custo que são encontrados nas
tı́picas redes LAN (FRAULOD; PIACENTINI, 2006).
O Metro Ethernet Fórum (MEF) propõem cinco atributos que distinguem uma
rede Carrier de uma rede LAN. São elas:
QoS : garantir um bom desempenho do tráfego com qualidade similar ao das redes
tradicionais;
Confiabilidade : capaz de se recuperar de falhar com tempo abaixo de 50ms; proteção
de caminho fia-a-fim;
Escalabilidade : suportar mais de 100.000 clientes;
Gerencia de serviços : monitorar, diagnosticar e centralizar a gerencia de redes,
configuração rápida e fácil da rede;
Serviços Padronizados : serviços globais com equipamentos padronizados.
2.6 Aspectos Básicos de QoS
2.6
23
Aspectos Básicos de QoS
Obtém-se qualidade se serviço através de uma combinação de técnicas que objetiva
garantir nı́veis de confiabilidade referente às necessidades dos clientes. O cliente vê a
qualidade de serviços como uma especificação técnica e operacional de nı́vel de serviço
(FRAULOD; PIACENTINI, 2006).
O protocolo Ethernet possui como uma de suas caracterı́sticas, proverem a cada
usuário um acesso compartilhado e semelhante à rede, de maneira que ocorra uma
mı́nima implementação nos equipamentos. Nas redes LAN, isto não é novidade, o
tráfego entre departamentos é separado através do uso de LANs virtuais VLANs.
2.7
Provider Bridge (PB) ou Q-in-Q
Segundo (FRAULOD; PIACENTINI, 2006) a forma mais simples e segura de assegurar
o isolamento de tráfego dentro da rede é através da utilização de VLANs. No padrão
802.1Q é encontrada a definição do funcionamento de VLAN, que resumidamente pode
ser definido como a utilização de um identificador para cada VLAN, este método de
utilização de identificador já vem sendo muito utilizado, assim está seria uma maneira
natural para as redes Metro Ethernet proverem o isolamento de tráfego entre os diversos
clientes. Mas, a utilização da norma 802.1Q em redes Metro Ethernet esbarra no
problema da quantidade e administração dos VLAN-IDs. Não há como o operador de
serviços gerenciar e assegurar que cada cliente utilize identificar de VLAN (VLAN-ID)
diferente dentro da rede metropolitana. Outro problema é a quantidade máxima de
identificadores oferecidos que é de 4096, este número é uma quantia muito limitada
em relação às dimensões da rede metropolitana, alem do fato de limitar o cliente na
criação de suas próprias VLANs internas.
Para solucionar tal problema, foi criado o conceito de tunelamento de VLANs que
esta na norma 802.1ad (FRAULOD; PIACENTINI, 2006). Este conceito é um mecanismo
muito simples, no qual uma VLAN é encapsulada dentro de outra VLAN conforme
2.7 Provider Bridge (PB) ou Q-in-Q
24
mostrado na 7. Este tunelamento permite uma completa separação do tráfego do
cliente. Assim o cliente conta com total liberdade de gerenciar suas C-VLANs. O
provedor tem à sua disposição até 4096 S-VLANs, suportando até 4k clientes/serviços.
Figura 7: Exemplo de tunelamento VLAN 34 dentro de uma VLAN 2
Conforme observado na 8 o formato cabeçalho do 802.1ad é bem parecido com
o do 802.1Q. A implementação da S-VLAN ocorre através da adição de quatro bytes
ao cabeçalho Ethernet após os campos de MAC de origem e destino, são inseridos
dois bytes correspondentes ao TCI (Tag Control Information). Diferentemente do
802.1Q, o bit quatro do primeiro byte do campo TCI, passa a ser chamado de DEI
(Drop Eligeble Indicator) (FRAULOD; PIACENTINI, 2006). A combinação dos três bits
de prioridade mais o bit DEI formam o conceito de PCP (Priority Code Point), que é
utilizado dentro da rede como parâmetro de descarte ou não dos pacotes.
Figura 8: Formato do frame 802.1Q
Pelo motivo de inserção ou remoção destes quatro bytes do cabeçalho, o 802.1ad
2.8 Provider Backbone Bridge (PBB) ou MinM
25
exige o recalculo do checksum do campo CRC do quadro Ethernet.
2.8
Provider Backbone Bridge (PBB) ou MinM
Como visto anteriormente, com o QinQ, o provedor de serviços tem apenas 4096
S-VLANs a sua disposição, este é um número muito reduzido tratando-se de redes
metropolitanas. Juntamente a isto surge o problema do tamanho das tabelas de roteamento que os switches da rede Metro Ethernet tem que manter.
O MinM é um padrão que é encontrado na norma 802.1ah que esta sendo desenvolvido para resolver o problema das tabelas (FRAULOD; PIACENTINI, 2006). No MinM,
os pacotes de S-VLAN são encapsulados por um novo cabeçalho, que possui um novo
MAC (B-MAC - Backbone MAC). Assim, os switches intermediários na rede Metro
Ethernet não precisam aprender todos os MACs de uma determinada S-VLAN, mas
somente os B-MAC que pertencem à rede do provedor. Então o funcionamento deste
novo padrão seria desta forma: acrescenta-se o novo cabeçalho os pacotes oriundos
de uma S-VLAN ao entrarem no backbone e na outra ponta, assim quando deixarem
o backbone, o cabeçalho acrescido é removido.
O uso do padrão MinM traz algumas vantagens como pro exemplo: simplifica
a operação, ou seja, o provedor pode planejar sua rede sem ter a preocupação de
conflitos relacionados a identificadores de VLANs ou de endereços MAC de seus clientes
(FRAULOD; PIACENTINI, 2006).
2.9
Provider Backbone Transport (PBT)
Segundo (FRAULOD; PIACENTINI, 2006) o conceito de PBT é similar ao PBB, à
diferença é que o PBT propicia túneis ponto-a-ponto entre localidades disjuntas, ele
pode ser usado para rodar paralelamente ao PBB ou pode substituı́-lo. Atualmente os
switches Ethernet encaminham pacotes baseados em uma tabela de encaminhamento
de 60 bits que inclui a marcação de VLAN (VID - 12 bits) e o endereço MAC (48 bits).
2.10 Conclusão
26
Assim quando um endereço não é conhecido, o switch faz um broadcast para todas as
portas, ao receber uma resposta por uma determinada porta, o switch associa este MAC
destino a essa porta e acrescenta esta informação a sua tabela de encaminhamento.
A idéia principal do PBT é justamente desabilitar a funcionalidade do Ethernet
relacionada ao broadcast, quando o destino não é conhecido. Agora no PBT se usa
o VID em conjunto com o MAC para resultar em um caminho pré-determinado com
caracterı́sticas previsı́veis.
Com o PBT o operador da rede pode correlacionar um VID com um caminho
principal na rede e um outro VID com um caminho de proteção. Assim se ocorrer
alguma falha no caminho principal o roteador começa a passar os pacotes pelo caminho
de proteção. A proposta de monitoramento do estado da conexão é utilizar o protocolo
802.1ag (FRAULOD; PIACENTINI, 2006). Uma sessão de conectividade (Connectivity
Check - CC) é estabelecida em ambos os caminhos. Ambas as pontas do enlace
enviam mensagens CC em intervalos regulares de 10ms (configurável) e ouvem as
mensagens que chegam da outra ponta. Se três mensagens CC não chegarem, o
enlace é considerado com falha e o caminho de proteção é ativado.
Assim, mecanismos de proteção com tempos inferiores a 50ms (padrão do SDH/SONET)
são possı́veis. O uso do PBT trás benefı́cios como: a rede torna-se mais robusta e
isolada de tempestades de broadcast, os roteadores do provedor não precisam aprender
endereços MAC dos clientes, permitindo assim, uma redução dos custos de equipamentos.
2.10
Conclusão
Hoje em dia os mais serviços requeridos pela área corporativa e que tem crescido
são as interconexões das redes LAN geograficamente distribuı́das e a conectividade com
a Internet. Assim, as redes Metro Ethernet tem se mostrado uma solução, devido as
grandes exigências de Qualidade de Serviço (QoS). Por este motivo novos protocolos
estão sendo desenvolvidos para suportar as redes Metro Ethernet com segurança e
2.10 Conclusão
27
muitos provedores de serviços já estão desenvolvendo ou pesquisando o seu uso, tanto
da rede Metro Ethernet quanto seus protocolos.
28
Referências
BERNERS-LEE, T. Hypertext Transfer Protocol – HTTP/1.0. IETF, maio 1996. RFC
1945. (Request for Comments, 1945). Disponı́vel em: <http://www.ietf.org/rfc/rfc1945.txt>.
COMER, D. E. Internetworking with TCP/IP, Priciples, Protocols and Architecture.
5. ed. Upper Saddle River, NJ: Pearson Prentice Hall, 2006. 487-497 p.
DIERKS, T. The TLS Protocol Version 1.0. IETF, jan. 1999. RFC 2246. (Request for
Comments, 2246). Disponı́vel em: <http://www.ietf.org/rfc/rfc2246.txt>.
DIERKS, T. The Transport Layer Security (TLS) Protocol Version 1.1. IETF, abr.
2006. RFC 4346. (Request for Comments, 4346). Disponı́vel em: <http://www.ietf.org/rfc/rfc4346.txt>.
FIELDING, R. Hypertext Transfer Protocol – HTTP/1.1. IETF, jun. 1999. RFC 2616.
(Request for Comments, 2616). Disponı́vel em: <http://www.ietf.org/rfc/rfc2616.txt>.
FRAULOD, D. M.; PIACENTINI, E. J. Metro ethernet. Pontı́fica Universidade
Católica do Paraná. Nov 2006. Disponı́vel em: <http://www.ppgia.pucpr.br/˜jamhour/Download/pub/Mestrado/Metro%20Ethernet.pdf>.
RESCORLA, E. HTTP Over TLS. IETF, maio 2000. RFC 2818. (Request for
Comments, 2818). Disponı́vel em: <http://www.ietf.org/rfc/rfc2818.txt>.
Download

HTTP Metro Ethernet