Giao thức truyền tập tin FTP

Một phần của tài liệu Bài giảng mạng máy tính ths nguyễn xuân anh (Trang 53 - 55)

FTP (File Transfer Protocol) là giao thức truyền tập tin tin cậy giữa hai máy tính. Giao thức này xuất hiện từ những năm 1971 nhưng vẫn còn được sử dụng rộng rãi cho đến tận ngày nay. Các tiêu chuẩn truyền tin của giao thức FTP được mô tả trong RFC 959, hình 3.5 minh họa các dịch vụ của FTP.

Hình 3.6 FTP cho phép trao đổi file giữa hai máy tính

Trong phiên làm việc của FTP, người dùng làm việc trên máy tính của mình và trao đổi tập tin với một máy tính khác. Để truy cập tới máy tính khác, người dùng phải đăng nhập thông qua việc cung cấp tên người dùng và mật

khẩu. Sau khi những thông tin này được kiểm chứng thì công việc truyền tập tin từ hệ thống tập tin trên máy tính của mình đến hệ thống tập tin ở đầu kia mới có thể thực hiện được.

Như mô tả trên hình 3.6, người dùng tương tác với FTP thông qua chương trình giao tiếp người dùng của FTP. Đầu tiên người dùng đánh tên máy tính cần truyền tập tin. Tiến trình FTP ở máy khách khởi tạo một kết nối TCP tới tiến trình FTP máy chủ sau đó người dùng đưa các thông tin về tên và mật khẩu để máy chủ kiểm chứng. Sau khi được máy chủ xác định, người đùng mới có thể thực hiện việc trao đổi file giữa hai hệ thống file.

HTTP và FTP đều là giao thức truyền file và có rất nhiều đặc điểm chung như cả hai đều sử dụng các dịch vụ của TCP. Tuy vậy hai giao thức này có những điểm khác nhau cơ bản. Điểm khác nhau nổi bật nhất là FTP sử dụng hai kết nối TCP song song, một đường truyền thông tin điều khiển (control connection) và một đường truyền dữ liệu (data connection). Các thông tin điều khiển như thông tin định danh người dùng, mật khẩu truy nhập, lệnh thay đổi thư mục, lệnh “put” hoặc “get” file giữa hai máy tính được trao đổi qua đường truyền thông tin điều khiển. Đường truyền dữ liệu để truyền file dữ liệu thực sự. Vì FTP phân biệt luồng thông tin điều khiển với luồng dữ liệu nên nó dược gọi là gửi thông tin điều khiển out-of-band. Trong chương 6 chúng ta sẽ thấy rằng giao thức RTSP dùng để truyền âm thanh và hình ảnh liên tục cũng sử dụng cách gửi thông tin điều khiển kiểu out-of-band. Như đã nói, HTTP gửi tiêu đề của bản tin và file dữ liệu trên cùng một kết nối TCP. Vì vậy mà HTTP được gọi là gửi thông tin điều khiển in-band. Trong phần tiếp theo ta sẽ thấy rằng SMTP - giao thức gửi thư điện tử cũng sử dụng truyền thông tin điều khiển kiểu in-band. Đường truyền thông tin điều khiển và đường truyền dữ liệu của giao thức FTP được minh họa trong hình 3.7.

Hình 3.7 FTP gồm 2 đường: Kiểm soát và dữ liệu

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 máy khách của giao thức FTP truyền thông tin về định danh người dùng và mật khẩu cũng như lệnh thay đổi thư mục 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 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 một yêu cầu truyền file (kết nối dữ liệu là không liên tục).

Trong suốt phiên làm việc, FTP máy chủ phải giữ lại các thông tin về trạng thái của người dùng, đặc biệt nó 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. Máy chủ 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 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. HTTP không lưu giữ trạng thái nên nó không ghi lại bất kì thông tin nào về trạng thái của người dùng.

Các lệnh FTP

Lệnh (yêu cầu) từ máy khách đến máy chủ và kết quả (trả lời) từ máy chủ tới máy khách được gửi thông qua kết nối điều khiển và được mã hoá bằng bảng mã ASCII 7 bit. Do vậy giống như lệnh HTTP, người ta có thể đọc được lệnh FTP. Trường hợp các lệnh viết liên tục thì lặp ký tự CR (carriage return) và LF (line feed) được sử dụng để phân biệt các lệnh (và trả lời) mỗi câu lệnh chứa 4 kí tự ASCII in hoa, một số lệnh có tham số. Sau đây là một số câu lệnh hay dùng: USER username: sử dụng để gửi thông tin tên tài khoản của người dùng cho máy chủ

PASS password: dùng để gửi mật khẩu cho máy chủ

LIST: dùng để yêu cầu máy chủ gửi một danh sách các tập tin trong thư mục hiện thời. Danh sách này được gửi thông qua một kết nối dữ liệu TCP

RETR filename: dùng để lấy một tập tin từ thư mục hiện thời (trên máy ở xa) STOR filename: dùng để tải một tập tin vào thư mục hiện thời (trên máy ở xa)

Thông thường có quan hệ 1-1 giữa lệnh của người dùng và lệnh của FTP. Ứng với mỗi lệnh từ máy khách là một trả lời của máy chủ. Câu trả lời là một mã ba chữ số và có thể có một thông báo kèm theo. Điều này tương tự như trường mã trạng thái trong bản tin trả lời HTTP. dưới đây là một số câu trả lời thường gặp:

331 username OK, password requiered

125 connection already open; Transfer staring 425 canDt open data connection

452 error writing file

Một phần của tài liệu Bài giảng mạng máy tính ths nguyễn xuân anh (Trang 53 - 55)