Flow란 무엇일까?
플로우는 송신자로부터 수신자로 향하는 패킷들의 흐름을 의미한다. 여러 플로우가 동시에 동일한 수신자로 전달될 수 있다.
플로우를 제어함으로써 네트워크와 사용자가 과부하 상태가 되는 것을 방지하여 처리량과 응답시간의 저하를 막고, 자원을 보호할 수 있다. 또한 deadlock 상황을 피할 수 있으며, 사용자간 자원을 공정하게 분배할 수 있으며, 네트워크와 사용자의 속도를 일치시킬 수 있다.
Sliding Window Control Scheme
슬라이딩 윈도우 제어 방식에서 사용되는 윈도우 크기 W는 송신 노드(source node)와 수신 노드(destination node)의 협의하에 결정된다.
송신 노드는 수신 노드로부터 승인(authorization)을 받지 않고도 최대 W개의 세그먼트를 전송할 수 있다.
수신 노드로부터 승인을 받으면, 송신 노드는 윈도우를 갱신한다.
아래 그림은 수신 노드가 각 윈도우의 마지막 세그먼트를 수신할 때 승인을 발행하는 경우이다.
$T_S$는 segment transimission time을 의미하고, $T_A$는 authorization transimission time을 의미한다.
$U$는 윈도우 크기만큼의 세그먼트를 보내고, 다시 세그먼트를 전송할때 까지의 시간을 의미한다.
따라서 $U =4×T_S+T_{PRO}+T_A+T_{PRO}$가 된다. (위 그림에서 W=4)
처리량을 구해본다면, W(segments)/U(unit time)이 될 것이니 $\frac{W}{W×T_S+2T_{PRO}+T_A}$이 된다.
W가 커지면 처리량은 좋아지지만, 플로우 제어가 어려워진다.
Input Rate Control Scheme
입력 속도 제어 방식에는 Credit이라는게 있는데, 이 크레딧에 따라 입력 속도가 제어된다.
$C$는 송신 노드에 주기적으로 부여되는 크레딧의 수를 의미하며, $C_{max}$는 송신 노드가 누적할 수 있는 최대 크레딧의 수를 의미한다. $\tau$는 지정된 크레딧 수 C가 송신 노드의 부여되는 간격의 길이를 의미한다.
각 간격 $\tau$의 시작 시점에서 송신 노드에 C개의 크레딧이 제공된다. 위 그림에서 C = 3이므로, +3이 된 것을 볼 수 있다.
송신 노드는 한 개의 크레딧을 소모하여 하나의 세그먼트를 전송할 수 있고, 송신 노드에 크레딧이 남아있지 않으면 세그먼트를 전송할 수 없다.
송신 노드에 누적되는 크레딧 수는 항상 $C_{max}$로 제한되므로, 위 그림에서 세번째 $\tau$ 시작 시점에서 크레딧이 3개가 아닌 2개만 추가되었다. ($C_{max} = 4$)
수신 노드로 가는 플로우의 평균 속도는 $\frac{C}{\tau}$이며,
수신 노드로 가는 플로우의 최대 속도는 $\frac{C_{max}}{\tau}$이다.
예제를 한번 들어보겠다.
송신 노드에서 세그먼트가 도착하는 순서가 Markov modulated Poisson process로 가정된다. 이 MMPP가 무엇이냐면, 세그먼트가 일정한 간격마다 도착하는 것이 아닌 예측할 수 없게 도착하는 것이다. 세그먼트가 몰리는 시간을 Busy, 한가한 시간을 Idle이라고 표현한다.
$\sigma_1$ = 5sec
$\sigma_2$ = 95sec
$\lambda_1$ = 7segments/sec
$\lambda_2$ = 3/19 segments/sec 이라고 가정한다. Idle한 시간대에는 세그먼트가 초당 1개 미만으로 도착한다.
$C$ = 5credits
$C_{max}$= 8credits
$\tau$= 10초 (플로우를 엄격하게 제어)로 가정한 경우와,
$C$= 15credits
$C_{max}$= 24credits
$\tau$= 30초 (플로우를 느슨하게 제어)로 가정한 경우가 있다.
도착하는 패킷이 MMPP일 때, 플로우가 제어되지 않은 경우의 departure time도 제각각인 것을 볼 수 있다.
하지만 플로우가 제어된 경우에는 departure time이 제법 일직선을 이루고 있는데, 이는 플로우를 제어함으로써 수신 노드에게 regular traffic을 제공한 것으로 볼 수 있다.
플로우가 느슨하게 제어될 때는, delay의 평균값은 더 작다.
플로우가 타이트하게 제어될 때는, 세그먼트 간 departure time의 분산은 더 작다.
** 대학교 수업을 듣고 이해한 부분을 최대한 풀어서 작성한 글입니다.
틀린 정보가 존재할 수 있으며, 언제나 피드백은 환영입니다. **
'DKU > 데이터 통신' 카테고리의 다른 글
Routing (0) | 2024.12.09 |
---|---|
HDLC(High-level Data Link Protocol) (0) | 2024.12.03 |
Error Control 6 (0) | 2024.11.20 |
Error Control 5 (0) | 2024.11.19 |
ARQ for Deep Space Communications 과제 분석 (2) | 2024.11.16 |