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

Bài giảng mạng máy tính và internet chương 2 (tiếp) trần quang hải bằng

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 (556.45 KB, 22 trang )

Chương 2 (tiếp).
Giao thức tầng ứng dụng (application layer)
Trần Quang Hải Bằng
Computer Networking and Internet (course of 2009)
Faculty of Information Technology
University of Communication and Transport (Unit 2)
Office location: Administration building, Block D3, Room 6
Office phone: 38962018
Cell phone: N/A
Email:

Discussion
Web programming with ASP.
Visual Basic programming.
§

Object oriented programming.

§

Event driven programming.

§

Component driven programming.

TCP Socket programming.
§

Simple web server.


24/8-25/10/2009

Chapter 2. The Application Layer

2


Winsock

24/8-25/10/2009

Chapter 2. The Application Layer

3

HTTP example
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)
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).

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.

1b. http server chấp nhận kết nối
rồi thông báo với client.


2. http client gửi http request
message (bao gồm cả URL) tới
TCP connection socket

time
24/8-25/10/2009

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
socket.

Chapter 2. The Application Layer

4


4. http server ngắt liên kết.
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.

time

6. Bước 1-5 được lặp lại với từng
hình ảnh.


24/8-25/10/2009

Chapter 2. The Application Layer

5

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.

24/8-25/10/2009

Chapter 2. The Application Layer

6


2.4. FTP - File Transfer Protocol
FTP
FTP
user
client
interface
user
at host


file transfer

remote file
system

local file
system

n

Truyền/tải tệp (to/from remote host).

n

Client/server model

n

FTP
server

¤

Client: đưa ra yêu cầu truyền tải.

¤

Server = remote host.


FTP: RFC 959

24/8-25/10/2009

7

Chapter 2. The Application Layer

FTP: control & data connections
TCP control connection
port 21

FTP
client

TCP data connection
port 20

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:

n

FTP
server


¤

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.

FTP lưu giữ trạng thái client trong phiên làm việc (state vs.
HTTP is stateless).

24/8-25/10/2009

Chapter 2. The Application Layer

8


FTP: Quá trình trao đổi/truyền tải
TCP control connection
port 21

client

FTP server nghe tại cổng 21.

TCP data connection
port 20


server

FTP client yêu cầu kết nối với FTP server qua TCP tại cổng 21. Gửi
user & password để đăng nhập.
FTP server chấp nhận, liên kết điều khiển (control connection) được
thiế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ết
chỉ sử dụng để truyền một tệp).
24/8-25/10/2009

Chapter 2. The Application Layer

9

FTP commands, responses
Lệnh (commands), phúc đáp (responses) được truyền dạng ASCII

Sample commands:
n
n
n
n

n

n


Sample return codes

sent as ASCII text over control
channel
USER username
PASS password

n

LIST return list of file in
current directory
RETR filename retrieves
(gets) file
STOR filename stores
(puts) file onto remote host

n

24/8-25/10/2009

n

n

n

status code and phrase (as in
HTTP)
331 Username OK,
password required

125 data connection
already open;
transfer starting
425 Can’t open data
connection
452 Error writing
file

Chapter 2. The Application Layer

10


FTP clients & servers
FTP
FTP
user
client
interface
user
at host

n

¤

FTP
server
remote file
system


local file
system

Command-based client:
¤

n

file transfer

Windows FTP command.
Linux FTP command.

n
n

Microsoft FTP Service


GUI clients
¤
¤

Windows Commander.
CuteFTP, WS_FTP…

24/8-25/10/2009

Chapter 2. The Application Layer


11

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.

24/8-25/10/2009

Chapter 2. The Application Layer

12


2.5. Electronic Mail
Ba thành phần chính:
n

User agents (mail clients)
¤
¤

n

mail
server


Soạn, đọc thư (messages).
Vd: Outlook, Eudora, Netscape
Messenger...

¤

¤
¤
¤

mail
server

user
agent

SMTP

Lưu trữ, xử lý thư.
Vd: Exchange, MDeamon…

SMTP

user
agent

mail
server


Protocols
¤

user
agent

SMTP

Mail servers
¤

n

user
agent

Simple Mail Transfer Protocol (SMTP).
Post Office Protocol (POP).
Internet Mail Access Protocol (IMAP).
HTTP.

user
agent

outgoing
message queue

user
agent


user mailbox
13

Chapter 2. The Application Layer

24/8-25/10/2009

Alice <>

Bob <>

1) Alice sử dụng UA soạn thư, đ/c gửi 4) Mail server của Alice gửi
thư qua liên kết TCP.
tới “to”:
2) Alice’s UA gửi thư đến mail server 5) Mail server của Bob cất thư
nhận được vào hòm thư của
của Alice, bức thư được xếp vào
Bob.
hàng đợi (message queue).
6) Bob dùng UA để lấy thư từ
3) Mail server của Alice mở liên kết
server về rồi đọc thư.
TCP tới mail server của Bob.

1
user
agent

Outlook


24/8-25/10/2009

2

mail
server

mail
server
3

4

uct2.edu.vn

5

yahoo.com

Chapter 2. The Application Layer

6

user
agent

Yahoo! Mail

14



SMTP (Simple Mail Transfer Protocol)
n

Sử dụng liên kết TCP (port 25) để gửi mails:
¤
¤

n

Ba pha (three ways handshake):
¤
¤
¤

n

Từ sender’s mail client tới sender’s mail server.
Từ sender’s mail server tới receiver’s mail server.
Bắt tay (handshaking/greeting).
Trao đổi messages.
Kết thúc.

Command/response:
¤
¤

commands: ASCII.
responses: status code & phrase.


24/8-25/10/2009

Chapter 2. The Application Layer

15

SMTP: sample interaction (C: client; S: server)
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:

220 yahoo.com
HELO uct2.edu.vn
250 Hello uct2.edu.vn, pleased to meet you
MAIL FROM: <>
250 Sender ok
RCPT TO: <>
250 ... Recipient ok

DATA
354 Enter mail, end with "." on a line by itself
Hi Bob!
Would you like to play tennis this evening?
.
250 Message accepted for delivery
QUIT
221 yahoo.com closing connection

24/8-25/10/2009

Chapter 2. The Application Layer

16


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ứa CRLF.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úc
message (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).

24/8-25/10/2009

17

Chapter 2. The Application Layer

Mail message format
SMTP: giao thức trao đổi email msg

(exchange msgs).
RFC 822: standard for text message
format:
n Header lines, vd:
¤
¤
¤

n

To:
From:
Subject:
Khác với smtp commands (MAIL FROM,
RCPT TO,…)!

header

blank
line

body

Body
¤
¤

The “message”.
ASCII


24/8-25/10/2009

Chapter 2. The Application Layer

18


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.
MIME version
method used
to encode data
multimedia data
type, subtype,
parameter declaration
encoded data

24/8-25/10/2009


From:
To:
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
Chapter 2. The Application Layer

19

MIME: Content types
Content-type: type/subtype; parameters

24/8-25/10/2009

Chapter 2. The Application Layer

20


MIME: Encoding types
Content-Transfer-Encoding: Encoding type

24/8-25/10/2009

Chapter 2. The Application Layer


21

MIME: Multiple objects mail message
From:
To:
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Dear Bob,
Please find a picture of a crepe.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--StartOfNextPart
24/8-25/10/2009

Chapter 2. The Application Layer

22


The received mail message
n


Server thêm vào dòng header mỗi khi nhận thư:
¤
¤

n

Received:
Return-path:

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
From:
To:
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .......
........................................
.......base64 encoded data

24/8-25/10/2009

Chapter 2. The Application Layer

23

Hiển thị full headers với Y! Mail


2.General Preference
1.Mail Options

3.Messages: Show all…

24/8-25/10/2009

Chapter 2. The Application Layer

24


Mail access protocol
SMTP

SMTP

access
protocol

user
agent
sender’s mail
server

n
n

user
agent


receiver’s mail
server

SMTP: giao thức gửi mail tới server.
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!...

24/8-25/10/2009

Chapter 2. The Application Layer

25

POP3 protocol
[1] Authorization phase
n

n

client commands:
¤ user: declare username
¤ pass: password
server responses

¤ +OK
¤ -ERR

[2] Transaction phase, client:
n
n
n

list: list message numbers
retr: retrieve message by number
dele: delete

[3] Update phase:
n

Quit

n

những thay đổi (dele) được cập nhật

24/8-25/10/2009

S:
C:
[1] S:
C:
S:
C:
S:

S:
S:
C:
[2]
S:
S:
C:
C:
S:
S:
C:
C:
[3] S:

+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged on
list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 1 contents>
.

dele 2
quit
+OK POP3 server signing off

Chapter 2. The Application Layer

26


POP3 (more) and IMAP
More about POP3
n

n

n

IMAP4

Chế độ “download and delete”
(xem vd trước):
¤

Msg bị xoá khi thoát.

¤

Không thể nhận msg lần nữa.

n


Lưu trữ toàn bộ msg tại
server.

n

Cho phép người dùng tổ chức
lư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):

“Download-and-keep”:
¤

Msg được giữ lại server.

¤

Có thể nhận msg nhiều lần từ
nhiều client.

Không lưu trạng thái giữa các
phiên làm việc (stateless).

24/8-25/10/2009


¤

Thư mục tự tạo.

¤

Các msgs đã di chuyển.

Chapter 2. The Application Layer

27

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.

24/8-25/10/2009

Chapter 2. The Application Layer

28


2.6. DNS (Domain Name System)
Mr Toan


HTTP (Internet Explorer)

www.uct2.edu.vn

From: N.V.Toan
To: Phòng ðT

Phòng ðT
=> D3

210.245.22.125

DNS client

Ms Phuong
n

n

www.uct2.edu.vn
=> 210.245.22.125

DNS servers

Địa chỉ IP (32 bit) được sử dụng để xác định một nút trong mạng
TCP/IP: 210.245.22.125 khó nhớ!
Sử dụng tên (host name) song song với IP address.
DNS (RFC 1034, RFC 1035, RFC 2136):
¤


Chuyển host name

IP address.
Chapter 2. The Application Layer

24/8-25/10/2009

29

DNS services

n
n

DNS không tương tác trực tiếp với users mà cung cấp
các dịch vụ cho các chương trình khác (HTTP, FTP…)
thuộc tầng ứng dụng:
Host name IP (hostname to IP resolve).
Host aliasing.
¤

n

Mail server aliasing.
¤

n

Một máy tính có tên chính thức và có thể có bí danh (alias).
@uct2.edu.vn


mail server address = ?

Load distribution (phân tán tải)
¤

Một dịch vụ web (cnn.com, yahoo.com…) có thể được cung cấp
tại nhiều server có IP khác nhau để phân tán tải do lượng người
sử dụng cao.

24/8-25/10/2009

Chapter 2. The Application Layer

30


Internet domain name space

vn

n

n

Domain name (tên miền):
¤
¤
¤
¤


Miền = tập hợp các nút mạng có cùng
một nút cha trong sơ đồ trên.
Vd:
uct2.edu.vn; yahoo.com; yale.edu.
Sub-domain: cs.yale.edu;

Host name: www.uct2.edu.vn;
mail.uct2.edu.vn
¤
¤
¤
¤
¤

vn: Vietnam.
edu: education.
uct2: University of Commnication &
Transport – unit 2.
www: máy chủ world wide web.
mail: máy chủ mail.
31

Chapter 2. The Application Layer

24/8-25/10/2009

Domain name servers
Root DNS Servers


com DNS servers
yahoo.com
DNS servers

amazon.com
DNS servers

org DNS servers
pbs.org
DNS servers

edu DNS servers
poly.edu
umass.edu
DNS servers DNS 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.
24/8-25/10/2009

Chapter 2. The Application Layer

32



DNS: Root name servers
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

k RIPE London (also Amsterdam,
Frankfurt)
i Autonomica, Stockholm (plus 3
other locations)

j Verisign, ( 11 locations)

m WIDE Tokyo

e NASA Mt View, CA
f Internet Software C. Palo Alto,

13 root name
servers
worldwide

CA (and 17 other locations)

b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA

n

n

Khi local name server không thể chuyển host name IP, gửi yêu cầu tới root srv.
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.

24/8-25/10/2009

33

Chapter 2. The Application Layer

TLD and Authoritative Servers
n

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.

Authoritative DNS servers:

¤

Mỗi host trong mạng muốn được biết đến phải được khai báo với
một authoritiative DNS server.

¤

DNS servers của các tổ chức ánh xạ hostname
của tổ chức đó (vd: web, mail…).

¤

Có thể được quản lý bởi các tổ chức hay nhà cung cấp dịch vụ.

24/8-25/10/2009

Chapter 2. The Application Layer

IP cho các hosts

34


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

24/8-25/10/2009

35

Chapter 2. The Application Layer

DNS example 1
Tình huống:
host surf.eurecom.fr cần đ/c
IP của gaia.cs.umass.edu
1. Liên lạc với local DNS
server: dns.eurecom.fr
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:
dns.umass.edu (nếu cần)

root name server

2

4
5

local name server
dns.eurecom.fr

1

Authorititive
name server
dns.umass.edu

6

requesting host
surf.eurecom.fr

24/8-25/10/2009

3


Chapter 2. The Application Layer

gaia.cs.umass.edu

36


DNS example 2
root name server

Root name server có thể:
n

n

Không biết authoritative
name server (ans).
Biết intermediate name
server (ins)
¤

Từ ins có thể tìm ra ans

6

2
3

7


local name server

intermediate name server
dns.umass.edu

dns.eurecom.fr

1

4

8

5

authoritative name server
dns.cs.umass.edu

requesting host
surf.eurecom.fr
gaia.cs.umass.edu
24/8-25/10/2009

37

Chapter 2. The Application Layer

DNS example 3
root name server


recursive query:
n

n

A hỏi B, B hỏi C, C hỏi
D,… rồi trả lời ngược lại.
Server được hỏi chịu tải
nặng gấp đôi?

n

n

DNS server được hỏi gợi
ý hỏi một server khác.
“I don’t know this name,
but ask this server”

24/8-25/10/2009

3
4
7
local name server
dns.eurecom.fr

iterative query:

iterated query


2

1

8

intermediate name server
dns.umass.edu

5

6

authoritative name server
dns.cs.umass.edu

requesting host
surf.eurecom.fr

Chapter 2. The Application Layer

gaia.cs.umass.edu
38


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.
¤

¤

n

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.

Cơ chế cập nhật/thông báo được đưa ra bởi IETF:
¤

RFC 2136

¤

/>
Chapter 2. The Application Layer

24/8-25/10/2009

39

DNS records
DNS: distributed db storing resource records (RR)
RR format: (name,
n


Type=A
¤
¤

n

name = hostname
value = IP address

Type=NS
¤
¤

n

value, type, ttl)

Type=CNAME
¤

name = “bí danh” (alias).
www.ibm.com

¤

value = tên thật.

servereast.backup2.ibm.com
name = domain name

value = IP address của n Type=MX
¤ name = domain name
authoritative name
server cho domain này
¤ value = tên của mail server

24/8-25/10/2009

Chapter 2. The Application Layer

40


DNS protocol, messages
DNS Protocol: Query/reply messages có cùng format.
n
n

n

Msg header (12 bytes)
Identification: số 16 bit reply
msg sử dụng cùng id với req
msg.
Flags: nhiều bit, mỗi bit có một
ý nghĩa:
¤
¤
¤
¤


Query (0) hay reply (1)
Authoritative DNS.
recursion desired: client mong
muốn DNS server tra cứu đệ quy.
recursion available: server hỗ trợ
tra cứu đệ quy.

24/8-25/10/2009

Chapter 2. The Application Layer

41

Chapter 2. The Application Layer

42

DNS messages

Name, type fields
for a query
RRs in reponse
to query
records for
authoritative servers
additional “helpful”
info that may be used

24/8-25/10/2009



Summary
Telnet!

√ √ √ √

RTSP?

Terminal Emulation

?
Web programming

TCP Socket Programming

24/8-25/10/2009

?

Chapter 2. The Application Layer

43

Bài tập tự làm và thảo luận
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)
Viết mail client đơn giản (không bắt buộc).

24/8-25/10/2009

Chapter 2. The Application Layer

44



×