25장. Linux 트래픽 제어
Linux는 패킷 전송을 관리하고 조작하기 위한 툴을 제공합니다. Linux 트래픽 제어(TC) 하위 시스템은 네트워크 트래픽의 보관, 분류, 형성 및 스케줄링에 도움이 됩니다. 또한 TC는 필터 및 작업을 사용하여 분류 중에 패킷 콘텐츠를 생성합니다. TC 하위 시스템은 TC 아키텍처의 기본 요소인 큐링 규율(qdisc
)을 사용하여 이를 달성합니다.
스케줄링 메커니즘은 다른 큐에 입력하거나 종료하기 전에 패킷을 준비하거나 다시 정렬합니다. 가장 일반적인 스케줄러는 FIFO(First-In-First-Out) 스케줄러입니다. tc
유틸리티를 사용하거나 NetworkManager를 사용하여 영구적으로 qdiscs
작업을 수행할 수 있습니다.
Red Hat Enterprise Linux에서는 네트워크 인터페이스에서 트래픽을 관리하는 다양한 방법으로 기본 대기열 구성 요소를 구성할 수 있습니다.
25.1. 자주하는 질문 링크 복사링크가 클립보드에 복사되었습니다!
큐잉(qdiscs
)은 네트워크 인터페이스에 의해 트래픽 전송 스케줄링을 대기하는 데 도움이 됩니다. qdisc
에는 두 가지 작업이 있습니다.
- 이후 전송을 위해 패킷을 큐에 추가할 수 있도록 요청을 큐에 넣습니다.
- 즉시 전송을 위해 대기 중인 패킷 중 하나를 선택할 수 있도록 큐를 요청합니다.
모든 qdisc
에는 소켓이라는 16비트 16진수 식별 번호가 있으며, 연결된 콜론(예: 1:
또는 abcd:
)이 있습니다. 이 수를
qdisc
주요 번호라고 합니다. qdisc
에 클래스가 있는 경우 식별자는 마이너 이전의 메이저 숫자가 있는 두 숫자의 쌍으로 구성됩니다(예 :
abcd:1
). 마이너 번호의 번호 지정 스키마는 qdisc
유형에 따라 다릅니다. 1 클래스의 ID < major>:1
, 두 번째 < major>:2
가 있는 경우가 있습니다. 일부 qdiscs
를 사용하면 클래스를 생성할 때 사용자가 클래스 마이너 번호를 임의로 설정할 수 있습니다.
- 클래스적
qdiscs
다양한 유형의
qdiscs
가 존재하며 네트워크 인터페이스로 패킷을 전송하는 데 도움이 됩니다. root, parent 또는 하위 클래스를 사용하여qdiscs
를 구성할 수 있습니다. 자식을 연결할 수 있는 지점을 클래스라고 합니다.qdisc
의 클래스는 유연하며 항상 여러 개의 하위 클래스 또는 단일 자식인qdisc
를 포함할 수 있습니다. 클래스qdisc
자체를 포함하는 클래스에 대한 금지는 없으므로 복잡한 트래픽 제어 시나리오를 용이하게 합니다.클래스적
qdiscs
는 패킷을 자체적으로 저장하지 않습니다. 대신qdisc
와 관련된 기준에 따라 요청을 큐에 추가 및 큐에 추가합니다. 결국 이 재귀 패킷 전달은 패킷이 저장되는 위치(또는 데크립션의 경우 선택)로 끝납니다.- 클래스리스
qdiscs
-
일부
qdiscs
에는 하위 클래스가 포함되어 있지 않으며 클래스가 없는qdiscs
라고 합니다. 클래스리스qdiscs
는 classfulqdiscs
에 비해 사용자 지정이 줄어듭니다. 일반적으로 인터페이스에 연결하는 것으로 충분합니다.