사실 여러분이 보는 모든 유튜브 영상은… 수만 개의 작은 조각으로 도착한 거예요.자, 잠깐 상상해볼까요? 여러분이 친구한테 카톡으로 사진 한 장을 보냈어요. 그 사진, 한 덩어리로 슝~ 날아갔을 것 같죠? 근데요, 사실은 아니에요. 인터넷은 그 사진을 수십, 수백 조각으로 잘게 쪼개서 보내요. 그리고 그 한 조각 한 조각을 우리는 “패킷(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 요청의 일부가 들어갈 수 있어요.
실제 데이터는 여러 계층에 포장돼요. 포트 번호와 순서 번호는 TCP 헤더에, 출발지와 도착지 IP는 IP 헤더에 들어가요. 뒤의 글에서 TCP와 각 네트워크 계층을 차례로 펼쳐볼게요.
자, 정리해볼까요?
- 큰 데이터는 네트워크에서 다루기 좋은 작은 단위로 나뉘어 전달돼요.
- IP 패킷은 헤더와 페이로드로 나누어 볼 수 있어요.
- 패킷 단위로 보내면 여러 통신이 같은 길을 나누어 쓰기 쉬워요.
- 순서 확인과 빠진 데이터의 재전송은 TCP 같은 전송 방식이 맡을 수 있어요.
다음 글 예고
근데 말이죠, 한 가지 궁금한 점이 생기지 않으세요?“그 작은 패킷이 어떻게 지구 반대편 서버까지 정확하게 찾아가지?”다음 글에서는 “IP 주소와 라우팅” 이야기를 해볼게요. 패킷이라는 작은 택배가 어떻게 길을 찾는지, 같이 따라가 봐요.