• Nenhum resultado encontrado

(CMNC)

4.1 - Introdução

No Capítulo 2 identificamos os aspectos que consideramos mais importantes para o desenvolvimento de uma ferramenta de simulação de redes ATM. Uma vez identificados estes aspectos, percebemos que este trabalho poderia tomar várias direções possíveis, dependendo principalmente da estratégia de modelamento adotada. Neste ponto, portanto, precisamos decidir qual seria esta estratégia.

Ainda no Capítulo 2, observamos que a melhor estratégia de modelamento a ser utilizada quando se está interessado em estudar um conjunto amplo de problemas é aquela que melhor otimiza a relação entre o nível de detalhamento dos modelos e a eficiência da simulação. Dentre as estratégias de modelamento descritas no Capítulo 2, verificamos que o modelamento no nível de taxas era o mais promissor, uma vez ele era mais eficiente e flexível que os demais. Entretanto, após estudarmos alguns trabalhos que envolviam a simulação de redes ATM [1][2][3][4][5][6], observamos que o modelamento fluído não permitia que certos aspectos importantes da tecnologia ATM fossem analisados adequadamente como, por exemplo, a estimação do atraso de transmissão de células (CTD – Cell Transfer Delay) e da variação de atraso de células (CDV – Cell Delay

Variation). Diante deste fato, na época, resolvemos dividir nosso trabalho na construção de dois

conjuntos de modelos para a simulação de redes ATM: um no nível de células (CMNC – Conjunto de Modelos no Nível de Células) e outro fluído (CMNT – Conjunto de Modelos no Nível de Taxas). A idéia era de que no final do nosso trabalho pudéssemos comparar as vantagens e as desvantagens de cada uma destas estratégias. Entretanto, o desenvolvimento do conjunto de modelos no nível de células e a realização de outras atividades necessárias para avaliar os modelos desenvolvidos (que serão apresentadas nos próximos capítulos), tais como a escolha de cenários de simulação, a configuração de contratos de tráfego ATM, a obtenção de seqüências de tráfego para simulação e a adaptação destas seqüências para a transmissão em redes ATM, acabaram consumindo um tempo muito maior do que o imaginado. Além disto, baseado na experiência que obtivemos durante o

44

desenvolvimento do CMNC, observamos que o tempo necessário para desenvolver o conjunto de modelos no nível de taxas seria ainda maior, uma vez que os modelos no nível de taxas são muito mais complexos do que os modelos no nível de células, e geralmente dependem do desenvolvimento de um sofisticado equacionamento matemático.

Neste capítulo descreveremos a estrutura e os modelos do CMNC. Iniciaremos fazendo uma descrição da estrutura do conjunto de modelos. Em seguida, apresentaremos os modelos desenvolvidos. No final do capítulo, descreveremos o funcionamento integrado destes modelos.

4.2 - Estrutura

A estrutura do CMNC é baseada em quatro blocos: aplicativo (App – Application), terminal faixa larga (BTE – Broadband Terminal Equipment), comutador (SW – Switch) e gerente (Managers). A Figura 4.1 ilustra esta estrutura. Estes blocos são interconectados entre si através de

conexões de blocos para formar a topologia da rede ATM a ser simulada. Com exceção do bloco

gerente, todos os outros blocos possuem camadas, que são utilizadas para modelar o Modelo de Referência de Protocolos da B-ISDN [7][8]. Além destas camadas, os blocos terminal faixa larga e comutador possuem ainda vários gerenciadores de tráfego, que são utilizados para modelar as funções de gerenciamento de tráfego ATM [9].

Os blocos aplicativos são responsáveis pela requisição, criação e deleção de conexões chaveadas ATM (SVCs – Switched Virtual Connections) [7][8] e pela transmissão de tráfego de pacotes através da rede ATM. Para tanto, possuem quatro camadas: camada requerente e removedora de conexões, camada finalizadora de conexões, camada fonte de tráfego e camada receptora de tráfego. O conjunto de modelos no nível de células possui quatro modelos de aplicativos: determinístico, poissoniano, externo e receptor.

45

Terminal Faixa Larga

Camada de Adaptação ATM

Camada ATM Camada Física de Entrada Camada Física de Saída Estrutura de Fila Escalonador Controle de Admissão de Conexões Gerencimento de Estrutura de Filas Descarte Seletivo de Células Camada ATM Camada Física de Entrada Comutador Estrutura de Fila Camada Física de Saída Escalonador Estrutura de Fila Escalonador Estrutura de Fila Escalonador Escalonador Controle de Admissão de Conexões Gerencimento de Estrutura de Filas Descarte Seletivo de Células Controle de Admissão de Conexões Gerencimento de Estrutura de Filas Descarte Seletivo de Células Controle de Admissão de Conexões Gerencimento de Estrutura de Filas Descarte Seletivo de Células

Camada Requeredora e Removedora de Conexões

Aplicativo

Camada Fonte de Tráfego

Camada Receptora de Tráfego Camada Finalizadora de Conexões

Gerente Gerenciadoresde Tráfego Camadas Sentido da transmissão de dados na rede. Matriz de Comutação com Memória Compartilhada Policiamento de Tráfego Policiamento de Tráfego Policiamento de Tráfego

Figura 4.1 – Estrutura do conjunto de modelos no nível de células.

O bloco terminal faixa larga modela um dispositivo de borda da rede ATM, como por exemplo, um cartão de interface de rede (NIC – Network Interface Card). Este modelo possui quatro camadas: camada de adaptação ATM, camada ATM, camada física de entrada e camada física de saída. Estas camadas modelam respectivamente as camadas: AAL, ATM e física do Modelo de Referência de Protocolos da B-ISDN. Além destas camadas, o BTE possui seis

gerenciadores de tráfego que implementam os seguintes modelos de algoritmos de gerenciamento

de tráfego ATM: estruturas de filas, escalonadores, algoritmos de controle de admissão de conexões, algoritmos de gerenciamento de estruturas de filas, algoritmos de descarte seletivo de células e algoritmos de policiamento de tráfego.

O bloco comutador modela um dispositivo de comutação de células ATM. Este modelo possui três camadas: camada ATM, camada física de entrada e camada física de saída, que modelam respectivamente as camadas: ATM e física do Modelo de Referência de Protocolos da B-

46

ISDN. Além destas camadas, o comutador ATM possui seis gerenciadores de tráfego que implementam os mesmos modelos de algoritmos de gerenciamento de tráfego existentes no BTE.

O bloco gerente modela o plano de controle do Modelo de Referência de Protocolos da B- ISDN. Este bloco não possui camadas e gerenciadores de tráfego.

Além destes blocos, camadas e gerenciadores de tráfego, a estrutura do CMNC possui ainda outros componentes que foram desenvolvidos com o objetivo de tornar o conjunto de modelos ainda mais eficiente, prático e robusto. São eles: mensagens, estruturas de dados auxiliares e

objetos auxiliares.

A partir da próxima seção apresentaremos todos os componentes da estrutura do CMNC, para que finalmente na seção 4.9 - possamos discutir por completo o funcionamento do conjunto de modelos desenvolvido. Dividiremos esta apresentação de acordo com os seguintes tópicos:

 Mensagens

 Estruturas de Dados Auxiliares  Objetos Auxiliares

 Camadas

 Gerenciadores de Tráfego  Blocos

4.3 - Mensagens

Veremos no Apêndice A todos os dados trocados entre os modelos através de eventos no Hydragyrum devem ser definidos como mensagens. Em nosso conjunto de modelos construímos seis mensagens derivadas da classe base Smessage. São elas:

 Pacote (Packet)  Célula ATM (Cell)

 Contrato de Tráfego (Traffic Contract)  Ficha (Token)

 Mensagem de Gerenciamento de Tráfego (TM_Message – Traffic Management Message)  Mensagem de Roteamento (RT_Message – Routing Message)

