Tải bản đầy đủ (.docx) (38 trang)

Báo cáo đồ án FTP Client

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (886.49 KB, 38 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN

KHOA KHOA HỌC MÁY TÍNH

ĐỒ ÁN CƠ SỞ 4
ĐỀ TÀI:
Xây dựng chương trình FTP Client

Giáo viên hướng dẫn : TS. Đặng Đại Thọ
Sinh viên thực hiện

: Nguyễn Hữu Thường
Trần Viết Dũ

Lớp

: 20SE02

Đà Nẵng, tháng 11 năm 2022

MSV: 20IT485

MSV: 20IT731


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN

KHOA KHOA HỌC MÁY TÍNH


ĐỒ ÁN CƠ SỞ 4
ĐỀ TÀI:
Xây dựng chương trình FTP Client

Đà Nẵng, tháng 11 năm 2022


LỜI CẢM ƠN
Đầu tiên chúng em chân thành cảm ơn đến Thầy cô khoa khoa học máy tính
trường Công nghệ thông tin và truyền thông Việt-Hàn đã tạo điều kiện cho chúng em
trong quá trình thực hiện đồ án.
Chúng em xin nói nên lời cảm ơn sâu sắc tới TS. Hoàng Hữu Đức. Chúng em
xin chân thành cảm ơn Thầy đã quan tâm và tận tình hướng dẫn chúng em trong quá
trình thực hiện đồ án.
Chúng em cũng xin gửi lòng cảm ơn bạn bè trong lớp, động viên tinh thần chúng
em rất nhiều trong suốt quá trình thực hiện đồ án này.
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ khơng tránh khỏi những thiếu sót, kính mong nhận được sự góp ý
và tận tình chỉ bảo của các Thầy cô và các bạn.
Một lần nữa, xin chân thành cám ơn và mong ln nhận được những tình cảm
chân thành của tất cả mọi người.
Chúng em xin chân thành cảm ơn !


NHẬN XÉT GIÁO VIÊN HƯỚNG DẪN
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................

..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................

Chữ ký
(Giáo viên hướng dẫn)


MỤC LỤC
CHƯƠNG 1: FILE TRANSFER PROTOCOL............................................................1
1.1. Định nghĩa........................................................................................................1
1.2. Mơ hình clients/server sử dụng socket ở chế độ hướng kết nối TCP................3
1.3. Lập trình Socket TCP trong Java......................................................................6
1.3.1.Xây dựng chương trình clients ở chế độ hướng kết nối....................................6
CHƯƠNG 2: FILE TRANSFER PROTOCOL............................................................8
2.1. Giới thiệu..........................................................................................................8

2.2. Mục đích của giao thức FTP.............................................................................9
2.3. Các loại kết nối 2.3.1.Active FTP...................................................................10
2.3.2. Passive FTP...................................................................................................11
2.4. Tìm hiểu các hệ thống FTP có sẵn 2.4.1. FTP Client......................................12
2.4.2.FTP Server......................................................................................................12
2.4.3.Giao thức FTP................................................................................................13
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH......................................15
3.1. Sơ đồ biều diễn quá trình xử lý các chức năng...............................................15
3.1.1.Sơ đồ tổng quát:..............................................................................................15
3.1.2.Sơ đồ chức năng:............................................................................................15
3.2. Một số lưu đồ thuật toán cho quá trình xử lý của FTP Client.........................16
3.2.1. Lưu đồ xủa lý Connect:..................................................................................16
3.2.2. Lưu đồ xử lý Delete:......................................................................................17
3.2.3. Lưu đồ xử lý Upload:.....................................................................................18
3.2.4. Lưu đồ xử lý Download:................................................................................19
3.2.5. Lưu đồ xử lý hàng đợi:..................................................................................20
3.2.6. Lưu đồ xử lý Disconnect:...............................................................................21
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH...........................................................22
4.1. Giới thiệu tổng quan chương trình..................................................................22
4.1.1. Giao diện chương trình chưa kết nối:.............................................................22
4.1.2. Giao diện chương trình đã kết nối:.................................................................22


4.1.3. Giao diện upload file:....................................................................................24
4.1.4. Giao diện tạo file:..........................................................................................25
4.1.5. Giao diện download file:................................................................................26
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................................................28
-

FTP Client......................................................................................................28


-

Hạn chế của đề tài..................................................................................................28

-

Hướng phát triển và mở rộng của đề tài.................................................................28

TÀI LIỆU THAM KHẢO.............................................................................................29


DANH MỤC CÁC HÌNH VẼ
Hình 1.1.1.Mơ hình OSI dạng rút gọn..................................................................................
Hình 1.1.2.Số hiệu cổng của một số dịch vụ nổi tiếng.........................................................
Hình 1.2.1.Server tạo socket, bind, listen ............................................................................
Hình 1.2.2.Client tạo socket u cầu kết nối........................................................................
Hình 1.2.3.Trao đổi thơng tin giữa Client và Server.............................................................
Hình 1.2.4.Kết thúc phiên làm việc......................................................................................
Hình 1.2.5.Tồn bộ quá trình làm việc.................................................................................
Hình 2.3.1.Actice FTP
Hình 2.3.2.Passive FTP
Hình 2.4.3.Một phiên làm việc FTP thơng
thường…………………………………………
Hình 3.1.1.Sơ đồ hoạt động tổng quát……………………………………………………...
Hình 3.1.2.Sơ đồ chức năng chương trình………………………………………………….
Hình 3.2.1.Lưu đồ xử lý Connect.........................................................................................
Hình 3.2.2.Lưu đồ xử lý Delete............................................................................................
Hình 3.2.3.Lưu đồ xử lý Upload...........................................................................................
Hình 3.2.4.Lưu đồ xử lý Download......................................................................................

Hình 3.2.5.Lưu đồ xử lý hàng đợi........................................................................................
Hình 3.2.6.Lưu đồ xử lý Disconnect.....................................................................................
Hình 4.1.1.Giao diện chương trình chưa kết nối...................................................................
Hình 4.1.2.Giao diện chương trình đã kết nối.......................................................................
Hình 4.1.3.Giao diện upload file…………………………………………………………...
Hình 4.1.4.Giao diện tạo file……………….........................................................................
Hình 4.1.5.Giao diện dowload file………………................................................................


LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển chóng mặt của khoa học kỹ thuật, một kỷ
nguyên mới được mở ra kỷ nguyên của công nghệ thông tin. Nhu cầu của con người càng
lớn đặc biệt các ngành khoa học kỹ thuật khác đều cần đến sự hỗ trợ của cơng nghệ thơng
tin. Mọi người đếu có nhu cầu truy cập internet để cung cấp cũng như lấy những thông tin
cần thiết qua các máy chủ. Với những lý do trên em xin chọn đề tài “Xây dựng chương
trình FTP Client”.
Người sử dụng chương trình là người có nhu cầu truyền nhận file bằng giao thức FTP
(File Transfer Protocol) thông qua mạng Internet.
Trong môi trường Internet, khi cần truyền nhận file các file có kích thước lớn trên
vài chục KB người sử dụng thường gặp trường hợp việc truyền nhận file bị gián đoạn. Ví
dụ khi lấy một file bằng giao thức FTP sử dụng chương trình Internet Explorer, người sử
dụng thường gặp thông báo lỗi sau vài phút download file.
Để giải quyết vấn đề này, người sử dụng thường sử dụng các chương trình chuyên
dùng để lấy file như ReGet để có thể tiếp tục lấy file từ vị trí xảy ra lỗi.
Người sử dụng có xu hướng lấy đồng thời nhiều file tại một server nào đó trên
Internet. Như vậy chương trình phải hỗ trợ lấy nhiều file đồng thời. Tuy nhiên khơng phải
lúc nào chương trình cũng có thể lấy đồng thời nhiều file tại một site nếu server hạn chế số
kết nối đồng thời tới một địa chỉ IP.
Người sử dụng cũng có nhu cầu lấy file bằng nhiều giao thức khác nhau như FTP
(File Transfer Protocol), HTTP (HyperText Transfer Protocol), …

Tuy nhiên trong phạm vi của luận văn này chúng em chỉ có thể hỗ trợ được việc lấy
file bằng giao thức FTP.
Mặt khác chương trình cũng phải tạo sự tiện lợi cho người sử dụng. Chương trình
phải có giao diện đồ họa thân thiện, giúp cho người sử dụng xem được nội dung các thư
mục từ xa và cục bộ. Từ đó giúp cho việc upload và download dễ dàng hơn. Chương trình
cũng phải hiện thực một số chức năng cơ bản của một FTP client download, upload,…
Mục tiêu:
- Khuyến khích việc chia sẻ file.
- Giúp đỡ việc sử dụng gián tiếp(thông qua các chương trình) các máy tính từ xa.
- Che thơng tin người sử dụng khỏi những thay đổi trong các hệ thống lưu trữ
các máy chủ(host).

file giữa


- Truyền dữ liệu một cách tin cậy và hiệu quả.
- Tạo một ứng dụng FTP chạy trên bất kỳ máy nào.
- Nghiên cứu tìm hiểu về lập trình socket TCP
- Nghiên cứu về ngơn ngữ lập trình java


CHƯƠNG 1: FILE TRANSFER PROTOCOL
1.1. Định nghĩa

- Một cách tổng quát nhất có thể định nghĩa: một socket là một điểm cuối trong một
kết nối giữa hai chương trình đang chạy trên mạng.
- Nhìn trên quan điểm của người phát triển ứng dụng người ta có thể định nghĩa socket

là một phương pháp thiết lập kết nối truyền thông giữa một chương trình yêu cầu dịch vụ
(được gán nhãn là clients) và một chương trình cung cấp dịch vụ (được gán nhãn là server)

trên mạng hoặc trên cùng một máy tính.
- Ðối với người lập trình, họ nhìn nhận socket như một giao diện nằm giữa tầng ứng

dụng và tầng khác trong mơ hình mạng OSI, có nhiệm vụ thực hiện việc giao tiếp giữa
chương trình ứng dụng với các tầng bên dưới của mạng.

Hình 1.1.1. Mơ hình OSI dạng rút gọn
- Tuy nhiên, các lập trình viên hiện nay gần như luôn luôn bị ngăn cản tạo socket
riêng bằng cách thủ công, bởi dù bạn dùng Java hay PHP,…, có thể bạn sẽ khơng bao giờ
mở được cổng một cách tường minh. Thay vào đó các lập trình viên sẽ dùng thư viện
socket được hỗ trợ sẵn bởi các ngơn ngữ lập trình. Như vậy, các socket vẫn tồn tại để
kết nối các ứng dụng của người dùng, nhưng các chi tiết của socket được ẩn trong
những lớp sâu hơn để mọi người không phải động chạm đến.
- Do socket là một thực thể phần mềm có chức năng nhận hoặc gửi dữ liệu đi trên kết
nối giữa hai ứng dụng mạng nên khi cần sử dụng socket thì ứng dụng sẽ tạo ra socket để
1


dùng, khi khơng cần sử dụng nữa thì có thể huỷ bỏ socket.
- Một socket được định danh bằng một cặp giá trị:
+ Địa chỉ IP của máy tính có chương trình ứng dụng đã tạo ra socket
+ Số hiệu cổng (port) mà socket dùng để nhận/gửi dữ liệu.
- Khái niệm cổng: Cổng thực chất là số hiệu của một chương trình ứng dụng đang
chạy trên một máy tính. Để hệ thống có thể theo dõi được các chương trình ứng dụng đang
chạy trên máy tính, hệ điều hành sẽ gán cho mỗi ứng dụng đó một con số (16bits) trong
khoảng từ 0 đến 65535. Trong thực tế thì các số hiệu cổng từ 0 đến 1023 (gồm 1024
cổng) đã được dùng cho các dịch vụ nổi tiếng :

Hình 1.1.2. Số hiệu cổng của một số dịch vụ nổi tiếng


- Nếu chúng ta khơng phải là người quản trị thì nên dùng từ cổng 1024 trở lên. Vậy
socket = Địa chỉ IP + Số hiệu Port

2


1.2. Mơ hình clients/server sử dụng socket ở chế độ hướng kết nối TCP

- Giai đoạn 1: Server tạo socket, gán số hiệu cổng và lắng nghe yêu cầu kết nối.

Hình 1.2.1.Server tạo socket, bind, listen
+ socket(): Server yêu cầu tạo một socket để có thể sử dụng các dịch vụ của
tầng vận chuyển.
+ bind(): Server yêu cầu gán số hiệu cổng (port) cho socket.
+ listen(): Server lắng nghe các yêu cầu kết nối từ clients trên cổng đã được
gán. Server sẵn sàng phục vụ Client.
- Giai đoạn 2: Clients tạo socket, yêu cầu thiết lập một kết nối tới server.

3


Hình 1.2.2.Client tạo socket yêu cầu kết nối

+ socket(): Clients yêu cầu tạo một socket để có thể sử dụng các dịch vụ của
tầng vận chuyển, thông thường hệ thống tự động gán một số hiệu cổng còn rảnh cho
socket của clients.
+ connect(): Clients gửi yêu cầu nối kết đến server có địa chỉ IP và Port xác định.
+ accept(): Server chấp nhận kết nối của clients, khi đó một kênh giao tiếp ảo
được hình thành, clients và server có thể trao đổi thông tin với nhau thông qua kênh ảo
này.

- Giai đoạn 3: Trao đổi thông tin giữa clients và server

Hình 1.2.3.Trao đổi thơng tin giữa Client và Server
4


+ Sau khi chấp nhận yêu cầu kết nối, thông thường server thực hiện lệnh read()
và nghẽn cho đến khi có thơng điệp u cầu (Request Message) từ clients gửi đến.
+ Server phân tích và thực thi yêu cầu, kết quả sẽ được gửi về clients bằng lệnh
write().
+ Sau khi gửi yêu cầu bằng lệnh write(), clients chờ nhận thông điệp kết quả
(Reply Message) từ server bằng lệnh read().
- Giai đoạn 4 : Kết thúc phiên làm việc

Hình 1.2.4.Kết thúc phiên làm việc
+ Các câu lệnh read(), write() có thể được thực hiện nhiều lần (ký hiệu bằng
hình ellipse).
+ Kênh ảo sẽ bị xóa khi server hoặc clients đóng socket bằng lệnh
close(). Như vậy tồn bộ quá trình xảy ra như sau:

5


Hình 1.2.5.Tồn bộ q trình làm việc
1.3. Lập trình Socket TCP trong Java

- Java hỗ trợ lập trình mạng thơng qua các lớp trong gói java.net. Một số lớp tiêu
biểu được dùng cho lập trình clients/server sử dụng socket làm phương tiện giao tiếp
như:
+ InetAddress: Lớp này biểu diễn địa chỉ Internet, quan trọng nhất là hai

phương thức getHostName() và getAddress() dùng để chuyển đổi giữa địa chỉ IP và tên
máy tính.
+ Socket: Hỗ trợ các phương thức liên quan đến socket cho chương trình
clients ở chế độ hướng kết nối.
+ ServerSocket: Hỗ trợ các phương thức liên quan đến socket cho chương
trình server ở chế độ hướng kết nối.
+ DatagramSocket: Hỗ trợ các phương thức liên quan đến socket ở chế độ
không hướng kết nối cho cả clients và server.
+ DatagramPacket: Lớp cài đặt gói tin dạng thư tín người dùng trong giao
tiếp giữa clients và server ở chế độ không hướng kết nối.
6


1.3.1. Xây dựng chương trình clients ở chế độ hướng kết nối

Các bước tổng quát:
1.

Mở một socket kết nối đến server đã biết địa chỉ IP (hay tên miền) và số hiệu

cổng.
2. Lấy InputStream và OutputStream gán với socket
3. Tham khảo protocol của dịch vụ để định dạng đúng dữ liệu trao đổi với
server
4. Trao đổi

dữ

liệu


với

server nhờ

vào

các

InputStream và

OutputStream
5. Đóng socket trước khi kết thúc chương trình
Lớp java.net.Socket: lớp socket hỗ trợ các phương thức cần thiết để xây dựng các
chương trình clients sử dụng ở chế độ hướng kết nối. Dưới đây là một số phương thức
thường dùng để xây dựng clients
- public Socket(String HostName, int PortNumber) throws IOException: phương
thức này dùng để kết nối đến một server có tên là HostName, cổng là PortNumber. Nếu
kết nối thành công, một kênh ảo sẽ được hình thành giữa clients và server.
+ HostName : địa chỉ IP hoặc tên logic theo dạng tên miền
+ PortNumber : có giá trị từ 0 đến 65535
- public InputStream getInputStream(): phương thức này trả về InputStream nối với
socket. Chương trình clients dùng InputStream này để nhận dữ liệu từ server gửi về.
- public OutputStream getOutputStream(): phương thức này trả về OutputStream nối
với socket. Chương trình clients dùng OutputStream này để gửi dữ liệu cho server.
- public close(): phương thức này sẽ đóng socket lại, giải phóng kênh ảo, xoá kết nối
giữa clients và server.

7



CHƯƠNG 2: FILE TRANSFER PROTOCOL
2.1. Giới thiệu

- FTP là chữ viết tắc của File Transfer Protocol – Giao thức truyền file. FTP là một
giao thức truyền file trên mạng dựa trên chuẩn TCP nên rất đáng tin cậy.
- Hoạt động của FTP cần có 2 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). Hiện nay trên thị trường có rất
nhiều các trình khách và trình chủ FTP, và phần đơng các trình ứng dụng này cho phép
người dùng được lấy tự do, không mất tiền
- 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 qua lạ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.
8


- 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 hồn thiện, xong 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.
- FTP là một phương pháp truyền tập tin có truyền thống phi bảo an (khơng an tồn),
vì theo như bản thiết kế gốc đặc tả của FTP, khơng có cách nào có thể trùn tải dữ liệu
dưới hình thức mật mã hóa được. Ảnh hưởng này có nghĩa là, phần lớn các cài đặt của
mạng lưới truyền thông, tên người dùng, mật khẩu, dòng lệnh FTP và tập tin được truyền
tải, đều có thể bị người khác trên cùng một mạng lưới, "ngửi" hoặc quan sát, dùng phần
mềm phân tích giao thức (protocol analyzer) (hoặc còn gọi là "dụng cụ ngửi dữ liệu", tiếng
Anh là "sniffer"). Nên chú ý rằng đây là vấn đề thường thấy ở các giao thức của Internet
được thiết kế trước khi SSL (Secure Sockets Layer) ra đời (tạm dịch là giao thức "tầng kết
nối bảo mật"), như HTTP, SMTP và Telnet. Giải pháp thường thấy, đối với vấn đề này, là
dùng SFTP (Secure Shell File Transfer Protocol - tạm dịch là "giao thức truyền tập tin
dùng trình bao bảo mật"), một giao thức dựa trên nền của SSH, hoặc trên FTPS (FTP over
SSL). SFTP là FTP được cộng thêm chức năng mã hoá dữ liệu của SSL hoặc TLS
(Transport Layer Security - tạm dịch là "Bảo mật tầng giao vận").
- Nhiều máy chủ chạy trình chủ FTP cho phép cái gọi là "FTP nặc danh". Bố trí này
cho phép người dùng truy nhập vào máy chủ mà khơng cần có trương mục. Tên người
dùng của truy cập nặc danh thường là hai chữ 'nặc danh' hoặc một chữ 'ftp' mà thơi.
Trương mục này khơng có mật khẩu. Tuy người dùng thường bị đòi hỏi phải kèm địa chỉ
thư điện tử của mình vào, thay thế cho mật khẩu, hòng giúp phần mềm xác minh người
dùng, xong thủ tục xác minh thường là rất sơ sài và hầu như khơng có - tùy thuộc vào trình
chủ FTP đang được dùng và sự cài đặt của nó. Internet Gopher đã được đề nghị trở thành

một hình thức thay thế của FTP nặc danh.
2.2. Mục đích của giao thức FTP

Mục đích của giao thức FTP, như được phác thảo trong bản RFC, là:
9


- Khuyến khích việc dùng chung tập tin (như chương trình ứng dụng vi tính hoặc dữ
liệu)
- Khuyến khích việc sử dụng máy tính ở xa một cách gián tiếp / ngấm ngầm (implicit).
- Che đậy sự khác biệt về hệ thống lưu trữ tập tin giữa các máy chủ, hầu cho người
dùng không cần phải quan tâm đến những sự khác biệt riêng tư của chúng.
- Truyền tải dữ liệu một cách đáng tin cậy và có hiệu quả cao.
2.3. Các loại kết nối

2.3.1.Active FTP
Trong chế độ này FTP Client kết nối tới server bằng một port ngẫu nhiên, khơng
có đặt qùn. (N>1023), đến cổng lệnh của máy chủ FTP ( port 21), sau đó, ftp client
lắng nghe bằng cổng N+1 và gửi lệnh port N+1 cho máy chủ, sau đó ftp server sẽ kết
nối với ftp client port 20, và bắt đầu truyền dữ liệu
Bước 1: Client liên lạc với máy chủ, và gửi port 1027
Bước 2: Server gửi gói tin ack gửi lại về cổng lệnh của client
Bước 3: Server khởi tạo một kết nối vào cổng 1027 của client
Bước 4. Client gửi gói ack về cho server

10


Hình 2.3.1. Actice FTP
2.3.2. Passive FTP

- Trong chế độ thụ động FTP client khởi xướng cả các kết nối đến máy chủ, giải
quyết vấn đề của bức tường lửa lọc các cổng kết nối dữ liệu đến cho khách hàng từ
máy chủ. Khi mở một kết nối FTP, khách hàng sẽ mở hai cổng ngẫu nhiên khơng
có đặc qùn tại địa phương (N> 1023 và N +1). Các địa chỉ liên lạc cảng đầu tiên
trên máy chủ trên cổng 21, nhưng thay vì sau đó phát hành một PORT lệnh và cho
phép các máy chủ để kết nối trở lại vào cổng dữ liệu của nó, khách hàng sẽ cấp
PASV lệnh. Kết quả của việc này là máy chủ sau đó sẽ mở ra một cổng ngẫu nhiên
khơng có đặc quyền (P> 1023) và gửi PORT P lệnh lại cho khách hàng. Các khách
hàng khởi tạo kết nối từ cổng N +1 vào cổng P trên máy chủ để chuyển dữ liệu.
Bước 1: Client gửi yêu cầu kết nối với server( với 2 port n và n +1)
Bước 2: Server gửi port ngẫu nhiên về phía client
Bước 3: Client sử dụng port để bắt đầu một kết nối
Bước 4: Gửi ack về phía khách hàng

Hình 2.3.2.Passive FTP
11


2.4. Tìm hiểu các hệ thống FTP có

sẵn 2.4.1. FTP Client
- Là chương trình hoạt động phía máy khách cho phép người dùng thực hiện các
thao tác trên các file.Ví dụ như : CuteFTP, AbsoluteFTP, 3D-FTP, . . . . . . . .
- Hầu hết các ứng dụng trên đều có các chức năng cơ bản là : upload, download,
delete, rename, . . . .Các thao tác đều dựa trên việc tương tác lệnh giữa Client và
Server. Nhận dữ liệu từ máy chủ và hiển thị cho người dùng
- Một số FTP Client còn cho phép lọc (filter file). Nhằm giảm mức độ công việc
cho server, tăng tốc chương trình.
- Một số cịn hỗ trợ chức năng resume, mà khơng phải bất kỳ FTP Client nào
cũng có như CuteFTP. Khi việc upload/download bị ngắt giữa chừng do sự cố nào đó

thì người dùng có thể thực hiện tiếp cơng việc đó ở lần sau khi bắt đầu mở máy.
- Bên cạnh đó các FTP Client cịn cung cấp cho người dùng một hàng đợi
(Queue) làm cho người dùng cảm thấy rất thuận tiện trong việc download/upload các
files/folders ở những thư mục khác nhau trên hệ thống.
2.4.2.FTP Server
- Là chương trình hoạt động phía máy chủ, tiếp nhận yêu cầu, phản hồi thông
tin và gởi dữ liệu về cho Client. Như Server-U FTP,…
- Hầu hết các FTP Server đều có các chức năng cơ bản sau : bên cạnh phu(c vụ
các yêu cầu từ Client như yêu cầu thiết kênh trùn gởi dữ liệu, upload, download,
delete, cịn có thiết lập tốc độ truyền, cấm địa chỉ kết nối, quy định số kết nối sẽ được
tiếp nhận,…
- Ngoài ra một số Server FTP còn quản trị các user của hệ thống như : tạo
user, xoá user, cấm user, phân quyền cho user, tạo group, xóa group , thêm user vào
group hay cấp quyền cho group…Các quyền sẽ được cấp ở đây sẽ là Read (được
quyền download file), Write (được quyền upload file), Delete (được quyền xóa file),
List (được quyền duyệt thư mục), Create (được quyền tạo thư mục), Remove (được
quyền xóa thư mục) và Inherit (được quyền cho thừa kế các quyền đã có ). Mỗi user
12


khi được tạo ra trên hệ thống sẽ được cấp cho một đặc quyền tương ứng để thao tác
trên hệ thống như là No Privilege (khơng có đặc qùn nào cả chỉ là một user bình
thường), Read-only Privilege (user có đặc quyền chỉ đọc chỉ được phép vào xem
thông tin trên hệ thống), Group Administrator (user có đặc quyền này sẽ được quyền
thực hiện các thao tác trên các group như thêm group, xóa group, . . .) và System
Administrator (user có đặc qùn này sẽ có tồn qùn trên hệ thống)…
2.4.3.Giao thức FTP
- Giao thức FTP được định nghĩa bởi RFC 959. Nó cung cấp những phương
tiện để chuyển tới/từ những hệ thống máy tính từ xa. Thông thường người dùng
chuyển một file cần quyền để đăng nhập và truy nhập những file trên hệ thống từ xa.

- Một phiên làm việc FTP thông thường kéo theo sự tương tác của năm phần tử
phần mềm :

Hình 2.4.3.Một phiên làm việc FTP thông thường
+ User Interface ( Giao diện người dùng ) : Cung cấp giao diện người dùng và
điều khiển phần phiên dịch giao thức phía client.
+ Client PI ( Protocol Interpreter ) : Đây là phần phiên dịch giao thức ( PI ) phía
client. Nó phát đi những lệnh tới phần phiên dịch giao thức của server cũng như điều khiển
quá trình chuyển dữ liệu phía client.
+ Server PI : Đây là phần phiên dịch giao thức của server. Nó đáp ứng những lệnh
13


được phát đi bởi phần phiên dịch giao thức phía client và điều khiển qúa trình chuyển dữ
liệu phía server.
+ Client DTP ( Data Transfer Process ) : Đây là tiến trình chuyển dữ liệu ( DTP )
phía client, có trách nhiệm trùn thơng số với tiến trình chuyển dữ liệu phía server và hệ
thống file cục bộ.
+ Server DTP : Đây là tiến trình chuyển dữ liệu phía server, có trách nhiệm
trùn thơng số với tiến trình chuyển dữ liệu phía client và hệ thống file từ xa.
- Trong thời gian một phiên làm việc FTP sẽ có hai kết nối mạng riêng biệt, một

giữa các PI và một giữa các DTP. Kết nối giữa các PI được gọi là kết nối điều khiển
( control connection ) . Kết nối giữa các DTP được gọi là kết nối dữ liệu (data connection).
Các kết nối điều khiển và dữ liệu sử dụng giao thức TCP.

- Thường thì FTP server lắng nghe trên port thông dụng là port thứ 21 cho những
yêu cầu kết nối điều khiển. Việc lựa chọn port cho kết nối dữ liệu phụ thuộc vào những
lệnh được phát đi trên kết nối điều khiển. Theo quy ước, phía client gởi một thông báo
điều khiển chỉ cho biết số port tại đó phía client đã chuẩn bị sẵn để nhận một yêu cầu

kết nối dữ liệu vào.
- Việc sử dụng những kết nối riêng biệt cho điều khiển và dữ liệu có lợi là hai kết
nối có thể lựa chọn những chất lượng dịch vụ khác nhau như : khoảng trì hỗn tối thiểu
cho kết nối điều khiển và cực đại cho kết nối dữ liệu, nó cũng tránh những vấn đề của
việc cung cấp các mã thoát ( escape sequences ).

14


CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH
3.1. Sơ đồ biều diễn quá trình xử lý các chức năng

3.1.1.Sơ đồ tổng quát:

Hình 3.1.1.Sơ đồ hoạt động tổng quát
3.1.2. Sơ đồ chức năng:

Hình 3.1.2.Sơ đồ chức năng chương trình

15


3.2. Một số lưu đồ thuật tốn cho q trình xử lý của FTP Client

3.2.1. Lưu đồ xủa lý Connect:

Hình 3.2.1. Lưu đồ xử lý Connect

16



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×