[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [pilc] I-D ACTION:draft-iab-link-indications-01.txt





Bernard Aboba wrote:

I like the idea behind this document, were you planning to develop it
further?


It is an IAB document, so yes, we are planning on continuing to develop it.

Although many issues seem to have been explored for the network layer, the
Transport layer considerations seem much less developed. I think it could be
better to have more on the implications of providing this information to the
transport-layer within a general Internet context.


Yes, I think that is fair.  Recommendations welcome.

When I was reading it, I was trying to understand whether the prime
motivation was to handle end hosts that were directly connected to the link
reporting its state, or whether the document was also addressing the case
with other L2 or L3 elements (routers, bridges) between the link and the end
host.


The unifying concept for both direct connection and distant links is that they both generate "path change" indications. So the issue is really how the Transport layer handles those indications.

Path changes can be determined both directly (e.g. change in incoming or outgoing interface, change in incoming TTL) and from external sources (receipt of MIPv6 BU, routing protocol update).

If one focuses on path change indications, it is not clear to me that the source of the indication should matter.


I seem to have missed something: if the signal is not from a local interface, I don't yet understand the mechanism that tells the transport layer that a specific "indication" that was produced somewhere in the network is authorative to a specific transport layer entity (TCP session, DCCP Session, or whatever). If you don't know that the reporting source is *actually* forwarding most/all of the packets for this session, and you don't know whether there are alternate paths also in use, then should the transport entity take any notice?



I recall this was an area that was debated within the BOFs on
link-triggers and trigtran - the issues being much more acute when not
considering directly connected hosts.


Part of the reason for writing this document is to summarize some of the conclusions of that debate - and challenge others (such as the relevance of the distinction between local and remote indications).


I don't understand this.

But also, link loss notification does not imply an absence of congestion...


Sure. The document describes the link indications that *may* be relevant, but it doesn't say much about what should be done with them. One way to improve the document in that area might be to include more discussion of transport research in the literature review. References welcome.

* The implication of layer-2 relays that bridge between networks.


As I understand it, this concern arises from the lack of visibility that the host has in this situation. However, I'm not entirely clear that a "path change indication" can't be generated here as well. For example, there are hosts that do "dead gateway detection" can can switch their default route if a gateway becomes unreachable. Similarly, when the
gateway comes up, reachability might be recovered.

But here again, if this is an end host's nearest neighbour, the end host knows that this is on-the-path. Once you move one stage further away, then does the end host have this knowledge?



* I suggest that link integrity
checks rely upon bi-directional link connectivity to verify the remote
reception of frames, whereas Transport protocols only require the end-to-end
communication path exists.


Are you saying that the Transport layer needs an indication from the Internet layer that isn't described in the document? I'd had assumed that the "IP address configured" indication was dependent on demonstration of bi-directional reachability, in order to address potential link layer asymmetries.


I wondered if an end host could react to indications that arise due to a lack of a specific link's bi-directional link availability which could reduce the robustness of fate-sharing?


At the moment, a transport layer entity does not care whether the under-lying links have bi-directional or uni-directional connectivity. What they care about is whether there is reachability between the end hosts. (Bi-directional connectivity may be needed by network layer routing protocols - but static routes, UDLR, etc, don't need this). I wanted to know if this could change this?

   In addition to Internet layer indications propagated to the
   Application layer (such as IP address configuration and changes), the
   Transport layer provides its own indications to the Application
   layer, such as connection teardown.

The transport layer also has its own mechanisms for loss detection,
congestion detection, (reordering perhaps?) these work on the timescale of
the total PRTT, rather than a specific link RTT.


Are you suggesting that these be included in the transport indications passed to the applications layer?


I'm suggesting that link state can change rapidly, whereas transport entities tend (at least at the moment) to react much more slowly, allowing time for the under-lying links to recover/retransmit/multiplex traffic, etc. It may be wiser for a transport protocol to ignore "flapping state", at least until such time that it is sure that there is no alternate path, retransmission, etc. on the way.


   The Transport layer  may also
   provide indications to the link layer.  For example, to prevent
   excessive retransmissions within the link layer,

Does this assume the link is directly connected to an end host, or are you
thinking about an end host setting policy in down/up stream routers too?


In this particular case, we were talking only about the local host. As assumed in the document propagation of link indications beyond the local link occurs only due to changes in routing metrics. One might argue that PRTT is relevant to calculation of a metric such as ETX if the combination of the link RTT and the max number of retransmissions can exceed the path RTT, because at that point we will have both PHY layer retransmission and Transport layer retransmission (a bad thing).


Not sure that I would go as far as "bad", but this is suboptimal (as in RFC3366).

Could be so, but for TCP I have two queries:

(i) The link persistency (i.e. Maximum period for retransmission of a
packet) is of the order of the TCP PRTT, that is of the order of seconds?
(RFC3366 has some discussion on this)


In experiments I have seen 802.11 implementations that continue to retransmit for 30 seconds until determining that the AP is no longer there and scanning for a new point of attachment. This seems like a bad thing, even if the time between retransmissions were considerably less than RTOmin.

yes - seems like not a wise thing to do, and that's why it is not recommended.


(ii) Is saving this capacity a significant factor?

   In 802.11, this can
   be achieved by adjusting the MIB variables dot11ShortRetryLimit
   (default: 7) and dot11LongRetryLimit (default: 4), which control the
   maximum number of retries for frames shorter and longer in length
   than dot11RTSThreshold, respectively.

I'm not familiar with this - but I wonder if these MIBs allow the sender to
specify a filter record to say which specific transport layer packets are to
effected - or does the MIB set global link behaviour? - If it is the latter,
then how do you reconcile different transport sessions (possibly also using
different protocols) requesting different behaviour?


It's global behavior, and so it can't really be used at that granular a level. But you can try to make sure that an 802.11 station isn't still retransmitting after RTOmin, for example.


If this is global IP forwarding behaviour, I worry then that you think a transport entity should change this.



Among other serious considerations against this approach are:

* How to determine the timing when such messages were to be generated
without knowledge of the PRTT of the end hosts being affected.
* How to interpret these on paths of varying capacity.
* Source Quench would also introduce a DoS opportunity,
* It would probably have fallen into the same problems as PMTUD did when
encountering tunnels (i.e. What should tunnels do with such messages
experienced along the tunnel path?).

I suspect the same would be true of network-level transport of link
triggers.


Yes, I think so.

In general, link loss indications are hard to interpret when a link forms
only a part of an Internet path. Knowing there was packet loss on a link
doesn't provide a useful indication to the transport layer unless the loss
events can be traced to a specific transport session. Even then, the
congestion state of all links/routers has to be taken when the path could
comprise other links apart from that at the point of loss...


I'd agree. On the other hand, if the routing metric is link-aware, then high loss will increase the metric and potentially cause a path change, which might be detectable at the end host, either implicitly (RTT goes down) or explicitly (TTL changes).


So..... what does the Transport protocol entity do with this "knowledge"?

I suggest that trusted use of such triggers implies:

* An (security) association with the element receiving the trigger
transmissions and the source of these transmissions (to verify the identity
of the source - hmmm even if I know the source is actually within ISP-A's
domain, would I trust it from ISP-B?)
*AND*
* Verification that the source is actually on the current path that is being
used between the sender and receiver (not sure how you do this in the
general case?)


Remember, routing metrics can be link aware -- but the above considerations are generally *not* met by routing protocols, which provide hop-by-hop security. One might argue that lack of end-to-end routing security is already a problem (e.g. with BGP). But I'm not clear that we need to solve that issue in order to use existing routing protocols with new metrics such as ETX.





_______________________________________________
pilc mailing list
pilc at ietf.org
https://www1.ietf.org/mailman/listinfo/pilc
http://www.ietf.org/html.charters/pilc-charter.html
http://pilc.grc.nasa.gov/