네트워크 계층의 기능은 라우팅과 포워딩으로 나눠진다.
라우팅은 각 목적지별로 어떻게 경로를 결정,계산할지고, 포워딩을 ip 데이터그램이 라우터의 인풋 포트에 들어왔을 때, 목적지로 보내기 위해 어떤 아웃풋 포트로 넘겨야 하는지를 의미한다. 즉 라우터에서 계산한 경로 정보를 활용해 인풋에서 적절한 아웃풋으로 패킷을 보내는 것이다.
위 사진에서 라우터는 라우팅 알고리즘을 실행해 목적지의 경로를 계산하고 테이블에 저장한다.(라우팅)
그러면 데이터그램이 라우터에 인풋 포트에 들어오면 헤더의 목적지 주소를 보고 그 주소를 테이블에서 찾아 아웃풋 링크로 뽑아준다.(포워딩)
네트워크 계층의 서비스는 이 서비스가 개별적인 데이터그램에 의해 정의되나 아니면 flow of datagram에 대해 정의되냐에 따라 다른다.
개별적 데이터그램은 각 데이터그램의 딜리버리를 보장한다던지, 딜리버리를 특정 시간을 지정해 보장한다던지 하는 것이고
flow of datagram에 대해서는 in-order 데이터그램 딜리버리나 최소 bandwidth, 혹은 플로우에 속한 패킷 간의 도착하는 시간 간격을 어떤 간격 이내로 보장하는 것이다.
4.2 Virtual circuit and datagram