제 6 장 인터넷 제어 메시지 프로토콜.

Slides:



Advertisements
Similar presentations
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
Advertisements

2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
16장 X.25 패킷 교환망 16.1 X.25 계층 구조 16.2 패킷 계층 프로토콜 16.3 요약.
제 12 장 브로드캐스팅과 멀티캐스팅.
제 8 장 Traceroute 프로그램.
PHP입문 Izayoi 김조흔.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
제 4장 주소변환 프로토콜 (ARP : Address Resolution Protocol)
ARP의 실험 발표자 : 이직수
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
제 14장 Multicast & Broadcast
Internet Control Message Protocol Version 4 (ICMPv4)
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
제 15 장 점 대 점 프로토콜 15.1 천이상태 15.2 PPP 계층 15.3 링크 제어 프로토콜 15.4 인증
15장 X.25 패킷 교환망 15.1 X.25 계층 15.2 X.25와 관련된 기타 프로토콜 15.3 요약.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
10 장 데이터 링크 제어(Data Link Control)
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Trivial File Transfer Protocol (TFTP)
시스템 인터페이스 Lab3 Unix 사용법 실습.
제 11 장 UDP 11.1 프로세스-대-프로세스 통신 11.2 사용자 데이터그램 11.3 검사합 11.4 UDP 동작
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
22 장 전송층(Transport Layer)
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
21 장 전송층(Transport Layer)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주).
네트워크 프로토콜.
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
16 장 네트워크 보안 : 방화벽과 VPN 16.1 개요 16.2 기밀성 16.3 전자 서명 16.4 인터넷 보안
Network 네트워크 이론 및 실습 TCP / IP 4장.
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
01. 라우팅 및 원격 액세스의 개요 라우팅은 패킷을 송신지부터 수신지까지 어떠한 경로를 통해 보낼 것인지를 결정하는 방법
Chapter 26 IP over ATM.
제 12 장 브로드캐스팅과 멀티캐스팅 정보통신연구실.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
제 19 장 TCP 대화식 데이터 흐름.
Ping Test.
(Dynamic Host Configuration Protocol)
Addressing the Network – IPv4
Chapter 27 Mobile IP.
라우터의 이해 (보충자료) TCP/IP구성 Ping명령어를 이용한 연결검사 비트와 바이트 10진수/2진수/16진수
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
D H C P 김민섭 박영운.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
ARP.
Presentation transcript:

제 6 장 인터넷 제어 메시지 프로토콜

목차 6.1 ICMP 개요 6.2 ICMP 메시지 형식 6.3 ICMP 주소 마스크 요구와 응답 6.6 4.4BSD에서 ICMP 메시지 처리 6.7 요약

6.1 ICMP 개요 ICMP목적 : 신뢰성 없는 전송인 IP를 어느 정도 보안하기 위해 IP 데이터 그램 ICMP 메시지 gateway와 host간의 에러 메시지와 주의를 요하는 상태 정보를 취급하기 위한 프로토콜 - IP계층 또는 보다 상위 계층 프로토콜(TCP,UDP)에 의해 이용됨 - 어떤 ICMP 메시지는 사용자 프로세스에게 되돌려 주는 에러 메시지 생성 - ICMP 메시지는 IP 데이터그램으로 전송 - ICMP 공식 규격:RFC 792(Postel 1981b) < IP 데이터그램에 캡슐화된 ICMP 메시지> ICMP 메시지 IP 헤더 IP 데이터 그램

6.1 ICMP 개요(ICMP 메시지 형식) 처음 4 바이트는 모든 메시지에 대해 같은 형식. 나머지 부분은 메시지에 따라 다름 - 유형(type) 필드: 15개의 서로 다른 값 - 코드(code)필드: 특정 상태를 나타내기 위한서로 다른 값 - 검사값(checksum)필드: ICMP 전체 메시지를 대상으로 IP 헤더 검사 방식과 같은 알고리즘 <ICMP 메시지> 0 7 8 15 16 31 8비트 유형 8비트 코드 16비트 검사값 유형과 코드에 따른 내용

6.2 ICMP 메시지 형식 조회(query),에러(error) 메시지를 구분하는 이유: ICMP 에러 메시지는 절대로 ICMP 에러 메시지에 대 한 반응으로 생성되지 않음 ICMP 에러메시지 송신측:IP 헤더와 ICMP 에러 발생의 원인이 된 IP 데이터그램의 처음 8 바이트가 포함 ICMP 에러 메시지 수신측:특정 프로토콜 또는 특정 사용자 프로세스와 메시지를 연관

