4. 01Nội dung đề tài
Tham khảo: FileZilla
Đăng nhập vào một máy chủ FTP
Hiện danh sách các tệp tin trên máy chủ
Tải một tệp tin được chọn, có thể tải bằng nhiều kết nối song song
Upload được tệp tin lên thư mục được chọn
Đổi tên, xóa một tệp tin, thư mục được chọn
Tạo một thư mục mới
Ngôn ngữ C/C++.
Tự lập trình mức SOCKET
6. 02Khái niệm FTP
FTP (File Transfer Protocol) là giao thức
truyền tập tin thuộc tầng ứng dụng trong mô
hình OSI.
FTP 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
7. 02Cơ chế hoạt động
FTP moves files between local and
remote file systems
8. 02Đặc điểm giao thức FTP
FTP có 2 kết nối song song riêng rẽ
Cổng 21 dùng để thiết lập kết
nối giữa máy khách và máy
chủ
Sau khi đã thiết lập kết nối
giao thức FTP sẽ dùng
cổng 20 để truyền dữ liệu.
10. 02Một số dòng lệnh FTP thông dụng
USER username
PASS password
LIST
RETR filename
STOR filename
Gửi định danh người dùng đến máy chủ
Gửi mật khẩu người dùng đến máy chủ
Hiển thị danh sách các tập tin trong
thư mục hiện thời
Gửi file trong thư mục hiện thời đến máy chủ
(qua lệnh GET)
Lưu file vào thư mục hiện thời từ máy chủ
(thông quan lệnh PUT)
11. 02Một số dòng lệnh FTP thông dụng
RNFR remote-filename
RNTO remote-filename
DELE remote-filename
MKD remote-directory
RMD remote-directory
Xác định tên file sẽ đổi tên
Thay đổi tên sau khi gửi lệnh RNFR
Xóa tập tin “filename”
Tạo thư mục với đường dẫn “remote-directory”
Xóa thư mục “remote-directory”
12. 02Một số dòng lệnh FTP thông dụng
PWD
CWD remote-directory
TYPE type-character
PASV
QUIT
In ra tên thư mục hiện thời
Di chuyển đến thư mục khác
Thiết lập kiểu file sẽ được truyền đi
Thông báo với FTP server chuyển sang
chế độ “Passive”(bị động)
Ngắt kết nối đến FTP server.
13. 02Cấu trúc phản hồi từ ftp server
331 Đăng nhập thành công
125 Sẵn sàng truyền nhận dữ liệu
425 Không thể mở kết nối
452
550
150
…
Lỗi ghi file
Không truyền được file
Upload file thành công
…
14. 02Các công nghệ sử dụng
IDE : Visual Studio
Ngôn ngữ : C
Thư viện : Winsock
16. 02Phân công công việc
Thành viên Công việc
Trần Văn An
- Thuyết trình
- Tạo kết nối
- Đăng nhập
- Upload,hiển thị thư mục
- Download,chuyển thư mục
- Thoát
Phạm Ngọc Hà
- Đổi tên, xóa tập tin, thư mục
- Tạo thư mục mới
- Di chuyển tập tin
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY
Editor's Notes
trong từng phiên của giao thức FTP, người sử dụng ngồi trước máy tính và muốn chuyển các tập tin tới hoặc nhận từ các máy khác. để người dùng truy cập vào tài khoản điều khiển, người dùng bắt buộc cần cung cấp định danh và mật khẩu, . sau khi cung câp thông tin xác minh, người dùng có thể truyền file từ máy tính của mình sang các mày tính khác.
theo như hình trên, người dùng tương tác với FTP thông qua tác tử người dùng FTP. đầu tiên người dùng cần cunng cấp tên máy cần chuyển file, do tiến trình máy khách của FTP trên máy cá nhân đã được thiết lập kết nối FTP với tiến trình FTP server trên máy điều khiển. sau đó họ sẽ cung cấp định danh và mật khẩu, những thứ sẽ được gửi qua giao thức kết nối TCP dưới dạng câu lệnh FTP. ngay khi server đã xác thực người dùng, người dùng sẽ sao cháp 1 hoặc nhiều file được lưu trữ trên máy cục bộ tới máy điều khiển.
kết nối điều khiển được dùng để gửi thông tin điều khiển giữa 2 máy - thông tin như định danh, mật khẩu, các lệnh để thay đổi thư mục, lệnh "get" và "put" các file.
-kết nối dữ liệu dùng để truyền các file
do FTP sử dụng một kết nối điều khiển riêng rẽ nên nó còn được gọi là gửi thông tin điều khiển "out-of-band"
bên cạnh đó HTTP gửi tiêu đề request và respone trên cùng một kết nối TCP nên HTTP được gọi là gửi kết nối điều khiển "in-band"
https://youtu.be/2qplVtQ5TDE?t=43s
khi người dùng bắt đầu phiên làm việc với một máy tính điều khiển, phía máy khách của FTP sẽ khởi tạo kết nối điều khiển TCP với bên máy chủ trên cổng 21.
phía máy khách của FTP sẽ gửi định danh của người dùng và mật khẩu thông qua kết nối điều khiển, đồng thời có thể gửi thêm các lệnh thay đổi thư mục trên máy điều khiển.khi máy chủ nhận được lệnh cho việc truyền file thông quan kết nối điều khiển, nó sẽ khởi tạo kết nối dữ liệu TCP tới phía máy khách.
nếu trong quá trình kết nối ,, người dùng muốn gửi các file khác thì FTP sẽ ở các kết nối dữ liệu khác. vì thế, với FTP. vì thế với FTP, kết nối điều khiển yêu cầu phải xuyên suốt quá trình làm việc của người dùng, nhưng với một kết nối dữ liệu mới được tạo ra cho mỗi lần truyền file bên trong phiên()
trong suốt phiên làm việc, máy chủ FTP phải đảm bảo trạng thái về người dùng. trong trường hợp riêng, máy chủ phải giữ thư mục hiện thời của người dùng và cây thư mục. đối với HTTP, theo một cách khác, stateless - nó không giữ trạng thái người dùng.
khi người dùng bắt đầu phiên làm việc với một máy tính điều khiển, phía máy khách của FTP sẽ khởi tạo kết nối điều khiển TCP với bên máy chủ trên cổng 21.
phía máy khách của FTP sẽ gửi định danh của người dùng và mật khẩu thông qua kết nối điều khiển, đồng thời có thể gửi thêm các lệnh thay đổi thư mục trên máy điều khiển.khi máy chủ nhận được lệnh cho việc truyền file thông quan kết nối điều khiển, nó sẽ khởi tạo kết nối dữ liệu TCP tới phía máy khách.
nếu trong quá trình kết nối ,, người dùng muốn gửi các file khác thì FTP sẽ ở các kết nối dữ liệu khác. vì thế, với FTP. vì thế với FTP, kết nối điều khiển yêu cầu phải xuyên suốt quá trình làm việc của người dùng, nhưng với một kết nối dữ liệu mới được tạo ra cho mỗi lần truyền file bên trong phiên()
trong suốt phiên làm việc, máy chủ FTP phải đảm bảo trạng thái về người dùng. trong trường hợp riêng, máy chủ phải giữ thư mục hiện thời của người dùng và cây thư mục. đối với HTTP, theo một cách khác, stateless - nó không giữ trạng thái người dùng.
khi người dùng bắt đầu phiên làm việc với một máy tính điều khiển, phía máy khách của FTP sẽ khởi tạo kết nối điều khiển TCP với bên máy chủ trên cổng 21.
phía máy khách của FTP sẽ gửi định danh của người dùng và mật khẩu thông qua kết nối điều khiển, đồng thời có thể gửi thêm các lệnh thay đổi thư mục trên máy điều khiển.khi máy chủ nhận được lệnh cho việc truyền file thông quan kết nối điều khiển, nó sẽ khởi tạo kết nối dữ liệu TCP tới phía máy khách.
nếu trong quá trình kết nối ,, người dùng muốn gửi các file khác thì FTP sẽ ở các kết nối dữ liệu khác. vì thế, với FTP. vì thế với FTP, kết nối điều khiển yêu cầu phải xuyên suốt quá trình làm việc của người dùng, nhưng với một kết nối dữ liệu mới được tạo ra cho mỗi lần truyền file bên trong phiên()
trong suốt phiên làm việc, máy chủ FTP phải đảm bảo trạng thái về người dùng. trong trường hợp riêng, máy chủ phải giữ thư mục hiện thời của người dùng và cây thư mục. đối với HTTP, theo một cách khác, stateless - nó không giữ trạng thái người dùng.