您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
(电子邮箱地址)-电子邮件地址注册
协议,服务器,客户端(电子邮箱地址)-电子邮件地址注册
发布时间:2020-12-06加入收藏来源:互联网点击:
电子邮箱地址(电子邮件地址注册)
链接:
https://mp.weixin.qq.com/s/6WMa2a9sQywrxGwZhOPDmQ原作者:网络技术平台
上帝视角
应用层
我们前面介绍过 TCP/IP 模型的下三层,分别是网络接入层、网络层和传输层。它们都是为应用层服务的,传输应用层的各种数据,现在我们就来看看最高层的应用层。
应用层
在 TCP/IP 模型中,应用层提供的服务相当于 OSI 模型的应用层、表示层和会话层的服务总和。不仅包含了管理通信连接的会话层功能、数据格式转换的表示层功能,还包括主机间交互的应用层功能。
应用层功能
应用层的目的是向应用程序提供网络接口,直接向用户提供服务。相比于下层的网络协议,应用协议要常见得多,可能大家都听过 HTTP 、HTTPS 、SSH 等应用层协议。
应用层协议
TCP/IP 模型中应用层位于传输层之上,传输层的端口号用于标识数据所对应的应用层协议。也就是说,有端口号的协议都是应用层协议。应用协议是终端设备之间的应用通信规则。应用之间交互的信息叫消息,应用协议定义这些消息的格式以及消息的控制或操作的规则。
应用协议与端口号
应用协议的通信方式可分为两类:
服务器和客户端模型
P2P 模型
在服务器和客户端模型中,始终公开固定 IP 地址的主机为其它主机的应用程序提供服务,请求服务的主机之间不会互相通信。这些为其它主机提供服务的终端设备称为服务器,那些请求服务的主机则称为客户端。大多数应用层协议,都是这种模型。
服务器和客户端模型
在 P2P 模型中,没有特定的服务器或客户端,这些设备上安装的应用程序,可以在主机间建立对等连接,既可以提供服务,也可以接受服务。通常是大流量的应用程序采用 P2P 模型,比如:下载器等。
P2P模型
开发应用程序时,为了实现相应的功能和目的,可以使用现有的应用协议,也可以自己定义一个新的应用协议。同时,应用程序可以直接使用传输层以下的网络传输服务,开发者只需要关心选择哪种应用协议、如何开发即可,而不用考虑数据是如何传输到目的地。这也是 TCP/IP 分层模型的特点。
网络传输服务
应用程序有很多,包括 Web 浏览器、电子邮件、远程登录、文件传输、网络管理等。这些应用程序都会使用应用协议进行通信,应用协议正是为了实现应用程序的功能而设计和创造的。
应用程序
远程登录
网络设备的管理方式,分为本地管理和远程管理。远程管理是从本地主机登录到网络对端设备,向网络对端的设备发送管理数据,以实现设备管理的操作方式。通过远程管理,不仅可以直接使用主机上的应用,还可以对主机进行参数设置。远程登录主要使用 Telnet 和 SSH 两种协议管理网络设备。
远程登录
女神叫大刘去她公司修理网络,大刘都不用去女神的公司,直接远程登录解决问题。
Telnet
在实际工作中,除了个别无法远程管理设备外,大多会采用远程管理的方式,来管理设备的配置文件和系统文件。对比本地管理,远程管理不受物理位置限制,连上网络就可以对世界另一端的设备进行操控,更省去了插拔设备线缆、终端设置的过程,可以通过一个远程应用同时管理大量的网络设备。
Telnet 协议定义了一台设备通过 IP 网络向远端设备发起明文管理连接的通信标准,可以在一台设备上通过 Telnet 协议与一台远端设备建立管理连接,并对远端设备实施配置和监控,这种方式的体验与本地登录设备并无区别。发起管理的设备为 Telnet 客户端,被管理的设备是 Telnet 服务器。因此,Telnet 协议是一个典型的服务器和客户端模型的应用层协议。
Telnet协议
Telnet 协议通过 TCP 协议建立服务器和客户端的一条连接,并通过这条连接向服务器发送用户名、密码和命令。Telnet 协议使用的是 TCP 23 端口,表示客户端在发起 Telnet 连接时,默认连接服务器的 TCP 23 号端口。
当 Telnet 客户端输入命令后,这些命令通过 TCP 连接发送到 23 号端口,监听请求的守护进程 Telnetd 收到后,将命令发送给 Shell ,Shell 为操作系统进行命令解释,然后操作系统执行 Telnet 客户端发出的命令。同理,操作系统按照相反的顺序,将命令执行的结果发回给 Telnet 客户端。
Telnet 协议实现了远程命令传输,但是客户端和服务器跨越不可靠的公共网络时,在命令传输过程中可以截获 Telnet 通信的所有数据,然后使用截获的用户名和密码来通过 Telnet 服务器的身份认证,并登录到设备上对配置文件进行修改。
Telnet协议的安全隐患
Telnet 协议存在重大安全隐患,不推荐在实验室之外的环境使用。
SSH
SSH 协议全程是安全外壳协议,目的就是为了取代 Telnet ,SSH 是加密的远程登录协议,提供更加安全的远程登录服务。使用 SSH 后会加密通信内容。即使信息被截获,由于无法解密,也无法了解数据的真正内容。
SSH协议
SSH 协议常用版本是 SSHv2 ,SSH 客户端通过 SSHv2 协议与 SSH 服务器建立一条 TCP 的加密信道,建立这条安全信道的方式是让客户端使用服务器的 RSA 公钥来验证 SSH 服务器的身份。SSH 协议默认使用 TCP 22 端口。
如果客户端成功验证了服务器的身份,它们之间就会创建出一个会话密钥,并用双方协商出来的加密算法和会话密钥,对这个信道传输的数据进行加密。这样,两台设备之间就建立了一条安全的信道,使用这条安全信道发送密码,密码以密文的形式传输,通过服务器的身份认证。SSH 就是通过这种方式建立加密信道,确保 SSH 服务器,也就是被管理设备的 Shell 免遭非法用户操作。
文件传输
除了远程登录,我们还需要从远端设备传输文件,文件传输协议提供的应用服务可以满足我们的需求。FTP 是网络上文件传输的标准协议,FTP 使用 TCP 作为传输协议,支持用户的登录认证和访问权限的控制。另一种常见的文件传输协议是TFTP 协议,TFTP 是一种简单的文件传输协议,不支持用户的登录认证,也没有复杂的命令。TFTP 使用 UDP 作为传输协议,并有重传机制。
文件传输
FTP
FTP 用于服务器和客户端之间传输文件,是 IP 网络上传输文件的通用协议。FTP 采用客户端和服务器的模式,使用 TCP 协议提供可靠传输。FTP 可以对登录服务器的用户名和密码进行验证,允许客户端指定文件的传输类型,并且可以设置文件的传输权限。
FTP 使用两条 TCP 连接实现文件传输。一条是 FTP 控制连接,用来控制管理;另一条是 FTP 数据连接,用于数据传输。FTP 控制连接用于传输 FTP 控制命令和命令执行的应答信息,比如登录用户名和密码的验证、发送文件的名称、发送方式的设置。这条连接在整个 FTP 会话过程中一直保持打开,通过 ASCII 码字符串发送请求和接收应答。在控制连接上无法发送数据,而 FTP 数据连接用于文件和文件列表的传输,仅在需要传输数据时建立数据连接,数据传输完毕后终止。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |