본문 바로가기

프로토콜27

728x90
반응형
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.