패킷(packet)은 패킷 교환(packet switching) 네트워크에 의해 운반되는 데이터의 형식화된 단위이다. 컴퓨터 네트워크에서 송신하고자 하는 전체 데이터를 한 번에 전송하지 않고, 일정한 크기의 작은 블록으로 분할하여 전송하는데, 이때 분할된 각각의 데이터 단위를 패킷이라고 한다.
정의와 역할
패킷은 크게 제어 정보와 사용자 데이터로 구성된다. 사용자 데이터는 페이로드(payload)라고도 불리며, 실제로 전달하고자 하는 내용을 담는다. 제어 정보는 페이로드를 올바르게 전달하기 위한 부가 데이터로, 송신지와 수신지의 네트워크 주소, 오류 검출 코드, 순서 지정 정보 등이 포함된다. 일반적으로 제어 정보는 패킷의 헤더(header)와 트레일러(trailer)에 위치한다.
패킷 교환 방식은 하나의 통신 세션 동안 회선을 미리 할당하고 데이터를 연속적인 비트 스트림으로 전송하는 회선 교환(circuit switching) 방식과 대조된다. 패킷 교환에서는 전송 매체의 대역폭이 여러 통신 세션 간에 공유되며, 데이터를 전송하는 동안에만 네트워크 자원을 사용한다.
구조와 구성 요소
패킷의 개념은 우편 편지에 비유되기도 한다. 헤더는 봉투, 페이로드는 봉투 안의 내용물, 푸터는 하단의 서명에 해당한다. 패킷에는 다음과 같은 구성 요소가 포함될 수 있다.
- 주소(Address): 패킷의 라우팅을 위해 송신 호스트의 소스 주소와 수신 호스트의 목적지 주소가 필요하다.
- 오류 검출 및 정정: 전송 중 발생하는 오류를 감지하기 위해 체크섬(checksum), 패리티 비트(parity bit), 순환 중복 검사(CRC) 등이 포함될 수 있다. 수신 측에서 체크섬을 재계산하여 패킷에 포함된 값과 비교하며, 불일치가 발견되면 패킷을 수정하거나 폐기한다.
- 홉 제한(Hop limit): 결함 상태에서 패킷이 폐쇄 회로를 무한히 순환하는 것을 방지하기 위해, 패킷이 네트워크 홉을 통과할 때마다 1씩 감소하는 필드가 있다. 필드가 0에 도달하면 패킷은 폐기된다.
- 길이(Length): 전체 패킷 길이를 식별하는 필드가 포함될 수 있다.
- 프로토콜 식별자(Protocol identifier): 패킷이 사용하는 프로토콜을 지정하는 필드로, 프로토콜 스택이 다양한 유형의 패킷을 처리할 수 있게 한다.
- 우선순위(Priority): 일부 네트워크는 특정 유형의 패킷을 다른 패킷보다 우선 처리하는 QoS(Quality of Service)를 구현한다.
- 페이로드(Payload): 애플리케이션을 대신하여 운반되는 실제 데이터로, 대개 가변적인 길이를 가지며 네트워크 프로토콜에 의해 설정된 최대치까지 가능하다.
OSI 모형에서의 패킷
컴퓨터 네트워크의 7계층 OSI 모형에서 패킷은 엄격하게 3계층인 네트워크 계층의 프로토콜 데이터 단위(PDU)를 의미한다. 2계층인 데이터 링크 계층의 데이터 단위는 프레임(frame), 4계층인 전송 계층의 데이터 단위는 세그먼트(segment)와 데이터그램(datagram)이다. 예를 들어 이더넷을 통한 TCP/IP 통신에서 TCP 세그먼트는 하나 이상의 IP 패킷에 담겨 운반되며, 각 IP 패킷은 다시 하나 이상의 이더넷 프레임에 담겨 운반된다.
IP 패킷의 예
인터넷 프로토콜(IP) 패킷은 헤더와 페이로드로 구성된다. IPv4 패킷 헤더에는 버전, IHL(헤더 길이), QoS, 전체 길이, 식별자, 플래그, 프래그먼트 오프셋, TTL(Time to Live), 프로토콜, 체크섬, 원본 IP 주소, 도착 IP 주소 등의 필드가 포함된다. IP 패킷에는 트레일러가 없으며, 종종 자체 헤더와 트레일러를 가진 이더넷 프레임 내부의 페이로드로 운반된다.
엔드 투 엔드 원칙에 따라 IP 네트워크는 패킷의 전달, 중복 방지 또는 순서대로의 전달을 보장하지 않는다. 이러한 신뢰성 보장을 위해 TCP(전송 제어 프로토콜)와 같은 신뢰할 수 있는 전송 프로토콜이 패킷 서비스 위에 계층화되어 사용되는 것이 일반적이다.
기타 활용 분야
패킷 개념은 일반적인 컴퓨터 네트워크 외에도 다양한 분야에서 사용된다. NASA 심우주 통신망에서는 우주 데이터 시스템 자문 위원회(CCSDS) 패킷 텔레메트리 표준을 사용하여 우주선 기기의 데이터를 패킷 단위로 전송한다. 또한 MPEG-2 표준의 패킷화된 기본 스트림(PES)은 오디오·비디오 기본 스트림을 패킷으로 나누어 전송하는 방식을 정의한다.
어원
패킷(packet)이라는 용어는 영어에서 유래한 것으로, "꾸러미" 또는 "소포"를 뜻하는 단어에서 파생된 것으로 알려져 있다. 한국어에서는 문화어로 "파케트" 또는 "소포"라고도 표기된다.