6.2 ICMP 메시지 형식 ICMP 메시지가 생성되지 않는 경우 (broadcast storms을 방지) 2. IP 브로드캐스트 주소나 IP 멀티캐스트 주소로 가는 데이터그램 3. 링크계층의 브로드캐스트로서 송신되는 데이터그램 4. 단편화 된 것 중 처음 부분이 아닌 데이터그램 5. 송신지 주소가 단일 호스트로 지정되어 있지 않은 데이터그램 (zero 주소,루프 백 주소,브로드 캐스트 주소,멀티 캐스트 주소)

6.3 ICMP 주소 마스크 요구와 응답 ICMP 주소 마스크 요구: 디스크 없는 시스템이 부팅시 자신의 서브넷 마스크를 얻기 위해서 사용 ICMP 요구 메시지를 브로드캐스트(RARP를 이용하여 자신의 IP주소를 얻는 방법과 유사) BOOTP 프로토콜 송신자가 식별자(identifier)와 순서번호(sequence number)를 선택 ->응답 메시지에 값이 돌아옴,송신자는 요구에 맞는 응답인지 확인 <ICMP 주소 마스크 요구와 응답 메시지> 7 8 15 16 31 유형(17또는18) 코드(0) 검사합 식별자 순서번호 12바이트 32 비트 서브넷 마스크

6.3 ICMP 주소 마스크 요구와 응답 ICMP 주소 마스크 요구를 발행해서 모든 응답을 출 력하는 프로그램 sun % icmpaddrmask 140.252.13.63 Received mask=ffffffe0, from 140.252.13.33 자기 자신 으로부터 Received mask=ffffffe0, from 140.252.13.35 bsdi로부터 Received mask=ffff0000, from 140.252.13.34 svr4로부터 svr4로부터 반환된 값이 틀린 이유: svr4는 B클래스 주소 마스크를 되돌려 주므로 서브넷 마스크가 없다고 간주

6. 3 ICMP 주소 마스크 요구와 응답 <브로드캐스트 주소로 보내진 ICMP 주소 마스크 요구> 1 0 6.3 ICMP 주소 마스크 요구와 응답 <브로드캐스트 주소로 보내진 ICMP 주소 마스크 요구> 1 0.0 8:0:20:3:f6:42 ff:ff:ff:ff:ff:ff ip 60: 2 0.00(0.00) 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff ip 46 bsdi>sun:icmp:address mask is 0xffffffe0 3 0.01(0.01) 0:0:c0:c2:9b:26 8:0:20:3:f6:42 ip 60: svr4> sun: icmp:address mask is 0xffff0000 송신 호스트(호스트 sun)가 회선상 아무것도 없더라도 ICMP 응답 메시지를 수신: 송신 호스트가 내부 루프백 메커니즘을 통하여 브로드캐스트 패킷 복사본을 수신하는 브로드캐스트의 특성 때문 svr4: 요구한 요청자에게만 응답을 보냄 bsdi: 응답을 브로드캐스트 RFC:시스템이 인정하는 주소 마스크에 대한 대행자가 아니면 주소 마스크 응답을 보내지 말아야 함

6.3 ICMP 주소 마스크 요구와 응답 <예> sun % icmpaddrmask sun received mask=ff000000, from 140.252.13.33 sun % icmpaddrmask localhost received mask=ff000000,from 127.0.0.1 <설명> 호스트 IP주소(140.252.13.33)로 보내진 IP 데이터그램 -> 루프 백 인터페이스로 전달 되돌아온 주소 마스크 -> 루프 백 주소인 클래스 A 주소 (127.0.0.1)에 대응 <결과> ICMP 주소 마스크 요구 ->IP 주소와 루프 백 주소(루프백 인터페 이스로부터 수신)

6.4 ICMP 타임스탬프 요구와 응답 ICMP 타임스탬프: 어떤 시스템이 다른 시스템에게 현 재 시간을 알리고 싶을 때 UTC(Coordinated Universal Time): 오전 0시부터 경과된 시간(ms) <ICMP 타임스탬프 요구와 응답> 7 8 15 16 31 유형(17또는 18) 코드(0) 검사합 식별자 순서 번호 12 바이트 32-비트 originate 타임스탬프 32-비트 receive 타임스탬프 32-비트 transmit 타임스탬프