As mensagens Pacote, Célula e Ficha formam uma hierarquia que é utilizada para modelar a fase de transmissão de dados na rede ATM (veja a Figura 4.2). A Figura 4.2a mostra o processo real

47

de segmentção de um pacote de camada superior em duas células ATM. O conteúdo do pacote é transferido para as células ATM. Na Figura 4.2b é mostrado o modelo utilizado neste trabalho, no qual o conteúdo de um pacote não é passado para as células ATM. Ao invés disso, somente uma indicação do tamanho do pacote é informado. A identificação de qual pacote deu origem a quais células é feita através do uso de ponteiros. Portanto, toda estrutura de dados que representa uma célula ATM no simulador possui um ponteiro que permite identificar qual é o pacote que deu origem a esta célula. Além da célula ATM, também utilizou-se neste trabalho uma outra estrutura de dados chamada de ficha. A ficha é utilizada como uma espécie de “procurador” das células ATM, representando as mesmas quando estas são armazenadas em estruturas de filas e escalonadores (veja o final da seção 4.6.6.2 - ). As fichas também possuem ponteiros para identificar qual célula está sendo representada. A utilização de ponteiros permite o acesso rápido as informações, reduzindo o uso de memória. Os campos de informação presentes no Pacote, Célula e Ficha serão explicados nas subseções a seguir.

Campos de Informação Ponteiro para uma Célula Campos de Informação Ponteiro para um Pacote Pacote Célula ATM Célula ATM Pacote Célula Célula Ficha Ficha

a) Segmentação de pacotes em células ATM no

mundo real. b) Modelo utilizado neste trabalho.

Campos de Informação Campos de Informação Ponteiro para uma Célula Campos de Informação Ponteiro para um Pacote

Figura 4.2 – Hierarquia de objetos utilizada para modelar a fase de transmissão de dados na rede ATM.

As mensagens de Gerenciamento de Tráfego e de Roteamento são usadas para modelar a fase de estabelecimento de conexões na rede.

4.3.1 - Pacote

