ARPARP

Posted at 2018. 4. 11. 20:07 | Posted in 2-1학기/Network

Address Resolution Protocol

OSI 7 Layer에서 Layer 3에 위치한 프로토콜이며, MAC 주소와 IP 주소를 서로 연결하는 용도로 사용한다.



■논리주소 

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

- 전세계적으로 유일한 주소

- 소프트웨어상에 구현

- IP주소

- 32비트 길이 (x.x.x.x)


■물리주소

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

- 로컬 주소 (local address)

- 로컬에서만 유일하면 됨

- 보통 하드웨어로 구현

- 호스트나 라우터내에 설치된 NIC에 들어있음. (ex: 랜카드 등)

- MAC주소를 의미 48비트 (x-x-x-x-x-x)


■정적 변환(Static mapping)

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

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

- 필요시 테이블 검색

- 물리 주소가 변경될 경우 정적 테이블의 갱신으로 인한 오버헤드가 발생.

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


※. 오버헤드 : 어떤 처리를 하기위해 간접적으로 들어가는 시간, 메모리를 의미


■동적 변환(Dynamic mapping)

- 물리 주소와 논리 주소 쌍 중 하나만 알면 프로토콜을 이용하여 다른 하나를 알아냄.

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

- RARP : 물리 주소를 논리 주소로 변환(현재 잘 안씀)


IP의 데이터그램헤더에는 TCP, UDP, IGMP, ICMP가 실려서 전송됨. (캡슐화)


IGMP - Internet Group Message Protocol


로컬 네트워크에서 멀티캐스트 그룹에 속해있는 호스트들을 알려주는 제어 프로토콜

질의 , 응답을 통한 주기적인 확인.

로컬 서브네트워크를 벗어나면 폐기된다.


ICMP - Internet Control Message Protocol


오류/제어 메시지를 보고하는 형식의 프로토콜 . Tcp/ip 소프트웨어가 메시지를 처리한다.

오류를 보고하기만 하고 수정을 할 수는 없음.


■ARP 패킷 유형

- ARP Request : IP주소에 매핑되는 MAC 주소요청 (Boradcast)

- ARP Reply : 목적지 MAC 주소를 전송 (Unicast)


■ARP 프로토콜의 사용 예

- 웹브라우저로 사이트 접속 과정

- DNS 접근 시도를 위해 ARP Request 패킷 전송

- 목적지 IP에 접근을 위해 ARP Request 패킷 전송


■ARP 패킷의 내용

- 송신자

- 물리주소와 논리주소(MAC / IP)

- 수신자

- 물리주소와 논리주소(MAC / IP)


■ARP 캐시

- 수집된 IP주소와 이데 대응되는 물리주소 정보를 각 IP호스트에 테이블 형태로 메모리에 저장

- 다음 요청 패킷은 ARP 캐시에서 읽어 사용.

- DOS 모드에서 확인

-arp -a : 캐시된 모든 주소를 보여줌

-arp -d : 캐시된 모든 주소를 삭제함 



Ü Hardware Type (2byte)
w네트워크 유형을 나타내며, HLen 필드의 설정 제어
Ÿ1: 이더넷, 2: IEEE 802.3, 3: LocalTalk, 4: Frame-relay
Ü Protocol Type (2byte)
w상위계층 프로토콜 타입, Ethertype과 동일
Ÿ0x0800이면 IP 프로토콜
Ü HLen(Hardware Length) (1byte)
w물리 주소의 길이를 byte 단위로 정의
Ÿ이더넷의 경우 이 필드 값 :  6
Ü PLen(Protocol Length) (1byte)
w논리 주소의 길이를 byte 단위로 정의
Ÿ.수신자의 IP 주소 크기 : 4
Ü Operation 코드 (2byte)
wARP 패킷의 유형을 나타냄
Ÿ1: ARP Request, 2: ARP Reply, 3: RARP Request, 4: RARP Reply
Ü SHA(Sender Hardware Address) (6byte)
w송신자의 물리주소(MAC)
Ü SPA(Sender Protocol Address) (4byte)
w송신자의 논리주소(IP)
Ü THA(Target Hardware Address) (6byte)
w목적지의 물리주소(MAC)
w요청의 경우 물리주소를 알지 못하므로 필드의 값은 0
Ü TPA(Target Protocol Address) (4byte)
w목적지의 논리주소(IP)

■ARP 캡슐화 과정

(Type : 0x0806 [ARP] )

1. 송신자는 타깃 IP 주소를 알고있다.
2. IP가 ARP에게 ARP 요청 메시지 생성 요청
3. 데이터 링크층에 전달되면 발신지 주소는 송신자의 물리주소, 목적지 주소는 
   물리 브로드캐스트 주소로 하는 프레임에 캡슐화
4. 모든 호스트나 라우터가 프레임을 수신하여 자신의 ARP에 전달
5. 타겟 시스템을 자신의 물리 주소를 포함한 ARP 응답 메시지 송신(Unicast)
6. 송신자는 응답 메시지를 받고 타겟 시스템의 물리 주소를 알게된다.
7. IP 데이터그램은 프레임으로 캡슐화 되어 목적지에 유니캐스트

■ARP가 사용되는 네 가지 경우
1. 송신자가 호스트로서 같은 네트워크상에 다른 호스트에 패킷 전송(논리주소는 목적지 IP)
2. 송신자가 호스트이고 다른 네트워크상에 있는 다른 호스트에게 패킷 전송(논리주소는 라우터의 IP)
3. 송신자는 다른 네트워크상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 next hop라우터의 IP)
4. 송신자는 같은 네트워크상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 목적지 IP)

■프록시 ARP
- 서브넷팅의 효과를 만들기 위해 사용한다.
- 라우터가 특정 호스트에 대한 ARP 요청을 대신 응답하는 것이다.         
- 프록시 ARP 기능을 수행하는 라우터가 호스트의 집합 중 한 호스트의 물리 주소를 찾는
  요구를 받으면 라우터는 자신의 물리주소를 ARP 응답 메시지를 통해 알린다.

'2-1학기 > Network' 카테고리의 다른 글

UDP패킷분석  (0) 2018.05.03
IP 패킷 분석  (0) 2018.04.16
ARP 프로토콜 문제  (0) 2018.04.09
GCC로 C언어 프로그래밍  (0) 2018.03.21
리눅스 명령어  (0) 2018.03.21
//