【TCP/IP】14. 遠程登錄協議

14. 遠程登錄協議

  • 14. 遠程登錄協議
    • 14.1 基本概念
    • 14.2 Telnet 命令
    • 14.3 Telnet 選項及協商
    • 14.4 Telnet 子選項協商
    • 14.5 Telnet 操作模式
    • 本章要點

14. 遠程登錄協議

14.1 基本概念

Telnet 協議是 TCP/IP 協議族的重要成員,核心功能是實現本地計算機對遠程主機的終端仿真,使本地用戶能像直接操作遠程主機一樣訪問其資源。

  1. 遠程登錄的定義
    本地用戶通過 TCP/IP 協議進入遠程主機的用戶帳號,以遠地用戶的身份訪問遠程主機資源。使用場景包括:
    • 用戶在遠程主機擁有注冊帳號(用戶名 + 口令);
    • 遠程主機提供公共 Telnet 信息資源(對所有用戶開放)。
  2. 工作原理
    • 核心組件:Telnet 客戶端(本地)、Telnet 服務器(遠程,運行Telnetd守護進程)、TCP 連接(端口 23)。
    • 流程:
      1. 遠程主機啟動Telnetd,監聽端口 23,等待客戶端請求;
      2. 本地用戶通過 Telnet 客戶端發起連接請求;
      3. 服務器接收請求后,創建偽終端(Pseudo子進程),模擬終端與客戶端交互;
      4. 客戶端與服務器通過選項協商確定工作模式,用戶輸入用戶名和口令完成登錄;
      5. 登錄成功后,用戶輸入的每一個字符經 TCP 傳輸到服務器,服務器處理后將結果返回客戶端并顯示。
  3. Telnet 的用途
    • 縮短空間距離:本地用戶可遠程訪問異地主機資源,無需物理在場;
    • 兼容性強:支持異種計算機和操作系統(如 Windows 與 UNIX)之間的互操作;
    • 訪問其他 Internet 服務:通過 Telnet 可間接使用遠程主機提供的其他服務(如 FTP、郵件)。
  4. 網絡虛擬終端(NVT)
    • 作用:解決不同計算機系統(異質性)對鍵盤輸入和顯示解釋的差異,提供統一的標準接口。
    • 字符集:
      • 采用 8bit 字節傳輸,最高位為 0 的字節表示普通數據(7 位 ASCII 碼);
      • 最高位為 1 的字節表示 NVT 命令(如回車、退格等控制字符)。
    • 轉義機制:使用IAC(轉義字符,字節值 255)標識控制命令的開始,后續字節為具體命令(如IAC EC表示刪除前一個字符)。
    • 連接特性:控制信息與數據共享同一 TCP 連接,服務器固定端口 23,客戶端使用動態端口。

14.2 Telnet 命令

Telnet 命令用于啟動客戶端程序并配置連接參數,分為啟動命令和客戶端控制臺命令兩類。

  1. 啟動命令格式

    telnet [-d] [-a] [-n tracefile] [-e escapechar] [-l user] host [port]
    
    • 選項說明:
      • -d:開啟調試模式;
      • -a:嘗試自動登錄(通過USER命令傳輸用戶名);
      • -n tracefile:將跟蹤信息記錄到指定文件;
      • -e escapechar:指定轉義字符(默認通常為Ctrl+]);
      • -l user:指定登錄遠程主機的用戶名;
      • host:遠程主機的域名或 IP 地址;
      • port:遠程主機的端口號(默認 23)。
  2. 客戶端控制臺命令
    連接建立后,通過轉義字符進入控制臺模式,常用命令包括:

    • open host [port]:連接到指定主機(若已連接則先關閉當前連接);
    • close:關閉當前連接;
    • quit:退出 Telnet 客戶端;
    • send:向遠程主機發送控制命令(如send ayt詢問對方是否在線,send brk發送中斷信號);
    • status:顯示當前連接狀態;
    • help:查看命令幫助。

14.3 Telnet 選項及協商

