[Cerowrt-devel] rsync over ssh

Sebastian Moeller moeller0 at gmx.de
Wed Jan 29 17:01:31 EST 2014

Hi Michael,

On Jan 29, 2014, at 22:27 , Michael Richardson <mcr at sandelman.ca> wrote:

> I often run rsync over ssh to transfer files.
> I suspect that they are being classified wrong, and are competing with my
> interactive ssh sessions.  I experience classic bufferbloat issues with a
> congested uplink when typing.  (But, DNS and web is unaffected, it seems)
> I notice in ssh_config(5) man page that it says:
>     IPQoS   Specifies the IPv4 type-of-service or DSCP class for connections.  Accepted values are ``af11'',
>             ``af12'', ``af13'', ``af21'', ``af22'', ``af23'', ``af31'', ``af32'', ``af33'', ``af41'', ``af42'',
>             ``af43'', ``cs0'', ``cs1'', ``cs2'', ``cs3'', ``cs4'', ``cs5'', ``cs6'', ``cs7'', ``ef'', ``lowdelay'',
>             ``throughput'', ``reliability'', or a numeric value.  This option may take one or two arguments, sepa-
>             rated by whitespace.  If one argument is specified, it is used as the packet class unconditionally.  If
>             two values are specified, the first is automatically selected for interactive sessions and the second
>             for non-interactive sessions.  The default is ``lowdelay'' fo.r interactive sessions and ``throughput''
>             for non-interactive sessions.

	You could try to add "-o IPQoS ef" to your interactive sessions? But this will only have a chance of working, if you use simple.qos, as smiliest.qos does not have any priority tiers… (I am sure you know that already). From simple.qos:
ipt_setup() {

ipt -t mangle -N QOS_MARK_${IFACE}

ipt -t mangle -A QOS_MARK_${IFACE} -j MARK --set-mark 0x2
# You can go further with classification but...
ipt -t mangle -A QOS_MARK_${IFACE} -m dscp --dscp-class CS1 -j MARK --set-mark 0x3
ipt -t mangle -A QOS_MARK_${IFACE} -m dscp --dscp-class CS6 -j MARK --set-mark 0x1
ipt -t mangle -A QOS_MARK_${IFACE} -m dscp --dscp-class EF -j MARK --set-mark 0x1
ipt -t mangle -A QOS_MARK_${IFACE} -m dscp --dscp-class AF42 -j MARK --set-mark 0x1
ipt -t mangle -A QOS_MARK_${IFACE} -m tos  --tos Minimize-Delay -j MARK --set-mark 0x1

# and it might be a good idea to do it for udp tunnels too

# Turn it on. Preserve classification if already performed

ipt -t mangle -A POSTROUTING -o $DEV -m mark --mark 0x00 -g QOS_MARK_${IFACE}
ipt -t mangle -A POSTROUTING -o $IFACE -m mark --mark 0x00 -g QOS_MARK_${IFACE}

# The Syn optimization was nice but fq_codel does it for us
# ipt -t mangle -A PREROUTING -i s+ -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x01
# Not sure if this will work. Encapsulation is a problem period

ipt -t mangle -A PREROUTING -i vtun+ -p tcp -j MARK --set-mark 0x2 # tcp tunnels need ordering

# Emanating from router, do a little more optimization
# but don't bother with it too much.

ipt -t mangle -A OUTPUT -p udp -m multiport --ports 123,53 -j DSCP --set-dscp-class AF42

#Not clear if the second line is needed

Looks to my untrained eye as if CS1 ends up in the scavenger background queue, EF in contrast should end up in the highest priority queue. (And if the rsync and interactive sessions terminate at the same end points they need to to be separated into different tiers/fq_codel instances, otherwise they end up in the same fq_codel bin and will affect each other; as far as I understand).

> I can see no evidence that my IPv6 packets are being changed in anyway.
> On IPv4, I see:
> 16:25:50.744290 IP (tos 0x8, ttl 64, id 62723, offset 0, flags [DF], proto TCP (6), length 52)
> > Flags [F.], cksum 0x5735 (correct), seq 623906, ack 3314, win 110, options [nop,nop,TS val 1178738167 ecr 2623900673], length 0
> I'm not sure that "tos 0x8" is particularly useful. It's DSCP 1, and I think
> it's actually being marked TOS-like.
> Will any value here have any affect on default 3.10 qos.sh script?

	My bet is on EF for the interact sessions…


> --
> ]               Never tell me the odds!                 | ipv6 mesh networks [
> ]   Michael Richardson, Sandelman Software Works        | network architect  [
> ]     mcr at sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel

More information about the Cerowrt-devel mailing list