TCP 트래픽의 우선순위를 지정하기 위해 IP 헤더의 ToS 필드를 사용하려고 합니다. iperf를 통해 1GB의 데이터를 전송하고 ToS 필드를 0x10(대기 시간 최소화)으로 설정하여 인터페이스(이더넷)를 포화시킵니다. 그런 다음 기본 ToS(0)를 사용하여 다른 TCP 클라이언트를 시작합니다.
기대 사항: 내 TCP 클라이언트는 iperf가 데이터 전송을 완료할 때까지 데이터를 보내서는 안 됩니다.
결과: iperf가 더 높은 우선순위로 패킷을 전송하는데도 내 클라이언트의 데이터가 전송되고 있습니다.
또한 2개의 별도 클라이언트를 생성하고 iptables를 사용하여 해당 클라이언트에 0x10 및 0x08 ToS를 할당하여 동일한 시나리오를 만들어 보았습니다. 나는 대기 시간을 최소화하기 위해 iptables -A PREROUTING -t mangle -p tcp --sport 5000 -j TOS --set-tos를 사용했습니다.
여전히 한 고객을 다른 고객보다 우선시할 수는 없습니다. Wireshark에서 ToS로 표시된 패킷을 볼 수 있지만.
Ubuntu(14.04) 및 iptables 버전 1.4.21을 사용하고 있습니다.