Topology는 네트워크, 시스템, 또는 컴퓨터 구조에서 구성 요소들 간의 연결 구조를 의미합니다. 네트워크 토폴로지는 노드(컴퓨터, 장치 등)와 이들을 연결하는 링크(선, 무선 연결 등)의 배치 방식을 나타냅니다. 네트워크에서 토폴로지는 장치들이 어떻게 서로 연결되고 데이터가 어떻게 흐르는지에 대한 중요한 정보를 제공합니다.
Single Topology는 1개의 Access Point(ap1)와 n개의 station들로 구성된 네트워크입니다. 명령어는 sudo mn --wifi --topo single,4이며, 4개의 station이 있다는 뜻입니다. 1개의 ap(ap1)가 존재하며, 하나의 ap에 4개의 sta가 연결되어 있는 형태입니다. 하나의 컨트롤러(c0)가 ap를 관리합니다.

Linear Topology는 n개의 Access Point(ap1, ap2, ap3, ..)와 n개의 station들로 구성된 네트워크입니다. 명령어는 sudo mn --wifi --topo linaer,4이며, 각각 4개의 Access Point와 station이 있다는 뜻입니다. 4개의 ap가 존재(ap1, ap2, ap3, ap4)하며, 하나의 ap에 각각의 sta(sta1, sta2, sta3, sta4)가 일대일로 연결되어 있는 형태입니다. 하나의 컨트롤러(c0)가 4개의 ap를 관리하며, ap들 사이에 연결 링크((ap2, ap1)(ap2, ap1)(ap2, ap1))가 존재합니다.

pingall
네트워크에 연결된 모든 장치 간의 연결을 확인하는 명령어로, 결과는 총 n(n-1)개의 ping 테스트를 제공합니다.
예를 들어 4개의 station이 존재한다고 가정해 봅시다.
sta1 -> ***sta1 (sta1과 관련된 모든 sta들)
sta2 -> ***sta2 (sta2과 관련된 모든 sta들)
sta3 -> ***sta3 (sta3과 관련된 모든 sta들)
sta4 -> ***sta4 (sta4과 관련된 모든 sta들)

이런 식으로 4(sta의 총 개수) x 3(현재 sta와 관련된 나머지 sta들) = 12개가 나오게 됩니다. 각각의 결과에는 ping 명령어 사용 시 얻을 수 있는 response time, rtt min/avg/max/mdev 등을 확인할 수 있습니다.
sudo mn --wifi --link=wmediumd --position
mininet-wifi에서 장치 간의 물리적 위치를 설정하여, 더 현실적인 무선 환경을 시뮬레이션하는 명령어입니다. wmediumd는 무선 네트워크 시뮬레이션에서 장치 간의 거리, 신호 강도, 간섭 등 현실적인 요소를 반영해 통신 품질을 계산하는 무선 링크 모델입니다. --position 옵션을 추가하면 네트워크 장치들의 위치를 지정할 수 있고, 위치에 따라 신호 강도와 통신 품질이 영향을 받습니다.
distance sta1 sta2
sta1과 sta2 간의 거리를 계산하는 명령어입니다.
참고. x, y, z 좌표 모두를 고려하여 두 지점 사이의 직선 거리로, 유클리드 거리 값으로 나옵니다. 거리=(x2−x1)^2+(y2−y1)^2+(z2−z1)^2에 루트
py sta1.position
sta1의 현재 위치(x,y,z 좌표)를 출력하는 명령어입니다.
py sta1.setPosition('10,0,0')
sta1의 위치를 (10, 0, 0)으로 변경하는 명령어입니다.
py sta.params
노드(=sta)의 구성 파라미터를 출력하는 명령어입니다. 이 명령어는 해당 스테이션의 네트워크 설정, 예를 들어 IP 주소, wlan 등과 같은 네트워크 파라미터를 확인할 수 있습니다.
py sta1.wintfs
wireless interfaces의 약자로, sta1의 무선 인터페이스 정보를 확인하는 명령어입니다. 결과의 의미는, sta1에는 하나의 wireless interface만 존재한다는 뜻입니다. 딕셔너리 형태로 보여주므로, 0은 키를 뜻합니다. 또한 managed는 클라이언트 모드로, STA(스테이션)가 AP(액세스 포인트)에 연결되도록 설정되어 있다는 뜻입니다.

py sta1.wintfs에서 추가 정보를 확인하기 위한 명령어
py sta1.wintfs[0]: sta1의 첫 번째 무선 인터페이스를 나타냅니다. 이를 통해 인터페이스의 세부 정보를 확인할 수 있습니다.
py sta1.wintfs[0].freq: 인터페이스가 현재 사용 중인 주파수(Frequency)를 GHz 단위로 나타냅니다. 2.412 GHz는 Wi-Fi 2.4GHz 대역의 채널 1을 의미합니다.
py sta1.wintfs[0].mode: 인터페이스의 무선 표준 모드를 나타냅니다. g는 802.11g 표준을 의미합니다.
py sta1.wintfs[0].txpower: 송신 전력(Tx Power)을 dBm 단위로 나타냅니다. 이 값이 높을수록 신호 도달 범위가 넓어지지만, 전력 소모도 증가합니다.
py sta1.wintfs[0].range: 송신 범위(Range)를 미터 단위로 나타냅니다.
py sta1.wintfs[0].antennaGain: Antenna Gain을 dBi 단위로 나타냅니다. Antenna Gain은 송신 및 수신 신호의 강도를 나타내며, 값이 클수록 신호가 더 집중됩니다.

