Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 72

Κεφάλαιο 2ο

Application Layer

Computer Networking: A
Top-Down Approach
8th edition n
Jim Kurose, Keith Ross
Pearson, 2020

Application Layer 1
Περίγραμμα
2.1 Βασικές αρχές
2.2 Web και HTTP
2.3 FTP
2.4 electronic mail
 SMTP, POP3, IMAP
2.5 DNS

Application Layer 2-2


Application layer
Οι στόχοι μας:  Επισκόπηση βασικών
 Βασικές αρχές υλοποίησης πρωτοκόλλων
δικτυακών πρωτοκόλλων εφαρμογής
 HTTP
εφαρμογής
 FTP
 Μοντέλα υπηρεσιών  SMTP / POP3 / IMAP
στο transport-layer  DNS
 Υπόδειγμα client-server  Δημιουργία δικτυακών
 Υπόδειγμα peer-to-peer εφαρμογών
 socket API

Application Layer 2-3


Μερικές δικτυακές εφαρμογές
 e-mail  voice over IP (π.χ.,
 web Skype)
 text messaging  real-time video
 remote login conferencing
 P2P file sharing
 social networking
 multi-user network
 search
games  …
 streaming stored video  …
(YouTube, Netflix)

Application Layer 2-4


Δημιουργία μίας δικτυακής εφαρμογής application
transport
network

Γράψτε προγράμματα που:


data link
physical

 Τρέχουν σε διαφορετικά end


συστήματα
 Επικοινωνούν πάνω από το
δίκτυο
 Π.χ., web server software
επικοινωνεί με το browser
software
Δεν χρειάζεται να γράψετε application
transport
προγράμματα για τις δικτυακές network
data link application
συσκευές κορμού: physical transport
network
 Οι δικτυακές συσκευές δεν data link
physical

τρέχουν εφαρμογές χρηστών


 Οι εφαρμογές στα ακραία
συστήματα επιτρέπουν την
γρήγορη ανάπτυξή τους και
μετάδοσή τους
Application Layer 2-5
Αρχιτεκτονικές εφαρμογών

Πιθανές δομές των εφαρμογών:


 client-server (πελάτη – εξυπηρέτη)
 peer-to-peer (P2P) (ομότιμοι χρήστες)

Application Layer 2-6


Αρχιτεκτονική client-server
server:
 Ένας host πάντα ενεργός
 μόνιμη IP address
 Κλιμάκωση με τη χρήση data
centers

clients:
 Επικοινωνούν με το server
client/server  Δεν είναι πάντα συνδεδεμένοι
 Μπορεί να έχουν δυναμικές IP
διευθύνσεις
 Δεν επικοινωνούν απευθείας με
άλλους clients

Application Layer 2-7


P2P architecture
 Δεν υπάρχει always-on server
peer-peer
 Αυθαίρετα end systems
επικοινωνούν απευθείας
 Οι peers απαιτούν υπηρεσίες
από άλλους peers, παρέχουν
αντίστοιχα υπηρεσία σε άλλους
peers
 Δυνατότητα
επεκτασιμότητας – νέοι
peers αυξάνουν τις
δυνατότητες υπηρεσιών,
αλλά και τις απαιτήσεις
 Οι peers συνδέονται σποραδικά
και αλλάζουν IP διευθύνσεις
 Πολύπλοκη διαχείριση

Application Layer 2-8


Διεργασίες που επικοινωνούν
Διεργασία (process):
πρόγραμμα που τρέχει σε clients, servers
ένα host client process: η διεργασία
 Μέσα στον ίδιο host, δύο που εκκινεί την
διεργασίες επικοινωνούν επικοινωνία
χρησιμοποιώντας inter- server process: διεργασία που
process communication περιμένει να της ζητηθεί
επικοινωνία
(ορίζεται από το λειτουργικό
OS)
 Διεργασίες σε  Σημ: εφαρμογές σε P2P
διαφορετικούς χρήστες αρχιτεκτονικές έχουν
επικοινωνούν client processes & server
ανταλλάσσοντας μηνύματα processes

Application Layer 2-9


Sockets
 Μία διεργασία στέλνει/λαμβάνει μηνύματα σε/από το δικό της socket
 Το socket είναι μία πόρτα
 Η sending διεργασία σπρώχνει το μήνυμα έξω από την πόρτα
 Η sending διεργασία βασίζεται στην υποδομή μεταφοράς στην
άλλη άκρη της πόρτας ώστε να μεταφέρει το μήνυμα στο socket
της receiving process

application application
socket controlled by
process process app developer

transport transport
network network controlled
link
by OS
link Internet
physical physical

Application Layer 2-10


Διευθυνσιοδοτώντας τις Διεργασίες
 Οι διεργασίες πρέπει να  Ο identifier περιλαμβάνει
έχουν έναν identifier για την IP address και port
να λάβουν μηνύματα numbers που συσχετίζονται
με τη διεργασία στο host.
 Ο host device έχει μία  Παράδειγμα:
«μοναδική» IP address
 HTTP server: 80
 Q: Φτάνει αυτό για την
ταυτοποίηση της  mail server: 25
διεργασίας;  Π.χ. για να στείλουμε HTTP
message στον
 A: Όχι, διότι πολλές gaia.cs.umass.edu web
διεργασίες μπορεί να server:
τρέχουν στον ίδιο host  IP address:
128.119.245.12
 port number: 80

Application Layer 2-11


