• Nenhum resultado encontrado

Comando utilizado para geração de tráfego (stream tcp) com o netperf:

root@noterss:/usr/local/geradores/netperf/bin# ./netperf -f M -H 192.168.1.1

Resultado:

TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.1 (192.168.1.1) port 0 AF_INET Recv Send Send

Socket Socket Message Elapsed

Size Size Size Time Throughput bytes bytes bytes secs. MBytes/sec 87380 16384 16384 10.01 10.99

B PRIMEIRA APLICAÇÃO DE CAPTURA DE TRÁFEGO

/***************************************************************************

* Copyright (C) 2007 by Ramicés dos Santos Silva * * [email protected] * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/

#ifdef HAVE_CONFIG_H

#include <config.h>

#endif

#include <stdio.h>

#include <pcap.h> // a biblioteca da libpcap

#include <stdlib.h>

#include <string.h>

int f_stat(pcap_t *cap, struct pcap_stat *ps) {

FILE *fp;

const char *s;

if( (pcap_stats( cap, ps )) == -1 )

{ printf("pcap_stats error\n"); exit(1); }

printf("Received: %d\nDroped: %d\n", (int *)ps->ps_recv, (int *)ps->ps_drop );

printf("Percent: %d\n",(ps->ps_drop)/(ps->ps_recv));

/* Nome para o arquivo a ser aberto: */

s = "/home/ramices/tccstat";

if (!(fp = fopen(s,"a"))) /* Testa a abertura do arquivo */

{

printf("Erro ao abrir o arquivo!\n");

exit(1);

}

/* Se não houve erro, imprime no arquivo...*/

fprintf(fp,"%d\t%d\n",ps->ps_drop,ps->ps_recv);//, tam);

fclose(fp); /* fecha o arquivo */

return(0);

}

int main (int argc, char **argv) {

pcap_t *cap; // descritor da captura

char *dev; // ponteiro para o dispositivo de rede char ebuf[PCAP_ERRBUF_SIZE]; // buffer de retorno de erros struct pcap_pkthdr pkthdr; // estrutura de recuperação de pacotes u_char *packet; // ponteiro para o pacote

struct pcap_stat *ps = malloc(sizeof(struct pcap_stat));

int i,totpckt;

float tam_pkg = 0; //Armazena o somatório dos pacotes dev = argv[1];

int n_pacotes;

n_pacotes = 100000;

totpckt = 1;

// procura automatica de dispositivo de rede if (!dev && (dev = pcap_lookupdev(ebuf)) == NULL) {

fprintf(stderr, "pcap: %s\n", ebuf);

exit(1);

}

// abertura do descritor da captura

if ((cap = pcap_open_live (dev, BUFSIZ, 1, 1000, ebuf)) == NULL) {

fprintf (stderr, "pcap: %s\n", ebuf);

exit (1);

}

// loop com a função pcap_next() para recepção de pacotes //printf ("N pacotes %d\n",n_pacotes);

while (totpckt <= n_pacotes) {

packet = (u_char *) pcap_next (cap, &pkthdr);

if (packet != NULL) {

for (i = 0; i < pkthdr.caplen; i++){

printf ("%.2x ", packet[i]);

} }

++totpckt;

}

f_stat(cap,ps);

}

C APLICAÇÃO DE CAPTURA DE TRÁFEGO VERSÃO FINAL

/ * gcc pcount.c -o pcount –lpcap */

#include <pcap.h>

#include <signal.h>

#include <sched.h>

#include <stdlib.h>

#define ALARM_SLEEP 1

#define DEFAULT_SNAPLEN 128 pcap_t *pd;

int verbose = 0;

struct pcap_stat pcapStats;

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <string.h>

#include <unistd.h>

#include <sys/mman.h>

#include <errno.h>

#include <sys/poll.h>

#include <time.h>

#include <netinet/in_systm.h>

#include <netinet/in.h>

#include <netinet/ip.h>

#include <net/ethernet.h> /* Protocolos de nível 2 */

static u_int64_t totPkts, totLost;

static struct timeval startTime;

unsigned long long numPkts = 0, numBytes = 0;

#define DEFAULT_DEVICE "eth1"

/* *************************************** */

/*

* Diferença de tempo em microsegundos */

long delta_time (struct timeval * now, struct timeval * before) { time_t delta_seconds;

time_t delta_microseconds;

/*

* resultado em segundo e microsegundos */

delta_seconds = now -> tv_sec - before -> tv_sec;

delta_microseconds = now -> tv_usec - before -> tv_usec;

if(delta_microseconds < 0) { delta_microseconds += 1000000;

-- delta_seconds;

}

return((delta_seconds * 1000000) + delta_microseconds);

}

/* ******************************** */

void print_stats() {

struct pcap_stat pcapStat;

struct timeval endTime;

float deltaSec;

static u_int64_t lastPkts = 0;

u_int64_t diff;

static struct timeval lastTime;

FILE *fp;

const char *s;

gettimeofday(&endTime, NULL);

deltaSec = (double)delta_time(&endTime, &startTime)/1000000;

if(pcap_stats(pd, &pcapStat) >= 0)

fprintf(stderr, "=========================\n"

"Absolute Stats: [%u pkts rcvd][%u pkts dropped]\n"

"Total Pkts=%d/Dropped=%.1f %%\n",

pcapStat.ps_recv, pcapStat.ps_drop, pcapStat.ps_recv-pcapStat.ps_drop,

pcapStat.ps_recv == 0 ? 0 : (double)(pcapStat.ps_drop*100)/(double)pcapStat.ps_recv);

fprintf(stderr, "%llu pkts [%.1f pkt/sec] - %llu bytes [%.2f Mbit/sec]\n", numPkts, (double)numPkts/deltaSec,

numBytes, (double)8*numBytes/(double)(deltaSec*1000000));

s = "./tccstat";

if (!(fp = fopen(s,"a"))) /* Testa a abertura do arquivo */

{

printf("Erro ao abrir o arquivo!\n");

exit(1);

}

fprintf(fp,"%u\t%u\t%llu\t%.2f Mbps\n",pcapStat.ps_drop,pcapStat.ps_recv,numBytes, (double)8*numBytes/(double)(deltaSec*1000000));//, tam);

fclose(fp); /* fecha o arquivo */

deltaSec = (double)delta_time(&endTime, &lastTime)/1000000;

diff = pcapStat.ps_recv-lastPkts;

fprintf(stderr, "=========================\n"

"Actual Stats: %llu pkts [%.1f ms][%.1f pkt/sec]\n", diff, deltaSec*1000, ((double)diff/(double)(deltaSec)));

lastPkts = pcapStat.ps_recv;

lastTime.tv_sec = endTime.tv_sec, lastTime.tv_usec = endTime.tv_usec;

fprintf(stderr, "=========================\n");

}

