networks connect computers.
the cloud represents any network (whether local or not)
this iconography predates cloud computing
computers on the edge of a network are called hosts or end systems
(even if also “servers”)
hosts directly connected
to switches
implement network more efficient
than shared medium
machines on network
(hosts, switches, …)
called nodes
nodes connected by
links
(implemented by wires
or radio or …)
routers or gateways connect networks
connected networks form
internetwork
example: the Internet
flow = data flowing ‘together’ across a network
often different ways of dividing data into flows
flow divided into packets/frames/segments
two or more flows can share one or more links
left switch multiplexes the two flows onto one link
right switch demultiplexes them to separate them
this picture: multiplexed by dividing up time on link
switches usually have buffers (also called queues)
holds waiting packets
{.fragment .fade-infragment-index=3 fig-alt=“Same diagram as previous slide, but the queue on the right switch (before the shared link) is overflowing with packets.”}
switch absorb “bursts” of packets
would be basically empty if we could send packets immediately
incomplete list of causes of bursts:
multiple unsynchronized flows
fast links produce packets faster than slow can send
if buffer full, switch must drop packets
called congestion
will happen eventually if overall rate faster than link
stream
datagrams
remote procedure calls
remote memory access
…
this class: focus on implementing streams of bytes
why?
BSD sockets are most used abstraction for using streams
server (passive end)
client (active end)
sockets can also provide datagram abstraction
server = entity that waits for + responds to clients
server:
client
can have channels without client/server model
but the interface sockets provide assume client/server
if each of users A–D are receiving (potentially different) video and audio from the video streaming server, then
IETF = Internet Engineering Task Force
most common internet protocols standardized by IETF
most IETF documents called RFCs
https://rfc-editor.org
Bluetooth Special Interest Group
IEEE (Institute of Electrical and Electronics Engineers)
3GPP (3rd Generation Partnership Project)
SCTE (Society of Cable Televsion Engineers)
ITU (International Telecommunication Union)
ISO (International Organization for Standardization)
lots of work! don’t want to implement all at once!
some parts need to be different for different local networks
some parts should not concern local network implementors
some parts should be same for different abstraction
current Internet:
usually session/presentation/application layers merged together
Figure 13 of Chapter 1 of Computer Networks: A Systems Approach (6th ed) (Peterson and Davie)
| 7 | application | what requests/etc. |
| 6 | presentation | format of data |
| 5 | session | coordinate multiple streams |
| 4 | transport | streams of data |
| 3 | network | message to correct network |
| 2 | data link |
message to correct machine message into bits/symbols |
| 1 | physical | transmit bits/symbols on medium |
standardized by ISO (International Standards Organization) and ITU (International Telecommunications Union)
full set of protocols…
that were often implemented and sometimes used…
but mostly lost out to IETF-standardized Internet protocols
term ‘layer 7’, ‘layer 4’, ‘layer 3’, etc. almost always refer to OSI model
…even though most of Internet does not follow it
are a lot of Internet protocols influenced by OSI protocols
OSI’s DAP (directory access protocol)
OSI presentation layer ASN.1 used in…
OSI’s routing protocol IS-IS still common in large Internet-connected networks
| OSI layer | name | examples | purpose |
| 7 | application |
HTTP, SSH, SMTP DNS, … |
application-defined meanings |
| 4 | transport | TCP, UDP, … | reach correct program,reliablity/streams |
| network | IPv4, IPv6, … | reach correct machine(across networks) | |
| 2 | link | Ethernet, Wi-Fi, … | coordinate shared wire/radio |
| 1 | physical | … | encode bits for wire/radio |
Figure 14 of Chapter 1 of Computer Networks: A Systems Approach (6th ed) (Peterson and Davie)
ICMP (Internet Control Message Protocol)…
implemented using a network layer…
used to send errors/control messages about routing…
I think saying network layer is probably better…
but we’re not going to be picky about it
layer terminology doesn’t always work cleanly
e.g. HTTPS:
e.g. DNS over HTTPS:
e.g. SFTP:
e.g. HTTP over OpenVPN: