1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu về Giao thức FTP

13 2,2K 17

Đ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

Định dạng
Số trang 13
Dung lượng 235,5 KB

Nội dung

FTP (File Transfer Protocol): là giao thức được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCPIP. Hoạt động của FTP cần có hai máy tính: một máy chủ và một máy khách. Máy chủ FTP 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. 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ủ ...

Trang 1

TÌM HIỂU VỀ GIAO THỨC FTP

1. Tổng quan

FTP (File Transfer Protocol): là giao thức được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP Hoạt động của FTP cần có hai máy tính: một máy chủ và một máy khách Máy chủ FTP 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 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ì 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 nếu kết nối với một mạng lưới có nền TCP/IP thì có thể xử lý tập tin trên một máy tính khác 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 và 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 như: Cute FTP, Core FTP, FlashFXP, WS_FTP Pro, FTPNet, AbsoluteFTP…

Trong phiên làm việc của FTP, để truy cập tới máy tính khác người dùng phải đăng nhập bằng cách cung cấp định danh người dùng và mật khẩu Sau khi những thông tin này được kiểm chứng thì quá trình trao đổi file mới được thực hiện

Trang 2

FTP cho phép trao đổi file giữa 2 máy tính

2. Lược sử

FTP có một quá trình hình thành và phát triển lâu dài qua nhiều năm Giao thức này xuất hiện đầu tiên vào năm 1971 (được đặc tả trong RFC 114) và được thử nghiệm trên hệ thống máy tính của hãng MIT

RFC 172 cung cấp một giao thức định hướng cấp độ người dùng cho việc truyền file giữa các máy RFC 281 đề xuất một sự thay đổi xa hơn Việc sử dụng “Set Data Type” được

đề xuất trong RFC 294 vào tháng 1 năm 1982

Bây giờ FTP được định nghĩa như là một giao thức cho việc truyền file giữa các HOT trên mạng ARPANET, chức năng chính của FTP là truyền file một cách hiệu quả và đáng tin cậy giữa các máy và cho phép sử dụng thuận tiện việc lưu trữ các file từ xa RFC 385 bình luận nhiều hơn về các lỗi, những điểm quan trọng, và nhiều sự bổ sung cho giao thức, trong khi đó RFC 414 cung cấp báo cáo trạng thái làm việc trên máy chủ và người dùng FTP RFC

430 được đưa ra vào năm 1973, nó đưa ra những bình luận nhiều hơn về FTP Cuối cùng thì RFC 454 là tài liệu FTP chính thức được xuất bản Tháng 7 năm 1973 có sự thay đổi đáng kể

từ các bản trước của FTP, nhưng cấu trúc tổng quát còn lại thì vẫn giống nhau RFC 542 được xuất bản như là một bản mô tả chính thức phản ánh những sự thay đổi đó Tuy nhiên một vài sự thực thi trên bản mô tả cũ thì không được cập nhật

Trang 3

Năm 1974, các RFC 607 và 614 tiếp tục bình luận về FTP Năm 1975, RFC 686 chọn tiêu đề “Leaving Well Enough Alone” thảo luận về những sự khác nhau của những phiên bản trước và sau của FTP

RFC 765 là bản đặc tả đầu tiên nói về việc sử dụng FTP trên nền giao thức TCP Sự

bổ sung này được mong đợi sẽ giải quyết một số lỗ nhỏ để mở rộng cho sự giải thích về một

số giao thức đặc trưng và bổ sung một số lệnh mới Bản đặc tả này tương thích với những bản trước Một chương trình được thi hành phù hợp với bản đặc tả trước nên nó tự động phù hợp với bản đặc tả này

Bản đặc tả cuối cùng nói về giao thức là RFC 959 xuất bản vào tháng 10 năm 1985

3 Hoạt động của FTP

Khi người dùng bắt đầu một phiên làm việc FTP, đầu tiên FTP sẽ thiết lập một đường kết nối thông tin điều khiển TCP qua cổng 21 Phía client của giao thức FTP gửi thông tin định danh về người dùng và mật khẩu cũng như lệnh thay đổi thư mục thông qua kết nối này Khi người dùng có một yêu cầu trao đổi file (truyền từ/đến máy người dùng), FTP sẽ mở một kết nối TCP để truyền dữ liệu qua cổng 20 FTP truyền đúng một file qua kết nối này và ngay sau khi truyền xong thì đóng kết nối lại Nếu trong cùng phiên làm việc, người dùng có yêu cầu truyền file thì FTP sẽ mở một kết nối khác Như vậy với FTP luồng thông tin điều khiển được mở và tồn tại trong suốt phiên làm việc của người dùng nhưng mỗi kết nối dữ liệu được tạo ra cho mỗi yêu cầu truyền file (kết nối dữ liệu là không liên tục)

FTP gồm hai đường: kiểm soát và dữ liệu

Trong suốt phiên làm việc, FTP server phải giữ lại các thông tin về trạng thái của người dùng, đặc biệt phải kết hợp các thông tin điều khiển với tài khoản của người dùng Server cũng lưu giữ thư mục hiện thời mà người dùng truy cập cũng như cây thư mục của

Trang 4

người dùng Ghi lại các thông tin trạng thái của mỗi phiên làm việc hạn chế đáng kể tổng số phiên làm việc đồng thời

Các tiến trình:

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:

Thành phần Protocol Interpreter (PI) 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 Data Transfer Process (DTP) 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 còn có thêm thành phần thứ ba

là giao diện người dùng FTP - thành phần này không có ở phía server

Do đó, có hai tiến trình xảy ra ở phía server và ba tiến trình ở phía client Các tiến trình này được gắn với mô hình FTP để mô tả chi tiết hoạt động của giao thức FTP Dưới đây là hình đối chiếu các tiến trình vào trong mô hình FTP:

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:

Trang 5

- Server Protocol Interpreter (Server-PI): chịu 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-PI, trả lời lại, và quản lý tiến trình truyền dữ liệu trên server

- Server DataTransfer Process (Server-DTP): làm nhiệm vụ gửi hoặc nhận file từ bộ phận User-DTP Server-DTP vừa làm nhiệm vụ thiết lập kết nối kênh dữ liệu và lắng nghe một kết nối kênh dữ 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

Các tiến trình phía client:

- User Protocol Interpreter (User-PI): 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 FTP bằng việc phát ra yêu cầu tới phía Server-PI 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-PI, và nhận phản hồi trở lại Nó cũng quản lý tiến trình User-DTP

- User Data Transfer Process (User-DTP): là bộ phận DTP nằm ở phía người dùng, làm 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 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 Interface: 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 FTP theo dõi được các thông tin và kết quả xảy ra trong tiến trình

4 Hoạt động truyền dữ liệu

Việc truyền file chỉ được thực hiện khi có kết nối dữ liệu Kết nối điều khiển được sử dụng để truyền các lệnh và các mã trả lời cho các lệnh này Một vài lệnh có liên quan đến truyền dữ liệu giữa các máy chủ Các lệnh truyền dữ liệu bao gồm lệnh MODE (cho biết cụ thể các bit dữ liệu được truyền như thế nào), lệnh STUR và lệnh TYPE là các lệnh được sử dụng để định nghĩa cách biểu diễn dữ liệu Việc truyền tải và biểu diễn về thì cơ bản độc lập nhau nhưng phương thức truyền là “Stream” (theo luồng) thì phụ thuộc thuộc tính cấu trúc

Trang 6

file và nếu sử dụng phương thức truyền là “Compressed” (nén) thì bản chất các byte phụ thuộc vào kiểu biểu diễn

Dữ liệu được truyền từ thiết bị lưu trữ ở máy gửi đến một thiết bị lưu trữ ở máy nhận Thường thì cần có những biến đổi nào đó trên dữ liệu bởi vì việc biểu diễn và lưu trữ dữ liệu trên hai máy là khác nhau

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

- Kiểu ASCII:

Khi một tập tin được truyền dùng chế độ ASCII, mỗi một chữ, mỗi con số và mỗi ký

tự đều được gửi trong dạng mã ASCII Máy nhận tin lưu trữ chúng trong một tập tin văn bản thường, dưới dạng thức thích hợp (chẳng hạn một máy dùng Unix sẽ lưu trữ nó trong dạng thức của Unix, một máy dùng Macintosh sẽ lưu trữ nó trong dạng thức của Mac) Vì thế, khi kiểu ASCII được dùng trong việc truyền tải dữ liệu, phần mềm FTP sẽ tự cho rằng các dữ

liệu được truyền gửi có dạng thức văn bản thường (plain text) và lưu trữ trên máy nhận theo

dạng thức của máy Chuyển đổi giữa các dạng thức văn bản thường bao gồm việc thay thế

mã kết thúc dòng và mã kết thúc tập tin, từ những mã được dùng ở máy nguồn sang những

mã được dùng ở máy đích Chẳng hạn một máy dùng hệ điều hành Windows nhận một tập tin từ một máy dùng hệ điều hành Unix, máy dùng Windows sẽ thay thế những chữ xuống

dòng ( carriage return ) bằng một cặp mã, bao gồm mã xuống dòng và mã thêm hàng

(carriage return and line feed pairs) Tốc độ truyền tải tập tin dùng mã ASCII cũng nhanh

hơn một chút vì bit ở hàng cao nhất của mỗi byte của tập tin bị bỏ

- Kiểu nhị phân (Binary):

Gửi tập tin dùng chế độ nhị phân thì lại khác Máy gửi tập tin gửi từng bit một sang cho máy nhận Máy nhận lưu trữ dòng bit y như nó đã được gửi sang Nếu dữ liệu không phải ở dạng thức văn bản thường thì chúng ta phải truyền tải chúng ở chế độ nhị phân, nếu không dữ liệu sẽ không dùng được

Trang 7

Theo như cài đặt sẵn, phần lớn các trình khách FTP dùng chế độ ASCII khi thực thi Một số trình khách FTP chứng thực tên và nội dung của tập tin được gửi, để xác định chế độ cần phải dùng

4.2 Cấu trúc dữ liệu

Có 3 cấu trúc file được định nghĩa trong FTP:

Cấu trúc file: không có cấu trúc bên trong, và các file được xem là chuỗi các byte dữ liệu liên tiếp nhau

Cấu trúc bản ghi: file được cấu tạo bởi một dãy các bản ghi

Cấu trúc trang: file được cấu tạo bởi các trang có chỉ số không phụ thuộc nhau

Cấu trúc file mặc định sẽ là giả định nếu lệnh STRU không được sử dụng, nhưng cả cấu trúc file và cấu trúc bản ghi phải được chấp nhận cho các file văn bản (các tập tin kiểu ASCII và EBCDIC) Cấu trúc của tập tin sẽ ảnh hưởng đến phương thức truyền file, việc biểu diễn và lưu trữ file Cấu trúc tự nhiên của file sẽ phụ thuộc vào việc lưu trữ nó trên các máy chủ Mã nguồn file thường được lưu trữ trên máy IBM Mainframe bằng những bản ghi

có độ dài cố định còn ở máy DEC TOPS-20 là một luồng các ký tự được phân chia trên dòng

 Cấu trúc trang:

Để chuyển các file không liên tục, FTP định nghĩa một cấu trúc trang Các file thuộc kiểu này được gọi là file truy xuất ngẫu nhiên hoặc như sự kiện “file có lỗ trống” Các file này, các thông tin khác kết hợp với file thành tổng thể hoặc với một phần của file hoặc là kết hợp cả hai Trong FTP, các thành phần của file gọi là các trang Để cung cấp các kích thước các trang khác nhau và kết hợp thông tin, mỗi trang được gửi với tiêu đề của trang Tiêu đề của trang có các trường được định nghĩa như sau:

Độ dài tiêu đề

Là số các byte logic trong tiêu đề của trang Độ dài tiêu đề thấp nhất là 4

Độ dài dữ liệu: là số các byte logic trong trang dữ liệu Độ dài dữ liệu tối thiểu là 0

Kiểu trang: có các kiểu trang được định nghĩa như sau:

Trang 8

0= trang cuối: chỉ ra trang cuối cùng của một quá trình chuyển cấu trúc trang

Độ dài tiêu đề là 4 và độ dài dữ liệu là 0

1= trang đơn: đây là kiểu thông thường cho các trang tập tin đơn giản, không

có cấp trang kết hợp thông tin điều khiển Độ dài tiêu đề là 4

2= trang miêu tả: đây là kiểu trang được sử dụng để truyền thông tin mô tả cho các tập tin nói chung

3= trang kiểm soát truy xuất: kiểu này bổ sung một trường tiêu đề cho các trang với cấp độ trang truy xuất thông tin điều khiển Độ dài tiêu đề là 5

5 Các chế độ làm việc của FTP

Các FTP client và server thường dùng mô hình client/server cho kiểm soát kết nối FTP trong đó phía client khởi tạo một kết nối đến FTP server port 21 FTP truyền các lệnh thông qua kết nối kiểm soát TCP Tuy nhiên ở vài thời điểm, dữ liệu cần phải được truyền và FTP sẽ dùng một kết nối riêng lẻ cho việc truyền dữ liệu (ftp data)

FTP client sẽ dùng một trong hai chế độ passive hay active để định nghĩa các chi tiết một kết nối dữ liệu FTP sẽ được thiết lập như thế nào Với chế độ FTP active, phía server sẽ khởi tạo một kết nối TCP về phía client nhưng trong chế độ passive, client sẽ khởi tạo kết nối về server Nhưng chế độ passive cũng có một vài điểm lắt léo

Quá trình thiết lập kết nối FTP theo kiểu bị động diễn ra như sau:

 Server sẽ cấp những port chưa dùng và bắt đầu lắng nghe trên port đó

 Server sẽ dùng lệnh FTP PORT để báo cho client là port nào server đang lắng nghe

 Phía client sẽ cung cấp một port chưa dùng

 Phía client sẽ khởi tạo một kết nối dữ liệu đến server

 Server sẽ xác nhận rằng kết nối dữ liệu này đến từ client mà server đã gửi thông điệp trong bước 2

Trang 9

Trong chế độ chủ động (active), các bước diễn ra như sau:

 Phía client sẽ cung cấp các cổng chưa dùng và bắt đầu lắng nghe trên cổng đó

 Client sẽ dùng lệnh FTP PORT để báo cho server là nó đang lắng nghe trên port nào

 Server dùng port 20

 Server khởi tạo một kết nối về client

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 (Tất nhiên, hai kênh logic này được kết hợp với nhau ở lớp dưới cùng với tất cả các kết nối TCP/UDP khác giữa hai thiết bị, do đó điều này không hẳn đã cải thiện tốc độ truyền dữ liệu so với khi truyền trên chỉ một kênh – nó chỉ làm cho hai việc truyền dữ liệu và điều khiển trở nên độc lập với nhau mà thôi)

FTP có ba phương thức truyền dữ liệu, nêu lên cách mà dữ liệu được truyền từ một thiết bị tới thiết bị khác trên một kênh dữ liệu đã được khởi tạo, đó là: stream mode, block mode, và compressed mode

Stream mode

Trang 10

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

Đâ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 Một thuật toán đặc biệt được sử dụng để kiểm tra các dữ liệu đã được truyền đi và để phát hiện, khởi tạo lại đối với một phiên truyền dữ liệu đã bị ngắt

Compressed mode

Đây là một phương thức truyền sử dụng một kỹ thuật nén khá đơn giả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 Ví dụ: nếu bạn đang truyền đi một file qua internet với modem tương tự, modem của bạn thông thường sẽ thực hiện việc nén ở lớp 1; các file lớn trên FTP server cũng thường được nén sẵn

Ngày đăng: 20/10/2014, 13:50

TỪ KHÓA LIÊN QUAN

w