http client thiết lập liên kết TCP với http server process tại địa chỉ www.uct2.edu.vn, cổng 80 ngầm định với http server.. http server chấp nhận kết nối rồi thông báo với client.. ht
Trang 1Cell phone: N/A Email: bangtqh@hotmail.com
Discussion
Web programming with ASP.
Visual Basic programming.
§ Object oriented programming.
§ Event driven programming.
§ Component driven programming.
TCP Socket programming.
§ Simple web server.
Trang 2Chapter 2 The Application Layer 3
24/8-25/10/2009
Winsock
HTTP example
1a http client thiết lập liên kết
TCP với http server (process)
tại địa chỉ www.uct2.edu.vn,
cổng 80 (ngầm định với http
server).
2 http client gửi http request
message (bao gồm cả URL) tới
TCP connection socket
1b http server chấp nhận kết nối rồi thông báo với client.
3 http server nhận request
message, tạo ra http response
message có chứa các đối tượng
đượ c yêu cầu rồi gửi vào
time
Giả sử người dùng truy cập URL: www.uct2.edu.vn/index.htm
(trang web có text và 10 hình ảnh jpeg)
0 http server tại máy phục vụ www.uct2.edu.vn chờ yêu cầu kết nối TCP tại cổng 80.
Trang 3Chapter 2 The Application Layer 5
24/8-25/10/2009
5 http client nhận response
message có chứa html file, hiển thị html Sau đó, phân tích html file, tìm URL của 10 hình ảnh jpeg trong tài liệu.
6 Bước 1-5 được lặp lại với từng
hình ảnh.
4 http server ngắt liên kết
time
Ch2 The Application Layer
2.1 Một số khái niệm và nguyên tắc.
2.2 Web & Hyper Text Transfer Protocol.
2.3 Web design and HTTP, Web programming.
2.4 File Transfer Protocol.
2.5 Electronic Mail Protocols.
2.6 Domain Name System.
Trang 4Chapter 2 The Application Layer 7
24/8-25/10/2009
2.4 FTP - File Transfer Protocol
n Truyền/tải tệp (to/from remote host).
n Client/server model
¤ Client: đưa ra yêu cầu truyền tải
¤ Server = remote host
n FTP: RFC 959
file transfer
FTP server
FTP user interface
FTP client
local file system
remote file system
user
at host
FTP: control & data connections
n FTP sử dụng TCP.
n FTP sử dụng đồng thời 2 liên kết TCP tại 2 cổng:
¤ TCP control connection, port 21: trao đổi các thông điệp điều
khiển (commands, responses…)
¤ TCP data connection, port 20: truyền tải tệp
n FTP lưu giữ trạng thái client trong phiên làm việc (state vs HTTP is stateless).
FTP client
FTP server
TCP control connection
port 21
TCP data connection port 20
Trang 5Chapter 2 The Application Layer 9
24/8-25/10/2009
FTP: Quá trình trao đổi/truyền tải
FTP server nghe tại cổng 21
FTP client yêu cầu kết nối với FTP server qua TCP tại cổng 21 Gửiuser & password để đăng nhập
FTP server chấp nhận, liên kết điều khiển (control connection) đượcthiết lập Quá trình trao đổi có thể bắt đầu
Khi server nhận được lệnh truyền tệp, nó mở liên kết dữ liệu (data connection) tới client, tệp được truyền qua liên kết này
Sau khi truyền xong một tệp, server ngắt liên kết dữ liệu (mỗi liên kếtchỉ sử dụng để truyền một tệp)
TCP control connection
port 21
TCP data connection port 20
n STOR filename stores
(puts) file onto remote host
Sample return codes
n status code and phrase (as in HTTP)
n 331 Username OK, password required
n 125 data connection already open;
transfer starting
n 425 Can’t open data connection
n 452 Error writing file
Lệnh (commands), phúc đáp (responses) được truyền dạng ASCII
Trang 6Chapter 2 The Application Layer 11
FTP user interface
FTP client
local file system
remote file system
user
at host
Ch2 The Application Layer
2.1 Một số khái niệm và nguyên tắc.
2.2 Web & Hyper Text Transfer Protocol.
2.3 Web design and HTTP, Web programming.
2.4 File Transfer Protocol.
2.5 Electronic Mail Protocols.
2.6 Domain Name System.
Trang 7Chapter 2 The Application Layer 13
24/8-25/10/2009
2.5 Electronic Mail
Ba thành phần chính:
n User agents (mail clients)
¤ Soạn, đọc thư (messages).
¤ Vd: Outlook, Eudora, Netscape
¤ Simple Mail Transfer Protocol (SMTP).
¤ Post Office Protocol (POP).
¤ Internet Mail Access Protocol (IMAP).
outgoing message queue
mail server
user agent
user agent
user agent
mail server
user agent user
agent
mail server
user agent
SMTP
SMTPSMTP
Alice <alice@uct2.edu.vn> Bob <bob@yahoo.com>
1) Alice sử dụng UA soạn thư, đ/c gửi
tới “to”: bob@yahoo.com
2) Alice’s UA gửi thư đến mail server
của Alice, bức thư được xếp vào
hàng đợi (message queue)
3) Mail server của Alice mở liên kết
TCP tới mail server của Bob
4) Mail server của Alice gửithư qua liên kết TCP
5) Mail server của Bob cất thưnhận được vào hòm thư củaBob
6) Bob dùng UA để lấy thư từserver về rồi đọc thư
user agent
mail server
mail server user
Trang 8Chapter 2 The Application Layer 15
24/8-25/10/2009
SMTP (Simple Mail Transfer Protocol)
n Sử dụng liên kết TCP (port 25) để gửi mails:
¤ Từ sender’s mail client tới sender’s mail server.
¤ Từ sender’s mail server tới receiver’s mail server.
n Ba pha (three ways handshake):
¤ responses: status code & phrase.
SMTP: sample interaction (C: client; S: server)
S: 220 yahoo.com
C: HELO uct2.edu.vn
S: 250 Hello uct2.edu.vn, pleased to meet you
C: MAIL FROM: <alice@uct2.edu.vn>
Trang 9Chapter 2 The Application Layer 17
24/8-25/10/2009
SMTP: more
n SMTP sử dụng persistent connection: một liên kết, nhiều thông điệp
n Thông điệp (kể cả nội dung thư) phải được mã hoá dạng ASCII 7 bit (US-ASCII)
n Đánh dấu kết thúc msg bởi CRLF.CRLF
n Một số dữ liệu nhị phân (vd: picture) có thể chứaCRLF.CRLF cần
mã hoá để đảm bảo không có dữ liệu nào trùng với ký hiệu kết thúcmessage (vd: base64)
n So sánh với HTTP:
¤ HTTP: pull protocol <> SMTP: push protocol.
¤ Cùng sử dụng ASCII (command/req/resp/status code).
¤ HTTP: mỗi obj chứa trong một msg <> SMTP: cho phép nhiều obj (text,
picture…) trong một msg (multipart msg).
Mail message format
SMTP: giao thức trao đổi email msg
Trang 10Chapter 2 The Application Layer 19
24/8-25/10/2009
MIME (Multipurpose Internet Mail Extension)
n RFC 822: text msg, gặp khó khăn với multimedia.
n MIME: RFC 2045, RFC 2056.
n So với RFC 822, MIME thêm vào các header lines để mô
tả nội dung của email msg.
From: alice@uct2.edu.vn To: bob@yahoo.com
Subject: Picture of yummy crepe MIME-Version: 1.0
Content-Transfer-Encoding: base64 Content-Type: image/jpeg
base64 encoded data
MIME: Content types
Content-type: type/subtype; parameters
Trang 11Chapter 2 The Application Layer 21
24/8-25/10/2009
MIME: Encoding types
Content-Transfer-Encoding: Encoding type
Trang 12Chapter 2 The Application Layer 23
24/8-25/10/2009
The received mail message
n Server thêm vào dòng header mỗi khi nhận thư:
¤ Received:
¤ Return-path:
n Mail có thể được chuyển qua nhiều server khác nhau (forward)
Received: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMT
Received: from crepes.fr by hamburger.edu; 12 Oct 98 15:27:39 GMT
base64 encoded data
Hiển thị full headers với Y! Mail
1.Mail Options
2.General Preference
3.Messages: Show all…
Trang 13Chapter 2 The Application Layer 25
24/8-25/10/2009
Mail access protocol
n SMTP: giao thức gửi mail tới server.
n Mail access protocol: giao thức nhận mail từ server.
¤ POP (Post Office Protocol): RFC 1939 TCP Port 110
¤ IMAP (Internet Mail Access Protocol): RFC 1730 TCP port 143
¤ HTTP: Hotmail, Yahoo!
user agent
sender’s mail server
user agent
protocol
receiver’s mail server
[2] Transaction phase, client:
n list: list message numbers
n retr: retrieve message by number
n dele: delete
[3] Update phase:
n Quit
n những thay đổi (dele) được cập nhật
S: +OK POP3 server ready C: user bob
S: +OK C: pass hungry S: +OK user successfully logged on
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 signing off
[1]
[2]
[3]
Trang 14Chapter 2 The Application Layer 27
24/8-25/10/2009
POP3 (more) and IMAP
More about POP3
n Chế độ “download and delete”
n Không lưu trạng thái giữa các
phiên làm việc (stateless)
IMAP4
n Lưu trữ toàn bộ msg tạiserver
n Cho phép người dùng tổ chứclưu trữ trên server (tạo thưmục, di chuyển msg…)
n Lưu trạng thái giữa các phiên(state):
¤ Thư mục tự tạo.
¤ Các msgs đã di chuyển.
Ch2 The Application Layer
2.1 Một số khái niệm và nguyên tắc.
2.2 Web & Hyper Text Transfer Protocol.
2.3 Web design and HTTP, Web programming.
2.4 File Transfer Protocol.
2.5 Electronic Mail Protocols.
2.6 Domain Name System.
Trang 15Chapter 2 The Application Layer 29
24/8-25/10/2009
2.6 DNS (Domain Name System)
n Địa chỉ IP (32 bit) được sử dụng để xác định một nút trong mạngTCP/IP: 210.245.22.125 khó nhớ!
Sử dụng tên (host name) song song với IP address
n Host name IP (hostname to IP resolve).
n Host aliasing.
¤ Một máy tính có tên chính thức và có thể có bí danh (alias)
n Mail server aliasing.
¤ @uct2.edu.vn mail server address = ?
n Load distribution (phân tán tải)
¤ Một dịch vụ web (cnn.com, yahoo.com…) có thể được cung cấptại nhiều server có IP khác nhau để phân tán tải do lượng người
sử dụng cao
Trang 16Chapter 2 The Application Layer 31
24/8-25/10/2009
Internet domain name space
n Domain name (tên miền):
¤ www: máy chủ world wide web.
¤ mail: máy chủ mail.
vn
Domain name servers
Vd: client muốn biết IP của www.amazon.com thì:
n Tìm địa chỉ của com DNS servers hỏi Root DNS servers
n amazon.com com DNS servers
n www.amazon.com amazon.com DNS servers
Root DNS Servers
poly.edu DNS servers
umass.edu DNS servers
yahoo.com
DNS servers
amazon.com DNS servers
pbs.org DNS servers
Trang 17Chapter 2 The Application Layer 33
24/8-25/10/2009
DNS: Root name servers
13 root name servers
worldwide
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, 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)
n Khi local name server không thể chuyển host name IP, gửi yêu cầu tới root srv.
n root name server:
¤ Liên lạc với authoritative name server nếu chưa thể ánh xạ đ/c ngay.
¤ Lấy kết quả ánh xạ gửi về từ authoritative name server.
¤ Trả kết quả về cho local name server.
TLD and Authoritative Servers
n Top-level domain (TLD) servers: chịu trách nhiệm về các
miền com, org, net, edu… và uk, fr, ca, jp…
¤ Network Solutions: quản lý com TLD servers.
¤ Educause: quản lý edu TLD servers.
Trang 18Chapter 2 The Application Layer 35
24/8-25/10/2009
Local name server
n Thuộc quản lý của ISP (ISP, company, university…).
n Khi một host muốn biết IP của một host nào đó, trước tiên,
nó “hỏi” local name server.
n Không nhất thiết phải nằm trong kiến trúc DNS servers (độc lập).
n “Gần” máy tính của người sử dụng nhất nên thường được
“hỏi thăm” đầu tiên mỗi khi có truy vấn DNS.
n Xem Windows Local DNS: ipconfig
2 dns.eurecom.fr liên lạc với
root name server (nếu cần)
3 root name server liên lạc với
authoritative name server:
6
Trang 19Chapter 2 The Application Layer 37
24/8-25/10/2009
DNS example 2
Root name server có thể:
n Không biết authoritative
name server (ans).
n Biết intermediate name
root name server
local name server
n A hỏi B, B hỏi C, C hỏi
D,… rồi trả lời ngược lại.
n Server được hỏi chịu tải
nặng gấp đôi?
iterative query:
n DNS server được hỏi gợi
ý hỏi một server khác.
n “I don’t know this name,
but ask this server”
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
root name server
local name server
dns.eurecom.fr
1
2 3 4
Trang 20Chapter 2 The Application Layer 39
24/8-25/10/2009
DNS: caching & updating
n Mỗi khi DNS server nhận được yêu cầu tra cứu IP,
IP mà nó tìm được sẽ được lưu lại phục vụ cho
những lần tra cứu tiếp theo.
¤ Timeout: thời gian hết hạn (sau một khoảng thời gian, bản ghi cache tương ứng bị xoá).
¤ TLD servers thường được cache tại local name servers.
n Cơ chế cập nhật/thông báo được đưa ra bởi IETF:
¤ name = domain name
¤ value = IP address của
¤ name = domain name
¤ value = tên của mail server
DNS: distributed db storing resource records (RR)
RR format: (name, value, type, ttl)
Trang 21Chapter 2 The Application Layer 41
¤ recursion desired: client mong
muốn DNS server tra cứu đệ quy.
¤ recursion available: server hỗ trợ
tra cứu đệ quy.
DNS Protocol: Query/reply messages có cùng format.
additional “helpful”
info that may be used
Trang 22Chapter 2 The Application Layer 43
Bài tập tự làm và thảo luận
n Tìm hiểu các câu lệnh cơ bản của FTP, SMTP,
POP3 (Nộp báo cáo sau 1 tuần)
n Viết mail client đơn giản (không bắt buộc).