Các thủ tục Opening và Closing

Một phần của tài liệu Mô hình truyền thông thư tín, các giao thức truyền thông chuẩn, các hoạt động của hệ Mail Server (Trang 32)

Khi một phiên giao dịch th− tín đ−ợc mở, cần phải cĩ sự trao đổi thơng tin giữa các máy chủ (host) để đảm bảo sự chính xác trong giao dịch. Cĩ hai lệnh để thực hiện việc đĩng/mở một phiên giao dịch.

a. HELO <domain>

• Tham số: tên domain của máy chủ thực hiện việc gửi th− (cĩ thể khơng cĩ). • Chi tiết: Lệnh này dùng để xác nhận domain máy chủ SMTP Sender. • Thơng tin phản hồi:

250 <domain>

Ví dụ:

R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready S: HELO USC-ISIF.ARPA

R: 250 BBN-UNIX.ARPA b. QUIT

• Tham số: khơng.

• Chi tiết: Lệnh này dùng để kết thúc phiên giao dịch SMTP. • Thơng tin phản hồi:

250 CRLF Ví dụ:

S: QUIT

R: 221 BBN-UNIX.ARPA Service closing transmission channel 1.5.7. Mã trả lời của các câu lệnh SMTP

Trong một phiên giao dịch SMTP, phía SMTP Sender gửi các lệnh yêu cầu cịn phía SMTP Receiver sẽ gửi trả các thơng tin phản hồi và các mã phản hồi.

Để đảm bảo tính thống nhất truyền thơng trong quá trình truyền th−, đồng thời để đảm bảo phía SMTP Sender luơn biết đ−ợc chính xác trạng thái của SMTP Receiver, mọi câu lệnh yêu cầu đều phải đ−ợc trả lời bằng các mã thơng tin phản hồi chính xác.

Bảng Mã thơng tin phản hồi của SMTP

Mã thơng tin phản hồi Thơng tin kèm theo

500 Syntax error or Command unregconized 501 Syntax error in parameters or arguments

503 Bad sequence of command

504 Command parameter not implement

211 System status or System help reply

214 Help message

220 Simple Mail Transfer Service ready 221 Service closing transmission channel

421 Service not available, closing transmission channel

250 OK

251 User not local; will forward to <forward-path> 450 Mailbox unavailable (not found or no access)

551 User not local; please try <forward-path> 452 Insufficent system storage

552 Request mail action aborted

553 Mailbox name not allow (mailbox syntax incorrect) 354 Start mail input, end with <CRLF>.<CRLF>

554 Transaction failed

Một mã thơng tin phản hồi là một số cĩ 3 chữ số và tiếp theo là một chuỗi văn bản mơ tả về mã đĩ. Bảng trên đây sẽ trình bày chi tiết các thơng tin phản hồi:

Truyền thơng giữa Sender-SMTP và Receiver-SMTP đ−ợc coi nh− một cuộc hội thoại, đ−ợc điều khiển bởi Sender-SMTP. Nh− vậy, Sender-SMTP đ−a ra một lệnh yêu cầu và Receiver- SMTP sẽ trả lại một mã thơng tin phản hồi. Sau khi Sender-SMTP đ−a ra lệnh yêu cầu, nĩ phải đợi thơng tin phản hồi từ Receiver-SMTP rồi mới đ−a ra lệnh tiếp theo.

Trong các mã thơng tin phản hồi, mã phản hồi quan trọng nhất là 220. Nĩ đặc tr−ng cho việc thực hiện thành cơng yêu cầu.

1.6. PHÂN TÍCH GIAO THệÙC POP3 (RFC 1081,1082)

1.6.1. Giới thiệu

Giao thức POP3 cho phép một máy trạm cĩ thể truy nhập để lấy th− trên máy chủ. Nĩ định nghĩa cách thức giao tiếp với POP3 Server bởi các lệnh chuẩn đ−ợc quy định trong RFC 1081 để lấy th− về.

1.6.2. Mơ hình hoạt động phiên giao dịch

Vào thời điểm bắt đầu, tiến trình phía Server bắt đầu dịch vụ POP3 bằng cách ”lắng nghe” trên cổng TCP 110. Thuật ngữ ”lắng nghe” ở đây đ−ợc hiểu theo nghĩa là tiến trình phía Server luơn luơn tiếp nhận các thơng tin đến ở cổng dịch vụ mà nĩ cung cấp - trong tr−ờng hợp này là cổng dịch vụ 110 - xử lý và gửi kết quả về cho tiến trình yêu cầu dịch vụ phía Client.

Khi một tiến trình phía Client muốn sử dụng dịch vụ, nĩ thiết lập một kết nối TCP tới máy chủ phía Server. Khi kết nối đ−ợc thiết lập, POP3 Server gửi một thơng báo chấp nhận và sau đĩ tiến trình phía Client và POP3 Server cĩ thể trao đổi các lệnh cũng nh− các thơng tin phản hồi cho đến khi kết nối bị hủy bỏ hoặc phiên giao dịch kết thúc. Các lệnh trong POP3 bao gồm từ khĩa, cĩ thể theo sau là một hoặc nhiều tham số. Tất cả các lệnh đều đ−ợc kết thúc bởi cặp ký tự CRLF. Từ khĩa và các tham số là các kí tự in đ−ợc trong bảng mãkí tự ASCII, giữa chúng đ−ợc phân cách bởi một kí tự dấu cách trống. Từ khĩa cĩ thể dài ba hoặc bốn kí tự, cịn các tham số cĩ thể dài tới bốn m−ơi kí tự.

Thơng tin phản hồi của POP3 bao gồm một thơng báo trạng thái và một từ khĩa cĩ thể theo sau một số thơng tin thêm. Tất cả các thơng tin phản hồi đều đ−ợc kết thúc bởi cặp ký tự CRLF.

Cĩ hai thơng báo trạng thái là: Xác định (”+OK”) để xác nhận thành cơng và phủ định (”-ERR”) để xác nhận trong tr−ờng hợp cĩ lỗi.

Các thơng tin phản hồi cho các lệnh thực tế là nhiều dịng. Trong những tr−ờng hợp này, sau khi gửi dịng đầu tiên của thơng tin phản hồi và một cặp CRLF, bất cứ một dịng thêm vào nào đ−ợc gửi thì đều phải kết thúc bằng cặp CRLF. Khi tất cả các thơng tin phản hồi đều đã đ−ợc gửi, một dịng cuối cùng đ−ợc gửi, bao gồm mã kết thúc (mã thập phân 046, ”.”) và một cặp CRLF.

Nếu cĩ một dịng nào trong thơng tin phản hồi đa dịng bắt đầu với một mã ký tự kết thúc (dấu chấm ”.”), thì dịng đĩ coi nh− ch−a đ−ợc xử lí xong đối với thơng tin phản hồi . Vì vậy, một thơng tin phản hồi đa dịng đ−ợc kết thúc bởi bộ năm octets là ”CRLF. CRLF”.

Một phiên giao dịch POP3 phải trải qua một số các trạng thái trong suốt thời gian tồn tại của phiên làm việc. Mỗi lần kết nối TCP đ−ợc mở và POP3 Server gửi thơng báo chấp nhận, phiên làm việc chuyển sang trang thái AUTHORIZATION. ở trạng thái này, Client phải tự định danh của mình cho POP3 Server.

Mỗi khi Client thực hiện xong việc định danh, Server nhận đ−ợc tài nguyên t−ơng ứng với hộp th− của Client, nĩ sẽ chuyển sang trạng thái TRANSACTION.

Trong trạng thái này, các yêu cầu của Client đ−ợc chuyển sang và đ−ợc thực hiện bên phía POP3 Server. Khi Client đ−a ra lệnh QUIT, phiên làm việc chuyển sang trạng thái UPDATE. Trong trạng thái này, POP3 Server giải phĩng mọi tài nguyên thu đ−ợc trong suốt trạng thái TRANSACTION và kết thúc. Đồng thời, kết nối TCP kết thúc.

Một POP3 Server cĩ thể cĩ một bộ xác định thời gian. Nếu sau một khoảng thời gian xác định tr−ớc mà phía Client khơng cĩ tác động gì thì POP3 Server cĩ thể tự động kết thúc phiên làm việc. Khoảng thời gian này ít nhất là khoảng 10 phút.

Nếu trong khoảng thời gian này cĩ bất kì một lệnh nào từ phía Client, bộ xác định thời gian sẽ đ−ợc khởi tạo lại. Khi hết thời gian hiệu lực, phiên làm việc khơng chuyển sang trạng thái UPDATE. Server sẽ đĩng kết nối TCP mà khơng chuyển bất kì một th− nào cũng nh− các thơng tin phản hồi nào về phía Client.

Nh− vậy, ta thấy một phiên làm việc của POP3 phải trải qua ba trạng thái: trạng thái AUTHORIZATION, trạng thái TRANSACTION và trạng thái UPDATE.

Phần tiếp theo sẽ trình bày chi tiết về sự hoạt động của POP3 Server trong từng trạng thái của phiên giao dịch và các lệnh cĩ thể thực hiện trong mỗi trạng thái đĩ.

1.6.3. Trạng thái AUTHORIZATION

Khi một phiên giao dịch POP3 đ−ợc kích hoạt bởi một POP3 Client, POP3 Server sẽ gửi một thơng báo cho phía Client. T−ơng tự nh− phần trình bày về giao thức SMTP, ta cũng sử dụng Telnet để kích hoạt dịch vụ này. Một ví dụ cĩ thể là:

S: +OK dewey POP3 server ready

Chú ý rằng, đây là thơng tin phản hồi từ phía POP3 Server. Dấu ”+” cĩ nghĩa là thành cơng, ng−ợc lại, dấu ”-” là khơng thành cơng bị lỗi. Phiên làm việc POP3 hiện tại đang ở trạng thái AUTHORIZATION. Phía Client bây giờ cần phải đ−a vào các lệnh để xác định ng−ời nhận th− cho POP3 Server. Để thực hiện việc này, phía Client sử dụng hai lệnh là USER và PASS. Đầu tiên, Client sử dụng lệnh USER với tham số là account của ng−ời nhận.

Nếu thơng tin phản hồi từ phía POP3 Server bắt đầu bằng dấu ”+” (+OK) thì phía Client cĩ thể gửi tiếp lệnh PASS với tham số là mật khẩu của ng−ời nhận để kết thúc việc định danh hoặc cũng cĩ thể gửi lệnh QUIT để kết thúc phiên giao dịch.

Trong tr−ờng hợp ng−ợc lại, nếu thơng tin phản hồi bắt đầu bằng dấu ”-” (-ERR) cho lệnh USER thì phía Client cĩ thể thực hiện lại việc định danh hoặc kết thúc phiên giao dịch bằng lệnh QUIT.

Khi phía Client đ−a vào lệnh PASS, POP3 Server sẽ sử dụng kết hợp hai đối số đ−a vào bởi hai lệnh USER và PASS để xác định xem ng−ời sử dụng này cĩ tồn tại hay khơng, cĩ đ−ợc quyền truy nhập vào mailbox hay khơng,.v.v

Sau khi đã xác định phía Client đ−ợc quyền truy nhập, POP3 Server sẽ thực hiện việc khố mailbox để chống lại việc sửa đổi hoặc xố th− trong mailbox từ các phiên POP3 khác, tr−ớc khi chuyển sang trạng thái UPDATE.

Nếu nh− việc khố mailbox thành cơng, phiên giao dịch POP3 sẽ chuyển sang trạng thái TRANSACTION. Vào thời điểm này, ch−a cĩ một th− nào bị đánh dấu xố.

Trong tr−ờng hợp ng−ợc lại, nếu nh− vì một lý do nào đĩ khơng thể khố đ−ợc mailbox (ví dụ nh− khơng đ−ợc quyền truy nhập hoặc mailbox đã bị khố,.v.v) thì POP3 Server sẽ gửi một thơng tin phản hồi ”-ERR” và kết thúc luơn phiên giao dịch.

Sau khi POP3 Server đã mở đ−ợc mailbox, nĩ sẽ gắn chỉ số cho mỗi một bức th− và tính luơn kích th−ớc từng bức th−. Chỉ số đ−ợc bắt đầu từ 1. Trong các lệnh của POP3 và các thơng tin phản hồi, tất cả các chỉ số và kích th−ớc th− đều ở dạng cơ số 10.

Sau đây là một số lệnh cĩ thể thực hiện trong trạng thái AUTHORIZATION: a. Lệnh USER [name]

