Mạng và các dịch vụ thông dụng trên Internet

pdf 121 trang phuongnguyen 6430
Bạn đang xem 20 trang mẫu của tài liệu "Mạng và các dịch vụ thông dụng trên Internet", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfmang_va_cac_dich_vu_thong_dung_tren_internet.pdf

Nội dung text: Mạng và các dịch vụ thông dụng trên Internet

  1. Mạng VÀ CÁC DỊCH VỤ THÔNG DỤNG TRÊN INTERNET
  2. CHƯƠNG 11 TTỔỔNNGG QQUUAANN VVỀỀ MMẠẠNNGG VVÀÀ CCÁÁCC DDỊỊCCHH VVỤỤ TTHHÔÔNNGG DDỤỤNNGGTTRRÊÊNN IINNTTEERRNNEETT 
  3. I. Động lực thúc đẩy sự ra đời mô hình mạng Client/Server : - Ngày nay với xu hướng mạng toàn cầu hoá, thì sự liên lạc thông tin qua lại giữa các máy theo mô hình Client/Server là một trong những ứng dụng quan trong cơ bản về mạng và nó không thể thiếu trong hệ thống liên lạc thông tin hiện nay. Có rất nhiều dịch vụ hỗ trợ trên Internet theo mô hình này như e-mail, web, FPT, nhóm tin Usernet, telnet, truyền tập tin, đăng nhập từ xa, chat, Các chương trình dịch vụ ở trình khách(Client) sẽ kết nối với trình chủ ở xa(Server) sau đó gởi các yêu cầu đến trình chủ và trình chủ sẽ xử lý yêu cầu này sau đó gởi kết quả về cho trình khách. Thông thường trình chủ phục vụ cho rất nhiều trình khách đến cùng một lúc. - Vào những thập niên 90, khi bắt đầu bùng nổ sự truy cập Web cũng như mạng hoá trong các lĩnh vực của nhiều quốc gia trên thế giới trong đó có Việt Nam chúng ta. Một vấn đề đặt ra cho các nhà lập trình, các nhà quản lý và nhiều hơn nữa là những người sử dụng máy tính điều có thể truy cập thông tin trên Intranet hay Internet nhanh chóng, chính xác mà các thông tin hay dữ liệu này vẫn được an toàn. Lập trình mạng theo mô hình Client/Server sẽ là giải pháp an toàn cho các nhà lập trình. II. Nguyên tắc hoạt động mạng theo mô hình client/Server : - Mạng Client/Server đơn thuần chỉ có một tiêu chuẩn cơ bản là không có một Client nào sử dụng tài nguyên của một Client khác. Tài nguyên dùng chung (tài nguyên chính) được đặt trên một hay nhiều Server chuyên dụng theo từng dịch vụ như E-mail, file server, chat, Web, fpt, hay nói một cách khác những Client không bao giờ nhìn thấy nhau mà chỉ giao tiếp với Server. Mô hình Client/Server này rất hữu dụng trong các công ty hay những tổ chức cần đến việc quản lý tài nguyên hay người sử dụng một cách hiểu quả. - Thuật ngữ Server dùng để chỉ bất kỳ chương trình nào hỗ trợ dịch vụ có thể truy xuất qua mạng. Một Server nhận yêu cầu qua mạng thực hiện cho một dịch vụ nào đó và trả kết quả về cho nơi yêu cầu. Với những dịch vụ đơn giản nhất, mỗi yêu cầu gửi đến chỉ trong một địa chỉ IP datagram và Server trả về lời đáp trong một datagram khác. Các Server có thể thực hiện những công việc đơn giản nhất đến phức tạp nhất. Ví dụ như time-of-day Server chỉ đơn giản trả về giờ hiện hành bất cứ khi nào Client gởi tới Server này thông tin. Hay một Web Server nhận yêu cầu từ một trình duyệt (Borwser) để lấy một bản sao của trang web, Server sẽ lấy bản sao của tập tin trang web này trả về cho trình duyệt. - Mô hình Client/Server thực hiện việc phân tán xử lý giữa các máy tính. Về bản chất là một công nghệ được chia ra và xử lý bởi nhiều máy tính, các máy tính được xem là Server thường được dùng để lưu trữ tài nguyên để nhiều nơi truy xuất vào. Các Server sẽ thụ động chờ để giải quyết các yêu cầu từ Client truy xuất đến chúng. Thông thường, các Server được cài đặt như một chương trình ứng dụng. Vì vậy ưu điểm của việc cài đặt các Server như những chương trình ứng dụng là chúng có thể xử lý trên hệ máy tính bất kỳ nào hỗ trợ thông tin liên lạc theo giao thức TCP/IP hay một giao thức thông dụng khác. Như thế, Server cho một dịch vụ cụ thể có thể chạy trên một hệ chia thời gian cùng với nhưng chương trình khác, hay nó có thể xử lý trên cả máy tính cá nhân.
  4. - Một chương trình ứng dụng trở thành Client khi nó gởi yêu cầu tới Server và đợi lời giải đáp trả về. Cũng vì thế mà mô hình Client/Server là sự mở rộng tự nhiên của tiến trình thông tin liên lạc trong nội bộ máy tính và xa hơn nữa là Intarnet/Internet. Ứng dụng đầu tiên của mô hình Client/Server là ứng dụng chia sẻ file(do các tổ chức có nhu cầu chia sẻ thông tin giữa các bộ phận trong tổ chức được dễ dàng và nhanh chóng hơn). Trong ứng dụng này thông tin được chứa trong các file đặt tại máy Server của một phòng ban nào đó. Khi một phòng ban khác có nhu cầu trao đổ thông tin với phòng ban này thì sẽ sử dụng một máy tính khác(Client) kết nối với Server và tải nhưng file cần thiết về máy Client. Tóm lại : + Nhiệm vụ của máy Client : là thi hành một dịch vụ cho người dùng, bằng cách kết nối với những chương trình ứng dụng ở máy Server, dựa vào những chuỗi nhập để chuyển yêu cầu đến Server và nhân kết quả trả về từ Server hiển thị thông tin nhân được cho người dùng. + Nhiệm vụ của máy Server : luôn lắng nghe những kết nối đến nó trên những cổng liên quan đến giao thức mà Server phục vụ. Khi máy Client khởi tạo kết nối, máy Server chấp nhận và tạo ra luồng riêng biệt phục vụ cho máy Client đó. Ngoài ra máy Server phải quản lý các hoạt động của mạng như phân chia tài nguyên chung(hay còn gọi là tài nguyên mạng) trong việc trao đổi thông tin giữa các Client, Máy Server có thể đóng vai trò là máy trạm (Client) trong trường hợp này gọi là máy Server “không thuần tuý”. Server phải đảm bảo được hai yêu cầu cơ bản nhất đối với chức năng Server : cho phép truyền dữ liệu nhanh chóng và bảo đảm tính an toàn, bảo mật và không mất mát dữ liệu. + Có thể nói mô hình Client/Server là mô hình ảnh hưởng lớn nhất tới ngành công nghệ thông tin. Mô hình này đã biến những máy tính riêng lẻ có khả năng xử lý thấp thành một mạng máy chủ(Server) và máy trạm(Workstation) có khả năng xử lý gấp hàng ngàn lần những máy tính mạnh nhất. Mô hình này còn giúp cho việc giải quyết những bài toán phức tạp một cách dễ dàng hơn, bằng cách phân chia bài toán lớn thành nhiều bài toán con và giải quyết từng bài toán con một. Nhưng quan trọng hơn hết, không phải là việc giải được các bài toán lớn mà là cách thức giải bài toán. + Ưu điểm: - Các tài nguyên được quản lý tập trung. - Có thể tạo ra các kiểm soát chặt chẽ trong truy cập file dữ liệu. - Giảm nhẹ gánh nặng quản lý trên máy Client. - Bảo mật và back up dữ liệu từ Server. + Nhược điểm: - Khá đắt tiền so với mạng ngang hàng(peer), chủ yếu do giá để lắp đặt một Server khá cao. - Server trở thành điểm tối yếu của hệ thống, nghĩa là khi Server hỏng thì toàn bộ hệ thống sẽ chết, do đó tính năng đề kháng lỗi là một trong những yêu cầu quan trọng trong mô hình này.
  5. III.Các khái niệm cơ bạn về mạng : - Ngày nay, chúng ta đã quá quen thuộc về mạng điện thoại trong việc trao đổi thông tin, tương tự mạng trong máy tính cũng sử dụng một số nguyên tắc cơ bản sau. + Bảo đảm thông tin không bị mất hay thất lạc trên đường truyền. + Thông tin được truyền nhanh chóng và kịp thời. + Các máy tính trong cùng một mạng phải nhận biết nhau. +Cách đặt tên trên mạng cũng như cách xác định các đường truyền trên mạng phải tuân theo một chuẩn thống nhất. - Các nguyên tắc trên có vẽ rất cơ bản nhưng nó hết sức quan trọng. Nhưng tại sao cần phải nối mạng? có nhiều lý do nhưng có thể kể các lý do sau: + Tăng hiệu quả làm việc. + Xây dựng mô hình làm việc thống nhất tập trung cho tất cả mọi người sử dụng mạng. + Cho phép đưa tất cả các vấn đề cần giải quyết lên mạng dưới dạng thảo luận theo quan điểm phóng khoáng, thoải mái hơn là phải đối thoại nhau trong một không khí gò bó. + loại bỏ các thông tin thừa, trùng lặp. - Mạng có thể đơn giản chỉ gồm hai máy tính bằng cáp qua cổng máy in để truyền file, phức tạp hơn thì hiện nay có thể chia mạng ra thành các loại sau: + Mạng cục bộ(LAN-Wide Area Network) : là mạng đơn giản nhất trong thế giới mạng, là một hệ thống bao gồm các nút là các máy tính nối kết với nhau bằng dây cáp qua card giao tiếp mạng trong phạm vi nhỏ tại một vị trí nhất định. Tuỳ theo cách giao tiếp giữa các nút mạng, người ta chia làm hai loại : Mạng ngang hàng (peer to peer [Windows workgroups]) : là một hệ thống mà mọi nút đều có thể sử dụng tài nguyên của các nút khác. Nghĩa là các máy tính trên mạng đều ngang nhau về vai trò, không có máy nào đóng vai trò trung tâm. Hình 1.1 : Marry đang truy xuất tài nguyên qua mạng Mạng khách chủ (client/server) : có ít nhất một nút trong mạng đảm nhiệm vai trò trạm dịch vụ (server) và các máy khác là trạm làm việc (workstation) sử dụng tài nguyên của các trạm dịch vụ. Server chứa hầu hết tài nguyên quan trọng của mạng và phân phối tài nguyên này tới các Client.
  6. Hình 1.2 : Mô hình mạng Client/Server. + Mạng đô thị(Metropolitan Area Networks - viết tắt là Man): Là mạng đặt trong phạm vi một đô thị hoặc một trung tâm kinh tế-xã hội có bán kính khoản 100km trở lại. Là mạng chỉ với một đường truyền thuê bao tốc độ cao qua mạng điện thoại hoặc thông qua các phương tiện khác như radio, microway, hay các thiết bị truyền dữ liệu bàng laser. MAN cho phép người dùng mạng trên nhiều vị trí địa lý khác nhau vẫn có thể truy cập các tài nguyên mạng theo cách thông thường như ngay trên mạng LAN. Tuy nhiên nhìn trên phương diện tổng thể MAN cũng chỉ là mạng cục bộ. + Mạng diện rộng(WAN – Wide Area Networks): phạm vi của mạng vượt qua biên giới quốc gia và thậm chí cả lục địa. WAN có nhiệm vụ kết nối tất cả các mạng LAN và MAN ở xa nhau thành một mạng duy nhất có đường truyền tốc độ cao. Tốc độ truy cập tài nguyên của mạng WAN thường bị hạn chế bởi dung lượng truyền của đường điện thoại thuê bao(phần lớn các tuyến điện thoại số cũng chỉ ở mức 56 kilobits/s) và chi phí thuê bao rất đắt đây là vấn đề để cho một công ty hay tổ chức nào muốn thiết lập mạng MAN cho công ty mình. + Mạng Internet : Mạng Internet là một tập hợp gồm hàng vạn mạng (LAN, MAN và WAN)trên khắp thế giới kết nối với qua một router(là thiết bị phân tuyến các luồn dữ liệu giữa các mạng) tạo thành một mạng chung trên toàn cầu theo mô hình client/Server, được phát triển vào đầu thập niên 70. Internet là công nghệ thông tin liên lạc mới, và hiện đại, nó tác động sâu sắc vào xã hội cuộc sống chúng ta, là một phương tiện cần thiết như điện thoại hay tivi, nhưng ở mức độ bao quát hơn. Chẳng hạn điện thoại chỉ cho phép trao đổi thông tin qua âm thanh, giọng nói. Với Tivi, thông tin nhận được trực quan hơn. Còn Internet đưa chúng ta vào thế giới có tầm nhìn rộng hơn và bạn có thể làm mọi thứ: viết thư, đọc báo, xem bản tin, giải trí, tra cứu và thậm chí còn thực hiện những phi vụ làm ăn, .Vì Internet là mạng của các mạng, tức bao gồm nhiều mạng máy tính kết nối lại với nhau, Số lượng máy tính nối mạng và số lượng người truy cập vào mạng Internet trên toàn thế giới đang ngày càng tăng lên nhanh chóng. Đặc biệt từ năm 1993 trở đi, mạng Internet không chỉ cho phép chuyển tải thông tin nhanh chóng mà còn giúp cung cấp thông tin, nó cũng là diễn đàn và là thư viện toàn cầu đầu tiên. Các thông tin được đặt rải rác trên
  7. toàn cầu có thể truyền thông được với nhau như một thiết bị Modem và đường dây điện thoại. Internet bắt đầu từ đầu năm 1969 dưới cái tên là ARPANET(Advanced Research Projects Agency) còn gọi là ARPA. Nó thuộc bộ quốc phòng Mỹ (DoD). Đầu tiên nó chỉ có 4 máy được thiết kế để minh hoạ khả năng xây dựng mạng bằng Cách dùng máy tính nằm rải rác trong một vùng rộng. Vào năm 1972, khi ARPANET được trình bày công khai, đã được 50 trường đại học và các viện nghiên cứu nối kết vào. Mục tiêu của ARPANET là nghiên cứu hệ thống máy tính cho các mục đích quân sự. Chính phủ và quân đội tìm kiếm những phương cách để làm cho mạng tránh được các lỗi, mạng này thiết kế chỉ cho phép các văn thư lưu hành từ máy tính này đến máy tính khác, đối với chính phủ và quân đội, máy tính đã có những công dụng rõ ràng và sâu rộng. Tuy nhiên, một trong những mối bận tâm chính yếu là tính đáng tin cậy vì nó có liên quan đến vấn đề sinh tử. Kế hoạch ARPANET đã đưa ra nhiều đường nối giữa các máy tính. Điều quan trọng nhất là các máy tính bạn có thể gởi các văn thư bởi bất kỳ con đường khả dụng nào, thay vì chỉ qua một con đường cố định. Đây chính là nơi mà vấn đề về giao thức đã xuất hiện. Đầu năm 1980 trung tâm DARPA thử nghiệm giao thức TCP/IP và được các trường đại học mỹ cho phép nối với hệ điều hành UNIX BSD ( Berkely Software Distribution). Hệ điều hành UNIX là hệ phát triển mạnh với rất nhiều công cụ hỗ trợ và đảm bảo các phần mềm ứng dụng có thể chuyển qua lại trên các họ máy khác nhau (máy mini, máy tính lớn và hiện nay là máy vi tính). Bên cạnh đã hệ điều hành UNIX BSD còn cung cấp nhiều thủ tục Internet cơ bản, đưa ra khái niệm Socket và cho phép chương trình ứng dụng thâm nhập vào Internet một cách dễ dàng. Internet có thể tạm hiểu là liên mạng gồm các máy tính nối với nhau theo một nghi thức và một số thủ tục chung gọi là TCP/IP (Transmission Control Protocol/Internet Protocol).Thủ tục và nghi thức này trước kia đã được thiết lập và phát triển là cho một đề án nghiên cứu của Bộ Quốc Phòng Mỹ với mục đích liên lạc giữa các máy tính nối đơn lẻ và các mạng máy tính với nhau mà không phụ thuộc vào các hãng cung cấp máy tính. Sự liên lạc này vẫn được bảo đảm liên tục ngay cả trong trường hợp có nút trong mạng không hoạt động. Ngày nay, Internet là một mạng máy tính có phạm vi toàn cầu bao gồm nhiều mạng nhỏ cũng như các máy tính riêng lẻ được kết nối với nhau để có thể liên lạc và trao đổi thông tin. Trên quan điểm Client / Server thì có thể xem Internet như là mạng của các mạng của các Server, có thể truy xuất bởi hàng triệu Client. Việc chuyển và nhận thông tin trên Internet được thực hiện bằng nghi thức TCP/IP. Nghi thức này gồm hai thành phần là Internet protocol (IP) và transmission control protocol (TCP) (được nguyên cứu ở những phần sau). IP cắt nhỏ và đóng gói thông tin chuyển qua mạng, khi đến máy nhận, thì thông tin đó sẽ được ráp nối lại. TCP bảo đảm cho sự chính xác của thông tin được chuyền đi cũng như của thông tin được ráp nối lại đồng thời TCP cũng sẽ yêu cầu truyền lại tin thất lạc hay hư hỏng. Tuỳ theo thông tin lưu trữ và mục đích phục vụ mà các server trên Internet sẽ được phân chia thành các loại khác nhau như Web Server, email Server hay FTP Server. Mỗi loại server sẽ được tối ưu hoá theo mục đích sử dụng.
  8. Từ quan điểm người sử dụng, Internet trông như là bao gồm một tập hợp các chương trình ứng dụng sử dụng những cơ sở hạ tầng của mạng để truyền tải những công việc thông tin liên lạc. Chúng ta dùng thuật ngữ "interoperability" để chỉ khả năng những hệ máy tính nhiều chủng loại hợp tác lại với nhau để giải quyết vấn đề. Hầu hết người sử dụng truy cập Internet thực hiện công việc đơn giản là chạy các chương trình ứng dụng trên một máy tính nào đó gọi là máy client mà không cần hiểu loại máy tính(Server) đang được truy xuất, kỹ thuật TCP/IP, cấu trúc hạ tầng mạng hay Internet ngay cả con đường truyền dữ liệu đi qua để đến được đích của nó.Chỉ có những người lập trình mạng cần xem TCP/IP như là một mạng và cần hiểu một vài chi tiết kỹ thuật. Hình 1.4 : Liên lạc trên Internet Các kiểu kết nối Internet: + Kết nối quay số(dial-up connection): rẻ tiền nhất nhưng tốc độ truy cập bị hạn chế và có thể bị gián đoạn bất ngờ khi quá tải kênh truyền. + Kết nối qua các tuyến điện thoại có tốc độ truyền 56kbs/s tốc độ có khá hơn kiểu quay số nhưng không đáng kể. Tuy nhiên, với tốc độ phát triển cực kỳ nhanh chóng của nhu cầu trao đổi thông tin trên mạng Internet, người ta xây dựng một kết nối có tốc độ cực nhanh đó là các tuyến backone, là các siêu xa lộ sử dụng loại cáp quan để truyền dữ liệu với tốc độ lên tới 622 megabits/s. + Mạng Intranet, Extranet và Internet : Khi bạn xây dựng một mạng LAN, MAN hoặc WAN theo chuẩn Internet thì bạn đã tạo ra một mạng Intranet. Khi bạn kết nối mạng Intranet vào Internet và bắt đầu giao tiếp với thế giới bên ngoài bạn đã tạo ra một Extranet. IV.Các ứng dụng Client/Server trên Internet thông dụng : Tuỳ theo thông tin lưu trữ và mục đích phục vụ mà các Server trên mạng Internet sẽ được phân chia thành các loại như Web server, Email server, Chat Server, hay FPT server, mỗi loại sẽ được tối ưu hoá theo mục đích sử dụng giao thức và cổng kết nối khác nhau.
  9. 1. World Wide Web(www): + Web là một ứng dụng khá hoàn hảo và phổ biến nhất hiện nay, và ngày nay nó cấu thành phần lớn nhất của Internet dựa trên kỹ thuật biểu diễn thông tin gọi là siêu văn bản, trong đó các từ được chọn trong văn bản có thể được mở rộng bất cứ lúc nào để cung cấp đầy đủ hơn thông tin về từ đó. Sự mở rộng ở đây theo nghĩa là chúng có thể liên kết tới các tài liệu khác: văn bản, hình ảnh, âm thanh, hay hỗn hợp các loại .có chứa thông tin bổ sung. Nói cách khác World Wide Web là phần đồ hoạ của Internet. Thuở ban đầu, Internet là hệ thống truyền thông Internet là hệ thống truyền thông dựa trên văn bản; việc liên kết với những site khác có nghia là phải gõ những địa chỉ mã hoá dài dằng dặc với độ chính xác 100%. Công nghệ World Wide Web xuất hiện như là một vị cứu tinh. Khả năng đặt hình ảnh lên Web Site bất ngờ làm cho thông tin trên Web trở nên hấp nên hơn, lôi cuốn hơn. Ngoài ra HTTP (Hypertext Transfer Protocol) cho phép trang Web kết nối với nhau qua các siêu liên kết (hyperlink), nhờ vậy mà người dùng dễ dàng "nhảy" qua các Web site nằm ở hai đầu trái đất, World Wide Web chỉ là một phần cấu thành nên Internet ngoài ra còn có rất nhiều thành phần khác như: E-mail, Gopher, Telnet, Usenet Các trình duyệt ở các máy Client sẽ thay mặt người sử dụng yêu cầu những tập tin HTML từ Server Web bằng cách thiết lập một kết nối với máy Server web và đưa ra các yêu cầu tập tin đến Server. Server nhận những yêu cầu này, lấy ra những tập tin và gởi chúng đến cửa sổ của trình duyệt ở Client. + Web Server là web cung cấp thông tin ở dạng siêu văn bản, được biểu diễn ở dạng trang. Các trang có chứa các liên kết tham chiếu đến các trang khác hoặc đến các tài nguyên khác trên cùng một Web Server hoặc trên một Web Server khác. Các trang tư liệu siêu văn bản sau khi soạn thảo sẽ được quản lý bởi chương trình Web Server chạy trên máy Server trong hệ thống mạng. Cơ chế hoạt động của Web server + Máy server Web dùng giao thức HTTP để lấy tài nguyên Web xác định thông qua URL. HTTP là một giao thức mức ứng dụng được thiết kế sao cho truy cập tài nguyên Web nhanh chóng và hiệu quả. Giao thức này dựa vào mô hình request-reponse. Dịch vụ Web xây dựng theo mô hình client/server, trong đó Web browser đóng vai trò là client gởi các yêu cầu dưới dạng URL đến server. Web server trả lời bằng cách trả về một trang Hypertext Markup Language (HTML). + Trang HTML có thể là một trang tĩnh, tức là nội dung của nó đã có dạng xác định và được lưu trên Web site, hoặc một trang Web động (nội dung không xác định trước) mà server tạo ra tại thời điểm client yêu cầu để trả lời cho yêu cầu của client, hoặc một trang liệt kê các file và folder trên Web site. Hình 1.3 : Web browser gửi yêu cầu URL đến Web server
  10. + Web browser gửi yêu cầu URL đến Web server Mỗi trang trong một intranet hoặc trên Internet có một URL (Uniform Resource Location) duy nhất định vị chúng. Web browser yêu cầu một trang bằng cách gửi một URL đến một Web server. Web server sẽ dùng các thông tin trong URL để định vị và tổ chức một trang HTML để gửi về cho Web browser.  Một chuỗi URL nói chung có dạng sau: :// / Trong đó:  Tiền tố chỉ ra giao thức được sử dụng cho dịch vụ, ví dụ giao thức Hypertext Transport Protocol (HTTP) được dùng cho dịch vụ Web, giao thức FTP, gopher,  là tên DNS (Domain Name System) của máy Web server.  là đường dẫn đến thông tin được yêu cầu trên server. Bảng sau ví dụ về các địa chỉ URL khác nhau: Protocol Domain name Path http:// www.hcmuns.edu.vn /vanphong/dtao.htm https:// www.company.com /catalog/orders.htm (secure HTTP) gopher:// gopher.college.edu /research/astronomy/index.htm ftp:// orion.bureau.gov /stars/alpha quadrant/startlist.txt + Web server trả lời yêu cầu của Web browser Hình1.4 : Web server trả lời yêu cầu URL đến Web browser  Web server sẽ trả một trang HTML về cho Web browser, các trang HTML thuộc một trong 3 kiểu sau:  Trang Web tĩnh (Static webpage) : là những trang HTML được chuẩn bị sẵn. Web server chỉ đơn giản là lấy trang này gởi về cho Web browser mà không gọi thi hành một chương trình hay một script nào khác. người dùng yêu cầu một trang Web tĩnh bằng cách nhập vào một chuỗi URL hoặc click chuột vào một siêu liên kết trỏ tới URL.  Trang Web động (Dynamic webpage) : là những trang Web được tạo ra tại thời điểm client gửi yêu cầu để đáp ứng yêu cầu của user.
  11. Server có thể sẽ gọi chạy một chương trình khác, sử dụng các API của server, các ngôn ngữ kịch bản CGI script, query cơ sở dữ liệu tuỳ theo các thông tin mà web browser cung cấp.  Danh sách liệt kê(Directory listing) : Nếu user gửi yêu cầu mà không mô tả một file cụ thể, thì có thể tạo một trang mặc nhiên cho Web site hay cho một thư mục, hoặc cấu hình server cho phép duyệt thư mục. Nếu sử dụng trang HTML mặc nhiên cho thư mục, thì trang này sẽ được gửi cho Web browser, còn nếu không có thì một directory listing (phiên bản HTML của Windows Explorer hay File Manager chạy trên trình duyệt) được trả về cho user dưới dạng một trang HTML, trong đó mỗi file và thư mục thể hiện như một siêu liên kết. Sau đó user có thể nhảy đến một file bất kỳ bằng cách click vào siêu liên kết tương ứng trong directory-listing. 2. Thư điện tử (E-Mail): - Là dịch vụ rất phổ biến và thông dụng trong mạng Internet/Intranet và hầu như không thể thiếu được trong Internet/Intranet hiện nay. Tuy nhiên không phải là dịch vụ “từ đầu - đến cuối” (end to end). Nghĩa là dịch vụ này không đòi hỏi hai máy tính gởi và nhận thư phải nối trực tiếp với nhau để thực hiện việc chuyển thư. Nó là dịch vụ kiểu lưu và chuyển tiếp (store and forward) thư được chuyển từ máy này sang máy khác cho tới khi máy đích nhận được. Người nhận cũng chỉ thực hiện một số thao tác đơn giản để lấy thư, đọc thư và nếu cần thì cho in ra. Cách liên lạc này thuận tiện hơn nhiều so với gởi thư thông thường qua bức điện hoặc Fax, lại rẻ và nhanh hơn. Cách thực hiện việc chuyển thư không cần phải kết nối trực tiếp với nhau để chuyển thư, thư có thể được chuyển từ máy này đến máy khác cho tới máy đích Giao thức truyền thống sử dụng cho hệ thống thư điện tử của Internet là SMTP(Simple Mail Transfer Protocol). Cơ chế hoạt động của thư điện tử(E-mail): - Giao thức liên lạc : mặc dù gởi thư trên Internet sử dụng nhiều giao thức khác nhau, nhưng giao thức SMTP (Single Message Transfer Protocol)
  12. được dùng trong việc vận chuyển mail giữa các trạm. Giao thức này đặc tả trong hai chuẩn là trong RFC 822 (định nghĩa cấu trúc của thư ) và RFC 821(đặc tả giao thức trao đổi thư giữa hai mạng) ngoài ra trong rfc2821 sẽ nói rõ các qui luật và cách hoạt động của giao thức. Là giao thức cơ bản để chuyển thư giữa các máy Client, SMTP có một bộ gởi thư, một bộ nhận thư, và một tập hợp lệnh dùng để gởi thư từ người gởi đến người nhận. Giao thức SMTP hoạt động theo mô hình khách/chủ (Client/ Server) với một tập lệnh đơn giản, trình khách (SMTP mail Client) sẽ bắt tay với trình chủ (SMTP mail Server) gởi các yêu cầu tiếp nhận mail. Trình chủ đọc nội dung mail do trình khách gởi đến và lưu vào một thư mục nhất định tương ứng với từng user trên máy chủ. Phần này sẽ được làm rõ hơn trong nhưng chương sau. - Cứ mỗi trạm e-mail thường bao gồm ít nhất là hai dịch vụ: POP3 (Post Office Protocol Version 3) có nhiệm vụ nhận/trả thư từ/tới e-mail client và dịch vụ SMTP (Simple E-mail Transfer Protocol) có nhiệm vụ nhận/phân phối thư từ/đến POP3 đồng thời trao đổi thư với các trạm e-mail trung gian. POP3 được tìm thấy trong rfc1725 hay RFC 1939, là một giao thức đơn giản nhất, cho phép lấy mail về từ trình chủ POP3 Server. Ngoài tra trạm e-mail này có thể bổ sung thêm một số dịch vụ khác như ESMTP, IMAP và dịch vụ MX Record của dịch vụ DNS hay dịch vụ chuyển tiếp mail(Forward or relay). IMAP(INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1) thực chất là giao thức mới bổ Sung và mở rông hơn của giao thức POP3 còn thiếu. IMAP cho phép đọc, xoá, gởi, duy chuyển mail ngay trên máy chủ. Điều này rất thuận tiện cho người nhận mail phải thường xuyên di chuyển mail từ máy này sang máy khác trong quá trình làm việc. Tuy nhiên chi phí để cài đặt một trạm e-mail có giao thức IMAP là rất cao so với giao thức POP3. - Mỗi người dùng (client) đều phải kết nối với một E-mail Server gần nhất (đóng vai trò bưu cục địa phương) phải có một tên (e-mail account) trên một trạm e-mail và sử dụng chương trình e-mail client (ví dụ như Eudora, Netscape ). Sau khi soạn thảo xong thư và đề rõ địa chỉ đích (người nhận) rồi gửi thư tới E-mail-Server của mình. E-mail Server này có nhiệm vụ sẽ tự động kiểm tra và định hướng chuyển thư tới đích hoặc chuyển thư tới một E- mail-Server trung gian khác. Thư chuyển tới E-mail-Server của người nhận và được lưu ở đó. Đến khi người nhận thiết lập tới một cuộc kết nối tới E-mai- Server đó thì thư sẽ chuyển về máy người nhận, nếu không thì thư vẫn tiếp tục giữ lại ở server đảm bảo không bị mất. - Phần khác của ứng dụng thư điện tử là cho phép người sử dụng đính kèm (attachments) theo thư một tập tin bất kỳ (có thể dạng nhị phân chẳng hạn chương trình chạy). E-mail đã và đang hết sức thành công đến nỗi những người sử dụng Internet phục vụ dùng nó đối với hầu hết các trao đổi của họ. Một lý do làm e-mail Internet phổ biến là vì việc thiết kế nó rất cẩn thận: giao thức làm cho việc "phát thư" có độ tin cậy cao. không chỉ hệ thống thư tín trên máy của người gởi tương tác trực tiếp trên máy của người nhận mà giao thức còn đặc tả một thông điệp không thể bị xoá bởi người gởi cho đến khi người nhận đã thật sự có một phiên bản của thông điệp trên bộ lưu trữ (đĩa cứng chẳng hạn)của họ. - Như vậy để gởi/nhận thư người sử dụng chỉ cần quan tâm tới cách sử dụng chương trình e-mail client. Hiện nay có nhiều chương trình e-mail client như Microsoft Outlook Express, Eudora Pro, Peagasus mail,
  13. 3. Dịch vụ Chat: - Chat là tài nguyên được mọi người sử dụng trên Internet ưa chuộng nhất. Đây là tài nguyên rất lý thú, nó cho phép bạn thiết lập các cuộc đối thoại thông qua máy vi tính với người dùng khác trên Internet. Sau khi bạn đã thiết lập được hệ thống này, những gì bạn gõ trên máy tính của bạn gần như tức thời trên máy tính kia và ngược lại. Những cuộc trao đổi thông qua chương trình Chat là sự đối mặt trực tiếp giữa hai người đối thoại với nhau thông qua ngôn ngữ viết nên sẽ chậm hơn so với đối thoại bằng miệng nhưng chỉ có lợi ích nhất là với những người không cùng ngôn ngữ vì gõ-đọc dễ hơn nghe-nói và trong một số trường hợp khác thì gõ(viết) dễ hơn là nói. 4. Dịch vụ FPT (File Transfer Protocol) - Là dịch vụ truyền tập tin(tệp) trên Internet. FPT cho phép dịch chuyển tập tin từ trạm này sang trạm khác, bất kể trạm đó ở đâu và sử dụng hệ điều hành gì, chỉ cần chúng đều được nối với Internet và có cài đặt FPT. FPT là một chương trình phức tạp vì có nhiều cách khác nhau để xử lý tập tin và cấu trúc tập tin, và cũng có nhiều cách lưu trữ tập khác nhau. - Để khởi tạo FPT từ trạm làm việc của mình người sử dụng chỉ gõ : Fpt - Fpt sẽ thiết lập liên kết các trạm xa và bạn sẽ đăng nhập vào hệ thống(login/password). Vì fpt cho phép truyền tập tin theo cả hai chiều. Để chuyển tập tin của mình đến trạm ở xa dùng lệnh put, và ngược lại dùng lệnh get để lấy thông tin về. Ngoài ra trong một số trường hợp nó có thể đổi tên, tạo, xoá thư mục .FPT Client sử dụng dịch vụ để lấy(get) các tập tin từ FPT Server về máy của mình (download) hoặc gởi(put) các tập tin lên FPT server (upload). ftp>put source-file destination-file ftp>get source-file destination-file - FTP theo nghĩa tiếng việt là nghi thức truyền file giữa các máy tính này đến máy tính khác thông qua mạng. Nếu như nghi thức TCP/IP gồm có các lớp Application, lớp TCP, lớp IP, lớp Network, lớp Datalink và lớp Physical thì FTP thuộc lớp ứng dụng (Application). - WWW là một dịch vụ hấp dẫn, nó thay thế hầu hết những chức năng của FTP. Tuy nhiên chỉ có FTP mới cho phép copy file từ máy tính Client đến Server. Nếu một người dùng từ xa muốn làm điều này thì chắc chắn họ phải dùng FTP. Những loại file có thể truyền được bằng FTP rất phong phú, từ các file tư liệu(document) cho đến các file Multimedia như file hình ảnh, âm thanh.
  14. Hình 1.5 Mô hình truyền nhận File FPT Người sử dụng chương trình fpt Client kết nối với fpt Server, để kết nối thành công người dùng phải biết địa chỉ IP hoặc tên của máy chủ chạy fpt Server được gọi là trạm ở xa(Romote host) và máy chạy fpt Client được gọi là trạm địa phương(local host), thường thì chúng ta(người sử dụng) chỉ sử dụng chương trình fpt Client. 5. Đăng nhập từ xa Telnet - Telnet là một chương trình dùng giao thức Telnet, nó là một phần của bộ giao thức TCP/IP. Nó cho phép người sử dụng từ một trạm làm việc của mình có thể đăng nhập vào một mạng ở xa qua mạng và làm việc với hệ thống y như một trạm cuối nói trực tiếp với trạm ở xa đó. - Máy tính ở xa, còn được gọi là telnet, sẽ chấp nhận nối kết telnet từ một máy tính trên một hệ thống TCP/IP. bởi vì Internet là một mạng TCP/IP, telnet sẽ làm việc một cách hài hoà giữa các máy tính nối đến nó nếu như dịch vụ telnet được cài đặt trên máy tính của bạn. các thành phần telnet và server thoả thuận trong cách mà chúng sẽ dùng kết nối, vì thế mặc dù các hệ thống không cùng loại chúng vẫn tìm thấy một ngôn ngữ chung. telnet cũng có những giới hạn của nó, nếu lưu thông trên mạng kết nối từ xa có thể khiến cho sự cập nhật từ màn hình trở nên chậm hơn. Telnet thường dùng cho các mục đích công cộng và thương mại, cho phép những người dùng ở xa tìm kiếm các cơ sở dữ liệu lớn, phức tạp, và nó cũng là nguồn tài nguyên có giá trị trong giáo dục giúp cho việc nghiên cứu của bạn trở nên hấp dẫn hơn. - Ðể khởi động Telnet, từ trạm làm việc của mình người sử dụng chỉ việc gõ: telnet Người sử dụng kết nối đến Server Telnet(thường gọi là daemon) sẽ sử dụng cổng 23 cho những kết nối đến Server. Để hiểu rõ việc truyền thông giữa Telnet Client và Telnet Server thì bộ RFC 854 nói lên mối liên lạc này. RFC 854 xác định được 3 thành phần cơ bản trong bộ giao thức Telnet.  Khái niệm thiết bị đầu cuối ảo(Network Virtual Terminal).  Những qui tắc tuỳ chọn cho việc dàn xếp để chuyển dữ liệu.  Sự tương xứng giữa thiết bị đầu cuối và các tiến trình.
  15. 6. Archie (tìm kiếm tập tin) Phát triển tại đại học McGill ở Canada, Archie là một loại thư viện khổng lồ sẽ tự động và đều đặn tạo ra một số lớn các thông tin gởi đến máy chủ trên Internet và lập chỉ mục các tập tin của chúng để tạo ra một cơ sở dữ liệu duy nhất có thể tìm kiếm được. CSDL này còn là mục lục của dữ liệu danh mục, một sự biên dịch các tập tin có sẵn trên mọi máy chủ, Archie quét qua các máy chủ Internet một cách thường xuyên, và CSDL này thường xuyên được cập nhật. thực sự thì Archie không phải là một hệ thống độc lập, thay vì vậy nó là một nhóm các máy chủ. mỗi máy chủ archie đáp ứng cho sự tra hỏi các máy chủ Internet của chính nó để tạo nên cơ sở dữ liệu cho chính nó. 7. Gopher(Dịch vụ tra cứu thông tin theo thực đơn) Gopher cho phép ta truy cập vào nhiều nguồn tài nguyên khác nhau, nhiều loại dịch vụ của Internet. Là một hệ thống làm việc theo Client/Server dưới dạng thực đơn(Menu), có thể duy chuyển từ menu này sang menu khác. Nếu thông tin cần tìm không có ở trạm kết nối thì Gopher Server sẽ tự động nối đến trạm khác. Hệ thống Gopher phát triển bởi đại học Minnesota và được miễn phí cho các hoạt động phi lợi nhuận, Gopher có thể được dùng trên một số hệ thống máy tính như: UNIX, DOS, Microsoft Windows, Macintosh, OS/2 Phần mềm Client chạy trên máy tính của bạn có thể chạy trên bất kỳ máy nào của Gopher. Với Gopher bạn có thể đi xuyên qua Internet và đi đến những nơi mà không có người dùng nào đã từng đi đến, cách mà nó thực hiện bởi tổng hợp các công cụ Internet như: Telnet, FPT, để khi bạn tìm ra một đề mục tương quan đến những gì bạn đang tìm kiếm, bạn có thể đi trực tiếp đến nó mà không cần một trình tiện ích, hãy nhập vào địa chỉ của mục tiêu việc tìm kiếm Gopher sẽ lấy tất cả điều này cho bạn. 8. Tìm kiếm thông tin theo chỉ số (WAIS) Cũng giống như Gopher, WAIS( Wide Area Information Server) cho phép tìm kiếm và truy cập thông tin trên mạng(phần lớn là thông tin văn hoá) mà không cần biết chúng đang thực sự ở đâu. WAIS cũng hoạt động theo mô hình Client/Server, tuy nhiên ngoài WAIS Client và WAIS Server còn thêm WAIS indexer thực hiện việc cập nhật dữ liệu mới, sắp xếp theo chỉ số để tiện trong việc tìm kiếm. WAIS không chỉ cho phép hiển thị tập tin văn bản mà còn những tập tin đồ hoạ. Nó là nguồn quan trọng giúp cho các nguồn thông tin trên Internet có thể truy xuất được. WAIS là một trong những chương trình đầu tiên dựa vào tiêu chuẩn Z39.50( tiêu chuẩn của American National Standard), nó là hệ thống đầu tiên dùng tiêu chuẩn này, nó trở thành một dạng thức tìm kiếm phổ biến, WAIS có thể nối đến bất kỳ CSDL hoặc máy Client có dùng Z39.50. 9. Dịch vụ tên miền (Domain Name System - DNS) - Việc định danh các phần tử của liên mạng bằng các con số như trong địa chỉ IP rõ ràng là không làm cho người sử dụng hài lòng, bởi chúng khó nhớ, dễ nhầm lẫn. Vì thế người ta đã xây dựng hệ thống đặt tên (name) cho các phần tử của Internet, cho phép người sử dụng chỉ cần nhớ đến các tên
  16. chứ không cần nhớ đến các địa chỉ IP nữa. Ta có thể biết thêm thông tin cách hoạt động của dịch vụ này thông qua RFC 1035. - Hệ thống này được gọi là DNS (Domain Name System). Ðây là một phương pháp quản lý các tên bằng cách giao trách nhiệm phân cấp cho các nhóm tên. Mỗi cấp trong hệ thống được gọi là một miền (domain), các miền được tách nhau bởi dấu chấm. Số lượng domain trong một tên có thể thay đổi nhưng thường có nhiều nhất là 5 domain. Domain có dạng tổng quát là local- part@domain-name. trong đó :  Local-part thường là tên của một người sử dụng hay nhóm người sử dụng do người quản lý mạng nội bộ qui định.  Còn domain-name được gán bởi các Trung tâm thông tin mạng (NIC) các cấp. Domain cấp cao nhất là cấp quốc tế(com, org, net, ) sau đó là cấp quốc gia và mỗi quốc gia được gán một tên miền riêng biệt gồm hai chữ cái. Ví dụ vn (Việt Nam), us (Mỹ), ca (Canada), fr (Pháp), v.v Trong từng quốc gia lại được chia thành 6 domain cao nhất và tiếp tục đi xuống các cấp thấp hơn. Quốc gia VN Domain Phạm vi sử dụng Gov các tổ chức chính phủ (phi quân sự) gov edu com mil org net Edu các cơ sở giáo dục Com các tổ chức kinh doanh, thương hut mại Mil các tổ chức quân sự fit Org các tổ chức khác Net các tài nguyên mạng - Mỗi một Domain cấp chính cần phải cung cấp cho một DNS Server, DNS s Server này có nhiệm vụ lưu trữ địa chỉ các Domain con của nó nhằn mục đích giúp người sử dụng tìm kiếm và truy xuất vào các địa chỉ này một cách dễ dàng. Các DNS Server đều liên lạc được với nhau. 10. Dịch vụ nhóm tin (Use Net News Groups) Là dịch vụ cho phép nhiều người ở nhiều nơi khác nhau có thể tham gia công tác hay trao đổi về một chủ đề riêng nào đó hoặc những người có cùng mối quan tâm giống nhau có thể tham gia vào một nhóm tin để trao đổi về vấn đề đó. Mỗi chủ đề được thảo luận trong một nhóm riêng biệt. Chủ đề của một nhóm trong một nhóm riêng biệt. Chủ đề của một nhóm tin thì vô cùng phong phú ví dụ như: nhóm tin thuộc nhạc cổ điển, nhóm tin về thể thao, nhóm tin khoa học Xoay quanh mọi vấn đề trong cuộc sống, có thể nói không có vấn đề gì không có trong nhóm tin, mỗi nhóm tin có thể có nhiều nội dung thảo luận. Khi bạn gởi một bản tin đến một nhóm tin chủ thì chủ đó sẽ tiếp tục gởi bản tin đến một nhóm chủ cùng cộng tác trên Internet, và thông tin có thể lấy từ các Server (máy chủ) khác nhau. Vì vậy những người khác có thể lấy về và đọc bản tin đó từ News Server mà họ nối tới. Việc gởi bản tin tới nhóm tin cũng tương tự như E-mail chỉ khác ở chỗ là địa chỉ gởi là địa chỉ của nhóm tin
  17. và việc lấy các văn bản về đọc cũng tương tự như lấy và đọc E-mail. Và người sử dụng cũng chỉ cần biết đến một server tin duy nhất, đó là server tin mà mình kết nối vào. Mọi sự trao đổi, tương tác giữa các server tin và các nhóm tin là hoàn toàn trong suốt đối với người sử dụng. Với dịch vụ này, người sử dụng có thể nhận được thông tin cần thiết từ nhiều người từ khắp thế giới.
  18. CHƯƠNG 2 KKIIẾẾNN TTRRÚÚCC MMẠẠNNGG VVÀÀ CCÁÁCC PPRROOTTOOCCOOLL TTRRUUYYỀỀNN TTHHÔÔNNGG MMẠẠNNGG 
  19. I.Kiến trúc mạng Có thể chia cấu trúc mạng làm hai phần như sau: + Phần vật lý: gồm tất cả những gì liên quan đến phần cứng như máy tính, dây cáp mạng, card mạng và các thiết bị khác để truyền dữ liệu trên mạng. + Phần lôgic: là cách tổ chức lôgic của các thiết bị phần cứng nói trên để chúng hiểu và làm việc với nhau. 1. kiến trúc vật lý: Các máy tính được kết nối với nhau thông qua cáp mạng và card mạng(NIC: Network Interface Card) được lắp đặt cho từng máy. Nhiệm vụ của NIC làm cho máy tính có thể giao tiếp được với các thiết bị khác trên mạng. Hiện nay có 3 kiểu cấu hình mạng thông dụng là mạng vòng(bus topolopy), mạng sao(star topolopy) và mạng vòng(ring topolopy). Cấu hình hus, star thường được dùng trong mạng Ethernet, mạng vòng được dùng trong mạng Token Ring. + Mạng bus : có ưu điểm là cấu hình đơn giản, khi các máy nối vào hệ thống mạng thì cần cài đặt phần mềm cho mỗi máy tính là có thể sử dụng được, các máy này nhận được máy kia dễ dàng. Nhược điểm là có quá nhiều yếu điểm trên đường truyền, chỉ cần mối kết nối giữa hai máy nào đó bị trục trặc là toàn bộ hệ thống mạng điều chết. Hình 2.1 Mạng cấu hình bus Ethernet 10BASE2 + Mạng sao: hệ thống cáp mạng nối lần lượt từ máy này sang máy khác ở dạng hình sao, người ta sử dụng một thiết bị làm trung tâm kết nối chung cho tất cả các máy gọi là hub(Switch, ). Thiết bị này có nhiệm vụ điều phối tất cả giao tiếp giữa các máy trên mạng. Ưu điểm : - Dễ phát hiện những sự cố về đường dây cáp kết nối. - Nếu có sự cố về đường dây không ảnh hưởng đến toàn bộ hệ thống. - Lưu lượng dữ liệu trên đường dây ít đụng độ nhờ có các thiết bị kết nối chuyên dùng. - Có thể giảm bớt hoặc thêm máy kết nối mạng mà không ảnh hưởng đến hệ thống mạng. Khuyết điểm :
  20. - Chi phí cho cáp kết nối cao. - Các đầu nối tập trung tại một vị trí, quản lý phức tạp. Hình 2.2 Mạng sao Ethernet 10BASE_T + Mạng vòng: được dùng với mạng Token Ring hoặc FDDI cách tổ chức hệ thống thiết bị phần cứng giống như mạng sao nhưng không sử dụng hub hay switch mà thay vào đó bằng thiết bị trung tâm gọi là MAU(Multistation Access Unit). Các hoạt động của MAU cũng tương tự như hub hay switch nhưng nó được sử dụng trong mạng Token Ring. Hình 2.3 Mạng Token Ring 2. Kiến trúc logic mạng: Là tập hợp các tài nguyên như đĩa cứng, máy in, các ứng dụng đang chạy trên mạng hay có thể nói kiến trúc lôgic mạng là thuật ngữ chỉ sự tổ chức mạng. hay nói cách khác sự tổ chức các phần cứng mạng được thực hiện bởi phần mềm mạng sẽ tạo ra cấu trúc lôgic mạng. II.Truyền thông mạng và kiến trúc phân tầng của protocol: 1. Truyền thông mạng: Yếu tố quan trọng của mạng máy tính là tập hợp các máy tính được nối với nhau bởi các đường truyền và theo kiến trúc của một mạng máy tính. Vậy
  21. các máy tính này được truyền thông với nhau ra sao, tập hợp các qui tắc, quy ước, cách truyền thông trên mạng phải tuân theo như thế nào để cho mạng hoạt động tốt. Cách nối các máy tính được gọi là hình trạng(Topolopy) của mạng. Còn tập hợp tất cả những qui tắc, qui ước truyền thông thì được gọi là giao thức(protocol) của mạng. Topolopy và Protocol là hai khái niệm cơ bản nhất của mạng máy tính. - Topolopy có hai kiểu mạng chủ yếu là: + Kiểu điểm-điểm: các đường truyền nối từng cặp nút với nhau và mỗi nút đều có trách nhiệm lưu trữ tạm thời sau đó chuyển dữ liệu đi cho tới đích. + Kiểu truyền bá: Tất cả các nút phân chia chung một đường truyền vật lý. Nghĩa là dữ liệu được gởi đi từ một nút nào đó sẽ có thể được tiếp nhận bởi tất cả các nút còn lại. - Protocol: phục vụ trong việc trao đổi thông tin, dù là cuộc trao đổi đơn giản nhất cũng phải tuân theo một qui tắc nhất định.Tập hợp tất cả những qui tắc, qui ước đó gọi lag giao thức(protocol) của mạng. Hiện nay có rất nhiều protocol mạng khác nhau nhưng thông dụng nhất vẫn là là giao thức TCP/IP. Vấn đề protocol được trình bày chi tiết hơn ở phần tiếp theo. 2. kiến trúc phân tầng và mô hình ISO của protocol: a. kiến trúc phân tầng. - Để có thể chuyển một thông điệp từ máy này sang máy khác(các máy phải dùng trong hệ thống mạng) nó phải trải qua nhiều giai đoạn khác nhau như là: chia nhỏ thông điệp ra thành nhiều gói nhỏ(package), mã hoá các gói này ra thành dạng bit, các bit này được chuyển qua đường truyền vật lý đến máy nhận. Sau đó quá trình nhận sẽ thực hiện ngược lại với bên gởi, nếu quá trình lắp ghép gặp phải lỗi thì phải thông báo để truyền lại, .Các giai đoạn này rất phức tạp đòi hỏi người lập trình phải hiểu rõ tất cả cơ chế hoạt động bên trong của hệ thống. Vì bậy người ta đưa ra ý tưởng phân tầng, mỗi tầng sẽ chịu trách nhiệm cung cấp dịch vụ cho tầng bên trên đồng thời nó cũng sử dụng dịch vụ của tầng bên dưới cung cấp cho nó. Như vậy thì một người làm việc ở tàng nào thì chỉ quan tâm đến tầng có quan hệ trực tiếp với mình. - Để giảm độ phức tạp của việc thiết kết và cài đặt mạng, hầu hết các máy tính hiện có được thiết kế theo quan điểm phân tầng. Mỗi hệ thống thành phần của mạng được xem như là một cấu trúc đa tầng, trong đó mỗi tầng được xây dựng trên tầng trước đó. Số lược mỗi tầng cũng như tên hay các chức năng phụ thuộc vào nhà thiết kế. Chúng ta thấy cách phân tầng trong mạng IBM(SNA), mạng Digital(DECnet), hay bộ quốc phòng mỹ(ARPANET), là giống nhau. Mmặc dù tên và chức năng từng tầng là khác nhau giữa các mạng trên nhưng bản chất vẫn dựa theo mô hình phân tầng ISO. b. Mô hình ISO. - Khi thiết kế protocol các nhà thiết kết tự do chọn lựa cho lựa kiến trúc mạng riêng cho mình, từ đó dẫn tình trạng không tương thích mạng(phương pháp truy cập đường truyền khác nhau, sử dụng họ giao thức khác nhau, .). Sự không tương thích đó làm trở ngại sự tương tác giữa người sử dụng với các mạng khác nhau một khi nhu cầu trao đổi thông tin ngày càng lớn thì sự trở ngại này không thể chấp nhận được. Sự thúc đẩy từ nhu cầu người dùng
  22. đã thúc đẩy các nhà sản xuất và nghiên cứu thông qua các tổ chức chuẩn hoá quốc gia và quốc tế tích cực tìm kiếm một sự hội tụ cho các sản phẩm mạng trên thị trường.Vì lý do đó, tổ chức chuẩn hoá quốc tế (Internationl Organization for Strandarization – viết tắt là ISO) đã xây dựng một mô hình protocol tham chiếu cho việc kết nối các hệ thống mở phục vụ cho các ứng dụng phân tán. Theo mô hình ISO, thông tin muốn gởi và nhận qua mạng phải đi qua 7 tầng. Mỗi tầng có một chức năng khác nhau và cung cấp các interface để tầng trên có thể sử dụng lớp dưới. Mô hình ISO được coi là mô hình chuẩn vì các mô hình khác cũng dựa theo mô hình này để tạo ra một mô hình phù hợp cho riêng mình, mà ngày nay thông dụng nhất là mô hình TCP/IP. Receiver Sending Application Application Application Layer Application Layer Presentation Layer Presentation Layer Session Layer Session Layer Transport Layer Transport Layer Network Layer Network Layer Datalink Layer Datalink Layer Physical Layer Physical Layer Hình2.4 Mô hình ISO gồm 7 tầng. Giải thích + Physical: ở tầng này thông tin được truyền dưới dạng bit thông qua kênh truyền và nhận các bít chuyển tầng Datalink. Tầng này không có cấu trúc qua đường truyền vật lý, truy nhập đường truyền vật lý như các phương tiện cơ, điện, hàm, thủ tục. + Datalink: tầng này có nhiệm vụ chia nhỏ dữ liệu từ tầng Network đưa xuống thành các frame, mỗi frame có dung lượng vài trăm byte đến vài ngàn byte. Các frame được truyền đi bằng cách chuyển xuống cho tầng phisical. Nhiệm vụ thứ hai là tổ chức nhận các frame sao cho đúng thứ tự, cung cấp khả năng truyền không lỗi trên đường truyền vật lý cho các lớp cao hơn. + Network: định hướng gói dữ liệu(package) đi từ máy gởi đến máy nhận. Phải giải quyết vấn đề định tuyến(routing), vấn đề địa
  23. chỉ(addressing), lượng giá chi phí(accouting), và giải quyết đụng độ(collision). + Transport:Chia nhỏ gói dữ liệu được đưa xuống từ tầng trên thành những đơn vị nhỏ hơn truyền qua mạng, với sự đảm bảo là dữ liệu đến nơi một cách chính xác. + Session: điều kiển quá trình giao tiếp giữa hai tuyến trình trên máy. Cung cấp phương tiện quản lý truyền thông giữa các ứng dụng, thiết lập duy trì đồng bộ hoá và huỷ bỏ các phiên truyền thông giữa các ứng dụng. + Presentation: biểu diễn những thông tin được truyền(được hiểu là cú pháp và ngữ nghĩa) nó đồng nhất các thông tin giữa các hệ thống khác nhau. + Application: Cung cấp các phương tiện để người sử dụng có thể truy nhập được vào môi trường ISO, đồng thời cung cấp các dịch vụ thông tin phân tán hay dịch vụ cho người sử dụng. Ứng với mỗi dịch vụ có một protocol khác nhau. - Điều hấp dẫn của mô hình ISO chính là ở chỗ hứa hẹn giải pháp cho vấn đề truyền thông giữa các mạng không giống nhau. Hai hệ thống mạng dù khác nhau đi nữa điều có thể truyền thông với nhau một cách hiệu quả nếu chúng đảm bảo những điều kiện sau. + Chúng cài đặt cùng một tập các chức năng truyền thông. + Các chức năng đó được tổ chức cùng một tập các tầng. Các tầng đồng mức phải cung cấp các chức năng như nhau(phương thức cung cấp không nhất thiết phải giống nhau). + Các tầng đồng mức phải sử dụng chung một protocol. c. Mô hình TCP/IP - Chúng ta đã thấy được nguyên lý của mô hình ISO 7 lớp nhưng mô hình này chỉ là mô hình tham khảo, việc áp dụng mô hình ISO vào thực tế là khó có thể thực hiện được(hiệu suất kém vì dữ liệu khi truyền từ máy này sang máy khác trong mạng thì phải trải qua tất cả các lớp của mô hình ISO ở hai máy). Nó chỉ là tiêu chuẩn cho các nhà phát triển dựa theo đó mà phát triển thành các mô hình khác tối ưu hơn. Hiện nay có rất nhiều mô hình khác nhau trên mạng như SNA của IBM, DNA của DEC, TCP/IP của microsoft, Tuy nhiên mô hình TCP/IP là được sử dụng phổ biến nhất hiện nay. ISO TCP/IP Application Presentation Application Sesstion Transport Transport Network Internet Datalink Physical Host-to-network
  24. - Mô hình TCP/IP gồm 4 tầng, trong đó 2 tầng dưới của mô hình ISO được gộp lại thành 1 tầng gọi là Host-to-network, 2 tầng Sesstion và presentation không có trong mô hình TCP/IP. - Tương tự như mô hình ISO, mô hình TCP/IP dữ liệu từ 1 máy cũng đi từ tầng Application xuống Transport rồi xuống tiếp tầng Internet sau cùng là Host-to-network thông qua đường vật lý đến một máy khác trên mạng: dữ liệu ở đây cũng đi ngược từ dưới lên như mô hình ISO. Chức năng và ý nghĩa từng tầng trong mô hình TCP/IP như sau: + Host-to-network: Đây là tầng giao tiếp mạng kết nối với network sao cho chúng có thể truyền các IP datagram tới các địa chỉ đích. Tầng này gần giống với tầng physical của ISO. + Internet :Thực hiện một hệ thống mạng có khả năng chuyển các gói dữ liệu dựa trên lớp mạng Connetionless(không cầu nối) hay Connection- Oriented(có cầu nối) tuỳ theo từng loại dịch vụ mà người ta dùng một trong hai cách trên. + Transport : được thiết kết cho các phần tử ngang cấp(hay host) có thể đối thoại với nhau thông qua một trong hai protocol sau đây. TCP: là một Connection Oriented Protocol, cho phép chuyển một chuỗi byte từ host này sang host kia mà có thông báo trả về. UDP: là một Connetionless protocol xây dựng cho các ứng dụng không muốn sử dụng cách truyền theo thứ tự của TCP mà muốn tự mình thực hiện điều đó và không có thông báo trả về nghĩa là nó không đảm bảo dữ liệu được truyền đi chính xác hay không. - Một máy có thể liên lạc với một máy khác trong mạng qua địa chỉ IP(IP là danh từ dùng để định vị các host trên mạng). Tuy nhiên với một địa chỉ như vậy không đủ cho một process của máy này liên lạc với một process của máy khác. Vì vậy protocol TCP/UDP đã dùng một số nguyên(16 bit) để đặc tả nên số hiệu port liên lạc. như vậy mỗi fram của tầng Netword bao gồm: Protocol(TCP/UDP). địa chỉ IP của máy gởi. Số hiệu port của máy gởi. địa chỉ IP máy đích. Số hiệu port máy đích. + Application: chứa các dịch vụ như trong các tầng Sesson, Presentation, Application của mô hình ISO như FPT(port=23), DNS(port=53), SPTP(port=25), IMAP(port=149),POP3(port=143), . 3.Giao thức TCP/IP - Đầu tiên ARPANET đã đưa ra giao thức Host-to-Host Protocol, nhưng giao thức này không đáng tin cậy và nó chỉ giới hạn trong một số các máy. Vào cuối năm 1970 các mạng khác cũng bung ra trong thực tế, mạng UUCP gồm một nhóm rồi cũng đã nối được hàng trăm máy rồi hàng máy. Vào cuối năm 1980 mạng NSFNET mạng của National Science Foundation được phát triển để nối 5 trung tâm siêu máy tính của nó, nó là mạng hấp dẫn cho tất cả các nhà nghiên cứu và các viện đại học cũng như các viện nghiên cứu. Năm 1972, bắt đầu thế hệ thứ hai của giao thức mạng, đã làm phát sinh ra một nhóm giao thức được gọi là Transmission Control Protocol/ Internet Protocol viết tắt là TCP/IP. Năm 1983, TCP/IP là bộ giao thức cho ARPANET, TCP/IP
  25. đã trở thành một trong những giao thức mạng được dùng rộng rãi nhất. Sau cùng tất cả các mạng được tài trợ bởi cá nhân hay xã hội -mạng ARPANET, MILNET, UUCP, BITNET, CSNET và NASA Science Internet đã liên kết trong một mạng khu vực NSFNET và ARPANET giải tán và ngày càng có nhiều mạng khác thêm vào - Ngày nay để thực hiện việc truyền thông qua mạng thông qua trình duyệt Web, và ta cũng cần một giao thức để thực hiện công việc này. Mặc dù hiện nay cũng đang có rất nhiều giao thức để truyền thông tin nhưng nhìn chung có hai giao thức thường được các lập trình viên sử dụng đó là: TCP/IP(IP: là giao thức Internet, TCP: giao thức truyền tải) và giao thức UDP(giao thức gói dữ liệu người dùng). Vì chương trình của em sử dụng giao thức TCP/IP nên sau đây em sẽ trình bày chi tiết giao thức này. - Trong môi trường mạng máy tính dữ liệu trao đổi qua lại giữa các máy dựa trên nghi thức(Protocol), giao thức là cách đóng gói, mã hoá dữ liệu truyền trên đường mạng và các qui tắc thiết lập duy trì quá trình trao đổi dữ liệu. Như vậy, mặc dù có hai máy tính được kết nối về mặc vật lý trên cùng một đường truyền nhưng sử dụng hai nghi thức khác nhau cũng không trao đổi dữ liệu được. Hiện nay có nhiều nghi thức(protocol) được sử dụng nhưng chỉ có 3 giao thức phổ biến là: +IPX/SPX : giao thức của hệ thống mạng Novell Netware. +NETBEUI : giao thức chính của hệ thống mạng Microsoft Windows. +TCP/IP: giao thức dùng cho hệ thống mạng Internet/Intranet /Extranet. Tuy nhiên do sự bùng nổ của Internet/Intranet /Extranet các hệ mạng Novell Netware và Microsoft Windows cũng hỗ trợ và sử dụng thêm giao thức TCP/IP. Hình 2.5: Ví dụ một mô hình mạng Theo mô hình trên, các máy tính tuy sử dụng các hệ điều hành khác nhau nhưng lại chạy các phần mềm cùng hỗ trợ nghi thức TCP/IP nên có trao đổi dữ liệu qua lại với nhau dựa trên nghi thức này. Ngoài ra hai máy Server Novell và máy Ms DOS có thể dùng thêm giao thức IPX/SPX, các máy
  26. Windows có thể dùng thêm nghi thức NETBEUI để trao đổi dữ liệu với nhau. Như vậy, trên một máy tính có thể có nhiều cách thức khác nhau (sử dụng nhiều nghi thức khác nhau) để trao đổi dữ liệu với máy tính khác. Tuy nhiên, giao thức TCP/IP là phổ dụng nhất nghi thức chuẩn dùng cho Internet/Intranet/Extranet. A. Các thành phần liên quan tới giao thức TCP/IP 1. Địa chỉ máy (IP Address) - Mỗi nút (node - là một máy trạm, máy chủ hay bất kỳ thiết bị nào nối vào Internet) đều phải có phải có một địa chỉ duy nhất để phân biệt nó với các máy khác, và để tìm đường cho các packet trên mạng, gọi là địa chỉ IP.Địa chỉ IP là một chuỗi gồm có 4 số có giá trị từ 0 tới 255, phân cách giữa hai số là dấu chấm (.). Ví dụ: 10.221.0.2, 130.23.1.17, 192.48.96.10 - Tất cả các máy trong hệ thống mạng(LAN, WAN, Internet) đều có ít nhất 2 địa chỉ: địa chỉ vật lý(Mac Address) và địa chỉ Internet. Ðịa chỉ vật lý còn được gọi là Ethernet address là một dãy bit gồm 48 bit được gán bởi các nhà sản xuất, địa chỉ này được biểu diễn dưới dạng số thập lục phân (hecxa). Ðịa chỉ IP phải là duy nhất trên mạng và có một dạng thống nhất, mỗi địa chỉ IP gồm có 4 byte và có 2 thành phần: địa chỉ đường mạng (Network ID) và địa chỉ host(Host ID).  Địa chỉ mạng: chỉ ra những máy, những thiết bị ở chung một vị trí trên mạng logic được chia theo Router (tất cả các máy trên cùng một phía của router thuộc chung một mạng logic).  Địa chỉ máy: để phân biệt các máy trong một mạng logic. Mỗi máy trong một mạng logic phải có một địa chỉ máy duy nhất. Tuỳ thuộc vào giá trị của số thứ nhất mà địa chỉ IP được chia thành các lớp như A, B, C, D. - Những máy trên mạng dùng Network ID và Host ID để quyết định xem nên nhận và bỏ qua các gói tin nào, và để quyết định phạm vi chuyển tin. Chỉ có các máy cùng Network ID mới nhận được các IP broadcast). Để biết gói tin đến có cùng Network ID với mình hay không, máy sẽ dùng Subnet mask của nó để tách địa chỉ IP của gói tin đến. Subnet mask là giá trị 32 bit, viết cách nhau bằng dấu chấm cho mỗi 8 bit. Subnet mask được gán các bit dành cho Network ID là 1 và các Host ID là 0. Bảng dưới là giá trị mặc định cho các lớp địa chỉ IP Tên lớp Subnet mask ở dạng bit Dạng byte Lớp A 11111111 00000000 00000000 00000000 255.0.0.0 Lớp B 11111111 11111111 00000000 00000000 255.255.0.0 Lớp C 11111111 11111111 11111111 00000000 255.255.255.0 Ví dụ : địa chỉ IP là 102.12.34.98 và subnet mask của nó là 255.255.0.0 thì Network Id của nó là 102.12 và Host ID là 34.98.
  27. Nhìn thì có vẻ như subnet mask là thừa vì nhìn vào Network ID là có thể biết được các máy có cùng thuộc một mạng con hay không. Nhưng subnet mask còn dùng trong việc chia một mạng thành các mạng con (subnet). - Một giải pháp giúp giảm nhẹ việc quản lý các địa chỉ IP, đó là giao thức tự động cấu hình và tự động cấp phát địa chỉ DHCP (Dynamic Host Configuration Protocol). DHCP dựa trên công nghệ Client/Server. Trng mạng có ít nhất một máy DHCP server có một khoảng địa chỉ dành để cấp phát cho các máy client. Các máy DHCP client khi khởi tạo sẽ tự động phát hiện máy DHCP server và yêu cầu máy chủ cấp cho một địa chỉ IP cùng các thông số cấu hình khác (subnet mask, địa chỉ gateway ). Máy server sẽ tự động cấp cho máy client một địa chỉ còn trống trong khoảng địa chỉ của nó. Khi máy client rời khỏi mạng, nó sẽ trả lại địa chỉ IP cho máy server. - Địa chỉ IP là riêng biệt cho mỗi máy và là định danh của mỗi máy trong hệ thống mạng. Do vậy, để truy cập tới một máy bạn phải biết địa chỉ IP của nó. Tuy nhiên, vì địa chỉ IP thể hiện dưới dạng số nên thường khó nhớ, thông qua dịch vụ DNS (Domain Name Service) cho phép đồng nhất một địa chỉ IP với một tên (thể hiện dưới dạng chuỗi) và như vậy để truy cập tới một máy bạn có thể hoặc dùng địa chỉ IP hoặc dùng tên tương ứng với địa chỉ này. 2. Tên máy (Host name) - Tên máy (host name) là sự đồng nhất giữa một tên với một địa chỉ IP. Tên máy đầy đủ bao gồm 2 phần: phần tên máy thuộc một miền và phần tên miền, giữa hai phần này phân cách nhau bởi dấu chấm (.) theo dạng host.[subdomain].domain. Để quản lý các máy đặt tại những vị trí vật lý khác nhau trên hệ thống mạng nhưng thuộc cùng một tổ chức, cùng lãnh vực hoạt động người ta đưa các máy này vào một miền (domain). Trong miền này nếu có những tổ chức nhỏ hơn, lãnh vực hoạt động hẹp hơn thì lại được chia thành các miền con (sub domain), giữa hai tên miền phân cách nhau bởi dấu. Cấu trúc miền và các miền con giống như một cây phân cấp. - Miền lớn nhất thường là cấp quốc gia, mỗi quốc gia có một tên miền gồm hai ký tự. Ví dụ: vn (Việt Nam), us (Mỹ), ca (Canada) Trong miền mỗi quốc gia lại có các miền con như: edu (các tổ chức giáo dục), com (các tổ chức kinh doanh, thương mại) Và cứ phân cấp xuống như thế mỗi miền con lại có nhiều miền con khác trong nó. Ví dụ miền hcmuns.edu.vn có nghĩa là miền con it-hut (đại học Bách Khoa Hà Nội) nằm trong miền con edu thuộc miền vn. Tên máy trong miền thường cũng được đặt tên theo chức năng hoạt động. Ví dụ như www để chỉ máy chạy dịch vụ World Wide Web, ftp để chỉ định tên máy chạy dịch vụ FTP Ví dụ : tên máy đầy đủ như: www.hcmuns.edu.vn, mail.hcmuns.edu.vn tương ứng với 2 máy có địa chỉ IP là: 172.29.2.154 và 172.29.2.155 - Để Kiểm tra sự tồn tại máy trong hệ thống mạng dùng giao thức TCP/IP dùng chương trình tiện ích có tên ping theo cú pháp như sau: ping Ví dụ như kiểm tra máy có địa chỉ 172.29.2.154(tên tương ứng www.hcmuns.edu.vn): ping 172.29.2.154 ping www.hcmuns.edu.vn
  28. Nếu máy này có tồn tại trên hệ thống mạng thì sẽ có thông báo tương tự: Pinging 172.29.2.154 with 32 bytes of data: Reply from 172.29.2.154: bytes=32 time=1ms TTL=127 Reply from 172.29.2.154: bytes=32 time=1ms TTL=127 Reply from 172.29.2.154: bytes=32 time=1ms TTL=127 Reply from 172.29.2.154: bytes=32 time<10ms TTL=127 Nếu máy này không có tồn tại thì sẽ có thông báo tương tự : Pinging 172.29.2.154 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. B.Những TCP/IP protocols và các công cụ - Như ta biết, truyền thông giữa hàng triệu computers trên Internet xảy ra được nhờ có TCP/IP protocol, một cách giao thức trên mạng rất thông dụng trong vòng các computers chạy Unix trước đây. Vì nó rất tiện dụng nên Microsoft đã dùng TCP/IP làm giao thức chính cho mạng Windows2000. TCP/IP là tập hợp của nhiều protocols, mà trong số đó có các Protocols chính sau đây: + TCP (Transmission Control Protocol): Chuyên việc nối các hosts lại và bảo đảm việc giao hàng (messages) vì nó vừa dùng sự xác nhận hàng đến (Acknowledgement ) giống như thư bảo đảm, vừa kiểm xem kiện hàng có bị hư hại không bằng cách dùng CRC (Cyclic Redundant Check), giống như có đóng khằng chỗ mở kiện hàng. + IP (Internet Protocol): Lo về địa chỉ và chuyển hàng đi đúng hướng, đến nơi, đến chốn. + SMTP (Simple Mail Transfer Protocol): Chuyên việc giao Email. + FTP (File Transfer Protocol): Chuyên việc gởi File (upload/download) giữa các hosts. + SNMP (Simple Network Management Protocol): Dùng cho các programs quản lý mạng để user có thể quản lý mạng từ xa. + UDP (User Datagram Protocol): Chuyển giao các bọc nhỏ (packets) của một kiện hàng. Nó nhanh hơn TCP ví không có sự kiểm tra hay sửa lỗi. Ngược lại, nó không bảo đảm việc giao hàng. - Là Network Administrator ta nên làm quen với các công cụ chuẩn để làm việc với TCP/IP như: + File Transfer Protocol (FTP): Ðể thử upload/download files giữa các hosts. + Telnet: Cho ta Terminal Emulation (giả làm một Terminal) để nói chuyện với một Host chạy program Telnet Server. + Packet Internet Groper (Ping): Dùng để thử TCP/IP configurations và connections. + IPCONFIG: Ðể kiểm TCP/IP configuration của local host. + NSLOOKUP: Dùng line command để đọc các records trong DNS (Domain Name System) database.
  29. + TRACERT: Ðể display các khúc đường (route) dùng giữa hai hosts. C. Thành Phần và hình dạng của địa chỉ IP - Địa chỉ IP đang được sử dụng hiện tại (IPv4) có 32 bit chia thành 4 Octet ( mỗi Octet có 8 bit, tương đương 1 byte ) cách đếm đều từ trái qua phải bít 1 cho đến bít 32, các Octet tách biệt nhau bằng dấu chấm (.), bao gồm có 3 thành phần chính. Bit 1 32 + Bit nhận dạng lớp ( Class bit ) để phân biệt địa chỉ ở lớp nào. + Địa chỉ của mạng ( Net ID ) +Địa chỉ của máy chủ ( Host ID ). - Địa chỉ Internet biểu hiện ở dạng bit nhị phân: x y x y x y x y. x y x y x y x y. x y x y x y x y. x y x y x y x y (x, y = 0 hoặc 1). Ví dụ: 0 0 1 0 1 1 0 0. 0 1 1 1 1 0 1 1. 0 1 1 0 1 1 1 0. 1 1 1 0 0 0 0 0 bit nhận dạng Octet 1 Octet 2 Octet 3 Octet 4 - Địa chỉ Internet biểu hiện ở dạng thập phân: xxx.xxx.xxx.xxx x là số thập phân từ 0 đến 9 Ví dụ: 146. 123. 110. 224 - Dạng viết đầy đủ của địa chỉ IP là 3 con số trong từng Octet. Ví dụ: địa chỉ IP thường thấy trên thực tế có thể là 53.143.10.2 nhưng dạng đầy đủ là 053.143.010.002.  Các lớp địa chỉ IP - Địa chỉ IP chia ra 5 lớp A,B,C, D, E. Hiện tại đã dùng hết lớp A,B và gần hết lớp C, còn lớp D và E Tổ chức internet đang để dành cho mục đích khác không phân, nên chúng ta chỉ nghiên cứu 3 lớp đầu.
  30. Qua cấu trúc các lớp địa chỉ IP chúng ta có nhận xét sau:  Bit nhận dạng là những bit đầu tiên - của lớp A là 0, của lớp B là 10, của lớp C là 110, lớp D có 4 bit đầu tiên để nhận dạng là 1110, còn lớp E có 5 bít đầu tiên để nhận dạng là 11110.  Địa chỉ lớp A: Địa chỉ mạng ít và địa chỉ máy chủ trên từng mạng nhiều cho phép định danh tới 126 mạng(không phân 127) và mỗi mạng có tới 16,777,214 host. Nói cách khác địa chỉ thực thế sẽ từ 001.000.000.001 đến 126.255.255.254, lớp này dùng cho các trạm có số trạm cực lớn.  Địa chỉ lớp B: Địa chỉ mạng vừa phải và địa chỉ máy chủ trên từng mạng vừa phải. Cho phép định danh tới 16,328 mạng và mỗi mạng có đến 65,534 máy chủ, địa chỉ phân trong thực tế se từ 128.001.000.0001 đến 191.254.255.254.  Địa chỉ lớp C: lớp này dùng cho mạng có ít trạm, Địa chỉ lớp C có thể phân cho 2 097 150 mạng và mỗi một mạng có 254 máy chủ. Nói cách khác sẽ từ 192. 000. 001. 001 đến 223. 255. 254.254.  Địa chỉ lớp D: dùng để gởi IP datagram tới một nhóm các host trên mạng, chưa được sử dụng nhiều.  Địa chỉ lớp E: dùng để dự phòng trong tương lai.
  31. D.Subnet Masks Như đã nêu trên địa chỉ trên Internet thực sự là một tài nguyên, một mạng khi gia nhập Internet được Trung tâm thông tin mạng Internet ( NIC) phân cho một số địa chỉ vừa đủ dùng với yêu cầu lúc đó, sau này nếu mạng phát triển thêm lại phải xin NIC thêm, đó là điều không thuận tiện cho các nhà khai thác mạng. Hơn nữa các lớp địa chỉ của Internet không phải hoàn toàn phù hợp với yêu cầu thực tế, địa chỉ lớp B chẳng hạn, mỗi một địa chỉ mạng có thể cấp cho 65534 máy chủ, Thực tế có mạng nhỏ chỉ có vài chục máy chủ thì sẽ lãng phí rất nhiều địa chỉ còn lại mà không ai dùng được. Để khắc phục vấn đề này và tận dụng tối đa địa chỉ được NIC phân, bắt đầu từ năm 1985 người ta nghĩ đến Địa chỉ mạng con. Như vậy phân địa chỉ mạng con là mở rộng địa chỉ cho nhiều mạng trên cơ sở một địa chỉ mạng mà NIC phân cho, phù hợp với số lượng thực tế máy chủ có trên từng mạng và Subnet Masks sẽ làm công việc này. Khi ta chia một Network ra thành nhiều Network nhỏ hơn, các Network nhỏ nầy được gọI là Subnet. Theo quy ước, các địa chỉ IP được chia ra làm 5 Class (lớp) nhưng chỉ có 3 lớp được sử dụng như sau: Address Subnet mask trong dạng nhị phân Subnet mask Class Class A 11111111 00000000 00000000 00000000 255.0.0.0 Class B 11111111 11111111 00000000 00000000 255.255.0.0 Class C 11111111 11111111 11111111 00000000 255.255.255.0 Subnet Mask của Class A bằng 255.0.0.0 có nghĩa rằng ta dùng 8 bits, tính từ trái qua phải (các bits được set thành 1), của địa chỉ IP để phân biệt các NetworkID của Class A. Trong khi đó, các bits còn sót lại (trong trường hợp Class A là 24 bits đuợc reset thành 0) được dùng để biểu diễn computers, gọi là HostID. Subnet Mask là kết hợp của Default Mask với giá trị thập phân cao nhất của các bit lấy từ các Octet của địa chỉ máy chủ sang phần địa chỉ mạng để tạo địa chỉ mạng con. Subnet Mask bao giờ cũng đi kèm với địa chỉ mạng tiêu chuẩn để cho người đọc biết địa chỉ mạng tiêu chuẩn này dùng cả cho 254 máy chủ hay chia ra thành các mạng con. Mặt khác nó còn giúp Router trong việc định tuyến cuộc gọi.  Nguyên tắc chung:  Lấy bớt một số bit của phần địa chỉ máy chủ để tạo địa chỉ mạng con.  Lấy đi bao nhiêu bit phụ thuộc vào số mạng con cần thiết (Subnet mask) mà nhà khai thác mạng quyết định sẽ tạo ra.  Vì địa chỉ lớp A và B đều đã hết, hơn nữa hiện tại mạng Internet của Tổng công ty do VDC quản lý đang được phân 8 địa chỉ mạng lớp C nên chúng ta sẽ nghiên cứu kỹ phân chia địa chỉ mạng con ở lớp C.
  32. Ví dụ : Địa chỉ mạng con của địa chỉ lớp C như sau Địa chỉ lớp C có 3 octet cho địa chỉ mạng và 1 octet cuối cho địa chỉ máy chủ vì vậy chỉ có 8 bit lý thuyết để tạo mạng con, thực tế nếu dùng 1 bit để mở mạng con và 7 bit cho địa chỉ máy chủ thì vẫn chỉ là một mạng và ngược lại 7 bit để cho mạng và 1 bit cho địa chỉ máy chủ thì một mạng chỉ được một máy, như vậy không logic, ít nhất phải dùng 2 bit để mở rộng địa chỉ và 2 bit cho địa chỉ máy chủ trên từng mạng. Do vậy trên thực tế chỉ dùng như bảng sau. Default Mask của lớp C : 255.255.255.0 Địa chỉ máy chủ 255.255.255.1 1 0 0 0 0 0 0 ; 192 ( 2 bit đ/ chỉ mạng con 6 bit đ/chỉ máy chủ) 255.255.255.1 1 1 0 0 0 0 0 ; 224 ( 3 bit đ/chỉ mạng con 5 bit đ/chỉ máy chủ) 255.255.255.1 1 1 1 0 0 0 0 ; 240 ( 4 bit đ/chỉ mạng con 4 bit đ/chỉ máy chủ) 255.255.255.1 1 1 1 1 0 0 0 ; 248 ( 5 bit đ/chỉ mạng con 3 bit đ/chỉ máy chủ) 255.255.255.1 1 1 1 1 1 0 0 ; 252 ( 6 bit đ/chỉ mạng con 2 bit đ/chỉ máy chủ) Default Mask Địa chỉ mạng con Trường Subnetmask Số Lượng mạng con Số máy chủ trên từng Hợp mạng 1 255.255.255.192 2 62 2 255.255.255.224 6 30 3 255.255.255.240 14 14 4 255.255.255.248 30 6 5 255.255.255.252 62 2 Như vậy một địa chỉ mạng ở lớp C chỉ có 5 trường hợp lựa chọn trên (Hay 5 Subnet Mask khác nhau), tuỳ từng trường hợp cụ thể để quyết định số mạng con Tương tự cách phân chia mạng con của lớp A, B cũng như cách phân chia của lớp C.
  33. CHƯƠNG 33 CCÁÁCC GGIIAAOO TTHHỨỨCC TTRRUUYYỀỀNN NNHHẬẬNN MMAAIILL 
  34. I Các khái niệm cơ bản Các hệ thống thư điện tử thường bao gồm hai hệ thống con: các tác nhân người sử dụng (the user agents - gọi tắt là UA), nó cho phép chúng ta đọc và gửi thư, và các tác nhân truyền thông điệp (the message transfer agents - gọi tắt là MTA), nó làm nhiệm vụ chuyển các thông điệp từ nguồn đến đích. Các UAs là các chương trình cục bộ hỗ trợ dựa trên điều khiển bằng lệnh, trình đơn menu hay dùng phương pháp đồ hoạ để tương tác với hệ thống thư điện tử. Các MTAs là các trình tiện ích hoạt động ở chế độ nền (background) thực hiện các nhiệm vụ cần thiết như tiếp nhận thư điện tử và chuyển thư qua các hệ thống. Đặc biệt, các hệ thống thư điện tử hỗ trợ năm chức năng cơ bản, được mô tả dưới đây: - Composition: Xử lý việc tạo các thông điệp và trả lời. Cho phép bất cứ trình soạn thảo nào có thể được sử dụng cho phần thân của thông điệp, các hệ thống có thể tự nó đảm trách việc đánh địa chỉ và chỉ số các trường tiêu đề (header fields) được kèm theo cùng với mỗi thông điệp. Ví dụ như, khi trả lời một thông điệp, hệ thống thư điện tử có thể tách địa chỉ của người gửi từ các thư được gửi đến và tự động chèn nó vào các trường thích hợp trong phần hồi âm (reply). - Transfer: Làm nhiệm vụ chuyển các thông điệp từ người gửi đến nơi người nhận. Trong phần này, việc chuyển các thông điệp yêu cầu phải thiết lập một kết nối đến đích (người nhận) hay một số thao tác của thiết bị như xuất thông điệp và kết thúc việc kết nối. Hệ thống thư điện tử làm việc này một cách tự động mà không cần có một sự can thiệp nào của người sử dụng. - Reporting: Buộc phải thực hiện để báo cho người gửi những gì xảy ra đối với thông điệp vừa gửi là ở tình huống đã gửi đến đích chưa? hoặc việc gửi đã bị huỷ bỏ? hoặc thư đã bị lạc?. - Displaying: Những thông điệp gửi đến được yêu cầu làm sao để mọi người có thể đọc được thư của họ. Đôi khi người ta yêu cầu quá trình chuyển đổi hay một trình hiển thị đặc biệt để hỗ trợ, ví dụ như, nếu thông điệp có dạng một tệp PostScript hay tiếng nói được số hoá kèm theo trong thông điệp gửi đến. - Disposition: Là bước cuối cùng liên quan đến những gì người nhận thực hiện đối với thông điệp sau khi đã nhận nó. Những khả năng có thể là ném nó đi trước khi đọc, ném nó đi sau khi đọc, lưu nó, v v. Nó cũng sẽ có thể thu nhận để đọc lại với các thông điệp đã được lưu lại, chuyển tiếp chúng hoặc xử lý chúng bằng những phương pháp khác nhau khi được yêu cầu của người sử dụng. Thêm vào đó các dịch vụ này, hầu hết các hệ thống thư điện tử cung cấp nhiều đặc tính nâng cao khác nhau. Một số đặc tính tiêu biểu như, khi người ta muốn chuyển thư hay khi họ nghĩ xa hơn về các chi tiết về thời gian, có lẽ họ muốn thư của họ được chuyển tiếp, chính vì thế mà hệ thống thực hiện điều này một cách tự động. Hầu hết các hệ thống cho phép người sử dụng tạo các hộp thư (mailboxes) để lưu trữ các thư chuyển đến (incoming email). Các lệnh được người ta yêu cầu tạo và huỷ bỏ các hộp thư, kiểm tra các nội dung hộp thư, chèn và xoá các thông điệp khỏi hộp thư, v v.
  35. Những người giám đốc công ty thường cần gửi một thông điệp đến mỗi người trong số những người cấp dưới, những khách hàng, hay đến các nhà cung cấp. Thì điều này đưa ra một ý tưởng về danh sách thư (mailing list), nó là một danh sách các địa chỉ thư điện tử. Khi một thông điệp được gửi đến mailing list, các bản sao giống hệt được phát đến mọi người có địa chỉ trên danh sách. Một ý tưởng quan trọng khác là thư điện tử được đăng ký, để cho phép người gửi (sender or originator) biết thư của họ đã đến. Việc thông báo tự động của các thư không được phát đi một cách luân phiên để người ta có thể biết. Trong bất kỳ trường hợp nào, người gửi nên có một số điều khiển thông qua thông báo những gì xảy ra. 1. Cấu trúc của một bức thư: 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êm 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, giao thức SMTP sẽ quy định thông tin của phong bì, các hệ thống Email cần những thông tin này để 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: : . - 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ững nhận bản copy của mail.  Bcc: chỉ ra những người nhận bản copy của bức mail, nhưng từng người không biết những người nào sẽ nhận bức thư này  Return-path: chứa các thông tin để người nhận có thể trả lời lại (thường nó chính 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, ngoà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
  36. 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. 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ý tự kết 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 phần body của bức Mail cũng phải là các ký tự ASCII chuẩn. 2. Tác nhân người sử dụng (The User Agent) Các hệ thống thư điện tử có hai phần cơ bản, như chúng ta đã thấy gồm: phần UA và phần MTA. Trong phần này chúng ta sẽ xét đến phần UA. Một UA thường là một chương trình (đôi khi được gọi là bộ phận đọc thư) nó nhận một trong những lệnh khác nhau như là cho mục đích soạn thư, nhận thư, và hồi đáp các thông điệp, cũng như việc thao tác trên các hộp thư (mailboxes). Một số UA (User Agent) có giao diện trình đơn (menu) hay biểu tượng (icon) khá hấp dẫn mà nó yêu cầu sử dụng chuột hoặc chấp nhận các lệnh 1 ký tự từ bàn phím có cùng chức năng với menu và các icon. 3. Gửi thư (Sending Email) Để gửi đi một thông điệp, người sử dụng phải cung cấp thông điệp, địa chỉ đích và một số tham số khác nếu có (ví dụ như là mức ưu tiên hay bảo mật). Người sử dụng có thể tạo thông điệp với một trình soạn thảo văn bản khác nhau, một chương trình xử lý từ hay với bộ soạn thảo được xây dựng trên UA. Địa chỉ đích phải có một định dạng mà làm sao cho UA có thể hiểu được. Nhiều UA tiếp nhận các địa chỉ DNS (Domain Name System) có dạng mailbox@location. 4. Đọc thư (Reading Email) Khi UA được khởi động nó kiểm tra xem trong hộp thư của người sử dụng có thư gửi đến không trước khi hiển thị các thứ khác lên màn hình. Khi đó có lẽ nó sẽ thông báo một số các thông điệp trong hộp thư hay hiển thị một dòng vắn tắt của mỗi thông điệp và chờ nhận lệnh để xử lý. Một ví dụ ở hình 1.8 cho thấy một viễn cảnh sau khi UA khởi động hiển thị những yêu cầu vắn tắt của các thông điệp. Trong ví dụ này hộp thư (mailbox) gồm có tám thông điệp. Mỗi dòng hiển thị chứa một số trường được trích ra từ phong thư hay phần đầu (header) của từng thông điệp được định vị trong hộp thư. Trong một hệ thống thư điện tử đơn giản, sự lựa chọn của các trường hiển thị được người ta xây dựng thành một chương trình. Trong các hệ thống phức tạp hơn, người sử dụng có thể xác định cho các trường nào được hiển thị bằng cách cung cấp một hiện trạng người sử dụng (User Profile), hay một tệp mô tả định dạng hiển thị. Trong ví dụ này, trường đầu tiên là số thông điệp có trong hộp thư. Trường thứ hai, là các cờ có thể chứa một kí tự K, có nghĩa là thông điệp cũ đã được đọc kỳ trước rồi và được lưu lại trong hộp thư; kí tự A có nghĩa là
  37. thư này đã được hồi âm rồi; ký tự F (có thể có), có nghĩa là thư này được chuyển tiếp đến người khác. Các cờ khác nữa cũng có thể được đưa vào ngoài những cờ này. # Flags Bytes Sender Subject 1 K 1030 Asw Changes to MINIX 2 KA 6348 Radia Comments on material you sent me 3 KF 4519 Amy N. Wong Request for information 4 1236 Bal Deadline for grant proposal 5 103610 Kaashoek Text of DCS paper 6 1223 Emily E. Pointer to WWW page 7 3110 Saniya Referee reports for the page 8 1204 Dmr Re: My student‟s visit Hình 3.1 Hiển thị các nội dung của hộp thư. Trường thứ ba cho biết chiều dài của thông điệp và trường thứ tư cho biết ai là người gửi thông điệp. Vì trường này được trích ra từ các thông điệp rất đơn giản nên trường này có thể chứa các tên, họ tên đầy đủ, các tên viết tắt, các tên đăng nhập, hay bất cứ thứ gì mà người gửi có thể đặt vào trong trường này. Cuối cùng là trường chủ đề thư (Subject) cho biết một câu vắn tắt về những gì trong nội dung thông điệp. Những người nào quên điền vào trường này thì thường được cho là những câu trả lời cho thư của họ là không chú ý đến mức ưu tiên cao nhất. Sau khi các phần đầu đã được hiển thị, người sử dụng có thể thực hiện bất cứ lệnh nào có thể. Một chọn lựa tiêu biểu được liệt kê ở bảng bên dưới (hình 1.9) là một ví dụ khi một người sử dụng bằng hệ thống Mmdf của hệ điều hành UNIX. Có một số lệnh yêu cầu có tham số. Ký hiệu # có nghĩa là chỉ số của một thông điệp (hay có thể có nhiều thông điệp) được chấp nhận. Tương tự, mẫu tự a có thể được sử dụng có nghĩa cho tất cả các thông điệp. 5. Định dạng thông điệp (Message Formats) Chúng ta bây giờ hãy quay đến từ giao diện người sử dụng đến định dạng của các thông điệp thư điện tử. Trước tiên chúng ta xét thư điện tử dựa trên bản mã ASCII sử dụng chuẩn RFC 822 (Request for Comments). Sau đó xét đến các mở rộng đa phương tiện cho chuẩn RFC 822. II.Chuẩn RFC 822 - Các thông điệp bao gồm một phong bì gốc (được mô tả trong chuẩn RFC 821), một số các trường cho phần đầu (header), một dòng để trống và sau đó là phần thân (body). Mỗi trường header bao gồm các dòng văn bản ASCII chứa tên trường, dấu hai chấm, và cho hầu hết các trường đều có một giá trị. RFC 822 là một chuẩn cũ và giữa các trường header của phong bì (envelope) không phân biệt rõ ràng như một chuẩn mới khác. Khi sử dụng, thông thường
  38. UA xây dựng một thông điệp và đưa nó qua bộ phận tác nhân truyền thông điệp (message transfer agents - MTA), ở đây nó dùng một số các trường header để xây dựng một envelope thực sự, thông điệp được thay đổi bởi cái cũ đi một chút cùng với envelope. Comman Parameter Description d H # Display header(s) on the screen C Display current header only T # Type message(s) on the screen S Address Send a message F # Forward message(s) A # Answer message(s) D # Delete message(s) U # Undelete previously deleted message(s) M # Move message(s) to another mailbox K # Keep message(s) after exiting R Mailbox Read a new mailbox N Go to the next message and display it B Backup to the previous message and display it G # Go to a specific message but do not display it E Exit the mail system and update the mailbox Hình 3.2: Các lệnh điều khiển thư đặc biệt - Các trường header chủ yếu liên quan đến việc chuyển giao thông điệp được liệt kê dưới bảng sau. Trường To: trường này cho biết địa chỉ DNS của người nhận đầu tiên. Trường hợp nhiều người nhận cũng có thể cho phép. Trường Cc: cho biết địa chỉ của những người nhận kế tiếp (còn gọi là địa chỉ đồng gửi). Trong các thuật ngữ của việc phát thư, không có sự phân biệt giữa những người nhận thứ nhất và người nhận thứ hai. Thuật ngữ Cc (Carbon copy) là một mẫu đã được xác định, vì máy tính không sử dụng các trang giấy bản sao. Trường Bcc: (Blind carbon copy) giống như trường Cc: chỉ trừ là dòng này được xoá khỏi tất cả các bản sao được gửi đến những người nhận đầu tiên và người nhận thứ hai. Đặc tính này cho phép người ta gửi các bản sao đến những người trong nhóm thứ ba mà trong đó không có người thứ nhất và người thứ hai biết.
  39. Header Meaning To: Email address(es) of primary recipient(s) Cc: Email address(es) of secondary recipient(s) Bcc: Email address(es) for blind carbon copies From: Person or people who created the message Sender: Email address of the actual sender Received: Line added by each transfer agent along the route Return-Path: Can be used to identify a path back to the sender Hình 3.3 Các trường header RFC 822 liên quan trong việc truyền thông điệp - Hai trường kế tiếp, From và Sender cho biết để phân biệt người viết và người gửi thông điệp. Hai trường này hoàn toàn không giống nhau. Ví dụ một nhà quản trị doanh nghiệp có thể viết một thông điệp nhưng cô thư ký là người thật sự truyền nó đi. Trong trường hợp này, người quản trị phải được liệt kê vào trong trường From: và cô thư ký trong trường Sender:. Header Meaning Date: The date and time the message was sent Reply-To: Email address to which replies should be sent Message-Id: Unique number for referencing this message latter In-Reply-To: Message-Id of the message to which this is a reply References: Other relevant Message-Ids Keywords: User chosen keywords Subject: Short summary of the message for the one-line display Hình 3.4 : Một số trường được sử dụng trong header thông điệp RFC 822. - Trường From: yêu cầu phải có còn trường Sender: có thể được bỏ qua nếu việc viết và gửi cùng một người. Các trường này cần thiết khi trong trường hợp thông điệp không được phát đi và phải được trả lại cho người gửi. Dòng chứa trường Received được đưa vào bởi các MTAs dọc theo đường truyền. Dòng này chứa định danh của agent, ngày tháng và thời gian thông điệp được nhận, và các thông tin khác có thể được sử dụng cho việc tìm kiếm các lỗi trong hệ thống định tuyến. - Trường Return-Path: được đưa vào bởi MTAs cuối cùng và được dùng cho việc gửi trở lại người gửi. Theo lý thuyết, thông tin này có thể được tập hợp lại từ các header Received: (loại trừ tên của hộp thư người gửi), nhưng nó ít khi được điền đầy đủ như thế và chỉ đặc biệt chứa địa chỉ của người gửi.  MIME (Multipurpose Internet Mail Extension) Một giao thức Internet mới mẻ được phát triển để cho phép trao đổi các thông điệp thư điện tử có nội dung phong phú thông qua mạng không đồng nhất (heterogeneous network), máy móc, và các môi trường thư điện tử. Trong thực tế, MIME cũng đã được sử dụng và mở rộng bởi các ứng dụng không phải thư điện tử. Hiện nay, trên mạng diện rộng Internet, đối với RFC
  40. 822 chỉ làm những công việc định nghĩa các header nhưng còn nội dung bên trong thì vẫn còn lỗi thời, chính vì thế mà vấn đề này không còn thích hợp nữa. Các vấn đề bao gồm việc gửi và nhận thư như sau:  Những thông điệp sử dụng các ngôn ngữ có dấu. ví dụ: Tiếng Pháp và tiếng Đức.  Những thông điệp sử dụng các ngôn ngữ không phải chữ cái Latin. ví dụ: Tiếng Do thái, tiếng Nga. . .  Những thông điệp sử dụng các ngôn ngữ không có trong các bảng chữ cái. ví dụ: Tiếng Trung Quốc, tiếng Nhật. . .  Những thông điệp sử không chứa văn bản. ví dụ: Có âm thanh và hình ảnh. - Một giải pháp đã được đưa ra trong RFC 1341 và được cập nhật mới nhất trong RFC 1521. Giải pháp này được gọi là MIME, hiện nay được sử dụng rộng rãi. Khái niệm cơ bản của MIME là tiếp tục sử dụng định dạng RFC 822, nhưng thêm cấu trúc vào phần thân của thông điệp và định nghĩa các nguyên tắc mã hóa các thông điệp không phải các bảng mã ASCII. Để khỏi bị lệch hướng của RFC 822, các thông điệp MIME có thể được gửi đi được sử dụng các giao thức và chương trình thư hiện có. Tất cả các chương trình này phải được thay đổi thành các chương trình gửi và nhận sao cho người dùng có thể dùng được. MIME định nghĩa năm header thông điệp mới được trình bày trong hình 1.12. Các header này trước tiên báo cho UA nhận thông điệp mà nó đang dùng bằng thông điệp MIME và phiên bản của MIME đang dùng. Bất cứ thông điệp nào không chứa header MIME-Version: được giả định là một thông điệp hình thức được mã hóa bằng tiếng Anh và nó được xử lý như thế. Header Meaning MIME-Version: Indentifies the MIME version Content-Description: Human-readable string telling what is in the message Content-Id: Unique identifier Content-Transfer- How the body is wrapped for transmission Encoding: Content-Type: Nature of the message Hình 3.6 Các header RFC 822 được MIME thêm vào. - Bảy kiểu chính mô tả MIME được định nghĩa trong RFC 1521, mỗi kiểu của nó lại có một hay nhiều kiểu phụ. Kiểu chính và kiểu phụ (xem hình 3.6) được phân biệt bởi một dấu vạch chéo, như có dạng sau: Content-Type: video/mpeg
  41. Type Subtype Description Plain Unformatted text Text Richtext Text including simple formatting commands Gif Still picture in GIF format Image Jpeg Still picture in JPEG format Audio Basic Audible sound Video Mpeg Movie in MPEG format Applicatio Octel-stream An uninterpreted byte sequence n Postscript A printable document in Postscript Rfc 822 A MIME RFC 822 message Partial Message has been split for transmission Message External-body Message itself must be fetched over the net Mixed Independent parts in the specified order Alternative Same message in different formats Multipart Parallel Parts must be viewed simultaneously Digest Each part is a complete RFC 822 message Hình 3.7 Các kiểu chính và kiểu phụ được định nghĩa trong RFC 1521  Truyền thông điệp (Message Transfer) Hệ thống truyền thông điệp có liên quan tới việc chuyển tiếp (relaying) các thông điệp từ người gửi đến người nhận. Phương pháp đơn giản nhất để thực hiện điều này là thiết lập một kết nối truyền thông từ máy nguồn đến máy đích lúc đó mới truyền các thông điệp đi. Sau khi xem xét nó thực hiện như thế nào, chúng ta sẽ xét một số tình huấn mà ở đó nó không thực hiện và chúng có thể thực hiện về những gì. III.GIAO THỨC SMTP(RFC821) - Mục đích của giao thức SMTP là truyền mail một cách tin cậy và hiệu quả. Giao thức SMTP không phụ thuộc vào bất kỳ hệ thống đặc biệt nào và nó chỉ yêu cầu trật tự của dữ liệu truyền trên kênh truyền đảm bảo tính tin cậy. - Giao thức SMTP được thiết kế dựa vào mô hình giao tiếp sau: khi có yêu cầu từ user về dịch vụ mail, sender-SMTP thiết lập một kênh truyền hai chiều tới reciever-SMTP. Reciever- SMTP có thể là đích cuối cùng hoặc chỉ là đích trung gian nhận mail. Các lệnh trong giao thức SMTP được sender-SMTP gởi tới reciever-SMTP và reciever-SMTP gởi đáp ứng trở lại cho sender-SMTP.
  42. User SMTP Commands / Replies Sender Receiver and Mail SMTP SMTP File File System System Sender - SMTP Receiver - SMTP Hình 3.8 Mô hình tổng quát sử dụng giao thức SMTP 1. Ý nghĩa các lệnh của một phiên giao dịch SMTP Server: - 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 . Bản thân mã lệnh là những ký tự chữ (alphabetic) kết thúc bởi nếu có những tham số theo sau và nếu không có thì . Cú pháp của những mailbox phải tuân theo những qui ước của receiver. - Một phiên giao dịch mail chứa đựng một vài đối tượng dữ liệu, được truyền như là 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. Những đối số hay những đối tượng dữ liệu này được truyền đi và 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. Mô hình hiện thực cho cách làm này là những buffer riêng biệt được cung cấp để lưu trữ kiểu của đối tượng dữ liệu, đó là các buffer reverse-path, forward-path, và mail data buffer. Những lệnh xác định tạo ra thông tin được gắn vào một buffer xác dịnh, hoặc xoá đi một hay một số buffer nào đó.  HELLO (HELO) Lệnh này được dùng để xác định ra ai là người gởi mail. Vùng đối số chứa host name của bên gởi. Bên nhận định danh cho nó đối với sender thông qua việc bắt tay trả lời kết nối. Với lệnh này và sự trả lời OK để xác định rằng cả sender và reciever đang ở trạng thái khởi đầu, tất cả các bảng trạng thái và buffer đã được xoá sạch.  MAIL Lệnh này được dùng để khởi tạo quá trình trao đổi mail mà ở đó mail data được phân phát tới một hay nhiều mailbox. Vùng đối số của lệnh có chứa reverse-path. Reverse-pat bao gồm một danh sách tuỳ ý các host và mailbx của sender. Khi danh sách của host được chỉ ra, nó là lộ trình nguồn trở về ( reverse source route) và chỉ ra các host mà mail sẽ được truyền tiếp vận qua các host trong danh sách đó. Danh sách này được sử dụng như là một lộ trình nguồn để trả lời thông báo không phân phát được cho sender. Mỗi khi truyền tiếp vận host sẽ thêm vào phần định danh của nó vào đầu danh sách, nó phải sử dụng tên của nó khi đã được biết trong IPCE nơi mà nó đang truyền tiếp vận mail hơn là IPCE mà mail đã tới( nếu chúng khác nhau).
  43. Lệnh này sẽ xoá các buffer sau: reverse-path, forward-path, và mail data buffer, và nó thêm thông tin của reverse-path từ lệnh này vào reverse- path buffer.  RECIPIENT (RCPT) Lệnh này được sử dụng để định ra một người nhận mail, nhiều người nhận (cùng một nội dung mail) sẽ được xác định bằng cách gởi nhiều lệnh này. Forward - path bao gồm một danh sách tuỳ ý các host và một hộp thư đích cần thiết. Khi danh sách này được chỉ ra, đó là lộ trình nguồn và cho biết mail sẽ được truyền tiếp vận tới host kế tiếp nằm trong danh sách. Nếu reciever-SMTP không được hiện thực chức năng truyền tiếp vận thì thông báo trả về có thể là : không biết local user (550). Khi mail đã được truyền tiếp vận, host làm công việc này phải bỏ phần định danh nó từ chỗ bắt đầu forward-path và đặt nó vào chỗ bắt đầu của reverse-path. Khi mail đến được đích cuối cùng rồi, reciever-SMTP bỏ nó vào trong mailbox với sự đồng ý của host mail đó. Lệnh này sẽ chèn đối số là forward-path vào forward-path buffer.  DATA Reciever sẽ xử lý những dòng theo sau lệnh khi mail data đến từ sender. Lệnh này tạo ra mail data để đặt vào mail data buffer. Mail data có thể chứa bất kỳ ký tự nào trong bộ mã ASCII. Mail data được kết thúc bởi một dòng mà nó chỉ chứa một dấu chấm “ .”. Sự kết thúc mail data để yêu cầu receiver phải xử lý việc lưu trữ thông tin trong phiên giao dịch mail ngay. Quá trình xử lý này sử dụng thông tin nằm trong reverse-path buffer, trong forward-path buffer, và trong mail data buffer, khi hoàn tất lệnh này những buffer này sẽ bị xoá. Nếu quá trình xử lý thành công, reciever phải gởi trả lời OK. Nếu bị lỗi, reciever phải gởi thông báo lỗi. Khi reciever chấp nhận một message cho sự truyền tiếp vậnän hoặc phân phát đến đích cuối cùng, nó thêm vào chỗ khởi đầu của mail data một dòng đánh dấu thời gian. Dòng đánh dấu thời gian chỉ ra định danh của host mà nó nhận message, và ngày tháng và thời gian mà mailđược nhận. Những message được truyền tiếp vận sẽ có nhiều dòng đánh dấu thời gian. Khi reciever tạo ra “final delivery” của một message, nó thêm vào đầu của mail data một dòng đường dẫn quay về. Đường dẫn quay về duy trì thông tin trong từ lệnh MAIL. Ở đây, “final delivere” có nghĩa là message thoát khỏi môi trường SMTP. Thông thường điều này có nghĩa là nó đã được phân phát tới user đích, nhưng trong một vài trường hợp nó có thể được xử lý tiếp và được truyền đi bằng một hệ thống mail khác. Có thể đối với mailbox, đường dẫn quay về có thể khác với mailbox thực sự của người gởi, ví dụ như có thông báo lỗi đặc biệt được truyền đi để điều khiển mailbox.  SEND Lệnh này được dùng để khởi tạo sự truyền mail mà ở đó maildata sẽ được truyền đi tới một hay nhiều terminal. Vùng đối số chứa phần reverse- path. lệnh thực thi thành công khi message được phân phát tới terminal. Reverse-path bao gồm một danh sách tuỳ ý các host và mailbox của sender. Khi danh sách của host được chỉ ra, nó là lộ trình nguồn quay về và
  44. chỉ ra rằng mail đã được truyền tiếp vận thông qua mỗi host trên danh sách. Danh sách này được dùng như là lộ trình nguồn để trả về thông báo non- delivery cho sender. Mỗi khi truyền tiếp vận, host thêm phần định danh của chính nó vào chỗ bắt đầu của danh sách, nó phải sử dụng tên của nó khi đã biết trong IPCE mà ở đó mail được truyền tiếp vận hơn là mail được truyền tới ( nếu chúng có sự khác nhau). Lệnh nay sẽ xoá các buffer sau : reverse-path, forward-path, và mail data buffer, đồng thời nó thêm reverse-path ở lệnh này vào reverse-path buffer.  SEND OR MAIL (SOML) Lệnh này được sử dụng để khởi tạo sự truyền mail mà ở đó mail data một hay nhiều terminal hoặc các mailbox. Đối với người nhận, mail data được phân phát tới terminal của người nhận nếu người nhận có tích cực, trái lại, là mailbox của người nhận. Lệnh này thành công khi message được phân phát tới terminal hoặc là mailbox. Reverse-path bao gồm một danh sách tuỳ ý các host và mailbox của sender. Khi danh sách này được chỉ ra,nó là lộ trình nguồn quay về và chỉ ra mail đã được truyền tiếp vận thông qua những host trong danh sách. Danh sách này được dùng như là lộ trình nguồn để trả về thông báo non-delivery cho sender. Mỗi khi có sự truyền tiếp vận, host thêm phần định danh của chính nó vào đầu danh sách, nó phải sử dụng tên của nó khi đã biết trong IPCE mà ở đó mail được truyền tiếp vận hơn là mail được truyền tới ( nếu chúng có sự khác nhau). Lệnh này sẽ xoá đi các buffer sau: reverse-path, forward-path, và mail data buffer, đồng thời nó thêm thông tin reverse-path từ lệnh này vào reverse-path buffer. SEND AND MAIL (SAML) Lệnh này được sử dụng để khởi tạo sự truyền mail mà ở đó mail data một hay nhiều terminal hoặc các mailbox. Đối với người nhận, mail data được phân phát tới terminal của người nhận nếu người nhận có tích cực, và đối với mọi người nhận mail sẽ tới mailbox của những người nhận đó. Vùng đối số chứa đựng một reverse-path. Lệnh này thành công khi, message được phân phát tới mailbox. Reverse-path bao gồm một danh sách tuỳ ý các host và mailbox của sender. Khi danh sách này được chỉ ra,nó là lộ trình nguồn quay về và chỉ ra mail đã được truyền tiếp vận thông qua những host trong danh sách. Danh sách này được dùng như là lộ trình nguồn để trả về thông báo non-delivery cho sender. Mỗi khi có sự truyền tiếp vận, host thêm phần định danh của chính nó vào đầu danh sách, nó phải sử dụng tên của nó khi đã biết trong IPCE mà ở đó mail được truyền tiếp vận hơn là mail được truyền tới ( nếu chúng có sự khác nhau). Lệnh này sẽ xoá đi các buffer sau: reverse-path, forward-path, và mail data buffer, đồng thời nó thêm thông tin reverse-path từ lệnh này vào reverse- path buffer.  RESET (RSET) Lệnh này xác định sự truyền mail hiện tại đã bị huỷ bỏ. Các sender, 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ị xoá. Receiver phải gửi một reply OK.
  45.  VERIFY (VRFY) Lệnh này yêu cầu receiver xác nhận đối số là đị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 đối số là 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 user (nếu biết) và những mailbox đã xác định đầy đủ được trả về trong một reply gồm 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 Lệnh này cho receiver những thông tin giúp đỡ cho sender. 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 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 Lệnh này định rõ receiver phải gửi một reply OK và sau đó đóng kênh truyền. Receiver sẽ không đóng kênh truyền 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). Sender sẽ không đóng kênh truyền 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 mà kết nối bị đóng trước thời gian mong muốn receiver sẽ làm việc như nếu 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 đã truyền hoàn tất trước đó) sender sẽ hành động ngay khi lệnh hay quá trình truyền đó trong quy trình nhận được một lỗi tạm thời (4xx).  TURN Lệnh này xác định receiver 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 và nó 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 ngay khi kênh truyền đã được mở, và sau đó nó gởi lời chào là hỏi dịch vụ đã sẵn sàng (220). Nếu chương trình B hiện tại là reciever và nó nhận được lệnh TURN và nó trả lời OK thì B trở thành sender. B khi đó ở trạng thái khởi tạo ngay khi kênh truyền được mở, và nó chờ nhận trả lời dịch vụ đã sẵn sàng (220). Để từ chối thay đổi vai trò receiver gửi một reply 502. Có một vài hạn chế về trật tự khi dùng những lệnh này.Đầu tiên trong một phiên 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 cùng trạng thái.
  46. Các lệnh NOOP, HELP, EXPN, và VRFY có thể được sử dụng vào bất kỳ thời điểm nào. Các lệnh MAIL, SEND, SAML bắt đầu cho sự truyền mail. Khi được khởi động, sự truyền mail bao gồm một trong các lệnh khởi tạo, một hoặc nhiều lệnh RCPT và lệnh DATA. Sự truyền mail có thể bị huỷ bỏ bởi lệnh RSET. Có thể có nhiều hoặc không có sự truyền nào trong một phiên truyền. Nếu đối số bắt đầu phiên truyền không được chấp nhận, thông báo 501 failure phải được trả về và reciever-SMTP phải nằm trong cùng trạng thái. Nếu các lệnh trong phiên truyền không có thứ tự, thì thông báo 503 failure sẽ được trả về và reciever-SMTP phải nằm trong cùng trạng thái. Lệnh cuối cùng trong phiên truyền là lệnh QUIT. Lệnh này không thể được sử dụng tại bất kỳ thời gian nào trong phiên truyền. 2. Cú pháp của các lệnh - Các lệnh bao gồm một mã lệnh theo sau là đối số của lệnh. Mã lệnh là 4 ký tự alphabetic. Không phân biệt chữ thường hoặc chữ hoa. - Giữa mã lệnh và đối số là một hoặc nhiều khoảng trắng. Tuy nhiên trong reverse-path và forward-path, kiểu chữ rất quan trọng. Đặc biệt, trên một số host, tên user cũng phân biệt kiểu chữ hoa và thường. - Đối số bao gồm một chuỗi ký tự có chiều dài biến đổi kết thúc bằng chuỗi ký tự “ “. - Dấu ngoặc vuông biểu diễn cho một vùng đối số tuỳ chọn. - Sau đây là những lệnh SMTP: HELO MAIL FROM: RCPT TO: DATA RSET SEND FROM: SOML FROM: SAML FROM: VRFY EXPN HELP [ ] NOOP QUIT TURN 3. Các reply của SMTP Server - Sự trả lời cho những lệnh của SMTP được đặt ra để đảm bảo cho sự đồng bộ cho các yêu cầu và những hoạt động trong quy trình truyền mail, và để bảo đảm rằng sender-SMTP luôn luôn biết trạng thái của reciever-SMTP. Mỗi lệnh SMTP phải tạo ra chính xác một reply. - Một reply SMTP bao gồm một số ba chữ số (được truyền như ba ký tự chữ số) và theo sau là một số văn bản (text). Số đó được sử dụng một cách tự động để xác định trạng thái đưa vào kế tiếp. Text ở trên là dành cho người sử dụng. Ba chữ số đó được ấn định chứa đầy đủ thông tin được mã hoá mà sender-SMTP không cần kiểm tra text đó và có thể huỷ bỏ hay chuyển nó qua
  47. một user thích hợp. Đặc biệt text này có thể phụ thuộc vào receiver và vào ngữ cảnh, vì vậy có sự giống nhau trong sự phân biệt text cho từng mã reply.  Reply codes by function groups 500 :Lỗi cú pháp, không nhậ dạng được lệnh. 501 :Lỗi cú pháp về thông số hoặc đối số. 503 :Chuổi lệnh lỗi. 504 :Thông số lệnh không có. 211 :Trạng thái hệ thống, hay trả lời giúp đỡ về hệ thống 214 : Thông điệp giúp đỡ 220 : dịch vụ sẳn sàng 221 : dịch vụ đóng kênh truyền 421 : dịch vụ không dùng được, đóng kênh truyền 250 :Hành động mail yêu cầu OK, hoàn thành 251 :User không cục bộ, sẽ hướng đến “forward-path” 450 :Mail được yêu cầu không có, mailbox không tồn tại. 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ộ, thử lại 452 :Hành động được yêu cầu không thu được : hệ thống lưu trữ không đủ 552 :Bỏ qua hành động yêu cầu mail : vượt quá cấp phát lưu trữ 553 :Hành động được yêu cầu không chấp nhận : tên mailbox không cho phép [như sai cú pháp mailbox]. 354 :Khởi động việc nhận mail; kết thúc với . 554 :Tryuền bị bị sai. 4. Ví dụ về một giao dịch của SMTP 1. Server : 220 sample2 Simple Mail Transfer Service Ready khi được kết nối qua nghi thức TCP/IP, máy nhận trả lời với mã 220 đầu báo cho máy gởi biết dịch vụ SMTP đã sẵn sàng. 2. Client : HELLO tmt01vn Bên nhận đã sẵn sàng, bên gởi gởi HELLO và xưng tên người gởi 3. Server : 250 hello. Trả với mã 250 báo cho biết bên nhận đã sẵn sàng 4. Client : MAIL FROM: Bên gởi dùng lệnh MAIL để khởi động phiên giao dịch. Cú pháp như trên cho bên nhận biết địa chỉ bên gởi ( mailbox của bên gởi ) để bên nhận gởi thông báo lỗi nếu có về bên gởi 5. Server : 250 OK Trả lời với mã 250 cho biết sẵn sàng 6. Client : RCPT TO: 7. Server: 250 OK 8. Client : RCPT TO: phungkhn1@yahoo.com Muốn gởi cho bao nhiêu người dùng bấy nhiêu lệnh RCPT kèm theo địa chỉ nhận, bên nhận nếu đúng sẽ trả về mã 250 kèm theo OK 9. Server : 550 No such user here Báo kèm theo mã 550 cho biết không có mailbox trên địa chỉ trên đối với nơi nhận
  48. 10. Client : DATA Báo cho bên nhận biết dữ liệu bắt đầu từ sau từ DATA 11. Server : 354 Start mail input; end with . Mã 354 báo cho biết đã sẵn sàng nhận mail, kết thúc mail với ký tự CRLF.CRLF 12. Client : Bắt đầu thân của mail 13. v v 14. Client : ( đến khi kết thúc nhấn CRLF.CRLF ) 15. Server : 250 OK 16. Client : QUIT Phát lệnh báo kết thúc phiên giao dịch 17. Server : 221 sample2 Service closing transmission channel Mã 221 đóng kết nối đã thiết lập Ví dụ trên sau phiên làm việc mail đ ược gởi tới địa chỉ mail phungkhn@yahoo.com 5. Nghi thức mở rộng ESMTP - 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ừ khoá SIZE=nnnnnnnnn 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 HELLO, nếu Server MTA có trang bị, nó sẽ trả về mã thành công là 250. Ngày nay chuẩn ESMTP đã thay thế chuẩn SMTP ở đa số các hệ thống. Ví dụ : để khởi động 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 : SIZE=1000000 IV. GIAO THỨC POP3(RFC1081, RFC1082) - Post Office Protocol Version 3 (Pop3) là một giao thức chuẩn trên internet cho phép một một workstation có thể truy xuất động đến một maildrop trên một server từ xa. Có nghĩa là Pop3 được dùng để cho phép workstation lấy mail mà server đang giữ nó. - Port chuẩn dành cho dịch vụ Pop3 đươc qui ước là TCP port 110. Pop3 server sẽ khởi động và lắng nghe trên port này. Một client muốn sử dụng các dịch vụ của Pop3 thì nó phải thiết lập một kết nối tới Pop3 server. Khi kết nối được thiết lập thì Pop3 server sẽ gởi tới client một lời chào. Sau đó, Pop3 Client và Pop3 Server sau đó trao đổi các request và reply cho đến khi kết nối được đóng hay loại bỏ. - Các lệnh trong Pop3 không phân biệt chữ thường và chữ hoa, bao gồm một tập từ khoá (chiều dài từ 3 đến 4 ký tự), có thể có hoặc không có đối số