1 of 56

CSE 122 / 222C ; WES 269�Networking Primer

Pat Pannuto, UC San Diego

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

2 of 56

Networking Primer Goals

  • Introduce OSI layer model of communication

​

  • Introduce internet structure and services

​

  • Provide enough general networking context for this class

2

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

3 of 56

Outline

  • OSI Layers

​

  • ”The Upper Layers”

3

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

4 of 56

Communication layers

  • Application
  • Presentation
  • Session
  • Transport
  • Network
  • Data Link
  • Physical

4

What goes on at each of these?

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

5 of 56

OSI model of communication layers

  • Transport
    • How to form connections between computers
    • TCP and UDP
  • Network
    • How to send packets between networks
    • IP
  • Data Link
    • How to send frames of data
    • Ethernet, WiFi
  • Physical
    • How to send individual bits
    • Ethernet, WiFi

​

5

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

6 of 56

OSI model of communication layers

  • Transport
    • How to form connections between computers
    • TCP and UDP
  • Network
    • How to send packets between networks
    • IP
  • Data Link
    • How to send frames of data
    • Ethernet, WiFi
  • Physical
    • How to send individual bits
    • Ethernet, WiFi

​

6

CSE

123

CSE

124

This

Class

EE courses

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

7 of 56

Protocols are “layered”

  • Headers for each layer of communication wrap data
    • Data is wrapped with header for the network to make a packet
    • Packet is wrapped with header for the link to make a frame

7

Data

Packet�Header

Frame�Header

Internet Packet

Ethernet Frame

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

8 of 56

Analogy: Sending a letter

8

Application:�Purpose/type of letter

Transport:�Carrier service

Named recipient

Network:�Street Address

Courier

Mailing/shipping�infrastructure

Link:�Transfer to�post office

Physical:�Moving tangible�object

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

9 of 56

Host: sends packets of data

host sending function:

  • takes application message�(string of bits, really)
  • breaks into smaller chunks, known as packets, of length L bits
  • transmits packet into access network at transmission rate R
    • link transmission rate, aka link capacity, aka link bandwidth

R: link transmission rate

host

1

2

two packets,

L bits each

packet

transmission

delay

time needed to

transmit L-bit

packet into link

L (bits)

R (bits/sec)

=

=

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

10 of 56

Host: sends packets of data

host sending function:

  • takes application message�(string of bits, really)
  • breaks into smaller chunks, known as packets, of length L bits
  • transmits packet into access network at transmission rate R
    • link transmission rate, aka link capacity, aka link bandwidth

R: link transmission rate

host

1

2

two packets,

L bits each

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

11 of 56

Protocols are “layered”

  • Headers for each layer of communication wrap data
    • Data is wrapped with header for the network to make a packet
    • Packet is wrapped with header for the link to make a frame

11

Internet Packet

Ethernet Frame

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

12 of 56

Packet encapsulation

  • Upper-layer packet is the payload for the lower-layer packet

12

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

13 of 56

Encapsulation

Introduction: 1-13

source

application

transport

network

link

physical

Ht

Hn

M

segment

Ht

datagram

destination

application

transport

network

link

physical

Ht

Hn

Hl

M

Ht

Hn

M

Ht

M

M

network

link

physical

link

physical

Ht

Hn

Hl

M

Ht

Hn

M

Ht

Hn

M

Ht

Hn

Hl

M

router

switch

message

M

Ht

M

Hn

frame

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

14 of 56

Transmitting data between networks

14

LAN2

protocol

software

client

LAN1

adapter

Host A

LAN1

data

(1)

data

PH

FH1

(4)

data

PH

FH2

(6)

data

(8)

data

PH

FH2

(5)

LAN2 frame

protocol

software

LAN1

adapter

LAN2

adapter

Router

data

PH

(3)

FH1

data

PH

(2)

internet packet

(7)

data

PH

protocol

software

server

LAN2

adapter

Host B

PH: Internet packet header

FH: LAN frame header

LAN1 frame

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

15 of 56

Model != reality

  • Wireless protocols don’t always split between layers cleanly
    • Usually explain parts of physical, data link, and possibly upper layers
  • Model still helps conceptualize stack-up though
    • Layering of some type still occurs

​

​

15

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

16 of 56

Layering for IoT (joke) (kind of)

16

MQTT

MQTT is a publish/subscribe message broker

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

17 of 56

Outline

  • OSI Layers

​

  • Internet Architecture (”The Upper Layers”)

