본문 바로가기
CS/Network

5-1. 네트워크 계층과 라우팅

by pizzz 2022. 12. 23.

네트워크 계층과 라우팅

 

네트워크 계층

- OSI모델에서의 라우팅 등의 기능을 수행

 

라우터

- 네트워크 계층의 핵심 장비

- 둘 혹은 그 이상의 네트워크 간 데이터 전송을 위해 최적 경로를 설정해주는 인터넷 접속장비

- 네트워크를 통해 정보를 주고 받을 때 데이터에 포함된 수신측의 주소를 읽고 가장 적절한 통신통로를 이용해 다른 통신망으로 전송하는 장치

- 전화국의 교환기와 비슷한 개념

 

 

- 다른 기종 간의 네트워크를 연결하는 기능 : 여러 가지 프로토콜에서 전송되는 패킷을 수신할 수 있어야함

- 수신된 패킷을 여러 경로 중 가장 효율적인 경로를 선택하여 전송

- 패킷(Packet) : 통신망에서 주고받는 데이터 단위, 데이터 뿐만 아니라 목적지 주소 까지 포함

- 라우팅 테이블 : 경로를 설정해주는 가장 기본적인 단위, 정보 주고받으면서 가장 최신의 정보를 유지. (RIP,OSPF 등이 대표적)

 

 

네트워크 계층의 주요 기능

- 경로 설정 : 라우팅 알고리즘

- 스위칭 : 라우터에 도착한 패킷을 적절한 포트로 보냄

- 연결 설정 : 경우에 따라 데이터 전송 전에 연결 설정 필요

 

네트워크 계층 관련 프로토콜

- IP프로토콜 : 네트워크 계층 핵심프로토콜

- TCP 프로토콜 : 트랜스포트 계층 핵심 프로토콜

 

 

라우팅 알고리즘

  • 정적 알고리즘
    • 라우팅을 결정할 때 현재의 트래픽과 토폴로지에 대한 측정과 변화를 기준으로 삼지않음
    • 장점 : 단순성으로 적당한 부하를 가진 네트워크에서는 적절히 동작
    • 단점 : 유연성의 결여로 트래픽 부하나 장애에 잘 대응할 수가 없다.
  • 동적 알고리즘 
    • 토폴로지와 현재 트래픽에서의 변화를 라우팅 결정에 반영
    • 많은 유연성을 제공하지만 효율적으로 구현하는 것은 어렵다
      • 라우터들은 네트워크의 상황변화를 이웃라우터의 보고에 의해서 유지
      • 이러한 보고는 네트워크 트래픽 증가 야기, 더 많은 네트워크의 상황변화를 일으킴

- 대부분의 컴퓨터 네트워크들은 동적 라우팅 알고리즘 사용

- 대표적인 동적 라우팅 알고리즘 : Distance Vector(거리벡터), Link State(링크상태)

 

Distance Vector(거리벡터) 라우팅 알고리즘

  • Distance Vector 라우팅
    • 모든 라우터는 네트워크의 라우터에 대한 엔트리를 갖는 거리벡터(전체 네트워크에 포함된 개별 라우터까지의 지연시간) 유지
    • 모든 라우터는 자신과 직접 연결된 이웃(Neighbor) 라우터거리 벡터를 교환

 

 

- 라우팅 테이블은 이웃라우터(B,F,H)가 측정한 값, 지연시간은 G가 측정한 값

- G -> C까지 경로 B,F,H거치는 경우 중 가장 효율적인 경로 선택

- 최상의 경로는 지연시간 7의 H를 경유

 

Link State 라우팅 알고리즘

- autonomous systems (AS, 독립적인 네트워크 자율시스템) 내에서 많이 사용

* 학교 내의 망도 하나의 AS

- OSPF(Open Shortest Path First, 최단 경로 우선 프로토콜) 라우팅 프로토콜에서 사용

- Dijkstra algorithm을 사용 (single source 하나의 출발지에서 나머지 노드들까지의 최단거리를 찾아주는 알고리즘)

- 5step으로 동작

  1. 각 라우터는 이웃 라우터를 인지하고 그들의 네트워크 주소를 숙지
    • 업(up)상태에 있는 네트워크 인터페이스 인지
  2. 이웃라우터에 대한 지연시간 또는 비용 측정
    • HELLO 패킷을 주고받아 왕복지연시간 측정하여 2로 나눈 값 = 지연시간
    • HELLO패킷 : 두 이웃 라우터 간 인접관계설정하고 유지하는 기능 수행
  3. Link State를 모든 라우터에게 알려주기 위한 링크-상태패킷(LSP)을 생성
  4. 이 LSP를 다른 라우터에게 분배
    • 패킷 분배하는 방법으로 플러딩(Flooding)알고리즘 사용
    • 플러딩알고리즘 : 어떤 노드에서 온 하나의 패킷을 라우터에 접속되어 있는 다른 모든 노드로 전달
    • 각 라우터는 도착한 LSP가 새로운 것이면 방금 도착한 링크를 제외한 모든 링크로 이 LSP를 전송
  5. 다른 라우터로의 최단 경로 계산
    • 각 라우터가 네트워크의 모든 LSP를 수집하였으면 모든 링크가 표현되는 완전한 네트워크 그래프를 만들 수 있음
    • 각 라우터는 다른 라우터까지의 최단 경로를 알기위해 Dijkstra알고리즘 사용

링크상태패킷


예제) 모든 네트워크 노드까지 최단 경로를 계산하기 위해 Dijkstra알고리즘을 사용하여 계산하시오

풀이)