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

TÌM HIỂU VỀ GIAO THỨC TRUYỀN NHẬN FILE (FTP)

32 176 2

Đ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 đề Tìm Hiểu Về Giao Thức Truyền Nhận File (FTP)
Tác giả Nguyễn Chí Ngọc
Trường học Trường Đại Học
Chuyên ngành Mạng IP
Thể loại Bài Tập Lớn
Định dạng
Số trang 32
Dung lượng 1,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

FTP (File Transfer Protocol) nghĩa là Giao thức truyền tập tin là một trong những giao thức Internet trên tầng ứng dụng, thường được dùng để sử dụng để lưu trữ, trao đổi file qua mạng lưới truyền thông dùng giao thức TCPIP. Nhờ vào giao thức này nên người sử dụng có thể tải dữ liệu như hình ảnh, văn bản, các tập tin nhạc, video... từ máy tính của mình lên máy chủ đang đặt ở một nơi khác hoặc tải các tập tin đã có trên máy chủ về máy tính cá nhân của mình một cách dễ dàng. FTP cũng là giao thức dùng để truyền tải dữ liệu web lên máy chủ web cho dù máy chủ đặt rất xa. Giao thức FTP được sử dụng nhiều nhất vào mục đích truyền tải dữ liệu, rút gọn thời gian cũng như đáp ứng nhu cầu của việc tải và truyền đi của các dữ liệu dung lượng lớn một cách nhanh chóng.

Trang 1

MỤC LỤC

CHƯƠNG I GIỚI THIỆU FTP SERVER 2

CHƯƠNG II MÔ HÌNH CƠ BẢN FTP VÀ NGUYÊN LÝ HOẠT ĐỘNG 3

CHƯƠNG III TÍNH BẢO MẬT CỦA FTP 7

CHƯƠNG IV THIẾT LẬP KÊNH ĐIỀU KHIỂN VÀ CHỨNG THỰC NGƯỜI DÙNG 7

CHƯƠNG V DỮ LIỆU VÀ QUẢN LÝ DỮ LIỆU FTP 9

CHƯƠNG VI CÁC PHƯƠNG THỨC TRUYỀN DỮ LIÊU TRONG FTP 14

CHƯƠNG VII COMMAND VÀ REPLY CODES CỦA FTP 16

CHƯƠNG VIII THỰC HIỆN MÔ PHỎNG 16

PHỤ LỤC: MỘT SỐ LỆNH COMMAND PHỔ BIẾN 20

TÀI LIỆU THAM KHẢO 32

Trang 2

CHƯƠNG 1: GIỚI THIỆU FTP SERVER

FTP (File Transfer Protocol) nghĩa là "Giao thức truyền tập tin" là một trong những giao

thức Internet trên tầng ứng dụng, thường được dùng để sử dụng để lưu trữ, trao đổi file qua mạng lưới truyền thông dùng giao thức TCP/IP Nhờ vào giao thức này nên người sử dụng có thể tải dữ liệu như hình ảnh, văn bản, các tập tin nhạc, video từ máy tính của mình lên máy chủ đang đặt ở một nơi khác hoặc tải các tập tin đã có trên máy chủ về máy tính cá nhân của mình một cách dễ dàng FTP cũng là giao thức dùng để truyền tải dữ liệu web lên máy chủ web cho dù máy chủ đặt rất xa Giao thức FTP được sử dụng nhiều nhất vào mục đích truyền tải dữ liệu, rút gọn thời gian cũng như đáp ứng nhu cầu của việc tải và truyền đi của các dữ liệu dung lượng lớn một cách nhanh chóng

Hình 1: Giới thiệu về FTP

Giống như hầu hết các giao thức TCP/IP, nó dựa trên mô hình client-server, với một FTP client trên máy tính người dùng tạo ra một kết nối đến một FTP server để gửi và lấy các tập tin đến và đi từ các máy chủ Những mục tiêu chính của FTP là để làm cho chuyển tập tin đơn giản, và che chắn người dùng từ việc thực hiện chi tiết về làm thế nào các tập tin đang thực sự di chuyển từ một nơi khác Để kết thúc, FTP được thiết kế để tự động đối phó với nhiều vấn đề có khả năng phát sinh do có sự khác biệt về định dạng tập tin được lưu trữ trên hệ thống khác nhau

