Bài giảng Mạng máy tính - Chapter 2: Application Layer - Nguyễn Lê Duy Lai

Computer Networks  
Lectured by:  
Nguyen Le Duy Lai  
Computer  
Networking: A Top  
Down Approach  
7th Edition, Global Edition  
Jim Kurose, Keith Ross  
Pearson  
April 2016  
Introduction 1-1  
Chapter 2  
Application Layer  
Computer  
Networking: A Top  
Down Approach  
7th Edition, Global Edition  
Jim Kurose, Keith Ross  
Pearson  
April 2016  
Application Layer  
2-2  
Chapter 2: outline  
2.5 P2P applications  
2.1 principles of network  
applications  
2.6 video streaming and  
Content Distribution  
Networks (CDNs)  
2.2 Web and HTTP  
2.3 electronic mail  
• SMTP, POP3, IMAP  
2.4 DNS  
2.7 socket programming  
with UDP and TCP  
Application Layer 2-3  
Chapter 2: application layer  
our goals:  
▪ conceptual,  
▪ learn about protocols by  
examining popular  
application-level  
protocols  
implementation aspects  
of network application  
protocols  
• HTTP  
• FTP  
• SMTP / POP3 / IMAP  
• DNS  
• transport-layer  
service models  
• client-server  
▪ creating network  
paradigm  
applications  
• peer-to-peer (P2P)  
• socket API  
paradigm  
• content distribution  
networks (CDNs)  
Application Layer 2-4  
Some network apps  
▪ e-mail  
▪ web  
▪ text messaging  
▪ remote login  
▪ P2P file sharing  
▪ voice over IP (e.g.,  
Skype)  
▪ real-time video  
conferencing  
▪ social networking  
▪ search  
▪ …  
▪ multi-user network  
games  
▪ …  
▪ streaming stored  
video (YouTube, Hulu,  
Netflix)  
Application Layer 2-5  
application  
transport  
network  
data link  
physical  
Creating a network app  
write programs that:  
▪ run on (different) end systems  
▪ communicate over network  
▪ e.g., web server software  
communicates with browser  
software  
application  
transport  
network  
data link  
physical  
no need to write software  
for network-core devices  
application  
transport  
network  
data link  
physical  
▪ network-core devices do not  
run user applications  
▪ applications on end systems  
allows for rapid app  
development, propagation  
Application Layer 2-6  
Application architectures  
possible structure of applications:  
▪ client-server  
▪ peer-to-peer (P2P)  
Application Layer 2-7  
Client-server architecture  
server:  
▪ always-on host  
▪ permanent IP address  
▪ data centers for scaling  
clients:  
▪ communicate with server  
▪ may be intermittently  
client/server  
connected  
▪ may have dynamic IP  
addresses  
▪ do not communicate directly  
with each other  
Application Layer 2-8  
P2P architecture  
▪ no always-on server (peer)  
peer-peer  
▪ arbitrary end systems  
directly communicate  
▪ peers request service from  
other peers, and provide  
service in return to other  
peers  
• self scalability – new  
peers bring new service  
capacity, as well as new  
service demands  
▪ peers are intermittently  
connected and change IP  
addresses  
• complex management  
Application Layer 2-9  
Processes communicating  
clients, servers  
process: program running  
within a host  
client process: process that  
▪ within same host, two  
processes communicate  
using inter-process  
communication (defined by  
OS)  
initiates communication  
server process: process that  
waits to be contacted  
▪ processes in different hosts  
communicate by exchanging  
messages  
▪ aside:applications with P2P  
architectures have client  
processes & server  
processes  
Application Layer 2-10  
Sockets  
▪ process sends/receives messages to/from its socket  
▪ socket analogous to door  
• sending process shoves message out door (or socket)  
• sending process relies on transport infrastructure on  
other side of door to deliver message to socket at  
receiving process  
application  
application  
socket  
controlled by  
app developer  
process  
process  
transport  
transport  
controlled  
by OS  
network  
link  
network  
link  
Internet  
physical  
physical  
Application Layer 2-11  
Addressing processes  
▪ identifier includes both IP  
address and port numbers  
associated with process on  
host.  
▪ example of port numbers:  
• HTTP server: 80  
▪ to receive messages,  
process must have identifier  
▪ host device has unique 32-  
bit IP address  
▪ Q: does IP address of host on  
which process runs suffice for  
identifying the process?  
• SMTP mail server: 25  
▪ E.g., to send HTTP message  
to gaia.cs.umass.edu web  
server:  
▪ A: no, many processes can  
be running on same host  
• IP address: 128.119.245.12  
• port number: 80  
▪ more shortly…  
Application Layer 2-12  
App-layer protocol defines  
▪ types of messages  
open protocols:  
exchanged,  
▪ defined in RFCs  
▪ allows for interoperability  
▪ e.g., HTTP, SMTP  
proprietary protocols:  
▪ e.g., Skype  
• e.g., request, response  
▪ message syntax:  
• what fields in messages  
& how fields are  
delineated  
▪ message semantics  
• meaning of information  
in fields  
▪ rules for when and how  
processes send & respond  
to messages  
Application Layer 2-13  
What transport service does an app need?  
data integrity  
▪ some apps (e.g., file transfer,  
throughput  
▪ some apps (e.g.,  
multimedia) require  
minimum amount of  
throughput to be  
web transactions) require  
100% reliable data transfer  
▪ other apps (e.g., audio) can  
“effective”  
tolerate some loss  
▪ other apps (“elastic apps”)  
make use of whatever  
throughput they get  
timing  
▪ some apps (e.g., Internet  
telephony, interactive  
games) require low delay  
to be “effective”  
security  
▪ encryption, data integrity,  
…
Application Layer 2-14  
Transport service requirements: common apps  
application  
throughput  
data loss  
time sensitive  
file transfer  
e-mail  
Web documents  
real-time audio  
/video  
elastic  
no loss  
no  
no loss  
elastic  
no  
no loss  
loss-tolerant  
elastic  
no  
audio: 5kbps-1Mbps  
video:10kbps-5Mbps  
same as above  
few kbps up  
elastic  
yes, 100’s msec  
stored audio/video  
interactive games  
text messaging  
loss-tolerant  
loss-tolerant  
no loss  
yes, few secs  
yes, 100’s msec  
yes and no  
Application Layer 2-15  
Internet transport protocols services  
TCP service:  
▪ connection-oriented: setup  
required between client and  
server processes  
▪ reliable transport between  
sending and receiving  
processes  
UDP service:  
▪ connectionless  
▪ unreliable data transfer  
between sending and  
receiving process  
▪ does not provide: reliability,  
flow control, congestion  
control, timing,  
▪ flow control: sender won’t  
overwhelm receiver  
throughput guarantee,  
security, or connection  
setup,  
▪ congestion control: throttle  
sender when network  
overloaded  
▪ does not provide: timing,  
minimum throughput  
guarantee, security  
Q: why bother? Why is  
there a UDP?  
Application Layer 2-16  
Internet apps: application, transport protocols  
application  
layer protocol  
underlying  
transport protocol  
application  
SMTP [RFC 2821]  
Telnet [RFC 854]  
HTTP [RFC 2616]  
FTP [RFC 959]  
HTTP (e.g., YouTube),  
RTP [RFC 1889]  
SIP, RTP, proprietary  
(e.g., Skype)  
e-mail  
remote terminal access  
Web  
TCP  
TCP  
TCP  
TCP  
TCP or UDP  
file transfer  
streaming multimedia  
Internet telephony  
TCP or UDP  
Application Layer 2-17  
Securing TCP  
TCP & UDP  
SSL is at app layer  
▪ no encryption  
▪ apps use SSL libraries, that  
“talk” to TCP  
SSL socket API  
▪ E.g., cleartext passwords  
sent into socket traverse  
Internet encrypted  
▪ E.g., Passwords sent into  
socket traverse Internet in  
cleartext  
SSL  
▪ provides encrypted TCP  
connection  
▪ see Chapter 8  
▪ data integrity  
▪ end-point authentication  
Application Layer 2-18  
Chapter 2: outline  
2.5 P2P applications  
2.1 principles of network  
applications  
2.6 video streaming and  
content distribution  
networks  
2.2 Web and HTTP  
2.3 electronic mail  
• SMTP, POP3, IMAP  
2.4 DNS  
2.7 socket programming  
with UDP and TCP  
Application Layer 2-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, e.g.,  
path name  
host name  
Application Layer 2-20  
Tải về để xem bản đầy đủ
pdf 107 trang myanh 24800 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Chapter 2: Application Layer - Nguyễn Lê Duy Lai", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_mang_may_tinh_chapter_2_application_layer_nguyen_l.pdf