DongDD's IT

Address Resolution Protocol(ARP) - ARP Operation, ARP Packet 본문

네트워크

Address Resolution Protocol(ARP) - ARP Operation, ARP Packet

DongDD 2017. 9. 5. 14:48

Address Resolution Protocol(ARP)


ARP


- Logical address로 Physical address를 알아올 수 있게 해줌

- IP address -> MAC address

-> 반대로 MAC address로 IP address를 얻어올 수 있게 해주는 프로토콜 : RARP

- ARP table에 IP와 MAC의 올바른 mapping이 필요함(static, dynamic)


ARP Operation


1) ARP Request

- 보내야 할 목적지 MAC address를 모르기 때문에 logical address를 가진 ARP packet을 broadcast로 전달함

2) ARP Reply

- ARP을 받고 destination이 자신과 일치한다면 ARP packet에 적혀있는 MAC address, IP address로 ARP Reply를 unicast로 전달함


ARP Packet


- ARP Packet은 다음과 같이 되어있음

- MAC address, IP address 주소 길이

- source, destination의 MAC address, IP address

-> Request일 겨우 destination의 MAC address는 비워둠


ARP Packet Encapsulation

- Data부분에 위에 있는 ARP Packet부분이 들어감

- Request의 경우 Destination address를 모르므로 모두 1bit인 broadcast로 전송

- Type을 통해 ARP임을 표시


ARP Package


① cache table

1) state : free(F) - 빈공간, resolve(R) - 해결됨(MAC address), pending(P) - Request 후 기다리는 상태

2) Queue : 같은 MAC address를 가진 packet을 담아둠.(queue 번호)

3) Attempt : ARP Request 요청 횟수. macimum default까지 시도

4) Time-Out : 일정 기간동안 사용하지 않는 정보를 지우기 위해 사용

5) Protocol addr : IP address

6) Hardware addr : MAC address


② ARP Module

- ARP는 다음 그림과 같은 형태로 구성되어 있음

1) Ouput-Module

- IP packet을 받을 경우 cache table을 찾아봄

- entry가 있는 경우

-> resolved인 경우 : hardware address를 가져와 전송

-> pending인 경우 : queue에 넣어놓음

- entry가 없는 경우

-> entry를 만들고 pending상태, attempts=1로 추가

-> queue를 생성하고 queue에 넣은 후 ARP request 보냄


2) Input-Module

- ARP packet을 받을 경우 cache table을 찾아봄

- entry가 있는 경우

-> entry update

-> pending 상태인 경우 : queue에 있던 모든 packet 전송

-> resolved 상태인 경우 : time-out reset

- entry가 없는 경우

-> entry 생성 후 table에 추가

- ARP Request를 받은 경우

-> ARP reply를 보냄


3) Cache-Control Module

- 주기적으로 깨어나서 cache table update

- Pending 인 경우

-> attempt를 1 증가 시키고 maximum을 넘을 경우 Free로 바꾸고 삭제

-> maximum보다 작을 경우 다시 ARP request 보냄

- Resolved 인 경우

-> time-out 값을 감소시킴

-> time-out 값이 0보다 작거나 같을 경우 Free로 바꾸고 삭제






Comments