Mạng máy tính 1 Tầng ứng dụng (Application Layer) 6 1 Các nguyên tắc của ứng dụng mạng 6 2 Web và HTTP 6 3 FTP 6 4 E Mail SMTP, POP3, IMAP 6 5 DNS 6 6 Chia sẻ file P2P 1 Tầng ứng dụng (Applicati. Các giao thức trong tầng ứng dụng, Phương thức kết nối giữa các tầng
Trang 2 HTTP
SMTP / POP3 / IMAP
Trang 3 Tính toán song song
Trang 4Không có phần mềm viết cho
các thiết bị trong Network
Core
Các thiết bị trong Network
Core không thực hiện chức năng tại lớp ứng dụng
Thiết kế này để sự phát triển
ứng dụng nhanh
application
transport network data link physical
application
transport network data link physical
application
transport network data link physical
Trang 6Các kiến trúc ứng dụng
Client-Server
Trang 7 Truyền thông với server
Có thể không kết nối liên tục
Có thể có địa chỉ IP động
Không giao tiếp trực tiếp với nhau
Trang 8 Các Peer kết nối không liên tục
và thay đổi địa chỉ IP
Ví dụ: Gnutella
Khả năng co giãn quy mô cao
Khó quản lý
Trang 9Lai giữa P2P và Client-Server
Napster
Truyền file P2P
Tìm kiếm file tập trung:
• Các Peer đăng ký nội dung tại server trung tâm
• Các Peer gửi yêu cầu server trung tâm xác định vị trí của nội dung
Instant Messaging
Giao tiếp giữa 2 user là P2P
Quản lý tập trung vị trí của user:
• User đăng ký địa chỉ IP với server trung tâm khi kết nối
• User thông qua server trung tâm để tìm địa chỉ IP của đối tượng cần giao tiếp
Trang 10Truyền thông của các tiến trình
Tiến trình: chương trình
chạy trong một host.
Trong cùng host, 2 tiến
và tiến trình server
Trang 11 Tiến trình gửi dựa vào hạ
tầng giao vận trên phía bên
kia của cửa, nó mang
message tới socket của tiến
trình nhận
Tiến trình
TCP với buffer, Biến socket
host hoặc server
Tiến trình
TCP với Buffer, biến socket
host hoặc server
Internet
Điều khiển bởi OS
Điều khiển bởi người lập trình ứng dụng
API: (1) Chọn giao thức giao vận; (2) Gán giá trị cho một
vài tham số (chi tiết phần sau)
Trang 12 Câu hỏi: Địa chỉ IP của
host mà tiến trình chạy
cổng gán cho ứng dụng trên host.
Ví dụ: Giá trị cổng của một số ứng dụng:
HTTP server: 80
Mail server: 25
Chi tiết hơn trong phần sau
Trang 13tin: Các trường trong bản
tin và mô tả các trường
Cho phép phối hợp hoạt động
Ví dụ: HTTP, SMTP
Các giao thức không công khai:
Trang 14Truyền file, telnet) đòi hỏi 100%
dữ liệu truyền là tin cậy
Một số ứng dụng khác sử dụng theo băng thông chúng nhận được
Trang 15Yêu cầu của ứng dụng giao vận của một số ứng
dụng
Ứng dụng
Truyền file E-mail Web Real-time audio/video
Cho phép Cho phép Không cho phép
Băng thông
Co giãn
Co giãn
Co giãn Audio: 5kbps-1Mbps Video:10kbps-5Mbps Tương tự trên
Yêu cầu kbps
Co giãn
Thời gian
Không Không Không
Có, hàng trăm msec
Có, vài secs
Có, hàng trăm msec Có
Trang 16Các dịch vụ các giao thức giao vận
Dịch vụ TCP:
Hướng kết nối: Đòi hỏi quá
trình thiết lập giữa tiến trình
client và tiến trình server
Truyền tin cậy giữa tiến trình
gửi và tiến trình nhận
Điều khiển luồng: Bên gửi sẽ
không vượt quá khả năng bên
nhận
Điều khiển tắc nghẽn: điều
chỉnh bên gửi khi mạng quá tải
Không cung cấp: tính thời gian,
đảm bảo băng thông tối thiểu
Dịch vụ UDP:
Truyền dữ liệu không tin cậy giữa tiến trình gửi và tiến trình nhận
Không cung cấp: việc thiết lập kết, truyền tin cậy, điều khiển luồng, điều khiển tắc nghẽn, tính thời gian, đảm bảo băng thông
Q: Tại sao cần UDP?
Trang 17Các ứng dụng Internet: các giao thức tầng ứng dụng
và tầng giao vận
Ứng dụng
Thư điện tửTruy cập từ xa
Web Truyền fileTruyền dòng
đa phương tiệnĐiện thoại Internet
Giao thức tầng ứng dụng
Giao thức tầng giao vận
TCPTCPTCPTCPTCP hoặc UDPUDP
Trang 19Web và HTTP
Trang Web chứa các đối tượng
Đối tượng có thể là file HTML, ảnh JPEG, Java
Trang 20 server: Web server gửi
các đối tượng trong trả
lời
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068
Server chạy Apache Web server
Trang 21HTTP (tiếp)
Sử dụng TCP:
Client khởi đầu kết nối TCP (tạo
socket) tới server, cổng 80
Server chấp nhận kết nối TCP từ
client
Các bản tin HTTP (bản tin của
giao thức tầng ứng dụng Web)
trao đối giứa trình duyệt (HTTP
client) và Web server (HTTP
server)
Kết nối TCP đóng
HTTP là không hướng trạng thái
Server không duy trì thông tin về các yêu cầu của client trong quá khứ
Các giao thức hướng trạng thái phức tạp hơn giao thức
không hướng trạng thái
Quá khứ phải được duy trì
Nếu server/client lỗi, các trạng thái có thể không thống nhất
Trang 22 HTTP/1.1 mặc định sử dụng persistent HTTP
Trang 23Nonpersistent HTTP
Giả sử người sử dụng nhập vào URL www.someSchool.edu/someDepartment/home.index
1a HTTP client khởi đầu kết nối
TCP tới HTTP server (tiến trình) tại www.someSchool.edu , cổng 80
2 HTTP client gửi bản tin yêu cầu HTTP
(chứa URL) vào socket của kết nối TCP Bản tin chỉ rằng client muốn lấy đối tượng someDepartment/home.index
1b HTTP server tại host www.someSchool.edu đợi kết nối TCP tại cổng 80.
Chấp nhận kết nối, thông báo cho client
3 HTTP server nhận bản tin yêu cầu, xây dựng bản tin trả lời
chứa đối tượng đã yêu cầu và gửi bản tin vào trong socket của nó
(chứa text, tham chiếu tới 10
ảnh jpeg)
Trang 24Nonpersistent HTTP (cont.)
5 HTTP client nhận trả lời chứa file html, hiện thị nội dung Phân tích html, tìm 10 đối tượng ảnh jpeg được tham chiếu
ảnh jpeg
4 HTTP server đóng kết nối TCP
time
Trang 25Mô hình thời gian trả lời
RTT: thời gian để gửi một
gói tin từ client tới server
và trở lại
Thời gian trả lời:
1 RTT để khởi tạo kết nối
TCP
1 RTT cho yêu cầu HTTP
và nhận byte đầu tiên của
trả lời HTTP
Thời gian truyền file
total = 2RTT+transmit time
transmit time
Khởi đầu kết nối TCP
RTT
file yêu cầu
Trang 26Persistent HTTP
Nonpersistent HTTP:
Yêu cầu 2 RTT cho 1 đối tượng
Hệ điều hành phải cấp phát tài
nguyên cho mỗi kết nối TCP
Trình duyệt phải mở song song
nhiều kết nối TCP để lấy đối
tượng tham chiếu
Persistent HTTP
Server tạm dừng kết nối sau
khi gửi trả lời
Các bản tin HTTP sau đó giữa
cùng client/server được gửi qua
kết nối
Trang 27Bản tin yêu cầu HTTP
Hai kiểu bản tin HTTP: yêu cầu, trả lời
Bản tin yêu cầu HTTP:
ASCII
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu
User-agent: Mozilla/4.0 Connection: close
Trang 28Bản tin yêu cầu HTTP
Trang 29 Hỏi server bỏ đối tượng
đã yêu cầu ra khỏi trả lời
DELETE
xóa file trong trường URL
Trang 30Bản tin trả lời HTTP
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …
Content-Length: 6821 Content-Type: text/html
dữ liệu, ví dụ:
file HTML đã
yêu cầu
Trang 31Mã trạng thái của trả lời HTTP
200 OK
Yêu cầu thực hiện thành công, đối tượng trong bản tin
301 Moved Permanently
Đối tượng yêu cầu đã di chuyển vị trí, ví trí mới được chỉ ra
trong bản tin (Location:)
400 Bad Request
Server không hiểu bản tin yêu cầu
404 Not Found
Không tìm thấy đối tượng yêu cầu
Trong dòng đầu tiên của trả lời server->client
Ví dụ:
Trang 32Thực hành
1 Telnet tới một Web server:
Mở kết nối TCP tới cổng 80 tại cis.poly.edu Nội dung gõ được gửi tới cổng 80 tại
cis.poly.edu
telnet cis.poly.edu 80
2 Gõ lệnh GET
GET /~ross/ HTTP/1.1 Host: cis.poly.edu
3 Xem bản tin trả lời gửi bởi HTTP server
Trang 33Web cache (proxy server)
Người dùng thiết lập
qua trình duyệt
Trình duyệt gửi mọi
yêu cầu HTTP qua
Cache
Đối tượng trong cache:
sẽ được trả về
Nếu không: Yêu cầu
được chuyển tới
server ban đầu
Mục đích: thực hiện yêu cầu của client không phải yêu cầu
tới server ban đầu
client
Proxyserver
server ban đầu server ban đầu
Trang 34Web cache
Cache hoạt động như
cả client và server
Thông thường, được
cài đặt bởi ISP
Lợi ích của Web cache
Giảm thời gian trả lời
Giảm lưu lượng trên đường truyền truy cập
Trang 35Web cache
Cache hoạt động như
cả client và server
Thông thường cache
được cài đặt bởi ISP
(trường đại học, công
ty, nhà cung cấp dịch
vụ cho gia đình)
Tại sao dùng Web cache?
Giảm thời gian trả lời cho yêu cầu của client
Giảm lưu lượng trên đường truy cập của tổ chức
Trang 36Ví dụ caching
Giả sử
= 100,000 bits ~ 960 kbs
duyệt của tới server ban đầu = 15
giây
ban đầu và trở lại = 2 giây
Kết quả
cập = 100%
access delay + LAN delay
= 2 giây + phút + millisecond
Các server ban đầu
public Internet
Trang 37 Total delay = Internet delay +
access delay + LAN delay
= 2 sec + msecs + msecs
Server ban đầu
public Internet
Mạng của
tổ chức 10 Mbps LAN
Đường truyền truy cập10 Mbps
institutional cache
Trang 38 60% yêu cầu đáp ứng bởi
server ban đầu
Sự sử dụng đường truyền
truy cập giảm tới 60%, kết
quả độ trễ không đáng kể (10
msec)
total avg delay = Internet
delay + access delay + LAN
delay = 6*(2.01) secs +
milliseconds < 1.4 secs
Server ban đầu
public Internet
Mạng của
tổ chức 10 Mbps LAN
Đường truyền truy cập 1.5 Mbps
institutional cache
Trang 39GET có điều kiện
Mục đích: không gửi đối
tượng nếu cache có phiên
bản cập nhật
Cache: chỉ định ngày của
bản sao chép trong cache
trong yêu cầu HTTP
If-modified-since: <date>
Server: Trả lời không chứa
đối tượng nếu bản sao
Bản tin yêu cầu HTTP
Trang 41FTP: File Transfer Protocol
Truyền file tới/từ host ở xa
FTP client
Hệ thống file cục bộ
Hệ thống file
từ ở xa user
tại host
Trang 42FTP: Kết nối dữ liệu và điều khiển riêng biệt
FTP client liên lạc với FTP
server tại cổng 21, chỉ định
dùng TCP làm giao thức giao
vận
Client giành ủy quyền qua kết
nối điều khiển
Client xem thư mục từ xa bằng
cách gửi lệnh qua kết nối điều
khiển
Khi server nhận một lệnh
truyền file, server mở một kết
nối dữ liệu TCP tới client
Sau khi truyền file, server đóng
Kết nối điều khiển: truyền theo đường riêng
FTP server duy trì trạng thái: thư mục hiện tại, ủy quyền trước đó
Trang 43Lệnh và trả lời của FTP
Ví dụ một số lệnh:
Gửi văn bản mã ASCII
qua kênh điều khiển
STOR filename đưa
file lên remote host
Ví dụ một số mã trả về
Status code và status phrase (như HTTP)
331 Username OK, đòi hỏi mật khẩu
125 kết nối dữ liệu đã mở; bắt đầu truyền
425 Không thể mở kết nối dữ liệu
452 Lỗi ghi file
Trang 45 Còn gọi là Mail Reader
Soạn, sửa, đọc bản tin mail
Ví dụ: Eudora, Outlook,
Netscape Messenger
Các bản tin gửi tới và gửi đi
đã chứa trên server
User mailbox
Hàng đợi bản tin gửi đi
mail server
user agent
user agent
user agent
mail server
user agent user
mail server
user agent
SMTP SMTP SMTP
Trang 46Electronic Mail: Mail server
Mail Server
mailbox chứa các bản tin
thư điện tử gửi đến cho
người sử dụng
message queue của các
bản tin thư điện tử gửi đi
SMTP protocol giữa các
mail server để gửi các
bản tin thư điện tử
client: mail server gửi
“server”: mail server
nhận
mail server
user agent
user agent
user agent
mail server
user agent user
mail server
user agent
SMTP SMTP SMTP
Trang 47Electronic Mail: SMTP [RFC 2821]
Sử dụng TCP để truyền tin cậy các bản tin thư điện tử từ
client tới server, cổng 25
Gửi trực tiếp: server gửi tới server nhận
Ba pha của việc truyền
Trả lời: status code và status phrase
Các bản tin phải dùng mã ASCII 7-bit
Trang 48Kịch bản: Alice gửi bản tin cho Bob
1) Alice dùng UA để soạn bản
tin và gửi cho
bob@someschool.edu
2) UA của Alice gửi bản tin tới
mail server của cô ta; bản tin
đặt trong message queue
3) Phía client của SMTP mở kết
nối TCP với mail server của
user
agent
mail server
Trang 49Ví dụ tương tác SMTP
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
Trang 50SMTP: Một số thông tin khác
SMTP sử dụng persistent
connections
SMTP yêu cầu bản tin
(header & body) dùng mã
HTTP: mỗi đối tượng được đóng gói trong chính bản tin trả lời
SMTP: nhiều đối tượng được gửi trong bản tin có nhiều phần
Trang 51Định dạng bản tin
SMTP: giao thức để trao đổi
các bản tin thư điện tử
Trang 52Định dạng bản tin: Các mở rộng đa phương tiện
MIME: Multimedia Mail Extension, RFC 2045, 2046
Thêm các dòng trong header của bản tin khai báo kiểu nội
dung MIME
From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe
MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg
dữ liệu mã hóa kiểu base64
method sử dụng
để mã hóa dữ liệu
MIME version
dữ liệu đã mã hóa
Trang 53Thực hành tương tác SMTP
telnet servername 25
Xem trả lời 220 từ server
Gõ vào các lệnh HELO, MAIL FROM, RCPT TO,
DATA, QUIT để gửi thư điện tử không sử dụng email
client (reader)
Trang 54Các giao thức truy cập thư điện tử
SMTP: chuyển/lưu trữ thư tới server của bên nhận
Giao thức truy cập thư: lấy thư từ server
POP: Post Office Protocol [RFC 1939]
• Ủy quyền (agent < >server) và tải thư
IMAP: Internet Mail Access Protocol [RFC 1730]
• Nhiều tính năng hơn (phức tạp hơn)
• Thao tác trên các bản tin lưu trên server
HTTP: Hotmail , Yahoo! Mail, …
user agent
mail server của bên gửi
user agent
SMTP SMTP giao thức
truy cập
mail server của bên nhận
Trang 55Pha giao dịch, client:
list: liệt kê các số bản tin
retr: lấy bản tin dựa vào số
dele: xóa
quit
C: list S: 1 498 S: 2 912 S:
C: retr 1 S: <message 1 contents>
S: C: dele 1 C: retr 2 S: <message 1 contents>
S: C: dele 2 C: quit
S: +OK POP3 server ready C: user bob
S: +OK C: pass hungry S: +OK người sử dụng đăng nhập thành công
Trang 56POP3 và IMAP
Thông tin thêm về POP3
Ví dụ trước sử dụng
chế độ “tải và xóa”
Bob không thể đọc lại
các thư điện tử nếu bob
chuyển sang client khác
Chế độ “Tải và giữ” sao
chép các bản tin trên
các client khác nhau
POP3 không lưu trạng
thái giữa các phiên
IMAP
Giữ tất cả các bản tin tại một chỗ: server
Cho phép người sử dụng tổ chức các bản tin vào các thư mục
IMAP giữ trạng thái người sử dụng qua các phiên:
Tên của các thư mục và ánh xạ giữa các định danh của bản tin và tên thư mục
Trang 58DNS: Domain Name System
Con người: có nhiều định danh:
sử dụng bởi con người
Câu hỏi: Ánh xạ giữa địa chỉ IP
và tên ?
Hệ thống tên miền (DNS):
Cơ sở dữ liệu phân tán được
thực hiện phân cấp bởi nhiều
Sự phức tạp tại network edge
Trang 59DNS
Tại sao không dùng DNS tập chung ?
Một điểm lỗi
Khối lượng lưu lượng
Cơ sở dữ liệu tập chung xa
Bí danh cho Host
Canonical name và alias
Trang 60Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.edu DNS serversumass.eduDNS servers
yahoo.com
DNS servers amazon.comDNS servers
pbs.org DNS servers
Cơ sở dữ liệu phân cấp và phân tán
Client muốn biết địa chỉ IP của www.amazon.com:
Client yêu cầu root server để tìm com DNS server
Client yêu cầu com DNS server để xác định
amazon.com DNS server
Client yêu cầu amazon.com DNS server để lấy địa
chỉ IP cho www.amazon.com
Trang 61DNS: Root name server
Local name server không trả lời được thì nó sẽ liên lạc với Root name server
Root name server:
Liên lạc với authoritative name server nếu nó không biết ánh xạ tên
Lấy ánh xạ
Trả ánh xạ về cho local name server
13 root name server trên toàn thế giới
b USC-ISI Marina del Rey, CA
e NASA Mt View, CA
f Internet Software C Palo Alto, CA (and 17
other locations)
i Autonomica, Stockholm (plus 3 other locations)
k RIPE London (also Amsterdam, Frankfurt)
m WIDE Tokyo
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los Angeles)
d U Maryland College Park, MD
g US DoD Vienna, VA
h ARL Aberdeen, MD
j Verisign, ( 11 locations)
Trang 62TLD và Authoritative Server
với com, org, net, edu,… và tất cả các miền
quốc gia mức trên cùng uk, fr, ca, jp,…
tổ chức cung cấp ánh xạ authoritative hostname thành địa chỉ IP cho server của tổ chức (ví dụ
Web và Email).
Có thể duy trì bởi tổ chức hoặc nhà cung cấp dịch vụ