호우동의 개발일지

Today :

article thumbnail

네트워크 계층의 역할


네트워크 간의 연결 구조

네트워크간 연결 구조를 나타낸 그림
네트워크 간의 연결 구조를 나타낸 그림

  • 네트워크 계층 역할 : 네트워크 간의 통신을 가능하게 하는 것

    • 서로 다른 네트워크에 있는 컴퓨터로 데이터 전송이 가능해짐
    • 데이터 링크 계층 → 같은 네트워크에 있는 컴퓨터로만 데이터 전송 가능

 


라우터

  • 다른 네트워크로 데이터를 전송하기 위해 필요한 네트워크 장비
  • 거리에 관계없이 데이터를 보낼 수 있음
  • 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려주는 기능
  • 데이터를 보내려는 곳의 주소(목적지)를 알아야 함 → IP주소를 알아야 함
    • IP 주소 : 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소
    • IP주소가 있으면 다른 네트워크에 있는 목적지를 지정 가능

  • 라우팅 테이블에 경로 정보를 등록하고 관리

  • 라우팅 : 목적지 IP주소까지 어떤 경로로 데이터를 보낼지 결정하는 것
    • IP 주소로 목적지를 지정하는 것뿐만 아니라 데이터를 어떤 경로로 보낼지도 중요

 

 


IP란?

  • 네트워크 계층에서는 캡슐화할 때 IP(Internet Protocol) 헤더를 붙임

 


IP 헤더의 구성

  • 해당 정보들은 데이터를 정확하게 전달하기 위해 필요한 정보들임
  • IP 헤더는 왼쪽부터 오른쪽 순으로 아래 이름의 헤더 정보들로 구성되어 있다.

    1. 버전
    2. 헤더 길이
    3. 서비스 유형
    4. 전체 패킷 길이
    5. ID(identification, 일련번호)
    6. 조각 상태(flags)
    7. 조각의 위치
    8. TTL
    9. 프로토콜
    10. 헤더 체크섬
    11. 출발지 IP 주소
    12. 목적지 IP 주소

  • 데이터에 IP헤더가 붙은 것을 IP패킷이라고 함
    • cf. 데이터 링크 계층 → 이더넷 헤더 + 데이터 + 트레일러 = 프레임

 

 


IP 주소의 구조

  • IP 주소는 인터넷 서비스 제공자(ISP)에게 받을 수 있음 → 통신사에게 할당받음
  • IP 버전에는 IPv4와 IPv6가 있음

    • IPv4 : 32비트로 되어 있어서 IP 주소를 약 43억 개 만들 수 있음
      → 인터넷이 널리 보급되면서 IP 주소가 부족해짐 → IPv6 주소를 사용

    • IPv6 : 128비트로 되어있어 340간 개 즉, 거의 무한대로 만들 수 있음

  • IP 주소의 종류

    • 공인 IP 주소 : 인터넷에 직접 연결되는 컴퓨터나 라우터에 쓰이는 주소
      • 인터넷 서비스 제공자(ISP)가 제공

    • 사설 IP 주소 : 회사나 가정의 랜에 있는 컴퓨터에 쓰이는 주소

 


DHCP 사용하는 이유

  • DHCP : IP주소를 자동으로 할당하는 프로토콜

DHCP를 통한 네트워크
DHCP를 통한 IP

  • 같은 LAN 안에 있는 컴퓨터에 IP 주소 할당
    • LAN 안에 컴퓨터가 여러 대 있다면 컴퓨터 한 대 당 공인 IP 주소를 하나씩 할당하는 것은 비효율
      ← 공인 IP 주소는 사용할 수 있는 숫자가 제한되어 있기 때문

    • 공인 IP 주소는 라우터에만 할당 후, 두 가지 중 한 가지 방식 선택 → 공인 IP 주소 절약
      • LAN 안에 있는 컴퓨터는 LAN의 네트워크 관리자가 자유롭게 사설 IP 주소를 할당
      • 라우터의 DHCP 기능을 사용하여 주소를 자동으로 할당

 


IP주소의 비트수와 표시

  • 공인 IP 주소와 사설 IP 주소는 모두 2진수의 32비트를 동일하게 사용
  • IP 주소는 32비트로 구분하기 쉽도록 10진수로 표시
    • cf. MAC 주소는 48비트로 구분하기 쉽도록 16진수로 표시

  • IP 주소는 8비트 단위로 나눠서 표시
    • 8비트를 옥텟이라고 부르기도 함
      IP 주소 예시
      IPIP 주소 예시
    • 10진수로 표시하지만 실제로 IP 주소는 2진수로 되어 있다.
    • 4개의 옥텟으로 구분하고 숫자의 범위도 0 ~ 255로 정해져 있음

 


네트워크 ID와 호스트 ID

네트워크 ID, 호스트 ID 구분 예시
네트워크 ID, 호스트 ID 구분 예시

  • 네트워크 ID : 어떤 네트워크인지
  • 호스트 ID : 해당 네트워크의 어느 컴퓨터인지
  • 네트워크 ID + 호스트 ID = IP 주소

 

 


IP주소의 클래스 구조

  • 여기서 말하는 IP주소는 IPv4 (32비트)
  • 네트워크 크기는 클래스라는 개념으로 구분할 수 있음
    • 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어서 네트워크 크기를 조정 가능

 


클래스 구분

