220 likes | 337 Views
제 7 장. Ping 프로그램. 목차. Introduction Ping Program LAN Output WAN Output Hardwired SLIP Links Dialup SLIP Links IP Record Route Option Normal Example Abnormal Output IP Timestamp Option Summary. 1. Introduction. Ping Packet InterNet Goper 에 나타남 호스트에 도착할 수 있는지 테스트
E N D
제 7 장 Ping 프로그램
목차 • Introduction • Ping Program • LAN Output • WAN Output • Hardwired SLIP Links • Dialup SLIP Links • IP Record Route Option • Normal Example • Abnormal Output • IP Timestamp Option • Summary
1. Introduction • Ping • Packet InterNet Goper에 나타남 • 호스트에 도착할 수 있는지 테스트 • send an ICMP echo request message to a host • 호스트에 telnet을 할 수 없을 경우, 어떤 문제인지 결정하기 위해 사용 • 호스트까지 얼마나 멀리 떨어져 측정 • measures the round-trip time to the host
0 7 8 15 16 31 Code(0) checksum Type(0 or 8) 8 byte identifier Sequence number Optional data Figure 7.1 Format of ICMP message for echo request and echo reply 2. Ping Program • Client : ping program( sends the echo requests) • Server : host • UNIX implementations of ping • identifier : process ID of the sending process • sequence number : 0부터 시작, 순차적으로 증가 • option : -s
LAN Output bsdi % ping svr4 PING svr4 (140.252.13.34) : 56 data bytes 64 bytes from 140.252.13.34 : icmp_seq=0 ttl=255 time=0 ms 64 bytes from 140.252.13.34 : icmp_seq=1 ttl=255 time=0 ms 64 bytes from 140.252.13.34 : icmp_seq=2 ttl=255 time=0 ms 64 bytes from 140.252.13.34 : icmp_seq=3 ttl=255 time=0 ms 64 bytes from 140.252.13.34 : icmp_seq=4 ttl=255 time=0 ms ^? ----svr4 PING Statistics---- 5 packets transmitted, 5 packets received, 0% packet loss round-trip (ms) min/avg/max = 0/0/0 ms
Cont’d [dblab:/users/user/kangms]# ping ce ce.hannam.ac.kr is alive [dblab:/users/user/kangms]# ping -s ce PING ce.hannam.ac.kr: 56 data bytes 64 bytes from ce.hannam.ac.kr (203.247.40.42): icmp_seq=0. time=3. ms 64 bytes from ce.hannam.ac.kr (203.247.40.42): icmp_seq=1. time=2. ms 64 bytes from ce.hannam.ac.kr (203.247.40.42): icmp_seq=2. time=2. ms 64 bytes from ce.hannam.ac.kr (203.247.40.42): icmp_seq=3. time=14. ms 64 bytes from ce.hannam.ac.kr (203.247.40.42): icmp_seq=4. time=2. ms ^C ----ce.hannam.ac.kr PING Statistics---- 5 packets transmitted, 5 packets received, 0% packet loss round-trip (ms) min/avg/max = 2/4/14
Cont’d • ICMP echo 응답 • sequence number, TTL, round-trip time이 출력 • TTL • IP header에 있는 time-to-live 필드 • 현재 BSD ping 프로그램은 echo 응답을 수신할 때마다 TTL을 출력 • 8장에서 TTL 이용방법 설명 • round-trip time 계산 • ICMP 메시지의 데이터 부분에 echo 요구를 보내는 시간을 저장 • 계산 : 현재 시간 - 응답이 되돌아 온 시간 • BSD/386 version 0.9.8에서는 10-ms 이하는 지원하지 않음 ( version 1.0부터는 지원)
Cont’d • 호스트 이름을 지정하더라도, 첫째 줄에 IP가 출력 • sunOS에서는 그렇지 않음 • resolver에 의해 IP 주소로 변환 됨 • resolver는 14 장에서 다룸 • Ping을 실행 시키면 첫줄이 출력 될 때까지의 시간이 지연 됨 • 0번의 응답 시간이 긴 이유 • 목적지의 주소가 sender의 ARP cache에 없기 때문 • ARP 요구와 응답 때문에 지연 • echo 응답 요구 메시지는 1초마다 보냄
WAN 출력 [ce:/user/msphd/kangms]# ping -s vangogh.cs.berkeley.edu PING vangogh.cs.berkeley.edu: 56 data bytes 64 bytes from 128.32.33.5: icmp_seq=0. time=405. ms 64 bytes from 128.32.33.5: icmp_seq=1. time=295. ms 64 bytes from 128.32.33.5: icmp_seq=2. time=301. ms 64 bytes from 128.32.33.5: icmp_seq=3. time=314. ms 64 bytes from 128.32.33.5: icmp_seq=4. time=291. ms 64 bytes from 128.32.33.5: icmp_seq=6. time=294. ms ^C ----vangogh.cs.berkeley.edu PING Statistics---- 8 packets transmitted, 6 packets received, 25% packet loss round-trip (ms) min/avg/max = 291/316/405 [ce:/user/msphd/kangms]#
Hardwired SLIP links Svr4 % ping -s slip PING slip: 56 data bytes 64 byte from slip (192.42.62.1): icmp_seq=0. Time=1480. ms 64 byte from slip (192.42.62.1): icmp_seq=1. Time=1480. ms 64 byte from slip (192.42.62.1): icmp_seq=2. Time=1480. ms 64 byte from slip (192.42.62.1): icmp_seq=3. Time=1480. ms ^? ---------------------slip PING statistics------------------ 5 packets transmitted, 4 packets received, 20% packet loss round-trip (ms) min/avg/max = 1480/1480/1480 Svr4 % • Hardwired SLIP link 통신 속도 : 1200 bit/sec
Cont’d • Round-trip time 계산 • IP datagram의 총 크기 : 84 byte • ICMP message : 54 byte • IP header : 20 byte • ICMP header : 8byte • datagram의 시작과 끝의 END byte : 2 byte • 초당 전송 byte : 8.33 ms/byte • 1byte (8bit) + start bit(1) + stop bit(1) • 1200 bit/sec => 120 byte/sec ( 8.33 ms/byte) • round-trip time 계산 • (86 * 8.22 * 2) = 1.433 ms
Dialup SLIP Links • 환경 조건 • 모뎀을 가지고 연결 • V.32 modulation ( 9600 bit/sec ) • V.42 error control • V.42bis 데이터 압축 • hardware처럼 계산이 정확하지 않음 • 주의 사항 • RTT는 10 ms의 배수 • RTT는 서서히 감소(280 ~ 300 ms) • RTT의 최소 : 260 ms
Cont’d sun % ping gemini PING gemini: 56 data bytes 64 byte from gemini (140.252.1.11): icmp_seq=0. Time=373. ms 64 byte from gemini (140.252.1.11): icmp_seq=1. Time=360. ms 64 byte from gemini (140.252.1.11): icmp_seq=2. Time=340. ms 64 byte from gemini (140.252.1.11): icmp_seq=3. Time=320. ms 64 byte from gemini (140.252.1.11): icmp_seq=4. Time=330. ms 64 byte from gemini (140.252.1.11): icmp_seq=5. Time=310. ms 64 byte from gemini (140.252.1.11): icmp_seq=6. Time=290. ms 64 byte from gemini (140.252.1.11): icmp_seq=7. Time=300. ms 64 byte from gemini (140.252.1.11): icmp_seq=8. Time=280. ms 64 byte from gemini (140.252.1.11): icmp_seq=9. Time=290. ms 64 byte from gemini (140.252.1.11): icmp_seq=10. Time=300. ms 64 byte from gemini (140.252.1.11): icmp_seq=11. Time=280. ms ^? ----gemini PING statistics---- 12 packets transmitted, 12 packets received, 0% packet loss round-trip (ms) min/avg/max = 280/314/373
3. IP Record Route Option • IP record route option • ping -R [ destination ] • -R option은 record route 기능을 갖음 • IP 주소 목록 출력 • datagram을 처리하는 모든 router들은 자신의 IP를 추가 • 목적지에 도달 시, ICMP echo 응답에 IP주소 복사 • echo 응답을 받았을 시, IP 주소 목록 출력 • 대부분 시스템들이 이 option 기능을 지원 • 시스템 중에는 IP 목록을 반영하지 않는 것도 있음 • 문제점 : 9개의 IP 주소 목록만 수록할 수 있음
39 byte code len ptr IP addr #1 IP addr #2 IP addr #3 IP addr #9 1 1 4 byte 4 byte 4 byte 4 byte 1 Ptr = 4 Ptr = 8 Ptr = 12 Ptr = 36 Ptr = 40 Figure 7.3 General format of record route option in IP header Con’d • Field 설명 • Code : IP option 유형을 지정하는 필드 ( RR = 7 ) • len : RR option의 총 바이트 수 ( 39 byte ) • ptr : IP 주소 목록이 채워질 곳을 지정 • 최소값 = 4, 최대값 = 40 • IP add : 송신하는 IP add를 기록(RFC 791) • 마지막으로 자신의 수신 IP 주소를 기록
Normal Example svr4 % ping -R slip PING slip (140.252.13.65) : 56 data bytes 64 bytes from 140.252.13.65 : icmp_seq=0 ttl=254 time=280 ms RR : bsdi (140.252.13.66) slip (140.252.13.65) bsdi (140.252.13.35) svr4 (140.252.13.34) 64 bytes from 140.252.13.65 : icmp_seq=1 ttl=254 time=280 ms ( same route ) 64 bytes from 140.252.13.65 : icmp_seq=2 ttl=254 time=270 ms ( same route ) ^? ------ slip ping statistics ----- 3 packers transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 270/276/280 ms
SLIP slip bsdi sun svr4 .65 .66 .35 .34 Eithernet 4th =140.252.13.34 Empty list 1st = 140.252.13.66 2st = 140.252.13.65 3st = 140.252.13.35 Figure 7.4 Ping with recorcd route option. Cont’d 1 0.0 svr4 > slip : icmp: echo request (ttl 32, id 35835, optlen=40 RR{39} = RR{#0.0.0.0/0.0.0.0/ ~ /0.0.0.0} EOF) 2 0.267746 (0.2677) slip > svr4 : icmp: echo reply ( ttl 254, id 1976, optlen=40 RR{39}=RR{140,252,13,66/ 140,252,13,65/140,252,13,35/ #0.0.0.0/ ~ / 0.0.0.0} EOF) Figure 7.5 tcpdump output of record option
Abnormal Output slip % ping -R aix PING aix (140.252.13.65) : 56 data bytes 64 bytes from 140.252.1.92 : icmp_seq=0 ttl=251 time=650 ms RR : bsdi (140.252.13.35) sun (140.252.1.29) netb (140.252.1.183) gateway (140.252.1.4) why is this router used ? netb (140.252.1.183) sun (140.252.13.33) bsdi (140.252.13.66) slip (140.252.13.65) 64 bytes from aix : icmp_seq=1 ttl=251 time=610 ms ( same route ) 64 bytes from aix : icmp_seq=2 ttl=251 time=600 ms ( same route ) ^? ------ aix ping statistics ----- 4 packers transmitted, 3 packets received, 25% packet loss round-trip min/avg/max = 600/620/6250 ms
internet Ping destination 4st = 140.252.1.92 gateway aix .1.4 .1.92 Eithernet 3st = 140.252.1.183 .1.183 5st = 140.252.1.4 netb 6st = 140.252.1.183 SLIP 8st = 140.252.13.66 7st = 140.252.13.33 2st = 140.252.1.29 .1.29 SLIP slip bsdi sun .13.65 .13.66 .13.35 .13.33 Eithernet Empty list 1st = 140.252.13.35 Figure 7.6 ping with record route, showing IP routing feature Cont’d
40 byte code len ptr OF FL Tstamp #1 Tstamp #2 Tstamp #3 Tstamp #9 1 1 1 4 byte 4 byte 4 byte 4 byte Figure 7.7 General format of timestamp option in IP header 4. IP Timestamp Option • Field 설명 • code : 0x44 - timestamp option code • len, ptr : record route option과 같음 • OF(overflow) : timestamp의 공간이 없는 경우에 router는 OF field를 증가
Cont’d • FL(flag) • 0 : timestamp만 기록 • 1 : router의 IP 주소와 timestamp 기록( 4쌍의 공간) • 3 : sender는 최대 4쌍의 IP add와 0 timestamp를 초기화router는 리스트에 있는 다음 IP add가 자신의 것과 일치할 경우만 timestamp를 기록
5. Summary • Ping program • TCP/IP 실행을 하는 두 시스템 간의 기본적인 접속 실험을 함 • ICMP echo 요구와 echo 응답 메시지를 이용 • 트랜스포트 계층(TCP or UDP)를 사용하지 않음 • LAN, WAN, SLIP link(hardwired, dialup)에 서의 일반적인 ping 출력을 알아봄 • Ping을 이용한 RR(record route) option • IP timestamp option