​

17

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

18 of 56

The Internet: a “nuts and bolts” view

  • Internet: “network of networks”
    • Interconnected ISPs

​

mobile network

home network

enterprise

network

national or global ISP

local or regional ISP

datacenter

network

content

provider

network

  • protocols are everywhere
    • control sending, receiving of messages
    • e.g., HTTP (Web), streaming video, Skype, TCP, IP, WiFi, 4G, Ethernet

​

  • Internet standards
    • RFC: Request for Comments
    • IETF: Internet Engineering Task Force

​

Ethernet

HTTP

Skype

IP

WiFi

4G

TCP

Streaming

video

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

19 of 56

The global Internet

  • Most famous example of an internet (uppercase to distinguish, once..)

​

  • Based on the TCP/IP protocol family
    • IP (Internet Protocol)
      • Provides a naming scheme and unreliable delivery of packets from host-to-host
    • UDP (Unreliable Datagram Protocol)
      • Uses IP to provide unreliable data delivery from process-to-process
    • TCP (Transmission Control Protocol)
      • Uses IP to provide reliable data delivery from process-to-process

​

  • Accessed via a mix of Unix file I/O and the sockets interface

19

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

20 of 56

What’s a protocol?

Human protocols:

  • “what’s the time?”
  • “I have a question”
  • introductions

​

… specific messages sent

… specific actions taken when message received, or other events

Network protocols:

  • computers (devices) rather than humans
  • all communication activity in Internet governed by protocols

Protocols define the format, order of messages sent and received among network entities, and actions taken on message transmission, receipt

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

21 of 56

Hardware and software organization of an Internet application

21

TCP/IP

Client

Network

adapter

Global IP Internet

TCP/IP

Server

Network

adapter

Internet client host

Internet server host

Sockets interface

(system calls)

Hardware interface

(interrupts)

User code

Kernel code

Hardware

and firmware

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

22 of 56

A programmer’s view of the internet

1. Hosts are mapped to a set of 32-bit IP addresses

    • 132.239.8.169

​

2. The set of IP addresses is mapped to a set of identifiers called Internet domain names

    • 132.239.8.169 is mapped to cse.ucsd.edu

​

3. A process on one Internet host can communicate with a process on another Internet host over a connection

​

22

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

23 of 56

IP addresses

  • 32-bit IP addresses are stored in an IP address struct
    • IP addresses are always stored in memory in network byte order (big-endian)
      • Remember: most computers use little-endian 😭
    • True in general for any integer transferred in a packet header from�one machine to another
      • E.g., the port number used to identify an Internet connection

​

​

​

​

​

  • By convention, each byte in a 32-bit IP address is represented by its decimal value and separated by a period
      • IP address: 0x8169071E = 129.105.7.30

​

​

​

​

23

/* Internet address structure */

struct in_addr {

uint32_t s_addr; /* network byte order (big-endian) */

};

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

24 of 56

Domain Naming System (DNS)

  • The Internet maintains a mapping between IP addresses and domain names in a huge worldwide distributed database�called DNS

​

  • Conceptually, programmers can view the DNS database as a collection of millions of host entries
    • Each host entry defines the mapping between a set of domain names�and IP addresses

​

  • A special name: localhost
    • Refers back to the computer being used (IP address 127.0.0.1)

24

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

25 of 56

Internet connections

  • A socket is an endpoint of a connection
    • Socket address is an IPaddress:port pair
      • IP address identifies the computer
      • Port identifies the process on the computer

​

  • Clients and servers communicate by sending streams of bytes over connections. Most connections are:
    • Point-to-point: connects a pair of processes.
    • Full-duplex: data can flow in both directions at the same time,
    • [TCP adds] Reliable: stream of bytes sent by the source is eventually received by the destination in the same order it was sent.

25

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

26 of 56

Connection performance

  • Assume the maximum packet size is 128 bytes.
  • You need to send 1 KB (1024 bytes).
  • How long will this take on a 256 kbps link (ignoring other potential delays)?

​

    • 10 milliseconds
    • 32 milliseconds
    • 4 seconds
    • 32 seconds

​

26

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

27 of 56

Ports are used to identify services to the kernel

27

Web server

(port 80)

Client host

Server host 128.2.194.242

Echo server

(port 7)

Service request for

128.2.194.242:80

(i.e., the Web server)

Web server

(port 80)

Echo server

(port 7)

Service request for

128.2.194.242:7

(i.e., the echo server)