• Tham số: là một xâu ký tự định danh của mailbox, duy nhất đối với Server. • Hạn chế: Chỉ cĩ thể thực hiện trong trạng thái AUTHORIZATION vào thời

điểm ban đầu hoặc sau khi việc định danh USER và PASS khơng thành cơng. • Chi tiết: Lệnh này dùng để định danh ng−ời sử dụng.

• Thơng tin phản hồi:

+OK name is welcome here -ERR Never heard of name

Ví dụ:

C: USER mrose

S: +OK mrose is a real hoopy frood ...

C: USER frated

S: -ERR sorry, frated doesn't get his mail here b. Lệnh PASS [string]

• Tham số: là một xâu ký tự định danh của mật khẩu t−ơng ứng với mailbox. • Hạn chế: Chỉ cĩ thể thực hiện trong trạng thái AUTHORIZATION vào thời

điểm ban đầu hoặc sau khi việc định danh USER thành cơng.

• Chi tiết: Lệnh này dùng để xác định mật khẩu t−ơng ứng với ng−ời sử dụng đã định danh bằng lệnh USER.

• Thơng tin phản hồi:

+OK maildrop locked and ready -ERR invalid password

-ERR unable to lock maildrop

Ví dụ:

C: USER mrose

C: PASS secret

S: +OK mrose’s maildrop has 2 messages (320 octets)

...

C: USER mrose

S: +OK mrose is a real hoopy frood C: PASS secret

S: -ERR unable to lock mrose’s maildrop, file already locked

c. Lệnh QUIT

• Tham số: khơng. • Hạn chế: khơng

• Chi tiết: Lệnh này dùng để kết thúc phiên giao dịch. • Thơng tin phản hồi:

+OK

Ví dụ:

C: QUIT

S: +OK dewey POP3 server signing off 1.6.4. Trạng thái TRANSACTION

Mỗi lần phía Client thực hiện thành cơng việc định danh với POP3 Server, mailbox t−ơng ứng sẽ đ−ợc khố và phiên làm việc bây giờ sẽ ở trạng thái TRANSACTION.

Phía Client cĩ thể sử dụng bất cứ một lệnh POP3 nào để thực hiện giao dịch với POP3 Server. Các lệnh này cĩ thể lặp lại mà khơng bị hạn chế gì cả. Sau mỗi lệnh, phía POP3 Server sẽ gửi trả một thơng tin phản hồi và kết quả thực hiện.

Cuối cùng, phía Client thực hiện lệnh QUIT để chuyển phiên giao dịch sang trạng thái UPDATE.

Sau đây là một số lệnh cĩ thể thực hiện trong trạng thái TRANSACTION: a. Lệnh STAT

• Tham số: khơng.

• Hạn chế: Chỉ cĩ thể thực hiện trong trạng thái TRANSACTION.

• Chi tiết: Lệnh này dùng để lấy thơng tin về số th− trong mailbox và kích th−ớc của mailbox t−ơng ứng với ng−ời sử dụng. Cấu trúc của dịng thơng tin phản hồi này là: “+OK”, tiếp theo là một dấu cách trống, số l−ợng th− trong mailbox và kích th−ớc của mailbox t−ơng ứng với ng−ời dùng đã xác định.

• Thơng tin phản hồi: +OK nn mm

Ví dụ:

C: STAT S: +OK 2 320

b. Lệnh LIST [msg]

• Tham số: (cĩ thể cĩ hoặc khơng) là một số hiệu của th− trong số những th− hiện cĩ trong mailbox của ng−ời dùng. L−u ý, những th− bị đánh dấu xố sẽ bị bỏ qua.

• Hạn chế: Chỉ cĩ thể thực hiện trong trạng thái TRANSACTION.

• Chi tiết: Lệnh này dùng để liệt kê danh sách các th− cĩ trong mailbox và kích th−ớc t−ơng ứng hoặc lấy thơng tin về một th− cụ thể nào đĩ. Trong tr−ờng hợp khơng đ−a vào tham số thì POP3 Server sẽ trả lại “+OK” và một danh sách các th− và số hiệu t−ơng ứng trong mailbox của ng−ời dùng. Trong tr−ờng hợp ng−ợc lại, cĩ tham số, nếu tham số nằm trong khoảng cho phép từ 1 đến số th− thì POP3 Server sẽ trả lại “+OK” và số hiệu của th− và kích th−ớc t−ơng ứng. Ng−ợc lại, POP3 Server sẽ trả lại “-ERR”.

