Network

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

네트워크 계층의 역할

다른 네트워크에 있는 목적지로 데이터를 전달하려면 네트워크 계층의 기술이 필요하다.

데이터 링크 계층에서는 이더넷 규칙을 기반으로 데이터의 전송을 담당한다. 이 규칙에 따라 같은 네트워크에 있는 컴퓨터로는 데이터를 전송할 수 있지만, 인터넷이나 다른 네트워크로는 데이터를 전송할 수 없다.

따라서 이처럼 네트워크 간의 통신을 가능하게 하는 것이 네트워크 계층의 역할이다. 네트워크 계층을 통해 데이터를 전송하려면 라우터라는 네트워크 장비가 필요하다.

  • 라우터
    • 라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지를 알려 주는 기능을 한다.

랜에서는 MAC 주소 만으로도 통신할 수 있지만, 다른 네트워크에는 MAC 주소 만으로는 데이터를 보낼 수 없다.

이 때, MAC 주소가 아닌 네트워크를 식별할 수 있는 다른 주소가 필요한데, 이를 IP 주소라고 한다.

  • IP 주소
    • 어떤 네트워크의 컴퓨터인지를 구분할 수 있도록 하는 주소
    • IP 주소가 있으면 다른 네트워크에 있는 목적지를 지정할 수 있다.

목적지 IP 주소를 정하고, 데이터를 어떤 경로로 보낼지 결정하는 것을 라우팅이라고 한다.

라우터에는 라우팅 테이블이 있어서 경로 정보를 등록하고 관리한다.

IP란?

네트워크 계층에는 IP라는 프로토콜이 있다.

네트워크 계층에서는 캡슐화할 때 IP 헤더를 붙인다. IP 헤더에는 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, ID, 조각 상태(flags), 조각의 위치, TTL, 프로토콜, 헤더 체크섬, 출발지 IP 주소, 목적지 IP 주소 순서로 헤더 정보가 구성되어있다.

가장 중요한 것은 출발지 IP 주소와 목적지 IP 주소가 포함되었다는 사실이다.

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

IP 주소의 구조

IP 주소는 ISP로부터 받을 수 있다. ISP는 인터넷 서비스 제공자를 말한다. 이전 글에서 MAC주소에 대해 설명할 때 다룬 적이 있다.

IP에는 IPv4와 IPv6이 있다.

  • IPv4
    • 32비트로 되어있어 IP주소를 약 43억개 만들 수 있다.
    • 인터넷이 널리 보급되면서 IP 주소가 부족해졌고 IPv6가 도입되었다.
  • IPv6
    • 128비트로 되어있어서 IPv4보다 많은 IP 주소를 만들 수 있다.
    • 약 340간(천, 억, 경, 조보다 큰 단위)개를 만들 수 있다.
    • 현재 IPv4와 IPv6은 공존해서 사용된다.

IP 주소에는 공인 IP 주소와 사설 IP 주소가 존재한다. 공인 IP 주소는 ISP가 제공한다.

  • 왜 두 종류나 필요할까?랜 안의 컴퓨터에 사설 IP 주소를 할당할 때에는 라우터의 DHCP(Dynamic Host Configuration Protocol) 기능을 활용한다.
  • IPv4 주소는 주소의 수가 고갈되고 있다. 그래서 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP주소를 할당하고, 회사나 가정의 랜에 있는 컴퓨터는 사설 IP주소를 할당한다.

IP 주소는 네트워크 ID와 호스트 ID로 나뉘어져있다.

IP 주소의 클래스 구조

  • A Class: 대규모 네트워크 주소
  • B Class: 중형 네트워크 주소
  • C Class: 소규모 네트워크 주소
  • D Class: 멀티캐스트 주소
  • E Class: 연구 및 특수용도 주소

 

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

호스트 ID가 10진수고 첫번째 숫자가 0이면 네트워크 주소

ex. 192.168.1.0

호스트 ID가 10진수고 마지막 숫자가 255면 브로드캐스트 주소

ex. 192.168.1.255

네트워크 주소는 전체 네트워크에서 작은 네트워크를 식별하는 데 사용되고, 호스트 ID는 10진수로 0이면 그 네트워크 전체를 대표하는 주소가 된다.

즉, 192.168.1.1 ~ 192.168.1.6의 IP 주소를 가진 컴퓨터는 192.168.1.0의 네트워크에 있다고 할 수 있다.

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

서브넷의 구조

대규모 네트워크를 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 좁힐 수 있다. 이렇게 네트워크를 분할하는 것을 서브넷팅이라고 하고, 분할된 네트워크를 서브넷이라고 한다.

서브넷팅하여 작은 네트워크로 분할하게 되면, 기존에 네트워크 ID, 호스트 ID로 구성되어 있던 것이 네트워크 ID, 서브넷 ID, 호스트 ID로 나누어지게 된다. (호스트 ID에서 비트를 빌려 서브넷으로 만들 수 있다.)

서브넷 마스크란?

IP 주소를 서브넷팅하면 어디까지가 네트워크 ID고 어디부터가 호스트 ID인지 판단하기 어려울 때가 있다.

그럴 때, 서브넷 마스크라는 값을 사용한다.

서브넷 마스크는 네트워크 ID와 호스트 ID를 식별하기 위한 값이다.

예를 들어 A클래스의 경우에는 255.0.0.0(/8), B클래스는 255.255.0.0(/24)과 같이 된다.

라우터의 구조

네트워크를 분할한 다음, 서로 다른 네트워크의 PC로 접속하려면 어떻게 해야 할까?

먼저, 다른 네트워크에 데이터를 전송하는 송신측은 라우터의 IP 주소를 설정해야한다. 이것은 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이라고 한다. 라우터의 IP 주소로 지정하는 이유는 송신측은 다른 네트워크로 데이터를 보낼 때 어디로 전송해야하는 지 알지 못하기 때문에, 일단은 네트워크의 출입구를 지정해 라우터로 냅다 전송한다.

예를 들어, 송신측 PC가 192.168.1.0/24 네트워크에 속해 있다면 라우터 IP 주소인 192.168.1.1로 설정한다.

라우팅이란?

라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송한다. 이 경로 정보가 등록되어있는 테이블이 라우팅 테이블이다. 라우팅 테이블 내역은 수동/자동으로 등록할 수 있다. 자동으로 등록하기 위해서는 라우터 간에 정보를 교환해야한다. 이 때 사용되는 프로토콜을 라우팅 프로토콜이라고 한다. 대표적인 라우팅 프로토콜에는 RIP, OSPF, BGP등이 있다.

 

 

모두의 네트워크 정리하기