1. 라이브러리
  2. 라우팅과 네트워크
  3. 인터넷 라우팅

업데이트됨 1개월 전

웹사이트에 접속할 때, 데이터는 목적지로 직접 이동하지 않습니다. 라우터에서 라우터로 홉을 거치며, 각 라우터가 패킷을 목적지에 조금씩 더 가깝게 전달합니다. 이 홉들을 이해하는 것—그리고 트레이스라우트가 어떻게 이를 드러내는지—은 네트워크 문제를 진단하고 인터넷의 숨겨진 구조를 파악하는 데 있어 핵심입니다.

홉이란?

홉은 패킷의 여정에서 한 단계입니다. 데이터가 통과하는 각 라우터가 하나의 홉으로 계산됩니다.

인터넷 너머의 서버에 대한 요청은 다음을 거칠 수 있습니다:

  1. 가정용 라우터
  2. ISP의 로컬 라우터
  3. ISP의 지역 라우터
  4. 인터넷 백본 라우터
  5. 목적지 ISP의 라우터
  6. 목적지 서버의 네트워크
  7. 목적지 서버 자체

7개의 홉. 7번의 전달. 여러분과 목적지 사이의 총 홉 수를 홉 카운트라고 합니다.

패킷이 여러 홉을 거치는 이유

인터넷은 네트워크들의 네트워크입니다. 여러분의 노트북에서 도쿄의 서버까지 이르는 경로를 단일 기관이 소유하지 않습니다. 패킷은 각각 자체 라우터를 가진 조직의 경계—ISP, 백본 제공업체, 클라우드 네트워크—를 넘어야 합니다.

이 구조 덕분에 이중화가 확보됩니다. 하나의 라우터가 장애를 일으키면, 트래픽은 대체 경로를 통해 우회됩니다. 여러 경로가 존재하기 때문에 인터넷은 장애가 발생해도 자동으로 우회 경로를 찾아 통신을 이어갑니다.

TTL 트릭

트레이스라우트가 해결하는 문제는 이렇습니다: 라우터에게 직접 자신을 알려달라고 요청할 수 없습니다. 라우터는 질문에 답하는 것이 아니라 패킷을 전달하느라 바쁩니다.

해결책은 모든 IP 패킷 헤더에 있는 TTL—Time To Live—이라는 필드를 활용합니다. 이름과 달리, TTL은 시간을 측정하지 않습니다. 홉을 셉니다. 패킷을 처리하는 모든 라우터는 TTL을 1씩 감소시킵니다. TTL이 0이 되면, 라우터는 패킷을 폐기하고 오류 메시지를 돌려보냅니다: "시간 초과."

TTL은 라우팅 루프가 발생할 경우 패킷이 네트워크를 영원히 떠돌지 않도록 막기 위해 존재합니다. 트레이스라우트는 이 안전장치를 매핑 도구로 탈바꿈시킵니다.

작동 방식:

트레이스라우트는 TTL=1인 패킷을 보냅니다. 첫 번째 라우터가 TTL을 0으로 감소시키고, 패킷을 폐기하며, 응답을 보냅니다. 이제 첫 번째 홉의 IP 주소를 알 수 있습니다.

트레이스라우트는 TTL=2인 패킷을 보냅니다. 첫 번째 라우터를 통과하고, 두 번째에서 소멸합니다. 두 번째 라우터가 응답을 보냅니다. 이제 두 번째 홉을 알 수 있습니다.

이 과정이 계속됩니다—TTL=3, TTL=4, TTL=5—패킷이 마침내 목적지에 도달할 때까지. 목적지는 다르게 응답합니다 ("시간 초과"가 아니라 "여기 있습니다"), 그리고 추적이 완료됩니다.

트레이스라우트는 특정 거리에서 소멸하도록 설계된 패킷을 보내고, 그 소멸 신호에 귀를 기울임으로써 인터넷을 매핑합니다.

결과 분석하기

트레이스라우트 결과는 다음과 같이 보입니다:

traceroute to example.com (93.184.216.34), 30 hops max
 1  192.168.1.1 (192.168.1.1)  2.3 ms  1.9 ms  2.1 ms
 2  10.0.0.1 (10.0.0.1)  12.5 ms  11.2 ms  13.6 ms
 3  core-router.isp.net (203.0.113.1)  15.2 ms  15.0 ms  16.1 ms
 4  border-router.isp.net (203.0.113.50)  18.5 ms  17.2 ms  19.6 ms
 5  peer-exchange.net (198.51.100.1)  25.1 ms  24.6 ms  26.2 ms
 6  dest-network.example.com (93.184.216.1)  28.5 ms  27.1 ms  29.2 ms
 7  example.com (93.184.216.34)  30.2 ms  29.6 ms  31.1 ms

각 줄은 하나의 홉입니다:

  • 홉 번호: 경로에서의 위치
  • 호스트명과 IP: 라우터의 식별 정보 (가능한 경우 역방향 DNS를 통한 호스트명)
  • 세 가지 타이밍 값: 밀리초 단위의 왕복 시간 (트레이스라우트는 홉당 세 개의 프로브를 전송)

패턴별 의미

별표( * )

응답 없음. 라우터가 응답하지 않은 것입니다. 이는 보통 정상입니다—많은 라우터는 보안을 위해 트레이스라우트 패킷을 조용히 폐기하면서도 일반 트래픽은 계속 전달합니다. 데이터는 아마 잘 전달되고 있을 것입니다; 다만 그 홉이 보이지 않을 뿐입니다.

 8  * * *

