Ftp
為什麼 FTP 協議設計為使用多個埠?
問題在標題中。我想知道這是因為我正在編寫一個 tcp 服務,並且想探索一些原因,因為它們可能會對我的工作有所啟發。
我希望使用不同的埠可以簡化對單獨的預期數據連接的處理,該數據連接的格式與控制連接不同。我相信這將允許接收器簡單地開始處理數據,而不必檢查它是否是連接啟動,如果它使用埠 21 則需要這樣做。
這將允許最後一個項目符號的換行列印機範例開始接收要列印的文本。但是,我不確定當時實際是如何使用它的(終端上的一個程序會將埠 20 轉發到他們的換行列印機,因為可能有一個 FTP 守護程序已經在監聽 21?)
至於為什麼另一個連接,有三個主要原因:
- 允許使用最有效的模式/字節大小進行傳輸(https://www.rfc-editor.org/rfc/rfc310)
傳輸效率是影響FTP有用性的一個重要因素。如果使用不適當的傳輸策略(例如,不適當的字節大小),文件傳輸可能非常昂貴(在 CPU 時間方面)並且速度很慢(實時)。應盡一切努力優化數據傳輸。一個好的策略可能是允許通過單獨的連接傳輸文件或關閉並重新打開連接(可能使用不同的字節大小)。
- 簡化日常連接處理 ( https://www.rfc-editor.org/rfc/rfc114#ref-4 )
$$ 4 $$我們考慮使用兩條全雙工鏈路,一條用於控制
資訊,另一條用於數據。
在協作程序之間使用單獨的控制連結將簡化中止、錯誤
恢復和同步。
- 能夠將輸出發送到另一台設備(https://www.rfc-editor.org/rfc/rfc310)
最好修改 FTP 以允許以指定的模式和類型將數據發送到指定的套接字。然後,TIP 使用者會發現在高速行式列印機上獲取他們的文件列表、從讀卡器輸入他們的文件以及在卡片或磁帶上保存備份很方便。