6.4 ICMP 타임스탬프 요구와 응답 Originate timestamp: 요청자가 메시지를 보내는 시간 Receive timestamp: 응답측 시스템의 요구를 수신한 시간 Transmit timestamp: 응답측 시스템의 응답 시간 Receive(recv)값= Transmit(xmit)값 왕복 시간(rtt)= 응답 수신 시간 - 응답 송신 시간 시간차(difference)=Received timestamp 값 - Originated timestam값 <ICMPtime 프로그램에 의해 출력된 값들의 관계> originate 요구 received transmit 응답 RTT

6.4 ICMP 타임스탬프 요구와 응답 sun % icmptime bsdi <예> sun % icmptime bsdi orig=83573336, recv=83573330, xmit=83573330, rtt=2ms difference= -6ms orig=83577987, recv=83577980, xmit=83577980, rtt=2ms difference= -7ms <설명> RTT가 정확하고 RTT의 반 이 요구 , 나머지 반이 응답에 의한 시간이라면 송신자의 시계를 조회한 호스트와 같은 시간을 갖기 위한 조정: 시간차(difference) - RTT의 반값 -> bsdi의 시계는 sun의 시계보다 7에서 8ms 만큼 늦다

6.4 ICMP 타임스탬프 요구와 응답(1) 시간과 날짜로 얻는 다른 방법 시간과 날짜로 얻는 다른 방법 1. Daytime 서비스: 현재의 시간과 날짜를 사람이 읽을 수 있는 ASCII 문자 형식(telnet 명령) time 서비스: 1900년도 1월 1일 오전 0시부터 경과한 초값을 32비트 2진값으로 날짜와 초단위 시간값 sun % telnet bsdi daytime Trying 140. 252.13. 35 Connected to bsdi. Escape character is ‘^ ]’ 처음 세줄은 telnet client의 출력이다 Web Feb 3 16:38: 33: 1993 이것은 daytime 서비스 출력이다 Connection closed by foreign host. 이것도 telnet 클라이언트 출력이다

6.4 ICMP 타임스탬프 요구와 응답(2) ms 단위의 정확성을 가진 WAN, LAN상의 모든 시스템 시간 유지 2. NTP(Network Time Protocol) 사용(RFC 1305[Mills 1992]): ms 단위의 정확성을 가진 WAN, LAN상의 모든 시스템 시간 유지 3. OSF(Open Software Foundation)의 분산 컴퓨팅 환경 (DCE:Distributed Computing Environment): 컴퓨터간의 시간에 대한 동기를 맞추기 위해서 분산 타임 서비스 (DTS:Distributed Time Service) 4. 버클리 Unix 시스템: LAN 상 시스템의 시간에 대한 동기를 맞추기 위해 timed(8) 데몬 제공

6.5 ICMP 포트 도달불가 에러 ICMP 포트 도달불가 발생: - 수신된 UDP datagram의 목적지 포트를 어떤 프로세스가 사용 하고 있어서 응답 할 수 없는 경우 - TFTP(Trivial File Transfer Protocol)클라이언트 사용 <TFTP 클라이언트 프로그램> bsdi % tftp tftp> connect svr4 8888 호스트 이름과 포트 번호를 지정 tftp> get temp.foo 파일을 가져온다 Transfer timed out 약 25초 후 tftp > quit

6.5 ICMP 포트 도달 불가 에러 <TFTP 요구에 의해 생성된 ICMP 포트 도달 불가> 1. 0.0 arp who-has svr4 tell bsdi 2 0.002050 (0.0020) arp reply svr4 is-at 0:0:c0:c2:9b:26 3 0.002723 (0.0007) bsdi.2924>svr4.8888:udp 20 4 0.006399 (0.0037) svr4>bsdi: icmp:svr4 udp port 8888 unreachable 5 5.000776 (4.9944) bsdi.2924>svr4.8888:udp 20 6 0.006399 (0.0037) svr4>bsdi:icmp:svr4 udp port 8888 unreachable 7 10.000887 (4.9966) bsdi.2924>svr4.8888:udp 20 8 10.004416 (0.0035) svr4>bsdi:icmp:svr4 udp port 8888 unreachable 9 15.001014 (4.9966) bsdi.2924>svr4.8888:udp 20 10 15.004574 (0.0036) svr4>bsdi:icmp:svr4 udp port 8888 unreachable 11 20.001177 (4.9966) bsdi.2924>svr4.8888:udp 20 12 20.004759 (0.0036) svr4>bsdi:icmp:svr4 udp port 8888 unreachable

