Tải bản đầy đủ (.pdf) (45 trang)

Chương 2b: Hệ thống tên miền doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (507.14 KB, 45 trang )

2: Tầng Ứng dụng 1
DNS : Hệ thống Tên miền
Con người : có thể nhận dạng
bằng nhiều cách:
o Số Chứng Minh Thư
o Tên, Biệt danh
o Số hộ chiếu
Máy tính và Router trên Internet
o ðịa chỉ IP (32 bit) - sử dụng
ñể ñánh ñịa chỉ cho các
datagram
o “Tên”, ví dụ như
gaia.cs.umass.edu
Q: Ánh xạ giữa ðịa chỉ IP và Tên?
Domain Name System:
 Là Hệ cơ sở dữ liệu phân tán
cài ñặt bởi nhiều name servers
phân cấp
 Giao thức tầng ứng dụng :
host, routers yêu cầu name servers
ñể giải mã tên (ánh xạ ñịa chỉ <-
>tên)
o Chú ý : Chức năng cơ bản của
Internet hoạt ñộng như giao
thức tầng Ứng dụng
o “Phức tạp” ñặt ở “rìa”
2: Tầng Ứng dụng 2
DNS: Hệ thống tên miền
 Chức năng
o Ánh xạ (Tên miền, dịch vụ)
ñến một giá trị nào ñó


• (www.cs.yale.edu, Addr)
-> 128.36.229.30
• (cs.yale.edu, Email)
-> netra.cs.yale.edu
• (netra.cs.yale.edu, Addr)
-> 128.36.229.21
 Tại sao không sử dụng ñịa
chỉ IP trực tiếp ?
routers
DNS
Hostname, Service
Address
servers
clients
2: Tầng Ứng dụng 3
DNS : Name Server (Máy chủ Tên)
 Không có server nào có thể lưu toàn
bộ ñược tên miền và ñịa chỉ IP tương
ứng
 local name servers:
o Mỗi ISP, công ty có local name
server (ngầm ñịnh)
o Câu hỏi truy vấn của host về DNS
sẽ ñược chuyển tới local name
server
 Chức năng của name server:
o ðối với host: lưu ñịa chỉ IP và tên
miền tương ứng của host
o Có thể tìm tên miền ứng với ñịa
chỉ IP và ngược lại

Tại sao tạo ra một DNS
Server tập trung ?
 ðiểm hỏng duy nhất - nếu
name-server “chết” thì cả
mạng Internet sẽ “chết”
theo.
 Khối lượng giao dịch tại
ñiểm tập trung lớn.
 Cơ sở dữ liệu tập trung ở
“xa” với nhiều nơi
 Bảo trì dễ hơn.
Không MỞ RỘNG ñược !
2: Tầng Ứng dụng 4
DNS: ðặt tên như thế nào ?
 Cơ chế ðặt tên
o Không gian tên (phân cấp) ñược chia thành các Vùng (zone)
o Mỗi vùng có thể ñược coi là Nhánh của cây tổng quát
called a zone
2: Tầng Ứng dụng 5
Quản lý Phân tán Không gian Tên
 Là Cơ sở dữ liệu phân tán ñược nhiều authoritative name server quản lý
o Mỗi Vùng có một Authoritative Name Server riêng
o authoritative name server of a zone có thể trao quyền quản lý một bộ phận
trong Vùng của mình (tức là một nhánh con) cho name server khác
called a zone
2: Tầng Ứng dụng 6
DNS : Root Name Server
 Local name server sẽ hỏi Root name server khi không xác ñịnh ñược
ánh xạ.
 Root name server:

o Hỏi authoritative name server nếu không trả lời ñược
o Nhận câu trả lời từ authoritative name server
o Trả lời local name server
b USC-ISI Marina del Rey, CA
l ICANN Marina del Rey, CA
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA
i NORDUnet Stockholm
k RIPE London
m WIDE Tokyo
a NSI Herndon, VA
c PSInet Herndon, VA
d U Maryland College Park, MD
g DISA Vienna, VA
h ARL Aberdeen, MD
j NSI (TBD) Herndon, VA
13 root name servers
trên Thế giới
2: Tầng Ứng dụng 7
DNS : Ví dụ ñơn giản
host surf.eurecom.fr muốn biết
ñịa chỉ IP của
gaia.cs.umass.edu
1. Hỏi local DNS server
(dns.eurecom.fr)
2. dns.eurecom.fr hỏi root
name server nếu cần thiết
3. root name server hỏi
authoritative name server,

dns.umass.edu nếu cần
thiết.
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
root name server
authorititive name server
dns.umass.edu
local name server
dns.eurecom.fr
1
2
3
4
5
6
2: Tầng Ứng dụng 8
Name Server Trung gian
Root name server:
 Có thể không biết
authoritative name
server
 Chỉ biết Name Server
trung gian, qua ñó mới
tìm ñược authoritative
name server
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
root name server

