1. 네트워크 계층의 기능

1.1 네트워크 기능

네트워크 계층은 다음과 같은 핵심 기능을 수행한다.

  1. 라우팅(Routing)
    패킷이 송신지에서 수신지로 도달할 수 있도록 최적의 경로를 결정한다.
  2. 혼잡 제어(Congestion Control)
    네트워크 내부의 패킷 수가 과도하게 증가하여 성능이 급격히 저하되는 현상을 방지하고, 이를 해결하기 위한 다양한 방안을 제공한다.
  3. 패킷의 분할과 병합(Fragmentation and Reassembly)
    데이터그램이 네트워크의 전송 단위보다 큰 경우, 이를 작은 단위로 분할하여 전송하고, 목적지에서는 이를 다시 병합하여 원래의 데이터그램으로 복구한다.

1.2 연결형 서비스와 비연결형 서비스

네트워크 계층에서는 두 가지 방식의 서비스를 제공한다.

  1. 연결형 서비스(Connection-Oriented Service)
    데이터 전송 전에 송신지와 수신지 간에 전송 경로를 미리 설정한 후 통신을 시작한다. 이 방식은 경로 설정을 통해 데이터 전송의 신뢰성을 보장할 수 있다.
  2. 비연결형 서비스(Connectionless Service)
    데이터 전송 시 매번 별도로 경로를 설정하지 않고, 각 패킷이 독립적으로 최적의 경로를 찾아 전송된다. 이 방식은 유연성이 높고, 네트워크 부하 분산에 유리하다.

연결형 비연결형 서비스

1.3 라우팅(Routing)

라우팅은 패킷이 네트워크를 통해 목적지까지 도달할 수 있도록 전송 경로를 지정하는 과정을 의미한다.

라우팅 시 고려해야 할 사항은 다음과 같다.

  • 네트워크 토폴로지
  • 경로의 비용(거리, 지연 시간 등)
  • 네트워크 부하

라우팅은 다음과 같이 구분할 수 있다.

  • 정적 라우팅(Static Routing): 관리자가 수동으로 경로를 설정하며, 변경이 자주 발생하지 않는 환경에 적합하다.
  • 동적 라우팅(Dynamic Routing): 네트워크 상태 변화를 반영하여 경로를 자동으로 조정한다.

또한, 라우팅 과정에서는 HELLO 패킷과 ECHO 패킷을 사용하여 연결 상태를 확인하고, 이를 바탕으로 **라우팅 테이블(Routing Table)**을 구성하여 최적 경로를 관리한다. 라우팅 테이블은 목적지 주소, 다음 홉(next hop) 주소, 경로 비용 등의 정보를 포함한다.

 

1.4 혼잡 제어(Congestion Control)

혼잡은 네트워크 내에 패킷이 과도하게 많아져 처리 속도가 급격히 저하되는 현상을 의미한다.

혼잡 제어는 이러한 문제를 방지하거나 해결하기 위한 기법으로 다음을 포함한다.

  • 트래픽 성형(Traffic Shaping): 송신 호스트가 패킷을 일정한 속도로 전송하여 네트워크에 부하를 주지 않도록 제어한다.
  • 혼잡 제거(Congestion Avoidance/Removal): 네트워크의 부하 상태를 모니터링하고, 필요시 패킷 전송 속도를 조정하거나 패킷을 폐기하여 혼잡을 완화한다.

혼잡의 주요 원인으로는 과도한 패킷 생성, 네트워크 자원의 부족, 불균형한 트래픽 분포 등이 있다.

흐름 제어와 혼잡 제어
리키 버킷 알고리즘

2. 라우팅 프로토콜

라우팅 프로토콜은 네트워크 상의 패킷 전달 경로를 자동으로 결정하고 관리하는 규약을 의미한다. 네트워크 거리는 라우터의 개수, 즉 홉(Hop) 수를 기준으로 판단한다.

2.1 간단한 라우팅 프로토콜

  1. 최단 경로 라우팅(Shortest Path Routing)
    송신지와 수신지 간 라우터 수가 가장 적은 경로를 선택하여 패킷을 전송하는 방식이다. 최적의 경로를 계산하기 위해 다익스트라(Dijkstra) 알고리즘 등이 사용된다.
  2. 플러딩(Flooding)
    각 라우터가 수신한 패킷을 자신과 연결된 모든 이웃 라우터로 전송하는 방식이다. 이 과정은 네트워크 전체에 걸쳐 반복되며, 결국 모든 노드에 패킷이 도달한다. 플러딩은 경로를 선택할 필요가 없어 단순하지만, 중복 전송이 많아 비효율적일 수 있다.

