Tải bản đầy đủ (.docx) (19 trang)

Mạng máy tính Đề tài : Tìm hiểu về giao thức IMAP

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 (189.31 KB, 19 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
----------o0o----------

Bài tập lớn: Mạng máy tính
Đề tài : Tìm hiểu về giao thức IMAP
Giảng viên hướng dẫn :

TS. Ngô Quỳnh Thu

Sinh viên thực hiện

:

Nguyễn Duy Thành

:

Truyền thông Mạng - K53

Lớp

Hà Nội – tháng 11/2011

20082383


Mục lục
I.Lịch sử phát triển của giao thức IMAP
II.Mục đích sử dụng, phạm vi ứng dụng, bản chất của giao thức IMAP
1.Mục đích sử dụng


2.Phạm vi ứng dụng
3.Bản chất của giao thức IMAP
III.Mô tả nguyên lý hoạt động của giao thức IMAP
1.Mức độ liên kết
2.Các lệnh và phản hồi
3.Trạng thái và sơ đồ lưu lượng
4.Định dạng dữ liệu
5.Các lệnh của khách hàng
6.Máy chủ trả lời
IV.Phân tích các ưu, nhược điểm của giao thức IMAP
1.Ưu điểm
2.Nhược điểm
V.Kết luận và xu hướng phát triển


I. Lịch sử phát triển của giao thức IMAP
IMAP được thiết kế bởi Mark Crispin vào năm 1986 như là một giao thức hộp thư
từ xa, trái ngược với POP được sử dụng rộng rãi, một giao thức cho truy xuất các
nội dung của một hộp thư
IMAP trước đây được gọi là Interner Mail Access Protocol, Interactive Mail
Access Protocol (RFC 1064), and Interim Mail Access Protocol
IMAP gốc:
Interim Mail Access Protocol gốc được thực hiện như một máy khách Xerox Lisp
và một máy chủ TOPS-20
Không tồn tại bản sao về các đặc điểm kỹ thuật hoặc phần mềm của giao thức tam
thời gốc. Mặc dù một số lệnh và phản ứng tương tự IMAP2, giao thức tạm thời
không có lệnh/ phản ứng gắn thẻ, và vì thế cú pháp của nó không tương thích với
với tất cả các phiên bản khác của IMAP.F
IMAP2:
Giao thức tạm thời được thay thế nhanh chóng bởi Interactive Mail Access

Protocol ( IMAP2), được định nghĩa trong RFC 1064 (năm 1988) và sau đó câp
nhật bởi RFC 1176 ( năm 1990). IMAP2 giới thiệu lệnh/ phản ứng gắn thẻ và là
phiên bản đầu tiên công khai phân phối
IMAP3:
IMAP3 là một biến thể đã tuyệt chủng và cực kỳ hiếm có của IMAP. Nó được xuất
bản trong RFC 1203 năm 1991.Nó được viết cụ thể như một đề nghị truy cập RFC
1176, mà bản thân nó được đề xuất sửa đổi cho IMAP2. IMAP3 đã không bao giờ
được thị trường chấp nhận. Vào năm 1993, IESG đã phân loại RFC 1203 “
Interactive Mail Access Protocol – Version 3” như một giao thức lịch sử. Các nhóm
công tác sử dụng RFC 1176 (IMAP2) chứ không phải là RFC 1203 (IMAP3) như
là điểm khởi đầu của IMAP
IMAP2bis:
Với sự ra đời của MIME, IMAP2 đã được mở rộng để hỗ trợ các cấu trúc khung
của MIME và thêm chức năng quản lý hộp thư ( tạo, xóa, đổi tên, tải tin nhắn lên)


chưa có trong IMAP2. Phiên bản thử nghiệm này được gọi là IMAP2bis ; đặc điểm
kỹ thuật của nó là không bao giờ được xuất bản ở dạng không dự thảo. Trong tháng
10 năm 1993, một dự thảo internet của IMAP2bis đã được xuất bản bởi nhóm làm
việc IETF IMAP. Dự thảo này được dựa trên các thông số kỹ thuật sau đây: tài liệu
IMAP2bis.TXT chưa được công bố, RFC 1176, RFC 1064 (IMAP2). Tài liệu dự
thảo IMAP2bis.TXT được dùng để mở rộng trạng thái IMAP2 như của tháng 12
năm 1992. Với sự hỗ trợ của IMAP2bis, những phiên bản đầu của Pine đã được
phân phối rộng rãi ( Pine 4.00 và sau đó là hỗ trợ IMAP4rev1)
IMAP4:
Một nhóm công tác IMAP được hình thành trong IETF đầu những năm 1990 đã
được giao trách nhiệm cho việc thiết kế IMAP2bis. Nhóm công tác IMAP đã quyết
định đổi tên IMAP2bis thành IMAP4 để tránh nhầm lẫn với một đề nghị về IMAP3
từ một nhóm cạnh tranh khác. Việc dịch các chữ viết tắt trong IMAP cũng được
thay đổi thành Internet Mail Access Protocol

Ta có thể tóm tắt lộ trình của IMAP qua các mốc thời gian sau:
-1986, IMAP được chấp nhận ở đại học Stanford
-1987, IMAP2 được định nghĩa, cập nhật client và server. Được hiện thực trên
server Unix
-1988, tài liệu chính thức của IMAP được xuất hiện trên Net vào tháng Bảy
-1989, Mark Crispin, tác giả đầu tiên của IMAP, được đại học Washington thu
nhận
-1990, bản sửa đổi bổ sung của tài liệu chính thức của IMAP2 được xuất bản vào
tháng Tám
-1991, bổ sung hỗ trợ cho Multipurpose Internet Mail Extentions. Cho phép truyền
file không phải ASCII trên Internet, bổ sung này tạo nền tảng cho IMAP2 beta
-1992, đại học Washington triển khai server của IMAP2 beta
-1993, nhóm thực hiện IMAP của tổ chức chuyên trách về công nghệ Internet IETF
được thành lập. IMAP được hiện thực trên hệ điều hành VMS server của Digital
dành cho máy tính lớn


-1994, tài liệu chính thức của IMAP4 được xuất bản
-1995, đại học Carnegie Mellon đưa ra server IMAP4 đầu tiên
-1996, đại học Washington chủ trì hai cuộc họp đầu tiên về IMAP. Sun, Netscape
và những nhà sản xuất khác tuyên bố hỗ trợ IMAP4
-1997, đặc tả cho IMAP4.1 tiếp tục được hoàn thiện. Phát hành hai IMAP cho
client là Netscape Messenger và Microsoft Outlook Express, được tích hợp với hai
trình duyệt Web phổ biến: Netscape Communicator và Microsoft Internet Explorer
II. Mục đích sử dụng, phạm vi ứng dụng, bản chất của giao thức IMAP
1.Mục đích sử dụng: IMAP được sử dụng để đặt sự kiểm soát email trên mail
server. Cụ thể, IMAP cung cấp truy cập Email theo ba chế độ khác nhau: offline
(ngoại tuyến), online ( trực tuyến) và disconnected ( ngắt kết nối)
Truy cập chế độ offline IMAP giống như POP, các thông điệp email được truyền
đến máy client server, xóa khỏi mail server và mối liên kết bị ngắt. Sau đó người

dùng đọc, trả lời và làm các việc khác ở chế độ ngoại tuyến, còn nếu muốn gửi thư
mới đi họ phải kết nối lại
Truy cập chế độ online IMAP là chế độ truy cập mà người dùng đọc và làm việc
với thông điệp email trong khi vẫn đang giữ kết nối với mail server ( kết nối mở).
Các thông điệp này vẫn nằm ở mail server cho đến khi nào người dùng quyết định
xóa nó đi. Chúng được gắn nhãn hiệu cho biết loại để “đọc” hay “trả lời”
Truy cập chế độ disconnected, IMAP cho phép người dùng lưu tạm thông điệp ở
client server và làm việc với chúng, sau đó cập nhật trở lại vào mail server ở lần
kết nối kế tiếp. Chế độ này hữu ích cho những ai dùng laptop hay truy cập mạng
bằng liên kết quay số điện thoại, đồng thời không muốn bỏ phí những lợi điểm của
kho chứa thư ở mail server
2.Phạm vi ứng dụng: Các giao thức Internet tiêu chuẩn như Gmail, ThunderBird,
Mozilla Suite, SeaMonkey,…
3.Bản chất của giao thức IMAP: IMAP là thế hệ mới của giao thức POP (Post
Office Protocol). IMAP là một giao thức dạng client/server mà ở đó e-mail được
nhận về và được lưu trữ trên servers. Khi sử dụng các e-mail client như OE,


Netscape, khách hàng có thể xem trước thông tin header bao gồm người gửi và chủ
đề lá thư, từ đó cho phép khách hàng quyết định có download lá thư đó về hay
không. Khách hàng cũng có thể tạo nhiều folder hoặc mailboxes trên server, xóa
tin nhắn
III. Mô tả nguyên lý hoạt động của giao thức IMAP
1.Mức độ liên kết:
Giao thức IMAP4 được nhận một dòng dữ liệu đáng tin cậy cung cấp bởi TCP. Khi
sử dụng TCP, IMAP4 sẽ nhận thông tin trên port 143
2.Các lệnh và phản hồi:
Một phiên IMAP4 bao gồm việc thiết lập một kết nối máy khách/máy chủ, một lời
chào ban đầu từ máy chủ và tương tác máy khách/máy chủ.Những tương tác máy
khách/máy chủ bao gồm lệnh của một khách hàng, dữ liệu của máy chủ và một kết

quả hoàn tất do máy chủ trả lời lệnh tương ứng
Tất cả các tương tác truyền bởi máy khách và máy chủ dưới dạng dòng, nghĩa là
chuỗi kết thúc với một CRLF. Giao thức nhận của một khách hàng IMAP4 hay
máy chủ IMAP4 sẽ đọc một dòng hoặc một chuỗi các octet với một số đứng sau
một đường thẳng
(Octet: khối dữ liệu có kích thước 8 bit)
2.1.Giao thức khách hàng gửi và giao thức máy chủ nhận
Một lệnh của khách hàng sẽ bắt đầu một hoạt động. Mỗi lệnh của khách hàng được
bắt đầu bởi một định danh (thường là một chuỗi chữ số ngắn. Ví dụ: A0001,
A0002, ..v.v…) được gọi là một “thẻ” (“tag”). Một thẻ khác nhau được tạo ra bởi
mỗi lệnh của khách hàng
Có hai trường hợp trong đó một đường dây từ khách hàng không đại diện cho một
lệnh cần hoàn thành. Trong trường hợp một, một đối số lệnh là trích dẫn với một số
octet, trong trường hợp hai, các đối số lệnh yêu cầu thông tin phản hồi của máy
chủ. Trong cả hai trường hợp, máy chủ sẽ gửi một lệnh tiếp tục đáp ứng yêu cầu
nếu nó đã sẵn sàng cho octet ( nếu thích hợp) và phần còn lại của lệnh


Lưu ý: Nếu thay vào đó, máy chủ phát hiện một lỗi trong các lệnh, nó sẽ gửi một
câu trả lời BAD có tag phù hợp với lệnh để từ chối lệnh và ngăn cản khách hàng
gửi thêm bất kỳ lệnh nào
Nó cũng có thể để cho máy chủ gửi một đáp ứng hoàn thiện cho một số
lệnh khác ( nếu đang tiến hành nhiều lệnh), hoặc đang tháo thẻ dữ liệu. Trong cả
hai trường hợp, khách hàng sẽ có hành động thích hợp để quyết định các lệnh sẽ
tiếp tục tiến hành hay là chờ giải quyết
Giao thức nhận của IMAP4 sẽ đọc một dòng lệnh từ khách hàng, phân tích cú pháp
lệnh và đối số của nó, truyền dữ liệu về máy chủ và máy chủ sẽ hoàn thành lệnh
đưa đến phản hồi
2.2.Giao thức máy chủ gửi và giao thức khách hàng nhận
Dữ liệu được truyền bởi máy chủ đến khách hàng và trạng thái lệnh không được

hoàn thành sẽ được bắt đầu bởi dấu “*”, được gọi là phản hồi untagged ( tháo thẻ)
Dữ liệu máy chủ có thể được gửi như là kết quả của một lệnh khách, hoặc có thể
được gửi đơn phương bởi máy chủ. Không có sự khác biệt về cú pháp giữa một dữ
liệu máy chủ từ môt lệnh cụ thể và dữ liệu được gửi đơn phương
Máy chủ phản hồi một kết quả hoàn thiện cho thấy hoạt động thành công hay thất
bại. Nó được gắn thẻ với các từ khóa tương tự với các lệnh khách đã vận hành. Vì
vậy, nếu tiến hành nhiều hơn một lệnh, các từ khóa trong một câu trả lời có thể xác
định phản ứng của máy chủ. Có ba loại khả năng có thể được phản hồi từ máy chủ:
OK ( chỉ thị thành công), NO ( chỉ thị thất bại) và BAD ( giao thức bị lỗi do lệnh
không được công nhận hoặc lỗi cú pháp lệnh)
Giao thức nhận của khách hàng IMAP4 đọc dòng phản hồi từ máy chủ, sau đó nó
sẽ có các hành động phản hồi dựa trên các mã thông báo đầu tiên của phản ứng, ví
dụ như một thẻ “*” hoặc thẻ “+”
Khách hàng phải chuẩn bị sẵn sàng chấp nhận bất kỳ phản ứng nào của máy chủ ở
bất kỳ thời gian nào. Điều này có thể bao gồm cả dữ liệu máy chủ mà nó không
được yêu cầu. Dữ liệu của máy chủ nên được ghi lại, để cho các khách hàng có thể
tham khảo dữ liệu từ bản sao chứ không cần gửi lệnh cho máy chủ để yêu cầu dữ
liệu. Trong vài trường hợp, một số dữ liệu của máy chủ bắt buộc phải được ghi lại


3.Trạng thái và sơ đồ lưu lượng
Một máy chủ IMAP4 luôn ở một trong bốn trạng thái. Hầu hết các lệnh có hiệu lực
ở vài trạng thái nhất định. Đó là lỗi giao thức khi khách hàng cố gắng thực hiện
một lệnh trong khi lệnh đang ở trạng thái không phù hợp. Trong trường hợp này,
máy chủ sẽ trả lời với một lệnh kết quả BAD hoặc NO (tùy thuộc máy chủ thực
hiện)
3.1.Trạng thái chưa xác thực
Trong trạng thái chưa đăng nhập, người dùng phải cung cấp và xác nhận các thông
tin trước khi phần lớn các lệnh được cho phép. Trạng thái này được nhập khi một
kết nối bắt đầu, trừ khi kết nối đó đã được xác thực trước

3.2.Trạng thái xác thực
Trong trạng thái xác thực, người dùng được xác nhận và phải chọn một hộp thư để
truy cập trước khi lệnh ảnh hưởng đến tin nhắn được cho phép. Trạng thái này
được nhập khi bắt đầu một kết nối đã được xác thực trước, khi thông tin xác nhận
được cung cấp đã được chấp nhận, hoặc sau một lỗi trong việc lựa chọn một hộp
thư
3.3.Trạng thái lựa chọn
Trong trạng thái lựa chọn, một hộp thư đã được lựa chọn để truy cập. Trạng thái
này được nhập khi một hộp thư đã được lựa chọn thành công
3.4.Trạng thái đăng xuất
Trong trạng thái đăng xuất, phiên hoạt động của người dùng đang chấm dứt, và
máy chủ sẽ đóng kết nối, Trạng thái này có thể được nhập như là một yêu cầu của
khách hàng hoặc một quyết định đơn phương của máy chủ


+--------------------------------------+
|kết nối ban đầu và lời chào từ máy chủ|
+--------------------------------------+
|| (1)
|| (2)
|| (3)
VV
||
||
+-----------------+
||
||
| chưa đăng nhập |
||
||

+-----------------+
||
||
|| (7)
|| (4)
||
||
||
VV
VV
||
||
+----------------+
||
||
|
đăng nhập
|<=++
||
||
+----------------+ ||
||
||
|| (7)
|| (5)
|| (6)
||
||
||
VV

||
||
||
||
+--------+ ||
||
||
||
|lựa chọn|==++
||
||
||
+--------+
||
||
||
|| (7)
||
VV
VV
VV
VV
+--------------------------------------+
|
đăng xuất và đóng kết nối
|
+--------------------------------------+

(1)Kết nối không cần đăng nhập trước (lời chào OK)
(2)Kết nối đăng nhập trước ( lời chào PREAUTH)

(3)Kết nối bị từ chối ( lời chào BYE)
(4)Lệnh ĐĂNG NHẬP thành công
(5)Lệnh CHỌN hoặc KIỂM TRA thành công
(6)Lệnh ĐÓNG, hoặc lệnh CHỌN hoặc KIỂM TRA thất bại
(7)Lệnh ĐĂNG XUẤT, tắt máy chủ hoặc đóng kết nối
4.Định dạng dữ liệu
IMAP4 sử dụng các lệnh và phản ứng dạng văn bản. Dữ liệu trong IMAP4 có thể
dưới một trong các hình thức: nguyên tử, số, chuỗi, danh sách ngoặc và NIL
4.1.Nguyên tử
Một nguyên tử bao gồm một hoặc nhiều ký tự không đặc biệt


4.2.Số
Một số bao goomg một hoặc nhiều ký tự chữ số, và đại diện cho một giá trị số
4.3.Chuỗi
Một chuỗi là một trong hai hình thức: chữ và chuỗi trích dẫn. Các hình thức theo
chữ là hình thức chung của chuỗi. Các hình thức theo chuỗi trích dẫn là một cách
thay thế tránh chi phí hạn chế khi xử lý một chữ
Một chữ là một chuỗi không hoặc nhiều octet (bao gồm cả CR và LF), tiền tố được
trích dẫn dạng một dấu mở ngoặc “{”, số lượng octet, dấu đóng ngoặc “}”, và
CRLF. Trong trường hợp chữ truyền từ máy chủ đến khách hàng, các dữ liệu octet
sẽ lập tức theo sau CRLF. Trong trường hợp chữ truyền từ khách hàng đến máy
chủ, khách hàng phải chờ đợi để nhận được một lệnh yêu cầu tiếp tục trước khi gửi
dữ liệu octet (và phần còn lại của lệnh)
Một chuỗi trích dẫn là một chuỗi không hoặc nhiều ký tự 7-bit (không bao gồm CR
và LF), với dấu (<”>) ở mỗi chỗ kết thúc
Chuỗi rỗng tiêu biểu như “” ( một chuỗi trích dẫn với không ký tự trong dấu ngoặc
kép) hoặc như {0} theo sau là CRLF ( một chữ với octet của số 0)
Lưu ý: Ngay cả khi octet là 0, khách hàng vẫn phải chờ đợi để nhận được lệnh yêu
cầu tiếp tục

4.4.Danh sách ngoặc
Cấu trúc dữ liệu được biểu diễn như là một “danh sách ngoặc”, một chuỗi các mục
dữ liệu, phân cách bằng dấu space, và kết thúc bằng dấu ngoặc đơn. Bản thân một
danh sách ngoặc có thể chứa các danh sách ngoặc, sử dụng nhiều dấu ngoặc đơn để
chia ra
Danh sách ngoặc rỗng tiêu biểu như () – một danh sách ngoặc với không thành
viên
4.5.NIL
Nguyên tử đặc biệt “NIL” đại diện cho sự không tồn tại của một mục dữ liệu cụ thể
được biểu diễn như là một chuỗi hoặc một danh sách ngoặc.


Nó khác biệt với một chuỗi rỗng “” hoặc danh sách ngoặc rỗng ()
5.Các lệnh của khách hàng
5.1.Lệnh trạng thái bất kỳ:
Có thể được sử dụng ở bất kỳ trạng thái nào
Lệnh
Capability

Tham số
Không có

Noop

Không có

Logout

Không có


Mô tả
Yêu cầu máy chủ cho khách hàng những khả năng và
tính năng mà nó hỗ trợ
Không có gì. Có thể được sử dụng để thiết lập lại bộ đếm
thời gian hoặc định kỳ nhắc nhở máy chủ gửi thông báo
khi có thư mới
Thông báo với máy chủ khách hàng đã sẵn sàng để kết
thúc phiên, sau đó máy chủ sẽ đóng kết nối

5.2.Lệnh trong trạng thái chưa xác thực:
Lệnh chỉ được sử dụng trong trạng thái chưa xác thực. Những lệnh này thường
được sử dụng để xác thực
Lệnh
Authenticate
Login

STARTTLS

Tham số
Tên người dùng
và mật khẩu
Tên cơ chế xác
thực
Không có

Mô tả
Chỉ định một tên người dùng và mật khẩu để
sử dụng cho việc chứng thực
Cho máy chủ mà khách hàng muốn sử dụng
một cơ chế xác thực cụ thể, nhắc nhở khách

hàng và máy chủ trao đổi thông tin xác thực
phù hợp với quy chế
Thông báo với máy chủ IMAP4 để sử dụng
giao thức Transport Layer Security (TLS) để
xác thực, và nhắc nhở TLS bắt đầu đàm phán

5.3.Lệnh trong trạng thái xác thực: Được sử dụng để thực hiện các hành động khác
nhau trên hộp thư ( Có thể sử dụng cả trong trạng thái lựa chọn?


Lệnh
Select

Tham số
Tên hộp thư

Examine

Tên hộp thư

Create

Tên hộp thư

Delete
Rename

Tên hộp thư
Xóa hộp thư quy định
Tên hộp thư hiện Đặt lại tên một hộp thư

tại và mới
Tên hộp thư
Thiết lập thêm hộp thư quy định

Subscribe

Mô tả
Chọn một hộp thư riêng biệt để truy cập. Nếu
lệnh này thành công sẽ chuyển sang trạng thái
lựa chọn. Các máy chủ sẽ thường xuyên phản hồi
thông tin cho khách hàng về các hộp thư được
lựa chọn
Giống như lệnh Select, ngoại trừ việc hộp thư
mở ra chỉ để đọc chứ không thể thay đổi được
Tạo ra một hộp thư với tên hợp lý

Unsubscribe Tên hộp thư

Loại bỏ các hộp thư từ danh sách “tích cực”

List

Yêu cầu một phần danh sách các tên hộp thư có
sẵn, dựa trên các tham số được cung cấp

Lsub
Append

Status


Tên hộp thư
hoặc chuỗi tham
chiếu
Tên hộp thư
hoặc chuỗi tham
chiếu
Tên hộp thư, tin
nhắn, cờ tùy
chọn

ngày/thời gian
Tên hộp thư

Tương tự như List nhưng chỉ trả về tên từ danh
sách “tích cực”
Thêm một thông điệp tới hộp thư

Yêu cầu tình trãng của hộp thư quy định. Máy
chủ đáp ứng cung cấp thông tin như số lượng tin
nhắn trong hộp và số lượng tin nhắn mới đến và
ẩn

5.4.Trạng thái lựa chọn: Một tập hợp các lệnh được sử dụng để truy cập và thao tác
tin nhắn cá nhân mà chỉ có thể được sử dụng trong trạng thái lựa chọn


Lệnh
Check
Close


Expunge
Search

Fetch

Partial

Uid

Store

Copy

Tham số
Không có

Mô tả
Thiết lập một “trạm kiểm soát” cho hộp thư hiện
tại.Được sử dụng để đánh dấu khi một trình tự
nhất định của hoạt động hoàn thành
Không có
Đóng hộp thư hiện tại và trả phiên về trạng thái
xác thực. Khi lệnh này được ban hành, máy chủ
cũng sẽ mặc nhiên thực hiện hoạt động Xóa trên
hộp thư
Không có
Vĩnh viễn loại bỏ bất kỳ tin nhắn được đánh dấu
để xóa của khách hàng. Điều này được thực hiện
tự động khi hộp thư đóng lại
Tiêu chí tìm kiếm Tìm kiếm các hộp thư cho tin nhắn phù hợp với

và một đặc điểm tiêu chí tìm kiếm quy định. Máy chủ sẽ liệt kê các
kỹ thuật thiết lập con số đáp ứng
tùy chọn
Trình tự số tin Lấy thông tin về một hoặc một tập hợp tin nhắn từ
nhắn và danh sách hộp thư hiện tại
các đối tượng dữ
liệu tin nhắn (một
hoặc nhiều)
Trình tự số tin Tương đương với lệnh Fetch với các tính năng bổ
nhắn và danh sách sung mà chỉ số quy định của octet được trả về, chỉ
các đối tượng dữ có một thông điệp duy nhất có thể được lấy tại thời
liệu tin nhắn (một điểm octet đầu tiên
hoặc nhiều), vị trí
octet đầu tiên và
số octet
Tên lệnh và đối số Được thực hiện để cho phép một trong các lệnh
khác được thực hiện bằng cách sử dụng số nhận
dạng duy nhất để xác đinh hoạt động của các tin
nhắn, thay vì những con số thông báo trình tự
Trình tự số tin Bảo quản một giá trị cho một mục dữ liệu tin nhắn
nhắn và tên mục cụ thể
dữ liệu tin nhắn,
giá trị
Trình tự số tin Sao chép các thiết lập các tin nhắn cụ thể cuối hộp
nhắn và tên một thư quy định
hộp thư


6.Máy chủ trả lời
Câu trả lời của máy chủ có ba hình thức: phản ứng tình trạng, dữ liệu máy chủ và

lệnh yêu cầu tiếp tục
Phản hồi của dữ liệu máy chủ được xác định bởi “dữ liệu” trong phản ứng, được
mô tả theo chức năng chứ không phải cú pháp. Cú pháp chính xác của dữ liệu máy
chủ được mô tả trong phần cú pháp
Lệnh yêu cầu tiếp tục sử dụng mã thông báo “+” thay vì một tag
Phản ứng tình trạng được gắn thẻ cho thấy kết quả hoàn thành lệnh của khách
hàng, và có một thẻ phù hợp với lệnh
-Mã kết quả: Có ba mã kết quả chính có thể được gửi khi trả lời một lệnh và hai mã
sử dụng trong một số trường hợp đặc biệt









OK: Kết quả tích cực, thường được gửi kèm với các từ khóa của lệnh đã
thành công. Có thể được gửi untagged trong lời chào đầu tiên của máy chủ
khi phiên bắt đâu
NO: Kết quả tiêu cực. Khi được gắn thẻ, chỉ ra lệnh không thành công, khi
untagged, được coi là thông điệp cảnh báo chung về một số tình hình trên
máy chủ
BAD: Chỉ thị một thông báo lỗi. Nó được gắn thẻ khi lỗi này trực tiếp liên
quan đến một lệnh đã được gửi, và mặt khác là untagged
PREAUTH: Một thông báo untagged gửi vào lúc bắt đầu của một phiên làm
việc để cho biết rằng không có yêu cầu xác thực, chuyển trực tiếp sang trạng
thái xác thực
BYE: Gửi khi máy chủ muốn đóng kết nối. Nó luôn luôn là untagged, và

được gửi trả lời bởi một lệnh LOGOUT hoặc khi kết nối phải đóng cửa vì lí
do nào khác

-Mã phản hồi: Được sử dụng để giao tiếp các thông tin với khách hàng. Câu trả lời
thường đi kèm văn bản mô tả các thông tin chi tiết về những gì đang được truyền
đạt. Dưới đây là các mã phản hồi được xác định bởi các tiêu chuẩn IMAP















ALERT: Một thông điệp cảnh báo được gửi đến một khách hàng IMAP để
thông báo về một cái gì đó quan trọng
BADCHARSET: Gửi khi tìm kiếm một bộ ký tự không được hỗ trợ
CAPABILITY: Một danh sách các khả năng máy chủ có thể thực hiện
PARSE: Gửi khi xảy ra lỗi phân tích cú pháp các tiêu đề hoặc nội dung
MIME của một tin nhắn email
PERMANENTFLAGS: Truyền đạt một danh sách các cờ trạng thái tin nhắn
mà khách hàng được phép thao tác
READ-ONLY: Thông báo cho khách hàng rằng hộp thư chỉ có thể truy cập

trong chế độ “ chỉ đọc”
READ-WRITE: Thông báo cho khách hàng rằng hộp thư có thể truy cập
trong chế độ đọc- ghi
TRYCREATE: Gửi khi lệnh APPEND hoặc lệnh COPY bị lỗi vì hộp thư
mục tiêu không có sẵn, đề nghị khách hàng cố gắng tạo hộp thư
UIDNEXT: Gửi với một số thập phân mà xác định giá trị định danh duy nhất
để sử dụng trong hoạt động. Những định danh này cho phép mỗi tin nhắn
được xác định là duy nhất
UIDVALIDITY: Gửi một số thập phân mà xác định tính hợp lệ của giá trị
định danh là duy nhất, được sử dụng để xác nhận dạng tin nhắn duy nhất
UNSEEN: Gửi với một số thập phân mà thông báo với khách hàng rằng tin
nhắn được đánh dấu là tin nhắn mới

IV. Phân tích các ưu, nhược điểm của giao thức IMAP
1.Ưu điểm:
Khi bạn có thể xem được các header information mà không cần phải download
toàn bộ thư về, bạn có thể xóa được một số lượng lớn thư mà không sợ lãng phí
thời gian. Cũng vì vẫn lưu trữ trên server, bạn có thể truy cập hộp thư từ nhiều nơi
khác nhau và bảo đảm các tin nhắn luôn sẵn sàng. Và với việc thư vẫn còn lưu trên
server thì khi máy bị một sự cố cũng không cần lo về việc mất các tin nhắn
Kết nối và ngắt kết nối các phương thức hoạt động: Khi sử dụng POP, chỉ khi cần
tải tin nhắn mới, khách hàng mới kết nối với máy chủ e-mail một thời gian ngắn.
Khi sử dụng IMAP4, khách hàng thường xuyên kết nối khi giao diện người dùng
được kích hoạt và tải nội dung tin nhắn theo yêu cầu. Đối với người sử dụng nhiều
tin nhắn hoặc lượng tin nhắn lớn, mô hình sử dụng IMAP4 có thể dẫn đến thời gian
phản ứng nhanh hơn


Nhiều khách hàng đồng thời kết nối đến cùng một hộp thư: Giao thức POP yêu cầu
khách hàng hiện đang kết nối sao cho chỉ duy nhất một khách hàng có thể kết nối

đến hộp thư ( chỉ hỗ trợ 1 USER). Ngược lại, các giao thức IMAP đặc biệt cho
phép truy cập đồng thời bởi nhiều khách hàng, và còn cung cấp cơ chế cho các
khách hàng đề phát hiện các thay đổi của hộp thư được thực hiện bởi những khách
hàng đồng thời kết nối khác
Truy cập vào phần tin nhắn MIME và lấy một phần: Thường thì tất cả các e-mail
trên Internet được truyền đi trong định dạng MIME, cho phép tin nhắn có một cấu
trúc cây mà các nút lá bất kỳ là một loạt các bộ phận nội dung riêng lẻ và các nút
không lá bất kỳ là một loạt các kết nối liên tục nhiều lớp. Giao thức IMAP4 cho
phép khách hàng lấy bất kỳ một bộ phận riêng lẻ nào của MIME một cách riêng
biệt và cũng có thể lấy các phần của từng bộ phận riêng biệt hoặc toàn bộ tin nhắn.
Các cơ chế này cho phép khách hàng lấy phần văn bản của một tin nhắn mà không
cần lấy các tập tin đính kèm hoặc cho truyền tải nội dung khi nó đang được tải
xuống
Thông tin trạng thái tin nhắn: Thông qua việc sử dụng các lá cờ được định nghĩa
trong giao thức IMAP4, khách hàng có thể theo dõi các thông điệp trạng thái; ví
dụ: có hay không tin nhắn đã được đọc, trả lời hoặc xóa bỏ. Những lá cờ này được
lưu trữ trên máy chủ, do đó khách hàng khác nhau truy cập vào cùng một hộp thư
trong các thời điểm khác nhau có thể phát hiện những thay đổi trạng thái được thực
hiện bởi các khách hàng khác. POP không cung cấp cơ chế lưu trữ trạng thái thông
tin như vậy cho khách hàng trên máy chủ, do đó nếu hai khách hàng POP khác
nhau cùng truy cập vào một hộp thư, trạng thái thông tin- như là tin nhắn đã được
truy cập hay chưa- sẽ không thể được đồng bộ hóa giữa các khách hàng. Giao thức
IMAP4 hỗ trợ cả hai loại: cờ hệ thống và từ khóa cho khách hàng. Cờ hệ thống
dành cho các thông tin trạng thái, ví dụ: xem tin nhắn đã được đọc hay chưa. Từ
khóa, thứ mà các máy chủ IMAP không hỗ trợ, cho phép tin nhắn đưa ra một hoặc
nhiều thẻ có ý nghĩa cho khách hàng. Bổ sung thêm người dùng tạo ra thẻ cho các
tin nhắn chính là một hoạt động được hỗ trợ bởi một số dịch vụ e-mail trên web,
chẳng hạn như Gmail
Nhiều hộp thư trên một máy chủ: Khách hàng IMAP4 có thể tạo, đổi tên và/hoặc
xóa hộp thư trên máy chủ, và di chuyển tin nhắn giữa các hộp thư. Nhiều hỗ trợ

hộp thư cũng cho phép các máy chủ cung cấp quyền truy cập vào các thư mục công


cộng và được chia sẻ. Phần mở rộng (RFC 4314) Danh sách Điều khiển Truy nhập
( Access Control List – ACL) IMAP4 có thể được sử dụng để điều chỉnh quyền
truy cập
Tìm kiếm trên máy chủ: IMAP4 cung cấp một cơ chế để một khách hàng có thể
yêu cầu máy chủ tìm kiếm các tin nhắn đáp ứng vài tiêu chí nào đó. Cơ chế này
giúp tránh việc khách hàng yêu cầu tải về tất cả các tin nhắn trong hộp thư để thực
hiện tìm kiếm
Xây dựng cơ chế mở rộng: Phản ánh kinh nghiệm của các giao thức Internet trước
đó, IMAP4 định nghĩa một cơ chế rõ ràng mà nó có thể được mở rộng. Rất nhiều
mở rộng cho giao thức cơ sở đã được đề xuất và được sử dụng phổ biến. IMAP2bis
không có cơ chế mở rộng và POP có một cơ chế được định nghĩa bởi RFC 2449
2.Nhược điểm:
Không như POP3, IMAP yêu cầu truy cập liên tục trong suốt quá trình làm việc
với các e-mail. Do việc trữ tin nhắn trên server từ đó dẫn đến việc vượt quá giới
hạn không gian lưu trữ cho phép
Trong khi IMAP tìm biện pháp khắc phục những thiếu sót của POP, .Phần lớn các
vấn đề phức tạp ( ví dụ: nhiều khách hàng cùng một lúc truy cập vào cùng mottj
hộp thư) được bù đắp bằng cách giải quyết như Maildir hoặc các phần phụ trợ cơ
sở dữ liệu phia máy chủ
Các đặc điểm kỹ thuật của IMAP đã bị chỉ trích vì không đủ nghiêm ngặt và cho
phép tồn tại các hành vi có hiệu quả phủ nhận tính hữu dụng của nó. Ví dụ, đặc
điểm kỹ thuật nói rằng mỗi tin nhắn được lưu trữ trên máy chủ chỉ có một “ unique
ID” để cho phép các khách hàng xác định các tin nhắn mà họ đã nhìn giữa các
phiên. Tuy nhiên, đặc điểm kỹ thuật cũng cho phép các “ unique ID” bị vô hiệu
không hạn chế, thực tế điều này đã phủ nhận mục đích của họ
Trừ khi việc lưu trữ thư và các thuật toán tìm kiếm trên máy chủ được thực hiện
một cách cẩn thận, một máy khách có khả năng tiêu tốn một lượng lớn tài nguyên

máy chủ khi tìm kiếm các hộp thư lớn
Khách hàng của IMAP4 cần phải duy trì một kết nối TCP/IP cho máy chủ IMAP
để được thông báo về sự xuất hiện của thư mới. Thông báo thư đến được thực hiện


thông qua băng tần tín hiệu, góp phần tăng thêm sự phức tạp trong việc xử lý giao
thức IMAP bên máy khách. Một cá nhân đề xuất, push IMAP, sẽ mở rộng IMAP
để thực hiện đẩy thư điện tử bằng cách gửi thông báo toàn bộ thay vì chỉ một thông
báo. Tuy nhiên, push IMAP nói chung đã không được chấp nhận và hiện tại các
nhóm làm việc IETF đã giải quyết vấn đề bằng nhiều cách khác
Không giống như một số giao thức độc quyền kết hợp giữa việc gửi và hoạt động
phục hồi, gửi một tin nhắn và lưu một bản sao trong thư mục phía máy chủ với một
khách hàng IMAP cấp độ cơ sở đòi hỏi truyền tải nội dung tin nhắn hai lần, một
lần để SMTP giao hàng và lần thứ hai để IMAP lưu trữ vào một thư mục dành cho
thư đã gửi. Điều này được khắc phục bởi một tập hợp các phần mở rộng được xác
định bởi nhóm làm việc IETF LEMONADE cho các thiết bị di động: URLAUTH
(RFC 4467) and CATENATE ( RFC 4469) trong IMAP và BURL ( RFC 4468)
trong SMTP-SUBMISSION. Các máy chủ POP không hỗ trợ thư mục phia máy
chủ, do đó khách hàng không có lựa chọn nào ngoài việc gửi thư trên máy khách.
Nhiều máy khách IMAP có thể được cấu hình để lưu thư đã gửi trong một thư mục
phía máy khách, hoặc để sao ẩn mình và sau đó lọc thư gửi đến thay vì lưu một bản
sao trong một thư mục trực tiếp. Ngoài ra “ bộ ba” LEMONADE, Courier Mail
Server cung cấp một phương pháp không tiêu chuẩn của việc gửi bằng IMAP bằng
cách sao chép một tin nhắn gửi vào một thư mục dành riêng cho hộp thư đi
Cũng giống như POP, IMAP là một giao thức chỉ dành cho e-mail. Do đó, các hạng
mục như địa chỉ liên lạc, các cuộc hẹn hoặc công việc không thể được quản lý hoặc
truy cập bằng cách sử dụng IMAP
V. Kết luận và xu hướng phát triển
Qua những điều đã được nêu ở trên, ta thấy IMAP đã mang lại cho người dùng một
phương thức lưu trữ thư điện tử thông minh. Mặc dù vẫn còn tồn tại vài nhược

điểm nhưng ta không thể phủ nhận sự ưu tú của IMAP so với giao thức thư điện tử
khác như SMTP, POP. Từ đó dễ thấy nếu IMAP trong tương lai tiếp tục được hoàn
thiện hơn thì sẽ không khó để nó trở thành trình duyệt thư điện tử được nhiều
người ưa thích nhất


Tài liệu tham khảo:
-Bài giảng môn Mạng máy tính của cô Ngô Quỳnh Thu
-Trang web
-Trang web
-Trang web
-Một số trang web khác



×