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