/* ******************************** */

void sigproc(int sig) { static int called = 0;

if(called) return; else called = 1;

print_stats();

pcap_close(pd);

exit(0);

}

/* ******************************** */

void my_sigalarm(int sig) { print_stats();

printf("\n");

alarm(ALARM_SLEEP);

signal(SIGALRM, my_sigalarm);

}

/* ****************************************************** */

static char hex[] = "0123456789ABCDEF";

char* etheraddr_string(const u_char *ep, char *buf) { u_int i, j;

char *cp;

cp = buf;

if ((j = *ep >> 4) != 0) *cp++ = hex[j];

else

*cp++ = '0';

*cp++ = hex[*ep++ & 0xf];

for(i = 5; (int)--i >= 0;) { *cp++ = ':';

if ((j = *ep >> 4) != 0) *cp++ = hex[j];

else

*cp++ = '0';

*cp++ = hex[*ep++ & 0xf];

}

*cp = '\0';

return (buf);

}

/* ****************************************************** */

/* A faster replacement for inet_ntoa(). */

char* _intoa(unsigned int addr, char* buf, u_short bufLen) { char *cp, *retStr;

u_int byte;

int n;

cp = &buf[bufLen];

*--cp = '\0';

n = 4;

do {

byte = addr & 0xff;

*--cp = byte % 10 + '0';

byte /= 10;

if (byte > 0) {

*--cp = byte % 10 + '0';

byte /= 10;

if (byte > 0)

*--cp = byte + '0';

}

*--cp = '.';

addr >>= 8;

} while (--n > 0);

/* Convert the string to lowercase */

retStr = (char*)(cp+1);

return(retStr);

}

/* ************************************ */

char* intoa(unsigned int addr) {

static char buf[sizeof "ff:ff:ff:ff:ff:ff:255.255.255.255"];

return(_intoa(addr, buf, sizeof(buf)));

}

/* ****************************************************** */

char* proto2str(u_short proto) { static char protoName[8];

switch(proto) {

case IPPROTO_TCP: return("TCP");

case IPPROTO_UDP: return("UDP");

case IPPROTO_ICMP: return("ICMP");

default:

snprintf(protoName, sizeof(protoName), "%d", proto);

return(protoName);

} }

/* ****************************************************** */

static int32_t thiszone;

void dummyProcesssPacket(u_char *_deviceId,

const struct pcap_pkthdr *h, const u_char *p) {

if(verbose) {

struct ether_header ehdr;

u_short eth_type, vlan_id;

char buf1[32], buf2[32];

struct ip ip;

int s = (h->ts.tv_sec + thiszone) % 86400;

printf("%02d:%02d:%02d.%06u ",

s / 3600, (s % 3600) / 60, s % 60, (unsigned)h->ts.tv_usec);

memcpy(&ehdr, p, sizeof(struct ether_header));

eth_type = ntohs(ehdr.ether_type);

printf("[%s -> %s] ",

etheraddr_string(ehdr.ether_shost, buf1), etheraddr_string(ehdr.ether_dhost, buf2));

if(eth_type == 0x8100) {

vlan_id = (p[14] & 15)*256 + p[15];

eth_type = (p[16])*256 + p[17];

printf("[vlan %u] ", vlan_id);

p+=4;

}

if(eth_type == 0x0800) {

memcpy(&ip, p+sizeof(ehdr), sizeof(struct ip));

printf("[%s ", intoa(ntohl(ip.ip_src.s_addr)));

printf("-> %s] ", intoa(ntohl(ip.ip_dst.s_addr)));

} else if(eth_type == 0x0806) printf("[ARP]");

else

printf("[eth_type=0x%04X]", eth_type);

printf("[caplen=%d][len=%d]\n", h->caplen, h->len);

}

if(numPkts == 0) gettimeofday(&startTime, NULL);

numPkts++, numBytes += h->len;

}

/* *************************************** */

int32_t gmt2local(time_t t) { int dt, dir;

struct tm *gmt, *loc;

struct tm sgmt;

if (t == 0) t = time(NULL);

gmt = &sgmt;

*gmt = *gmtime(&t);

loc = localtime(&t);

dt = (loc->tm_hour - gmt->tm_hour) * 60 * 60 + (loc->tm_min - gmt->tm_min) * 60;

dir = loc->tm_year - gmt->tm_year;

if (dir == 0)

dir = loc->tm_yday - gmt->tm_yday;

dt += dir * 24 * 60 * 60;

return (dt);

}

/* *************************************** */

void printHelp(void) {

printf("pcount\n(C) 2003-05 Deri Luca <[email protected]>\n");

printf("pcount\n(C) 2007-08 Alterado por Ramicés dos S. Silva <[email protected]>\n");

printf("-h [Print help]\n");

printf("-i <device> [Device name]\n");

printf("-f <filter> [pcap filter]\n");

printf("-c <cluster id> [cluster id]\n");

printf("-v [Verbose]\n");

}

/* *************************************** */

