Skip to main content

[Network] Chapter 5. 네트워크 계층 : 목적지에 데이터 전달하기

모두의 네트워크 책을 읽고 공부한 노트입니다.




네트워크 계층의 역할 #

  • 네트워크 계층
    • 데이터 링크 계층에서는 이더넷 규칙을 기반으로 해서 같은 네트워크에 있는 컴퓨터로만 데이터를 전송할 수 있었다.
    • 서로 다른 네트워크에 있는 목적지로 데이터를 전송하려면 네트워크 계층이 필요하다.
    • 라우터를 통해 경로를 설정해서 패킷을 전송한다.

  • 라우터(Router)
    • 서로 다른 네트워크를 연결해주는 장치로, 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지(라우팅: routing) 를 알려주는 기능을 한다.
      • 참고로 레이어 3 스위치라는 장비도 라우팅을 할 수 있다.
    • 라우팅 테이블(routing table) 이 있어서 경로 정보를 등록하고 관리한다.
    • 가정이나 소규모 기업 용도로 만든 라우터를 인터넷 공유기라고 한다.

  • 네크워크를 식별할 수 있는 방법? IP(Internet Protocol) 주소
    • LAN에서는 MAC 주소만으로 통신할 수 있지만, 다른 네트워크에는 데이터를 보낼 수 없다.
    • 그래서 IP가 필요하다. IP는 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소이다.
  • 네트워크 계층에서는 캡슐화할 때 IP 헤더를 붙인다.
    • IP 헤더가 추가되어 만들어진 것을 IP 패킷이라고 한다.

IP 헤더
Image Source



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의 크기가 달라진다.
    • 일반 네트워크에서는 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 등이 있다.