Skip to content

History of home networking 1

Level 0: terminals (in 1970s)

USB (universal serial bus)

In 1970s, each computer has several serial ports, and transmit bytes on each serial lines

  • E.g. the computer is connected to a teletype machine (tty) through a serial port
  • There is no backspace or edit what you wrote in on teletype machines
  • Later teletype machines were replaced by glass terminals (or glass tty). And glass terminals would allow editing and erasing
  • Glass terminals — serial port — computers

(Sections in color red are newly added in that level)

Level 0.1: terminals + modems

Then, people started to want to have glass terminals at their home. Anything input into the glass terminals was transmitted to a computer at a different location through telephone lines

Glass terminals — serial port — modulator/demodulator — telephone lines — modulator/demodulator — serial port — computers

modulator/demodulator => modem (transform between bits and telephone signals)

(modem — telephone lines — modem) is an interposing (x-in-the-middle), and the glass terminals and computers on the two sides are not aware of these modems and telephone lines and consider they are directly connected to each other through a serial port.

Level 1: Internet at home

Glass terminals were replaced by computers (PC) in home, and PCs were speaking TCP/IP.

PC — TCP/IP — SLIP — serial port — modem — telephone lines — modem — serial port — SLIP — TCP/IP — PC

SLIP(Serial Line Internet Protocol) tags a length on each IP datagrams so that given bytesteams, SLIP can cut them into datagrams

SLIP was later replaced by PPP(Point to Point Protocol)

SLIP是串行线路协议(Serial Line IP)的英文缩写。PPP是点对点协议(Point to Point Protocol)的英文缩写。

Given level 1, if we abstract modems/computers on the path between a PC and the destination it want to talk to, it becomes this:

  • PC – TCP/IP – modem – ISP (Internet Service Provider. which is actually – modem — (PPP7) — router — other network interfaces (e.g. eth0)) – Internet – router — remote network (reddit)
  • Each part of this graph needs to keep some states for having a TCP connection between PC and reddit:
    • PC and reddit each needs a TCP Socket
    • And the routers of ISP and reddit need to know next hops for datagrams

Then the PC would need to keep:

  • TCP Socket:
    • 18.1.2.7:55000 (src address:src port)
    • 151.3.2.9:443 (dst address:dst port)

And reddit has:

  • TCP Socket:
    • 151.3.2.9:443 (src address:src port)
    • 18.1.2.7:55000 (dst address:dst port)

ISP needs to track how IP addresses should be routed:

  • ISP: (to the home PC) — modem — ppp7 — router — eth0 — internet
  • In the routing table:
    • 0/0: eth0 via 8.7.6.5 (8.7.6.5 is the address of its ISP)
    • 18.1.2.7/32: ppp7

Reddit’s router’s routing table:

  • 0/0: eth0 via 14.14.14.14 (14.14.14.14 is the address of reddit’s ISP)
  • 151.3/16: eth1

Level 2: cable modem

modem also speaks Ethernet instead of SLIP/PPP7

ISP: (to the home PC) – modem — eth1 — router — eth0 — internet

And in the routing table of ISP’s route (with address 18.1.0.1)r:

  • In the routing table:
  • 0/0: eth0 via 8.7.6.5 (8.7.6.5 is the address of its ISP)
  • 18.1.2.7/32: eth1
  • 18.1.0.1/32: is me

Level 3: home network

Multiple PCs are connected to the same modem. All PCs are connected to different ports of a switch and the switch is connected to the modem. A switch keeps an ethernet to port mapping. (A switch does not look at IP headers).

PC1: 18.1.2.7 and PC2: 18.1.2.8 are connected to the same switch

  • PC1 – switch – modem
  • PC2 – switch – modem

And at the ISP’s routing table:

  • 0/0: eth0 via 8.7.6.5 (8.7.6.5 is the address of its ISP)
  • 18.1.2.7/32: eth1
  • 18.1.0.1/32: is me
  • 18.1.2.8/32: eth1

Level 4: home subnet

Level 3 is annoying because the ISP’s routing table has an entry for both PC1 and PC2, and a “delegation” would make this easier.

At the home, there is a router between switch and modem:

  • PC1(18.1.2.7) – switch – (eth0) – router(18.1.2.2) – (eth1) – modem – (to ISP)
  • PC2(18.1.2.8) – switch – (eth0) – router(18.1.2.2) – (eth1) – modem – (to ISP)

At the home router’s routing table:

  • 0/0: eth1 via 18.1.0.1 (ISP address)
  • 18.1.2.0/24: eth0 (home network)

At the ISP’s routing table:

  • 0/0: eth0 via 8.7.6.5
  • 18.1.2.0/24: eth1 via 18.1.2.2
  • 18.1.0.1/32: is me

Level 5: home wireless network

The home switch is replaced by Wi-Fi (AP)

And then it gets harder for an ISP to assign an IP address to every device connected to the Wi-Fi in every its

用心记录,持续成长