Layer 3 essentials than an end system (computer, laptop) must have to communicate on the
Internet?
- IP Address, Prefix Length/subnet mask, Next hop IP address for default route (gateway,
router)
How does an end system typically get these essentials for IPv4? How does the protocol work?
- Discover, Offer, Request, Acknowledge
How would you programmatically find the prefix for an IP address, given its prefix length?
- Create 4 bytes (32 bits) with 27 1’s, bitwise & with your address.
Dynamic Host Control Protocol - DORA (Discover, Offer, Request, Acknowledge)
TCP Fast Open: A TFO Cookie is sent back in the Syn-Ack. Syn includes that cookie and data
transfer is enabled without waiting for the Ack.
Domain Name System (UDP, TCP)
- Namespace
- Server-Client Roles
- Name Resolution/Caching
- Record Types
Root:
Top-level domains: .com, .edu. .net, etc.
Second-level domains: byu, amazon, cs, etc. (Separated by ‘.’ such as [Link])
Stub resolver (wants the answer) -> recursive resolver (will find the answer).
Namespaces (more particularly, authoritative servers) have the answer
Example: Let’s say we are looking for [Link]
Stub resolver queries the recursive resolver for [Link]
Recursive resolver:
1. Query the root for .com
a. Root refers com (.com is at…)
2. Query: [Link]?
a. Com refers ([Link] is at…)
3. Query: [Link]
a. Answer: [Link] is [Link]
4. Return answer to stub resolver
Stub resolver now wants [Link]
Recursive Resolver:
1. Knows where .com is, goes straight there instead or root
2. Repeat above steps for [Link] from that level
DNS Record:
- Name
- Type
- A (IPv4 address)
- AAAA “Quad A”
- IPv6 Address
- NS = Name(s) for Authoritative Servers
- MX - Name(s) of Mail servers
- CNAME - Alias for another name
- TTL: how long to cache
- Record data:
Simple Mail Transfer Protocol (SMTP)
Mail User Agent (MUA) -> Mail Transfer Agent (MTA) -> MTA <- MUA
SMTP/SMTPS/HTTPS SMTP POP3/IMAP/HTTPS
Your computer sends mail to the MTA, which then sends it to another MTA. The MUA then asks
the MTA if it has any mail for it. Once a TCP connection is opened, data transfer is bidirectional
casey@[Link] <- MX
SMTP
1. MX lookup, A/AAAA lookup
2. Open TCP connection
3. Conversation, server starts