ns3 기본 요소

여기서 기본 요소라는 건 ns3 시뮬레이션 코드를 이루는 기본적인 요소들을 말한다. first.cc 예제와 함께 보면 훨씬 이해가 쉬울 것이다.

1. Node

우선 node가 있다. 단말과 같이 네트워크 토폴로지의 끝단이라고 보면 된다.

NodeContainer nodes;
nodes.Create (2);

NodeContainerCreate로 node를 생성할 수 있고, 몇개를 생성할 지 정할수 있다.

2. Channel

Channel은 말그대로 node와 node 사이 채널을 말한다. Channel은 ChannelContainer가 따로 있는 것이 아니라 CsmaChannel, PointToPointChannel, WifiChannel 등을 Helper를 통해 생성할 수 있다.

3. Net device

Net device의 경우 node가 있는데 왜 device가 따로 있나 라고 생각할 수도 있지만, Net device는 NIC의 역할을 한다고 보면 된다. 이 device에 ip 주소를 할당하게 되고,

NetDeviceContainer devices;
devices = pointTPoint.Install (nodes);

처럼 노드(nodes)와 채널(pointTPoint)을 연결시켜준다.

4. Application

Application은 node 내의 application layer에 해당한다고 보면 된다. Application에는 OnOffApplication, UdpEchoClientApplication 등이 있고,

ApplicationContainer clientApps = echoClient.Install (nodes.Get (0));
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0));

처럼 Application을 node에 설치할 수 있으며 시작, 끝 시간을 설정할 수 있다.

5. Helpers

Helper는 Topology나 Applciation, 프로토콜 스택 등을 쉽게 생성할 수 있도록 도와준다.

ns3 Logging, CommandLine