⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trsplit

📁 对IEEE 802.11e里的分布式信道接入算法EDCA进行改进
💻
字号:
eval 'exec perl -S $0 ${1+"$@"}'  # -*-Mode:Perl; perl-indent-level:8-*-    if 0;#require 5.003;## Contributed by Giao Nguyen, http://daedalus.cs.berkeley.edu/~gnguyen#sub Usage{	$0 =~ s/.*\/([^\/]+)$/$1/;	print <<EOF;Split ns trace file into files for individual connectionUsage:  $0 [options] filesoptions: -c comment:  comment to print at the end along with total throughput	 -f	:  force new file for each connection	 -psize size of packet in bytes	 -tt	trace type	 -pt	packet type	(list)	 -fid   flow id 	(list)	 -ctt	trace type column	 -cpt	packet type column	 -ctime	time column	 -csrc	source address column	 -cdst	destination address columnEOF	exit;}sub Getopt{	local($spec) = @_;	local($key);	&Usage if ($#ARGV < 0);	while ($_ = $ARGV[0], /^-(\w+)/) {		shift @ARGV;		$key = $1;		$opt{$key} = (index($spec, "$key:") >= 0) ? shift @ARGV : 1;		$_ = "\$$key";		if ($key =~ /^(tt|pt|fid)$/) {			# concat to get list of values for a field in the trace			eval "$_ = $_ . '$opt{$key} '";		} else {			eval "$_ = $opt{$key}";		}	}}# default information on the trace$psize = 1000;			# packet size in bytes# Column numbers for each field in the trace$ctt = 1;$ctime = 2;$cpt = 5;$cfid = 8;$csrc = 9;$cdst = 10;$cseq = 11;# the file descriptor number to started with$fdcount = 4;# Set a couple of defaults if not given at the command line&Getopt(":c:psize:tt:ctt:ctime:cpt:cfid:csrc:cdst:cseq:");$force = $opt{'f'};$tt = '-'	if (! $tt);$pt = 'tcp'	if (! $pt);$fid = 0	if (! $fid);shift @ARGV while ($#ARGV >= 0 && (! -r $ARGV[0]));# process the trace filewhile (<>){	chop;	@col = ('', split);	$count{$col[$ctt]}++;	next if (index($tt, $col[1]) < 0);	next if (index($pt, $col[$cpt]) < 0);	next if (index($fid, $col[$cfid]) < 0);	$src = $col[$csrc];	$dst = $col[$cdst];	$key = "$col[1]_$col[$cpt]_$src_$dst";	$time{$key} = $col[$ctime];	$pktcnt{$key}++;	$seqno{$key} = $col[$cseq];	if ($force) {		$fd = $opened{$key};		if (! $fd) {			$opened{$key} = $fd = $fdcount++;			open($fd, ">${ARGV}_$key");		}		printf $fd "%0.6f\t%d\n", $col[$ctime], $col[$cseq];	}}# print the per-connection information to STDOUT@keys = sort (keys %time);foreach $key (@keys) {	$t = $time{$key};	$s = $seqno{$key};	if ($s > $pktcnt{$key}) {		$s = $pktcnt{$key};	}	$maxtime = $t  if ($t > $maxtime);	$maxpkt += $s;	printf("%s\t%0.6f\t%d\t%0.6f\t%0.6f\n",	       $key, $t, $s, $s/$t, 0.008 * $psize * $s/$t);}# print summary information to STDERRif ($maxtime > 0) {	printf STDERR " %d\t%0.6f\t%s\t",	$#keys+1, 0.008 * $psize * $maxpkt / $maxtime, $opt{'c'};	@keys = sort (keys %count);	foreach $key (@keys) {		print STDERR $key, $count{$key}, " ";	}	print STDERR "\n";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -