Top Banner
TRƯỜNG……………… KHOA…………….. BÁO CÁO TT NGHIP ĐỀ TÀI: Tìm hiu mt scông nghWeb và xây dng chương trình Newsletter
89

BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

Sep 10, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

TRƯỜNG……………… KHOA……………..

BÁO CÁO TỐT NGHIỆP ĐỀ TÀI:

Tìm hiểu một số công nghệ Web và xây dựng

chương trình Newsletter

Page 2: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 1

A. YÊU CẦU CỦA ĐỀ TÀI: Bao gồm các phần sau: Tìm hiểu về các Web server thông dụng hiện nay:

+ Microsoft Internet Information Server + Apache Web Server

Trình bày về đặc điểm về khả năng, cài đặt, vận hành, hỗ trợ các ứng dụng Web và so sánh các điểm mạnh, yếu, các ưu nhược điểm giữa chúng. Tìm hiểu về hệ thống mailing list: Tìm hiểu về các nghi thức truyền nhận mail cơ bản như SMTP và POP3. Tìm hiểu cách vận hành và cài đặt của các hệ thống mail trên các hệ điều hành thông dụng: + Internet Mail. + Linux Mail.

B. CƠ SỞ LÝ THUYẾT: CHƯƠNG I

TÌM HIỂU VỀ CÁC WEB SERVER THÔNG DỤNG I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH WINDOWS NT 1. Thếâ nào là một hệ điều hành mạng: Mạng bao gồm các tài nguyên (máy trạm, máy in…) và các thiết bị truyền

thông (router, bridge). Với việc ghép nối các máy tính thành mạng thì cần thiết phải có một hệ thống phần mềm có chức năng quản lý tài nguyên, tính tốn và xử lý truy cập một cách thống nhất trên mạng, hệ như vậy được gọi là hệ điều hành mạng. Mỗi tài nguyên của mạng như file, đĩa, thiết bị ngoại vi được quản lý bởi một tiến trình nhất định và hệ điều hành mạng điều khiển sự tương tác giữa các tiến trình và truy cập đến các tiến trình đó.

Quản lý các tài nguyên: tập tin ở xa, nạp và chạy các App dùng chung, I/O với các thiết bị mạng dùng chung, chỉ cấp phát CPU trong tiến trình NOS.

Căn cứ vào việc truy cập tài nguyên trên mạng mà người ta chia thực thể trong mạng thành hai loại chủ và khách, trong đó máy khách (Client) truy cập được vào tài nguyên của mình nhưng không chia xẻ tài nguyên của nó với mạng, còn máy chủ (Server) là máy tính nằm trên mạng và chia xẻ tài nguyên của nó với người dùng mạng.

Hiện nay các hệ điều hành mạng thường được chia làm hai loại là hệ điều hành mạng ngang hàng và hệ điều hành mạng phân biệt (clent/server).

Với hệ điều hành mạng ngang hàng, mỗi máy tính trên mạng vừa có thể đóng vai trò chủ lẫn khách tức là chúng có thể sử dụng tài nguyên của mạng lẫn chia xẻ tài nguyên của nó cho mạng. Ví dụ: Lantastic của Artisoft, Netware của Novell, Windows (for Workgroup, 95, NT client) của Microsoft.

Với hệ điều hành mạng phân biệt các máy tính được phân biệt chủ và khách, trong đó máy chủ mạng (Server) giữ vai trò chủ và các máy người dùng giữ vai trò

Page 3: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 2

khách (các trạm). Khi có nhu cầu truy cập tài nguyên trên mạng các trạm tạo ra yêu cầu và gửi chúng tới server và sau đó server thực hiện và gửi trả lời.

2. Hệ điều hành mạng Windows NT Windows NT là hệ điều hành mạng cao cấp của hãng Microsoft. Phiên bản

đầu tiên có tên là Windows NT 3.1 phát hành năm 1993 và phiên bản server là Windows NT Advanced Server (trước đó là LAN manager for Windows NT). Năm 1994 phiên bản Windows NT Server và Windows NT Workstation phiên bản 3.5 được phát hành. Tiếp theo đó là sự ra đời các phiên bản 3.51. Các phiên bản Workstation có thể sử dụng để thành lập mạng ngang hàng, còn các phiên bản Server dàng cho quản lý file tập trung, in ấn và chia sẻ các ứng dụng.

Năm 1995, Windows NT Workstation phiên bản 4.0 và Windows NT Server 4.0 ra đời đã kết hợp với cấu trúc khung của người anh em Windows 95 nổi tiếng phát hành trước đó không lâu (trước đây cấu trúc khung của Windows NT giống Windows 3.1) đã được kết hợp giao diện quen thuộc, dễ sử dụng của Windows 95 và sự mạnh mẽ, an tồn, bảo mật cao của Windows NT.

Windows NT có hai bản mà nó đi đôi với hai cách tiếp cận mạng khác nhau. Hai bản này gọi là Windows NT Workstation và Windows NT server. Với hệ điều hành chuẩn của NT ta có thể xây dựng mạng ngang hàng, server mạng và mọi công cụ quản trị cần thiết cho server mạng, ngồi ra còn có thể có nhiều giải pháp về xây dựng mạng diện rộng. Cả hai bản Windows NT Workstation và Windows NT server cùng được xây dựng trên cơ sở nhân NT chung và các giao diện và cả hai cùng có những đặc trưng an tồn theo tiêu chuẩn C2. Windows NT Workstation được sử dụng để kết nối những nhóm người sử dụng nhỏ, thường cùng làm việc trong một văn phòng. Tuy nhiên với Windows NT server ta có một khả năng chống hỏng hóc cao, những khả năng cung cấp dịch vụ mạng lớn và những lựa chọn kết nối khác nhau, Windows NT server không hạn chế số người có thể thâm nhập vào mạng.

Với Windows NT server ta cũng có những công cụ quản trị từ xa vào mạng mà có thể thực hiện việc quản trị những máy tính ở xa. Nó tích hợp với tất cả những sơ đồ mạng BUS, STAR, RING và hỗn hợp.

Windows NT là hệ điều hành có sức mạnh công nghiệp đầu tiên cho số lượng khổng lồ các máy tính IBM compatible, Windows NT là một hệ điều hành thực sự dành cho người dùng, các cơ quan, các công ty xí nghiệp. Windows NT là một hệ điều hành đa nhiệm, đa xử lý với địa chỉ 32 bit bộ nhớ. Nó yểm trợ các ứng dụng của DOS, Windows, Win 32 GUI và các ứng dụng dựa trên ký tự. Windows NT server là hệ điều hành mạng, đáp ứng cho mạng cục bộ (LAN) vừa đáp ứng cho mạng diện rộng (WAN) như Intranet, Internet.

Windows NT server hơn hẳn các hệ điều hành khác bởi tính mềm dẻo, đa dạng trong quản lý. Nó vừa cho phép quản lý mạng theo mô hình mạng phân biệt (Client/Server) vừa quản lý theo mô hình mạng ngang hàng (Peer to Peer).

Windows NT server đáp ứng tốt nhất các dịch vụ viễn thông, một dịch vụ được sử dụng rộng rãi trong tương lai.

Windows NT server cài đặt đơn giản, nhẹ nhàng và điều quan trọng nhất là nó tương thích với hầu như tất cả các hệ mạng, nó không đòi hỏi người ta thay đổi những gì đã có.

Cho phép dùng các dịch vụ truy cập từ xa, có khả năng phục vụ đến 64 cổng truy nhập từ xa.

Page 4: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 3

Đáp ứng cho các máy trạm Macintosh nối với Windows NT server. Windows NT server yểm trợ mọi nghi thức mạng chuẩn như NETBUEI,

IPX/SPX, TCP/IP … và các nghi thức khác. Windows NT cũng tương thích với những mạng thông dụng hiện nay như Novell netware, Banyan VINES và Microsoft LAN Manager. Đối với mạng lớn và khả năng thâm nhập từ xa, sản phẩm Windows NT server cũng cung cấp các chức năng bổ sung nhu cầu , khả năng kết nối với máy tính lớn và máy Macintosh.

III. TỔNG QUAN VỀ WEB SERVER : Web Server: Web server là một phần mềm server đằng sau WWW. Nó lắng nghe những

yêu cầu từ phía client, chẳng hạn như một trình duyệt như Netscape hoặc Microsoft Internet Explorer. Khi nhận được một yêu cầu từ phía client, nó sẽ xử lý những yêu cầu đó và trả về một vài dữ liệu dưới dạng một fom chứa các trang được định dạng dưới dạng văn bản hoặc hình ảnh. Trình duyệt Web trả lại dữ liệu này với khả năng tốt nhất có thể và trình đến người sử dụng.

Khái niệm về Web server đơn giản chỉ là một chương trình mà chúng chờ đợi những yêu cầu từ phía client và đáp ứng những yêu cầu đó khi nhận được. Web server kết nối với các trình duyệt hoặc các client sử dụng giao thức HTTP, đó là một giao thức đã được chuẩn hóa các phương thức của các yêu cầu gửi đi và xử lý các yêu cầu đó. Nó cho phép rất nhiều các client khác nhau kết nối với các server cung cấp mà không gặp bất kỳ một trở ngại nào trong vấn đề tương thích.

Hầu hết các tài liệu yêu cầu hoặc đáp ứng đều phải được định dạng bằng ngôn ngữ HTML. HTML là một phần của một ngôn ngữ đánh dấu khác gọi là SGML, nó được sử dụng rộng rãi bởi nhiều tổ chức và trong các chính phủ liên bang.

HTML là nguồn sống của Web. Nó là một ngôn ngữ đánh dấu đơn giản được sử dụng để định dạng văn bản. Trình duyệt thông dịch các thông tin đánh dấu này và hiển thị các thông tin cần đáp ứng này với khả năng tốt nhất có thể. Quan trọng hơn nữa, HTML cho phép liên kết với các tài liệu và tài nguyên khác, đây là sự thể hiện tính siêu văn bản của Web.

Siêu văn bản cho phép người sử dụng xem một tài liệu khác lưu trữ ở trên cùng một máy hoặc trong một máy khác đặt ở một nơi khác trên thế giới. Nó cho phép thông tin tồn tại hầu như dưới dạng ba chiều. Người sử dụng không những chỉ có thể đọc tài liệu mà còn có thể chuyển đến một chỗ khác.

Tiến trình tìm và mang thông tin về hồn tồn trong suốt đối với người sử dụng. Nó là một ngôn ngữ uyển chuyển và dễ sử dụng. Sự điều hướng thông tin qua nhiều thông tin theo một cách đặc biệt. Nó cho phép ngwời sử dụng thu thập thông tin một cách dễ dàng và hiển thị chúng theo cách mà người sử dụng dễ lựa chọn nhất.

Nếu bất ngờ người sử dụng hỏi bằng cách nào để tạo ra một trang Web. Thì họ sẽ giáp mặt với hàng loạt các vấn đề có liên quan mà họ cần phải tìm hiểu trước khi bắt đầu viết mã một trang HTML đầu tiên. Vấn đề quan trọng nhất và là lý do cơ bản nhất là phải lựa chọn phần mềm server nào để sử dụng, với những thông tin cơ bản nhất mà cuốn báo cáo này cung cấp, sự lựa chọn có lẽ là không khó.

Các vấn đề mà cần phải quan tâm khi lựa chọn một Web server để giao phó công việc cho nó.

Page 5: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 4

- Phần mềm trả tiền hay đươc miễn phí. - Dễ cài đặt. - Dễ cấu hình. - Dễ mở rộng hoặc tuỳbiến một vài diện mạo của server. - Các đặc trưng cơ bản. - Sự phát triển liên tục. - Hỗ trợ bảo mật. - Mã nguồn sẵn có. - Hỗ trợ công nghệ. - Hỗ trợ nền tảng. - Hỗ trợ đối với các phần mềm thứ ba. IV. INTERNET INFORMATION SERVER (IIS): IIS là một dịch vụ tuỳ chọn của Windows NT server cung cấp các tính năng

về Web site. Giải pháp phổ biến nhất của Microsoft cho một Web site là chạy IIS trên nền Windows NT server.

IIS là một thành phần cơ bản để xây dựng một Internet hoặc Intranet server trền nền Windows NT 4.0, Workstation và Win 95. IIS được tích hợp đầy đủ trong Windows NT 4.0. Với một bộ đầy đủ IIS và Windows NT 4.0 người sử dụng sẽ nhận được sự thuận tiện khi xây dựng một cơ chế bảo mật trên Windows NT server và Windows NT File System (NTFS).

Người sử dụng có thể sử dụng các kỷ thuật Internet thêm vào được cung cấp bởi IIS để nâng cao các tính năng Microsoft Back Office, bao gồm các thành phần sau:

- Hệ thống quản trị cơ sở dữ liệu Microsoft SOL Server Client/Server. - Hệ thống thông báo Microsoft Exchange Server Client/Server. - Microsoft Proy Server. - Microsoft SNA Server kết nối với mạng IBM enterprise. - Hệ thống quản lý Server của Microsoft (tập trung quản lý các hệ thống phân

tán). -Microsoft Commercial Internet Server (MCIS). Với IIS người sử dụng có thể triển khai liên tục các ứng dụng mạng lên các

server ra đời muộn các nội dung Web mơi nhất. IIS đầy đủ hỗ trợ các hệ thống ngôn ngữ lập trình VB, VB Script, J ScriptTM được phát triển bởi Microsoft và Java Component Nó cũng hỗ trợ các ứng dụng CGI dành cho các ngôn ngữ lập trình Web cơ sở và ISAPI mở rộng và các bộ lọc.

1. Cài đặt IIS trên Windows NT server: Microsoft cung cấp các chương trình cài đặt khá thân thiện để cài đặt IIS trên

Windows NT server. Các bước cơ bản là lấy chương trình từ NT Option Pack hoặc tải từ Internet và chạy Setup.exe.

Windows NT Option Pack: IIS là một thành phần của Windows NT Option Pack. Một bộ Windows NT Option Pack sau khi cài đặt đầy đủ phải bao gồm các thành phần sau:

Microsoft Transaction Server. (MTC) Microsoft Management Console. (MMC)

Page 6: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 5

Microsoft Index Server. Microsoft Certificate Server. Microsoft Site Server Express. (SSE) - MTS là một thành phần cơ bản giải quyết các tiến trình hệ thống cho các

quá trình phát triển, phá huỷ và quản lý sự thi hành ở mức cao và các ứng dụng server mạnh.

- MMC là một ứng dụng xuyên suốt phân chia các công cụ quản lý mà nó có thể đưa ra các cách để quản trị các chương trình mạng, thêm vào đó MMC được kết hợp với các sản phẩm của Microsoft như: Windows NT và tất cả các sản Office.phẩm thuộc MS Back

Trong khi MMC tự nó không đưa cho người sử dụng bất kỳ một chức năng nào được thêm vào cả mà chỉ cung cấp một môi trường chung cho snap-ins. Snap-ins cung cấp môi trường quản trị ảo cho mỗi sản phẩm tương thích của nó. Snap-ins được trình bày trong IIS như là một dịch vụ quản lý Internet (ISN). Khi IIS khởi động, MMC cũng sẽ được khởi động và nạp vào snap-ins.

Trong tương lai tất cả các sản phẩm của MS Back Office bao gồm cả Windows, Windows NT, các công cụ quản trị mạnh sẽ được chuyển sang MMC.

Một bộ IIS phải bao gồm đầy đủ các thành phần sau: Content Index (Index Server). FTP Publishing Service. IIS Admin Service (Internet Service Manager snap-in). Microsoft Network News Transfer Protocol (NNTP) Service. Microsoft Simple Mail Transfer Protocol (SMTP) Service. MSDTC (Microsoft Distributed Transaction Coordinator). World Wide Web Publishing Service. 2. Quản lý IIS Web server: + HTTP server: Dịch vụ này tạo một WWW server công cộng. Server này tạo

nhiều trang HTML cho phép người sử dụng có thể chạy các ứng dụng CGI để thi hành các công việc thêm vào ở server dựa trên các yêu cầu của client. Văn bản, hình ảnh, âm thanh và các tài nguyên khác có thể được tải xuống WWW client.

+ Gopher Server: Dịch vụ này cung cấp các tài nguyên cho các Gopher client. Server gửi các file, các danh sách thư mục và các mục chọn trình đơn khác đến Gopher client.

+ FTP server: Dịch vụ này là một cập nhật đến server được cài đặt sẵn trên Windows NT (TM), nó chuyển các file có sẵn đến FTP client.

Mặc dù WWW đã thay thế hầu hết các chức năng của FTP, tuy nhiên chỉ FTP mới có thể được sử dụng để sao chép các file từ một máy client đến một máy server. Nếu những người truy cập từ xa cần làm việc đó, họ phải sử dụng FTP.

+ Sự dễ dàng chia xẻ: Tất cả các dịch vụ trên là một phần của một tiến trình như nhau với mục đích là làm hạn chế sử dụng bộ nhớ ngồi và tăng hiệu quả. IIS cũng hỗ trợ thi hành sự giám sát các bộ đếm và kiểm tra SNMP với FTP, Gopher, HTTP… Bộ đếm SNMP nằm dưới nút IIS của cây tên MIB.

+ Internet Server API: Các API này cung cấp các ứng dụng cho giao diện với IIS. Có 2 cách để các

API này sử dụng:

Page 7: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 6

+ Các phần mở rộng CGI: Các API này cho phép người sử dụng viết các CGI DLL mà nó ở trong vùng bộ nhớ giống như IIS. Đây là sự khác biệt từ một CGI bình thường có thể thi hành, mà nó là một tiến trình rời rạc. Sử dụng các phần mở rộng này làm tăng khả năng thi hành của server và làm giảm bộ nhớ yêu cầu.

+ Bộ lọc: Các API này có thể được sử dụng để viết các DLL mà nó ngăn chặn tất cả khảng năng tải HTTP đang được nhận bởi server. Một ứng dụng có thể được viết mà nó thực hiện nén, giải nén, mã hóa, giải mã hoặc thêm vào các xác thực.

+ Internet Service Manager: Công cụ này được sử dụng để cấu hình và theo dõi tất cả các IIS trên một

mạng. Nó sử dụng RPC để cấu hình IIS trên một máy khác. + Các ứng dụng client: IIS hỗ trợ các giao thức HTTP, Gopher, FTP và các client những giao thức

này như là các trình duyệt : Internet Explorer, Netscape. + Internet Database Connector (IDC): - Với IDC người sử dụng có thể: - Truy cập ODBC tương thích với các cơ sở dữ liệu. - Tạo trang Web quản lý cơ sở dữ liệu. - Chèn, cập nhật và xóa thông tin cơ sở dữ liệu do người sử dụng muốn nhập

vào từ trang Web. - Thực hiện các câu lệnh SQL khác. 3. IIS WWW Server: WWW là một bộ tập hợp các thông tin của client và server. Dữ liệu siêu văn

bản (hyper text) được chia xẻ bởi các server đang chạy phần mềm Web và được truy cập bởi các client đang chay một phần mềm ứng dụng Web gọi là trình duyệt Web.

WWW server cung cấp các thông tin phân tán và phần mềm, nhưng theo hướng site hơn là hướng thư mục. Tài liệu Web là một tài liệu siêu văn bản được viết bằng ngôn ngữ đánh dấu siêu văn bản (HTML), và với các thẻ đặc biệt để liên kêt đến nội dung các tài liệu khác, chúng được gọi là siêu liên kết (hypelink). Với siêu liên kết, xuất phát từ một trang tài liệu người sử dụng có thể đi đến mọi nơi trên thế giới để xem những trang tài liệu khác chỉ bằng bước kích chuột vào liên kết mà trình duyệt thể hiện.

WWW đi kèm với mô hình mạng client/server và sử dụng giao thức HTTP giữa client và server. Tài liệu được chứa trên nhiều các server tự trị trên Internet và được truy cập bởi HTTP client gọi là trình duyệt Web.

Để truy cập vào tài nguyên WWW, client phải: + Chạy một trình duyệt WWW chẳng hạn như Internet Explorer(TM)

Masaic(TM) hoặc Netscape(TM)… Có vài WWW client có sẵn và chúng có thể được tải xuống trực tiếp từ Internet.

+ Kết nối đến một WWW server bằng cách cung cấp một địa chỉ URL và gửi yêu cầu HTTP. Điển hình như client yêu cầu một file (trang HTML, hình ảnh…) hoặc thư mục đang hiển thị từ server, client cũng có thể gửi một ứng dụng đến server.

Page 8: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 7

Server sẽ đáp ứng với trạng thái hoạt động hoặc thành công hoặc bị lỗi và dữ liệu trả về cho yêu cầu của client. Sau khi dữ liệu được gửi đi, kết nối sẽ đóng lại và không có phần nào của tài liệu đã gửi được giữ lại trên server. Mỗi đối tượng trong một tài liệu HTTP đòi hỏi một kết nối khác nhau.

WWW với giao thức HTTP đã trở thành một cánh thông dụng để truy cập tài liệu trên Internet.

WWW cung cập một cách dễ dàng nhất để truy cập dữ liệu trên Internet hoặc trên mạng Intranet của các công ty.

A) CÁC TIỆN LỢI CỦA VIỆC SỬ DỤNG DỊCH VỤ WWW: - Trình duyệt WWW hỗ trợ nhiều kiểu dữ liệu. Một trình duyệt WWW có thể

tự động tải xuống và hiển thị các file văn bản, hình ảnh, chạy video, sound clip và khởi chạy các ứng dụng trợ giúp cho tất cả các loại file phổ biến. Người sử dụng không cần biết trình duyệt tải xuống hoặc sử dụng các file dữ liệu ở xa như thế nào chỉ đơn giản là trình duyệt đã giúp ta trong việc tải xuống và hiển thị các file.

Một ví dụ: Một WWW client đang mở một file ảnh BMP, người sử dụng sẽ thấy nó hiển thị ngay lập tức nó trong cửa sổ ứng dụng của WWW client. Nếu sử dụng một ứng dụng khác, chẳng hạn như FTP sẽ chỉ tải file xuống và lưu trên đĩa, người sử dụng sẽ phải chạy một ứng dụng khác chẳng hạn như Paint Bruh để xem nó.

- Trình duyệt WWW hỗ trợ nhiều giao thức. Trình duyệt WWW không có giới hạn để truy cập chỉ một kiểu server. Trình duyệt WWW hỗ trợ nhiều giao thức để truy cập file trên một FTP server, các bảng chọn trên Gopher server, Newgroups và tài nguyên WWW.

B) GIỚI THIỆU VỀ GIAO THỨC HTTP: HTTP là một giao thức được sử dụng chủ yếu trên Internet ngày nay. HTTP

là một giao thức đi tiên phong trong sự phát triển Web. Nó có một đặc điểm chung là tính không biên giới.

Giao thức hướng đối tượng này được sinh ra từ sự cần thiết cho một giao thức tồn cầu để làm đơn giản việc truy cập vào Internet.

HTTP là một giao thức client/server nằm ở tầng ứng dụng của mô hình phân tần Internet. Bằng việc mở rộng những phương thức hay dòng lệnh, người sử dụng có thể sử dụng HTTP cho nhiều chức năng khác nhau, kể cả chức năng quản lý hệ thống tên server và các đối tượng phân tán. HTTP không ngừng được cải tiến, dẫn đến việc W3C được đưa ra vào năm 1994 đã phát triển thành một tiêu chuẩn chung cho Web.

C) HOẠT ĐỘNG CỦA HTTP: Các tiến trình xảy ra khi Client mở một tài liệu HTNL trên một WWW

server: 1/ Kết nối TCP: Mặc định HTTP server sẽ lắng nghe ở cổng 80. Trình duyệt

lựa chọn một cổng cục bộ (>1024) và thực hiện một kết nối TCP đến cổng một server trước khi dữ liệu được gửi. Một HTTP server có thể lắng nghe ở một cổng khác, tuy nhiên client cần phải cung cấp sô thứ tự cổng chính xác ở URL để có thể kết nối.

2/ Yêu cầu phía Client: Dòng yêu cầu: Chứa một câu lệnh yêu cầu gọi là phương thức và địa chỉ URL

của đối tượng được giải quyết yêu cầu bởi phương thức.

Page 9: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 8

+ Phương thức: Được sử dụng để chỉ thị cho server thi hành một công việc đặc biệt. Hầu hết các server bao gồm cả IIS chỉ hỗ trợ 3 phương thức bởi vì các phương thức không được thi hành bởi hầu hết các trình duyệt.

GET: Phương thức này chỉ thị cho HTTP server gửi đến một đối tượng (các Web site, file, hình ảnh…) bằng địa chỉ URL. Phương thức này chỉ dùng trên HTTP client.

HEAD: Phương thức này cũng giống như GET, tuy nhiên nó chỉ trả về thông tin header của đối tượng chứ không phải tồn bộ dữ liệu.

POST: Phương thức này được sử dụng bởi HTTP client để gửi một đối tượng lên server.

Ví dụ: GET www.microsoft.com/HTTP + Trường tiêu đề của gói tin: Đây là một tập các trường mô tả client và kiểu

dữ liệu được gửi. + Dữ liệu: Nếu một client gửi một dữ liệu chẳng hạn một form đến một

server, nó sẽ nằm trong phiên này của yêu cầu. 3/ Server trả lời: WWW server nhận một yêu cầu và quá trình này căn cứ trên phương thức

yêu cầu chứa trong dòng lệnh yêu cầu. Server sau đó sẽ trả lời. Dòng Status : Chỉ ra yêu cầu thành công hoặc bị lỗi. Message Header Field: Nó cung cấp các thông tin về server và kiểu dữ liệu

trả về. Dữ liệu trả lời: Đây là dữ liệu yêu cầu ở dạng bit. 4/ Đóng kết nối. D) GIỚI THIỆU VỀ SECURE SOCKETS LAYER (SSL) SSL cung cấp một kết nối bảm đảm bằng cách mã hóa và giải mã dữ liệu.

Một SSL-enable server giống như IIS có thể kết nối với một SSL-enable client chẳng hạn như trình duyệt Internet Explorer.

Giao thức SSL nằm ở tầng trình diễn OSI và di chuyển dữ liệu từ tầng ứng dụng HTTP đến tầng chuyển vận TCP. Nó chịu trách nhiệm cho việc chứng nhận, mã hóa và kiểm tra tính tồn vẹn của dữ liệu. Chức năng chứng nhận bảo đảm rằng dự liệu được gửi đến đúng một server cần gửi và server thì bảo đảm. Việc mã hóa dữ liệu bảo đảm dữ liệu không thể bị đọc bởi bất kỳ một người nào khác ngồi server nhận. Giải mã dữ liệu bảm đảm dữ liệu không bị sửa đổi hoặc thay thế trong quá trình truyền đi.

Khi một client kết nối đến một WWW server sử dụng SSL sẽ xảy ra các tiến trình sau:

Client dành lấy chứng nhận server: Client và Server tự giới thiệu về chúng lẫn nhau bằng thông điệp HELLO và trao đổi thông tin (chứa các phương thức mã hóa) để sử dụng, tại phiên trao đổi thông tin, chứng nhận server (chứa một khố công khai ủa server) và dữ liệu ngẫu nhiên sẽ được truyền đi.

Client xác minh server: Client xác minh chứng nhận server từ một chứng thực và sau đó sử dụng nó để gửi một thông điệp để xác thực server. Nếu server không chuyển lại việc xác thực là đúng, client sẽ cảnh báo cho người sử dụng “server is not who it claims to be “ hoặc có thể là một “trojan” server.

Client/server xác nhận khóa chứng thực để sử dụng cho phiên này:

Page 10: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 9

Nếu server trả lời lại thành công, client và server sẽ tạo ra một khóa bí mật ngẫu nhiên (chỉ ra như một Master Key trong đặc tả SSL) từ việc trao đổi dữ liệu ngẫu nhiên và phương thức mã hóa điển hình (chẳng hạn như RSA)

Giải mã dữ liệu với một khóa: Tất cả các dữ liệu gửi ngồi kênh SSL thì được mã hóa với một khóa bí mật.

4. Tổ chức Web site: Các Web site phải tự nhập một mình có nghĩa là nó tự hỗ trợ chính nó. Mỗi

Web site có thể di chuyển dến một máy khác để cân bằng việc tải xuống hoặc chỉ là cho mục đích lưu thông trên mạng. Để làm được việc này, chúng phải tự hỗ trợ mình, tự có các bảo mật riêng và các phạm vi ứng dụng riêng. Nếu người sử dụng là một nhà cung cấp Internet, họ sẽ muốn thiết kế, di chuyển và có người sử dụng cập nhật các Web site mà không quấy rầy đến các site khác trên cùng một máy.

Giao thức HTTP sử dụng các URL để yêu cầu các file từ Web server. Từ khi hầu hết các file đều chứa trong hệ thống file, IIS cần chuyển một URL sang một tên đầy đủ của file, IIS làm công việc này cho mỗi yêu cầu. Tuy nhiên, nó sẽ đưa lên người quản trị để cấu hình server mà URL ánh xạ đến thư mục đó.

Để thiết kế cấu trúc hệ thống file trên một máy mà nó host nhiều Web site, người sử dụng cần biết sự khác nhau giữa thư mục gốc (Home Dir), thư mục gốc ảo (Virtual Root) và thư mục con (Sub Dir). Người sử dụng cũng cần biết khi nào thì phải sử dụng chúng.

Home Dir: Một URL chứa một tên miền đang yêu cầu thư mục chủ. Ví dụ, URL dưới đây

yêu cầu một file mặc định trong thư mục chủ: http://www.myserver.com Công việc của người quản trị cần phải làm là giúp đỡ Web server ánh xạ URL

đến thư mục chủ. Trong ví dụ trên, thư mục chủ của Web site này sẽ được ánh xạ đến:

C:\inetpub\wwwroot Sub Dir: Sub Dir là một thư mục kế thừa một ánh xạ URL từ một cấu trúc hệ thống

file. Ví dụ, nếu thư mục này đã tồn tại: C:\intetpub\wwwroot\sale3 Sau đó, URL này cũng đã tồn tại: http://www.myserver.com/sales Thư mục con không cần được định nghĩa đến Web server bởi người quản trị

hệ thống. Bởi vì chỉ cần tạo ra một thư mục cha bằng Explorer là thư mục sẽ được tạo, không cần phải điều chỉnh trong cấu hình IIS.

Virtual Root: Virtual Root là một thư mục con của một URL mà nó được ánh xạ đến các

thư mục trong hệ thống file mà không thừa kế sự tồn tại của các hệ thống file này. Ví dụ: Nếu người sử dụng muốn site của họ chứa trong một URL đến: C:\inetpub\maketing\website\extenal Thư mục ảo sẽ tạo ra một Web site hiển thị như thể nó là một cấu trúc thư

mục khác hơn hiện tại nó có trong hệ thống file.

Page 11: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 10

Khi nào thì cần sử dụng thư mục ảo: Thư mục ảo được sử dụng khi thư mục con không được sử dụng. Bởi vì thư

mục con không giống như một Web server và chúng không có tất cả chức năng của một thư mục ảo, chúng có thể được dùng ở mọi nơi. Thêm vào đó, thư mụ con còn tổ chức tất cả các file chứa trong một nơi trung tâm cho các Web site.

