Professional Documents
Culture Documents
1-1
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-2
2.1.Nguyên tắc của các ứng dụng mạng
1-3
2.1.Nguyên tắc của các ứng dụng mạng
Kiến trúc Client-server
Server:
Host ở trạng thái luôn
chạy
Địa chỉ IP cố định
Server farm để tăng khả
năng phục vụ
Client:
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
1-4
2.1.Nguyên tắc của các ứng dụng mạng
Kiến trúc P2P
Server không ở trạng thái luôn
chạy
Hệ thống cuối tùy ý truyền
thông trực tiếp
Các Peer kết nối không liên tục
và thay đổi địa chỉ IP
Ví dụ: Gnutella
Khó quản lý
1-5
2.1.Nguyên tắc của các ứng dụng mạng
Hybrid
Lai 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
1-6
2.1.Nguyên tắc của các ứng dụng mạng
Truyền thông của các tiến trình
Tiến trình: chương trình Tiến trình client: tiến trình
chạy trong một host. khởi đầu quá trình
Trong cùng host, 2 tiến truyền thông
trình giao tiếp sử dụng Tiến trình server: tiến trình
inter-process đợi kết nối
communication (Do OS
định nghĩa).
Các tiến trình trong các Chú ý: Các ứng dụng
host khác nhau giao tiếp P2P có cả tiến trình client
bằng cách trao đổi các và tiến trình server
message
1-7
2.1.Nguyên tắc của các ứng dụng mạng
Socket
host hoặc host hoặc
Tiến trình gửi nhận server
server
messages tới/từ socket
của nó Điều khiển bởi
người lập trình
Socket tương tự cửa ra Tiến trình Tiến trình
ứng dụng
vào socket socket
Tiến trình gửi đẩy bản tin ra TCP với
TCP với
ngoài cửa buffer, Internet Buffer,
Tiến trình gửi dựa vào hạ Biến biến
tầng giao vận trên phía bên
kia của cửa, nó mang
Điều khiển
message tới socket của tiến bởi OS
trình nhận
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)
1-8
2.1.Nguyên tắc của các ứng dụng mạng
Các tiến trình đánh địa chỉ
Đối với một tiến trình Định danh bao gồm cả
nhận messages, nó phải địa chỉ IP và địa chỉ
có một định danh cổng gán cho ứng dụng
Một host có một địa chỉ trên host.
IP duy nhất Ví dụ: Giá trị cổng của
Câu hỏi: Địa chỉ IP của một số ứng dụng:
HTTP server: 80
host mà tiến trình chạy
Mail server: 25
có đáp ứng được việc
định danh tiến trình? Chi tiết hơn trong phần
Trả lời: Không, nhiều sau
tiến trình có thể chạy
trên cùng host
1-9
2.1.Nguyên tắc của các ứng dụng mạng
Giao thức lớp ứng dụng
Giao thức lớp ứng dụng Các giao thức công khai:
định nghĩa Định nghĩa trong các
Kiểu của bản tin trao đổi, RFC
ví dụ bản yêu cầu, bản
Cho phép phối hợp hoạt
tin trả lời
Cú pháp của kiểu bản động
tin: Các trường trong bản Ví dụ: HTTP, SMTP
tin và mô tả các trường
trong bản tin
Các giao thức không công
Ý nghĩa của các trường
khai:
Quy tắc các tiến trình
gửi/nhận bản tin khi nào
và như thế nào
1-10
2.1.Nguyên tắc của các ứng dụng mạng
Các dịch vụ giao vận mà ứng dụng cần
Mất dữ liệu Băng thông
Một số ứng dụng (ví dụ: audio) Một số ứng dụng (ví dụ: đa
có thể chấp nhận một tỷ lệ mất phương tiện) yêu cầu lượng
dữ liệu nào đó băng thông tối thiểu
Một số ứng dụng khác (ví dụ: Một số ứng dụng khác sử
Truyền file, telnet) đòi hỏi 100% dụng theo băng thông chúng
dữ liệu truyền là tin cậy nhận được
Thời gian
Một số ứng dụng (ví dụ: điện
thoại Internet, trò chơi tương
tác) đòi hỏi độ trễ thấp
1-11
2.1.Nguyên tắc của các ứng dụng mạng
Yêu cầu của ứng dụng giao vận của một số ứng dụng
Ứng dụng Mất dữ liệu Băng thông Thời gian
1-12
2.1.Nguyên tắc của các ứng dụng mạng
Các dịch vụ các giao thức giao vận
Dịch vụ TCP: Dịch vụ UDP:
Hướng kết nối: Đòi hỏi quá Truyền dữ liệu không tin
cậy giữa tiến trình gửi và
trình thiết lập giữa tiến trình
tiến trình nhận
client và tiến trình server
Không cung cấp: việc thiết
Truyền tin cậy giữa tiến trình lập kết, truyền tin cậy, điều
gửi và tiến trình nhận khiển luồng, điều khiển tắc
Điều khiển luồng: Bên gửi sẽ nghẽn, tính thời gian, đảm
không vượt quá khả năng bên bảo băng thông
nhận
Điều khiển tắc nghẽn: điều Q: Tại sao cần UDP?
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
1-13
2.1.Nguyên tắc của các ứng dụng mạng
Các ứng dụng Internet: các giao thức tầng ứng dụng
và tầng giao vận
Giao thức Giao thức
Ứng dụng tầng ứng dụng tầng giao vận
1-14
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-15
2.2. Web và HTTP
1-16
2.2. Web và HTTP
HTTP
HTTP: hypertext transfer
protocol HT
TP
req
Giao thức tầng ứng dụng HT ues
TP t
của Web res
pon
se
Mô hình client/server
client: Trình duyệt yêu t
ues
cầu, nhận và hiện thị các req e Server
TTP o ns
đối tượng H p chạy
res
TP Apache Web
server: Web server gửi HT
server
các đối tượng trong trả
lời
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068
1-17
2.2. Web và HTTP
HTTP (tiếp)
Sử dụng TCP: HTTP là không hướng
Client khởi đầu kết nối TCP (tạo trạng thái
socket) tới server, cổng 80 Server không duy trì
Server chấp nhận kết nối TCP từ thông tin về các yêu cầu
client của client trong quá khứ
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 Các giao thức hướng trạng thái
client) và Web server (HTTP phức tạp hơn giao thức
server) không hướng trạng thái
Kết nối TCP đóng
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
1-18
2.2. Web và HTTP
Kết nối HTTP
Không kiên trì HTTP Kiên trì HTTP
Một đối tượng được gửi Nhiều đối tượng có thể
qua một kết nối TCP gửi qua một kết nối
HTTP/1.0 sử dụng TCP giữa client và
nonpersistent HTTP server
HTTP/1.1 mặc định sử
dụng persistent HTTP
1-19
2.2. Web và HTTP
Nonpersistent HTTP (chứa text,
Giả sử người sử dụng nhập vào URL www.someSchool.edu/someDepartment/home.index
tham chiếu tới 10
ảnh jpeg)
Thời gian
1-20
2.2. Web và HTTP
Nonpersistent HTTP (cont.)
4. HTTP server đóng kết nối TCP
1-21
2.2. Web và HTTP
Mô 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
Khởi đầu
Thời gian trả lời: kết nối TCP
1 RTT để khởi tạo kết nối RTT
TCP file
yêu cầu
1 RTT cho yêu cầu HTTP RTT
transmit time
và nhận byte đầu tiên của
trả lời HTTP file
đã nhận
Thời gian truyền file
total = 2RTT+transmit time thời gian thời gian
1-22
2.2. Web và HTTP
Persistent 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
1-23
2.2. Web và HTTP
(CR, LF)
1-24
2.2. Web và HTTP
1-25
2.2. Web và HTTP
Kiểu Method
HTTP/1.0 HTTP/1.1
GET GET, POST, HEAD
POST PUT
HEAD đưa file trong phần body
lên đường dẫn chỉ trong
Hỏi server bỏ đối tượng
URL
đã yêu cầu ra khỏi trả lời
DELETE
xóa file trong trường
URL
1-26
2.2. Web và HTTP
Bản tin trả lời HTTP
status line
(protocol
status code HTTP/1.1 200 OK
status phrase) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
header
Last-Modified: Mon, 22 Jun 1998 …...
line
Content-Length: 6821
Content-Type: text/html
1-27
2.2. Web và HTTP
Mã trạng thái của trả lời HTTP
Trong dòng đầu tiên của trả lời server->client
Ví dụ:
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
505 HTTP Version Not Supported
1-28
2.2. Web và HTTP
Thực hành
1. Telnet tới một Web server:
telnet cis.poly.edu 80 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
2. Gõ lệnh GET
GET /~ross/ HTTP/1.1
Host: cis.poly.edu
1-29
2.2. Web và HTTP
Web cache (proxy server)
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
Người dùng thiết lập server
ban đầu
qua trình duyệt
Proxy
Trình duyệt gửi mọi HT
TP est
req server re qu
H u
yêu cầu HTTP qua T
client TP
res
est H TTP
pon se
pon res
Cache se H TT P
est
Đối tượng trong cache: req
u
T P n se
sẽ được trả về HT es
po
r
Nếu không: Yêu cầu T TP
H
được chuyển tới
client
server ban đầu server
ban đầu
1-30
2.2. Web và HTTP
Web cache
Cache hoạt động như Lợi ích của Web cache
cả client và server Giảm thời gian trả lời
Thông thường, được Giảm lưu lượng trên đường
1-31
2.2. Web và HTTP
Web cache
Cache hoạt động như Tại sao dùng Web cache?
cả client và server Giảm thời gian trả lời cho
Thông thường cache yêu cầu của client.
Giảm lưu lượng trên đường
được cài đặt bởi ISP
truy cập của tổ chức.
(trường đại học, công
ty, nhà cung cấp dịch
vụ cho gia đình)
1-32
2.2. Web và HTTP
Ví dụ caching
Các server
Giả sử ban đầu
Kích thước của đối tượng trung
bình = 100,000 bits ~ 960 kbs public
Internet
Tốc độ yêu cầu trung bình từ trình
duyệt của tới server ban đầu = 15
giây
Trễ từ router của tổ chức tới server Đường truyền truy cập
ban đầu và trở lại = 2 giây 1.5 Mbps
Kết quả Mạng của
Sự sử dụng trong LAN = 15% tổ chức
10 Mbps LAN
Sự sử dụng trong đường truyền
truy cập = 100%
Total delay = Internet delay +
access delay + LAN delay Institutional
Cache
= 2 giây + phút + millisecond
1-33
2.2. Web và HTTP
Ví dụ caching (tiếp)
Server
Giải pháp có thể ban đầu
Tăng băng thông của đường truyền
truy cập: 10 Mbps public
Internet
Kết quả
Sự sử dụng LAN = 15%
Sử dụng đường truyền truy cập =
15% Đường truyền
Total delay = Internet delay + truy cập10 Mbps
access delay + LAN delay Mạng của
= 2 sec + msecs + msecs tổ chức
10 Mbps LAN
institutional
cache
1-34
2.2. Web và HTTP
Ví dụ caching (tiếp) Server
ban đầu
Cài đặt cache
Hỗ trợ hit rate .4 public
Kết quả Internet
40% yêu cầu sẽ đáp ứng gần
như ngay lập tức
60% yêu cầu đáp ứng bởi
server ban đầu Đường truyền
truy cập 1.5 Mbps
Sự sử dụng đường truyền
truy cập giảm tới 60%, kết Mạng của
quả độ trễ không đáng kể (10 tổ chức
10 Mbps LAN
msec)
total avg delay = Internet
delay + access delay + LAN
delay = .6*(2.01) secs +
milliseconds < 1.4 secs institutional
cache
1-35
2.2. Web và HTTP
GET có điều kiện
Mục đích: không gửi đối Cache Server
tượng nếu cache có phiên
Bản tin yêu cầu HTTP If-
bản cập nhật modified-since: <date>
Cache: chỉ định ngày của Đối tượng
bản sao chép trong cache không bị
trong yêu cầu HTTP Bản tin trả lời HTTP thay đổi
If-modified-since: <date> HTTP/1.0
Server: Trả lời không chứa 304 Not Modified
đối tượng nếu bản sao
chép trong cache cập nhật:
Bản tin yêu cầu HTTP
HTTP/1.0 304 Not Modified If-modified-since: <date>
Đối tượng
đã thay đổi
Bản tin trả lời HTTP
HTTP/1.0 200 OK
<data>
1-36
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-37
2.3 FTP: File Transfer Protocol
1-38
2.3 FTP: File Transfer Protocol
FTP: Kết nối dữ liệu và điều khiển riêng biệt
Kết nối điều khiển TCP
FTP client liên lạc với FTP cổng 21
server tại cổng 21, chỉ định
dùng TCP làm giao thức giao
Kết nối dữ liệu TCP
vận FTP cổng 20 FTP
Client giành ủy quyền qua kết client server
nối điều khiển
Server mở một kết nối dữ liệu
Client xem thư mục từ xa bằng
cách gửi lệnh qua kết nối điều TCP thứ hai để truyền một file
khiển khác.
Kết nối điều khiển: truyền theo
Khi server nhận một lệnh
truyền file, server mở một kết đường riêng
nối dữ liệu TCP tới client FTP server duy trì trạng thái:
Sau khi truyền file, server đóng thư mục hiện tại, ủy quyền
kết nối. trước đó
1-39
2.3 FTP: File Transfer Protocol
Lệnh và trả lời của FTP
Ví dụ một số lệnh: Ví dụ một số mã trả về
Gửi văn bản mã ASCII Status code và status
qua kênh điều khiển phrase (như HTTP)
USER username 331 Username OK,
PASS password đòi hỏi mật khẩu
LIST trả về một danh 125 kết nối dữ
sách các file trong thưc liệu đã mở; bắt
mục hiện tại đầu truyền
RETR filename lấy 425 Không thể mở
file kết nối dữ liệu
STOR filename đưa 452 Lỗi ghi file
file lên remote host
1-40
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-41
2.4 Electronic Mail Hàng đợi
bản tin gửi đi
User mailbox
user
Ba thành phần chính: agent
User agent mail
user
Mail server server
agent
Simple mail transfer protocol: SMTP mail
SMTP server user
SMTP agent
User Agent
Còn gọi là Mail Reader SMTP
mail user
Soạn, sửa, đọc bản tin mail agent
server
Ví dụ: Eudora, Outlook,
Netscape Messenger user
agent
Các bản tin gửi tới và gửi đi
user
đã chứa trên server agent
1-42
2.4 Electronic Mail
Mail server
Mail Server user
agent
mailbox chứa các bản tin mail
user
thư điện tử gửi đến cho server
agent
người sử dụng SMTP mail
message queue của các server user
bản tin thư điện tử gửi đi SMTP agent
SMTP protocol giữa các
mail server để gửi các SMTP
mail user
bản tin thư điện tử server agent
client: mail server gửi
user
“server”: mail server agent
nhận user
agent
1-43
2.4 Electronic 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
Bắt tay
Truyền các bản tin
Kết thúc
1-44
2.4 Electronic Mail
Kịch bản: Alice gửi bản tin cho Bob
1) Alice dùng UA để soạn bản
4) SMTP client gửi bản tin của
tin và gửi cho
Alice qua kết nối TCP
bob@someschool.edu
5) Mail server của Bob chuyển
2) UA của Alice gửi bản tin tới
bản tin vào mailbox của Bob
mail server của cô ta; bản tin
đặt trong message queue 6) Bob chạy user agent để đọc
bản tin
3) Phía client của SMTP mở kết
nối TCP với mail server của
Bob
1 mail
mail
server user
user server
2 agent
agent 3 6
4 5
1-45
2.4 Electronic Mail
1-47
2.4 Electronic Mail
Định dạng bản tin
SMTP: giao thức để trao đổi
các bản tin thư điện tử header
dòng
RFC 822: chuẩn định dạng bản
trống
tin dạng văn bản
Header lines, ví dụ
To: body
From:
Subject:
1-48
2.4 Electronic Mail
Đị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
MIME version To: bob@hamburger.edu
Subject: Picture of yummy crepe.
method sử dụng MIME-Version: 1.0
để mã hóa dữ liệu Content-Transfer-Encoding: base64
Content-Type: image/jpeg
kiểu dữ liệu
đa phương tiện, dữ liệu mã hóa kiểu base64 .....
kiểu con, .........................
khai báo tham số ......dữ liệu mã hóa kiểu base64
dữ liệu đã mã hóa
1-49
2.4 Electronic Mail
Thự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)
1-50
2.4 Electronic Mail
Các giao thức truy cập thư điện tử
SMTP SMTP giao thức user
user
agent truy cập agent
1-51
2.4 Electronic Mail
Giao thức POP3 S:
C:
+OK POP3 server ready
user bob
Pha ủy quyền S: +OK
C: pass hungry
Lệnh của client:
S: +OK người sử dụng
user: khai báo tên người đăng nhập thành công
C: list
dùng
S: 1 498
pass: mật khẩu
S: 2 912
Trả lời của server S: .
+OK C: retr 1
S: <message 1 contents>
-ERR
S: .
Pha giao dịch, client: C: dele 1
C: retr 2
list: liệt kê các số bản tin
S: <message 1 contents>
retr: lấy bản tin dựa vào số S: .
dele: xóa C: dele 2
quit
C: quit
S: +OK POP3 server chấm dứt
phiên làm việc
1-52
2.4 Electronic Mail
POP3 và IMAP
Thông tin thêm về POP3 IMAP
Ví dụ trước sử dụng Giữ tất cả các bản tin
chế độ “tải và xóa” tại một chỗ: server
Bob không thể đọc lại Cho phép người sử
các thư điện tử nếu bob dụng tổ chức các bản
chuyển sang client khác tin vào các thư mục
Chế độ “Tải và giữ” sao IMAP giữ trạng thái
chép các bản tin trên người sử dụng qua các
các client khác nhau phiên:
POP3 không lưu trạng Tên của các thư mục và
thái giữa các phiên ánh xạ giữa các định
danh của bản tin và tên
thư mục
1-53
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-54
2.5 DNS: Domain Name System
1-55
2.5 DNS: Domain Name System
1-56
2.5 DNS: Domain Name System
Cơ sở dữ liệu phân cấp và phân tán
Root DNS Servers
m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA (and 17
other locations)
13 root name
server trên toàn
b USC-ISI Marina del Rey, CA
thế giới
l ICANN Los Angeles, CA
1-58
2.5 DNS: Domain Name System
TLD và Authoritative Server
Top-level domain (TLD) server: có vai trò đối
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,…
Authoritative DNS server: DNS server của các
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ụ
1-59
2.5 DNS: Domain Name System
Local Name Server
Không hoàn toàn thuộc vào phân cấp
Mỗi ISP (residential ISP, công ty, tổ chức) có
Còn gọi là “default name server”
Khi một host tạo truy vấn DNS, truy vấn được
gửi tới Local DNS server của nó
Hoạt động như một proxy, chuyển tiếp query vào
trong phân cấp.
1-60
2.5 DNS: Domain Name System
Root DNS server
Ví dụ
2
Host tại cis.poly.edu 3
TLD DNS server
muốn biết địa chỉ IP 4
của
5
gaia.cs.umass.edu
Local DNS server
dns.poly.edu
7 6
1 8
gaia.cs.umass.edu
1-61
2.5 DNS: Domain Name System
Truy vấn đệ quy root DNS server
gaia.cs.umass.edu
1-62
2.5 DNS: Domain Name System
Lưu giữ tạm và cập nhật bản ghi
Name server nào đó học các ánh xạ, server sẽ lưu giữ tạm
các ánh xạ đó
Các khe lưu trữ tạm quá hạn (biến mất) sau một khoảng
thời gian
Các TLD server thông thường lưu trữ tạm trong các local
name servers
• Vì thế, root name server không phải hỏi thường xuyên
Cơ chế cập nhật/thông báo định nghĩa bởi IETF
RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html
1-63
2.5 DNS: Domain Name System
Bản ghi DNS
DNS: Cơ sở dữ liệu phân tán chứa các bản ghi tài nguyên (Resource record - RR)
1-65
2.5 DNS: Domain Name System
Giao thức DNS, bản tin
Các trường Name, type
cho một Truy vấn
1-66
2.5 DNS: Domain Name System
Chèn thêm bản ghi vào DNS
Ví dụ: Tạo “Network Utopia”
Đăng ký tên networkuptopia.com tại registrar (ví dụ: nhà
cung cấp giải pháp mạng)
Cần cung cấp cho registrar tên và địa chỉ IP của authoritative
name server của mạng (primary và secondary)
Registrar chèn thêm hai RR vào trong com TLD server:
1-68
2.6 Chia sẻ file P2P
Alice chọn một peer, Bob
1-69
2.6 Chia sẻ file P2P
Thư mục trung tâm
Bob
Thiết kế của “Napster” ban Server thư mục
đầu trung tâm
1
1) Khi peer kết nối, nó thông peers
Địa chỉ IP
1 3
Nội dung
2 1
2) Alice yêu cầu “Hey Jude”
3) Alice yêu cầu file từ Bob
Alice
1-70
2.6 Chia sẻ file P2P
Vấn đề của thư mục trung tâm
Một điểm chịu lỗi Truyền file là không
Hiệu năng tập trung,
Xâm phạm bản quyền xác định vị trí nội dung
là không tập chung
1-71
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-72
2.7 Lập trình Socket với TCP
Client phải liên lạc với server • Khi nhận được sự liên lạc của
• Tiến trình server phải đang chạy client, server TCP tạo một socket
• Server phải mở socket (cửa) để client mới cho tiến trình server để giao
liên lạc tiếp với client
– Cho phép server nói chuyện
Client liên lạc với server bằng cách: với nhiều client
• Tạo client-local TCP socket – Giá trị source port dùng để
• Gán địa chỉ IP, cổng của tiến trình phân biệt các client (chi tiết
server hơn trong chương sau)
• Khi client tạo socket: client TCP giành
kết nối tới server TCP
Góc nhìn ứng dụng
1-73
2.7 Lập trình Socket với TCP
Ví dụ: C client (TCP)
/* client.c */
void main(int argc, char *argv[])
{
struct sockaddr_in sad; /* cấu trúc chứa 1 địa chỉ IP */
int clientSocket; /* mô tả socket */
struct hostent *ptrh; /* con trỏ tới một entry trong host table */
Tạo client socket,
char Sentence[128];
Kết nối tới server
char modifiedSentence[128];
Đóng close(clientSocket);
kết nối
}
1-75
2.7 Lập trình Socket với TCP
Ví dụ: C server (TCP)
/* server.c */
void main(int argc, char *argv[])
{
struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */
struct sockaddr_in cad;
int welcomeSocket, connectionSocket; /* mô tả socket */
struct hostent *ptrh; /* con trỏ tới một entry trong host table */
Tạo một socket chờ tại một cổng
char clientSentence[128]; &
char capitalizedSentence[128]; Gắn với một địa chỉ cục bộ
port = atoi(argv[1]);
close(connectionSocket);
} Đưa kết quả ra socket
}
Kết thúc vòng lặp While,
Quay trở lại và đợi một kết nối client khác
1-77
Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các 2.6 Chia sẻ file P2P
ứng dụng mạng 2.7 Lập trình Socket với
2.2 Web và HTTP TCP
2.3 FTP 2.8 Lập trình Socket với
2.4 Electronic Mail UDP
SMTP, POP3, IMAP 2.9 Xây dựng Web Server
2.5 DNS
1-78
2.8 Lập trình Socket với UDP
1-79
2.8 Lập trình Socket với UDP
Tương tác giữa client socket
và server socket: UDP
Server (đang chạy trên hostid) Client
Tạo socket,
Cổng=x, đối với Tạo socket,
clientSocket =
gói tin đến: DatagramSocket()
serverSocket =
DatagramSocket()
1-80
Ví dụ: C client (UDP)
/* client.c */
void main(int argc, char *argv[])
{
struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */
int clientSocket; /* mô tả socket */
struct hostent *ptrh; /* con trỏ tới một entry trong host table */
char Sentence[128];
char modifiedSentence[128]; Tạo client socket,
Không kết nối tới server
host = argv[1]; port = atoi(argv[2]);
Đóng close(clientSocket);
kết nối }
1-82
Ví dụ: C server (UDP)
/* server.c */
void main(int argc, char *argv[])
{
struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */
struct sockaddr_in cad;
int serverSocket; /* mô tả socket */
struct hostent *ptrh; /* con trỏ tới một entry trong host table */
/* chuyển clientSentence thành chữ hoa, chứa kết quả trong capitalizedSentence*/
close(connectionSocket);
} Ghi kết quả ra socket
}
1-85
Xây dựng một Web server đơn giản
1-86
Chương 2: Tổng kết
Nội dung đã học: Ứng dụng mạng
Các kiến trúc ứng dụng Các giao thức cụ thể:
Client-Server HTTP
P2P FTP
Hybrid SMTP, POP, IMAP
Các yêu cầu ứng dụng: DNS
Tính tin cậy, băng thông, độ trễ
Lập trình socket
Mô hình dịch vụ giao vận của
Internet
Tin cậy, hướng kết nối
Không tin cậy, datagrams: UDP
1-87
Chương 2: Tổng kết
Quan trọng: đã học về các giao thức
Trao đổi bản tin yêu Bản tin dữ liệu và bản tin điều