1.判断TCP通信结束的方法是:比较ack_是否和最大的数据序列号maxseq_相等,如果相等,则通信结束
if {[$tcpsrc($i,$j) set ack_]==[$tcpsrc($i,$j) set maxseq_]}{
$tcp($i) set ack_表示接收端收到的最大确认号
$tcpsrc($i,$j) set maxseq_ 表示最大的数据序列号
2.相对于trace有另外一种监测方法——Monitor
Monitor有两种:tDQ广西大学网络中心
1) 队列监测(Queue Monitoring)
2) 流监测(Per-Flow Monitoring)
$ns monitor-queue<n1> <n2> <qtrace> <optional:sampleinterval>
;#创建一个队列监视器,跟踪在节点n1和n2之间的链路上队列的平均长度,并将相关数据写入名为qtrace的Trace文件中,可选项< sampleinterval>为两次记录之间的时间间隔,默认值为0.1秒。
set monfile [openmon.tr w] ;#监测文件tDQ广西大学网络中心
set fmon [$nsmakeflowmon Fid] ;#采用流标记创建一个数据流的监视对象
$ns attach-fmon $flink$fmon ;#将监测对象$fmon与需要监测的链路$flink关联
$fmon attach $monfile;#将监测记录文件$monfile与监测器对象$fmon关联
注:每个流监视都包含了一个数据分组和字节的到达、离开和丢弃的整体统计,这样就无需再创建一个队列监视来记录整体的统计数据。