Τι ορίζει το App-layer
 Τύπους μηνυμάτων που open (ανοιχτά) protocols:
ανταλλάσσονται,  Ορίζονται στα RFCs
 π.χ., request, response  Επιτρέπουν τη
 Σύνταξη του μηνύματος: διαλειτουργικότητα
 Ποια πεδία και πώς τα  π.χ., HTTP, SMTP
πεδία προσδιορίζονται proprietary (ιδιόκτητα)
στο μήνυμα protocols:
 Σημασιολογία του  π.χ., Skype
μηνύματος
 Σημασία των πεδίων
 Κανόνες για το πότε και πως
οι διεργασίες στέλνουν και
αποκρίνονται σε μηνύματα

Application Layer 2-12


Επίπεδο μεταφοράς και ανάγκες εφαρμογών
Ακεραιότητα δεδομένων Throughput-ρυθμαπόδοση
 Κάποιες εφαρμογές (π.χ., file  Κάποιες εφαρμογές (π.χ.,
transfer, web transactions) multimedia) απαιτούν ένα
απαιτούν 100% αξιόπιστη ελάχιστο throughput
μεταφορά δεδομένων  Άλλες εφαρμογές(“elastic
 Άλλες εφαρμογές (π.χ., audio) apps”) κάνουν χρήση
μπορούν να ανεχτούν οποιουδήποτε throughput
απώλειες πακέτων έχουν στη διάθεσή τους
Χρονικές απαιτήσεις
 Κάποιες εφαρμογές (π.χ., Ασφάλεια
Internet telephony,  κρυπτογράφηση,
interactive games) ακεραιότητα δεδομένων …
απαιτούν χαμηλή
καθυστέρηση
Application Layer 2-13
Απαιτήσεις κοινών εφαρμογών

Εφαρμογή Απώλεια data Ρυθμαπόδοση Ευαισθησία χρόνου

file transfer no loss elastic no


e-mail no loss elastic no
Web documents no loss elastic no
real-time audio/video loss-tolerant audio: 5kbps-1Mbps yes, 10’s msec
video:10kbps-5Mbps
stored audio/video loss-tolerant same as above yes, few secs
interactive games loss-tolerant few kbps up yes, 10’s msec
text messaging no loss elastic yes and no

Application Layer 2-14


Υπηρεσίες πρωτοκόλλων μεταφοράς

TCP service: UDP service:


 Αξιόπιστη μετάδοση  Μη αξιόπιστη μεταφορά
 Έλεγχος ροής: Ο δεδομένων
αποστολέας δεν θα  Δεν παρέχει: αξιοπιστία,
λειτουργήσει ερήμην του έλεγχο ροής, έλεγχο
δέκτη
συμφόρησης, χρονισμό,
 Έλεγχος συμφόρησης: Ο εγγύηση throughput,
αποστολέας σταματά όταν
το δίκτυο υπερφορτωθεί ασφάλεια και
 Δεν παρέχει: χρονισμό, εγκατάσταση κλήσης,
εγγύηση ελάχιστου
throughput, ασφάλεια Q: Γιατί χρησιμοποιείται το
 connection-oriented: Γίνεται UDP;
εγκατάσταση σύνδεσης
μεταξύ client-server.

Application Layer 2-15


Internet apps: application, transport protocols

Application Layer 2-16


Ασφάλεια στο TCP

TCP & UDP TSL βρίσκεται στο app


 Δεν παρέχουν layer
κρυπτογράφηση  Οι εφαρμογές

TLS χρησιμοποιούν TSL


 Παρέχει βιβλιοθήκες που
κρυπτογραφημένη μιλάνε στο TCP
TCP σύνδεση
 Ακεραιότητα
δεδομένων
 Αυθεντικοποίηση στα
τερματικά σημεία

Application Layer 2-17


Περίγραμμα
2.1 Βασικές αρχές
2.2 Web και HTTP
2.3 FTP
2.4 electronic mail
 SMTP, POP3, IMAP
2.5 DNS

Application Layer 2-18


Web και HTTP
 Η web page αποτελείται από objects
 Αντικείμενο μπορεί να είναι ένα HTML file, JPEG
εικόνα, Java applet, audio αρχείο,…
 Η web page αποτελείται από ένα βασικό HTML-
file που περιλαμβάνει μερικά referenced objects
 Κάθε object μπορεί να κληθεί από το Uniform
Resource Locator (URL), π.χ.,

www.someschool.edu/someDept/pic.gif

host name path name

Application Layer 2-19


HTTP επισκόπηση
HTTP: hypertext transfer
protocol
 Web’s application layer HT T
P re
que
 client/server μοντέλο PC running st
HTT
Firefox browser P re
 client: o περιηγητής spo
nse
(browser) που ζητάει,
λαμβάνει
(χρησιμοποιώντας το u est
P req e
server
HTTP protocol) και HT
T
sp on
s running
εμφανίζει τα Web T TP
re Apache Web
αντικείμενα H server
 server: Ο Web server
στέλνει αντικείμενα iphone running
απαντώντας στις Safari browser
αιτήσεις
Application Layer 2-20
HTTP επισκόπηση
χρησιμοποιεί TCP: Το HTTP είναι“stateless”
 Δηλαδή ο server δεν
 Ο πελάτης εκκινεί την TCP
σύνδεση (δημιουργία socket) διατηρεί πληροφορίες
σχετικά με τα παρελθόντα
με το server, πόρτα 80 αιτήματα των clients
 Ο εξυπηρετητής δέχεται την requests
TCP σύνδεση από τον πελάτη Επιπλέον
 HTTP μηνύματα (μηνύματα Τα πρωτόκολλα που διατηρούν την
πρωτοκόλλου επιπέδου κατάσταση(“state” ) είναι
εφαρμογής) ανταλλάσσονται πολύπλοκα!
μεταξύ του περιηγητή (HTTP  Πρέπει να διατηρηθεί το

πελάτης) και του Web server ιστορικό των συνδέσεων


 Αν ο server/client καταρρεύσει,
(HTTP server)
οι τρέχουσες καταστάσεις που
 Κλείσιμο της TCP σύνδεσης έχουν διατηρήσει μπορεί να μη
συμπίπτουν

Application Layer 2-21


HTTP συνδέσεις
Μη διαρκείς (non-persistent) Διαρκείς (Persistent) HTTP
HTTP  Πολλά αντικείμενα
 Το πολύ ένα αντικείμενο μπορούν να σταλούν
στέλνεται από μία TCP πάνω από μία TCP
σύνδεση σύνδεση μεταξύ client,
 Η σύνδεση κλείνει μετά server
 Η μεταφόρτωση πολλών
αντικειμένων απαιτεί
πολλαπλές TCP συνδέσεις

Application Layer 2-22


Μη διαρκείς HTTP συνδέσεις
Υποθέστε ότι ο χρήστης εισάγει το URL: (περιέχει κείμενο,
www.someSchool.edu/someDepartment/home.index Αναφορές σε 10
jpeg images)
1a. Ο HTTP client εκκινεί την TCP
σύνδεση με τον HTTP server
(διεργασία) στο 1b. Ο HTTP server στον host
www.someSchool.edu στην www.someSchool.edu αναμένει
πόρτα 80 το αίτημα για TCP σύνδεση στην
πόρτα 80. “Δέχεται” τη σύνδεση
2. Ο HTTP client στέλνει το HTTP ειδοποιώντας τον client
request message (που περιέχει
3. Ο HTTP server λαμβάνει το
το URL) μέσα στο TCP socket.
μήνυμα - αίτημαr, σχηματίζει
Το μήνυμα υποδεικνύει ότι ο
το response message που
client θέλει το αντικείμενο
περιέχει το απαιτούμενο
someDepartment/home.index
αντικείμενο, και στέλνει το
time μήνυμα μέσα στο socket

Application Layer 2-23


Μη διαρκείς HTTP (cont.)

4. Ο HTTP server κλείνει την TCP


5. Ο HTTP client λαμβάνει το σύνδεση.
response message που περιέχει το
αρχείο html, απεικονίζει το html.
Αναλύει το html file, και βρίσκει
10 αναφερόμενα jpeg
αντικείμενα.
time
6. Τα βήματα 1-5
επαναλαμβάνονται για κάθε
ένα από τα 10 jpeg αντικείμενα

Application Layer 2-24


Μη διαρκείς HTTP: Χρόνος απόκρισης

RTT (ορισμός): Ο χρόνος ένα


μικρό πακέτο να ταξιδέψει
από τον client στο server
μετ’ επιστροφής initiate TCP
HTTP χρόνος απόκρισης: connection
 Ένα RTT για την εκκίνηση RTT
της TCP σύνδεσης request
file
 Ένα RTT για HTTP request
time to
RTT transmit
 Χρόνος μετάδοσης του
file
αρχείου file
 non-persistent HTTP χρόνος received

απόκρισης = 2RTT+ χρόνος


time
μετάδοσης του αρχείου time

Application Layer 2-25


Διαρκείς (persistent) HTTP (HTTP 1.1)

Προβλήματα του non- persistent HTTP:


persistent HTTP :
 Ο server αφήνει τη σύνδεση
ανοιχτή αφού στείλει την
 Απαιτεί 2 RTTs για κάθε απόκριση
αντικείμενο  Τα επόμενα HTTP μηνύματα
 overhead του OS για κάθε μεταξύ των ιδίων
TCP σύνδεση client/server στέλνονται
 Οι browsers συχνά πάνω από την ίδια ανοιχτή
ανοίγουν παράλληλες TCP σύνδεση
συνδέσεις για να πάρουν  Ο client στέλνει ένα αίτημα
τα referenced αντικείμενα μόλις θελήσει ένα
referenced object
 Ο χρόνος απόκρισης είναι
όσο ένα RTT για όλα τα
referenced objects
Application Layer 2-26
HTTP μήνυμα request
 Δύο τύποι μηνυμάτων HTTP: request, response
 HTTP request μήνυμα:
 ASCII 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
carriage return, Keep-Alive: 115\r\n
line feed at start Connection: keep-alive\r\n
\r\n
of line indicates
end of header lines
Application Layer 2-27
Άλλα HTTP request μηνύματα
POST method: HEAD method:
 H web page συχνά  κεφαλίδες αιτημάτων (μόνο) που
περιλαμβάνει μία φόρμα θα επιστρέψουν εάν ζητηθεί η
εισόδου καθορισμένη διεύθυνση URL με
μια μέθοδο HTTP GET.
 To input μεταφέρεται στο
server στο entity body PUT method:
 ανεβάζει νέο αρχείο
GET method (αποστολή δεδομένων (αντικείμενο) στον διακομιστή
στον server):  αντικαθιστά πλήρως το αρχείο
 Συμπεριλαμβάνονται τα user data στο που υπάρχει σε καθορισμένο URL
