강의 PPT - 수원과학대학교 정보통신과

Download Report

Transcript 강의 PPT - 수원과학대학교 정보통신과

컴퓨터 네트워크 7주차
수원과학대학교 정보통신과
오늘의 목표
• ARP 를 이해한다.
• RARP 를 이해한다.
• ICMP 를 이해한다.
• IGMP 를 이해한다.
2
7.1 ARP
• 주소 변환 프로토콜 (ARP: address resolution protocol)
– IP 주소를 MAC 주소로 변환, MAC 주소를 알아야 전송이 가능
• ARP operation
IP 주소 141.23.56.23을
갖고 있는 호스트의
MAC 주소를 알려달라고
메시지를 브로드캐스팅
해당 호스트가
자신의 물리주소는
A46EF45983AB라고 응답
3
ARP Packet
4
ARP 패킷 형식
• HTYPE (hardware type) – LAN의 유형, 예로 이더넷의 경우는 1
• PTYPE (protocol type) – ARP를 사용하는 네트워크 프로토콜을 정
의, 예로 IPv4의 경우는 0x0800
• HLEN (hardware length) – 물리주소의 길이, 이더넷의 경우는 6
• PLEN (protocol length) - 네트워크주소의 길이, IPv4의 경우는 4
• OPER (operation) – ARP 요청인 경우는 1, 응답인 경우는 2
• SHA (sender hardware address) – 송신 호스트의 물리주소
• SPA (sender protocol address) – 송신 호스트의 네트워크 주소
• THA (target hardware address) – 수신 호스트의 물리주소
• TPA (target protocol address) – 수신 호스트의 네트워크 주소
5
Encapsulation of ARP Packet
• ARP 패킷은 데이터링크층 프레임에 캡슐화
(encapsulation)됨
– 이더넷 프레임의 type 필드는 0x0806으로 전송되는
데이터가 ARP임을 나타냄
6
ARP 헤더의 값 – 예제 7.1
브로드캐스팅
물리주소 사용
수신호스트의
물리주소는
0으로 채워서
보냄
FFFFFFFFFFFF
0001
자신의 물리
주소
자신의 물리
주소로 응답
7
7.2 RARP
• Reverse Address Resolution Protocol (역
주소 변환 프로토콜)
• 물리주소에 대응되는 IP 주소를 알아낼 때
사용
• 과거 디스크가 없는 시스템이 네트워킹을
하기 위해 IP 주소가 필요할 때 외부 서버
로부터 받아오기 개발됨
• 현재는 보다 기능이 풍부한 BOOTP나
DHCP로 역할이 대체되어 사용되지 않음
8
7.3 ICMP
• IP의 단점
– 여러가지 이유에 의해 패킷이 폐기되어도 발신지에게 그 사실을 통보할
수단을 보유하고 있지 않음
– 다른 라우터나 호스트의 상태를 파악하기 위한 방법 부재
• ICMP (internet control message protocol)
– 위 2가지 단점을 보완하기 위한 IP의 보조프로토콜
– 네트워크층 프로토콜이나 IP 패킷에 캡슐화되어 전달됨
IP 헤더의 protocol 필드 값은 1
9
ICMP 메시지 유형
분류
오류 보고
메시지
질의 메시
지
Type
3
4
5
11
12
8 또는 0
10 또는 9
15 또는 14
17 또는 18
내용
목적지 도달 불가능
송신지 데이터 전송 억제
방향 재지정
시간 초과
매개변수 문제
에코 요청 또는 응답
라우터 정보 요청 및 광고
타임 스탬프 요청 및 응답
주소 마스크 요청 및 응답
10
ICMP 메시지 형식
Type (1 byte)
Code (1 byte)
Checksum (2 bytes)
Type과 code에 따라 내용이 다름
• Type – ICMP 메시지 타입
• Code – 특정 메시지에 대한 세부 타입
• Checksum – 전체 메시지 내용에 대한 16비트 checksum
11
7.3.1 ICMP 오류 보고 메시지
• ICMP 오류 보고의 특징
– 오류 메시지는 최초 송신지에게 전달된다.
– 오류의 종류
• 목적지 도달 불가, 송신지 억제, 시간경과, 매개변수 문제, 재지정
– 오류가 보고되지 않는 경우
• ICMP 오류 메지지를 전달하는 데이터그램에 오류가 발생할 때
• 단편화된 첫번째 데이터그램이 아닌 데이터그램에 오류가 발생할
때
• 멀티캐스트 주소를 가진 데이터그램에 오류가 발생할 때
• 127.0.0.0이나 0.0.0.0과 같은 특별한 주소를 가진 데이터그램에 오
류가 발생할 때
– 오류 메시지의 데이터 부분에는 원래 데이터그램의 IP 헤더와 데
이터 중 처음 8바이트(TCP 나 UCP 포트번호가 포함된 TCP 헤더
의 일부나 UDP 헤더)가 포함됨
12
목적지 도달 불가 (Desitnation Unreachable) 메시지
• 라우터나 호스트가 데이터그램을 라우팅하거나 배달할
수 없을 때 데이터그램을 폐기하고, 송신지 호스트에게
“ICMP Destination Unreachble”(목적지 도달 불가) 메시
지를 보냄
• 코드 필드에 16개의 오류 코드를 기록하여 오류 원인을
표시함
– 표 9.6 참고
Type (0x03)
Code (0x00 ~
0x0F)
Checksum
Unused (Must be zero)
IP header + First 64 bits of datagram
13
발신지 억제 (Source Quench) 메시지
• 라우터나 호스트에서 처리할 수 있는 속도 이상의 데이터그램이 계
속 유입되어 버퍼의 용량를 초과하게 되면 데이터그램이 폐기되는
데 이때 이 메시지를 발신 호스트로 보낸다.
• 이 메시지를 받은 발신 호스트는 발신 속도를 일시적으로 떨어뜨린
후 다시 서서히 올리는 데 이 메시지가 또 수신되면 다시 속도를 떨
어뜨림으로써 흐름제어를 제공한다.
Type (0x04)
Code (0x00)
Checksum
Unused (All zero)
IP header + First 64 bits of datagram
14
시간 초과 (Time Exceeded) 메시지
• 데이터그램이 라우터를 통과할 때마다 TTL 필드값이 1씩 줄어드는
데 이 필드가 0이되면 라우터는 이 데이터그램을 폐기하고 폐기 내
역을 송신 호스트에게 통보한다 (Code 필드값 = 0).
• 또한 단편이 손실되어 재조립 시간이 타임 아웃되었을 경우도 이 메
시지가 송신호스트에게 전달된다 (Code 필드값 = 1).
• 시간초과 메시지를 이용한 대표적인 응용: traceroute (Windows:
tracert)
Type (0x0B)
Code (0x00 or
0x01)
Checksum
Unused (All zero)
IP header + First 64 bits of datagram
15
traceroute
목적지까지의 경로상에 위치한 라우터들의 주소를 알아낼 수 있다.
16
매개변수 문제 (Parameter Problem) 메시지
• 라우터나 호스트는 데이터그램의 IP 헤더 매개변수에 오류가 있을
경우 데이터그램을 폐기하고 parameter problem 메시지를 송신지
로 보냄
• 포인터 필드값은 오류가 있는 위치를 가리킨다.
• 코드 필드
– 0x00: 헤더의 필수 필드에 오류가 있다.
– 0x11: 헤더의 옵션 필드에 오류가 있다.
Type (0x0C)
Code (0x00 or
0x01)
Checksum
Pointer
Unused (All zero)
IP header + First 64 bits of datagram
17
재지정 (Redirect) 메시지 (1)
• 경로 재지정 메시지로 라우터가 목적지 네트워크에 대해
더 좋은 경로가 있다는 것을 호스트에게 알려줌
• 재지정의 예
18
재지정 메시지 (2)
• 코드값에 따라 재지정 정보가 결정됨
Type (0x05)
Code (0x00 ~
0x03)
Checksum
Unused (All zero)
IP header + First 64 bits of datagram
Code value
Meaning
0
네트워크 지정 경로의 재지정 (지금은 사용
안 함)
호스트 지정 경로의 재지정
특별한 서비스 유형에 기반한 네트워크
지정 경로 재지정
특별한 서비스 유형에 기반한 호스트 지정
경로 재지정
1
2
3
19
3.7.2 ICMP 질의 메시지
• 네트워크 문제 진단 목적
• 질의 메시지의 종류
20
에코요청과 응답 (Echo Request and Reply) 메시지
• 원격 네트워크나 호스트에 도달할 수 있는지를 테스트 하기 위한 것.
• ICMP 에코 요구(Type&Code:0x0800) 메시지를 받은 원격 라우터나
호스트는 ICMP 에코 응답(Type&Code:0x0000)을 사용하여 수신된
메시지의 내용을 그대로 송신지로 보내준다.
• 전형적인 예: ping
• 송신측은 identifier와 sequence number에 ping 메시지마다 서로 다
른 값을 부여함으로써 각 ping에 대한 응답메시지를 구별한다.
Type (8 or 0)
Code (0)
Checksum
Identifier
Sequence number
Optional data
21
타임스탬프 요청과 응답 메시지
• 어떤 시스템이 다른 시스템에게 현재 시간을 알아보고자 할 때 사용
된다. 이렇게 알아낸 시간 정보는 round-trip delay와 혼잡도를 측정
할 때 사용한다. 요청하는 시스템은 originate timestamp 필드에 송
신시간을 적어 보내고, 요청받은 시스템은 receive timestamp에 수
신시간을 그리고 transmit timestamp에 응답을 전송하는 시간을 적
어 보낸다.
• 왕복시간(round-trip delay) = (응답을 받은 시간 – transmit time
stamp) + (receive timestamp – original timestamp)
22
주소 마스크 요청과 응답 메시지
• 디스크가 없는 시스템이나 자신의 서브넷
마스크를 특별히 요청하고자 호스트가 사
용한다. 라우터가 보통 이 메시지에 응답
한다.
Type (0x11 or 0x12)
Code (0x00)
Checksum
Sequence number
Identifier
Subnet Mask
23
라우터 정보 요청과 광고 메시지
• 호스트가 자신의 네트워크에 연결된 라우터의 주소 및
라우터의 정상동작을 알고자 할 때 발송
• 라우터 요청(router solicitation) 메시지 형식
• 라우터 광고(router advertisement) 메시지 형식
24
7.4 IGMP
• IGMP란?
– Internet Group Management Protocol
– 멀티캐스트 패킷을 라우팅하는 프로토콜이 아니라, IP
멀티캐스트 그룹의 소속원을 관리하는 프로토콜
– IP 멀티캐스트 그룹 – 특정 멀티캐스트 주소를 가진
IP 패킷을 주고받을 수 있는 호스트나 라우터 집단
• 멀티캐스트 라우터(mrouter)
– 멀티캐스트 패킷을 보내주고, 멀티캐스트 그룹을 관
리하는 라우터
– 멀티캐스트 그룹을 관리하는 프로토콜 – IGMP
– 멀티캐스트 데이터를 전달하는 프로토콜 - IP
25
7.4.2 IP 멀티캐스팅의 특징
• 멀티캐스트 그룹의 멤버십은 동적이다.
• 멀티캐스트 그룹의 크기 제한은 없다.
• 한 멀티캐스트 그룹에 속하는 호스트들이 여러 네트워크
에 산재해 있을 수 있다.
• 호스트는 멀티캐스트 그룹에 속하지 않고도 멀티캐스트
패킷을 보낼 수 있다.
• 호스트가 멀티캐스트 패킷을 받으려면 해당 응용 프로그
램이 이를 IP에게 알려주어야, 이더넷의 주소를 프로그래
밍하여 원하는 IP 멀티캐스트 주소에 대응하는 MAC 주
소의 패킷을 받을 수 있음.
26
7.4.3 멀티캐스트 레벨
• 레벨 0: 멀티캐스트 패킷을 받지도 보내지
도 않음
• 레벨 1: 멀티캐스트 패킷을 보내되 받지 않
음
• 레벨 2: 멀키개스트 패킷을 보내고 받을 수
있음
27
7.4.4 멀티캐스트 주소
• 클래스 D 주소
– 224.0.0.0 ~ 239.255.255.255
• 224.0.0.0 – 사용 안함
• 224.0.0.1 ~ 224.0.0.255 – 라우팅 프로토
콜용
• 224.0.1.0 ~ 238.255.255.255 – 멀티캐스트
응용 프로그램용
• 239.0.0.0 ~ 239.255.255.255 – 관리용 응
용 프로그램용
28
7.4.5 IGMP 메시지
• IPv4의 IGMP의 버전은 IGMPv2
• IGMP 메시지 종류
– 일반질의(general query), 특별질의(special query), 멤버
십보고(membership report), 탈퇴보고(leave report)
• IGMP 메시지 형식
메시지 종류
일반/특별질의-0x11
멤버십보고 – 0x16
탈퇴보고 – 0x17
질의에 응답해야 하는 시간
10분의1초 단위
오류 검사
29
7.4.6 IGMP 동작
30
호스트의 동작
• 호스트의 동작
– 프로세스가 새로운 멀티캐스트 그룹에 참여한
다면, 호스트는 멤버십 보고 메시지 발송
– 프로세스가 기존의 멀티캐스트 그룹에 참여한
다면, 호스트는 아무 것도 안함
– 멀티캐스트 그룹에서 모든 프로세스가 탈퇴하
였다면 탈퇴 보고 메시지를 발송
31
라우터의 동작
• 라우터의 동작
– 어떤 호스트가 새로운 멀티캐스트 그룹에 가입하였다
면 멤버십 보고 메시지를 다른 라우터에게 발송
– 모든 호스트가 특정 멀티캐스트 그룹에서 탈퇴하였다
면 탈퇴보고 메시지를 다른 라우터에게 발송하고 그
룹 삭제
– 그룹 삭제시 특별 질의 메시지를 보내 삭제해도 되는
지 확인
– 탈퇴보고 없이 호스트가 종료되면 멀티캐스트 그룹에
계속 남기 때문에 주기적으로 일반 질의 메시지를 보
내 확인
32
IGMP 지연 응답의 예
33
7.4.7 캡슐화
34
이더넷의 멀티캐스트용 물리주소 할당
35
멀티캐스트 IP 패킷의 터널링
36
7.4.8 IP 멀티캐스팅 활용
• 파일 전송
• 음성/화상 회의
• 멀티캐스팅 방송
37