[Network] Chapter 5. 네트워크 계층 : 목적지에 데이터 전달하기
Table of Contents
모두의 네트워크 책을 읽고 공부한 노트입니다.
네트워크 계층의 역할 #
- 네트워크 계층
- 데이터 링크 계층에서는 이더넷 규칙을 기반으로 해서 같은 네트워크에 있는 컴퓨터로만 데이터를 전송할 수 있었다.
- 서로 다른 네트워크에 있는 목적지로 데이터를 전송하려면 네트워크 계층이 필요하다.
- 라우터를 통해 경로를 설정해서 패킷을 전송한다.
- 라우터(Router)
- 서로 다른 네트워크를 연결해주는 장치로, 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지(라우팅: routing) 를 알려주는 기능을 한다.
- 참고로 레이어 3 스위치라는 장비도 라우팅을 할 수 있다.
- 라우팅 테이블(routing table) 이 있어서 경로 정보를 등록하고 관리한다.
- 가정이나 소규모 기업 용도로 만든 라우터를 인터넷 공유기라고 한다.
- 서로 다른 네트워크를 연결해주는 장치로, 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지(라우팅: routing) 를 알려주는 기능을 한다.
- 네크워크를 식별할 수 있는 방법? IP(Internet Protocol) 주소
- LAN에서는 MAC 주소만으로 통신할 수 있지만, 다른 네트워크에는 데이터를 보낼 수 없다.
- 그래서 IP가 필요하다. IP는 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소이다.
- 네트워크 계층에서는 캡슐화할 때 IP 헤더를 붙인다.
- IP 헤더가 추가되어 만들어진 것을 IP 패킷이라고 한다.
IP 주소 #
- IP 버전
- IPv4 (32bit)
- IPv6 (128bit)
- IP 주소는 공인 IP 주소와 사설 IP 주소가 있다.
- 사용할 수 있는 주소의 수가 한정적이기 때문에, 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고, 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당하는 정책을 사용한다.
- 공인 IP 주소를 절약하는 방법은?
- ISP가 제공하는 공인 IP 주소는 라우터에만 할당하고, LAN 안의 컴퓨터들에게는 LAN의 네트워크 관리자가 자유롭게 사설 IP 주소를 할당하거나 라우터의 DHCP(Dynamic Host Configuration Protocol)기능을 사용하여 주소를 자동으로 할당한다.
IP 주소의 클래스 #
- IP 주소는 네트워크 ID와 호스트 ID로 나뉘어져 있다.
- 네트워크 ID
- 어떤 네트워크인지를 나타낸다.
- 호스트 ID
- 해당 네트워크의 어떤 컴퓨터인지를 나타낸다.
- 네트워크 ID
- 각 클래스의 주소 범위
- 클래스에 따라 네트워크 ID의 크기가 달라진다.
- 일반 네트워크에서는 A~C 클래스까지 사용할 수 있다.
- 이것은 전체 범위이고 이 안에서 공인 IP 주소와 사설 IP 주소의 범위가 나뉜다.
클래스 이름 | 내용 | 최상위 8비트 | 주소 범위 |
---|---|---|---|
A 클래스 | 대규모 네트워크 주소 | 0xxx xxxx |
1.0.0.0 ~ 127.255.255.255 |
B 클래스 | 중형 네트워크 주소 | 10xx xxxx |
128.0.0.0 ~ 191.255.255.255 |
C 클래스 | 소규모 네트워크 주소 | 110x xxxx |
192.0.0.0 ~ 223.255.255.255 |
D 클래스 | 멀티캐스트(multicast) 주소 | 1110 xxxx |
224.0.0.0 ~ 239.255.255.255 |
E 클래스 | 연구 및 특수용도 주소 | 1111 xxxx |
240.0.0.0 ~ 247.255.255.255 |
네트워크 주소와 브로드캐스트 주소의 구조 #
- 네트워크 주소와 브로드캐스트 주소는 특별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용하면 안 되는 주소이다.
- 네트워크 주소
x.x.x.0
- 호스트 ID가
0
인 주소이다. - 네트워크 전체를 대표하는 주소이다.
- 브로드캐스트 주소
x.x.x.255
- 호스트 ID가
255
인 주소이다. - 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는 데 사용되는 전용 IP 주소이다.
서브넷의 구조 #
- 서브넷팅(subneting)
- 대규모 네트워크를 작은 네트워크로 분할하는 것이다.
- 이렇게 하면 더 많은 네트워크를 만들 수 있어서. IP 주소를 더 효과적으로 활용할 수 있다.
- 분할된 네트워크를 서브넷(subnet) 이라고 한다.
- 서브넷팅 방법
- 기존의 호스트 ID로 사용하던 비트를 서브넷 ID로 바꾼다.
- 따라서, 서브넷 ID의 비트수를 1씩 증가시키면 할당할 수 있는 네트워크 수가 2배씩 증가하고 호스트 수는 2배씩 감소한다.
- IP 주소를 서브넷팅하면 어디까지가 네트워크 ID이고, 어디부터가 호스트 ID인지 판단하기 어려워진다. 이럴 때 서브넷 마스크를 사용한다.
- 서브넷 마스크(subnet mask)
- 네트워크 ID와 호스트 ID를 식별하기 위한 값으로, 네트워크 부분만 나타나게 한다.
/비트수
로 표기할 수도 있다. (프리픽스 표기법: prefix)
- 각 클래스 별 기본 서브넷 마스크 (D, E클래스는 사용하지 않음)
클래스명 서브넷 마스크 프리픽스 표기법 A 클래스 255.0.0.0
/8
B 클래스 255.255.0.0
/16
C 클래스 255.255.255.0
/24
- 예시 : B 클래스에서 6 비트를 서브넷 ID로 사용한 경우
- 서브넷 마스크는
255.255.252.0
이고, - 프리픽스 표기법으로 하면 총 22비트가 네트워크를 나타내므로
/22
가 된다.
Image Source
라우터의 구조 #
- 스위치, 허브와 달리 라우터는 네트워크를 분리할 수 있다.
- 그렇다면 분리된 네트워크끼리는 어떻게 데이터를 전송할 수 있을까?
- 라우터의 IP 주소인 기본 게이트웨이(default gateway) 를 설정해서 네트워크의 출입구를 지정한다.
- 그런다음 라우터로 일단 데이터를 전송한다.
- 전송되면 라우터가 라우팅을 해서(현재 네트워크에서 다른 네트워크로 가는 최적의 경로를 찾아서) 데이터를 전송한다.
- 경로 정보는 라우팅 테이블에 저장되어 있는데, 여기에 저장된 경로를 바탕으로 라우팅을 한다.
- 라우팅 테이블에 등록하는 방법
- 정적 라우팅
- 관리자가 미리 라우팅 테이블에 경로를 수동으로 추가하는 방법이다.
- 소규모 네트워크에서 사용된다.
- 라우팅 정보가 교환되지 않아 대역폭에 대한 부담이 적고, 보안 유지에 좋다.
- 하지만, 동적으로 변영되지 않으므로, 장애가 발생하면 다른 경로로 우회할 수 없어서 관리자가 설정을 하나하나 변경해야 한다.
- 동적 라우팅
- 네트워크 변경을 자동으로 감지하여 라우팅 테이블을 업데이트하거나, 네트워크 장애가 발생했을 때 라우터끼지 정보를 교환해서 최적의 경로로 전환한다.
- 대규모 네트워크에서 사용된다.
- 라우팅 프로토콜
- 라우터 간에 경로 정보를 교환하기 위한 프로토콜이다.
- RIP, OSPF, BGP 등이 있다.