Các thư mục ảo dược dùng khi tất cả các file trong thư mục ảo không thể chứa được trên cùng một ổ đĩa. Ví dụ: Nếu người sử dụng có một Web site mà lớn hơn 2 Gb họ không thể chứa tất cả chúng trên cùng một ổ đĩa. Trong trường hợp này họ sẽ cần đến các Web site phân tán trong nhiều thư mục ảo trên các thư mục ở mỗi ổ đĩa. Để làm được người sử dụng phải chia Web site của họ lên nhiều đĩa. Về mặt lý thuyết, các truy cập ngẫu nhiên ngang qua nhiều ổ đĩa sẽ nhanh hơn các truy cập trên cùng một đĩa.

Nếu người sử dụng có nhiều Web site và đang chia xẻ thông tin, các thư mục ảo có thể sử dụng để hồn thành công việc này. Ví dụ, nếu phải chia xẻ hình ảnh, cả hai Web site cùng có một thư mục ảo gọi là Graphic mà nó ánh xạ tới cùng một vị trí trên ổ đĩa. Điều này sẽ không làm được với thư mục con. Sự cập nhật các file trong thư mục Graphic sẽ ảnh hưởng đến cả hai site.

5. Các kiểu của bảng thuộc tính của dịch vụ WWW Có 3 kiểu (hoặc còn gọi là lớp) khác nhau của bảng thuộc tính: Master,

Default và File. Người sử dụng có thể định cấu hình riêng cho từng site của mình một trong 3 kiểu trên. Nhưng mọi sự thay đổi đều có ràng buộc với nhau, nó sẽ ảnh hưởng đến các site con và các file.

Các loại bảng khác nhau của bảng thuộc tính sẽ có ích về khía cạnh phân cấp. Với bảng thuộc tính Master nằm ở phân cấp cao nhất và bảng thuộc tính File nằm ở cấp thấp nhất.

Master: Các bảng thuộc tính Master quyết định các thuộc tính mặc định của các Web

site ảo đã tạo với sự thiết lập của IIS, mà các Web site này quyết định các thuộc tính của các file đã được tạo ra trong mỗi Web site. Trong suốt quá trình cài đặt, IIS sẽ nạp các thuộc tính mặc định cho các bảng thuộc tính Master. Mỗi site ảo mà người sử dụng tạo ra sẽ kế thừa việc thiết lập này. Nếu họ thay đổi thiết lập ban đầu của bảng thuộc tính Master, các Web site ảo con sẽ kế thừa các thiết lập mới này nhưng các Web site ảo tạo trước đó sẽ giữ nguyên.

Default: Quá trình cài đặt sẽ tạo ra các Web site với các thuộc tính mặc định của nó.

Những các file nào mà được tạo ra với Web site mặc định sẽ kế thừa các thiết lập này.

File: Các file tạo ra trong thư mục ảo sẽ kế thừa các thiết lập của thư mục ảo đó,

ứng với các file được tạo ra trong các trang Web mặc định sẽ kế thừa các bảng thuộc tính của Web site đó. Sau khi một file được tạo ra thì các thuộc tính được cấu hình ở mức file.

6. Bảng thuộc tính WWW: Dịch vụ WWW trên IIS có thể cấu hình 9 bảng thuộc tính sau:

Page 12: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 11

Web Site: Sử dụng bảng thuộc tính Web Site để thiết lập sự nhận biết Web site, chỉ rõ số kết nối cho phép và cho phép hoặc cấm truy cập vào một Web site.

Operators: Sử dụng bảng thuộc tính Operators để điều khiển các tài khoản người dùng nào có quyền quản trị các Web site của người sử dụng.

Performance: Sử dụng bảng thuộc tính Performance để điều chỉnh cho thật tốt sự thi hành của các Web site.

ISAPI filter: Sử dụng bảng thuộc tính ISAPI filter chứa các bộ lọc ISAPI. Người sử dụng có thể sử dụng ISAPI để chạy các ứng dụng từ xa. Yêu cầu một URL mà nó ánh xạ đến một bộ lọc đang hoạt động tại các ứng dụng đó. Có thể sử dụng các thông sô cài đặt của nó để ánh xạ một tên file đến bộ lọc cho phép trên một Web server.

Home Direcory: Sử dụng bảng thuộc tính Home Direcory để thay đổi thư mục chứa các Web site và điều chỉnh các thuộc tính của nó.

Document: Sử dụng bảng thuộc tính Document để chỉ định một tài liệu mặc định và gán các chức năng mặc định cho Web site.

Directory Security: Sử dụng bảng thuộc tính Directory Security để cấu hình các tính năng bảo mật cho Web server.

HTTP Header: Sử dụng bảng thuộc tính HTTP Header để thiết lập các gia trị trả về của trình duyệt trong phần header của một trang HTML.

Custom Error: Sử dụng bảng thuộc tính Custom Error để liệt kê các thông báo trả về trình duyệt dành cho các lỗi HTTP.

7. Cấu hình WWW - Chia xẻ thư mục, file: Bảng thuộc tính của thư mục WWW trong Internet Service Manager (ISM)

cho phép người quản trị chia xẻ các thư mục và file cho WWW client. Những thư mục này là những thư mục cụ bộ từ phân vùng FAT/NTFS hoặc là các thư mục từ những server khác mà IIS có thể truy cập được.

WWW chia xẻ kết nối mặc định: Khi mà một client chỉ cung tên server ngay tại địa chỉ URL gọi là thư mục chủ. Ví dụ, nếu một client mở một địa chỉ: http://www.microsofts.com dịch vụ IIS trả về một tài liệu mặc định trong thư mục chủ trên www.microsofts server. Các thư mục chia xẻ khác vơi thư mục chủ được tham chiếu đến thư mục ảo.

- Sử dụng ISM để chia xẻ thư mục: Có hai hộp thoại hiện ra cùng với ISM khi ta cấu hình việc chia xe thư mục

WWW. Thẻ Directory, WWW hiện thị danh sách tất cả các cấu hình thư mục ảo WWW. Nó cũng cho phép người sử dụng thiết lập các thuộc tính kềm theo cho tất cả các thư mục chia xẻ.

+ Tài liệu mặc định: File này được trả về khi người sử dụng mở một thư mục và không chỉ định

tên file. Điển hình cho file này là các file tên default.htm hoặc index.htm. + Thư mục đang duyệt: Nếu người sử dụng mở một thư mục mà không chứa một tài liệu mặc định,

server sẽ trả về một danh sách các file trong thư mục. + Bảo mật:

Page 13: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 12

IIS có nhiều chức năng bảo mật để giữ gìn server và dữ liệu của người sử dụng khỏi những cuộc xâm nhập bất hợp pháp và hacker. IIS dựa vào sự thiết lập của Windows NT (TM) và một hệ thống chứng nhận C2. Giữ an tồn cho IIS server là một sự kết hợp của việc thiết lập bảo mật cho Windows NT và các chứng năng bảo mật của dịch vụ IIS. Thêm vào đó nếu server kết nối với Internet, một bộ chọn kênh (rooter) hoặc bức tường lửa có thể được thiết lập để cung cấp thêm độ an tồn.

8. Thư mục ảo: Thư mục ảo là một thư mục phi vật lý chứa trong thư mục chủ của dịch vụ IIS

(WWW hoặc FTP) nhưng nó xuất hiện trong suốt đối với người sử dụng vào các Web site này.

Thư mục ảo tăng khả năng linh hoạt cho việc người sử dụng quyết định lưu trữ file ở đâu trên server của họ. Bằng cách sử dụng các thư mục ảo để có thể cập nhật và truy cập dễ dàng nhất. Nó cũng cho phép tăng thêm dung lượng lưu trữ cho Web site mà không cần phải tắt server.

Thư mục ảo có thế thiết lập cho cả dịch vụ WWW lẫn FTP chạy trên IIS. Thư mục ảo có thể tạo ra các thư mục định vị ở:

- Trên cùng một đĩa: Như là các thư mục chủ WWWroot hoặc FTProot. - Một đĩa ở một máy khác trong mạng cục bộ. - Ở một đĩa của máy khác trên mạng, mà máy này phải cùng tên miền với

máy có dịch vụ IIS. a) Thư mục ảo cục bộ: Người sử dụng có thể tạo ra các thư mục ảo cục bộ cho các thư mục được lưu

trữ trên bất kỳ đĩa nào trên một máy tính được cài đặt IIS. Khi cấu hình mộït thư mục ảo cục bộ, người sử dụng phải cài đặt một biệt

danh cho thư mục. Biệt danh này có thể là tên thư mục hoặc một tên bất kỳ nào khác mà nó nhận diện một Web site đến người sử dụng. Họ cũng phải cung cấp một đường dẫn đầy đủ cho thư mục ảo.

b) Thư mục ảo từ xa: Sử dụng thư mục ảo từ xa cho các thư mục đã được cài đặt trên các máy khác

với tên miền của máy đã cài đặt IIS. Cũng như đối với các thư mục ảo cục bộ, khi người sử dụng cấu hình một thư

mục ảo từ xa, họ được yêu cầu tạo một biệt danh cho thư mục và phải cung cấp một một đia chỉ cho thư mục tuân theo quy ước UNC (quy ước đặt tên địa chỉ tồn cục). Để truy cập thư mục với một UNC, phải nhập vào một tên của người sử dụng và password phù hợp. Tên người sử dụng và password sẽ được sử dụng bởi người truy cập vào dữ liệu chứa trong thư mục ảo.

Chú ý: Chắc chắn rằng tài khoản của người sử dụng mà đã thiết lập sẽ cho phép truy

cập Internet đến một thư mục ảo từ xa mà chỉ cung cấp một quyền tối thiểu cho việc sử dụng site này. Đừng nên dùng tài khoản của nhà quản trị để truy cập các thư mục ảo.

c) Thư mục ảo từ xa và FrontPage: Công cụ quản lý và soạn thảo FrontPage tự động quản lý việc sử dụng các

thư mục ảo. Khi được cài đặt, FrontPage sẽ khởi tạo các thư mục ảo cho các thư mục chứa các phần mở rộng có thể thực thi. Thêm vào đó, ban có thể cho phép các

Page 14: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 13

phần mở rộng của file chuyển thành các đối tượng có thể thực thi được bằng cách đánh dấu vào các thư mục chứa chúng, chẳng hạn như các đối tượng mở rộng sau:

Active Server Pages (.ASP) Các file Internet database connector (.idc) CGI Phần mở rộng ISAPI (.dll) Perl Script (.pl) Chú ý: bởi vì FrontPage không hỗ trợ đối với các vùng có nội dung không

liền nhau vì vậy không thể dùng thư mục ảo để trộn các vùng có nội dung không liền nhau trong FrontPage.

9. Server ảo: Nhiều tên miền có thể được host lên một máy đơn đang chạy IIS bằng chách

sử dụng server ảo. Với nhiều server ảo người sử dụng có thể host nhiều site Web và site FTP lên

một máy đơn đang chạy IIS, điều này có nghĩa là không cần cấp một máy và một phần mềm trọn gói cho mỗi site này. Người sử dụng đơn giản chỉ cần một địa chỉ IP duy nhất cho mỗi tên miền được phân công đến server và bằng cách sử dụng Host Header người sử dụng có thể sử dụng một địa chỉ IP cho nhiều tên miền. Tuy nhiên chỉ site WWW mới có thể sử dụng Host Header. Server ảo cũng tập trung hóa việc áp dụng và đơn giản hóa việc nâng cấp các phần mềm server.

Việc host nhiều server ảo lên cùng một máy có thể giảm bớt sự thi hành của phía server nói chung và server ảo sử dụng Host Header đòi hỏi một giao thức HTTP phiên bản 1 tương hợp với trình duyệt Web.

Host Header: Khả năng của các Host Header của HTTP phiên bản 1 cho phép người sử

dụng kết hợp nhiều tên của máy Host với chỉ một địa chỉ IP. IIS sử dụng thông tin Host Header để đổi địa chỉ các tên khác nhau của server ảo. Để sử dụng Host Header người sử dụng phải chuyển đổi từ Host name thành địa chỉ IP sử dụng cả hệ thống tên miền (DNS) server hoặc các file của các Host. Chức năng của file host là hỗ trợ sự chuyển đổi từ các tên Host thành các địa chỉ IP.

Chú ý: IIS cung cấp các trình duyệt Web không tương thích với một danh sách các

server tương thích với địa chỉ IP cho trước. Khi người sử dụng chọn một server, một cookie mới sẽ được thay thế trên ổ đĩa của người sử dụng và cookie này sẽ được sử dụng cho những lần truy cập sau đến server ảo.

10. IIS FTP Server: FTP là một giao thức được dùng để truyền nhận file giữa hai máy trên mạng

Internet. FTP là một giao thức ra đời sớm nhất được sử dụng trên mạng TCP/IP và

mạng Internet. Mặc dù WWW đã thay thế hầu hết các chức năng của FTP, FTP vẫn còn được sử dụng để chép một file từ một client đến một server trên Internet. Không như HTTP, FTP sử dụng 2 cổng, một để truyền và một để nhận file. Như vậy FTP vẫn còn có hiệu lực hơn HTTP cho những tác vụ đặc biệt của việc truyền file.

Page 15: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 14

Để sử dụng FTP truyền file giữa hai máy, cả hai máy đều phải có vai trò riêng, một là FTP Client, một là FTP Server. FTP Client ra lệnh cho server tải xuống hoặc đưa lên một file cũng như tạo và thay đổi các thư mục.

FTP sử dụng giao thức TCP như một phương tiện cho tất cả các kết nối và dữ liệu trao đổi giữa client và server. TCP là một phương thức kết nối có định hướng, có nghĩa là có một phiên kết nối được thành lập giữa client và server trước khi dữ liệu được truyền đi. Sự kết nối còn lại này hoạt động trong tồn bộ phiên hoạt động của FTP. Giao thức có định hướng này rất nổi tiếng về độ tin cậy và sự phục hồi lỗi ứng với các đặc điểm sau:

- Điều khiển luồng: Bởi vì các client và server đều tham gia trong việc truyền các gói tin vì vậy các vấn đề về việc truyền tin như là các gói tin làm tràn bộ nhớ và lạc mất các gói tin là không thể xảy ra.

- Sự chứng nhận: Máy tính gửi các gói dữ liệu và mong chờ một tín hiệu chứng nhận từ các máy tính nhận. Sự chứng nhận này kiểm tra xem máy đó đã nhận được gói tin hay chưa.

- Sự truyền lại: Nếu việc truyền đi của máy tính không nhận được một tín hiệu ACK ứng với một khoảng thời gian đã định trước, nó sẽ giả định rằng gói tin đó đã bị mất hoặc bị thất lạc thì sau đó nó sẽ truyền lại gói tin đó.

Tính tuần tự: Tất cả các gói tin sẽ được đánh số và gửi cùng lúc, vì thế máy nhận sẽ biết cách tổ chức dữ liệu nhận được.

- Checksum: Tất cả các gói tin được chứa trong một checksum để đảm bảo tính tồn vẹn của dữ liệu. Nếu dữ liệu bị thất lạc ở một nơi nào đó trong suốt quá trình truyền, checksum sẽ chỉ ra rằng dữ liệu nhận được không giống với dữ liệu gửi.

a) Các thuộc tính của FTP trên IIS: Mỗi site FTP mà người sử dụng tạo ra đều có một bảng thuộc tính riêng của

nó. Những cài đặt chung hoặc các thuộc tính cho mỗi site được hiển thị trong các bảng thuộc tính này.

Dịch vụ FTP sử dụng 5 bảng thuộc tính để cấu hình cho các dịch vụ FTP, cụ thể như sau:

FTP Site. (Site FTP) Security Account. (Bảo mật tài khoản) Messages. (Thông báo) Home Directory. (Thư mục gốc) Directory Secuity. (Bảo mật thư mục) Trong suốt quá trình cài đặt, IIS gán các giá trị mặc định cho việc thiết lập

trên các bảng thuộc tính khác nhau. Người sử dụng có thể dùng chung các tài liệu trên site FTP của họ mà không phải thay đổi các thiết lập mặc định này nhưng cũng dễ dàng trong việc thay đổi các thuộc tính được thiết lập theo ý thích.

Mỗi site FTP được tạo ra và mỗi file ứng với mỗi site FTP đều có một thuộc tính riêng mà người sử dụng có thể điều chỉnh để tuỳ biến những cấu hình thiết lập tên từng site một hoặc từng file một. Họ cũng có thể điều chỉnh việc thiết lập các thuộc tính mặc định các site và các file con đã thiết lập tuỳ biến trước đó.

Có 3 kiểu (hoặc các lớp) của các bảng thuộc tính FTP với IIS và chúng tương tự như 3 lớp của bảng thuộc dùng trên các site WWW. Các lớp thuộc tính FTP gồm: Master, Dedault và File. Người sử dụng có thể tuỳ biến cấu hình của 3 kiểu

Page 16: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 15

thuộc tính này của bảng thuộc tính nhưng khi thay đổi cấu hình ở một nơi nào đó thì nó cũng ảnh hưởng đến các site và các file con mà họ đã tạo.

b) Bảo mật FTP Các đặc trưng bảo mật của dịch vụ FTP cũng giống như dịch vụ WWW.

Khác nhau cơ bản ở chỗ không có giao thức cho việc thiết lập bảo mật dữ liệu của FTP giống như HTTP và SSL

- Truy cập phía server: Dịch vụ i có thể được cấu hình trên trang thuộc tính Security Account cho các kết nối đến client và những địa chỉ IP đặc biệt. Đây là một cách tốt để ngăn chặn những người sử dụng không mong muốn truy cập vào server.

- Truy cập phía người dùng: Dành cho các server với các file chung, các client thường kết nối dưới một tên người dùng ẩn danh. Nếu dịch vụ FTP được cấu hình cho phép điều này trong thuộc tính Security Account, nó sẽ ánh xạ tên người dùng ẩn danh đến một cấu hình tài khoản của người sử dụng Windows NT. Tài khoản mặc định tạo ra là IUSR_computername và được sử dụng bởi IIS.

Nếu cho phép sử dụng tên người dùng ẩn danh bị tắt. Người sử dụng sẽ được cung cấp một tên người dùng chính xác. Tên người dùng này phải đúng là môt tài khoản Windows NT ở FTP Server hoặc trong một miền mà FTP Server cung cấp.

- Truy cập tài nguyên FTP: Dịch vụ FTP có thể cấu hình trên trang thuộc tính Security Directory để cho phép Client chỉ có thể đọc hoặc ghi lên file trong một thư mục được chia xẻ.

- Truy cập File: Nếu các yêu cầu đã qua các kiểm tra bảo mật trước đó, dịch vụ FTP sẽ đưa các yêu cầu này đến hê thống file để đạt được tài nguyên. Dịch vụ FTP đóng vai trò của người sử dụng FTP Client khi tạo ra các yêu cầu. Nếu hệ thống file từ chối truy cập đến tài nguyên, FTP server sẽ trả về khoảng 550 tên file “Access Denied” (từ chối truy cập). Các truy cập file được cấu hình bằng cách sử dụng File Manager hoặc các thuộc tính file trong Explorer.

V. APACHE WEB SERVER: 1. Giới thiệu về Apache Web Server: Apache là một phần mềm Web server được cung cấp bởi tập đồn Apache

Group. Đây là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va LINUX và rất được phổ biến bởi tính chặt chẽ, uyển chuyển và linh hoạt. Hiện nay Apache là một Web server đang quản lý hơn 50% số Web site đang có trên thế giới.

2. Tổ chức Web site: Trước khi bắt đầu xây dựng một Web site, người sử dụng có thể muốn tìm

hiểu tổ chức của nó. Khi có nhiều hơn các khả năng suy nghĩ về các cách tổ chức cấu trúc một Web site, người sử dụng có thể suy nghĩ về nó như một viễn cảnh đi lại. Trong những suy nghĩ thêm của nó về khía cạnh này, sẽ nảy sinh ra những câu hỏi: Người sử dụng có thể làm gì để dễ dàng giữ gìn Web site của mình? Các quy ước nào sẽ làm đơn giản Web site của họ?

3. Cài đặt Apache trên Windows: Chạy file Apache.msi đã tải Apache về, người sử dụng sẽ phải nhập các thông

tin sau:

Page 17: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 16

- Có hay không việc chạy Apache cho tất cả mọi người sử dụng (như một dịch vụ) hoặc cài đặt Apache để chạy trên một cửa sổ giao tiếp khi chọn shortcut khởi động Apache.

- Tên Server, tên miền và tài khoản email của người quản trị. - Tên thư mục để cài Apache vào (mặc định là C:\Program Files\Apache

Group\Apache mặc dù người sử dụng có thể thay đổi sang một thư mục bất kỳ mà họ muốn)

- Kiểu cài đặt. Chức năng “Complete” sẽ cài đặt mọi thứ, bao gồm cả mã nguồn nếu người sử dụng đã tải về gói –srm.msi. Chọn cài đặt “Custom” nếu không muốn chọn cài đặt tài liệu hoặc mã nguồn từ gói cài đặt này.

Trong suốt quá trình cài đặt Apache sẽ cấu hình các file trong thư mục conf cho thư mục lựa chọn cài đặt của người sử dụng, tuy nhiên nếu bất kỳ những file nào trong thư mục này đã tồn tại chúng sẽ không bị chép chồng lên.

Sau khi cài đặt xong, người sử dụng sẽ phải sửa đổi các file cấu hình trong thư mục conf. Những file này sẽ được cấu hình trong suốt quá trình cài đặt để sẵn sàng cho Apache chạy từ thư mục mà họ đã cài đặt vào với các tài liệu phục vụ từ thư mục con htdocs. Có rất nhiều chức năng trước khi bắt đầu thực sự sử dụng Apache. Tuy nhiên, để việc khởi động nhanh chóng các file này nên làm việc theo các cài đặt mặc định.

Nếu người sử dụng tháo cài đặt Apache khỏi hệ thống, các cấu hình và các file log sẽ không được gỡ ra. Người sử dụng phải sẽ cần phải xóa các cây thư mục đã cài đặt (mặc định là C:\Program File\Apache Group\Apache) nếu người sử dụng không muốn giữ các cấu hình của họ và các file Web khác. Từ khi fie httpd.conf đã được cấu hình để sử dụng Apache, người sử dụng cũng phải phải gỡ bỏ nó và các file khác mà đã được tạo cũng như bất kỳ các file log nào mà Apache đã tạo.

4. Chạy Apache trên Windows: a) Chạy như một dịch vụ: Đây là các tốt nhất nếu muốn Apache tự động khởi

động khi khởi động máy và giữ Apache vẫn chạy khi đã log-off. Để khởi động Apache như một dịch vụ, trước hết cần phải cài đặt Apache

như một dịch vụ. Nhiều dịch vụ Apache có thể được cài đặt với mỗi tên và cấu hình khác nhau. Để cài đặt một dịch vụ Apache mặc định có tên “Apache”. Chọn “Install a Sevice for All User” khi bắt đầu bung gói cài đặt Apache. Sau khi cài xong có thể khởi động dịch vụ Apache bằng cách mở cửa sổ Service, chọn Apache, nhắp chuột vào Start, Apache sẽ bắt đầu chạy, ẩn trên màn hình. Sau đó có thể ngừng Apache bằng cách nhắp chuột vào Stop. Có một lựa chọn khác để sử dụng dịch vụ Apache từ các dòng lệnh sau tại cửa sổ giao tiếp:

Net start Apache Net Stop Apache Sau khi khởi động Apache, người sử dụng có thể kiểm tra nó bằng cách sử

dụng thủ tục như sau để chạy trên cửa sổ giao tiếp: Apache –n “service name” Để chắc chắn việc đang sử dụng các dịch vụ được cấu hình mặc định của

Apache. Có nhiều dịch vụ khác của Apache được cài đặt và chạy như một dịch vụ.

Các dòng lệnh sau sẽ khởi động, khởi động lại, Tắt và Ngừng các dịch vụ: - Apache –n “service name” –k start.

Page 18: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 17

- Apache –n “service name” –k restart. - Apache –n “service name” –k shutdown. - Apache –n “service name” –k stop. Ký hiệu chuyển đảo –n để chỉ các dịch vụ Apache mặc định, còn khi không

có –n mà chỉ có –k dòng lệnh sẽ chỉ định rằng Apache đang chạy trên một cửa sổ giao tiếp, trường hợp này chỉ yêu cầu đối với các tên dịch vụ của Apache có chứa khoảng trắng.

Ngồi ra để Stop Apache trên cửa sổ giao tiếp còn có thể ấn tổ hợp phím Ctrl + C hoặc Ctrl + Break.

b) Chạy Apache trên cửa sổ giao tiếp: Một khi đóng cửa sổ giao tiếp sẽ kết thúc việc chạy Apache. Tại biểu tượng Start menu và trình Windows NT Service Manager có thể cung

cấp một giao diện đơn giản để quản trị Apache. Nhưng dễ dàng nhất để làm việc là từ dòng lệnh.

Khi làm việc với Apache điều quan trọng nhất là việc tìm các file cấu hình. Người sử dụng có thể chỉ ra file cấu hình bằng hai cách (dùng các dòng lệnh):

* -f chỉ đến đường dẫn một file cấu hình: apache –f c:\myserver\conf\my.conf apache –f test\test.conf * -n đường dẫn đến một file cấu hình của một dịch vụ Apache đã được cài

đặt. apache –n “service name” Trong các trường hợp trên, Server Root phải được thiết lập trong file cấu

hình. Nếu người sử dụng chỉ ra một tên file cấu hình với –n và –f. Apache sẽ sử

dụng tên file được biên dịch ở trong server, thường là “conf/httpd.conf”. Gọi đến Apache với ký hiệu chuyển đảo –v sẽ hiển thị các giá trị đã đánh nhãn SERVER-CONFIG-FILE. Apache sẽ quyết định ServerRoot của nó bằng các cách sau:

- Một chỉ thị SeverRoot qua ký hiệu chuyển đảo –c. - Ký hiệu chuyển đảo –d trên dòng lệnh. - Thư mục đang làm việc hiện thời. - Một khóa registry được tạo nếu người sử dụng cài đặt nhị phân. - SeverRoot được biên dịch bên trong server. SeverRoot được biên dịch bên trong server thường là “/apache”. Nếu gọi đến

Apache với ký hiệu chuyển đảo –v sẽ hiển thị các giá trị được đánh nhãn giống như là của “HTTPD Root”.

Khi gọi đến Apache từ trình đơn Start. Apache thường bỏ qua các thông số vì thế sử dụng khố registry là một kỹ thuật vẫn được ưa thích hơn cho Apache.

Trong quá trình cài đặt, một khóa registry sẽ được tạo, ví dụ: HKEY_Local_machine\Sofware\ApacheGroup\Apache\1.3.13\ServerRoot

Khóa này được biên dịch vào trong server và có thể cho phép kiểm tra các phiên bản mới mà không tác động đến phiên bản hiện thời. Dĩ nhiên, phải chắc rằng không cài đè phiên bản mới lên phiên bản cũ trong hệ thống file.

Giá trị của khóa này là thư mục “ServerRoot” chứa trong thư mục Conf. Khi Apache khởi động, nó sẽ đọc file httpd.conf từ thư mục này. Nếu thư mục này chứa chỉ thị ServerRoot mà nó khác với thư mục đang tồn tại trong khóa registry, Apache

Page 19: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 18

sẽ quên khóa registry và sử dụng thư mục được thiết lập trong file cấu hình. Nếu người sử dụng chép một thư mục Apache hay các file cấu hình đến một nơi khác, nó sẽ vẫn còn cho đến khi cập nhật lại thư mục ServerRoot trong file httpd.conf đến một nơi khác.

Để chạy Apache từ dòng lệnh như một ứng dụng giao tiếp, sử dụng dòng lệnh: apache

Apache sẽ được bắt đầu và sẽ vẫn chạy cho đến khi người sử dụng nhấn tổ hợp phím Ctrl – C.

Để kiểm tra việc thiết lập các thông số cho file cấu hình dùng lệnh:

apache –t Lệnh này được sử dụng để thay đổi các file cấu hình khi Apache vẫn còn

đang chạy. Người sử dụng có thể tạo ra các thay đổi, xác nhận việc thay đổi là tốt bằng lệnh “apache –t”, sau đó khởi động lại Apache với “apache –k restart”. Apache sẽ đọc lại các file cấu hình cho phép thực hiện bất kỳ một tiến trình nào để hồn thành mà không xảy ra gián đoạn. Bất kỳ một yêu cầu nào cũng sẽ được phục vụ với việc sử dụng cấu hình mới.

5. Kiểm tra Apache trên Windows: Chạy Command Prompt danh sách Program của trình đơn Start. Chọn thư mục đã cài đặt Apache vào và gõ lệnh apache và đọc các thông

báo lỗi (nếu có). Sau đó xem lại file error.log cho các cấu hình bị thiết lập sai. Nếu người sử dụng chấp nhận mặc định khi cài đặt Apache, các dòng lệnh sẽ là:

c: cd "\program files\apache group\apache" apache Wait for Apache to exit, or press Ctrl+C more <logs\error.log Sau khi xem file error.log người sử dụng sẽ thấy một vài vấn đề bị lỗi và họ

có thể sửa chữa và khởi động lại một lần nữa. Sau khi khởi động, Apache sẽ chạy (như ở cửa sổ giao tiếp hoặc như một

dịch vụ) và sẽ bắt đầu lắng nghe ở cổng 80, trừ phi người sử dụng thay đổi Port, Listen hoặc BindAddress (trong file cấu hình). Hãy thực hiện kết nối đến server và truy cập trang Web mặc định bằng cách mở trình duyệt và nhập vào URL sau:

http://localhost/ Trình duyệt sẽ trả lại một trang Welcome và một liên kết đến sổ hướng dẫn

Apache như sau:

Page 20: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 19

Nếu không người sử dụng sẽ nhận được một thông báo lỗi, có thể xem lại file

error.log trong thư mục log. Nếu máy tính không nối mạng, họ có thể sử dụng URL sau đây:

http://127.0.0.1/ Một khi các cài đặt cơ sở đang làm việc, người sử dụng phải cấu hình các

thuộc tính của nó bằng cách sửa đổi nội dung các file trong thư mục conf. 6. Virtual Host: Vitual Host là một sức mạnh thật sự của Apache. Virtual Host cho phép

Apache Web Server chạy cùng lúc nhiều Web site. Apache là một HHTP server đầu tiên cung cấp các hỗ trợ cho việc xây dựng một virtual site. Trong khi các server của NCSA và các server khác cũng cung cấp sự hỗ trợ virtual site nhưng Apache cung cấp một khả năng thi hành tốt hơn và có nhiều điểm đặc trưng hơn các server khác.

Chỉ mới nhìn qua, dường như sự thuận lợi chính của virtual site là chỉ để tô điểm, nó cho phép nhiều Web site được đánh địa chỉ tên miền của nó trên các máy đơn đã được chia xẻ. Tuy nhiên sự thuận lợi của nó nhiều kết quả rõ ràng nằm trong cách quản trị Web site và cách những máy khác sử dụng nó. Một Virtual host thường được tạo ra nhằm mục đích như sau:

- Khách hàng có thể dễ dàng truy cập các Web site của mình trên các server cho thuê. Từ khi người thuê server có thể sử dụng tên miền của chính mình, các địa chỉ có khuynh hướng ngắn đi. Điều này đã giúp đỡ việc đưa ra tính chuyên nghiệp đồng nhất trên thế giới. Những người sử dụng thích nhớ những địa chỉ ngắn hơn từ khi tên miền có một vài sự thích hợp với tên của các tập đồn công ty.

- Rút gọn tối đa các máy tính và phần cứng mạng, nhiều site tốc độ chậm có thể nằm ở tại một máy đơn, điều này làm giảm bớt giá thành của việc đưa một site lên mạng.

- Giảm bớt giá thành về con người kết hợp với các hệ thống quản trị. Thay cho việc quản lý và cấu hình một server chuyên dụng cho các tên miền. Một Web server chỉ cần duy trì vài file cấu hình và một số các box. Điều này sẽ dẫn đến việc giảm một số hệ thống cần để duy tu nó, như vậy việc duy trì một mảng sẽ đơn giản hơn và ít tốn kém hơn.

Page 21: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 20

Bởi vì hầu hết các Web site khi tạo ra đều không đủ đường truyền lưu thông để sử dụng hết các tài nguyên trên một máy đơn, điều đó là sự khát khao từ một người quản trị cá nhân cho phép một server đơn giản trên mạng và chạy như nhiều máy khác nhau thay vì dành cho phần cứng và tiền bạc để mỗi site được đưa lên, một vài server cấu hình các lệnh để đưa ra các kết quả như nhau: một virtual site. Bởi vì phí tổn để cài đặt một server có thể chia xẻ cho nhiều site, thời gian để cấu hình và quản lý Web site được giảm đi rất nhiều.

Virtual host đã đem lại một khía cạnh chắc chắn của việc tạo ra một trang Web di động. Khi một site là ảo, nó dễ dàng di chuyển đến một Web server khác trong cùng một mạng hoặc ở một nơi nào khác. Đây chính là vấn đề của việc chuyển chỗ các trang HTML của các site đến một máy mới và điều chỉnh các thông tin DNS (Domain Name Server) của site đưa lên một server mới. Để việc thích nghi với DNS được cập nhật, đơn giản chỉ cần tạo ra sự đổi hướng trên server cũ . Điều này cho phép sự lưu thông được trôi chảy mà không có sự sai sót, đó là một vấn đề quan trọng với các site đang lớn mạnh đang được lưu thông để tạo ra kinh doanh.

Về mặt lịch sử, khi người sử dụng muốn một site đang host sử dụng tên miền của họ, sự lựa chọn có thể được là mua hoặc thuê một máy tính và dùng nó để cấu hình như một Web server. Phải chịu các phí tổn để tiêu tốn cho việc quản lý server này. Các phí tổn này dễ thường là rất lớn, việc này đã thúc đẩy các nhà cung cấp dịch vụ Internet (ISP) thêm vào các cách để hỗ trợ nhiều Web site trên một host, điều này dẫn đến một vài giải pháp gần đây, chẳng hạn như Home Page Approach.

Home Page Approach tạo ra một địa chỉ giống như: http://www.isp.dom/~name. Home Page Approach là một cách thích hợp để phục vụ các trang người dùng

cục bộ. Nhưng khi dùng nó để phục vụ cung cấp thông tin lớn và đang được truy cập thường xuyên bởi một số lớn người sử dụng thì việc này sẽ tạo ra một địa chỉ tồi mà rất khó nhớ, tên nhạp vào dài, dễ xảy ra sai sót phía người sử dụng và trông không được chuyên nghiệp lắm.

Xây dựng một virtual host: Các phạm vi liên quan của virtual host, virtual site và multihomed server

thông thường được sử dụng thay thế cho nhau. Để dễ hiễu hơn, chỉ cần suy nghĩ chúng như sau:

Để tạo một virtual site, thì cần phải cấu hình một virtual host, để virtual host làm việc cần phải tạo một mutihomed server, như vậy rõ ràng là có sự khác nhau giữa chúng.

Một máy tính multihomed là môt máy tính có thể trả lời cùng một lúc đến nhiều địa chỉ IP. Một máy tính mày có thể được truy cập bởi nhiều tên (chẳng hạn như www.mailhost.foo.com và www.foo.com) mà nó thi hành cho các địa chỉ IP như nhau không thể là một máy tính Multihomed.

Việc đặt bí danh, một khả năng cung cấp bởi DNS trong một bảng ghi tài nguyên CNAME , hoặc liệt kê các tên máy tính trên etc/host/file đằng sau các địa chỉ IP thì chỉ tiện lợi cho người sử dụng đang truy cập vào một tài nguyên trên mạng. Thông thường người ta mất nhiều thời gian để nhớ tên, và một vài tên chẳng hạn như WWW hoặc FTP thì là tiêu chuẩn đặc trưng cho các máy tính mà nó đưa lên mạng các dịch vụ với tên tương tự. Người sử dụng chỉ cần nhớ tên miền nơi các tài

Page 22: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 21

nguyên nơi các tài nguyên đó sử dụng tên truyền thống (chẳng hạn www.aple.com, www.mailhost.com hoặc ftp.aple.com ) Một máy Multihomed cần nhiều hơn thế, nó phải trả lời cho cùng lúc hai hoặc nhiều địa chỉ IP chẳng hạn địa chỉ IP 1.2.3.4 là địa chỉ được ấn định bởi mạng làm việc Internet của người sử dụng cung cấp khi họ sign up với chúng.

7 .Virtual site: Virtual site là một Web site mà nó cùng nằm trên một server với các Web site

khác. Mỗi Web site thì được truy cập bằng tên của chúng và chia xẻ tất cả tài nguyên phần cứng với các virtual site khác. Mặc dù tất các yêu cầu đều được trả lời bằng các xử lý như nhau trên HTTP server, nhưng các trang chủ khác nhau được trả về cho mỗi site phụ thuộc vào tên hoặc địa chỉ IP sử dụng khi truy cập các thông tin.

Một vấn đề về mạng khác là việc phải đánh địa chỉ trước khi có thể multihome là DNS. DNS cung cấp một tên máy đến dịch vụ chuyển sang IP. Khi tên máy được đánh số, con người thích sử dụng tên máy hơn. DNS chuyển các tên sang số và các số sang tên. Sự thay đổi này có ý nghĩa là nếu người sử dụng kết nối với Internet, và đang chạy với một tên server . Nếu không thì ngược lại không một ai khác chạy nó. Nếu người sử dụng không phải đang chạy với DNS của chính mình, họ sẽ cần phải ngang hàng với quyền quản trị mạng của chính mình để thi hành bất kỳ sự thêm vào hoặc thay đổi DNS.

8. Cấu hình Apache trên Windows: a) Các file cấu hình của Apache server: Web server sẽ đọc 3 file chứa các chỉ thị cấu hình. Bất kỳ một chỉ nào nào

được hiển thị trong các file này đều sẽ được thực hiện. Conf/httpd.conf: Chứa các chỉ thị mà nó điều khiển sự thi hành của

server. Tên file có thể được lướt qua với ký hiệu khả chuyển –f. Conf/srm.conf: Chứa các chỉ thị mà nó điều khiển sự chỉ định các tài

liệu mà server cung cấp cho các client. Tên file có thể được lướt qua với chỉ thị ResourceConfig.

Conf/access.conf: Chứa các chỉ thị mà nó điều khiển sự truy cập các tài liệu. Tên file có thể được bỏ qua với chỉ thị AccessConfig.

b) Thiết lập cấu hình Apache trên Windows: Apache được cấu hình bởi các file trong thư mục conf. Các file này cũng

giống như các file được sử dụng để cấu hình cho Unix nhưng có một vài chỉ thị khác cho Apache trên Windows.

Quá trình cấu hình sẽ được bắt đầu bằng cách tham khảo httpd.conf và các chỉ thị của nó. Mặc dù các file access.conf và srm.conf còn tồn tại song chúng là những file cũ mà không được sử dụng nhiều bởi hầu hết các nhà quản trị và người sử dụng sẽ không tìm thấy bất kỳ chỉ thị nào ở đó.

Httpd.conf chứa rất nhiều các tư liệu của chính nó, được sinh ra bởi các chỉ thị cấu hình mặc định gửi gắm khi khởi động với Apache server. Bắt đầu bằng cách đọc các lời chú thích để hiểu file cấu hình và làm một số thay đổi nhỏ, khởi động lại Apache trong một cửa sổ giao tiếp với mỗi thay đổi. Nếu người sử dụng tạo ra một lỗi, nó sẽ dễ dàng sao lưu để định dạng lần làm việc cuối cùng .

Page 23: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 22

Các khác nhau của Apache trên Windows chính là: + Bởi vì Apache trên Windows thì đang luồng, nó không sử dụng các tiến

trình riêng biệt cho mỗi yêu cầu như là của Unix. Thay cho việc thường chỉ có 2 tiến trình đang chạy: Một tiến trình cha và một tiến trình con để xử lý các yêu cầu. Với tiến trình con mỗi yêu cầu được xử lý bởi một luồng riêng.Vì thế tiến trình quản lý các chỉ thị là khác nhau:

+ Các chỉ thị mà chấp nhận các tên file như các đối số phải sử dụng các tên file kiểu Windows thay cho các tên file Unix. Tuy nhiên, bởi vì Apache server sử dụng các tên file kiểu Unix bên trong, phải tiến hành cắt bớt, không cắt phần sau. Các ký tự điều khiển có thể được sử dụng, nếu bỏ qua, ký tự điều khiển với Apache khả thi sẽ đảm nhận.

+ Apache trên Windows có khả năng nạp các mô đun ngay khi chay mà không biên dịch lại server. Nếu Apache biên dịch bình thường, nó sẽ cài đặt một số mô đun tuỳ chọn trong thư mục /module, để kích hoạt chúng hoặc các mô đun khác sử dụng lệnh sau đây:

LoadModule status_module modules/mod_status.so + Apache cũng có thể nạp các phần mở rộng ISAPI (các dịch vụ ứng dụng

Internet) chẳng hạn các ứng dụng được sử dụng bởi Microsoft IIS và các server Windows khác. (Chú ý: Apache không nạp các bộ lọc ISAPI).

+ Khi đang chạy CGI script, các phương thức Apache tìm kiếm các giải thích cho script được cấu hình đang sử dụng chỉ thị ScriptInterpreterSource.

9. Apache và các dịch vụ hỗ trợ: a) HTTPD: Tên dòng lệnh: httpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config] [ -C directive ] [ -c directive ] [ -D parameter ] Mô tả: là một chương trình HTTP server . Nó được thiết kế để chạy như một tiến

trình deamon một mình. Khi dùng đến dịch vụ này, nó sẽ tạo ra một nhóm các tiến trình con để đáp ứng các yêu cầu. Để ngừng dịch vụ này, nó sẽ gửi một tín hiệu TERM đến tiến trình cha. PIG của tiến trình này sẽ ghi lên một file và dưa vào file cấu hình. HTTPD sẽ được gọi bởi Internet deamon inetd mỗi khi có một kết nối đến dịch vụ HTTP đã được thiết lập.

Các đối số cụ thể của dòng lệnh -R libexecdir: Tham số này chỉ có hiệu lực nếu Apache được cài đặt với tập

SHARED_CORE cho phép, nó tác động đến nhân nhị phân của Apache để thay thế vào trong một file đối tượng chia xẻ động (DSO). File này được dò tìm trên một đường dẫn hardcoded bên dưới ServerRoot mặc định

-d serverroot: Thiết lập giá trị ban đầu của chỉ thị ServerRoot đến serverroot. Chức năng này có thể bị bỏ qua bởi dòng lệnh ServerRoot trong file cấu hình. Mặc định server root là usr/local/apache.

-f : Thực thi các lệnh trong file config khi Startup. Nếu file config không bắt đầu với a/, lúc đó nó sẽ lấy một một đường dẫn có liên quan đến ServerRoot. Mặc định của nó là conf/httpd.conf.

-C directive: Thực hiện cấu hình các chỉ thị trước khi đọc file config. -c directive: Thực hiện cấu hình các chỉ thị sau khi đọc file config.

Page 24: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 23

-D parameter: Thiết lập một thông số cấu hình mà nó có thể sử dụng với cặp thẻ <IfDefine> … </IfDefine> trong các file cấu hình để bỏ qua có điều kiện hoặc thực hiện các lệnh.

b) APACHECTD: Là một đầu vào các HTTP server. Nó được thiết kế để giúp người quản trị

điều khiển các chức năng của Apache HTTPD deamon. Tên dòng lệnh: apachectl command [...] Với các lệnh: Start: Khởi động Apache deamon. Đưa ra một thông báo lỗi nếu chương trình

đang chạy lúc đó. Stop: Ngừng dịch vụ Apache deamon. Restart: Khởi động lại Apache deamon bằng cách gửi cho nó một SIGHUP.

Lệnh này tự động kiểm tra các file cấu hình qua văn bản cấu hình trước khi bắt đầu khởi động lại để chắc chắn rằng Apache vẫn còn đang hiện diện trong máy.

Fullstatus: Hiển thị đầy đủ các báo cáo trạng thái từ mod_status. Để lệnh này được thi hành, cần phải cho phép mod_status trên server và một trình duyệt text_based chẳng hạn như Lynx có sẵn trong hệ thống. URL sử dụng nó để truy cập bản báo cáo trạng thái có thể được thiết lập bằng giá trị STATUSURL có sẵn trong script.

Status: Hiển thị ngắn gọn bảng trạng thái giống như chức năng fullstatus trừ phi danh sách các yêu cầu phục vụ thời bị bỏ quên.

Configtest: Chạy một đoạn văn bản các cụ pháp của file cấu hình. Nó phân tích các file cấu hình và các bảng Syntax Ok hoặc thông tin chi tiết về các lỗi cú pháp đặt biệt.

Help: Hiển thị các thông báo lỗi được sắp xếp. c) APXS Tên dòng lệnh: apxs -g [ -S variable=value ] -n name apxs -q [ -S variable=value ] query ... apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ... apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ... Mô tả: Là một công cụ để xây dựng và các đặt các mô đun mở rộng cho Apache

HTTP server. Được thực hiện bằng cách cài đặt một DSO từ một hay nhiều nguồn hoặc đối tượng file mà sau đó nó có thể nạp vào Apache trong thời gian chương trình đang chạy qua chỉ thị LoadModule từ mod_so.

Để sử dụng kỹ thuật mở rộng này, máy tính của người sử dụng phải hỗ trợ DSO và Apache HTTPD nhị phân phải được xây dựng với mô đun mod_so. Công cụ apxs sẽ tự động nhắc nhở nếu là các trường hợp ngược lại. Ta cần phải kiểm tra việc này bằng dòng lệnh:

$ httpd -l mô đun mod_so phải có trong danh sách được hiển thị. Nếu các yêu cầu này

được thỏa mãn, thì có thể dễ dàng mở rộng các chức năng của Apache server bằng cách cài đặt các mô đun của mình với kỹ thuật DSO bằng công cụ apxs này.

Page 25: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 24

Ví dụ: $ apxs -i -a -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module

foo_module /path/to/apache/sbin/apachectl restart: httpd started Các đối số File có thể là bất kỳ một file nguồn c (.c), file đối tượng (.o) hoặc

ngay cả một thư việc lưu trữ (.a). Công cụ apxs tự động công nhận các phần mở rộng này và tử động sử dụng các file nguồn C cho việc biên dịch trong khi nó chỉ sử dụng các file đối tượng và lưu trữ cho giai đoạn liên kết. Nhưng khi sử dụng nhiều đối tượng trước biên dịch , phải chắc chắn rằng chứng được liên kết cho PIC để có thể sử dụng chúng cho một DSO. Cho ví dụ với GCC, người sử dụng luôn chỉ phải sử dụng –fpic. Đối với các các biên dịch C khác yêu cầu phải tham khảo tài liệu hướng dẫn của nó hoặc chờ đợi các cờ apxs, để biên dịch các file đối tượng.

Các đối số cụ thể của dòng lệnh: - n name: Thiết lập tên mô đun cho chức năng –i (cài đặt) và –g (tạo khuôn

mẫu). Sử dụng nó để chỉ ra tên mô đun. Chức năng –g là bắt buộc, chức năng –I thì có tác dụng khiến công cụ apxs cố gắng xác định tên từ nguồn hoặc ít nhất cũng đốn được từ tên file.

-q : Thực hiện ruy vấn cho apxs về các cài đặt nào đó. Tham số truy vấn có thể là một hoặc nhiều các giá trị:

CC TARGET CFLAGS SBINDIR CFLAGS_SHLIB INCLUDEDIR LD_SHLIB LIBEXECDIR LDFLAGS_SHLIB SYSCONFDIR LIBS_SHLIB PREFIX Sử dụng các chức năng này để hướng dẫn xác định các thông số cài đặt: INC = I ‘apxs –q INCLUDEDIR’ bên trong các Makefile nếu cần hướng dẫn các truy cập đến các file tiêu đề

của Apache. -S variable = value: Chức năng này thay đổi các cài đặt apx đi kèm với các

giá trị đặc biệt theo sau như: Chức năng tạo ra một khuôn mẫu: -q: chức năng tạo ra một thư mục con và 2 file trong đó: Một file nguồn ví dụ

mô đun tên là mod_name.c mà nó có thể sử dụng như một khuôn mẫu cho việc tạo các mô đun của chính người sử dụng hoặc như một quá trình khởi động nhanh cho việc chạy các kỹ thuật apxs. Và một mẫu thư Makefile với mục đích là dễ tạo và cài đặt các mô đun này.

Chức năng biên dịch DSO:

Page 26: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 25

-c : Chức năng này chỉ ra thao tác biên dịch. Đầu tiên nó biên dịch các file nguồn C (.c) của files vào trong các file đối tượng tương ứng (.o) và sau đó cài đặt một DSO vào trong dsofile bằng cách liên kết các file đối tượng này cùng với các file đối tượng còn lại (.o và .a) của files.

-o dsofile: Chỉ ra tên file của file DSO đã tạo. Nếu không có sự chỉ định và tên file không thể đốn được từ bảng liệt kê các file, tên dự phòng mod_unknow.so được sử dụng.

Chức năng cài đặt và định dạng DSO: -i : Chức năng này để chỉ thao tác cài đặt và cài đặt một hoặc nhiều hơn các

DSO vào trong thư mục libexec của server. -a : Chức năng này để chỉ thao tác kích hoạt đến mô đun bằng cách tự động

thêm vào một dòng LoadModule đến file cấu hình httpd.conf của Apache hoặc cho phép nó thực thi nếu đã tồn tại.

-A :Chức năng này cũng giống như –a nhưng nó tạo một chỉ thị LoadModule được đặt thêm vào một dấu (#), có nghĩa là mô đun chỉ cho phép cho các thi hành ngay sau đó còn lúc đầu thì bị cấm.

-e : Chức năng này dành cho thao tác hiệu chỉnh, có thể sử dụng kèm với chức năng –a và –A, cũng giống như chức năng –I: Thao tác hiệu chỉnh file cấu hình httpd.conf của Apache mà không cố găng cài đặt các mô đun.

Ví dụ: Giả sử người sử dụng đã có sẵn một mô đun Apache tên là mod_foo.c mà nó

sẽ mở rộng chức năng server của Apache. Để làm việc đó, trước hết cần phải biên dịch một nguồn C vào trong một DSO phù hợp cho việc nạp vào trong Apache server. Có thể sử dụng lệnh sau:

$ apxs -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o $ _ Sau đó tiến hành cập nhật cấu hình Apache bằng cách chắc chắn rằng một chỉ

thị LoadModule được đưa ra để nạp DSO này. Để đơn giản bước này, apxs cung cấp một cách tự động cách cài đặt DSO vào trong thư mục libexec và cập nhật file httpd.conf.

Bằng cách sử dụng các lệnh: $ apxs -i -a mod_foo.c cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ _ Cách này là một dòng lệnh có tên:

LoadModule foo_module libexec/mod_foo.so được thêm vào để cấu hình file nếu vẫn chưa được đưa ra. Nếu muốn cấm thao tác này sử dụng thêm vào chức năng –A.

$ apxs -i -A mod_foo.c

Page 27: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 26

Để kiểm tra nhanh apxs, người sử dụng tạo ra một mẫu ví dụ mô đun Apache cùng với một thư từ Makefile bằng cách:

$ apxs -g -n foo Creating [DIR] foo Creating [FILE] foo/Makefile Creating [FILE] foo/mod_foo.c $ _ Sau đó có thể biên dịch ngay mô đun ví dụ này vào một DSO và nạp nó lên

Apache server: $ cd foo $ make all reload apxs -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o apxs -i -a -n "foo" mod_foo.so cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] apachectl restart /path/to/apache/sbin/apachectl restart: httpd không chạy,cố gắêng khởi động [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): nạp foo_module /path/to/apache/sbin/apachectl restart: httpd khởi động $ _ Người sử dụng có thể sử dụng apxs để biên dịch các mô đun phức tạp bên

ngồi cây nguồn Apache, cũng như PHP bởi vì apxs tự động chấp nhận nguồn C và các file đối tượng.

10. Biên dịch Apache trên Windows: Để biên dịch Apache đòi hỏi Microsoft Visual C++ 5.0 hoặc 6.0 phải được

cài đặt sẵn sàng. Nó có thể được cài đặt với các công cụ dòng lệnh hoặc với môi trường Viual Studio. Tham khảo sách hướng dẫn C++ để xác định cách cài đặt chúng. Đặc biệt nhất là nhận thấy file vcvars32.bat từ thư mục Program Files/DevStudio/VC/bin và và file setenv.bat từ Platform SDK được yêu cầu để chuẩn bị các công cụ dòng lệnh cho việc sử dụng dòng lệnh. Để cài đặt Apache với file Makefile.win hoặc dự án Install.Bin trong Visual Studio IDE, tiện ích awk cũng được yêu cầu.

Đầu tiên bản phải cài đặt awk.exe ở nơi nó có thể được tìm thấy trong đường dẫn và môi trường DevStudio nếu dự định sử dụng IDE, có nhiều phiên bản của awk sẵn có trên Windows. Cách dễ nhất là cài đặt bằng cái có sẵn được tải xuống từ

http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe và nên lưu nó với tên awk.exe hơn là awk95.exe.

Sau đó bung gói Apache đưa vào trong một thư mục thích hợp, mở cửa sổ dòng lệnh và thay đổi thư mục con src của Apache. Các tài liệu chính cung cấp cho

Page 28: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 27

các file tạo Apache được chứa trong file Makefile.win. Để biên dịch Apache trên Windows chỉ cần sử dụng các dòng lệnh:

nmake /f Makefile.win _apacher (release build) nmake /f Makefile.win _apached (debug build) Nếu được một thông báo lỗi kiểu như "the name specified is not recognized..."

thì phải chạy file vevas32.bat trước: bằng dòng lệnh sau: "C:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT"

(cần phải sửa đổi dòng lệnh này nếu VC được cài ở nơi khác) Sau đó chạy nmake một lần nữa. Apache cũng có thể được biên dịch với môi trường Visual Studio

development của VC++. Để đơn giản tiến trình này một vùng làm việc Visual Studio, Apachedsw (được cung cấp trong thư mục src) đưa ra danh sách lối vào của các dự án working.dsb được yêu cầu để hồn thành Apache (binary release). Nó cung cấp các phần phụ thuộc giữa các tiến trình. Nó bao gồm cả các phần phụ thuộc giữa các dự án để đảm bảo rằng chúng được cài đặt theo một trật tự thích hợp. InstallBin là một dự án cao cấp mà nó sẽ cài đặt tất cả các dự án, và cài đặt các file biên dịch vào nơi thích hợp của nó.

Các nhân dự án .dsp được cài đặt bởi Apache.dsw và makefile.win là: os\win32\ApacheOS.dsp os\win32\Win9xConHook.dsp regex\regex.dsp ap\ap.dsp lib\expat-lite\xmltok.dsp lib\expat-lite\xmlparse.dsp yêu cầu xmltok lib\sdbm.dsp main\gen_uri_delims.dsp main\gen_test_char.dsp ApacheCore.dsp yêu cầu tất cả các file ở trên Apache.dsp yêu cầu ApacheCore Trong phần thêm vào, thư mục con os/win32 chứa các file dự án cho các mô

đun chức năng, tất cả chúng đều yêu cầu ApacheCore. os\win32\mod_auth_anon.dsp os\win32\mod_auth_dbm.dsp cũng yêu cầu sdbm os\win32\mod_auth_digest.dsp os\win32\mod_cern_meta.dsp os\win32\mod_digest.dsp os\win32\mod_expires.dsp os\win32\mod_headers.dsp os\win32\mod_info.dsp os\win32\mod_mime_magic.dsp os\win32\mod_proxy.dsp os\win32\mod_rewrite.dsp os\win32\mod_speling.dsp os\win32\mod_status.dsp os\win32\mod_unique_id.dsp os\win32\mod_usertrack.dsp

Page 29: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 28

os\win32\mod_vhost_alias.dsp Thư mục support chứa các file dự án cho các chương trình được thêm vào mà

nó không nằm trong phần Apache đang chạy nhưng nó được sử dụng bởi người quản trị để duy trì password và các file log.

support\htdigest.dsp support\htpasswd.dsp support\logresolve.dsp support\rotatelogs.dsp Một khi Apache đã biên dịch nó cần được cài đặt trong thư mục gốc server

của nó, mặc định là /Apache trên đĩa cứng đang sử dụng. Để tự động cài đặt các file vào trong thư mục c:/ServerRoot, sử dụng lệnh

nmake: nmake /f Makefile.win installr INSTDIR=c:\ServerRoot (for release build) nmake /f Makefile.win installd INSTDIR=c:\ServerRoot (for debug build) Đối số c:\ServerRoot để cho INTSDIR nhận các thư mục cài đặt (nó có thể

được bỏ qua nếu Apache được cài đặt trong thư mục \Apache) Quá trình cài đặt sẽ diễn ra như sau:

c:\ServerRoot\Apache.exe – Chương trình Apache c:\ServerRoot\ApacheCore.dll - Apache runtime [shared libary] c:\ServerRoot\Win9xConHook.dll - Win9x console fixups [shared library] c:\ServerRoot\xmlparse.dll – phân tích cú pháp XML [shared library] c:\ServerRoot\xmltok.dll - XML token engine [shared library] c:\ServerRoot\bin\*.exe – Các chương trình quản trị c:\ServerRoot\cgi-bin – Ví dụ CGI scripts c:\ServerRoot\conf – Thư mục chứa các file cấu hình. c:\ServerRoot\icons - Icons for FancyIndexing c:\ServerRoot\include\*.h – Các file header củaApache c:\ServerRoot\htdocs - Site Welcome index.html c:\ServerRoot\htdocs\manual – Tài liệu Apache. c:\ServerRoot\lib – Các file tài liệu động. c:\ServerRoot\libexec – Thư viện liên kết động. c:\ServerRoot\logs – Thư mục rỗng logging. c:\ServerRoot\modules\mod_*.dll – Các mô đun nạp Apache.

Page 30: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 29

CHƯƠNG II CÁC NGHI THỨC TRUYỀN NHẬN

---- ---- Công việc phát triển các hệ thống Mail (Mail System) đòi hỏi hình thành các chuẩn về Mail. Điều này giúp cho việc gởi nhận các message được đảm bảo, làm cho những người ở các nơi khác nhau có thể trao đổi thông tin cho nhau. Có 2 chuẩn về Mail quan trọng nhất và được sử dụng nhiều nhất từ trước đến nay là X.400 và SMTP (Simple Mail Transfer Protocol). SMTP thường đi kèm với chuẩn POP3 và do hạn chế của SMTP mà ngày nay người ta dùng chuẩn mở rộng của nó là ESMTP (Extended SMTP). Mục đích chính của X.400 là cho phép các mail có thể được truyền nhận thông qua các loại mạng khác nhau bất chấp cấu hình phần cứng, hệ điều hành mạng , giao thức truyền dẫn được dùng. Còn mục đích của chuẩn SMTP miêu tả cách điều khiển các message trên mạng Internet. Điều quan trọng của chuẩn SMTP là giả định máy nhận phải dùng giao thức SMTP gởi Mail cho 1 Server luôn luôn hoạt động. Sau đó, người nhận sẽ đến lấy Mail của họ từ Server khi nào họ muốn dùng giao thức POP (Post Office Protocol), ngày nay POP được cải tiến thành POP3 (Post Officce Protocol vertion 3). Các giao thức Mail thông dụng : chuẩn X.400, chuẩn MAIP, SMTP (ESMTP), POP3 . Ở đây chỉ trình bày chi tiết về POP3 và SMTP.

PHẦN 1 GIAO THỨC SMTP (SIMPLE MAIL TRANSFER

PROTOCOL ) -----***-----

Bộ phận chính của hệ thống Internet Mail chính là các MTA ( Message

Transfer Agent), các MTA giữ 1 vai trò quan trọng trong việc chuyển giao email.

Page 31: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 30

Ví dụ sau khi một người sử dụng gửi một bức mail tới hàng đợi message, MTA sẽ lấy đó và chuyển nó tới một MTA khác. Quá trình đó sẽ tiếp tục tiếp diễn cho đến khi message đến được nơi nhận. Để có thể liên lạc với các MTA thông qua kết nối TCP các MTA của hệ thống Internet Mail có thể sử dụng nhiều nghi thức khác nhau để chuyển giao các thông tin (X400,ESMTP,....), Nhưng ở đây ta chỉ xét nghi thức SMTP. Đây là một nghi thức cho phép chuyển mail từ điểm này sang điểm khác cho đến đích trên mạng Internet. Nó được cấu tạo bởi tập các câu lệnh để Client có thể yêu cầu Sever thực hiện một số tác vụ và tập các câu trả lời để Server hồi đáp lại cho Client về kết quả thực hiện các tác vụ đó. Một chương trình muốn gởi được mail thì nó phải biết địa chỉ của một SMTP server. Server này có nhiệm vụ chuyển mail đến nơi cần thiết.

I- GIỚI THIỆU Một đặc trưng quan trọng của SMTP là khả năng chia ca Mail qua môi trường

dịch vụ giao chuyển, một dịch vụ giao chuyển cung cấp một môi trường truyền thông liên quá trình (Interprocess Communication Environment –IPCE ). Một môi trường truyền thông liên quá trình có thể bao gồm một Network, vài Network, hay một tập hợp con của Network. Điều đó quan trọng cho việc thực hiện hệ thống giao chuyển (hay các IPCE) one-to-one với Network, một quá trình có thể giao tiếp với một quá trình khác thông qua việc nhận biết IPCE. Mail là ứng dụng hay là cách dùng của giao tiếp liên quá trình, Mail có thể giao tiếp giữa các quá trình trong những IPCE khác bằng cách chia ca thông qua một quá trình được kết nối đến hai (hay nhiều ) IPCE. Chi tiết hơn Mail có thể chia ca giữa những Host trên hệ thống giao chuyển khác nhau bằng một Host trên cả hai hệ thống chuyển giao.