URL πεδίο του HTTP GET request με περιεχόμενο στο σώμα της
message (following a ‘?’): οντότητας του μηνύματος
αιτήματος POST HTTP
www.somesite.com/animalsearch?monkeys&banana
HTTP μήνυμα απόκρισης
status line (protocol HTTP/1.1 200 OK
status code status phrase) Date: Tue, 08 Sep 2020 00:53:20 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
PHP/7.4.9 mod_perl/2.0.11 Perl/v5.16.3
Last-Modified: Tue, 01 Mar 2016 18:57:50 GMT
header ETag: "a5b-52d015789ee9e"
lines Accept-Ranges: bytes
Content-Length: 2651
Content-Type: text/html; charset=UTF-8
\r\n
data data data data data ...
data, e.g., requested
HTML file

* Για περισσότερα παραδείγματα: http://gaia.cs.umass.edu/kurose_ross/interactive/


HTTP response status codes
 Ο status code εμφανίζεται στην πρώτη γραμμή στο μήνυμα απόκρισης
του server προς τον client.
 Παραδείγματα:

200 OK
• Το αίτημα είναι επιτυχές, ζητήθηκε αντικείμενο αργότερα σε αυτό το μήνυμα
301 Moved Permanently
• Το ζητούμενο αντικείμενο μετακινήθηκε, η νέα τοποθεσία προσδιορίζεται
αργότερα σε αυτό το μήνυμα (in Location: field)
400 Bad Request
• Το request msg δεν έγινε κατανοητό από τον server
404 Not Found
• To απαιτούμενο έγγραφο δε βρέθηκε στον server
505 HTTP Version Not Supported
Δοκιμή του HTTP (πλευρά client)
1. netcat στον αγαπημένο σας Web server:
 ανοίγει TCP σύνδεση στην πόρτα 80 (default HTTP
% nc -c -v gaia.cs.umass.edu 80
server port) at gaia.cs.umass. edu.
 Ό,τι γράψουμε θα σταλεί στην πόρτα 80 στη
gaia.cs.umass.edu
2. type in a GET HTTP request:
GET /kurose_ross/interactive/index.php HTTP/1.1
Host: gaia.cs.umass.edu  GET request to HTTP server

3. Κοιτάμε στο response message που έστειλε ο HTTP server!


Κατάσταση χρήστη-server: cookies
Πολλά Web sites κάνουν χρήση
των cookies Παράδειγμα:
 Η Σούλα πάντα μπαίνει στο
Τέσσερα συστατικά:
δίκτυο από το laptop της
1) Η γραμμή επικεφαλίδας του  Επισκέπτεται συγκεκριμένο
cookie στο HTTP μήνυμα
response e-commerce site για πρώτη
φορά
2) Η γραμμή επικεφαλίδας του  Όταν τα αρχικά HTTP
cookie του επόμενου HTTP requests φτάνουν στο site,
μηνύματος request αυτό δημιουργεί:
3) Το cookie αρχείο  μοναδικό ID
φυλάσσεται στο host του  Είσοδο στην backend
χρήστη, και το διαχειρίζεται database για τα ID
ο περιηγητής του χρήστη
4) back-end βάση δεδομένων
στο Web site
Application Layer 2-32
Cookies: διατηρούν “state” (συνέχεια)

client server

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

Μια βδομάδα αργότερα:


access
ebay 8734 usual http request msg
amazon 1678 cookie: 1678 cookie-
specific
usual http response msg action
Application Layer 2-33
Cookies – τα καλά και τα κακά
Κακά
Χρησιμοποιούνται: cookies και ιδιωτικότητα:
 αυθεντικοποίηση  Τα cookies επιτρέπουν
 καλάθια αγορών στα sites να μάθουν
 συστάσεις πολλά για μας
 διατήρηση συνεδρίας του  Παρέχουμε συνήθως στα
χρήστη (Web e-mail) sites ονόματα και e-mail

Πώς διατηρούν την“κατάσταση”:


 Τερματικά σημεία των πρωτοκόλλων: διατηρούν
κατάσταση στον αποστολέα/παραλήπτη σε
πολλαπλές δοσοληψίες
 cookies: Τα http μηνύματα μεταφέρουν την
κατάσταση
Application Layer 2-34
Web caches (proxy server)
Στόχος: ικανοποιεί τις αιτήσεις του χωρίς να εμπλέκεται ο
server προορισμού
 Ρυθμίζουμε τον browser:
Web προσβάσεις μέσω HT T
proxy
cache P re server q uest
H
que
st T P re
 Ο browser στέλνει όλα τα client T TP r H T
p onse origin
esp
ons T P res
HTTP requests to cache e HT server
est
 Αν το object είναι στην P req
u
se
T n
cache: Η cache το H T
resp
o
επιστρέφει TP
HT
 αλλιώς η cache
client
αιτείται το object από origin
server
το server προορισμού

Application Layer 2-35


Web caches (aka proxy servers)
 To Web caching λειτουργεί και Γιατί Web caching?
ως πελάτης και ως διακομιστής  μείωση του χρόνου απόκρισης
• διακομιστής για τον αρχικό πελάτη
αιτούντα
για αίτημα πελάτη
• πελάτης σε διακομιστή  Η προσωρινή μνήμη είναι πιο
προέλευσης
κοντά στον πελάτη
 Μειώνει την επισκεψιμότητα
 ο server ενημερώνει την κρυφή στη σύνδεση πρόσβασης ενός
