当前位置: 首页 > news >正文

【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理

远程登录的工作原理

  • 背景介绍
  • 远程登录
    • 远程登录的服务模式
      • 远程登录服务的实现基础
      • 远程登录服务的运行模式
      • Telnet服务为什么不被操作系统管理
    • Telnet协议的原理
      • 网络虚终端(NVT)
        • 结束标示
        • NVT的原理
          • NVT屏蔽差异

背景介绍

绝大多数计算机都是运行多用户操作系统的中小型机,这些中小型机通常由一台主机和多个终端组成,主机的计算资源被多个终端用户共享。系统为每个用户分配一个账号,规定了用户对系统的访问权限。
在这里插入图片描述
用户通过自己的账号在某个终端登录后,可以访问系统的部分或全部资源。

远程登录

远程登录的主要目的是使远端用户能够像本地用户一样访问远程系统的资源。为了实现这一目标,远程登录协议的设计旨在提供一个相对通用、双向且面向8位字节的通信方法,以便远端终端设备能够以标准化的方式与计算机系统进行交互。

目前,TCP/IP协议族中有两个主要的远程登录协议:telnet和rlogin。telnet协议是我们主要介绍和分析的内容,由RFC 854定义,成为互联网中主机被要求采用和实现的标准。

本文主要探讨Telnet协议的服务方式、工作原理以及其主要命令

远程登录的服务模式

远程登录协议基于TCP协议运行,客户终端通过TCP连接与远程计算机进行通信。该服务采用客户-服务器模式。如下图所示,终端上运行着Telnet客户端进程,而远程计算机系统则运行着服务器进程。
在这里插入图片描述
客户端和服务器进程借助一条TCP连接进行数据交互。

远程登录服务的实现基础

远程登录服务的核心目的在于为远程用户提供与本地用户相当的服务体验。鉴于系统通常向本地用户提供多条命令,系统同样需确保这些命令对远程用户也可用。若单纯采用客户-服务器模式,则需为每位登录用户可能使用的每条命令分别创建一个进程,这将导致系统为接纳一个远程登录请求而不得不生成多个服务器进程,极大地限制了系统的可扩展性。
在这里插入图片描述
为解决这一问题,远程登录服务采用了一种优化策略:即为每位远程登录用户仅创建一个静态的shell进程。该shell进程负责解释和处理来自远端用户的所有服务请求,并根据需要动态地fork出相应的子进程来完成具体的服务任务。这种方法显著减少了系统中静态进程的数量,有效防止了系统进程数随远程登录用户数量的增加而迅速膨胀,从而圆满解决了可扩展性问题。
在这里插入图片描述
因此,在Telnet远程登录连接中,双方仅需各自运行一个应用程序即可实现通信。在客户终端上运行的是客户进程,而在远程计算机上运行的则是服务器进程。

远程登录服务的运行模式

在远程服务场景中,专门提供远程登录功能的主机会持续运行一个名为Telnet的服务器进程(亦称作守护进程),该进程时刻准备接收来自终端用户的登录请求。远程登录的流程始于终端用户发起Telnet命令的那一刻,此时,与该命令相关联的本地应用程序扮演着客户端的角色。

随后,客户端会与远程计算机上的Telnet服务器建立一条TCP连接。一旦接收到连接请求,远程登录服务器便会为该用户专门创建一个shell进程。基于这条TCP连接,客户端会将用户通过终端键盘输入的指令传输给服务器端的shell进程。
在这里插入图片描述
Shell进程在接收到用户指令后,会对其进行解析,并派生出一个子进程来执行相应的程序。程序执行的结果随后通过TCP连接回传给客户端。客户端在接收到这些来自服务器的字符信息后,会通过其所在终端的操作系统,将这些信息展示给用户。

Telnet服务为什么不被操作系统管理

从先前的图示中可以洞察到的另一个关键点是,在Telnet服务架构中,服务器进程与客户进程均未被整合进操作系统内核,这一设计抉择主要基于以下两方面的深思熟虑:

  • Telnet服务主要面向的是键盘类终端设备。考虑到用户击键的速度与微秒级进程切换所产生的响应延迟相比,几乎可以忽略不计。
  • Telnet等类似程序作为独立的应用程序来处理,有助于保持系统内核的精简与高效。

Telnet协议的原理

现在,我们来详细阐述Telnet远程登录服务的整个流程,该过程精炼地划分为以下三个核心步骤:

  • 第一步,远程用户通过其终端发起对目标系统的登录请求。这一登录行为的内在本质,是通过建立一个TCP连接来实现的,它充当了用户与系统间沟通的桥梁。
  • 第二步,紧接着,用户的键盘输入被逐字逐句地传输至远端的主机系统。这一过程确保了用户输入的每一个字符都能准确无误地到达目标系统,供其处理。
  • 第三步,主机系统在接收到用户指令并完成相应操作后,将其输出结果反馈回用户的本地系统。这样,用户就能实时看到系统的响应和执行结果。
    在这里插入图片描述
    尽管这一流程看似直观且简洁,但考虑到Internet上主机和终端的多样性——它们可能来自不同的制造商,采用了各异的技术标准——要确保Telnet能在如此复杂多变的环境中顺畅运行,就必须实现输入/输出对远端系统内核的透明性。

Telnet巧妙地利用了网络虚终端技术和选项协商机制,这两种技术共同协作,确保了无论远端系统的具体实现如何,用户都能获得一致且透明的远程登录体验。

网络虚终端(NVT)

针对Telnet远程登录技术而言,系统间的异构性问题主要体现在它们对键盘输入的解释上存在的差异性。具体而言,这种差异不仅广泛存在,而且在细节上尤为显著。

结束标示

在行结束标志的处理上,尽管所有系统在用户按下回车键时都会执行换行操作,表现出一定的共性,但行结束标志的具体实现方式却大相径庭。有的系统采用ASCII字符CR(回车符)作为行结束的标志,而另一些系统则使用CR-LF(回车换行符组合)作为标志。这种使用不同字符作为行结束标志的做法,直接导致了异构系统之间在远程登录时的互操作性障碍。

用于触发进程终止的键码也因系统而异。在某些系统中,Ctrl+C键被设定为进程终止码,而在其他系统中,这一功能则可能由Del键承担。这种键码定义的多样性,无疑进一步加剧了异构系统间的兼容性问题。

流控字符在不同异构系统间的差异也不容忽视。这些字符用于控制数据传输的速率和流量,以确保通信的稳定性和效率。然而,由于各系统对流控字符的定义和解释各不相同,这也成为了实现远程登录时需要克服的又一难题。

NVT的原理

为了有效解决上述问题,Telnet协议引入了一种标准化的键盘定义方式——网络虚终端(NVT,Network Virtual Terminal)。NVT为异构系统提供了一种统一的键盘输入解释框架,从而确保了不同系统间在进行远程登录时能够准确、高效地传递键盘输入信息。通过这种方式,Telnet协议极大地提升了异构系统间的互操作性和兼容性。

NVT屏蔽差异

在解决互联网中的异构性问题时,核心策略在于将各类设备特有的数据格式转换为一个预先商定且普遍适用的、与具体设备无关的数据格式,以此来封装并掩盖设备间的异构差异。这一理念类似于IP协议的功能,它有效地屏蔽了不同物理子网之间的异构特性。同样地,Telnet协议利用网络虚拟终端(NVT)机制,来消除不同终端设备之间因物理特性差异所带来的不兼容问题。NVT的工作机制详见下图。
在这里插入图片描述
在客户与服务器交互过程中,双方分别采用各自的本地数据格式进行输入输出。对于远程登录会话,客户端软件负责将用户输入转换为标准的网络虚拟终端(NVT)数据及命令序列,随后通过TCP连接传递给远程服务器。服务器则接收这些NVT序列,并将其转换为远程系统的内部格式。由于客户与服务器均熟悉各自系统的内部格式及NVT规范,上述转换过程得以顺畅进行。

