tcp.awk
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:5k
- 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: Postscriptn" > 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: Postscriptn" > 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: Postscriptn" > 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: Postscriptn" > 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: Postscriptn" > 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: Postscriptn" > rttvarfile[saddr,sport,daddr,dport];
- }
- printf "%g %gn", time, cwnd > cwndfile[saddr, sport, daddr, dport];
- printf "%g %dn", time, ssthresh > ssthreshfile[saddr, sport, daddr, dport];
- printf "%g %dn", time, ownd > owndfile[saddr, sport, daddr, dport];
- printf "%g %dn", time, owndcorr > owndcorrfile[saddr, sport, daddr, dport];
- printf "%g %gn", time, srtt > srttfile[saddr, sport, daddr, dport];
- printf "%g %gn", 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;
- }
- }