네트워크의 모든 장치에 대해 라우팅 테이블에 경로를 수동으로 구성하는 것은 엄청나게 지루한 작업이 될 것입니다. 이 프로세스를 자동화하기 위해 동적 라우팅 프로토콜을 사용합니다. 이러한 프로토콜을 통해 라우터는 다양한 경로를 학습하고, 이를 라우팅 테이블에 구축하며, 그에 따라 패킷을 전달하여 네트워크 변경 사항에 자동으로 적응할 수 있습니다. 라우팅 프로토콜에는 거리 벡터 (distance vector) 와 링크 상태 (link state) 라는 두 가지 주요 유형이 있습니다.
거리 벡터 프로토콜
거리 벡터 프로토콜은 "소문을 통한 라우팅" 원칙에 따라 작동합니다. 각 라우터는 정기적으로 전체 라우팅 테이블을 직접 연결된 이웃에게 공유합니다. 라우터가 이웃으로부터 라우팅 테이블을 수신하면, 새롭거나 더 나은 경로가 있는지 자신의 테이블을 업데이트합니다. "거리"는 일반적으로 홉 수 (hop count) 와 같은 메트릭으로 측정됩니다. 이 방법은 간단하지만 수렴 속도가 느릴 수 있으며 라우팅 루프에 취약합니다. 거리 벡터 프로토콜의 예로는 라우팅 정보 프로토콜 (RIP) 이 있습니다.
링크 상태 프로토콜
대조적으로, 링크 상태 프로토콜은 각 라우터에 네트워크 토폴로지 전체 맵을 제공합니다. 라우터는 전체 라우팅 테이블을 공유하는 대신, 자신의 링크 상태 (예: 연결된 이웃 및 연결 비용) 에 대한 정보를 네트워크의 다른 모든 라우터에게 보냅니다. 이 정보를 사용하여 각 라우터는 네트워크의 동일한 맵을 독립적으로 구축하고 모든 목적지에 대한 최적의 경로를 계산할 수 있습니다. 이 접근 방식은 거리 벡터 프로토콜보다 빠른 네트워크 수렴으로 이어지며 확장성이 더 뛰어납니다. 예로는 OSPF(Open Shortest Path First) 프로토콜이 있습니다.
네트워크 수렴
프로토콜에 대해 더 자세히 논의하기 전에, 라우팅에서 네트워크 수렴으로 알려진 핵심 개념을 이해하는 것이 중요합니다. 라우팅 프로토콜을 사용할 때 라우터는 정보를 수집하고 교환하기 위해 통신합니다. 수렴은 모든 라우터가 네트워크 토폴로지에 대한 일관되고 정확한 보기를 갖는 상태입니다. 모든 라우팅 테이블이 전체 네트워크를 올바르게 매핑하면 네트워크는 "수렴"된 것으로 간주됩니다. 링크 다운과 같은 변경 사항이 발생하면 모든 라우터가 변경 사항을 학습하고 라우팅 테이블을 업데이트할 때까지 수렴이 일시적으로 중단됩니다.