Mục Lục Trang I.Giao thức FTP là gì ?.......................................................................................2 1.Khái niệm giao thức FTP……………………………………………………………………………2 2.Hoạt động của giao thức FTP…………………………………………………………………….2. 3.Các phương thức truyền dữ liệu trong FTP...................................................3 3.1.Stream mode………………………………………………………………………………………….4 3.2.Block mode…………………………………………………………………………………………….4 3.3.Compressed mode………………………………………………………………………………….4 4.Các lệnh FTP(FTP Commands)……………………………………………………………………5 II.Thiết lập FTPServer cá nhân bằng FileZilla…………………………………………………5 III.Các chức năng Đăng nhập, Download, Upload, Xóa file…………………………….13 1.Các thông điệp đáp trả trong mô hình FTP serverclient…………………………….13 1.1.Đăng nhập……………………………………………………………………………………………..13 1.2.Download……………………………………………………………………………………………….13 1.3.Upload……………………………………………………………………………………………………14 2.Chạy chương trình và kiểm tra các chức năng…………………………………………..14 2.1.Đăng nhập……………………………………………………………………………………………..14 2.2.Download………………………………………………………………………………………………14 2.3.Upload………………………………………………………………………………………………….15 2.4.Tạo file, xem và sửa nội dung……………………………………………………………….16 2.5.Xóa file………………………………………………………………………………………………...18
Trang 1Viện Công Nghệ Thông Tin Và Truyền Thông
Giảng viên hướng dẫn : TS.La Thế Vinh
Nhóm sinh viên thực hiện: Hoàng Đình Hợi MSSV:20131693
Nguyễn Hữu Dương MSSV:20130737 Mai Văn Tuyến MSSV:20134363
Hà Nội,2016
Trang 2Mục Lục TrangI.Giao thức FTP là gì ? 21.Khái niệm giao thức FTP………2
Trang 33.Các phương thức truyền dữ liệu trong FTP 3
3.1.Stream mode……….4
3.2.Block mode……….4
3.3.Compressed mode……….4
4.Các lệnh FTP(FTP Commands)………5
II.Thiết lập FTP-Server cá nhân bằng FileZilla………5
III.Các chức năng Đăng nhập, Download, Upload, Xóa file……….13
1.Các thông điệp đáp trả trong mô hình FTP server-client……….13
1.1.Đăng nhập……… 13
1.2.Download……….13
1.3.Upload………14
2.Chạy chương trình và kiểm tra các chức năng……… 14
2.1.Đăng nhập……… 14
2.2.Download………14
2.3.Upload……….15
2.4.Tạo file, xem và sửa nội dung……….16
2.5.Xóa file……… 18
Trang 4
Lời Mở Đầ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ở lê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ức trao đổ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 hết được cách thức làm việc của giao thức này Nên nhóm chúng em đã đi vào tìm hiểu về giao thức FTP này.Và cụ thể hơn nhóm chúng em làm về phần thiết kế và tìm hiểu giao thức FTP-Server.
Trang 5
I.Giao thức FTP là gì ?
1.Khái niệm 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“) là giao thức truyền file giữa các máy tính Giao thức này xuất hiện từ những năm
1971 (khi Internet vẫn chỉ là một dự án thử nghiệm) nhưng vẫn còn được sử dụng rộng rãi cho đến tận ngày nay FTP được đặc tả trong RFC 959
FTP cho phép trao đổi file giữa hai máy tính
Thông qua giao thức FTP, người dùng có thể tải dữ liệu như hình ảnh, văn bản, các tập tin media (nhạc, video)… từ máy tính của mình lên máy chủ đang đặt ở một nơi khác hoặc tải các tập tin có trên máy chủ về máy tính cá nhân Giao thức FTP được sử dụng nhiều nhất vào mục đích…
2.Hoạt động của giao thức FTP
Trong phiên làm việc của FTP, người dùng làm việc trên máy tính của mình và trao đổi file với một máy tính ở chỗ khác Để truy cập tới máy tính khác, người dùng phải đăng nhập thông qua việc cung cấp định danh người dùng và mật khẩu Sau khi những thông tin này được kiểm chứng thì công việc truyền file từ hệ thống file trên máy tính của mình đến hệ thống file ở đầu kia mới có thể được thực hiện.FTP sử dụng hai kết nối TCP song song, một đường truyền thông tin điều khiển (control connection) và một đường truyền dữ liệu (data connection) Các thông tin điều khiển như thông tin định danh người dùng, mật khẩu truy nhập, lệnh thay đổi thư mục, lệnh “PUT” hoặc “GET” file giữa hai máy tính được trao đổi qua đường truyền thông tin điều khiển Đường truyền dữ liệu để truyền file dữ liệu thực sự Vì FTP phân biệt luồng thông tin điều khiển với luồng dữ liệu nên nó dược gọi là gửi thông tin điều khiển out-of-band
FTP gồm 2 kết nối điều khiển và dữ liệu
Khi người dùng bắt đầu một phiên làm việc FTP, đầu tiên FTP sẽ thiết lập một đường kết nối thông tin điều khiển TCP qua cổng 21 Phía client của giao thức FTP truyền thông tin về định danh người dùng và mật khẩu cũng như lệnh thay đổi thư mục qua kết nối này Khi người dùng có một yêu cầu trao đổi file (truyền từ/đến máy người dùng), FTP mở một kết nối TCP để truyền dữ liệu qua cổng 20 FTP truyền đúng một file qua kết nối này và ngay sau khi truyền xong thì đóng kết nối lại Nếu trong cùng phiên làm việc người dùng có yêu cầu truyền file thì FTP sẽ
mở một kết nối khác Như vậy với FTP, luồng thông tin điều khiển được mở và tồn tại trong suốt phiên làm việc của người dùng, nhưng mỗi kết nối dữ liệu được tạo
ra cho mỗi một yêu cầu truyền file (kết nối dữ liệu là không liên tục)
Trang 6Trong suốt phiên làm việc, FTP server phải giữ lại các thông tin về trạng thái của người dùng, đặc biệt nó phải kết hợp các thông tin điều khiển với tài khoản của người dùng Server cũng lưu giữ thư mục hiện thời mà người dùng truy cập cũng như cây thư mục của người dùng Ghi lại các thông tin trạng thái của mỗi phiên làm việc hạn chế đáng kể tổng số phiên làm việc đồng thời.
Mô hình hoạt động của giao thức FTP
3 Các phương thức truyền dữ liệu trong FTP
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 lại, dựa theo các lệnh được sử dụ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ử dụng để truyền dữ liệu
FTP có ba phương thức truyền dữ liệu, đó là: stream mode, block mode, và
compressed mode
3.1 Stream mode :Trong phương thức này, dữ liệu được truyền đi dưới dạng các byte không cấu trúc liên tiếp Thiết bị gửi chỉ đơn thuần đầy luồng dữ liệu qua kết
Trang 7nối TCP tới phía nhận Không có một trường tiêu đề nhất định được sử dụ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 rạ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 dạ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 bị 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ử dụ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ương thức mặc đị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
3.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ử dụng để kiểm tra các dữ liệu đã được truyền đi và để phát hiện, khởi tạo lại đối với một phiên truyền dữ liệu đã bị ngắt
3.3 Compressed mode:Đây là một phương thức truyền sử dụng một kỹ thuật nén khá đơn giản, là “run-length encoding” – có tác dụng phát hiện và xử lý các đoạ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ử dụ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
Ví dụ: nếu bạn đang truyền đi một file qua internet với modem tương tự, modem của bạ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ố định dạng như ZIP, làm cho việc nén tiếp tục khi truyền dữ liệu trở nên không cần thiết
4.Các lệnh FTP(FTP Commands)
Trang 8Lệnh (yêu cầu) từ client đến server và kết quả (trả lời) từ server tới client được gửi thông qua kết nối điều khiển và được mã hoá bằng bảng mã ASCII 7 bit Do vậy giống như lệnh HTTP, người ta có thể đọc được lệnh FTP Trường hợp các lệnh viết liên tục thì cặp ký tự CR (carriage return) và LF (line feed) được sử dụng
để phân biệt các lệnh (và trả lời) Mỗi câu lệnh chứa 4 kí tự ASCII in hoa, một số lệnh có tham số Sau đây là một số câu lệnh hay gặp:
• USER username: sử dụng để gửi thông tin định danh người dùng cho server
• PASS password: dùng để gửi password cho server
• LIST: dùng để yêu cầu server gửi một danh sách các file trong thư mục hiện thời Danh sách này được gửi thông qua một kết nối dữ liệu TCP
• RETR filename: dùng để lấy một file từ thư mục hiện thời (trên máy ở xa)
• STOR filename: dùng để tải một file vào thư mục hiện thời (trên máy ở xa)Thông thường có quan hệ 1-1 giữa lệnh của người dùng và lệnh của FTP Ứng với mỗi lệnh từ client là một trả lời của server Câu trả lời là một mã 3 chữ số và có thể có một thông báo kèm theo
II.Thiết lập FTP-Server cá nhân bằng FileZilla
Quá trình thiết lập và cấu hình FTP-Server khá phức tạp, nhưng nếu tự tạo được 1
hệ thống FileZilla FTP-Server chúng ta hoàn toàn có thể biến chiếc máy tính sử dụng Windows thành FTP server, sau đó thiết lập kết nối với nhiều máy tính client khác Về mặt bản chất, FileZilla FTP-Server là 1 ứng dụng mã nguồn mở miễn phí dành cho hệ điều hành Windows, hỗ trợ giao thức kết nối bảo mật FTP và FTP qua SSL/TLS tới server Khi sử dụng giao thức SSL, chúng ta có thể mã hóa các kết nối giữa các host với nhau để đảm bảo lượng dữ liệu được truyền tải an toàn, bên cạnh đó thì ứng dụng này còn cho phép người dùng tùy chọn nhiều địa chỉ và cổng server khác nhau
FileZilla Server Interface không chỉ cung cấp cho người dùng sự tiện lợi trong quá trình tạo và quản lý người dùng, mà còn thiết lập quyền đọc hoặc ghi đối với từng tài khoản khác nhau, do vậy người quản lý sẽ hạn chế được việc truy cập trái phép vào những phần tài liệu riêng tư Bên cạnh đó, chúng ta còn có thể tạo Group – được dùng để kết hợp nhiều tài khoản người dùng có cùng mức phân quyền lại với nhau, và một số thiết lập khác như: giới hạn server, kích hoạt hoặc không sử dụng tính năng SSL khi người dùng đăng nhập, tốc độ truyền tải dữ liệu tối đa
Để thực hiện, các bạn hãy tải và cài đặt phần mềm FileZilla bản dành cho Server, sau đó khởi động ứng dụng, nhập địa chỉ localhost (127.0.0.1) trong phần Server
Trang 9Address và mật khẩu trong tại ô Administration Password, giá trị Port mặc định ở đây là 14147 Nhấn OK:
Như đã đề cập tới ở trên, Group sẽ giúp chúng ta dễ dàng hơn trong việc quản lý nhiều tài khoản người dùng tương tự nhau Việc cần làm trước tiên tại đây là tạo mới Group, sau đó gán từng tài khoản riêng biệt tới nhóm này Các bạn chọn menu Edit > Groups như hình dưới:
Bảng điều khiển Groups sẽ hiển thị, trước tiên chúng ta sẽ nhấn Add và nhập tên của nhóm cần tạo, sau đó kích hoạt quyền truy cập cho các tài khoản bên trong nhóm từ phần Group Settings.Tiếp theo là việc chỉ định thư mục sẽ được phép chia sẻ với các client, chuyển tới phần Shared folders từ phía bên trái và chọn thư
Trang 10mục cần chia sẻ để gán tại đây Sau đó, chúng ta sẽ chuyển tới bước tiếp theo là gán tài khoản người dùng tới Group:
Từ menu Edit, các bạn chọn Users:
Tương tự như Groups, chúng ta có thể tạo tài khoản người dùng – User và thiết lập mức phân quyền đọc, ghi tương ứng Nhấn nút Add, đặt tên cho tài khoản, chọn nhóm tương ứng từ menu drop – down, sau đó nhấn OK để hoàn tất:
Trang 11Ở chế độ mặc định, hệ thống sẽ tạo tài khoản người dùng với mật khẩu trống, nhưng nếu muốn đặt mật khẩu bảo vệ cho User thì ta kích hoạt tùy chọn
Password trong phần Account Settings Tại đây, chúng ta còn có thể thay đổi Group membership, kích hoạt tùy chọn Bypass userlimit of server và Force SSL for user login:
Nếu không chỉ định bất kỳ thư mục chia sẻ nào trong khi tạo Groups thì có thể gán sau đó Chỉ việc chọn Shared folders sau đó nhấn Add từ Shared folders:
Trang 12Phần Files và Directories cho phép chúng ta xác nhận mức phân quyền đối với các tài khoản người dùng, bao gồm: đọc, ghi, xóa, liệt kê Ở chế độ mặc định, chương trình sẽ tự động gán quyền tới tất cả các thành phần bên trong thư mục được chia sẻ đó Tuy nhiên, ta cũng có thể tắt bỏ tùy chọn +Subdirs để hạn chế việc truy cập, trong phần Shared Limits là việc thiết lập tốc độ download và upload tối đa đối với từng tài khoản, tùy từng khoảng thời gian trong ngày, và trong phần IP Filter chúng ta có thể loại bỏ các địa chỉ IP cố định:
Khi hoàn tất quá trình thiết lập của User, chúng ta sẽ chuyển sang hệ thống client
để khởi tạo kết nối tới server FTP Nếu muốn truyền tải dữ liệu qua hệ thống
Trang 13mạng local, ta có thể dùng địa chỉ IP của máy server để tạo kết nối từ phía client Dùng lệnh ipconfig trong Command Prompt để tìm địa chỉ IP như hình dưới:
Sau đó, mở FileZilla FTP và chọn File > Site Manager, nhập các thông tin cần thiết vào đây Nếu máy client được kết nối tới cùng hệ thống mạng, điền địa chỉ IP của máy server trong phần Host để kết nối, sau đó chọn Normal từ phần Logon Type Tiếp theo, nhập tên đăng nhập trong ô User, mật khẩu trong phần Password:
Khi hoàn tất, nhấn nút Access:
Trang 14FileZilla FTP Server sẽ ghi lại toàn bộ thông tin về dữ liệu nhận được yêu cầu nhận
và gửi đi, bao gồm các địa chỉ kết nối của client, tên đăng nhập, địa chỉ IP, tốc độ truyền tải file:
Bên cạnh đó, có thể chia sẻ địa chỉ IP của server với những client không cùng trong hệ thống mạng Để xác định địa chỉ IP để tự động điều chuyển, mở FileZilla Server Options từ menu chính và chọn thẻ Passive mode settings, kích hoạt tùy
Trang 15chọn Use the following IP và nhập địa chỉ IP cần chia sẻ Có thể giữ nguyên tùy chọn nhận địa chỉ IP từ ip.filezilla-project.org/ip.php hoặc tự thiết lập:
Khi hoàn tất, hệ thống client bên ngoài đã có thể kết nối tới server và truy cập vào thư mục chia sẻ Nếu xảy ra lỗi tại đây thì có thể là do hệ thống Firewall của Windows hoặc router.
III.Các chức năng Đăng nhập, Download, Upload, Xóa file
1 Các thông điệp đáp trả trong mô hình FTP server-client
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
Trang 16221: Goodbye
Nếu thông tin đăng nhập sai:
530: Thông tin đăng nhập sai, cần kiểm tra lại username và password
1.2.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
Trang 17Và đây là kết quả: Ở góc phải dưới của màn hình có báo đã chuyển file thành công File xampp đã nằm gọn trong client.
2.3.Upload
Chúng em upload file mp3 có tên Dạ khúc từ client lên server Chỉ việc click chuột phải vào file đó rồi click tiếp upload
Trang 18Và đây là kết quả: file mp3 đã từ client upload sang server.
2.4.Tạo file , xem và sửa nội dung
Click chuột phải vào New folder, chọn phần create new file,
Trang 19File đó em đặt tên là abc.txt
Sau đó em click chuột phải vào file mới tạo này mà chọn phần View/Edit
Trang 20Đây là nội dung của file abc Ta có thể xem và sửa file này thoải mái.
2.5.Xóa file
Em sẽ xóa file abc.txt vừa tạo bằng cách click chuột phải vào nó và chọn phần Delete
Trang 21Kết quả là không còn file abc.txt trong server nữa.
Trang 22TÀI LIỆU THAM KHẢO
1. http://doc.edu.vn/tai-lieu/de-tai-tim-hieu-ve-giao-thuc-ftp-7358/
2. filezilla-84531
http://quantrimang.com/huong-dan-thiet-lap-ftp-server-ca-nhan-bang-3. Cùng với tham khảo các bạn cùng lớp
Trong quá trình học tập cũng như trong bài báo cáo này chúng em còn nhiều thiếu sót Kính mong thầy bỏ qua
Chúng em xin cảm ơn !