[e2e] Port numbers in the network layer?

Joe Touch touch at isi.edu
Thu Apr 25 13:12:26 PDT 2013



On 4/25/2013 12:56 PM, Hagen Paul Pfeifer wrote:
> * Joe Touch | 2013-04-25 11:46:38 [-0700]:
>> Consider that ethernet ethertype 0x0800 was originally intended to
>> mean "IP", allowing the IP version number to be determined at the IP
>> layer, but packet demuxing efficiency concerns resulted in a new
>> ethertype for IPv6 (0x86DD). So the ethertype includes not only the
>> upper layer protocol, but it's redundant with the version at the next
>> layer.
>>
>> Similarly we could allocate a new ethertype to "IPv4:TCP" or "IPv4:SCTP".
>>
>> So any "mix and match" architecture needs to have some indication of
>> what the particular mix is, but it need not be cascaded
>> layer-by-layer.
>
> In theory, but in practice this do not work because not every link is Ethernet
> and you may end up re-parsing the packet to determine the transport protocol
> at each hop.

Routers translate between different link layers; you're suggesting that 
how the layers are encoding affects translation efficiency. That's true, 
and a good argument for pushing information up the stack as late as 
possible, however doing so makes some kinds of multilayer decisions more 
complex - it's a trade-off.

> Limit the ethertype to the next layer was fine. The redundant information in
> Ethernet/IP header comes from the fact that we don't life in a perfect world
> and things evolve over time.

IMO, it comes from a bad decision to support a short-term fix based on 
the hardware limits at the time (which couldn't keep up with parsing 
multiple layers in hardware), vs. keeping a cleaner architecture. 
However, as you note, in this case it resulted in redundancy (rather 
than an either-or decision), so it 'just' wasted space and processing. ;-)

Joe


More information about the end2end-interest mailing list