패킷을 어디로 보내야 하는지에 대한 설정이 되어 있는 테이블
👉 "지도"와 같다고 생각할 수 있다.
netstat -r
라우팅 테이블에 적혀 있는 네트워크 대역만 찾아갈 수 있다.
👉 이 때문에 기본값 '0.0.0.0'이 있다.
다른 네트워크 대역을 찾아가는 경로에 대한 지도라고 보면 된다.
가령, A가 B와 통신하려고 할 때 '라우팅 테이블'에 B의 IP 주소가 작성되어 있어야 통신이 가능한데 아래와 같이 적혀 있다고 가정해 보자.
A의 IP 주소는 "192.168.10.1"이다.
# B의 네트워크 대역 "192.168.20.0/24"로 가려면 "192.168.10.1"로 가라는 뜻이다.
192.168.20.0/24 -> 192.168.10.1
그러면 A는 아래와 같이 프로토콜을 작성한다.
이더넷 + IPv4 + ICMP 요청
이 때 목적지 MAC 주소는 IP가 "192.168.20.0/24"인 B의 맥주소가 아니라 IP가 "192.168.10.1"인 C의 맥주소가 된다.
최종 목적지가 b라고 해도 이더넷은 '가까운 곳'과 통신하는 데 사용하는 것이기 때문에 C를 거쳐가므로 C의 맥주소가 들어가야 한다.
패킷의 전송 과정은 다음과 같다.
1. "스위치"로 이동: 2계층 이더넷 프로토콜을 확인하고 해당하는 맥주소로 보낸다.
2. 공유기는 2계층 열어보고 자신한테 온 것이 맞는지 확인하고, 3계층을 열어 목적지 IP 주소를 확인한다.
3. 그러면 공유기도 자신의 라우팅 테이블을 확인한다.
👉 가령 "192.168.30.0/24"로 가야 한다고 해보자.
4. 해당하는 라우터로 보내기 전 '이더넷 프로토콜'을 다시 만든다.(이미 이더넷을 열어 봤기 때문에 내용을 바꾸어 다시 캡슐화 한다.)
👉 목적지 맥주소와 출발지 맥주소를 변경한다.
👉 즉, 30번 대 네트워크 대역과 통신할 수 있도록 이더넷 프로토콜을 만드는 것이다.
5. 패킷이 30번 대 네트워크로 도착하면 라우터는 3계층 장비이므로 3계층까지 열어본다.
👉 목적지 맥주소를 확인하고
👉 목적지 IP 주소를 확인한 후, 자신의 라우팅 테이블을 확인한다.
6. 여기서도 다시 이더넷 프로토콜을 캡슐화 한다.
👉 이더넷 프로토콜은 네트워크 대역이 바뀔 때마다 새로 작성하게 된다.
7. 이 과정을 반복하며 목적지 IP에 도착할 경우 ICMP 요청까지 확인하게 된다.
👉 그러면 ICMP '응답'인 0번으로 변경하여 다시 캡슐화 하고 패킷이 A로 돌아가게 되는 것이다.