47
ĐỒ Á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

Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

ĐỒ Á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

Page 2: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

ĐẠ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

Page 3: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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.

Page 4: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 5: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 6: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 7: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 8: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 9: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 10: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 11: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 12: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 13: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 14: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 15: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 16: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 17: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 18: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 19: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 20: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 21: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 22: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 23: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 24: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 25: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 26: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 27: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 28: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 29: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 30: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

3.2. FTP Client

Hình 6: Giao diện FTP Client

22

Page 31: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 32: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 33: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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

Page 34: Tổng quan đề tài - daotao.vku.udn.vndaotao.vku.udn.vn/uploads/2020/12/...doan4-word.docx · Web viewHiểu được mục đích, hoạt động của giao thức FTP. Nắm

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