Networking fundamentals:

 

Reference:

S. Keshav, "An Engineering Approach to Computer Networking: ATM Networks, the Internet and the Telephone Network", Addison-Wesley Professional Computing Series, ISBN 0-201-63442-2

======================================================

Fundamental problems in networking:

- Coding, transmission

- Multiple access, location tracking

- Switching and scheduling

- Naming, Addressing, Routing

- Error control, flow control

======================================================

Fundamental concepts and techniques in networking to attack these problems:

- Two parts: Switch controller (control plane) and switching hardware

(data plane). Separate network of switching controllers is an overlay

network.. In the Internet switch (router) controller protocols also use IP.

- Connecting inputs to outputs: Space division and time division

- Space division: data paths from input to output separated in space

- Eg: crossbar: inputs = row, outputs = column; crosspoints

and writes to outputs in proper order. Order swapping equipment

called time slot interchange (TSI) -- core of PBXs. Combination of

time-division and space-division is used in real telephony switches.

======================================================

General System Design ideas:

average rate <= service rate <= peak rate

Muxing Gain = peak rate/service rate.

Cost: buffering, delays for applications. Useful only if peak rate

differs significantly from average rate.

Spatial muxing: Decrease resource sizing expecting smaller set

of sources to be active at any time instant. Cost: call-blocking.

Temporal muxing: even if many are active at any particular

time instant, expect that the average over time will be much

smaller. Add buffers. Cost: buffers and meta-data (headers) in

packets => need packet switching to exploit both spatial and

temporal gains.

Tradeoff space and time resources for (gain in ) money (i.e.

optimize use of expensive resource).

Virtualization: If QoS is met, multiplexed

shared resource may seem like a unshared virtual resource. In

fact, multiplexing can allow us to convert a physical resource into multiple virtual resources. Specifically, Multiplexing + indirection = virtualization, i.e., refer the virtual resource as if it were the physical resource itself. Eg: virtual memory, virtual circuit, socket ports in BSD, telephone call. But, indirection requires binding and unbinding...

Economics: Assumption: buffer cheaper than bandwidth => tradeoff the latter for the former. With WDM and new wire

installation techniques, cost of bandwidth dropping => economic drive for spatial statistical muxing reducing: eg: Qwest.

good when overhead per task increases less than linearly w/ number

of tasks and time to accumulate a batch is not too long. Eg: Interrupt

handling of back to back packets can be batched. Silly window

avoidance in TCP is an application of batching. TCP also has triggers

to avoid batching for telnet packets -- when response time is

important and cannot be traded off any further.

repeat of tie. Eg: Use of exponential backoff in broadcast multiple

access (ethernet), avoidance of ACK or NAK implosion in reliable

multicast, or in some routing algorithms.

- Extensibility: hooks for future growth. Eg: version field, reserved

fields.

 

======================================================