II- MÔ HÌNH SMTP: SMTP được thiết kế dựa trên mô hình giao tiếp sau: như kết quả của một yêu

cầu Mail của user . Sender- SMTP thiết lập một kênh hai đường vận chuyển đến một receiver- SMTP . Receiver- SMTP có thể là đích đến cuối cùng hay một trung gian. Những lệnh SMTP được sinh ra bởi Sender-SMTP gửi đến Receiver- SMTP. Những reply SMTP được gửi từ Receiver- SMTP đến Sender- SMTP trong sự đáp ứng cho những lệnh đó.

Khi một kênh giao chuyển được thiết lập Sender-SMTP gửi đi 1 lệnh Mail biểu thị cho người gửi của mail đó. Nếu Receiver-SMTP có thể chấp nhận mail, nó trả lời với một OK reply. Sau đó Sender-SMTP gửi một lệnh RCPT nhận diện Receiver mail nếu Receiver-SMTP có thể chấp nhận mail nó trả lời với 1 OK reply nếu không nó sẽ lời với 1 reply bác bỏ receiver đó (nhưng không phải tồn bộ sự giao dịch đó). Sender- SMTP và Receiver- SMTP có thể điều đình với vài recipient, khi những recipient đã được dàn xếp Sender-SMTP gửi mail data kết thúc với một chuỗi đặc biệt nếu receiver xử lý mail data thành công nó trả lời với 1 OK reply. Cuộc hội thoại một cách chủ ý lock –step (one-at-a-time).

Sender SMTP

Receiver

SMTP

User

File System

File System

SMTP Commands/Replies

and Mail

Sender-SMTP Receiver-SMTP

Page 32: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 31

Sơ đồ trên là mô hình cho cách dùng SMTP. SMTP cung cấp những cơ chế giao chuyển Mail một cách trực tiếp từ Host

của user gửi đến host của user nhận khi cả hai host được kết nối đến cùng dịch vụ giao chuyển hay qua nhiều SMTP-Sever tiếp vận khi host xuất phát hay đích đến không được kết nối đến cùng dịch vụ chuyển giao. Để có thể cung cấp khả năng tiếp vận SMTP-Sever phải được cung cấp tên của host đến cùng chẳng hạn như hạn của mailhost đến .

Đối số của lệnh mail là 1 reverse-path nó đặc tả mail đó từ đâu đến; đối số cho RCPT là 1 Forward-path nó đặc tả mail đó đi đến đâu. Forward-path là một lộ trình nguồn, reverse-path là một lộ trình trở về (nó có thể được dùng để trả về một message cho người gửi khi xảy ra lỗi với 1 message được tiếp nhận).

Khi cùng một message được gửi cho nhiều recipient SMTP khuyến khích chuyển giao chỉ một bản sao của data cho tất cả các Receiver ở cùng một host đích.

Những command và reply mail có những cú pháp khắc khe. Những reply cũng có một mã số. Trong những thí dụ theo sau sẽ xuất hiện những lệnh (commands) và những trả lời (replies) , một danh sách các lệnh và reply hồn chỉnh trong phần 4.

Các command và reply không phân biệt kiểu chữ hoa hay thường. Lưu ý, điều này không đúng với tên của User mailbox. Cho một số host tên của user có phân biệt kiểu chữ, SMTP phải thi hành đầy đủ việc nhận kiểu chữ và giữ gìn kiểu chữ của những user name như chúng đã xuất hiện trong những đối số của mailbox. Host names không phân biệt kiểu chữ.

Các command và reply là những ký tự được tạo ra từ tập ký tự ASCII{1}, khi dịch vụ vận chuyển cung cấp một kênh chuyển giao 8 bit (octet). Mỗi một ký tự 7 bit được truyền đúng bằng cách chuyển nó về hệ 8 (octet) với bit có thứ tự cao nhất bị xóa về 0. Khi đặc tả cấu trúc thông thường của command và reply, một đối số (hay một ký hiệu đặc biệt ) sẽ được biểu thị bằng một biến meta-linguistic (hay một hằng số), ví dụ như : “<string>”, hay “<reverse-path>”. Ở đây dấu ngoặc nhọn chỉ định chúng là những biến meta-linguistic. Tuy nhiên các đối số thì dùng dấu ngoặc nhọn một cách literal. Ví dụ như, một reverse-path thực được bao trong dấu ngoặc nhọn như, “<[email protected]>” là một trường hợp của <reverse-path> (dấu ngoặc nhọn được giao chuyển trong command và reply là mã thực của nó).

III. MAIL: 1- Khái quát :

Có 3 bước cho sự giao dịch SMTP mail. Giao dịch được bắt đầu với yêu cầu Mail mang sự nhận diện người gửi, tiếp theo sau là một chuỗi của một hay nhiều lệnh RCPT trao những thông tin của receiver, sau đó một lệnh DATA cho mail data.Và cuối cùng là phần chỉ định kết thúc mail data xác nhận giao dịch đó.

Bước đầu tiên trong thủ tục là lệnh MAIL...<reverse-path> chứa mailbox nguồn: MAIL <SP> FROM : <reverse-path> <CRLF>

Lệnh này báo cho receiver biết một giao dịch mail mới sẽ bắt đầu và để reset tất cả các bảng trạng thái và các buffer của nó bao gồm tất cả recipient hay mail

Page 33: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 32

data. Nó phát ra reverse-path có thể được dùng để báo lỗi. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK.

<Reverse-path> có thể chứa nhiều hơn một mailbox.<Reverse-path> là một lộ trình nguồn trở về liệt kê các host và mailbox nguồn. Host đầu tiên trong reverse-path sẽ là host gửi lệnh này.

Bước thứ hai trong thủ tục này là lệnh RCPT : RCPT <SP> To : <forward-path> <CRLF>

Lệnh này phát đi một forward-path nhận diện recipient. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Và lưu lại forward-path. Nếu recipient không nhận biết thì receiver trả về reply 550 Failure. Bước thứ hai của thủ tục này có thể lặp lại nhiều lần.

Forward-path có thể chứa nhiều hơn một mailbox. Forward-path là lộ trình nguồn liệt kê các host và mailbox đích. Host đầu tiên trong <forword-path> sẽ là host nhận lệnh này.

Bước thứ ba trong thủ tục là lệnh DATA

DATA <CRLF> Nếu chấp nhận receiver-SMTP trả về một reply 354 và coi tất cả các dòng nối

tiếp đó là message text. Khi văn bản cuối cùng được nhận và lưu trữ receiver-SMTP gửi một reply 250 OK.

Kể từ khi mail được gửi trên kênh chuyển giao, điểm kết thúc của mail phải được chỉ định để hội thoại command và reply có thể bắt đầu trở lại. SMTP chỉ định kết thúc của mail bằng cách gửi một dòng chứa chỉ một dấu chấm.

Chú ý rằng mail data bao gồm những mục (item) memo header chẳng hạn như Subject, To, Cc, From.

Phần chỉ định kết thúc của mail data cũng xác nhận sự giao dịch mail và báo cho receiver-SMTP biết để xử lý việc lưu trữ recipient và mail data ngay lúc đó. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Lệnh DATA sẽ chỉ lỗi nếu giao dịch mail không hồn thành (ví dụ không có receiver) hoặc nếu tài nguyên không có hiệu lực.

Thủ tục trên là một ví dụ của một giao dịch mail. Những lệnh này chỉ được dùng trong những trật tự được trình bày ở trên. Ví dụ :

Một minh họa cách dùng những lệnh này:

Page 34: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 33

Ut; end with <CRLF>.<CRLF> S: Blah blah blah... S: ...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK Bây giờ mail được chấp nhận cho Jones và Brown. Green không có một

mailbox trên Beta host. 2- Sự định hướng :

Có một số trường hợp thông tin của đích đến trong <forward-path> bị sai nhưng receiver-SMTP biết đích đến đúng. Trong trường hợp như vậy một trong những reply sau sẽ được dùng để cho phép người gửi tiếp xúc đến đích đúng :

251 User not local ; will forward to <forward-path> Reply này chỉ cho receiver-SMTP biết mailbox của user đó nằm trên một

host khác và chỉ định forward-path đúng để sau đó sử dụng. Lưu ý một trong hai host hay user hay cả hai có thể khác nhau . Receiver chịu trách nhiệm cho việc phân phối những message.

551 User not local ; please try <forward-path> Reply này chỉ cho receiver-SMTP biết mailbox của user nằm trên một host

khác và chỉ định forward-path đúng để sử dụng . Lưu ý host hoặc là user hay cả hai có thể khác nhau . Receiver từ chối chấp nhận mail cho user A. Người gửi phải định hướng lại cho mail đó tuỳ theo những thông tin được cung cấp hoặc là trả trả lời error cho user khởi đầu.Ví dụ sau minh hoạ cách dùng của những đáp ứng này : S: RCPT TO:[email protected] R: 251 User not local; will forward to <[email protected]> Hay S: RCPT TO:<[email protected]> R: 551 User not local; please try [email protected]

3- Kiểm tra và mở rộng : SMTP cung cấp thêm những điểm đặc trưng, các lệnh để kiểm tra một user

name hay mở rộng một danh sách địa chỉ được làm với lệnh VRFY và EXPN nó dùng đối số kiểu chuổi ký tự. Với lệnh VRFY chuỗi đó là một user name, và câu trả lời(response) có thể bao gồm full name của user đó và phải bao gồm mailbox của user đó. Với lệnh EXPN chuổi đó định danh một danh sách địa chỉ và câu trả lời có nhiều dòng có thể chứa full name của các user đó và phải chứa những mailbox trên danh sách địa chỉ (mailing list).

Nếu một host được bổ sung lệnh VRFY hay EXPN thì ít nhất những mailbox cục bộ phải được thừa nhận như là“user names”. Nếu một host chọn lựa để thừa nhận những chuổi khác như “user names” thì điều đó được cho phép.

Trong một số host sự phân biệt giữa một mailing list và một bí danh cho single mailbox hơi mơ hồ. Từ đó một cấu trúc dữ liệu phổ biến có thể giữ cả hai kiểu phần tử và nó có thể dùng các mailing list của một mailbox. Nếu một yêu cầu được tạo ra để kiểm tra một mailing list một câu trả lời khẳng định có thể được cho nếu trên message nhận được đã được định địa chỉ nó sẽ được phân phát cho tất cả

Page 35: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 34

mọi người trong danh sách đó. Mặt khác một lỗi sẽ được báo cáo (e.g., "550 That is a mailing list, not a user"). Nếu một yêu cầu được tạo ra để mở rộng một user name một câu trả lời khẳng định có thể được cấu hình bằng cách trả về một danh sách chứa một tên hay một lỗi có thể được báo cáo (e.g., "550 That is a user name, not a mailing list").

Trong trường hợp một reply nhiều dòng (thường cho EXPN) là một mailbox được đặc tả trên từng dòng của reply đó một cách chính xác. Trong trường hợp này một yêu cầu nhập nhằng khó hiểu như : “VRFY Smith” có hai câu trả lời của Smith phải là "553 User ambiguous".

Ví dụ kiểm tra một user name

S: VRFY Smith R: 250 Fred Smith <[email protected]>

Hay S: VRFY Smith R: 251 User not local; will forward to <[email protected]>

Hay S: VRFY Jones R: 550 String does not match anything.

Hay

S: VRFY Jones R: 551 User not local; please try <[email protected]>

Hay S: VRFY Gourzenkyinplatz R: 553 User ambiguous.

Trường hợp mở rộng một mailbox list đòi hỏi một reply nhiều dòng xem trong ví dụ sau: mở rộng một mailing list (danh sách địa chỉ)

S: EXPN Example-People R: 250-Jon Postel <[email protected]> R: 250-Fred Fonebone <[email protected]> R: 250-Sam Q. Smith <[email protected]> R: 250-Quincy Smith <@USC-ISIF.ARPA:[email protected]> R: 250-<[email protected]> R: 250 <[email protected]>

Hay S: EXPN Executive-Washroom-List R: 550 Access Denied to You.

Những đối số chuổi ký tự của lệnh VRFY và EXPN không thể vượt qua giới hạn được quyền trên sự bổ sung đa dạng của user name và khái niệm mailbox. Trên một số hệ thống nó có thể dành riêng cho đối số của lệnh EXPN để là một file name cho một file chứa một mailing list nhưng lại có một qui ước đa dạng của việc đặc tên file trong internet.

Lệnh VRFY và EXPN không được bao gồm trong sự thực thi tối thiểu (trình bày trong phần sau) và không được đòi hỏi để làm việc thay ca khi chúng được thực thi.

Page 36: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 35

4- Sending and Mailing : Mục đích chính của SMTP là phân phối những message đến những mailbox

của user . Một dịch vụ rất phổ biến được cung cấp bởi một số host là để phân phối những message đến những terminal của user( cung cấp cho user làm việc trên host đó). Sự phân phát đến những mail box của user được gọi là “mailing”, sự phân phát đến những user terminal được gọi là “sending”. Bởi vì một số host có sự thực thi của sending gần giống với sự thực thi của mailing chúng là hai chức năng được liên kết với SMTP. Mặc dù lệnh sending không bao gồm trong yêu cầu thực thi tối thiểu( xem phần sau). Những user có khả năng điều khiển việc ghi message lên những terminal của họ. Hầu hết các host cho phép chấp nhận hay từ chối những message.

Ba lệnh sau được định nghĩa để cung cấp những option cho sending. Chúng được dùng trong giao dịch mail thay cho lệnh MAIL và cung cấp cho receiver-SMTP những ngữ nghĩa giao dịch đặc biệt SEND <SP> FROM:<reverse-path> <CRLF>

Lệnh SEND đòi hỏi mail data được gửi đến user terminal. Nếu user đó không hoạt động (hay không chấp nhận những terminal message) trên host đó một reply 450 có thể được trả cho một lệnh RCPT. Giao chuyển mail thành công khi message đó được phân phát đến terminal.

SOML <SP> FROM:<reverse-path> <CRLF> Lệnh này là SEND Or MAIL đòi hỏi mail data được phân phát đến terminal của user nếu user đó đang hoạt động (và chấp nhận những message terminal) trên host đó. Nếu user không hoạt động (haykhông chấp nhận terminal message) thì mail data được đưa vào trong mailbox của user . Giao chuyển mail thành công khi message đó được phân phát đến terminal hay mailbox. SAML <SP> FROM:<reverse-path> <CRLF> Lệnh này là SEND And MAIL đòi hỏi mail data được phân phát đến terminal của user nếu user đó đang hoạt động (và chấp nhận những message terminal) trên host đó. Trong những tất cả trường hợp mail data được đưa vào trong mailbox của user. Giao dịch mail thành công khi message đó được phân phát đến mailbox. Những mã reply tương tự được dùng cho lệnh MAIL cũng được dùng cho những lệnh này.

5- Opening and Closing : Ngay thời điểm mà kênh giao chuyển được open có một sự trao đổi để đảm bảo những host đó đang giao tiếp với những host khác. Hai lệnh sau được dùng trong việc đóng mở kênh truyền HELLO <SP> <domain><CRLF> QUIT <CRLF> Trong lệnh HELLO host này gửi đi những nhận dạng lệnh của nó có thể được dịch như "HELLO, I am <domain>".

* Ví dụ mở kết nối : Opening R : 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready S : HELO USC-ISIF.ARPA R: 250 BBN-UNIX.ARPA

* Ví dụ đóng kết nối :

Page 37: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 36

Closing S: QUIT R :221 BBN-UNIX.ARPA Service transmission channel. 6- Chia ca (Relaying) :

Forward-path có thể là một lộ trình nguồn của form "@ONE, @TWO:JOE@THREE" với ONE ,TWO, THREE là các host. Form này được dùng để nhấn mạnh sự phân biệt giữa một address và một route. Mailbox là một address tuyệt đối, và route là thông tin về việc lấy chúng như thế nào .

Những thành phần của forward-path được chuyển đến reverse-path khi message đó được chia ca từ một server-SMTP đến một server-SMTP khác. Reverse-path là một lộ trình nguồn trở về (khác với một lộ nguồn là từ vị trí hiện hành của message đến điểm khởi đầu của message đó). Khi một server SMTP xóa phần nhận dạng của nó trong forward-path và chèn phần nhận dạng của nó vào trong reverse-path, nó phải dùng cái tên mà nó được biết tới trong môi trường mà nó sẽ gửi vào, không phải là môi trường mà mail từ đó đến, trong trường hợp server-SMTP được biết đến với những tên khác nhau trong những môi trường khác nhau.

Nếu một message đến một SMTP thành phần đầu tiên của forward-path không phải là phần nhận dạng của SMTP đó, thành phần này không bị xố trong forward-path và được dùng để xác định SMTP kế để gửi message đến. Trong trường hợp này SMTP thêm phần nhận dạng của nó vào reverse-path.

Dùng lộ trình nguồn receiver-SMTP nhận mail để chia ca đến một server-SMTP khác. Receiver-SMTP đó có thể chấp nhận hoặc bác bỏ công việc chia ca cho mail, như cách nó chấp nhận hay bác bỏ mail cho một user cục bộ. Receiver-SMTP thay đổi những đối số lệnh bằng cách chuyển phần nhận dạng của nó từ forward-path vào chổ mở đầu của reverse-path. Sau đó receiver-SMTP trở thành Sender-SMTP, thiết lập một kênh truyền đến SMTP kế trong forward-path,và gửi mail đó cho nó.

Host đầu tiên trong reverse-path sẽ là host gửi các lệnh SMTP và host đầu tiên trong forward-path sẽ là host các nhận các lệnh SMTP .

Lưu ýrằng forward-path và reverse-path xuất hiện trong các lệnh và các reply SMTP, nhưng nó không cần thiết xuất hiện trong message . Nó không cần thiết cho những đường dẫn và cú pháp đặc biệt này xuất hiện trong những trường của message header như "To:" , "From:", "CC:",….

Nếu một server-SMTP chấp nhận công việc chia ca mail và sau đó thấy forward-path không đúng hay mail đó không thể được phân phát được vì bất cứ lí do nào, thì nó phải xây dựng một message thông báo "undeliverable mail" (mail không thể phân phát) và gửi nó đến nơi xuất phát của mail không thể phân phát đó(được chỉ định trong reverse-path). Message thông báo này phải là từ server-SMTP tại host đó. Dĩ nhiên những server-SMTP sẽ không gữi những message thông báo về những sự cố xảy ra cho message thông báo đó. Một cách ngăn chặn sự lặp lại trong việc thông báo lỗi là đặc tả một null reverse-path trong lệnh MAIL của message một thông báo. Khi một message thông báo như vậy được chia ca nó được dùng để loại bỏ reverse-path null. Một lệnh MAIL với null reverse-path như dưới đây: MAIL FROM:< >

Page 38: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 37

Thông báo này nằm trong trả lời cho một message được khởi động bởi JOE tại HOSTW và gửi thông qua HOSTX đến HOSTY với chỉ thị chia ca nó đến HOSTZ, nó là bước đầu tiên trong việc trả về message thông báo .

Ví dụ message thông báo mail không thể phân phát : S: MAIL FROM:<> R: 250 OK S: RCPT TO:<@HOSTX.ARPA:[email protected]> R: 250 OK S: DATA R: 354 send the mail data, end with . S: Date: 23 Oct 81 11:22:33 S: From: [email protected] S: To: [email protected] S: Subject: Mail System Problem S: S: Sorry JOE, your message to [email protected] lost. S: HOSTZ.ARPA said this: S: "550 No Such User" S: .

R: 250 OK 7- Thay đổi vai trò :

Lệnh TURN có thể dùng để đảo vai trò của hai chương trình đang giao tiếp trên kênh giao chuyển. Nếu chương trình A đang là Sender-SMTP hiện hành và nó gửi lệnh TURN và nhận một reply OK(250) thì chương trình A trở thành receiver-SMTP. Nếu chương trình B đang hiện hành receiver-SMTP hiện hành và nó gửi lệnh TURN và nhận một reply OK(250) thì chương trình B trở thành Sender-SMTP. Để từ chối thay đổi vai trò receiver gửi reply 502 Lưu ý là lệnh này không bắt buộc. Thường nó không được dùng trong tình trạng kênh giao chuyển là TCP. Tuy nhiên khi trị giá cho việc thiết lập kênh giao chuyển cao, lệnh này có thể rất có ích. Ví dụ như lệnh này có ích trong việc hổ trợ là trao đổi mail dùng hệ thống public switched telephone làm một kênh giao chuyển, đặc biệt nếu một số host đề cử các host khác cho việc trao đổi mail.

IV. ĐẶC TẢ SMTP A. Những lệnh SMTP (Commands SMTP) 1. Ngữ nghĩa lệnh : Những lệnh SMTP định nghĩa sự truyền mail hay chức năng của hệ thống

mail được yêu cầu bởi user. Những lệnh SMTP là những chuỗi ký tự kết thúc bằng <CRLF>. Bản thân mã lệnh là những ký tự chữ kết thúc bởi chuỗi <SP> nếu có những tham số theo sau và <CRLF> khác. Cú pháp của những mailbox phải tuân theo những thoả hiệp phía người nhận. Những reply SMTP được bàn đến trong phần B.

Một sự giao dịch mail bao gồm vài đối tượng dữ liệu được giao tiếp khi những đối số cho các lệnh khác nhau. Reverse-path là đối số của lệnh MAIL. Forward-path là đối số của lệnh RCPT. Và mail data là đối số của lệnh DATA. Ba đối số và những đối tượng dữ liệu được duy trì cho đến khi xác nhận truyền xong bởi sự chỉ định kết thúc của mail data thì thật sự kết thúc giao dịch. Mô hình cho nó

Page 39: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 38

là những buffer riêng biệt được cung cấp để giữ kiểu của đối tượng dữ liệu. Một số lệnh đặc trưng sinh ra thông tin được gắn vào một buffer đặc trưng, hay làm cho một hay nhiều buffer bị xố. HELLO (HELO) : Lệnh này dùng định danh Sender-SMTP đến Receiver-SMTP. Trường đối số chứa host name của Sender-SMTP. Receiver-SMTP định danh nó đến Sender-SMTP trong trả lời bắt tay cho việc kết nối, và trong câu trả lời cho lệnh này.Lệnh này và một reply OK để xác nhận cả hai Sender-SMTP và Receiver-SMTP đang trong tình trạng khởi động, điều đó là: Không có một giao dịch mail nào đang tiến hành và tất cả các bảng trạng thái và buffer đã được xố. MAIL : Lệnh này được dùng khởi tạo một giao dịch mail trong đó mail data được phân phối đến một hay nhiều mailbox. Feild đối số chứa một reverse-path. Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của user. Khi danh sách các host hồn tất nó là một lộ trình nguồn “trở về” và chỉ định mail đó được chia ca thông qua mỗi host trên danh sách đó (host đầu tiên trong list là host chia ca gần nhất). List này được dùng như một lộ trình nguồn để trả về người gửi những thông báo không thể phân phát. Tại mỗi host chia ca nó thêm phần định danh của bản thân vào chổ bắt đầu của list đó và phải dùng tên của nó được biết trong IPCE nơi nó sẽ chia ca mail đến đó, đúng hơn là ICPE có mail đến từ đó (nếu chúng khác nhau). Trong một số loại message thông báo lỗi (ví dụ thông báo mail không thể phân phát) reverse-path có thể là null. RECIPIENT (RCPT) : Lệnh này dùng định danh một người nhận mail riêng lẻ, nhiều recipient được đặc tả bằng nhiều lệnh này. Forward-path bao gồm một danh sách các host tuỳ ý và một mailbox đích được yêu cầu. Khi danh sách host đó hồn tất. Nó là một lộ trình nguồn và chỉ định mail phải được chia ca đến host kế tiếp trên list đó. Nếu Receiver-SMTP không thực thi chức năng chia ca nó có thể dùng được reply này và sẽ cho một unknown local user (550). Khi mail được chia ca, host chia ca phải chuyển phần định danh nó từ chổ bắt đầu forward-path và đặt vào chổ bắt đầu của reverse-path. Khi mail trải ra tới đích cuối cùng (forward-path chỉ chứa một mailbox đích) receiver-SMTP chèn nó vào trong mailbox đích trong sự đồng ý với thoả hiệp host mail của nó. Ví dụÏ mail được nhận tại host chia ca A với những đối số: FROM:<[email protected]> TO:<@HOSTA.ARPA,@HOSTB.ARPA:[email protected]> Sẽ được chia ca đến host B với đối số FROM:<@HOSTA.ARPA:[email protected]> TO:<@HOSTB.ARPA:[email protected]>. Lệnh này sinh ra đối số forward-path của nó được gắn vào forward-path buffer. DATA(DATA) : Receiver-SMTP xử lý những dòng theo sau lệnh này khi mail từ Sender-SMTP đến. Nó làm cho mail data từ lệnh này được ghi vào data buffer. Mail data này có thể chứa những ký tự của 128 mã ACSII. Data mail được kết thúc bằng một dòng chỉ chứa một dấu chấm. Đó là một dãy ký tự "<CRLF>. <CRLF>" (xem phần 4.D.2). Và đó là chỉ định kết thúc của mail data. Sự chỉ định kết thúc một chuổi đòi hỏi người nhận phải xử lý việc lưu trữ những thông tin giao dịch mail ngay lập tức. Quá trình xử lý này dùng thông tin trong reverse-path buffer, forward-path buffer, mail data buffer, và khi hồn tất lệnh

Page 40: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 39

này những buffer đó sẽ bị xóa, những message được chia ca sẽ có nhiều dòng đánh dấu thời gian. Khi một Receiver-SMTP tạo ra “final delivery” của một message nó chèn vào chổ bắt đầu của mail data một dòng return-path. Dòng return-path đó bảo quản thông tin trong “reverse-path” từ lệnh mail. Ơû đây deliver final có nghĩa là message đó rời khỏi thế giới SMTP. Thông thường có nghĩa là nó đã được chuyển đến user đích, nhưng trong một số trường hợp nó có thể được xử lý nữa và và được giao chuyển bởi hệ thống mail khác. Có thể cho mailbox trong return-path là khác biệt với mailbox thật sự của Sender-SMTP, ví dụ như nếu những trả lời error được dùng phân phát một lỗi đặc biệt điều khiển mailbox. Hai đoạn trước ý nói mail data cuối cùng sẽ bắt đầu với một dòng return-path theo sau là một hay nhiều dòng đánh dấu thời gian , sau những dòng này sẽ là phần header và body của mail data [2]. Sự đề cập đặc biệt cần thiết cho sự trả lời (response) và sự hành động tiếp nữa được yêu cầu khi quá trình xữ lý theo sau sự chỉ định kết thúc mail data là sự thành công cục bộ. Điều này có thể phát sinh nếu sau khi chấp nhận một vài người nhận và data mail của receiver-SMTP thấy mail data đó có thể được phân phát đến một số người thành công nhưng lại không thể đến những người khác (ví dụ như xảy ra vấn đề về việc chỉ định vị trí của mailbox). Trong tình trạng như vậy câu trả lời cho lệnh DATA phải là một reply OK. Nhưng receiver-SMTP phải soạn và gửi về nơi xuất xứ của message đó một message thông báo “undelivered mail”. Một thông báo đơn liệt kê tất cả các recipient không nhận được message, hay những message thông báo riêng lẽ phải được gửi cho từng recipient một , tất cả những thông báo mail không thể phân phát được gửi dùng lệnh MAIL (ngay cả nếu kết quả đó từ quá trình xử lý một lệnh SEND, SOML, hay SAML ). Ví dụ cho đường dẫn trả về và nhận đánh dấu thời gian nhận: Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:[email protected]> Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST Date: 27 Oct 81 15:01:01 PST From: [email protected] Subject: Improved Mailing System Installed To: [email protected] This is to inform you that ... SEND (SEND) : Lệnh này dùng khởi tạo một giao dịch mail trong đó mail data được phân phát đến một hay nhiều terminal. Trường đối số chứa một reverse-path. Lệnh này thành công nếu message được phân phát đến một terminal. Reverse-path bao gồm một list các host và mailbox người gửi tuỳ ý khi list đó hồn tất, nó là một lộ trình nguồn “trở về” và chỉ định mail đã được chia ca thông qua các host trong list đó (host đầu tiên trong list là host chia ca gần nhất) danh sách này được dùng như một lộ trình nguồn để trả về cho người gửi những thông báo về việc không phân phát được. Khi mỗi host chia ca thêm phần định danh vào trong vị

Page 41: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 40

trí bắt đầu của list , nó phải dùng tên mà nó được biết đến trong IPCE nơi nó sẽ chia ca mail tới đó , đúng hơn là IPCE có mail tới từ đó. Lệnh này xố reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path từ lệnh này vào trong reverse-path buffer. END OR MAIL (SOML) : Lệnh này dùng khởi tạo một giao dịch mail trong đó mail data được phân phát đến một hay nhiều terminal hay mailbox. Cho từng recipient, data mail được phân phát đến terminal của người nhận nếu người nhận đó đang hoạt động trên host đó (và chấp nhận những terminal message ), mặt khác là đến mailbox của những người nhận đó. Trường đối số chứa một reverse-path . Lệnh này thành công khi message được phân phát đến một terminal hay mailbox. Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của người gửi. Khi danh sách các host đó hồn tất, nó là một lộ trình nguồn “trở về” và chỉ định mail đó đã được chia ca thông qua các host trên danh sách (host đầu tiên trong danh sách là host chia ca gần nhất). Danh sách này được dùng như một lộ trình nguồn trả về cho người gửi những thông báo về việc không thể phân phát. Khi mỗi host chia ca thêm phần định danh nó vào chổ bắt đầu của danh sách đó, nó phải dùng tên được biết đến trong IPCE nơi nó sẽ chia ca mail đến đó đúng hơn là IPCE có mail đến từ đó(nếu chúng khác nhau). Lệnh này xố reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path từ lệnh này vào trong reverse-path buffer. SEND AND MAIL (SAML) : Lệnh này dùng khởi tạo một giao dịch mail trong đó mail data được phân phát đến một hay nhiều terminal và các mailbox. Cho từng người nhận mail được phân phát đến terminal của người nhận nếu người nhận đó đang hoạt động trên host đó (và chấp nhận những terminal message ) và cho tất cả recipient thì đến mailbox của các recipient đo. Trường đối số chứa một reverse-path. Lệnh này thành công khi message được phân phát đến mailbox.

Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của người gửi. Khi danh sách hồn tất nó là một lộ trình nguồn “trở về” và chỉ định mail đã được chia ca thông qua các host trong danh sách đó(host đầu tiên trong danh sách là host chia ca gần nhất ) Danh sách này được dùng như một lộ trình nguồn trả về cho người gửi những thông báo về việc không thể phân phát. Khi mỗi host chia ca thêm phần định danh nó vào chổ bắt đầu của danh sách đó nó phải dùng tên mà nó được biết đến trong IPCE mà nó sẽ chia ca mail đến đó đúng hơn là IPCE mà mail đến từ đó (nếu chúng khác nhau).

