네트워크 패킷(packet)이란?

ping을 아시나요? 원하는 IP에 패킷을 보내서 서버가 응답하는지를 확인해주는 명령어입니다.

 

명령 프롬프트(cmd)에서

ping google.com

라는 명령어를 치면

4개의 패킷을 정상적으로 교환한 것이 확인되죠. 제 컴퓨터와 구글 서버(142.251.42.174)가 원활하게 통신하고 있다는 의미입니다. 이처럼 패킷은 네트워크 간 주고받는 무언가입니다.

 

네트워크에서 패킷이라는 개념은 생각보다 매우 중요합니다. 인터넷에서 하는 모든 작업에는 패킷이 사용됩니다. 인터넷에선 사용자 간 데이터를 주고받습니다. 이때 데이터는 패킷으로 전달됩니다. 이런 네트워크를 패킷 교환 네트워크라 부릅니다.

 

패킷은 나누어서 보내집니다. 중요한 특징입니다. 예를 들어, 사진 한 장을 보내도 여러 개의 패킷으로 나누어서 보냅니다. 수신하는 컴퓨터는 나눠서 온 패킷을 재결합해 원본 사진을 완성합니다. 즉, 패킷은 파편화된 데이터 블록입니다.

패킷으로 잘라서 보내는 이유

왜 데이터를 패킷으로 잘라서 보낼까요? 이론상 자르지 않고도 다른 컴퓨터로 데이터를 보낼 수 있습니다. 이렇게 하기 위해선 두 컴퓨터는 1대 1로 연결돼야 합니다. 이때 다른 컴퓨터는 사용되고 있는 회선을 이용할 수가 없습니다. 전송이 끝날 때까지 기다려야 합니다. 셀 수 없이 많은 컴퓨터가 연결되어 있는 네트워크 세상에서 이런 방식은 큰 비효율을 낳습니다. 

반면 패킷 교환 방식은 나눠서 보내진 데이터가 동시에 여러 회선으로 자유롭게 목적지로 향합니다. 빠른 길이 사용되고 있다면 다른 길로 우회해서 갈 수 있습니다. 왜냐하면 어떻게든 전송한 패킷들이 무사히 도착만하면 그것들을 재조립하는 방식이기 때문입니다. 한마디로 패킷 교환 방식은 동시에 여러 연결을 수행하며 데이터를 교환할 수 있는 장점이 있습니다.

패킷 구조

네트워크 패킷은 헤더(Header), 페이로드(Payload), 트레일러(Trailer) 세 부분으로 구성됩니다.

  • 헤더

패킷 길이, 프로토콜, 보낸/받는 사람의 IP 주소 등이 포함됩니다.

  • 페이로드

패킷의 본문입니다.

  • 트레일러

footer라고도 불립니다. 패킷의 끝에 도달했음을 수신 컴퓨터에 알리는 비트가 담겨있습니다.

반응형

댓글

Designed by JB FACTORY