패킷과 프레임의 차이

출처

네트워크를 통해 전송되는 데이터는 패킷이나 프레임이라는 단위로 분할되어 회선 위를 왕래한다.
같은 것을 가리키면서 패킷 이라고하거나, 프레임이라고도 하지만 엄밀하게는 다른 것이다.

인터넷 기술 표준화를 추진하는 단체 IETF(Internet Engineering Task Force)의 용어 해설 「RFC 1983 Internet Users ‘Glossary “에 따르면, 패킷은 “모든 프로토콜 스택에서 네트워크를 오가는 데이터의 단위로 사용되는 일반 용어”라고 소개 되고 있다. 즉 어떤 프로토콜에서도 데이터의 한 덩어리는 모두 패킷이다.

한편 프레임은 “데이터 링크 계층을 흐르는 패킷”이라고 소개 되고 있다. 현재는 데이터 링크 계층이라고하면 이더넷이 대부분이므로, 프레임은 “이더넷에서 주고받는 데이터의 최소 단위’가 된다. 따라서 프레임을 MAC 프레임, 이더넷 프레임 등으로 부른다.

예를 들어 HTTP 교환을 생각해 보자.
HTTP를 사용하는 응용 프로그램은
(1) HTTP 패킷을 생성한다. HTTP 패킷은 HTTP 애플리케이션 데이터 및 HTTP 헤더로 구성된다.
HTTP 패킷은 TCP를 이용하기 때문에, HTTP 패킷은 TCP 헤더가 추가된다.
이 상태가 (2) TCP 패킷이다. TCP 패킷은 IP를 이용하기 때문에 TCP 패킷에 IP 헤더가 붙는다.
이 상태가 (3) IP 패킷이다.
IP 패킷을 이더넷으로 전송하기 위해 MAC 헤더를 붙인 것이 (4) MAC 구조이다.
데이터 링크 계층이므로 MAC 패킷라고 부르지 않고 MAC 프레임이라는 것이다.

MAC 프레임은 크게 세 부분으로 나뉜다. 헤더, 페이로드, 트레일러이다. 헤더는 프레임의 시작 부분에 프레임을 보내고 받을 대상 주소 정보 등이 들어가는 곳이다. 트레일러 프레임의 마지막에 데이터가 정확하게 수신 할 수 있는가에 대한 무결성을 검증하기위한 FCS 라는 데이터가 들어있다. 그리고 헤더와 트레일러 사이에 있는 페이로드는 송수신 할 데이터 그 자체이다. 이 페이로드가 방금 IP 패킷에 해당하는 부분이다.

패킷과 프레임은 다른 물건이지만, 업무 현장에서 프레임을 패킷이라고 부르는 경우가 잦다.
또한 데이터의 한 덩어리를 설명하는 용어는 프로토콜 규격에 따라 다를 수있다.
예를 들어 TCP는 세그먼트, IP 및 UDP는 데이터 그램, HTTP는 메시지라고 부르기도한다.


이 글은 2018-05-02에 작성되었습니다.