[e2e] Lost Layer?
Detlef Bosau
detlef.bosau at web.de
Wed Feb 12 04:56:01 PST 2014
Am 11.02.2014 16:10, schrieb Joe Touch:
>
>
> 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);
> }
> }
In a sense, you repeat e.g. congestion control throughout the layers,
hence congestion control may occur on every layer.
Where I do not agree is that you do both, flow control and congestion
control. I think this is THE basic misconception in internetworking that
these two were different. They aren't.
To my understanding, the term congestion control is meaningless. Period.
It tries to cover a conceptual design fault.
In a sense (the very sense of Simon & Garfunkel) it is "kodachrome".
May I refer to my favourite network technology, GPRS. A service time for
a 1024 byte packet in GPRS to be successfully delivered may
vary from 1 ms up to 6 minutes (= 600.000 ms).
So, in a setting
endpoint GPRS link endpoint
how many packets may be in transit?
One?
Or sixhundredthousand?
The "congestion control work" gives a precise answer here: CWND/packet
size. That's the precise number of packets, which may be in transit.
(I don't know the english word for this kind of ultraprecise numbers. In
German, we would say: "soundsoviele". There may be "soundsoviele"
packets in transit. And when you ask what "soundsoviele" means in
English, you ask the very question of TCP congestion control.)
More information about the end2end-interest
mailing list