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

요약

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

+ Recent posts