4. 네트워크 계층에서는 어떤 일을 할까? (TCP/IP 3 Layer)
Goal
- IP를 이해한다
- 라우터를 이해한다
- IP 주소를 이해한다
- 서브넷을 이해한다
- 라우팅을 이해한다
역할

이전 시간에 배운 OSI 2계층 데이터 링크 계층에서는 이더넷을 통해 데이터를 전송했습니다. 하지만 같은 네트워크에 속한 컴퓨터에게만 보낼 수 있고 다른 네트워크에 있는 컴퓨터로는 보낼 수 없습니다.
왜 그럴까요? 내부 네트워크에서는 MAC 주소만으로도 찾아갈 수 있지만, 다른 네트워크에 있는 컴퓨터는 찾아갈 수 없습니다. 외부 네트워크로 찾아가기 위해서는 라우터라는 장비가 필요합니다.
라우터란?

라우터를 통해 네트워크를 분리 할 수 있습니다. (스위치나 허브는 분리가 안되고 같은 네트워크로 잡힙니다)
또한 라우터는 다른 네트워크로 데이터를 전송하기 위해 필요한 장비입니다. 데이터의 목적지가 정해지면 해당 목적지까지 가는 최적의 경로를 알려줍니다.
그럼 목적지는 어떻게 알까요? MAC 주소? 바로 IP 주소입니다.

목적지의 IP주소가 정해지면 목적지까지 가는 경로를 결정하는 것을 라우팅이라고 하는데 이는 라우터가 수행합니다. 라우터에는 라우팅 테이블이 있어서 라우팅 정보를 등록하고 관리합니다.
IP란?

네트워크 계층에 속하는 IP(Internet Protocol)라는 프로토콜은 다른 네트워크로 데이터를 보내기 위해 사용되는 통신 규약입니다. 네트워크 계층에서 캡슐화할 때 다음과 같은 IP헤더를 붙입니다.
IP 헤더 (IPv4)

IP 헤더의 길이는 20~60바이트입니다. 라우팅에 필요한 정보들을 담고있습니다. 각 요소들이 어떤 것을 의미하는지는 자세하게 다루지는 않을것입니다. 가장 중요한 것은 출발지 IP와 목적지 IP가 헤더에 담겨져 있다는 것입니다. 이를 통해서 라우터가 길을 찾아서 전달합니다. (더 자세한 내용은 다음을 참조)
IP 주소

IP 주소는 32비트로 구성된 고유한 식별값이라고 생각하면 됩니다. IP주소는 사람이 읽기 쉽게 10진수로 표기되어 있지만, 실제로는 2진수로 되어있습니다.
IPv4, IPv6
IP주소에는 버전이 있습니다. IPv4, IPv6 두가지 버전이 있는데요. IPv4는 32비트로 되어있어서 약 43억개를 만들 수 있는데 인터넷이 널리 보급되면서 고갈현상이 일어나 IPv6를 사용하게 됐습니다. IPv6는 128비트로 되어있어서 약 340간 개 만들 수 있습니다. 이정도 수면 거의 무한대라고 생각해도 됩니다.
공인 IP와 사설 IP

IP주소에는 공인 IP와 사설 IP가 있습니다. 공인 IP는 ISP가 제공하고 사설 IP는 라우터에서 DHCP 기능을 통해 사설 IP를 부여하고 있습니다. 이 사설 IP를 통해 IP가 부족하지 않게 더 많은 장비를 사용할 수 있습니다.
IP 주소의 클래스

