![post-thumbnail](https://velog.velcdn.com/images/alpaka206/post/aa9360f0-0f84-44f8-a486-f3506fa1a122/image.png)
경로 제어(Routing)의 개요
- 경로 제어는 송·수신 측 간의 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능이다.
- 최적 패킷 교환 경로란 어느 한 경로에 데이터의 양이 집중하는 것을 피하면서, 최저의 비용으로 최단 시간에 송신할 수 있는 경로를 의미한다.
- 경로 제어는 경로 제어표(Routing Table)를 참조해서 이루어지며, 라우터에 의해 수행된다.
- 경로 제어 요소: 성능 기준, 경로의 결정 시간과 장소, 정보 발생지, 경로 정보의 갱신 시간
경로 제어 프로토콜(Routing Protocol)
- 경로 제어 프로토콜이란 효율적인 경로 제어를 위해 네트워크 정보를 생성, 교환, 제어하는 프로토콜을 총칭한다.
- 대표적인 경로 제어 프로토콜에는 IGP, EGP, BGP가 있다.
- IGP(Interior Gateway Protocol, 내부 게이트웨이 프로토콜)
- 하나의 자율 시스템(AS) 내의 라우팅에 사용되는 프로토콜이다.
- RIP(Routing Information Protocol)
- 현재 가장 널리 사용되는 라우팅 프로토콜로 거리 벡터 라우팅 프로토콜이라고도 불리며, 최단 경로 탐색에 Bellman-Ford 알고리즘이 사용된다.
- 소규모 동종의 네트워크(자율 시스템, AS) 내에서 효율적인 방법이다.
- 최대 홉(Hop) 수를 15로 제한하므로 15를 초과하는 경우는 도달할 수 없는 네트워크를 의미하는데 이것은 대규모 네트워크에서는 RIP를 사용할 수 없음을 의미한다.
- 라우팅 정보를 30초마다 네트워크 내의 모든 라우터에 알리며, 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주한다.
- OSPF(Open Shortest Path First protocol)
- RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜로 대규모 네트워크에서 많이 사용된다.
- 인터넷 망에서 이용자가 최단 경로를 선정할 수 있도록 라우팅 정보에 노드간의 거리 정보, 링크 상태 정보를 실시간으로 반영하여 최단 경로로 라우팅을 지원한다.
- 최단 경로 탐색에 다익스트라(Dijkstra) 알고리즘을 사용한다.
- 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에 알린다.
- 하나의 자율 시스템(AS)에서 동작하면서 내부 라우팅 프로토콜의 그룹에 도달한다.
- EGP(Exterior Gateway Protocol, 외부 게이트웨이 프로토콜)
- 자율 시스템(AS) 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용되는 프로토콜이다.
- BGP(Border Gateway Protocol)
- 자율 시스템(AS) 간의 라우팅 프로토콜로, EGP의 단점을 보완하기 위해 만들어졌다.
- 초기에 BGP 라우터들이 연결될 때에는 전체 경로 제어표(라우팅 테이블)를 교환하고, 이후에는 변화된 정보만을 교환한다.
트래픽 제어(Traffic Control)의 개요
- 트래픽 제어는 네트워크의 보호, 성능 유지, 네트워크 자원의 효율적인 이용을 위해 전송되는 패킷의 흐름 또는 그 양을 조절하는 기능으로 흐름 제어, 폭주(혼합) 제어, 교착상태 방지 기법이 있다.
흐름 제어(Flow Control)
- 흐름 제어란 네트워크 내의 원활한 흐름을 위해 송·수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능이다.
- 송신 측과 수신측 간의 처리 속도 또는 버퍼 크기의 차이에 의해 생길 수 있는 수신 버퍼 오버플로(Overflow)를 방지하기 위한 기능이다.
- 정지-대기(Stop-and-Wait)
- 수신 측의 확인 신호(ACK)를 받은 후에 다음 패킷을 전송하는 방식이다.
- 한 번에 하나의 패킷만을 전송할 수 있다.
- 슬라이딩 윈도우(Sliding Window)
- 확인 신호, 즉 수신 통지를 이용하여 송신 데이터의 양을 조절하는 방식이다.
- 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷의 수만큼 연속적으로 전송하는 방식으로, 한 번에 여러 개의 패킷을 전송할 수 있어 전송 효율이 좋다.
- 송신 측은 수신 측으로부터 확인 신호(ACK) 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기(Window Size)를 의미한다.
- 윈도우 크기(Window Size)는 상황에 따라 변한다. 즉, 수신 측으로부터 이전에 송신한 패킷에 대한 긍정 수신 응답(ACK)이 전달된 경우 윈도우 크기는 증가하고, 수신 측으로부터 이전에 송신한 패킷에 대한 부정 수신 응답(NAK)이 전달된 경우 윈도우 크기는 감소한다.
폭주(혼잡) 제어(Congestion Control)
- 흐름 제어(Flow Control)가 송·수신 측 사이의 패킷 수를 제어하는 기능이라면, 폭주 제어는 네트워크 내의 패킷 수를 조절하여 네트워크의 오버플로(Overflow)를 방지하는 기능을 한다.
- 느린 시작(Slow Start)
- 윈도우의 크기를 1, 2, 4, 8, ...과 같이 2배씩 지수적으로 증가시켜 초기에는 느리지만 갈수록 빨라진다.
- 전송 데이터의 크기가 임계 값에 도달하면 혼잡 회피 단계로 넘어간다.
- 혼잡 회피(Congestion Avoidance)
- 느린 시작(Slow Start)의 지수적 증가가 임계 값에 도달되면 혼잡으로 간주하고 회피를 위해 윈도우의 크기를 1씩 선형적으로 증가시켜 혼잡을 예방하는 방식이다.
교착상태(Dead Lock) 방지
- 교착상태란 교환기 내에 패킷들을 축적하는 기억 공간이 꽉 차 있을 때 다음 패킷들이 기억 공간에 들어가기 위해 무한정 기다리는 현상을 말한다.
- 패킷이 같은 목적지를 갖지 않도록 할당하고, 교착상태 발생 시에는 교착상태에 있는 한 단말장치를 선택하여 패킷 버퍼를 폐기한다.