μνήμη σχετικά με την επιτρεπόμενη
προσωρινή αποθήκευση του ιδρύματος
αντικειμένου στην κεφαλίδα  Το Διαδίκτυο είναι πυκνό με
απόκρισης:
κρυφές μνήμες
• επιτρέπει στους «φτωχούς»
παρόχους περιεχομένου να
παρέχουν πιο αποτελεσματικά
περιεχόμενο Application Layer 2-36
Caching Παράδειγμα
Σενάριο:
 Ρυθμός access link: 1.54 Mbps origin
 RTT από τον router στον server: 2 sec servers
public
 Μέγεθος web object: 100K bits Internet
 Μέσος ρυθμός αιτημάτων από τους
browsers στους servers προέλευσης: 15/sec
 μέσος ρυθμός δεδομένων στους
1.54 Mbps
browsers: 1.50 Mbps access link
problem: large institutional
queueing delays network
Performance: at high utilization!
1 Gbps LAN
 Χρήση του access link= .97
 LAN utilization: .0015
 end-end delay = Internet delay +
access link delay + LAN delay
= 2 sec + minutes + usecs

Application Layer 2-37


Option 1: Αγορά ταχύτερου access link
Σενάριο: 154 Mbps
 Ρυθμός access link : 1.54 Mbps origin
 RTT από τον router στον server : 2 sec servers
 Μέγεθος web object: 100K bits public
 Μέσος ρυθμός αιτημάτων από τους browsers στους Internet
servers προέλευσης: 15/sec
 μέσος ρυθμός δεδομένων στους browsers: 1.50
154 Mbps
Mbps 1.54 Mbps
access link
Επίδοση:
institutional
 Χρήση του access link= .97 .0097 network
1 Gbps LAN
 LAN utilization: .0015
 end-end delay = Internet delay +
access link delay + LAN delay
= 2 sec + minutes + usecs
msecs
Κόστος: ταχύτερο access link

Application Layer 2-38


Option 2: install a web cache
Scenario:
 Ρυθμός access link : 1.54 Mbps origin
 RTT από τον router στον server : 2 sec servers
 Μέγεθος web object: 100K bits public
 Μέσος ρυθμός αιτημάτων από τους browsers Internet
στους servers προέλευσης: 15/sec
 μέσος ρυθμός δεδομένων στους browsers:
1.50 Mbps 1.54 Mbps
access link
Κόστος: φτηνό web cache
institutional
network
Performance: 1 Gbps LAN
 LAN utilization: .? Πώς να υπολογίσεις link
 access link utilization = ? utilization, delay?
 average end-end delay = ? local web cache

Application Layer 2-39


Εnd-end delay with cache:
Υποθέτουμε cache hit rate ίσο με 0.4:
 40% των αιτημάτων εξυπηρετούνται από το web origin
cache, με μικρό (msec) delay servers
public
 60% των αιτημάτων εξυπηρετούνται στον Internet
προορισμό
• rate to browsers over access link
= 0.6 * 1.50 Mbps = .9 Mbps 1.54 Mbps
• access link χρήση = 0.9/1.54 = .58 που σημαίνει access link
χαμηλό (msec) queueing delay στο access link institutional
network
1 Gbps LAN
 μέσο end-end delay:
= 0.6 * (delay από origin servers)
+ 0.4 * (delay από cache) local web cache

= 0.6 (2.01) + 0.4 (~msecs) = ~ 1.2 secs

Μικρότερο μέσο end-end delay από ό,τι με 154 Mbps link (και φτηνότερο επίσης)
Application Layer 2-40
HTTP/2
Κύριος στόχος: μειωμένο delay σε multi-object HTTP
requests
HTTP1.1: Εισήγαγε πολλαπλά, pipelined GETs πάνω από μία
απλή TCP σύνδεση
 Ο server αποκρίνεται με τη σειρά (FCFS: first-come-first-served
scheduling)στα GET requests
 Με FCFS, τα μικρά αντικείμενα μπορεί να περιμένουν για μετάδοση
(head-of-line (HOL) blocking) πίσω από τα μεγάλα objects
 Η ανάρρωση από απώλειες (επαναμεταδόσεις των TCP segments)
μπλοκάρει τη μετάδοση αντικειμένων

Application Layer 2-41


HTTP/2
Κύριος στόχος: μειωμένο delay σε multi-object HTTP
requests
HTTP/2: [RFC 7540, 2015] αυξημένη ευελιξία στον server ως προς
την αποστολή αντικειμένων στον client:
 methods, status codes, most header fields ίδια με HTTP 1.1
 Η σειρά μετάδοσης των αντικειμένων βασίζεται σε προτεραιότητα
που είναι εξειδικευμένη για κάθε client (όχι απαραίτητα FCFS)
 push μη αιτηθέντα objects στον client
 Διαίρεση των objects σε frames, προγραμματισμός των frames για
την αποφυγή του Head Of Line blocking

Application Layer 2-42


HTTP/2: αποφυγή HOL blocking
HTTP 1.1: ο client αιτείται ένα μεγάλο object (e.g., video file) and 3
μικρότερα
server

GET O4 GET O3 GET O2 GET O1 object data requested


client

O1

O2
O1
O2 O3
O3
O4
O4

Τα objects μεταφέρονται με τη σειρά αίτησης: O2, O3, O4


περιμένουν πίσω από O1

Application Layer 2-43


HTTP/2: mitigating HOL blocking
HTTP/2: Τα objects διαιρούνται σε frames, η μεταδόση των frames γίνεται
με τη μέθοδο του interleaving
server

GET O4 GET O3 GET O2 GET O1 object data requested


client
O2
O4
O3 O1

O2
O3
O1 O4

O2, O3, O4 μεταφέρονται γρήγορα, O1


καθυστερείται ελαφρώς

Application Layer 2-44


HTTP/2 to HTTP/3
HTTP/2 πάνω από απλή TCP σύνδεση σημαίνει:
 Η ανάρρωση από απώλεια πακέτου ακόμα «κολλάει» όλες
τις μεταδόσεις αντικειμένων
• καθώς στο HTTP 1.1, οι browsers έχουν το κίνητρο να ανοίξουν
πολλαπλές παράλληλες TCP συνδέσεις για τη μείωση του stalling,
με παράλληλη αύξηση του συνολικού throughput
 Καμία ασφάλεια πάνω από vanilla TCP connection
 HTTP/3: Προσθέτει ασφάλεια, ανά αντικείμενο έλεγχο
σφαλμάτων και συμφόρησης (περισσότερο pipelining)
πάνω από UDP

Application Layer 2-45


Περίγραμμα
2.1 Βασικές αρχές
2.2 Web και HTTP
2.3 FTP
2.4 electronic mail
 SMTP, POP3, IMAP
2.5 DNS

Application Layer 2-46


FTP: Το πρωτόκολλο μεταφοράς αρχείων
file transfer
FTP FTP FTP
user client server
interface
user
at host remote file
local file system
system

 Μεταφορά αρχείου από/προς απομακρυσμένο host


 client/server μοντέλο
 client: πλευρά που ξεκινά μεταφορά (είτε προς/από
remote)
 server: remote host
 ftp: RFC 959
 ftp server: port 21 (port 22, secure FTP)
Application Layer 2-47
FTP: ξεχωριστός έλεγχος, συνδέσεις data
 Ο FTP client επικοινωνεί με
TCP control connection,
τον FTP server στην πόρτα 21, server port 21
με TCP
 Ο client εξουσιοδοτείται μέσω TCP data connection,
της σύνδεσης ελέγχου FTP server port 20 FTP
client server
 Ο client βλέπει τα
απομακρυσμένο directory, και
στέλνει εντολές πάνω από τη
σύνδεση ελέγχου
 Όταν ο server λάβει εντολή
αποστολής αρχείου , Ο server
ανοίγει 2η TCP σύνδεση
δεδομένων προς τον client
 Αφού ολοκληρωθεί η
μεταφορά του αρχείου, ο
server κλείνει τη σύνδεση
Application Layer 2-48
Περίγραμμα
2.1 Βασικές αρχές
2.2 Web και HTTP
2.3 FTP
2.4 electronic mail
 SMTP, POP3, IMAP
2.5 DNS

Application Layer 2-49


Ηλ. ταχυδρομείο outgoing
message queue
user mailbox
Τρία κύρια συστατικά: user
agent
 Ο agent του χρήστη (MUA)
 mail servers (MTA, MDA) mail user
server agent
 simple mail transfer
protocol: SMTP SMTP mail user
server agent
User Agent - Πράκτορας SMTP
 Ο “mail reader”
 e.g., Outlook, Thunderbird, SMTP user
agent
mail
iPhone mail client server
 Τα εξερχόμενα και user
agent
εισερχόμενα μηνύματα
αποθηκεύονται στο server user
agent

Application Layer 2-50


Μail servers
mail servers: user
agent
 mailbox περιλαμβάνει τα
μηνύματα για το χρήστη mail user
server
 message queue των προς agent
αποστολή μηνυμάτων SMTP mail user
 SMTP protocol μεταξύ των server agent
mail servers για να SMTP
ανταλλάξουν μηνύματα
 client: Ο αποστέλλων SMTP user
agent
mail
mail server server
 server: Ο λαμβάνων user
agent
mail server
user
agent

Application Layer 2-51


SMTP [RFC 5321]
 Χρησιμοποιεί το TCP για να στείλει μήνυμα από
τον client στο server στη θύρα 25
 Άμεση μεταφορά: Ο αποστέλλων server στο
λαμβάνοντα server
 Τρεις φάσης αποστολής
 handshaking (greeting)
 transfer of messages
 closure
 Αλληλεπίδραση εντολών/αποκρίσεων (όπως HTTP,
FTP)
 commands: ASCII text
 response: status code and phrase
 Τα μηνύματα πρέπει να είναι σε 7-bit ASCI
Application Layer 2-52
Σενάριο: Η Alice στέλνει μήνυμα στο Bob

1) Η Alice χρησιμοποιεί το MUA 4) SMTP client στέλνει το


για να στείλει μήνυμα “to” μήνυμα της Alice πάνω στην
bob@someschool.edu TCP σύνδεση
2) Ο MUA στέλνει το μήνυμα 5) Ο mail server του Bob
στο mail server της. Το τοποθετεί το μήνυμα στο
μήνυμα μπαίνει στην mailbox του (MDA)
message queue 6) Ο Bob χρησιμοποιεί το δικό
3) Η client πλευρά του SMTP του user agent για να
ανοίγει TCP σύνδεση με τον διαβάσει το μήνυμα
mail server του Bob (MTA)

1 user mail user


mail agent
agent server server
2 3 6
4
5
Alice’s mail server Bob’s mail server
Application Layer 2-53
Απλό παράδειγμα SMTP χρήσης
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

