![[Network] Scheduling mechanisms](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJCsTh%2FbtsASIb1foT%2Fia8LhvhE6IaR5EwkYkMVrk%2Fimg.png)
우선, 개념을 복습하기에 앞서
스케줄링이 어디서 쓰이는지 알고 학습해야 합니다.
라우터 내에 일어나는 포워딩 과정에서, Input port가 아닌 Output port에서
버퍼링, 즉 datagram buffer queueing이 발생했을 때
어떤 패킷을 내보낼지 결정할 때 사용하는 정책입니다.
FIFO Queue를 사용할 때는, 큐에 도착한 순서대로 내보내는데요,
실제 상황에서는, 큐가 꽉 찼을 때 새로운 패킷이 도착했을 경우 버릴 패킷을 정해야 합니다.
1. tail drop: 새로 들어오는 패킷을 버립니다.
2. priority: 우선순위 규칙에 따라서, 새로 온 것을 버리거나 기존 것을 제거합니다.
3. random: 들어오는 패킷과 쌓인 큐를 랜덤하게 뽑아서 버립니다.
2번의 경우는 자체적인 정책이 있으니 그것을 따르는 것이고,
자세히는 들어오는 패킷을, 우선순위가 높은지 낮은지 분류하고 그에 따라 큐에서 내보냅니다.
tail drop과 random을 비교해 봅시다.
어느 것이 성능이 더 우수할까요?
결과를 미리 말씀드리면, random 방식이 더 우수합니다.
그 이유는, 일반적인 네트워크 트래픽의 특성에 그 이유가 있습니다.
일반적인 네트워크는, on-off 모델의 특성을 가집니다.
이런 식으로, 트래픽이 있는 시기에는 물밀듯 밀려 들어오고
트래픽이 없을 때는 아예 잠잠합니다.
그런데 또 TCP같은 패킷의 정책을 생각해보면,
패킷 로스가 발생했을 때, 처리 방식이 달랐죠? 기억 하시나요?
패킷 로스가 발생하면(Timeout이 발생하면) cwnd가 1로 초기화 되었죠,
만약 tail drop 방식으로, 추후 들어오는 애들을 완전히 다 없애면
Timeout이 발생하여 Rate(=속도, =Congestion Window)가 1로 초기화 되겠죠?
하지만 Random 기법을 적용할 경우, 3 Duplicated ACK이 발생하면 1/2로 줄어드는 수준이니(RENO 방식 기준)
그 회복력이 빠르겠죠...
그래서 평균 속도는 random이 우수할 것입니다.
쓰다보니 말이 좀 이상한데, 3장 뒷부분을 빠르게 복습해봅시다.
Weighted Fair Queueing(WFQ)라는 개념이 있는데요,
가령 기가요금제, 500메가 요금제, 100메가 요금제가 있는데, 아파트 한 동에 각 호수에 인터넷 요금제가 다른데
과연 1기가 요금제를 쓰는 사람들은 실제로 그만한 서비스를 받냐?
무슨 모델을 쓸 것인가? 라는 것들을 물어봅니다.
'CS > Network' 카테고리의 다른 글
[Network] Routing Algorithms, Link-State와 Distance Vector (0) | 2023.11.25 |
---|---|
[Network] 4.3 IP: Internet Protocol (0) | 2023.11.25 |
[Network] Input port queueing (0) | 2023.11.24 |
[Network] Switching fabrics (0) | 2023.11.24 |
[Network] 라우터의 내부를 뜯어보자. (0) | 2023.11.24 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!