NS2网络模拟(1)-延迟

本文介绍了一个使用awk编写的脚本,用于分析网络包从发送到接收的延迟时间。该脚本通过跟踪每个包的发送时间和接收时间来计算延迟,并记录最大包ID。适用于网络性能分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  1: #NS2_有线部分\EndDelay.awk
  2: 
  3: BEGIN {
  4:     #Initialize the variable
  5:     MaxID = 0;
  6:     i = 0;
  7: }
  8: 
  9: {
 10: #Event Abbreviation Type Value
 11: #%g %d %d %s %d %s %d %d.%d %d.%d %d %d
 12: #Normal Event
 13:         #r: Receive
 14:         #d: Drop
 15:         #e: Error
 16:         #+: Enqueue
 17:         #-: Dequeue
 18: #double  Time
 19: #int  (Link-layer) Source Node
 20: #int  (Link-layer) Destination Node
 21: #string  Packet Name
 22: #int  Packet Size
 23: #string  Flags
 24: #int  Flow ID
 25: #int  (Network-layer) Source Address
 26: #int  Source Port
 27: #int  (Network-layer) Destination Address
 28: #int  Destination Port
 29: #int  Sequence Number
 30: #int  Unique Packet ID
 31: 
 32:     #Evaluate the fields to new viariables
 33:     EVENT       = $1;
 34:     TIME        = $2;
 35:     SRCNODE     = $3
 36:     DSTNODE     = $4;
 37:     PKTNAME     = $5;
 38:     PKTSIZE     = $6;
 39:     FLAGS       = $7;
 40:     FLOWID      = $8;
 41:     SRCADDPORT  = $9;
 42:     DSTADDPORT  = $10;
 43:     SEQNO       = $11;
 44:     PKTID       = $12;
 45: 
 46:     #Record the maxmum
 47:     if (PKTID > MaxID)
 48:         MaxID = PKTID;
 49: 
 50:     #Record the transmitter time
 51:     if (StartTime[PKTID] == 0)
 52:         StartTime[PKTID] = TIME;
 53:        
 54:     
 55:     if (EVENT == "r" && FLOWID == 1) 
 56:     {
 57: #        printf("after: %s\t%d\t%s\n", EVENT, FLOWID, TIME);
 58:         EndTime[PKTID] = TIME;
 59: #        printf("%g %d %d %s %d %s %d %d.%d %d.%d %d %d\n", EVENT, TIME, FLOWID, PKTID);
 60: #        printf("after: %s    %d    %s    %d\n", EVENT, FLOWID, EndTime[PKTID], PKTID);
 61: #        if (EVENT == "r")
 62: #        {
 63: #            EndTime[PKTID] = TIME;
 64: #        }
 65: 
 66:     } 
 67:     else 
 68:     {
 69:         EndTime[PKTID] = -1;
 70: 
 71:     }
 72: 
 73: 
 74: }
 75: 
 76: END {
 77:     for (PKTID = 0; PKTID <= MaxID; PKTID ++) 
 78:     {
 79:         Start = StartTime[PKTID];
 80:         End = EndTime[PKTID];
 81:         Delay = End - Start;
 82:         if (Delay >= 0)
 83:             printf("%f\t%f\n", Start, Delay);
 84: #        packet_duration = EndTime[PKTID] - StartTime[PKTID];
 85:         
 86: #            printf("%f\t%f\n", start, packet_duration);
 87:     }
 88: }
 89: 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值