int main(int argc, char* argv[]) {

char *device = NULL, c, *bpfFilter = NULL;

char errbuf[PCAP_ERRBUF_SIZE];

int i, promisc;

struct bpf_program fcode;

u_int clusterId = 0;

#if 0

struct sched_param schedparam;

schedparam.sched_priority = 99;

if(sched_setscheduler(0, SCHED_FIFO, &schedparam) == -1) { printf("error while setting the scheduler, errno=%i\n",errno);

exit(1);

}

mlockall(MCL_CURRENT|MCL_FUTURE);

#define TEST_PROCESSOR_AFFINITY

#ifdef TEST_PROCESSOR_AFFINITY {

unsigned long new_mask = 1;

unsigned int len = sizeof(new_mask);

unsigned long cur_mask;

pid_t p = 0; /* current process */

int ret;

ret = sched_getaffinity(p, len, NULL);

printf(" sched_getaffinity = %d, len = %u\n", ret, len);

ret = sched_getaffinity(p, len, &cur_mask);

printf(" sched_getaffinity = %d, cur_mask = %08lx\n", ret, cur_mask);

ret = sched_setaffinity(p, len, &new_mask);

printf(" sched_setaffinity = %d, new_mask = %08lx\n", ret, new_mask);

ret = sched_getaffinity(p, len, &cur_mask);

printf(" sched_getaffinity = %d, cur_mask = %08lx\n", ret, cur_mask);

}

#endif

#endif

thiszone = gmt2local(0);

while((c = getopt(argc,argv,"hi:c:vf:")) != -1) { switch(c) {

case 'h':

printHelp();

return(0);

break;

case 'c':

clusterId = atoi(optarg);

break;

case 'i':

device = strdup(optarg);

break;

case 'v':

verbose = 1;

break;

case 'f':

bpfFilter = strdup(optarg);

break;

} }

if(device == NULL) {

if((device = pcap_lookupdev(errbuf)) == NULL) { printf("pcap_lookup: %s", errbuf);

return(-1);

} }

printf("Capturing from %s\n", device);

/* hardcode: promisc=1, to_ms=500 */

promisc = 1;

if((pd = pcap_open_live(device, DEFAULT_SNAPLEN, promisc, 500, errbuf)) == NULL) { printf("pcap_open_live: %s\n", errbuf);

return(-1);

}

if(bpfFilter != NULL) {

if(pcap_compile(pd, &fcode, bpfFilter, 1, 0xFFFFFF00) < 0) { printf("pcap_compile error: '%s' [%s]\n", pcap_geterr(pd));

} else {

if(pcap_setfilter(pd, &fcode) < 0) {

printf("pcap_setfilter error: '%s' [%s]\n", pcap_geterr(pd));

} } }

signal(SIGINT, sigproc);

/*

signal(SIGALRM, my_sigalarm);

alarm(ALARM_SLEEP);

*/

pcap_loop(pd, -1, dummyProcesssPacket, NULL);

pcap_close(pd);

return(0);

}

D CONFIGURAÇÃO DA OTIMIZAÇÃO PF_RING

#Remover qualquer instalação prévia da libpcap apt-get remove libpcap

#Criar um kernel com a otimização cd /usr/src

#Fazer o download do path para otimização

export CVSROOT=:pserver:[email protected]:/export/home/ntop mkdir pf_ring && cd pf_ring

cvs login

which should produce the following output:

Logging in to :pserver:[email protected]:2401/export/home/ntop CVS password:

At the prompt, type “ntop” (no quotes), and hit Enter. (Note: ntop will not appear on the screen.) Next type the following:

cvs checkout PF_RING

#Na pasta do pf_ring alterar o script mkpatch.sh

#kernel definido pelas diretivas:

VERSION=${VERSION:-2}

PATCHLEVEL=${PATCHLEVEL:-6}

SUBLEVEL=${SUBLEVEL:-18}

# Rodar o script ./mkpatch.sh

# Ir para pasta dos fontes cd /usr/src

# Aplicar o path

zcat /usr/src/pf_ring/PF_RING/workspace/linux-2.6.*patch.gz | patch --dry-run -p0

# Entrar na pasta com os fontes do kernel linux cd /usr/src/linux

# Habilitar a opção do socket pf_ring no kernel make menuconfig

# Para habilitar a opção vá em: Networking Options --> PF_RING sockets (Experimental)

# Salvar, sair e Limpar a complilação anterior make-kpkg clean

# Contruir o novo kernel e gerar os pacotes para instalação sudo make-kpkg clean

sudo fakeroot make-kpkg –initrd –append-to-version=-ring kernel_image kernel_headers

#Fazer a instalação do novo kernel sudo dpkg -i linux-*.deb

# Reiniciar o sistema e Copiar o arquivo de header do pf_ring para pasta /usr/include/linux cp /usr/src/linux/include/linux/ring.h /usr/include/linux

# Compilar a biblioteca pf_ring

cd /usr/src/pf_ring/PF_RING/userland/libpfring make

gcc -shared -Wl,-soname -Wl,libpfring.so.0.9.4 -o libpfring.so.0.9.4 *.o -lc

# Copiar as bibliotecas geradas para pasta do sistema cp libpfring.a libpfring.so.0.9.4 /usr/local/lib cp pfring.h /usr/local/include

ln -s /usr/local/lib/libpfring.so.0.9.4 /usr/local/lib/libpfring.so

# Para confirmar se a biblioteca está carregada ldconfig -v |grep pfring

# A saída deve ser

libpfring.so.0.9.4 -> libpfring.so.0.9.4

# Baixar a versão original da libpcap

wget http://www.tcpdump.org/release/libpcap-0.9.4.tar.gz

# Descompactá-la

tar -zxvf libpcap-0.9.4.tar.gz cd libpcap-0.9.4

# Fazer as alterações para o funcionamento com o pf_ring mv pcap-int.h pcap-int.h.orig

mv pcap-linux.c pcap-linux.c.orig cp ../libpcap-0.9.4-ring/pcap* .

# Compilar a biblioteca libpcap alterada

./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" \ CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \

-D_FILE_OFFSET_BITS=64"

make && gcc -shared -Wl,-soname -Wl,libpcap.so.`cat VERSION` -o \ libpcap.so.`cat VERSION` *.o -lc

make install && cp libpcap.so.0.9.4 /usr/local/lib