local name server
dns.eurecom.fr
1
2
3
4
5
6
authoritative name server
dns.cs.umass.edu
intermediate name server
dns.umass.edu
7
8
2: Tầng Ứng dụng 9
DNS: các loại truy vấn
Truy vấn ñệ quy :
 Name server là nơi giải mã
ñịa chỉ/tên. Nếu không tự
mình giải mã ñược sẽ gửi yêu
cầu ñến name server khác.
 Root name server liệu có bị
quá tải ?
Truy vấn tương tác:
 Nếu không phân giải ñược
ñịa chỉ IP, gửi thông ñiệp
“Tôi không biết, hãy hỏi bạn
tôi là A”. A là ñịa chỉ IP của
name server kế tiếp.
requesting host

surf.eurecom.fr
gaia.cs.umass.edu
root name server
local name server
dns.eurecom.fr
1
2
3
4
5
6
authoritative name server
dns.cs.umass.edu
name server trung gian
dns.umass.edu
7
8
iterated query
2: Tầng Ứng dụng 10
DNS: Lưu tạm và Cập nhật bản ghi
 Khi “học” ñược thêm một ánh xạ, name server sẽ “ghi nhớ”
ánh xạ này
o Sau một khoảng thời gian, nếu thành phần nào trong cache
không ñược sử dụng thì sẽ bị xóa bỏ.
 Cơ chế Cập nhật và Thông báo do IETF thiết kế:
o RFC 2136
o />2: Tầng Ứng dụng 11
Bản ghi DNS
DNS: cơ sở dữ liệu phân tán lưu các Bản ghi Tài nguyên (RR)
 Type=NS

o name : domain (ví dụ
foo.com)
o value : ñịa chỉ IP của
authoritative name server
ứng với miền ñó
ðịnh dạng RR : (name, value, type, TTL)
 Type=A
o name : hostname
o value : IP address
 Type=CNAME
o name : tên bí danh cho một tên
thực nào ñó : ví dụ
www.ibm.com là tên bí danh
của
servereast.backup2.ibm.com
o value : tên thực
 Type=MX
o value : tên của mailserver
2: Tầng Ứng dụng 12
Giao thức và Thông ñiệp của DNS
Giao thức DNS : Thông ñiệp truy vấn và trả lời ñều có chung một
ñịnh dạng
Tiêu ñề Thông ñiệp
 identification: 16 bit.
Thông ñiệp trả lời và truy
vấn có cùng ñịnh danh.
 Cờ:
o Cờ query hay reply
o Cờ mong muốn ñệ quy
o Cờ chấp nhận ñệ quy

o Cờ authoritative
2: Tầng Ứng dụng 13
DNS
DNS


Giao
Giao
th
th


c
c
v
v
à
à
Thông
Thông
ñi
ñi


p
p
Trường tên và
Kiểu truy vấn
Thông ñiệp trả lời
Các bản ghi của

authoritative server
Những thông tin ngoại lệ
có thể hữu dụng
2: Tầng Ứng dụng 14
Quan sát DNS
 Sử dụng lệnh dig (Hoặc nslookup):
o Yêu cầu Hỏi bằng câu hỏi tương tác:
%dig +trace www.cnn.com
 Bắt thông ñiệp bằng Ethereal
o DNS server lắng nghe ở port 53
2: Tầng Ứng dụng 15
DNS – Ưu ñiểm ?
 Phân cấp : nâng cao năng lực quản lý và tăng cường khả
năng mở rộng
 Nhiều server : tăng khả năng phòng chống lỗi
o Xem />ñể thấy Tấn công từ chối Dịch vụ (DDoS) vào hệ thống root server
vào tháng 10/2002 (9 trong 13 root server bị ñình trệ, nhưng mạng
chỉ bị chậm ñi không ñáng kể)
o Xem ñể thấy hiệu suất
ñược giám sát như thế nào
 Caching làm giảm tải và giảm thời gian phản hồi
2: Tầng Ứng dụng 16
DNS – Nhược ñiểm
 Hệ thống Tên miền không phải là phương thức tốt nhất ñể ñặt tên
các tài nguyên khác, chẳng hạn file
 Số lượng giới hạn Kiểu tài nguyên hạn chế khả năng ñưa thêm các
dịch vụ mới
 Mặc dù về mặt lý thuyết có thể cập nhật bản ghi tài nguyên, nhưng
trên thực tế hiếm khi làm ñược.
 Mô hình truy vấn ñơn giản => khó cài ñặt những dạng truy vấn phức

tạp
 Kết nối sớm (Tách biệt truy vấn DNS với ứng dụng ñưa ra truy vấn)
không hiệu quả trong môi trường di ñộng và thay ñổi thường xuyên
o Ví dụ : Cân bằng tải, Tìm máy in gần nhất
2: Tầng Ứng dụng 17
Giải pháp Phân giải Tên kiểu Linda
 Nhiều ñề xuất dựa trên “Không gian làm việc
