41
1 논리주소와 물리주소의 차이점 ARP필요성 ARP사용되는 경우 ARP 패키지의 구성요소 모듈 Objectives Chapter 8 ARP

ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

1

• 논리주소와 물리주소의 차이점

• ARP의 필요성

• ARP가 사용되는 경우

• ARP 패키지의 구성요소 및 모듈

Objectives

Chapter 8

ARP

Page 2: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

2

목 차

• 주소 변환

• ARP 프로토콜

• ARP 패키지

Page 3: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

3

주소 변환

8.1

Page 4: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

4

8.1 주소 변환

인터넷에서 사용하는 주소

1. 논리 주소(logical address)

호스트나 라우터가 사용하는 네트워크 레벨 주소

전세계적으로 유일한 주소

IP 주소

32 비트 길이

2. 물리 주소(physical address)

로컬 네트워크에서 유효한 주소

로컬 주소(local address)

로컬에서만 유일하면 됨

보통 하드웨어로 구현

호스트나 라우터내에 설치된 NIC에 들어 있음

Page 5: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

5

8.1 주소 변환 (계속)

인터넷에서 사용하는 주소 (계속)

호스트나 라우터로 패킷을 전달하기 위해 논리 및 물리 주소가 모두 필요

논리 주소를 물리 주소로 변환 또는 그 반대가 필요

정적 또는 동적 변환 가능

Page 6: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

6

8.1 주소 변환 (계속)

정적 변환(static mapping)

논리 주소와 물리 주소 연관 테이블 생성

네트워크상의 각 시스템에 저장

필요 시 테이블 검색

물리 주소가 변경될 경우 정적 테이블의 주기적인 갱

신으로 인한 오버헤드

(NIC 변경, 이동 컴퓨터의 네트워크 이동 등)

Page 7: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

7

8.1 주소 변환 (계속)

동적 변환(dynamic mapping)

물리 주소와 논리 주소 쌍 중 하나만 알면 프로토콜을

이용하여 다른 하나를 알아냄

ARP : 논리 주소를 물리 주소로 변환

RARP : 물리 주소를 논리 주소로 변환

Page 8: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

8

8.1 주소 변환 (계속)

ARP와 RARP

Address Resolution Protocol

Reverse Address Resolution Protocol

Page 9: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

9

ARP 프로토콜

8.2

Page 10: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

10

8.2 ARP 프로토콜

TCP/IP 프로토콜에서 ARP의 위치

Page 11: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

11

8.2 ARP 프로토콜 (계속)

ARP 동작

Page 12: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

12

8.2 ARP 프로토콜 (계속)

ARP 패킷 형식

Page 13: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

13

8.2 ARP 프로토콜 (계속)

Hardware type : 네트워크 유형 정의(이더넷 : 1)

Protocol type : 프로토콜 정의(IPv4 : 080016)

Hardware length : 물리 주소의 바이트 단위 길이

Protocol length : 논리 주소의 바이트 단위 길이

Operation : 패킷 유형-ARP 요청(1), ARP 응답(2)

Sender hardware address : 송신자 물리 주소

Sender protocol address : 송신자 논리 주소

Target hardware address : 타겟 물리 주소

Target protocol address : 타겟 논리 주소

Page 14: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

14

8.2 ARP 프로토콜 (계속)

ARP 패킷의 캡슐화

Page 15: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

15

8.2 ARP 프로토콜 (계속)

ARP 프로세스의 캡슐화 동작 과정

1. 송신자는 타겟 IP 주소를 알고있다

2. IP가 ARP에게 ARP 요청 메시지 생성 요청

(송신자 물리 주소, IP 주소; 타겟 IP 주소, 물리 주소(O))

3. 데이터링크 계층에 전달되면 발신지 주소는 송신자의

물리주소, 목적지 주소는 물리 브로드캐스트 주소로

하는 프레임에 캡슐화

4. 모든 호스트나 라우터가 프레임을 수신하여 자신의

ARP에 전달

Page 16: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

16

8.2 ARP 프로토콜 (계속)

5. 타겟 시스템은 자신의 물리 주소를 포함한 ARP 응답

메시지 송신(유니케스트)

6. 송신자는 응답 메시지를 받고 타겟 시스템의 물리 주

소를 알게 된다

Page 17: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

17

8.2 ARP 프로토콜 (계속)

ARP 서비스가 사용되는 4 가지 경우

1. 송신자가 호스트로서 같은 네트워크상에 다른 호스트에 패킷 전송(논리주소는 목적지 IP주소)

