1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án lậptrình mạng Đề tài xây dựng chương trình truyền file dựa trên giao thức ftp bằng ngôn ngữ python

38 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Chương Trình Truyền File Dựa Trên Giao Thức FTP Bằng Ngôn Ngữ Python
Tác giả Nguyen Quoc Huy
Người hướng dẫn THS. Nguyễn Thanh Cam
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt - Hàn
Chuyên ngành Khoa Học Máy Tính
Thể loại đồ án
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 38
Dung lượng 4,61 MB

Nội dung

Đ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/öP, 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

Trang 1

TRUYEN THONG VIET - HAN KHOA KHOA HQC MAY TINH

VU

ĐỎ ÁN LẬP TRÌNH MẠNG

DE TAI: XAY DUNG CHUONG TRINH TRUYEN FILE DUA

TREN GIAO THUC FTP BANG NGON NGU PYTHON

Sinh viên thực hiện - NGUYEN QUOC HUY - 211T555

Lớp :21SE2

Giảng viên hướng dẫn : THS NGUYÊN THANH CÁM

Đà Nẵng, ngày 12 tháng ] năm 2024

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ

TRUYEN THONG VIET - HAN

KHOA KHOA HOC MAY TINH

VU

ĐỎ ÁN LẬP TRÌNH MẠNG

DE TAI: XAY DUNG CHUONG TRINH TRUYEN FILE DUA TREN

GIAO THUC FTP BANG NGON NGU PYTHON

Sinh viên thực hiện - NGUYEN QUOC HUY - 211T555

Lớp :21SE2

Giảng viên hướng dẫn : THS NGUYÊN THANH CÁM

Đà Nẵng, ngày 12 tháng ] năm 2024

Trang 3

LỜI CÁM ƠN

Em xin chân thành cảm ơn các thầy cô và các bạn đã đành thời gian giúp đỡ chúng

em trong quá trình thực hiện đồ án này Đặc biệt, em xim chân thành cảm ơn thầy

Nguyễn Thanh Cam là người hướng dẫn cho đề tài của chủng em Là người tận tình giúp

đỡ chúng em về thông tin của đồ án môn học Nhờ vậy mà chúng em đã hoàn chỉnh được

đồ án của mình và quan trọng hơn hết là chúng em đã tiếp thu được những kinh nghiệm

trong suốt quá trình thực hiện đồ án Tuy nhiên, vì đây là lần đầu em thực hiện một dự án

cho bản thân mặc dù đã tìm tG¡ nghiên cứu nhưng không tránh khỏi những thiếu sót

ưới đây là kết quả của quá trình tìm hiểu và nghiên cứu mà em đã đạt được trong thời gian vừa qua Tuy có nhiều cô gắng học hỏi trau dỗi để nâng cao kiến thức nhưng

không thể tránh khỏi những sai sót, o cữn nhiều hạn chế về trình độ cũng như thời gian

nên đề tài này sẽ không tránh khỏi sai sót Em rất mong nhận được sự chỉ bảo góp ý của các thây cô và các bạn dé giúp em hoàn thiện nó tốt hơn

Trang 4

Đồ án lập trình mạng

NHẬN XÉT

(Giảng viên hướng dẫn)

Giảng viên hướng dẫn (Kí và ghi rõ họ tên)

Trang 5

MỤC LỤC

II ~.'.ö: na 6

2.1 Tìm hiểu về giao thức ùTP 5 SE HE H115 1 E1 tr ryg 7

2.1.1 Khái niệm giao thức ùTP T1 c1 1112112111111 1811201118111 ke 7

2.1.2 _ Tông quan về giao thức ùTP - 5c sctT xEE121211 21212211 12111 rờg 8

2.2 Mô hình hoạt động của giao thức ùÏTP c1 11221122211 1122222 211 re 8

2.2.2 Các tiến trình phía SeTVe s SE 1 E112 121101 2111 tre 9

2.2.3 Các tiến trình phía Client 5-51 tt E121 11511212 1E E1 HH ga 10

2.2.4 Trinh tự truy cập và chứng thực ùÏTP L1 2112 v1 nen He 10

2.3 Các phương thức truyền đữ liệu 5 s2 E121 112.1 11 t2 xen II 2.3.1 Sftreammod:, -L T n1 1S 1H11 1 1111111111111 1111111111811 1E ng ru II 2.3.2 Block mod: L2 2212 v11 11 11111511 11t 511k II P93 on ea II

