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

Re: [MOBILE-IP] Comments on PILC draft




  I am not posting this follow up to mobileIP but to the two groups that I
  think it is most relevant to, rohc and pilc. Hand over issues are being
  discussed in the mobileIP group but link layer stuff isn't. My comments are
  about IP over link layer issues. I am quoting the article in full because
  it was not originally posted to these groups.

> Folks,
> 
> Disclaimer:  I have not read through all 800+ messages in the
> PILC archive.  That will take some time.  There are some subjects
> of interest to Mobile-IP folks, that is why I cross posted.
> 
> I have read through the PILC draft.  It suggests many different
> proven methods for link layer adaptation to IP.  I found errors
> of omission rather than of commission.  What could be done
> is to expand the current draft (or introduce a new draft) that
> specifically addresses problems faced by the implementors of
> "wireless Internet".  This document was very TCP specific and
> the wireless world is also concerned about RTP among other
> things.
> 
> I believe that wireless links are sufficiently different (not
> to mention increasingly prevalent) that they deserve their own
> set of "standard" link layer adaptation techniques.
> 
> I suggest that we (enhance the existing) or prepare a draft that
> defines "Canonical Wireless Link Layer Adaptation for IP".  In this
> draft the important issues of QoS, AAA, and handover could be
> addressed in an abstract way, suitable and useable by Wireless LANS
> (femto, pico, nano-cellular) and conventional macro-cellular (i.e.
> 2G, 2.5G, 3G).  I am also hoping that the proposed Bluetooth BOF
> planned for Pittsburgh could be generalized in scope to includethe
> more generic notion of "personal area networking" rather than being
> just a link adaptation fest for Bluetooth.  Other link layers such
> as 802.11a, 802.11b, HomeRF, Hyperlan, and Hyperlan2 must be
> considered world players as well and the more commonality the
> better.

   These issues are being addressed by the Robust header compression working
   group.

      see http://www.ietf.org/html.charters/rohc-charter.html
> 
> I would also hope that the MWIF contribution could be combined with
> a previously proposed BOF for open base station protocols.  It is my
> hope that the IETF can help unify wireless access by providing
> specific link layer hooks that are universal across diverse radio
> access networks.

   This sounds like a worthy goal and I believe some what compatible with
   rohc groups agenda which covers giving guidelines to link layer designers
   and defining compression schemes for specific link technologies.
> 
> Does this fall into the PILC or Mobile-IP scope or somewhere else?
> I am not sure.
> 
> Thanks,
> 
> Phil QA2757@email.mot.com
> 847-632-4118

  The ROHC group's work so far is mainly for RTP and not so much support is
  provided for TCP.

  Correct me if am wrong but the ROHC schemes assume that the packets sent
  have little or no error detection in them but that is how things are wanted
  for Voice over IP over the air as they would rather have corrupted data
  than have the whole packet dropped.

  The draft-jonsson-robust-hc-04.txt working document spells out having
  checksums only of the headers and presumably only dropping packets whoose
  header is corrupted (when it's compressed to a few bytes this is likely to
  be rare). Presumably corrupt packets with good headers are better than no
  packets.

  One question I have about that is that UDP for IPv6 requires mandatory
  checksums. Does this imply that the implementation would still try to use
  the failing packets? It's not clear to me that exactly how this is going to
  work.

  Finally I would like to suggest that a reliable profile transfer where
  there is bidirectional links be produced using a simple Nack
  (Negative acknowledgement) scheme like that described by Phil Karn
  in his paper:

  	http://people.qualcomm.com/karn/papers/usenix.ps.gz
    
  I suggest segmentation using small segments and Nacks.

  There must be a large amount of theory on this and some formulas about it.
  I did some maths and found that surprisingly low segmentation numbers for
  even quite modest BER values.

  I assumed packets were segemented into segements of size f with with two
  bytes of overhead per segment (1 byte CRC and 1 byte count?),
  ignored the Nack traffic (as it's in the other direction?) and got
  for the average amount transmitted (in the one direction) for a packet of
  length D:

  T = ((D/f)+1)*(f + c)/p

    where f = segement size (I called it fragment)
          c = size of segement overhead 
	  p = probability of segment transmission, assuming a constant BER.
	      i.e.  p = 1 - (1 - BER)**(f+c)

    and I assume the last segment is truncated to only contain the remaining
    data, if not you need an upper bound on the segment size say 50 bytes.

    For c = 2, D = 640
    Optimal values for f were:

    BER = .01 	f = 4 p = 0.617290  efficiency = 2.430
    BER = .001 	f = 16 p = 0.865825 efficiency = 1.299
    BER = 0.0001 f = 50 p = 0.959251 efficiency = 1.084
    BER = 1e-05 f = 150 p = 0.987914 efficiency = 1.026

      (efficiency is how much data is transmitted in the one direction
      divided by the size of the original data)

   Admittedly my maths may be off but although surprisingly low, I think it's
   about right. 

    I also came up with the following approximation for the ideal segment
    size :

    	sqrt(c**2 + c/8e)

	which depends only on the segment overhead and the BER value (e).

    The formula appears to work pretty good from my simulation data.
    
    I think that the ROCCO system could use this for TCP support.  I think
    the ideal fragment size calculation could be done on the number of
    packets lost over a period. The result from this calculation could
    be used to update the size of the segement size used.  This would
    allow the system to migrate to an appropriate value for the link
    dynamically as the environment changes. With f values < 200 this
    might only take a few seconds between adjustments.

    It needs a lot of work to turn the idea into a practical scheme, but the
    basic principle seems sound to me. e.g. Issues of frame size, handling
    sequence count wrap around and so on.

    Admittedly a lot of assumptions are made about the distribution of error
    bits but the general principal of using moderate segment sizes and Nacks
    seems to be a very robust approach. i.e. Erring on the side of small
    segments allows people to use large MTUs on their link (to avoid IPv4
    fragmentation problems) and minimise the damage that long or short error
    bursts will do.

    This scheme might actually be useful with some UDP systems. Possibly
    the sending of a packet over this profile as opposed to another more
    lossy profile but lower latency profile could be chosen on a packet stream
    basis?  i.e. Using QoS or protocol TCP vs UDP.

    Finally the selection of what to send over such a reliable profile needs
    to be judged based on the latency of the Nacks. If segments are small
    enough and Nacks can be returned quickly enough then the scheme would
    be practical for time constrained media like voice.

    	Andrew Worsley