Professional Documents
Culture Documents
2-2
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-3
Chương 2: tầng ứng dụng
Mục tiêu:
Các khái niệm, khía cạnh về Nghiên cứu (learn) về các
thi hành (implementation) giao thức bằng việc khảo sát
các giao thức ứng dụng các giao thức tầng ứng dụng
mạng HTTP
Các mô hình dịch vụ của FTP
tầng transport SMTP / POP3 / IMAP
Mô hình (paradigm) DNS
client-server Việc tạo ra các ứng dụng
Mô hình ngang hàng mạng
(peer-to-peer) Socket API
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-4
Các ứng dụng mạng chính là lý do tồn tại của mạng
Một số ứng dụng mạng phổ biến:
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-5
2.1 Các nguyên lý của ứng dụng mạng
Việc tạo ra các ứng dụng mạng
application
transport
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-6
… 2.1 Các nguyên lý của ứng dụng mạng
2.1.1 Các kiến trúc ứng dụng mạng
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-7
… 2.1 Các nguyên lý của ứng dụng mạng
Kiến trúc client-server
Server:
Là host luôn luôn bật
National or
(always-on host)
Global ISP
Có địa chỉ IP cố định
Mobile network
Các trung tâm dữ liệu để mở
rộng (scaling)
Local or
Regional ISP
Clients:
Home network
Truyền thông với server
client/server Có thể kết nối không liên tục
Có thể có địa chỉ IP động
Không truyền thông trực tiếp
với nhau
Interprise network
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-8
… 2.1 Các nguyên lý của ứng dụng mạng
Kiến trúc P2P
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-9
… 2.1 Các nguyên lý của ứng dụng mạng
2.1.2 Việc truyền thông của các tiến trình
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-10
… 2.1.2 Việc truyền thông của các tiến trình
Sockets
Một tiến trình gửi/nhận các bản tin (messages) đến/từ (to/from) socket
của nó. Socket là giao diện của các phần mềm bên trong một host,
tương tự như cái cửa (door).
Socket còn có tên gọi là – API (Application Programming Interface)
Tiến trình gửi đẩy bản tin ra khỏi cửa
Tiến trình gửi dựa vào hạ tầng giao vận ở phía ngoài cửa sẽ phân phát
bản tin đến socket tại tiến trình nhận.
application application
socket controlled by
process process app developer
transport transport
network network controlled
link by OS
link Internet
physical physical
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-11
… 2.1.2 Việc truyền thông của các tiến trình
Đánh địa chỉ các tiến trình
Để nhận các bản tin, tiến identifier bao gồm cả IP
trình phải có cái định danh address và port numbers gắn
(identifier) với tiến trình chạy trên host.
Thiết bị host có địa chỉ IP Thí dụ một số port numbers:
32-bit duy nhất HTTP server: 80
Q: Việc host trên đó tiến mail server: 25
trình chạy có địa chỉ IP đã là Để gửi bản tin HTTP tới
đủ để định danh tiến trình gaia.cs.umass.edu web server:
hay chưa? IP address: 128.119.245.12
A: Chưa, vì nhiều tiến
port number: 80
trình có thể đang cùng Sẽ có thêm nhiều thí dụ nữa…
chạy trên cùng một host Danh sách port đã xác định:
http://
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-12
… 2.1 Các nguyên lý của ứng dụng mạng
Giao thức tầng ứng dụng định nghĩa:
Loại bản tin được trao đổi, Các giao thức mở:
Thí dụ: request, response Được định nghĩa trong
Cú pháp (syntax) của bản tin: RFCs
Cho biết các trường (fields) Cho phép cùng hoạt động
trong bản tin & Các trường (interoperability)
được mô tả ntn Thí dụ: HTTP, SMTP
Ngữ nghĩa (semantics) của bản Các giao thức có bản quyền
tin (proprietary):
Ý nghĩa của thông tin trong
các trường
Các quy tắc (rules) về việc các
tiến trình gửi & hồi đáp các
bản tin khi nào và như thế nào
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-13
2.1.3 Các dịch vụ vận chuyển có sẵn cho các ứng dụng
Một ứng dụng cần dịch vụ vận chuyển làm gì:
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-15
… 2.1 Các nguyên lý của ứng dụng mạng
2.1.4 Các dịch vụ của giao thức vận chuyển Internet:
Các ứng dụng Internet được sử dụng phổ biến, các giao thức tầng
ứng dụng của chúng và các giao thức vận chuyển bên dưới.
application underlying
application layer protocol transport protocol
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-17
… 2.1.4 Các dịch vụ của giao thức vận chuyển Internet:
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-18
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-19
2.2 Web và HTTP
Trước hết, xem lại…
web = World Wide Web
web page (còn được gọi là document) bao gồm các objects
www.someschool.edu/someDept/pic.gif
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-20
… 2.2 Web và HTTP
2.2.1 Tổng quan về HTTP
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-21
… 2.2.1 HTTP overview (tiếp)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-22
… 2.2 Web và HTTP
2.2.2 Hai loại kết nối HTTP
Kết nối HTTP không kiên trì Kết nối HTTP kiên trì
(non-persistent; HTTP/1.0) (persistent; HTTP/1.1)
Nhiều nhất có một object được Nhiều objects có thể được
gửi qua một kết nối TCP gửi qua một kết nối TCP duy
Sau đó kết nối sẽ đóng lại nhất giữa client và server
Khi download nhiều objects thì
cần nhiều kết nối
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-23
2.2.2 Hai loại kết nối HTTP
HTTP with Non-persistent connection
Giả sử người dùng nhập vào URL: (contains text,
www.someSchool.edu/someDepartment/home.index references to 10
jpeg images)
1a. HTTP client bắt đầu kết nối
TCP đến HTTP server
(process) tại host 1b. HTTP server tại host
www.someSchool.edu ở www.someSchool.edu đang chờ
port 80 kết nối TCP tại port 80; Nhận
(“accepts”) kết nối, báo cho
2. HTTP client gửi HTTP request client biết.
message (chứa URL) vào
socket của kết nối TCP. Bản tin 3. HTTP server nhận được bản tin
(message) chỉ ra rằng client request, tạo response message
muốn nhận object có chứa đối tượng được (client)
someDepartment/home.index yêu cầu, và gửi bản tin vào
socket của nó.
time
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-24
2.2.2 Hai loại kết nối HTTP
… HTTP with non-persistent connection (tiếp)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-25
Non-persistent connection HTTP:
Thời gian đáp ứng (response time)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-26
2.2.2 Hai loại kết nối HTTP
Persistent HTTP
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-27
2.2.3 Khuôn dạng bản tin HTTP
HTTP request message (bản tin yêu cầu của HTTP)
Hai loại bản tin HTTP: request, response
HTTP request message:
ASCII (human-readable format)
carriage return character
line-feed character
request line
(GET, POST, GET /index.html HTTP/1.1\r\n
HEAD commands) Host: www-net.cs.umass.edu\r\n
User-Agent: Firefox/3.6.10\r\n
Accept: text/html,application/xhtml+xml\r\n
header Accept-Language: en-us,en;q=0.5\r\n
lines Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
carriage return, Keep-Alive: 115\r\n
line feed at start Connection: keep-alive\r\n
\r\n
of line indicates
end of header lines
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-28
2.2.3 Khuôn dạng bản tin HTTP
HTTP request message: General format (khuôn dạng chung)
~
~ entity body ~
~ body
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-29
… 2.2 Web và HTTP
Uploading form input (Tải lên đầu vào theo mẫu)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-30
… 2.2 Web và HTTP
Các loại phương thức (Method types)
HTTP/1.0: HTTP/1.1:
GET: đọc 1 trang web GET
POST: nối vào 1 trang web POST
HEAD: đọc header của 1 HEAD
trang web PUT
Bảo server bỏ lại đối tượng Tải lên toàn bộ file vào
đã yêu cầu khỏi bản tin đường dẫn được chỉ ra trong
đáp ứng (asks server to leave trường URL
requested object out of
response) DELETE
Xóa file được chỉ ra trong
trường URL
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-31
… 2.2 Web và HTTP
Bản tin hồi đáp của HTTP (HTTP response message)
status line
(protocol
status code HTTP/1.1 200 OK\r\n
status phrase) Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02
GMT\r\n
header ETag: "17dc6-a5c-bf716880"\r\n
Accept-Ranges: bytes\r\n
lines Content-Length: 2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html; charset=ISO-8859-
1\r\n
\r\n
data, e.g., data data data data data ...
requested
HTML file
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-32
… 2.2 Web và HTTP
HTTP response status codes (mã trạng thái hồi đáp của HTTP)
Mã trạng thái xuất hiện ở dòng thứ nhất trong bản tin hồi đáp
gửi từ server đến client.
Một số mã trạng thái làm thí dụ:
200 OK
request succeeded, requested object later in this msg
301 Moved Permanently
requested object moved, new location specified later in this msg (Location:)
400 Bad Request
request msg not understood by server
404 Not Found
requested document not found on this server
505 HTTP Version Not Supported
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-33
… 2.2 Web và HTTP
Hãy tự mình thử nghiệm HTTP (client side)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-35
Cookies: keeping “state” (cont.)
client server
ebay 8734
usual http request msg Amazon server
cookie file creates ID
usual http response
1678 for user create backend
ebay 8734
set-cookie: 1678 entry database
amazon 1678
usual http request msg
cookie: 1678 cookie- access
specific
usual http response msg action
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-37
… 2.2 Web và HTTP
Web caches (proxy server)
Mục đích: Thỏa mãn client request mà không kéo theo (involving)
server gốc
Người dùng thiết lập
browser: Việc truy cập
Web thông qua cache proxy
Browser gửi mọi HTTP server
requests đến cache client
origin
Nếu đối tượng (object) server
có ở cache: cache trả về
đối tượng
Nếu không có, cache gửi
requests đối tượng từ
server gốc (origin), sau
đó chuyển đối tượng cho client origin
client server
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-38
More about Web caching
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-39
Thí dụ về caching:
Giả thiết:
Kích thước đối tượng avg: 100K bits
Tốc độ gửi yêu cầu avg từ các browsers
đến servers gốc:15/sec
RTT từ router của cơ quan đến server gốc origin
bất kỳ: 2 sec servers
Tốc độ đường truyền truy cập: 1.54 Mbps public
Internet
Kết quả là:
Tốc độ dữ liệu avg đến các browsers: 1.50
Mbps (100kbits/rep*15rep/sec)
LAN utilization: 15% (1.5Mbps/1Gbps) 1.54 Mbps
(problem! too low) access link
access link utilization = 99%
institutional
(downlink throughput + uplink network
throughput)/1.54Mbps = 1 Gbps LAN
(1.5Mbps+15req/sec*200bytes/req*8bits/
byte) /1.54Mbps = 0.9888 99%)
total delay = Internet delay + access
delay + LAN delay (access delay không tính
chính xác được từ các giả thiết trên)
= 2 sec + minutes + secs
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-40
Theo Lý thuyết hàng đợi (Queuing Theory): Avg-queue-size = r/(1- r ), r=l/
Trong thí dụ này, nếu lấy pkt_size = object size = 100kbits, thì với “access link”:
pkt_tx_time = 100,000 bits/1.54mbps ~ 10/1.54 s ~ 6.5 s
100*pkt_tx_time ~ 650s ~ 11 minutes.
Thí dụ về caching: Đường truy cập “béo” hơn
assumptions:
Kích thước đối tượng avg: 100K bits
Tốc độ gửi yêu cầu avg từ các browsers
đến servers gốc:15/sec
origin
RTT từ router của cơ quan đến server gốc
bất kỳ : 2 sec servers
public
Tốc độ đường truyền truy cập: 1.54Mbps Internet
Kết quả là: 154 Mbps
Tốc độ dữ liệu avg đến các browsers:
1.50Mbps (100kbits/rep*15rep/sec)
LAN utilization: 15% (1.5Mbps/1Gbps)
1.54 Mbps 154 Mbps
access link
Access link utilization = 99%
9.9%
(downlink throughput + uplink institutional
throughput)/1.54Mbps = network
1 Gbps LAN
(1.5Mbps+15req/sec*200bytes/req*8bits/b
yte) /1.54Mbps = 0.9888 99%)
total delay = Internet delay + access delay
+ LAN delay = 2 sec + minutes + secs
msecs
Giá (Cost): Tăng tốc độ đường truyền truy cập (không rẻ!)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-42
Thí dụ về caching: Cài đặt cache cục bộ
assumptions:
avg object size: 100K bits
avg request rate from browsers to
origin servers:15/sec origin
avg data rate to browsers: 1.50 Mbps servers
public
RTT from institutional router to any Internet
origin server: 2 sec
access link rate: 1.54 Mbps
consequences: 1.54 Mbps
LAN utilization: 15% access link
access link utilization = 100%
?
institutional
total delay = Internet delay + access
network
delay + LAN delay 1 Gbps LAN
= 2 sec + minutes + usecs?
local web
cache
How to compute link
utilization, delay?
Cost: web cache (cheap!)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-43
Thí dụ về caching: Cài đặt cache cục bộ
Tính độ sử dụng đường truyền truy
cập (access link), delay khi có cache:
Giả sử cache hit rate bằng 0.4
origin
40% requests được thỏa mãn tại cache,
servers
60% requests được thỏa mãn tại gốc public
Độ sử dụng đường truyền truy cập: Internet
60% of requests sử dụng đường truyền
truy cập
Tốc độ dữ liệu đến browsers qua đường
truyền truy cập = 0.6*1.50 Mbps = 0.9 Mbps 1.54 Mbps
Độ sử dụng = 0.9/1.54 = 0.58 access link
Độ trễ tổng cộng institutional
= 0.6 * (delay from origin servers) +0.4 network
1 Gbps LAN
* (delay when satisfied at cache)
= 0.6 (2.01) + 0.4 (~msecs) local web
= ~ 1.2 secs cache
Sẽ nhỏ hơn nếu đường truyền là 154
Mbps (và cũng rẻ hơn!)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-44
… 2.2 Web và HTTP
Conditional GET
client server
Mục đích: không gửi đối
tượng nếu cache có bản cập
nhật (up-to-date) HTTP request msg
object
Không có trễ truyền If-modified-since: <date>
(trans.) đối tượng not
modified
Độ sử dụng đường truyền HTTP response
before
thấp hơn HTTP/1.0
<date>
Cache: chỉ ra date của bản 304 Not Modified
copy ở cache trong (bản tin)
HTTP request
If-modified-since: <date>
Server: (bản tin) response sẽ
HTTP request msg
If-modified-since: <date> object
không chứa đối tượng nếu modified
bản copy trong cache là cập after
HTTP response
nhật: HTTP/1.0 200 OK <date>
HTTP/1.0 304 Not Modified <data>
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-45
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-46
2.3 Giao thức truyền file FTP (File Transfer Protocol)
file transfer
FTP FTP FTP
user client server
interface
user
at host remote file
local file system
system
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-47
… 2.3 Giao thức truyền file FTP
FTP: separate control, data connections
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-48
… 2.3 Giao thức truyền file FTP
Các lệnh FTP và đáp ứng (responses)
Một số lệnh làm thí dụ: Một số mã trả về làm thí dụ:
Lệnh được gửi dưới dạng Mã trạng thái và nhóm từ (phrase)
ASCII text qua kênh điều khiển (giống như ở giao thức HTTP)
USER username 331 Username OK, password
PASS password required
LIST trả về danh sách các file ở 125 data connection already open;
thư mục hiện thời (Ubuntu: ls) transfer starting
RETR filename lấy về file 425 Can’t open data connection
(Ubuntu: get) 452 Error writing file
STOR filename Chứa (puts)
file lên host ở xa (Ubuntu: put)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-49
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-50
2.4 Electronic mail
outgoing
message queue
Ba thành phần chính: user mailbox
User agents (tác tử người dùng) user
agent
Mail servers
Simple mail transfer protocol: mail user
SMTP (giao thức chuyển/truyền server agent
thư đơn giản)
SMTP mail user
User Agent server agent
Còn được gọi là “mail reader” SMTP
Soạn (composing), sửa (editing),
đọc (reading) các mail messages SMTP user
Thí dụ: Outlook, Thunderbird, agent
mail
iPhone mail client server
Các bản tin đi (outgoing), đến user
agent
(incoming) được chứa ở server
user
agent
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-51
2.4 Electronic mail: mail servers
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-52
2.4 Electronic Mail: SMTP [RFC 2821]
SMTP sử dụng TCP để chuyển một cách tin cậy email message
từ client đến server, port 25
Chuyển trực tiếp (direct transfer): từ server gửi đến server nhận
Ba pha của việc chuyển
Bắt tay (handshaking, greeting)
Truyền các bản tin
Kết thúc (closure)
Tương tác command/response (giống HTTP, FTP)
Commands: ASCII text
Response: status code and phrase
Messages phải sử dụng mã ASCII 7-bit (plain text)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-53
2.4 Electronic Mail
Kịch bản: Alice gửi message cho Bob
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-54
2.4 Electronic Mail
Thí dụ về tương tác SMTP Client (C) và SMTP Server (S)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-55
2.4 Electronic Mail
SV hãy tự thử tương tác SMTP (Try SMTP interaction for yourself)
telnet servername 25
see 220 reply from server
enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands
above lets you send email without using email client (reader)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-56
2.4 Electronic Mail
Vài câu kết về SMTP (SMTP: final words)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-57
2.4 Electronic Mail
Mail message format
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-58
2.4 Electronic Mail
Các giao thức truy cập mail
user
mail access user
SMTP SMTP protocol
agent agent
(e.g., POP,
IMAP)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-59
2.4 Electronic Mail
POP3 protocol
S: +OK POP3 server ready
C: user bob
Pha cấp phép (authorization) S: +OK
C: pass hungry
Các lệnh của client:
S: +OK user successfully logged on
user: Khai báo username
pass: password C: list
Server hồi đáp S: 1 498
+OK S: 2 912
S: .
-ERR
C: retr 1
Pha giao dịch, client: S: <message 1 contents>
list: xem danh sách số bản tin S: .
retr: lấy bản tin về theo số C: dele 1
dele: xóa bản tin (theo số) C: retr 2
quit: kết thúc S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-60
2.4 Electronic Mail
POP3 (more) and IMAP
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-61
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-62
2.5 DNS – Dịch vụ danh bạ của Internet
DNS: Hệ thống tên miền (domain name system)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-63
… 2.5 DNS – Dịch vụ danh bạ của Internet
Các dịch vụ, cấu trúc
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-64
… 2.5 DNS – Dịch vụ danh bạ của Internet
CSDL phân tán, có cấp bậc (hierachichal)
… …
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-65
… 2.5 DNS – Dịch vụ danh bạ của Internet
Server tên gốc (root name servers)
Nếu server tên cục bộ không phân giải được một tên thì sẽ giao tiếp với server
tên gốc
Server tên gốc:
Giao tiếp với server tên có thẩm quyền (authoritative name server) nếu không biết
ánh xạ tên
Nhận về ánh xạ
Trả ánh xạ cho server tên cục bộ
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-66
… 2.5 DNS – Dịch vụ danh bạ của Internet
TLD, authoritative servers
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-67
… 2.5 DNS – Dịch vụ danh bạ của Internet
Server tên DNS cục bộ (Local DNS name server)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-68
… 2.5 DNS – Dịch vụ danh bạ của Internet
Thí dụ về việc phân giải tên DNS root DNS server
gaia.cs.umass.edu
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-69
… 2.5 DNS – Dịch vụ danh bạ của Internet
…Thí dụ về việc phân giải tên DNS root DNS server
2 3
Query được lặp đi lặp lại: 7
6
Đặt gánh nặng phân TLD DNS
giải tên lên name server server
bị liên lạc local DNS server
Tải nặng tại các mức dns.poly.edu 5 4
cao hơn của cấp bậc 1 8
(hierarchy)?
authoritative DNS server
dns.cs.umass.edu
requesting host
cis.poly.edu
gaia.cs.umass.edu
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-70
… 2.5 DNS – Dịch vụ danh bạ của Internet
Việc caching, cập nhật các bản ghi
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-71
… 2.5 DNS – Dịch vụ danh bạ của Internet
Các bản ghi DNS
DNS: CSDL phân tán chứa các bản ghi nguồn – RR (resource records)
type=A type=CNAME
name là tên bí danh cho một cái
name là hostname
tên chính tắc (“canonical”) nào đó
value là địa chỉ IP www.ibm.com thực sự là
servereast.backup2.ibm.com
type=NS value là tên chính tắc
name là domain (thí dụ:
foo.com)
value là hostname của type=MX
server tên có thẩm quyền
đối với domain này value là tên của mailserver liên
kết với name
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-72
… 2.5 DNS – Dịch vụ danh bạ của Internet
Giao thức DNS, các bản tin
Cả bản tin query lẫn bản tin reply có cùng khuôn dạng
flags:
questions (variable # of questions)
query or reply
recursion desired answers (variable # of RRs)
recursion available
reply is authoritative authority (variable # of RRs)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-73
… 2.5 DNS – Dịch vụ danh bạ của Internet
… Giao thức DNS, các bản tin
2 bytes 2 bytes
identification flags
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-74
… 2.5 DNS – Dịch vụ danh bạ của Internet
Chèn các bản ghi vào trong DNS
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-75
… 2.5 DNS – Dịch vụ danh bạ của Internet
Tấn công DNS
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-76
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-77
2.6 Các ứng dụng ngang hàng - P2P
Pure P2P architecture
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-78
2.6.1 Phân phát file P2P: so sánh client-server với P2P
Question: mất bao nhiêu thời gian để phân phát một file kích thước
F từ một server tới N peers?
Năng lực (capacity) upload/download của một peer là tài nguyên có giới
hạn
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-79
2.6.1 Phân phát file P2P: so sánh client-server với P2P
Thời gian phân phát file theo mô hình Client-Server
Clients: để tập hợp lại (thành files) N clients phải download NF bits
Tốc độ upload tối đa (làm hạn chế tốc độ download tối đa) is us + Sui
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-81
2.6.1 Phân phát file P2P
So sánh (thời gian phân phát file) client-server với P2P: Một thí dụ
3.5
P2P
Minimum Distribution Time
3
Client-Server
2.5
1.5
0.5
0
0 5 10 15 20 25 30 35
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-82
2.6.1 Phân phối file P2P: BitTorrent (torrent: dòng nước lũ)
Tracker: theo dấu các peers Torrent: nhóm các peers trao đổi
Tham gia trong torrent các khúc (chunks) của một file
Alice đi đến …
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-83
2.6.1 Phân phối file P2P: BitTorrent
Trong khi đang download, peer uploads các khúc cho các peers khác
Một peer có thể thay đổi các peers mà nó trao đổi các khúc
Churn (tạo sóng): Là các peers có thể đến và đi
Khi một peer có nguyên một file, nó có thể (một cách ích kỷ) rời đi
hoặc (một cách vị tha) ở lại trong torrent
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-84
2.6.1 Phân phối file P2P
BitTorrent: Việc yêu cầu, gửi các khúc (chunks) của file
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-85
2.6.1 Phân phối file P2P
BitTorrent: tit-for-tat
1) Alice làm cho Bob thông (“optimistically unchokes”)
2) Alice trở thành một trong các nhà cung cấp top-four của Bob; Bob đền đáp lại
3) Bob trở thành một trong các nhà cung cấp top-four của Alice
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-86
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-87
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
CSDL đơn giản được sử dụng trong mạng P2P
CSDL đơn giản có các cặp (key, value)
• key: tên người; value: số an sinh xã hội (social security #)
Key Value
John Washington 132-54-3570
Diana Louise Jones 761-55-3791
Xiaoming Liu 385-41-0902
Rakesh Gopal 441-89-1956
Linda Cohen 217-66-5609
……. ………
Lisa Kobayashi 177-23-0199
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-88
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
Bảng băm (Hash Table)
• Việc chứa (store) và tìm kiếm trên biểu diễn số của khóa là tiện
lợi hơn nhiều
• key = hash(original key)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-89
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
Mọi peer đều được phép insert các cặp (key, value) vào CSDL
CSDL phân tán như vậy còn được gọi là Bảng băm phân tán -
DHT
Phân phối các cặp (key, value) đến hàng triệu peers
Các cặp (pairs) cuối cùng sẽ được phân phát đến các peers
Mọi peer đều có thể query (truy vấn) CSDL với một khóa
CSDL trả về (returns) giá trị cho khóa
Để phân giải (resolve) query, một số nhỏ các bản tin được trao đổi giữa
các peers
Mỗi peer chỉ biết về một số nhỏ các peers khác
Là mạnh (robust) đối với các peers đến và đi (churn)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-90
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
Việc gán cặp key-value cho các peers
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-91
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
DHT vòng tròn (Circular DHT)
60 12
13
48
25
40
32
“overlay network”
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-92
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
Phân tích một truy vấn (Resolving a query)
60
13
48
25
40
32
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-93
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
DHT vòng tròn với shortcuts (Circular DHT with shortcuts)
13
48
25
40
32
• Mỗi peer theo dõi id và đc IP của phần tử sau, phần tử trước và các short cuts.
• Giảm số bản tin từ 6 xuống 3.
• Có thể thiết kế các shortcuts với O(log N) hàng xóm, O(log N) bản tin để
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-94
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
Tạo sóng peer (peer churn)
Xử lý (handling) peer
1 churn:
Peers có thể đến và đi (churn)
3 Mỗi peer biết địa chỉ của 2
15
phần tử sau nó
4 Mỗi peer định kỳ pings 2 phần
tử sau nó để kiểm tra xem còn
12
5 sống (aliveness) không
Nếu phần tử liền ngay sau nó
10
8 rời đi, thì chọn phần tử sau nó
kế tiếp làm phần tử liền ngay
Thí dụ: peer 5 đột ngột rời đi sau nó mới
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-95
2.6.2 Bảng băm phân tán – DHT (Distributed Hash Table)
… Tạo sóng peer (peer churn)
1 … Xử lý (handling) peer churn:
Peers có thể đến và đi (churn)
15 3 Mỗi peer biết địa chỉ của 2 phần tử sau
nó
4 Mỗi peer định kỳ pings 2 phần tử sau
nó để kiểm tra xem còn sống (aliveness)
12 không
Nếu phần tử liền ngay sau nó rời đi, thì
10 chọn phần tử sau nó kế tiếp làm phần tử
8
liền ngay sau nó mới
… Thí dụ: peer 5 đột ngột rời đi
Peer 4 phát hiện thấy sự rời đi của peer 5; nó lấy peer 8 làm phần tử liền ngay
sau nó
Peer 4 hỏi peer 8 ai là phần tử đứng liền ngay sau nó (8); nó (4) lấy phần tử
đứng liền ngay sau peer 8 làm phần tử sau thứ 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-96
Các nội dung chính của chương 2
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-97
2.7 Lập trình socket với UDP và TCP
Mục tiêu (goal): Học được cách xây dựng các ứng dụng
client/server truyền thông bằng việc sử dụng sockets
Socket: là cửa giữa tiến trình ứng dụng và giao thức vận chuyển
e2e (end-end-transport)
application application
socket controlled by
process process app developer
transport transport
network network controlled
link by OS
link Internet
physical physical
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-98
… 2.7 Lập trình socket với UDP và TCP
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-99
2.7.1 Lập trình socket với UDP
UDP: không có “connection” giữa client & server
Không có bắt tay (handshaking) trước khi gửi dữ liệu
Sender gắn một cách rõ ràng địa chỉ IP đích và port # vào mỗi
packet
Receiver tách địa chỉ IP và port# của người gửi từ packet nhận
được
UDP: Dữ liệu được truyền có thể bị mất hoặc nhận không đúng
thứ tự
Quan điểm của ứng dụng:
UDP cung cấp sự truyền (transfer) không tin cậy các nhóm
bytes (“datagrams”) giữa client và server
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-100
… 2.7.1 Lập trình socket với UDP
Tương tác socket client/server: UDP
write reply to
serverSocket read datagram from
specifying clientSocket
client address,
port number close
clientSocket
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-101
2.7.1 Lập trình socket với UDP
Thí dụ ứng dụng: UDP client
Python UDPClient
include Python‟s socket
library
from socket import *
serverName = „hostname‟
serverPort = 12000
create UDP socket for clientSocket = socket(socket.AF_INET,
server
socket.SOCK_DGRAM)
get user keyboard
input message = raw_input(‟Input lowercase sentence:‟)
Attach server name, port to
message; send into socket
clientSocket.sendto(message,(serverName, serverPort))
read reply characters from modifiedMessage, serverAddress =
socket into string
clientSocket.recvfrom(2048)
print out received string print modifiedMessage
and close socket
clientSocket.close()
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-102
(… 2.7) Lập trình socket với UDP
Thí dụ ứng dụng: UDP server
Python UDPServer
from socket import *
serverPort = 12000
create UDP socket serverSocket = socket(AF_INET, SOCK_DGRAM)
bind socket to local port serverSocket.bind(('', serverPort))
number 12000
print “The server is ready to receive”
loop forever while 1:
Read from UDP socket into message, clientAddress = serverSocket.recvfrom(2048)
message, getting client‟s
address (client IP and port) modifiedMessage = message.upper()
send upper case string
serverSocket.sendto(modifiedMessage, clientAddress)
back to this client
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-103
2.7.2 Lập trình socket với TCP
Client phải liên lạc với server Khi được client liên lạc, server
Tiến trình server phải chạy TCP tạo ra socket mới cho tiến
trước trình server liên lạc với client
Server phải tạo (xong) socket cụ thể đó
(door) để đón nhận sự liên lạc Cho phép server nói chuyện
của client (talk) với nhiều clients
Source port numbers được
Client liên lạc với server bằng: sử dụng để phân biệt các
Tạo ra TCP socket, bằng việc clients (more in Chap 3)
chỉ ra địa chỉ IP, port number
của tiến trình server
Quan điểm của ứng dụng:
Khi client tạo socket: client
TCP thiết lập kết nối với server TCP cung cấp sự vận chuyển tin
TCP cậy, dòng byte đúng thứ tự (“pipe”)
Giữa client và server
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-104
2.7.2 Lập trình socket với TCP
Tương tác socket client/server: TCP
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-105
2.7.2 Lập trình socket với TCP
Example app: TCP client
Python TCPClient
from socket import *
serverName = ‟servername‟
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-106
2.7.2 Lập trình socket với TCP
Example app: TCP server
Python TCPServer
from socket import *
create TCP welcoming
serverPort = 12000
socket serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((„‟,serverPort))
server begins listening for
incoming TCP requests
serverSocket.listen(1)
print „The server is ready to receive‟
loop forever while 1:
server waits on accept() connectionSocket, addr = serverSocket.accept()
for incoming requests, new
socket created on return
sentence = connectionSocket.recv(1024)
read bytes from socket (but
not address as in UDP) capitalizedSentence = sentence.upper()
close connection to this
connectionSocket.send(capitalizedSentence)
client (but not welcoming connectionSocket.close()
socket)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-107
Chương 2: Tóm tắt
Việc nghiên cứu các ứng dụng mạng của chúng ta kết thúc!
Các kiến trúc ứng dụng Các giao thức cụ thể:
Client-server HTTP
P2P
FTP
Các yêu cầu đối với dịch vụ SMTP, POP, IMAP
ứng dụng:
DNS
Reliability, bandwidth, delay
P2P: BitTorrent, DHT
Mô hình dịch vụ vận chuyển
Internet Socket programming: TCP,
Hướng kết nối, tin cậy UDP sockets
(Connection-oriented, reliable):
TCP
Không tin cậy, bản tin
(Unreliable, datagrams): UDP
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-108
… Chương 2: Tóm tắt
Quan trọng nhất là: học về các giao thức!
Sự trao đổi bản tin (msg) Các chủ đề (themes) quan trọng:
request/reply điển hình: So sánh các bản tin control và
Client yêu cầu thông tin
(info) hoặc dịch vụ data
Server đáp lại với dữ liệu in-band, out-of-band
(data), mã trạng thái (status Tập trung và không tập trung
code)
(centralized vs. decentralized)
Khuôn dạng bản tin:
Headers: gồm các Không trạng thái và có trạng
trường (fields) cung cấp thái (stateless vs. stateful)
thông tin về dữ liệu Truyền msg tin cậy và không
Data: là thông tin được tin cậy
trao đổi
Sự phức tạp tại biên mạng
(“complexity at network edge”)
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-109
Chương 1
Các slides bổ sung
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-110
… Chương 1 Các slides bổ sung
application
packet (www browser,
OS
packet Transport (TCP/UDP)
copy of all Network (IP)
capture Ethernet
frames Link (Ethernet)
(pcap) sent/receive
Physical
d
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-111
Q&A
Chương 2, Mạng máy tính INT2209-4&5&6, HK1 2018-2019. PGS. TS. Nguyễn Đình Việt 2-112