選項協商是 Telnet 的核心機制,用于雙方協商工作模式(如數據傳輸格式、終端類型等),確保通信兼容。

  1. 核心選項
    Telnet 定義了多個標準選項,用于配置 TCP 連接的行為,常見選項如下:

    選項名稱代碼RFC 文檔功能描述
    傳輸二進制0856允許傳輸 8 位二進制數據(默認僅支持 7 位 ASCII)
    回應1857允許一方回顯收到的數據(如遠程主機回顯用戶輸入)
    抑制 GA3858禁止在數據后發送 “Go Ahead” 信號,支持全雙工通信(默認半雙工需 GA 信號觸發發送)
    狀態5859請求遠程主機返回當前選項的狀態
    終端類型241191交換終端類型信息(如客戶端使用的終端型號,確保遠程應用正確顯示)
    行模式341116支持本地編輯,整行數據一次性發送(減少網絡交互)
  2. 協商命令與過程

    • 協商命令:雙方通過 4 個命令碼進行選項協商,均以IAC開頭:
      • WILL X:請求啟用本地的 X 選項(“我想使用 X 選項,你同意嗎?”);
      • DO X:同意對方啟用 X 選項(“你可以使用 X 選項”);
      • WONT X:拒絕啟用本地的 X 選項(“我不會使用 X 選項”);
      • DONT X:拒絕對方啟用 X 選項(“你不可以使用 X 選項”)。
    • 協商過程:選項協商是對稱的,任何一方均可主動發起。例如:
      1. 客戶端發送IAC WILL 24(請求啟用終端類型選項);
      2. 服務器回應IAC DO 24(同意對方啟用),協商成功;若服務器拒絕,則回應IAC DONT 24

14.4 Telnet 子選項協商

部分選項(如終端類型)需要更詳細的參數配置,需通過子選項協商機制交換具體信息。

  1. 子選項協商命令格式
    IAC SB(子選項開始)和IAC SE(子選項結束)為邊界,格式為:

    <IAC, SB, 選項碼, 參數1, 參數2, ..., IAC, SE>
    
    • SB:子選項協商開始標志;
    • 選項碼:對應的主選項代碼(如 24 表示終端類型);
    • 參數:子選項的具體信息(如終端類型字符串)。
  2. 終端類型子選項協商示例

    • 客戶端請求啟用終端類型選項:IAC WILL 24
    • 服務器同意:IAC DO 24
    • 服務器詢問客戶端終端類型:IAC SB 24 1 IAC SE(參數 1 表示 “請求發送終端類型”);
    • 客戶端回應終端類型(如 “mypc”):IAC SB 24 0 'M' 'Y' 'P' 'C' IAC SE(參數 0 表示 “回應終端類型”,字符串為大寫);
    • 服務器接收后自動轉換為小寫(如 “mypc”),用于適配遠程應用(如屏幕編輯程序)。

14.5 Telnet 操作模式

Telnet 支持 4 種操作模式,用于適應不同的交互場景(如輸入方式、數據傳輸粒度)。

  1. 半雙工模式
    • 特點:客戶端需等待服務器發送 “Go Ahead(GA)” 信號后才能輸入數據;用戶輸入在本地回顯,且只能整行發送。
    • 適用場景:早期低速網絡,避免數據沖突。
  2. 一次一個字符方式
    • 特點:用戶鍵入的每個字符立即單獨發送到服務器;服務器通常回顯字符(除非應用程序禁用回顯)。
    • 依賴選項:需同時啟用 “回應(ECHO)” 和 “抑制 GA” 選項,支持全雙工實時交互。
  3. 一次一行方式(準行方式)
    • 特點:用戶在本地編輯整行數據,完成后一次性發送;回顯由本地或遠程控制。
    • 觸發條件:當 “ECHO” 或 “抑制 GA” 選項無效時自動啟用。
  4. 行方式(RFC 1184 定義)
    • 特點:全雙工模式,支持本地編輯(如修改、刪除字符),整行完成后發送,優化網絡傳輸效率。
    • 優勢:克服準行方式的缺陷,是現代 Telnet 實現的主流模式。

本章要點

  • Telnet 通過 TCP 連接實現本地計算機對遠程主機的終端仿真,核心是網絡虛擬終端(NVT),解決異種系統的互操作性問題。
  • 遠程登錄流程包括連接建立、選項協商、身份驗證、數據交互和連接釋放,依賴Telnetd服務器進程和客戶端程序協作。
  • 選項協商機制(WILL/DO/WONT/DONT)用于配置工作模式,子選項協商進一步交換詳細參數(如終端類型)。
  • 4 種操作模式(半雙工、一次一個字符、一次一行、行方式)適應不同交互需求,行方式為現代實現的首選。
  • Telnet 命令分為啟動命令(配置連接參數)和控制臺命令(管理連接與發送控制信息)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88828.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88828.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88828.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink1.20.1集成Paimon遇到的問題

