Winpcap 설치
www.winpcap.org 에 접속하여 다운로드한다. winpcap은 윈도우용 패킷 캡처 아키텍처이다.
SharpPcap 설치
SharpPcap는 Pcap 라이브러리의 윈도우즈 운영체제 버전인 WinPcap 라이브러리를 C# 언어로 개발할 수 있게 해주는 라이브러리다.
sourceforge.net/projects/sharppcap/ 에 접속하여 다운로드 받는다.
SharpPcap 사용 준비
제대로 설치가 되었는지 다음과 같은 소스로 테스트를 해볼 수 있다.
//SharpPcap 클래스의 정적 속성 VersionString을 참조하여 버전 정보를 출력
string ver = SharpPcap.Version.VersionString;
Console.WriteLine("SharpPcap {0} Test...", ver);
//추적할 수 있는 네트워크 인터페이스 목록 참조
CaptureDeviceList devices = CaptureDeviceList.Instance;
//네트워크 인터페이스 목록 출력
Console.WriteLine("추적 목록");
foreach (ICaptureDevice dev in devices)
{
Console.WriteLine("{0}", dev);
}
패킷이란
데이터의 묶음 단위로 한 번에 전송할 데이터의 크기를 나타내며, 제 3계층 이상에서는 데이터 묶음을 패킷이라고 부르며, 제 2계층에서는 프레임이라고 부른다. 이 패킷의 크기는 네트워크의 종류에 따라 달라진다. 패킷 단위로 데이터를 나누어서 보내는 이유는 네트워크상에는 하나의 컴퓨터만 있는 것이 아니고 여러 개의 컴퓨터가 있다. 이들은 서로 동시 다발적으로 데이터를 주고받게 되는데 만약 데이터를 분할하여 전송하지 않고 한번에 보낸다면 한 컴퓨터만 데이터를 주고 받게 되고 나머지 컴퓨터들은 끝날 때까지 기다릴 수밖에 없다. 또한 큰 데이터를 전송하다 중간에 에러가 발생하면 다시 처음부터 전송하여야 하는데 결과적으로 큰 문제가 될 수 있다. 따라서 데이터를 패킷 단위로 나누어 보낸다.