0
어떻게 행과 열로 모든 값을 나열 할 수 있도록 코드를 수정합니까?NS2 AWK 스크립팅을 사용하여 그래프 작성
바로 아래의 다음 코드는 바로 계산의 답을 이끌어냅니다.
예 :
**GeneratedPackets = 2438
ReceivedPackets = 2386
Packet Delivery Ratio = 97.8671
Total Dropped Packets = 9
Average End-to-End Delay = 31.013 ms**
하지만 내 그래프를 플롯하기 위해이 같은 일을하고 싶습니다 :
1 X1의 Y1
이 2 배 Y2
3 내가 시도
X3의 Y3 같은 명령을 사용하는 방법 : awk -f [스크립트 이름] .awk [추적 파일 이름] .tr> graph.xgr
아직 위의 계산 만 보여줍니다.
BEGIN {
seqno = -1;
droppedPackets = 0;
receivedPackets = 0;
count = 0;
}
{
#packet delivery ratio
if($4 == "AGT" && $1 == "s" && seqno < $6) {
seqno = $6;
} else if(($4 == "AGT") && ($1 == "r")) {
receivedPackets++;
} else if ($1 == "D" && $7 == "tcp" && $8 > 512){
droppedPackets++;
}
#end-to-end delay
if($4 == "AGT" && $1 == "s") {
start_time[$6] = $2;
} else if(($7 == "tcp") && ($1 == "r")) {
end_time[$6] = $2;
} else if($1 == "D" && $7 == "tcp") {
end_time[$6] = -1;
}
}
END {
for(i=0; i<=seqno; i++) {
if(end_time[i] > 0) {
delay[i] = end_time[i] - start_time[i];
count++;
}
else
{
delay[i] = -1;
}
}
for(i=0; i<count; i++) {
if(delay[i] > 0) {
n_to_n_delay = n_to_n_delay + delay[i];
}
}
n_to_n_delay = n_to_n_delay/count;
print "\n";
print "GeneratedPackets = " seqno+1;
print "ReceivedPackets = " receivedPackets;
print "Packet Delivery Ratio = " receivedPackets/(seqno+1)*100
"%";
print "Total Dropped Packets = " droppedPackets;
print "Average End-to-End Delay = " n_to_n_delay * 1000 " ms";
print "\n";
}
질문을 다시 입력하십시오. 원하는 출력을 얻기 위해 추적 할 ns2 추적 파일의 요소를 정의하는 곳에서 ns2 추적 입력을 포함하십시오. 포함시킨 awk 스크립트는 그래프와 전혀 관련이없는 것처럼 보입니다. – n0741337