본문 바로가기

프로토콜29

728x90
반응형
[네트워크] 듀티 사이클(Duty Cycle) 소개 본 글은 2017년 12월 16일 15시 50분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 통신 및 네트워크에서 흔히 말하는 듀티사이클(Duty Cycle)이란 주기적으로 장치가 켜지고 꺼지는 것을 말한다. 이는 주로 전력을 절약하기 위해 사용되며 흔히 통신 인터페이스의 전원을 껐다가 켜는 동작을 수행한다. 켜져 있을 때는 깨어있다(Wake up)하고 꺼져 있을 때는 자고 있다(Sleep)라고 말하는 것이 일반적이다. 위의 그림처럼 듀티 사이클을 나타낼 수 있으며 해석하면 t1에서 t2 시간 사이에는 장치는 켜져 있고 t2에서 t3에는 장치가 꺼져 있는 것을 알 수 있다. 2020. 10. 13.
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.
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.
윈도우에서 php_ssh2 모듈을 써보자 본 글은 2017년 7월 17일 14시 34분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 윈도우에서 php_ssh2 모듈을 쓰는 이유 아무래도 보안 때문에 sftp를 써야해서 php_ssh2 모듈을 설치했다. 설치하면서 생각보다 착오를 많이 겪어서 다음에 진행하기 용이하도록 이 글에 설치법을 남긴다. 설치를 진행했던 컴퓨터의 환경은 Windows Server 2012 R2 x64와 php5.5, IIS 8.5.9600.16384이다. 먼저 사용가능한 버전을 확인하면 아래와 같다. 윈도우 php_ssh2 모듈 다운로드 php_ssh2 다운로드 주소 : https://pecl.php.net/package/ssh2 php_ssh2 모듈은 이렇게 버전들이 있다. 대부분 리눅스에서 구.. 2020. 10. 11.
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.