Reg. Date: June 18, 2002 By 김학용
제가 앞에서 TTL 값을 세팅하는 것이 외부망에 대해서는 보통 255를 사용한다고
했는데, 이 경우 yahoo의 시스템은 64를 쓰는 것 같습니다. 이런 것은 다음 결과에서
유추할 수 있습니다.
C:\>ping 66.218.71.86
Pinging 66.218.71.86 with 32 bytes of data:
Reply from 66.218.71.86: bytes=32 time=239ms TTL=52
Reply from 66.218.71.86: bytes=32 time=167ms TTL=52
Reply from 66.218.71.86: bytes=32 time=447ms TTL=52
Reply from 66.218.71.86: bytes=32 time=152ms TTL=52
Ping statistics for 66.218.71.86:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 152ms, Maximum = 447ms, Average = 251ms
C:\>tracert 66.218.71.86
Tracing route to w7.scd.yahoo.com [66.218.71.86]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 172.XXX.XXX.254
2 <1 ms <1 ms <1 ms 192.168.11.126
3 30 ms 5 ms 3 ms 211.51.23.125
4 58 ms 18 ms 21 ms 192.168.222.121
5 80 ms 263 ms 335 ms 168.126.0.132
6 34 ms 44 ms 35 ms 211.196.155.73
7 49 ms 40 ms 44 ms 203.234.255.169
8 42 ms 201 ms 42 ms 218.145.63.3
9 166 ms 162 ms 196 ms pop-paix245-p11-0-0.kornet.net [211.48.63.54]
10 165 ms 173 ms 169 ms 211.48.63.150
11 158 ms 183 ms 151 ms ge-2-3-0.msr2.pao.yahoo.com [216.115.101.46]
12 175 ms 356 ms 181 ms vl11.bas2.scd.yahoo.com [66.218.64.138]
13 319 ms * 247 ms w7.scd.yahoo.com [66.218.71.86]
Trace complete.
위 결과를 보시면 아시겠지만, TTL=52 입니다. 그리고, yahoo에서 제 컴까지의
홉수는 12입니다. 따라서, 초기 TTL=64 라고 짐작을 할 수 있는 것이지요.
이것을 비교하기 위해, www.ieee.org에 대해 핑과 트레이스라우트를 한 결과를
보여드리면 다음과 같습니다.
C:\>ping www.ieee.org
Pinging www.ieee.org [140.98.193.38] with 32 bytes of data:
Reply from 140.98.193.38: bytes=32 time=237ms TTL=235
Reply from 140.98.193.38: bytes=32 time=214ms TTL=235
Reply from 140.98.193.38: bytes=32 time=535ms TTL=235
Reply from 140.98.193.38: bytes=32 time=341ms TTL=235
Ping statistics for 140.98.193.38:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 214ms, Maximum = 535ms, Average = 331ms
C:\>tracert www.ieee.org
Tracing route to www.ieee.org [140.98.193.38]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 172.XXX.XXX.254
2 <1 ms <1 ms <1 ms 192.168.11.126
3 10 ms 3 ms 5 ms 211.51.23.125
4 16 ms 53 ms 47 ms 192.168.222.121
5 51 ms 55 ms 45 ms 168.126.0.2
6 41 ms 82 ms 32 ms 211.196.155.73
7 67 ms 32 ms 48 ms 203.234.255.169
8 39 ms 66 ms 45 ms 218.145.63.67
9 482 ms 279 ms 564 ms 211.48.63.182
10 416 ms 196 ms 198 ms 500.POS4-3.GW8.SJC2.ALTER.NET [208.222.9.137]
11 157 ms 161 ms * 172.ATM6-0.XR2.SJC2.ALTER.NET [152.63.49.226]
12 322 ms 181 ms 145 ms 0.so-1-0-0.XL2.SJC2.ALTER.NET [152.63.56.141]
13 160 ms 187 ms * 0.so-4-0-0.TL2.SCL2.ALTER.NET [152.63.1.61]
14 230 ms 246 ms 291 ms 129.at-6-0-0.TR1.LAX9.ALTER.NET [152.63.0.110]
15 231 ms 254 ms 248 ms 0.so-1-0-0.XL2.NYC9.ALTER.NET [152.63.23.130]
16 324 ms 484 ms 230 ms 0.so-0-0-0.XR2.NYC9.ALTER.NET [152.63.9.89]
17 242 ms * 255 ms 180.ATM6-0.GW7.NYC9.ALTER.NET [152.63.24.85]
18 226 ms 252 ms 236 ms ieee-gw.customer.alter.net [157.130.92.82]
19 237 ms * 233 ms Expedition-fe1-1.ieee.org [140.98.209.3]
20 242 ms * 209 ms zena-ext.ieee.org [140.98.210.1]
21 229 ms 229 ms 224 ms crest-5.ieee.org [140.98.193.38]
Trace complete.
C:\>
이 경우 TTL=235 이고 255-235=20 이라는 것을 알 수 있습니다. 즉, 홉의
수와 일치하죠. 이런 경우는 초기값을 255로 설정한 경우입니다.
다시 말하면, 장비마다 TTL 값을 어떻게 설정하는지의 여부에 따라
값이 달라질 수 있는 것입니다.
마지막으로 한 가지 덧붙이자면, 간혹 255 - TTL 을 계산한 값이 tracert에서
나오는 홉의 수와 같지 않은 경우가 있습니다. 왜 그럴까요? 잠깐 생각해
보시기 바랍니다. 그리고 아래 부분을 마우스로 드래그 해보세요.
<<그 이유는 IP 패킷은 항상 일정하고 동일한 경로를 따라 움직이는 것이 아니기
때문입니다. 즉, ping을 할 때와 tracert를 수행할 때 서로 다른 경로로 패킷이 전달되기
때문에 두 값에서 차이가 날 수도 있습니다.
>>
김학용 홈페이지 바로가기 : http://hakyongkim.net
>친절한 답변 너무 감사합니다.
>그런데 제가 모르는게 많아서 한가지만 더 여쭤볼께요?
>
>win9X, win2000에서 외부로 핑 보낼 때 255가 초기값이면
>응답 메세지가 Reply from 66.218.71.86: bytes=32 time=131ms TTL=54 나오면
>중간에 라우터를 201개(왕복 or 편도???)를 거쳐서 제 컴에 도착된건가요?
>근데 tracert로 경로를 추적해 보면 대부분 30개 미만으로 완료 되던데
>어떻게 된거죠?
>
>
>
>>ping의 기능에 대해서는 아시는 것 같은데, ping이 동작하는 원리에
>>대해서 잘 이해하고 있지 못한것 같습니다. 질문하신 내용은 핑의 동작
>>원리만 알면 간단히 해결되는 것이죠.
>>
>>핑이란 것은 원거리에 있는 호스트에(remote host) 도착할 수 있는지의
>>여부를 알 수 있게 해주는데, 이를 위해서 핑 프로그램은 ICMP echo
>>request message를 remote host에 전달하게 됩니다. 만약, 핑에 대한
>>어떤 응답을 받으려면, 적어도 이 메시지가 원하는 목적지 호스트에
>>도착해야겠죠.
>>
>>이 메시지를 받은 remote host는 ICMP echo reply를 보내게 됩니다.
>>이때 ICMP echo reply는 여러 정보들과 함께 IP에 TTL 값을 세팅해서
>>보내게 되는데, TTL 값을 세팅하는 것이 시스템마다 다릅니다.
>>
>>김용민 님께서 확인하신 것처럼 같은 네트웍에서는 보통 128 이라는 값으로
>>설정하고, 외부 네트웍에서 온 request에 대해서는 255로 설정을 하게 됩니다.
>>(물론, 시스템마다 다를 수가 있습니다. 옛날에는 32도 사용한 적이 있다고
>>합니다.) 따라서, 서로 다른 값이 나오는 것이죠.
>>
>>내부 네트웍임에도 TTL=127이 나오는 경우가 있는데, 이경우는 내부 망이
>>서브넷으로 분리되어 있어서 라우터를 거쳐서 들어오기 때문에 라우터에서
>>TTL 값이 1 감소되기 때문입니다.
>>
>>
>>
>>
>>>예를 들어 ping www.yahoo.com을 치면
>>> Reply from 66.218.71.86: bytes=32 time=131ms TTL=54
>>>응답 메세지에 ttl 값이 출력이 되는데
>>>같은 네트웍에 있는 컴을 치면 128이고 외부를 치면 각각 다르게 값이 나오는데
>>>어떤 원리인지 알고 싶습니다.
>>>(라우터를 지날 때 마다 1씩 감소해서 0이 되면 패킷이 소멸된다고 하는데(이것도 잘 이해가 안되요:기본으로 30홉이상 못넘게 되있는걸로 아는데)
>>>그럼 기본 ping을 치면 처음 설정은 ttl 값이 몇인지도 궁금합니다.)
>>>
>>>아시는 분 꼭 좀 부탁드립니다.
>>>
>>>