Linux TC 구조

강윤경·2022년 7월 28일
0

Tool

목록 보기
4/5
post-thumbnail
post-custom-banner
  • 구조는 논문 참조 [II. 리눅스 트래픽 컨트롤]

    💡 참고 : [https://ettrends.etri.re.kr/ettrends/79/0905000395/18-1_001_006.pdf](https://ettrends.etri.re.kr/ettrends/79/0905000395/18-1_001_006.pdf)

TC

  • 리눅스에서 트래픽 컨트롤 기능을 제공하는 도구

  • 사용자로 하여금 네트워크의 Queue와 Queuing 매커니즘을 제어 할 수 있도록 하는 도구

  • Traffic Control는 일반적으로 FIFO 를 사용

  • TC는 인터페이스의 패킷 Input과 Output에서 패킷의 송수신 속도와 순서를 결정 가능

  • qdisc는 단순한 FIFO 큐로 인위적인 패킷 유실, 패킷 지연, 전송 속도 제한 등 조절 가능

  • 총 대역폭 제한 : TBF, HTB with child class

  • 특정 사용자, 서비스 또는 client의 대역폭 제한 : HTB classes / classifying with filter

  • 비대칭 링크에서 TCP 처리량 극대화, ACK 패킷의 전송 우선순위 지정

  • 네트워크 리소스를 보다 균등하게 분배 가능

  • Queue는 스케줄링 핵심 개념으로 처리되기를 기다리는 작업 혹은 서비스 포함

    • 네트워크에서 큐는 패킷이 서비스에 의해 전송되기를 기다리는 장소
    • 어떠한 메커니즘(패킷을 지연시키거나 재배열하거나 삭제 혹은 여러 대기열에서 패킷의 우선 순위를 정하는 것)이 없으면, 큐는 트래픽 제어에 의해 아무것도 하지 않는다.
    • #flow : 호스트간 연결 또는 대화
    • TC매커니즘은 트래픽을 클래스로 집계하고 flow class도 트랙픽을 분리
  • Tocken Bucket

    • 큐에서 제어속도를 제어하기 위해 구현한 방법
    • 각 항목이 대기열에서 제외될 때, 대기열에서 삭제 된 패킷 수 제한 가능
    • 타이머와 측정을 복잡하게 사용해서 재현해야 하기 때문에 현재 사용량과 시간을 계산하는 대신, TC에서 사용하는 방법은 원하는 속도로 토큰을 생성, 토큰이 사용 가능한 경우에만 패킷이나 바이트를 대기열에서 제외
  • shaping(응용 레벨에서의 data rate 설정)

    • shaper는 원하는 비율로 패킷 지연 (패킷이 출력 대기열에서 전송되기 전 지연)
    • shaper는 트래픽을 제한하거나 배분하여 구성된 속도 (초당 패킷bit/bytes)를 초과X
  • scheduling(패킷 전송 순서 조절)

    • 출력을 위해 패킷을 정렬, 재정렬
    • FIFO
    • 다른 스케줄링 방식은 SFQ - 단일 클라이언트나 flow가 네트워크 독점 사용하지 않음
    • WRR - 각 flow나 client가 패킷을 큐에서 꺼내는 순서 제공
  • policing(arriving traffic 제어)

    • classifer는 트래픽을 queue에 정렬 분리
    • 서로 다른 처리를 위해 패킷을 분리하는 매커니즘
    • network device는 다른 방식으로 패킷 분류 가능
  • qdisc

    • classful qdisc에는 class가 포함될 수 있고 filter를 attach 할 수 있는 핸들 제공
  • dropping(들어오고 나가는 패킷에 대한 drop) 지원

    💡 참고 : [https://soheemon.tistory.com/entry/Traffic-Control-정리](https://soheemon.tistory.com/entry/Traffic-Control-%EC%A0%95%EB%A6%AC)
post-custom-banner

0개의 댓글