이 강의는 부산대학교 탁성우 교수님의 컴퓨터 네트워크 강의 자료입니다.

우리는 Internet과 같은 Interconnected Network에서 Router을 사용한다.
Router는 왜 필요한 걸까? 역할과 특성 등을 이번 글에서 공부하겠다.

What is Router?

먼저 Router이란 무엇일까?

우리는 Internet이 상호 연결된 네트워크들의 모임이라고 배웠다.
그리고 Packet Switching을 이용해 Data를 교환한다고도 배웠다.

그럼 한 번 생각해보자.
그 수많은 상호 연결된 네트워크들 속에서 어떻게 목적지를 찾아서 Data를 보낼까?

바로 Router 가 존재하기 때문에 목적지를 정확히 찾는 일이 가능하다!
Router는 라우팅 테이블을 통해서 보내야 하는 곳의 IP 주소를 확인한다.
이후, 해당 목적지에 도달하도록 다른 라우터에게 Store & Forward를 한다.

Why we use Router?

우리는 그럼 Router를 왜 사용해야할까?

정답부터 말하자면, 서로 다른 네트워크 를 상호연결하기 위해서이다.
그럼 서로 다른 네트워크는 어떻게 구별을 하나요??

흔히 우리가 볼 수 있는 IP 주소는 10.125.65.59 와 같은 형태를 가진다.
이 IP 주소의 구조는 Network number + Host number로 이루어지는데,
앞의 10.125.65 까지를 Network number, 뒤의 두자리 59를 Host라고 한다.

이를 구분하기 위해서 Subnet Mask 라는 255.255.255.0의 IP를 사용하며,
Subnet Mask를 IP에 AND 연산을 하게 되면, Network number를 알 수 있다!
우리는 이 Network number가 다른 네트워크를 서로 다른 네트워크 라고 부른다.

각 Router들은 위에서 언급했던 라우팅 테이블을 하나씩 들고 있다.
해당 테이블에 Host number을 Masking한 Network number만 들고있게 된다.
최종 목적지인 Destination, 다음 목적지인 Next hop의 IP를 들고 Packet에게 길을 열어준다.

Routing Protocol

Router는 항상 최단거리로 Packet을 전송해야 할 의무가 있다.
그럼 최단거리를 알려면 우리의 상식으로는 Graph의 Topology를 파악해야 한다.
그럼 어떤 식으로 Topology를 파악할 수 있을까?

Static & Dynamic

Static(정적 라우팅) 방식과 Dynamic(동적 라우팅) 방식이 존재한다.
Static 방식은, 우리가 직접 Next Hop을 지정해서 Table을 채워주는 방식이다.
이는 매우 빠르고 직관적이지만, Router의 수가 많아지면 관리가 어렵다.
그리고 최적의 해를 보장하기가 쉽지 않다.

따라서 현재는 많은 라우터가 Dynamic 방식을 사용해 직접 계산하도록 한다.
현대에는 연산 속도가 매우 빨라졌기 때문에, 거의 Static과 동급이라고 볼 수 있다.
아래는 Dynamic 방식의 대표적 Protocol 들이다.

OSPF

OSPF(Open Shortest Path First)란 최단 경로 우선 프로토콜을 의미한다.
주로 IGP(Internal Gateway Protocol)로 대규모 기업망에서 사용이 된다.
Convergence Time이 매우 빠르지만, 대용량의 정보를 교환하지는 않는다.
Convergence Time이란, 새 정보를 받아 새 라우팅 테이블로 업데이트 되는 시간이다.

Link State Algorithm에 의해 동작하며, 대표적으로 Dijkstra 가 있다.

BGP

BGP(Border Gateway Protocol)이란, 외부 라우팅 프로토콜을 의미한다.
주로 대규모 네트워크를 연결하는 데에 사용되는 방식이다. ex) SKT와 KT의 통신
OSPF와는 다르게 자신과 연결된 Node에게서만 정보를 받기 때문에 느린 Convergence Time을 갖고 있다.
하지만 장점으로는 대용량의 정보를 교환할 수 있다.

Distance Vector Algorithm에 의해 동작하며, 대표적으로 Bellman-Ford 가 있다.
Neighbor node의 정보만 받아들이며 Table을 작성하게 된다.

  • 대표적인 Issue : Count to Infinity