2. 송신자가 호스트이고 다른 네트워크상에 있는 다른

호스트에게 패킷 전송(논리 주소는 다음 홉 라우터의

IP 주소)

3. 송신자는 다른 네트워크상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 다음 홉 라우터의 IP 주소)

4. 송신자는 같은 네트워크 상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 목적지 IP 주소)

Page 18: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

18

8.2 ARP 프로토콜 (계속)

ARP 서비스가 사용되는 4 가지 경우 (계속)

Page 19: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

19

8.2 ARP 프로토콜 (계속)

Example 1

IP 주소가 130.23.43.20이고 물리주소가 B2:34:55:10:22:10 인

호스트가 IP 주소가 130.23.43.25이고 물리주소가

A4:6E:F4:59:83:AB 인 호스트에게 보낼 패킷이 있다. 두

호스트는 같은 네트워크에 있다. 이더넷 프레임에 캡슐화되는

ARP 요청과 응답 패킷을 보여라.

Page 20: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

20

8.2 ARP 프로토콜 (계속)

Solution (ARP Request)

Page 21: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

21

8.2 ARP 프로토콜 (계속)

Solution (ARP Reply)

Page 22: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

22

8.2 ARP 프로토콜 (계속)

Proxy ARP

서브넷팅 효과를 얻기 위해서 사용

Page 23: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

23

ARP 패키지

8.4

Page 24: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

24

8.4 ARP 패키지

구성 모듈

캐쉬 테이블

출력 모듈

입력 모듈

캐쉬 제어 모듈

Page 25: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

25

8.4 ARP 패키지 (계속)

ARP 구성 요소

Page 26: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

26

8.4 ARP 패키지 (계속)

캐쉬 테이블

송신자가 같은 목적지에 여러 개의 IP 데이터그램을 보

낼 때, 매번 ARP 프로토콜을 사용하는 것은 비 효율적

호스트나 라우터가 IP 주소에 해당되는 물리 주소를 수

신하면 캐쉬 테이블에 저장

그런 다음 같은 수신자로 보내지는 데이터그램에 사용

C:\>arp -a

Page 27: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

27

8.4 ARP 패키지 (계속)

캐쉬 테이블의 엔트리 구성

상태(State) : FREE(수명만료), PENDING(요청중), RESOLVED

하드웨어 유형(Hardware type) :

하드웨어 길이(Hardware length) :

프로토콜 길이(Protocol length) :

인터페이스 번호(Interface number) :

큐 번호(Queue number) : 주소 변환을 기다리는 패킷의 큐 번호

시도(Attempt) : ARP 요청 횟수

타임아웃(Time-out) : 엔트리 수명

하드웨어 주소(Hardware address) : 목적지 하드웨어 주소

프로토콜 주소(Protocol address) : 목적지 IP 주소

Page 28: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

28

8.4 ARP 패키지 (계속)

출력 모듈 1. Sleep until an IP packet is received from IP software.

2. Check cache table for an entry corresponding to the destination of this IP packet.

3. If (found)

1. If (the state is RESOLVED)

1. Extract the value of the hardware address from the entry.

2. Send the packet and the hardware address to data link layer.

3. Return.

2. If (the state is PENDING)

1. Enqueue the packet to the corresponding queue.

2. Return.

Page 29: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

29

8.4 ARP 패키지 (계속)

4. If (not found)

1. Create a cache entry with state set to PENDING and

ATTEMPTS set to 1.

2. Create a queue.

3. Enqueue the packet.

4. Send an ARP request.

5. Return.

Page 30: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

30

8.4 ARP 패키지 (계속)

입력 모듈

1. Sleep until an ARP packet(request or reply) arrives.

2. Check the cache table to find an entry corresponding to this ARP packet.

3. If (found)

1. Update the entry.

2. If (the state is PENDING)

1. While the queue is not empty

1. Dequeue one packet.

2. Send the packet and the hardware address to data link layer.

2. Change the state to RESOLVED.

Page 31: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

31

8.4 ARP 패키지 (계속)

4. If (not found)

1. Create an entry.

2. Add the entry to the table.

5. If (the packet is a request)

1. Send an ARP reply

6. Return.

Page 32: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

32

8.4 ARP 패키지 (계속)

캐쉬 제어 모듈 1. Sleep until the periodic timer matures.

2. For every entry in the cache table

1. If (the state is FREE)

1. Continue.

2. If (the state is PENDING)

1. Increment the value of attempts by 1.

2. If (attempts greater than maximum)

1. Change the state to FREE.

2. Destroy the corresponding queue.

Page 33: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