# Para confirmar se a biblioteca está carregada ldconfig -v |grep pcap

# A saída deve ser similar a:

libpcap.so.0.9.4 -> libpcap.so.0.9.4

# Por fim a biblioteca libpcap instalada no sistema já está fazendo uso da

# otimização pf_ring.

E ARQUIVO DE RESULTADOS DAS MÉTRICAS DE DESEMPENHO

31875 1374549 2014009500 537.17 Mbps 792039 1766060 1461028500 387.70 Mbps 56093 1410752 2031897000 542.51 Mbps 1181502 1979636 1197199500 304.84 Mbps 1179103 1989084 1214968500 306.37 Mbps 1165890 1907093 1111801500 295.70 Mbps 48970 1406564 2036388000 543.36 Mbps 1167616 1909021 1112016000 295.43 Mbps 1092521 1869011 1164643500 310.57 Mbps 361988 1594804 1849221000 492.06 Mbps 917824 1792097 1311408000 349.96 Mbps 1328850 1934777 908889000 241.79 Mbps 1306959 1932057 937644000 250.10 Mbps 489649 1615408 1688635500 451.06 Mbps 37182 1369600 1998625500 533.20 Mbps 47864 1374642 1990159500 530.90 Mbps 633602 1754561 1681432500 430.45 Mbps 55235 1402204 2020452000 539.17 Mbps 1239024 1934905 1043730000 277.97 Mbps 1236448 2110294 1310766000 310.32 Mbps 1167453 1907879 1110633000 294.90 Mbps 707127 1697825 1485955500 395.13 Mbps 1235695 1942488 1060189500 280.60 Mbps 1240722 1957937 1075822500 281.86 Mbps 1215965 1926176 1065225000 283.54 Mbps 851458 1760032 1362769500 363.06 Mbps 1242528 1931437 1033272000 275.72 Mbps 1168435 1906685 1107283500 295.35 Mbps 146625 1450356 1955505000 522.05 Mbps 1239454 1935448 1043901000 277.96 Mbps

F TABELA COM AS RESPOSTAS DOS EXPERIMENTOS

Replic. PF_RING NAPI MTU rx-ck Pkt drop Pkt cap GB cap Troughput Perda

1 sem sem 1500 sem 31875 1374549 1,875692513 537.17 0,0226638624 2 sem sem 1500 sem 792039 1766060 1,360688824 387.70 0,3096201515 3 sem sem 1500 sem 56093 1410752 1,892351545 542.51 0,0382405776 4 sem sem 1500 sem 1181502 1979636 1,114978921 304.84 0,3737584376 5 sem sem 1500 sem 1179103 1989084 1,131527591 306.37 0,3721696352 6 sem sem 1500 sem 1165890 1907093 1,035445835 295.70 0,3794000813 7 sem sem 1500 sem 48970 1406564 1,896534115 543.36 0,0336440097 8 sem sem 1500 sem 1167616 1909021 1,035645604 295.43 0,3795104850 9 sem sem 1500 sem 1092521 1869011 1,084658783 310.57 0,3689039997 10 sem sem 1500 sem 361988 1594804 1,722221263 492.06 0,1849905355 11 sem sem 1500 sem 917824 1792097 1,221343875 349.96 0,3386903161 12 sem sem 1500 sem 1328850 1934777 0,846468844 241.79 0,4071696919 13 sem sem 1500 sem 1306959 1932057 0,873249024 250.10 0,4035049534 14 sem sem 1500 sem 489649 1615408 1,572664361 451.06 0,2326060529 15 sem sem 1500 sem 37182 1369600 1,861365046 533.20 0,0264305344 16 sem sem 1500 sem 47864 1374642 1,853480469 530.90 0,0336476612 17 sem sem 1500 sem 633602 1754561 1,565956045 430.45 0,2653093612 18 sem sem 1500 sem 55235 1402204 1,881692559 539.17 0,0378986702 19 sem sem 1500 sem 1239024 1934905 0,972049311 277.97 0,3903754621 20 sem sem 1500 sem 1236448 2110294 1,220745966 310.32 0,3694482574 21 sem sem 1500 sem 1167453 1907879 1,034357585 294.90 0,3796185257 22 sem sem 1500 sem 707127 1697825 1,383903902 395.13 0,2940295690 23 sem sem 1500 sem 1235695 1942488 0,987378415 280.60 0,3888054904 24 sem sem 1500 sem 1240722 1957937 1,001937781 281.86 0,3878881744 25 sem sem 1500 sem 1215965 1926176 0,99206809 283.54 0,3869861346

