'Study/Network'에 해당되는 글 3건

  1. 2012.01.19 네트워크기초 1
  2. 2008.06.05 [네트워크] - SNMP를 알아볼까? 2
  3. 2008.04.05 [네트워크] - WinPcap 이란!?

네트워크기초 1

Study/Network 2012. 1. 19. 23:41
TCP/IP - Transmition Control Protocol / Internet Protocol

ethernet의 protocol인 CSMA/CD(Carrier Sensor Multiple Access / Collision Detect)
충돌이 있을 경우 특정 알고리즘에 의해 일정시간 후에 재시도 일정시간은 지속적으로 길어짐! 

UTP - Unshielded Twisted Pair
STP- Shielded Twisted Pair
1/2/3/6 번만 사용되어짐

DirectCable / CrossCable
PC <- DirectCable -> Switch
PC <- CrossCable -> PC
PC <- CrossCable -> Router

10 base T = 10Mbps이며 Baseband이고 TP케이블다.

Unicast - 대상이 한명(one)
Broadcast  - 해당 네트웍의 모든 대상(all)
Multicast - 해당 네트웍의 일부대상(some)

MAC(Media Access Control) 
총 48bit(6byte)로 이루어져 있으며 상위 28bit가 제조사 하위 28bit가 고유번호이다
Posted by hazeyun
,

이번 네트워크 프로그래밍 과제로 선정된 snmp ! 그것도 snmp manager만들기!;;;
이때 까진 ftp 잘 해나가다가 왜 갑자기 바꾸냔 말이다 ㅡ_ㅡ+ 자료도 없는걸..ㅋ
.
.
SNMP란 Simple Network Management Protocol의 약자로 해석 그대로 간단한 네트워크 관리 프로토콜이다. 이렇게 듣고는 잘 이해가 안간다. 그래서 이놈을 자세히 일단 이놈은  TCP/IP의 응용계층 프로토콜로 디자인 되었고, 전송계층의 프로토콜로는 UDP를 사용한다. 이점이 좀 중요한듯!
아래 그림을 보면(ppt에서 훔쳐 왔음ㅋㅋ) snmp의 구성을 알수가 있다.

사용자 삽입 이미지

 한마디로 관리를 하게되는 Manager와 Manager의 관리를 받게 되는 Agent로 되어있다. 근데 아래 그림에서보면 Agent가 클라이언트로 되어있는데..저부분이 맘에 안든다. 돌아가는 구조를 보게되면!
어쨌든 위와 같은 구성으로 되어있고 우리가 만들어야 하는 부분은 위쪽에 있는 SNMP Manager이다.
.
.
 그럼 저놈을 만들려면 패킷이 어떻게 구성되고, 패킷의 헤더는 뭐고 등등 저놈이 쓰는 프토로콜의 패킷의 분석을 먼저 해야겠지만 그럼 흥미가 확 저하 됨을 고려해 일단 저놈이 하는 기능이 뭔지 부터 알아보자. 일단 여기저기 자료를 찾아보면 알겠지만 기본 4가지 명령 GET, SET, GETNEXT, WALK명령으로 Agent의 관리를 하게된다. 물론 위의 명령은 기본 명령이고 추가적으로 TRAP, BULK등도 있다.
 그리고 이놈을 알려면 MIB와 OID라는 것도 알아야 한다. 일단 MIB는 Management Information Base의 약자로 SNMP가 관리해야 할 네트워크 상의 요소 들을 관리가 용이하게 하기 위해 분류해 놓은것으로 이것은 트리 구조를 가진다.
사용자 삽입 이미지
 그럼 OID란 무엇이냐? 이것도 약자인데 Object IDentifier의 약자이다. 위의 그림에서 숫자가 보이는데 이것이 OID이다. 관리 객체들이 가지는 식별 id인 것이다. 예를 들어 dod를 나타내려면 1.3.6이라는 것이다. 일단 이녀석들에 대해 너무 완벽히 이해하려 하지말고 이런이런게 있구나 정도로만 하면 크게 어려움은 없다.
.
snmp를 위한 유용한 사이트로 아래 두개를 추천한다.
http://www.net-snmp.org/ - SNMP에 대한 설명, 지원하는 API, 간단한 기본 소스코드등이 있는 SNMP프로젝트 사이트
http://www.oid-info.com/ - MIB객체를 가져올때 쓰는 oid를 알아볼 수 있는 사이트
Posted by hazeyun
,

학교 프로젝트 주제로 네트워크 패킷캡쳐 프로그램을 구현하기 winpcap에 대해 알아 보게 됐다!
.
.
.
일단 WinPcap란 무엇인가....!?
www.winpcap.org <- 여기에 가보면 잘 설명이 되어있다 영어로...
일반적으로 네트웍카드에는 항상 패킷이 오고가고 있다! 하지만 그걸 NIC(network interface card)에서는 들어오는 패킷이 나에게 오는것이 맞는가를 확인하고 맞다면 받아들여서 그에맞는 application으로 보내주고, 아니라면 즉각 폐기해 버린다.

사용자 삽입 이미지

대략 이런 구조로 되어있어서 폐기되기전에 읽어들여 버리면 자신의 컴퓨터에 NIC를 거치는 패킷을 볼 수 있다는 것이다. 하지만 물론 패킷들이 암호화 되어있고 또한 패킷의 헤더와 기타 불필요한 정보들이 덧붙어 있기 때문에 분석하기는 어렵다. 그리고 window환경에서는 application층에서 NIC에 직접적인 접근이 불가하다. 완전히 방법이 없는것은 아니다. fillter-driver를 이용한다든지 우회적인 방법이 있다.
여기서 Winpcap는 fillter-driver역활을 하는것이다.
원래는 linux에는 libpcap가 있다.
.
Winpcap작업 환경을 구축하려면 일단 위에 링크된 사이트에 접속하여 왼쪽에 보이는 메뉴에서 Development로 가서 WinPcap Developer's Pack을 다운로드하여 적당한곳에 압축을 푼다. 그리고 visual studio 환경이라면 도구 -> 옵션에서 프로젝트 솔루션 항목을 선택 하위항목인 VC++프로젝트에서 참조파일에 lib폴더를 포함시켜주고, 포함파일에 include폴더를 포함시켜준다. 그리고 dll파일을 필요로 하는데 링크된 사이트에서 winpcap를 받아서 인스톨해준다.
그럼 이상으로 winpcap를 이용할 환경은 구축 되었다!

Posted by hazeyun
,