1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

19 1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 101,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lịch sử phát triển của giao thức IMAPIMAP đượ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

Trang 1

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

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 20082383

Lớp : Truyền thông Mạng - K53

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

Trang 2

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

Trang 3

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)

Trang 4

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

Trang 5

-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,

Trang 6

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

Trang 7

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

Trang 8

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ủ

Trang 9

+ -+

|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

Trang 10

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

Trang 11

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

tính năng mà nó hỗ trợ

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ú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

Authenticate Tên người dùng

và mật khẩu

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

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ế

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?

Ngày đăng: 31/12/2015, 21:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w