2.5 _ Quản lý kênh dữ liệu ùTP - ó2 212211212 11211 1111151171 12121 1211118115111 xe 14

2.5.1 Kết nối kênh dữ liệu đạng chủ động: 2 1 2212222122222 ớy 14

2.5.2 _ Kết nối kênh đữ liệu dạng bị động: - 5 SE HH ngưng 15

2.5.3 Vấn đề về phương thức kết nỒi: s- 5s 1S ềE E112 18122121 8 mg l6 2.6 _ Các lệnh quan trọng trong ÙTTP - c2: 112 121125115 1111111511511 1 8 1x re 17

3.1.1 Yêu cầu chức năng 5s t2 E111 11 121111 2211 HH tuệ 20

Trang 6

Đồ án lập trình mạng

3.1.2 _ Yêu cầu phi chức năng 55 ST T1 HH He 20

3.2 _ Xác định ca sử dụng 2 2 1n H122 HH T11 11H11 key 20 Đặc tả ca sử dỤụng L2 LH n n2 nàn HH HH kx HH KH HH KH key 21

3.3 Biéu do trong hop str dung cececcccesceccssesessesscsvesesesessvsvsesevsvsvsrsevseseseveceeees 22

3.3.1 Biéu d6 hoat dO gi ceccccceccsccsvecessesvssesecsssesessessesessvsecevssesevevsvsesetecevsseeees 22

4.1 Các trang chính của chương trình 2c 22 2221212111111 221111121211 Hgyhưey 27

4.2 _ Cấu hình chương trình 5c SE 11 2121111111121 1 111 111 En tre 29

4.3 ùorm Upload ẨiÏe: L1 202221111211 1211 1211112115111 1115511111111 11H key 30

4.4 — ùorm ownload fiÌe - c c ST S ng 11101111 tk S1 0551k ky 32 2:' m1 TT 33

ĐỒ ÁN LẬP TRÌNứ MẠNG Trang 4

Trang 7

Chuong1 GIỚI THIỆU

1.1 Đặt vấn đề

1.1.1 Tên đề tài

“XÂY ỰNG CứƯƠNG TRÌNứ TRUYÊN ùỏLE UA TRÊN GỏAO TứỨC ùTP BANG NGON NGU PYTứON”

1.1.2 Béi canh thuc hiện đề tài

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ủ

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 uTP (tile Transfer Protocol) théng qua mang ontemet

Trong môi trường ỏnternet, khi cần truyền nhận file các ñle 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 fñle bằng giao thức ùTP sử dụng chương trình ỏnternet 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 ñle 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

ỏnternet Như vậy chương trình phải hỗ trợ lấy nhiều ñle đồ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 chi oP

Người sử dụng cũng có nhu cầu lấy fñle bằng nhiều giao thức khác nhau như ùTP (ùie Transfer Protocol), ứ TP (úyperText 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 ùTP

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 điệ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é dang hon Chương

Trang 8

Đồ án lập trình mạ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 TP client như tạo thư mục,

xóa thư mục, xóa file, thay đổi thư mục,

113 Mục tiểu

Mục đích của giao thức uTP:

Khuyến khích việc dùng chung Ññle

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ữ file giữa các máy chủ(host)

Truyền đữ liệu một cách tin cậy và hiệu quả

Mục tiêu của đề tài:

Tạo một ứng dụng ùTP client chạy trên bất kỳ máy nào

Ứng dụng cho phép kết nỗi với ùTP Server thông qua hosting, người dùng có thể upload hoặc download file từ chương trình về máy tính

Nghiên cứu tìm hiểu về giao thức ùTP, cách thức hoạt động, ưu nhược điểm của

giao thức này

Trang 9

Chương2 CƠ SỞ LÝ THUYẾT

2.1 Tìm biểu về giao thức EFTP

2.1.1 Khải niệm giao thức FTP

TP (viết tắt của ùie Transfer Profocol, dịch ra là "Giao thức truyền tập tin") 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/ỏP

(chăng hạn như ỏnfernet - mạng ngoại bộ - hoặc ỏntranet - mạng nội bộ)

ứoạt động của ùTP cần có hai máy tính, một máy chủ và một máy khách) Máy chủ ùTP, đùng chạy phần mềm cung cấp địch vụ ùTP, gọi là trình chủ, lắng nghe yêu cầu