33

8.4 ARP 패키지 (계속)

3. Else

1. Send an ARP request.

4. Continue.

3. If (the state is RESOLVED)

1. Decrement the value of time-out by the value of elapsed time.

2. If (time-out less than or equal to zero)

1. Change the state to FREE.

2. Destroy the corresponding queue

3. Return.

Page 34: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

34

8.4 ARP 패키지 (계속)

ARP 예제

가정 : 초기 Time-out 값 - 900, 최대 시도 횟수 - 5

캐쉬 테이블의 초기 값

State Queue Attempt Time-out Protocol Addr. Hardware Addr.

R 5 900 180.3.6.1 ACAE32457342

P 2 2 129.34.4.8

P 14 5 201.11.56.7

R 8 450 114.5.7.89 457342ACAE32

P 12 1 220.55.5.7

F

R 9 60 19.1.7.82 4573E3242ACA

P 18 3 188.11.8.71

Page 35: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

35

8.4 ARP 패키지 (계속)

Example 2

ARP 출력 모듈은 IP 계층으로부터 목적지 주소가

114.5.7.89인 IP 데이터그램을 수신

캐쉬 테이블 검사 결과 : RESOLVED 상태

하드웨어 주소(457342ACAE32)와 패킷을 데이터링크계

층에 전달

캐쉬 테이블에 변화 없음

Page 36: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

36

8.4 ARP 패키지 (계속)

Example 3

20초 후 출력 모듈이 목적지 주소가 116.1.7.22인 IP 데이

터그램 수신

캐쉬 테이블 검사 결과 엔트리가 없음

새 엔트리를 테이블에 추가

엔트리 상태 : PENDING, Attempt : 1

출력 모듈은 목적지에 해당하는 큐 생성

패킷을 큐에 넣고 데이터링크계층을 통하여 ARP 요청

을 목적지에 전달

Page 37: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

37

8.4 ARP 패키지 (계속)

예제 3의 갱신된 캐쉬 테이블

State Queue Attempt Time-out Protocol Addr. Hardware Addr.

R 5 900 180.3.6.1 ACAE32457342

P 2 2 129.34.4.8

P 14 5 201.11.56.7

R 8 450 114.5.7.89 457342ACAE32

P 12 1 220.55.5.7

P 23 1 116.1.7.22

R 9 60 19.1.7.82 4573E3242ACA

P 18 3 188.11.8.71

Page 38: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

38

8.4 ARP 패키지 (계속)

Example 4

15초 후 입력 모듈은 목적지 주소가 188.11.8.71인 ARP

패킷 수신

테이블 검사, 주소가 있음을 확인

타겟 하드웨어 주소 E3457342ACA 삽입

입력 모듈은 큐 18에 접근하여 큐에 있는 모든 패킷을

데이터링크계층에 보낸다

Page 39: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

39

8.4 ARP 패키지 (계속)

예제 4의 갱신된 캐쉬 테이블

State Queue Attempt Time-out Protocol Addr. Hardware Addr.

R 5 900 180.3.6.1 ACAE32457342

P 2 2 129.34.4.8

P 14 5 201.11.56.7

R 8 450 114.5.7.89 457342ACAE32

P 12 1 220.55.5.7

P 23 1 116.1.7.82

R 9 60 19.1.7.82

R 18 900 188.11.8.71 E34573242ACA

Page 40: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

40

8.4 ARP 패키지 (계속)

Example 5

25초 후 캐쉬 제어 모듈이 모든 엔트리 갱신

해결된 4개의 엔트리를 60씩 감소

타임아웃이 0인 엔트리의 상태를 FREE

Attempt 값 1씩 증가

Attempt 필드 값이 최대값 보다 큰 경우, 상태는 FREE,

해당 큐를 없애고 원래의 발신지에 ICMP 메시지를 보

낸다

Page 41: ARP - KOCWcontents.kocw.net/KOCW/document/2016/bufs/limintaek/8.pdf · 2016-09-05 · 8.2 arp 프로토콜 (계속) arp 프로세스의 캡슐화 동작 과정 1. 송신자는 타겟

41

8.4 ARP 패키지 (계속)

예제 5의 갱신된 캐쉬 테이블

State Queue Attempt Time-out Protocol Addr. Hardware Addr.

R 5 840 180.3.6.1 ACAE32457342

P 2 3 129.34.4.8

F

R 8 390 114.5.7.89 457342ACAE32

P 12 2 220.55.5.7

P 23 2 116.1.7.82

F

R 18 875 188.11.8.71 E34573242ACA