3.4 Link-Layer Addressing
후에 챕터 7에서 IP address를 배울 것이지만 Internet과 같은 internetwork에서는 IP address만 가지고는 목적지에 도달할 수 없다.
예를 들어, 같은 source와 destination을 가진 각 packet은 다른 경로를 이용할 수도 있는 것이다.
IP address는 이 two end(source & destination)는 정의할 수 있지만 각 packet이 어떤 링크를 타고 가야 하는지는 정의하지 못하고 있다.
MAC address
MAC address는
- link-layer address
- link address
- physical address
로도 불린다.
48bit로 16진수 12자리의 숫자로 이루어져 있다. colons ':'로 구분한다. (예 A3:34:45:11:92:CC)
packet이 network layer에서 data-link layer로 내려올 때, frame으로 encapsulized 된 상태일 것이다.
위 그림처럼 frame의 헤더에는 그림의 L2 L1과 같이 2개의 address가 담겨 있다. link의 source와 destination을 나타낸 것이다. 이 address는 frame이 다른 곳을 통과할 때마다 계속 바뀐다.
Three Types of Addressing
- Unicast
- one-to-one communication
- 목적지의 MAC 주소를 포함.
- Multicast
- one-to-many communication
- MAC주소의 첫번째에 01이 들어간다.
- 예) 01:00:5E:01:02:03
- Broadcast
- one-to-all communication
- flood broadcast MAC 주소가 F로 이루어진다.
- 항상 - FF:FF:FF:FF:FF
Address Resolution Protocol (ARP)
노드가 보낼 packet이 있을 때, 받는 쪽의 IP address를 가지고 있다.
하지만 IP address는 link를 통해 frame을 이동시키는데 도움이 되지 않는다. 다음 노드의 link-layer address가 필요하다.
이때 ARP가 도움이 된다.
ARP는 network layer의 보조 프로토콜이다.
IP address를 Link-layer address에 매핑하는 방식이다.
IP address를 받고, ARP가 이를 매핑한 후, data-link layer로 넘겨주게 된다.
그럼 ARP가 어떻게 작동되는 걸까? 아래 그림을 살펴보자.
먼저 A 노드가 N2의 IP address를 가진 노드의 Link layer address를 알고 싶다고 request를 보낸다.
B 노드가 그 N2가 자신의 IP address인 것을 알고 ARP reply packet을 A에게 보낸다. 이 안에는 MAC id가 들어있다.
다음은 ARP packet의 format인데 외울 필요까지는 없을 것 같다.
위 그림을 보면 request는 multicast frame으로, reply는 unicast frame으로 소통하는 것을 알 수가 있다.
다음으로 전체적인 구조를 보겠다. Alice가 Bob에게 datagram을 보내는 상황이다. Alice는 Bob의 Ip address는 알고 있는 상태다.
Alice
처음 Network-layer address를 받고 Network layer에서는 forwarding을 해준다. 그 결과 R1으로 경로가 설정되고, L1을 받게 된다.
data-link layer에서 Framing을 해준다. LA에서 L1으로 가겠다 하고 Frame 헤더를 설정. Physical layer를 거쳐 신호를 보낸다.
Router 1
Router 1에서도 비슷한 과정을 반복한다. L2에서 L3로 가겠다 하고 frame 헤더를 붙이고 신호를 보내준다.
Router 2
그냥 똑같다. ARP를 이용해서 LB를 구하고 Bob에게 최종적으로 신호를 보내준다.
Bob
Bob이 데이터를 성공적으로 수신한다.