02 · 패킷의 길 고르기

라우터는 패킷을 다음 장비로 넘깁니다.

각 라우터는 미리 만들어 둔 길 안내표에서 목적지와 맞는 줄을 찾고, 바로 다음 장비로 패킷을 넘깁니다. 길이 끊기면 안내표가 바뀌어 다른 길로 돌아갑니다.

이것만 기억하세요안내표에서 다음 장비를 골라
한 칸씩 이어 보낸다

아래 파란 버튼만 누르세요

빛나는 점이 움직이는 길만 따라가세요

시나리오
목적지 203.0.113.20TTL 64
대기 중
내 컴퓨터192.168.0.10집 공유기R1ISP 라우터R2백본 AR3백본 BR4상대 ISPR5블로그 서버203.0.113.20

라우팅 테이블

패킷이 라우터에 도착하면 그 장비의 길 안내표가 여기에 보여요.

지나온 기록

출발하면 홉마다 기록이 쌓여요.

시나리오를 고르고 출발을 누르세요. 지도 위에서 패킷이 한 홉씩 이동하고, 라우터마다 테이블을 보여드려요.

원리 세 가지만

지도 없이도 길을 찾는 이유

01보낼 때는 다음 장비만 골라요.

경로 선택 규칙이 미리 라우팅 테이블을 만들어요. 패킷을 보낼 때는 그 표에서 목적지와 맞는 다음 홉을 찾아 넘겨요.

02이웃끼리 소식을 나눠요.

라우터들은 “이쪽 길이 살아 있어요” 같은 정보를 서로 주고받아요. 그래서 길이 끊기면 테이블이 갱신되고 우회로가 생겨요.

03TTL이 뺑뺑이를 막아요.

홉을 지날 때마다 TTL이 1씩 줄어요. 잘못된 길로 무한히 돌아도 0이 되는 순간 버려져서, 길 잃은 패킷이 인터넷을 떠돌지 않아요.

목적지 주소 확인테이블에서 다음 홉 찾기넘기고 TTL −1목적지까지 반복
규격 기반 시뮬레이션입니다.

이 페이지는 실제 인터넷 지형이 아니라 라우팅의 원리를 보여주기 위해 단순화한 교육용 시뮬레이션입니다. 실제 인터넷에서는 매우 많은 네트워크가 BGP·OSPF 같은 프로토콜로 경로 정보를 교환합니다. 서버 주소(203.0.113.20)는 문서용 예시값입니다. 내 컴퓨터에서 실제 경로가 궁금하다면 traceroute(tracert) 명령으로 확인할 수 있습니다.

참고: RFC 791 (IP · TTL) · RFC 4271 (BGP)

이 데모에 대하여

라우터 일곱 대가 놓인 지도에서 한 걸음씩 고릅니다

이 화면의 지도는 장식이 아니라 좌표가 정해진 노드 일곱 개와 회선 일곱 개로 된 자료입니다. 패킷은 그 위를 지나며 각 라우터에서 안내표를 한 번씩 조회하고, 그때마다 다음 한 걸음만 정합니다. 지도 전체를 보고 있는 것은 화면 앞의 사람뿐이고, 어느 라우터도 출발지부터 목적지까지의 전체 경로를 알지 못한다는 것이 이 화면에서 확인할 내용이고, 그래서 회선 하나가 끊겨도 길이 사라지지 않습니다.

  1. ‘기본 경로’로 여섯 단계를 넘기며 지나온 기록이 쌓이는 것을 봅니다.
  2. 각 라우터 단계에서 안내표의 어느 줄이 선택됐는지 표시를 확인합니다.
  3. TTL 이 64 에서 60 까지 한 걸음마다 하나씩 줄어드는 것을 따라갑니다.
  4. ‘회선 장애’로 바꿔 같은 출발지에서 다시 시작합니다.
  5. 집 공유기의 안내표가 두 시나리오에서 똑같다는 점을 비교합니다.
  6. 갈라지는 지점이 어느 라우터 한 곳뿐인지 확인합니다.
  7. 두 시나리오 모두 네 걸음이라 도착 시 TTL 이 같다는 점을 확인합니다.
  8. 마지막 단계에서 답장은 또 그때그때 정해진다는 설명을 읽고 마칩니다.
  9. 우회 시나리오에서 실제로 달라진 회선이 몇 개인지 지도에서 세어 봅니다.
  10. 각 라우터가 자기 다음 장비 말고 다른 것을 알고 있는지 표에서 확인해 봅니다.
  11. 두 시나리오를 번갈아 눌러 앞의 두 걸음이 완전히 같은지 비교해 봅니다.
  12. 회선이 끊긴 지점을 지도에서 찾아 두고, 패킷이 그 근처에서 어떻게 비켜 가는지 봅니다.

경로가 만들어지는 방식

01

라우터는 다음 한 걸음만 정합니다.

각 단계에서 계산하는 값은 다음에 넘길 장비 하나뿐입니다. 전체 경로를 미리 정해 두고 따라가는 것이 아니라, 매 장비가 자기 안내표를 보고 독립적으로 판단한 결과가 이어져 길이 됩니다. 지나온 기록을 나중에 모아 보면 하나의 경로처럼 보이지만, 그 경로를 처음부터 알고 있던 주체는 지도 어디에도 없습니다.

02

안내표는 구체적인 것부터 봅니다.

각 라우터의 표에는 특정 대역을 가리키는 줄과 그 밖의 전부를 가리키는 줄이 함께 있고, 더 구체적으로 맞는 줄이 선택됩니다. 집 공유기가 ‘우리 집’과 ‘그 밖의 전부’ 두 줄만 가진 것도 같은 이유인데, 집 안 기기가 아니면 무조건 바깥으로 넘기면 되기 때문에 표가 두 줄로 충분합니다. 화면은 선택된 줄을 표시해 판단 근거를 남깁니다.

03

TTL 이 지나온 걸음 수를 기록합니다.

출발할 때 64 였던 값이 도착 시점에 60 이라는 것은 네 대의 장비를 지났다는 뜻입니다. 이 값은 원래 무한 순환을 막으려고 넣은 것이지만, 결과적으로 몇 걸음 만에 왔는지를 알려주는 흔적이 됩니다. 두 시나리오 모두 네 걸음이라 도착 시 TTL 이 같은데, 우회로가 더 길었다면 이 값이 달라졌을 것입니다.

04

장애는 회선 하나를 끊는 것으로 표현했습니다.

장애 시나리오에서 실제로 달라지는 것은 백본 A 로 가는 회선 하나입니다. 그런데 그 영향을 받는 라우터는 그 회선에 직접 닿아 있는 한 대뿐이고, 나머지는 평소와 똑같이 동작합니다. 집 공유기의 안내표가 두 시나리오에서 완전히 같다는 점이 그 증거이며, 한 곳의 판단만 바뀌어도 전체 경로가 새로 만들어진다는 것이 이 비교의 핵심입니다.

05

표가 갱신되는 과정은 생략했습니다.

장애 시나리오에서 안내표는 이미 우회로로 바뀌어 있는 상태로 시작합니다. 라우터들이 서로 소식을 주고받아 표를 고치는 과정은 이 화면이 다루지 않고, 표가 갱신된 뒤의 결과만 보여줍니다. 실제로는 그 갱신에 시간이 걸리고, 그 사이에 패킷이 사라지거나 원을 그리며 도는 구간이 생길 수 있습니다.

06

주소는 문서용 대역을 씁니다.

목적지로 쓰는 주소는 문서와 예제에서 쓰라고 따로 지정해 둔 대역에서 골랐습니다. 실제로 누군가 쓰고 있는 주소를 예제에 적으면 그 주소로 시험 삼아 접속을 시도하는 일이 생길 수 있어서, 이런 용도로 비워 둔 대역이 규격에 마련돼 있습니다. 출발지 쪽은 집 안에서 쓰는 사설 대역을 썼습니다.

07

집 공유기의 표가 가장 단순합니다.

가장자리에 있는 장비일수록 표가 짧습니다. 집 공유기는 집 안 기기인지 아닌지만 구분하면 되므로 두 줄로 충분하고, 나머지 판단은 전부 위쪽 장비에 맡깁니다. 반대로 중간에 있는 장비들은 여러 방향 중 하나를 골라야 해서 표가 길어집니다. 화면에서 라우터마다 표의 내용이 다른 것은 각자 맡은 판단의 범위가 다르기 때문이고, 이 구조 덕분에 모든 장비가 인터넷 전체를 알 필요가 없습니다.

08

지나온 기록은 나중에 모은 것입니다.

화면 아래에 쌓이는 기록은 각 단계에서 한 줄씩 추가된 것이고, 패킷이 들고 다니는 정보가 아닙니다. 패킷 자신은 어디서 왔는지 어디로 가는지만 알 뿐 어느 장비를 거쳤는지 기억하지 않습니다. 이 목록은 관찰자 입장에서 밖에서 지켜보며 적은 것이며, 실제로 경로를 알아내려면 별도의 방법으로 각 장비에게 응답을 받아 내야 합니다.

실제 경로 탐색이 아니라 정해 둔 지형입니다.

이 화면은 브라우저 안에서만 돌아가며 어떤 네트워크 조회도 하지 않습니다. 지도의 노드와 회선, 각 라우터의 안내표, 두 시나리오의 결과는 모두 미리 정해 둔 값이라 실제 인터넷의 경로와는 무관합니다. 실제 경로는 여기 나오는 것보다 훨씬 많은 장비를 지나고, 통신사 사이의 정책이나 비용 때문에 지리적으로 가까운 길이 선택되지 않는 경우도 많습니다. 안내표를 만드는 규약, 경로가 바뀌는 동안의 불안정한 구간, 같은 목적지로 가는 여러 경로에 트래픽을 나눠 싣는 방식도 다루지 않습니다. 실제 경로를 확인하려면 경로 추적 도구를 쓰는 편이 정확하고, 이 화면은 그 결과를 읽는 감각을 익히는 용도입니다.

참고 자료RFC 791 — Internet Protocol (TTL 정의)RFC 5737 — 문서용 IPv4 주소 대역RFC 1918 — 사설 주소 대역

실험을 마쳤다면