01. TCP/IP overview

Let's see, how the task «organize data transfer between two arbitrary computers» task can be solved from scratch.

To solve these complex task we must divide it into subtasks and solve them independently.

1. Media

What data transmission media can we use?

1.1 Data representation

If binary, what is 0 and what is 1 :)

1.2 Data encoding

Representation is not enough:

2. Interface

How computers use the selected media?

From here we must select one of these:

  1. Circuit_switching network

    • N nodes, M channels
      • Two nodes hold a channel
      • Transmit all data
      • Release the channel
    • Disadvantage: M is always < N*(N-1)/2

  2. Packet_switching network

    • One media/N nodes
      • Data is divided to relatively small packets

      • A node can send one packet at the time
    • Disadvantage: there's no guaranteed data transfer rate, it depends on how overloaded the media is

Suppose we've selected packet switching.

2.1 Transfer convention

What data packet shall contain to be successfully sent from one node to another

2.2 Media utilization discipline

Example: ethernet

Ethernet packets are called frames

Carrier-sense multiple access with collision detection is smart, but makes transmission time unpredictable.

Raw old ethernet local network is functioning normally until 30% of all the time it's busy, and 70% stale. If load goes over 50%, the network is considered inoperable.

Example: Token_ring

This policy has guaranteed delivery speed, but slow.

Invariants

Incapsulation

All higher level data is separated into pieces (this is called fragmentation), each fit to be payload of a current level packet (level 2 packet is frame). Then data is wrapped into packet metadata (e. g. ethernet: MAC-addresses, type, checksum etc) and then sent.

Independence
There's (theoretically) no dependence on lower level implementation, e. g. ethernet frames are just the same, either if media is twisted pair or coaxial.

3. Global network

The task of data transfer is solved, but:

So we shall continue. Next subtask is to unite all local networks (sets of nodes bound by joint media) into global network

Router
a node of two or more local networks, that can retransmit packets from one network to another
Route
a chain of routers leads from sender to recipient
Routing

a process of determining this chain

Host
a node of global network

3.1 Identifying and routing

3.2 Dynamic connectivity

No host can bear a full routing map of global network:

But some information on what is connected to what is critical. Question is: what is «what»?

E. g.: the Internet

4. Data flows

So data may be transfered between any two host of the global network. Let's be sure if it was be transfered without corruption (or don't bother) and what can be done to avoid incidents.

4.1 Organize data into a flow

4.2 Flow control

E. g. TCP/IP

Principles:

5. Interpretation of data

So the data is delivered. But what it is?

5.1 Associate connection to an interpreter

5.2 Interpret

HSE/ArchitectureOS/01_TCPIP_Overview (последним исправлял пользователь FrBrGeorge 2020-06-20 18:40:21)