Global delivery of packet through routers in networks
• IP Addressing: globally unique address for each routable device
IP routing
• Network-wide process determining “good” end-to-end path
• Transport Layer에서 보내라고 지시한 Segment들을 캡슐화하여 보내는 일.
• Transport Layer에서 읽을 수 있는 형식으로 헤더를 제거하는 일.
패킷을 어떻게 보낼 지에 얘기하는 게 바로 네트워크 레이어가 해야 될 일이고, 네트워크 레이어에서 그러한 일을 하는 프로토콜이 바로 IP, 인터넷 프로토콜이라는 프로토콜 입니다.
네트워크 레이어는 IP 한개 입니다. 그래서 보면 이제는 이 라우터가 패킷을 목적지까지 배송시켜주는 일에 참여하기 때문에, 라우터에는 이 네트워크 레이어까지 존재하는 스택이 있습니다.
보내는 HTTP 메시지가 TCP 세그먼트에 담기고, TCP 세그먼트가 IP 패킷에 담겨서 보내지면, 라우터는 IP 패킷을 받아서, 목적지가 어딘지 분석을 해서, 알맞은 방향으로 보내주고, 다음 라우터는 또 어딘지 분석을 해서 담는 이런 과정이 계속 반복 됩니다.
네트워크 레이어는 라우터들이 어떠한 방식으로 개입이 돼서 패킷을 전송하는가에 대한 것 입니다. 그래서 네트워크 레이어가 다 모든 라우터에 다 있습니다. 라우터에서 패킷을 처음 받았을 때 하는 과정이 프로세싱 딜레이라고 합니다.
move packets from router’s input to appropriate router output
패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 합니다. 서울->부산 경로의 많은 교차로 중 한 교차로를 지나는 과정이라고 볼 수 있습니다.
라우팅에 의해 만들어진 포워딩 테이블을 보고 내보내는 것 매우 짧은 시간 단위(보통 나노 초)를 갖기 때문에 대표적으로 하드웨어에서 실행 포워딩 테이블 라우팅 프로토콜에 의해 생성됩니다. 헤더값과 출력 링크로 구성되어 있습니다. 라우터에서 패킷의 헤더 값을 보고 출력 링크 인터페이스를 결정합니다.
e.g) 헤더 값, 0110 을 보고 출력 링크 인터페이스 2로 전달한다.
determine route taken by packets from source to dest.
• routing algorithms
송신자가 수신자에게 패킷을 전송할 때 Network Layer 는 패킷 경로를 설정해야 합니다. 즉, 패킷의 목적지 IP를 보고 길을 찾는 것 입니다. 경로를 찾아내 포워딩 테이블을 만들어 내는 것 입니다. 서울->부산 경로를 계획하는 과정이라고 볼 수 있습니다.
네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단간 경로를 결정 긴 시간(보통 초)을 갖기에 소프트웨어에서 실행
포워딩 테이블은 목적지 주소와 목적지 주소에 해당하는 인터페이스로 1:1로 일치되어 있지 않습니다. 전 세계 호스트 개 수 관리와 크기의 문제로 이거 검색이 불가능합니다. 그래서 아래의 그림과 같이 addrees-range 라는 범위값으로 예를들어 그냥 우체국에서 사용하는 방식처럼 경산시 조영동 이런 식으로 주소 범위로 포워딩 테이블이 관리되어 있습니다.
Datagram forwarding table 예
longest prefix match 구체적으로 매치되는 곳으로 보낸다.
Per-router Control Plane
Individual routing algorithm components in each and every router interact in the control plane
내 컴퓨터에서 다른 컴퓨터를 접근할 때 수많은 라우터(위의 그림)들이 있을 것이고 각 라우터는 여러가지 정보를 가지고 있습니다. (자신과 연결되어있는 라우터가 무엇인지, 거리가 얼마나 되는지 등) 이런 상황에서 라우터는 데이터를 가장 효과적으로 전달하고 혼잡상태를 피하기위한 라우팅을 합니다.
네트워크 계층에서는 크게 두 역할이 있습니다. Data plane과 Control plane이다. Control plane은 데이터가 어느 라우터에서 어디 라우터로 가야하는지 등의 과정을 결정합니다.
Data plane은 forwarding plane으로도 불리는데 데이터가 어떻게 앞으로 가야하는지만을 결정합니다. 예를 들어 Control plane이 신호등, Data plane이 자동차라면 신호등의 색깔에 맞게 멈추거나 앞으로 가야하는 등을 생각해볼 수 있습니다.