flinkcdc mysql 到paimon 1&#xff1a;Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.data.Schema 可以參考這個文章 明確指出了flink-connector-mysql-cdc-3.4.0.jar存在這個包&#xff0c;但是flink-sql-connector-mysql-cdc-3.4.0.jar中沒有這個…

C++高頻知識點(十)

文章目錄46. 智能指針是什么&#xff1f;怎么使用?1. std::unique_ptr2. std::shared_ptr3. std::weak_ptr47. 什么是野指針&#xff1f;1. 使用已釋放的指針2. 未初始化的指針3. 指針超出作用域如何避免野指針1. 立即將指針置空2. 初始化指針3. 使用智能指針4. 避免返回局部變…

c#中Random類、DateTime類、String類

C# 中 Random 類分析Random 類用于生成偽隨機數&#xff0c;位于 System 命名空間。它的核心機制是基于一個種子值 (seed)&#xff0c;通過算法生成看似隨機的數列。相同種子會生成相同的隨機數序列&#xff0c;這在需要可重現的隨機場景中很有用。核心特點種子與隨機性默認構造…

Vscode 下載遠程服務器失敗解決方法

今天在使用 vscode 連接遠程主機時&#xff0c;突然再次遇到這個問題&#xff0c;按照以往的經驗&#xff0c;直接按照這個博主的文章其實就能解決&#xff0c;但是不知道為什么&#xff0c;今天這個方案失效了&#xff0c;然后卸載安裝服務器和本機的vscode什么的也都試過了&a…

【算法】貪心算法:檸檬水找零C++

文章目錄前言題目解析算法原理代碼示例策略證明前言 題目的鏈接&#xff0c;大家可以先試著去做一下再來看一下思路。 860. 檸檬水找零 - 力扣&#xff08;LeetCode&#xff09; 題目解析 首先我們要認真去拿到題目中的關鍵有用信息。 認真的去閱讀題目給的示例&#xff0c;然…

27.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--單體轉微服務--幣種服務(一)

從本篇文章開始&#xff0c;我們將用兩篇內容詳細介紹幣種服務的實現。幣種服務本身結構較為簡單&#xff0c;核心功能包括內置幣種的初始化、幣種匯率的同步以及匯率的查詢。在本篇中&#xff0c;我們將重點講解如何實現內置幣種的初始化功能&#xff0c;為后續的服務打下基礎…

(2)從零開發 Chrome 插件:實現 API 登錄與本地存儲功能

從零開發 Chrome 插件&#xff1a;實現 API 登錄與本地存儲功能 Chrome 插件作為瀏覽器功能的重要擴展&#xff0c;能極大提升用戶的工作效率。本文將以一個「登錄功能插件」為例&#xff0c;帶你從零構建一個可調用 API 驗證身份、并將用戶信息存儲在本地的 Chrome 插件。 基…

Flink時間窗口詳解

一、引言在大數據流處理的領域中&#xff0c;Flink 的時間窗口是一項極為關鍵的技術&#xff0c;想象一下&#xff0c;你要統計一個電商網站每小時的訂單數量。由于訂單數據是持續不斷產生的&#xff0c;這就形成了一個無界數據流。如果沒有時間窗口的概念&#xff0c;你就需要…

寬帶接入,網線插入電腦的經驗

現在一般家里安裝移動寬帶&#xff0c;都會提供四個千兆接口的光貓路由器&#xff0c;但是要注意了 首先網線的兩端看起來一樣&#xff0c;實際上并不是&#xff0c;如果發現連接不成功&#xff0c;那么就要換一頭重新嘗試&#xff0c; 一般像說什么自動DHCP啊&#xff0c;因為…

crmeb多門店對接拉卡拉支付小程序聚合收銀臺集成全流程詳解

一、商戶注冊與配置??注冊支付平臺賬號??&#xff1a;在拉卡拉開放平臺注冊商戶賬號&#xff08;私信聯系注冊&#xff09;??創建應用??&#xff1a;獲取小程序應用ID(AppID)??配置支付參數??&#xff1a;商戶號(MID)終端號(TID)API密鑰支付回調地址二、配置拉卡拉…

