
MAC address를 사용한다.MAC address는 NIC ROM(Network Interface Card)에 있고, 16진수의 48bit를 사용한다. e.g) 1A-2F-BB-76-09-ADARP table를 사용하는데, 이를 만들기 위한 작업이 ARPARP table 를 갖고 있는데, 여기에는 IP/MAC 매핑 정보와 TTL 정보가 담겨있음. TTL 시간(보통 20분)이 지나면 IP/MAC 매핑 정보는 삭제된다.(-> 이를 soft state 라고 함)ARP table은 사실상 매핑 정보를 캐싱하고 있는 것임ARP table은 LAN 관리자의 수동적인 개입없이 어떤 노드가 통신이 필요할 때만 ARP를 통해 만들어짐node A가 node B와 통신하기를 원하지만, A의 ARP table에는 B의 MAC 주소가 없는 상황임
broadcasting 함 (-> packet의 dest MAC address는 FF-FF-FF-FF-FF-FF) 이를 LAN의 모든 노드가 받게 됨서로 다른 subnet 통신을 위한 IP routing과 LAN 에서의 통신을 위한 MAC 를 이용해 서로 다른 LAN 에서 호스트들이 어떻게 통신하는지를 정리해보자.


1. A의 Network Layer에서 IP datagram(src: A, dest: B)을 만든다.
2. A의 Link Layer에서 헤더에 MAC address(src: A, dest: R)를 넣어 캡슐화해서 frame을 만든다

3. R에 도착한 frame은 R에 의해서 decapsulate 되고, R의 Link Layer에서 자신의 MAC address(src: R, dest:B)를 이용해 캡슐화를 해서 새로운 frame을 만들어낸다.

4. B에 도착한 frame은 decapsulate 되고, Network Layer에서 자신이 dest IP면 위로 올려보낸다.

school network에 laptop을 연결해서 www.google.com을 입력한다고 가정하자.

1. laptop은 통신을 위해서 자신의 IP, first-hop router의 IP, DNS server의 IP가 필요하다
DHCP를 사용해서 자신의 IP, router의 IP, DNS server의 IP를 받아온다.
2. 구글의 IP를 알기 위해서 DNS server에 접근을 해야 하기 위해 first-hop router을 거쳐야 하는데 MAC address를 알지 못한다.
ARP를 사용해서 first-hop router의 MAC address를 받아온다.
3. DNS server로 DNS query메세지를 first-hop router로 보내고, first-hop router는 OSPF, RIP, IS-IS, BGP 등을 통해 만들어진 routing protocol을 통해 DNS server가 있는 AS로 routing을 하게 된다.
AS로 가는 과정에서 지나는 router마다 ARP를 통해서 MAC address를 받아오는 과정을 거친다.
4. DNS server는 구글의 IP 주소를 담아서 응답한다.

5. HTTP 메세지를 보내기 전 HTTP는 TCP를 사용하기 때문에 connection을 맺기 위해 3-way handshaking을 한다.
TCP socket을 열고, SYN segment 를 보낸다.ACK 메세지를 보내고, SYN 메세지를 보낸다. ACK 메세지를 보내면서 connection이 수립된다.ARP가 생략되는 이유는 이 전의 과정에서 ARP table이 만들어졌고, 이 매핑 정보는 20분간 캐싱되어 있는 상태가 유지되기 때문이다.
6. laptop은 HTTP request를 보내고, 구글은 이에 응답하면서 laptop의 화면에 page가 display된다.
출처: http://www.kocw.net/home/search/kemView.do?kemId=1046412