Chapter 2 Application Layer
Chapter 2 Application Layer
Application Layer
Computer Networking: A Top-Down
Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
8/10/2022 1
Outline
2.1 Principles of network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail (SMTP, POP3, IMAP)
2.5 DNS
2.6 P2P Applications
2.7 Socket programming with UDP and TCP
8/10/2022 2
Chapter 2: Application Layer
• learn about protocols by
Our goals: examining popular
• conceptual, implementation application-level
aspects of network application protocols
– HTTP
protocols
– FTP
• transport-layer service models
– SMTP / POP3 / IMAP
• client-server paradigm
– DNS
• peer-to-peer paradigm
• creating network
applications
– socket API
8/10/2022 3
Some network apps
• e-mail • voice over IP
• web • real-time video conferencing
• instant messaging • cloud computing
• remote login • Social networking
• P2P file sharing • streaming stored video
• multi-user network games (YouTube)
8/10/2022 4
Creating a network app
application
propagation
data link
physical
8/10/2022 5
Application architectures
•client-server
•peer-to-peer (P2P)
•hybrid of client-server and P2P
8/10/2022 6
Client-server architecture
server:
• always-on host
• permanent IP address
• data centers for scaling
clients:
• communicate with server
client/server • may be intermittently
connected
• may have dynamic IP addresses
• do not communicate directly
with each other
8/10/2022
7
P2P architecture
• no always-on server
• arbitrary end systems
directly communicate
• peers are intermittently
connected and change IP
addresses
➢highly scalable but difficult
to manage
8/10/2022 8
Hybrid of client-server and P2P
Skype
• voice-over-IP P2P application
• centralized server: finding address of remote party
• client-client connection: direct (not through server)
Instant messaging
• chatting between two users is P2P
• centralized service: client presence detection/location
• user registers its IP address with central server when it comes online
• user contacts central server to find IP addresses of buddies
8/10/2022 9
Processes communicating
• client process: process
process: program running within a that initiates
host. communication
• within same host, two processes • server process: process
communicate using inter- that waits to be contacted
process communication (defined
by OS). • aside: applications with
P2P architectures have
• processes in different hosts client processes & server
communicate by exchanging processes
messages
8/10/2022 10
Sockets
• process sends/receives messages to/from its socket
• socket analogous to door
• sending process shoves message out door
• sending process relies on transport infrastructure on other side
of door which brings message to socket at receiving process
application application
socket controlled by
process process app developer
transport transport
network network controlled
link by OS
link Internet
physical physical
8/10/2022 11
Addressing processes
• example port numbers:
• to receive messages, – HTTP server: 80
process must have – mail server: 25
identifier • to send HTTP message to
• host device has unique tdtu.edu.vn web server:
32-bit IP address – IP address: 128.119.245.12
– port number: 80
• identifier includes both
• A list of well-known port
IP address and port
number can be found at
numbers associated http://www.iana.org
with process on host. • We’ll examine port number in
detail in Chapter 3.
8/10/2022 12
App-layer protocol defines
• types of messages exchanged, open protocols:
– e.g., request, response • defined in RFCs
• message syntax: • allows for interoperability
– what fields in messages & • e.g., HTTP, SMTP
how fields are described proprietary protocols:
• message semantics • e.g., Skype
– meaning of information in
fields
• rules for when and how
processes send & respond to
messages
8/10/2022 13
What transport service does
an app need?
data integrity throughput
• some apps (e.g., file transfer, ❖ some apps (e.g.,
web transactions) require multimedia) require
minimum amount of
100% reliable data transfer throughput to be
• other apps (e.g., audio) can “effective”
tolerate some loss ❖ other apps (“elastic apps”)
make use of whatever
timing throughput they get
• some apps (e.g., Internet
telephony, interactive
security
games) require low delay
❖ encryption, data integrity,
to be “effective”
…
8/10/2022 14
Transport service requirements of
common apps
8/10/2022 15
Internet transport protocols services
TCP service: UDP service:
• reliable transport between
sending and receiving • unreliable data transfer
process between sending and
• flow control: sender won’t receiving process
overwhelm receiver
• does not provide: reliability,
• congestion control: throttle
sender when network flow control, congestion
overloaded control, timing,
• does not provide: timing, throughput guarantee,
minimum throughput security, or connection
guarantee, security
• connection-oriented: setup setup,
required between client and
server processes
8/10/2022 16
Internet apps: application,
transport protocols
application underlying
application layer protocol transport protocol
8/10/2022 17
Securing TCP
TCP & UDP
• no encryption SSL is at app layer
• cleartext passwds sent • Apps use SSL libraries, which
into socket traverse “talk” to TCP
Internet in cleartext SSL socket API
SSL ❖ cleartext passwds sent into
socket traverse Internet
• provides encrypted TCP
encrypted
connection
❖ See Chapter 7
• data integrity
• end-point authentication
8/10/2022 18
Outline
2.1 Principles of network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail (SMTP, POP3, IMAP)
2.5 DNS
2.6 P2P Applications
2.7 Socket programming with UDP and TCP
8/10/2022 19
Web and HTTP
First, a review…
❖ web page consists of objects
❖ object can be HTML file, JPEG image, Java applet,
audio file,…
❖ web page consists of base HTML-file which
includes several referenced objects
❖ each object is addressable by a URL
❖ example URL:
www.someschool.edu/someDept/pic.gif
❖ client/server model
▪ client: browser that
requests, receives, server
“displays” Web objects running
Apache Web
▪ server: Web server server
sends objects in
response to requests iphone running
Safari browser
8/10/2022 21
HTTP overview (continued)
8/10/2022 22
HTTP connections
8/10/2022 23
Nonpersistent HTTP
suppose user enters URL: (contains text,
www.someSchool.edu/someDepartment/home.index references to 10
jpeg images)
1a. HTTP client initiates TCP
connection to HTTP server 1b. HTTP server at host
(process) at www.someSchool.edu waiting for
www.someSchool.edu on port TCP connection at port 80.
80 “accepts” connection, notifying
client
2. HTTP client sends HTTP request
message (containing URL) into TCP
connection socket. Message 3. HTTP server receives request
indicates that client wants object message, forms response message
someDepartment/home.index containing requested object, and
sends message into its socket
time
8/10/2022 24
Nonpersistent HTTP (cont.)
4. HTTP server closes TCP connection.
time
6. Steps 1-5 repeated for each of 10
jpeg objects
8/10/2022 25
Non-Persistent HTTP: Response time
definition of RTT: time for a small
packet to travel from client to
server and back. initiate TCP
response time: connection
connection request
file
❖ one RTT for HTTP request and time to
RTT
first few bytes of HTTP transmit
response to return file
file
8/10/2022 26
Persistent HTTP
non-persistent HTTP issues: persistent HTTP
❖ requires 2 RTTs per object ❖ server leaves connection
❖ OS overhead for each TCP open after sending
connection response
❖ browsers often open parallel ❖ subsequent HTTP messages
TCP connections to fetch between same
referenced objects client/server sent over
open connection
❖ client sends requests as
soon as it encounters a
referenced object
❖ as little as one RTT for all
the referenced objects
8/10/2022 27
HTTP request message
❖ two types of HTTP messages: request, response
❖ HTTP request message:
▪ ASCII (human-readable format) carriage return character
line-feed character
request line
(GET, POST, GET /index.html HTTP/1.1\r\n
HEAD commands) Host: www-net.cs.umass.edu\r\n
User-Agent: Firefox/3.6.10\r\n
Accept: text/html,application/xhtml+xml\r\n
header Accept-Language: en-us,en;q=0.5\r\n
lines Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
Keep-Alive: 115\r\n
carriage return, Connection: keep-alive\r\n
line feed at start \r\n
of line indicates
end of header lines
8/10/2022 28
HTTP request message: general
format
~
~ entity body ~
~ body
8/10/2022 29
Uploading form input
POST method:
❖ web page often
includes form input
❖ input is uploaded to
server in entity body
URL method:
❖ uses GET method
❖ input is uploaded in
URL field of request
line: www.somesite.com/animalsearch?monkeys&banana
8/10/2022 30
Method types
HTTP/1.0 HTTP/1.1
❖ GET ❖ GET, POST, HEAD
❖ POST ❖ PUT
❖ HEAD ▪ uploads file in entity
body to path specified
▪ asks server to leave
in URL field
requested object out of
response ❖ DELETE
▪ deletes file specified in
the URL field
8/10/2022 31
HTTP response message
status line
(protocol
status code HTTP/1.1 200 OK\r\n
status phrase) Date: Sun, 26 Sep 201020:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02
GMT\r\n
header ETag: "17dc6-a5c-bf716880"\r\n
Accept-Ranges: bytes\r\n
lines Content-Length:2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html; charset=ISO-8859-
1\r\n
\r\n
data data data data data ...
data, e.g.,
requested
HTML file
8/10/2022 32
HTTP response status codes
❖ status code appears in 1st line in server->client
response message.
❖ some sample codes:
200 OK
▪ request succeeded, requested object later in this msg
301 Moved Permanently
▪ requested object moved, new location specified later in this
msg (Location:)
400 Bad Request
▪ request msg not understood by server
404 Not Found
▪ requested document not found on this server
505 HTTP Version Not Supported
8/10/2022 33
Trying out HTTP (client side) for yourself
ebay 8734
usual http request msg Amazon server
cookie file creates ID
usual http response
1678 for user create backend
ebay 8734
set-cookie: 1678 entry database
amazon 1678
usual http request msg
cookie: 1678 cookie- access
specific
usual http response msg action
8/10/2022 38
More about Web caching
8/10/2022 40
Web Caching Example (1)
Assumptions: origin
• Avg object size: 1 Mbits servers
• Avg request rate from browsers to origin servers: 15 Public
request/sec Internet
• Avg data rate to browsers: 1.50 Mbps
• RTT from institutional router to any origin server: 2
sec
• Access link rate: 15 Mbps = 100 Mbps
15 Mbps 100 Mbps
Consequences: access link
- (15 req/sec).(1 Mbits/req)/(100 Mbps) = 0.15 Institutional
- (15 req/sec).(1 Mbits/req)/(100 Mbps) = 0.15 network
• Total delay = Internet delay + access delay + LAN 100Mbps LAN
delay
= 2 sec + microseconds+ microseconds
8/10/2022 45
FTP: the file transfer protocol
file transfer
FTP FTP FTP
user client server
interface
user
at host remote file
local file system
system
8/10/2022 46
FTP: separate control, data
connections
• FTP client contacts FTP server at TCP control connection,
port 21, using TCP server port 21
8/10/2022 2-47
FTP commands, responses
sample commands: sample return codes
• sent as ASCII text over • status code and phrase (as in
control channel HTTP)
• USER username • 331 Username OK,
• PASS password password required
• LIST return list of file in • 125 data connection
current directory already open;
• RETR filename transfer starting
retrieves (gets) file • 425 Can’t open data
• STOR filename stores connection
(puts) file onto remote • 452 Error writing
host
file
8/10/2022 48
Outline
2.1 Principles of network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail (SMTP, POP3, IMAP)
2.5 DNS
2.6 P2P Applications
2.7 Socket programming with TCP
2.8 Socket programming with UDP
8/10/2022 49
Electronic mail
outgoing
Three major components: user message queue
• user agents agent
user mailbox
• mail servers mail user
• simple mail transfer protocol: server agent
SMTP
SMTP mail user
User Agent server agent
8/10/2022 50
Electronic mail: mail servers
mail servers: user
agent
• mailbox contains incoming
messages for user mail user
server agent
• message queue of outgoing (to
be sent) mail messages SMTP mail user
• SMTP protocol between mail server agent
servers to send email SMTP
messages user
SMTP
• client: sending mail server mail
agent
• “server”: receiving mail server
server user
agent
user
agent
8/10/2022 51
Electronic Mail: SMTP [RFC 2821]
8/10/2022 52
Scenario: Alice sends message
to Bob
1) Alice uses UA to compose 4) SMTP client sends Alice’s
message “to” message over the TCP
[email protected] connection
2) Alice’s UA sends message to 5) Bob’s mail server places the
her mail server; message placed message in Bob’s mailbox
in message queue 6) Bob invokes his user agent to
3) client side of SMTP opens TCP read message
connection with Bob’s mail
server
8/10/2022 2-54
Try SMTP interaction for
yourself:
• telnet servername 25
• see 220 reply from server
• enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands
above lets you send email without using email client (reader)
8/10/2022 2-55
Mail access protocols
user
mail access user
SMTP SMTP protocol
agent agent
(e.g., POP,
IMAP)
8/10/2022 56
POP3 protocol
S: +OK POP3 server ready
authorization phase C:
S:
user bob
+OK
• client commands: C: pass hungry
• user: declare username S: +OK user successfully logged on
• pass: password C: list
• server responses S: 1 498
• +OK S: 2 912
S: .
• -ERR
C: retr 1
transaction phase, client: S: <message 1 contents>
S: .
• list: list message numbers C: dele 1
• retr: retrieve message by C: retr 2
number S: <message 1 contents>
• dele: delete S: .
C: dele 2
• quit
C: quit
S: +OK POP3 server signing off
8/10/2022 57
POP3 (more) and IMAP
more about POP3 IMAP
• previous example uses • keeps all messages in one
POP3 “download and place: at server
delete” mode
• allows user to organize
• Bob cannot re-read e- messages in folders
mail if he changes client
• keeps user state across
• POP3 “download-and- sessions:
keep”: copies of messages
• names of folders and
on different clients
mappings between
• POP3 is stateless across message IDs and folder
sessions name
8/10/2022 58
Break Time
8/10/2022 59
Outline
2.1 Principles of network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail (SMTP, POP3, IMAP)
2.5 DNS
2.6 P2P Applications
2.7 Socket programming with TCP
2.8 Socket programming with UDP
8/10/2022 60
DNS: Domain Name System
people: many identifiers: Domain Name System:
– SSN, name, passport # • distributed database
Internet hosts, routers: implemented in hierarchy of
– IP address (32 bit) - many name servers
used for addressing • application-layer protocol: hosts,
datagrams name servers communicate to
– “name”, e.g., resolve names (address/name
www.yahoo.com - translation)
used by humans – note: core Internet function,
implemented as application-
Q: how to map between IP layer protocol
address and name, and – complexity at network’s
vice versa ? “edge”
8/10/2022 61
DNS: Services, structure
DNS services Why not centralize DNS?
❖ hostname to IP ❖ single point of failure
address translation ❖ traffic volume
❖ host aliasing ❖ distant centralized
▪ Canonical, alias names database
❖ mail server aliasing ❖ maintenance
❖ load distribution
▪ replicated Web doesn’t scale!
servers: set of IP
addresses for one
canonical name
8/10/2022 62
DNS: Distributed, Hierarchical Database
Root DNS Servers
… …
8/10/2022 63
DNS: Root name servers
• contacted by local name server that can not resolve name
• root name server:
– contacts authoritative name server if name mapping not known
– gets mapping
– returns mapping to local name server
c. Cogent, Herndon, VA (5 other sites)
d. U Maryland College Park, MD k. RIPE London (17 other sites)
h. ARL Aberdeen, MD
j. Verisign, Dulles VA (69 other sites ) i. Netnod, Stockholm (37 other sites)
8/10/2022 64
TLD and Authoritative Servers
Top-level domain (TLD) servers:
▪ responsible for com, org, net, edu, aero, jobs,
museums, and all top-level country domains, e.g.:
uk, fr, ca, jp
▪ Network Solutions maintains servers for com TLD
▪ Educause for edu TLD
Authoritative DNS servers:
▪ organization’s DNS servers, providing
authoritative hostname to IP mappings for
organization’s servers (e.g., Web, mail).
▪ can be maintained by organization or service
provider
8/10/2022 65
Local DNS name server
8/10/2022 2-66
DNS name resolution example
root DNS server
• host at cis.poly.edu 2
3
wants IP address for TLD DNS server
4
gaia.cs.umass.edu
5
iterated query: local DNS server
❖ contacted server dns.poly.edu
replies with name of 7 6
server to contact 1 8
❖ “I don’t know this
name, but ask this authoritative DNS server
server” requesting host
dns.cs.umass.edu
cis.poly.edu
gaia.cs.umass.edu
8/10/2022 67
DNS name resolution example
root DNS server
recursive query:
❖ puts burden of name 2 3
resolution on
contacted name 7 6
server TLD DNS server
❖ heavy load?
local DNS server
dns.poly.edu 5 4
1 8
8/10/2022 gaia.cs.umass.edu 68
DNS records
type=A type=CNAME
▪ name is hostname ▪ name is alias name for some
▪ value is IP address “canonical” (the real) name
▪ www.ibm.com is really
type=NS servereast.backup2.ibm.com
• name is domain (e.g., ▪ value is canonical name
foo.com)
• value is hostname of
authoritative name
server for this domain
type=MX
▪ value is name of mailserver
associated with name
8/10/2022 2-69
DNS protocol, messages
• query and reply messages, both with same message format
2 bytes 2 bytes
8/10/2022 2-70
DNS protocol, messages
2 bytes 2 bytes
identification flags
8/10/2022 2-72
Attacking DNS
DDoS attacks Redirect attacks
• Bombard root servers • Man-in-middle
with traffic • Intercept queries
• Not successful to date • DNS poisoning
• Traffic Filtering • Send bogus relies to DNS
• Local DNS servers cache server, which caches
IPs of TLD servers, Exploit DNS for DDoS
allowing root server
bypass • Send queries with
• Bombard TLD servers spoofed source address:
• Potentially more
target IP
dangerous • Requires amplification
8/10/2022 2-73
Outline
2.1 Principles of network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail (SMTP, POP3, IMAP)
2.5 DNS
2.6 P2P Applications
2.7 Socket programming with TCP
2.8 Socket programming with UDP
8/10/2022 74
Pure P2P architecture
• no always-on server
• arbitrary end systems
directly communicate
• peers are intermittently
connected and change IP
addresses
examples:
• file distribution
(BitTorrent)
• Streaming (KanKan)
• VoIP (Skype)
8/10/2022 75
File distribution: client-server vs P2P
Question: how much time to distribute file (size F) from one server to
N peers?
• peer upload/download capacity is limited resource
8/10/2022 76
File distribution time: client-server
• server transmission: must
sequentially send (upload) N F
us
file copies: di
• time to send one copy: F/us network
ui
• time to send N copies: NF/us
time to distribute F
to N clients using
client-server approach Dc-s > max{NF/us,,F/dmin}
increases linearly in N
8/10/2022 77
File distribution time: P2P
• server transmission: must upload
F
at least one copy us
• time to send one copy: F/us di
network
❖ client: each client must ui
download file copy
▪ min client download time: F/dmin
❖ clients: as aggregate must download NF bits
▪ max upload rate (limting max download rate) is us + Sui
time to distribute F
to N clients using
P2P approach
DP2P > max{F/us,,F/dmin,,NF/(us + Sui)}
increases linearly in N …
… but so does this, as each peer brings service capacity
8/10/2022
78
Client-server vs. P2P: example
client upload rate = u, F/u = 1 hour, us = 10u, dmin ≥ us
3.5
P2P
1.5
0.5
0
0 5 10 15 20 25 30 35
N
8/10/2022 79
P2P file distribution: BitTorrent
❖ file divided into 256Kb chunks
❖ peers in torrent send/receive file chunks
tracker: tracks peers torrent: group of peers
participating in torrent exchanging chunks of a file
Alice arrives …
… obtains list
of peers from tracker
… and begins exchanging
file chunks with peers in torrent
8/10/2022 80
P2P file distribution: BitTorrent
8/10/2022 82
BitTorrent: tit-for-tat
(1) Alice “optimistically unchokes” Bob
(2) Alice becomes one of Bob’s top-four providers; Bob reciprocates
(3) Bob becomes one of Alice’s top-four providers
8/10/2022 83
Outline
2.1 Principles of network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail (SMTP, POP3, IMAP)
2.5 DNS
2.6 P2P Applications
2.7 Socket programming with UDP and TCP
8/10/2022 84
2.7 Socket programming
- goal: learn how to build client/server applications that communicate
using sockets
- socket: door between application process and end-end-transport
protocol
application application
socket controlled by
process process app developer
transport transport
network network controlled
link by OS
link Internet
physical physical
8/10/2022 85
2.7 Socket programming
Two socket types for two transport services:
– UDP: unreliable datagram
– TCP: reliable, byte stream-oriented
Application Example:
1. Client reads a line of characters (data) from its
keyboard and sends the data to the server.
2. The server receives the data and converts characters
to uppercase.
3. The server sends the modified data to the client.
4. The client receives the modified data and displays the
line on its screen.
8/10/2022 86
Socket programming with UDP
UDP: no “connection” between client & server
• no handshaking before sending data
• sender explicitly attaches IP destination address and port # to
each packet
• rcvr extracts sender IP address and port# from received packet
8/10/2022 87
Client/server socket interaction: UDP
server (running on serverIP) client
create socket:
create socket, port= x: clientSocket =
serverSocket = socket(AF_INET,SOCK_DGRAM)
socket(AF_INET,SOCK_DGRAM)
Create datagram with server IP and
port=x; send datagram via
read datagram from clientSocket
serverSocket
write reply to
serverSocket read datagram from
specifying clientSocket
client address,
port number close
clientSocket
8/10/2022 88
Example app: UDP client
Python UDPClient.py
include Python’s socket
library
from socket import *
serverName = ‘hostname’
serverPort = 12000
create UDP socket for clientSocket = socket(socket.AF_INET,
server
8/10/2022 90
Socket-programming using TCP
Socket: a door between application process and end-
end-transport protocol (UCP or TCP)
TCP service: reliable transfer of bytes from one
process to another
controlled by
controlled by process application
application process
developer
developer socket socket
TCP with TCP with controlled by
controlled by
operating buffers, buffers, operating
internet variables system
system variables
host or host or
server server
8/10/2022 91
Socket programming
client must contact server
with
•
TCP
when contacted by client, server
TCP creates new socket for server
• server process must first be
process to communicate with
running
that particular client
• server must have created
– allows server to talk with
socket (door) that welcomes
multiple clients
client’s contact
– source port numbers used to
client contacts server by: distinguish clients (more in
• Creating TCP socket, specifying Chap 3)
IP address, port number of
server process application viewpoint:
• when client creates socket: client
TCP establishes connection to TCP provides reliable, in-order
server TCP byte-stream transfer (“pipe”)
between client and server
8/10/2022 92
Client/server socket interaction: TCP
server (running on hostid) client
create socket,
port=x, for incoming
request:
serverSocket = socket()
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
8/10/2022 93
Client/server socket interaction: TCP
8/10/2022 94
Example app: TCP client
Python TCPClient
from socket import *
serverName = ’servername’
create TCP socket for
serverPort = 12000
server, remote port 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = raw_input(‘Input lowercase sentence:’)
No need to attach server clientSocket.send(sentence)
name, port
modifiedSentence = clientSocket.recv(1024)
print ‘From Server:’, modifiedSentence
clientSocket.close()
8/10/2022 95
Example app: TCP server
Python TCPServer
from socket import *
create TCP welcoming serverPort = 12000
socket serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
server begins listening for
incoming TCP requests serverSocket.listen(1)
print ‘The server is ready to receive’
loop forever
while 1:
server waits on accept()
for incoming requests, new
connectionSocket, addr = serverSocket.accept()
socket created on return
sentence = connectionSocket.recv(1024)
read bytes from socket (but
not address as in UDP) capitalizedSentence = sentence.upper()
close connection to this connectionSocket.send(capitalizedSentence)
client (but not welcoming
socket) connectionSocket.close()
8/10/2022 96
Chapter 2: Summary
our study of network apps now complete!
• application architectures ❖ specific protocols:
– client-server ▪ HTTP
– P2P ▪ FTP
▪ SMTP, POP, IMAP
• application service requirements: ▪ DNS
▪ P2P: BitTorrent, DHT
– reliability, bandwidth, delay
8/10/2022 97
Chapter 2: summary
most importantly: learned about protocols!
8/10/2022 98
Additional Slides
application
packet (www browser,
OS
packet Transport (TCP/UDP)
copy of all Network (IP)
capture Ethernet
frames Link (Ethernet)
(pcap) sent/receive
d Physical
8/10/2022 99
Exercises
❑ Ex1. You use Wireshark to investigate and explore several aspects
of the HTTP protocol:
▪ the basic GET/reply interaction,
▪ HTTP message formats,
▪ retrieving large HTML files,
▪ retrieving HTML files with embedded URLs,
▪ persistent and non-persistent connections,
▪ and HTTP authentication and security
8/10/2022 100