R&D/Simulation2012.02.08 09:03
NS-2로 네트워크 시뮬레이션을 하다 보면 패킷의 색상만 좀 다르게 조정하고 싶을 때가 있죠. 기본적인 NS-2 시뮬레이션에서, 별도 조치를 하지 않는 한 패킷 색은 전부 검정색이에요.

시뮬레이션을 하는 목적이 시각화는 아니지만, 시각화 된 결과가 그럴 싸 하면 프로젝트를 진행하는 동안 이런 사람 저런 사람들에게 '어떤 식으로 시뮬레이션을 했는지' 설명하기 좋다는 장점이 있습니다. 

아시다시피  NS-2에서 시뮬레이션을 하려면 OTcl을 알아야 해요.

그리고 자신만의 프로토콜을 설계하고 그 프로토콜에 기반해 시뮬레이션을 하는 사람들은 C++로 패킷을 조작하고 날리는 방법에 대해서도 알아야 하죠.

  

위의 동영상을 보시면 아시겠지만, 어떤 패킷은 적색으로, 어떤 패킷은 검정색으로 표현되고 있습니다. 검정색 패킷은 '평범한' 패킷이고, 적색 패킷은 '좀 특별한' 패킷이에요. 어떻게 특별한지 설명하려면 꽤 장황해지니까 그건 생략하겠습니다.

우선, 저렇게 '특별한 패킷'의 색을 달리 조정하려면, NS-2 패킷의 헤더 가운데 IP 헤더의 flowid를 조작해야 합니다.

Packet* res = ...
...
hdr_ip* iphdr = hdr_ip::access(res); 
iphdr->flowid() = 99;



이렇게 패킷의 flowid를 조작하고 난 다음에는, 시뮬레이션 스크립트 (OTcl로 작성된)에서, 99라는 플로우 아이디를 어떤 색상으로 대응시킬 것인지 알려 줘야 합니다.

set ns [new Simulator]
...
$ns color 99 red
...



이렇게만 하면, flowid가 99인 패킷들은 전부 붉은 색으로 표시되어 보이게 되죠. 위의 동영상을 참고하세요. :-)


 
저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 몰랐던 이야기네요''

    2012.02.08 23:52 신고 [ ADDR : EDIT/ DEL : REPLY ]