패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 한다.
송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야한다. 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘(routing algorithm) 이라고 한다.
네트워크 서비스 모델(network service model) 은 송수신 호스트 간 패킷 전송 특성을 정의한다. 네트워크에서 제공될 수 있는 서비스들은 다음과 같다.
프리픽스(prefix) 를 통해 40억개의 엔트리를 갖지 않아도 충분한 포워딩 테이블을 구성할 수 있다. 하드웨어 로직은 포워딩 테이블을 검색하여 대응하는 링크 인터페이스를 찾는다.
이렇게 IP 주소를 찾은('매치') 다음에 패킷을 스위치 구조로 지정된 출력 포트로 전송('액션')하는 것은 라우터뿐만 아니라 많은 네트워크 장치에서 수행되는 일반적인 '매치 플러스 액션'의 사례다.
스위치 구조는 패킷이 입력 포트에서 출력포트로 실제로 스위칭되는 구조를 통과하므로 라우터의 핵심이다. 스위칭에는 여러 기술이 있으나 세 가지를 예로 들자면,
출력 포트 처리는 출력 포트의 메모리에 저장된 패킷을 가져와서 출력 링크를 통해 전송한다. 여기서 스케줄링, 큐 제거, 링크/물리 계층 전송 기능을 수행한다.
라인 앞쪽을 다른 패킷이 막아서, 입력 큐에서 대기 중인 패킷이 사용할 출력 포트가 사용 중이지 않더라도 스위치 구조를 통한 전송을 기다리는 것을 HOL(head-of-the-line) 차단 이라고 한다.
각 패킷이 N개의 입력포트에서 하나의 출력포트로 전송될 때, 출력 포트 전송속도 한계로 인해, 출력 링크를 통한 전송 큐에서 대기가 일어난다. 이 때 추가적으로 패킷이 출력링크로 전송되는 경우 패킷 손실이 발생할 수 있다. 이를 해결하기 위해 명시적 혼잡 알림, AQM(Active Queue Management) 알고리즘으로 알려진 정책이 제안되거나 분석되고 있다.(RED, PIE, CoDell)
패킷 스케줄링 방식은 다음과 같이 나눌 수 있다.

IP주소는 32비트(4바이트)로, 다른 바이트와 점(.)으로 구분하는 십진 표기법을 사용한다.
/12와 같은 표현은 서브넷 마스크(subnet mask) 로 왼쪽 n비트가 서브넷 주소라는 것을 가리킨다.인터넷 주소 할당방식에는 CIDR(Classess InterDomain Routing)이라는 것이 있다. /x는 최상위 비트 수를 나타내며, 네트워크 프리픽스를 가리킨다.
CIDR이 채택되기 전에는 클래스 주소체계를 사용했으나 이를 통해 충분한 기관의 수를 지원하기에는 수가 너무 부족했다.
기관은 ISP로부터 주소 블록을 획득하고, 기관 내 호스트에게 IP 주소를 할당한다. 이때 동적 호스트 구성 프로토콜(Dynamic Host Configurateion Protocol, DHCP) 을 사용한다. DHCP를 통해 호스트는 IP 주소를 자동으로 얻을 수 있다.
1단계: DHCP 서버 발견
2단계: DHCP 서버 제공
3단계: DHCP 요청
4단계: DHCP ACK
네트워크 주소 변환(NAT) 을 통해 SOHO 네트워크 확산에 대응할 수 있게 되었다.
데이터그램 포맷은 다음과 같다.

일반화된 포워딩에 대한 논의는 OpenFlow 기반이며, 이는 '매치 플러스 액션' 포워딩의 개념화 및 컨트롤러 그리고 SDN 개념을 개척한 매우 가시적인 표준이다.
패킷 매치 필드에는 진입포트, 링크 계층, 네트워크 계층, 트랜스 포트 계층에 관한 정보가 담겨있다. 이 정보들과 매치를 수행하고 포워딩, 삭제, 필드 수정의 액션을 수행한다.
매치 플러스 액션 작업은 사실 제한된 형태의 프로그래밍 가능성(programmability)을 보여준다. IP 주소 외의 정보가 추가적으로 매치됨에 따라 간단한 포워딩 뿐만 아니라, 로드 밸런싱, 방화벽을 구현할 수 있다.
미들박스의 정의는 다음과 같다.
출발지 호스트와 목적지 호스트 사이의 데이터 경로에서 IP 라우터의 정상적이고 표준적인 기능과는 별도로 기능을 수행하는 모든 미들박스 [RFC3234]
미들박스의 서비스는 크게 세 가지 유형이 있다.