지연 시간 급증

갑작스러운 증가는 장거리 링크를 드러냅니다:

 4  local-router (10.0.0.1)  15 ms  14 ms  16 ms
 5  overseas-router (198.51.100.1)  185 ms  183 ms  187 ms

15ms에서 185ms로의 급증? 바다 하나입니다. 해저 케이블은 물리 법칙이 어찌할 수 없는 지연 시간을 더합니다. 광섬유 속 빛은 초당 약 200,000km로 이동하지만, 바다는 그보다 훨씬 넓습니다.

지리적 단서

라우터 호스트명에는 종종 위치 코드—도시 약어, 공항 코드—가 담겨 있습니다. "ord"는 시카고 오헤어, "lax"는 로스앤젤레스, "ams"는 암스테르담입니다. 패킷의 지리적 여정을 직접 추적할 수 있습니다.

트레이스라우트가 유용한 경우

연결이 끊기는 지점 찾기: 5번 홉에서 패킷이 멈추면, 문제는 그 라우터에 있거나 그 너머에 있습니다.

병목 지점 식별: 다른 홉들이 20ms를 보이는 반면 한 홉이 200ms를 보인다면, 느림의 원인이 어디에 있는지 알 수 있습니다.

경로 파악: ISP가 피어링하는 네트워크, 트래픽을 운반하는 백본 제공업체, 패킷이 실제로 목적지에 도달하는 방식을 확인할 수 있습니다.

이중화 검증: 트레이스라우트를 여러 번 실행해 보세요. 서로 다른 경로가 나타난다면 이중화 라우트가 갖춰져 있다는 뜻입니다.

트레이스라우트가 알 수 없는 것

돌아오는 경로: 응답 패킷은 다른 경로를 취할 수 있습니다. 트레이스라우트는 아웃바운드 경로만 매핑합니다.

필터링된 홉: ICMP를 차단하는 라우터는 경로에 빈 구간을 만듭니다. 패킷은 통과하지만, 그 홉을 볼 수는 없습니다.

부하 분산 경로: 여러 경로가 존재할 때, 각 트레이스라우트 프로브가 다른 경로를 택할 수 있어 일관성 없는 결과가 나타날 수 있습니다.

정확한 지연 시간: 네트워크 상태는 끊임없이 변합니다. 타이밍 값은 순간적인 스냅샷이지 보장된 수치가 아닙니다.

트레이스라우트의 다른 형태들

TCP 트레이스라우트: ICMP 대신 TCP를 사용하여 ICMP를 차단하는 방화벽을 우회합니다.

MTR (My Traceroute): 트레이스라우트와 지속적인 ping을 결합하여 단일 스냅샷이 아닌 시간 경과에 따른 통계를 보여줍니다.

Paris Traceroute: 부하 분산기를 통해서도 일관된 경로로 라우팅되도록 패킷을 정밀하게 구성합니다.

핵심 요약

모든 패킷은 각 라우터를 거칠 때마다 감소하는 자기 파괴 타이머(TTL)를 가지고 있습니다. 트레이스라우트는 특정 거리에서 소멸하도록 설계된 패킷을 보내고, 오류 메시지를 통해 인터넷을 홉별로 매핑함으로써 이를 활용합니다. 트레이스라우트를 실행할 때, 여러분은 평소에 보이지 않는 인프라—라우터, 케이블, 데이터가 지구상 어디든 도달하기 위해 넘어야 하는 조직적 경계—를 직접 목격하게 됩니다.

홉과 트레이스라우트에 관한 자주 묻는 질문

일부 홉에서 시간 대신 별표가 표시되는 이유는?

그 홉의 라우터가 트레이스라우트 패킷에 응답하지 않는 것입니다. 많은 네트워크 관리자는 보안상의 이유로 라우터가 ICMP 프로브를 조용히 폐기하도록 설정합니다. 실제 트래픽은 정상적으로 통과하고 있을 가능성이 높습니다—다만 추적에서 그 홉이 보이지 않을 뿐입니다.

홉 수는 몇 개가 정상인가요?

대부분의 목적지는 10~20홉 거리에 있습니다. 10개 미만이면 목적지가 지리적으로 가깝거나 연결이 잘 되어 있다는 뜻입니다. 20개를 넘으면 최적화되지 않은 라우팅일 수 있지만, 반드시 문제라고 볼 수는 없습니다.

트레이스라우트를 실행할 때마다 다른 경로가 나오는 이유는?

부하 분산 때문입니다. 대형 네트워크는 여러 경로에 걸쳐 트래픽을 분산합니다. 각 트레이스라우트 프로브는 다른 경로를 택할 수 있는 독립적인 패킷입니다. 이는 정상적인 현상이며, 종종 네트워크 이중화가 잘 갖춰져 있다는 신호입니다.

속도 향상을 위해 홉 수를 줄일 수 있나요?

직접적으로는 어렵습니다. 홉 수보다는 각 홉에서의 지연 시간이 더 중요합니다. 15개의 빠른 홉을 가진 경로가 8개의 느린 홉보다 낫습니다. CDN과 엣지 서버는 콘텐츠를 사용자에게 더 가까이 배치함으로써 실질적인 거리를 줄이며, 이는 자연스럽게 홉 수와 지연 시간 모두를 낮춥니다.

이 페이지가 도움이 되었나요?

😔
🤨
😃