[데이터 통신] Packet Sniffer의 구현
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1.소스코드분석
2.결과 화면 및 설명
3.소감
4.참고문헌

본문내용

id;//식별자
unsigned short fl_offset0:4;//플래그의 오프셋
unsigned char flags:3;//플래그는 3비트임
unsigned short fl_offset1:1;
unsigned short fl_offset2:8;
unsigned char ttl;//Time to Live 즉 수명시간
unsigned char protocol;//아이피의 프로토콜
unsigned short checksum;
unsigned long src_ip;//발신지 ip
unsigned long dst_ip;//수신지 ip
};
// TCP 헤더의 구조를 가지는 구조체
struct __attribute__((packed)) tcp_header_t {
//__attribute__((packed)의 의미는 컴파일러 지정어로서 컴파일러에게 각 구조체 필드에 대해서 packing 하라는 이야기이다. 이렇게 packing을 해주면 컴파일러는 구조체의 모든 멤버변수에 대해서 실제 크기만큼만 할당을 하게 된다.
unsigned short src_port;//발신지 port
unsigned short dst_port;//수신지 port
unsigned long seqnum;//sequence number
unsigned long acknum;//acknowledge number 출력
unsigned char reserved2:4;//향후 사용을 위해 예약되 있는 필드
unsigned char hlen:4;//헤더길이
unsigned char flags:6;
unsigned char reserved1:2;
unsigned short window_size;//송수신지의 버퍼의 크기를 나타내는 필드
unsigned short checksum;//데이터가 이상없이 제대로 전송되었는지 확인시 이용
unsigned short urgent_point;//긴급포인터, 수신지로부터 응답이 잘못되었거나 다른이유로 무엇인가 이상이 발견되면 긴급데이터를 실은 세그먼트를 수신지로 보낸다.
};
2.결과 화면 및 설명
위의 코드대로 실행한다면 출력이 무한반복이 된다. 이를 방지하게 위해 소스코드에는 while 문 안에 cnt라는 변수를 넣어 10번이 되면 프로그램을 중지 시켰다.
TCP Header
3.소감
소켓 프로그래밍에 익숙치 않아서 이해하는데 어려움이 있었다. 하지만 책을 읽고 코드 한줄 한 줄을 따져가며 생각하다보니 데이터통신 시간에 배웠던 패킷의 교환의 원리가 생각나면서 이해할 수 있었다. 로소켓이 모든 패킷에 대해서 받아 볼 수 있는 프로그램이다 보니 root 권한을 가져야만 사용할 수 있다는 개념이 생소하고, 더 매력적으로 느껴졌다. 이런 프로그램으로 상대방의 전송 데이터를 가로채는 원리를 알게 되었다. 컴퓨터전공 학생으로써 많은 프로그램을 짜 왔지만 이번처럼 로소켓 프로그램은 처음이었다. 앞으로 보안쪽으로도 공부를 해 보고 싶기 때문에 이런 여러 소켓 프로그램들을 더 배워서 활용해 보고 싶다.
4.참고문헌
TCP/IP 소켓 프로그래밍 /한빛미디어
  • 가격1,800
  • 페이지수7페이지
  • 등록일2012.04.15
  • 저작시기2012.3
  • 파일형식한글(hwp)
  • 자료번호#740021
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니