네트워크 계층 개요
Forwarding and Routing
네트워크 계층의 근본적인 역할은 송신 호스트에서 수신 호스트로 패킷을 전달하는 것이다. 이를 위한 네트워크 계층의 중요한 기능 두가지는 다음과 같다.
-
forwarding
- 패킷이 라우터에 도달했을 때 라우터는 그 패킷을 목적지로 향하는 다음 라우터로 전달하는 것
- 하드웨어에서 실행
-
routing
- 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야 한다. 이러한 경로 계산 알고리즘을 routing algorithm(forwarding table을 만드는 방법)이라 한다.
- 출발지에서 목적지로 가는 경로를 결정하는 것
- 소프트웨어에서 실행
네트워크 라우터에서 필수 불가결한 요소는 forwarding table이다. 라우터는 도착하는 패킷 헤더의 필드값을 조사하여 패킷을 전달하고, 이 값을 라우터의 forwarding table의 내부 색인으로 사용한다.
Internet Protocol(IP)
IP datagram foramt

- TTL(time-to-live)
- 네트워크에서 데이터그램이 무한히 순환하지 않도록 한다(routing loop). 이 필드값은 라우터가 데이터그램을 처리할 때마다 감소한다. TTL의 필드가 0이 되면 라우터가 이 데이터그램을 폐기한다.
- upper layer
- IP 데이터그램이 최종 목적지에 도착했을 때만 사용되며, 이 필드값은 IP 데이터그램에서 데이터 부분이 전달될 목적지의 트랜스포트 계층의 특정 프로토콜을 명시한다.
- source and destination IP address
- 출발지가 데이터그램을 생성할 때, 자신의 IP 주소를 출발지 IP 주소 필드에 삽입하고 목적지 IP 주소를 목적지 IP 주소 필드에 삽입한다.
IPv4
- unique 32-bit number
- identifies an interface(on a host, on a router, ..)
- Represented in dotted-quad notaion
Hierarchical Addressing: IP prefixes
- Network and host portions(left and right)
- 12.34.158.0/24 -> 24-bit prefix with 2^8 addresses
- Ex) 12.34.158.5 -> 00001100 00100010 10011110 00000101
<-------Network(24bits)--------> <-Host(8bits)->
/24는 subnet mask이며 32비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 가리킨다.
Classful Addressing
- Class A(0*): 첫 8비트가 네트워크 주소 -> 2^7개 존재, 호스트 -> 2^24개
- Class B(10*): 첫 16비트가 네트워크 주소 -> 2^16
- Class C(110*): 첫 24비트가 네트워크 주소 -> 2^24
Classless InterDomain Routing(CIDR)
32비트 IP주소를 두 부분으로 나누고, 이것은 다시 점으로 된 십진수 형태의 a.b.c.d/x를 가진다. x는 주소 첫 부분의 비트 수이다.
Subnets
라우터를 거치지 않고 데이터를 보낼 수 있는 IP의 집합(하나의 라우터 인터페이스로 연결), Subnet 파트에 해당하는 주소가 같다.
Reference
KOCW - 컴퓨터 네트워크
컴퓨터 네트워킹 하향식 접근