27 sem sem 1500 sem 1242528 1931437 0,962309539 275.72 0,3914750163 28 sem sem 1500 sem 1168435 1906685 1,03123812 295.35 0,3799640339 29 sem sem 1500 sem 146625 1450356 1,821205951 522.05 0,0918138663 30 sem sem 1500 sem 1239454 1935448 0,972208567 277.96 0,3903912625 1 sem sem 1500 com 1151875 1912806 1,062923111 304.48 0,3758547790 2 sem sem 1500 com 1202928 1931932 1,018321607 291.84 0,3837262270 3 sem sem 1500 com 1185031 1929341 1,039787661 297.15 0,3805039989 4 sem sem 1500 com 941442 1818760 1,225597691 351.48 0,3410772110 5 sem sem 1500 com 1191500 1950703 1,060588751 299.98 0,3791925601 6 sem sem 1500 com 49238 1430823 1,930049155 552.88 0,0332675478 7 sem sem 1500 com 1150211 1914613 1,067772042 305.60 0,3752943073 8 sem sem 1500 com 1196830 1943813 1,043517608 296.50 0,3810780149 9 sem sem 1500 com 1205129 2222104 1,420694869 337.40 0,3516332272 10 sem sem 1500 com 532857 1645634 1,554446295 444.38 0,2445991285 11 sem sem 1500 com 989645 1843758 1,193096861 341.34 0,3492778825 12 sem sem 1500 com 66620 1438147 1,915999688 549.51 0,0442726349 13 sem sem 1500 com 1151704 1915806 1,067352947 305.21 0,3754524028 14 sem sem 1500 com 74408 1472155 1,952627208 559.48 0,0481118454 15 sem sem 1500 com 222669 1504773 1,791078597 513.08 0,1289009993 16 sem sem 1500 com 298953 1546149 1,742227469 498.82 0,1620251889 17 sem sem 1500 com 58944 1446039 1,937747933 554.94 0,0391658909 18 sem sem 1500 com 1159974 1921923 1,06442906 303.54 0,3763831173 19 sem sem 1500 com 1180617 1921516 1,035022549 295.49 0,3805823284 20 sem sem 1500 com 1136113 1907570 1,077712979 307.94 0,3732691611 21 sem sem 1500 com 503863 1682433 1,646440476 469.14 0,2304642189 22 sem sem 1500 com 1195123 1936351 1,035482157 295.84 0,3816487060 23 sem sem 1500 com 183464 1495132 1,832293812 524.32 0,1092961022 24 sem sem 1500 com 900991 1848439 1,323565375 367.28 0,3277010144 25 sem sem 1500 com 1198502 1934121 1,027562656 294.15 0,3825873717 26 sem sem 1500 com 1053206 1880720 1,156022307 328.79 0,3589749707 27 sem sem 1500 com 42168 1425630 1,932672691 553.71 0,0287287488 28 sem sem 1500 com 1180975 1929062 1,045064069 298.47 0,3797302090 29 sem sem 1500 com 1170665 1922585 1,050334889 300.80 0,3784579326 30 sem sem 1500 com 826774 1773238 1,322193537 378.05 0,3179885324

2 sem sem 7200 sem 8 426432 2,779968083 796.23 0,0000187600 3 sem sem 7200 sem 69 426453 2,779700793 796.11 0,0001617736 4 sem sem 7200 sem 0 426284 2,779055387 796.23 0,0000000000 5 sem sem 7200 sem 0 426566 2,780887298 796.24 0,0000000000 6 sem sem 7200 sem 75 426549 2,780294046 796.10 0,0001757988 7 sem sem 7200 sem 341 426412 2,777666785 795.58 0,0007990571 8 sem sem 7200 sem 361 426508 2,778155729 795.58 0,0008456927 9 sem sem 7200 sem 109 426508 2,779798582 796.06 0,0002554985 10 sem sem 7200 sem 0 426389 2,77973339 796.23 0,0000000000 11 sem sem 7200 sem 3 426491 2,780378796 796.23 0,0000070341 12 sem sem 7200 sem 202 426471 2,778951079 795.83 0,0004734305 13 sem sem 7200 sem 33 426527 2,780417912 796.16 0,0000773631 14 sem sem 7200 sem 32 426461 2,77999416 796.16 0,0000750305 15 sem sem 7200 sem 351 426463 2,777927555 795.60 0,0008223723 16 sem sem 7200 sem 35 426308 2,778983675 796.15 0,0000820935 17 sem sem 7200 sem 21 426529 2,780515701 796.20 0,0000492322 18 sem sem 7200 sem 0 426088 2,777777612 796.21 0,0000000000 19 sem sem 7200 sem 0 426516 2,780561335 796.23 0,0000000000 20 sem sem 7200 sem 33 426398 2,779583447 796.15 0,0000773865 21 sem sem 7200 sem 148 426437 2,779087983 795.96 0,0003469414 22 sem sem 7200 sem 0 426412 2,779889852 796.21 0,0000000000 23 sem sem 7200 sem 17 425907 2,776486799 796.20 0,0000399132 24 sem sem 7200 sem 92 426441 2,779479139 796.08 0,0002156926 25 sem sem 7200 sem 62 426461 2,779798582 796.12 0,0001453614 26 sem sem 7200 sem 0 426463 2,780222334 796.25 0,0000000000 27 sem sem 7200 sem 350 426428 2,77771242 795.59 0,0008200985 28 sem sem 7200 sem 34 426346 2,779231407 796.17 0,0000797411 29 sem sem 7200 sem 8 426453 2,780104987 796.21 0,0000187590 30 sem sem 7200 sem 0 426364 2,779570408 796.21 0,0000000000 1 sem sem 7200 com 10 426394 2,779700793 796.29 0,0000234519 2 sem sem 7200 com 68 426602 2,780685201 796.15 0,0001593738 3 sem sem 7200 com 0 426285 2,779061906 796.33 0,0000000000 4 sem sem 7200 com 69 426370 2,779159695 796.18 0,0001618051 5 sem sem 7200 com 0 426333 2,779368311 796.32 0,0000000000 6 sem sem 7200 com 73 426386 2,779237926 796.17 0,0001711771