Lệnh này xố reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path từ lệnh này vào trong reverse-path buffer.

RESET (RSET) : Lệnh này định rõ giao dịch mail hiện hành bị huỷ bỏ. Các người gửi, recipient, mail data đã lưu sẽ bị huỷ bỏ và tất cả các bảng trạng thái, các buffer bị xố. Receiver phải gửi một reply OK. VERIFY (VRFY) : Lệnh này yêu cầu receiver xác nhận đối số định danh một user. Nếu nó là một user name, full name của user đó (nếu receiver biết) và mailbox đặc tả đầy đủ được trả về.Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. EXPAND (EXPN) : Lệnh này yêu cầu receiver xác nhận một mailing list (danh sách địa chỉ) và trả về một thành phần trong danh sách đó. Full name của các

Page 42: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 41

user (nếu biết) và những mailbox được đặc tả đầy đủ được trả về trong một reply nhiều dòng. Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. HELP (HELP) : Lệnh này làm cho receiver thông tin giúp đỡ cho người gửi lệnh HELP. Lệnh này có thể nhận một đối số (có thể là tên lệnh) và trả về thông tin chi tiết. Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. NOOP (NOOP) : Lệnh này không ảnh hưởng các tham số hay các lệnh được đưa vào trước nó, nó đặc tả không có một hành động nào khác hơn là receiver gửi một reply OK. Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. QUIT (QUIT) : Lệnh này định rõ receiver phải gửi một reply OK và sau đó đóng kênh giao dịch . Receiver sẽ không đóng kênh giao dịch cho đến khi nó nhận và trả lời cho lệnh QUIT (ngay cả nếu có một lỗi xãy ra). Người gửi sẽ không đóng kênh giao dịch cho đến khi nó gửi một lệnh QUIT và nhận reply đó (ngay cả nếu có một lỗi trả lời cho lệnh trước đó). Nếu kết nối bị đóng trước thời gian mong muốn receiver sẽ làm việc như vừa nhận được một lệnh RSET (bỏ tất cả các giao dịch đang treo mà chưa làm, nhưng không “undo” những giao dịch đã hồn tất trước đó) người gửi sẽ hành động như nếu lệnh hay giao dịch đó trong quá trình xử lý nhận được một lỗi tạm thời (4xx). TURN (TURN) : Lệnh này định rõ Receiver-SMTP phải gửi một trong hai reply sau: (1) reply OK và sau đó nhận vai trò của một Sender-SMTP, hay (2) gửi một reply từ chối và giữ lại vai trò một Receiver-SMTP. Nếu program-A hiện tại là một Sender-SMTP gửi một lệnh TURN và nhận một reply OK (250) thì program-A trở thành Receiver-SMTP sau đó program-A sẽ trong trạng thái khởi động chỉ nếu kênh giao chuyển đã được mở, sau đó nó chờ nhận một chào hỏi dịch vụ đã sẵn sàng 220. Để từ chối thay đổi vai trò Receiver-SMTP gửi một reply 502. Có sự hạn chế trong trật tự khi dùng những lệnh này.

Đầu tiên trong một cuộc trao đổi phải là lệnh HELLO, lệnh này có thể được dùng sau đó trong một cuộc trao đổi khác. Nếu đối số trong lệnh HELLO không được chấp nhận một reply failure 501 phải được trả về và Receiver-SMTP đó phải ở trong trạng cũ.

Những lệnh NOOP, HELP, EXPAND và VRFY có thể được dùng nhiều lần trong một cuộc giao dịch.

Các lệnh MAIL, SEND, SOML, và SAML bắt đầu một giao dịch mail. Khi bắt đầu một giao dịch mail bao gồm một lệnh khởi tạo giao dịch , một hay nhiều lệnh RCPT, và một lệnh DATA đó là một trật tự . một giao dịch mail có thể được bỏ qua bởi một lệnh RSET có thể có hay không có nhiều giao dịch trong một cuộc trao đổi (session).

Nếu đối số của lệnh khởi động giao dịch không thể chấp nhận một reply failure 501 phải được trả về và Sender-SMTP phải nằm trong trạng thái cũ. Nếu

Page 43: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 42

những lệnh trong cuộc giao dịch không đúng trật tự một reply failure 503 được trả về và Receiver-SMTP đó phải nằm trong trạng thái cũ.

Lệnh cuối cùng trong cuộc trao đổi phải là lệnh QUIT và lệnh QUIT không thể được dùng nhiều lần trong một cuộc trao đổi.

2- Cú pháp lệnh : Những lệnh này bao gồm một mã lệnh theo sau là một trường đối số . Mã

lệnh là bốn ký tự chữ . Những ký tự thường và hoa được xữ lý như nhau . Vậy những từ sau đây có thể đại diện cho lệnh MAIL: MAIL Mail mail MaIl mAIl

Ở đây cũng dùng một số ký hiệu trình bày cho những giá trị của tham số, chẳng hạn như “TO” hay “to” cho forward-path. Mã lệnh và những trường đối số được tách ra bởi một hay nhiều khoảng trắng. Tuy nhiên bên trong những đối số reverse-path và forward-path kiểu chữ rất quan trọng. Trong một số host user “khanh” khác với user “Khanh”.

Trường đối số gồm có một biến chiều dài chuổi ký tự, kết thúc với chuổi <CLRF>. Receiver-SMTP không nhận hành động cho đến khi nhận được chuổi <CLRF> này.

Dấu ngoặc vuông biểu thị một trường đối số tuỳ ý. Nếu không nhận chọn lựa này một mặc định phù hợp sẽ được áp dụng. Sau đây là những lệnh SMTP:

HELO <SP> <domain> <CRLF> MAIL <SP> FROM:<reverse-path> <CRLF> RCPT <SP> TO:<forward-path> <CRLF> DATA <CRLF> RSET <CRLF> SEND <SP> FROM:<reverse-path> <CRLF> SOML <SP> FROM:<reverse-path> <CRLF> SAML <SP> FROM:<reverse-path> <CRLF> VRFY <SP> <string> <CRLF> EXPN <SP> <string> <CRLF> HELP [<SP> <string>] <CRLF> NOOP <CRLF> QUIT <CRLF> TURN <CRLF>

Cú pháp của những trường đối số trên( dùng ký hiệu BNF có thể áp dụng được ở đây) được cho bên dưới. Ký hiệu “…” chỉ định một trường có thể được lặp một hay nhiều lần. <reverse-path> ::= <path> <forward-path> ::= <path> <path> ::= "<" [ <a-d-l> ":" ] <mailbox> ">" <a-d-l> ::= <at-domain> | <at-domain> "," <a-d-l> <at-domain> ::= "@" <domain> <domain> ::= <element> | <element> "." <domain> <element> ::= <name> | "#" <number> | "[" <dotnum> "]" <mailbox> ::= <local-part> "@" <domain> <local-part> ::= <dot-string> | <quoted-string>

Page 44: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 43