Application Layer 2-54


Πρωτόκολλα πρόσβασης mail
user
mail access user
SMTP SMTP protocol
agent agent
(e.g., POP,
IMAP)

sender’s mail receiver’s mail


server server
 SMTP: μεταφορά/αποθήκευση στο mail server
 mail access protocol: Ανάκτηση από το server
 POP: Post Office Protocol [RFC 1939]: authorization,
download
 IMAP: Internet Mail Access Protocol [RFC 1730]:
περισσότερα χαρακτηριστικά, περιλαμβάνοντας
διαχείριση μηνυμάτων που είναι αποθηκευμένα στο
server
 HTTP: Gmail, Hotmail, Yahoo! Mail, κλπ.

Application Layer 2-55


POP3 protocol
S: +OK POP3 server ready
C: user bob
authorization phase S: +OK
C: pass hungry
 client commands:
S: +OK user successfully logged on
 user: declare username
 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>
 list: list message numbers S: .
 retr: retrieve message by C: dele 1
number C: retr 2
S: <message 1 contents>
 dele: delete
S: .
 quit C: dele 2
C: quit
S: +OK POP3 server signing off
Application Layer 2-56
POP3 (περισσότερα) και IMAP
Περισσότερα για POP3 IMAP
 Το προηγούμενο παράδειγμα  Κρατάει όλα τα μηνύματα
χρησιμοποιεί τον POP3 στον server
“download and delete” τρόπο  Επιτρέπει στο χρήστη να
 Ο Bob δεν μπορεί να οργανώσει τα μηνύματα
διαβάσει e-mail αν σε folders
αλλάξει client  Κρατάει την κατάσταση
 POP3 “download-and-keep”: του χρήστη κατά τις
αντίγραφα των μηνυμάτων σε συνόδους:
διάφορους clients  Ονόματα φακέλων και
 POP3 είναι “χωρίς αντιστοιχίες μεταξύ των
κατάσταση» στα διάφορα IDs των μηνυμάτων και
sessions του ονόματος του
φακέλου

Application Layer 2-57


Περίγραμμα
2.1 Βασικές αρχές
2.2 Web και HTTP
2.3 FTP
2.4 electronic mail
 SMTP, POP3, IMAP
2.5 DNS

Application Layer 2-58


DNS: domain name system
Άνθρωποι: πολλές ταυτότητες: Domain Name System:
 ταυτότητα, όνομα,  Κατανεμημένη βάση
διαβατήριο # δεδομένων που
διαχειρίζονται ιεραρχικά
Internet hosts, routers:
πολλοί name servers
 IP address  application-layer protocol:
 “name”, π.χ., hosts, name servers
www.yahoo.com – που επικοινωνούν για να κάνουν
χρησιμοποιείται από τη μετάφραση address/name
τους ανθρώπους  Σημ: Βασική Internet
Q: Πώς γίνεται η αντιστοίχιση λειτουργία, που υλοποιείται
ονομάτων σε διευθύνσεις σαν application-layer
και αντίστροφα? protocol
 Πολυπλοκότητα στο άκρο
του δικτύου

Application Layer 2-59


DNS: υπηρεσίες, δομή
DNS services Γιατί όχι κεντρικοποιημένο
 Μετάφραση hostname σε DNS?
IP διεύθυνση Μοναδικό σημείο αποτυχίας
 host aliasing - ψευδώνυμα Μεγάλη κίνηση
 canonical, alias names
Βάση δεδομένων που να
 mail server aliasing - τοποθετηθεί κάπου κεντρικά
ψευδώνυμα Διαχείριση
 Κατανομή φόρτου
 Κλωνοποιημένοι Web A: Κυρίως δεν επεκτείνεται
servers: Πολλές IP  Comcast DNS servers alone: 600B
addresses αντιστοιχούν DNS queries/day
σε ένα όνομα  Akamai DNS servers alone: 2.2T DNS
queries/day

Application Layer 2-60


DNS: Κατανεμημένη, ιεραρχική βάση
Root DNS Servers

… …

com DNS servers org DNS servers edu DNS servers

pbs.org poly.edu umass.edu


yahoo.com amazon.com
DNS servers DNS servers DNS servers
DNS servers DNS servers

Ο client θέλει την IP for www.amazon.com; 1st approx:


 Ο client ρωτά το root server για να βρει τον .com DNS server
 Ο client ρωτά τον .com DNS server για να βρει τον amazon.com
DNS server
 Ο client ρωτά τον amazon.com DNS server για να πάρει την IP του
www.amazon.com

Application Layer 2-61


DNS: root name servers
 Είναι σημεία επαφής των τοπικών name servers που δεν επιλύουν
(resolve) τα ονόματα
 root name server:
 Επικοινωνεί με τον εξουσιοδοτημένο name server (authoritative) αν
δεν γνωρίζει την αντιστοιχία (mapping)
 Παίρνει την αντιστοιχία και την επιστρέφει στον τοπικό 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)

e. NASA Mt View, CA m. WIDE Tokyo


f. Internet Software C. (5 other sites)
Palo Alto, CA (and 48 other sites)

a. Verisign, Los Angeles CA 13 root name


(5 other sites)
b. USC-ISI Marina del Rey, CA
“servers” worldwide
l. ICANN Los Angeles, CA
(41 other sites)
g. US DoD Columbus, OH
(5 other sites)

Application Layer 2-62


TLD, εξουσιοδοτημένοι servers
top-level domain (TLD) servers:
 Υπεύθυνοι για com, org, net, edu, aero, jobs, museums,
