Istnieje dziki przykład dotyczący PF i nadawania priorytetu pustym pakietom ACK, tak że downstream połączenia asynchronicznego nie traci wydajności, jeśli upstream jest zatkany.
Przykład można znaleźć w różnych miejscach, np .:
http://www.benzedrine.cx/ackpri.html
pass out on $ext_if proto tcp from $ext_if to any flags S/SA \
keep state queue (q_def, q_pri)
pass in on $ext_if proto tcp from any to $ext_if flags S/SA \
keep state queue (q_def, q_pri)
Nie rozumiem, dlaczego ta zasada działa tak, jak ona:
Drugi parametr kolejki umieszcza puste ACK w kolejce priorytetów. Ten dostaję. Dopasowanie flagi pasuje jednak tylko wtedy, gdy jest to pierwszy pakiet w połączeniu. Ze strony man pf.conf:
Because flags S/SA is applied by default (unless no state is
specified), only the initial SYN packet of a TCP handshake will
create a state for a TCP connection.
Jak to wpływa na puste ACK? Nie twierdząc, że wszyscy robią to źle, po prostu chciałbym zrozumieć mechanikę.