입력 트래픽 형성

입력 트래픽 형성

나는 tc유사한 도구를 사용하여 출력 트래픽을 형성할 수 있다는 것을 알고 있습니다. 그러나 지금은 입력 트래픽을 형성하고 싶습니다. 실제로는 느린 손실 연결을 통해 특정 유형의 파일 다운로드에 우선순위를 부여하고 싶습니다.

그 이유는 출력 트래픽만 형성할 수 있다는 것을 알고 있습니다 tc. 호스트 자체는 입력 트래픽의 양을 직접 제어할 수 없습니다. 반면에 TCP에는 느린 연결로 인해 TCP 트래픽이 오버플로되는 것을 방지하는 몇 가지 조치가 내장되어 있습니다. 그렇다면 원격 호스트가 내 연결이 생각보다 느리다고 생각하도록 TCP 헤더의 내용을 조작할 수 있습니까?

을 사용하여 두 가지 연결 유형 모두에 해당 표시를 설정할 수 있다고 가정합니다 iptables. 첫 번째 유형 연결의 입력 대역폭을 줄이는 방법이 있습니까? 단, 두 번째 유형 연결이 있는 경우에만 가능합니까?

답변1

당신이 말하는 것은 TCP 명시적 혼잡 알림(http://en.wikipedia.org/wiki/Explicit_Congestion_Notification.) 나는 당신이 찾고 있는 것이 기술적으로 가능하다고 생각하지 않습니다. 왜냐하면 Linux 서버 자체가 패킷을 수신할 때쯤에는 이미 패킷을 받았고 나중에 조정하려고 하기 때문입니다. .

현실적으로 QOS 또는 트래픽 조절을 원하는 경우 수신 측이 아닌 업스트림 공급자에서 수행되어야 합니다. 즉, 모든 트래픽 조절은 대상 측이 아닌 소스 측에서 수행됩니다.

답변2

이에 대한 매우 좋은 솔루션이 있지만 불행히도 Linux에서는 그 중 어느 것도 무료로 사용할 수 없습니다. 패킷 지연 또는 삭제는 매우 제대로 작동하지 않습니다. 필요하다면 할 수 있지만 결과는 기껏해야 적절합니다. 패킷을 수신할 때쯤에는 보호하려는 인바운드 대역폭이 이미 소비된 것입니다.

이를 수행하는 올바른 방법은 아웃바운드 TCP 창 광고를 조작하여 다른 쪽에 더 작은 창을 광고하는 것입니다. 이를 수행하는 하드웨어 및 소프트웨어 구현이 있지만 제가 아는 한 Linux에서는 무료로 사용할 수 있는 것이 없습니다.

이것스크립트이를 수행하는 한 가지 방법을 설명하고 이론과 한계를 설명하는 매우 자세한 설명이 있습니다.

관련 정보