Kernel

Kernel

Client

Client

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

28 of 56

How does the Internet route packets?�(simplified…)

  • IP layer
    • Describes the overall goal
      • Packets from my computer <---> Google
  • Link layer (Ethernet)
    • Describes individual links
      • Packets from my computer <---> EBU3 Router
  • Routing
    • Using ethernet building blocks to get packets from one host to another

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

29 of 56

Addressing

  • How to solve the routing problem?
    • I need to know how to get data from me to you
  • How does the post office work?
    • I know where you live (your address)
      • Zip Code
      • City
      • Street
      • House Number
      • Name

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

30 of 56

Addressing

  • Your computer moves all the time
    • Home, school, Starbucks...

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

31 of 56

Addressing - Intranet and Internet

  • In general, network operators don’t change that often
  • Solution:
    • Tie IP addresses to network operators
    • Assign computers IPs as they join networks
  • Key Point:
    • Networks ”own” a block of IP address space
    • ”The Internet” is a network of networks

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

32 of 56

Getting an IP from `your building’s network`

  • The 1st Floor EBU3 router ”owns” 132.239.8.0-255
    • This is notated as 132.239.8.0/24
    • The first 24 bits ”matter”
  • cse.ucsd.edu ”owns” 132.239.8.169
    • 132.239.8.169/32, usually omit the /32

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

33 of 56

Aside: Who owns what?�https://ipinfo.io/AS7377

33

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

34 of 56

Identifying your computer?

  • Every network card has its own MAC address
    • IPs are (somewhat) dynamic, ”owned” by local networks
    • MACs are hardware and static, ”owned” by specific computers
      • Manufacturers own blocks of MACs, ”spend” them each time they make a device
  • ”Connecting” to a network
    • Your computer leases an IP from the local network
    • Only the local router knows your MAC, everyone else sees your IP
      • [n.b. this overview ignores NATs, which are commonplace today]

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

35 of 56

How to get across campus?

141.211.60.0/21

141.211.80.0/21

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

36 of 56

Only go up as far as you need

141.211.68.100/32 (you)

    • Go to umich.edu
    • Go to 141.211.13.224
    • 141.211.68.100/32 ≠141.211.13.244
    • Forward request to owning router (141.211.68.0/8)

​

      • 141.211.68.0/24 (Mason Hall router)
      • 141.211.68.0/24 ≠ 141.211.13.244
      • Forward request to owning router (141.211.60.0/11)

​

        • 141.211.60.0/21 (Central Campus Buildings)
        • 141.211.60.0/21 ≠ 141.211.13.244
        • Forward request to owning router (141.211.0.0/14)

​

          • 141.211.0.0/14 (University of Michigan)
          • 141.211.0.0/14 = 141.211.13.244
          • Lookup and pass request down

​

      • 141.211.13.0/24 (Fleming Administration Building)
      • 141.211.13.0/8 = 141.211.13.244
      • Lookup MAC and route to umich.edu server

​

  • 141.211.13.244/32
    • Replies (and routing process reverses)

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

37 of 56

How to get across the country?

141.211.68.100

72.14.204.104

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

38 of 56

No central authority of whole of address space…

141.211.68.100

72.14.204.104

0.0.0.0/0 ??

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

39 of 56

Routing

1.0.0.0/8

5.0.0.0/8

2.0.0.0/8

10.0.0.0/8

4.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

40 of 56

Routing

1.0.0.0/8

    • 2.0.0.0/8
      • 10.0.0.0/8
    • 4.0.0.0/8
      • 5.0.0.0/8
        • 10.0.0.0/8

5.0.0.0/8

    • 10.0.0/8

2.0.0.0/8

    • 10.0.0.0/8

10.0.0.0/8

4.0.0.0/8

    • 5.0.0.0/8
      • 10.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

41 of 56

Routing – ”Adaptive”

1.0.0.0/8

    • 2.0.0.0/8
      • 10.0.0.0/8
    • 4.0.0.0/8
      • 5.0.0.0/8
        • 10.0.0.0/8

5.0.0.0/8

    • 10.0.0/8

2.0.0.0/8

    • 10.0.0.0/8

10.0.0.0/8

4.0.0.0/8

    • 5.0.0.0/8
      • 10.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

42 of 56

Routing – Promises

  • The current architecture promises:
    • If it is possible, your packet will reach its destination
  • And nothing more
    • Can we make packets pick the fastest route every time?

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

43 of 56