한정된 IP 주소를 체계적으로 관리하기 위해 IP 주소는 네트워크 ID와 호스트 ID로 구성되어 있습니다.
왜 이렇게 구성되어 있을까요? 바로 네트워크 크기를 조절할 수 있게끔하기 위해서 인데요. 네트워크 ID 또는 호스트 ID의 크기를 크게 만들거나 작게 만듬으로 써 네트워크의 크기를 조절할 수 있습니다. 그 크기를 클래스라는 개념으로 구분합니다.
최상위 비트 범위 최대 호스트 수
최상위 비트 | 범위 | 최대 호스트 수 | |
A 클래스 | 0으로 시작 | 1.0.0.0 ~ 127.255.255.255 | 2^24 - 2 |
B 클래스 | 10으로 시작 | 128.0.0.0 ~ 191.255.255.255 | 2^16 - 2 |
C 클래스 | 110으로 시작 | 192.0.0.0 ~ 223.255.255.255 | 2^8 -2 |
사설 IP는 공인 IP로 할당할 수 없기 때문에 A,B,C 클래스에는 다음과 같은 사설 IP 범위가 빠져있습니다.
사설망 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 사설망 또는 프라이빗 네트워크(private network)는 인터넷 어드레싱 아키텍처에서 사설 IP 주소 공간을 이용하는 네트워크이며 RFC 1918과 RFC 4193 표준을 준수한다.
ko.wikipedia.org
(더욱 더 자세한 내용은 다음을 참조해주세요.)
IP 주소 클래스(A,B,C class)
개요
catsbi.oopy.io
네트워크 주소, 브로드캐스트 주소
IP 주소에는 네트워크 주소와 브로드 캐스트 주소가 있습니다.
C 클래스로 예를 들면, 네트워크 주소는 호스트 ID가 0이면 네트워크 주소입니다. 만약 호스트 ID가 255이면 브로드캐스트 주소이구요.
- 네트워크 주소: 192.168.10.0
- 브로드캐스트 주소: 192.168.10.255
이 두 주소는 컴퓨터에 할당할 수 없습니다. 어떤 용도로 사용되길래 할당할 수 없도록 했을까요?

네트워크 주소는 전체 네트워크에서 작은 네트워크를 식별하는데 사용됩니다. 예를 들어 192.168.10.1 ~ 192.168.10.4 은 192.168.10.0 의 네트워크에 속해있다고 할 수 있습니다.

브로드캐스트 주소는 해당 네트워크에 속한 모든 장비에게 데이터를 전송하는데 사용됩니다.
서브넷

대규모 네트워크에서 브로드 캐스트를 하면 어떻게 될까요? 수많은 컴퓨터로 패킷을 전송하기 때문에 시간도 오래걸리고 네트워크가 혼잡해질 수 있습니다. 이처럼 대규모 네트워크를 그대로 사용하기보다는 그 안에서 작은 네트워크로 쪼개서 구성하는데요, 이를 서브넷팅이라고 합니다.

위 A 클래스를 서브넷팅하면 아래처럼 됩니다.

서브넷팅할 때는 호스트ID를 빌려 서브넷 ID로 할당할 수 있습니다. 그렇기 때문에 서브넷팅하면 어디까지가 네트워크 ID인지 호스트 ID인지 알 수 없습니다. 그래서 서브넷 마스크가 필요한 것 입니다.
서브넷 마스크
다음과 같은 표현을 많이 보셨을텐데요. 서브넷 마스크는 프리픽스 표현을 많이 사용합니다.
255.255.255.255/24
A 클래스를 예를 들어서 설명해보겠습니다.

위 IP 주소를 프리픽스 주소로 표기하면? → 127.255.255.255/8

위 IP 주소를 프리픽스 주소로 표기하면? → 127.255.255.255/16
[목차] 네트워크 기초 시리즈 (앞으로 쭉 포스팅할 예정!)
- 네트워크를 들어가기 앞서 (OSI 7 Layer, TCP/IP 5 Layer, 캡슐화란?)
- 물리 계층에서는 어떤 일을 할까? (TCP/IP 1 Layer)
- 데이터 링크 계층에서는 어떤 일을 할까? (TCP/IP 2 Layer)
- 네트워크 계층에서는 어떤 일을 할까? (TCP/IP 3 Layer)
- 전송 계층에서는 어떤 일을 할까? (TCP/IP 4 Layer)
- 응용 계층에서는 어떤 일을 할까? (TCP/IP 5 Layer
글 읽어주셔서 감사합니다.