7 sem sem 7200 com 259 426514 2,778859809 795.79 0,0006068800 8 sem sem 7200 com 362 426449 2,777771093 795.60 0,0008481506 9 sem sem 7200 com 0 426469 2,78025493 796.27 0,0000000000 10 sem sem 7200 com 0 426535 2,780691721 796.30 0,0000000000 11 sem sem 7200 com 0 426652 2,781454474 796.30 0,0000000000 12 sem sem 7200 com 0 426480 2,780333161 796.28 0,0000000000 13 sem sem 7200 com 0 426545 2,780750394 796.32 0,0000000000 14 sem sem 7200 com 0 426538 2,780704759 796.32 0,0000000000 15 sem sem 7200 com 29 426548 2,780587412 796.25 0,0000679830 16 sem sem 7200 com 348 426608 2,778892405 795.66 0,0008150723 17 sem sem 7200 com 0 426372 2,779629081 796.35 0,0000000000 18 sem sem 7200 com 0 426462 2,780209295 796.32 0,0000000000 19 sem sem 7200 com 0 426525 2,780620009 796.30 0,0000000000 20 sem sem 7200 com 32 426563 2,780665644 796.23 0,0000750126 21 sem sem 7200 com 205 426499 2,77911406 795.91 0,0004804267 22 sem sem 7200 com 17 426662 2,78140232 796.28 0,0000398426 23 sem sem 7200 com 9 426026 2,777314745 796.29 0,0000211250 24 sem sem 7200 com 35 426384 2,779479139 796.30 0,0000820789 25 sem sem 7200 com 0 426544 2,780750394 796.31 0,0000000000 26 sem sem 7200 com 193 426468 2,778990194 795.95 0,0004523498 27 sem sem 7200 com 11 426369 2,779531293 796.31 0,0000257986 28 sem sem 7200 com 34 426532 2,780443989 796.23 0,0000797063 29 sem sem 7200 com 272 426369 2,777836286 795.78 0,0006375384 30 sem sem 7200 com 0 426598 2,781102434 796.30 0,0000000000 1 sem com 1500 sem 132 1934481 2,702251542 772.10 0,0000682307 2 sem com 1500 sem 329 1935193 2,702970989 772.31 0,0001699800 3 sem com 1500 sem 262 1933760 2,701064106 772.09 0,0001354690 4 sem com 1500 sem 365 1934635 2,702141181 772.10 0,0001886305 5 sem com 1500 sem 763 1935613 2,702951431 772.12 0,0003940350 6 sem com 1500 sem 272 1928789 2,694024704 771.94 0,0001410012 7 sem com 1500 sem 0 1933667 2,701298799 772.59 0,0000000000 8 sem com 1500 sem 157 1934798 2,702659462 772.20 0,0000811388 9 sem com 1500 sem 309 1934826 2,702486236 772.20 0,0001596788 10 sem com 1500 sem 0 1934345 2,702245954 772.33 0,0000000000 11 sem com 1500 sem 0 1934584 2,702579834 772.22 0,0000000000

12 sem com 1500 sem 215 1935029 2,702902537 772.16 0,0001110971 13 sem com 1500 sem 1446 1935782 2,702233382 772.08 0,0007464274 14 sem com 1500 sem 945 1935184 2,702097874 772.00 0,0004880873 15 sem com 1500 sem 1490 1930357 2,694513649 771.61 0,0007712826 16 sem com 1500 sem 295 1935855 2,70394329 772.59 0,0001523642 17 sem com 1500 sem 687 1935253 2,702554688 772.04 0,0003548664 18 sem com 1500 sem 171 1930018 2,695882693 772.29 0,0000885924 19 sem com 1500 sem 0 1933324 2,700819634 772.18 0,0000000000 20 sem com 1500 sem 593 1933805 2,700663172 772.00 0,0003065553 21 sem com 1500 sem 1645 1934219 2,699767705 772.72 0,0008497498 22 sem com 1500 sem 369 1935580 2,703455742 773.42 0,0001906042 23 sem com 1500 sem 2529 1935747 2,700671554 772.58 0,0013047677 24 sem com 1500 sem 91 1935463 2,703680657 773.46 0,0000470150 25 sem com 1500 sem 1748 1935544 2,70147901 772.88 0,0009022904 26 sem com 1500 sem 236 1934715 2,702434547 773.39 0,0001219669 27 sem com 1500 sem 168 1934436 2,702139784 773.43 0,0000868395 28 sem com 1500 sem 198 1934360 2,701990306 773.41 0,0001023490 29 sem com 1500 sem 1098 1933527 2,699566539 773.08 0,0005675519 30 sem com 1500 sem 111 1932597 2,699648961 773.48 0,0000574324 1 sem com 1500 com 151 1933444 2,700773533 772.98 0,0000780929 2 sem com 1500 com 348 1935620 2,703539561 772.87 0,0001797550 3 sem com 1500 com 808 1932873 2,699060831 772.13 0,0004178559 4 sem com 1500 com 604 1933005 2,699526027 772.83 0,0003123693 5 sem com 1500 com 203 1934282 2,701875754 773.09 0,0001049375 6 sem com 1500 com 544 1931545 2,697571646 772.61 0,0002815605 7 sem com 1500 com 251 1914657 2,674311865 766.03 0,0001310768 8 sem com 1500 com 397 1918909 2,680128906 765.97 0,0002068456 9 sem com 1500 com 29 1918127 2,679549158 766.12 0,0000151187 10 sem com 1500 com 224 1914182 2,673686016 765.93 0,0001170076 11 sem com 1500 com 79 1912446 2,671463415 765.98 0,0000413066 12 sem com 1500 com 8 1345567 1,879720017 538.63 0,0000059454 13 sem com 1500 com 213 1935364 2,703371923 773.70 0,0001100447 14 sem com 1500 com 44 1934279 2,702089492 773.68 0,0000227470 15 sem com 1500 com 726 1934154 2,700962126 773.35 0,0003752171 16 sem com 1500 com 615 1913423 2,672079485 765.94 0,0003213102

17 sem com 1500 com 0 1919586 2,68162787 766.12 0,0000000000 18 sem com 1500 com 207 1918066 2,679215278 765.82 0,0001079096 19 sem com 1500 com 0 1918838 2,680584323 766.09 0,0000000000 20 sem com 1500 com 268 1917813 2,678776626 765.93 0,0001397230 21 sem com 1500 com 64 1914735 2,674682066 765.97 0,0000334239 22 sem com 1500 com 204 1919767 2,681595739 766.28 0,0001062516 23 sem com 1500 com 257 1914975 2,674747724 765.99 0,0001341874 24 sem com 1500 com 638 1919181 2,680170815 765.89 0,0003323230 25 sem com 1500 com 30 1918419 2,67995568 766.25 0,0000156376 26 sem com 1500 com 2327 1919368 2,678072546 765.00 0,0012109102 27 sem com 1500 com 0 1918328 2,679870464 766.11 0,0000000000 28 sem com 1500 com 379 1919604 2,681123558 766.08 0,0001973976 29 sem com 1500 com 852 1919238 2,679951489 765.83 0,0004437292 30 sem com 1500 com 2 1919406 2,681375016 766.24 0,0000010420 1 sem com 7200 sem 0 466082 3,125323355 894.95 0,0000000000 2 sem com 7200 sem 0 466108 3,125490993 894.94 0,0000000000 3 sem com 7200 sem 0 466013 3,124853969 894.96 0,0000000000 4 sem com 7200 sem 42 466009 3,12455222 894.87 0,0000901189 5 sem com 7200 sem 2 466109 3,125490993 895.00 0,0000042908 6 sem com 7200 sem 78 465971 3,124056011 894.83 0,0001673644 7 sem com 7200 sem 386 466023 3,122332692 894.18 0,0008275998 8 sem com 7200 sem 0 466074 3,125269711 894.96 0,0000000000 9 sem com 7200 sem 0 466067 3,125216067 894.96 0,0000000000 10 sem com 7200 sem 40 466025 3,124666214 894.88 0,0000858249 11 sem com 7200 sem 2 465952 3,124431521 894.94 0,0000042923 12 sem com 7200 sem 194 465981 3,123338521 894.57 0,0004161527 13 sem com 7200 sem 0 466049 3,125102073 894.96 0,0000000000 14 sem com 7200 sem 0 466053 3,125128895 894.97 0,0000000000 15 sem com 7200 sem 102 466136 3,12500149 894.76 0,0002187724 16 sem com 7200 sem 0 466099 3,125430644 894.99 0,0000000000 17 sem com 7200 sem 0 465815 3,123532981 894.94 0,0000000000 18 sem com 7200 sem 45 465997 3,124444932 894.86 0,0000965578 19 sem com 7200 sem 43 466040 3,124753386 894.88 0,0000922582 20 sem com 7200 sem 70 466217 3,125759214 894.82 0,0001501221 21 sem com 7200 sem 41 466060 3,124894202 894.88 0,0000879638

22 sem com 7200 sem 0 466081 3,12531665 894.95 0,0000000000 23 sem com 7200 sem 385 466058 3,122574091 894.23 0,0008253956 24 sem com 7200 sem 2 465642 3,122359514 894.94 0,0000042951 25 sem com 7200 sem 38 466046 3,124820441 894.88 0,0000815304 26 sem com 7200 sem 2 466084 3,125323355 894.96 0,0000042911 27 sem com 7200 sem 378 466049 3,122567385 894.23 0,0008104162 28 sem com 7200 sem 0 465954 3,124458343 894.99 0,0000000000 29 sem com 7200 sem 403 466027 3,12224552 894.18 0,0008640096 30 sem com 7200 sem 284 465965 3,122634441 894.45 0,0006091166 1 sem com 7200 com 1 466069 3,125229478 894.96 0,0000021456 2 sem com 7200 com 0 465924 3,124257177 894.97 0,0000000000 3 sem com 7200 com 52 466041 3,124699742 894.89 0,0001115657 4 sem com 7200 com 73 466003 3,12429741 894.82 0,0001566268 5 sem com 7200 com 2 466100 3,125423938 894.97 0,0000042909 6 sem com 7200 com 0 466064 3,12519595 894.96 0,0000000000 7 sem com 7200 com 0 466078 3,125296533 894.94 0,0000000000 8 sem com 7200 com 348 466046 3,122741729 894.30 0,0007461503 9 sem com 7200 com 4 466035 3,124974668 894.95 0,0000085830 10 sem com 7200 com 408 465988 3,121950477 894.17 0,0008747931 11 sem com 7200 com 2 466022 3,124907613 894.96 0,0000042916 12 sem com 7200 com 0 465937 3,124344349 895.01 0,0000000000 13 sem com 7200 com 0 466149 3,12576592 894.96 0,0000000000 14 sem com 7200 com 361 466019 3,122480214 894.30 0,0007740469 15 sem com 7200 com 2 466113 3,12551111 894.95 0,0000042908 16 sem com 7200 com 399 466068 3,122553974 894.17 0,0008553660 17 sem com 7200 com 0 466120 3,125578165 894.97 0,0000000000 18 sem com 7200 com 0 465646 3,122399747 895.00 0,0000000000 19 sem com 7200 com 1 466051 3,125108778 894.96 0,0000021457 20 sem com 7200 com 0 466072 3,125249594 894.98 0,0000000000 21 sem com 7200 com 399 466067 3,122547269 894.19 0,0008553678 22 sem com 7200 com 0 465869 3,123888373 895.00 0,0000000000 23 sem com 7200 com 0 466098 3,125423938 894.99 0,0000000000 24 sem com 7200 com 0 466047 3,125081956 894.96 0,0000000000 25 sem com 7200 com 0 465722 3,122902662 894.97 0,0000000000 26 sem com 7200 com 160 466131 3,124572337 894.68 0,0003431334

27 sem com 7200 com 0 466055 3,125135601 894.97 0,0000000000 28 sem com 7200 com 286 466005 3,122882545 894.42 0,0006133509 29 sem com 7200 com 2 465816 3,123526275 894.96 0,0000042935 30 sem com 7200 com 0 466147 3,125752509 894.98 0,0000000000

1 com sem 1500 sem 1328850 0 0 0 1,0000000000

2 com sem 1500 sem 1328850 0 0 0 1,0000000000

3 com sem 1500 sem 1328850 0 0 0 1,0000000000

4 com sem 1500 sem 1328850 0 0 0 1,0000000000

5 com sem 1500 sem 1328850 0 0 0 1,0000000000

6 com sem 1500 sem 1328850 0 0 0 1,0000000000

7 com sem 1500 sem 1328850 0 0 0 1,0000000000

8 com sem 1500 sem 1328850 0 0 0 1,0000000000

9 com sem 1500 sem 1328850 0 0 0 1,0000000000

10 com sem 1500 sem 1328850 0 0 0 1,0000000000

11 com sem 1500 sem 1328850 0 0 0 1,0000000000

12 com sem 1500 sem 1328850 0 0 0 1,0000000000

13 com sem 1500 sem 1328850 0 0 0 1,0000000000

14 com sem 1500 sem 1328850 0 0 0 1,0000000000

15 com sem 1500 sem 1328850 0 0 0 1,0000000000

16 com sem 1500 sem 1328850 0 0 0 1,0000000000

17 com sem 1500 sem 1328850 0 0 0 1,0000000000