về đị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 ùTP đà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 ùTP 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ủ ùTP hoặc trình khách ùTP ứầ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 ùTP Đ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/öP, 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 ùTP) tiện nay trên thị trường có rất nhiều các trình khách và trình chủ ùTP, 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

Trang 10

2.2 Mô hình hoạt động của giao thức FTP

2.2.1 Tiến trình Server-FTP và [ser-FTP

ùTP là một giao thức dạng client/server truyền thống, tuy nhiên thuật ngữ client thông thường được thay thế bằng thuật ngữ user — người dùng — do thực tế là người sử dụng mới là đối tượng trực tiếp thao tác các lệnh ùTP trên các máy client Bộ phần mềm

ùTP được cài đặt trên một thiết bị được gọi là một tiễn trình Phần mềm ùTP được cài đặt

trên máy Server được gọi là tiến trình Server-ùTP, và phần trên máy client được gọi là

tiễn trình User-ùTP

Trang 11

FTP Client

User-FTP Process

FTP Server Server-FTP Process

Control Connection

User Data ve an my, Server Data ansfer Process | Data Connection Transfer Process (User-DTP) Ne “| (Server-DTP)

User Protocol Interpreter (User-Pl) ì

Client Server File System File System

Hinh 2 Tién trinh Client — Server

0 các chức năng điều khiển và đữ liệu sử dụng các kênh khác nhau, nên mô hình

hoạt động của ùTP cũng chia phần mềm trên mỗi thiết bị ra làm hai thành phần logic tương ứng với mỗi kênh Thanh phan Protocol ỏnterpreter (Pỏ) là thành phần quản lý kênh điều khiến, với chức năng phát và nhận lệnh Thành phần ata Transfer Process (TP)

có chức năng gửi và nhận dữ liệu giữa phía client với server Ngoài ra, cung cấp cho tiến trình bên phía người dùng cGn có thêm thành phân thứ ba là giao diện người dùng ùTP - thành phần này không có ở phía server

o đó, có hai tiễn trình xảy ra ở phía server, và ba tiến trình ở phía client Cac tiễn

trinh này được gắn với mô hình ùTP đề mô tả chỉ tiết hoạt động của giao thức ừTP

2.2.2 Các tiến trình phía Server

Các tiến trình phía server bao gồm hai giao thức:

- Server Protocol onterpreter (Server-P6): chiu trách nhiệm quản lý kênh điều khiên trên server Nó lắng nghe yêu cầu kết nối hướng tới từ users trên công dành riêng Khi kết nối đã được thiết lập, nó sẽ nhận lệnh từ phía User-Pỏ, trả lời lại, và quản

lý tiễn trình truyền dữ liệu trên server

-_ Server atalransfer Process (Server-TP): làm nhiệm vụ gửi hoặc nhận file từ bộ phận User-TP Server-TP vừa làm nhiệm thiết lập kết nối kênh đữ liệu và lắng nghe một kết nối kênh đữ liệu từ user Nó tương tác với server file trên hệ thống cục bộ đề đọc và chép file

Trang 12

Đồ án lập trình mạng

2.2.3 Các tiến trình phía Client

- User Protocol ỏnterpreter (User-Pỏ): chịu trách nhiệm quản lý kênh điều khiền phía client Nó khởi tạo phiên kết nổi ùTP bằng việc phát ra yêu cầu tới phía Server-Pỏ

Khi kết nối đã được thiết lập, nó xử lý các lệnh nhận được trên giao diện người

dùng, gửi chúng tới Server-Pỏ, và nhận phản hồi trở lại Nó cũng quản lý tiến trình

User-TP

- User ata Transfer Process (User-TP): la b6 phan TP nam ở phía người dùng, làm nhiệm vụ gửi hoặc nhận dữ liệu từ Server-TP User-TP có thê thiết lập hoặc lắng nghe yêu cầu kết nối kênh dữ liệu trên server Nó tương tác với thiết bị lưu trữ file phía client

- _ User ỏnterface: cung cấp giao diện xử lý cho người dùng Nó cho phép sử dụng các lệnh đơn giản hướng người dùng, và cho phép người điều khiển phiên ùTP theo dõi được các thông tin và kết quả xảy ra trong tiến trình

2.2.4 Trình tự truy cập và ching thuc FTP

Quy luật chứng thực trong ùTP khá đơn giản, chỉ là cung cấp username/password

Trỉnh tự của việc chứng thực như sau:

Bước 1: Người dùng gửi một username từ User-Pỏ tới Server-Pỏ bằng lệnh USER Sau đó password của người đùng được gửi đi bằng lệnh PASS

Bước 2: Server kiểm tra tên người dùng và password trong database người dùng của nó Nếu người dùng hợp lệ, server sẽ gửi trả một thông báo tới người dùng rằng phiên kết nối

đã được mở Nếu người dùng không hợp lệ, server yêu cầu người dùng thực hiện lại việc chứng thực Sau một số lần chứng thực sai nhất định, server sẽ ngắt kết nối

Giả sử quá trình chứng thực đã thành công, server sau đó sẽ thiết lập kết nói đề cho phép từng loại truy cập đối với người dùng được cấp quyền Một số người dùng chỉ

có thê truy cập vào một số file nhất định, hoặc vào một số loại file nhất định Một số

server có thê cấp quyền cho một số người dùng đọc và viết lên server, trong khi chỉ cho phép đọc đối với những người dùng khác Người quản trị mạng có thê nhờ đó mà dap ứng đúng các nhu cầu truy cập ùTP

Một khi kết nối đã được thiết lập, server có thê thực hiện các lựa chọn tài nguyên dựa vào nhận điện người dùng

Ví dụ: trên một hệ thống nhiều người dùng, người quản trị có thê thiết lập ùTP đề khi có bất cứ người dùng nào kết nối tới, người dùng sẽ tự động được đưa tới “home directory” cla chính người dùng Lệnh tùy chọn ACCTT (account) cũng cho phép người

dùng chọn một tài khoản cá nhân nào đó nêu như người dùng có nhiều hơn một tài khoản

Trang 13

2.3 Các phương thức truyền dữ liệu

2.3.1 Stream mode:

Trong phương thức này, đữ liệu được truyền đi dưới dạng các byte không cấu trúc

liên tiếp Thiết bị gửi chỉ đơn thuần đây luỗng dữ liệu qua kết nối TCP tới phía nhận

Không có một trường tiêu đề nhất định được sử dụng trong phương thức này làm cho nó khá khác so với nhiều giao thức gửi đữ liệu rời rạc khác Phương thức này chủ yêu dựa vào tính tin cậy trong truyền dữ liệu của TCP, o nó không có cầu trúc dạng header, nên

việc báo hiệu kết thúc ñle sẽ đơn giản được thực hiện việc phía thiết bị gửi ngắt kênh kết

nối đữ liệu khi đã truyền xong

Trong số ba phương thức, stream mode là phương thức được sử dụng nhiều nhất

trong triên khai ùTP thực tế Có một số lý do giải thích điều đó

- _ Trước hết, nó là phương thức mặc định và đơn giản nhất, do đó việc triển khai nó

là dễ đàng nhất

- _ Thứ hai, nó là phương thức phố biến nhất, vì nó xử lý với các file đều đơn thuần như là xử lý dGng byte, mà không đê ý tới nội dung của các file

- Thứ ba, nó là phương thức hiệu quả nhất vì nó không tốn một lượng byte

“overload” dé thong bao header

Ví dụ: nếu người dùng đang truyền đi một file qua internet với modem tuong ty, modem của người dùng thông thường sẽ thực hiện việc nén ở lớp l; các file lớn trên ùTP

server cũng thường được nén sẵn với một số định đạng như ZöP, làm cho việc nén tiếp tục khi truyền đỡ liệu trở nên không cần thiết

Trang 14

Đồ án lập trình mạng

2.4 Các kiểu dữ liệu

Các cách biểu diễn dữ liệu được xử lý trong ùTP nhờ một user mô tả một kiểu

biểu diễn Kiểu này có thê định nghĩa ngầm (như trong ASCỏỏ hoặc EBCỏC) hay rõ ràng (như trong Local byte) một byte size để giải thích mà nó được đề cập tới như là

“logical byte size.” Lưu ý rằng đây không phải là byte size dùng cho việc truyền qua data connection, được gọi là “transfer byte size”, và không nên nhằm lẫn hai điều này Ví dụ, NVT-ASC66 co mét logical byte size dai 8-bit Néu type la Local byte, thì lệnh TYPE co một thông số bắt buộc thứ hai mô tả logical byte size Transfer byte size luôn luôn là 8- bịt

- Kiểu ASCỏỏ:

Đây là type mặc định và phải được chấp nhận bởi mọi hiện thực ùTP Nó được

nhằm chủ yếu cho việc truyền các text file, trừ khi cả hai host thấy rằng EBCỏC

type tiện lợi hơn

Máy gửi (sender) chuyển đôi dữ liệu từ một cách biểu dién ky ty bên trong thành cach biéu dién NVT-ASC66 8-bit chuan (xem m6 ta Telnet) May nhan (receiver)

sé chuyén dir liéu tir dang chuan thành dạng bên trong của nó

Theo chuẩn NVT, chuỗi <CRLù> nên được sử dụng khi cần ký hiệu kết thúc một

dGng van ban (Xem phan noi vé file structure ở cuối phần Biểu điển và lưu trữ đữ

Type nay nhằm đề truyền hiệu quả giữa các host sử dụng EBCOC dé biéu diễn ký

tự bên trong của chúng

Để truyền, dữ liệu được biểu diễn như các ky tw EBCOC 8-bit Ma ky ty la sw

khác biệt duy nhất giữa các mô tả chức năng của các type ASCỏỏ và EBCóC End-oÊ.Line (ngược lại với end-of-record — xem thảo luận về structure) có lẽ sẽ ít được dùng với type EBCóC nhằm các mục đích ký hiệu structure, nhưng khi cần

thiết ký tự <NL> nên được sử dụng

- Kiêu ỏmage:

Trang 15

ữ liệu được gởi như các bit liên tục và, để truyền, được gói (pack) thành các byte truyền 8-bit Site nhận phải lưu đata như các bít liên tục Cấu trúc của hệ thông lưu trữ có thê cần đến sự độn (padding) vào file (hoặc vào mỗi record, đối với file có cầu trúc record) đến một giới hạn phù hợp nào đó (byte, word hoặc block) Sự độn thêm vào này, phải đều là zero, và chí có thể xuất hiện ở cuối file (hoặc ở cuỗi mỗi record) và phải có một cách nhận ra các padding bít này đề có thể bỏ chúng ra nêu file duoc lay lai Sự biến đổi padding nên được đưa ra công khai để cho phép một

user xử lý một file ở site lưu trữ

ỏmage type được nhằm để lưu trữ hiệu quả và lấy lại fle và để truyền đữ liệu

binary Type này được đề nghị mọi hiện thực ùTP phải chấp nhận

được gói (pack) một cách liên tục, bất chấp các ranh giới transfer byte và với bất

kỳ padding nào cần thiết ở cuối

Khi dữ liệu đến host nhận, nó sẽ được biến đôi theo một cách phụ thuộc vào

logical byte size và host riêng Sự biến đôi này phải có thê đảo ngược (tức là một file giống hệt có thê được nhận lại nếu cùng các thông số được sử dụng) và nên được công khai rộng rãi bởi các nhà hiện thực ùTP (TP implementor)

Ví dụ, một user gởi các s6 dau cham dong 36-bit đến một host có word 32-bit có

thê gởi đữ liệu đó như Local byte với một logical byte size là 36 ứost nhận sẽ được chờ đợi lưu trữ các logical byte đề chúng có thê để dàng được xử lý: trong ví

dụ này chỉ cần đặt cac 36-bit logical byte nay vao cac 64-bit double word Một ví dụ khác, hai host c6 mét 36-bit word size co thé gởi đữ liệu cho nhau theo

các word nho str dung TYPE L 36, ữ liệu sẽ được gởi theo các §-bif transmission

byte được gói đề 9 transmission byte chứa hai host word

Trang 16

Đồ án lập trình mạng

Mét character file cd thé duoc truyén đến một host vì một trong ba mục đích: dé

¡m, để lưu trữ và sau đó lấy lại, hoặc để xử lý Nếu một ñle được gởi dé in, host

nhận phải biết cách vertical format control được biêu diễn Trong trường hợp thứ

hai, phải có thể lưu trữ một file ở một host và sau đó nhận lại nó chính xác ở cùng đạng Cuối cùng, nên có thé chuyén một file từ một host này đến một host khác và

xu ly file ở host thứ hai mà không có vấn đề gì Một format ASCỏỏ hoặc EBCỏC

đơn lẻ thì không thỏa mãn tất cả những điều kiện này, o đó những type này có một thông số thứ hai mô tả một trong ba format sau đây: Non prit, telnet format controls, carriage control (ASA)

2.5 Quán lý kênh dữ liệu FTP

2.5.1 Kết nối kênh dữ liệu dạng chủ động:

Phương thức đầu tiên đôi khi cGn được gọi là kết nối kênh đữ liệu dạng thông thường (vì nó là phương pháp mặc định) và đôi khi được gọi là kết nối đạng chủ động (để

đôi chiều với dạng kết nối bị động mà ta sẽ xét ở phần sau) Trong dạng kết nối này, phía

Server- TP khởi tạo kênh dữ liệu bằng việc mở một công TCP cho phía User-TP Phía

server sử dụng công được dành riêng, là công 20 cho kênh dữ liệu Trên máy client, một

gia tri công được chọn theo mặc định chính là công được sử dụng đối với kênh điều

khiến, tuy nhiên phía client sẽ luôn chọn hai công riêng biệt cho hai kênh này

Giả sử phía User-Pỏ thiết lập một kết nối điều khiển từ công bất kỳ của nó là 1678

toi công điều khiến trên server là công 21 Khi đó, để tạo một kênh dữ liệu cho việc

truyền dữ liệu, phía Server-Pỏ sẽ báo cho phía Server-TP khởi tạo một kênh kết nối TCP từ cổng 20 tới công 1678 của phía client Sau khi phía client chấp nhận kênh được

khởi tạo, dữ liệu sẽ được truyền di

Thực tế, việc sử dụng cùng một công cho cả kênh dữ liệu và kênh điều khiển không phải là một ý hay, nó làm cho hoạt động của ùTP trở nên phức tạp o đó, phía

client nên chỉ định sử dụng một công khác bằng việc sử dụng lệnh PORT trước khi truyền đữ liệu

Ví dụ: Giả sử phía client chỉ định công 1742 với lệnh PORT Phia Server-TP sau

đó sẽ tạo ra một kết nối từ cổng 20 của nó tới công 1742 phía client thay vì cổng 1678 như mặc định Quá trình này được mô tả trong hình dưới đây

Trang 17

———

(Send/Receive Data) (Send/Receive Data)

Hình 3 Kết noi dạng chủ động

Thông thường, đối với kênh đữ liệu ùTP, phía server sẽ khởi tạo việc truyền đữ liệu bằng

cách mở kết nối đữ liệu tới client

Trong trường hợp trên, phía client trước tiên sẽ đưa ra lệnh PORT để yêu cầu server sử dụng công 1742 Sau đó, server sẽ mở kết nối kênh đữ liệu từ công 20 mặc định của nó tới công 1742 phía client, ữ liệu sau đó sẽ được truyền giữa các thiết bị qua các cổng nảy

2.5.2 Kết nối kênh dữ liệu dạng bị động:

Phương pháp kê tiếp được gọi là kết nói đữ liệu đạng bị động Phía client sẽ nhận

server là phía bị động, làm nhiệm vụ chấp nhận một yêu cầu kết nối kênh dữ liệu được khởi tạo từ phía client Server trả lời lại phía client với địa chỉ óP cũng như địa chỉ công

mà nó sẽ sử dụng Phía Server-TP sau đó sẽ lắng nghe một kết nối TCP từ phía User- -_ TP trên cổng này

Mặc định, phía client sử đụng cùng một cổng đối với cả hai kênh điều khiển và dữ liệu như trong trường hợp kết nối chủ động ở trên Tuy nhiên, ở đây, một lần nữa phía

client có thể chọn sử dụng một giá trị công khác cho kênh đữ liệu

Ta sẽ xét lại ví dụ ở trên một lần nữa, với công điều khiển phia client la 1678 to công 21 phía server Nhưng lần này truyền dữ liệu theo phương thức kết nối bị động, như

mô tả trong hình dưới đây:

Trang 18

— 2

lá ——] L To Use Port 2223 Data Connection Data Capnection (Port 1742) (Pạr223)

9 Open Data Connection 'o Server Port 2223 —-

4 Acknowledge Data Connection

(Send/Receive Data) (Send/Receive Data)

Hình 4 Kết nổi dang bj động

Phia client sẽ sử dụng lệnh PASV đề yêu cầu server rằng nó muốn dùng phương

thức điều khiển dữ liệu bị động Phía Server-Pỏ sẽ trả lời lại phía client với một giá trị

công mà client sẽ sử dụng, từ cổng 2223 trên nó Sau đó phía Server Pỏ sẽ hướng cho phía Server-TP lắng nghe trên công 2223 Phía User-Pỏ cũng sẽ hướng cho phía User- -_TP tạo một phiên kết nối từ công 1742 phía client tới công 2223 phía server Sau khi

Server chap nhận kết nối này, dữ liệu bắt đầu được truyền di

2.5.3 Vấn đề về phương thức kết nỗi:

Vấn đề phía nào là phía khởi tạo kết nỗi kênh dữ liệu đưa ra một câu hỏi: sự khác

nhau giữa hai phương thức là gì? Điều này cũng giống như việc hỏi ai đã thực hiện một

cuộc điện thoại nội bộ Câu trả lời là sự bảo mật Việc ùTP sử dụng nhiều hơn một kết

nối TCP có thê giải quyết các vấn đề về phần mềm cũng như về phần cứng mà người

dùng cần phải có dé dam bảo sự an toàn cho hệ thống của họ

Khi xem xét việc gì sẽ xảy ra trong trường hợp kênh dữ liệu chủ động như trong ví dụ phía trên:

Đối với phía client, có một kênh kết nối điều khiển được thiết lập từ công 1678 client tới công 21 server Nhưng kênh đữ liệu lại được khởi tạo từ phía server, o đó,

client sẽ nhận được một yêu cầu kết nối tới công 1678 (hoặc công nào khác) Một số

client sẽ nghĩ ngờ về việc nhận được những kết nối tới như vậy, vì trong tình huống

thông thường, client mdi là phía khởi tạo kết nối chứ không phải đáp trả kết nối, o các kênh kết nối TCP hướng tới có thê mang theo những mối đe dọa nhất định, một số client

có thể sẽ ngăn chặn các luỗng kết nỗi hướng tới bằng việc sử đụng tường lửa

Tại sao người ta lại không làm cho phía client luôn chấp nhận kết nối từ một chỉ số

port được dùng trong kênh điều khiển? Vẫn đề ở đây là vì client thường dùng các công

Trang 19

khác nhau cho mỗi phiên kết nỗi bằng việc sử dụng câu lệnh PORT Và tại sao điều này

lại được thực hiện? Vì theo luật TCP: sau khi một kết nối được đóng lại , có một khoảng thời gian trống trước khi cổng đó có thể được sử dụng lại — điều này đề ngăn ngừa tình trạng các phiên kết nối liên tiếp bị lẫn với nhau Điều này sẽ tạo ra độ trễ khi gửi nhiều file — do đó phía client thường dùng các giá trị công khác nhau cho mỗi kết nối Điều này rất hiệu quả nhưng cũng dẫn tới việc firewall cua client sé hdi có chấp nhận phiên kết nối tới với nhiều giá trị công không ồn định hay không

Việc dùng kết nối kiểu kênh gián tiếp sẽ giảm thiểu vẫn đề này một cách hiệu quả Phân lớn các tường lửa có nhiều vấn đề liên quan tới kết nối hướng về với các giá trị công bát kỳ, hơn là gặp vẫn đề với các kết nối hướng đi Ta có thể xem chỉ tiết hơn về vấn đề này trong chuân RùC 1579 Chuẩn này khuyến nghị rằng phía client nén str dụng

kết nối kiều bị động làm dạng mặc định thay vì sử dụng kiểu kết nối đạng chủ động cùng

với lệnh PORT, đề ngăn chặn tình trạng block theo công

Tắt nhiên, phương thức kết nối kiểu bị động không hoàn toàn giải quyết được vấn

đề, chúng chỉ đây vấn đề về phía server mà thôi Phía server, giờ đây phải đối mặt với việc có nhiều kênh kết nối hướng về trên hàng loạt các cổng khác nhau Tuy nhiên việc

xử lý các vấn đề bảo mật trên một nhóm nhỏ server vẫn đễ hơn nhiều so với việc phải đối

mặt với một lượng lớn các vấn đề từ nhiều client ùTP server phải được cấu hình chấp nhận phương thức truyền bị động từ client, do đó cách thông thường để thiết lập trên server là thiết lập chấp nhận một số công kết nối hướng về trên server trong khi vẫn khóa các yêu cầu kết nổi hướng về trên các công khác

Ngày đăng: 19/12/2024, 15:32

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN