26
Các ng dng mng Ths. Văn Thiên Hoàng

Bai 2 Cac Ung Dung Client-server

  • Upload
    vthoang

  • View
    117

  • Download
    4

Embed Size (px)

DESCRIPTION

network programming

Citation preview

Page 1: Bai 2 Cac Ung Dung Client-server

Các

ứng

dụng

mạng

Ths. Văn Thiên Hoàng

Page 2: Bai 2 Cac Ung Dung Client-server

2

Nội dung

Tổng quan tầng ứng dụngỨng dụng tầng mạngMô hình client-serverVí dụ

Page 3: Bai 2 Cac Ung Dung Client-server

3

Kiến

trúc

hình

Internet

Hạ

tầng

mạng

Người

dùng

cuối

IP

Ethernet Cable/DSLWireless

TCP UDP

TelnetEmail FTPWWWSSL

Page 4: Bai 2 Cac Ung Dung Client-server

4

Tầng

ứng

dụngCác khía cạnh về khái niệm và cài đặt củacác giao thức tầng ứng dụng. Mô hình client-serverBiết một số giao thức thông dụng của tầngmạng.

smtp/pop3 httpftpdns

Page 5: Bai 2 Cac Ung Dung Client-server

5

Ứng

dụng

mạng

giao

thức tầng

mạngCác

ứng

dụng

mạng

Các chương trình chạy ởtrên host cung cấp giao diệncho người dùng.

web: browser–

audio/video: media player

Sử dụng giao thức của tầngứng dụng để giao tiếp. Ví dụ: email, Web

Các

giao

thức tầng

ứng

dụngMẫu thông tin Định nghĩa cách thức giaotiếp giữa các ứng dụng.Thực hiện được dịch vụ vớicác yêu cầu trong giao thứcbằng cách sử dụng các dịchvụ của tầng thấp hơn.

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

Page 6: Bai 2 Cac Ung Dung Client-server

6

Sử

dụng

các

dịch

vụ

tầng

mạng, vận chuyển như

thế

nào?

Cung

cấp một giao diện lập

trình

-

APIĐịnh nghĩa giao diện giữa tầng ứng dụng và tầng mạng. Ví dụ: Socket API

Còn gọi là "Berkeley sockets“.Một socket bao gồm địa chỉ IP và số hiệu cổng

dụ: email (SMTP) cổng

25, web (HTTP) cổng

80Một ứng dụng sẽ gắn với một socket

%netstat

–aHai chương trình giao tiếp với nhau bằng cách gởi dữ liệu tớisocket, và đọc dữ liệu ra từ nó.

Một số API khác như XTI (X/Open Transport Interface), (TLI) được phát triển bởi AT&T.

Chi tiết trình bày bài sau!

Page 7: Bai 2 Cac Ung Dung Client-server

7

Ứng

dụng

Giao

thức

Ứng

dụng

e-mailremote terminal access

Web file transfer

Internet telephony

remote file serverstreaming multimedia

Giao

thứctầng

ứng

dụng

smtp

[RFC 821]telnet [RFC 854]http [RFC 2068]ftp [RFC 959]proprietary

(ví

dụ, Vocaltec)NFS

proprietary

Giao

thức tầng

vận chuyển bên dưới

TCP/SSLTCPTCP/SSLTCPUDP

TCP hoặc UDPUDP

Một ứng dụng cần chọn giao thức vận chuyểnphù hợp

Page 8: Bai 2 Cac Ung Dung Client-server

8

hình

Client-ServerCó

2 loại

ứng

dụng

mạng: client

and serverapplicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

Client (C):Thiết lập kết nối với server (“nói trước”)Yêu cầu dịch vụ của serverVí dụ Web, client là trình duyệtweb, e-mail, là mail reader (MS Outlook)

Server (S):Cung cấp các dịch vụ được yêucầu cho clientVí dụ, Web server gởi trangWeb được yêu cầu; mail server đáp trả e-mail

request

reply

Câu

hỏi

đặt ra cho ứng

dung C-S. - Làm thế

nào

client định

vị được

Server?

-

Ứng

dụng

mạnh, mở

rộng

được

không?

Page 9: Bai 2 Cac Ung Dung Client-server

9

E-Mail

Gồm 3 thành phần:User agents Mail servers Các giao thức

Gởi mail giữa các mail server

SMTPLấy mail giữa mail server and user agent

POP3: Post Office Protocol [RFC 1939]

IMAP: Internet Mail Access Protocol [RFC 1730]

user mailbox

Hàng

đợi thông

điệp yêu cầu

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

POP3 hoặcIMAP

Page 10: Bai 2 Cac Ung Dung Client-server

10

Giao

thức gởi mail - SMTP

S: 220 mr1.its.yale.edu C: HELO cyndra.yale.eduS: 250 Hello cyndra.cs.yale.edu, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATAS: 354 Enter mail, end with "." on a line by itself C: Date: Wed, 23 Jan 2008 11:20:27 -0500 (EST)C: From: "Y. R. Yang" <[email protected]>C: To: "Y. R. Yang" <[email protected]>C: Subject: This is subjectC:C: This is the message body! C: Please don’t spoof! C:C: . S: 250 Message accepted for delivery C: QUITS: 221 mr1.its.yale.edu closing connection

Bài

tập về

nhà

: - Tìm hiểu

RFC 822

?

- Tìm hiểu

RFC 2045, 2056

?%telnet mr1.its.yale.edu 25

Page 11: Bai 2 Cac Ung Dung Client-server

11

Giao

thức truy cập mail - POP3

Giai

đoạn chứng

thựcCác lệnh client:

userpass

Đáp trả của server+OK

-ERR

Giai

đoạn giao dịch, client:list: xem ds thông điệpretr: lấy nội dung thôngđiệpdele: xóa thông điệpquit: đóng kết nối

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

S: +OK POP3 server ready C: user aliceS: +OK C: pass hungry S: +OK user successfully logged on

telnet mail.hcmhutech.edu.vn 110

Page 12: Bai 2 Cac Ung Dung Client-server

12

Bài

tập

Tìm hiểu về Spam. Các cơ chế lọc spam và ứng dụng lọc spam hiện nay.

Page 13: Bai 2 Cac Ung Dung Client-server

13

Web

Trang web:Gồm các đối tượng. Chỉ định bởi URLDựa vào trang HTMLVà một số tham chiếuđối tượng.

URL có hai thành phần: tên miền, số hiệu cổngvà đường dẫn

User agent cho web làtrình duyệt web (browser), e.g.

Mozilla FirefoxMS Internet Explorer

Server cho web gọi làWeb server:

ApacheMS Internet Information Server

http://it.hutech.edu.vn:80/index.php

Page 14: Bai 2 Cac Ung Dung Client-server

14

Giao

thức

Web-HTTP

HTTP: hypertext transfer protocolHTTP sử dụng TCP là dịchvụ vận chuyển.Mô hình client/server

client: trình duyệt web trình bày các đối tượngWeb.server: Web server gởicác đối tượng web choclient.

http1.0: RFC 1945http1.1: RFC 2068

PC chạyExplorer

Server Chạy máy chủ

WebApache

Linux chạyNavigator

http request

http request

http response

http response

Page 15: Bai 2 Cac Ung Dung Client-server

15

Luồng

xử

thông

điệp

HTTP 1.0

Client thiết lập kết nối TCP (tạo ra socket) tớiserver, cổng 80Server đợi các yêu cầu từ clientClient gởi yều tài liệuWeb server gởi trả lại tài liệu tương ứngĐóng kết nối TCP

Client phân tích tài liệu và nhúng các đối tượng vào(images)

Lặp lại cho các đối tượng khác.

Page 16: Bai 2 Cac Ung Dung Client-server

16

Luồng

xử

thông

điệp

HTTP 1.0

Giả

sử

user nhập URL it.hutech.edu.vn/index.php

1a.

http client thiết lập kết nối TCP tới

http server tại

it.hutech.edu.vn. Cổng

80 là cổng

mặt

định

cho

http server.

2.

http client gởi

http thông điệp yêu cầu (chứa URL) vào cổng

kết nối TCP Socket

1b.

Server

chấp nhận kết nối và gởi

ack.

cho

client

3.

http server nhận thông điệp yêu

cầu, tạo ra thông điệp

đáp

trả

chứa

thông

tin yêu

cầu (index.html), và

gởi

vào

socket.

time

0.

http server tại máy chủ it.hutech.edu.vn

đang

đợi kết

nối TCP tại cổng

80.

Page 17: Bai 2 Cac Ung Dung Client-server

17

Luồng

xử

thông

điệp

HTTP 1.0

5.

http client nhận thông điệp chứa tập

tin html, phân

tích

tập

tin này

nhúng

các

