대학/3학년

컴퓨터 네트워크 팀프로젝트(패킷분석)

ENJCAT 2020. 5. 8. 20:47

개발인원 : 3인

개발기간 : 2018.08.27 - 2018 12.19

개발도구 : Ubuntu 운영체제에서 C 프로그래밍(gcc 이용)

사용라이브러리 :


TCP/IP, UDP 패킷을 분석

HTTP, email, DNS, P2P프로토콜을 캡처해보고, 각각의 프로토콜 분석과제.

 

패킷을 캡처해서 정보를 얻기위해 구조체 이용

ip, tcp헤더, udp헤더, DNS헤더 구조체

원하는 프로토콜을 입력받아 그 프로토콜의 포트번호의 패킷을 캡처하기 위해 pcap 라이브러리 이용.

패킷을 구조체에 넣은 후 원하는 양식으로 출력하게 바꿔주는 print문 들.

 

1.TCP

TCP 연결 확인

 

TCP 연결종료 확인

 

2.HTTP

GET 요청
200 OK 응답

3. E-mail

E-mail – SMTP
E-mail – SMTP
E-mail – POP 3(수신받을 내용이 없을때와 있을때)

4. DNS

DNS (Query)
DNS (Query Response)

5. P2P

비트코인 전자지갑프로그램 패킷캡처

코드링크


마지막 P2P 프로토콜을 비트코인 프로그램을 이용해서 분석해보려 하였으나, 프로토콜이 여러개의 TCP세그먼트로 나눠져서 오고, 나중에 재조합하는것을 와이어샤크와 구글링을 통해 알아내서, 우리가 작성한 프로그램으로는 제대로된 분석을 할 수가 없었고, 이 비트코인 프로그램이 P2P연결을 한다는것도 증명할 자료를 준비하지 못했다. 많이 아쉬웠다.

 

이론으로 배웠던 프로토콜들을 실제 패킷캡처를 통해 확인하는것이 재미있었고, 같이 했던 프로그램 코딩이나, 라이브러리 분석, 구조체 분석도 재미있었다. 무엇보다도 그 수업에 email 프로토콜 분석에 성공한 팀이 우리팀밖에 없어서 너무 좋았다. 이 영광을 3pop을 사용하는 학교 메일에 돌린다.

 

v 각 계층과 프로토콜의 연관성과 구조를 파악할 수 있습니다.

v 컴퓨터로 송수신되는 패킷들을 직접 확인하여 잘못된 패킷을 검출 할 수 있습니다.

v 다양한 분석 도구를 이용해봄으로써 분석 능률 증가시킬 수 있습니다.

v 이러한 과정을 통해 소켓 프로그래밍에 대하여 이해도를 높일 수 있습니다.