相关文章:

【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理

远程登录的工作原理 背景介绍远程登录远程登录的服务模式远程登录服务的实现基础远程登录服务的运行模式Telnet服务为什么不被操作系统管理 Telnet协议的原理网络虚终端(NVT)结束标示NVT的原理NVT屏蔽差异 背景介绍 绝大多数计算机都是运行多用户操作系…...

AnyPlace助力Franka突破物体形状与配置多样性挑战

物体几何形状与放置配置多样性的挑战 在机器人操作领域,物体放置一直是一个复杂且富有挑战性的任务。由于物体的几何形状和放置配置的多样性,实现稳健且可推广的物体放置变得尤为困难。 传统的机器人放置方法往往依赖于大量的特定任务演示,…...

【工控】线扫相机小结 第五篇

背景介绍 线扫相机通过光栅尺的脉冲触发, 我在调试线扫过程中,发现图像被拉伸,预设调节分配器。图像正常后,我提高的相机的扫描速度(Y轴动的更快了)。 动的更快的发现,图像变短了(以…...

【Prometheus】层层解析prometheus如何监控k8s核心组件

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...

泄露测试仪CTS的Sentinel I28使用

前言:本文档主要讨论CTS Sentinel I28的使用方法,设备图片如下: 具体文档可从下面链接下载: https://download.csdn.net/download/qq_34047402/90471262 泄露测试仪CTS的SentinelI28使用资源-CSDN文库 [注意] 调压方式,若选择机械式调压,那么测试的压力值只能有1个,…...

Python字典,集合

一.字典 在 Python 中,字典(dict)是一种非常重要且常用的数据结构,它用于存储键值对. 如下为字典的创建,打印键,打印值,和清空的操作 二.集合 在 Python 中,集合(set)是一种无序且唯一的数据…...

【数据分析大屏】基于Django+Vue汽车销售数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅

目录 一、项目背景 二、项目创新点 三、项目功能 四、开发技术介绍 五、项目功能展示 六、权威视频链接 一、项目背景 汽车行业数字化转型加速,销售数据多维分析需求激增。本项目针对传统报表系统交互性弱、实时性差等痛点,基于DjangoVue架构构建…...

Ubuntu用户安装cpolar内网穿透

前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、Mac OS系统自不必多说,稍显小众的Linux、树莓派、群辉等也在起支持之列&#…...

关于sqlalchemy的ORM的使用

关于sqlalchemy的ORM的使用 二、创建表三、使用数据表、查询记录 二、创建表 使用Mapped来映射字段 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker,Mapped,mapped_columnBase declarative_base() engine create_engin…...

C 语言分支与循环:构建程序逻辑的基石

在 C 语言的世界里,分支和循环结构是编程的核心内容,它们赋予了程序根据不同条件执行不同操作以及重复执行特定代码段的能力,让程序变得更加智能和高效。今天,我们就深入探讨 C 语言分支和循环的相关知识,助力大家夯实…...

J-LangChain - Agent - 编排一个 ReAct + Function Call 反应链

系列文章索引 J-LangChain 入门 介绍 j‑langchain 是一款基于 Java 的 AIGC 编排框架,致力于集成多种大模型(LLM)调用及 RAG 工具。自 1.0.8 版本起,我们引入了工具函数(Function Call)调用能力&#xf…...

Rust 之一 基本环境搭建、各组件工具的文档、源码、配置

概述 Rust 是一种强调性能、类型安全和并发性的通用编程语言。它强制执行内存安全,使用其特有的所有权机制,而无需传统的垃圾收集器。Rust 不强制执行编程范式,但受到函数式编程思想的影响。 最初是由 Mozilla 员工 Graydon Hoare 在 2006 年…...

详细介绍 Jupyter nbconvert 工具及其用法:如何将 Notebook 转换为 Python 脚本

nbconvert 是 Jupyter 提供的一个非常强大的工具,允许用户将 Jupyter Notebook 文件(.ipynb)转换成多种格式,包括 Python 脚本(.py)、HTML、PDF、LaTeX 等。你可以通过命令行来运行 nbconvert,也…...

C语言之预处理

预处理 一.头文件的包含1.1头文件的作用1.2包含头文件的方式- 包含标准库头文件- 包含用户自定义头文件 1.3嵌套文件包含 二.条件编译2.1条件编译的作用2.2条件编译的指令 三.预定义符号四.define4.1define定义常量4.2#define定义宏4.2.1定义宏时常见错误 4.3宏替换的规则4.4带…...

AcWing--869.试除法求约数

题目: 给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一个整数 ai。 输出格式 输出共 n 行,其中第 i 行输出第 i 个整数 ai 的所有…...

【HeadFirst系列之HeadFirstJava】第16天之深入解析 Java 集合与泛型:高效管理数据的终极指南!(含代码实战)

Java 集合与泛型全解析:数据结构的奥秘(基于 Head First Java 第 16 章) 在 Java 开发中,我们经常需要存储和操作大量数据。如何高效地存储、检索和操作数据?如何避免数组的局限性?Java 集合框架&#xff…...

【从零开始学习计算机科学】操作系统(七)文件管理

【从零开始学习计算机科学】操作系统(七)文件管理 文件管理文件的逻辑结构文件的读写方式文件的物理结构与组织文件目录空闲块管理文件的共享文件的权限控制与保护文件系统的其他功能文件管理 文件管理主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就…...

Stable Diffusion F.1模型全面解析

一、引言:生成式AI的变革与SD模型的演进 生成式AI的崛起 扩散模型(Diffusion Model)成为图像生成领域的主流范式,其通过逐步去噪过程实现高保真图像合成。Stable Diffusion(SD)作为开源社区标杆&#xff0c…...

基于SpringBoot的手机销售网站设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

上海利氪科技-再次续订MappingSpace

2024年6月,智能底盘系统方案商利氪科技完成C轮融资,本轮融资规模超10亿元人民币。 成立于2021年,利氪科技短短三年时间就已获得近20亿元融资。 利氪科技是领先的智能线控底盘系统方案商。公司聚焦新能源汽车和自动驾驶核心领域,依…...

go注册rpc接口

1.定义proto文件: syntax "proto3";package pb;service Service { rpc RPC (Request) returns (Reply) {} }message Request {string Action 1;int64 TraceID 2;string Payload 3; }message Reply {int32 Code 1;int64 TraceID 2;string Pa…...

如何在Spring Boot中校验用户上传的图片文件的两种方法

在现代应用中,用户上传图片是一个常见的需求。无论是社交平台、电子商务网站还是任何需要用户交互的应用,图片上传功能都显得尤为重要。但合理地校验用户上传的图片文件是必不可少的步骤,避免不合规的文件影响系统的稳定性和安全性。本文将介…...

如何将一个项目推送到gitlab

1. 初始化本地项目为 Git 仓库 若本地项目还不是 Git 仓库,要先将其初始化为 Git 仓库。在项目根目录下打开终端,执行如下命令: git init 2. 添加文件到暂存区 使用 git add 命令把项目中的文件添加到暂存区。若要添加所有文件&#xff0…...

【JavaWeb学习Day24】

Web前端实战 Vue工程化 Vue是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org) Vue项目工程化:在企业级的前端项目开发中,把前端开发所需求的工具、技术、流程、经验等进行规范、标准化。…...

Scratch034豌豆发射(下)

知识回顾 1、克隆体点击角色的判断 2、使用克隆体时“停止该角色其他脚本”积木的作用范围。 效果演示 提示:这里可以添加本文要记录的大概内容每隔一段时间,舞台右侧就会出现多个除草机向左移动 点击不同位置的豌豆射手,可以发射豌豆攻击对应位置的除草机 除草机被豌豆击中…...

nacos下载及安装

下载官方最新稳定版 github下载较慢,推荐下面的下载链接 Nacos Server 下载 | Nacos 官网 点击下载和试用下载最新稳定版 Nacos Server 下载 | Nacos 官网 配置检查(可选) 默认情况下,Nacos 使用内置的 Derby 数据库&#x…...

javase集合框架Map篇

一、常见的Map的实现 有HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap。 二、HashMap和Hashtable 的区别 HashMap:底层是基于数组链表,非线程安全的,默认容量是16、允许有空的健和值。 Hashtable:基于哈希表…...

【RAGFlow】windows本地pycharm运行

原因 由于官方只提供了docker部署,基于开源代码需要实现自己内部得逻辑,所以需要本地pycharm能访问,且docker运行依赖得其余组件,均需要使用开发服务器得配置。 修改过程 安装python 项目依赖于Python 版本:>3.1…...

STM32初始安装

前言 很多人刚买来STM32就迫不及待地想要用它来写程序,看见STM32开发版和ST-Link上有几个插口就直接连接,结果就像我一样一不小心就导致ST -Link烧坏了😂 所以本篇博客将做最基础的但是对于小白来说最重要的教学,STM32的线路连接…...

数据库系统概论(二)数据模型

数据库系统概论(二)数据模型 数据库系统概论(二)数据模型前言一、数据建模二、概念模型三、数据模型的三要素四、层次模型五、网状模型六、关系模型 总结(核心概念速记): 数据库系统概论&#x…...

深入理解C语言链表:数据结构的基石

在C语言的编程宇宙中,链表就像是一座稳固的基石,支撑着众多复杂程序的构建。它以独特的魅力和强大的功能,在解决各类编程难题时发挥着至关重要的作用。今天,就让我们一同深入探索链表的奥秘。 目录 一、链表初相识 二、链表的结…...

微信小程序文件存储和获取的详细方案

在微信小程序中,要根据索引(如自定义标识符)检查是否存在对应的文件,可以通过以下方案实现。这里假设你已通过某种方式将文件路径与索引关联存储(例如使用本地缓存 Storage),以下是完整流程&…...

java BCC异或校验例子

需求 对一个十六进制的字符串进行BCC校验 方法 private static String XORCheck(String rawMsg) {// 16进制字符串需要转成10进制数组进行校验,然后再返回16进制字符串用于与原来的字符匹配byte[] bytes HexDumpMsgFormat.hexStr2DesBytes(rawMsg);return BytesUt…...

[machine learning] DP(Data Parallel) vs DDP(Distributed Data Parallel)

DP和DDP是并行训练的两种方法,本文简单介绍它们两者的区别。 一、DP (Data Parallel) DP是单进程,多线程的,每个线程负责一个GPU,它只适用于一台机器。DP训练的流程如下图所示(图片转载自:https://medium.com/mlshar…...

今日头条文章爬虫教程

今日头条文章爬虫教程 随着互联网的发展,新闻资讯类平台如今日头条积累了海量的数据。对于数据分析师、研究人员等群体来说,获取这些数据进行分析和研究具有重要的价值。本文将介绍如何使用Python编写爬虫,爬取今日头条的文章数据。 一、准…...

鸿蒙应用开发—数据持久化之SQLite

文章目录 SQLite简介创建数据库添加数据查询数据更新数据删除数据升级数据库使用事务参考 SQLite简介 SQLite是一个轻量级关系数据库,占用资源很少,只有几百KB的大小,无需服务器支撑,是一个零配置、事务性的SQL数据库引擎。 相对…...

Docker Compose 部署 steamcmd 安装奈斯服务端

由于打算在云端服务器部署奈斯启示录服务端跟朋友们一起玩, 所以在云端搭建服务器, 顺便写下本文章记录搭建的过程。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 要使用 Docker Compose 部署 steamcmd(Steam 命令行…...

K8s 1.27.1 实战系列(八)Service

一、Service介绍 1、Service 的作用与核心功能 Service 是 Kubernetes 中用于抽象一组 Pod 并提供稳定访问入口的资源。它解决了以下问题: ​Pod IP 不固定:Pod 可能因故障、扩缩容或更新导致 IP 变化,Service 通过 ClusterIP(虚拟 IP)提供固定访问地址。​负载均衡:自动…...

Scala编程_实现Rational的基本操作

在Scala中实现一个简单的有理数(Rational)类,并对其进行加法、比较等基本操作. 有理数的定义 有理数是可以表示为两个整数的比值的数,通常形式为 n / d,其中 n 是分子,d 是分母。为了确保我们的有理数始终…...

Android15 Camera框架中的StatusTracker

StatusTracker介绍 StatusTracker是Android15 Camera框架中用来协调Camera3各组件之间状态转换的类。 StatusTracker线程名:std::string("C3Dev-") mId "-Status" Camera3 StatusTracker工作原理 StatusTracker实现批处理(状态…...

Manus 演示案例:谷歌公司运营模拟器游戏体验

一、项目背景与愿景 在科技行业蓬勃发展的当下,谷歌作为行业巨头,其成长历程充满了无数值得深入探究的决策智慧。这些决策不仅塑造了谷歌的辉煌,也为全球企业的发展提供了宝贵的借鉴。本项目旨在打造一款以谷歌公司发展为蓝本的运营模拟器游戏…...

【大模型基础_毛玉仁】2.1 大数据+大模型→新智能

【大模型基础_毛玉仁】2.1 大数据大模型→新智能 2.大语言模型架构2.1 大数据大模型→新智能2.1.1 大数据大模型→能力增强1)Kaplan-McCandlish 扩展法则2)Chinchilla 扩展法则 2.1.2 大数据大模型→能力扩展 2.大语言模型架构 大语言模型(L…...

20天 - TCP 和 UDP 有什么区别?说说 TCP 的三次握手?TCP 是用来解决什么问题?

TCP 和 UDP 有什么区别? TCP(传输控制协议)和 UDP(用户数据报协议)都是传输层的网络协议,它们的主要区别如下: 连接方式 TCP:面向连接的协议,类似于打电话&#xff0c…...

【设计模式】掌握建造者模式:如何优雅地解决复杂对象创建难题?

概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。…...

【网络安全工程】任务11:路由器配置与静态路由配置

目录 一、概念 二、路由器配置 三、配置静态路由CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用:通过路由表进行数据的转发。 2、交换机的作用:通过学习和识别 MAC 地址,依据 M…...

10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 第一篇:Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…...

蓝桥杯备赛-差分-重新排序

问题描述 给定一个数组 AA 和一些查询 Li,RiLi​,Ri​, 求数组中第 LiLi​ 至第 RiRi​ 个元素之和。 小蓝觉得这个问题很无聊, 于是他想重新排列一下数组, 使得最终每个查 询结果的和尽可能地大。小蓝想知道相比原数组, 所有查询结果的总和最多可 以增加多少? 输入格式 输…...

①Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网

Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网https://item.taobao.com/item.htm?ftt&id784749793551 MODBUS TCP 通信单元 MODBUS TCP 转 RS485 MS-A1-50X1 系列概述 MS-A1-50X1 系列概述 MS-A1-50X1系列作为MODBUS TCP通信的服务器进行动作。可通…...

2025年四川烟草工业计算机岗位备考详细内容

四川烟草工业计算机岗位备考详细内容(持续更新) 文章目录 四川烟草工业计算机岗位备考详细内容(持续更新)一、计算机基础(一)计算机发展与组成计算机发展历程计算机系统组成软件系统 (二&#x…...

Git 设置全局代理

Git 设置全局代理或项目代理 git config: 全局配置,设置git代理服务器 # 设置 HTTP 代理 git config --global http.proxy http://127.0.0.1:7897# 设置 HTTPS 代理 git config --global https.proxy http://127.0.0.1:7897# 设置所有协议的代理&…...