Qos - Quality of service

 Qos를 하는 이유?

 1. 서비스의 차별화 : isp 업체에서 사용자의 등급에 맞추어 차별화된 서비스를 제공하기 위함

(돈을 더 내면 더 높은 대역폭을 할당하여 차별화)

 2. 확장 비용을 줄이기 위해서 : 예전에는 데이터의 양이 많이 않아 갖추어진 네트워크에 아무런 문제없이 통신이 이루어 졌지만 데이터의 양과 사용자가 많아짐에 따라 회선의 대역폭을 정리하여 원활하게 통신하기 위함.  돈이 많다면 회선을 더 설치하면 되지만 비용상 갖추어진 네트워크의 회선을 정리하여 쓰는것이 효율적.

(도로가 네트워크이고 차가 데이터라면 차의 대수가 작은경우 도로에는 혼잡이 발생하지 않지만 현재 차가 많아져 혼잡이 발생하므로 신호등으로 교통정리를 한다. 이 경우 도로를 넓히면 되지만 역시 비용이 문제 10부제등과 같은 정책으로 혼잡을 방지한다.)

 Qos 에서 사용하는 지연은 'End-to-End' 종단간 지연이며, 각 구간의 지연시간을 합하여 계산한다. 지연은 크게 장비 구간에서의 지연과 전송 구간에서의 지연으로 구분된다. 여기에는 연속지연, 전달지연, 큐잉지연, 포워딩 지연, 쉐이핑 지연, 네트워크 지연으로 세분화 된다.

 1> DELAY

 1. Serialization Delay (연속지연)

  ->패킷을 라우터에서 링크로 보내는데 소요되는 시간, 패킷의 크기와 비례적으로 증가하며

    대역폭과 반비례로 감소한다.

2. Propagation Dealy (전달지연)

  ->특정 구간 링크를 통해 한 비트를 전달하는데 소요되는 시간, 패킷의 크기와는 무관하며

    링크간 거리와 비례한다.

3. Forwarding Delay (포워딩지연)

  ->패킷이 라우팅 및 스위칭 프로세서에 의해 경로가 결정된 이후, 출력 인터페이스의 나가

    는 큐에 대기하는 시간.

4. Shaping Delay (버퍼링 지연)

  ->초과된 패킷에 대해(exceed) 일정 버퍼링을 실시하여 소요되는 시간.

5. Queuing Dealy (큐잉지연)

  ->패킷이 전송되기 전에 라우터 큐에 패킷이 대기하는데 소요되는 시간, 큐의 크기는 크게

    하면 오히려 문제점을 발생시킴.

6. Network Dealy (네트워크지연)

  ->ISP구간에서 소요되는 시간.

7. Jitter

  ->네트워크를 통해 신호가 전달되면서 발생되는 왜곡된 정보를 나타내는데 사용되는값,

    즉 지연의 편차 라고 한다.

8. Packet loss (패킷손실)

  ->패킷의 전달과정에 있어서 패킷이 손실되는 손실율을 말한다.

 * 패킷손실이 일어나는 경우?

 - 혼잡현상(congestion) :서비스를 할 수 있는 적정수준 이상으로 큐에 패킷이 쌓인 상태

 - RED(Random Early Detect) : 랜돔으로 패킷을 드롭하는 RED에 의해 패킷 손실

 - TCP 처럼 흐름 제어를 하는 트래픽 소스가 전송 속도를 증가 시키는 경우

 - 라우팅 알고리즘 때문에 많은 트래픽이 증가 되는 경우

 - 라우팅 패스에 오류가 발생되어 다시 라우팅 되는 경우

 - 공격자로부터의 공격으로 인한 트래픽 증가 현상 경우

 2> Interserv model Qos

  - 'End-to-End' 적용으로 트래픽의 흐름을 근거로 Qos 를 실시한다.

 - RSVP (Reservation Setup Protocol) 프로토콜로 일정의 대역폭을 예약한다.

 - 종단간에 RSVP 프로토콜을 지원해야 한다.

 - 'RSVP path', 'RSVP resv' 메세지를 이용하여 종단간 대역폭 예약을 실시한다.

 - 만약, 종단 사이에 RSVP 에 참여하지 않으면 'RSVP error'메세지를 전송하여 예약을 거부 및 종료한다.

 - 확장된 네트워크 환경 보다는 일정 소규모 구간에 사용 적합하다(기업대기업 본사대지사)

 Ex)

   본사 사장 전화기 ----A----B----C----D---- 지사 부장 전화기

                     [ 음성 트래픽 전용 20kbps 예약!!]

 - 예약된 대역폭은 다른 트래픽이 사용할 수 없다는 단점을 가지고 있다.

- RSVP는 WFQ 큐잉 기반하에 동작이 실시되며, 최대 32개의 프로우를 가진다.

- Router(config-if)#fair-queue 64 256 32 <- 최대 32개의 플로우 예약

  Router(config-if)#ip rsvp bandwidth 1000 500 <- 최대 1000kbps 중 플로우당 500kbps 예약 실시.

*Cisco Router serial interface : 기본 WFQ 동작

