1패킷 용량, 고정되어 있지 않아요
많은 분들이 '1패킷은 몇 KB인가요?'라고 궁금해하십니다. 하지만 안타깝게도 1패킷의 용량은 고정되어 있지 않습니다. 마치 '1상자는 몇 개가 들어있나요?'라고 묻는 것과 같습니다. 상자의 크기나 내용물에 따라 달라지듯이, 패킷의 용량 역시 어떤 데이터를 어떤 프로토콜로 전송하느냐에 따라 천차만별입니다. 따라서 '1패킷 = X KB'라고 명확하게 정의하기는 어렵습니다.
패킷 용량에 영향을 미치는 요인들
패킷의 용량은 크게 두 가지 요소에 의해 결정됩니다. 첫 번째는 데이터의 크기입니다. 웹 페이지를 로딩할 때 주고받는 텍스트 데이터와 동영상 스트리밍 시 주고받는 영상 데이터는 그 크기에서 엄청난 차이를 보입니다. 당연히 데이터의 크기가 클수록 패킷의 용량도 커지게 됩니다.
두 번째는 프로토콜 오버헤드입니다. 데이터를 목적지까지 안전하게 전달하기 위해 패킷에는 데이터 자체 외에도 다양한 제어 정보가 포함됩니다. 이를 헤더(Header)라고 부르는데, IP 헤더, TCP 헤더, UDP 헤더 등이 여기에 해당합니다. 이 헤더 정보는 데이터의 종류나 전송 방식에 따라 크기가 달라지며, 실제 데이터의 크기보다 헤더의 크기가 더 큰 경우도 발생합니다. 예를 들어, 아주 작은 데이터를 전송할 때는 데이터 자체보다 헤더가 차지하는 비율이 높아져 비효율적이 될 수 있습니다.
대표적인 프로토콜별 패킷 구조 및 크기
가장 널리 사용되는 TCP/IP 프로토콜을 예로 들어 패킷 구조를 살펴보겠습니다.
- 이더넷 프레임 (Ethernet Frame): 가장 하위 계층에서 데이터를 캡슐화합니다. 최대 1500 바이트의 MTU(Maximum Transmission Unit)를 가지며, 이 안에는 IP 패킷이 들어갑니다. 이더넷 헤더(Destination MAC, Source MAC, EtherType 등)가 약 18바이트를 차지합니다.
- IP 패킷 (IP Packet): 네트워크 계층에서 사용되며, 출발지 및 목적지 IP 주소 등의 라우팅 정보를 포함합니다. IP 헤더는 기본적으로 20바이트이며, 옵션이 추가될 경우 더 커질 수 있습니다. IP 패킷은 이더넷 프레임 내부에 위치합니다.
- TCP 세그먼트 (TCP Segment) 또는 UDP 데이터그램 (UDP Datagram): 전송 계층에서 사용됩니다. TCP는 신뢰성 있는 연결 지향 통신을 위해 시퀀스 번호, 확인 응답 번호 등 다양한 제어 정보를 포함하며, TCP 헤더는 최소 20바이트입니다. UDP는 TCP보다 단순하며, UDP 헤더는 8바이트로 상대적으로 작습니다.
이처럼 여러 계층의 헤더가 데이터에 덧붙여지면서 최종 패킷의 크기가 결정됩니다. 따라서 '1패킷'이라고 했을 때, 어느 계층의 패킷을 지칭하는지에 따라서도 용량이 달라질 수 있습니다.