亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? trpr.cpp

?? trpr是可以分析tcpdump和mgen日志記錄
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    friend class FlowList;        public:        Flow(bool presetFlow = false);        ~Flow();                bool InitFromDescription(char* flowInfo);        void PrintDescription(FILE* f);        const char* Type() {return type;}        bool SetType(const char* theType);        const Address& SrcAddr() const {return src_addr;}        void SetSrcAddr(const Address& value) {src_addr = value;}        unsigned short SrcPort() const {return src_port;}        void SetSrcPort(unsigned short value) {src_port = value;}        const Address& DstAddr() const {return dst_addr;}        void SetDstAddr(const Address& value) {dst_addr = value;}        unsigned short DstPort() const {return dst_port;}        void SetDstPort(unsigned short value) {dst_port = value;}        void SetFlowId(unsigned long value) {flow_id = value;}        unsigned long FlowId() {return flow_id.Value();}                bool IsPreset() {return preset;}                bool TypeMatch(const char* theType) const        {            if (theType && type)                return (0 == strncmp(theType, type, type_len));            else                return (theType == type);        }                bool Match(const char* theType,                    const Address& srcAddr, unsigned short srcPort,                    const Address& dstAddr, unsigned short dstPort,                    unsigned long flowId) const;        unsigned long Bytes() const {return byte_count;}        void AddBytes(unsigned long pktSize) {byte_count += pktSize;}                void ResetByteCount() {byte_count = 0;}                double Accumulator() {return accumulator;}        unsigned long AccumulatorCount() {return accumulator_count;}        void ResetAccumulator() {accumulator = 0.0; accumulator_count = 0;}        void Accumulate(double value) {accumulator += value; accumulator_count++;}                void InitLossTracker(unsigned long seqMax = 0xffffffff) {loss_tracker.Init(seqMax);}        void ResetLossTracker() {loss_tracker.Reset();}        bool UpdateLossTracker(double theTime, unsigned long seq, unsigned long theFlow = 0)            {return loss_tracker.Update(theTime, seq, theFlow);}        double LossFraction() {return loss_tracker.LossFraction();}                void InitLossTracker2(double windowSize, unsigned long seqMax = 0xffffffff)        {            loss_tracker2.Init(windowSize, seqMax);        }        void ResetLossTracker2()             {loss_tracker2.Reset();}        bool UpdateLossTracker2(double theTime, unsigned long seq, unsigned long theFlow = 0)            {return loss_tracker2.Update(theTime, seq, theFlow);}        double LossFraction2()             {return loss_tracker2.LossFraction();}        double LossWindowStart2()             {return loss_tracker2.LossWindowStart();}        double LossWindowEnd2()             {return loss_tracker2.LossWindowEnd();}                        Flow* Next() {return next;}        bool AppendData(double x, double y);        void PruneData(double xMin) {point_list.PruneData(xMin);}        bool PrintData(FILE* filePtr) {return point_list.PrintData(filePtr);}                double MarkReception(double theTime)        {            double currentDelay = ((last_time < 0.0) ? -1.0 : (theTime - last_time));            last_time = theTime;            return currentDelay;           }                void UpdateSummary(double value, double weight = 1.0)         {            if (sum_init)            {                sum_total = value * weight;                sum_min = sum_max = value;                sum_var = value*value*weight;                sum_weight = weight;                sum_init = false;            }            else            {                sum_weight += weight;                sum_total += (value * weight);                sum_var += (value*value*weight);                if (value < sum_min) sum_min = value;                if (value > sum_max) sum_max = value;            }            histogram.Tally(value);        }        double SummaryAverage() {return (sum_total / sum_weight);}        double SummaryVariance()         {            double mean = SummaryAverage();            double variance = sum_var/((double)sum_weight) - (mean*mean);            return variance;           }        double SummaryMin() {return sum_min;}        double SummaryMax() {return sum_max;}                double PosX() {return pos_x;}        double PosY() {return pos_y;}        bool PositionIsValid()         {            bool xvalid = ((pos_x <= 180.0) && (pos_x >= -180.0));            bool yvalid = ((pos_y <= 90.0) && (pos_y >= -90.0));              return (xvalid && yvalid);        }        double UpdatePosition(double theTime, double x, double y);                void PrintHistogram(FILE* file) {histogram.Print(file);}        double Percentile(double p) {return histogram.Percentile(p);}                        private:        bool           preset;  // used to mark preset flows from "flow" command        char*          type;        unsigned int   type_len;                Address         src_addr;        int             src_port;        Address         dst_addr;        int             dst_port;        ::FlowId        flow_id;  // if applicable                // Byte count accumulator        double          last_time;  // used for inter-arrival delay plot        unsigned long   byte_count;        double          accumulator;  // for interarrival or latency accumulation        unsigned long   accumulator_count;        PointList       point_list;        LossTracker     loss_tracker;        LossTracker2    loss_tracker2;                // GPS Position        double          pos_x;        double          pos_y;                // Summary data        bool            sum_init;        double          sum_total;        double          sum_var;        double          sum_min;        double          sum_max;        double          sum_weight;                // histogram        Histogram       histogram;                            Flow* prev;        Flow* next;  }; // end class Flowclass FlowList{    public:        FlowList();        ~FlowList();        void Destroy();        void Append(Flow* theFlow);        void Remove(Flow* theFlow);        Flow* Head() {return head;}        unsigned long Count() {return count;}        private:        Flow*           head;        Flow*           tail;        unsigned long   count;    };  // end class FlowListvoid UpdateWindowPlot(PlotMode plotMode, FlowList& flowList, FILE* outfile,                      double theTime, double windowStart, double windowEnd,                       bool realTime, bool stairStep);void UpdateGnuplot(PlotMode plotMode, FlowList* flowList, double xMin, double xMax,                    const char* pngFile, const char* postFile, bool scatter);void UpdateMultiGnuplot(PlotMode plotMode, FlowList* flowList, double xMin, double xMax,                    const char* pngFile, const char* postFile, bool scatter);Point::Point(double x, double y)    : xval(x), yval(y), kval(0), prev(NULL), next(NULL){}Point::Point(double x, unsigned long k)    : xval(x), yval(0), kval(k), prev(NULL), next(NULL){}PointList::PointList()    : head(NULL), tail(NULL){}PointList::~PointList(){    Destroy();}Point* PointList::FindPointByK(unsigned long k){    Point* next = head;    while (next)    {        if (k == next->K())            return next;        else            next = next->Next();    }       return NULL;}  // end PointList::FindPointByK()// This tries to leave only one point with X < xMin// This assumes X data is in order min -> maxvoid PointList::PruneData(double xMin){    Point* next = head;    while ((next = head))    {        if (next->X() < xMin)        {            Remove(next);            delete next;        }        else        {            break;        }    }}  // end PointList::PruneData()bool PointList::PrintData(FILE* filePtr){    Point* next = head;    while (next)    {        fprintf(filePtr, "%f, %f\n", next->X(), next->Y());        next = next->Next();    }    if (head)        return true;    else        return false;}  // end PointList::PrintData()   void PointList::Append(Point* thePoint){    if ((thePoint->prev = tail))        tail->next = thePoint;    else        head = thePoint;    thePoint->next = NULL;    tail = thePoint;   }  // end PointList::Append()void PointList::Remove(Point* thePoint){    if (thePoint->prev)        thePoint->prev->next = thePoint->next;    else        head = thePoint->next;    if (thePoint->next)        thePoint->next->prev = thePoint->prev;    else        tail = thePoint->prev;}  // end PointList::Remove()void PointList::Destroy(){    Point* next;    while ((next = head))    {        Remove(next);        delete next;    }}  // end PointList::Destroy()LossTracker::LossTracker()    : last_time(0.0), loss_fraction(1.0), loss_max(16536),      first_packet(true),  packet_count(0), loss_count(0),       resync_count(0), duplicate_count(0),      late_count(0), seq_last(0), flow_id(0){    SetSeqMax(0xffffffff);}bool LossTracker::Update(double theTime, unsigned long theSequence, unsigned long theFlow){    if (theTime < last_time)     {        fprintf(stderr, "trpr: LossTracker::Update() time out of order (thisTime:%f lastTime:%f)!\n",                         theTime, last_time);        return false;    }        if (first_packet)    {        first_packet = false;           seq_last = theSequence;        packet_count = 1;        loss_fraction = 0.0;        flow_id = theFlow;        return true;    }       // Process incoming sequence number    // 1) Calc delta, handling wrap conditions    long delta;    if ((theSequence < seq_qtr) &&        (seq_last > (seq_hlf+seq_qtr)))        delta = seq_max - seq_last + theSequence + 1;    else if ((theSequence > (seq_hlf+seq_qtr)) &&             (seq_last < seq_qtr))        delta = theSequence - seq_last - seq_max - 1;    else        delta = theSequence - seq_last;               // 2) Use "delta" to determine sync state, loss, etc    if ((labs(delta) > loss_max) || (theFlow != flow_id))    {        // lost sync?        resync_count++;        fprintf(stderr, "trpr: LossTracker::Update() resync! (seq:%lu lseq:%lu delta:%ld max:%lu "                        "flow:%lu oldFlow:%lu)\n",                         theSequence, seq_last, delta, loss_max, theFlow, flow_id);        seq_last = theSequence;        Update(theTime, theSequence, theFlow);        return false;    }    else if (delta > 0)    {        if (delta > 1)        {            // possible loss            while(seq_last++ != theSequence)            {                if (seq_last > seq_max) seq_last = 0;                Point* lost = new Point(theTime, seq_last);                if (!lost)                {                    perror("trpr: LossTracker::Update() Error adding point");                    return false;                   }                  loss_list.Append(lost);                loss_count++;                }        }        else        {            // No loss        }        seq_last = theSequence;        packet_count++;            }    else if (delta < 0)    {        // Late arriving packet        packet_count++;        Point* oldLost = loss_list.FindPointByK(theSequence);        if (oldLost)        {            loss_list.Remove(oldLost);            loss_count--;        }        else        {            // Late packet (from previous window?)            late_count++;         }    }    else    {        // duplicate packet?        duplicate_count++;          packet_count++;      }         // 4) Compute current loss fraction value    // (TBD) Fudge with late_count??    //fprintf(stderr, "losses:%lu pkts:%lu\n", loss_count, packet_count);    loss_fraction = ((double)loss_count) /                     ((double)(packet_count+loss_count));        last_time = theTime;        return true;}  // end LossTracker::Update()LossTracker2::LossTracker2()    : first_packet(true), wrap(false), wrap_count(0),      time_first(-1.0), time_last(-1.0),       window_size(1.0), window_end(-1.0),      packet_count(0), seq_first(0), seq_last(0),      duplicate_count(0), resync_count(0), seq_max(0xffffffff),      flow_id(0)      {       }int LossTracker2::Update(double theTime, unsigned long theSequence, unsigned long theFlow){    if (theTime < time_last)     {        fprintf(stderr, "trpr: LossTracker::Update() time out of order (thisTime:%f lastTime:%f)!\n",                         theTime, time_last);        //exit(-1);    }        if (first_packet)    {        first_packet = false;           seq_first = seq_last = theSequence;        time_first = time_last = theTime;        if (window_size > 0.0)            window_end = theTime + window_size;        packet_count = 1;        wrap = false;        wrap_count = 0;        flow_id = theFlow;        return 0;    }       // Process incoming sequence number        // 1) Check for sequence wrap  & sync loss    long delta;    if ((theSequence < seq_qtr) &&        (seq_last > (seq_hlf+seq_qtr)))    {        delta = seq_max - seq_last + theSequence + 1;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色中文字幕| 国产精品视频一二三区| 欧美三级资源在线| 色94色欧美sute亚洲13| caoporm超碰国产精品| 成人福利视频网站| 国产成a人无v码亚洲福利| 国产精品一二三四五| 蜜臀av一区二区| 奇米色777欧美一区二区| 免费欧美在线视频| 奇米精品一区二区三区在线观看一| 日韩一区精品视频| 日本中文字幕一区二区有限公司| 视频在线观看国产精品| 日本午夜精品一区二区三区电影| 热久久一区二区| 日本伊人精品一区二区三区观看方式| 日韩福利视频网| 免费看欧美美女黄的网站| 韩国一区二区视频| 从欧美一区二区三区| 91网址在线看| 欧美日本在线一区| 欧美疯狂做受xxxx富婆| 精品区一区二区| 亚洲国产精品精华液ab| 亚洲伦理在线精品| 亚洲bdsm女犯bdsm网站| 日韩中文字幕不卡| 国产资源在线一区| av成人动漫在线观看| 欧美日韩成人综合天天影院| 日韩欧美专区在线| 国产亚洲女人久久久久毛片| 中文字幕一区二区三区四区不卡| 一区二区三区免费网站| 日一区二区三区| 久久国产三级精品| 成人午夜电影小说| 欧美私人免费视频| 久久这里只有精品视频网| 中文字幕一区二区三区四区| 日韩专区一卡二卡| 国产jizzjizz一区二区| 欧美日韩国产一二三| 久久久九九九九| 亚洲色图制服诱惑| 日韩电影一区二区三区四区| 国产成人免费视频网站 | 日韩中文字幕亚洲一区二区va在线 | 欧美自拍偷拍一区| 精品成人一区二区三区四区| 国产精品美女www爽爽爽| 亚洲愉拍自拍另类高清精品| 久久不见久久见免费视频1| 99国产精品久久久| 精品国免费一区二区三区| 亚洲啪啪综合av一区二区三区| 日韩国产高清在线| 色综合久久久久网| 日韩午夜激情av| 亚洲同性gay激情无套| 蜜桃久久久久久| 91麻豆成人久久精品二区三区| 日韩西西人体444www| 一区av在线播放| 国产精品夜夜嗨| 欧美日韩精品一区二区在线播放| 国产偷v国产偷v亚洲高清| 天堂va蜜桃一区二区三区漫画版| 成人高清视频在线| 久久综合资源网| 天天操天天干天天综合网| 色综合久久久久网| 国产精品日日摸夜夜摸av| 国产在线日韩欧美| 欧美一区二区福利在线| 亚洲自拍偷拍综合| av激情成人网| 久久久99精品久久| 毛片不卡一区二区| 欧美福利视频一区| 亚洲va中文字幕| 色香色香欲天天天影视综合网| 中文字幕巨乱亚洲| 国产精选一区二区三区| 欧美r级在线观看| 日韩不卡免费视频| 欧美日韩精品一区二区天天拍小说| 中文字幕日本不卡| 国产91精品露脸国语对白| 精品国产91乱码一区二区三区| 日韩精品欧美精品| 欧美日韩亚洲综合| 一区二区欧美国产| 欧美综合色免费| 夜夜爽夜夜爽精品视频| 91国内精品野花午夜精品| 一区二区中文视频| av中文字幕一区| 国产精品二三区| caoporn国产一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 午夜不卡av在线| 欧洲人成人精品| 亚洲人成人一区二区在线观看| 成人黄色电影在线| 亚洲国产成人在线| 9色porny自拍视频一区二区| 国产精品久久久久久久久晋中| 丁香六月久久综合狠狠色| 久久精品在这里| 成人深夜福利app| 国产精品不卡在线| 成人av免费网站| 亚洲三级在线播放| 91久久久免费一区二区| 亚洲综合图片区| 欧美久久久久久久久久| 看电影不卡的网站| 精品理论电影在线观看| 黄网站免费久久| 国产欧美va欧美不卡在线| 国产成人超碰人人澡人人澡| 国产精品剧情在线亚洲| 一本高清dvd不卡在线观看| 亚洲一区二区三区不卡国产欧美| 欧美午夜一区二区三区免费大片| 偷窥少妇高潮呻吟av久久免费| 337p亚洲精品色噜噜| 激情国产一区二区| 中国av一区二区三区| 日本精品一区二区三区高清| 日日夜夜精品视频天天综合网| 欧美zozo另类异族| www.亚洲色图| 亚洲国产人成综合网站| 日韩一区二区在线观看视频播放| 激情欧美一区二区| 亚洲啪啪综合av一区二区三区| 欧美高清视频在线高清观看mv色露露十八 | 中文字幕日本乱码精品影院| 欧美日韩aaaaa| 国产99久久久国产精品潘金| 一级精品视频在线观看宜春院| 91精品国产综合久久久久久久久久 | 91麻豆文化传媒在线观看| 午夜av区久久| 久久精品在这里| 欧美私人免费视频| 国产精品一区二区男女羞羞无遮挡| 中文字幕制服丝袜一区二区三区| 欧美日韩精品系列| 国产成人精品网址| 香蕉乱码成人久久天堂爱免费| 久久久久久久精| 欧美天天综合网| 粉嫩一区二区三区在线看| 香蕉久久夜色精品国产使用方法| 精品国产91乱码一区二区三区| 91久久精品国产91性色tv| 国产自产2019最新不卡| 亚洲一级二级在线| 国产日韩欧美a| 8x8x8国产精品| 91丝袜国产在线播放| 韩国女主播成人在线| 亚洲国产精品一区二区久久恐怖片| 精品国产乱码久久久久久老虎 | 久久久精品中文字幕麻豆发布| 色88888久久久久久影院野外| 国产精一区二区三区| 日韩影院精彩在线| 亚洲色图欧美激情| 久久久精品2019中文字幕之3| 欧美一区二区三级| 欧洲一区二区三区在线| 成人精品一区二区三区四区| 日本在线不卡视频一二三区| 亚洲最新在线观看| 中文字幕一区二区日韩精品绯色| 精品美女在线播放| 欧美一级夜夜爽| 日本韩国视频一区二区| 成人黄色电影在线| 国产福利一区二区三区视频| 久99久精品视频免费观看| 天天综合网 天天综合色| 亚洲图片欧美一区| 亚洲激情在线播放| 最新成人av在线| 国产精品天美传媒| 欧美激情一区二区三区四区| 久久久精品免费免费| 精品动漫一区二区三区在线观看| 6080亚洲精品一区二区| 欧美日韩亚洲另类| 欧美艳星brazzers| 91久久一区二区|