Seperti yang telah disebutkan, telnet hanya menggunakan 1 port sebagai terminal / penggunaan interaktif Ftp mengatur dua saluran komunikasi - kontrol dan data. Ini berarti bahwa saluran data independen dari kontrol [interaktif] komunikasi. Selain itu, saluran kontrol menggunakan Telnet proto ( RFC ):
The Relationship between FTP and Telnet:
The FTP uses the Telnet protocol on the control connection.
Berikut ini adalah contoh yang bagus bagaimana signaling out of bound (saluran terpisah) dapat digunakan untuk mengoptimalkan jalur komunikasi (juga dari RFC )):
Dalam situasi lain, pengguna mungkin ingin mentransfer file antara dua host, yang keduanya bukan host lokal. Pengguna mengatur koneksi kontrol ke dua server dan kemudian mengatur koneksi data di antara mereka. Dengan cara ini, informasi kontrol diteruskan ke pengguna-PI tetapi data ditransfer antara proses transfer data server. Berikut ini adalah model interaksi server-server ini.
Control ------------ Control
---------->| User-FTP |<-----------
| | User-PI | |
| | "C" | |
V ------------ V
-------------- --------------
| Server-FTP | Data Connection | Server-FTP |
| "A" |<---------------------->| "B" |
-------------- Port (A) Port (B) --------------
Telnet hanya menggunakan satu port karena hanya menetapkan satu aliran data dua arah antara klien dan server: Data dari keyboard klien (atau stdin) ke server, dan data dari server ke layar klien (atau stdout). Tidak perlu mengirim informasi "kontrol" atau "status". Klien Anda terhubung ke server telnet, dan sejak saat itu telnet mengemulasi kabel tiga kawat (data Tx, data Rx, dan ground) antara port serial komputer dan terminal serial. Klien Anda tidak memiliki cara untuk mengirim perintah atau info "out of band" lainnya ke server telnet setelah itu, atau kebutuhan apa pun untuk - jadi tidak perlu untuk saluran kom yang terpisah, yang merupakan apa yang akan disediakan oleh port kedua. Satu-satunya "informasi kontrol"
FTP perlu bertukar data dan protokol perintah-dan-respons antara klien dan server. Para desainer memilih untuk menggunakan port yang berbeda untuk kedua fungsi ini. Ini membuat beberapa aspek pemrograman lebih mudah, terutama dengan sistem operasi lama yang tidak mendukung multithreading atau asynchronous I / O juga. Misalnya, Anda dapat mengirim atau menerima info kontrol dan status saat Anda menerima atau mengirim data file, dan dari sudut pandang program, aliran "kontrol" tidak harus menunggu buffer menyelesaikan pada "data" "stream sebelum mengirim atau menerima buffernya sendiri.
Namun! Perancang ftp bisa melakukannya secara berbeda. Mereka bisa menggunakan hanya satu port. Mereka bisa menambahkan satu byte atau lebih ke depan setiap potongan data file, atau perintah, atau respons, yang akan memberi tahu ujung lain "ini adalah sepotong data" atau "ini masuk ke jalur perintah / respons". Ini memang membuat pemrograman sedikit lebih sulit, dan itu menghalangi independen membaca dan menulis ke dua aliran. Tetapi fungsi dasar ftp bisa dilakukan hanya dengan satu port.
Dan telnet bisa menggunakan port kedua - meskipun dengan fungsi terbatas telnet, saya tidak bisa membayangkan untuk apa. Mungkin satu port untuk setiap arah ... atau mungkin untuk mengimplementasikan pengiriman "istirahat" dengan bersih.
Jadi salah satu yang akhirnya valid, tetapi kemungkinan tidak membantu, jawabannya adalah: "karena orang-orang yang menulisnya diimplementasikan seperti itu."
sumber
Protokol ftp menggunakan 2 port 20 dan 21, port 20 untuk Kontrol dan port 21 untuk Data, dan telnet hanya menggunakan port 23 untuk melakukan interaksi dengan terminal.
sumber