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

📄 tcp.awk

📁 对IEEE 802.11e里的分布式信道接入算法EDCA进行改进
💻 AWK
字号:
BEGIN {	if (dir == "")		dir = ".";}	{time = $2;saddr = $4;sport = $6;daddr = $8;dport = $10;hiack = $14;cwnd = $18;ssthresh = $20;srtt = $26;rttvar = $28;ownd = $34;owndcorr = $36;nrexmit = $38;if (!((saddr, sport, daddr, dport) in starttime)) {	starttime[saddr, sport, daddr, dport] = time;	ind[saddr, sport, daddr, dport] = sprintf("%s,%s-%s,%s", saddr, sport, daddr, dport);}if ((cwnd >= 100) && (!((saddr, sport, daddr, dport) in cwndtime))) {	cwndtime[saddr, sport, daddr, dport] = time;	cwndhiack[saddr, sport, daddr, dport] = hiack;}if ((time >= mid) && (!((saddr, sport, daddr, dport) in middletime))) {	middletime[saddr, sport, daddr, dport] = time;	middlehiack[saddr, sport, daddr, dport] = hiack;}if ((time >= turnon) && (!((saddr, sport, daddr, dport) in turnontime))) {	turnontime[saddr, sport, daddr, dport] = time;	turnonhiack[saddr, sport, daddr, dport] = hiack;}if (time <= turnoff) {	turnofftime[saddr, sport, daddr, dport] = time;	turnoffhiack[saddr, sport, daddr, dport] = hiack;	numrexmit[saddr, sport, daddr, dport] = nrexmit;}endtime[saddr, sport, daddr, dport] = time;highest_ack[saddr, sport, daddr, dport] = hiack;if (!((saddr, sport, daddr, dport) in cwndfile)) {	cwndfile[saddr, sport, daddr, dport] = sprintf("%s/cwnd-%d,%d-%d,%d.out", dir, saddr, sport, daddr, dport);	printf "TitleText: (%d,%d)->(%d,%d)\n", saddr, sport, daddr, dport > cwndfile[saddr,sport,daddr,dport];	printf "Device: Postscript\n" > cwndfile[saddr,sport,daddr,dport];}if (!((saddr, sport, daddr, dport) in ssthreshfile)) {	ssthreshfile[saddr, sport, daddr, dport] = sprintf("%s/ssthresh-%d,%d-%d,%d.out", dir, saddr, sport, daddr, dport);	printf "TitleText: (%d,%d)->(%d,%d)\n", saddr, sport, daddr, dport > ssthreshfile[saddr,sport,daddr,dport];	printf "Device: Postscript\n" > ssthreshfile[saddr,sport,daddr,dport];}if (!((saddr, sport, daddr, dport) in owndfile)) {	owndfile[saddr, sport, daddr, dport] = sprintf("%s/ownd-%d,%d-%d,%d.out", dir, saddr, sport, daddr, dport);	printf "TitleText: (%d,%d)->(%d,%d)\n", saddr, sport, daddr, dport > owndfile[saddr,sport,daddr,dport];	printf "Device: Postscript\n" > owndfile[saddr,sport,daddr,dport];}if (!((saddr, sport, daddr, dport) in owndcorrfile)) {	owndcorrfile[saddr, sport, daddr, dport] = sprintf("%s/owndcorr-%d,%d-%d,%d.out", dir, saddr, sport, daddr, dport);	printf "TitleText: (%d,%d)->(%d,%d)\n", saddr, sport, daddr, dport > owndcorrfile[saddr,sport,daddr,dport];	printf "Device: Postscript\n" > owndcorrfile[saddr,sport,daddr,dport];}if (!((saddr, sport, daddr, dport) in srttfile)) {	srttfile[saddr, sport, daddr, dport] = sprintf("%s/srtt-%d,%d-%d,%d.out", dir, saddr, sport, daddr, dport);	printf "TitleText: (%d,%d)->(%d,%d)\n", saddr, sport, daddr, dport > srttfile[saddr,sport,daddr,dport];	printf "Device: Postscript\n" > srttfile[saddr,sport,daddr,dport];}if (!((saddr, sport, daddr, dport) in rttvarfile)) {	rttvarfile[saddr, sport, daddr, dport] = sprintf("%s/rttvar-%d,%d-%d,%d.out", dir, saddr, sport, daddr, dport);	printf "TitleText: (%d,%d)->(%d,%d)\n", saddr, sport, daddr, dport > rttvarfile[saddr,sport,daddr,dport];	printf "Device: Postscript\n" > rttvarfile[saddr,sport,daddr,dport];}printf "%g %g\n", time, cwnd > cwndfile[saddr, sport, daddr, dport];printf "%g %d\n", time, ssthresh > ssthreshfile[saddr, sport, daddr, dport];printf "%g %d\n", time, ownd > owndfile[saddr, sport, daddr, dport];printf "%g %d\n", time, owndcorr > owndcorrfile[saddr, sport, daddr, dport];printf "%g %g\n", time, srtt > srttfile[saddr, sport, daddr, dport];printf "%g %g\n", time, rttvar > rttvarfile[saddr, sport, daddr, dport];1} END {	for (f in cwndfile) {		close(cwndfile[f]);	}	for (f in ssthreshfile) {		close(ssthreshfile[f]);	}	for (f in owndfile) {		close(owndfile[f]);	}	for (f in owndcorrfile) {		close(owndcorrfile[f]);	}	for (f in srttfile) {		close(srttfile[f]);	}	for (f in rttvarfile) {		close(rttvarfile[f]);	} 	for (i in starttime) {		if (endtime[i] == starttime[i]) 			print starttime[i], endtime[i], highest_ack[i];		bw = calc_bw(0,highest_ack[i],starttime[i],endtime[i]);# 		bw = (highest_ack[i]/(endtime[i] - starttime[i]))*8.0;#		duration = endtime[i] - starttime[i];		duration = 15;		if (i in cwndtime) {			ss_bw = calc_bw(cwndhiack[i],highest_ack[i],cwndtime[i],endtime[i]);#			ss_bw = ((highest_ack[i] - cwndhiack[i])/(endtime[i] - cwndtime[i]))*8.0;			ss_starttime = cwndtime[i] - starttime[i];		}		else {			ss_bw = -1;			ss_starttime = -1;		}		if (i in middletime) {			sh_bw = calc_bw(middlehiack[i],highest_ack[i],middletime[i],endtime[i]);#			sh_bw = ((highest_ack[i] - middlehiack[i])/(endtime[i] - middletime[i]))*8.0;		}		else {			sh_bw = -1;		}		on_bw = -1;		if (i in turnontime) {			if (turnontime[i] < turnofftime[i]) {#				on_bw = calc_bw(turnonhiack[i],turnoffhiack[i],turnontime[i],turnofftime[i]);				on_bw = calc_bw(turnonhiack[i],turnoffhiack[i],turnon,turnoff);#				on_bw = ((turnoffhiack[i] - turnonhiack[i])/(turnofftime[i] - turnontime[i]))*8.0;			}		} 		print ind[i], duration, bw, ss_starttime, ss_bw, sh_bw, on_bw > "thruput";		print ind[i], numrexmit[i] > "numrexmit"; 	}	close("thruput");	close("numrexmit");	for (i in ind) {		print ind[i] > "index.out"			}	close("index.out");}function calc_bw(startseq, endseq, starttime, endtime) {	if (endtime > starttime ) {		return ((endseq-startseq)*8.0/(endtime-starttime));	}	else {		return -1;	}}

⌨️ 快捷键说明

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