def startExperiment(self, reps=-1, timePerRep=1): """ Inicia o Experimento >>Reps: quantidade de repetições que o experimento terá. Cada repetição é igual a 1 pacote enviado. Caso seja <= 0 serão enviados todos os dados disponíveis >>timePerRep: intervalo de tempo entre repetição, em segundos. Padrão = 1seg """ print("\nIniciando o experimento às {0}".format( util.getFormattedDatetimeWithMillisec())) if (reps <= 0): reps = self._dados.length() print("Quantidade de pacotes que serão enviados: {}".format(reps)) duracao = timePerRep * reps print("Tempo estimado de duração do experimento: {} ({})\n".format( util.getFormattedDateTimeFromSeconds(duracao), str(datetime.timedelta(seconds=duracao)))) for i in range(0, reps): print("iniciando repetição {} às {}".format( i + 1, str(util.getFormattedDatetimeWithMillisec()))) self.sendPackage(i) time.sleep(timePerRep)
def generateFileTXT(self): try: os.remove(self.outputFileName + '.txt') except OSError: pass path = self.outputFileName + '.txt' file = open(path, 'w') file.write('Início no servidor às: {}\n'.format( self.listPackageServer[0])) file.write('Fim no servidor às: {}\n'.format( self.listPackageServer[-1])) file.write('Quantidade total de pacotes no servidor: {}\n'.format( len(self.listPackageServer))) file.write('Início no cliente às: {}\n'.format( self.listPackageClient[0])) file.write('Fim no cliente às: {}\n'.format( self.listPackageClient[-1])) file.write('Quantidade total de pacotes no cliente: {}\n'.format( len(self.listPackageClient))) file.write('Quantidade total de repetições: {}'.format(len(self.reps))) file.write('\n\n') for i in range(0, len(self.reps)): rep = self.reps[i] file.write('\nRepetição {}\n'.format(i + 1)) file.write('Início às: {}\n'.format( util.getFormattedDatetimeWithMillisec(rep.startTimestamp))) file.write('Fim às: {}\n'.format( util.getFormattedDatetimeWithMillisec(rep.endTtimestamp))) file.write('Quantidade total de pacotes: {}\n'.format( len(rep.listPackages))) file.write('Atraso médio dos pacotes: {}\n'.format( rep.averageDelay)) file.write( 'Taxa média de pacotes (média(tamanho pkt/atraso pkt)): {}\n'. format(rep.averagePkgLenDelay)) file.write( 'Taxa média de pacotes por seg (sum(tamanho pkt)/300): {}\n'. format(rep.averagePkgLen)) file.write( 'Taxa média de payload dos pacotes por seg (sum(tamanho payload)/300): {}\n' .format(rep.averagePayloadLen)) file.write( 'Taxa média de payload dos pacotes (média(tamanho payload/atraso pkt)): {}\n' .format(rep.averagePayloadLenDelay)) file.write( 'Taxa de pacotes por segund (total pkt/300)): {}\n'.format( rep.ratePkgPerSec)) file.write('Quantidade de pacotes perdidos: {}\n'.format( rep.pkgLost)) file.close()
def generateReps(self): self.reps = [] startTS = self.listPackageClient[0].timestamp endTS = self.listPackageServer[-1].timestamp while (startTS <= endTS): endTSAux = util.addSecs(startTS, SECONDS_FOR_EACH_REP).timestamp() print('\nProcessando repetição {}: de {} à {}'.format( len(self.reps), util.getFormattedDatetimeWithMillisec(startTS), util.getFormattedDatetimeWithMillisec(endTSAux), )) self.reps.append( Repetition(len(self.reps), startTS, endTSAux, self.listPackageClient, self.listPackageServer)) startTS = endTSAux
def do_POST(self): content_length = int( self.headers['Content-Length']) # <--- Gets the size of data pkgId = self.headers['id'] # <--- Gets the size of data print("\nPacote id {} de tamanho {} recebido às {}".format( pkgId, content_length, util.getFormattedDatetimeWithMillisec())) # print(self) # post_data = self.rfile.read(content_length) # <--- Gets the data itself # print(post_data) # <-- Print post data self._set_headers()
def __addPackage(self, eth, receivedDatetimePackage): self.__packageList.append(PackageInfo(eth, receivedDatetimePackage)) path = "HTTPPackageInfo.txt" openType = ('w' if len(self.__packageList) <= 0 else 'a') infoFile = open(path, openType) infoFile.write( "Interceptado pacote {}, enviado às {}, e recebido às {} (diferença de {})\n" .format( len(self.__packageList), '00:00:00', util.getFormattedDatetimeWithMillisec(receivedDatetimePackage), '00:00:00 000')) infoFile.close()
def startExperiment(self, reps, fileName, timePerRep=1): print "\nIniciando o experimento às {0}".format( util.getFormattedDatetimeWithMillisec()) if (reps <= 0): reps = self._dados.length() print "Quantidade de pacotes que serão enviados: {}".format(reps) duracao = timePerRep * reps print "Tempo estimado de duração do experimento: {} ({})\n".format( util.getFormattedDateTimeFromSeconds(duracao), str(datetime.timedelta(seconds=duracao))) for i in range(0, reps): print "\niniciando repetição {} às {}".format( i + 1, str(util.getFormattedDatetimeWithMillisec())) self.sendPackage(i) time.sleep(timePerRep) self.generateDelayAndLostFiles(fileName) print "Número de repetições: " + str(reps) print "Nome do arquivo: " + fileName
def __str__(self): return '{}: {} | {} | {} | {}'.format( util.getFormattedDatetimeWithMillisec(self.timestamp), self.id, self.lenPkg, self.lenPayload, self.data)