일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SQL
- LOB
- 정보보안기사
- webhacking.kr
- 운영체제
- 워게임
- Operating System
- system hacking
- Payload
- OS
- Shell code
- Spring
- 웹해킹
- System
- hacking
- 정보처리기사 실기
- Spring Framework
- webhacking
- Lord of BOF
- pwnable
- 해킹
- 정보보안기사 실기
- BOF
- Buffer Overflow
- Pwnable.kr
- stack overflow
- Spring MVC
- 네트워크
- PWN
- wargame
- Today
- Total
DongDD's IT
Address Resolution Protocol(ARP) - ARP Operation, ARP Packet 본문
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로 바꾸고 삭제