και όλα τα domains των χωρών, π.χ.: gr, uk, fr, ca, jp
 Η Network Solutions συντηρεί τους servers για το .com
TLD
 Educause for .edu TLD
Εξουσιοδοτημένοι DNS servers:
 Οι DNS server(s) ενός οργανισμού, που παρέχουν
εξουσιοδοτημένη αντιστοίχιση ονομάτων σε IP που
ανήκουν στην «περιοχή» του οργανισμού
 Συντηρούνται από τον οργανισμό ή τον Service Provider

Application Layer 2-64


Τοπικός DNS name server
 Δεν ανήκει αυστηρά στην ιεραρχία
 Κάθε ISP (residential ISP, company, university) έχει
ένα δικό του (π.χ. ΠΑΔΑ)
 Συνήθως ονομάζεται “default name server”
 Όταν ένας host κάνει DNS ερώτηση, αυτή
στέλνεται στον τοπικό DNS.
 Έχει μία τοπική cache των πρόσφατων αντιστοιχίσεων
(μπορεί να μην έχει ενημερωθεί πρόσφατα)
 Λειτουργεί σαν proxy, προωθώντας μηνύματα στην
ιεραρχία

Application Layer 2-65


DNS Παράδειγμα root DNS server
εύρεσης αντιστοιχίας
2
 Ο host στο cis.poly.edu 3
TLD DNS server
ζητά την IP address για 4
gaia.cs.umass.edu
5
Επαναλαμβανόμενη local DNS server
ερώτηση (iterated dns.poly.edu
7 6
query): 1 8
 Ο server που δέχεται το
αίτημα απαντά με το authoritative DNS server
dns.cs.umass.edu
όνομα του server πρέπει requesting host
να ερωτηθεί cis.poly.edu
 “I don’t know this name,
but ask this server” gaia.cs.umass.edu

Application Layer 2-66


DNS Παράδειγμα root DNS server
εύρεσης αντιστοιχίας
2 3
7
6
Αναδρομική ερώτηση
TLD DNS
(recursive query): server
 Μεταφέρει το πρόβλημα local DNS server
της εύρεσης του dns.poly.edu 5 4
ονόματος στον πιό πάνω 1 8
server
 Μεγάλο φόρτο στα ψηλά authoritative DNS server
dns.cs.umass.edu
επίπεδα της ιεραρχίας? requesting host
cis.poly.edu

gaia.cs.umass.edu

Application Layer 2-67


DNS: caching και ανανέωση εγγραφών
 Μόλις ένας name server μάθει την αντιστοιχία, την
αποθηκεύει (caching)
 Οι cache εγγραφές λήγουν (εξαφανίζονται μετά από
κάποιο χρόνο (TTL)
 Οι TLD servers αποθηκεύονται στους τοπικούς servers
• Συνεπώς οι root name servers δεν δέχονται συχνά επισκέψεις
 Οι αποθηκευμένες εγγραφές μπορεί να είναι out-of-
date (best effort name-to-address translation!)
 Αν το όνομα του host αλλάξει IP address, μπορεί να μην
είναι ευρύτερα γνωστό στο διαδίκτυο έως ότου λήξουν όλα
τα TTLs
 Μηχανισμοί update/notify έχουν προταθεί στο IETF
standard
 RFC 2136
Application Layer 2-68
DNS records (εγγραφές)
DNS: κατανεμημένη βάση με αποθηκευμένα resource records (RR)
RR format: (name, value, type, ttl)

type=A type=CNAME
 name είναι ένα hostname  name είναι το ψευδώνυμο (alias
 value είναι μια IP address name) για κάποιο “canonical”
(πραγματικό name) π.χ.
 www.ibm.com είναι πραγματικά το
type=NS servereast.backup2.ibm.com
 name είναι ένα domain  value είναι το canonical name
(π.χ., uniwa.gr)
 value είναι το hostname type=MX
του authoritative name  value είναι το όνομα του mailserver
server για αυτό το domain
που σχετίζεται με το name

Application Layer 2-69


Βάζοντας την πληροφορία σου στο DNS
Παράδειγμα: Νέα startup “Network Utopia”
 Καταχώριση ονόματος networkuptopia.com στο DNS registrar
(e.g., Network Solutions)
• Παρέχει ονόματα, IP διευθύνσεις των authoritative name server (primary
και secondary)
• Registrar εισάγει NS, A RRs into .com TLD server:
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
 Δημιουργία του authoritative server τοπικά με IP διεύθυνση
212.212.212.1
• type A εγγραφή for www.networkuptopia.com
• type MX εγγραφή για networkutopia.com

Application Layer 2-70


DNS ασφάλεια
DDoS επιθέσεις Επιθέσεις Spoofing
 Βομβαρδισμός των root Υποκλοπή των DNS queries,
servers με κίνηση επιστρέφοντας ψεύτικες
• Δεν έχει επιτύχει έως τώρα
απαντήσεις
 DNS cache poisoning
• Φιλτράρισμα κίνησης
 RFC 4033: DNSSEC
• Οι τοπικοί DNS servers authentication services
αποθηκεύουν (caching) IPs των
TLD servers, οπότε
παρακάμπονται οι root servers
 Βομβαρδισμός των TLD
servers
• Δυνητικά πιο επικίνδυνο

Application Layer 2-71


Κεφάλαιο 2ο
Application Layer

Ερωτήσεις ???

You might also like