클래스 종류 표
IP 주소 클래스 종류 표

  • 일반 네트워크에서는 일반적으로 A ~ C 클래스까지 사용 가능
  • A 클래스
    • 처음 8비트 → 네트워크 ID
    • 다음 24비트 → 호스트 ID
    • 1 옥텟의 범위 : 00000001 ~ 01111111( 1 ~ 127 )
    • IP 주소 범위 : 1.0.0.0 ~ 127.255.255.255

  • B 클래스
    • 처음 16비트 → 네트워크 ID
    • 다음 16비트 → 호스트 ID
    • 1 옥텟의 범위 : 10000000 ~ 10111111( 128 ~ 191 )
    • IP 주소 범위 : 128.0.0.0 ~ 191.255.255.255

  • C 클래스
    • 처음 24비트 → 네트워크 ID
    • 다음 8 비트 → 호스트 ID
    • 1 옥텟의 범위 : 11000000 ~ 11011111( 192 ~ 223 )
    • IP 주소 범위 : 192.0.0.0 ~ 223.255.255.255

공인 IP 주소와 사설 IP 주소
클래스별 공인, 사설 IP 주소

 

 


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

  • 네트워크 주소와 브로드캐스트 주소는 자신의 IP 주소로 설정하면 안 된다.
  • 네트워크 주소 : 전체 네트워크에서 작은 네트워크를 식별하는 데 사용
    • 호스트 ID 부분이 10진수로는 0, 2진수로는 00000000인 주소
    • 전체 네트워크의 대표 주소
    • 예 : 192.168.1.1 ~ 192.168.1.6의 IP 주소를 가진 컴퓨터는 192.168.1.0의 네트워크에 있다.

  • 브로드캐스트 주소 : 네트워크에 있는 모두에게 한번 더 데이터를 전송하는 데 사용되는 전용 IP 주소
    • 호스트 ID 부분이 10진수로는 255, 2진수로는 11111111인 주소
    • 전체 네트워크에 데이터를 전송하려면 호스트 ID를 255로 설정하면 됨
    • 예 : 192.168.1.255의 브로드캐스트 주소로 데이터를 전송하면 192.168.1.x의 컴퓨터가 모두 받음

 

 


서브넷 구조

  • 엄청나게 많은 주소가 하나의 네트워크를 사용해서, 브로드캐스트 패킷을 전송한다면 네트워크가 혼잡
    → 서브넷팅 방식을 사용하여 브로드캐스트로 전송되는 패킷의 범위를 좁힐 수 있음
    • 서브넷팅 : 대규모 네트워크를 작은 네트워크로 분할하는 것
    • 서브넷 : 분할된 네트워크
  • 서브넷팅을 통해 더 많은 네트워크를 만들 수 있어 IP 주소를 더 효과적으로 사용 가능

 


서브넷팅 분할

서브넷팅 분할 예시
서브넷팅 분할 예시

  • 기존에 네트워크 ID와 호스트 ID → 네트워크 ID + 서브넷 ID + 호스트 ID로 분할
    • 호스트 ID에서 비트를 빌려 서브넷을 만듦

 


서브넷 마스크

  • 서브넷 마스크 : 네트워크 ID와 호스트 ID를 식별하기 위한 값
  • IP 주소를 서브넷팅하면 네트워크 ID와 호스트 ID의 경계를 판단하기 어려움
    → 서브넷 마스크를 사용하여 이를 판단

    • 프리픽스 표기법으로도 표기 가능
      • 프리픽스(prefix) 표기법 : 서브넷 마스크를 슬래시(/비트수)로 나타내는 것

    • A 클래스 → 255.0.0.0( 프리픽스 표기법 : /8 )
    • B 클래스 → 255.255.0.0( 프리픽스 표기법 : /16 )
    • C 클래스 → 255.255.255.0( 프리픽스 표기법 : /24 )

 


서브넷팅 분할 과정

  • 해당 IP 주소를 서브넷팅하는 과정(C 클래스)

서브넷팅 전
서브넷팅 전

  • 해당 네트워크 ID를 24비트에서 28비트로 만든다고 가정
    → 호스트 ID에서 4비트를 빌려와야 함 → 서브넷 ID 4비트, 호스트 ID 4비트가 됨
    → 서브넷 마스크도 가져온 비트 수만큼 1을 추가

서브넷팅 후

  • 프리픽스 표기법 → /28

 

 


라우터의 구조

  • 라우터는 네트워크를 분리할 수 있다.
    • cf. 스위치만 있는 네트워크에서는 모든 컴퓨터가 동일한 네트워크에 속하게 된다.
  • 기본 게이트웨이: 다른 네트워크에 데이터를 전송하도록 라우터의 IP 주소를 설정하는 것

    • 설정해야 하는 이유?
      • 컴퓨터는 다른 네트워크로 데이터를 보낼 때 어디로 전송해야 할지 모른다.
        → 네트워크의 출입구를 지정하고 일단은 라우터로 데이터를 전송
        → 이후 라우팅을 거쳐 데이터를 전송

 


라우팅

  • 경로 정보 기반으로 다른 네트워크로 최적의 경로를 통해 데이터를 전송
    • 경로 정보는 라우팅 테이블에 등록되어 있음

 


라우팅 테이블에 어떻게 등록하는가

  1. 자동으로 등록하는 방법 - 대규모 네트워크에 적합
    • 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정
    • 라우팅 프로토콜이 존재

      • 라우팅 프로토콜 : 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜
        • 이 프로토콜을 설정해서 경로 정보를 교환하고 라우팅 테이블에 등록하는 것
        • 종류 : RIP, OSPF, OSPF, BGP 등

  2. 수동으로 등록하는 방법 - 소규모 네트워크에 적합
    • 직접 네트워크 관리자가 변경