An IP address conflates two things that should be separate: location (where) and identity (who). The latter should be in layer 4.
You don't ask the entire Post office to update ZIP codes when you move house.
It's not me saying it but the whole research community. Look at M-TCP, HIP, GTP (GPRS tunnelling), dynamic load balancing,... they are all try to somehow retrofit this separation in a backward, half-compatible way. Because it's too late it tends not to be pretty.
"As simple as possible, but not simpler" - too simple this time.
Posted Apr 2, 2013 12:17 UTC (Tue) by paulj (subscriber, #341)
[Link]
I don't think IP conflates these. It just wasn't an issue on the horizon in the design of IP. That said, the original designers of IP did envision that further addressing schemes (e.g the "associative addressing" Cerf & Kahn referred to in their '74 paper) might be layered over TCP.
Sadly, the designers and implementors that followed chose to prioritise short-term performance concerns over the long-term flexibility of IP. It became effectively impossible to insert new protocols between IP and TCP (in the sense of it having an IP protocol number != TCP).
It might still be possible to insert an identity layer. The lower 64 bits of the IPv6 address could be used for this. Unfortunately though:
a) There's no guarantee IPv6 will succeed
b) Even if it does, there are (as usual) short-sighted people out there pushing to abolish the split in IPv6 addresses between network and host ID portions ("Why should we limit the hierarchical network space to 64 bits? Why do we need 64 bits for a host?").
So we shall see if this is possible. Otherwise, it has to be done in TCP.
Identity is a very complex issue. It can mean different things to different people/processes at different times. Think about the identity for an email address, or an SSL cert, or a web page - you can surely think of many different scenarios and distinct issues for each. At the network layer, it is very hard to come up with a universal meaning of identity other than "the location in the network". Identity is an issue that really can't be solved at the network layer, other than equating it with location. Even a shim protocol between TCP and IP can't really say more than "these 2 network locations appear to be controlled by the same entity, around this time".
Anyway... :)
Fundamentally modifications to TCP are necessary
Posted Apr 2, 2013 16:15 UTC (Tue) by giraffedata (subscriber, #1954)
[Link]
An IP address conflates two things that should be separate: location (where) and identity (who). The latter should be in layer 4.
I'm with you on there being a need to separate location and identity, and to do it by layers, but it looks like all part of layer 3 (network layer) to me. One should be able to direct any IP packet to an identity, not just a TCP stream.
That's just speaking of ideals, of course. I'm not saying that's the direction we should be going now.
There is a layering issue between TCP and IP in that the TCP port address shouldn't be in the IP packet header. I wouldn't want to confuse that with this.