Skip to main content
사실 여러분이 보는 모든 유튜브 영상은… 수만 개의 작은 조각으로 도착한 거예요.
자, 잠깐 상상해볼까요? 여러분이 친구한테 카톡으로 사진 한 장을 보냈어요. 그 사진, 한 덩어리로 슝~ 날아갔을 것 같죠? 근데요, 사실은 아니에요. 인터넷은 그 사진을 수십, 수백 조각으로 잘게 쪼개서 보내요. 그리고 그 한 조각 한 조각을 우리는 “패킷(Packet)” 이라고 불러요. “엥? 왜 굳이 쪼개서 보내?” 라는 생각이 드신다면, 끝까지 읽어보세요. 다 읽고 나면 “아~ 그래서 그렇구나!” 하실 거예요. 지금은 먼저 인터넷 데이터가 왜 작은 조각으로 나뉘는지 감각만 잡아볼게요. 그리고 다음 글에서는 그 작은 패킷이 실제로 어떻게 길을 찾는지 이어서 보게 될 거예요.

큰 짐을 쪼개 옮기는 장면부터 볼게요

큰 짐을 옮긴다고 생각해봐요. 예를 들어 침대를 통째로 옮긴다고 치면…
통째로 보내면 이런 일이 생겨요.좁은 골목길은 통과하지 못하고, 트럭 한 대가 멈추면 모든 짐도 함께 멈춰요. 사고가 나면 처음부터 다시 보내야 할 수도 있어요.
이삿짐센터가 짐을 나누어 보내는 순서를 따라가 볼게요.
1

작은 박스로 나눠요

큰 짐을 한 번에 옮길 수 있는 크기의 박스 여러 개로 나눠요.
2

주소와 구분 정보를 붙여요

박스마다 어디로 갈지 적고, 나중에 원래 짐을 맞출 수 있도록 구분해요.
3

박스를 차례로 보내요

여러 박스가 같은 운송망을 지나 목적지로 이동해요.
4

도착한 박스를 다시 모아요

받는 곳에서는 빠진 박스가 없는지 확인하고 원래 짐으로 맞춰요.
이 흐름이 인터넷 데이터를 작은 단위로 나누어 보내는 감각과 닮았어요.

패킷은 택배 상자와 닮았어요

택배 상자에는 보통 송장(주소표) 이 붙어 있고, 안에는 물건이 들어 있죠. 패킷의 큰 구조도 이 장면에 빗대어 볼 수 있어요.
이것만 기억해도 충분해요. 헤더 = 송장, 페이로드 = 알맹이예요.
택배 비유에는 한계가 있어요. 순서 번호와 포트 번호는 IP 헤더가 아니라 안쪽의 TCP 헤더에 들어갈 수 있고, 오류 검사용 트레일러는 IP 패킷을 감싼 이더넷 프레임 같은 바깥 계층에 붙을 수 있어요. 지금은 각 계층이 자기 송장을 덧붙인다고 이해하면 충분해요.

근데 왜 굳이 쪼개서 보내요?

좋은 질문이에요. 이유가 세 가지나 있어요.

1. 길이 막혀도 돌아갈 수 있어요

라우터는 패킷을 받을 때마다 현재 알고 있는 경로를 보고 다음 길을 골라요. 그래서 서로 다른 패킷이 다른 경로를 지날 수도 있고, 네트워크 경로가 바뀌면 뒤이어 오는 패킷은 새 경로로 전달될 수 있어요.

2. 여러 통신이 같은 네트워크를 나눠 쓰기 쉬워요

만약 옆집이 4K 영화를 통째로 다운받는 동안, 여러분은 카톡 메시지 하나도 못 보낸다면…?
너무하잖아요.
근데 패킷 단위로 잘게 쪼개면, 여러 흐름이 같은 링크를 함께 사용할 수 있어요. 이 방식이 늘 완벽한 공평함을 보장한다는 뜻은 아니지만, 큰 데이터 하나가 길을 오래 독점하지 않게 만드는 데 도움이 돼요.

3. 일부만 잃어버려도 그것만 다시 받으면 돼요

생각해보세요. 100MB짜리 영상을 받는데, 딱 한 구간이 도착하지 않았다고 처음부터 100MB를 다시 받아야 한다면 낭비가 크겠죠. TCP 같은 전송 방식은 순서 번호와 확인 응답을 사용해 빠진 구간을 알아내고 그 부분을 다시 보내요. 이 재전송을 누가 책임지는지는 다음 글에서 이어서 볼게요.

그럼 진짜 패킷은 어떻게 생겼을까요?

브라우저가 예시 서버에 접속한다고 생각해볼게요. IP 패킷을 크게 펼치면 헤더와 페이로드 두 부분으로 볼 수 있어요.

헤더: 송장

  • 출발지 IP: 192.168.0.10
  • 도착지 IP: 203.0.113.20
  • 다음 데이터 종류: TCP
라우터는 주로 이 정보를 보고 다음 목적지를 판단해요.

페이로드: 알맹이

이 IP 패킷은 TCP 데이터를 실어 나릅니다. 그 안쪽에는 다음과 같은 HTTP 요청의 일부가 들어갈 수 있어요.
이걸 실제 IPv4 패킷의 칸으로 펼치면 아래처럼 보여요. 처음부터 모든 이름을 외울 필요는 없어요. 주황색 IP 주소 두 줄이 송장, 초록색 페이로드가 알맹이라는 것만 먼저 보면 돼요.
실제 데이터는 여러 계층에 포장돼요. 포트 번호와 순서 번호는 TCP 헤더에, 출발지와 도착지 IP는 IP 헤더에 들어가요. 뒤의 글에서 TCP와 각 네트워크 계층을 차례로 펼쳐볼게요.

자, 정리해볼까요?

  • 큰 데이터는 네트워크에서 다루기 좋은 작은 단위로 나뉘어 전달돼요.
  • IP 패킷은 헤더와 페이로드로 나누어 볼 수 있어요.
  • 패킷 단위로 보내면 여러 통신이 같은 길을 나누어 쓰기 쉬워요.
  • 순서 확인과 빠진 데이터의 재전송은 TCP 같은 전송 방식이 맡을 수 있어요.
어때요? 생각보다 별거 아니죠?

다음 글 예고

근데 말이죠, 한 가지 궁금한 점이 생기지 않으세요?
“그 작은 패킷이 어떻게 지구 반대편 서버까지 정확하게 찾아가지?”
다음 글에서는 “IP 주소와 라우팅” 이야기를 해볼게요. 패킷이라는 작은 택배가 어떻게 길을 찾는지, 같이 따라가 봐요.