Appendix
Appendix
Appendix 1
Appendix
Networking basics
o Protocol stack, layers, etc.
Math basics
o Modular arithmetic
o Permutations
o Probability
o Linear algebra
Appendix 2
Networking Basics
Appendix 3
Network
Includes
o Computers
o Servers
o Routers
o Wireless devices
o Etc.
Purpose is to
transmit data
Appendix 4
Network Edge
Network edge
includes…
…Hosts
o Computers
o Laptops
o Servers
o Cell phones
o Etc., etc.
Appendix 5
Network Core
Network core
consists of
o Interconnected
mesh of routers
Purpose is to
move data from
host to host
Appendix 6
Packet Switched Network
Telephone network is/was circuit switched
o For each call, a dedicated circuit established
o Dedicated bandwidth
Modern data networks are packet switched
o Data is chopped up into discrete packets
o Packets are transmitted independently
o No dedicated circuit is established
+ More efficient bandwidth usage
- But more complex than circuit switched
Appendix 7
Network Protocols
Study of networking focused on protocols
Networking protocols precisely specify
“communication rules”
Details are given in RFCs
o RFC is essentially an Internet standard
Stateless protocols do not “remember”
Stateful protocols do “remember”
Many security problems related to state
o E.g., DoS is a problem with stateful protocols
Appendix 8
Protocol Stack
Application layer protocols user
o HTTP, FTP, SMTP, etc. application space
Transport layer protocols transport
o TCP, UDP OS
Network layer protocols network
o IP, routing protocols
link
Link layer protocols NIC
card
o Ethernet, PPP physical
Physical layer
Appendix 9
Layering in Action
router
data application application data
transport transport
network network network
link link link
host physical physical
physical host
At source, data goes “down” the protocol stack
Each router processes packet “up” to network layer
o That’s where routing info lives
Router then passes packet down the protocol stack
Destination processes packet up to application layer
o That’s where the application data lives
Appendix 10
Encapsulation data X
Appendix 12
Client-Server Model
Client
o “speaks first”
Server
o responds to client’s request
Hosts are clients or servers
Example: Web browsing
o You are the client (request web page)
o Web server is the server
Appendix 13
Peer-to-Peer Paradigm
Hosts act as clients and servers
For example, when sharing music
o You are client when requesting a file
o You are a server when someone
downloads a file from you
In P2P, how does client find server?
o Many different P2P models for this
Appendix 14
HTTP Example
HTTP request
HTTP response
Appendix 15
cookie
Web Cookies
initial HTTP
session reques
HTTP t
respon
se, coo
kie
Cookie
c o o ki e database
qu e st ,
cookie HTTP re
r es p o nse
later HTTP
session
Appendix 17
SMTP
SMTP used to deliver email from sender to
recipient’s mail server
Then POP3, IMAP or HTTP (Web mail) used
to get messages from server
As with many application protocols, SMTP
commands are human readable
Sender Recipient
SMTP SMTP
POP3
Appendix 18
Spoofed email with SMTP
User types the red lines:
> telnet eniac.cs.sjsu.edu 25
220 eniac.sjsu.edu
HELO ca.gov
250 Hello ca.gov, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected]... Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
It is my pleasure to inform you that you
are terminated
.
250 Message accepted for delivery
QUIT
221 eniac.sjsu.edu closing connection
Appendix 19
Application Layer
DNS Domain Name Service
o Convert human-friendly names such as
www.google.com into 32-bit IP address
o A distributed hierarchical database
Only 13 “root” DNS server clusters
o Essentially, a single point of failure for Internet
o Attacks on root servers have succeeded…
o …but, attacks did not last long enough (yet)
Appendix 20
Transport Layer
The network layer offers unreliable, “best
effort” delivery of packets
Any improved service must be provided by
the hosts
Transport layer: 2 protocols of interest
o TCP more service, more overhead
o UDP less service, less overhead
TCP and UDP run on hosts, not routers
Appendix 21
TCP
TCP assures that packets…
o Arrive at destination
o Are processed in order
o Are not sent too fast for receiver: flow control
TCP also attempts to provide…
o Network-wide congestion control
TCP is connection-oriented
o TCP contacts server before sending data
o Orderly setup and take down of “connection”
o But no true connection, only logical “connection”
Appendix 22
TCP Header
bits
0 8 16 24 31
SYN-ACK
Appendix 26
Network Layer
Core of network/Internet
o Interconnected mesh of routers
Purpose of network layer
o Route packets through this mesh
Network layer protocol of interest is IP
o Follows a best effort approach
IP runs in every host and every router
Routers also run routing protocols
o Used to determine the path to send packets
o Routing protocols: RIP, OSPF, BGP, …
Appendix 27
IP Addresses
IP address is 32 bits
Every host has an IP address
Big problem Not enough IP addresses!
o Lots of tricks used to extend address space
IP addresses given in dotted decimal notation
o For example: 195.72.180.27
o Each number is between 0 and 255
Usually, a host’s IP address can change
Appendix 28
Socket
Each host has a 32 bit IP address
But, many processes can run on one host
o E.g., you can browse web, send email at same time
How to distinguish processes on a host?
Each process has a 16 bit port number
o Numbers below 1024 are “well-known” ports
(HTTP is port 80, POP3 is port 110, etc.)
o Port numbers above 1024 are dynamic (as needed)
IP address + port number = socket
o Socket uniquely identifies process, Internet-wide
Appendix 29
Network Address Translation
Network Address Translation (NAT)
o Trick to extend IP address space
Use one IP address (different port
numbers) for multiple hosts
o “Translates” outside IP address (based
on port number) to inside IP address
Appendix 30
NAT-less Example
source 11.0.0.1:1025
destination 12.0.0.1:80
source 12.0.0.1:80
destination 11.0.0.1:1025
Web
server Alice
IP: 12.0.0.1 IP: 11.0.0.1
Port: 80 Port: 1025
Appendix 31
NAT Example
Appendix 32
NAT: The Last Word
Advantage(s)?
o Extends IP address space
o One (or a few) IP address(es) can be
shared by many users
Disadvantage(s)?
o End-to-end security is more difficult
o Might make IPSec less effective
(IPSec discussed in Chapter 10)
Appendix 33
IP Header
re-assembled
Appendix 35
IP Fragmentation
One packet becomes multiple packets
Packets reassembled at destination
o Prevents multiple fragmentation/reassemble
Fragmentation is a security issue…
o Fragments may obscure real purpose of packet
o Fragments can overlap when reassembled
o Must reassemble packet to fully understand it
o Lots of work for firewalls, for example
Appendix 36
IPv6
Current version of IP is IPv4
IPv6 is a “new-and-improved” version of IP
IPv6 is “bigger and better” than IPv4
o Bigger addresses: 128 bits
o Better security: IPSec
How to migrate from IPv4 to IPv6?
o Unfortunately, nobody thought about that…
So IPv6 has not really taken hold (yet?)
Appendix 37
Link Layer
Link layer sends
packet from one
node to next
Links can be
different
o Wired
o Wireless
o Ethernet
o Point-to-point…
Appendix 38
Link Layer
On host, implemented in adapter:
Network Interface Card (NIC)
o Ethernet card, wireless 802.11 card, etc.
o NIC is “semi-autonomous” device
NIC is (mostly) out of host’s control
o Implements both link and physical layers
Appendix 39
Ethernet
Ethernet is a multiple access protocol
Many hosts access a shared media
o On a local area network, or LAN
With multiple access, packets can “collide”
o Data is corrupted and packets must be resent
How to efficiently deal with collisions in
distributed environment?
o Many possibilities, ethernet is most popular
We won’t discuss details here…
Appendix 40
Link Layer Addressing
IP addresses live at network layer
Link layer also needs addresses Why?
o MAC address (LAN address, physical address)
MAC address
o 48 bits, globally unique
o Used to forward packets over one link
Analogy…
o IP address is like your home address
o MAC address is like a social security number
Appendix 41
ARP
Address Resolution Protocol (ARP)
Used by link layer given IP address, find
corresponding MAC address
Each host has ARP table, or ARP cache
o Generated automatically
o Entries expire after some time (about 20 min)
o ARP used to find ARP table entries
Appendix 42
ARP
ARP is stateless
ARP can send request and receive reply
Reply msgs used to fill/update ARP cache
LAN
MAC: AA-AA-AA-AA-AA-AA MAC: BB-BB-BB-BB-BB-BB
Appendix 43
ARP Cache Poisoning
ARP is stateless, so…
Accept “reply”, even if no request sent
Trudy 111.111.111.003
CC-CC-CC-CC-CC-CC
111.111.111.001
LAN BB-BB-BB-BB-BB-BB
111.111.111.002
AA-AA-AA-AA-AA-AA
111.111.111.002 CC-CC-CC-CC-CC-CC
BB-BB-BB-BB-BB-BB 111.111.111.001 AA-AA-AA-AA-AA-AA
CC-CC-CC-CC-CC-CC
Appendix 45
Modular Arithmetic
Appendix 46
Clock Arithmetic
For integers x and n, “x mod n” is the
remainder when we compute x n
o We can also say “x modulo n”
0
Examples
o 33 mod 6 = 3
5 1
o 33 mod 5 = 3
o 7 mod 6 = 1 number “line”
o 51 mod 17 = 0 mod 6
o 17 mod 6 = 5
4 2
3
Appendix 47
Modular Addition
Notation and fun facts
o 7 mod 6 = 1
o 7 = 13 = 1 mod 6
o ((a mod n) + (b mod n)) mod n = (a + b) mod n
o ((a mod n)(b mod n)) mod n = ab mod n
Addition Examples
o 3 + 5 = 2 mod 6
o 2 + 4 = 0 mod 6
o 3 + 3 = 0 mod 6
o (7 + 12) mod 6 = 19 mod 6 = 1 mod 6
o (7 + 12) mod 6 = (1 + 0) mod 6 = 1 mod 6
Appendix 48
Modular Multiplication
Multiplication Examples
o 3 4 = 0 mod 6
o 2 4 = 2 mod 6
o 5 5 = 1 mod 6
o (7 4) mod 6 = 28 mod 6 = 4 mod 6
o (7 4) mod 6 = (1 4) mod 6 = 4 mod 6
Appendix 49
Modular Inverses
Additive inverse of x mod n, denoted –x
mod n, is the number that must be
added to x to get 0 mod n
o -2 mod 6 = 4, since 2 + 4 = 0 mod 6
Multiplicative inverse of x mod n,
denoted x-1 mod n, is the number that
must be multiplied by x to get 1 mod n
o 3-1 mod 7 = 5, since 3 5 = 1 mod 7
Appendix 50
Modular Arithmetic Quiz
Q: What is -3 mod 6?
A: 3
Q: What is -1 mod 6?
A: 5
Q: What is 5-1 mod 6?
A: 5
Q: What is 2-1 mod 6?
A: No number works!
Multiplicative inverse might not exist
Appendix 51
Relative Primality
x and y are relatively prime if they
have no common factor other than 1
x-1 mod y exists only when x and y are
relatively prime
If it exists, x-1 mod y is easy to
compute using Euclidean Algorithm
o We won’t do the computation here
o But, an efficient algorithm exists
Appendix 52
Totient Function
(n) is “the number of numbers less than n
that are relatively prime to n”
o Here, “numbers” are positive integers
Examples
o (4) = 2 since 4 is relatively prime to 3 and 1
o (5) = 4 since 5 is relatively prime to 1,2,3,4
o (12) = 4
o (p) = p-1 if p is prime
o (pq) = (p-1)(q-1) if p and q prime
Appendix 53
Permutations
Appendix 54
Permutation Definition
Let S be a set
A permutation of S is an ordered list
of the elements of S
o Each element of S appears exactly once
Suppose S = {0,1,2,…,n-1}
o Then the number of perms is…
o n(n-1)(n-2) (2)(1) = n!
Appendix 55
Permutation Example
Let S = {0,1,2,3}
Then there are 24 perms of S
For example,
o (3,1,2,0) is a perm of S
o (0,2,3,1) is a perm of S, etc.
Perms are important in cryptography
Appendix 56
Probability Basics
Appendix 57
Discrete Probability
We only require some elementary facts
Suppose that S={0,1,2,…,N1} is the
set of all possible outcomes
If each outcome is equally likely, then
the probability of event E S is
o P(E) = # elements in E / # elements in S
Appendix 58
Probability Example
Forexample, suppose we flip 2 coins
Then S = {hh,ht,th,tt}
o Suppose X = “at least one tail” = {ht,th,tt}
o Then P(X) = 3/4
Often, it’s easier to compute
o P(X) = 1 P(complement of X)
Appendix 59
Complement
Again, suppose we flip 2 coins
Let S = {hh,ht,th,tt}
o Suppose X = “at least one tail” = {ht,th,tt}
o Complement of X is “no tails” = {hh}
Then
o P(X) = 1 P(comp. of X) = 1 1/4 = 3/4
We make use of this trick often!
Appendix 60
Linear Algebra Basics
Appendix 61
Vectors and Dot Product
Let be the set of real numbers
Then v n is a vector of n elements
For example
o v = [v1,v2,v3,v4] = [2,1, 3.2, 7] 4
The dot product of u,v n is
o u v = u1v1 + u2v2 +… + unvn
Appendix 62
Matrix
A matrix is an n x m array
For example, the matrix A is 2 x 3
Appendix 63
Matrix Addition
We can add matrices of the same size
Appendix 64
Matrix Multiplication
Suppose A is m x n and B is s x t
Then C=AB is only defined if n=s, in
which case C is m x t
Why?
The element cij is the dot product of
row i of A with column j of B
Appendix 65
Matrix Multiply Example
Suppose
Then
And AB is undefined
Appendix 66
Matrix Multiply Useful Fact
Consider AU = B where A is a matrix and U
and B are column vectors
Let a ,a ,…,a be columns of A and u ,u ,…,u
1 2 n 1 2 n
the elements of U
Then B = u a + u a + … + u a
1 1 2 2 n n
Example:
[ 3 4
1 5
][ ]
2
6
= 2 [ ] + 6 [ ]
3
1
4
5
= [ 30
32
]
Appendix 67
Identity Matrix
A matrix is square if it has an equal
number of rows and columns
For square matrices, the identity
matrix I is the multiplicative identity
o AI = IA = A
The 3 x 3 identity matrix is
Appendix 68
Block Matricies
Block matrices are matrices of matrices
For example
Appendix 69
Block Matrix Mutliplication
Block matrices multiplication example
For matrices
We have
Appendix 71
Linear Independence
Linear independence can be extended
to more than 2 vectors
If vectors are linearly independent,
then none of them can be written as a
linear combination of the others
o None of the independent vectors is a
sum of multiples of the other vectors
Appendix 72