:::: MENU ::::
Browsing posts in: Development

유용한 툴 – Process Explorer

이 툴 역시 Sysinternals에서 만든 툴입니다. 현재 동작하는 프로세스들의 정보를 보여주며, 각 프로세스를 죽이거나 우선순위를 조정하는 기능들도 제공을 합니다. 더 많은 기능이 있으니 한번 다운로드 받아보기길……
Overview


http://live.sysinternals.com/procexp.exe 에서 다운로드 받을 수 있습니다.


유용한 툴 – Terminal

대부분의 임베디드 시스템에서 시리얼 인터페이스는 필수적으로 가지고 있다. 이 시리얼 인터페이스를 통해 디버깅도 하는데 이때 필요한 것이 터미널 프로그램이다. 일반적으로 윈도우즈의 Hyper Terminal을 써도 되지만 Hyper Terminal은 불편하기도 하고, null 문자를 제대로 수신 및 전송을 하지 못하는 버그도 있다.


그리고 데이터를 Hex로 수신하거나 전송할때도 이 프로그램은 유용하며, 매크로 기능이 있어서 지정한 시간동안 반복적으로 데이터를 보낼때 유용하다.
Hex로 데이터를 보내려면 $를 붙여야 한다. 즉 0x0D를 보내려면 $0d 로 입력하면 된다.
물론 freeware..
cfile8.uf.176F5A214BFC9F82566D23.zip


유용한 툴 – Socket Tester

개발을 하다보면 테스트에 필요한 툴을 직접 만들어야 할때도 있다. 하지만 그전에 이미 누군가 만들어 놓은 툴이 있다면?
이것을 사용하는 것이 보다 효과적이다. 문제가 있을때 툴이 문제인지 보드가 문제인지 확인하기 전에, 일단 툴은 이상이 없다는 가정이 되니깐…

네트워크 프로그래밍을 하다보면 테스트가 필요한데,
가장 간단한 TCP server 및 client 로 동작하는 툴이 Castalia Technologies에서 만든 Socket Tester 프로그램이다.

확인해 보니 Castalia Technologies는 이젠 검색이 되지 않는데, 이 프로그램은 실행파일 하나로 동작하는 간단하지만 유용한 툴! 게다가 Freeware…


cfile10.uf.200C810C4BFC97B386191F.zip


Wireshark 사용팁-2

지난번 Wireshark 사용법Wireshark사용팁-1에 이은 2탄 ^^
이 기능도 꽤나 자주 사용되는 팁이다.
네트워크 패킷을 잡다보면 내가 원하는 패킷만 봐야 패킷이 어떻게 오고 가는지 이해하기가 쉽니다.
이때 필요한 것이 필터기능이다. 필터에는 2가지가 있는데 Display Filter와 Capture Filter가 있다.
Display filter는 패킷을 다 잡고 원하는 패킷만 filtering해서 보여주는 것이고, Capture Filter는 패킷을 잡을때 필터링을 해서 패킷을 잡는것이다.

이것이 Display Filter인데 만약 IP address가 192.168.0.1로 오고가는 패킷만 보고 싶으면 이것을 사용하면 된다.
아래 그림처럼 이 필터의 이름은 “IP address 192.168.0.1″이고 Filter string은 “ip.addr == 192.168.0.1″인데, 이름이야 어찌 됐든 이 Filter string이 중요하다. 즉 아래 보이는 형태대로 필터를 구성을 해야지 Wireshark가 알아먹는다.

좀 특이한 것은 이 Display Filer와 Capture filter의 Filter string이 다르므로 서로 혼용해서 사용할 수 가 없다.
즉 같은 필터 이름이지만 Capture Filter의 경우는  IP 192.168.0.1로 오고가는 패킷만 잡으려면 “host 192.168.0.1” 이라고 명기를 해야 제대로 동작을 한다.

만약 Capture Filter란에 Display Filter의 형식을 쓰면 다음과 같은 에러메시지를 표시한다.
친절하게도 왜 틀린지까지 보여주네..
That string looks like a valid display filter; however, it isn’t a valid capture filter (syntax error).

 

 


Wireshark 사용팁-1

지난번에 정리한 Wirreshark 사용법은 기본적인 내용이고, 이번글은 Wireshark를 사용하면서 알아두면 좋은 팁을 소개한다.
먼저 이 툴을 사용하게되는 경우가 물론 실제 패킷이 어떻게 구성이 되는지 공부를 하려는 목적도 있지만 대부분의 경우는 네트워크를 디버깅하는 경우가 많다. 문제의 현상이 빨리 나오면 좋겠지만 그렇지 못한 경우는 패킷을 계속 잡아야 하는데, 컴퓨터의 용량때문에 장시간 패킷을 잡고 있다가 이 패킷을 Save하면 out of memory가 되면 프로그램이 죽어 버린다.
이때 유용한 것이 바로 잡은 패킷을 multiple save 하는 기능이다.


위 그림에서 처럼 Capture File(s) 옵션을 설정을 하면 되는데,
File: 항목은 저장될 파일의 폴더와 이름을 설정하는 것이고,
Use multiple files를 체크하고 Next file every 는 저장될 파일의 사이즈를 선택한다. 즉 위와 같이 설정을 하면 저장될 파일의 사이즈가 1M가 되면 다시 다른 파일에 저장을 하는 것이다. 이렇게 할 경우 Save된 파일의 수가 점점 늘어난다.

Ring buffer with 옵션은 저장될 파일의 수를 지정을 하는 것인데, 이 옵션을 선택을 하고 파일의 갯수를 지정하면 이 갯수만큼만 파일을 저장하고 다시 처음 파일에 링 버퍼처럼 데이터를 저장을 한다. 따라서 만약 파일의 갯수를 3으로 하면 최종 저장된 파일의 갯수는 3개만 남게된다.

파일 확장자는 cap으로 하면 되고, 저장된 파일에 자동으로 넘버링이 되고 시간정보가 붙은 파일명으로 저장이 된다.
즉 이렇게  test_00001_20100517202609.cap

 


Wireshark 사용법

네트워크 관련 개발을 하다보면 패킷을 잡아야 할 때가 많습니다. 바로 이럴때 사용하는 툴이 WireShark 입니다.
물론 www.wireshark.org 에서 무료로 다운을 받을 수 있고요.
Wiresahrk는 다양한 기능과 다양한 OS (Windows, OS X, Linux,
and UNIX)에서 구동이 되기때문에 가장 인기있는 네트워크 프로토콜 분석기(network protocol analyzer) 이고. 게다가 GNU General Public License version 2를 따르며 오픈소스로 제공하고 있습니다. 원래는
Ethereal이라는 프로그램이 있었는데,
20065월에 Gerald
Combs
라는ethereal 원 개발자가 WinPcap 으로 유명한 CACE
는 회사에 입사하게 되어
, 이 프로젝트는 Wireshark라고 이름이 바뀌게 된 것이라고 합니다. 현재는 대부분의
코아개발자들이 Wireshark에서 일한다고 하며
, Ethereal은 현재 사이트도 존재는
하지만 실제적인 개발은 이루어 지고 있지 않습니다.

보다 자세한 내용은 
Wireshark
의 FAQ를 참고하세요.
http://www.wireshark.org/faq.html#q1.2
FAQ
에 보면 Wireshark는 어떤 shark인지? Wireshark를 어떻게 발음하는지도 나와 있습니다. 🙂

일반적으로
PC에는 1개이상의 네트워크 인터페이스가 있을 수 있으므로
패킷을 잡기위해서는 먼저 네트워크 인터페이스를 선택을 해야 합니다.

위와 같은 경우는 2번째 것을 선택 후 Start를 누르면 패킷이 잡힙니다.
요즘은 대부분의 허브가 스위칭 허브인데, 만약 장비에서 나오는 패킷을 잡기위해서는 중간에 더비허브를 사용해야 합니다.

물론 패킷을 잡아서 이것을 분석하는 능력도 있어야 겠죠. ^_^
TCP/IP 및 네트워크 프로토콜 관련해서 잘 정리된 곳은 아래 사이트를 참고하세요.
http://www.tcpipguide.com/index.htm