TIL

모두의 네트워크를 읽고 요약 및 정리한 글 입니다.

5장: 네트워크 계층 - 목적지에 데이터 전달하기

17 네트워크 계층의 역할

OSI 계층 중 네트워크 계층은 다른 네트워크에 있는 목적지로 데이터를 전송하기 위해 필요하다. 앞에서 설명한 데이터 링크 계층의 이더넷 프로토콜을 활용하면 같은 네트워크에 있는 컴퓨터로는 데이터를 전송할 수 있지만, 인터넷이나 다른 네트워크로는 데이터를 전송할 수 없다. 네트워크 간의 통신을 가능하게 하는 것이 네트워크 계층의 역할이고, 이 계층을 통해 다른 네트워크로 데이터를 전송하려면 라우터(router)라는 네트워크 장비가 필요하다.

라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지를 알려 주는 기능을 한다. 이더넷 프로토콜이 MAC 주소를 활용해 목적지로 데이터를 전송하듯이 네트워크 계층에서도 데이터를 보내려면 목적지 네트워크를 알려주는 주소가 필요하다. 이렇게 네트워크를 식별할 수 있는 주소를 IP 주소라고 한다.

IP 주소는 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소이다. 하지만 IP 주소로 목적지를 지정하는 것 뿐만 아니라 데이터를 어떤 경로로 보낼지도 결정해야 한다. 이처럼 목적지 IP 주소까지 어떤 경로로 데이터를 보낼지 결정하는 것을 라우팅(routing)이라고 한다. 라우팅은 라우터에서 이뤄진다. 라우터를 활용하여 거리에 관계없이 다른 네트워크로 데이터를 보낼 수 있다. 또, 라우터에는 라우팅 테이블(routing table)이 있어서 경로 정보를 등록하고 관리한다.


네트워크 계층에는 IP(Internet Protocol)라는 프로토콜이 있다. 라우터가 다른 네트워크로 데이터를 보낼 수 있는 이유도 이 IP 프로토콜이 있기 때문이다. 네트워크 계층에서는 캠슐화 할 때 아래와 같이 IP 헤더를 붙인다.

IP 헤더 (출처: IP 헤더, IP 패킷 헤더, IPv4 IPv6 헤더 비교)

이처럼 IP 프로토콜을 사용하여 캡슐화 할 때는 데이터에 IP 헤더가 추가된다. 이렇게 만들어진 것을 IP 패킷이라고 한다.

IP 주소의 구조

IP 주소는 실생활의 주소와 같은 개념으로 데이터를 다른 네트워크의 목적지로 보내려면 IP 주소가 필요하다. IP 주소는 인터넷 서비스 제공자(ISP)에게 받을 수 있다. 그리고 현재 IP 버전에는 IPv4IPv6가 있다. 또한, IP 주소에는 공인 IP 주소사설 IP 주소가 있다. IPv4는 사용할 수 있는 주소의 수가 약 43억 개로 사용할 수 있는 주소의 수가 고갈되고 있다. 따라서 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고, 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당하는 정책을 사용하고 있다.

MAC 주소는 48비트로 구분하기 쉽도록 16진수로 표시하고, IP 주소는 32비트로 구분하기 쉽도록 10진수로 표시한다. IP 주소는 사람이 읽기 편하게 아래와 같이 8비트 단위로 나눠서 표시한다.

IP 주소의 구조 (출처: IP IPv4 Addresses)

또한, IP 주소는 네트워크 ID호스트 ID로 나눠져 있다. 네트워크 ID는 ‘어떤 네트워크’인지를 나타내고, 호스트 ID는 ‘해당 네트워크의 어느 컴퓨터’인지를 나타낸다.

19 IP 주소의 클래스 구조

IPv4의 IP 주소는 32비트이다. 비트로 구분하지만 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어 네트워크 크기를 조정할 수도 있다. 이때 네트워크 크기는 클래스라는 개념으로 구분하고 있다. 클래스는 아래와 같이 A~E로 나누어져 있다.

IP 주소의 클래스 구조

A 클래스는 처음 8비트가 네트워크 ID고 다음 24비트가 호스트 ID이다. B 클래스는 처음 16비트가 네트워크 ID이고 다음 16비트가 호스트 ID이다. C 클래스는 처음 24비트가 네트워크 ID이고 다음 8비트가 호스트 ID이다. 클래스 별 구분은 아래 표와 같다.

클래스 이름 내용
A 클래스 대규모 네트워크 주소
B 클래스 중형 네트워크 주소
C 클래스 소규모 네트워크 주소
D 클래스 멀티캐스트(multicast) 주소
E 클래스 연구 및 특수용도 주소

20 네트워크 주소와 브로드캐스트 주소의 구조

IP 주소에는 네트워크 주소브로드캐스트 주소가 있다. 이 두 주소는 특별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용하면 안 되는 주소다. 네트워크 주소는 호스트 ID가 10진수로 0인 주소이고, 브로드캐스트 주소는 호스트 ID가 10진수로 255인 주소이다.

네트워크 주소는 전체 네트워크에서 작은 네트워크를 식별하는 데 사용되는 주소이다. 쉽게말해 전체 네트워크의 대표 주소이다. 예를들어 192.168.1.1 ~ 192.168.1.6의 IP 주소를 가진 컴퓨터는 192.168.1.0(네트워크 주소)의 네트워크에 있다고 말할 수 있다.

