STUDY

패킷(Packet) 겉햝기

趙河晶 2017. 1. 31. 21:57

CTF 문제들을 받다보면 확장자가 pcapng인 파일들을 많이 볼 수 있다. 네트워크를 알지 못하는 나는 이게 패킷과 관련된 파일이라는 것도 오늘 전까지는 몰랐다. 더 많은 문제들을 풀 수 있도록 pcapng파일을 어떻게 분석해야 하는지 이전에 패킷에대해 정확히 짚고 가자.

우리가 무언가를 검색하기 위해 구글에 검색을 하고 링크를 누르는 간단한 작업에도 네트워크 상에서는 바쁘게 흘러간다. 내가 전송하는 정보는 나누어 전송하게 되는데 이때 나눈 단위를 패킷(packet)이라고 한다. 즉, 네트워크 상에선 데이터를 패킷 단위로 나누어 전송한다는 것이다. 그렇다면 왜 나누어서 전송할까? 우선 전송하는 데이터의 길이가 긴 경우 효율적으로 전송하기 위해서다.

 네트워크 상에는 나뿐만 아니라 수많은 이용자에 의해 수많은 정보들이 흘러다닌다. 이때문에 좀 더 안전한 전송, 혹여 전송되지 못한 부분을 빠르게 알아차리고 재전송하기 위해 패킷으로 나누어 전송을 한다.

즉 데이터를 정확하고 안전하게 전송하는 것이 중요하다. 그럼 패킷은 어떻게 생성되는 것일까?

TCP/IP란 아이와 함께 알아보자. 기기끼리 통신을 할때 작은 조작(절차)이 모여서 이루어진다. 이때 작은 조작(절차)을 프로토콜이라고 이해하자. 현재 가장 많이 사용되고 있는 프로토콜군이 TCP/IP이다. 프로토콜에서는 통신할 데이터를 일정한 크기로 분할해서 보내게 된다. 그렇담 여기서 분할된 데이터가 패킷이다. 그런데 앞의 그림들을 보면 주머니에 든 정보는 이진수이다. 프로토콜은 데이터를 분할해서 보내는 거 뿐만 아니라 데이터를 디지털 신호로 변환하고 받을 때도 디지털 신호를 데이터로 변환한다.

TCP/IP는 데이터의 흐름 관리, 정확성 확인을 하는 TCP(Transmission Control Protocol)와 패킷을 목적지까지 전송하는 IP(Internet Protocol)가 합쳐진 것이다. 이제 TCP/IP를 5개의 계층으로 나누어 각 층마다 패킷이 어떻게 전달되는지 보자. 먼저 패킷은 각 계층마다 캡슐화가 된다는 걸 알고 가자. 처음에 [ 데이터 ]가 전달되면 각 계층마다 [ 헤더 | 데이터 | 트레일러 ] 이런 식으로 캡슐화가 된다는 것이다.

<TCP/IP 5계층>

위 그림은 TCP/IP 5개 계층과 사용자가 데이터를 보낼 때 각 계층에서 전달될 때 일어나는 캡슐화를 나타낸 것이다. 받는 쪽에서는 화살표 방향이 반대로 간다. 

데이터를 가장 근접하게 다루는 어플리케이션 층에서는 서비스를 실현한다. 따라서 어플리케이션에 맞춰 통신을 한다. 그 다음 트랜스포트 층에서는 통신을 실현한다. 즉 송신된 데이터를 수신측 어플리케이션에 전달을 한다. 그리고 네트워크 층에서 수신측 컴퓨터까지 데이터를 전달한다. 이제 데이터 링크 층에서 네트워크에 연결된 기기 간 전송을 한다. 이때 프레임 헤더가 붙으면서 프레임(Frame)이라고 불린다.물리층에서는 앞에 언급했던 데이터를 디지털 신호로 변환하고 디지털 신호를 데이터로 변환한다.

이쯤되니 패킷에대한 이해가 되는거 같다. 그렇다면 여기까지 오게한 .PCAPNG는 무엇일까?

패킷을 알고나면 PCAPNG는 그냥 간단하다. 우선 PCAP(Packet CAPture)은 말 그대로 패킷을 캡쳐한 파일을 말한다. PCAP-NG는 13년도에 나온 패킷 포맷이고. pcapng파일이 무엇인지 알았으니 분석하는데 친숙해지자.


참고 '그림으로 보는 PC TCP/IP'책, http://asec.ahnlab.com/156