18 com sem 1500 sem 1328850 0 0 0 1,0000000000

19 com sem 1500 sem 1328850 0 0 0 1,0000000000

20 com sem 1500 sem 1328850 0 0 0 1,0000000000

21 com sem 1500 sem 1328850 0 0 0 1,0000000000

22 com sem 1500 sem 1328850 0 0 0 1,0000000000

23 com sem 1500 sem 1328850 0 0 0 1,0000000000

24 com sem 1500 sem 1328850 0 0 0 1,0000000000

25 com sem 1500 sem 1328850 0 0 0 1,0000000000

26 com sem 1500 sem 1328850 0 0 0 1,0000000000

27 com sem 1500 sem 1328850 0 0 0 1,0000000000

28 com sem 1500 sem 1328850 0 0 0 1,0000000000

29 com sem 1500 sem 1328850 0 0 0 1,0000000000

30 com sem 1500 sem 1328850 0 0 0 1,0000000000

1 com sem 1500 com 1328850 0 0 0 1,0000000000

2 com sem 1500 com 1328850 0 0 0 1,0000000000

3 com sem 1500 com 1328850 0 0 0 1,0000000000

4 com sem 1500 com 1328850 0 0 0 1,0000000000

5 com sem 1500 com 1328850 0 0 0 1,0000000000

6 com sem 1500 com 1328850 0 0 0 1,0000000000

7 com sem 1500 com 1328850 0 0 0 1,0000000000

8 com sem 1500 com 1328850 0 0 0 1,0000000000

9 com sem 1500 com 1328850 0 0 0 1,0000000000

10 com sem 1500 com 1328850 0 0 0 1,0000000000

11 com sem 1500 com 1328850 0 0 0 1,0000000000

12 com sem 1500 com 1328850 0 0 0 1,0000000000

13 com sem 1500 com 1328850 0 0 0 1,0000000000

14 com sem 1500 com 1328850 0 0 0 1,0000000000

15 com sem 1500 com 1328850 0 0 0 1,0000000000

16 com sem 1500 com 1328850 0 0 0 1,0000000000

17 com sem 1500 com 1328850 0 0 0 1,0000000000

18 com sem 1500 com 1328850 0 0 0 1,0000000000

19 com sem 1500 com 1328850 0 0 0 1,0000000000

20 com sem 1500 com 1328850 0 0 0 1,0000000000

21 com sem 1500 com 1328850 0 0 0 1,0000000000

22 com sem 1500 com 1328850 0 0 0 1,0000000000

23 com sem 1500 com 1328850 0 0 0 1,0000000000

24 com sem 1500 com 1328850 0 0 0 1,0000000000

25 com sem 1500 com 1328850 0 0 0 1,0000000000

26 com sem 1500 com 1328850 0 0 0 1,0000000000

27 com sem 1500 com 1328850 0 0 0 1,0000000000

28 com sem 1500 com 1328850 0 0 0 1,0000000000

29 com sem 1500 com 1328850 0 0 0 1,0000000000

30 com sem 1500 com 1328850 0 0 0 1,0000000000

1 com sem 7200 sem 1328850 0 0 0 1,0000000000

2 com sem 7200 sem 1328850 0 0 0 1,0000000000

3 com sem 7200 sem 1328850 0 0 0 1,0000000000

4 com sem 7200 sem 1328850 0 0 0 1,0000000000

5 com sem 7200 sem 1328850 0 0 0 1,0000000000

6 com sem 7200 sem 1328850 0 0 0 1,0000000000

7 com sem 7200 sem 1328850 0 0 0 1,0000000000

8 com sem 7200 sem 1328850 0 0 0 1,0000000000

9 com sem 7200 sem 1328850 0 0 0 1,0000000000

10 com sem 7200 sem 1328850 0 0 0 1,0000000000

11 com sem 7200 sem 1328850 0 0 0 1,0000000000

12 com sem 7200 sem 1328850 0 0 0 1,0000000000

13 com sem 7200 sem 1328850 0 0 0 1,0000000000

14 com sem 7200 sem 1328850 0 0 0 1,0000000000

15 com sem 7200 sem 1328850 0 0 0 1,0000000000

16 com sem 7200 sem 1328850 0 0 0 1,0000000000

17 com sem 7200 sem 1328850 0 0 0 1,0000000000

18 com sem 7200 sem 1328850 0 0 0 1,0000000000

19 com sem 7200 sem 1328850 0 0 0 1,0000000000

20 com sem 7200 sem 1328850 0 0 0 1,0000000000

21 com sem 7200 sem 1328850 0 0 0 1,0000000000

22 com sem 7200 sem 1328850 0 0 0 1,0000000000

23 com sem 7200 sem 1328850 0 0 0 1,0000000000

24 com sem 7200 sem 1328850 0 0 0 1,0000000000

25 com sem 7200 sem 1328850 0 0 0 1,0000000000

26 com sem 7200 sem 1328850 0 0 0 1,0000000000

27 com sem 7200 sem 1328850 0 0 0 1,0000000000

28 com sem 7200 sem 1328850 0 0 0 1,0000000000

29 com sem 7200 sem 1328850 0 0 0 1,0000000000

30 com sem 7200 sem 1328850 0 0 0 1,0000000000

1 com sem 7200 com 1328850 0 0 0 1,0000000000

2 com sem 7200 com 1328850 0 0 0 1,0000000000

3 com sem 7200 com 1328850 0 0 0 1,0000000000

4 com sem 7200 com 1328850 0 0 0 1,0000000000

5 com sem 7200 com 1328850 0 0 0 1,0000000000

6 com sem 7200 com 1328850 0 0 0 1,0000000000

7 com sem 7200 com 1328850 0 0 0 1,0000000000

8 com sem 7200 com 1328850 0 0 0 1,0000000000

9 com sem 7200 com 1328850 0 0 0 1,0000000000

10 com sem 7200 com 1328850 0 0 0 1,0000000000

11 com sem 7200 com 1328850 0 0 0 1,0000000000

Documentos relacionados