순간이 영원해 지는 곳
쉽게 설명한 라우팅(Routing)과 포워딩(Forwarding) 본문
라우팅과 포워딩은 네트워크 레이어(Network Layer)에서 반드시 있어야 하는 두 가지 기능이다.
이는 네트워크 레이어의 장비인 라우터(Router)가 가지고 있는 기능이기도 하다.
그런데 공부하는 교재도 그렇고 왜 그렇게 이런 개념에 대해서 알기 쉽게 설명하지는 않고 그냥 외우란 식으로
라우팅은 출발지에서 목적지까지의 경로를 결정하는 것을 말하고 포워딩은 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것을 말한다.
라고만 되어 있는 것일까?
사실 정확한 개념을 깨우치고 나면 저 말이 맞다는 걸 알겠지만, 모르는 사람 입장에서는 두 기능의 차이가 뭔지 헛갈릴 수도 있다.
이에 내가 이해한 대로 알기 쉽게 풀어 설명 해보려 한다!!!
위에서 말한 포워딩의 정의를 보면 입력 포트와 출력 포트란 말이 있는데, 사실 라우터에서 입력포트와 출력포트가 따로 정해져 있는 것은 아니다. 모든 포트에서 입력과 출력이 있을 수 있다.
여기서 입력포트란 패킷이 들어온 포트를 말하고 출력 포트란 패킷이 나가는 포트를 말한다.
또한 라우팅과 포워딩을 이야기 하기 위해서는 포워딩 테이블(Forwarding Table) 또는 라우팅 테이블(Routing Table)이라고 부르는 표에 대해서 알아야 한다.
여기서도 라우팅/포워딩이라는 말이 혼용되어 헛갈릴 수 있는데, 정확한 명칭은 포워딩 테이블이 맞는 것 같다.
라우팅 테이블이라고 불리는 이유는 라우팅 알고리즘을 통해 이 테이블이 만들어 지기 때문이며,
포워딩 테이블이라고 불리는 이유는 이 테이블을 참조하여 포워딩이 이뤄지기 때문이다.
네트워크에 관심이 있는 사람이라면 알겠지만, 인터넷으로 대표되는 네트워크에서 출발지 부터 목적지까지 데이터를 보낼 수 있는 경로는 무수히 많다. 거쳐서 갈 수 있는 라우터의 갯수가 많다는 얘기다.
이렇게 많은 경로중에서 한 경로를 선택하는 것이 라우팅 알고리즘이다.
보통은 비용이 가장 적게 드는(가장 빨리 전송할수 있는) 경로가 선택된다.
그 선택된 경로를 저장해 둔 것이 포워딩 테이블이다.
어떤 포트로 패킷을 내보냈을때 목적지까지 가장 빨리 도달하는가를 계산해서 저장해둔 표라고 볼 수 있다.
라우터에서는 Network Topology를 입력받아 라우팅 알고리즘을 통해 포워딩 테이블을 만든다.
Network Topology란 쉽게 말해서 라우터들이 어떻게 연결되어 있고, 서로의 거리는 얼마이고 하는 등의 정보라고 보면 된다.
라우팅 알고리즘은 RIP, OSPF와 같은 라우팅 테이블을 만드는 방법(Protocol)을 말하며, 스태틱(Static) 라우팅이라고 하는 사람이 직접 포워딩 테이블을 만드는 방법을 사용할 수도 있다.
-> 라우팅(Routing)이란 이렇게 라우팅 알고리즘을 이용하여 포워딩 테이블을 만드는 작업이라고 볼 수 있다.
라우팅 테이블을 만드는 과정이 곧 출발지부터 목적지까지 경로를 찾는(결정하는) 일이 된다.
라우팅 테이블은 네트워크 상태변화(연결이 끊겼다거나 어떤 경로의 비용/속도가 변했다거나)에 따라 갱신되어야 한다.
경로상에 있는 어떤 라우터가 고장난 경우 그 경로로 패킷을 보내면 절대 전송이 안될 것이므로.
이렇게 만들어진 포워딩 테이블에는 최소 두 가지의 정보가 들어 있다.
하나는 목적지의 주소(Ethernet에서는 IP Address)이고, 다른 하나는 출력포트 또는 출력링크이다.
-> 포워딩(Forwarding)은 포워딩 테이블에 적힌 목적지 주소에 대응된 출력 포트로 패킷을 이동시키는 작업을 말한다.
다시말해 라우터의 기능인 라우팅과 포워딩은 [라우팅 알고리즘을 통해 만들어진 포워딩 테이블을 참조하여 패킷의 목적지에 맞게 적당한 포트로 패킷을 이동시키는 것] 이라고 할 수 있다.
또한 포워딩은 Switching 이라고 하기도 하며, 라우팅은 Relaying 이라고 하기도 한다.
'통신 & 네트워크' 카테고리의 다른 글
CSMA, CSMA/CD, CSMA/CA 정리 (31) | 2009.08.16 |
---|---|
패킷의 여행 (4) | 2009.03.18 |
Go-back-N ARQ, Selective Repeat ARQ 프로토콜 정리 (23) | 2009.03.02 |
Link-State Routing Algorithm에 사용되는 Dijkstra's algorithm (3) | 2008.12.28 |
OSI 7 Layer 정리 (4) | 2008.12.02 |