experimentação ambiente de algoritmos de adaptação de ... · manipulação tráfego com tc e...
TRANSCRIPT
![Page 1: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/1.jpg)
Ambiente de Experimentação
Teste de efetividade de algoritmos de adaptação de
vídeo
![Page 2: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/2.jpg)
Tópicos:● Servidor
● Aplicação de teste
● Manipulação tráfego com TC e HTB
● Cenários
● Estudo para de gráficos
![Page 3: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/3.jpg)
ServidorRequisitos:
![Page 4: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/4.jpg)
ServidorRequisitos:
1. Servidor Físico
1
![Page 5: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/5.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP
1
2
![Page 6: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/6.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP
1
2
![Page 7: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/7.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP 3. Vídeos
1
2
3
![Page 8: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/8.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP 3. Vídeos
1
2
3
![Page 9: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/9.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP 3. Vídeos4. Aplicação server
1
2
3
4
![Page 10: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/10.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP 3. Vídeos4. Aplicação server
1
2
3
4
![Page 11: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/11.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP 3. Vídeos4. Aplicação server5. Rotas Log
1
2
3
45
![Page 12: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/12.jpg)
ServidorRequisitos:
1. Servidor Físico2. Pilha LAMP 3. Vídeos4. Aplicação server5. Rotas Log
1
2
3
45
![Page 13: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/13.jpg)
Servidor
![Page 14: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/14.jpg)
Servidor
ServerClients
Internet
![Page 15: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/15.jpg)
4. Aplicação server:
Aciona o servidor para que o mesmo fique esperando (ouvindo) requisições realizadas por aplicações clientes (app).
Servidor
![Page 16: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/16.jpg)
5. Rota para log:
Servidor
![Page 17: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/17.jpg)
5. Rota para log:
Servidor
![Page 18: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/18.jpg)
5. Rota para log:
Servidor
![Page 19: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/19.jpg)
5. Rota para log:
Servidor
![Page 20: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/20.jpg)
Aplicação de testePara usar e/ou editar o código fonte da app, faz-se necessário:
1. Android Studio. Download disponível em:
https://developer.android.com/studio/index.html
2. Conta GitHub para criar fork do projeto. Código Fonte disponível em:
https://github.com/juninhocruzg3/VideoStreaming
![Page 21: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/21.jpg)
Aplicação de testeNome: Video-Streaming
● Player reprodução● Geração de logs de
chunk e travamentos
● Geração de gráficos
para avaliação.
![Page 22: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/22.jpg)
Aplicação de testeNome: Video-Streaming
● Player reprodução● Geração de logs de
chunk e travamentos
![Page 23: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/23.jpg)
Aplicação de testeNome: Video-Streaming
● Player reprodução● Geração de logs de
chunk e travamentos
![Page 24: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/24.jpg)
Aplicação de testeNome: Video-Streaming
● Player reprodução● Geração de logs de
chunk e travamentos
![Page 25: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/25.jpg)
Aplicação de testeAtravés da aplicação colhemos logs (informações) relativas a reprodução do vídeo e suas adaptações ao longo do tempo.
![Page 26: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/26.jpg)
Aplicação de testeAtravés da aplicação colhemos logs (informações) relativas a reprodução do vídeo e suas adaptações ao longo do tempo.
![Page 27: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/27.jpg)
Aplicação de testeAo final da reprodução enviamos as informações para o servidor atráves da aplicação server e rotas de post específica.
![Page 28: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/28.jpg)
Aplicação de testeAo final da reprodução enviamos as informações para o servidor através da aplicação server e rotas de post específica.
![Page 29: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/29.jpg)
Aplicação de testePara visualização dos resultados,
apenas deve-se entrar com o nome da equipe, escolher a sessão que deseja.
![Page 30: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/30.jpg)
Aplicação de testePara visualização dos resultados,
apenas deve-se entrar com o nome da equipe, escolher a sessão que deseja.
![Page 31: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/31.jpg)
Aplicação de testePara visualização dos resultados,
apenas deve-se entrar com o nome da equipe, escolher a sessão que deseja.
![Page 32: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/32.jpg)
Manipulação tráfego com TC e HTB● O que é TC?
Do inglês Traffic Control, ferramenta do sistema linux disponível a partir do kernel 2.2 para controlar o tráfego de rede.
● Diferenças entre controle de tráfego e controle de banda:
Banda (ou bandwidth): É a diferença entre os limites superior e inferior de uma frequência, geralmente medida em hertz.
Tráfego: Quantidade de informações digitais transmitidas, geralmente medida em bits por segundo (b/s).
![Page 33: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/33.jpg)
Manipulação tráfego com TC e HTBConceitos
Para utilizarmos o controle de tráfego com HTB temos que saber que o Linux possui os seguintes componentes para o controle de tráfego, são eles:
■ qdisc
■ class
■ filters
![Page 34: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/34.jpg)
Manipulação tráfego com TC e HTB■ QDISC
■ Os qdiscs (qdisc é abreviação de Queueing Discipline - algo como Disciplina de Enfileiramento)
nada mais são do que as filas de saída dos pacotes. O Linux possui dois tipos de qdisc:
classless e classfull.
■ Os qdiscs classless não podem conter classes definidas pelo usuário, porém os qdiscs classfull
podem conter subclasses definidas pelo usuário, podendo desta forma separar e atribuir
quantidades de banda diferentes para cada tipo de fluxo definido.
![Page 35: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/35.jpg)
Manipulação tráfego com TC e HTBCLASSFULL QDISCS
O HTB é um qdisc com suporte a classes, por isso ele pode ser usado como um qdisc (escalonador) ou apenas
uma classe. Quando utilizado com uma classe, ele possui o parâmetro opcional "default", que indica a
subclasse por onde o pacote deve ir quando não for classificado por nenhum filtro definido pelo usuário.
Como escalonador o HTB possui, dentre outros, os seguintes parâmetros :
■ rate - velocidade de transmissão dos pacotes.
■ ceil - velocidade total da classe superior. Utilizado para fazer o "borrowing", ou seja, empréstimo de banda
excedente de uma classe para outra.
![Page 36: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/36.jpg)
Manipulação tráfego com TC e HTB■ CLASS
■ As classes só existem em qdiscs classfull, elas são utilizadas para dividir o tráfego, para assim
se necessário dar um tratamento diferenciado. Existem dois tipos de classes, as "leafs" (ou
"folhas"), que são classes que não possuem "filhos" e as "inner" (ou "internas"), que são
classes que possuem "filhos".
■ FILTER
■ Os filtros têm a função de separar o tráfego entre as diversas classes de um qdisc classfull.
Esta função é feita através de classificadores.
![Page 37: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/37.jpg)
Manipulação tráfego com TC e HTBCLASSIFICADORES
Os classificadores no Linux são utilizados para identificar certas características e/ou padrões dos
pacotes e fluxo, permitindo assim a separação em classes.
U32:
O u32 é um classificador muito bom e que possui uns parâmetros interessantes, no qual é
possível identificar IP de origem/destino, porta de origem/destino e até mesmo o protocolo.
![Page 38: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/38.jpg)
Manipulação tráfego com TC e HTB➔ Disciplinas de controle de tráfego● Classless
PFIFO (Packet First In First Out)
PFIFO Fast (Packet First In First Out Fast - default no Kernel Linux)
RED (Random Early Detection)
SFQ (Stochastic Fair Queuing)
TBF (Token Bucket Filter)
![Page 39: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/39.jpg)
Manipulação tráfego com TC e HTB● Classful
CBQ (Class Based Queueing)
PRIO (Hierarchy Token Bucket)
HTB (Priority class)
![Page 40: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/40.jpg)
Manipulação tráfego com TC e HTB● Classful
CBQ (Class Based Queueing)
PRIO (Hierarchy Token Bucket)
HTB (Priority class)
Atualmente, a melhor alternativa para o controle de tráfego é a associação do HTB com o PRIO.
![Page 41: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/41.jpg)
Manipulação tráfego com TC e HTBTC usa as seguintes unidades de medidas:
kbps: Kilobytes por segundos
mbps: Megabytes por segundos
kbit: Kilobits por segundos
mbit: Megabits por segundos
bps: Bytes por segundos
![Page 42: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/42.jpg)
Manipulação tráfego com TC e HTBAs quantidades de dados podem ser especificadas em:
kb or k: Kilobytes
mb or m: Megabytes
mbit: Megabits
kbit: Kilobits
![Page 43: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/43.jpg)
Manipulação tráfego com TC e HTB➔ Como funciona o HTB
O HTB funciona de forma hierárquica e controla os pacotes que saem de uma determinada placa de rede. O pacote entra e é armazenado no buffer. Assim, só resta controlar sua saída do buffer para a rede.
![Page 44: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/44.jpg)
Manipulação tráfego com TC e HTB➔ Como funciona o HTB
O HTB funciona de forma hierárquica e controla os pacotes que saem de uma determinada placa de rede. O pacote entra e é armazenado no buffer. Assim, só resta controlar sua saída do buffer para a rede.
![Page 45: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/45.jpg)
Manipulação tráfego com TC e HTBO HTB possui um elemento principal conhecido como root, que receberá a designação numérica 1:0 ou, simplesmente 1:. o root possui um subordinado imediato, que controla o tráfego máximo total possível. Esse subordinado é uma classe e receberá a designação 1:1
![Page 46: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/46.jpg)
Manipulação tráfego com TC e HTBO HTB possui um elemento principal conhecido como root, que receberá a designação numérica 1:0 ou, simplesmente 1:. o root possui um subordinado imediato, que controla o tráfego máximo total possível. Esse subordinado é uma classe e receberá a designação 1:1
![Page 47: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/47.jpg)
Manipulação tráfego com TC e HTBCONFIGURAÇÃO DO CONTROLE DE TRÁFEGO
A configuração do controle de tráfego é feita toda através do comando tc, que tem a forma geral mostrada abaixo:
tc [opções] OBJETOS PARÂMETROS
Os OBJETOS do tc, como já foram conceituados, são: qdisc, class, filters.
Exemplos de comandos:
# tc qdisc
Utilizamos o objeto qdisc para adicionar, remover ou listar qdiscs.
![Page 48: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/48.jpg)
Manipulação tráfego com TC e HTBADICIONANDO E REMOVENDO QDISCS
Para adicionar um qdisc precisamos indicar a interface, qual é o "handle" ou "identificador" do qdisc, quem é o
"pai" do qdisc e por final o tipo de qdisc e suas opções. Se estivermos adicionando um "qdisc root", seu pai
será o root, já para uma classe X:Y, devemos usar o "parent X:Y".
Adicionando um qdisc classfull e definindo a classe padrão:
# qdisc add dev eth0 root handle 1: htb default 10
Adicionando qdisc a uma classe:
# tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
Para remover qdiscs basta substituir a opção "add" por "del".
![Page 49: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/49.jpg)
Manipulação tráfego com TC e HTBLISTAR QDISCS
Para listar qdiscs basta utilizar a opção "show" seguida da interface de rede, por exemplo:
# tc qdisc show dev eth0
TC CLASS
As "class" funcionam como uma subdivisão de classes dentro do qdisc classfull, permitindo desta
forma a separação do tráfego entre outras class/qdiscs.
![Page 50: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/50.jpg)
Manipulação tráfego com TC e HTBLISTANDO CLASSES
Para listar classes basta utilizar a opção "show". Temos ainda como parâmetro a opção -s, que
mostra a quantidade de bytes enviados e pacotes e a opção -d, que mostra a descrição da
classe, com seu tipo e opções adicionadas, como exemplo abaixo.
# tc -s -d class dev eth0 root
![Page 51: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/51.jpg)
Manipulação tráfego com TC e HTBHTB já com algumas classes (dentro de um script em shell bash):
#!/bin/bash
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1:0 htb default 40
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 100kbit ceil 300kbit prio 0 # DNS / ACK / SYN
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 500kbit ceil 800kbit prio 1 # E-MAIL
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1200kbit ceil 1600kbit prio 2 # HTTP / HTTPS
tc class add dev eth0 parent 1:1 classid 1:40 htb rate 300kbit ceil 500kbit prio 3 # GERAL
![Page 52: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/52.jpg)
Manipulação tráfego com TC e HTB
![Page 53: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/53.jpg)
Manipulação tráfego com TC e HTBPense nisso…
![Page 54: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/54.jpg)
Manipulação tráfego com TC e HTBFoi necessário criar script em python para que a cada janela de tempo fosse
modificado os valores para largura de banda, perda de pacote e atrasos. Código completo de controle de tráfego (shell script) e código para modificação de valores de acordo com o tempo de cenários estabelecidos, disponíveis em:
https://github.com/VDBergF/Scenario
![Page 55: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/55.jpg)
Manipulação tráfego com TC e HTBTutorial download HTB disponível em:
http://guiadoti.blogspot.com.br/2013/01/controle-de-banda-com-htb-tools.html
Mais informações e detalhes TC e HTB:
http://www.tldp.org/HOWTO/Traffic-Control-HOWTO/
http://br-linux.org/tutoriais/001794.html
https://www.vivaolinux.com.br/artigo/Controle-de-trafego-utilizando-HTB-no-Debian-Sarge
![Page 56: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/56.jpg)
CenáriosOs cenários que constituem o ambiente, foram coletados por um projeto italiano chamado Neubot. Neubot é um projeto de pesquisa e desenvolvimento que estuda a Internet, executando medições a partir das bordas. Estudando o desempenho em banda larga, neutralidade de rede e censura na Internet. E desenvolvendo software de código aberto e publicar os dados coletados pelo software como dados abertos.
![Page 57: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/57.jpg)
CenáriosPublicações relacionadas:
● Simone Basso, Antonio Servetti, Enrico Masala, Juan Carlos De Martin
Measuring DASH Streaming Performance from the End Users Perspective using Neubot
21-24 March 2014
Proceedings of the ACM Multimedia Systems (MMSys) 2014
● Giuseppe Futia, Enrico Zimuel, Simone Basso, Juan Carlos De Martin
The NeuViz Data Visualization Tool for Visualizing Internet-Measurements Data
3 March 2014
Mondo Digitale
![Page 58: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/58.jpg)
CenáriosOs cenários são tratados por turnos. De forma a executar testes com cenários específicos colhidos pela manhã, tarde ou noite, dependendo do horário do teste, um destes é usado ou simulado para retratar a largura de banda de determinados horários.
![Page 59: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/59.jpg)
CenáriosLargura de banda medida
a partir da operadora Claro,
no estado de São Paulo no
horário de 10 às 12h
![Page 60: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/60.jpg)
CenáriosLargura de banda medida
a partir da operadora Claro,
no estado de São Paulo no
horário de 19 às 23h.
![Page 61: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/61.jpg)
CenáriosPara os testes da disciplina serão realizadas sessões de 15 minutos com 3 (três) clientes compartilhando a mesma rede, porém da mesma equipe.
![Page 62: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/62.jpg)
CenáriosExemplo de entrada para as sessões.
1ª coluna horário coleta.
2ª coluna tempo e. segundos que a coleta foi
feita.
3ª coluna largura de banda observada.
![Page 63: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/63.jpg)
Estudo para geração de gráficosComo a qualidade de uma sessão é medida?
![Page 64: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/64.jpg)
Estudo para geração de gráficosComo a qualidade de uma sessão é medida?
● Quantitativas:
● Qualitativas:
![Page 65: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/65.jpg)
Estudo para geração de gráficosComo a qualidade de uma sessão é medida?
● Quantitativas:- Taxa média de bits
● Qualitativas:- Stalls (Travamentos)- Instabilidade (Amplitude e quantidade)- Justiça
![Page 66: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/66.jpg)
Estudo para geração de gráficos● Taxa média de bits:- média da taxa de bit de segmento.
f(i), função que retorna o bitrate do segmento i.Di, duração do segmento.Ts, tempo de sessão.
![Page 67: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/67.jpg)
Estudo para geração de gráficos● Instabilidade:- Instabilidade do algoritmo de adaptação.- Captura o impacto da captura de troca de qualidade para o usuário.- Valor entre 0-1 (maior instabilidade)- Observa a instabilidade nos últimos k segmentos.
bx,t taxa de bits do segmento i.K, tamanho da janela em segmentos.W(i) = k-i (Função de penalidade linear)
![Page 68: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/68.jpg)
Estudo para geração de gráficos● Justiça:- Mede o grau de justiça no compartilhamento dos recursos;- Relação entre o recurso esperado (cenário ideal), e o recurso recebido- Valor entre 0-1(Justo).
N, número de clientes;Xi , é a razão entre a quantidade de recursos esperado pelo recursos recebidoRecurso esperado = razão entre a taxa média do conjunto de vídeo pela quantidade de clientes, multiplicado pela média de largura de banda (cenário)Recurso recebido = taxa média de bits;
![Page 69: Experimentação Ambiente de algoritmos de adaptação de ... · Manipulação tráfego com TC e HTB CLASSFULL QDISCS O HTB é um qdisc com suporte a classes, por isso ele pode ser](https://reader033.vdocuments.pub/reader033/viewer/2022041716/5e4bc8c86e358b4ccb39cc29/html5/thumbnails/69.jpg)