6.5 ICMP 포트 도달불가 에러 <설명> 1번 줄: UDP 데이터그램이 svr4에 보내기 전 하드웨어 주소를 지정하 기 위한 ARP 요구를 보냄 2번 줄: ARP 응답이 돌아옴 3번 줄: UDP 데이터그램을 전송 4번 줄: ICMP 포트 도달불가 즉시 되돌아옴 5번 줄: TFTP 클라이언트는 ICMP 메시지를 무시하고 약 5초 후에 다른 UDP 데이터그램을 보냄 마지막 행 : “ UDP 20”(데이터 길이) = 2바이트(TFTP의 opcode) + 9 바이트(null로 종료된 temp.foo)+ 9바이트(null로 종료된 문자열 netascii) tcpdump의 e옵션에서 사용한 ICMP 포트 도달불가 메시지 길이 = 70바이트

6.5 ICMP 포트 도달불가 에러 ICMP의 데이터 부분 헤더 에러가 발생한 데이터그램의 IP 헤더 이더넷 헤더 UDP 데이터그램은 포트 번호의 목적지 없이 호스트간에 교환되고, 각 20바이트의 UDP 데이터그램은 특정 포트(2924)로부터 특정 포트(8888)로 전송 ICMP 에러 메시지는 에러를 발생시킨 데이터그램의 IP 헤더 다음에 적어도 처음 8바이트가 포함되어야 함 <“UDP port unreachable” 예에서 되돌아온 ICMP 메시지> IP 데이터그램 ICMP 메시지 ICMP의 데이터 부분 헤더 에러가 발생한 데이터그램의 IP 헤더 이더넷 헤더 ICMP 헤더 IP 헤더 UDP 헤더 14 바이트 20 바이트 8바이트 20 바이트 8 바이트

6.5 ICMP 포트 도달불가 에러 UDP 헤더 : 송신지와 목적지 포트 번호 사용자 프로세스와 관련시키기 위해 사용 에러를 발생시킨 데이터그램의 IP 헤더 반환 이유: ICMP의 계속되는 8바이트 내용(UDP 헤드)을 교환하는 방법을 알기 위해 프로토콜 필드가 IP헤드에 포함되기 때문 ICMP 도달불가 메시지: - 코드: 3 - 두번째 32비트 워드: 0

IP 헤드(옵션 포함) + 원래의 IP 데이터그램 데이터의 처음 8바이트 6.5 ICMP 포트 도달불가 에러 <ICMP 도달불가 메시지> 유형(3) 코드(0-15) 검사합 8바이트 사용하지 않음(0 이여야 함) IP 헤드(옵션 포함) + 원래의 IP 데이터그램 데이터의 처음 8바이트

6.5 ICMP 포트 도달불가 에러 (Tcpdump 타임 라인) <유효하지 않는 포트에 대한 TFTP 요구의 타임 라인> Svr4에게 Bsdi에 대한 응답을 부르고 있는 arp Svr4rk 0;0;c0;c2;9b:26 에 있다는 것을 나타내는 arp 응답 S Udp 20bytes ICMP:Svr4 udp port 8888 unreachable Udp 20bytes ICMP:Svr4 udp port 8888 unreachable Bsdi.2924 Svr4.8888

6.5 ICMP 포트 도달불가 에러 TFTP 클라이언트가 되돌아온 요구 메시지를 재전송 하는 이유: 하는 이유: BSD 시스템의 네트워크 프로그램에서 사용자 프로세스가 connect를 해당 소켓에서 발행하지 않으면 이 소켓 때문에 ICMP 메시지의 UDP를 사용하는 사용자 프로세스에 알릴 수 없는 사태가 발생 표준 BSD의 TFTP 클라이언트는 connect를 발행하지 않으므로 ICMP 에러가 프로세스에서 인식되지 않기 때문

6.6 4.4BSD에서 ICMP 메시지 처리 각 ICMP 메시지가 같은 구현내 처리 방법이 다른 이유: 치명적인 에러에서 정보 메시지까지 전반적인 상황을 포함하고 있기 때문 <4.4BSD에 의한 ICMP 메시지 처리 유형 참조> ICMP 메시지 처리 방법 커널 ->커널 사용자 프로세스 -> 커널에 등록된 모든 사용자 프로세스에 전달 사용자 프로세스가 없는 경우 -> 버려지거나 무시 인용부호로 된 문자열: UNIX 에러 메시지

6.7 요약 ICMP 메시지 형식 ICMP 주소 마스크 요구와 응답 ICMP 타임스탬프 요구와 응답 6.7 요약 ICMP 메시지 형식 ICMP 주소 마스크 요구와 응답 ICMP 타임스탬프 요구와 응답 ICMP 포트 도달불가 에러