Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
ĐỒ ÁN CƠ SỞ 4
ĐỀ TÀI: MÔ PHỎNG HỆ THỐNG TRUYỀN FILE SỬ DỤNG GIAO THỨC FTP BẰNG
NGÔN NGỮ PYTHON
Sinh viên thực hiện: TRẦN BÌNH QUANG -18IT2
Giảng viên hướng dẫn: TS. LÝ QUỲNH TRÂN
Đà Nẵng, tháng 12 năm 2020
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN
ĐỒ ÁN CƠ SỞ 4
ĐỀ TÀI: MÔ PHỎNG HỆ THỐNG TRUYỀN
FILE SỬ DỤNG GIAO THỨC FTP BẰNG
NGÔN NGỮ PYTHON
Đà Nẵng, tháng 12 năm 2020
LỜI MỞ ĐẦU
Việc trao đổi thông tin, dữ liệu trong cuộc sống rất quan trọng. Nó giúp ta nắm
bắt thông tin, hiểu biết và trao đổi trong công việc. Ngày nay với việc kết nối mạng
ngày một phổ biến việc kết nối các máy tính với nhau và trao đổi dữ liệu là cần thiết.
Vì vậy các giao thức dùng để kết nối các máy tính với nhau ra đời trong đó có giao
thức FTP. FTP được tạo ra với mục tiêu chính là cho phép những máy tính trên 1
mạng gián tiếp có thể dễ dàng chuyển file từ máy tính này sang máy tính khác. Chỉ
đơn giản là dùng để truyền file qua lại và thao thác với tập tin trên server như xóa,
sửa, đổi tên. Một FTP client có thể kết nối tới FTP server và sử dụng các dịch vụ do
server cung cấp.
LỜI CẢM ƠN
Để hoàn thành báo cáo đồ án này trước hết em xin gửi đến thầy,cô giáo trong khoa
Khoa học máy tính trường Đại học công nghệ thông tin và Truyền thông Việt-Hàn lời
cảm ơn chân thành.
Đặc biệt, em xin gởi đến cô giáo TS. Lý Quỳnh Trân, người đã tận tình hướng dẫn em
thực hiện đề tài tư vấn hướng đi cách giải quyết vấn đề và giúp đỡ em hoàn thành báo
cáo đồ án này một lời cảm ơn sâu sắc nhất.
Cùng đó em cũng xin cảm ở sự giúp đỡ, nhận xét ý kiến của các bạn trong lớp nói
riêng, các bạn trong khoa nói chung
Đồng thời nhà trường đã tạo cho em có cơ hội cho em hiểu biết thêm về một kiến thức
mới thú vị, trau dồi kĩ năng thực hành. Qua đồ án này em nhận ra nhiều điều mới mẻ
và bổ ích trong việc học tập, thực hành và công việc sau này của em
Vì kiến thức bản thân còn hạn chế, trong quá trình hoàn thiện đề tài này em không
tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cô và
các bạn
Em xin chân thành cảm ơn
MỤC LỤCChương 1 Tổng quan đề tài......................................................................................1
1.1. Giới thiệu đề tài.................................................................................................1
1.2. Giao thức mạng.................................................................................................1
1.2.1. Sơ lược về giao thức mạng..........................................................................1
1.2.2. Giao thức FTP – File Transfer Protocol......................................................2
1.2.3. Giao thức TCP/IP – Trasmission Control Protocol/ Internet Protocol........3
1.3. Ngôn ngữ lập trình – Python.............................................................................5
1.4. Công cụ lập trình...............................................................................................6
1.4.1. PyCharm......................................................................................................6
1.4.2. Qt Designer.................................................................................................7
Chương 2 Phân tích thiết kế bài toán.......................................................................8
2.1. Giới thiệu bài toán.............................................................................................8
2.2. Mục tiêu dự kiến................................................................................................8
2.3. Nội dung thực hiện............................................................................................8
2.4. Mô hình bài toán................................................................................................8
2.5. Nguyên lý hoạt động........................................................................................10
2.6. Thuật toán........................................................................................................11
2.7. Phân tích đặc tả yêu cầu..................................................................................13
2.7.1. Biểu đồ Use-Case......................................................................................13
2.7.2. Biểu đồ hoạt động.....................................................................................14
Chương 3 Kết quả đạt được...................................................................................19
3.1. FTP Server......................................................................................................19
3.2. FTP Client.......................................................................................................20
3.3. Hạn chế của chương trình..................................................................................22
TÀI LIỆU THAM KHẢO............................................................................................23
DANH MỤC HÌNH ẢNH
Hình 1: Ngôn ngữ lập trình Python................................................................................5
Hình 2: Công cụ lập trình PyCharm...............................................................................6
Hình 3: Mô hình kết nối TCP trong FTP.......................................................................9
Hình 4: Sơ đồ minh họa chi tiết kết nối giao thức FTP...............................................10
Hình 5: FTP Server......................................................................................................19
Hình 6: Khởi chạy server thành công...........................................................................19
Hình 7: Giao diện FTP Client......................................................................................20
Hình 8: Thông báo trong quá trình thực hiện thao tác với server................................21
Hình 9: Thông báo lỗi khi thực hiện thao tác sai.........................................................22
DANH MỤC BIỂU ĐỒ
Biểu đồ 1: Biểu đồ Use-Case.......................................................................................13
Biểu đồ 2: Biểu đồ hoạt động kết nối tới server...........................................................14
Biểu đồ 3: Biểu đồ hoạt động di chuyển đến thư mục con..........................................15
Biểu đồ 4: Biểu đồ hoạt động xóa thư mục, tệp tin......................................................16
Biểu đồ 5: Biểu đồ hoạt động đổi tên thư mục, tệp tin................................................17
Biểu đồ 6: Biểu đồ hoạt động tải xuống tệp tin............................................................18
Chương 1 Tổng quan đề tài
1.1. Giới thiệu đề tàiNgày nay sự phát triển nhanh chóng của các thiết bị mạng và tốc độ internet ngày một
nhanh hơn thì việc kết nối một thiết bị với mạng là điều cần thiết và quan trọng. Việc trao
đổi thông tin thông qua kết nối mạng mà hầu như thiết bị nào cũng thực hiện. Thông tin trao
đổi như tin nhắn, hình ảnh, tệp tin, văn bản,….Vì vậy cần có một giao thức nhằm kết nối,
đảm bảo và thực hiện các nhiệm vụ qua mạng và giao thức FTP (File Transfer Protocol ) là
một trong số đó. Giao thức được xây dựng và sử dụng để truyền các tệp tin, dữ liệu thông
qua mạng
1.2. Giao thức mạng
1.2.1. Sơ lược về giao thức mạng
Giao thức mạng như một bộ quy tắc và chúng phải tuân theo những quy
tắc bắt buộc đó. Nó giống như những tiêu chuẩn và chính sách chính thức và
gộp lại, tạo nên những quy tắc đó. các giao thức mạng này nhằm thực hiện
những hành động, chính sách và giải quyết vấn đề từ đầu đến cuối giúp quá
trình giao tiếp mạng hoặc dữ liệu diễn ra kịp thời.
Giao thức mạng bao gồm trong đó có sự liên kết giữa máy tính, router,
máy chủ và các thiết bị hỗ trợ mạng khác khi chúng muốn giao tiếp với nhau.
Để đảm bảo quá trình giao tiếp dữ liệu/mạng diễn ra suôn sẻ thì các giao thức
mạng luôn phải được xác nhận và cài đặt bởi người gửi và người nhận.
Các giao thức mạng phổ biến hiện nay: TCP/IP, HTTP, UDP, FTP, SMTP,
….
1
1.2.2. Giao thức FTP – File Transfer Protocol
1.2.2.1. Sơ lược giao thức FTPFTP – Giao thức truyền tải tập tin là giao thức được dùng trong việc
trao đổi dữ liệu trong mạng thông qua giao thức TCP/IP. Hoạt động của
FTP cần có tối thiểu hai máy tính (một máy chủ và một máy khách). Máy
chủ FTP cung cấp dịch vụ FTP 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 FTP dành cho người sử dụng dịch
vụ, khởi đầu là kết nối 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.,. Thường hoạt động trên 2 cổng là 20 và 21.
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ểm nổi bật là người dùng có thể
truy cập vào máy chủ FTP để truyền và nhận dữ liệu dù đang ở xa.
1.2.2.2. Ưu điểm, nhược điểm Ưu điểm:
FTP đã có lịch sử tồn tại từ lâu, vì vậy hầu hết mọi người đều quen
thuộc với giao thức này. Và cũng có nhiều công cụ desktop, chẳng
hạn như FileZilla, Cyberduck, WinSCP, v.v., hỗ trợ sử dụng FTP rất
dễ dàng.
FTP cho phép bạn chuyển nhiều tệp cùng một lúc, tiếp tục chuyển tệp
nếu mất kết nối, thêm tệp vào khung chờ upload hay download và lên
lịch truyền.
Bạn cũng có thể tạo các script để tự động chuyển tập tin.
2
Và hầu hết các máy khách FTP cung cấp khả năng đồng bộ hóa tệp để
tất cả các tệp đều sẽ được cập nhật bất kể vị trí ở đâu.
Nhược điểm:
Hạn chế lớn nhất của FTP là bảo mật.
Tên người dùng, mật khẩu và tệp đều được gửi bằng văn bản thuần
túy, do đó tin tặc có thể dễ dàng truy cập thông tin của bạn.
Ngoài ra, FTP thường yêu cầu một tập hợp port mở để kênh dữ liệu
được tạo. Nhưng vì lý do bảo mật, các doanh nghiệp đang giới hạn số
lượng cổng máy chủ có thể truy cập công khai, điều này khiến FTP
khó sử dụng hơn cho các tổ chức này.
Và máy chủ có thể bị lừa để gửi dữ liệu đến các cổng ngẫu nhiên trên
một máy tính không chính xác.
Tất cả những lo ngại về bảo mật này có thể khiến FTP trở thành điểm
khởi đầu cho nhiều doanh nghiệp.
Nên sử dụng FTP khi cần chuyển các tập tin nhanh chóng mà không đòi hỏi
vấn đề bào mật
1.2.3. Giao thức TCP/IP – Trasmission Control Protocol/ Internet Protocol
1.2.3.1. Sơ lược giao thức TCP/IP
TCP/IP (Giao thức điều khiển truyền vận/giao thức mạng) là một bộ
các giao thức trao đổi thông tin được sử dụng để kết nối các thiết bị
mạng trên Internet. TCP/IP có thể được sử dụng như là một giao thức
trao đổi thông tin trong một mạng riêng. Trong bộ giao thức TCP/IP bao
gồm 4 tầng với các giao thức khác nhau trong mỗi tầng:
Tầng ứng dụng: HTTP,FTP,SMTP,SNMP,…..
Tầng giao vận: TCP,UDP,….
Tầng mạng: IP,ICMP,…..
3
Tầng liên kết: Ethernet, ARP,….
TCP/IP chỉ định cách dữ liệu được trao đổi qua Internet bằng cách
cung cấp thông tin trao đổi đầu cuối nhằm mục đích xác định cách thức
nó được chia thành các gói, được gắn địa chỉ, vận chuyển, định tuyến và
nhận ở điểm đến. TCP/IP không yêu cầu quản lý nhiều và nó được thiết
kế để khiến mạng đáng tin cậy hơn với khả năng phục hồi tự động.
1.2.3.2. Ưu điểm, nhược điểm
Ưu điểm
Đây là một mô hình tiêu chuẩn ngành có thể được triển khai hiệu
quả trong các vấn đề mạng thực tế.
Nó có khả năng tương tác, tức là nó cho phép truyền thông đa nền
tảng giữa các mạng không đồng nhất.
Nó là một bộ giao thức mở. Nó không thuộc sở hữu của bất kỳ
viện cụ thể nào và vì vậy có thể được sử dụng bởi bất kỳ cá nhân
hoặc tổ chức nào.
Nó là một kiến trúc client-server có thể mở rộng. Điều này cho
phép các mạng được thêm vào mà không làm gián đoạn các dịch
vụ hiện tại.
Nó chỉ định một địa chỉ IP cho mỗi máy tính trong mạng, do đó
làm cho mỗi thiết bị có thể được nhận dạng qua mạng. Nó chỉ định
mỗi trang web một tên miền. Nó cung cấp các dịch vụ giải quyết
tên và địa chỉ.
Nhược điểm
Nó không phải là chung chung về bản chất. Vì vậy, nó không đại
diện cho bất kỳ ngăn xếp giao thức nào ngoài bộ TCP / IP. Ví dụ,
nó không thể mô tả kết nối Bluetooth.
4
Nó không tách biệt rõ ràng các khái niệm về dịch vụ, giao diện và
giao thức. Vì vậy, nó không phù hợp để mô tả các công nghệ mới
trong mạng mới.
Nó không phân biệt giữa liên kết dữ liệu và các lớp vật lý, có các
chức năng rất khác nhau. Lớp liên kết dữ liệu cần quan tâm đến
việc truyền các khung. Mặt khác, lớp vật lý nên thể hiện các đặc
tính vật lý của quá trình truyền. Một mô hình thích hợp nên tách
biệt hai lớp.
Ban đầu nó được thiết kế và triển khai cho các mạng diện rộng. Nó
không được tối ưu hóa cho các mạng nhỏ như LAN (mạng cục bộ)
và PAN (mạng khu vực cá nhân).
Trong số các bộ giao thức của nó, TCP và IP được thiết kế cẩn
thận và triển khai tốt. Một số giao thức khác đã được phát triển đột
xuất và do đó được chứng minh là không phù hợp về lâu dài. Tuy
nhiên, do sự phổ biến của mô hình, các giao thức này đang được
sử dụng thậm chí 30–40 năm sau khi được giới thiệu.
1.3. Ngôn ngữ lập trình – PythonPython là một ngôn ngữ lập trình hướng đối tượng bậc cao cho các mục đích
lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991.
Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Là một ngôn
ngữ miễn phí, mã nguồn mở, với nhiều thư viện hỗ trợ được sử dụng với nhiều
mục đích lập trình khác nhau.
Hình 1: Ngôn ngữ lập trình Python
Trong đề tài lập trình giao thức FTP có sử dụng hai thư viện là ftplib, pyftpdlib 5
Thư viện ftplib: Là một thư viện dành cho việc tạo FTP-Client, định
nghĩa lớp FTP và một số chức năng. Bạn có thể sử dụng thư viện này để
viết các chương trình FTP-Client bằng Python và thực hiện nhiều công
việc FTP tự động
Thư viện pyftpdlib: Thư viện tạo FTP-Server cho Python cung cấp giao
diện di động cấp cao để dễ dàng viết các FTP-Server rất hiệu quả, có thể
mở rộng và không đồng bộ với Python.
1.4. Công cụ lập trình
1.4.1. PyCharm
PyCharm là môi trường phát triển tích hợp đa nền tảng (IDE) được phát
triển bởi Jet Brains và được thiết kế đặc biệt cho Python hỗ trợ nhiều
extensions, môi trường ảo (Virtual Environment), nhiều tính năng thông minh
như bộ code completion, tự động thụt lề, phát hiện văn bản trùng lặp và kiểm
tra lỗi. Ngoài ra còn có các tính năng tìm kiếm mã nguồn thông minh để tìm
kiếm từng từ một trong nháy mắt. PyCharm có mặt trên cả 3 nền tảng
Windows, Linux và Mac OS. Phiên bản được sử dụng lần này là PyCharm
Community
Hình 2: Công cụ lập trình PyCharm
6
1.4.2. Qt DesignerQt Designer là trình soạn thảo GUI được cung cấp bởi Nokia được sử
dụng rộng rãi. Nó được kết nối chặt chẽ với Qt - là một khung ứng dụng
hướng đối tượng được thiết kế đặc biệt để phát triển đa nền tảng ứng dụng
nhanh chóng và hiệu quả. Qt Designer được sử dụng để tạo các tệp ui chứa các
cửa sổ và điều khiển. Qt Designer cho phép bạn tạo các cửa sổ và các điều
khiển giao diện của nó như các nút và lưu các giao diện. được gọi là tệp ui
Qt Designer được sử dụng trong đề tài nhằm tạo file UI(.ui) sau đó chuyển từ file UI(.ui) sang file mã nguồn Python (.py) bằng cách:
Chạy cmd ở thư mục chứa file ui.
Chạy câu lệnh:
File mã Python giao diện được tạo ra ngay trong thư mục chứa file ui
7
Chương 2 Phân tích thiết kế bài toán
2.1. Giới thiệu bài toán Sử dụng giao thức FTP để tải lên tập tin lên Server và tải xuống tập tin từ
Server
Thao tác với tập tin và thư mục trên Server như tạo thư mục-tập tin, sửa tên thư
mục-tập tin, xóa thư mục-tập tin,….
Bài toán thực hiện trên địa chỉ local (127.0.0.1)
2.2. Mục tiêu dự kiến Hiểu được mục đích, hoạt động của giao thức FTP
Nắm bắt kiến thức cơ bản về ngôn ngữ Python
Nắm bắt kiến thức và xây dựng giao diện bằng ứng dụng QtDesigned
Xây dựng được chương trình demo sử dụng giao thức FTP hoạt động trên địa
chỉ mạng local (127.0.0.1)
2.3. Nội dung thực hiện Xây dựng Server FTP cho phép thực hiện nhiều kết nối từ client, thực hiện các
yêu cầu từ client
Xây dựng Client FTP thực hiện có giao diện được các chức năng:
Thao tác, xử lý thông tin nhập
Thao tác với thư mục
Thao tác với tệp tin
2.4. Mô hình bài toánGiống như hầu hết các giao thức TCP/IP, FTP dựa trên mô hình Client Server.
Tuy nhiên, khác với các ứng dụng khác chạy trên nền TCP/IP, FTP cần tới 2 kết
nối TCP:
8
Hình 3: Mô hình kết nối TCP trong FTP
Control connection (sử dụng port 21 – trên server): Đây là kết nối TCP
logic chính được tạo ra khi phiên làm việc được thiết lập. Nó được thực hiện
giữa các quá trình điều khiển. Nó được duy trì trong suốt phiên làm việc và
chỉ cho các thông tin điều khiển đi qua như lệnh hay response(phản hồi)
Data connection (sử dụng port 20 – trên server): Kết nối này sử dụng các
quy tắc rất phức tạp vì các loại dữ liệu có thể khác nhau. Nó được thực hiện
giữa các quá trình truyền dữ liệu. Kết nối này mở khi có lệnh chuyển tệp và
đóng khi tệp truyền xong.
9
2.5. Nguyên lý hoạt động
Hình 4: Sơ đồ minh họa chi tiết kết nối giao thức FTP
Phía Server:
Server Protocol Interpreter (Server-PI) : Chịu trách nhiệm quản lí
Control Connection trên Server. Nó lắng nghe yêu cầu kết nối hướng từ
User trên cổng 21. Khi kết nối được thiết lập, nó nhận lệnh từ User-PI,
gửi phản hồi và quản lí tiến trình truyền dữ liệu trên Server.
Server Data Transfer Process (Server-DTP) : chịu trách nhiệm nhận
và gửi file từ User-DTP. Server-DTP vừa làm nhiệm vụ thiết lập Data
Connection và lắng nghe Data Connection của User thông qua cổng 20.
10
Nó tương tác với Server File System trên hệ thống cục bộ để đọc và chép
file.
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, chỉ có trên phía Client. Nó cho phép
người dùng sử dụng những lệnh đơn giản để điều khiển các session FTP,
từ đó có thể theo dõi được các thông tin và kết quả xảy ra trong quá trình.
User Protocol Interpreter (User-PI): Chịu trách nhiệm quản lí Control
Connection phía Client. Nó khởi tạo phiên kết nối FTP bằng việc phát
hiện ra Request tới Server-PI. Sau khi kết nối được thiết lập, nó xử lí các
lệnh nhận được trên User Interface, gửi chúng tới Server-PI rồi đợi nhận
Response trở lại. Nó cũng quản lí các tiến trình trên Client.
User Data Transfer Process (User-DTP): Có nhiệm vụ gửi hoặc nhận
dữ liệu từ Server-DTP. User-DTP có thể thiết lập hoặc lắng nghe
DataConnection từ Server thông qua cổng 20. Nó tương tác với Client
File System trên Client để lưu trữ file.
2.6. Thuật toán 1. Khởi chạy máy chủ FTP Server
2. Nhập thông tin kết nối (địa chỉ IP máy chủ, tên tài khoản, mật khẩu) trên
FTP Client
3. FTP Client mở Control connection đến FTP Server (trên port 21) và chỉ định
1 cổng trên Client để Server gửi lại phản hồi. Đường kết nối này dùng để
truyền lệnh và không phải là dữ liệu. Control connection sẽ mở trong suốt
thời gian của phiên làm việc (telnet giữa 2 hệ thống)
4. Client chuyển tiếp thông tin như username, password tới Server để thực hiện
xác thực (authentication). Server sẽ trả lời bằng mã chấp nhận hay từ chối
của các request.
11
5. Sau khi thực hiện kết nối thành công, Client gửi thêm các lệnh thao tác với
thư mục, tệp tin, kiểu dữ liệu, … để vận chuyển, thêm luồng dữ liệu(tức là
chuyển tập tin từ máy khách đến máy chủ hoặc ngược lại). Server sẽ phản
hồi với mã (reply code) chấp nhận hoặc từ chối.
6. Khi dữ liệu đã sẵn sàng, 2 bên sẽ mở kết nối TCP trên cổng 20.
7. Dữ liệu có thể được vận chuyển giữa Client và Server trên cổng 20. Dữ liệu
vận chuyển được mã hóa theo 1 số định dạng bao gồm NVT-ASCII hoặc nhị
phân(binary)
8. Khi quá trình vận chuyển dữ liệu được hoàn thành, phiên làm việc của FTP
Server sẽ đóng lại Data Connection trên cổng 20. Nhưng vẫn giữ Control
Connection trên công 21.
9. Control connection có thể được sử dụng để thiết lập truyền dữ liệu khác
hoặc đóng liên kết.
12
2.7. Phân tích đặc tả yêu cầu
2.7.1. Biểu đồ Use-Case
Biểu đồ 1: Biểu đồ Use-Case
Biểu đồ Use-Case thể hiện các thao tác được thực hiện trong chương trình, các thao
tác của người dùng và server:
Người dùng: Kết nối với server, thao tác với thư mục, thao tác với tệp tin.
Mỗi thao tác với thư mục, tệp tin có thể thực hiện các thao tác cơ bản như
thêm, sửa, xóa, đổi tên
Hệ thống: Kiểm tra thông tin đăng nhập của người dùng, thực hiện và phản
hồi kết quả đối với các yêu cầu của người dùng
13
2.7.2. Biểu đồ hoạt động
2.7.2.1. Biểu đồ hoạt động kết nối tới Server
Biểu đồ 2: Biểu đồ hoạt động kết nối tới server
Biểu đồ thể hiện hoạt động các bước khi yêu cầu kết nối tới server của client:
Người dùng tiến hành nhập thông tin kết nối và yêu cầu kết nối tới server
Chương trình client kiểm tra tính đầy đủ đúng đắn của thông tin trước khi gửi
yêu cầu tới server. Nếu chưa đảm bảo thì sẽ thông báo và yêu cầu nhập lại
Nếu thông tin đảm bảo, yêu cầu kết nối được gửi tới server. Server sẽ kiểm tra
trùng khớp thông tin người dùng và phản hồi lại phias client là chấp thuận hoặc
từ chối
14
2.7.2.2. Biểu đồ hoạt động di chuyển tới thư mục con
Biểu đồ 3: Biểu đồ hoạt động di chuyển đến thư mục con
Biểu đồ thể hiện hoạt động khi yêu cầu di chuyển tới các thư mục con từ thư mục cha
của client:
Người dùng tiến hành xác định tên thư mục cần chuyển đến và nhập tên thư
mục vào textbox
Chương trình client sẽ kiểm tra tính đầy đủ của thông tin trước khi gửi yêu cầu
tới server. Nếu thông tin thiếu, chương trình thông báo và yêu cầu nhập lại
Nếu thông tin đủ, yêu cầu gửi đến server, nếu thư mục không tồn tại, server sẽ
gửi thông báo lỗi đến client
15
Nếu thư mục tồn tại thì server sẽ di chuyển vào thư mục con cần chuyển đến và
thông báo thành công đến client
2.7.2.3. Biểu đồ hoạt động xóa thư mục, tệp tin
Biểu đồ 4: Biểu đồ hoạt động xóa thư mục, tệp tin
Biểu đồ thể hiện hoạt động khi yêu cầu xóa một tệp tin hoặc thư mục của client:
Người dùng tiến hành xác định tên thư mục, tệp tin, định dạng tệp tin cần xóa
Nhập thông tin thư mục, tệp tin cần xóa vào text box và nhấn delete
Chương trình client sẽ kiểm tra tính đầy đủ của thông tin nhập trước khi gửi
yêu cầu thực hiện đến server16
Khi đảm bảo đầy đủ thông tin, client tiến hành gửi yêu cầu đến server. Server
kiểm tra sự tồn tại của thư mục và tệp tin. Nếu không tồn tại sẽ thông báo lỗi
đến client và kết thúc. Nếu tồn tại, server tiến hành xóa tệp tin, thư mục được
yêu cầu và thông báo thành công đến client
2.7.2.4. Biểu đồ họat động đổi tên thư mục tệp tin
Biểu đồ 5: Biểu đồ hoạt động đổi tên thư mục, tệp tin
Biểu đồ thể hiện hoạt động khi yêu cầu xóa một tệp tin hoặc thư mục của client:
17
Người dùng tiến hành xác định tên thư mục, tệp tin muốn đổi tên nhập và
textbox old_name và tên thư mục, tệp tin mới vào textbox new_name. Sau đó
tiến hành nhấn rename.
Chương trình client sẽ kiểm tra tính đầy đủ của thông tin nhập, nếu thông tin
nhập thiếu thì sẽ thông báo và yêu cầu nhập lại. Nếu thông tin đủ thì sẽ sẽ gửi
yêu cầu đến server
Phía server sẽ kiểm tra sự tồn tại của thông tin thư mục, tệp tin cũ. Nếu không
tồn tại sẽ thông báo lỗi, nếu có tồn tại sẽ tiến hành đổi tên, trong quá trình đổi
tên nếu bị trùng tên sẽ hủy phiên và thông báo đến người dùng. Nếu không
trùng sẽ tiến hành đổi tên và thông báo thành công đến người dùng
2.7.2.5. Biểu đồ hoạt động tải lên tệp tin
Biểu đồ 6: Biểu đồ hoạt động tải lên tệp tin
Biểu đồ thể hiện hoạt động khi thực hiện tải lên một tệp tin lên server của client:
18
Người dùng di chuyển đến thư mục trên server mình muốn lưu trữ tệp tin
Người dùng tiến hành chọn file từ giao diện file explorer hiển thị sau khi chọn
nút choose file.
Sau khi chọn file xong thì tiến hành upload lên server. Tệp tin sẽ được đọc tại
máy của người dùng, truyền dữ liệu thông qua kết nối và ghi vào thư mục trên
server
2.7.2.6. Biểu đồ hoạt động tải xuống tệp tin
Biểu đồ 7: Biểu đồ hoạt động tải xuống tệp tin
Biểu đồ thể hiện hoạt động khi thực hiện tải xuống một tệp tin lên server của client:
19
Người dùng di chuyển đến thư mục chưa file mình muốn tải xuống trên server
Người dùng tiến hành xác định tên file, định dạng file mình muốn tải xuống và
nhập tên của tệp tin vào text box
Chương trình client sẽ kiểm tra tính đầy đủ của thông tin nhập, nếu thông tin
nhập thiếu thì sẽ thông báo và yêu cầu nhập lại. Nếu thông tin đủ thì sẽ sẽ gửi
yêu cầu đến server
Phía server sẽ kiểm tra sự tồn tại của tệp tin. Nếu không tồn tại sẽ thông báo
lỗi, nếu có tồn tại sẽ tiến hành tải tải xuống. tệp tin tải xuống sẽ được ghi vào
thư mục chưa chương trình chạy của client
20
Chương 3 Kết quả đạt được
3.1. FTP Server
Hình 5: FTP Server
Chương trình FTP Server cung cấp các chức năng sau:
Quản lý các người dùng, người dùng ảo cấp quyền thư mục có thể truy cập cho
từng tài khoản
Ghi nhật kí quá trình kết nối và xử lý yêu cầu của người dùng
Giới hạn số kết nối
Server khi được khởi chạy sẽ lắng nghe vĩnh viễn trên cổng được chọn trừ khi tắt máy
hoặc khởi lại máy
21
3.2. FTP Client
Hình 6: Giao diện FTP Client
22
Chương trình FTP Client cung cấp các chức năng sau:
Kết nối tới server
Hình 7: Thông báo kết nối tới server thành công
Truy xuất thông tin các thư mục, tệp tin của folder hiện tại
Hình 8: Thông báo thông tin thư mục được truy xuất thành công
Di chuyển tới, trở lại, tạo mới, xóa folder
Hình 9: Thông báo thực hiện các thao tác tạo, di chuyển, xóa thư mục thành công
Sửa tên tệp tin, thư mục23
Hình 10: Thông báo sửa tên thư mục thành công
Tải lên, tải xuống tệp tin
Hình 11: Thông báo tải lên, tải xuống tệp tin thành công
Trong quá trình thực hiện chương trình, nếu như có lỗi hoặc thông tin nhập chưa
đảm bảo yêu cầu sẽ được nhận dialog thông báo thông tin lỗi
Hình 12: Thông báo lỗi khi thực hiện thao tác sai
24
KẾT LUẬN1. Ưu điểm
Chương trình đáp ứng được cái yêu cầu cơ bản của một mô hình client-
server ứng dụng giao thức FTP
Giao diện client trực quan, dễ nhìn, dễ thao tác
2. Hạn chế Chưa chọn được vị trí tải xuống cho tệp tin
Chưa xác định được kích thước tệp tin tải lên
Chưa xác định được định dạng tệp tin tải lên
Mỗi lần thay đổi giao diện gặp nhiều khó khăn
Chương trình server đang cố định các tài khoản, chưa có các thao tác
thêm, xóa, sửa quyền của người dùng.
3. Hướng phát triển Xây dựng giao diện và các chức năng thêm, xóa, sửa tài khoản cho server
Xác định được kích thược tệp tin tải lên
Xác định được vị trí tải xuống cho tệp tin
25
TÀI LIỆU THAM KHẢO1. Sử dụng ftplib để xây dựng một FTP-CLIENT bằng Python:
https://viblo.asia/p/su-dung-ftplib-de-xay-dung-mot-ftp-client-bang-python-LzD5dgjWljY
2. Thư viện ftplib: https://docs.python.org/3/library/ftplib.html
3. Thư viện pyftpdlib: https://pypi.org/project/pyftpdlib/
4. Giao thức TCP/IP: https://vi.wikipedia.org/wiki/TCP
5. Giao thức FTP: https://vi.wikipedia.org/wiki/FTP
6. Python – FTP:
https://www.tutorialspoint.com/python_network_programming/python_ftp.htm
7. Python Networking - FTP Programming:
https://www.networkcomputing.com/networking/python-networking-ftp-
programming
26