최단 경로 라우팅

2.2 거리 벡터 라우팅 프로토콜(Distance Vector Routing Protocol)

거리 벡터 라우팅은 라우터가 자신과 직접 연결된 이웃 라우터와 주기적으로 라우팅 정보를 교환하는 방식이다.

이 방식의 핵심 요소는 다음과 같다.

  • 링크 벡터(Link Vector): 인접 라우터와의 직접 연결 정보
  • 거리 벡터(Distance Vector): 목적지까지의 거리 정보
  • 다음 홉 벡터(Next Hop Vector): 목적지로 가기 위해 다음으로 거쳐야 할 라우터 정보

대표적인 거리 벡터 라우팅 프로토콜로는 **RIP(Routing Information Protocol)**이 있으며, RIP는 홉 수를 경로 선택 기준으로 삼는다. 거리 벡터 정보는 정해진 포맷의 패킷 구조를 통해 교환된다.

2.3 링크 상태 라우팅 프로토콜(Link State Routing Protocol)

링크 상태 라우팅은 개별 라우터가 자신의 이웃 라우터까지의 거리 정보를 수집한 후, 이 정보를 네트워크에 연결된 모든 라우터에 전파하는 방식이다.

이 방식은 거리 벡터 방식과 다음과 같은 점에서 다르다.

  • 모든 라우터가 네트워크 전체의 구조를 파악한다.
  • 라우터는 자신이 수집한 정보를 플러딩(Flooding) 기법을 통해 다른 라우터에 전달한다.
  • 이를 통해 각 라우터는 독립적으로 최적 경로를 계산할 수 있다.

링크 상태 라우팅은 거리 벡터 방식의 느린 수렴 속도 및 루핑 문제를 보완하기 위해 고안되었다. 대표적인 예로는 OSPF(Open Shortest Path First) 프로토콜이 있다.

2.4 외부 라우팅 프로토콜

라우팅 프로토콜은 크게 내부 라우팅 프로토콜(IGP, Interior Gateway Protocol)과 외부 라우팅 프로토콜(EGP, Exterior Gateway Protocol)로 나눌 수 있다.

  • 내부 라우팅 프로토콜(IGP): 동일한 자율 시스템(AS) 내에서 경로를 결정하는 프로토콜이다. 예를 들면 RIP, OSPF 등이 있다.
  • 외부 라우팅 프로토콜(EGP): 서로 다른 자율 시스템 간의 경로를 결정하는 프로토콜이다. 대표적으로 **BGP(Border Gateway Protocol)**가 사용된다.

BGP는 경로 정보와 정책을 기반으로 경로를 선택하며, 인터넷과 같은 대규모 네트워크 환경에서 필수적인 프로토콜이다.

요약

네트워크 계층은 라우팅, 혼잡 제어, 패킷의 분할과 병합 기능을 수행하여 데이터 전송을 지원한다. 연결형 서비스는 데이터 전송 전에 경로를 설정하고, 비연결형 서비스는 패킷 단위로 경로를 결정한다. 최단 경로 라우팅은 홉 수를 최소화하는 경로를 선택하며, 플러딩은 패킷을 모든 경로로 중개하는 방식이다. 거리 벡터 라우팅과 링크 상태 라우팅은 각각 이웃 정보 및 전체 네트워크 정보를 기반으로 경로를 결정한다. 내부 및 외부 라우팅 프로토콜은 각각 자율 시스템 내부와 외부에서 경로를 설정하는 데 사용된다.

1. 네트워크 계층의 기능

네트워크 계층은 전송 계층으로부터 전달받은 데이터를 최종 목적지까지 전달하는 역할을 수행한다. 이를 위해 주요 기능으로 라우팅, 혼잡 제어, 패킷의 분할과 병합 등을 제공한다.

1) 네트워크 기능

라우팅은 송신 호스트에서 수신 호스트까지 패킷이 전달되는 경로를 결정하는 과정이다. 이를 위해 라우터는 네트워크 구성 형태를 기록한 라우팅 테이블을 관리한다.

혼잡 제어는 네트워크 내 패킷 수가 과도하게 증가하여 성능이 저하되는 혼잡 현상을 예방하거나 제거하는 기능이다.

패킷 분할과 병합 기능은 상위 전송 계층에서 송신을 요구한 데이터를 MAC 계층의 프레임 형식에 맞게 캡슐화하여 전송하는 과정에서 필요하다. 데이터는 네트워크 전송에 적합하도록 여러 개의 패킷으로 분할되고, 목적지에서는 이들을 다시 하나로 병합하여 원래의 데이터로 복구한다.

