Search

[정보통신망] 데이터 전송 기술 (3)

제목
Tag
작성일

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가 전체 네트워크 기준 최적 경로 계산 후 결과 배포
전체 최적화 가능
중앙 장애 발생 시 전체 영향 가능
대규모 네트워크에서는 부담 증가 가능
델타 경로선택
분산형 + 중앙집중형 라우팅 결합 방식
지역 수준에서는 빠르게 분산 처리
전체 네트워크 수준에서는 중앙 최적화 수행
인접 노드 수준에서는 분산형 방식
전체 네트워크 수준에서는 중앙집중형 방식 사용