<name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig> ::= <a> | <d> <let-dig-hyp> ::= <a> | <d> | "-" <dot-string> ::= <string> | <string> "." <dot-string> <string> ::= <char> | <char> <string> <quoted-string> ::= """ <qtext> """ <qtext> ::= "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext> <char> ::= <c> | "\" <x> <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum> <number> ::= <d> | <d> <number> <CRLF> ::= <CR> <LF> <CR> ::= the carriage return character (ASCII code 13) <LF> ::= the line feed character (ASCII code 10) <SP> ::= the space character (ASCII code 32) <snum> ::= one, two, or three digits representing a decimal integer value in the range 0 through 255 <a> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <c> ::= any one of the 128 ASCII characters, but not any <special> or <SP> <d> ::= any one of the ten digits 0 through 9 <q> ::= any one of the 128 ASCII characters except <CR>, <LF>, quote ("), or backslash (\) <x> ::= any one of the 128 ASCII characters (no exceptions) <special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "." | "," | ";" | ":" | "@" """ | the control characters (ASCII codes 0 through 31 inclusive and 127)

Chú ý dấu suyệt ngược “\” là một ký tự định đặt, nó được dùng chỉ định ký tự kế tiếp được dùng một cách chính xác (thay cho sự thông dịch thông thường của nó) ví dụ như "Khanh\,Sam" sẽ được dùng chỉ định một ký tự một trường chín tự đơn với dấu phẩy là ký tự thứ sáu của trường.

Thường những host được biết đến bằng những cái tên, nó được biên dịch thành địa chỉ của mỗi host. Lưu ý tên phần tử của các Domain phải là tên chính thức, không dùng tên hiệu hay bí danh.

Thỉnh thoảng một host không biết đến chức năng biên dịch và sự giao tiếp bị khố. Để phớt lờ chướng ngại này hai cấu trúc dạng số cũng được chấp nhận cho “names” của host. Một dạng là một số nguyên hệ thập phân nằm sau ký hiệu giới hạn “#” nó chỉ định số này là địa chỉ của host. Một dạng khác là bốn số nguyên nhỏ bao trong dấu ngoặc vuông và cách nhau bởi những dấu chấm như "[123.255.37.2]". Nó chỉ định một địa chỉ 32 bit- ARPA internet trong bốn trường 8 bit.

Dòng đánh dấu thời gian và dòng đường dẫn trở về thường được định nghĩa như ví dụ sau : <return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF> <time-stamp-line> ::= "Received:" <SP> <stamp> <CRLF>

Page 45: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 44

<stamp> ::= <from-domain> <by-domain> <opt-info> ";" <daytime> <from-domain> ::= "FROM" <SP> <domain> <SP> <by-domain> ::= "BY" <SP> <domain> <SP> <opt-info> ::= [<via>] [<with>] [<id>] [<for>] <via> ::= "VIA" <SP> <link> <SP> <with> ::= "WITH" <SP> <protocol> <SP> <id> ::= "ID" <SP> <string> <SP> <for> ::= "FOR" <SP> <path> <SP> <link> ::= The standard names for links are registered with the Network Information Center ( Tên chuẩn cho những liên kết được đăng ký với Net Work Information Center) <protocol> ::= The standard names for protocols are registered with the Network Information Center. (Tên chuẩn cho những protocol được đăng ký với Net Work Information Center) <daytime> ::= <SP> <date> <SP> <time> <date> ::= <dd> <SP> <mon> <SP> <yy> <time> ::= <hh> ":" <mm> ":" <ss> <SP> <zone> <dd> ::= the one or two decimal integer day of the month in the range 1 to 31. <mon> ::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" | "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC" <yy> ::= the two decimal integer year of the century in the range 00 to 99. <hh> ::= the two decimal integer hour of the day in the range 00 to 24. <mm> ::= the two decimal integer minute of the hour in the range 00 to 59. <ss> ::= the two decimal integer second of the minute in the range 00 to 59. <zone> ::= "UT" for Universal Time (the default) or other time zone designator (as in [2]).

Ví dụ : Return Path Return-Path: <@CHARLIE.ARPA,@BAKER.ARPA:[email protected]>

Ví dụ : dòng đánh dấu thời gian : Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81 09:23:59 PDT

Một reply SMTP bao gồm một số ba chữ số (được truyền như ba ký tự chữ

số) theo sau là một số văn bản (text). Số đó được dành cho các chương trình tự động để xác định trạng thái đưa vào kế tiếp. Text ở trên có ý nghĩa cho user con người (không phải máy). Ba chữ số đó được ấn định chứa đầy đủ thông tin được mã hố Sender-SMTP không cần kiểm tra text đó và có thể huỷ bỏ hay chuyển nó qua một user thích hợp. Đặc biệt text này có thể độc lập với Receiver-SMTP và độc lập với ngữ cảnh, do có sự giống nhau trong những text khác nhau từng mã reply. Nguyên lý của những mã reply cho trong phụ lục E. thông thường một reply được định nghĩa là chuổi gồm: một mã ba chữ số, <SP>, một dòng text, và <CRLF>, hay một

Page 46: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 45

reply nhiều dòng (như định nghĩa trong phụ lục E) chỉ những lệnh EXPN và HELP có kết quả là những reply nhiều dòng trong những tình huống bình thường, tuy nhiên những reply nhiều dòng được chấp nhận cho nhiều lệnh.

1. Những mã Reply cho một nhóm các chức năng:

500 Lỗi cú pháp, không chấp nhập lệnh [nó có thể bao gồm những lỗi như: lệnh quá dài] 501 Lỗi cú pháp trong những đối số hay những tham số lệnh không được cung cấp dòng lệnh sai tham số của lệnh không được cung cấp 211 Trạng thái hệ thống, hay trả lời giúp đỡ về hệ thống 214 Message giúp đỡ [thông tin về làm thế nào để dùng receiver hay ý nghĩa của một lệnh không chuẩn đặc biệt ; reply này rất có ích cho người sử dụng] 220 <domain> dịch vụ sẳn sàng 221 <domain> dịch vụ đóng kênh giao chuyển 421 <domain> dịch vụ không dùng được, đóng kênh giao chuyển [nó có thể là một reply cho nhiều lệnh nếu dịch vụ đó biết reply này phải shut down] 250 Hành dộng mail yêu cầu ok, hồn thành 251 User không cục bộ, sẽ hướng đến “forward-path” 450 Không lấy hành động mail yêu cầu: mailbox không có hiệu lực [chẳng hạn như mailbox không tìm thấy, không truy xuất được] 451 Bỏ qua hành động được yêu cầu; lỗi trong quá trình xử lý 551 User không cục bộ, vui lòng thử lại <forward-path> 452 Không nhận hành động được yêu cầu : lưu trữ của hệ thống không đủ 552 Bỏ qua hành động mail yêu cầu: vượt quá chỉ định lưu trữ 553 Không nhận hành động được yêu cầu : không chấp nhận tên

mailbox [như sai cú pháp mailbox]. 554 Khởi động việc nhận mail; kết thúc với <CLRF>.<CLRF> giao

chuyển bị sai. 2. Thứ tự của danh sách những mã Reply số :

211 Tình trạng hệ thống, hay reply giúp đỡ hệ thống. 214 Message giúp đỡ. Thông tin làm thế nào để dùng receiver hay ý nghĩa của một lệnh không chuẩn đặc biệt ; reply này rất có ích cho user. 220 <domain> dịch vụ sẳn sàng 221 <domain> dịch vụ đóng kênh giao chuyển 250 Hành động mail yêu cầu OK, hồn thành 251 User không cục bộ; sẽ hướng đến <forward-path> 354 Khởi động việc nhập mail; kết thúc với <CLRF>. <CLRF>

Page 47: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 46

421 <domain> dịch vụ không sử dụng được, đóng kênh giao chuyển {nó có thể là một reply cho nhiều lệnh nếu dịch vụ đó biết reply này phải shut down] 450 Không lấy hành động mail yêu cầu; mailbox không hiệu lực [như mailbox bận] 450 Bỏ qua hành động được yêu cầu ; lỗi cục bộ trong quá trình xử lý 451 Không nhận hành động được yêu cầu; lưu trữ của hệ thống

không đủ. 500 Lỗi cú pháp; không chấp nhận lệnh [nó có thể bao gồm những lỗi như: lệnh quá dài] 501 Lỗi cú pháp trong tham số hay đối số 502 Lệnh không được cung cấp 503 Dòng lệnh sai 504 Tham số của dòng lệnh không được cung cấp 550 Không nhận hành động được yêu cầu ; mailbox không hiệu lực [như mailbox không tìm thấy hay không truy cập được] 551 User không cục bộ; vui lòng thử <forward-path> 552 Bỏ qua hành động mà mail yêu cầu, vượt quá chỉ định lưu trữ 554 Không nhận hành động được yêu cầu; tên mailbox không được

chấp nhận. [như sai cú pháp mailbox] giao chuyển sai.

3. Sự liên tục của những Command & Reply : Sự giao tiếp giữa Sender-SMTP và Receiver-SMTP được chỉ định là một

cuộc hội thoại tuần tự do Sender-SMTP điều khiển. Chẳng hạn như Sender-SMTP sinh ra một lệnh và Receiver-SMTP trả lời với một reply. Sender-SMTP phải chờ sự trả lời này trước khi gửi thêm lệnh.

Một reply quan trọng là chào hỏi kết nối. Thông thường một Receiver-SMTP sẽ gửi một reply 220 “service ready” khi kết nối hồn thành. Sender-SMTP phải chờ message chào hỏi này trước khi gửi các lệnh.

Lưu ý: tất cả các reply kiểu chào hỏi dùng tên chính thức của host server là từ đầu tiên theo sau mã reply

Ví dụ : 220 <SP> USC-ISIF.ARPA <SP> Service ready <CRLF> Bảng bên dưới liệt kê những reply thành công và thất bại cho mỗi lệnh nó

phải được gia nhập vào một cách nghiêm ngặt để một Receiver-SMTP có thể thay thế text trong các reply nhưng ý nghĩa và hành động được định bởi mã số và bởi chuỗi command reply đặc trưng không thể bị thay đổi.

*- Những chuỗi COMMAND-REPLY Mỗi lệnh được liệt kê với các reply có thể của nó. Những tiền tố được dùng

trước những reply có thể là “P” để khởi đầu (không dùng trong SMTP) “I” cho phần giữa, “S” cho sự thành công và “E” cho lỗi. Reply 421 (dịch vụ không hiệu lực, đóng kênh giao chuyển) có thể cho một số lệnh nếu receiver-SMTP nhận biết rằng nó phải shut down. Sự liệt kê sau đây là cấu trúc cơ bản cho sơ đồ trạng thái (state diagram) trong phần B. CONNECTION ESTABLISHMENT (thiết lập kết nối) S: 220 F: 421

Page 48: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 47

HELLO S: 250 E: 500, 501, 504, 421 MAIL S: 250 F: 552, 451, 452 E: 500, 501, 421 RCPT S: 250, 251 F: 550, 551, 552, 553, 450, 451, 452 E: 500, 501, 503, 421 DATA I: 354 -> data -> S: 250 F: 552, 554, 451, 452 F: 451, 554 E: 500, 501, 503, 421 RSET S: 250 E: 500, 501, 504, 421 SEND S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SOML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SAML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 VRFY S: 250, 251 F: 550, 551, 553 E: 500, 501, 502, 504, 421 EXPN S: 250 F: 550 E: 500, 501, 502, 504, 421 HELP S: 211, 214 E: 500, 501, 502, 504, 421 NOOP S: 250 E: 500, 421 QUIT

Page 49: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 48

S: 221 E: 500 TURN S: 250 F: 502 E: 500, 503

B- Sơ đồ trạng thái (STATE DIAGRAM) Dưới đây là sơ đồ trạng thái cho một sự thi hành SMTP đơn giản. Chỉ một

chữ số đầu tiên của những mã reply được sử dụng . Đây là một bảng trạng thái cho từng nhóm lệnh SMTP những nhóm lệnh này được xác định bằng cách xây dựng một mô hình cho mỗi lệnh và sau đó gom những lệnh đó lại với nhau với những mô hình giống nhau về cấu trúc.

Cho mỗi lệnh có ba kết quả “thành công” (S), “thất bại” (F), “lỗi” (E) trong sơ đồ trạng thái sau chúng ta dùng ký hiệu B cho “begin” và ký hiệu W cho “wait for reply”.

Đầu tiên sơ đồ trình bày cho hầu hết các lệnh SMTP : Sơ đồ này mô hình cho những lệnh sau: HELO, MAIL, RCPT, RSET, SEND, SOML, SAML, VRFY, EXPN, HELP, NOOP, QUIT, TURN

Một sơ đồ phức tạp hơn mô hình cho lệnh DATA : Lưu ý: “data” ở đây là một chuỗi những dòng gửi từ Sender-SMTP đến Receiver-SMTP không cần sự trả lời cho đến khi dòng cuối cùng được gửi.

C- Chi tiết

B

E

W S

F

2 cmd

4,5

1,3

1,2

B

W

W F

S

E DATA

data

3 4,5

1,3 2

4,5

Page 50: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 49

1. Sự thực thi tối thiểu : Hợp lệ để làm cho SMTP có thể làm việc, sự thực thi tối thiểu sau được yêu

cầu cho tất cả các Receiver-SMTP COMMANDS -- HELO MAIL RCPT DATA RSET NOOP QUIT

2. Tính trong suốt : Không có một sự cung cấp nào cho tính trong suốt dữ liệu, chuổi ký tự

<CRLF>.<CRLF> kết thúc mail text và không được user gửi đi. Thông thường user không nhận biết được sự “ngăn cản” những chuổi ký tự đó. Để cho phép tất cả các text đã soạn thảo của user được truyền một cách rõ ràng những thủ tục sau đây được sử dụng.

1> Trước khi gửi một dòng dữ liệu mail, Sender-SMTP kiểm tra ký tự đầu tiên của dòng đó. Nếu nó là một dấu chấm, một dấu chấm phụ được thêm vào đầu dòng.

2> Khi Receiver-SMTP nhận một dòng dữ liệu mail nó kiểm tra dòng đó. Nếu dòng đó chỉ có một dấu chấm đơn thì nó là kết thúc của mail. Nếu ký tự đầu tiên là một dấu chấm và theo sau là những ký tự khác nằm trên cùng dòng. Thì ký tự đầu tiên đó bị xố.

Mail data có thể chứa các ký tự mã ASCII (128 ký tự) tất cả các ký tự được phân phát đến mailbox của người nhận bao gồm phần định dạng và những ký tự điều khiển khác. Nếu kênh chuyển giao cung cấp một luồng dữ liệu 8 bit (octet), những mã ASCII 7 bit trên được vận chuyển đúng điều chỉnh lại trong hệ bát phân với bit cao nhất bị xố về 0.

Nó có thể cần thiết để biến đổi dữ liệu được nhận hay lưu trữ . Trong một số hệ thống, điều này cần thiết cho những host dùng một tập hợp ký tự khác với tập ASCII , như tập ký tự cục bộ của chúng hay dữ liệu lưu trong những bảng ghi nhiều hơn chuổi. Nếu những thay đổi trên là cần thiết, chúng phải khôi phục lại (biến đổi hai chiều) được nếu những biến đổi đó được áp dụng cho mail được chia ca.

3. Kích thước : Có vài đối tượng đòi hỏi kích thước nhỏ nhất lớn nhất. Đó là tất cả tất cả sự

thực thi phải có để nhận những đối tượng có kích thước tối thiểu, nhưng không bắt buộc phải gửi những đối tượng lớn hơn kích thước này user : Chiều dài tổng cộng lớn nhất của user name là 64 ký tự. domain : Chiều dài tổng cộng lớn nhất của domain name hay số là 64 ký tự.

ĐỂ CÓ PHẠM VI LỚN NHẤT CÓ THỂ, THỰC THI KỸ THUẬT ĐÁNH LỪA KHÔNG GIỚI HẠN CHIỀU DÀI

CỦA NHỮNG ĐỐI TƯỢNG SẼ ĐƯỢC DÙNG

Page 51: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 50

path : Chiều dài tổng cộng lớn nhất của một dòng lệnh bao gồm những từ lệnh và <CRLF> là 512 ký tự.

text line (dòng văn bản) : Chiều dài tổng cộng lớn nhất của dòng văn bản bao gồm <CRLF> là 1000 ký tự (không tính dấu chấm ở đầu được nhân lên cho vấn đề trong suốt).

recipients buffer : Tổng số recipient lớn nhất là 100 recipient.

* Lỗi vượt quá quyền được giới hạn có thể được báo cáo bằng cách dùng những mã reply. Ví dụ như :

500 Line too long.(dòng quá dài) 501 Path too long (đường dẫn quá dài) 552 Too many recipients.(quá nhiều recipient) 552 Too much mail data (quá nhiều mail data) PHỤ LỤC A. Dịch vụ vận chuyển TCP

Transmission Control Protocol (điều khiển giao chuyển [3]) được dùng trong ARPA Internet và trong một số mạng theo tiêu chuẩn US DoD cho các giao thức liên mạng . * Thiết lập kết nối : Một kênh giao chuyển SMTP là một kết nối được thiết lập the người gửi process port U and the receiver process port L. nó là một kết nối full duplex đơn giản được dùng như kênh kết nối trên protocol này được gán một dịch vụ port 25 (31 hệ mười) đó là L=25. * Truyền dữ liệu : Kết nối TCP hổ trợ truyền những byte 8 bit. Dữ liệu SMTP là những ký tự 7 bit mã ASCII. Mỗi ký tự được truyền như một byte 8 bit với bit cao nhất bị xố về 0.

B. Dịch vụ vận chuyển NCP

ARPANET Host-to-Host Protocol [4] (được cung cấp bởi Network Control Program) có thể được dùng trong ARPANET . * Thiết lập kết nối : Kênh giao chuyển SMTP được thiết lập qua NCP giữa người gửi process socket U và receiver process socket L. The Initial Connection Protocol [5] là kết quả là kết quả tiếp theo một cặp kết nối simplex. Cặp kết nối này được dùng như kênh giao chuyển . protocol này được gán tồn bộ socket 25 , đó là L=25. * Truyền dữ liệu:

Kết nối NCP data được thiết lập trong chế độ 8 bit. SMTP data là những ký tự ASCII 7 bit . Mỗi ký tự được truyền như một byte 8 bit với bit cao nhất bị xố về 0.

C. NTTS Network Independent Transport Service [6] (dịch vụ vận chuyển mạng độc

lập) có thể được dùng . * Thiết lập kết nối :

Kênh giao chuyển SMTP được thiết lập qua NTTS sender process và receiver process. Sender process thi hành CONNECT ban đầu và chờ receiver process thực thi ACCEPT ban đầu .

Page 52: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 51

* Truyền dữ liệu : Kết nối NTTS hổ trợ giao chuyển các byte 8 bit . SMTP data là những ký tự

ASCII 7 bit . Mỗi ký tự được truyền như một byte 8 bit với bit cao nhất bị xố về 0. D. Dịch vụ vận chuyển X.25 Nó có thể dùng X.25 service [7] cung cấp bởi Public Data Networks một

cách trực tiếp , tuy nhiên nó được đề nghị một protocol đáng tin cậy chẳng hạn như TCP được dùng ở trên kết nối X.25.

E. Nguyên lý của các mã Reply Ba chữ số của mã reply mỗi chữ có một ý nghĩa đặc biệt. Ký tự đầu tiên biểu

thị response, good hay bad hay không hồn tất. Một sender-SMTP thật sẽ có thể xác nhận hành động kế tiếp của nó (tiến hành theo kế hoạch, làm lại, cắt giảm bớt, ..) bằng một cách đơn giản là kiểm tra chữ số đầu tiên này. Một Sender-SMTP muốn biết một cách gần đúng các kiểu lỗi xảy ra (như mail system error, command syntax error) có thể kiểm tra chữ số thứ hai, để dành chữ số thứ ba cho việc kết thúc sự sắp đặt tăng dần của thông tin. * Có năm giá trị cho chữ số đầu tiên của mã reply: 1yz Positive Preliminary reply (reply khẳng định ban đầu ) : Lệnh này được chấp nhận nhưng hành động yêu cầu sẽ được giữ hỗn lại, trì hỗn sự xác nhận thông tin trong reply này. Sender-SMTP sẽ gữi một lệnh khác định rõ tiếp tục hay bỏ qua hành động này. [ Lưu ý: SMTP không có lệnh nào thừa nhận kiểu reply này, vàdo đó không có lệnh tiếp tục hay bỏ qua]. 2yz Positive Completion reply (reply khẳng định sự hồn thành) :

Hành động được yêu cầu hồn tất một cách thành công, một yêu cầu mới có thể được bắt đầu . 3yz Positive Intermediate reply (reply khẳng định giữa chừng) :

Lệnh này được chấp nhận nhưng hành động yêu cầu sẽ được giữ hỗn lại, trì hỗn sự nhận thông tin thêm. Sender-SMTP sẽ gữi một lệnh khác định rõ thông tin này. Reply này được dùng trong những nhóm lệnh tuần tự. 4yz Transient Negative Completion reply (reply phủ định sự hồn thành ngắn hạn):

Lệnh này không được chấp nhận và hành động yêu cầu không xảy ra, tuy nhiên trạng thái lỗi là tạm thời, hành động có thể được yêu cầu trở lại. Người gửi sẽ quay trở lại bắt đầu chuổi lệnh (nếu có) khó gán một nghĩa “tức thời” cho nó khi hai site khác nhau (Receiver và sender-SMTPs) phải đồng ý sự thông dịch. Mỗi reply loại này có một giá trị thời gian khác nhau nhưng Sender-SMTP được khuyến khích thử lại. Một quy tắc lật trang để xác định nếu một reply đặc vào trong loại 4yz hay 5yz (xem bên dưới) thì những reply đó là 4yz nếu chúng có thể được lặp lại mà không cần thay đổi gì trong cấu trúc lệnh hay trong những thuộc tính của người gửi hay người nhận (như một lệnh được lặp lại một cách giống nhau và Receiver –SMTP không đưa ra một sự thực thi mới). 5yz Permanent Negative Completion reply (reply phủ định sự hồn thành dài hạn):

Lệnh này không được chấp nhận và hành động được yêu cầu không xảy ra . Sender-SMTP ngăn cản việc lặp lại yêu cầu (trong chuổi tuần tự đó). Ngay cả một số hồn cảnh lỗi “dài hạn” có thể hiệu chỉnh được, do đó user muốn hướng Sender-

Page 53: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 52

SMTP khởi tạo lại chuổi lệnh đó bằng cách chỉ đạo hành động tại một số thời điểm trong tương lai(như: sau khi chính tả đã được thay đổi, hay user đó thay đổi trạng thái account ) .

a/ Chữ số thứ hai mã hố những loại trả lời(response) đặc trưng : * x0z Syntax : Những reply này xem xét lỗi cú pháp, những lệnh đúng cú pháp không đưa vào một loại chức năng nào. Và không thực thi các lệnh không cần thiết. * x1z Information : Những reply này để yêu cầu thông tin, như trạng thái hay giúp đỡ. * x2z Connections : Những reply này tham khảo đến kênh giao chuyển. * x3z : Cho đến hiện tại chưa được đặc tả. * x4z : Cho đến hiện tại chưa được đặc tả. * x5z Mail system : Reply này chỉ định tình trạng của receiver mail system vis-a-vis yêu cầu truyền hay hoạt động hệ thống mail khác .

b/ Chữ số thứ ba mang lại một mức độ ý nghĩa nhiều hơn cho mỗi loại (category)

Được đặc tả bởi chữ số thứ hai. Danh sách các reply minh hoạ điều này. Mỗi reply text được đề nghị nhiều hơn là lệnh, và có thể thay đổi tuỳ theo lệnh với những kết hợp của lệnh đó. Trong sự kiểm sốt khác những mã reply này phải theo sự đặc tả nghiêm ngặt trong phần này sự thực thi của người nhận sẽ không phát sinh ra mã mới cho tình trạng khác nhau không đáng kể của những gì được đặc tả ở đây. Nhưng những mã thích hợp hơn đã được định nghĩa sẳn.

Ví dụ như, một lệnh như NOOP chẳng hạn nó thực thi thành công không cần đề nghị Sender-SMTP một thông tin mới nào sẽ trả về một reply 250. Câu trả lời là 502 khi lệnh yêu cầu một hành động non-site-specific không thực thi được. Một sự cải tiến cho điều đó là reply 504 cho một lệnh được thực thi nhưng nó yêu cầu một tham số không thực thi.

Reply text có thể dài hơn một dòng đơn, trong trường hợp này một text hồn tất phải được đánh dấu do đó người gửi biết khi nào nó có thể ngưng đọc reply này. Điều này đòi hỏi một định dạng để chỉ định một reply nhiều dòng.

Định dạng cho các reply nhiều dòng quy định tất cả các dòng, chấp nhận chổ cuối cùng và bắt đầu của mã reply, theo sau đó là một dấu gạch nối “-” (dấu trừ) theo sau là text dòng cuối cùng sẽ bắt đầu với mã reply theo ngay sau đó là <SP> , các text và <CRLF>. Cho ví dụ:

123-First line 123-Second line 123-234 text beginning with numbers 123 The last line

Trong một số trường hợp Sender-SMTP cần tìm mã reply theo sau là <SP> ở đầu dòng, và phớt lờ tất cả các dòng trước. Một ít trường hợp có dữ liệu quan trọng cho người gửi trong reply “text” người gửi sẽ nhận biết trường hợp này từ ngữ cảnh hiện hành.

Page 54: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 53

PHẦN 2

GIAO THỨC POP3 (POST OFFICE PROTOCOL VERSION 3) -----***-----

I . GIỚI THIỆU: Nghi thức POP3 được cải tiến từ nghi thức POP ( Post Office Protocol ). Trên internet một loại nào đó nhỏ hơn node thường không thực tế để duy trì

một hệ thống vận chuyển message (Message Transport System: MTS), ví dụ như một workstation không có đủ tài nguyên (recycle, disk space) hợp lệ để cho phép một SMTP server và một hệ thống phân phát mail cục bộ kết hợp giữ thường trú và chạy một cách liên tục . Thường thì nó có thể rất đắt (hay không thích hợp) để giữ một personal computer nối với một IP-style network trong một thời gian dài (node đó được biết sẽ thiếu tài nguyên như “connectivity”) .

Page 55: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 54

Mặc dù vậy, để có thể quản lý mail rất hữu hiệu trên những node nhỏ hơn này. Và chúng thường hổ trợ một User Agent (UA) để giúp đỡ công việc điều khiển mail. Để giải quyết vấn đề một node có thể cung cấp một thực thể MTS đưa ra một maildrop service đến những node được cấp nhỏ hơn này. Post Office Protocol - Version 3 (POP3) được dùng cho phép một workstation truy xuất động đến một maildrop trên một server host. Thường điều đó có nghĩa là POP3 được dùng để chấp nhận một workstation gọi mail được server đang giữ cho nó.

Khi một user agent trên một client host mong muốn đưa một message vào trong hệ thống vận chuyển, nó thiết lập một kết nối SMTP đến host chia ca của nó( host chia ca này có thể, hay không cần POP3 server host cho client host đó).

II. THAO TÁC CƠ BẢN Ban đầu server host bắt đầu một POP3 service bằng cách lắng nghe trên TCP

port 110. Khi một client host mong muốn dùng POP3 service, nó thiết lập một kết nối TCP với server host đó. Khi kết nối được thiết lập, POP3 server gửi một chào hỏi. Client và server POP3 sau đó trao đổi những lệnh và các trả lời cho đến khi kết nối đó được đóng hay loại bỏ. Lệnh trong POP3 bao gồm một từ khố (keyword) theo sau có thể là một hay nhiều đối số tất cả các lệnh được kết thúc bởi một cặp CRLF. Các từ khố và đối số được tách riêng ra bởi một ký tự trắng đơn , từ khố dài 3 hay 4 ký tự. Mỗi đối số có thể lên đến chiều dài 40 ký tự.

Các trả lời trong POP3 bao gồm phần chỉ định trạng thái và một từ khố có thể theo sau là thông tin thêm vào. Tất cả các trả lời được kết thúc bởi một cặp CRLF. Chỉ có hai loại trả lời là: chỉ định trạng thái khẳng định (“+OK”) và phủ định (“-ERR”) .

Trả lời cho các lệnh là trả lời nhiều dòng. Trong trường hợp này, nó cho phép chỉ định một cách rõ ràng, sau khi gửi dòng đầu tiên của câu trả lời và một CRLF, một số dòng thêm vào được gửi đi, mỗi dòng kết thúc bằng một cặp CRLF. Khi tất cả các dòng của trả lời đã được gửi đi bao gồm một số kết thúc hệ bát phân (termination octe) (mã 046 hệ mười, “.” ) và một cặp CRLF. Nếu dòng nào của trả lời nhiều dòng bắt đầu với termination octet dòng đó là "byte-stuffed" bằng cách (pre-pending) treo termination octet đó của dòng trả lời. Kể từ đây một trả lời nhiều dòng được kết thúc với năm octet "CRLF.CRLF". Khi xem xét một trả lời nhiều dòng client kiểm tra xem nếu dòng đó bắt đầu với termintion octet. Nếu đúng và nếu những octet theo sau khác với CRLF, octet đầu tiên của dòng này (termination octet) được bỏ đi. Nếu đúng và nếu những ký tự kết thúc theo ngay sau nó, thì trả lời từ POP3 server này được kết thúc với một dòng chứa “.CRLF” không được coi là một phần của trả lời nhiều dòng đó.

Một phiên POP3 tiến hành qua một số trạng thái trong thời gian sống của nó. Khi kết nối TCP được mở và một POP3 server gửi một chào hỏi. Hội nghị sẽ đi vào trạng thái xác nhận (AUTHORIZATION). Trong trạng thái này client phải định danh nó đến POP3 server. Khi client định danh thành công, server thu được những tài nguyên kết hợp với maildrop của client, và hội nghị đi vào trạng thái giao dịch (TRANSACTION). Trong trạng thái này client yêu cầu các hành động trong vai trò của POP3 server khi client phát ra lệnh QUIT, hội nghị đi vào trạng thái cập nhật

Page 56: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 55

(UPDATE). Trong trạng thái này giải phóng các tài nguyên thu nhận được trong trạng thái giao dịch và nói goodbye. Sau đó kết nối TCP đóng lại.

Một POP3 server có thể có một khoảng thời gian tự động logout không chủ động. Và nó phải tồn tại trong khoảng thời gian ít nhất là 10 phút. Trong khoản thời gian nhận các lệnh từ client đủ để reset khoảng thời gian tự động logout đó. Đến khi hết hiệu lực, hội nghị không đi vào trạng thái UPDATE, server sẽ đóng kết nối TCP mà không remove hay gửi một message nào cho client.

III. TRẠNG THÁI XÁC NHẬN (Authorization State) Khi kết nối TCP được mở ra bởi một cleint. POP3 server sẽ xuất ra một dòng

chào hỏi nó có thể là một chuổi nào đó được kết thúc bởi CRLF. Ví dụ :

S: +OK POP3 server ready Chào hỏi đó là một POP3 reply. POP3 server bao giờ cũng sẽ truyền đi một

trả lời khẳng định như chào hỏi trên. Phiên POP3 hiện nằm trong trạng thái AUTHORIZATION. Client phải định

danh và xác nhận nó với POP3 server. Có hai cơ chế thích hợp để thực hiện. Sự kết hợp lệnh USER và PASS , và lệnh APOP.

Để xác nhận dùng sự kết hợp lệnh USER và PASS. Đầu tiên client phải phát một lệnh USER, nếu POP3 server trả lời với một chỉ thị trạng thái khẳng định (“+OK”), thì client có thể phát đi lệnh PASS để hồn tất sự xác nhận hay lệnh QUIT để kết thúc POP3 session. Nếu POP3 server trả lời với một chỉ thị trạng thái phủ nhận (“-ERR”) cho lệnh USER, thì client có thể phát ra một lệnh xác nhận mới hay có thể phát một lệnh QUIT.

Khi client phát ra một lệnh PASS, POP3 server dùng cặp đối số từ lệnh USER và PASS để xác định nếu client sẽ được cho truy xuất đến maildrop thích hợp.

Khi POP3 server đã được xác định bằng các lệnh xác nhận, nó cho client truy xuất đến những mailbox thích hợp, sau đó POP3 server thu được một khố truy xuất loại trừ trên maildrop, vì sự cần thiết để ngăn chặn message bị sửa đổi hay bị loại bỏ trước khi hội nghị đi vào trạng thái UPDATE. Nếu thu nhận khố thành công POP3 server trả lời với một chỉ định trạng thái khẳng định. Và lúc này hội nghị đi vào trạng thái TRANSACTION mà không có message nào bị đánh dấu để xố. Nếu maildrop không mở được vì một số lý do nào đó (ví du : một khố không thể nhận được, phía client bị từ chối truy cập tới maildrop thích hợp đó, hay maildrop không được phân tích cú pháp ), POP3 server trả lời với một chỉ định trạng thái phủ định (nếu một khố được thu nhận nhưng POP3 server dự định trả lời với một chỉ định trạng thái phủ định, POP3 server phải giải phóng khố trước khi loại bỏ lệnh đó ). Sau khi trả về một chỉ định trạng thái phủ định server phải đóng kết nối, nếu server không đóng kết nối client có thể phát một lệnh xác nhận mới và bắt đầu trở lại, hoặc là client phát ra một lệnh QUIT.

Sau khi POP3 server mở được maildrop nó gán một số thứ tự cho mỗi message và biểu thị kích thước của mỗi message trong hệ bát phân (octet), message đầu tiên trong maildrop được gán thứ tự là “1”, message thứ hai là “2” … Trong các lệnh và các trả lời POP3 tất cả các số thứ tự và kích thước của message được trình bày dựa trên hệ 10 (decimal) . Đây là những tóm tắt cho ba lệnh POP3 bàn luận ở trên :

Page 57: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 56

USER name - Đối số: Một chuổi định danh một mailbox (được yêu cầu), nó chỉ có ý

nghĩa với server. - Giới hạn : Chỉ có thể được cho trong trạng thái AUTHORIZATION sau

khi POP3 chào hỏi hay sau khi một lệnh USER PASS không thành công . - Câu trả lời có thể : +OK tên mailbox có hiệu lực

-ERR không chấp nhận tên mailbox Ví dụ Ï: C: USER mrose S: +OK mrose is a real hoopy frood ... C: USER frated S: -ERR sorry, no mailbox for frated here PASS string

- Đối số: Một password cho mailbox hay server (được yêu cầu) a server/mailbox-specific password (required)

- Giới hạn : Chỉ có thể dược cho trong trạng thái AUTHORIZATION sau khi một lệnh user thành công.

- Discussion: (thảo luận) : Kể từ đây lệnh PASS chỉ có một đối số, một POP3 server có thể xử lý khoảng trống trong đối số này như là một phần của password, thay vì là để tách đối số ra .

- Câu trả lời có thể: +OK khố maildrop và sẳn sàng -ERR password không hiệu lực -ERR không được phép khố maildrop

Ví dụ : C: USER mrose S: +OK mrose is a real hoopy frood 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 maildrop already locked QUIT

- Đối số: không - Giới hạn: không - Câu trả lời có thể: +OK

IV. TRẠNG THÁI GIAO DỊCH (Transaction)

Page 58: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 57

Khi client định danh nó đến POP3 server thành công và POP3 server đã khố và mở maildrop thích hợp, POP3 session bây giờ trong trạng thái TRANSACTION ø client có thể phát nhiều lần các lệnh POP3 sau đây. Sau mỗi lệnh POP3 server phát ra một câu trả lời. Cuối cùng client phát ra một lệnh QUIT và POP3 session đi vào trạng thái UPDATE .

Đây là các lệnh POP3 có hiệu lực trong trạng thái TRANSACTION: STAT

- Đối số: không - Giới hạn : Chỉ có thể được cho trong trạng thái TRANSACTION. - Discussion: (thảo luận) : POP3 server phát ra một trả lời khẳng định với

một dòng chứa thông tin của maildrop. Dòng này được gọi là một "drop listing" cho maildrop đó.

Thích hợp để phân tích cú pháp một cách đơn giản, tất cả các POP3 server yêu cầu dùng một định dạng cho drop listings. Câu trả lời khẳng định gồm có “+OK” theo sau là một khoảng trắng đơn, và kích thước của maildrop trong hệ tám. Không yêu cầu cái gì theo sau maildrop size.

Lưu ý: Việc ngăn cản một cách mạnh mẽ sự thực thi các thông tin phụ cung cấp trong drop listing. Mặt khác điều kiện được bàn luận sau, nó cho phép client phân tích cú pháp các message trong maildrop.

Chú ýù: Những message được đánh dấu xố không được đếm trong tổng số - Câu trả lời có thể:

+OK nn mm Ví dụ :

C: STAT S: +OK 2 320 LIST [msg]

- Đối số: Một message-number (tuỳ ý) có thể không tham khảo đến một message được đánh dấu xố.

- Giới hạn : Chỉ có thể được cho trong trạng thái giao dịch. - Discussion: Nếu một đối số được cho và POP3 server phát ra một trả lời

khẳng định với một dòng chứa thông tin cho message đó, dòng này được gọi là “scan listing” cho message đó.

Nếu không có đối số được trao cho và POP3 server phát ra một trả lời khẳng định thì trả lời được cho là multi-line. Sau khi khởi tạo +OK, cho mỗi message trong maildrop, POP3 server trả lời với một dòng chứa thông tin cho message đó. Dòng này cũng được gọi là một “scan listing” cho message đó .

Phù hợp để đơn giản hố việc phân tích cú pháp, tất cả các POP3 server yêu cầu dùng một định dạng cho scan listing. Một scan listing bao gồm số thứ tự của message đó, theo sau là một khoảng trắng đơn và kích thước chính xác của message đó bằng hệ tám, không yêu cầu những gì theo sau khích thước message trong scan listing.

Lưu ý: Ởû đây ngăn cản một cách mạnh mẽ sự thực thi các thông tin phụ cung cấp trong scan listing. Mặt khác, điều kiện được bàn luận sau , nó cho phép client phân tích cú pháp các message trong maildrop. Những message được đánh dấu xố không được liệt kê .

- Câu trả lời có thể:

Page 59: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 58

+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 RETR msg

- Đối số : Một message-number (được yêu cầu) nó có thể không tham khảo đến một message được đánh dấu xóa.

- Giới hạn : Chỉ được cho trong trạng thái TRASACTION - Discussion : Nếu POP3 server phát ra một trả lời khẳng định, thì trả lời

được trao là multi-line. Sau khi khởi tạo +OK , POP3 server gửi một message tương ứng với số thứ tự được cho, một cách cẩn thận để byte-stuff ký tự cuối cùng (như với các trả lời multi-line) .

- Câu trả lời có thể: +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: . DELE msg

- Đối số : Một message-number (được yêu cầu) có thể không tham khảo đến một message được đánh dấu xố.

- Giới hạn : Chỉ được cho trong trạng thái TRANSACTION . - Discussion : POP3 server đánh dấu xố message đó. Những tham khảo sau

đó đến số thứ tự kết hợp với message đó của một lệnh POP3 sẽ sinh ra lỗi. POP3 server không thật sự xố message đó cho đến khi phiên POP3 đi vào trạng thái UPDATE .

- Câu trả lời có thể: +OK message deleted

-ERR no such message Ví dụ :

C: DELE 1 S: +OK message 1 deleted ... C: DELE 2

Page 60: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 59

S: -ERR message 2 already deleted NOOP

- Đối số: không - Giới hạn : Chỉ được cho trong trạng thái TRANSACTION - Discussion : POP3 server không làm gì hết , nó chỉ hồi âm với một trả lời

khẳng định. - Câu trả lời có thể:

+OK Ví dụ:

C: NOOP S: +OK RSET

- Đối số: không - Giới hạn : Chỉ được cho trong trạng thái TRANSACTION . - Discussion : Nếu một message nào đó đã được đánh dấu xố bởi POP3

server, chúng được bỏ đánh dấu xố (unmark ). Sau đó POP3 server hồi âm với một trả lời khẳng định.

- Câu trả lời có thể: +OK Ví dụ : C: RSET S: +OK maildrop has 2 messages (320 octets)

V. TRẠNG THÁI CẬP NHẬT (Update) Khi client phát ra một lệnh QUIT từ trạng thái TRANSACTION, phiên

POP3 đi vào trạng thái UPDATE (lưu ý rằng nếu client phát ra một lệnh QUIT từ trạng thái AUTHORIZATION, POP3 session kết thúc nhưng không đi vào trạng thái UPDATE).

Nếu phiên POP3 kết thúc vì các lí do khác, sau đó một lệnh QUIT được phát ra từ phía client, phiên POP3 không đi vào trạng thái UPDATE và sẽ không xóa một message nào từ maildrop đó. QUIT

- Đối số: không - Giới hạn: không - Discussion : POP3 server loại bỏ tất cả các mesasage được đánh dấu xóa từ

maildrop. Sau đó nó giải phóng các khóa truy cập loại trừ (exclusive-access lock) trên maildrop đó và các reply về phần tình trạng của những thao tác này. Sau đó kết nối TCP được đóng lại.

- Câu trả lời có thể: +OK

Ví dụ : C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) ...

Page 61: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 60

C: QUIT S: +OK dewey POP3 server signing off (2 messages left) ...

VI. CÁC LỆNH POP3 CHỌN LỰA (Optional POP3 Commands) Những lệnh POP3 được nói đến ở trên phải được hổ trợ bởi sự thực thi tối

thiểu của POP3 server. Các lệnh POP3 lựa chọn được mô tả sau đây cho phép một POP3 client tự do

hơn trong việc điều khiển message, trong khi vẩn giữ một sự thực thi POP3 server đơn giản.

Lưu ý: Sổ ghi chép khuyến khích những sự thự thi nhằm hổ trợ cho những lệnh này thay cho việc phát triển tăng thêm drop và scan listing. Thu gọn, triết lý của sổ ghi nhớ là nhằm đặt một sự thông minh trong vai trò của client POP3 và không cho server POP3.

TOP msg n - Đối số: Một message-number (được yêu cầu) nó có thể không tham khảo

đến một message được đánh dấu xóa, và một non-negative number (được yêu cầu) . - Giới hạn : Chỉ được cho trong trạng thái TRANSACTION - Discussion : Nếu POP3 server phát ra một trả lời khẳng định, thì trả lời được

trao là multi-line. Sau khởi tạo +OK , POP3 server gửi header của message đó, dòng trống tách header khỏi body, và sau đó là số dòng chỉ định phần body của message, nên cẩn thận để byte-stuff ký tự cuối cùng (như với tất cả các trả lời muti-line) .

Chú ý : Nếu số dòng được yêu cầu bởi POP3 client lớn hơn số dòng trong body thì POP3 server gửi tồn bộ message đó .

- Câu trả lời có thể: +OK top of message follows -ERR no such message

Ví dụ : C: TOP 1 10 S: +OK S: < POP3 server gửi phần headers của message, một dòng trống, và 10 dòng đầu tiên của phần body của message đó> S: . ... C: TOP 100 3 S: -ERR no such message UIDL [msg]

- Đối số: Một message-number (tuỳ ý) nếu một số thứ tự được cho, nó có thể không tham khảo đến một message được đánh dấu xố.

- Giới hạn : Chỉ có thể được cho trong trạng thái TRANSACTION . - Discussion : Nếu một đối số được cho và POP3 server phát ra một trả lời

khẳng định với một dòng chứa thông tin cho message đó. Dòng này được gọi là một “unique-id listing” cho message đó.

Nếu không có đối số nào được cho và POP3 server phát ra một trả lời khẳng định thì câu trả lời được trao là multi-line. Sau khi khởi tạo –OK cho mỗi message trong maildrop, POP3 server trả lời với một dòng chứa thông tin cho message đó. Dòng này được gọi là một “unique-id listing” cho message đó.

Page 62: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 61

Hợp lệ để đơn giản hố việc phân tích cú pháp. Tất cả các server được yêu cầu dùng một định dạng cho các unique-id-listing. Một unique-id-listing bao gồm message number của message theo sau là một khoảng trắng và unique-id của message. Không có thông tin khác theo sau unique-id trong unique-id-listing.

Unique-id của một message là một chuổi xác định server tuỳ ý, bao gồm những ký tự trong phạm vi 0x21 đến 0x7E, nó định danh một message bên trong một maildrop là duy nhất và nó giữ như vậy trong thời gian hội nghị. Server sẽ không bao giờ dùng lại một unique-id trong một maildrop đã cho.

Những message được đánh dấu xố không được liệt kê. - Câu trả lời có thể

+OK unique-id listing follows -ERR no such message

Ví dụ : C: UIDL S: +OK S: 1 whqtswO00WBw418f9t5JxYwZ S: 2 QhdPYR:00WBw1Ph7x7 S: . ... C: UIDL 2 S: +OK 2 QhdPYR:00WBw1Ph7x7 ... C: UIDL 3 S: -ERR no such message, only 2 messages in maildrop APOP name digest

- Đối số : Một chuổi định danh một mailbox và một chuổi MD5 digest ( yêu cầu cả hai).

- Giới hạn : Chỉ có thể được cho trong trạng thái AUTHORIZATION sau khi POP3 chào hỏi.

- Discussion : Thường thì, mỗi POP3 session bắt đầu với một sự trao đổi USER/PASS, nó dẫn đến một password đặc tả server/user-id được gửi lên mạng . Những sự thực thi của POP3 client kết nối đến POP3 server theo một quy tắc cơ bản để kiểm tra mail mới. Hơn nữa khoảng thời gian khởi tạo một phiên POP3 theo quy tắc là năm phút. Lúc đó khả năng bị đánh cắp password rất lớn. Đòi hỏi phải có một thay đổi trong phương thức xác nhận cung cấp cả sự xác nhận và xem lại sự bảo vệ, nhưng nó không bao gồm việc gửi một passsword không được mã hố lên mạng. Lệnh APOP cung cấp chức năng này.

Một POP3 server thực thi lệnh APOP nó sẽ đưa một dòng đánh dấu thời gian vào trong banner greeting của nó. POP3 client ghi nhớ dòng đánh dấu thời gian này và sau đó phát ra lệnh APOP.

Tham số ‘name’ giống như tham số ‘name’ trong lệnh USER tham số digest được tính tốn bằng cách áp dụng giải thuật MD5 [RFC1321] cho một chuổi chứa mốc thời gian (nằm trong dấu ngoặc tròn) theo sau là một share secret. Share secret là một chuổi chỉ để nhận biết client và server.

Tham số ‘digest’ là một giá trị 16-octet nó được gưỉ theo định dạng của hệ hex.

Page 63: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 62

Khi một server POP3 nhận được một lệnh APOP, nó kiểm tra ‘digest’. Nếu ‘digest’ đúng, POP3 server phát ra một trả lời khẳng định và phiên POP3 đi vào trạng thái TRANSACTION. Ngược lại nó phát ra một trả lời phủ định và phiên POP3 vẫn giữ trạng thái AUTHORIZATION

- Câu trả lời có thể: +OK maildrop locked and ready

-ERR permission denied Ví dụ :

S: +OK POP3 server ready <[email protected]> C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK maildrop has 1 message (369 octets)

Trong ví dụ này share secret là chuổi “tan-staaf”. Giải thuật MD5 được áp dụng cho chuổi <[email protected]>tanstaaf nó sinh ra một giá trị digest c4c9334bac560ecc979e58001b3e22fb

VI. TÓM TẮC CÁC LỆNH POP3 A. Các lệnh cần phải có :

USER name có hiệu lực trong trạng thái AUTHORIZATION PASS string QUIT STAT có hiệu lực trong trạng thái TRANSACTION LIST [msg] RETR msg DELE msg NOOP RSET QUIT có hiệu lực trong trạng thái UPDATE * Các lệnh POP3 chọn lựa: APOP name digest có hiệu lực trong trạng thái AUTHORIZATION TOP msg n có hiệu lực trong trạng thái TRANSACTION UIDL [msg}

* Các reply POP3 : +OK -ERR

Lưu y:Ù Với sự chấp nhận các lệnh STAT, LIST, và UIDL , reply mà POP3 server gửi cho các lệnh chỉ mang ý nghĩa "+OK" và "-ERR". Những text xuất hiện sau trply này sẽ được client phớt lờ.

CÁC CHUẨN TRUYỀN KHÁC :

Ngồi hai chuẩn truyền trên, Mail còn có các chuẩn truyền khác như : - MAIP : Chuẩn MAPI dựa trên nền tảng mô hình COM. Chuẩn này có rất

nhiều chi tiết, nhiều đề mục, hàm, interface, Object...

Page 64: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 63

Trong chuẩn MAPI, tất cả những thành phần bộ phận đều được xem như là những đối tượng, muốn thao tác với những bộ phận đó, đều phải theo cách thức truy nhập vào một Object, sau đó mới có thể sử dụng các method của Interface mà Objectt tương ứng hỗ trợ. Ví dụ như ngay cả message cũng được xem là một đối tượng, đó là Message Object.

- ESMTP (Extender SMTP) Nghi thức mở rộng SMTP SMTP có một hạn chế gây khó khăn lớn trong việc truyền nhận mail là giới

hạn tối đa kích thước nội dung một bức mail chỉ là 128KB.Ngày nay nội dung các bức mail không chỉ là dạng văn bản đơn thuần mà còn bao gồm hình ảnh, âm thanh và nhiều loại dữ liệu khác nữa, giới hạn 128KB trở nên quá nhỏ.

Do vậy người ta đã cải tiến chuẩn SMTP thành một chuẩn mở rộng mới gọi là ESMTP.

Chuẩn này cho phép tăng kích thước mail, nó đưa thêm từ khóa SIZE=nnnnnnn sau lệnh khởi động cuộc giao dịch, nhờ đó ta có thể tăng giới hạn kích thước của mail lên trên 1MB, đủ để chứa thêm vào các âm thanh, hình ảnh…

Để biết xem Server MTA có theo chuẩn ESMTP hay không, thay vì dùng lệnh HELLO ở đầu một cuộc giao dịch, Client MTA dùng lệnh mới EHLO, nếu Server MTA có trang bị, nó sẽ trả về mã thành công là 250.

Hiện nay hầu như chuẩn ESMTP đã thay thế chuẩn SMTP ở đa số các hệ thống. Ví dụ: Để khởi động một cuộc giao dịch với kích thước mail lên tới 1MB, dòng

lệnh sẽ là: MAIL FROM :<thuan@sample1> SIZE=1000000

- X.400 : Chuẩn X.400 là một bộ phận của các chuẩn Open Systems Interconnection ( OSI ) về truyền dẫn message điện tử ( electronic Messaging Handling System - MHS ) được phát triển bởi tổ chức Điện thoại và Truyền thông quốc tế ( Comite Consultatif International de Telegraphique et Telephonique - CCITT ), được xây dựng trên việc tham khảo mô hình 7 lớp của OSI và các protocol được định nghĩa bởi Tổ chức tiêu chuẩn quốc tế ( International Organization for Standardization - ISO )

*. Message theo chuẩn X.400 : Một message X.400 có 2 thành phần : Phần phong bì chứa thông tin cần thiết

để phân phối một message và phần nội dung chứa thông tin cần truyền. Phần phong bì được dùng bởi MTA và phần Nội dung được dùng bởi UA. Phần Nội dung thông tin tổ chức theo dạng IPM ( Interpersonal Message : Dạng thư tín cá nhân riêng tư ) bao gồm 2 phần cách biệt nhau : Heading và Body. Heading bao gồm các thông tin như địa chỉ nơi đi và đến, cho biết loại thư hoặc yêu cầu phản hồi….Body chứa nội dung cần gởi.

Các tài liệu về X.400 ra đời năm 1984, và được gọi là " red book " ( vì chúng có bìa màu đỏ ). Được tu chỉnh và in lần hai vào năm 1988 và được gọi là " blue book " ( vì chúng có bìa xanh ).

Page 65: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 64

CHƯƠNG III GIỚI THIỆU INTERNET MAIL

Dịch vụ email nói chung và Internet mail nói riêng đã trở thành một trong những dịch vụ có ích và phần nào có thể nói là khá quan trọng đối với con người trong cuộc sống hiện nay. Ngồi việc cung cấp một công cụ giao tiếp trên mạng, là cầu nối mọi người lại với nhau trên khắp tồn cầu, giúp con người trao đổi thông tin một cách mau lẹ. Thật vậy, Internet hầu như ngày nay có mặt khắp nơi, hàng ngày, tại mỗi thời điểm, mỗi nơi khác nhau cùng lúc có biết bao sự kiện xảy ra, biết bao sự kiện “bùng nổ” nhưng làm sao người sử dụng có thể biết được, đây không còn là vấn đề khó khăn nữa. Với những dịch vụ mail người sử dụng có thể cùng người sử dụng đểø bốn phương trao đổi thông tin với nhau mà không còn thấy được khoảng cách thời gian và không gian nữa. Dịch vụ email ngày nay hầu như đã cung cấp hết những nhu cầu của người sử dụng từ mức độ chỉ có những văn bản Text đơn giản từng bước đã tiến xa hơn có thêm những chức năng mới như : Tài kiệu đính kèm, hình ảnh, âm thanh, video.....thật sống động đầy hấp dẫn. Sau đây ta tìm hiểu vài nét về Internet Mail.

A. Các thành phần của một mạng Email Một hệ thống email bao gồm các thành phần sau: - Người gửi, người nhận

MAIL Clients MAIL Folder

SMTP

POP3 333

Outgoing Ma

il

ÿÿÿÿÿÿÿÿ Mail

ÿÿÿÿÿÿÿÿ Mail

ÿÿÿÿÿÿÿÿ Mail

ÿÿÿÿÿÿÿÿ Mail

Outgoing

M

Page 66: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 65

- Bộ giao tiếp với hệ thống email, đó chính là chương trình email của người sử dụng.

Hệ thống mạng email gồm có: - Một vùng đệm để chứa các message trước khi được gửi đi. - Một chương trình Client. - Một chương trình Server. - Các mailbox để chứa các thư nhận được. Trong đa số hệ thống mạng Email hiện nay các bộ giao tiếp của người sử

dụng với hệ thống Email thường gắn với các chương trình Client. Mailbox được coi như là địa chỉ của người sử dụng, hoặc là một kho chứa đựng các dữ liệu của email.

B. Các thành phần của một Hệ thống Internet Mail User agent thay thế cho chương trình email và các bộ phận MTA thay thế

cho các chương trình phía Server, Client. Người sử dụng tương tác với chương trình user agent, nó thay thế cho người

sử dụng tương tác với một kho chứa các dữ liệu email (hay chính là MTA), cùng lúc ấy MTA hoạt đợng như một đại diện của máy tính. User Agent sẽ che chắn cho người sử dụng khỏi phải tương tác với “một mớ” các hệ thống email khác nhau. Cũng tương tự MTA sẽ che chắn hệ thống email không phải tương tác với những cơ quan đại diện của người sử dụng (user agent) hay các MTA khác. Điềy này giúp cho hệ thống email trở nên thân thiện dễ gần hơn với người sử dụng - và đó cũng chính là mục đích chính của các chương trình mail khác nhau.

* User Agent (UA) : Đây là chương trình giao tiếp giữa hệ thống mail X.400 với người sử dụng.

Người sử dụng chỉ giao tiếp với hệ thống X.400 thông qua các User agent. Các User agent cho phép người sử dụng soạn thảo, tạo ra nội dung các mail,

cung cấp địa chỉ người nhận và sau đó giao các mail cho Message Transfer Agent (MTA) để gửi mail đi.

Các User agent được hiện thực khác nhau trên các môi trường khác nhau như DOS, Windows, Macintosh hay Unix. Đây chính là các chương trình Mail Client. Một hệ thống mail X.400 có thể có các chương trình Client chạy trên các môi trường khác nhau như trên.

* Message Transfer Agent (MTA): Các MTA là các trạm xử lý mail giữa các User Agent. Mail sau khi được

soạn ở User Agent, nó được gửi xuống MTA và di chuyển từ MTA này đến MTA khác cho đến khi đến đích và được User Agent của người nhận khôi phục lại. Có thể xem MTA như là một bưu cục.

MTA hoạt động theo mô hình Client/Server, MTA gửi là Client MTA trong khi MTA nhận là Server MTA tức là chương trình MTA có thể hoạt động ở một trong hai chế độ : Client hay Server.

Message Store (MS) : Các Message Store là nơi các Message sau khi được tạo ra ở USER AGENT

,có thể được lưu trữ ở đó chờ MTA đến lấy và gởi đi. Đó cũng là nơi các Message sau khi được các MTA nhận về lưu trữ ở đó chờ cho đến khi người sử dụng xem Message này dùng một user agent.

Page 67: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 66

Với sự tham gia của MS, mô hình 1988 X.400 MHS được gọi là mô hình Store-and-Forward. Lúc này các user agent có thể gửi (submit) các Message cho các MS hay trực tiếp gửi đến các MTA.

Một công dụng của MS là khi chương trình user agent của người nhận không hoạt động vào thời điểm Message đến máy đó. Lúc này Message sẽ được lưu trữ trong MS.

Message Transfer System (MTS) : Là một bộ tập hợp các MTA Message Handling System (MHS) : Là một bộ các user agent và MTA làm

việc cộng tác nhau để truyền nhận thông điệp. Message Handling Environment (MHE) : Bao gồm tất cả các bộ phận của

MHS, người sử dụng và môi trường truyền nhận thông điệp. C. Mô hình Client / Server : Một trong những nguyên tắc sử dụng mạng là cho phép chia xẻ các tài

nguyên. Việc chia xẻ này thường được thi hành bởi 2 chương trình riêng biệt, mỗi chương trình chạy trên các máy tính khác nhau. Một chương trình được gọi là Server, cung cấp tài nguyên, chương trình kia được gọi là Client, để sử dụng tài nguyên đó. Các chương trình Server và Client thường là chạy trên các máy khác nhau. Môt chương trình Server có thể cùng đáp ứng cho nhiều chương trình Client trên nhiều máy tính khác nhau cùng một lúc.

Thông thường chương trình Server chạy trên một máy tính nào đó trong mạng, có khả năng cung cấp một dịch vụ nào đó. Chương trình Client là chương trình giao tiếp với người sử dụng, khi nhận yêu cầu của người sử dụng, chương trình Client sẽ gởi các yêu cầu đến chương trình Server và chờ kết quả trả về, chương trình Server khi nhận được yêu cầu, sẽ thi hành dịch vụ tương ứng và trả kết quả về cho chương trình Client.

Sự liên hệ giữa chương trình Client và Server chỉ thông qua những dạng thức thông điệp được qui định khi lập trình còn việc xử lý lại Server và hiển thị tại Client là độc lập nhau. Do đó chương trình Client và Server có thể thay đổi thường xuyên mà vẫn hoạt động tốt miễn sao vẫn tuân theo các giao thức truyển thông giữa chúng.

D. Giao thức TCP / IP : Dữ liệu trong mạng được truyền và nhận thông qua các giao thức được qui

định trước. Một giao thức là một tập hợp những qui tắc cho việc truyền nhận dữ liệu giữa các thiết bị máy tính với nhau.

TCP/ IP là tên chung cho một tập hợp hơn 100 giao thức được sử dụng để kết nối các máy tính vào mạng, để tổ chức các máy tính và các thiết bị viễn thông trên một mạng. Tên TCP/IP là chữ viết tắt của 2 giao thức quan trọng nhất trong nhóm là TCP (Transmission Control Protocol) và IP (Internet Protocol)

Mạng dùng giao thức TCP/IP dữ liệu được chia thành những gói nhỏ gọi là những packet. Khi ta gởi đi một thông điệp, TCP sẽ chia thông điệp này thành các packet, mỗi packet được đánh dấu bởi một số thứ tự và địa chỉ của người nhận, thêm vào đó là một số thông tin kiểm sốt lỗi. Các packet này được gởi lên mạng và công việc của IP là truyền tải chúng tới host từ xa kia. Tại nơi nhận, TCP nhận các packet và kiểm tra lỗi, gởi trả lại nếu gói không đúng, với những gói dúng, TCP sử dụng số thứ tự để tạo lại thông điệp ban đầu. Tóm lại công việc của IP là chuyển dữ

Page 68: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 67

liệu thô - các packet từ nơi này đến nơi khác. Công việc của TCP là quản lý dòng chảy và đảm bảo rằng dữ liệu là đúng.

TCP/IP có những đặc điểm sau : - Độc lập với cách nối mạng - Độc lập với phần cứng của mạng - Các nghi thức theo tiêu chuẩn của hệ mở - Cách đánh địa chỉ phổ dụng (Universal Addressing) - Cung cấp một số dịch vụ mạng được sử dụng rộng rãi như Email, FTP,

Telnet… - Là cơ sở để xây dựng các ứng dụng theo mô hình Client / Server

CẤU TRÚC CỦA MỘT BỨC MAIL ---------***--------

Về cơ bản, một bức mail bao gồm 3 phần chính: Phần phong bì: Mô tả thông tin về người gởi và ngưòi nhận. Do hệ thống tạo ra. Phần tiêu đề (header): chứa đựng các thông tin về người gởi, người nhận, chủ đề bức mail, địa chỉ hồi âm .v.v.. Các thông tin này một số được người sử dụng cung cấp khi gởi mail, một số khác được chương trình mail thên vào, và số còn lại do hệ thống điền thêm. Phần nội dung (body): chứa đựng nội dung của bức mail, là nội dung được tạo ra bởi trình soạn thảo Editor của chương trình mail. Sau đây là chi tiết của từng phần:

A. Phần phong bì (Envelope) Phần này do các MTA tạo ra và sử dụng, nó chứa các thông tin để chuyển

nhận email như địa chỉ của nơi nhận, địa chỉ của nơi gửi. Hay nói cách khác, nghi thức SMTP sẽ quy định thông tin của phong bì, thông tin này được hệ thống email đòi hỏi để chuyển dữ liệu từ một máy tính này sang một máy tính khác.

B. Phần tiêu đề (header) Phần này cung cấp những thông tin tổng quát về email như người nhận,

người gửi, ngày giờ nhận... Cấu tạo gồm nhiều trường (field) cấu trúc mỗi trường là một dòng văn bản ASCII chuẩn 7 bit như sau: <tên trường >: <nội dung của trường> Sau đây là một số trường thông dụng và ý nghĩa của nó :

Date: Chỉ ngày giờ nhận mail. From: Chỉ người gửi. To: Chỉ người nhận. Cc: Chỉ người nhận được phiên bản copy của mail. Return-path: Chứa các thông tin để người nhận có thể phúc đáp thư trở lại

(thường cũng là địa chỉ người gửi). Subject: Chủ đề của nội dung email. Các trường trên là các trường chuẩn do giao thức SMTP quy định, ngồi ra

trong phần header cũng có thể có thêm một số trường khác do chương trình email tạo ra nhằm quản lý các email mà chúng tạo. Các trường này được bắt đầu bằng ký tự X- và thông tin theo sau là cũng giống như ta thấy trên một trường chuẩn. Ví dụ trong chương trình của một hệ thống mail ngồi các trường chuẩn do nghi thức SMTP quy định còn có thêm trường X-WinMail-Editor, trường này giúp cho chương trình nhận ra những bức mail nào là do người sử dụng tạo (nếu đúng thì cung cấp thông tin về việc nén nội dung bức mail) ra và những bức mail nào là do một chương trình email khác tạo ra.

Page 69: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 68

C. Phần nội dung (body) Để phân biệt phần tiêu đề và phần nội dung của bức mail, người ta qui ước

đặt ranh giới là một dòng trắng (chuỗi ký tự "\r\n"). Kết thúc của phần nội dung là chuỗi ký tự kết thúc mail: "\r\n.\r\n". Như vậy nội dung bức mail nằm trong khoảng giữa dòng trắng đầu tiên và ký tt thúc mail và trong phần nội dung của bức mail không được phép tồn tại chuỗi ký tự kết thúc mail. Mặt khác do môi trường truyền thông là mạng Internet nên các ký tự cấu thành thân bức mail cũng phải là các ký tự ASCII chuẩn.

. TÓM TẮT NHỮNG CHỨC NĂNG THÔNG DỤNG CỦA INTERNET MAIL

----***---- Công cụ Chức năng

New message Tạo một bức thư mới Reply to Author Trả lời thư cho tác giả (người đã gởi thư cho mình Reply to All Trả lời thư cho tác giả và tất cả những người có địa

chỉ được ghi trong mục Cc cuả bức thư Forward Chuyển thư đi (sẽ hiện ra một bảng để ta điền địa

chỉ nơi đến và các thông tin phụ) Send and Receice Gởi thư (nếu như có thư trong folder Outbox) hoặc

tải các thư mới từ server về Delete Xóa thư Address Book Sổ điện thoại. Đây là nơi chứa địa chỉ và các thông

tin cụ thể của những người sở hữu những địa chỉ đó

Mark as Read Đánh dấu những bức thư để cho ta biết là thư đã được đọc

Mark as Unread Đánh dấu những bức thư để cho ta biết là thư chưa được đọc

File Attachment Gửi thư có đính kèm theo một file nào khác (văn bản, hình ảnh, trang web…)

Inbox Assistant Tạo ra các nguyên tắc để nhận thư và chuyển thư đến những thư mục đã được định trước

Singature Tạo một chữ ký Priority Tạo độ ưu tiên cho từng bức thư sẽ được gửi đi

Page 70: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 69

CHƯƠNG IV

TÌM HIỂU VỀ CÁC HỆ THỐNG MAIL TRÊN HỆ ĐIỀU HÀNH LINUX Một hệ thống mail trên hệ điều hành Linux thường bao gồm hai thành phần: Mail User Agent (MUA) chính là giao diện của phần mềm mail được sử dụng

để soạn thảo và đọc mail. Mail Transfer Agent (MTA) Thành phần chuyển vận mail cơ bản: được dùng

để gửi và nhận mail. Có hai MTA phổ biến được dùng trên hệu điều hành Linux và hàng tá MUA đã có sẵn trên đó. Có nhiều phiên bản của các hệ thống mail đã có sẵn trên Linux, mỗi phiên bản đều có sự khác nhau về vấn đề thực thi không đáng kể lắm. Hệ thống e-mail thông thường cho Linux là Smail và Smail cũng có rất nhiều phiên bản đã có sẵn trên Linux.

Bởi vì cả Smail và Sendmail đều được cung cấp sẵn trên hầu hết các đĩa CD-ROM cài đặt hệ điều hành Linux cho nên người sử dụng có thể lựa chọn để có một hệ thống thích hợp.

Với mỗi cách cài đặt riêng, cả hai hệ thống đều làm việc tốt. Nhưng trong một số trường hợp Smail dễ dàng cấu hình và sử dụng hơn Sendmail ở một mức độ không đáng kể, nguyên nhân chính là vì nó có phần cài đặt sẵn cho nhiều modem hơn. Để sử dụng cho một hệ thống lớn và với các yêu cầu cấu hình đặc biệt, Sendmail thì linh hoạt hơn và cung nhiều nhiều chức năng hơn.

Cả Smail và Sendmail đều yêu cầu phải thiết lập các thông số cho phù hợp thông qua các file cấu hình, mặc dù quá trình cấu hình là khác nhau cho mỗi sản phẩm. Đối với các yêu cầu email cơ bản, chẳng hạn như kết nối đến một mail server hoặc một máy khác trong mạng, quá trình thiết lập thì hồn tồn đơn giản và dễ dàng thực hiện.

Khi soạn thảo một message sử dụng một MUA thông qua một giao diện chương trình (chẳng hạn như Elm, Pine hoặc mail) trên hệ thống Linux, trình ứng dụng sẽ gửi message đến MTA (chẳng hạn như Sendmail hoặc Smail). Ngay lập tức, các MUA sẽ chuyển message đến một bộ phận phân phát gọi là rmail mà nó thường đặt bí danh đến MTA cụ thể đang sử dụng. Có thể có nhiều MTA đang cùng chạy một lúc (chẳng hạn như một cho email LAN và một cho UUCP phát), mặc dù hầu hết các hệ thống đều chỉ sử dụng một cái thích hợp nhất.

Nếu message được gửi cho một người nào đó trên mạng LAN (hoặc đến một máy tương tự khác), MTA có thể tìm ra các thông tin từ địa chỉ. MTA phải có thể hiểu các bí danh thật tốt đối với các trường hợp người sử dụng gọi đến một máy

Page 71: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 70

khác, một mạng hoặc những người sử dụng bằng các tên khác nhau. Nếu message dành cho một người sử dụng từ một hệ thống xa, MTA phải có khả năng thiết lập kết nối đến một máy khác thông qua một router (bộ dẫn đường) đến địa chỉ đích và chuyển message đi (kết nối đó có thể là giao thức TCP hoặc UUCP). Nếu thành công, một giao thức chuyển vận gọi là SMTP được sử dụng. Một MTA phải có khả năng xử lý các vấn đềâ về chuyển phát mail, chẳng hạn như máy đích không sẵn sàng để sử dụng hoặc user không tồn tại. Trong trường hợp đó, mail được trả về người gửi kèm theo một thông báo lỗi.

Một hệ thống email phải có khả năng sử dụng các địa chỉ của người gửi và người nhận theo nhiều định dạng khác nhau. Thông thường thì sử dụng địa chỉ định dạng kiểu chấm than của UUCP, ví dụ như: merlin!brutus!tpci!com!tpaker (có nghĩa là chuyển mail cho merlin, sau đó là brutus, và sau đó là tpci.com đến người sử dụng tparker) hoặc tên miền, chẳng hạn như [email protected]. Kiểu UUCP thì chỉ ra đường dẫn đầy đủ đến máy đích còn tên miền sử dụng địa chỉ quyết định hệ thống sẽ làm việc mà không cần đường dẫn. Các kiểu địa chỉ khác cũng được sử dụng, chẳng hạn như DECnet với địa chỉ kiểu % nhưng UUCP và các tên miền thì được sử dụng trên hầu hết các hệ thống.

Bộ dẫn đường (Router) để đưa message mail đến đích cũng là một khía cạnh quan trọng của phần mềm MTA và các phần mềm mail khác phụ thuộc vào UUCP (trong trường hợp đường dẫn đầy đủ được chỉ định) hoặc tên miền (trong trường hợp router được đưa ra) địa chỉ sử dụng. Đối với cách đánh địa chỉ dựa trên giao thức TCP (thường sử dụng các tên miền), chức năng mặc định cho một MTA là phát message đến máy đích dựa vào địa chỉ IP và không cần đến router, đưa đến phần mềm IP trong các điều khiển TCP/IP.

Để đơn giản việc chuyển phát mail trong các mạng lớn hoặc các hệ thống, nơi mà một máy đơn lẻ được đóng vai trò như bộ mặt của Internet, một mạng cục bộ có thể đưa ra một bảng ghi MX (Mail Exchange) mà nó được hiểu bởi hệ thống tên miền (DNS) và một chỉ thị (hoặc lệnh) đến router đối với tất cả các mail của tên miền đó đến một máy đơn. Bản ghi MX cho phép các máy không kết nối đến Internet tất cả thời gian để có mail nhận được từ một máy chủ, với UUCP hay là TCP, sau đó thỉnh thoảng mới kết nối một lần. Ví dụ sau đây là kiểu của một bảng ghi MX:

merlin.tpci.com IN MX 3 bigserver.tpci.com Dòng trên nói về một hệ thống tên miền mà một mail bất kỳ của

merlin.tpci.com có thể gửi đến hệ thống bigserver.com. Cổng vào INTERNET nhận biết kiểu bảng ghi tài nguyên có liên quan (rất quan trọng đối với TCP/IP) và MX cho thấy là bảng ghi này là một bảng ghi MX. Số 3 trong ví dụ trên là một con số ưu tiên. Trong mạng có thể có nhiều mail server, mỗi cái đều có một con số ưu tiên. Các số mức thấp được sử dụng bởi phần mềm chuyển vận trước và chỉ chuyển lến các số mức cao hơn khi các số mức thấp hơn không được máy trả lời tín hiệu.

Cấu trúc một thư điện tử trên Linux: Để hiểu cách một hệ thống mail hoạt động như thế nào, cần phải biết cấu trúc

một message mail thì phải như thế nào? Một message mail chứa một đoạn văn bản (gọi là phần body) và một phần

của thông tin ở chỗ bắt đầu một message chứa các thông tin về người gửi, nơi nó được tạo ra… được gọi là phần header. Thông thường phần header và body của

Page 72: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 71

message được cách bằng một dòng trống. Có nhiều message cũng chứa một phần dữ liệu tại đoạn cuối của message gọi là tái bút.Tái bút là một bít dữ liệu ASCII được viết bởi người gửi và được bao gồm trong bất một message bất kỳ khác. Nó thương đưa ra các thông tin về người gửi và có thể chứa đứng các lời nói ngắn gọn.

Một header bao gồm 2 phần: Phần đầu tiên chứa các thông tin về người gửi người nhận và các địa chỉ của họ. Phần này thường được gọi là phần phong bì. Phần thứ hai chứa các thông tin để điều khiển message mail, chứa phần tiêu đề message và chuyển vận sử dụng để gửi message, dach sách các người nhận kèm khác, ngày giờ …

Mỗi header của một message mail chúa một số các dòng cách bở các ký tự dòng mới. Mỗi dòng gồm một tên trường theo sau bởi một dấu : và nội dung của trường đó. Sau đây là một ví dụ của một header:

From brutus!bignet.com Thu Sep 21 17:40:32 1995 Received: from bignet.com by tpci.tpci.com id aa00184; 21 Sep 95 17:39 EDT Received: from mailserv.biggernet.com ([147.77.1.1]) by bignet.com with SMTP id <250079-4>; Thu, 21 Sep 1995 20:48:04 -0400 Received: by biggernet.com (4.1/SMI-4.1) id AA00266; Thu, 21 Sep 95 17:39:03 PDT Date: Thu, 21 Sep 1995 20:39:03 -0400 From: Yvonne <[email protected]> Message-Id: <9509220039.AA00266@[email protected]> To: [email protected] Subject: Important stuff Cc: [email protected] Có hai trường From: Một chỉ ra máy đã chuyển mail đến hệ thống của người

sử dụng và một là địa chỉ email của người gửi. Trường này có thể có nhiều kiểu định dạng khác nhau, bao gồm cả địa chỉ kiểu UUCP và các định dạng kiểu tên miền đầy đủ.

Mỗi máy mà message gửi thông qua dòng địa chỉ đến trường Received chỉ ra nơi mà message đã nhận từ đâu và nơi mà nó được nhận. Thông tin này cho phép người sử dụng lần theo message tìm đến nơi xuất phát của nó.

Trường Date hiển thị ngày tháng mà message được gửi. Trường Message-ID liệt kê một số nhận biết duy nhất cho message. Trường To hiển thị tên người nhận. Người gửi cung cấp thông tin trong trường Subject để một tả về message. Trường CC: Chỉ người nhận được phiên bản copy của mail Phụ thuộc vào hệ thống mà ban sử dụng, có khi phần header còn bao gồm cả

các trường sau: Trường Repley – To: Chứa các thông tin để người nhận có thể phúc đáp thư

trở lại (thường cũng là địa chỉ người gửi) Trường Oganization cung cấp tên công ty mà máy của công ty đó đang sử

dụng. Trường tùy chọn này thường để trống hoặc thiết lập riêng biệt cho các máy của các tập đồn lớn.

Page 73: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 72

I. CÀI ĐẶT VÀ CẤU HÌNH CHO SENDMAIL Hệ thống Sendmail được cấu hình chủ yếu thông qua một file nàm ở

/etc/senmail.cf (mặc dù một vài hệ thống đặt nó ở /usr/lib/sendmail.cf hoặc ở nơi khác). Ngôn ngữ sử dụng trong file cấu hình senmail.cf thì hồn tồn khác so với các file cấu hình khác và rất phức tạp.

File Sendmail.cf điều khiển các chức năng mặc định của hệ thống gửi mail. Có nhiều file khác cũng có liên qua trong quá trình cấu hình, đó là:

Decnetxtable: có nhiệm vụ đổi địa chỉ thông thường sang địa chỉ DEC. Genericfrom: Có nhiệm vụ đổi địa chỉ bên trong sang địa chỉ thông thường. Mailtertable: Định nghĩa các xử lý đặc biệt cho các máy chủ từ xa và các tên

miền. Pathtable: Định nghĩa các đường dẫn UUCP đến các máy từ xa và các tên

miền. Uucprelays: Cho phép gián tiếp đến các máy chủ từ xa. Xaliases: Đổi địa chỉ thông thường thành địa chỉ bên trong. Sendmail + hệ thống IDA sử dụng một bộ tiền xử lý chẳng hạn như m4 hoặc

dbm để tạo ra các file cấu hình sau khi người sử dụng chỉ định các giá trị cho các thông số. Sau khi sử dụng bộ tiền xử lý, hệ thống sử dụng một bộ tạo file để tạo ra các file cấu hình cuối cùng.

1. File sendmail.cf Khi sử dụng Sendmail + IDA, file sendmail.cf không được thiết lập các giá

trị phù hợp với hệ thống và công việc của người sử dụng. Thay vì quá trình cấu hình xử lý các thay đổi sinh ra, một quá trình cấu hình bình thường được điều khiển bởi một file gọi là sendmail.m4, nó cung cấp các thông tin cơ bản về tên hệ thống, đường dẫn sử dụng trên hệ thống của người sử dụng và mailer mặc định đang sử dụng. Mặc dù việc thay đổi file sendmail.m4 có thể mất nhiều thời gian nhưng nó cần thiết đối với các thông tin cơ bản cho việc cài đặt Linux sử dụng uucp và SMTOP cho việc chuyển vận mail.

Phần quan trọng nhất trong file sendmail.m4 là phần khai báo các thư mục. Phần này thường bắt đầu với một dòng khai báo LIBDIR:

dnl #define(LIBDIR, /usr/local/lib/mail) Thư mục LIBDIR là nơi Sendmail + hệ thống IDA tìm kiếm các file định

dạng và các bảng router, thông thường dòng này được bỏ qua nhưng đường dẫn mặc định thì nằm ở vị trí thông thường cho tất cả hệ thống Linux mail. Nếu đường dẫn hiển thị trong Sendmail là chính xác, không cần điều chỉ lại file này. Đường dẫn này thường ghi mã trực tiếp vào trong bộ nhị phân Sendmail và không cần thiết để ghi đè lên bởi file sendmail.m4 (hoặc sendmail.cf). Nếu cần phải thay đổi đường dẫn này, phải gỡ bỏ giá trị dnl ở dòng bắt đầu, thêm vào đường dẫn đúng và sau đó lưu lại trong file sendmail.cf

Mailer cục bộ được sử dụng bởi Sendmail được khai báo tại một dòng có giá trị LOCAL_MAILER_DEF

define(LOCAL_MAILER_DEF, mailers.linux)dnl Dòng này là cần thiết bởi vì Sendmail không điều khiển các mail gửi đi. Một

chương trình khác sẽ đảm nhận việc này thay cho Sendmail. Mặc dịnh, giá trị dùng cho mailer cục bộ được chứa trong một file gọi là mailers.linux. File này được chuyển đến mục nhập LOCAL_MAILER_DEF trong file sendmail.m4, điều này có

Page 74: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 73

nghĩa là người sử dụng cần phải kiểm tra file mailer.linux trong thư mục con tương tự (thường là /usr/local/lib/mailer.linux) để chắc chắn chương trình chuyển (hoặc một chương trình bất kỳ đã sử dụng) đã được nhập các thuộc tính.

Nội dung một file mailer.linux sẽ bao gồm như sau: # mailers.linux Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10,R=25/10, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, A=sh -c $u Một agent phát thư đi cũng được chỉ định trong file sendmail.mc, file này

được dùng để xây dựng file sendmail.cf. Nếu agent phát không chuyển thư đi, phải kiểm tra file sendmail.mc để chắc rằng agent chuyển mail đã được thiết lập các thuộc tính. Sendmail.mc là một file quan trọng và nó phải được đọc khi sendmail.m4 được xử lý. Thường có một dòng khai báo trong file sendmail.m4 để chắc rằng việc này phải xảy ra. Dòng này thường nằm ở phần đầu file sendmail.m4

include(Sendmail.mc)dnl Người sử dụng cần phải chỉ định một vài mục nhập trong biến

PSEUDOMAINS. Biến này được dùng để điều khiển hệ thống mà nó không thể mở rộng vào trong các tên miền một cách chính xác, thông thường là hệ thống UUCP. Các mục nhập trong trường PSEUDOMAINS chỉ ra rằng Sendmail + IDA không sử dụng DNS cho những mạng đó. Biến PSEUDOMAINS được khai báo như sau:

define(PSEUDODOMAINS, BITNET UUCP)dnl Có thể sử dụng biến PSEUDONYMS để làm ẩn tên máy của người sử dụng.

Ví dụ, một mail nhận trên mạng khác sẽ chỉ thấy địa chỉ tpci.com mà không quan tâm đến việc dù là được gửi từ merlin.tpci.com hay chatton.tpci.com. Khi sử dụng biến PSEUDONYMS, Sendmail chấp nhận mail từ tất cả các máy được khai báo trong trường PSEUDONYMS. Trường PSEUDONYMS được hiển thị như sau:

define(PSEUDONYMS, tpci.com)dnl Mục vào nhày cho phép một máy tính bất kỳ của mạng tpci.com gửi mail

thông qua Sendmail. Để định nghĩa tên máy, sử dụng biến DEFAULT_HOST. Biến này thường

được gán giá trị tên mail server của người sử dụng. Người sử dụng có thể khai báo như sau để thiết lập tên mail server mặc định:

define(DEFAULT_HOST, merlin.tpci.com)dnl Nếu không gán một tên đúng cho biến DEFAULT_HOST sẽ không có mail

được trả về chính xác đến hệ thống đang sử dụng. Nếu hệ thống không phải là một cổng nối mail lên Internet (hoặc các mạng

khác được truy cập từ mạng LAN) người sử dụng có thể thiết lập cho hệ thống Linux cho phép gửi mail lên một máy khác để xử lý bằng cách thiết lập các biến RELAY_HOST và RELAY_MAILER trong file sendmail.m4. Các biến này sẽ đặt tên của mail server mà tất cả các mail sẽ được chuyển đến. Ví dụ: Để thiết lập cho hệ thống cục bộ dẫn hướng tất cả các mail bên ngồi đến một máy tên là wizard, phải khai báo 2 dòng như sau:

define(RELAY_HOST, wizard)dnl define(RELAY_MAILER, UUCP=A)dnl Dòng thứ hai chỉ định mailer sử dụng để gửi message đến máy

RELAY_HOST.

Page 75: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 74

2. Điều chỉnh UUCP: Nếu phải đang làm việc với một hệ thống mail trên nền tảng UUCP, người sử

dụng phải điều chỉnh một vài mục nhập trong file sendmail.m4. Sự điều chỉnh này là cần thiết bởi vì một hệ thống mail UUCP thường đánh địa chỉ khác so với các hệ thống trên nền tảng DNS. Các khai báo của UUCP trong file sendmail.m4 như sau:

define(UUCPNAME, tpci)dnl define(UUCPNODES, |uuname|sort|uniq)dnl define(BANGIMPLIESUUCP)dnl define(BANGONLYUUCP)dnl Dòng đầu tiên khai báo UUCPNAME dùng để chỉ định tên của hệ thống cục

bộ trong giới hạn UUCP. Tên này có thể khác hơn tên sử dụng trong DNS, mặc dù thông thường thì các tên đó trông cũng không khác nhau mấy.

Biến UUCPNODES khai báo lệnh sử dụng để cung cấp một danh sách tên các host mà hệ thống kết nối tới thông qua UUCP.

Biến BANGIMPLIESUUCP để cho Sendmail biết là bất kỳ một địa chỉ nào chứa dấu ! đều là địa chỉ kiểu UUCP. Biến BANGONLYUUCP thì làm điều ngược lại. Cả 2 biến này thường được khai báo bởi vì một vài hệ thống DNS sử dụng phương pháp đánh địa chỉ kiểu dấu chấm than.

3. Cấu hình các bảng định vị Có nhiều dòng trong file sendmail.m4 dùng để khai báo các bảng cấu hình.

Các bảng cấu hình này nằm dưới thư mục khai báo bởi biến LIBDIR. Phần này gồm các dòng sau:

define(ALIASES, LIBDIR/aliases)dnl define(DOMAINTABLE, LIBDIR/domaintable)dnl Có khoảng 7 file cấu được chỉ định trong tồn bộ. Người sử dụng có thể thay

đổi bất kỳ giá trị nào nếu muốn nhưng phải chắc chắn rằng việc di chuyển nó thị vị trí được chỉ định. Để bảo đảm, tốt nhất nên gỡ bỏ các file khỏi các ví trí mặc định của nó.

4. Cấu hình mailertable Bảng mailertable khai báo các điều khiển đặc biệt cho cac host hoặc các tên

miền. Trong hầu hết các trường hợp, mailertable chỉ định các tên miền chắc chắn hoặc các host được truy cập và các giao thức nào sử dụng cho các tên miền và các host đó. Người sử dụng không phải điều chỉnh file này nếu hệ thống đang sử dụng UUCP nhưng phải kiểm tra nội dung của nó nếu là đang sử dụng SMTP hoặc DNS.

File mailertable được dọc từ dòng đầu tiên xuống và Sendmail xử lý mail dựa trên mỗi dòng trong file này. Trong mỗi trường hợp, nơi mà hầu hết các quy tắc chỉ định nằm ở đầu file, theo sau bởi các quy tắc thông thường khác. Các quy tắc chỉ ra phương thức của kết nối đầu tiên và sau đó liệt kê các hệ thống từ xa hoặc tên miền:

mailer delimiter relayname remote Trong khai báo trên, mailer là giao thức chuyển vận được sử dụng, delimiter

là ký tự đặc biệt, relayname là tên của hệ thống chuyển mail đến và remote là host từ xa hoặc tên miền.

Mailer có thể là các giá trị: TCP-A: TCP với địa chỉ kiểu Internet. TCP-U: TCP với địa chỉ kiểu UUCP. UUCP-A: UUCP với địa chỉ kiểu Internet. Delimiter có một ý nghĩa đặc biệt và phải là một trong cac ký tự sau:

Page 76: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 75

! Gỡ bỏ tên host từ phần địa chỉ trước khi gửi đi. , Không điều chỉnh địa chỉ cho tất cả. : Gỡ bỏ tên host chỉ khi các host trung gian được chỉ định. Có thể xây dựng các quy tắc mailertable một các dễ dàng khi chuyển mail

đến một mail server từ xa. Ví dụ, để bắt buộc Sendmail sử dụng UUCP thông qua một mail server từ xa gọi là wizard kết nối đế một hệ thống từ xa roy.sailing.org, thêm một quy tắc như sau vào file mailertable:

UUCP-A,wizard roy.sailing.org 5. File cấu hình uucprelays File uucprelays dùng để bỏ qua đường dẫn UUCP đến một site từ xa khi một

đường dân tốt hơn đã tồn tại. Ví dụ, nếu người sử dụng thường sử dụng đường dẫn wizard!bignet!merlin!tpci và có thể tạo ra một liên kết chỉ đường đến tpci, nên sử dụng file uucprelays để đổi lại đường dẫn địa chỉ mail.

6. File cấu hình uucpxtalbe File uucpxtalbe được sử dụng khi một địa chỉ kiểu UUCP được sử dụng trong

việc vận chuyển mail. File này cung cấp các chỉ dẫn cho công việc chuyển một địa chỉ kiểu DNS sang UUCP. Nếu người sử dụng đang sử dụng một mail server khác hơn mail server hiện tại hoặc muốn sử dụng UUCP để kết nối đến một máy cụ thể vì độ tin cây, file này thực sự cần thiết.

File này chứa các mục vào liệt kê tên kiểu UUCP theo sau bởi tên miền: Chatton chatton.com Mục vào này chỉ ra rằng Sendmail mà một mail chatton.com bất kỳ nào đó

đều phảøi được cập nhập qua UUCP đến chatton ( đánh địa chỉ kiểu UUCP). Mục vào này bắt buộc các địa chỉ mail đến [email protected] phải được viết lại giống như chatton!yvone, một địa chỉ mà UUCP có thể sử dụng.

7. Xây dựng file sendmail.cf từ file sendmail.m4 Bây giờ, đã cấu hình xong file sendmail.m4 và các file có liên qua của nó, có

thể sử dụng bộ xử lý m4 để tạo ra file sendmail.cf. Một khi file sendmail.m4 đã sẵn sàng để làm việc, bắt nguồn từ dòng lệnh:

Make sendmail.cf Một khi file đã được tạo, chép nó sang thư mục /etc và khởi động Sendmail

với dòng lệnh: /usr/lib/sendmail –bd –q1h hoặc khởi động lại máy tính. II. SỬ DỤNG SENDMAIL PHIÊN BẢN 8.0 Trên đĩa CD-ROM Linux luôn kèm theo chương trình Sendmail 8.0 và có thể

sẵn sàng cài đặt để sử dụng. Có một thay đổi nhỏ so với các phiên bản trước là Sendmail 8.0 gồm có 4 phần khác nhau để chọn lựa.

- uucp-old: (cũng giống như uucp) : Sử dụng phiên bản này nếu cần khả năng tương thích với các hệ thống UUCP kiểu cũ.

- uucp-new: (phiên bản mới nhất gần đây là suucp) cũng giống như Sendmail chỉ trừ việc nó có thêm lệnh rmail để gửi đến nhiều người nhận đồng thời. Phiên bản này không có cải tiến gì mấy so với uucp-old.

- uucp-dom: Cho phép sử dụng các địa chỉ kiểu tên miền. Phiên bản này không có khả năng tương thích với một số hệ thống khác mà người sử dụng kết nối đến.

Page 77: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 76

- uucp-uudom: Là một sự kết hợp giữa uucp-new và uucp-dom cung cấp các nét đặc trưng nhất của cả hai. Nó cho phép sử dụng địa chỉ kiểu UUCP và kiểu tên miền.

Thiết lập các thư mục cấu hình cho Sendmail Các file cấu hình Sendmail ngày càng trở nên nhỏ hơn để làm cho công việc

của người quản trị được dễ dàng hơn. Hệ thống Sendmail có các thư mục chứa các file cần thiết cho công việc cấu hình, đó là:

- cf: Thư mục này cung cấp cho người sử dụng các thông tin về các host được sử dụng bởi Sendmail.

- hack: Thư mục này là một danh sách của các hack được sử dụng bởi các macro m4 để cung cấp các chỉ định mở rộng. Các thông tin mà thư mục này hỗ trợ được cung cấp một cách hợp lý trong các file cấu hình chính.

- m4: Thư mục này cung cấp các file chứa các thông tin thích hợp cho tất cả các file cấu hình.

- mailer: Thư mục này chứa các file định nghĩa các mailer được sử dụng bởi m4. Các file này thường cung cấp các thông tin cho mạng cục bộ, UUCP, USENET, phần mềm FAX …

- site config: Thư mục này chứa các thông tin về site cục bộ. Một số các site rất quan trọng để cài đặt Sendmail và xử lý cấu hình.

III. SỬ DỤNG SMAIL

Hệ thống Smail cũng giống như hệ thống Sendmail trong hầu hết các chức năng, mặc dù quá trình cấu hình cấu hình thì khác. Trong nhiều trường hợp, Smail dễ dàng làm việc hơn Sendmail và nó có thể là một lựa chọn tốt cho các hệ thống nhỏ và vừa.

Smail điều khiển việc chuyển nhận mail như thế nào? Hệ thống Smail được quản lý bởi một daemon, được khởi tạo khi hệ thống

chạy ở chế độ nhiều người sử dụng đồng thời. Sau đó Smail chờ cho đến khi có kết nối (thường là TCP hoặc UUCP) và sẽ xử lý tất cả các mail vừa mới được nhận. Bởi vì Smail chạy như một daemon, điều này cho phép nó xử lý và phân phát nhanh các mail mới nhập mà không cần khởi động một chương trình mail.

Hệ thống Smail điều khiển các mail gửi đi bằng cách sử dụng các kết nối đến mailer của người sử dụng. Ví dụ: Nếu message được gửi từ một mailer agent chẳng hạn như ELM hoặc mail, các chương trình dùng để gửi mail và các tên người nhận đến rmail, một chương trình chuyển phát mail. Có một vài mailer agent gửi mail đến chương trình Sendmail thay vì rmail. Như vậy, cả các mail nhận được và các mail gửi đi được điều khiển bằng các liên kết giữa Smail, rmail và Sendmail.

Chương trình xử lý của Smail được chia thành 3 phần riêng biệt, bao gồm: Bộ dẫn đường (router), Bộ chuyển hướng (director) và chuyển vận (transport).

- Bộ dẫn đường điều khiển quá trình xử lý các địa chỉ và cách mà message được gửi đi giữa các máy

- Bộ chuyển hướng điều khiển quá trình gửi chuyển tiếp giữa các máy và giải quyết các bí danh được sử dụng trong message.

- Bộ chuyển vận điều khiển các chuyển vận hiện tại của message. Hầu hết các hệ thống Linux đều có chương trình Smail nằm trong thư mục

/usr/local/bin mặc dù cũng có khi chúng nằm ở thư mục khác vì thế cần phải biết

Page 78: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 77

chính xác đường dẫn đến thư mục Smail để cấu hình hệ thống một cách đúng đắn. Có thể định vị đường dẫn của nó với dòng lệnh:

Find /-name Smail –print 1. Cài đặt Smail Hệ thống Smail đòi hỏi nhiều liên kết để Smail có thể thi hành đúng. Có 2

liên kết quan trọng hầu hết là đều đưa đến file /usr/sbin/rmail và /usr/lib/sendmail. Các liên kết này thực sự cần thiết bởi vì hầu hết những chương trình gửi mail của người sử dụng đều gửi mail đến hoặc là rmail hoặc là Sendmail (phụ thuộc vào chương trình mail đang sử dụng) và các mail này còn được gửi thêm một lần nữa đến Smail. Các liên kết cho phép quá trình chuyển hướng này xảy ra trong suốt đối với người sử dụng và các ứng dụng mail.

Phải kiểm tra các file rmail và Sendmail có được liên kết đến Smail hay chưa, nếu chưa có thì phải thiết lập các liên kết. Các liên kết có sẵn thường chỉ được thiết lập tượng trưng và được hiển thị trong thư mục liệt kê các mục nhập như sau:

lrwxrwxrwx 1 root root 6 Sep 16:35 file1 -> file2 Ký tự -> chỉ ra một biểu tượng liên kết tồn tại. Hãy kiểm tra trên cả rmail và

Sendmail , nếu các biểu tượng liên kết chưa có, tạo ra chúng bằng dòng lệnh: ln -s /usr/local/bin/smail /usr/bin/rmail ln -s /usr/local/bin/smail /usr/lib/sendmail Các đường dẫn cần phải được thay đổi cho phù hợp với đường dẫn của Smail,

Sendmail và rmail trên máy. Một khi các liên kết đã được tạo, kiểm tra sự tồn tại của chúng bằng cách hiển thị các thư mục và tìm các ký hiệu biểu tượng liên kết.

Nếu Smail đã được cài đặt vào hoặc sau đó gỡ bỏ khỏi hệ thông qua một kênh SMTP thì cũng cần phải thiết lập một liên kết giữa chương trình Smail và hệ thống SMTP bằng dòng lệnh:

ln -s /usr/local/bin/smail /usr/sbin/smtpd Tiếp theo, dịch vụ SMTP phải được cho phép thông qua các file cấu hình

TCP. Một file /etc/service phải được thiết lập để cho phép các kết nối SMTP thông qua dòng lệnh:

smtp 25/tcp # Simple Mail Transfer Protocol Phải kiểm tra nội dung của dòng này để không xảy ra tình trạng kết nối ra

ngồi. Dòng lệnh này cho phép liên kết SMTP được thiết lập giống như một cổng TCP số 25.

Nếu lựa chọn cài đặt mặc định Smail như một daemon (tự động khởi tạo khi khởi động hệ thống), phải chắc chắn rằng Smail daemon đã được khởi tạo trong file rc (chẳng hạn như rc.inet2). Câu lệnh thường dùng đối với Smail daemon :

/usr/local/bin/smail -bd -q15m Mục chọn –bd trả vệ quá trình hoạt động daemon của Smail và –q15m bắt

buộc Smail xử lý các message cứ sau 15 phút. Nếu muốn thiết lập cho quá trình phân phát mail xảy ra thường xuyên hơn nữa hay thay đổi giá trị này.

Nếu phải lựa chọn cài đặt Smail không chạy ở chế độ giống như một daemon và muốn nó xuất hiện bằng cách inetd mỗi khi có mail đến, điều này phải được chỉ ra trong file rc. Bởi vì không thể vừa chạy Smail trong cả hai chế độcùng một lúc. Tiếp đó, điều chỉnh các mục nhập trong file /etc/inetd.conf giống như sau:

smtp stream tcp nowait root /usr/sbin/smtpd smtpd Biểu tượng liên kết giữa SMTPD và chương trình Smail phải được chỉ ra

trong dòng lệnh này để phù hợp với chức năng hoạt động.

Page 79: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 78

Sự thay đổi các thiết lập trong các file cấu hình là cần thiết cho Smail, nó phụ thuộc vào hệ thống kết nối nào đang được sử dụng đối với mail hiện tại. Ở những nơi khác việc cấu hình còn thay đổi nếu đang sử dụng hệ thống UUCP hoặc một kết nối TCP trên mạng. Có thể chọn cả hai giải pháp nếu cho phép mail được phân phát thông qua cả hai giao thức.

2. Cấu hình Smail cho UUCP Việc cấu hình hệ thống Smail để sử dụng với các message mail UUCP gửi

đến và gửi đi rất đơn giản. Chỉ cần phải điều chỉnh file cấu hình mặc định nằm ở /usr/lib/smail/config bằng một chương trình soạn thảo ASCII bất kỳ bằng cách thay đổi giá trị của 4 biến sau:

Visible_domain : Các tên miền site của người sử dụng có liên quan. Visible_name: Tên miền đầy đủ của site. UUCP_name: Tên UUCP cơ sở của site. Smart_host: Tên của host UUCP. 3. Thiết lập các tên miền cục bộ: Bắt đầu bằng cách thiết lập tên miền của máy cục bộ nằm trong file cấu hình

config, nơi định nghĩa biến visible_domain # Our domain name visible_domain = tpci; Biến visible_domain thiết lập các tên miền site của người sử dụng trỏ tới.

Trường này được sử dụng bởi Smail để tìm ra nếu người nhận message là một user cục bộ. Hệ thống Smail lấy message và trích ra địa chỉ của người nhận, đối chiếu nó dựa vào tên máy cục bộ (từ dòng lệnh hostname) và tất cả các giá trị chỉ định ở biến visible_domain. Nếu có một sự so khớp với một tên bất kỳ trong số đó, message dành cho người nhận cục bộ. Nếu không khớp, message được chuyển ra mạng bên ngồi.

Nếu có hơn một giá trị hợp lệ cho tên miền cục bộ, các giá trị được cách ra bởi dấu hai chấm.

Ví dụ: visible_domain = tpci : tpci.com : tpci.uucp Nếu site của người sử dụng được đăng ký hợp lệ trên các bảng định vị

UUCP, thêm miền UUCP vào danh sách các giá trị hợp lệ. Trường hợp sau đay là khi người sử dụng trỏ tới miền tpci (từ tên miền đầy đủ tpci.com) và UUCP:

visible_domain = tpci : tpci.com : uucp Khi một message được gửi ra khỏi một máy cục bộ, hệ thống Smail nối thêm

tên miền đầy đủ của máy cục bộ như một phần của thông tin dẫn đường. Tên đầy đủ của mạng cục bộ được define trong file/ usr/ lib/ smail/ config mà dial với biến visible_domain.

#Our domain name for outgoing mail visible_name = tpci.com. Giá trị visible_domain phải là một sự kết hợp của tên host và một của các tên

miền nhận được trong giá trị visible_domain. Giá trị visible_domain thường là một tên miền đầy đủ của người sử dụng (nếu có) hoặc một tên miền đã tồn tại trong các bảng dẫn đường khác.

4. Các tên UUCP luân phiên: File cấu hình config đôi khi chứa một mục nhập cho một biến tên là

uucp_name. Biến này thường được gán tuỳ ý, không bắt buộc với điều kiện là các biến visible_domain và visible_name được nhập các giá trị đúng. Biến này được

Page 80: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 79

dùng khi tên của hệ thống trả về bởi dòng lệnh hostname không phải là tên được đăng ký trong bảng định vị UUCP.

Để thiết lập giá trị cho biến uucp_name, tìm (hoặc tạo ra nếu chưa có) bởi dòng khai báo sau:

# uucp mapping name uucp_name = tpci.com Nếu tên của người sử dụng được đăng ký giống như đã thiết lập trong biến

visible_name thì có thể đơn giản chỉ lặp lại giá trị trong biến uucp_name mà vẫn không mất đi tác dụng. Nếu tên site đã thay đổi, nhập vào giá trị thích hợp để thay thế.

5 Thiết lập UUCP Smart Host: Một vài hệ thống sử dụng máy khác bên ngồi như một smart host để điều

khiển quá trình phát đi các message đến và nhận từ các mạng khác. Nếu đang sử dụng một smart host, người sử dụng phải đặt tên cho nó trong file cấu hình config đến biến smart_host.

# Smart host smart_host = merlin; Trong trường hợp trên, bất kỳ mail nào cho các mạng ngồi khác đều được

chuyển đi bởi Smail đến máy merlin mà máy này có thể để ý đến quá trình dẫn đường ra khỏi mạng. Bất kỳ tên máy nào được nhận trong biến smart_host đều phải thuộc phạm vi hoạt động của hệ thống UUCP.

6. Thiết lập kiểu phát chuyển mail: Có thể thiết lập hệ thống Smail để xử lý mail gửi đến bằng nhiều cách khác

nhau. Có thể thiết lập Smail chứa các message gửi đến và gửi đi trong một hàng đợi và xử lý chúng ngay sau đó hoặc xử lý ngay tức thì. Quá trình này được điều khiển với các biến queue_only và delivery_mode.

Biến queue_only là một giá trị kiểu Boolean, nếu được thiết lập sẽ cho phép biến delivery_mode có thể thiết lập 1 trong 3 giá trị sau:

Foreground: Xử lý các message gửi đến ngay tức thì. Background: Message được phát đi bởi một quá trình nhỏ. Queue: Giữ message lại để sau đó xử lý. Một khi hàng đợi đã được phép, các message được giữ lại trong một hàng đợi

Smail (thường nằm ở /var/spool/smail/message) cho đến khi hàng đợi được xử lý. Quá trình xử lý được điều khiển bởi chức năng –q trên dòng lệnh Smail (nếu Smail được chạy như một daemon) hoặc bằng cách đưa ra dòng lệnh runq từ một file crontab (nếu Smail được chạy từ inetd), để quá trình làm việc sau đó được chính xác, runq cũng phải được liên kết Smail.

Gọi dòng lệnh khởi động từ file rc: /usr/local/bin/smail/ -bd –q15 Chú ý là hàng đợi được xử lý cứ mỗi sau 15 phút, trong ví dụ trên, dòng lệnh

xử lý hàng đợi có thể được thiết lập bất kỳ giá trị nào, nhưng phải không được quá dài để các file hàng đợi không nhận quá nhiều. Và cũng có thể hiển thị nội dung hiện tại của hàng đợi Smail bằng cách đưa ra dòng lệnh với chức năng –bd hoặc với dòng lệnh mailq (cũng được liên kết đến Smail).

Page 81: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 80

7. Gỡ rối Smail Trên hệ điều hành Linux, Smail sử dụng 2 file log để ghi lại các công việc.

Hầu hết các công việc đều được ghi lại trong file /var/spool/smail/log/logfile. Mỗi mục nhập trong trong file log tương ứng với một công việc Smail đã hồn tất và chứa đứng thống số xác minh của message, người gửi, người nhập, time, kích cỡ và thông tin dẫn đường. Người sử dụng có thể xem nội dung của file log để kiểm tra hệ thống Smail làm việc được tốt hơn.

Các lỗi và các vấn đề khác được ghi trong file paniclog (/var/spool/smail/log/paniclog). Một mục nhập trong file này cho thấy thông tin cơ bản về message và cả các lý do mà message không được gửi đi. Ví dụ: Các lỗi chung hầu hết là lỗi dẫn đường message thông qua SMTP

(ERR_148) transport smtp: connect: Connection refused Nếu tìm thấy các lỗi này trong file paniclog thì điều này có nghĩa là SMTP đã

bị lỗi, kết nối không được trả lời bởi vì một host từ xa không còn nữa hoặc dịch vụ TCP đã không được phép.

Nếu mục nhập trong file paniclog không thể giúp người sử dụng giải quyết được vấn đề thì có thể cho phép một trình gỡ rối trên Smail bằng cách thêm vào chức năng –d theo sau một con số trong dòng lệnh khởi động. Con số cho thấy số lượng thông tin gỡ rối được sinh ra và hiển thi trên màn hình. .

Nếu không nhận được bất kỳ mail nào chuyển đến mailbox của người sử dụng, kiểm tra tên đường dẫn của file mailbox. Nếu không chắc chắùn nơi chứa mailbox, cố gắng tạo ra liên kết giữa

/usr/spool/mail/username và /var/spool/mail/username 8. Điều chỉnh cách vận hành Smail: Ba thành phần cơ bản của Smail (rooter, director và transport) có thể được

cấu hình để điều chỉnh quá trình vận hành của chúng. Nhưng người sử dụng chỉ cần xem xét chi tiết thành phần rooter còn hai thành phần còn lại đều được tùy biến trong quá trình cài đặt Linux đầy đủ.

Trong hầu hết các trường hợp, quá trình vận hành của mỗi thành phần trong Smail được điều khiển bởi một hoặc nhiều file dựa vào thư mục cấu hình Smail (/usr/lib/smail). Tùy theo file cấu hình có sẵn từ các đĩa CD-ROM hoặc từ các site FTP Linux mà nó sẽ đưa ra các cấu hình khác nhau. Tìm một trong những file này và sau đó hiệu chỉnh nó cho phù hợp với hệ thống đang sử dụng.

Thành phần router của Smail điều khiển quá trình xử lý các địa chỉ đích, dẫn đường đến mail host kế tiếp cho quá trình gửi message được xa hơn và xác định kiểu chuyển vận nào sẽ được sử dụng để gửi message đi. Thành phần rooter thực hiện một số tác vụ, đầu tiên là việc xác định nếu message gửi đến một máy cục bộ hay một máy từ xa (sử dụng các giá trị biến được khai báo trong /usr/lib/smail/config). Nếu message dành cho máy cục bộ, message sẽ được chuyển sang director.

Nếu message dành cho một máy từ xa, địa chỉ của message được đưa đến router driver để xác định host nào mà message chuyển đến. Router driver được chỉ định trong file router (/usr/lib/smail/router). File này chứa tên các router driver, mỗi router driver được nhận địa chỉ đích của message để nhận ra nếu chúng có thông tin yêu cầu về router cụ thể để gửi message.

Nếu đang sử dụng cả kết nối SLIP/PPP lẫn UUCP người sử dụng có thể gặp một số vấn đề đối với Smail là phải chờ đợi quá lâu cho một phiên kết nối. Để đơn

Page 82: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 81

giản kiểu cài đặt này, sắp xếp lại trật tự các router và kiểm tra đường dẫn file trước khi giải quyết các router.

Khi một router nhận ra đường đi tốt nhất đến một máy đích, nó cũng nhận một transport được yêu cầu để liên lạc với router mail của máy đó. Đường dẫn thực sự đến máy đích có thể được hiệu chỉnh tại một số thời điểm. Ví dụ, nếu một máy tính từ xa [email protected] có thể được truy cập đến tốt nhất thông qua một liên kết UUCP thay vì SMTP, các địa chỉ đích có thể được điều chỉnh lại bởi router đến bigcat!chatton (kiểu địa chỉ UUCP). Như vậy một địa chỉ đích có thể trở nên cụ thể và rõ ràng hơn. Ví dụ, địa chỉ [email protected] có thể được giải quyết để chỉ định một máy khác chẳng hạn như [email protected] nếu địa chỉ đó sẽ nhận message chuyển đến hiệu quả hơn.

9. Cấu hình Smail để sử dụng với hệ thống TCP Nếu cần phải sử dụng một kết nối mạng truyền mail thì cần phải điều chỉnh

lại file config để chỉ định các kiểu kết nối và các tên host. Có nhiều cách để cấu hình các hệ thống mail cho một mạng. Các cách nào bao gồm sử dụng hệ thống NFS (Network File System) để cho phép một file cấu hình đơn lẻ chia sẻ với tất cả các máy, sử dụng POP hoặc IMAP để điều khiển mail trên một site trung tâm và cài đặt lên mỗi máy như một bộ điều khiển mail độc lập. Quá trình cấu hình cho tất cả các phương thức đó thì phần nhiều là giống nhau. Chỉ khác nhau ở chỗ có hay không các file cấu hình đặt trên mỗi máy trong mạng hoặc một máy đơn lẻ được truy cập sau đó bằng NFS hoặc SMTP bởi các máy khác.

Bắt đầu quá trình cấu hình bằng cách thiết lập các tên miền cục bộ sử dụng các biến visible_domain và visible_name.

Ví dụ: # Our domain name visible_domain=tpci.com # Our domain name for outgoing mail visible_name=tpci.com Đoạn mã này thiết lập tên miền cục bộ và các tên miền quyết định. Mục nhập

cho biến visible_domain được sử dụng bởi Smail để gửi đính kèm đến tất cả các mail gửi đi. Cả hai biến thường được gán giống nhau.

Bước cấu hình kế tiếp là thiết lập tên của smart_host điều khiển các message ra ngồi mạng cục bộ. Nếu không sử dụng smart_host hoặc máy của người sử dụng điều khiển các kết nối mạng đến chính nó thì không cần những giá trị này. Các biến có liên quan trong việc cài đặt lên một smart_host là smart_path ( chỉ định tên máy smarthost) và smart_transport (chỉ định kiểu phương thức sử dụng để kết nối đến smarthost).

Ví dụ: # smart host routing # smart host name smart_host=merlin # communications protocol to smart host smart_transport=smtp Giá trị smart_transport của SMTP được sử dụng để nhận biết giao thức kết

nối SMTP.

Page 83: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 82

C. HIỆN THỰC CHƯƠNG TRÌNH

Trên cơ sở lý thuyết tìm hiểu về Mailing list và các Mail system em tiến hành xây dựng mô phỏng một hệ thống mail với các chức cơ bảng như năng gửi và nhận mail dựa trên 2 giao thức truyền nhận cơ bản là SMTP và POP3. Chương trình này là một chương trình Mail Client được viết bằng ngôn ngữ lập trình PERL

Phần sau đây sẽ trình bày các lưu đồ thực hiện của chương trình và lưu đồ của các giao thức truyền nhận mail SMTP và POP3.

Lưu đồ tổng quát:

LOGIN

EXIT

Logout

CHECK MAIL

SEND MAIL

MENU MENU

Page 84: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 83

HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH POP3CLIENT: Chương trình Pop3 Client được thực thi đầu tiên khi có kết nối với Server Mail của

nhà cung cấp dịch vụ. Khi được thực thi, đầu tiên, nó sẽ lấy các thông tin như: Tên máy hoặc địa chỉ IP Server Mail của nhà cung cấp dịch vụ, đây chính là Server gởi Mail, username và password dùng để login vào Mailbox trên máy Server nhận Mail, hộp thư Inbox trên máy cục bộ dùng để lưu giữ các thư được nhận về, số lần kết nối lại nếu chương trình đang nhận mà bị ngắt giữa chừng, và thời gian timeout trong trường hợp Server không trả lời.

Kế tiếp, chương trình sẽ khởi tạo các signal dùng để xử lý các biến cố có thể xảy ra trong quá trình nhận Mail, ví dụ: đường truyền bị ngắt, timeout,…. Nếu các biến cố này xảy ra thì quá trình sẽ gọi các hàm cài đặt sẳn đi kèm với biến cố để xử lý.

Tiếp theo, chương trình sẽ thực hiện việc kiểm tra lại xem username và password dùng để đăng nhập vào Mailbox của Server Mail đã có trong cấu trúc POP3_SERVER

Page 85: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 84

chưa, nếu đã có thì chương trình sẽ dùng username và password này để thực hiện quá trình login vào Mailbox của Server, nếu chưa có thì sẽ hiển thị yêu cầu nhập vào username và password để thực hiện quá trình login.

Sau đó, Pop3Client sẽ mở một socket để thực hiện một kết nối tới Server nhận Mail, mà tên hoặc địa chỉ IP của computer mà chương trình Pop3Server đang chạy được lưu giữ trong trường host của cấu trúc POP3_SERVER. Nếu là tên, chương trình sẽ thực hiện việc chuyển đổi sang địa chỉ IP để thực hiện kết nối.

Nếu kết nối thực hiện thành công, Pop3 Client sẽ nhận được một lời chào được gởi tới bởi Pop3 Server và session sẽ bước vào quá trình AUTHORIZATION. Lúc này, Pop3Client sẽ gởi username và password tới cho Pop3Server kiểm tra.

Nếu quá trình AUTHORIZATION thực hiện thành công, session sẽ bước vào quá trình TRANSACTION, nếu không thành công, Pop3Server sẽ gởi thông báo lỗi lại cho Pop3Client. Lúc này, Pop3Client có thể thực hiện việc đăng nhập lại với username và password khác hoặc có thể gởi lệnh “QUIT” để thốt.

Bước vào quá trình TRANSATION, đầu tiên Pop3 Client sẽ gởi lệnh “STAT” tới server để kiểm tra xem có mail trong mailbox hay không. Nếu có, server sẽ trả về tổng số thư hiện có trong mailbox và kích thước của mailbox. Tiếp đó, Pop3Client sẽ gởi lệnh “LIST” để lấy kích thước của từng message.

Sau khi có được tổng số message có trong mailbox, Pop3 Client sẽ bước vào vòng lặp dùng để nhận mail, với mỗi bước của vòng lặp sẽ thực hiện một lệnh “RETR” với số thứ tự tương ứng với chỉ số của vòng lặp dùng để nhận message tương ứng.

Sau khi nhận xong message, Pop3Client sẽ gởi lệnh “DELE i” tới server để xóa message này.

Sau khi lấy hết các message có trong mailbox của server, Pop3Client sẽ gởi lệnh “QUIT” tới server để yêu cầu server chuyển Pop session sang trạng thái Update và thốt.

Đối với Server, khi bước vào trạng thái UPDATE, nó sẽ xóa thật sự các message đã được đánh dấu xóa trong Mailbox vào đóng kết nối. Nếu một kết nối đã đóng lại mà Server không bước vào trạng thái UPDATE thì các message được đánh dấu xóa sẽ không được xóa trong Mailbox mà nó sẽ trở lại trạng thái ban đầu.

Yes

Yes

Tạo socket

Connect server tại port 110

Gởi lệnh USER username \r\n

Response = +OK

Gởi lệnh PASS password \r\n

Gởi lệnh PASS password \r\n

No

No

No

Lưu Đồ Cho Getmail

Page 86: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 85

Page 87: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 86

HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH SMTP CLIENT Chương trình smtp client sẽ thực hiện lần lượt theo sơ đồ sau:

Lưu Đồ Cho Getmail (Tiếp tục)

No

1

Xử lý hàng nhận được lấy tổng số message

Gán i=1

Gởi lệnh RETR i

Đọc từng vào từng dòng từ socket và ghi File cho đến khi kết thúc bức mail.

incr i

i <= số msg

Gởi lệnh QUIT Đóng Socket

Yes

Mở và đọc file outbox

Có thư cần gởi? No

BEGIN

Page 88: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 87

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐẠI HỌC THUỶ SẢN KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG VIẾT ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Đặng Vũ Quốc Khánh Lớp 39TH – Hệ chính quy.

Page 89: BÁO CÁO TỐT NGHIỆP - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · cơ bản nhất mà cuốn báo cáo này cung cấp,

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình

trang 88

Giáo viên hướng dẫn: Thầy Nguyễn Ngọc Bình Thời gian làm đồ án tốt nghiệp: Từ ngày 21/4/2002 đến 25/9/2002 Tên đồ án: - Tìm hiểu về các Web Server thông dụng hiện nay. - Tìm hiểu về Mailing list và các Mail system. - Xây dựng một chương trình Internet mail. Đề cương viết đồ án: A. CÁC YÊU CẦU CỦA ĐỀ TÀI B. CƠ SỞ LÝ THUYẾT

Chương I: Tìm hiểu về các Web Server thông dụng Chương II: Các nghi thức truyền nhận

Phần I: Giao thức SMTP Phần II: Giao thức POP3

Chương III: Giới thiệu về Internet Mail Chương IV: Tìm hiệu về các hệ thống mail trên hệ điều hành Linux

C. HIỆN THỰC CHƯƠNG TRÌNH