Routing – Speed?

1.0.0.0/8

    • 2.0.0.0/8
      • 10.0.0.0/8
    • 4.0.0.0/8
      • 5.0.0.0/8
        • 10.0.0.0/8

5.0.0.0/8

    • 10.0.0/8

2.0.0.0/8

    • 10.0.0.0/8

10.0.0.0/8

4.0.0.0/8

    • 5.0.0.0/8
      • 10.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

44 of 56

Who routes to who?

  • Often, this is done manually
  • This causes problems
    • Pakistan / Youtube
    • Sweeden / The Internet (!)

1.0.0.0/8

    • 2.0.0.0/8
      • …
        • ...
          • 10.0.0.0/8
    • 4.0.0.0/8
      • 5.0.0.0/8
        • 10.0.0.0/8

5.0.0.0/8

    • 10.0.0/8

2.0.0.0/8

    • …
      • …
        • 10.0.0.0/8

10.0.0.0/8

4.0.0.0/8

    • 5.0.0.0/8
      • 10.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

45 of 56

Routing – Choices

1.0.0.0/8

    • 2.0.0.0/8
      • 10.0.0.0/8
    • 3.0.0.0/8
      • 10.0.0.0/8
    • 4.0.0.0/8
      • 5.0.0.0/8
        • 10.0.0.0/8

5.0.0.0/8

    • 10.0.0/8

2.0.0.0/8

    • 10.0.0.0/8

10.0.0.0/8

4.0.0.0/8

    • 5.0.0.0/8
      • 10.0.0.0/8

3.0.0.0/8

    • 10.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

46 of 56

Routing – Congestion

1.0.0.0/8

    • 2.0.0.0/8
      • 10.0.0.0/8
    • 3.0.0.0/8
      • 10.0.0.0/8
    • 4.0.0.0/8
      • 5.0.0.0/8
        • 10.0.0.0/8

5.0.0.0/8

    • 10.0.0/8

2.0.0.0/8

    • 10.0.0.0/8

10.0.0.0/8

4.0.0.0/8

    • 5.0.0.0/8
      • 10.0.0.0/8

3.0.0.0/8

    • 10.0.0.0/8

20.0.0.0/8

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

47 of 56

Routing – Congestion + Time

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

48 of 56

Routing – Congestion + Time

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

49 of 56

Routing – Other considerations [pre-2010, hah!]

  • Most ethernet packets have a Maximum Transmission Unit (MTU) of 1500 bytes
  • The fastest routers run at 10 GB/s

​

​

  • A 1 GHz processor can only do ~1000 instructions / packet
  • Tables must fit in cache
    • Memory accesses would cost ~100 instructions each

 

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

50 of 56

Some Perspective: North America (in June, 1999)

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

51 of 56

Internet structure: a “network of networks”

51

ISP A

ISP C

ISP B

access

net

access

net

access

net

access

net

access

net

access

net

access

net

access

net

access

net

access

net

access

net

…

…

…

…

…

…

Networks of ISPs connect to provide global connectivity

IXP

IXP

access

net

access

net

regional ISP

access

net

access

net

access

net

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

52 of 56

Some Perspective: The Internet

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

53 of 56

So how does the Internet of Things fit into the Internet?

  • “IP is the Narrow Waist of the Internet”
  • A recurring theme in this class:
    • How does this actually attach to the Internet
      • Physically [hello Hue Hub, Wyze Hub, August Hub, …]
      • Logically [are BLE devices really part of the IoT?]

53

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

54 of 56

Break + Thinking

  • What are the steps for viewing a website?

​

  1. You enter a domain name for the website

​

  • Computer looks up domain name to get IP Address

​

  • Computer sends request to IP_address:80

​

  • Computer gets back data, which it renders into a website

54

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

55 of 56

ALL the layers

  • A ‘famous’ interview question
    • “What happens when you type google.com into your browser’s address bar and press enter?”
    • https://github.com/alex/what-happens-when (11 pages!)
      • Keyboard events
      • Parsing URL
      • DNS lookup
      • Opening socket
      • HTTP protocol
      • HTML parsing
      • GPU rendering

55

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell

56 of 56

Lab 1: How does your Internet work?

  • What can you learn about the network around you?
  • Play with Wireshark
  • Protocol analysis, introspection

56

CSE 122/222C ; WES 269 [WI25]

CC BY-NC-ND Pat Pannuto – Content developed in coordination with Branden Ghena and Brad Campbell