패킷(packet) 이란 무엇인가?
개발자를 하면서 한번쯤 들어본 패킷(packet), 이것을 떠올렸을 때 어렴풋이 추상화된 이미지로밖에 그려지지 않아 이번기회에 머릿속에 정확히 정의하고자 패킷(packet)에 대해 공부하고 기록하려 한다.
오늘은 데이터 통신에서 전송되는 정보의 기본 단위인 패킷(packet)에 대해서 포스팅하려 한다.
👉 패킷(packet)의 정의
패킷(packet)이란 네트워크에서 출발지와 목적지간에 라우팅 되는 데이터의 단위이다. 즉, 정보를 보낼 때 특정 형태를 맞추어 보내 컴퓨터 간에 데이터를 주고 받을 때 네트워크를 통해 전송되는 데이터 조각이다라고 생각하면 된다.
packag(패키지) + bucket(버킷)
패킷은 pack과 bucket를 합친 말로, 우체국에서는 화물을 적당한 덩어리로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목한 것이라고 한다.
이런 이유는 데이터를 한번에 통으로 보내면 좋겠지만 큰 데이터는 대역폭(신호를 전송할 수 있는 주파수 범위/폭)을 많이 차지하기 때문에 패킷의 흐름을 원활하게 하지 못하게 된다. 이것을 방지하기 위해 패킷을 사용한다.
일반적으로 3~4계층의 데이터 단위를 패킷이라고 정의하고 1~2계층의 데이터 단위는 프레임이라고 지칭한다.
👉 패킷(packet)의 이해
예를 들어 상대방에게 큰 사진 하나를 보낸다고 가정해본다.
큰 사진은 작은 패킷들로 분할하여 분할된 사진들은 상대방에게 전달될 때 번호를 붙여 전달이 된다. 그리고 상대방은 받은 사진 데이터 조각을 순서대로 나열해 원하는 사진을 보게 된다.
이러한 교환 방식을 패킷 교환 방식이라고 한다.
👉 패킷(packet)의 구성요소
네트워크 패킷은 헤더, 페이로드, 트레일러의 세 부분으로 구성된다. 네트워크 패킷은 개념적으로 우편 패키지로 생각할 수 있다. 헤더는 상자와 봉투, 페이로드는 애용, 트레일러는 서명이다.
1. 헤더 (Header)
각 패킷에는 두 개의 식별 번호가 있는데 첫 번째는 정보 조각이 분할된 패킷 수를 나타내고, 두 번째는 완전한 정보의 일부로서 개별 패킷의 위치를 나타낸다.
- 소스 주소 : 패킷을 네티워크로 보내는 장치의 IP주소
- 대상 주소 : 패킷이 전송되는 IP 주소
- 버전 : 사용중인 IP 버전을 식별하는 데 사용
- TTL (Time to Live) : 패킷이 네트워크에 남아있을 수 있는 생존시간으로 이 패킷을 처리하는 각 라우터가 카운트를 하나 이상 감소 시킨다.
- 프로토콜 : IP 패킷의 데이터 부분이 전달되는 전송 계층 프로토콜. TCP or UDP
- 헤더 체크섬 : 헤더가 전송되는 도중 변조되거나 깨지는 경우를 확인하기 위해 사용
2. 페이로드
패킷에 의해 전송되는 실제 데이터를 나타낸 것으로, 데이터라고도 한다. 페이로드는 헤더 정보가 목적지에 도달할 때 패킷에서 제거되므로 소스 및 목적지에서 수신하는 유일한 데이터이다.
3. 트레일러
패킷 트레일러의 내용은 각 네트워크 유형에 따라 다르며 일반적으로 트레일러에는 수신 장치에 패킷 끝까지 도달했음을 알리는 몇 비트와 컴퓨터가 모든 패킷이 완전히 수신되었는지 확인할 수 있는 CRC (Cycle Redundancy Check)가 포함되어 있다.
'IT knowledge > Network' 카테고리의 다른 글
[네트워크] TCP와 UDP - 개념 및 차이점 (0) | 2022.01.09 |
---|