우보천리 개발

[4. Link Layer] MAC Address, ARP, Switch 본문

Computer Science/네트워크

[4. Link Layer] MAC Address, ARP, Switch

밥은답 2023. 5. 8. 16:56
반응형

MAC 주소

링크 계층에서의 호스트나 라우터의 인터페이스 주소를 MAC 주소라고 한다.

MAC 주소는 48비트로 IP주소와 다르게 고정적이다. 즉 이더넷 카드가 있는 기기는 항상 같은 주소를 갖고 있다. 반면에 

IP주소는 변경 될 수 있다.

MAC의 브로드캐스트 주소는 48개의 1로 된 비트열 즉, FF-FF-FF-FF-FF-FF이다

 

IP 주소는 XX아파트 YYY동 ZZ호의 주소를 나타낸다면

MAC 주소는 해당 아파트, 동, 호에 있는 특정한 기기의 주소를 나타낸다.

 

Address Resolution Protocol(ARP)

우선 이더넷 프레임의 구조를 살펴보면 안에 '목적지 주소' 와 '출발지 주소'가 들어있다.

이 두개의 필드는 MAC 주소를 포함하는 것이기 때문에 MAC 주소를 알아야한다.

또한 실제 통신은 MAC 주소로 하는 것이기 때문에 IP 주소를 통해서 MAC 주소를 알아야 어디로 전달해야되는지 알 수 있다.

 

Host A 에서 Host B로 프레임을 전송할 때, A는 출발지 주소에 자신의 MAC 주소를 넣으면 된다.

하지만 Host B의 MAC 주소는 알지 못하는 상황이다. 이때 ARP Table을 통해서 IP 주소에 해당하는 MAC 주소를 알 수 있다.

그러나 ARP는 같은 서브넷에서의 IP주소만을 해결 할 수 있고 ARP Table에 목적지 엔트리가 없는 경우 채워넣어야한다.

 

ARP 테이블의 엔트리를 채워넣기 위해서는 ARP 패킷을 통해 ARP 질의를 하여 채워넣는다.

ARP Request에 IP주소에 해당하는 호스트가 응답할 수 있도록 MAC 브로드캐스트를 전송한다. 그렇게 되면 해당하지 않는 

다른 노드들은 해당 Request를 무시하고 자신의 Request인 노드는 ARP Response로 MAC 주소를 보내준다.

그러면 Request을한 호스트는 ARP 테이블에 해당 내용을 갱신하게 된다.

 

Switch

스위치는 호스트와 라우터 입장에서는 보이지 않는 투명한 존재이다. 그렇지만 중간에 스위치가 있기 때문에 호스트와 라우터의 입장에서는 항상 자신의 채널은 조용하기 때문에 계속해서 패킷을 전송할 수 있다.(Collison Domain 분리)

따라서 스위치는 자신으로 들어온 패킷을 적절한 곳으로 포워딩을 해주어야 하는데 이를 스위치 테이블을 이용한다.

 

스위치 테이블을 이용해서 들어온 패킷을 적절한 곳으로 보내는데, 스위치는 '자가학습'을 통해서 해당 테이블을 갱신한다.

초기에는 테이블에 엔트리가 하나도 없다.

그렇기 때문에 스위치는 들어오는 프레임에 대해서 1. 프레임의 MAC주소와 2. 도착한 인터페이스 3. 현재 시간을 저장한다.

 

만약 A가 B에게 프레임을 전달해야 되는 상황에, A에 주소, 도착 인터페이스는 스위치 테이블에 자가학습으로 기록이 될 것이다.

하지만 현재 B의 주소에 대한 정보는 기록이 되어있지 않아서 보낼 수 없다.

그렇기 때문에 스위치는 A를 제외한 나머지 노드에게 Flooding을 통해서 모든 노드들에게 전송한다.

이때 B를 제외한 나머지 노드들은 해당 프레임을 무시하고 B는 응답하게 된다. 그렇게 되면 다시 스위치 테이블에는 B의 MAC 주소와 도착 인터페이스의 정보가 기록이 된다.

 

이런식으로 반복이 되다보면 결국 스위치 테이블에는 모든 정보가 기록이 되게된다.

반응형
Comments