Để đảm bảo rằng các tập tin được gửi và nhận được mà không làm mất dữ liệu có thể hỏng chúng, FTP sử dụng giao thức điều khiển truyền dẫn tin cậy tại tầng giao vận Một

hệ thống xác thực được sử dụng để đảm bảo rằng máy khách ủy quyền chỉ được cho phép

để truy cập vào một máy chủ Cùng lúc đó, một tính năng đôi khi được gọi là ẩn danh

Trang 3

FTP cho phép một tổ chức mong muốn nó để thiết lập một máy chủ tổng hợp thông tin

để cung cấp các tập tin cho bất cứ ai có thể lấy chúng

Sau khi một kết nối TCP được thiết lập, một điều khiển kết nối FTP được tạo ra Nội bộ lệnh FTP được truyền qua kết nối logic này dựa trên định dạng quy tắc được thiết lập bởi các giao thức Telnet Mỗi lệnh được gửi bởi các khách hàng sẽ nhận được một trả lời từ máy chủ để thông báo nó đã thành công hay thất bại Kết nối dữ liệu được thiết lập cho mỗi dữ liệu cá nhân được chuyển FTP hỗ trợ cả kết nối dữ liệu bình thường hoặc thụ động, cho phép các máy chủ hoặc khách hàng đều có thể bắt đầu kết nối dữ liệu Nhiều loại dữ liệu và các loại tệp được hỗ trợ để cho phép sự linh hoạt với nhiều loại hình dịch

CHƯƠNG 2: MÔ HÌNH CƠ BẢN FTP VÀ NGUYÊN LÝ HOẠT ĐỘNG

2.1 Mô hình kết nối

Giao thức FTP sử dụng kết nối TCP, nhưng nó không chỉ dùng một kênh TCP như phần lớn các giao thức truyền thông khác Quá trình truyền nhận dữ liệu giữa Client và Server được tạo nên từ 2 tiến trình TCP logic là Control Connection và Data Connection:

• Control Connection (kênh điều khiển) : đây là kênh logic TCP được dùng để khởi tạo

một kết nối FTP Nó được duy trì xuyên suốt kết nối FTP và được sử dụng chỉ để truyền các thông tin điều khiển, như các lệnh và các hồi đáp trong FTP Nó không được dùng để truyền file

• Data Connection (Kênh dữ liệu): Mỗi khi dữ liệu được truyền từ server tới client, một

kênh kết nối TCP nhất định lại được khởi tạo giữa chúng Dữ liệu được truyền đi qua kênh kết nối này – do đó nó được gọi là kênh dữ liệu Khi file được truyền xong, kênh này được ngắt Việc sử dụng các kênh riêng lẻ như vậy tạo ra sự linh hoạt trong việc truyền truyền dữ Tuy nhiên, nó cũng tạo cho FTP độ phức tạp nhất định

Trang 4

Hình 2: Mô hình kết nối TCP trong FTP

Quá trình trao đổi dữ liệu giữa client - server bao gồm:

• Truyền một yêu cầu từ chương trình client tới chương trình server

• Yêu cầu được server xử lý

• Truyền đáp ứng cho client

FTP hoạt động trên nền TCP nên cũng phải tuân theo bắt tay 3 hướng (three way handshake) và quá trình thiết lập connection giữa client và server như sau:

• Client gửi một gói tin SYN đến Server

• Server nhận gói SYN, rồi gửi lại gói SYS-ACK cho Client

• Client nhận SYN-ACK, rồi gửi lại gói ACK thông báo đồng ý tạo kết nối

2.2 Mô hình hoạt động

Do các chức năng điều khiển và dữ liệu sử dụng các kênh khác nhau, nên mô hình hoạt động của FTP 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