Phân tán” (Linda) do David Gelernter ñưa ra
o Intentional Naming System (INS),
o Internet Indirect Infrastructure (I3)
 Nút viết các các tuples (một dạng vector không
kiểu) vào các “không gian dùng chung”
 Nút ñọc các tuple phù hợp từ không gian dùng
chung
2: Tầng Ứng dụng 18
Lập trình Socket
Socket API
 BSD4.1 UNIX, 1981
 Ứng dụng Tạo, Sử dụng và ðóng
socket một cách tường minh.
 Sử dụng theo mô hình Client/Server
 Hai kiểu dịch vụ ứng dụng sử dụng
socket API:
o Truyền không tin cậy
o Tin cậy, hướng nối, ñúng thứ tự.
Là giao diện nằm trên máy
tính, do ứng dụng tạo ra và
quản lý, nhưng HðH kiểm
soát (là “cửa”) thông qua
ñó tiến trình vừa gửi và

nhận thông ñiệp từ các tiến
trình ứng dụng khác (ở trên
máy tính khác)
socket
Mục ñích : Nghiên cứu cách xây dựng ứng dụng client/server
giao tiếp qua socket
2: Tầng Ứng dụng 19
Lập trình Socket TCP
Socket: Là “cửa” giữa tiến trình ứng dụng và giao thức giao
vận ñầu cuối (UCP/TCP)
TCP: Dịch vụ truyền byte tin cậy từ tiến trình này sang tiến
trình khác.
process
TCP with
buffers,
variables
socket
Lập trình viên
kiểm soát
Hệ ðiều Hành
kiểm soát
Máy tính
process
TCP with
buffers,
variables
socket
Lập trình viên
kiểm soát
Máy tính

Internet
Hệ ðiều Hành
kiểm soát
2: Tầng Ứng dụng 20
Lập trình TCP Socket
Client phải liên lạc với server
 Tiến trình trên server phải chạy
trước.
 Server phải tạo sẵn socket (door)
ñể tiếp nhận yêu cầu từ client.
Client trao ñổi với server bằng
cách:
 Tạo socket TCP ở phía client
 Xác ñịnh ñịa chỉ IP, số hiệu cổng
của tiến trình server.
 Khi client tạo socket: client
TCP thiết lập kết nối tới
server TCP.
 Khi nhận ñược yêu cầu từ
client, server TCP tạo socket
mới cho tiến trình trên server
trao ñổi dữ liệu với client
o Cho phép server có thể
ñáp ứng yêu cầu của nhiều
client.
Quan ñiểm Lập trình Ứng dụng
TCP cung cấp dịch vụ truyền dữ liệu tin cậy
theo byte giữa Client và Server
2: Tầng Ứng dụng 21
Hướng nối TCP

2: Tầng Ứng dụng 22
Lập trình Socket TCP
Ví dụ Ứng dụng client-server:
 Client ñọc một dòng kí tự từ input
chuẩn (inFromUser stream), gửi tới
server qua socket (outToServer)
 server ñọc dòng kí tự từ socket
 server biến ñổi dòng ký tự ñó (chữ
thường thành chữ hoa) và gửi trả về
cho client.
 client ñọc dòng ký tự ñã biến ñổi từ
socket, in ra (inFromServer)
outToServer
to network from network
inFromServer
inFromUser
keyboard monitor
Process
clientSocket
input
stream
input
stream
output
stream
TCP
socket
Input stream:
sequence of bytes
into process

output stream:
sequence of bytes
out of process
Client
process
client TCP
socket
2: Tầng Ứng dụng 23
Tương tác Socket Client/server : TCP
wait for incoming
connection request
connectionSocket =
welcomeSocket.accept()
create socket,
port=x, for
incoming request:
welcomeSocket =
ServerSocket()
create socket,
connect to hostid, port=x
clientSocket =
Socket()
close
connectionSocket
read reply from
clientSocket
close
clientSocket
Server
Client

send request using
clientSocket
read request from
connectionSocket
write reply to
connectionSocket
TCP
connection setup
2: Tầng Ứng dụng 24
ServerSocket
 ServerSocket()
o Tạo ra một socket lắng nghe kết nối từ client
 ServerSocket(int port)
o Tạo ra một socket lắng nghe kết nối từ client tại cổng
Port
 ServerSocket(int port, int backlog)
 ServerSocket(int port, int backlog,
InetAddress bindAddr)
 bind(SocketAddress endpoint)
 bind(SocketAddress endpoint, int backlog)
 Socket accept()

close
()
.
2: Tầng Ứng dụng 25
Socket
 Socket(InetAddress address, int port)
 Socket(InetAddress address, int port,
InetAddress localAddr, int localPort)

 Socket(String host, int port)
 bind(SocketAddress bindpoint)
 connect(SocketAddress endpoint)
 connect(SocketAddress endpoint, int timeout)
 InputStream get InputStream()
 OutputStream getOutputStream()
 close()

×