A estrutura de dados pacote é uma abstração de uma unidade de dados de protocolo (PDU –

48

dados entre aplicativos na rede. Cada pacote é associado a uma determinada conexão de dados e de

rede. A Figura 4.3 mostra a estrutura do pacote do CMNC.

Birth Time Length NCI DCI EoT FLAG NoC NoDC NoRC PDAM

Figura 4.3 – Estrutura do pacote.

O pacote possui os seguintes campos de informação:

 Birth Time (Tempo de Criação) – Este campo define o tempo em que o pacote foi criado.  Length (Tamanho) – Este campo define o tamanho do pacote (em bytes).

 NCI (Network Connection Identifier) (Identificador de Conexão de Rede) – Este campo identifica a que conexão de rede o pacote pertence, ou seja, qual é a conexão ATM que está carregando as células do pacote.

 DCI (Data Connection Identifier) (Identificador de Conexão de Dados) – Este campo identifica a que conexão de dados o pacote pertence.

 EoT FLAG (End of Transmition Flag) (Flag de Final de Transmissão) – Este indicador (flag) identifica se este pacote é o último pacote a ser transmitido em uma conexão de

rede antes da sua remoção.

 NoC (Number of Cells) (Número de Células) – Este campo contém o número de células em que o pacote foi fragmentado pela camada de adaptação ATM.

 NoDC (Number of Dropped Cells) (Número de Células Perdidas) – Este campo contém o número de células ATM perdidas durante o trânsito do pacote na rede. Toda vez que uma célula ATM é perdida na rede, o ponteiro que esta célula possui para o pacote que lhe deu origem é utilizado para incrementar este campo, computando a perda de células do pacote.

 NoRC (Number of Received Cells) (Número de Células Recebidas) – Este campo contém o número de células recebidas ao final do trânsito do pacote na rede. É utilizado da mesma forma que o campo anterior, porém para computar as células recebidas com sucesso.

 PDAM (Pointer to Dynamic Allocation Manager) (Identificador do Gerente de Alocação Dinâmica) – Este campo contém um ponteiro para o objeto auxiliar gerente de alocação

49

dinâmica. Isto permite que o pacote seja deletado e removido da lista de pacotes do gerente de alocação dinâmica.

O objeto pacote é implementado na classe Packet.

4.3.2 - Célula ATM

A célula ATM é uma PDU de 53 bytes [7][8]. É utilizada para transportar fragmentos de pacotes, que são segmentados na camada de adaptação ATM (AAL – ATM Adaptation Layer). Cada célula é associada a um determinado pacote. Portanto, é possível identificar através deste pacote a conexão de dados e de rede a que a célula pertence. A Figura 4.4 mostra a estrutura da célula ATM do CMNC, que possui os seguintes campos de informação:

 Birth_Time (Tempo de Criação) – Este campo armazena o instante de tempo em que a célula ATM foi criada. É utilizado para calcular o tempo gasto para transportar a célula desde o ingresso até o egresso da rede ATM.

 PTI (Payload Type Identifier) (Identificador de Tipo de Carga) – Este campo identifica o tipo de informação que a célula está transportando.

 CLP (Cell Loss Priority) (Prioridade de Perda de Células) – Este campo identifica a prioridade de descarte da célula.

 PPacket (Identificador do Pacote de Origem) – Este campo contém um ponteiro para o pacote que deu origem à célula.

 PDAM (Pointer to Dynamic Allocation Manager) (Identificador do Gerente de Alocação Dinâmica) – Este campo contém um ponteiro para o objeto auxiliar gerente de alocação dinâmica. Isto permite que a célula seja deletada e removida da lista de células do gerente de alocação dinâmica.

Birth Time PTI CLP EoP FLAG PPacket PDAM

Figura 4.4 – Estrutura da célula ATM.

A célula ATM do CMNC possui apenas dois campos do cabeçalho da célula ATM original [8]: PTI (Payload Type Identifier) e CLP (Cell Loss Priority). O campo de carga útil da célula ATM (payload) não foi implementado. Entretanto, é possível saber que informações estão sendo carregadas em cada célula através do campo PPacket, que aponta para o pacote que fora

50

previamente segmentado. A célula ATM implementada no Hydragyrum também não possui os identificadores de conexão virtual de caminho (VPI – Virtual Path Identifier) e de canal (VCI –

Virtual Channel Identifier) existentes no cabeçalho da célula ATM original. Estes campos foram

agrupados em um único campo chamado NCI – Network Connection Identifier.

4.3.3 - Contrato de Tráfego

Esta mensagem implementa um modelo para o contrato de tráfego definido pelo ATM

Forum na especificação TM 4.0 – Traffic Management Specification [10]. Atualmente, o modelo de

contrato de tráfego possui apenas as informações necessárias para o estabelecimento de conexões ATM unidirecionais. A Figura 4.5 mostra a estrutura do contrato de tráfego do CMNC, que possui os seguintes campos de informação:

 Service_Categorie (Categoria de Serviço) – Categoria de serviço do contrato de tráfego.  CLR (Cell Loss Ratio) (Taxa de Perda de Células) – Parâmetro negociável de qualidade

de serviço. Presente nos contratos de tráfego das categorias: CBR – Constant Bit Rate, RT-VBR – Real Time Variable Bit Rate e NRT-VBR – Non-real Time Variable Bit Rate.  Max CTD (Maximum Cell Transfer Delay) (Máximo Atraso de Transferência) –

Parâmetro negociável de qualidade de serviço. Presente nos contratos de tráfego das categorias CBR e RT-VBR.

 P2P CDV (Peak-to-peak Cell Delay Variation) (Variação de Atraso de Célula Pico-a- pico) – Parâmetro negociável de qualidade de serviço. Presente nos contratos de tráfego das categorias CBR e RT-VBR.

 PCR (Peak Cell Rate) (Taxa de Pico de Células) – Descritor de tráfego da fonte. Presente no contrato de tráfego de todas as categorias de serviço.

 SCR (Sustainable Cell Rate) (Taxa Sustentável de Células) – Descritor de tráfego da fonte. Presente nos contratos de tráfego das categorias RT-VBR e NRT-VBR.

 MBS (Maximum Burst Size) (Máximo Tamanho de Surto) – Descritor de tráfego da fonte. Presente nos contratos de tráfego das categorias RT-VBR e NRT-VBR.

 MCR (Minimum Cell Rate) (Taxa Mínima de Células) – Descritor de tráfego da fonte. Presente no contrato de tráfego da categoria ABR – Available Bit Rate.

 Conformance Definition (Definição de Conformidade) – Definição de conformidade do contrato de tráfego.

51

 PDAM (Pointer to Dynamic Allocation Manager) (Identificador do Gerente de Alocação Dinâmica) – Este campo contém um ponteiro para o objeto auxiliar gerente de alocação dinâmica. Isto permite que o contrato de tráfego seja deletado e removido da lista de contrato de tráfegos do gerente de alocação dinâmica.

Service

Categorie CLR Max CTD P2P CDV PCR SCR MBS

Conformance

Definition PDAM

Figura 4.5 – Estrutura do contrato de tráfego.

4.3.4 - Ficha

A ficha é utilizada para “guardar a vez” de uma célula em uma fila com prioridades. Ou seja, ao invés de armazenarmos diretamente as células ATM nas filas com prioridades, são armazenadas fichas, que apontam através de ponteiros para estas células. A principal razão para isto é que muitas vezes uma célula ATM precisa ser encaminhada para mais de uma fila com prioridades. Então ao invés de duplicar o objeto célula para que este seja encaminhado para cada fila, são alocadas fichas que representam esta célula em cada fila com prioridades. Um exemplo em que esta situação ocorre, é quando uma célula ATM precisa ser armazenada tanto na fila com prioridades de um gerenciador de tráfego que modela uma estrutura de filas (veja a seção 4.7.1 - ) quanto na fila com prioridades de um gerenciador de tráfego que modela um escalonador (veja a seção 4.7.2 - ). A Figura 4.6 mostra a estrutura da ficha do CMNC, que possui os seguintes campos de informação:

 Birth Time (Tempo de Criação) – Este campo contém o instante de tempo em que a ficha foi criada.

 PCell (Pointer to a Cell) (Identificador da Célula Associada) – Este campo identifica a qual célula a ficha está associada.

 PDAM (Pointer to Dynamic Allocation Manager) (Identificador do Gerente de Alocação Dinâmica) – Este campo contém um ponteiro para o gerente de alocação dinâmica. Isto permite que a ficha seja deletada e removida da lista de fichas do gerente de alocação dinâmica.

Birth Time PCell PDAM

52

4.3.5 - Mensagem de Gerenciamento de Tráfego

Esta mensagem é utilizada para a troca de informações de gerenciamento de tráfego entre

blocos, camadas e gerenciadores de tráfego. Possibilita informar aos algoritmos de

gerenciamento de tráfego as conexões de blocos, conexões de rede e conexões de dados de uma determinada célula a ser processada, bem como informar às camadas adequadas a respeito das células marcadas para serem descartadas. Permite também informar qual foi o contrato de tráfego negociado com a rede. A Figura 4.7 mostra a estrutura da mensagem de gerenciamento de tráfego do CMNC, que possui os seguintes campos:

 BCI (Identificador de Conexão de Blocos) – Este campo identifica a conexão de blocos de interesse.

 NCI (Identificador de Conexão de Rede) – Este campo identifica a conexão de rede de interesse.

 DCI (Identificador de Conexão de Dados) – Este campo identifica a conexão de dados de interesse.

 PCell (Pointer to a Cell) (Identificador da Célula Associada) – Este campo identifica a célula a ser utilizada pelos modelos de gerenciamento de estruturas de filas e de descarte seletivo.

 PTC (Pointer to a Traffic Contract) (Identificador de Contrato de Tráfego) – Este campo identifica o contrato de tráfego a ser utilizado pelos modelos de controle de admissão de conexões.

 PCells_Vector (Pointer to a Cells Vector) (Identificador de Vetor de Células a serem Descartadas) – Este campo identifica um vetor de células na qual devem ser inseridas as células a serem descartadas pelos modelos de descarte seletivo de células.

 PDAM (Pointer to Dynamic Allocation Manager) (Identificador do Gerente de Alocação Dinâmica) – Este campo contém um ponteiro para o objeto auxiliar gerente de alocação dinâmica. Isto permite que a mensagem de gerenciamento de tráfego seja deletada pelo gerente de alocação dinâmica.

BCI NCI DCI PCell PTC PCells

Vector PDAM

53

4.3.6 - Mensagem de Roteamento

Esta mensagem é utilizada para a troca de informações de roteamento entre as camadas do

bloco aplicativo e o bloco gerente. A Figura 4.8 mostra a estrutura da mensagem de roteamento

do CMNC, que possui os seguintes campos de informação:

 Source_App (Source Application) (Aplicativo Fonte) – Este campo identifica o aplicativo fonte da conexão de dados a ser estabelecida.

 Source_Layer (Source Layer) (Camada Fonte) – Este campo identifica a camada fonte da conexão de dados a ser estabelecida.

 Destiny_App (Destiny Application) (Aplicativo de Destino) – Este campo identifica o aplicativo de destino da conexão de dados a ser estabelecida.

 Destiny_Layer (Destiny Layer) (Camada de Destino) – Este campo identifica a camada de destino da conexão de dados a ser estabelecida.

 PTC (Pointer to a Traffic Contract) (Identificador de Contrato de Tráfego) – Este campo identifica o contrato de tráfego a ser utilizado pelos modelos de controle de admissão de conexões. Através deste ponteiro é possível acessar todas as informações contidas no contrato de tráfego.

 NCI (Identificador de Conexão de Rede) – Este campo identifica a conexão de rede a ser removida, uma vez que esta mensagem também é utilizada para encerrar conexões.  DCI (Identificador de Conexão de Dados) – Este campo identifica a conexão de dados

a ser removida, uma vez que esta mensagem também é utilizada para encerrar conexões.  PDAM (Pointer to Dynamic Allocation Manager) (Identificador do Gerente de Alocação

Dinâmica) – Este campo contém um ponteiro para o modelo auxiliar gerente de alocação dinâmica. Isto permite que a mensagem de roteamento seja deletada pelo gerente de alocação dinâmica. Source App Source Layer Destiny App Destiny

Layer PTC NCI DCI PDAM

54

4.4 - Estruturas de Dados Auxiliares

Estruturas de dados auxiliares são utilizadas para guardar informações que serão utilizadas nos objetos auxiliares (veja a próxima seção). O CMNC possui três estruturas de dados auxiliares: variável estatística simples, variável estatística média e arquivo.

4.4.1 - Variável Estatística Simples

A variável estatística simples é uma estrutura de dados utilizada para armazenar uma variável estatística de um determinado modelo. Uma variável estatística é um dado público ou privado de uma classe cujo valor é relevante para representar a evolução do comportamento de um determinado modelo no tempo. A Figura 4.9 mostra a estrutura da variável estatística simples, que possui os seguintes campos de informação:

 Type (Tipo) – Este campo contém o tipo da variável estatística (Sstring).  Value (Valor) – Este campo contém o valor da variável estatística (double).

Type Value

Figura 4.9 – Estrutura das variáveis estatística simples.

4.4.2 - Variável Estatística Média

A variável estatística média é um uma estrutura de dados utilizada para armazenar uma variável estatística média de um modelo. Uma variável estatística média é um dado público ou privado de uma classe cujo valor é relevante para representar a evolução média do comportamento de um determinado modelo no tempo. A Figura 4.10 mostra a estrutura da variável estatística

Documentos relacionados