From: Stephen Hemminger <shemminger@linux-foundation.org>
To: Pierre Capillon <pierrecap@yahoo.fr>
Cc: netdev@vger.kernel.org
Subject: Re: Getting hopcount and dupacks from TCP CA module
Date: Fri, 29 Jun 2007 10:08:40 -0400 [thread overview]
Message-ID: <20070629100840.4764e49d@oldman> (raw)
In-Reply-To: <20070629094837.92827.qmail@web25504.mail.ukl.yahoo.com>
On Fri, 29 Jun 2007 11:48:37 +0200 (CEST)
Pierre Capillon <pierrecap@yahoo.fr> wrote:
> Hello,
>
> I'm a french IT engineering student and as part of my
> internship, I'm writing a congestion avoidance module
> based on research by my tutor. It aims at better
> efficiency and throughput on mobile adhoc networks.
>
> Basically, it is a sender-side modification that
> differentiates between losses due to network
> congestion or link failure, in which case I would need
> to get the new route properties for the current tcp
> socket.
>
> Is there a simple and generic way of knowing the route
> length (hopcount) from a TCP CA module, once RTO has
> occured? Currently, the paper states I should know the
> exact new route length to recompute the congestion
> window and RTO values. I guess I need to get that
> information from the routing layers, but is it event
> possible from the module? Or is it simpler to rework
> the algorithm to have the congestion window based on
> hop difference (using received TTL values from the
> remote end)?
A TCP CA module can find the RTT but has no way to find TTL.
TTL (hop count) is not really available given the IP model.
> Either way, I would appreciate hints/pointers to
> structures and/or mechanics I would not have properly
> understood in congestion avoidance modules (especially
> how to get down to the received IP header for received
> TTL values or to the routing protocols).
Use RTT instead. RTT reflects dynamic state of the link.
With TTL you only know the value after routers decremented
not initial value of other side. Residual TTL (min/max/avg)
could be tracked but it doesn't seem that changes in TTL would
correlate with better worse RTT.
It might be able to do some nmap style heuristics and get a value from received
packets, but that would be fragile and not standards compliant
> Regarding dupacks, after a full week of studying the
> code and another week of implementing most of the
> principles described in the said paper, I would like
> some confirmation : it seems like the field
> tp->sacked_out is accounting for them in a SACKless
> connection (in tcp_fastretrans_alert()). Can I without
> a doubt rely on it to adjust TCP's behavior? If so,
> can I check is the state is TCP_CA_Disorder and then
> the value of sacked_out in order to adjust my behavior
> once 3 duplicate acks have been received, or is there
> a better way to do it?
> I'm sorry if this sounds like a dumb question, but I
> want to make sure, as I'm no expert.
>
>
> Thanks a lot.
>
>
>
> Pierre Capillon
>
>
prev parent reply other threads:[~2007-06-29 14:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-29 9:48 Getting hopcount and dupacks from TCP CA module Pierre Capillon
2007-06-29 14:08 ` Stephen Hemminger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070629100840.4764e49d@oldman \
--to=shemminger@linux-foundation.org \
--cc=netdev@vger.kernel.org \
--cc=pierrecap@yahoo.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).