Hi everybody,
In the course of working on the Linux Advanced Routing & Shaping HOWTO
(http://ds9a.nl/2.4Routing), I discovered something, which lead me to
writing this:
++++
Caveats
(...)
FIXME: the packet reordering bit needs to be verified by an expert
Then there is the nasty problem of packet reordering. Let's say 6 packets
need to be sent from A to B - eth1 might get 1, 3 and 5. eth2 would then do
2, 4 and 6. In an ideal world, router B would receive this in order, 1, 2,
3, 4, 5, 6. But the possibility is very real that the kernel gets it like
this: 2, 1, 4, 3, 6, 5. The problem is that this confuses TCP/IP. While not
a problem for links carrying many different TCP/IP sessions, you won't be
able to to a bundle multiple links and get to ftp a single file lots
faster.
However, for lots of applications, link loadbalancing is a great idea.
++++
Firstly, you are the mentioned 'experts', so please comment about my
explanation. Secondly, I was wondering if it would be possible to easily
make an ingress 'policer' that creates some latency, but does order TCP
packets on sequence number within that latency.
Would such a beast be possible? If you think it would be worthwile, I'll try
to code it.
Thirdly, I tried the normal ingress policer with the script as provided by
Alexey, but it gave me an error:
# tc qdisc add dev eth0 handle ffff: ingress
RTNETLINK answers: No such file or directory
I think I included everything needed in the kernel.
Thanks for your attention.
--
PowerDNS Versatile DNS Services
Trilab The Technology People
'SYN! .. SYN|ACK! .. ACK!' - the mating call of the internet
|