ietf
[Top] [All Lists]

Re: Is Fragmentation at IP layer even needed ?

2016-02-09 17:18:32


On 2/9/2016 3:09 PM, Phillip Hallam-Baker wrote:
...
If we didn't need them to be MAC addresses we could go to EUI-64 and
have 16 shiny new bits to play with.

*You* wouldn't get to play with them; MAC vendors would. How would that
help, given they're already intended to be unique?

I don't want a unique identifier associated with my machine going on the wire.

Your MAC address can also be self-assigned as long as you do DAD within
the same subnet covered by the router advertisement.

...
By definition a tunnel has two ends. There is no reason why
fragmentation in a tunnel should make use of IP fragmentation as
opposed to an in-tunnel fragmentation scheme.

Reason #1: IP reassembly is already deployed. Yes, we could use other
protocols as a shim to support IP-in-IP (and we do), but that doesn't
mean that they necessarily won't end up with the same problem - assuming
*their* IP should be 1280.

Lots of things are already deployed. You presented a corner case. I
pointed out that there is no need to handle that corner case in the IP
layer.

That's very NIMBY of you.

I don't think you can use IP fragment reassembly to solve the problem
you are suggesting using it for. 1280 isn't actually a lot of bytes.
You are going to use that up fairly quickly if you are not careful.

It is already used for that purpose whenever there's IP in IP
encapsulation and where there are intermediate layers that don't support
fragmentation separately (e.g., UDP).

So let me understand:

        - first, you claim IP fragmentation is a network problem
        because it obscures info you need at forwarding devices
        (because you're peeking at L4)

No, that wasn't my argument. My argument was that I want all my
network gear to be capable of 64K networking because 1280 bytes is a
stupid maximum frame size in 2016.

It doesn't matter what size you pick. If it's 64KB, then the first time
you end up encountering 64KB in 64KB you'll need to fragment.

Having insisted that all my gear be 64K capable, I am quite happy with
a modest restriction to allow tunneling overhead. Lets say the max
payload an endpoint SHOULD generate is 64256 bytes, that would leave
1280 bytes for tunneling overhead.

Whatever number you think is reasonable will end up being consumed by
someone else.

        - now you want that info even further obscured by another
        layer of encapsulation

No, you raised the tunnel in tunnel corner case. I didn't suggest
requiring anything of the sort.

If your tunnel can't fit the input packet on a 64K clean pipe, then it
should have the responsibility to figure out how to fragment.

As long as it doesn't use "your" protocol to do it (IP)? Why?

Someone has to support tunneling somewhere. IP is intended to be the
universal interoperability layer - which means that it ought to be the
layer to support it.

Pushing it off to somewhere else will just end up with you complaining
that I've hidden some part of the L3, L4, ... header behind many layers
of cruft that your routers can't parse efficiently (again).

This is shuffling the deck chairs. Frag/reassembly is needed from
whatever layer relays messages.

Joe