trace route 작성.
글쓴이: litnsio2 / 작성시간: 토, 2003/11/22 - 8:03오후
win32 GUI 기반 환경에서 traceroute 를 작성해보려고 합니다.
(윈도우 프로그래밍에 대한 질문이 아니고.. 프로토콜에 대한 질문입니다..)
RAW 소켓으로 ICMP 프로토콜을 사용하려하는데요.
traceroute 가 플랫폼마다 약간 다른 식으로 구현되어있나요?
도스창에서 tracert 를 실행하고 패킷 캡처를 해보면 윈도우에 구현되어있는
traceroute 는 기본적으로 ping 과 ttl 을 이용한것 같더군요. (icmp패킷의 type필드값이 8, 즉 ping request 입니다)
ttl 로 1을 주고 ping 을 때려서 time exceed 받고 ttl 2로 해서 받고..
하는식으로요.
책을 보면(tcp/ip illustrated vol.1 입니다) traceroute가 type 값으로 11을
사용하던데..
어찌되든 구현만 되면 문제가 없겠지만 windows 가 아닌 다른 환경에서는
어떻게 구현되었는지 궁금합니다.
ps. 그리고 국내에서 tcp/ip 에 대한 정보교류를 할수 있는곳좀 아시는분
계시면 추천좀 해 주십시오. 찾다찾다 못해서 이곳에 질문을 올리는거라...^^;
Forums:
플랫폼마다 틀립니다. 윈도우 tracert는 icmp 8,0,11만을 사
플랫폼마다 틀립니다. 윈도우 tracert는 icmp 8,0,11만을 사용하고 유닉스 트레이스라우트는 UDP와 icmp 3번을 사용합니다. UDP포트 33000번 이상을 사용하고 ttl값을 늘려가며 각각의 홉에서 icmp 포트 언리치어블을 받습니다.
도움이 되실련지 모르지만, 윈도우tracert에서는 패킷사이즈 92를 사용합니다. 많은 라우터들이 nachi worm때문에 icmp 사이즈92를 막습니다. icmp 사이즈 92는 피하세요. :)
댓글 달기