앞 장에서는 트랜스포트 계층이 네트워크 계층 호스트들 간의 통신 서비스에 의존함으로써 다양한 형태의 프로세스 간 통신을 제공한다는 것을 배움. 트랜스포트 계층은 네트워크 계층이 실제로 어떻게 구현되었는지를 알지 못해도
동작함.
네트워크 계층은 트랜스포트 계층이나 애플리케이션 계층과는 달리, 각 호스트와 네트워크의 라우터마다 네트워크 계층의 일부가 존재
한다는 사실을 알게 될 것.
네트워크 계층은 서로 상호작용하는 데이터 평면과 제어 평면
두 부분으로 나눌 수 있음.
라우터별 제어
: 한 라우터의 입력 링크에 도착한 데이터그램이 다른 한 목적 라우터의 출력 링크에 어떻게 도착하는지를 결정함.
H1과 H2의 경로상에 여러 라우터와 두 호스트 H1과 H2로 이루어진 간단한 네트워크를 보여줌.
H1이 H2에게 정보를 보낸다고 가정, 호스트와 중계 라우터에서 네트워크 계층의 역할을 생각
→ H1 네트워크 계층은 H1의 트랜스포트 계층으로부터 세그먼트를 얻어 각 세그먼트를 데이터 그램으로 캡슐화하고(네트워크 계층의 패킷), 인접한 라우터 R1에게 데이터그램을 보냄.
→ 수신 후 호스트 H2의 네트워크 계층은 트랜스포트 계층 세그먼트를 추출하여 H2의 트랜스포트 계층까지 전달함.
각 라우터의 데이터 평면 역할
은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것
임.
네트워크 제어 평면의 근본적인 역할은 데이터그램이 출발지 호스트에서 목적지 호스트까지 잘 전달되게끔 로컬 포워딩, 라우터별 포워딩을 대응시키는 것
임.
네트워크 계층의 근본적인 역할은 송신 호스트에서 수신 호스트로 패킷을 전달하는 것
임.
패킷 경로를 결정
해야하는데, 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘
이라고 함.포워딩은 매우 짧은 시간 단위를 갖기에, 대표적으로 하드웨어
에서 실행됨. 반면, 라우팅은 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단 간 경로를 결정하는 것. 라우팅은 더 긴 시간 단위를 갖기에 소프트웨어
에서 보통 실행됨.