应用层
应用层概述
应用层是用户与网络之间的接口,它为用户提供了各种方便、快捷、高效的网络应用服务。
常见的应用层协议:HTTP、DNS、FTP、TELNET等。
DNS
TCP/IP提供了通过IP地址来连接到设备的功能,但对用户来讲,记住某台设备的IP地址是相当困难的,因此专门设计了一种字符串形式的主机命名机制,这些主机名与IP地址相对应。在IP地址与主机名之间需要有一种转换和查询机制,提供这种机制的系统就是域名系统DNS(Domain Name System)。
端口号为TCP或UDP的53
域名的构成
域名由根域、顶级域和二级域名构成。
顶级Internet域名 | 含义 |
---|---|
com | 商业组织 |
edu | 教育机构 |
gov | 政府机构 |
mil | 军事部门 |
net | 主要网络支持中心 |
int | 国际组织 |
org | 其他组织 |
国家代码 | 国家(按照地理模式划分) |
DNS域名解析过程
通过域名获取对应IP地址的过程称为域名解析。DNS域名解析分为以下两种方式:
-
静态域名解析
静态域名解析是通过静态域名解析表进行的,即手动建立域名和IP地址之间的对应关系表,该表的作用可以将一些常用的域名放入表中。当DNS客户端需要域名所对应的IP地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的IP地址,提高域名解析的效率 -
动态域名解析
动态域名解析需要专用的域名解析服务器(DNS服务器)运行域名解析服务器程序,提供从域名到IP地址的映射关系,负责接收客户提出的域名解析请求。
为提高查询速度,在解析域名时,首先采用静态域名解析的方法,如果静态解析不成功,再采用动态域名解析的方法。
DNS查询方式
递归查询
客户机向DNS服务器发出请求后,DNS若本身不能解析,则会向其他的DNS发出查询请求,得到结果后转交给客户机,这个过程称之为递归查询!(递归:提供优质的跑腿服务,帮你去打听你想要的信息)
迭代查询
一般用于dns服务之间,当客户机发送查询请求时,DNS服务器一般不会直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机在向另外一台dns服务器提交请求,一次循环,直到返回查询结果,这个过程称之为迭代!(迭代:不告诉你结果,只告诉你去找下一台DNS服务器)
FTP
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议。
FTP的主要功能是允许用户从一个主机向另一个主机传输文件。它使用客户端 - 服务器模型,用户通过FTP客户端与FTP服务器进行通信。
FTP的工作原理如下:
控制连接:TCP 21
,用于发送FTP命令信息数据连接:TCP 20
,用于上传、下载数据- 数据连接的建立类型:主动模式、被动模式
主动模式:服务器主动发起数据连接
被动模式:客户端主动发起数据连接,服务器被动等待
FTP的优点包括:
- 可以方便地在不同主机之间传输文件。
- 支持大文件传输。
- 可以对用户进行权限管理,确保文件的安全性。
然而,FTP也存在一些缺点,如传输过程中数据是明文传输,存在安全隐患;不支持断点续传等。
总的来说,FTP是一种常用的文件传输协议,在网络文件传输中发挥着重要作用。
TELNET
Telnet 是一种远程登录协议,它允许用户通过网络连接到远程主机,并在远程主机上执行命令和操作。
网络设备管理方式
- 本地管理,通过 console 线缆管理网络设备。第一次配置设备时使用远程管理,通过IP网络,利用
- 远程管理协议管理设备,比如Telnet或SSH
常见的远程管理协议
- Telnet,多在公司内部使用,传输数据的方式是明文,端口号为TCP23
- Ssh,可在任何场景下使用,传输数据的方式是密文,端口号为TCP 22
Telnet的常见认证方式
- 密码认证,远程登录时,仅仅需要密码,认证方式单一,权限控制不精准
- AAA认证,远程登录时,需要用户名和密码,可为不同的用户分配不同权限远程登录权限的控制,更加灵活
Telnet 的主要特点包括:
- 远程控制:用户可以在本地计算机上远程控制远程主机,执行各种操作。
- 命令执行:用户可以在远程主机上执行命令,获取系统信息、管理文件和目录等。
- 跨平台性:Telnet 可以在多种操作系统上运行,包括 Windows、Linux、Mac 等。
然而,需要注意的是,Telnet 传输的数据是明文的,存在安全风险。因此,在实际应用中,逐渐被更安全的远程登录协议如 SSH 所取代。
总的来说,Telnet 是一种早期的远程登录技术,虽然在安全性方面存在不足,但在某些特定场景下仍然可能会被使用。
通过 Telnet,用户可以使用终端仿真程序与远程主机进行交互。当用户发起 Telnet 连接时,本地计算机与远程主机之间建立起一个 TCP 连接。在连接建立后,用户可以输入用户名和密码进行身份验证,然后就可以在远程主机上执行各种命令,就像在本地主机上操作一样。