Professional Documents
Culture Documents
-----o0o-----
1
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
MỤC LỤC
2
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
Lời Mở Đầu
Ngày nay việc chia sẻ dữ liệu đang ngày càng được đề cao và sử dụng phổ biến trong
các trường học, công ty,… Chính vì vậy việc phát triển máy chủ FTP để đồng bộ hóa
các dữ liệu là một việc hết sức quan trọng.
Mặc dù việc truyền file từ hệ thống này sang hệ thống khác rất đơn giản và dễ hiểu,
nhưng đôi khi xảy ra những vấn đề khác nhau. Ví dụ, 2 hệ thống có thể có các quy
ước tập tin khác nhau, 2 hệ thống có các cách khác nhau để thể hiện văn bản và dữ
liệu hay 2 hệ thống có cấu trúc thư mục khác nhau, … Giao thức FTP khắc phục
những vấn đề này bằng cách thiết lập 2 kết nối giữa các máy chủ. Một kết nối để sử
dụng truyền dữ liệu, 1 kết nối còn lại được sử dụng để điều khiển kết nối.
3
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
2 Hình 2 FTP server là máy tính cung cấp không gian lưu trữ, chia
sẻ dữ liệu trong môi trường internet.
4
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
FTP là viết tắt của File Transfer Protocol trong tiếng Anh, đây là một giao thức truyền
tải tập tin từ một máy tính này sang một máy tính khác thông qua một mạng TCP hoặc
qua mạng Internet. Thông qua giao thức FTP, người dùng có thể truyền tải dữ liệu như
hình ảnh, văn bản, các tập tin media,... 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.
5
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
Hình 2. FTP server là máy tính cung cấp không gian lưu trữ, chia sẻ dữ liệu trong
môi trường internet.
6
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
*Các doanh nghiệp sử dụng FTP Server sẽ thu được lợi ích gì?
- Có thể nhập vào địa chỉ của máy chủ cần truy xuất tới
Một số tổ chức cung cấp dịch vụ FTP thông dụng (có thu phí) giúp bạn có thể nhập vào
địa chỉ của máy chủ cần truy xuất tới, với tên và mật khẩu đăng nhập (nếu có) và các
giao diện để bạn có thể dễ dàng tải về hoặc đưa lên các tệp tin của mình. Đó là các tổ
chức như: Rapidshare, Megaupload, File Host, v.v… với chi phí đăng ký tài khoản khá
cao tính bằng USD.
7
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
Giống như hầu hết các giao thức TCP/IP, FTP dựa trên mô hình Client – Server. Tuy
nhiên, khác với các ứng dụng khác chạy trên nền TCP/IP, FTP cần tới 2 kết nối TCP:
Control connection (sử dụng port 21 – trên server): Đây là kết nối TCP logic
chính được tạo ra khi phiên làm việc được thiết lập. Nó được thực hiện giữa các
quá trình điều khiển. Nó được duy trì trong suốt phiên làm việc và chỉ cho các
thông tin điều khiển đi qua như lệnh hay response(phản hồi). Không dùng để
truyền file.
Data connection (sử dụng port 20 – trên server): Kết nối này sử dụng các quy
tắc rất phức tạp vì các loại dữ liệu có thể khác nhau. Nó được thực hiện giữa các
quá trình truyền dữ liệu. Kết nối này mở khi có lệnh chuyển tệp và đóng khi tệp
truyền xong.
8
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
9
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
+ Phía Server
+ 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.
10
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
phép người sử dụng thì người sử dụng sẽ sao chép một hoặc nhiều tệp lưu trữ trong hệ
thống tệp cục bộ vào hệ thống tệp ở xa (hoặc ngược lại).
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.
2.2.1 Thiết lập kênh điều khiển và chứng thực người dùng trong FTP:
Mô hình hoạt động của FTP mô tả rõ các kênh dữ liệu và điều khiển được thiết lập giữa
FTP client và FTP server. Trước khi kết nối được sử dụng để thực sự truyển file, kênh
điều khiển phải cần được thiết lập. Một tiến trình chỉ định sau đó được dùng để tạo ra
phiên FTP lâu bền giữa các thiết bị để truyền files.
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.
11
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
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 kê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. 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 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ẽ cũng cấp những nguồn nào cho người dùng
đã nhận dạng đó
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:
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ẽ tự ngắt kết nối.
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.
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)
12
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
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.
13
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
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:
1yz Đã khởi tạo hành động. Chờ 1 reply trước khi gửi 1 lệnh khác
14
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
3yz Lệnh được chấp nhận. Nhưng bị giữ do thiếu thông tin
Lệnh không được chấp nhận hoặc không hoàn thành. Tình trạng lỗi
4yz
tồn tại tạm thời. Lệnh có thể được ban hanh lại
Lệnh không được chấp nhận hoặc đã hoàn thành. Không ban hành
5yz
lại lệnh, ban hành lại lệnh sẽ dẫn đến cùng một lỗi
Tham số y cung cấp thêm thông tin như bảng dưới. z cũng cung cấp thêm thông tin
nhưng ý nghĩa chính xác có thể khác nhau giữa các cài đặt.
Reply code format Description
15
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
Mỗi khi cần phải truyền dữ liệu giữa các 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à Server-DTP. Kết nối này cần
thiết cho cả hoạt động truyề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.
Để tạo ra kênh dữ liệu, FTP sử dụng 2 phương thức khác nhau: Normal (Active) Data
Connections (mặc định) và Passive Data Connections.
Khác biệt giữa 2 phương thức này là phía Client hay bên Server đưa ra yêu cầu khởi tạo
kết nối.
Server sẽ chấp nhận 1 yêu cầu kết nối dữ liệu được khởi tạo từ Client.
Server sẽ trả lời lại phía Client với địa chỉ IP cũng như địa chỉ cổng mà Server sẽ
sử dụng.
Sau đó phía Server-DTP lắng nghe trên cổng này một kết nối TCP đến từ User-
DTP.
Theo mặc định, phía Client sẽ sử dụng cùng cổng mà nó sử dụng cho Control
Connection như trong trường hợp chủ động. Tuy nhiên, trong phương pháp này,
Client cũng có thể chọn sử dụng một cổng khác cho Data Connection nếu cần
thiết.
Khi Client-DTP và Server-DTP thiết lập xong kênh dữ liệu, 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, tùy 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.
16
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
1. Stream mode
Dữ liệu truyền đi liên tiếp dưới dạng các byte không cấu trúc.
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ó trường tiêu đề nhất định
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 khi thiết bị gửi ngắt kênh kết nối dữ liệu khi đã truyền dữ liệu xong.
Được sử dụng nhiều nhất trong 3 phương thức trong triển khai FTP thực tế. Do:
o Là phương thức mặc định và đơn giản nhất.
o Là phương thức phổ biến nhất, vì nó xử lí các file chỉ đơn thuần là xử lí
dòng byte, mà không cần để ý tới nội dung.
o Không tốn 1 lượng byte “overload” nào để thông báo Header.
2. Block mode
Phương thức truyền dữ liệu mang tính quy chuẩn hơn.
Dữ liệu được chia thành nhiều khối nhỏ và đóng gói thành các FTP block.
Mỗi block có 1 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 đã truyền đi. Và để
phát hiện, khởi tạo lại đối với 1 phiên truyền dữ liệu đã bị ngắt kết nối.
Phương thức truyền dữ liệu sử dụng 1 kỹ thuật nén đơn giản, là “run-lenght
encoding (mã hóa chiều dài)” – 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 sau khi được nén, sẽ được xử lí như Block mode, với trường Header.
Trong thực tế, việc nén dữ liệu thường được thực hiện ở chỗ khác, làm cho
phương thức Compressed mode trở nên không cần thiết.
17
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
– Cho phép chuyển tệp tin nếu không may mất kết nối.
– Tự động chuyển tập tin bằng các Script.
– Cho phép thêm dữ liệu vào khung chờ, và lên lịch truyền.
– Khả năng đồng bộ hoá tệp tin.
- Nhược Điểm
– Khả năng bảo mật kém.
– Không phù hợp cho các tổ chức, do yêu cầu phải tạo cổng kết nối khi truyền.
– Máy chủ có khả năng bị qua mặt, gửi thông tin đến các cổng ngẫu nhiên.
18
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
KẾT LUẬN
Qua bài tiểu luận này, nhóm em đã có một cái nhìn tổng quát về Hệ thống truyền
tệp FTP Server. Giúp nhóm em hiểu rõ hơn về cách thức hoạt động cũng như việc
thực hiện mô phỏng hệ thống trực tiếp trên máy tính. Cùng với đó em cũng đã nhận
thấy được vai trò cũng như ứng dụng của hệ thống FTP.
Rất mong nhận được nhiều lời nhận xét đến từ thầy, nhóm em xin cảm ơn!
19
Hệ thống truyền tệp FTP Server Internet Và Giao Thức
20