ap1 ip link
ap1의 모든 네트워크 인터페이스를 확인하는 명령어입니다. wired interface와 wireless interface가 공존합니다. 이 명령어는 액세스 포인트(ap1)의 네트워크 인터페이스의 상태(활성화, 비활성화 등)를 확인할 수 있습니다.
sta1 iw dev sta1-wlan0 scan
sta1의 무선 인터페이스(sta1-wlan0)에서 주변 네트워크를 스캔하는 명령어입니다. sta1이 연결할 수 있는 와이파이 네트워크 목록을 확인할 수 있습니다.
스위치의 주된 역할은 Layer 2에서 패킷을 목적지까지 연결해주는 forwarding table을 만드는 것이며, 특정 경우 라우팅을 하게 되면 스위치는 라우터 역할을 할 수 있습니다.
iperf란 네트워크 성능 측정 및 튜닝 도구로, 스위치의 대역폭(bw)를 확인할 수 있습니다.
*참고. 스루풋은 네트워크 또는 시스템이 단위 시간당 처리할 수 있는 실제 데이터 전송량을 의미합니다. 보통 bps(bits per second)의 단위로 표현합니다(ex. Mbps, Gbps). 스루풋은 네트워크 성능을 평가할 때 중요한 척도로 사용합니다.
iperf3란 Windows, Linux 및 Unix에서 네트워크 성능을 테스트할 수 있으며, 속도와 대역폭에 따라 두 시스템 간의 네트워크 성능을 확인하는 데 사용되는 오픈 소스 무료 명령줄 도구입니다. 이 도구는 TCP 또는 UDP 네트워크 처리량을 측정하는 데 사용합니다.
sudo apt-get -y install iperf3: 우분투에서의 iperf3 설치 명령어
iperf3 -c 127.0.0.1 Connecting to host 127.0.0.1, port 5201: iperf3를 이용하여 먼저 클라이언트를 구현하는 명령어입니다. 서버 IP 주소 정보인 127.0.0.1의 서버에서 서버 listening socket port 5201에 연결하겠다는 의미입니다.

iperf3 -s: iperf3를 이용하여 서버를 구현하는 명령어입니다. 서버는 클라이언트 포트 번호(52923)로 접속한 클라이언트의 성능을 표시합니다. 서버 listening socket port 번호는 5201입니다.
만약 같은 listening socket port에 또 클라이언트를 연다면, 서버는 클라이언트에 다른 포트 번호를 부여하여 다중 클라이언트를 처리합니다.


MANET는 중앙 집중적인 인프라가 없는 동적이고 자율적인 네트워크입니다. 노드가 이동하거나 추가/삭제되더라도 네트워크가 자체적으로 구성되고 유지될 수 있는 특징을 가집니다.





군사용 애플리케이션을 위한 엣지(Edge) 및 클라우드 서버 아키텍처는 주로 실시간 데이터 처리와 네트워크 최적화를 위해 설계됩니다. 이를 통해 군사용 드론, UAV(Unmanned Aerial Vehicle), 센서 네트워크, 감시 시스템 등 다양한 군사 장비들이 실시간으로 데이터를 수집하고 처리할 수 있습니다. 이러한 시스템에서는 엣지 컴퓨팅(Edge Computing)과 클라우드 컴퓨팅(Cloud Computing)이 결합되어, 빠른 반응 속도와 효율적인 리소스 관리를 지원합니다.

1. Single Topology의 특징은?
하나의 Access Point(ap1)과 n개의 station으로 구성된 네트워크로, station의 개수는 보통 4개 -> sudo mn --wifi --todo single,4
2. Linear Topology를 생성하는 명령은 무엇인가요?
sudo mn --wifi --topo liner,4
3. Single Topology와 Linear Topology의 차이점을 설명하시오.
4. Mininet-WiFi에서 두 Station(sta1, sta2)의 거리를 확인하려면 어떤 명령어를 사용해야 하나요?
sudo mn --wifi --link=wmediumd --postion -> wmediumd은 채널 모델링이 사용된 토폴로지
distance sta1 sta2
5. wmediumd와 position 옵션의 역할을 설명하고, 이를 통해 얻을 수 있는 이점을 기술하시오.
6. sta1의 위치를 (10, 0, 0)으로 변경하는 명령어를 작성하시오.
py sta1.setPosition('10,0,0') -> sta1의 위치를 3차원 좌표로 설정하는 파이썬 명령어.
7. sta1의 무선 인터페이스 정보를 확인하려면 어떤 명령어를 사용해야 하나요?
py sta1.params
8. iperf 명령어의 주요 기능은 무엇인가요?
클라이언트-서버 모델을 사용하여 네트워크 대역폭과 성능 측정
9. iperf3를 통해 네트워크 성능을 측정하려고 합니다. 서버와 클라이언트 명령어를 각각 작성하시오.
10. Dynamic Routing Protocol이 심층 강화 학습(DRL)을 기반으로 최적의 경로를 선택하는 방식과 그 장점에 대해 설명하시오.