C#將樹圖節點展示到NetronLight圖表中

之前寫過NetronLight開源框架 C#使用開源框架NetronLight繪制流程圖-CSDN博客 我們這里將TreeView樹圖的節點內容展示到NetronLight圖表中&#xff0c;按照樹的層次【深度Level】展示 新建窗體應用程序ShowTreeNodeToDiagram&#xff0c;將默認的Form1重命名為FormShowNode&…

精密模具大深徑比微孔尺寸檢測方案 —— 激光頻率梳 3D 輪廓檢測

引言精密模具中大深徑比微孔&#xff08;深徑比&#xff1e;20:1&#xff0c;孔徑&#xff1c;1mm&#xff09;的尺寸精度直接影響注塑件、電子元件等產品的成型質量。此類微孔具有孔徑小、深度大、表面質量要求高&#xff08;Ra≤0.1μm&#xff09;等特點&#xff0c;傳統檢測…

defer學習指南

一、源頭&#xff1a;早期管理資源&#xff08;如數據庫連接、鎖、文件句柄、網絡連接&#xff09;和狀態清理異常麻煩。 必須在每個可能的返回點&#xff08;return、err、panic&#xff09;手動重復清理代碼&#xff0c;極易遺漏且打斷主要邏輯思路&#xff01;像Java語言雖然…

NLP_知識圖譜_大模型——個人學習記錄

1. 自然語言處理、知識圖譜、對話系統三大技術研究與應用 https://github.com/lihanghang/NLP-Knowledge-Graph 深度學習-自然語言處理(NLP)-知識圖譜&#xff1a;知識圖譜構建流程【本體構建、知識抽取&#xff08;實體抽取、 關系抽取、屬性抽取&#xff09;、知識表示、知…

linux:進程詳解(1)

目錄 ?編輯 1.進程基本概念與基本操作 1.1 概念 1.2 描述進程-PCB 1.2.1PCB的基本概念 1.2.2 task_ struct 1.2.3 查看進程 2.進程狀態 2.1 Linux內核源碼展示 2.2 進程狀態查看 ?編輯 2.3 Z(zombie)-僵?進程 2.4 僵尸進程的危害 2.5 孤兒進程 3.進程優先級 …

碳中和目標下的全球產業鏈重構:深度解析與未來路徑

引言&#xff1a;氣候臨界點與產業鏈的系統性風險2023年&#xff0c;全球平均氣溫較工業化前上升1.2℃&#xff0c;南極冰蓋年消融量達1500億噸&#xff0c;極端天氣事件導致的經濟損失占全球GDP的2.3%。這一系列數據背后&#xff0c;暴露出傳統產業鏈的致命缺陷——其設計邏輯…

FPGA實現SDI轉LVDS視頻發送,基于GTX+OSERDES2原語架構,提供2套工程源碼和技術支持

目錄 1、前言工程概述免責聲明 2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目本博已有的 SDI 編解碼方案FPGA實現LVDS視頻收發方案 3、工程詳細設計方案工程設計原理框圖SDI 輸入設備Gv8601a 均衡器GTX 解串SMPTE SD/HD/3G SDI IP核BT1120轉RGB奇…

新手向:使用Python構建高效的日志處理系統

本文將詳細講解如何使用Python開發一個專業的日志分析工具&#xff0c;能夠自動化處理、分析和可視化各類日志文件&#xff0c;大幅提升運維效率。環境準備開發本工具需要以下環境配置&#xff1a;Python環境&#xff1a;建議Python 3.8或更高版本必要庫&#xff1a;pandas&…

大模型-量化技術

簡介 模型量化是一種重要的模型壓縮技術。其核心目標是在可控精度損失下&#xff0c;將大模型中浮點型權重&#xff08;通常為 float32 等高精度格式&#xff09;近似轉換為低精度離散值表示&#xff08;通常為 int8&#xff09;。 具體而言&#xff0c;該技術通過將模型的權重…

【C語言網絡編程】HTTP 客戶端請求(域名解析過程)

在做 C 語言網絡編程或模擬 HTTP 客戶端時&#xff0c;第一步就離不開“把域名解析為 IP 地址”這一步。很多人可能直接復制粘貼一段 gethostbyname 的代碼&#xff0c;但未必真正理解它的原理。 本篇博客將圍繞一個經典函數&#xff1a; char *host_to_ip(const char *hostna…