[Network] 4. 네트워크 계층

KYJ의 Tech Velog·2023년 4월 22일
0

Network

목록 보기
5/21
post-thumbnail

Network Layer

OSI 7계층 중 3계층으로 네트워크 간의 통신을 담당하는 계층입니다. 데이터 링크 계층에서는 같은 스위치에 연결되어 있는 컴퓨터끼리만 데이터를 전송할 수 있었습니다. 다른 네트워크로는 전송할 수가 없습니다.


Router

하나의 스위치에 연결되어 있는 컴퓨터들의 모임을 네트워크라고 합시다. 네트워크 계층은 이 네트워크 간의 통신이 가능하게 해줍니다. 라우터(Router)라는 장비를 사용해서 말이죠.

데이터 링크 계층에서 통신하려면 MAC 주소를 알아야했듯이 네트워크 계층에서는 IP 주소를 알아야 하고 어떤 경로로 보낼지도 정해야 하는데 이를 라우팅(Routing)이라고 합니다.

라우터는 거리에 상관없이 통신이 가능합니다. 라우터는 라우팅 테이블(Routing Table)을 이용하여 경로 정보를 관리합니다.

라우터는 아래에 다시 자세히 설명하도록 하겠습니다.


IP

네트워크 계층에서는 IP(Internet Protocol)라는 프로토콜을 사용합니다.

네트워크 계층에서는 캡슐화할 때 IP 헤더를 붙이는데, 이렇게 만들어진 것을 IP 패킷이라고 합니다. IP 헤더는 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, ID, flags, fragment offset, TTL, 프로토콜, 헤더체크섬, 출발지 IP 주소, 목적지 IP 주소 순서로 구성되어 있습니다.

  • TTL
    Time to Live 또는 Hop Limit이라고 합니다. IP 패킷을 전달하는 데에 생존 시간입니다. 인터넷에서 IP 패킷이 라우팅되며 거쳐야할 라우터의 개수를 표현하는 수치입니다. 8비트로 구성되며 각 라우터는 IP 패킷을 라우팅할 때마다 TTL의 값을 1씩 감소시킵니다.

IP Address

IP 주소는 실생활에 빗대어보자면 우편물을 보낼 때의 주소와 같습니다. IP 주소는 ISP(Internet Service Provider)에게 받을 수 있고 IPv4(32비트), IPv6(128비트) 두 버전이 있습니다.

IPv4 주소는 부족해진 상황이기 때문에 이를 해결하기 위해 공인 IP 주소와 사설 IP 주소를 사용합니다. ISP가 제공하는 공인 IP 주소는 라우터에만 할당하고 LAN 내의 컴퓨터에는 LAN의 네트워크 관리자가 자유롭게 사설 IP 주소를 할당하거나 라우터의 DHCP 기능을 사용하여 주소를 자동으로 할당합니다.

  • DHCP
    Dynamic Host Configuration Protocol
    IP 주소를 자동으로 할당하는 프로토콜입니다.

IP 주소는 MAC 주소와 비트 수가 다릅니다. MAC 주소는 48비트, 16진수로 표현하고 IP 주소는 32비트, 10진수(IPv4)로 표시합니다.

8비트를 옥텟(Octet)이라고 부르기도 합니다. IP 주소는 32비트를 8비트씩 끊어서 4개의 옥텟으로 구분하고 10진수로 변환하여 한 옥텟은 0~255까지 표현됩니다. 읽기 쉽도록 컴퓨터 사용자에게는 10진수로 표시되어 있지만 실제로는 2진수로 되어 있습니다.

IP 주소는 네트워크 ID와 호스트 ID로 되어 있습니다.

  • 네트워크 ID
    자신이 속한 네트워크가 어떤 네트워크인지를 나타내는 ID입니다.
  • 호스트 ID
    해당 네트워크 내에서 어떤 컴퓨터인지를 나타내는 ID입니다.

따라서 IP 주소는 어떤 네트워크 속하는 어떤 컴퓨터이다라는 것을 나타내는 것입니다.

IP Address Class

네트워크 ID의 크기에 따라서 IP 주소의 클래스가 나누어 집니다.

클래스내용네트워크 ID 크기호스트 ID 크기
A클래스대규모 네트워크 주소8비트24비트
B클래스중형 네트워크 주소16비트16비트
C클래스소규모 네트워크 주소24비트8비트
D클래스멀티캐스트 주소xx
E클래스연구 및 특수용도 주소xx

Network Address & Broadcast Address

IP 주소 중에는 네트워크 주소와 브로드캐스트 주소라는 특수한 주소가 있습니다. 네트워크 주소는 호스트 ID가 10진수로 모두 0인 주소입니다. 브로드캐스트 주소는 호스트 ID가 모두 255인 주소입니다. 이 주소들은 컴퓨터나 라우터의 IP로 할당할 수 없습니다.

네트워크 주소는 해당 네트워크를 대표하는 주소입니다. 브로드캐스트 주소는 해당 네트워크에 있는 컴퓨터 모두에게 데이터를 전송할 때 사용되는 주소입니다.

Subnet

만약 A클래스에 있는 컴퓨터들에게 브로드캐스트로 패킷을 전송한다면 1677만 7214개의 컴퓨테에게 전송해야 합니다. 현실적으로 불가능할 것입니다.

A클래스와 같은 대규모 네트워크를 작은 네트워크로 분할하는 것을 서브넷팅이라고 합니다. 분할된 각각의 네트워크는 서브넷(Subnet)이라고 합니다.

서브넷을 사용할 경우 IP 주소가 네트워크 ID, 서브넷 ID, 호스트 ID로 나눠집니다. 서브넷 ID는 기존 호스트 ID의 일부를 사용하는 것입니다. 서브넷 ID가 몇 번째 비트부터인지 나타내기 위해 서브넷 마스크를 사용합니다.

클래스서브넷prefix 표기
A클래스255.0.0.0/8
B클래스255.255.0.0/16
C클래스255.255.255.0/24

Router

서로 다른 네트워크와 통신하려면 라우터가 필요하고 라우터는 네트워크를 분리할 수 있습니다. 허브와 스위치는 네트워크를 분리할 수 없습니다. 스위치와 허브를 사용하면 모든 컴퓨터가 동일한 네트워크에 소속된 것입니다.

네트워크를 분할한 후에 한 컴퓨터가 다른 네트워크의 컴퓨터에 패킷을 보내려 한다면 라우터의 IP 주소를 알아야 합니다. 이처럼 네트워크의 출입구 설정을 기본 게이트웨이(Default Gateway)라고 합니다. 이 때 패킷을 보내고자 하는 컴퓨터는 어디로 보내야 할 지 모르기 때문에 일단 기본 게이트웨이(라우터 IP)로 데이터를 전송합니다. 하지만 게이트웨이만으로는 다른 네트워크의 컴퓨터까지는 데이터가 도착할 수 없습니다. 따라서 라우팅이 필요합니다.

Routing

라우팅(Routing)은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 결정합니다. 이 경로 정보가 등록되어 있는 테이블이 라우팅 테이블(Routing Table)입니다.

라우팅 테이블을 등록하는 방법은 2가지가 있습니다.

  1. 네트워크 관리자가 수동으로 등록
    정보를 하나하나 라우터에 등록합니다. 등록된 내용의 수정이 필요하면 수동으로 변경해야 해서 작업량이 많아지기 때문에 소규모 네트워크에 적합합니다.
  2. 네트워크 관리자가 자동으로 등록
    라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정합니다. 직접 변경하지 않아도 되기 때문에 작업량이 적어 대규모 네트워크에 적합합니다.

라우터 간에 정보를 교환하고 라우팅 테이블을 관리하는 프로토콜을 라우팅 프로토콜이라고 합니다. 대표적인 라우팅 프로토콜에는 RIP, OSPF, BGP 등이 있습니다.

라우팅 알고리즘과 라우팅 프로토콜을 혼동할 수 있는데 라우팅 알고리즘은 라우팅 프로토콜의 기능 중 하나라고 생각하시면 됩니다. 라우팅 알고리즘은 최적의 경로를 찾아가며 라우팅 테이블을 갱신하고 관리하는 방법입니다. 라우팅 수행 과정과 라우팅 알고리즘을 합친 것이 라우팅 프로토콜입니다.

Forwarding

포워딩(Forwarding)은 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것입니다. 포워딩은 데이터 링크 계층(브릿지, 스위치)과 네트워크 계층(라우터)에서 수행됩니다. 라우터에서 수행되는 포워딩은 패킷 포워딩(Packet Forwarding)이라고 합니다.

패킷 포워딩의 과정은 다음과 같습니다.

  • 라우터는 송신 측으로부터 받은 패킷의 헤더 부분에서 IP 주소를 추출합니다.
  • 추출된 IP 주소를 라우팅 테이블과 비교해보고 어느 포트에 연결된 곳으로 송신할 것인지 결정합니다.
  • 그 다음 새로운 헤더 정보를 붙여 다음 라우터로 다시 전달합니다.

포워팅 테이블(Forwarding Table)에 관해서는 사람마다 이해한 바가 너무 다르고 포스팅도 다양했습니다. 일단 제가 이해한 대로 설명하겠습니다. 앞서 라우팅 알고리즘을 통해 라우팅 테이블을 관리한다고 하였습니다. 이 라우팅 테이블을 참조하여 만들어진 것이 포워딩 테이블이고 이 포워딩 테이블을 통해 적절한 포트로 패킷을 이동시키는 것이 포워딩입니다.


ARP

주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에 IP 주소를 MAC 주소로 대응시키기 위해 사용됩니다. 처음 통신을 할 때에는 상대방의 MAC 주소를 모릅니다. 그 때 상대방의 MAC 주소를 알아내기 위해 사용하는 프로토콜입니다.

ARP는 요청과 응답으로 구성된 프로토콜로 라우팅되지 않는 단일 네트워크에서만 동작합니다. ARP와는 반대로 MAC 주소에 맞는 IP 주소를 알아오는 프로토콜은 RARP라고 합니다.

동작 과정은 다음과 같습니다.

  1. 송신자는 목적지 IP Address를 지정해 패킷을 송신
  2. IP 프로토콜이 ARP 프로토콜에게 ARP Request 메시지를 생성하도록 요청
  3. 메시지는 데이터링크 계층으로 전달되고 이더넷 프레임으로 Encapsulation
  4. 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달
  5. 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메시지를 전송
  6. 최초 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득

0개의 댓글