.
1. 흐름제어, 혼잡제어, 라우팅
컴퓨터 통신망에서는 데이터를 안정적으로 전송하기 위해 여러 제어 기능이 필요하다.
대표적인 기능:
•
흐름제어 (Flow Control)
•
혼잡제어 (Congestion Control)
•
라우팅 (Routing)
•
오류제어 (Error Control)
•
접근제어 (Access Control)
이러한 기능들은 부 네트워크(subnetwork) 내부 환경과 관련되며 통신망 성능 유지와 혼잡 방지를 목적으로 한다.
1.1. 목적별 통신 기능의 구분
흐름제어
•
송신측과 수신측 사이의 데이터 전송 속도를 조절하여 통신 성능을 유지하는 기능
혼잡제어
•
네트워크 내부에 과도한 트래픽이 몰리는 현상을 방지하는 기능
라우팅
•
목적지까지의 최적 경로를 선택하는 기능
이 세 기능은 서로 독립적이지만 실제 네트워크에서는 함께 동작한다.
예를 들어:
•
흐름제어 실패
◦
수신측 버퍼 overflow 가능
•
혼잡제어 실패
◦
네트워크 전체 과부하 발생
•
라우팅 비효율
◦
특정 구간 혼잡 증가
2. 흐름제어
2.1. 흐름제어 정의 및 목적
송신측과 수신측 사이의 데이터 전송량과 전송 속도를 조절하는 기능
•
송신측이 너무 빠르게 데이터를 보내면 수신측 버퍼가 데이터를 처리하지 못해 overflow가 발생할 수 있음
•
따라서 송신 속도와 수신 처리 속도를 맞추는 과정이 필요
목적
•
통신망 성능 최적화
•
데이터 손실 방지
•
혼잡 방지
2.2. 흐름제어의 네 가지 원칙
2.2.1. 속도조절
블록 간 도착 간격을 조절하는 방식
•
송신 속도를 감소시켜 수신측 부하를 줄임
•
예시: choke packet 이용
◦
네트워크가 송신측에게 전송 속도 감소 요청
2.2.2. 거부 (Rejection)
수신측이 송신측 데이터 수신을 거부하는 방식
•
수신측 상태가 불가능한 경우 송신 중단 요청
•
예시:
◦
무시 방법 - 송신 데이터 자체를 무시
◦
stop-and-go 방법 - 송신 중지 후 다시 허용
2.2.3. 단일 승낙 (Single Permission)
매번 송신 허가를 받아야 하는 방식
•
송신측은 데이터를 보내기 전에 수신측 허가를 기다림
•
예시:
◦
wait-before-go 방식
◦
ask-and-wait 방식
•
속도는 느리지만 안정성 높음
2.2.4. 다중 승낙 (Multiple Permission)
정해진 개수의 블록을 연속적으로 전송 가능한 방식
•
대표적으로 Sliding Window 방식 사용
•
송신측은 ACK를 기다리지 않고 여러 프레임을 연속 전송할 수 있음
예시:
오류 발생한 4부터 이어서 전송
특징
•
전송 효율 높음
•
고속 네트워크에 적합
•
구현 복잡도 증가
3. 혼잡제어
3.1. 혼잡 (Congestion)
전송 데이터가 급격히 증가하여 통신망에 과부하가 발생하고 데이터 전송 속도가 급격히 저하되는 현상
혼잡 발생 과정
•
과입력 전송 지역부터 전체 네트워크까지 단계적으로 발생
•
버퍼 혼잡: 패킷 queue overflow
•
노드 혼잡: 특정 노드 과부하
•
국부 혼잡: 특정 구간 혼잡
•
전체 혼잡: 전체 네트워크 성능 저하
혼잡이 심해지면 오히려 패킷 투입량이 증가해도 실제 처리량은 감소하게 됨
3.3. 혼잡제어 방법
전송량 제한
•
허가증(permit)을 이용하여 전송량을 제한
•
네트워크가 허용 가능한 수준 이하로 데이터 전송량 유지
•
예시: Isarithmic 흐름제어 방식
네트워크 내부 부하 감소
•
네트워크 내부 부하 자체를 줄이는 방식
•
일부 패킷 폐기
•
흐름제어 거부 방식 사용
국부적 전송량 재분배
•
특정 노드나 링크에 집중된 트래픽을 다른 경로로 우회시킴
•
경로선택(Routing) 이용
4. 라우팅 (Routing)
데이터 블록이 목적지까지 전달될 수 있도록 출발 노드에서 목적 노드까지의 경로를 결정하는 기능
목적
•
네트워크 성능 최적화
•
임계값(경계조건) 유지
◦
평균 패킷 전송 시간 최소화
◦
네트워크 자원 활용 극대화
•
네트워크 혼잡 방지
•
전송 신뢰도 향상
4.1. 라우팅 테이블
라우터는 목적지까지의 경로 정보를 라우팅 테이블(Routing Table) 형태로 관리
패킷이 들어오면 라우터는 목적지 주소를 확인한 뒤, 라우팅 테이블을 조회하여 다음에 어느 노드(next hop)로 보낼지 결정함
•
라우팅 테이블 구성 예시
목적지 네트워크 | 다음 노드(Next Hop) | 비용(Cost) |
192.168.1.0 | Router B | 2 |
192.168.2.0 | Router C | 1 |
192.168.3.0 | Router D | 5 |
◦
Destination
▪
최종 목적지 네트워크
◦
Next Hop
▪
다음으로 전달할 라우터
◦
Cost(Metric)
▪
해당 경로 비용
▪
hop 수, 지연시간, 대역폭 등을 기준으로 계산
라우터는 일반적으로 cost가 가장 낮은 경로를 선택하며 네트워크 상태 변화에 따라 계속 갱신될 수 있다.
4.2. 라우팅 방법
4.2.1. 비적응적 라우팅
네트워크 상태 변화와 관계없이 고정된 방식으로 경로를 선택
랜덤 라우팅
•
다음 노드를 임의로 선택
•
구현 단순
•
모든 경로 동일 확률 선택
•
루프(loop) 발생 가능성 존재
플러딩 라우팅
•
수신 노드를 제외한 모든 노드로 패킷 전달
•
경로 탐색 확실
•
매우 큰 트래픽 발생
고정 경로선택
•
미리 정한 경로만 사용
•
네트워크 상태가 바뀌어도 동일 경로 유지
•
구현 단순하고 관리 쉬움
•
장애 발생 시 우회 어려움
4.2.2. 적응적 라우팅
네트워크 상태에 따라 경로를 동적으로 변경
국부 경로선택 (Local Routing)
•
각 노드가 자신 주변 정보만 이용하여 경로 결정
•
네트워크 전체 상태는 알지 못함
•
계산 단순하고 빠름
•
전체 최적 경로가 아닐 수 있음
•
Hot Potato Routing
◦
가장 짧은 queue를 가진 출력 링크 선택
◦
패킷을 최대한 빨리 다른 노드로 넘기는 방식
◦
현재 노드의 부담 감소 목적
•
국부지연평가 기반 라우팅
◦
과거 전송 지연(delay) 정보를 기반으로 경로 선택
◦
지연이 적었던 경로를 우선 사용
◦
네트워크 상태 변화에 어느 정도 적응 가능
분산형 경로선택
•
인접 노드끼리 라우팅 정보를 교환
•
각 노드는 인접 노드 상태, 전송 지연 정보 등을 기반으로 경로 결정
•
중앙 제어 장치 없이 네트워크 전체가 협력하여 라우팅 수행
•
대표 개념: Distance Vector, Link State
•
장애 대응이 유연하고 확장성이 좋지만 전체 최저고하까지 시간 걸릴 수 있음
중앙집중형 경로선택
•
중앙 Routing Center(NRC)가 전체 네트워크 정보를 관리
•
각 노드는 자신의 상태 정보를 NRC에 전달
•
NRC가 전체 네트워크 기준 최적 경로 계산 후 결과 배포
•
전체 최적화 가능
•
중앙 장애 발생 시 전체 영향 가능
•
대규모 네트워크에서는 부담 증가 가능
델타 경로선택
•
분산형 + 중앙집중형 라우팅 결합 방식
•
지역 수준에서는 빠르게 분산 처리
•
전체 네트워크 수준에서는 중앙 최적화 수행
•
인접 노드 수준에서는 분산형 방식
•
전체 네트워크 수준에서는 중앙집중형 방식 사용
