6
Bài ging Kthut Mng nâng cao TS. Trn Quang Vinh Chương 3. Application Layer 3.1. Chức năng, nhiệm v3.2. Domain Name Server (DNS) ---------------------------------------------------------------------------------------------- 3.3. Electronic Mail 3.3.1. Gii thiu Cùng vi Web, e-mail là mt trong các dch vđược dùng nhiu nht trên Internet. Ging hthống thư giấy thông thường (snail mail), email hoạt động theo cơ chế bất đồng b(asynchronous), nghĩa là người dùng gi và nhn email bt ckhi nào mun mà không phi phi hp thi gian với người kia. Khác vi snail mail truyn thng là email nhanh, ddàng phân phi và r. Các hthng email ngày nay còn có khnăng tích hợp chyperlinks, HTML formatted text, hình nh, âm thanh và thm chí cvideo. Mt hthng Internet mail bao gm 4 thành phần cơ bản: Hình 1. Các thành phần cơ bản ca hthng Internet email. User agents: cho phép người đọc, trli, chuyn tiếp, lưu, và soạn tho các messages. User agents còn gi là mail readers, e.g., Outlook, elm, Mozilla Thunderbird, iPhone mail client. Mail servers: to thành lõi ca hthng email. Mi user có mt mailbox trên mail server để qun lý và duy trì các messages gửi đến nó. Mail server cũng có chức năng queue các messages chgửi đi. 1

Chuong 3.2 - Electronic Mail (SMTP)

Embed Size (px)

Citation preview

Page 1: Chuong 3.2 - Electronic Mail (SMTP)

Bài giảng Kỹ thuật Mạng nâng cao

TS. Trần Quang Vinh

Chương 3. Application Layer

3.1. Chức năng, nhiệm vụ

3.2. Domain Name Server (DNS)

----------------------------------------------------------------------------------------------

3.3. Electronic Mail

3.3.1. Giới thiệu

Cùng với Web, e-mail là một trong các dịch vụ được dùng nhiều nhất trên Internet. Giống hệ thống thư giấy thông thường (snail mail), email hoạt động theo cơ chế bất đồng bộ (asynchronous), nghĩa là người dùng gửi và nhận email bất cứ khi nào muốn mà không phải phối hợp thời gian với người kia.

Khác với snail mail truyền thống là email nhanh, dễ dàng phân phối và rẻ. Các hệ thống email ngày nay còn có khả năng tích hợp cả hyperlinks, HTML formatted text, hình ảnh, âm thanh và thậm chí cả video.

Một hệ thống Internet mail bao gồm 4 thành phần cơ bản:

Hình 1. Các thành phần cơ bản của hệ thống Internet email.

User agents: cho phép người đọc, trả lời, chuyển tiếp, lưu, và soạn thảo các messages. User agents còn gọi là mail readers, e.g., Outlook, elm, Mozilla Thunderbird, iPhone mail client.

Mail servers: tạo thành lõi của hệ thống email. Mỗi user có một mailbox trên mail server để quản lý và duy trì các messages gửi đến nó. Mail server cũng có chức năng queue các messages chờ gửi đi.

1

Page 2: Chuong 3.2 - Electronic Mail (SMTP)

SMTP: Giao thức lớp ứng dụng của ứng dụng email, SMTP hoạt động theo cơ chế client/server, sử dụng TCP để gửi messages từ mail server của người gửi (client) đến mail server của người nhận (server). Both the client and server sides of SMTP run on every mail server. When a mail server sends mail (to other mail servers), it acts as an SMTP client. When a mail server receives mail (from other mail servers) it acts as an SMTP server.

Mail access protocol (IMAP/POP3): Các giao thức truy nhập mail.

Ta tìm hiểu 2 thành phần chính là SMTP và IMAP/POP3.

3.3.2. SMTP (The Simple Mail Transfer Protocol) [RFC 281]

SMTP là giao thức chuyển mail đơn giản, sử dụng TCP để truyền email messages một cách tin cậy từ clien đến server, qua cổng 25.

Hoạt động từ server gửi mail (sending mail server) đến server nhận mail (receiving mail server), trực tiếp (direct transfer), không qua các mail server trung gian.

Quá trình truyền mail messages được thực hiện qua three phases:

- Handshaking (greeting): Thiết lập kết nối - transfer of messages: Truyền các messages - closure: Kết thúc

Tương tác giữa các lệnh và trả lời ở dạng mã ASCII. Các messages phải ở dạng ASCII 7-bit.

Ví dụ:

Kịch bản mô tả hoạt động cơ bản của SMTP: Alice gửi message cho Bob.

Hình 2: Minh họa quá trình chuyển mail.

(1) Alice sử dụng user agent cho email, cung cấp địa chỉ email của người nhận (Bob's email address), soạn thảo nội dung và yêu cầu user agent gửi thư đi.

2

Page 3: Chuong 3.2 - Electronic Mail (SMTP)

(2) User agent của Alice gửi các message đến mail server, message được đặt trong hàng đợi của mail server.

(3) SMTP client, chạy trên Alice's mail server, kiểm tra các message trong hàng đợi. Nó mở một kết nối TCP đến SMTP server trên Bob's mail server.

(4) Sau các thủ tục SMTP handshaking, SMTP client gửi message của Alice trên kết nối TCP này.

(5) Tại mail server của Bob, SMTP server nhận được message, chuyển các message nhận được vào mailbox của Bob (vẫn trên mail server).

(6) Bob có thể sử dụng user agent để đọc mail bất kỳ lúc nào.

Chú ý:

- SMTP không sử dụng các mail server trung gian để gửi mail. Nếu mail server của Bob down, the message remains in Alice's mail server and waits for a new attempt -- the message does not get placed in some intermediate mail server.

- Có thể sử dụng Telnet để gửi email. Trong windows console:

telnet serverName 25 // thiết lập kết nối TCP giữa local client và mail server

Sử dụng các lệnh của SMTP (HELO, MAIL FROM, RCPT TO, DATA, and QUIT) để gửi email (without using your mail user agent).

3.3.3. Định dạng Mail Message

RFC 822: cho phép trao đổi các message với các kí tự ASCII

MIME (Multipurpose Internet Mail Extensions): Mở rộng của RFC 822, hỗ trợ gửi các messages có chứa các nội dung đa phương tiện như ảnh hoặc video.

RFC 822: standard for text message format:

header lines, e.g., To: From: Subject:different from SMTP commands!

body the “message”, ASCII

characters only

header

body

blankline

3

Page 4: Chuong 3.2 - Electronic Mail (SMTP)

3.3.4. Các giao thức truy nhập mail (Mail Access Protocols)

Q: Vì sao mail message chỉ được chuyển đến mailbox trên mail server của người nhận mà không chuyển đến host của người nhận?

Mail message được chuyển bằng kết nối TCP, vì người nhận không phải lúc nào cũng online để chấp nhận kết nối TCP, nên giải pháp là chuyển mail đến mail server, mail server online 24/24 nên có thể nhận email đến bất cứ lúc nào.

Như vậy cần có thêm các giao thức để chuyển mail từ mailbox trên mail server về mail reader của người nhận (trên local PC). Các giao thức để thực hiện chức năng này gồm: POP3, IMAP, và HTTP. (sử dụng lại hình 1)

Hình 1. Các thành phần cơ bản của hệ thống Internet email.

POP3 (Post Office Protocol - Version 3) [RFC 1939]: giao thức truy cập mail đơn giản bằng cách thiết lập kết nối TCP trên cổng 110 từ local PC đến mail server. POP3 tiến hành 3 bước: authorization, transaction and update.

Bước 1. Nhận thực: user agent gửi USER<user name> và PASS<password> để nhận thực người dùng.

Bước 2. Giao dịch: người dùng có thể xem danh sách thư (LIST) lấy thư: RETR <mail_number>, đánh dấu xóa: DELE <mail_number>.

Bước 3. Cập nhật: Được thực hiện sau lệnh QUIT.

Ví dụ:

telnet mailServer 110 +OK POP3 server ready user alice +OK pass mymail +OK user successfully logged on

(If you misspell a command, the POP3 server will reply with an -ERR message)

4

Page 5: Chuong 3.2 - Electronic Mail (SMTP)

IMAP (Internet Mail Access Protocol) [RFC 1730]: hay là giao thức truy nhập mail (từ) Internet. Giao thức này cho phép truy nhập và quản lý các messages trên mail server. Với giao thức này người dùng email có thể đọc, tạo ra, thay đổi, hay xoá các messages, đồng thời có thể tìm kiếm các nội dung trong mailbox mà không cần phải tải các messages về.

Giao thức IMAP nguyên thuỷ được phát triển bởi đại học Standford năm 1986. Phiên bản mới nhất của IMAP là IMAP4 (1990) tương tự nhưng có nhiều chức năng hơn.

HTTP (Webmail): Ví dụ Hotmail, Yahoo! Mail, Gmail, … Người dùng sử dụng user agent (web browser) để giao tiếp với mailbox của mình trên mail server qua giao thức HTTP.

This solution to mail access is enormously convenient for the user on the go. The user need only to be able to access a browser in order to send and receive messages. The browser can be in an Internet cafe, in a friend's house, in a hotel room with a Web TV, etc.

3.3.5. SPAM

Hiện nay, có lẽ email là một trong những phần mềm phổ dụng nhất, và SPAM là vấn đề lớn nhất.

Theo thống kê của pingdom.com (số liệu năm 2009):

• 1.4 tỉ – Tổng số người dùng email toàn cầu. • 247 tỉ – Số email trung bình gửi đi mỗi ngày trong năm 2009. • 90 ngìn tỉ (trillion) – Tổng số emails được gửi đi năm 2009 • 81% – Tỉ lệ % email là SPAM 73 ngìn tỉ email là SPAM

Việc loại bỏ SPAM là cuộc chiến không ngừng giữa người gửi và người viết phần mềm loại bỏ SPAM.

Một số cách để loại bỏ SPAM:

- Cách thứ nhất là dùng kỹ thuật lọc bằng machine learning để học thư nào là thư tốt và thư nào là xấu, cách này có cái dở là những người gửi SPAM tìm mọi cách thay đổi cấu trúc của SPAM mails liên tục để lừa các công cụ lọc. Do đó, dù các phần mềm có tốt đến đâu cũng không thể loại hết các spam mails.

5

Page 6: Chuong 3.2 - Electronic Mail (SMTP)

Ví dụ: gần đây spammers dùng hình ảnh thay vì texts để tránh các loại bộ lọc từ khóa. Như vậy các spam filters sẽ phải dùng các kỹ thuật xử lý ảnh phức tạp và tốn tài nguyên, thay vì một dạng bayesian filter thô sơ.

- Cách thứ hai dùng Turing test để kiểm tra xem nguồn gửi thư là máy hay người (ví dụ: gửi lại người gửi thư một bức ảnh có các chữ đảo ngược, giống phương pháp Yahoo mails dùng để chống phần mềm tự động lấy accounts của họ, và chỉ cho thư qua khi người gửi đã vượt qua bài thử này. Cách này cũng có cái dở là sẽ rất phiền cho người gửi vì sẽ luôn phải xác nhận cho thư họ đã gửi đi. Ngòai ra, cũng có vấn đề với nhiều thư hữu ích mà lại do phần mềm tự động gửi đi.

- Cách thứ ba là đánh vào hầu bao của spammer (tăng chi phí gửi email). Hiện nay, chi phí gửi một thư spam chỉ khoảng 0.01 cent hay 0.00001 USD. Như vậy, nếu gửi 10,000 thư mà có một người mua sản phẩm qua spam mail thì thường đã rất lãi rồi. Để tăng chi phí cho người gửi spam, có thể áp dụng phương pháp là nếu đến tay người nhận thì người gửi phải mất tiền “tem” (postage).

- Cách khác là không đánh vào việc tốn tiền mà phải tốn thời gian chạy máy. Nếu một cái thư phải tiêu hao năng lượng máy tính nhiều hơn bây giờ thì sẽ gây khó khăn cho việc gửi hàng trăm ngàn thư rác từ một máy trong một ngày.

- Làm sao cho người ta không kiếm lời được từ spam emails nữa. Như thế thì phải giáo dục người dùng đừng click bậy click bạ. Chuyện này lịch sử cho thấy là không thể được trong thời gian trước mắt. Nói chung là users hoặc là rất tham, hoặc là rất ngốc, cho nên bọn nó vẫn kiếm lợi từ spam được.

- Còn một cách khác nữa mà khó khả thi hơn là đánh vào người đọc thư rác. Lý do là nếu không có ai đọc thư rác nữa thì nó sẽ tự mất đi.

- Có thể còn rất nhiều cách nữa, nhưng cách cuối cùng là: Không dùng emails nữa. Thật ra không phải là không có lý. Ta đã bỏ telnet, ftp, thì không có lý do gì lại không bỏ cái protocol SMTP rất là phiền toái và cổ lỗ sĩ này. Khổ ở chỗ, không dùng emails nữa thì dùng gì để liên lạc với nhau?

Tóm lại, nếu các bạn nghĩ ra một giao thức truyền thông người-đến-người tiện lợi và hiệu quả như emails, nhưng lại không hoặc ít bị spams, thì bạn nhiều khả năng sẽ thành Larry Page (ông chủ Google) mới.

6