Serviços Diferenciados no NS2 “Tutoriais NS2” on-line, Xuan Chen, 2002 (Adaptado) 1 Serviços Diferenciados Definição de um pequeno número de classes de serviço Com requisitos de QoS associados Com filas de espera diferenciadas Marcação e Classificação de tráfego em classes de serviço Tratamento diferenciado dos pacotes De acordo com a classe 2 Serviços Diferenciados Grupos de Trabalho IETF Descrição da arquitectura –RFC 2475 Campo DS –RFC 2774 PHBs – RFC 2397 2598 Internet Drafts TF-Tant Ambiente experimental de teste de arquitectura e de serviços 3 Serviços Diferenciados QoS na Internet para agregações de fluxos Sem estado para cada fluxo de dados Sem sinalização para cada nó DS-Field Pacotes são marcados para receber serviços diferenciados nos Domínios DS Campo TOS do IPv4 ou Traffic Class do IPv6 Identifica o PHB (Per-Hop Behavior) Valores do DS-Field são chamados de DSCP (DiffServ Code Point) 4 Contratos e Serviços SLA: Service Level Agreement Contrato de serviço bilateral Identifica perfil de tráfego (ex. r = 1 Mbps, b = 100 Kb) Serviço: “tratamento global de um determinado subconjunto do tráfego de um utilizador dentro de um Domínio DS, ou fim a fim” PHBs + regras de policiamento = vários serviços O grupo de trabalho da IETF não vai normalizar os serviços fim a fim (para os utilizadores) 5 Contratos e serviços Para obter serviços diferenciados Cliente pode ser outro ISP Aspectos técnicos do contrato Especificação de Nível de Serviço (Service Level Agreement –SLS) Especifica Serviços pretendidos Perfil de tráfego Propriedades temporais do tráfego Regras de condicionamento de tráfego 6 Especificação do Nível de Serviço Parâmetros de Especificação de Serviços Identificação do Fluxo Descrição do tráfego Tratamento ao excesso Que fazer ao tráfego fora de perfil: descarte, remarcação,calibração? Desempenho: débito, atraso, perda, jitter Características do tráfego e parâmetros de conformidade Taxa de pico, parâmetros de token-bucket (b,r), MTU min/max Garantias qualitativas e quantitativas Temporização: activação/cancelamento do serviço Fiabilidade: tempo entre falhas 7 Arquitetura de Serviços Diferenciados Modelo Lógico SLA: Service Level Agreement Fonte SLA Destino Domínio SLA SLA SLA SLA Domínio Domínio Domínios proporcionam serviços especificados no SLA aos seus 8 clientes Arquitetura de Serviços Diferenciados Modelo Físico Policiamento de tráfego nos encaminhadores de fronteira Encaminhadores internos dão tratamento aos pacotes de acordo com o PHB indicado no DSCP 9 Arquitetura de Serviços Diferenciados Domínio DS Mundo Exterior SLA deve ser estabelecido Nós Interiores Nós de Fronteira Efectua Condicionamento de Tráfego Nós de Fronteira Nós Interiores Efectua Condicionamento de Tráfego Mundo Exterior SLA deve ser estabelecido Pacotes são adicionados a agregações de comportamento (behavior aggregates - BA) de acordo com o DS field 10 Per-Hop Behavior (PHB) Descreve o comportamento na expedição do tráfego agregado num nó DS Determina estratégia de alocação de recursos para construção de serviços diferenciados É especificado em termos de Pacotes com o mesmo DCSP Prioridade na obtenção de recursos (buffers, largura de banda) e características de tráfego (atraso, perdas) É concretizado por mecanismos de Gestão de Filas (ex. RED) Escalonamento (ex. WFQ, CBQ,...) 11 PHPs Normalizados PHB EF (Expedited Forwarding) (RFC 2598) Expedição expresso (acelerada) Baixa perda, atraso e variação do atraso (jitter) Preferência total de encaminhamento PHB AF (Assured Forwarding) (RFC 2597) Grupo de PHBs de expedição assegurada 4 classes de serviços com 3 níveis de descarte Define tratamentos diferenciados aos pacotes, do tipo “melhor que o melhor esforço” 12 Arquitectura DiffServ Três componentes principais: Gestor de políticas e de recursos… Cria políticas… Distribui as políticas pelos routers… Edge routers: fazem marcação dos pacotes Core routers: PHB 13 Routers DiffServ A diferenciação faz-se no interior dos routers Os routers Diffserv tem dois novos blocos funcionais: condicionador de tráfego e um policiador 14 DiffServ no NS2 passo a passo Definir os nós fronteira e interiores (Edge Routers e Core Routers) Configurar as filas de espera (Queues) Adicionar política: Entradas na tabela de políticas (policy table) Entradas na tabela de PHBs (PHB table) Obter resultados (estatísticas de uso) 15 Configuração dos “Routers” A distinção faz-se ao nível dos links: Distinguir os links entre “edge” e “core” Usar filas de espera “dsRED” em vez de “DropTail” $ns simplex-link $e1 $core 10Mb 5ms dsRED/edge $ns simplex-link $core $e1 10Mb 5ms dsRED/core Os links “edge” são os de entrada no domínio 16 Configuração das queues Aceder às queues: set qE1C [[$ns link $e1 $core] queue] set qCE1 [[$ns link $core $e1] queue] Configurar uma a uma: $qE1C $qE1C $qE1C … $qE1C meanPktSize $packetSize set numQueues_ 1 setNumPrec 2 Tamanho médio dos pacotes Nº Filas Físicas Nº Filas Virtuais configQ 0 0 20 40 0.02 Nº da fila física a configurar Nº da fila virtual a configurar Probabilidade de Descarte Limites RED: inferior e superior (em pacotes) 17 Queues Físicas e Virtuais Packet 3 0 1 Packet 4 1 1 v0 v1 2 1 physical queue scheduler Diffserv queue 18 Configuração das queues Configurar o escalonador (necessário quando há múltiplas filas) Definir o algoritmo a usar: RR, PRI, WRR, etc.. $qCE2 setSchedularMode PRI $qCE2 addQueueRate 0 3000000 Fila física Algoritmo de escalonamento a usar Debito máximo 19 Políticas e policiadores (edges) Adicionar entradas na tabela de políticas… $qE1C addPolicyEntry [$s1 id] [$dest id] TokenBucket 10 $cir0 $cbs0 Identificação do(s) fluxos a que a política se aplica Classificador/Policiador a usar Adiconar entradas na tabela de policiadores $qE1C addPolicerEntry TokenBucket 10 11 20 Policiadores suportados TSW2CM and TSW3CM Token bucket Single rate three color marker Two rate three color marker 21 Tabelas PHB Para que filas (física e virtual) vão os pacotes marcados em cada classe: $qE1C addPHBEntry 10 0 0 $qE1C addPHBEntry 11 0 1 Nos routers do interior só é necessária esta tabela, porque a marcação já foi feita na entrada do domínio pelos routers de fronteira… 22 Estatísticas $qE1C printPolicyTable $qE1C printPolicerTable $qE1C printStats Packets Statistics ======================== CP TotPkts TxPkts ldrops edrops -- ------- ------ ------ -----All 12494 5056 7438 0 10 2503 2503 0 0 11 2495 10 2480 5 23