Ngày nay, internet đóng vai trò rất lớn trong việc phát triển kinh tế xã hội, là nhân tố thúc đẩy xã hội ngày càng phát triển, tạo điều kiện cho mọi người trên thế giới có thể kết nối , trao đổi, trò chuyện với nhau
Trang 1CHƯƠNG 1: TỔNG QUAN VỀ GIAO THỨC FTP 4
1.1 Giới thiệu về giao thức FTP 4
1.2 Nhiệm vụ đồ án 5
1.3 Cấu trúc đồ án 5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 6
2.1 Giới thiệu mô hình Client – Server 6
2.2 Mô hình kiến trúc xử lý trong giao thức FTP 6
2.3 Thiết lâ ̣p kênh điều khiển và chứng thực người dùng trong FTP 8
2.4 Quản lý kênh dữ liê ̣u FTP 9
2.4.1 Kết nối kênh dữ liê ̣u da ̣ng chủ đô ̣ng - Active FTP 10
2.4.2 Kết nối kênh dữ liê ̣u da ̣ng bi ̣ đô ̣ng - Passive FTP 10
2.5 Các phương thức truyền dữ liê ̣u trong FTP 11
2.5.1 Stream mode 12
2.5.2 Block mode 12
2.5.3 Compressed mode 12
2.6 Các mã thông điệp đáp trả trong mô hình FTP client – server 13
2.7 Mô hình hoạt động của FTP server và FTP client 14
CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM 17
3.1 Chức năng của chương trình 17
3.2 Kết quả chương trình 17
3.2.1 Tạo cơ sở dữ liệu bằng chương trình Wamp server 17
3.2.2 Giao diện chương trình 18
3.2.3 Tạo tài khoản đăng nhập 19
Trang 23.2.4 Đăng nhập 20
3.2.5 Upload file 21
3.2.6.Download File 22
3.2.7 Xóa file trong folder Client 23
3.2.8 Xóa file trong folder Server 25
CHƯƠNG 4: KẾT LUẬN 26
4.1 Kết luận 26
4.2 Hướng phát triển 26
TÀI LIỆU THAM KHẢO 27
Trang 3LỜI NÓI ĐẦU
Ngày nay, internet đóng vai trò rất lớn trong việc phát triển kinh tế xã hội, là nhân tố thúc đẩy xã hội ngày càng phát triển, tạo điều kiện cho mọi người trên thế giới
có thể kết nối , trao đổi, trò chuyện với nhau Chính vì thế, internet không thể thiếu trong xã hội hiện nay Trong xã hội hiện nay việc lướt web, chat, email, voip, chat video, đang trở nên phổ biến đối với mọi người trên thế giới Bên cạnh đó, vấn đề trao đổi file là không thể thiếu đối với người dùng đầu cuối Giao thức FTP là một giao thứctrao đổi file khá phổ biến hiện nay Tuy nhiên những hoạt động xảy ra trong giao thức thì không phải ai cũng biết được hết cách thức làm việc của giao thức này Nên nhóm
em đã đi vào tìm hiểu về giao thức FTP này
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ GIAO THỨC FTP.
1.1 Giới thiệu về giao thức FTP.
FTP (viết tắt của File Transfer Protocol dịch ra là "Giao thức truyền tập tin") thường được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức
TCP/IP
Hoạt động của FTP cần có hai máy tính, một máy chủ (server) và một máy khách(Client) Máy chủ FTP, dùng chạy phần mềm cung cấp dịch vụ FTP, gọi là trình chủ, lắng nghe yêu cầu về dịch vụ của các máy tính khác trên mạng lưới Máy khách chạy phần mềm FTP dành cho người sử dụng dịch vụ, gọi là trình khách, thì khởi đầu một liên kết với máy chủ Một khi hai máy đã liên kết với nhau, máy khách có thể xử lý một
số thao tác về tập tin, như tải tập tin lên máy chủ, tải tập tin từ máy chủ xuống máy của mình, đổi tên của tập tin, hoặc xóa tập tin ở máy chủ v.v
Vì giao thức FTP là một giao thức chuẩn công khai, cho nên bất cứ một công ty phần mềm nào, hay một lập trình viên nào cũng có thể viết trình chủ FTP hoặc trình khách FTP Hầu như bất cứ một nền tảng hệ điều hành máy tính nào cũng hỗ trợ giao thức FTP Điều này cho phép tất cả các máy tính kết nối với một mạng lưới có nền TCP/IP, xử lý tập tin trên một máy tính khác trên cùng một mạng lưới với mình, bất kể máy tính ấy dùng hệ điều hành nào (nếu các máy tính ấy đều cho phép sự truy cập của các máy tính khác, dùng giao thức FTP
FTP thường chạy trên hai cổng 20 và 21, và chỉ chạy riêng trên nền của TCP Trình chủ FTP lắng nghe các yêu cầu dịch vụ từ những kết nối vào máy của các trình khách FTP, trên cổng 21 Đường kết nối trên cổng 21 này tạo nên một dòng truyền điều khiển, cho phép các dòng lệnh được chuyển qua trình chủ FTP Để truyền tải tập tin qualại giữa hai máy, chúng ta cần phải có một kết nối khác Tùy thuộc vào chế độ truyền tảiđược sử dụng, trình khách (ở chế độ năng động - active mode) hoặc trình chủ (ở chế độ
bị động - passive mode) đều có thể lắng nghe yêu cầu kết nối đến từ đầu kia của mình Trong trường hợp kết nối ở chế độ năng động, (trình chủ kết nối với trình khách để truyền tải dữ liệu), trình chủ phải trước tiên đóng kết vào cổng 20, trước khi liên lạc và kết nối với trình khách Trong chế độ bị động, hạn chế này được giải tỏa và việc đóng kết trước là một việc không cần phải làm
Trong khi dữ liệu được truyền tải qua dòng dữ liệu, dòng điều khiển đứng im Tình trạng này gây ra một số vấn đề, đặc biệt khi số lượng dữ liệu đòi hỏi được truyền tải là một số lượng lớn, và đường truyền tải chạy thông qua những bức tường lửa Bức tường lửa là dụng cụ thường tự động ngắt các phiên giao dịch sau một thời gian dài im lặng Tuy tập tin có thể được truyền tải qua hoàn thiện, song dòng điều khiển do bị bức tường lửa ngắt mạch truyền thông giữa quãng, gây ra báo lỗi
Trang 51.2 Nhiệm vụ đồ án.
Tìm hiểu cách thức hoạt động của giao thức FTP Một giao thức trao đổi file khá phổ biến hiện nay Mô phỏng cách thức hoạt động của giao thức FTP bằng chương trìnhđược viết bởi Java Trong phần mô phỏng, ứng dụng FTP sẽ có những chức năng cơ bảnnhư: đăng nhập User, download file từ server về máy client, upload file từ client về server, xóa file trong folder Client hoặc xóa file trong folder Server
1.3 Cấu trúc đồ án.
Bài báo cáo gồm có 4 chương:
Chương 1: Tổng quan về giao thức ftp Giới thiệu chung về giao thức FTP.Chương 2: Cơ sở lý thuyết Tìm hiểu kĩ về cách thức hoạt động của giao thức FTP Mô hình hoạt động client-server Các thông điệp đáp trả giữa client và Server
Chương 3: Kết quả thực nghiệm chụp hình kết quả của từng bước như tạo cơ sở
dữ liệu, đăng kí tài khoản, đăng nhập, chức năng Upload, Download, xóa file
Chương 4: kết luận và hướng phát triển nêu những kết luận chung, và hướng phát triển đề tài
Trang 6CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu mô hình Client – Server.
Các ứng dụng mạng thường hoạt động theo mô hình client - server như Email, gửi nhận tập tin, game online, Mô hình này gồm có một chương trình đóng vai trò là client và một chương trình đóng vai trò là server Hai chương trình này sẽ giao tiếp với nhau thông qua mạng Chương trình server đóng vai trò cung cấp dịch vụ Chương trình này luôn luôn lắng nghe các yêu cầu từ phía client, rồi tính toán và đáp trả kết quả tươngứng Chương trình client cần một dịch vụ và gởi yêu cầu dịch vụ tới chương trình server
và đợi đáp trả từ server Như vậy, quá trình trao đổi dữ liệu giữa client - server bao gồm:
• Truyền một yêu cầu từ chương trình client tới chương trình server
• Yêu cầu được server xử lý
• Truyền đáp ứng cho client
2.2 Mô hình kiến trúc xử lý trong giao thức FTP.
Giao thức FTP sử dụng kết nối TCP, nhưng nó không chỉ dùng một kênh TCP như phần lớn các giao thức truyền thông khác Mô hình FTP chia quá trình truyền thông giữa bộ phận Server với bộ phận client ra làm hai kênh logic:
• Kênh điều khiển: đây là kênh logic TCP được dùng để khởi tạo một phiên kếtnối FTP Nó được duy trì xuyên suốt phiên kết nối FTP và được sử dụng chỉ
để truyền các thông tin điều khiển, như các lệnh và các hồi đáp trong FTP Nókhông được dùng để truyền file
• Kênh dữ liệu: Mỗi khi dữ liệu được truyền từ server tới client, một kênh kết nối TCP nhất định lại được khởi tạo giữa chúng Dữ liệu được truyền đi qua kênh kết nối này – do đó nó được gọi là kênh dữ liệu Khi file được truyền xong, kênh này được ngắt Việc sử dụng các kênh riêng lẻ như vậy tạo ra sự linh hoạt trong việc truyền truyền dữ Tuy nhiên, nó cũng tạo cho FTP độ phức tạp nhất định
Do các chức năng điều khiển và dữ liệu sử dụng các kênh khác nhau, nên mô hình hoạt động của FTP cũng chia phần mềm trên mỗi thiết bị ra làm hai thành phần logic tương ứng với mỗi kênh Thành phần Protocol Interpreter (PI) là thành phần quản
lý kênh điều khiển, với chức năng phát và nhận lệnh Thành phần Data Transfer Process (DTP) có chức năng gửi và nhận dữ liệu giữa phía client với server Ngoài ra, cung cấp cho tiến trình bên phía người dùng còn có thêm thành phần thứ ba là giao diện người dùng FTP - thành phần này không có ở phía server Dưới đây là mô hình hoạt động của FTP
Trang 7Hình 2.1 Mô hình hoạt động của giao thức FTP.
Các tiến trình bên phía Client.
User Interface: đây là chương trình được chạy trên máy tính, nó cung cấp giao diê ̣n xử lý cho người dùng Nó cho phép sử du ̣ng các lê ̣nh đơn giản hướng người dùng, và cho phép người điều khiển phiên FTP theo dõi được các thông tin và kết quả xảy ra trong tiến trình
User Protocol Interpreter (User-PI): chi ̣u trách nhiê ̣m quản lý kênh điều khiển phía client Nó khởi ta ̣o phiên kết nối FTP bằng viê ̣c phát ra yêu cầu tới phía Server-PI Khi kết nối đã được thiết lâ ̣p, nó xử lý các lê ̣nh nhâ ̣n được trên giao diê ̣n người dùng, gửi chúng tới Server-PI, và nhâ ̣n phản hồi trở la ̣i Nó cũng quản lý tiến trình User-DTP
User Data Transfer Process (User-DTP): là bô ̣ phâ ̣n DTP nằm ở phía người dùng,làm nhiê ̣m vu ̣ gửi hoă ̣c nhâ ̣n dữ liê ̣u từ Server-DTP User-DTP có thể thiết lâ ̣p hoă ̣c lắngnghe yêu cầu kết nối kênh dữ liê ̣u trên server Nó tương tác với thiết bi ̣ lưu trữ file phía client
Các tiến trình bên phía Server.
Server Protocol Interpreter (Server-PI): chi ̣u trách nhiê ̣m quản lý kênh điều khiểntrên server Nó lắng nghe yêu cầu kết nối hướng tới từ users trên cổng dành riêng Khi kết nối đã được thiết lâ ̣p, nó sẽ nhâ ̣n lê ̣nh từ phía User-PI, trả lời la ̣i, và quản lý tiến trình truyền dữ liê ̣u trên server
Trang 8Server DataTransfer Process (Server-DTP): làm nhiê ̣m vu ̣ gửi hoă ̣c nhâ ̣n file từ
bô ̣ phâ ̣n User-DTP Server-DTP vừa làm nhiê ̣m thiết lâ ̣p kết nối kênh dữ liê ̣u và lắng nghe mô ̣t kết nối kênh dữ liê ̣u từ user Nó tương tác với server file trên hê ̣ thống cu ̣c bô ̣ để đo ̣c và chép file
2.3 Thiết lâ ̣p kênh điều khiển và chứng thực người dùng trong FTP.
Trước khi kết nối được sử du ̣ng để thực sự truyền file, kênh điều khiển cần phải đươ ̣c thiết lâ ̣p Như trong các giao thức client/server khác, FTP server tuân theo mô ̣t luâ ̣tpassive trong kênh điều khiển Bô ̣ phâ ̣n Server Protocol Interpreter (Server-PI) sẽ lắng nghe cổng TCP dành riêng cho kết nối FTP là cổng 21 Phía User-PI sẽ ta ̣o kết nối bằng viê ̣c mở mô ̣t kết nối TCP từ thiết bi ̣ người dùng tới server trên cổng đó Nó sử du ̣ng mô ̣tcổng bất kỳ làm cổng nguồn trong phiên kết nối TCP
Khi TCP đã được cài đă ̣t xong, kênh điều khiển giữa các thiết bi ̣ sẽ được thiết
lâ ̣p, cho phép các lê ̣nh được truyền từ User-PI tới Server-PI, và Server-PI sẽ đáp trả kết quả là các mã thông báo Bước đầu tiên sau khi kênh đã đi vào hoa ̣t đô ̣ng là bước đăng nhâ ̣p của người dùng (login sequence) Bước này có hai mu ̣c đích:
• Access Control (Điều khiển truy câ ̣p): quá trình chứng thực cho phép ha ̣n chế truy câ ̣p tới server với những người dùng nhất đi ̣nh Nó cũng cho phép server điều khiển loa ̣i truy câ ̣p như thế nào đối với từng người dùng
• Resource Selection (Cho ̣n nguồn cung cấp): Bằng viê ̣c nhâ ̣n da ̣ng người dùng
ta ̣o kết nối, FTP server có thể đưa ra quyết đi ̣nh sẽ cung cấp những nguồn nào cho người dùng đã được nhâ ̣n da ̣ng đó
Trình tự truy câ ̣p và chứng thực FTP: Quy luâ ̣t chứng thực trong FTP khá đơn giản,
chỉ là cung cấp username/password
Trình tự của viê ̣c chứng thực như sau:
1 người dùng gửi mô ̣t username từ User-PI tới Server-PI bằng lê ̣nh USER Sau đó password của người dùng được gửi đi bằng lê ̣nh PASS
2 Server kiểm tra tên người dùng và password trong database người dùng của nó Nếu người dùng hợp lê ̣, server sẽ gửi trả mô ̣t thông báo tới người dùng rằng phiên kết nối đã được mở Nếu người dùng không hợp lê ̣, server yêu cầu người dùng thực hiê ̣n la ̣i viê ̣c chứng thực Sau mô ̣t số lần chứng thực sai nhất đi ̣nh, server sẽ ngắt kết nối
Giả sử quá trình chứng thực đã thành công, server sau đó sẽ thiết lâ ̣p kết nối để cho phép từng loa ̣i truy câ ̣p đối với người dùng được cấp quyền Mô ̣t số người dùng chỉ có thể truy câ ̣p vào mô ̣t số file nhất đi ̣nh, hoă ̣c vào mô ̣t số loa ̣i file nhất đi ̣nh Mô ̣t số server có thể cấp quyền cho mô ̣t số người dùng đo ̣c và viết lên server, trong khi chỉ cho phép
Trang 9đo ̣c đối với những người dùng khác Người quản tri ̣ ma ̣ng có thể nhờ đó mà đáp ứng đúng các nhu cầu truy câ ̣p FTP.
Mô ̣t khi kết nối đã được thiết lâ ̣p, server có thể thực hiê ̣n các lựa cho ̣n tài nguyên dựa vào nhâ ̣n diê ̣n người dùng Ví du ̣: trên mô ̣t hê ̣ thống nhiều người dùng, người quản tri ̣ có thể thiết lâ ̣p FTP để khi có bất cứ người dùng nào kết nối tới, anh ta sẽ tự đô ̣ng đươ ̣c đưa tới "home directory" của chính anh ta Lê ̣nh tùy cho ̣n ACCT (account) cũng cho phép người dùng cho ̣n mô ̣t tài khoản cá nhân nào đó nếu như anh ta có nhiều hơn
mô ̣t tài khoản
Mở rô ̣ng về bảo mâ ̣t FTP: Giống như phần lớn các giao thức cũ, phương pháp đăng
nhâ ̣p đơn giản của FTP là mô ̣t sự kế thừa từ những giao thức ở thời kỳ đầu của Internet Ngày nay, nó không còn bảo đảm tính an toàn cần thiết trên môi trường Internet toàn cầu vì username và password được gửi qua kênh kết nối điều khiển dưới da ̣ng clear text.Điều này làm cho các thông tin đăng nhâ ̣p có thể bi ̣ nghe lén Chuẩn RFC 2228 về các phần mở rô ̣ng cho bảo mâ ̣t FTP đã đi ̣nh ra thêm nhiều tùy cho ̣n chứng thực và mã hóa phức ta ̣p cho những ai muốn tăng thêm mức đô ̣ an toàn vào trong phần mềm FTP của
ho ̣
2.4 Quản lý kênh dữ liê ̣u FTP.
Kênh điều khiển được ta ̣o ra giữa Server-PI và User-PI sử du ̣ng quá trình thiết
lâ ̣p kết nối và chứng thực được duy trì trong suốt phiên kết nối FTP Các lê ̣nh và các hồiđáp được trao đổi giữa bô ̣ phâ ̣n PI (Protocol Interpreter) qua kênh điều khiển, nhưng dữ liê ̣u thì không
Mỗi khi cần phải truyền dữ liê ̣u giữa server và client, mô ̣t kênh dữ liê ̣u cần phải đươ ̣c ta ̣o ra Kênh dữ liê ̣u kết nối bô ̣ phâ ̣n User-DTP với Server-DTP Kết nối này cần thiết cho cả hoa ̣t đô ̣ng chuyển file trực tiếp (gửi hoă ̣c nhâ ̣n mô ̣t file) cũng như đối với viê ̣c truyền dữ liê ̣u ngầm, như là yêu cầu mô ̣t danh sách file trong thư mu ̣c nào đó trên server
Chuẩn FTP chỉ đi ̣nh hai phương thức khác nhau để ta ̣o ra kênh dữ liê ̣u Khác biê ̣tchính của hai phương thức đó là ở mă ̣t thiết bi ̣: phía client hay phía server là phía đã đưa
ra yêu cầu khởi ta ̣o kết nối Điều này nghe qua có vẻ khá đơn giản, nhưng kỳ thực nó la ̣i khá quan tro ̣ng
2.4.1 Kết nối kênh dữ liê ̣u dạng chủ động - Active FTP.
Trong da ̣ng kết nối này, phía Server-DTP khởi ta ̣o kê ̣nh dữ liê ̣u bằng viê ̣c mở
mô ̣t cổng TCP cho phía User-DTP Phía server sử du ̣ng cổng được dành riêng, là cổng
20 cho kênh dữ liê ̣u Trên máy client, mô ̣t giá tri ̣ cổng được cho ̣n theo mă ̣c đi ̣nh chính là
Trang 10cổng đươ ̣c sử du ̣ng đối với kênh điều khiển, tuy nhiên phía client sẽ luôn cho ̣n hai cổng riêng biê ̣t cho hai kênh này.
Giả sử phía User-PI thiết lâ ̣p mô ̣t kết nối điều khiển từ cổng bất kỳ của nó là
1678 tới cổng điều khiển trên server là cổng 21 Khi đó, để ta ̣o mô ̣t kênh dữ liê ̣u cho viê ̣c truyền dữ liê ̣u, phía Server-PI sẽ báo cho phía Server-DTP khởi ta ̣o mô ̣t kênh kết nối TCP từ cổng 20 tới cổng 1678 của phía client Sau khi phía client chấp nhâ ̣n kênh đươ ̣c khởi ta ̣o, dữ liê ̣u sẽ được truyền đi
Thực tế, viê ̣c sử du ̣ng cùng mô ̣t cổng cho cả kênh dữ liê ̣u và kênh điều khiển không phải là mô ̣t ý hay, nó làm cho hoa ̣t đô ̣ng của FTP trở nên phức ta ̣p Do đó, phía client nên chỉ đi ̣nh sử du ̣ng mô ̣t cổng khác bằng viê ̣c sử du ̣ng lê ̣nh PORT trước khi truyền dữ liê ̣u
Ví du ̣: giả sử phía client chỉ đi ̣nh cổng 1742 với lê ̣nh PORT Phía Server-DTP sau đó sẽ
ta ̣o ra mô ̣t kết nối từ cổng 20 của nó tới cổng 1742 phía client thay vì cổng 1678 như
mă ̣c đi ̣nh Quá trình này được mô tả trong hình dưới đây
Hình 2.2 Kết nối dữ liệu dạng chủ động
2.4.2 Kết nối kênh dữ liê ̣u dạng bi ̣ động - Passive FTP
Trong kết nối bị động, client sẽ nhâ ̣n server là bên bi ̣ đô ̣ng, làm nhiê ̣m vu ̣ chấp nhâ ̣n mô ̣t yêu cầu kết nối kênh dữ liê ̣u được khởi ta ̣o từ phía client Server trả lời la ̣i
Trang 11phía client với đi ̣a chỉ IP cũng như đi ̣a chỉ cổng mà nó sẽ sử du ̣ng Phía Server-DTP sau đó sẽ lắng nghe mô ̣t kết nối TCP từ phía User-DTP trên cổng này
Mă ̣c đi ̣nh, phía client sử du ̣ng cùng mô ̣t cổng đối với cả hai kênh, điều khiển và dữ liê ̣u như trong trường hợp kết nối chủ đô ̣ng ở trên Tuy nhiên, ở đây, mô ̣t lần nữa phía client có thể cho ̣n sử du ̣ng mô ̣t giá tri ̣ cổng khác cho kênh dữ liê ̣u Ta sẽ xét la ̣i ví
du ̣ ở trên mô ̣t lần nữa, với cổng điều khiển phía client là 1678 tới cổng 21 phía server Nhưng lần này truyền dữ liê ̣u theo phương thức kết nối bi ̣ đô ̣ng, như mô tả trong hình dưới đây:
Hình 2.3 Kết nối kênh dữ liê ̣u da ̣ng bi ̣ đô ̣ng
Phía client sẽ sử du ̣ng lê ̣nh PASV để yêu cầu server rằng nó muốn dùng phương thức điều khiển dữ liê ̣u bi ̣ đô ̣ng Phía Server-PI sẽ trả lời la ̣i phía client với mô ̣t giá tri ̣ cổng mà client sẽ sử du ̣ng, từ cổng 2223 trên nó Sau đó phía Server PI sẽ hướng cho phía Server-DTP lắng nghe trên cổng 2223 Phía User-PI cũng sẽ hướng cho phía User-DTP ta ̣o mô ̣t phiên kết nối từ cổng 1742 phía client tới cổng 2223 phía server Sau khi Server chấp nhâ ̣n kết nối này, dữ liê ̣u bắt đầu được truyền đi
2.5 Các phương thức truyền dữ liê ̣u trong FTP.
Khi kênh dữ liê ̣u đã được thiết lâ ̣p xong giữa Server-DTP với User-DTP, dữ liê ̣u sẽ được truyền trực tiếp từ phía client tới phía server, hoă ̣c ngược la ̣i, dựa theo các lê ̣nh đươ ̣c sử du ̣ng Do thông tin điều khiển được gửi đi trên kênh điều khiển, nên toàn bô ̣ kênh dữ liê ̣u có thể được sử du ̣ng để truyền dữ liê ̣u
Trang 12FTP có ba phương thức truyền dữ liê ̣u, đó là: stream mode, block mode, và compressed mode.
2.5.1 Stream mode
Trong phương thức này, dữ liê ̣u được truyền đi dưới da ̣ng các byte không cấu trúc liên tiếp Thiết bi ̣ gửi chỉ đơn thuần đầy luồng dữ liê ̣u qua kết nối TCP tới phía nhâ ̣n Không có mô ̣t trường tiêu đề nhất đi ̣nh được sử du ̣ng trong phương thức này làm cho nó khá khác so với nhiều giao thức gửi dữ liê ̣u rời ra ̣c khác Phương thức này chủ yếu dựa vào tính tin câ ̣y trong truyền dữ liê ̣u của TCP Do nó không có cầu trúc da ̣ng header, nên viê ̣c báo hiê ̣u kết thúc file sẽ đơn giản được thực hiê ̣n viê ̣c phía thiết bi ̣ gửi ngắt kênh kết nối dữ liê ̣u khi đã truyền xong
Trong số ba phương thưc, stream mode là phương thức được sử du ̣ng nhiều nhất trong triển khai FTP thực tế Có mô ̣t số lý do giải thích điều đó Trước hết, nó là phươngthức mă ̣c đi ̣nh và đơn giản nhất, do đó viê ̣c triển khai nó là dễ dàng nhất Thứ hai, nó là phương pháp phổ biến nhất, vì nó xử lý với các file đều đơn thuần như là xử lý dòng byte, mà không để ý tới nô ̣i dung của các file Thứ ba, nó là phương thức hiê ̣u quả nhất vì nó không tốn mô ̣t lượng byte “overload” để thông báo header
2.5.2 Block mode
Đây là phương thức truyền dữ liê ̣u mang tính quy chuẩn hơn, với viê ̣c dữ liê ̣u đươ ̣c chia thành nhiều khối nhỏ và được đóng gói thành các FTP blocks Mỗi block này có mô ̣t trường header 3 byte báo hiê ̣u đô ̣ dài, và chứa thông tin về các khối dữ liê ̣u đang đươ ̣c gửi Mô ̣t thuâ ̣t toán đă ̣c biê ̣t được sử du ̣ng để kiểm tra các dữ liê ̣u đã được truyền
đi và để phát hiê ̣n, khởi ta ̣o la ̣i đối với mô ̣t phiên truyền dữ liê ̣u đã bi ̣ ngắt
2.5.3 Compressed mode
Đây là mô ̣t phương thức truyền sử du ̣ng mô ̣t kỹ thuâ ̣t nén khá đơn giản, là length encoding” – có tác du ̣ng phát hiê ̣n và xử lý các đoa ̣n lă ̣p trong dữ liê ̣u được truyền đi để giảm chiều dài của toàn bô ̣ thông điê ̣p Thông tin khi đã được nén, sẽ được xử lý như trong block mode, với trường header Trong thực tế, viê ̣c nến dữ liê ̣u thường đươ ̣c sử du ̣ng ở những chỗ khác, làm cho phương thức truyền kiểu compressed mode trởnên không cần thiết nữa
“run-Ví du ̣: nếu ba ̣n đang truyền đi mô ̣t file qua internet với modem tương tự, modem của
ba ̣n thông thường sẽ thực hiê ̣n viê ̣c nén ở lớp 1; các file lớn trên FTP server cũng
thường được nén sẵn với mô ̣t số đi ̣nh da ̣ng như ZIP, làm cho viê ̣c nén tiếp tu ̣c khi truyềndữ liê ̣u trở nên không cần thiết
Trang 132.6 Các mã thông điệp đáp trả trong mô hình FTP client – server
220: dịch vụ đã sẵn sàng cho người dùng mới
331: username OK, cần password
230: đăng nhập thành công
257 "pathname" tạo ra
250: Success
221: Goodbye
Nếu thông tin đăng nhập sai:
530: thông tin đăng nhập sai, bạn cần kiểm tra username và password
Download:
Client: Tải filename.txt từ Server
Server:
220: dịch vụ đã sẵn sàng cho người dùng mới
250: kết nối tới thư muc server thành công