[e2e] Port numbers in the network layer?

Ken Calvert calvert at netlab.uky.edu
Thu Apr 25 14:30:43 PDT 2013

When I think about Bob's question in today's world of virtualization, delivering a datagram to a particular Sub-Network Point of Attachment seems kind of anachronistic.  Isn't the idea that a destination (application) resides on a particular computer, behind a particular interface, at best a [in]convenient fiction in many data centers?

The advantage of hiding the higher-level demux handle from IP was presumably so the network layer infrastructure could deal with smaller addresses.  That need has clearly vanished.

Thought experiment: suppose we simply declare tomorrow that the protocol and source-destination port pair are henceforth part of the destination IP address, and that the IP layer's job is to deliver a datagram to the application socket identified by the 5-tuple. The result would still be smaller than an IPv6 destination address :-).  More importantly, I can't think of anything in the routing/forwarding infrastructure that would have to change immediately: a /32 would be just another prefix.  (Of course, this only makes sense in a world with CIDR.)

And we've known for quite a long time that layered demux at the destination has disadvantages [1].

Having the network layer deliver packets to application queues rather than "hosts" seems like it would offer advantages in terms of virtualization and mobility (the latter maybe not so much in the current architecture).

[1] Tennenhouse, D. "Layered Multiplexing Considered Harmful", in Protocols for High-Speed Networks, Rudin and Williamson (Editors), North Holland, Amsterdam, 1989. Based on a presentation at IFIP WG 6.1/WG6.4 International Workshop on Protocols for High-Speed Networks, Zurich, May 1989.  http://www.tns.lcs.mit.edu/publications/multiplexing89.html


On 23 Apr 2013, at 15:24 PM, Bob Braden <braden at isi.edu> wrote:

> During the development of TCP during the 1977-1980 period, the original C&K  TCP layer was divided into a transport layer (TCP) and an internetwork layer (IP). One of the key decisions in this split was which layer should inherit the port numbers. At the time I simply accepted the group decision to put ports into the transport layer without taking time to think through the architectural implications. Has anyone ever thought through how the architecture would have been changed had ports ended up in the internetwork layer, i.e., in IP?
> Bob Braden

More information about the end2end-interest mailing list