Chapter 3: AMAN 2002 구성 및 사용법 2003. 3.
AMAN2002 Aide of Network Management 2002 네트워크 실습 소프트웨어 기능 네트워크 패킷 캡처 네트워크의 구성 확인 네트워크 성능 분석 네트워크 장애상태 확인
AMAN2002 실행 프로그램 Packet Observer Guru WinPing WinTraceroute Traffic Generator Traffic Receiver CSMA/CD Simulator Error/Flow Control Simulator EzTrans
Packet Observer 프로그램의 시작경로 C:\AMAN2002\PObserver.exe
네트워크 트래픽 캡처 패킷 캡처 시작 어댑터 선택 패킷 캡처 진행
네트워크 트래픽 캡처 패킷 캡처 결과 선택된 패킷의 계층별 헤더 분석 헥사코드, 아스키 코드 데이터 캡처된 패킷 목록
AMAN2002 라이브러리 Ncap 라이브러리 Nmicmp 라이브러리 Nmtrt 라이브러리 Nmtgen,Nmtrcv 라이브러리 패킷 모니터링 라이브러리 Nmicmp 라이브러리 네트워크 연결 검사 및 장애 발견 Nmtrt 라이브러리 네트워크 구성 정보 확인 Nmtgen,Nmtrcv 라이브러리 네트워크 대역폭, 상태 점검
Ncap 라이브러리 C++ 기반의 패킷 모니터링 라이브러리 네트워크 인터페이스를 통과하는 Ethernet 패킷 모니터링 네트워크 성능 관리 기능 Microsoft Visual C++ 6.0에서 최적화 CSelectAdaptorDlg Class 사용에 필요한 파일들 SelectAdaptorDlg.h ncapd.lib
Ncap 라이브러리 CSelectAdaptorDlg Class의 주요 API int OpenAdapter(int iFilter); 네트워크 어댑터 open 및 초기화 iFilter의 값에 따라 IP,TCP,UDP 필터 설정 가능 void CloseAdaptor(); 어댑터 close 및 자원해제 int Ncap(unsigned char * pBuffer, int iLength); 네트워크 어댑터를 통해 한 개의 패킷을 획득
Ncap 라이브러리 CSelectAdaptorDlg Class의 주요 API Unsigned int Twobytes_to_number(char chFirst, char chSecond); 2바이트의 바이너리 데이터를 int 형의 숫자로 변환 Unsigned long Fourbytes_to_number(char chFirst, char chSecond, char chThird, char chForth); 4바이트의 바이너리 데이터를 long 형의 숫자로 변환
Ncap 라이브러리 사용 예제 EtherViewer C:\AMAN2002\example\EtherViewer.zip
Nmicmp 라이브러리 ICMP Echo 메시지를 주기적으로 전송하여 네트워크 연결상태를 검사 ICMP Echo 동작 원리 ICMP Echo 메시지 TTL 설정 ICMP Echo 응답메시지를 기다리는 시간 설정 ICMP Echo 동작 원리
Nmicmp 라이브러리 CIcmpEcho Class 사용에 필요한 파일들 CIcmpEcho Class의 주요 API nmicmp.h nmicmp.lib CIcmpEcho Class의 주요 API long pingRequest(Cstring strHost, t_PingResult * pPingResult); strHost에 대해 ping을 수행
Nmicmp 라이브러리 CIcmpEcho Class의 주요 API void setPingDataLength(int iPingDataLength); ping 메시지에 실어보낼 더미데이터의 크기 설정 void setPingMaxHops(int iPingMaxHops); iPingMaxHops를 통해 TTL값을 설정 void setPingTimeOut(int iPingTimeOut); 패킷에 대한 타임아웃 설정
Nmicmp 라이브러리 사용예제 WinPing C:\AMAN2002\example\WinPing
Nmtrt 라이브러리 ICMP Echo 요청메시지를 이용 출발 호스트에서 목적 호스트까지 인터넷을 통해 거치게 되는 게이트웨이를 기록 네트워크 구성 정보 확인 문제점이 있는 네트워크 파악
Traceroute의 동작원리
Nmtrt 라이브러리 CTraceroute Class 사용에 필요한 파일들 CTraceroute Class의 주요 API nmtrt.h nmtrtd.lib CTraceroute Class의 주요 API int tracerouteRequest(CString strHost, t_TracerouteInfo * pTrtInfo); strHost에 대해서 traceroute를 수행
Nmtrt 라이브러리 CTraceroute Class의 주요 API CString getHostNameByAddress(CString strIPAddr); IP주소에 대한 호스트 이름을 반환 CString whoIsRequest(CString strIPAddr); 호스트(strIPAddr)의 Whois 정보를 반환
Nmtrt 라이브러리 사용 예제 WinTraceroute C:\AMAN2002\example\WinTrt
Nmtgen, Nmtrcv 라이브러리 임의로 트래픽을 발생하여 네트워크 성능을 테스트함 UDP 기반의 IP 데이터그램 전송
Nmtgen, Nmtrcv 라이브러리 CNmtGen Class 사용에 필요한 파일들 CNmtGen Class의 주요 API nmtgen.h nmtgend.lib CNmtGen Class의 주요 API void SetIpAddress(CString strIpAddress); 데이터 수신지 시스템의 IP 주소 설정 void SetPortNumber(unsigned short shPortNumber); 데이터 수신지 시스템의 포트번호 설정
Nmtgen, Nmtrcv 라이브러리 CNmtRcv Class의 주요 API void SetRequestTransferSpeed(int iSpeed); 초당 데이터 전송량 설정 void SendStart(); 데이터 전송을 시작함 void SendStop(); 데이터 전송을 종료함
Nmtgen, Nmtrcv 라이브러리 CNmtRcv Class 사용에 필요한 파일들 CNmtRcv Class의 주요 API nmtrcv.h nmtrcvd.lib CNmtRcv Class의 주요 API void GetWndHandle(HWND hWnd); 윈도우 핸들을 전달 void SetPortNumber(unsigned short shPortNumber); 데이터 수신 시스템의 포트번호를 설정
Nmtgen, Nmtrcv 라이브러리 사용 예제 Traffic Generator C:\AMAN2002\example\TGen Traffic Receiver C:\AMAN2002\example\TRcv
참고 문헌 서승호 외, AMAN2002를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍, 정익사, 2002. RFC 826, David C. Plummer, An Ethernet Address Resolution Protocol or Converting Network Protocol Address to 48bit Ethernet Address for Transmission on Ethernet Hardware, November 1982. RFC 791, Jon Postel, INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION, September 1981. IETF, RFC 792, “Internet Control Message Protocol”, 1981. RFC 793, Jon Postel, TRANSMISSION CONTROL, PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION, September 1981. RFC 768, J.Postel, User Datagram Protocol, August 1980. RFC 1700, J.Postel, ASSIGNED NUMBERS, October 1994.