Reg. Date: June 18, 2002 By 김학용
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 값이 몇인지도 궁금합니다.)
>
>아시는 분 꼭 좀 부탁드립니다.
>
>