본문 바로가기

컴퓨터 네트워크 프로토콜30

728x90
반응형
NS-3 UAN 모듈에 IPv6를 올리다가 생긴 PacketSocketHelper 중복 사용 문제 본 글은 2016년 12월 5일 20시 12분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. UAN(Underwater Acoustic Networks) 모듈에 IPv6를 올려서 예제를 만드는 도중에 발생한 오류이다. IPv6나 IPv4를 노드(Node)에 올리다가 생기는 문제는 주로 PacketSocketHelper의 중복 사용 문제이다. InternetStackHelper가 PacketSocketHelper를 이미 쓰고 있기 때문에 나타나는 현상이라서 소스를 잘 살펴서 PacketSocketHelper가 중복 사용되는 부분만 지워주면 된다. 에러 메시지는 다음과 같다. Object::AggregateObject(): Multiple aggregation of objects o.. 2020. 10. 13.
TCP/IP가 성공한 이유는 무엇일까? 본 글은 2017년 11월 25일 0시 15분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 현재 대부분 통신이 TCP/IP 환경기반이다. 하지만 네트워크 관련 공부를 하다보면 OSI 7 Layer가 꼭 나오는데 이는 OSI 7 Layer가 비록 산업적으로나 상업적으로 성공하지는 못 했지만 새로운 네트워크 계층이나 프로토콜을 생각할 때 참고자료로써의 가치가 있기 때문이다. 그럼 왜 TCP/IP가 아닌 OSI 7 Layer가 참고자료로써의 가치가 아직까지도 있는데에도 왜 TCP/IP가 성공했는 지에 대해서 의문이 생긴다. 조사한 결과 이는 TCP/IP가 OSI 7 Layer보다 빨리 출시되었고 이기종간 통신 프로토콜이 최대한 빨리 필요한 미국방성에서 TCP/IP를 공식적으로 사용했.. 2020. 10. 13.
IPv4(Internet Protocol Version 4) 개요와 패킷 구조 본 글은 2017년 5월 29일 8시 34분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. IPv4(Internet Protocol Version 4)는 1981년 9월에 IETF RFC 791에 정의된 TCP/IP에서 활용하는 네트워크 주소체계이다. 현재 IPv6와 함께 가장 강력한 인터넷 주소체계로 인정 받는다. IPv4에서는 네트워크 주소를 총 32비트로 표현하기 때문에 약 43억개의 주소를 나타낼 수 있다. 2011년 2월 4일부터 모든 공인 IPv4 주소가 소진되어 IPv4의 공인 IP 할당이 중지되었다. 네트워크에서의 주소를 표현하기 때문에 IPv4는 TCP/IP의 네트워크 레이어에 해당하는 프로토콜이다. 이 프로토콜의 패킷을 데이터그램이라고 부른다. IPv4의 패킷 .. 2020. 10. 13.
NS-3에 적합한 통합개발환경(IDE)은 무엇일까? 본 글은 2017년 6월 15일 22시 24분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. NS-3에 적합한 IDE를 검토한 이유 본격적으로 내가 네트워크 시뮬레이터를 사용해야하는 상황이 도래했다. 내가 소속되어 있는 연구실은 주로 NS-2와 NS-3를 네트워크 시뮬레이터로 사용하고 있으며 새롭게 네트워크 시뮬레이션을 익히는 자에게는 NS-3 사용을 권장하고 있다. 사실 나의 경우 작년에는 NS-3를 해도 gedit이나 Geany 같은 텍스트 에디터와 터미널 창으로 꾸역꾸역 버텨왔는데 이 경우 코드 추적, 자동완성 등의 기능을 사용하지 못 해서 생산성이 극단적으로 좋지 않았다. 안드로이드나 윈도우 개발을 주로하던 나에게는 이런 말도 안 되는 생산성으로 결과를 만들어 내니 꽤나 .. 2020. 10. 13.
OMNeT++ 소개 및 라이센스 비용 본 글은 2017년 9월 6일 18시 18분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. OMNeT++ 소개 OMNeT++는 네트워크 시뮬레이터 중 하나로 확장성을 고려한 모듈식 설계가 큰 특징이다. 이 모듈식 개발을 위해 C++로 각 모듈의 동작을 구현하고 NED로 이 모듈을 묶는다. OMNeT++은 Eclipse 기반의 IDE를 제공하여 개발하기 용이한 장점이 있다. 사실 많이 사용하는 네트워크 시뮬레이터는 다 이 구조라서 구조자체는 딱히 큰 장점은 없으나 UI로 인한 편리함에 차이가 난다. OMNeT++ 라이센스 개인, 교육 및 연구를 목적으로한 학술기관, 비영리 연구기관 등에 비영리적 목적으로 무료로 제공한다. 하지만 아래의 예와 같이 영리 활동을 하는 경우 라이센스를 .. 2020. 10. 11.
NS-3에서 데이터형을 변환 하는 법 본 글은 2017년 10월 27일 11시 28분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 한 날 NS-3 모듈을 개발하는 도중 클래스 형변환을 할 필요가 있었다. NS-3에서는 스마트 포인터를 사용하고 있기에 dynamic_cast(expression), static_cast(expression)를 사용하면 된다 싶었는데 NS-3에서는 이게 안 된다. 찾아보니까 NS-3에는 비슷한 동작을 하는 다른 것이 있었다. DynamicCast(expression)이라는 것인데 dynamic_cast 처럼 동일한 역할을 하는 것 같다. 사용법은 다음과 같다. class NetDevice{}; class WifiNetDevice : public NetDevice{}; . . . // 현.. 2020. 10. 11.
NS-3에서 수중 통신 시뮬레이션하는 방법 조사 본 글은 2017년 12월 14일 21시 07분에 썼던 글이며 블로그 자료 이전으로 날짜만 갱신된 글입니다. 우리 연구실에 6년 동안 진행하는 수중 센서 네트워크 연구 프로젝트가 들어오면서 나의 연구 주제에 수중도 추가되었다. 어차피 기존에 익혀두었던 지식을 토대로 수중환경의 특징을 고려해서 연구하면 되니 시간이 충분하다면 주제를 바꾸는 건 큰 문제가 없기에 전환하였다. 우리 연구실은 2007년부터 수중 네트워크 연구를 했었기에 관련 연구 경험이 있는 편이었다고 한다. 지금까지는 시뮬레이터를 주로 NS-2를 썼다고 한다. 이번에 연구 기간이 긴 프로젝트가 생긴 김에 현재 가장 활발히 사용되는 NS-3에서 수중 시뮬레이션이 가능한 지 조사해보았다. 1. UAN(Underwater Acoustic Netwo.. 2020. 5. 19.
VPN(Virtual Private Network)을 경유하지않고 외부망 이용하기 VPN(Virtual Private Network)은 물리적으로 같은 네트워크에 있는 것이 아니어도 하나의 네트워크에 있는 것처럼 네트워크를 구성할 수 있는 기술이다. 이 기술을 활용하면 사용자는 서울(Network A, 192.168.0.%)에 있어도 대구에 있는 자신의 회사 네트워크(Network B, 192.168.1.%)에 접속하여 회사 네트워크를 이용할 수 있게 된다. VPN으로 네트워크를 구성하면 네트워크 정책상 외부(서울)에 서비스를 제공하지 않고도 VPN에 연결된 외부 장치(192.168.0.2)는 내부에 있는 서비스를 이용할 수 있게 된다. 또한 암호화 VPN을 구성하면 내부에서 외부로 데이터가 유출되어도 내용이 암호화 되어 있어 해독이 불가능하기에 보안이 확보되는 것이 큰 특징이다. 윈.. 2019. 5. 2.
NS-3에서 프로토콜 모듈을 추가해보자 본 글은 2017년 12월 15일 07시 48분에 썼던 글이며 블로그 자료 이전으로 날짜만 갱신된 글입니다. NS-3을 이용해 시뮬레이션을 하기 위하여 NS-3에 없는 기존에 있던 모듈을 나의 NS-3에 추가해야 하는 경우가 있다. 일단 NS-3 시뮬레이터가 이미 빌드되어 있다고 가정하고 설명한다. 먼저 추가하고자 하는 모듈을 ns-3.x/src 폴더에 넣는다. 나는 aqua-sim-ng 모듈을 다운 받았다. 이렇게 모듈을 src 폴더에 넣어준 후 다음의 명령어를 입력한다. $ ./waf configure --enable-examples --enable-tests $ ./waf build 그러면 위와 같은 로그들이 쭈욱 나타난다. 정상적으로 모듈 빌드와 테스트가 완료되었는 지를 확인하고 다음의 명령어를 .. 2019. 4. 14.
NS-3(Network Simulator 3) 소개 본 글은 2016년 8월 8일 21시 34분에 썼던 글이며 블로그 자료 이전으로 날짜만 갱신된 글입니다. NS-3 개요 NS-3(Network Simulator 3, http://www.nsnam.org/) 시뮬레이터는 2006년에 오픈소스 프로젝트로 시작된 무료 네트워크 시뮬레이션 프로그램이다. NS-3는 discrete-event 기반 네트워크 시뮬레이터로써 주로 연구 및 교육용으로 사용한다. NS-3는 독립 이벤트 시뮬레이터로 패킷레벨의 시뮬레이션이 가능하며 계층구조, 유선 및 무선 네트워크를 지원한다. NS-3 특징 NS-3는 FreeBSD와 Linux, SunOS, Solaris, Windows(Cygwin) 플랫폼을 지원하며 C++로 작성되었다. NS-3는 현재도 활발히 사용 되는 NS-2와 .. 2019. 3. 25.