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:
Trong chế độ chủ động (active), các bước diễn ra như sau:
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.
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.