*Cisco Router ethernet interface : 기본 FIFO 동작

 3> Diffserv 간단 정리

  - 트래픽 종류를 근거로 차별화된 Qos 를 실시한다.

 - Qos 처리과정

   1. 트래픽 입력

  2. Classification(분류) -Classifier(분류자)로 들어오는 트래픽을 다양한 기준에 따라 여러개의 class로 구분한다.

  3. Meter 로 하여금 트래픽 측정 실시 - 분류자를 통과한 패킷은 각 플로우에 할당된 meter에 의해 특성을 측정받고 , 측정된 결과는 사전에 약속된 Qos 트래픽 특성과 비교되며, 그결과에 의해서 Maker에 의해 우선 순위별로 마킹된다.

  4. Marking

      - Layer 2 Frame (ISL,Dot1q) : Cos(3bit) 0,1,2,3,4,5,6,7

      - Layer 3 Packet : IP Precedence(3bit) 0,1,2,3,4,5,6,7

                             DSCP(6bit) 0,1,,,, 63

  5. Conditioner

   - Policing : 임계값 초과시 드랍 실시, 지연 없음

   - Shaping : 임계값 초과시 버퍼링 사용 후 전송 실시, 지연발생

   - 마킹된 패킷들은 컨디셔널을 지나면서 사전에 약속한 트래픽 대역폭 특성에 맞도록 조정되며, 컨디셔널은 Delay(지연)을 이용해 대역폭을 조정하는 Shaping,polishing을 실시한다.

  6. Congestion Avoidance (혼잡 회피)

   - Tail Drop : 디포르 동작, 큐에 트래픽이 다 차면, 그 이후 트래픽들은 드랍

   - TCP Slow Start : 윈도우 사이즈를 1씩 증가

   - RED : Random 하게 패킷을 드롭

   - WRED : 중요한 패킷에 가중치를 두어 중요하지 않은 패킷을 드롭시키게 하는방법

  7. Queue 할당 및 스케쥴링 실시(소프트웨어 큐 사용)

   - Queuing 스케쥴러를 할당 받아 스케쥴링 실시

   - FIFO Queuing :먼저 들어온 것부터 먼저 내보냄 first in first out

   - Priority Queuing : 클래스 별로 우선순위 할당, High, Medium, Normal, Low 구분

   - Custom Queuing : 16 개 클래스로 구분, 동등한 대역폭을 할당, Round-Robin 방식

   - WFQ Queuing : 꼬리가 먼저 들어온놈 먼저 내보냄 , 자동동작한다.

   - CBWFQ (Class-Based Weight Fair Queue) 큐잉 : 관리자가 참여하여 실시,
      Bandwidth com
mand

   - LLQ (Low Latency Queue) : CBWFQ + PQ , cisco 권장

   - IP RTP Prioritization : LLQ 가 나오기 이전음성트래픽에서 사용했던 스케쥴러

  8. 시리얼리제이션 실시 (하드웨어 큐 사용)

   - 패킷은 링크로 전송하기 위해 하드웨어 큐인 TX 큐(FIFO)로 전송

  9. 트래픽 출력

  TCP Header (헤더) Window (윈도우) 필드 

 네 간단히 말해드리면 송신 해서 답장이 오면 윈도우크기를 지수승 만큼 늘리죠 첨엔 1이였다가 답장이오면
2로 늘리고 그리고 2개를 보내고 다시 2개의 답장이오면 4로 늘리고 이렇게요 하지만 임계값이 넘어가면
윈도우창의 크기를 1씩 증가시 키고 혼잡이 생기면 임계값의 크기를 반으로 줄이고 다시 윈도우 크기를 1로
시작해서 지수승씩하다가 임계값을 넘어가면 다시 윈도우의 크기를 1씩 증가 시킵니다.

 윈도우 사이즈는 수신측에서 정하는것외에 네트워크 혼잡값에 의해서도 결정됩니다..
둘중 작은값으로 결정이 되구요 수신측이 버퍼가 넉넉치 않아서 못받을 상황이 되면 사이즈를 0으로 해서 보내면 송신측은 수신측에서 다시 0이아닌 윈도우 사이즈를 보낼때까지 전송을 하지 않습니다.

윈도우 필드를 쓰는 이유는 윈도우 사이즈만큼은 수신측에서 확인응답을 받지 않고도 보낼수 있다는 것이죠 효율적인 전송이 가능함.

  지터(jitter)는 대기시간에서의 변동을 뜻한다. 두 개의 노드가 같은 스위치에 있지 않으면 대기시간은 패킷마다 크게 달라질 수 있다. 네트워크 대역폭이 포화 상태가 되면 지터는 늘어난다. 파일 다운로드나 웹 브라우징과 같은 애플리케이션의 경우는 이것이 늘 큰 문제가 되는 것은 아니다. 하지만 스트리밍 비디오와 VoIP는 높은 지터로 인해 크게 고통을 받는다. QoS는 스트리밍 트래픽에 보다 높은 대역폭 우선순위를 제공함으로써 지터를 줄이는 데 도움이 될 수 있다. 또 한 가지 해결책으로 버퍼 크기를 늘리는 방법이 있다.

'NETWORK' 카테고리의 다른 글

WinpCap  (0) 2010.10.20
Wireshark 소개  (0) 2010.10.20
MPLS(Multi-Protocol Label Switching) 개요  (0) 2010.08.25
VoIP - MGCP 기술개요 (VoIP Signaling)  (0) 2010.08.25
VoIP(Voice Over IP) 이해와 발전  (0) 2010.08.25

+ Recent posts