Trang 5

Hình 3: Mô hình hoạt động của 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

Trang 6

Connection của User thông qua cổng 20 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.2 Nguyên lý hoạt động

Cần có 2 kết nối TCP trong phiên làm việc của FTP: TCP Data connection trên cổng

20, TCP Control connection trên cổng 21

Control connection : luôn được mở ở mọi thời điểm khi dữ liệu hoặc lệnh được

gửi

Data connection : chỉ được mở khi có trao đổi dữ liệu thực

Trình tự chung của FTP hoạt động như sau:

1 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)

2 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

Trang 7

3 Client gửi thêm các lệnh với tên tệp, 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

4 Khi dữ liệu đã sẵn sàng, 2 bên sẽ mở kết nối TCP trên cổng 20

5 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)

6 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

7 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

CHƯƠNG 3: TÍNH BẢO MẬT CỦA FTP

Giống như phần lớn các giao thức cũ, phương pháp đăng nhập đơn giản của FTP là một sự kế thừa từ những giao thức ở thời kỳ đầu của Internet Ngày nay, nó không còn bảo đảm tính an toàn cần thiết trên môi trường Internet toàn cầu vì username và

password được gửi qua kênh kết nối điều khiển dưới dạng clear text Điều này làm cho các thông tin đăng nhập có thể bị nghe lén Chuẩn RFC 2228 về các phần mở

rộng cho bảo mật FTP đã định ra thêm nhiều tùy chọn chứng thực và mã hóa phức tạp cho những ai muốn tăng thêm mức độ an toàn vào trong phần mềm FTP của họ

Một phương pháp hữu hiệu hơn đó là sử dụng giao thức FTPS (FTP trên SSL) cung

cấp khả năng mã hóa giao thức cho các dữ liệu được truyền Việc cấu hình ISA Server

để tạo FTP khá phức tạp vì chúng ta sẽ phải tạo thủ công một định nghĩa giao thức cho FTPS và vùng cổng mà kết nối FTPS sử dụng

CHƯƠNG 4: THIẾT LẬP KÊNH ĐIỀU KHIỂN VÀ CHỨNG THỰC NGƯỜI DÙNG

Trước khi kết nối được sử dụng để thực sự truyền file, kênh điều khiển cần phải được thiết lập Như trong các giao thức client/server khác, FTP server tuân theo một luật

passive trong kênh điều khiển Bộ phận Server Protocol Interpreter (Server-PI) sẽ

lắng nghe cổng TCP dành riêng cho kết nối FTP là cổng 21 Phía User-PI sẽ tạo kết nối bằng việc mở một kết nối TCP từ thiết bị người dùng tới server trên cổng đó Nó

sử dụng một cổng bất kỳ làm cổng nguồn trong phiên kết nối TCP Khi TCP đã được cài đặt xong, kênh điều khiển giữa các thiết bị sẽ được thiết lập, cho phép các lệnh

được truyền từ User-PI tới Server-PI, và Server-PI sẽ đáp trả kết quả là các mã thông

báo

Trang 8

Bước đầu tiên sau khi kênh đã đi vào hoạt động là bước đăng nhập của người dùng

(login sequence) Bước này có hai mục đích:

Access Control (Điều khiển truy cập): quá trình chứng thực cho phép hạn chế truy

cập tới server với những người dùng nhất định Nó cũng cho phép server điều khiển loại truy cập như thế nào đối với từng người dùng

Resource Selection (Chọn nguồn cung cấp): Bằng việc nhận dạng người dùng tạo

kết nối, FTP server có thể đưa ra quyết định sẽ cung cấp những nguồn nào cho người dùng đã được nhận dạng đó

Trình tự truy cập và chứng thực FTP: Quy luật chứng thực trong FTP khá đơn

giản, chỉ là cung cấp username/password Trình tự của việc chứng thực như sau:

Hình 4: Trình tự chứng thực người dùng của FTP

1 Người dùng gửi một username từ User-PI tới Server-PI bằng lệnh USER Sau