ảnh vào.

6.

Các

bước 1-5 lặp cho mỗi

ảnh.

4.

http server đóng

kết nối TCP.

time

Page 18: Bai 2 Cac Ung Dung Client-server

18

Khuôn

dạng

tổng

quát

của thông điệp yêu

cầu

HTTP

ASCII (khuôn dạng có thể đọc được)

Page 19: Bai 2 Cac Ung Dung Client-server

19

dụ

thông

điệp yêu cầu: GET

GET /somedir/page.html HTTP/1.0 Host: www.somechool.edu Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg Accept-language: fr

(extra carriage return, line feed)

Dòng

yêu

cầu(các

lệnh

GET,

POST, HEAD)

Các

dòng thông

tin

headerCác

thông

tin

dữ

liệu nếu có

Page 20: Bai 2 Cac Ung Dung Client-server

20

Thông

điệp

đáp

trả

HTTP

HTTP/1.0 200 OK Date: Wed, 23 Jan 2008 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html

data data data data data ...

Dòng

trạng

thái(giao

thức

trạng

tháiTrạng

thái)

Các

dòng

thông

tin header

Dữ

liệu, ví

dụ, Tập tin

Html được yêu cầu

Page 21: Bai 2 Cac Ung Dung Client-server

21

Các

trạng

thái

HTTP

2xx OKThành công

301 Moved PermanentlyTài nguyên yêu cầu được chuyển sang vị trí mới

400 Bad RequestYêu cầu sai

404 Not FoundTài liệu không tìm thấy ở server

505 HTTP Version Not Supported502 Dịch

vụ

quá

tải

Dòng

đầu

tiên

server->client, một vài mã ví dụ

Page 22: Bai 2 Cac Ung Dung Client-server

22

Kiểm

tra

HTTP

1. Telnet tới một Web server:

Mở

kết nối TCP tới cổng

80Mặt

định

cổng

80

telnet it.hutech.edu.vn 80

2. Gõ

yêu

cầu

http GET:GET /index.php HTTP/1.0 Đây

một phương

thức

để

gởi yêu cầu thông điệp dạng GET HTTP tới Server.

3. Quan

sát

kết quả

trả

lại từ

http server!

Page 23: Bai 2 Cac Ung Dung Client-server

23

FTP: File Transfer Protocol

Vận chuyển các tập tin tới các hostMô hình Client/server

client: phía thiết lập việc vận chuyển tập tin. server: host ở xa.

ftp: RFC 959ftp server: port 21 (smtp 25, http 80)

file transfer FTPserver

FTPuser

interface

FTPclient

local filesystem

remote filesystem

user at host

Page 24: Bai 2 Cac Ung Dung Client-server

24

FTP: Ứng

dụng

Client-Server sử

dụng

tách biệt kết nối

điều khiển và kết nối dữ

liệu

ftp client gởi các lệnh tới ftp server tại cổng 21Mở hai kết nối song song

Điều khiển: trao đổi cáclệnh, và các đáp trả giữaclient và server.Dữ liệu: dữ liệu là tập tin tới/từ server

ftp server duy trì trạng tháikết nối, ví dụ,

Thư mục hiện hành, Chứng thực trước đó

FTPclient

FTPserver

Kết nối TCP, cổng

21 cho

việc

điều khiển

Kết nối TCP cổng

20 cho

vận chuyển dữ

liệu

Page 25: Bai 2 Cac Ung Dung Client-server

25

Các

lệnh

thông

điệp

đáp

trả

FTP

Các

lệnh

mẫu:Lệnh và thông điệp ở dạng vănbản mã ASCIIUSER usernamePASS passwordHELP liệt kê các lệnhLIST trả lại danh sách tậptin trong thư mục hiện hành. RETR filename lấy tập tin có tên filename

Sample return codesMã trạng thái và thông tin trạng thái (giống http)331 Username OK, password required125 data connection already open; transfer starting425 Can’t open data connection452 Error writing file

Thảo luận: Tại sao sử

dụng

khai

kênh

kết nối tách biệt dữ

liệu và điều khiển?

Page 26: Bai 2 Cac Ung Dung Client-server

Bài

tập

Tìm hiểu FirewallTìm hiểu Proxy ServerTìm hiểu các phần mềm nguồn mở viết bằngjava liên quan đến Firewall và Proxy Server trên mạng, cụ thể website sourceforge.netViết báo cáo về chương trình (Lấy điểm, miễnthi)