active و passive کاملا مجزا هستند و هیچ شباهتی ندارند، ftp به صورت کلی از طریق دو کانال بین کلاینت و سرور ارتباط برقرار میکند. کانال خط فرمان(command channel) و کانال داده(data channel). این دو کانال کانکشن های جدایی برقرار میکنند، کانال خط فرمان برای دادن دستورات لازم می باشد و کانال داده ها برای انتقال فایل ها می باشد.
در حالت active, کلاینت با کانال خط فرمان ارتباط برقرار میکنه (پورت کلاینت میتونه X باشه و پورت سرور ۲۱ می باشد) اما سرور, کانال داده هارو از پورت ۲۰ برقرار میکنه(پورت کاربر هرچی میتونه باشه).
در حالت passive کلاینت ارتباط با هر دو کانال رو همزمان برقرار میکنه.در این صورت سرور به کلاینت میگه که از کدوم پورت برای کانال داده استفاده کنه.
حالت passive عموما در شرایطی استفاده میشه که سرور FTP توانایی برقراری کانال داده هارو نداشته باشه. یکی از دلایل اصلی برای برقرار نشدن ارتباط استفاده از firewall می باشد. ممکن است شما قانون های تعریف کنید که به شما اجازه باز کردن ftp.asklinux.ir رو بده. (یعنی کانال خط فرمان برقرار بشه) ولی سرور به دلیل استفاده از دیوار آتش توانایی ارسال اطلاعات از کانال داده ها و عبور آنها از دیوار آتش رو نداشته باشه. در این حالت ftp passive میاد هر دو کانال رو طرف خود کاربر باز میکنه که مشکلی از فایروال بوجود نیاد. در این حالت همواره هر دو کانال باز هستند.