2) 연결형 서비스와 비연결형 서비스

**연결형 서비스(Connection-oriented Service)**는 데이터 전송 전에 송수신 간의 경로를 미리 설정하는 방식이다. 대표적으로 TCP가 연결형 서비스를 제공한다.

**비연결형 서비스(Connectionless Service)**는 데이터 전송 시마다 경로가 개별적으로 결정되는 방식이다. IP 및 UDP 프로토콜이 이에 해당한다.

  • 비연결형 서비스에서는 패킷이 서로 다른 경로로 전송될 수 있어 도착 순서가 일정하지 않다. 따라서 상위 계층에서 순서를 재조정해야 한다.
  • 또한 패킷 손실이 발생할 수 있으며, 상위 계층에서 이를 복구해야 한다.

연결형서비스와비연결형서비스

2. 라우팅 기능 및 혼잡 제어 기능

1) 라우팅

라우팅은 패킷의 최적 전송 경로를 지정하는 기능으로, 다음 두 가지 원칙을 고려하여 경로를 결정한다.

  • 공평 원칙: 특정 패킷의 우선 처리를 위해 다른 패킷이 불이익을 받아서는 안 된다.
  • 효율 원칙: 네트워크 전체의 효율성을 고려해야 한다.

라우팅 테이블(Routing Table)

(1) 정적 라우팅과 동적 라우팅

  • **정적 라우팅(Static Routing)**은 경로 정보가 네트워크 변경과 무관하게 사전에 설정되는 방식이다. 그러나 변화에 민첩하게 대응하기 어렵다는 단점이 있다.
  • **동적 라우팅(Dynamic Routing)**은 라우터가 네트워크 상황에 따라 경로 정보를 자동으로 갱신하는 방식이다. 다만 경로 정보 관리로 인해 성능 저하가 발생할 수 있다.

(2) HELLO/ECHO 패킷

  • HELLO 패킷은 인접 라우터를 탐색하고 주변 경로 정보를 수집하는 데 사용된다.
  • ECHO 패킷은 라우터 간 전송 지연 시간을 측정하는 데 사용된다.

(3) 라우팅 테이블

라우팅 테이블은 라우터가 패킷을 전달할 경로를 찾을 때 사용하는 기본 자료구조이다. 주요 정보로는 목적지 호스트 주소와 **다음 홉(next hop)**의 주소가 포함된다.

(4) 라우팅 정보의 처리 방법

  • 소스 라우팅(Source Routing): 송신 호스트가 직접 전체 경로를 결정하여 패킷에 포함하는 방식이다.
  • 분산 라우팅(Distributed Routing): 각 라우터가 분산된 방식으로 경로를 결정한다.
  • 중앙 라우팅(Centralized Routing): 중앙 제어 컴퓨터(RCC)가 전체 경로를 관리한다.
  • 계층 라우팅(Hierarchical Routing): 네트워크를 계층화하여 분산 및 중앙 라우팅을 적절히 조합하는 방식으로, 대규모 네트워크에 적합하다.

2) 혼잡 제어

**혼잡(Congestion)**은 네트워크 성능이 급격히 저하되는 현상을 의미한다. 이를 해결하기 위해 **혼잡 제어(Congestion Control)**가 필요하다.

  • 흐름 제어는 송수신 호스트 간 논리적 전송 속도 제어를 의미한다.
  • 혼잡 제어는 네트워크 자체의 전송 능력 문제를 다룬다.

흐름제어와 혼잡제어

(1) 혼잡의 원인

혼잡은 타임아웃 시간 설정 미숙, 패킷 순서 오류 처리, 피기배킹 사용, 패킷 생존 시간(TTL) 설정 문제 등 다양한 요인으로 인해 발생할 수 있다.

(2) 트래픽 성형

  • **트래픽 성형(Traffic Shaping)**은 송신 패킷의 빈도를 조절하여 버스트 현상을 완화하는 방법이다.
  • 대표적인 기법으로 리키 버킷(Leaky Bucket) 알고리즘이 있다.

트래픽 성형

(3) 혼잡 제거

혼잡이 발생한 지역이 주변 지역으로 확산되는 것을 방지하는 것이 중요하다. 이를 위해 가상 회선 방식에서 **자원 예약(Resource Reservation)**이 이루어지며, ECN(Explicit Congestion Notification)을 통해 혼잡 상태를 네트워크 상에 통지할 수 있다.

혼잡제거

3) 간단한 라우팅 프로토콜

  • 최단 경로 라우팅(Shortest Path Routing): 최소 홉 수 경로를 선택하여 패킷을 전달한다.
  • 플러딩(Flooding): 모든 경로로 패킷을 복제하여 전달하는 방식으로, 패킷 생존 시간(TTL)으로 무한 복제를 방지한다.

최단 경로 라우팅

4) 거리 벡터 라우팅 프로토콜

**거리 벡터 라우팅(Distance Vector Routing)**은 라우터가 인접 라우터와 라우팅 정보를 주기적으로 교환하는 방식이다.

  • 링크 벡터는 이웃 네트워크 연결 정보를 의미한다.
  • 거리 벡터는 목적지까지의 거리 정보를 제공한다.
  • 다음 홉 벡터는 목적지로 가는 다음 홉 정보를 나타낸다.

**RIP(Routing Information Protocol)**은 거리 벡터 방식에 기반한 가장 간단한 내부 라우팅 프로토콜이다. 소규모 네트워크에 적합하며, 목적지까지의 지연 시간이 짧은 경로를 우선 선택한다.

5) 링크 상태 라우팅 프로토콜

링크 상태(Link State) 라우팅 프로토콜은 각 라우터가 이웃 라우터까지의 링크 정보를 수집하고, 이를 네트워크 전체에 배포하여 전체 지도를 작성하는 방식이다. 플러딩(Flooding) 기법을 사용하며, 대표적으로 OSPF(Open Shortest Path First) 프로토콜이 있다.

6) 외부 라우팅 프로토콜

  • 내부 라우팅 프로토콜로는 RIP(거리 벡터 방식)과 OSPF(링크 상태 방식)가 있다.
  • 외부 라우팅 프로토콜에는 **BGP(Border Gateway Protocol)**가 있으며, 서로 다른 자율 시스템(AS) 간의 라우팅 정보를 교환한다. BGP는 TCP를 기반으로 동작한다.

3. IP 프로토콜 헤더의 역할

1) IP 헤더 구조

IP 프로토콜은 비연결형 서비스를 제공하며, 패킷 분할과 병합 기능을 수행한다. 데이터 자체의 체크섬은 제공하지 않고 헤더에 대해서만 체크섬 검사를 수행하며, 최선 노력(Best Effort) 방식으로 전송을 보장한다.

IP 헤더구조

주요 필드 설명

  • DS/ECN 필드는 IP 패킷의 서비스 품질을 관리한다.
    • **DS(Differentiated Services)**는 서비스 등급을 구분하여 트래픽을 차별화한다.
    • **ECN(Explicit Congestion Notification)**은 혼잡 상황을 통지한다.

DS/ECN
ECN 필드 값의 의미

  • 패킷 분할 관련 필드:
    • Identification 필드는 패킷 식별자이다.
    • DF(Don't Fragment) 플래그는 분할 금지를 지정한다.
    • MF(More Fragment) 플래그는 추가 분할 여부를 표시한다.
    • Fragment Offset은 분할된 패킷의 원본 위치를 나타낸다.
  • 주소 관련 필드:
    • Source Address는 송신 호스트 IP 주소이다.
    • Destination Address는 수신 호스트 IP 주소이다.

IP 주소 체계

  • 기타 필드:
    • Version Number: IP 프로토콜 버전
    • Header Length: IP 헤더 길이
    • Packet Length: 전체 패킷 길이
    • Time To Live (TTL): 패킷 생존 시간
    • Transport Protocol: 상위 전송 계층 프로토콜 식별
    • Header Checksum: 헤더 오류 검출
    • Options: 특수 기능 지원
    • Padding: 헤더 크기를 4바이트 단위로 맞춤

2) IP 주소 체계

IP 주소는 0~255 범위의 수로 표현되며, 첫 번째 옥텟 값에 따라 A, B, C, D, E 클래스(Class)로 구분된다.

IP 주소값에따른주소체계

 

1. 근거리통신망(LAN), 광역통신망(WAN), 중거리통신망(MAN)

1) 근거리통신망(LAN, Local Area Network)

  • 정의: 좁은 지역(건물, 캠퍼스) 내에서 운영되는 네트워크.
  • 특징:
    • 소규모 네트워크 구성, 고속 데이터 전송.
    • 브로드캐스트 방식으로 데이터 전송.
  • LAN의 네트워크 구조
    • 버스형: 하나의 공유 버스를 통해 여러 호스트 연결.
    • 링형: 모든 노드가 순환 구조로 연결되며 토큰을 이용해 충돌 방지.

2) 광역통신망(WAN, Wide Area Network)

  • 정의: 국가 이상 규모의 광범위한 네트워크.
  • 특징:
    • LAN 간 연결을 통해 WAN을 형성.
    • 점대점 연결이 필요하며, 교환 기능 필수.
    • 연결 수가 많아질수록 전송 매체 비용 증가.

3) 중거리통신망(MAN, Metropolitan Area Network)

  • 정의: 도시 규모의 네트워크, LAN보다 넓고 WAN보다 좁은 범위.
  • 특징:
    • DQDB(Distributed Queue Dual Bus) 구조 사용.
      • 두 개의 단 방향 선로가 존재 
      • 분산 데이터 큐를 유지
      • 충충돌 문제를 해결하기 위해 슬롯 링 개념을 변형한 FIFO 기반의 공유 슬롯 방식을 사용
      • ATM과 호환이 가능하도록 53바이트의 프레임을 지원
    • ATM과 호환 가능하며, 공유 슬롯 방식으로 충돌 해결.
    •  
      DQDB구조

2. 네트워크 간 연결(인터네트워킹)

1) 인터네트워킹 개념

  • 정의: 서로 다른 네트워크를 연결하는 기술.
  • 주요 장비
    • 리피터: 신호 증폭(1계층).
    • 브리지: LAN 간 데이터 패킷을 분석하여 중계(2계층).
    • 라우터: 네트워크 간 연결 및 경로 배정 수행(3계층).
    • 게이트웨이: 네트워크 프로토콜 변환 및 연결 수행.
    • 네트워킹 장비

2) 브리지(Bridge)

  • 역할: 네트워크 프레임을 분석하여 중계.
  • 특징:
    • 트랜스페런트 브리지(Transparent Bridge)
      • 사용자가 의식하지 않아도 자동으로 동작.
      • 브로드캐스트 프레임을 모든 포트로 전달.
    • 소스 라우팅 브리지(Source Routing Bridge)
      • 송신자가 경로 정보를 직접 포함하여 전송.
      • 링 구조 네트워크에서 주로 사용.
  • 컴퓨터 네트워크 브리지

3. IP 인터네트워킹 및 라우팅

1) IP 인터네트워킹

  • 정의: 서로 다른 네트워크를 IP 기반으로 연결하는 방식.
  • 특징:
    • 양쪽 MAC 계층이 다를 경우 패킷 변환 필요.
    • 경우에 따라 패킷 분할 및 병합 과정 필요.
    • IP 인터네트워킹의 구조
    • IP 인터네트워킹에서의 헤더 변환

2) 라우팅(Routing)

  • 정의: 네트워크 경로를 선택하여 패킷을 전송하는 과정.
  • 라우터로 네트워크를 구성한 예
  • 방식:
    • 고정 경로 배정(Fixed Routing)
      • 미리 정해진 경로를 사용하여 패킷을 전송.
      • 트래픽 변화에 대응 불가.
    • 적응 경로 배정(Adaptive Routing)
      • 네트워크 상태 변화에 따라 경로를 동적으로 변경.
      • 라우터 부담 증가 및 정보 불일치 가능성 존재.
  • 자율 시스템(AS, Autonomous System)
    • 동일한 라우팅 정책을 가진 네트워크 그룹.
    • 내부 라우팅 프로토콜(IGP) 및 외부 라우팅 프로토콜(EGP) 사용.

4. 서비스 품질(QoS, Quality of Service)

1) QoS 개요

  • 정의: 네트워크 서비스 품질을 유지하는 기술.
  • QoS 요소
    • 연결 설정 지연, 전송 속도, 전송 오류율, 우선순위 등.

2) 인터넷에서의 QoS

  • IP 프로토콜 특성
    • 모든 패킷을 동일하게 처리, 도착 순서 보장 안 됨.
    • 전송 데이터 유형에 따라 QoS 차등 적용 필요.
  • 데이터 유형별 특성
    • 영상 데이터: 실시간 전송 필요, 오류 허용 가능.
    • 컴퓨터 데이터: 오류 최소화 필요, 실시간 전송 불필요.
  • QoS

5. 요약

LAN: 좁은 지역(건물, 캠퍼스)에서 운영되는 네트워크.
WAN: 국가 이상 규모의 네트워크로, 라우터를 통해 연결됨.
MAN: 도시 단위의 네트워크, DQDB 구조 사용.
브리지: 네트워크 패킷 중계 장치, 데이터링크 계층에서 동작.
라우터: 네트워크 간 연결 및 경로 배정 수행.
QoS: 서비스 품질 유지 기술, 데이터 유형별 차별 적용.

+ Recent posts