[e2e] Lost Layer?
Fred Baker (fred)
fred at cisco.com
Tue Feb 11 01:09:46 PST 2014
On Feb 10, 2014, at 6:31 PM, Joe Touch <touch at isi.edu> wrote:
> There are three layers, but it's TCP that's incomplete. I don't at all understand the difference between a "network layer" and an "internetwork layer".
Well, the deal is that layers can be sub-layered. Yes, the Internetwork layer is perhaps unfortunately named, in that it doesn't always interconnect networks. But it comes down to this.
First, consider that each layer answers a fundamental question. The physical layer provides the physical interconnect between a system and a neighboring system. The Link Layer provides the interpretation of signals on the physical medium connecting neighboring systems. The network layer connects a system to another system that it is not necessarily directly connected to. The Transport Layer provides needed services end to end across that network. In TCP's case, the service is that of a sequential, reliable, octets stream; in the case of UDP... SCTP..., and so on.
In real operational networks, in 2014, we have at least three common sub-layers within the network layer. One is what we call the Internetwork Layer and should be called, perhaps, the Inter-network sub-layer. It provides the end to end datagram service that TCP and other transports ride atop. Another might, by analogy, be called the Intra-network sublayer. It connects systems that are not necessarily directly connected, but use the same technology and are operated by a common administration. Switched Ethernets, 802.11 networks, MPLS, ATM, Frame Relay, and X.25 are all examples of Intra-network protocols. And then there is what one might call the virtualization sublayer, which is when, whatever we call it, we use an IP tunnel between the Internetwork and Intranetwork layers. Static IP/IP and GRE/IP tunnels, LISP, Mobile IP, L2TP, ...
They all do the same basic function: the connect systems that are not necessarily directly connected (and so are in the network layer), providing a service to the transport.
> The real 'disconnect' (pun intended) is that TCP uses the initial SYN destination port as both a service identifier and as part of the connection demultiplexer (i.e., address at the TCP layer), (see http://tools.ietf.org/html/draft-touch-tcpm-sno-00)
> *and* that both TCP and IP layers use IP addresses as part of their endpoint IDs (vs. having unique TCP endpoint addresses).
Well, I suspect that what is needed is a counterpart to Courier, something that would let an incoming TCP-or-whatever session identify the application it wants to connect to and would identify the connecting party, so that ports could simply be random numbers identifying sessions. The, I imagine, is something that the XNS Internet Transport got right, or a little more right than the IP folks did. I agree that the concept of location should not be part of the end to end session identifier; it's pretty useful in the IP address, because an IP address first gets a packet to a location and then to an interface at that location, but having done that, it's irrelevant.
More information about the end2end-interest