코딩일지(2024-04-21)
ARP를 분석해보았다.
ARP를 분석해보았다.
간단하게 설명하자면, 처음에는 하드웨어 타입이다. 총 2바이트로 이루어져 있고, 1이 이더넷이라는 것을 알 수 있다 (나는 학부과정이기 때문에 이더넷 외에 다른 하드웨어 타입은 쓰지 않을 것으로 보인다). 그 다음 2바이트는 프로토콜 타입이다. 0x8000이라는 것을 통해 IPv4라는 것을 알 수 있다. 그 다음에 1바이트는 하드웨어 길이로, 6바이트라는 것을 알 수 있다. 그 다음에 1바이트는 프로토콜 길이로 IPv4는 4바이트라는 것을 알 수 있다. 그 다음에 6바이트(f4 6a dd 6b 85 a5)는 송신자의 맥주소, 그다음 4바이트는 송신자의 IP주소이다. 그다음 6바이트는 타겟의 맥주소, 그다음 4바이트는 송신자의 IP주소이다.
이때 한가지 알아둘 것이, 현재 이거는 reply 부분이니까, request부분을 보면은,
이렇게 request 신호에서 타겟의 맥주소가 제로비트로 꽉 채워진 것을 알수가 있는데, ARP의 목적 자체가 타겟의 IP주소를 알고 있는 상황에서 맥주소를 알아오는 것이 목적이기 때문에 일단 상대방의 IP주소를 가지고 상대방한테 요청을 보낸 것이다. 그럼 상대방 입장에서는 맥주소를 실어서 응답을 보내주면 되는 것이다.
그리고 요청신호와 응답신호에서 한가지 알아둘게 ARP가 요청을 보낼때는 IP주소만 알고 맥주소를 모르고 있는 상태이기 때문에 일단 무지성으로 요청신호를 다 떤진다! 1대 전체통신이니까, 즉 브로드캐스트 통신을 수행하게 된다.
그리고 ARP가 응답을 보낼때는 이제 요청을 보냈던 객체를 특정할 수 있기 때문에, 1대1 통신을 하니까, 즉 유니캐스트 통신을 수행하게 된다.
여기서 핵심은 ARP가 언제 쓰이냐 인것 같다. 바로 내 컴퓨터가 IP주소만 알고 있는 상황에서는 내 근처에 있는 모든 컴퓨터들한테, 브로드캐스트 통신을 쏴버려서 어떻게든 물리적 주소를 알아오고, 그 이후에 우리의 궁극적인 목적인 개인간의 통신으로 넘어가게 된다. 이게 핵심인 것 같다.
댓글남기기