đó password của người dùng được gửi đi bằng lệnh PASS

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

Trang 9

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à đáp ứng đúng các nhu cầu truy cập FTP

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 diệ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 FTP để khi có bất cứ người dùng nào kết nối tới, anh ta sẽ tự động

được đưa tới "home directory" của chính anh ta Lệnh tùy chọn ACCT (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ư có nhiều hơn một tài khoản

CHƯƠNG 5: DỮ LIỆU VÀ QUẢN LÝ KÊNH DỮ LIỆU FTP

5.1 Dữ liệu trong FTP

Các tập tin được coi như một tập hợp các byte FTP không quan tâm nội dung tập tin, sẽ

chỉ đơn giản là di chuyển các tệp tin, các byte cùng 1 thời điểm, từ nơi này sang nơi khác

5.1.1 FTP Data Types:

Phần đầu tiên của thông tin có thể được đưa ra về tập tin là kiểu dữ liệu của nó Có 4 kiểu

dữ liệu khác nhau được quy định trong chuẩn của FTP

ASCII: file văn bản ASCII

EBCDIC: tương tự ASCII, nhưng sử dụng kiểu kí tự EBCDIC do IBM đặt

Image: Các tập tin không có cấu trúc nội bộ chính thức

Local: Kiểu dữ liệu này được sử dụng để xử lí các tập tin có thể lưu trữ dữ liệu

trong byte logic Cách xác định loại này cùng với cách dữ liệu có cấu trúc cho phép dữ liệu được lưu trữ trên hệ thống đích một cách phù hợp với đại diện local của nó

Trong thực tế, hai loại kiểu dữ liệu thường xuyên nhất được sử dụng là ASCII và Image Kiểu ASCII được sử dụng cho các tập tin văn bản, và cho phép chúng được di chuyển

giữa các hệ thống với dòng kết thúc mã chuyển đổi tự động Loại Image được sử dụng cho các tập tin nhị phân, chẳng hạn như đồ họa hình ảnh, tập tin ZIP và các dữ liệu khác

Nó cũng thường được gọi là kiểu nhị phân vì lý do đó

Trang 10

5.1.2 FTP Format Control

Đối với các loại ASCII và EBCDIC, FTP xác định 1 tham số tùy chọn được gọi là “format

control” (điều khiển định dạng), nó cho phép người dùng chỉ định một đại diện cụ thể cho cách sử dụng định dạng dọc để mô tả tệp

Các tùy chọn kiểm soát định dạng được tạo ra cho mục đích cụ thể đúng cách xử lý các tập tin chuyển giao từ các thiết bị máy chủ đến máy in Nó không được sử dụng ngày

nay, hoặc nếu nó được sử dụng, nó chỉ là trong ứng dụng đặc biệt Ba tùy chọn trong FTP Format Control:

 Non Print : Đây là tùy chọn mặc định, cho biết không có định dạng dọc

 Telnet Format : Tệp sử dụng các kí tự điều khiển định dạng dọc, như được chỉ định trong giao thức Telnet

 Carriage Control/FORTRAN : Tệp sử dụng kí tự điều khiển được định dạng đưa

ra làm kí tự đầu tiên của mỗi dòng, như được xác định cho ngôn ngữ lập trình FORTRAN

5.1.3 FTP Data Structures

Ngoài việc xác định một loại dữ liệu tệp tin, ta cũng có thể xác định cấu trúc tệp tin theo

3 cách:

File Structure: Tệp là 1 luồng byte liền kề không có cấu trúc bên trong Đây là

cách mặc định và được sử dụng cho hầu hết các loại tệp

Record Structure: Tệp bao gồm một tập hợp các bản ghi, mỗi bản ghi được phân

định bằng đánh dấu end-of-record Cấu trúc bản ghi có thể sử dụng cho các tệp văn bản ASCII, nhưng chúng thường được gửi với cấu trúc tệp thông thường sử dụng kiểu dữ liệu ASCII

Page Structure: Tệp chứa 1 trang dữ liệu được lập chỉ mục đặc biệt Cấu trúc này

không được sử dụng phổ biến Nó được tạo ra cho 1 máy tính cổ xưa được sử

dụng trong ARPAnet đời đầu

5.2 Quản lý kênh dữ liệu

Kênh điều khiển được tạo ra giữa Server-PI và User-PI sử dụng quá trình thiết lập

kết nối và chứng thực được duy trì trong suốt phiên kết nối FTP Các lệnh và các hồi đáp

được trao đổi giữa bộ phận PI (Protocol Interpreter) qua kênh điều khiển, nhưng dữ liệu

thì không

Trang 11

Mỗi khi cần phải truyền dữ liệu giữa server và client, một kênh dữ liệu cần phải

được tạo ra Kênh dữ liệu kết nối bộ phận User-DTP với Server-DTP Kết nối này cần

thiết cho cả hoạt động chuyển file trực tiếp (gửi hoặc nhận một file) cũng như đối với việc truyền dữ liệu ngầm, như là yêu cầu một danh sách file trong thư mục nào đó trên server

Hình 5: Hai dạng kết nối kênh dữ liệu trong FTP

5.2.1 Kết nối kênh dữ liệu dạng chủ động - Active FTP

Trong dạng kết nối này, phía Server-DTP khởi tạo kệnh dữ liệu bằng việc mở một cổng

TCP cho phía User-DTP 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 giá trị 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

Trang 12

Hình 6: Kết nối kênh dữ liệu chủ động trong FTP

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

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-PI sẽ báo cho phía Server-DTP khởi tạo một kênh kết nối TCP từ

cổng 20 tới cổng 38893 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 đi

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 FTP trở nên phức tạp Do đó, 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

dữ liệu

VD:

- FTP Client: Mở một port cao bất kỳ gửi gói tin SYN, ví dụ từ Port 39126 đến Port 21

trên FTP Server với mục đích thông báo

- FTP Server: Đồng ý và gửi lại gói tin SYN/ACK từ Port 21 đến Port 39162 trên FTP

Client

- FTP Client: Sẽ gửi lại gói tín ACK từ Port 39162 đến Port 21 trên FTP Server đồng ý

tạo kết nối Tại thời điểm này Connection Control đã được khởi tạo xong

Trang 13

- FTP Client: Sử dụng Connection Control được tạo trước đó để gửi command PORT

yêu cầu FTP Server dùng Active Mode để truyền file,từ Port 39162 đến Port 21 trên FTP Server Đồng thời thông báo cho FTP Server biết nó sẽ mở Port

38893 mới để chờ tạo Connection Data

- FTP Server: Nhận được yêu cầu và tiến hành đàm phán bắt tay 3 bước với FTP Client

Nó sẽ gửi gói SYN từ Port 20 đến Port 38893, rồi nhận lại SYN/ACK rồi tiếp tục gửi ACK đến khi quá trình bắt tay 3 bước hoàn tất

5.2.2 Kết nối kênh dữ liệu dạng bị động - Passive FTP

Trong kết nối bị động, client sẽ nhận server là bên 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ỉ IP cũng như địa chỉ cổng mà nó sẽ sử dụng Phía Server-DTP sau đó sẽ lắng nghe một kết nối TCP từ phía User-DTP trên cổng này Mặc định, phía client sử dụ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 dữ 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 phía client là 1026 tới 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:

Hình 7: Kết nối kênh dữ liệu bị động trong FTP

Trang 14

- FTP Client: Gửi gói tin SYN từ Port 47962 đến Port 21 trên FTP Server với mục đích

thông báo

- FTP Server: Đồng ý và gửi lại gói tin SYN/ACK từ Port 21 đến Port 47962 trên FTP

Client

- FTP Client: Sẽ gửi lại gói tín ACK từ Port 47962 đến Port 21 trên FTP Server đồng ý

tạo kết nối Tại thời điểm này Connection Control đã được khởi tạo xong

- FTP Client: Để truyền dữ liệu theo Passive Mode, FTP Client chủ động gửi command PASV trên Connection Control

- FTP Server: Nhận được yêu cầu phải dùng Passive Mode để truyền dữ liệu, nó mở Port

54157 và response lại cho FTP Client biết sẽ dùng Port 54157 để tạo Connection Data

-FTP Client: Nhận được phản hồi, nó sẽ mở Port 52771 để tiến hành đàm phán 3 bước

với FTP Server Các bước diễn ra tuần tự như hình bên dưới.Sau bước này Connection Data đã khởi tạo xong giữa FTP Client Port 52771 và FTP Server Port 54157

CHƯƠNG 6: CÁC PHƯƠNG THỨC TRUYỀN DỮ LIÊU TRONG FTP

Khi kênh dữ liệu đã được thiết lập xong giữa Server-DTP với User-DTP, dữ liệu

sẽ được truyền trực tiếp từ phía client tới phía server, hoặc ngược lại, dựa theo các lệnh được sử dụng Do thông tin điều khiển được gửi đi trên kênh điều khiển, nên toàn bộ kênh dữ liệu có thể được sử dụng để truyền dữ liệu FTP có ba phương thức truyền dữ

liệu, đó là: stream mode, block mode, và compressed mode

Stream mode:

Trong phương thức này, dữ 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 dữ 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 Do nó không có cầu trúc dạng header, nên việc báo hiệu kết thúc file sẽ đơn giản được thực hiện bằng việc phía thiết bị gửi ngắt kênh kết nối dữ 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 FTP 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ễ dàng nhất Thứ hai, nó là phương pháp phổ biến nhất, vì nó xử lý với các file đều đơn thuần như là xử lý dòng 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” để thông báo header

Block mode:

Trang 15

Đây là phương thức truyền dữ liệu mang tính quy chuẩn hơn, với việc dữ liệu được chia thành nhiều khối nhỏ và được đóng gói thành các FTP blocks Mỗi block này

có một trường header 3 byte báo hiệu độ dài, và chứa thông tin về các khối dữ liệu đang được gửi

Descriptor:

128: kết thúc của data block là EOR

64: kết thúc của data block là EOF

32: có lỗi trong data block

16: block là một Restart Marker Byte count:số bytes trong data block

Compressed mode:

Đây là một phương thức truyền sử dụng một kỹ thuật nén là “run-length encoding” có

tác dụng phát hiện và xử lý các đoạn lặp trong dữ liệu được truyền đi để giảm chiều dài của toàn bộ thông điệp Thông tin khi đã được nén, sẽ được xử lý như trong block mode, với trường header Trong thực tế, việc nén dữ liệu thường được sử dụng ở những chỗ khác, làm cho phương thức truyền kiểu compressed mode trở nên không cần thiết nữa Trong đó hai bit đầu 10 để biểu thị Replicate byte,n là số lần byte d được lập lại

Hình 8: FTP block header

Hình 9: Replicated byte

Trang 16

CHƯƠNG 7: COMMAND VÀ REPLY CODES CỦA FTP

Các command thường được chia làm 3 nhóm:

 Access Control Command: là các command tham gia quá trình đăng nhập

và chứng thực người dùng như USER, PASS Transfer Parameter Commands:là các

command quyết định quá trình truyền tải file như TYPE, PASV, EPSV

 FTP Service Command: là các command thực hiện các thao tác với file như

nhận,gửi,xóa file (DELE, STOR, RETR)

7.2 Các reply code

Mỗi lần User-PI gửi lệnh đến Server-PI qua Control connection, server sẽ gửi lại phản

hồi dưới dạng các code Code reply nhằm các mục đích sau:

CHƯƠNG 8: THỰC HIỆN MÔ PHỎNG

Dùng phần mềm VMWare để tạo máy ảo đóng vai trò CLIENT và SERVER cho việc mô

phỏng truyền nhận dữ liệu

Ngày đăng: 22/07/2021, 23:15

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w