- Today
- Total
프로그래밍 농장
TCP / IP 프로토콜 [ ARP (Address Resolution Protocol) ] 본문
- ARP
IP-to-MACaddress mapping을 사용: IP-toMAC :내가 알고싶은 IP를 사용하는 device의 MAC주소를 알고자할떄 사용
-> IP 와 MAC주소에 대한 address mapping을 담당하는 프로토콜이다.
= 타겟의 ip주소를 알고있을떄, 타겟ip에 mapping 되는 mac주소를 알고자할떄
- ARP 계층상위치가 2.5 ( Network layer)인 이유 : ip datagram생성-> frame으로 incapsulation하기전에 arp 프로토콜을 호출 -> layer3작업 후 layer2작업전에 arp가 돌아가기떄문이다.
- ARP Protocol이 사용되는 4가지 환경
1 -> sender와 target(타겟)이 동일 네트워크에 존재할떄 (sender -> target)
2 -> sender가 호스트이고, 다른 네트워크로 타겟을 잡을때 (sender -> router1)
3 -> sender가 router(라우터) 일떄 (router1 -> router2) -> Next router(2)를 만들어서 포워딩 진행
4 -> sender가 router(라우터)이며, target(타겟)과 동일 네트워크에 존재할떄 (router2 -> target)
--> 최종 : target Node의 MAC주소를 정확하게 gathering .
자신의 네트워크와 동일하지 않은 타겟을 위해 라우터정보가 기록됨 (mapping table안에 기록)
-> 내가 다른 네트워크에 통신을 하려하면 현재 나의 mac주소가 시스템에 기록됨
- sender와 target(타겟) node가 동일 네트워크에 존재하는지 알수있는 방법
본인의 Network prefix값 = ip packet의 목적지 Network prefix -> 동일 네트워크.
본인의 Network prefix값 != ip packet의 목적지 Network prefix -> 동일x 네트워크.
- ARP 프로토콜 진행 순서
패킷생성-> 패킷헤더를 보면 수신자의 목적지ip주소와 소스ip주소 획득 -> 연관된 physical주소를 mapping 테이블에 lookup을 하여 mac주소를 획득 -> address mapping 테이블을 업데이트 -> 그 정보를 datalink로 전달
ARP Packet
- Hardware type(하드웨어 타입) : Ethernet : 1
- Protocol type(프로토콜 타입) : IPv4 : 0800 16
- Hardware length(하드웨어 길이) : physical length의 주소
- Protocol length(프로토콜 길이) : IP주소의 길이
- Operation : request(1) . reply(2)
ARP Packet -> 'IP datagram에 캡슐화'
ARP Operation 의 과정
1. sender가 목적의 ip주소를 알아야함
2. arp 를 호출 (request )
3. arp request를 만들기위해 목적의 ip주소를 가져옴 -> data link layer로 넘김
4. source(자신) , destination(수신자) 의 주소
5. arp request를 broadcast -> 모든 노드가 수신 -> arp request니까 arp 프로토콜 호출 , 실행
-> 정보x(응답x)시 폐기 , 자신의 mac주소에 대응(동일)하는 목적지 주소에 arp request 를 처리 ->arp reply 메세지 생성
-> unicast로 return -> ~~ -> 프레임이 encapsulation이 되도록 해줌
<두가지 mapping 방식이 존재>
- Static mapping (정적 매핑)
-> 정적으로 저장, 각각의 device에서 전부 저장 : 사용자의 ip주소(네트워크상의 identifier)를 알게됨
단점 : 인구가 많은경우에는 오버헤드가 매우 심하다.
- Dynamic mapping (동적 매핑)
-> 동적으로 저장, (실시간으로) : 위의 동적 ,오버헤드에 대한 해결책 -> 필요할떄만 사용
-> 마찬가지로 통신하고자 하는 상대방의 ip주소를 알게됨 / ARP 프로토콜 사용 / RARP 프로토콜 (현재사용 x)
RARP 프로토콜을 안쓰는이유 : ip주소가 글로벌 스탠다드가 됐기때문에, 기본으로 mac주소를 쓰지않아서.
ARP프로토콜이 필요한 이유 : 해당하는 device에 보낼떄마다 필수적이다. ip에 대한 mac주소에 대한 mapping을 알아야함. -> packet을만들고 destination , source 주소가 들어가는데 frame header밖에 못만든다. -> arp 프로토콜 필요
-> arp를 통해서 목적지의 mac주소를 획득할수있기때문이다. (기능적으로 심플)
[ ARP프로토콜의 시작 : 전송하려는 IP datagram의 packet , 수신자의 ip주소를 알고있을떄 시작 ]
frame으로 만드려면 반드시 사용자의 source MAC 과 수신자의 MAC주소( Physical address)를 알아야한다.
- Logical address ( == IP address )
-> 라우팅과 포워딩을 위해 사용 / globally 사용 / 32bit의 주소길이 / 식별자로서의 역할 / 네트워크 디바이스들이 ㅅ로의 식별자가 되는 역할을 하게해줌.
- Physical address ( ==MAC address )
-> one hop / device -device / hardware에 implement / 48 bits
Example 8.1
sender와 target이 동일 네트워크에 있다는것을 아는 방법 : 32bit의 IPv4 프로토콜 / ethernet / ~ 등 네트워ㅓ크 환경 이 동일
Proxy ARP
-> 장점 : 내가 request를 보냈을떄 reply가 빠름
-> 자신의 arp address mapping table을 보고 관련된 정보가 있는 node가 대신해서 보내주는것
--> 잘안쓰임
'TCP-IP 프로토콜' 카테고리의 다른 글
TCP / IP 프로토콜 [ TCP / UDP ] (0) | 2021.06.14 |
---|---|
TCP / IP 프로토콜 [ ICMP (Internet Control Message Protocol ] (0) | 2021.06.14 |
TCP / IP 프로토콜 [ IP Protocol / Fragmentation ] (0) | 2021.06.14 |
TCP / IP 프로토콜 [ address manage / packet delivery ] (0) | 2021.06.13 |
TCP / IP 프로토콜 [ Underlying Technology ] (0) | 2021.04.19 |