• Thơng tin phản hồi:

+OK scan listing follows -ERR no such message

Ví dụ:

C: LIST

S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . ... C: LIST 2 S: +OK 2 200 ... C: LIST 3

S: -ERR no such message, only 2 messages in maildrop c. Lệnh RETR [msg]

• Tham số: Số hiệu của th− cần lấy.

• Hạn chế: Chỉ cĩ thể thực hiện trong trạng thái TRANSACTION.

• Chi tiết: Lệnh này dùng để hiện thị nội dung th− t−ơng ứng với số hiệu đ−a vào. Nếu thực hiện đ−ợc POP3 Server sẽ gửi trả một thơng tin phản hồi đa dịng, bắt đầu bằng ”+OK”, tiếp theo là các dịng chứa đựng thơng tin về nội dung th− cũng nh− tiêu đề của th− đ−ợc chọn. Trong tr−ờng hợp cĩ lỗi, POP3 Server sẽ gửi trả ”-ERR”

• Thơng tin phản hồi: +OK message follows -ERR no such message

Ví dụ:

C: RETR 1 S: +OK 120 octets

S: <the POP3 server sends the entire message here> S: .

d. Lệnh DELE [msg]

• Hạn chế: chỉ cĩ thể thực hiện trong trạng thái TRANSACTION.

• Chi tiết: lệnh này dùng để xố một th− t−ơng ứng với số hiệu đ−a vào. Nếu thực hiện đ−ợc, POP3 Server sẽ gửi trả một thơng tin phản hồi bắt đầu bằng ”+OK”, tiếp theo là thơng tin về th− đã bị xĩa. Trong tr−ờng hợp cĩ lỗi, POP3 Server sẽ gửi trả ”-ERR”. L−u ý, POP3 Server chỉ thực hiện việc đánh dấu xố trên bức th− đĩ. Nĩ chỉ bị xố thực sự sau khi phiên giao dịch chuyển sang trạng thái UPDATE.

• Thơng tin phản hồi: +OK message deleted -ERR no such message

Ví dụ:

C: DELE 1

S: +OK message 1 deleted ...

C: DELE 2

S: -ERR message 2 already deleted

e. Lệnh NOOP • Tham số: khơng.

• Hạn chế: chỉ cĩ thể thực hiện trong trạng thái TRANSACTION.

• Chi tiết: lệnh này dùng để xác nhận kết nối với POP3 Server. POP3 Server khơng làm gì cả mà chỉ gửi trả lại ”+OK” cho Client.

• Thơng tin phản hồi: +OK Ví dụ: C: NOOP S: +OK f. Lệnh LAST • Tham số: khơng.

• Hạn chế: chỉ đ−ợc thực hiện trong trạng thái TRANSACTION.

• Chi tiết: POP3 server đặt một trả lời xác định với dịng chứa số thơng điệp cao nhất hiện tại mà nĩ đ−ợc truy cập trong maildrop. Trong tr−ờng hợp cịn đang ở trong trạng thái TRANSACTION mà các th− đã bị đánh dấu xĩa ch−a cĩ lệnh RSET thì số th− hiện cĩ trong maildrop vẫn khơng thay đổi tính luơn cả các th− đã đ−ợc đánh dấu xố.

• Thơng tin phản hồi: +OK nn Ví dụ: C: STAT S: +OK 4 320 C: LAST S: +OK 1 C: RETR 3

S: +OK 120 octets

S: <the POP3 server sends the entire message here> S: .

C: LAST S: +OK 3 C: DELE 2

S: +OK message 2 deleted C: LAST S: +OK 3 C: RSET S: +OK C: LAST S: +OK 1 g. Lệnh RSET • Tham số: khơng.

• Hạn chế: chỉ cĩ thể thực hiện trong trạng thái TRANSACTION.

• Chi tiết: lệnh này dùng để khơi phục lại những th− đã bị đánh dấu xĩa. Nếu

Một phần của tài liệu Mô hình truyền thông thư tín, các giao thức truyền thông chuẩn, các hoạt động của hệ Mail Server (Trang 32)

Tải bản đầy đủ (PDF)

(91 trang)