브로드캐스트 주소는 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는 데 사용되는 전용 IP 주소이다. 예를들어 192.168.1.255의 브로드캐스트 주소로 데이터를 전송하면, 네트워크 안에 있는 모든 컴퓨터가 데이터를 받게 된다.

21 서브넷의 구조

A 클래스 네트워크는 호스트 ID가 24비트여서 IP 주소를 1677만 7214개 사용할 수 있다. 만일 이 많은 수의 컴퓨터에게 브로드캐스트 패킷을 전송한다면 모든 컴퓨터에 패킷이 전송되고 네트워크가 혼잡해진다. 이를 방지하기 위해 A 클래스의 대규모 네트워크를 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 좁힐 수 있다. 이렇게 하면 더 많은 네트워크를 만들 수 있어서 IP 주소를 더 효과적으로 활용할 수 있다.

이렇게 네트워크를 분할하는 것을 서브넷팅(subneting)이라고 하고, 분할된 네트워크를 서브넷(subnet)이라고 한다. 기존 IP 주소를 서브넷팅하면 네트워크 ID와 호스트 ID로 구성되어 있던 것이 네트워크 ID, 서브넷 ID, 호스트 ID로 나누어지게 된다.


IP 주소를 서브넷팅하면 어디까지가 네트워크 ID고 어디부터가 호스트 ID인지 판단하기 어려울 때가 많다. 그럴 때 서브넷 마스크라는 값을 사용한다. 서브넷 마스크는 네트워크 ID와 호스트 ID를 식별하기 위한 32비트 값으로 A 클래스는 255.0.0.0, B 클래스는 255.255.0.0, C 클래스는 255.255.255.0이 된다.

22 라우터의 구조

서로 다른 네트워크와 통신을 하기 위해서는 라우터가 필요로한다. 그리고 라우터는 네트워크를 분리할 수 있다. 반대로 스위치만 있는 네트워크에서는 모든 컴퓨터와 스위치가 동일한 네트워크에 속하게 된다.

네트워크를 분할한 다음 컴퓨터 한 대가 다른 네트워크에 데이터를 전송하려면 라우터의 IP 주소를 설정해야 한다. 이것은 네트워크의 출입구를 설치하는 것으로 기본 게이트웨이(default gateway)라고 한다. 라우터 IP 주소를 지정하는 이유는 컴퓨터가 다른 네트워크로 데이터를 보낼 때 어디로 전송하는지 알지 못하기 때문이다. 따라서 네트워크의 출입구를 지정하고 일단은 라우터로 데이터를 전송한다.


기본 게이트웨이 정보만으로는 다른 네트워크에 데이터를 보낼 수 없다. 데이터를 보내기 위해서는 추가적으로 라우터의 라우팅(routing) 기능이 필요하다. 라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송한다. 이 경로 정보가 등록되어 있는 테이블이 라우팅 테이블이다.

용어 정리

  • 네트워크 계층(network layer): 네트워크 계층은 다른 네트워크와 통신하기 위한 경로 설정을 위해 라우터를 통한 라우팅을 하며 패킷 전송을 담당한다.
  • IP(Internet Protocol, 인터넷 프로토콜): 인터넷에 있는 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 데 사용되는 네트워크 계층 프로토콜이다.
  • IP 주소(IP address): 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 주소다.
  • IP 주소 클래스(IP address class): IPv4에서 사용하는 주소 그룹에는 다섯 개가 있다. A, B, C 클래스는 네트워크 ID와 호스트 ID로 구성되며, D 클래스는 멀티캐스트 주소로 사용된다. E 클래스는 필요에 따라 사용하기 위해 확보해 놓은 것이다.
  • 라우터(router): 서로 다른 네트워크를 연결해 주는 장치로 현재의 네트워크에서 다른 네트워크로 패킷을 전송할 수 있도록 한다.
  • 라우팅(routing): 네트워크에서 패킷을 목적지로 보낼 떄 목적지까지 갈 수 있는 여러 가지 경로 중 한 가지 경로를 설정해 주는 과정이다.
  • 라우팅 테이블(routing table): 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시킬 목적으로 사용된다. 다른 네트워크로 가기 위한 가장 좋은 라우터의 정보를 가지고 있다.
  • 서브넷(subnet): 큰 네트워크를 분할해서 만든 작은 네트워크다.
  • 서브넷팅(subneting): 네트워크를 분할하기 위해 IP 주소의 구성을 변경하는 작업이다.
  • 서브넷 ID: IP 주소의 네트워크 부분을 늘리기 위해 서브넷 마스크로 사용되는 비트로 서브넷 비트라고도 한다.
  • 서브넷 마스크(subnet mask): IP 주소의 네트워크 부분만 나타나게 하여 같은 네트워크인지를 판별하게 하는 마스크이다.
  • 멀티캐스트(multicast): 한 컴퓨터(호스트)에서 패킷을 여러 컴퓨터로 동시에 전송하는 것을 말한다.
  • 브로드캐스트(broadcast): IP 네트워크에 있는 모든 컴퓨터(호스트)로 데이터를 전송하는 방식이다.

Leave a comment