[e2e] Lost Layer?

Joe Touch touch at isi.edu
Tue Feb 11 07:10:35 PST 2014



On 2/11/2014 5:41 AM, Detlef Bosau wrote:
> Am 11.02.2014 03:31, schrieb Joe Touch:
...
>> I have no idea what a 'network' layer is that is different from what
>> we currently call the link layer.
>
> And you are not the only one to have this problem.
>
> When you have a look at
> @article{cerf,
> title={ Protocol for Packet Network Intercommunication},
> author={V.~ Cerf and R.~Kahn},
> journal={IEEE Transactions on Communications},
> month= "May",
> year= "1974",
> volume = "22",
> number = "5",
> pages = "637-- 648"
> }

At that time, the terminology was in flux.

By the mid-1980s, it had settled as:

	Internet		ISO

	application layer	app, presentation, & session layers

	transport layer		transport layer

	Internet layer		network layer

	subnetwork layer	link layer

The other ISO layers were often buried inside the Internet's app layer, 
though they're now split out (e.g., for the web HTTP is a session layer, 
HTML a presentation layer, and the content the app layer).

And we now (I hope) understand (or are starting to) that all the layers 
are really just relative to each other. All are just copies of the 
single step that wraps a lot of the ISO layers into a single function:


layer (message, from-addr, to-addr) {
	if (my-location == to-addr) then {
		return
	} else {
		next-message = translate(message, nextlayer), i.e.,
		translate the message to a format for the next layer,
		including any/all of:
			error correction
			flow control
			congestion control
			data content translation
			data format conversion
			fragment/reassembly
		translate this layer's identifiers to the next's:
			next-from = lookup(from-addr, nextlayer);
			next-to = lookup(to-addr, nextlayer);
		recurse:
			layer(next-message, next-from, next-to);
	}
}

(note that forwarding is just tail recursion of this function).

Joe


More information about the end2end-interest mailing list