- 应用层总结(不含HTTP和错题重点解析)
- 应用层简介
- 网络应用模型
- 域名系统DNS
- [层次域名空间(Hierarchical Domain Name Space)](#层次域名空间(Hierarchical Domain Name Space))
- 域名查询方式
- [递归查询(Recursive Query)](#递归查询(Recursive Query))
- [迭代查询(Iterative Query)](#迭代查询(Iterative Query))
- 次UDP报文总共来自哪里?看前面的内容。
- [文件传输协议 FTP File Transport Protocol](#文件传输协议 FTP File Transport Protocol)
- 电子邮件
应用层总结(不含HTTP和错题重点解析)
应用层简介
计算机网络的应用层是OSI模型和TCP/IP模型的最高层,负责提供网络服务给应用软件。这一层直接面向用户和应用程序,是用户与网络之间的接口。
应用层的主要功能
- 应用协议支持:提供各种网络服务协议,如HTTP(用于网页浏览)、FTP(用于文件传输)、SMTP(用于电子邮件)、DNS(用于域名解析)等。
- 数据表示:处理数据格式的转换、编码和解码,使得不同的应用可以互相理解和使用数据。
- 会话管理:管理应用之间的会话,包括会话的建立、维持和终止。
- 服务广告和服务发现:帮助用户发现和连接网络服务。
常见的应用层协议
- HTTP(Hypertext Transfer Protocol):用于传输网页数据,是万维网的基础协议。
- HTTPS(HTTP Secure):HTTP的安全版本,通过SSL/TLS加密数据传输,确保数据的安全性。
- FTP(File Transfer Protocol):用于文件在网络上的传输。
- SMTP(Simple Mail Transfer Protocol):用于发送电子邮件。
- POP3(Post Office Protocol 3)和IMAP(Internet Message Access Protocol):用于接收电子邮件。
- DNS(Domain Name System):将域名解析为IP地址。
小林对于应用层通常的解释
最上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都是在应用层实现。那么,当两个不同设备的应用需要通信的时候,应用就把应用数据传给下一层,也就是传输层。
所以,应用层只需要专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。
应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。
而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。
网络应用模型
客户端-服务器模型(Client-Server Model, C/S)
客户端-服务器模型是一种常见的网络架构,应用程序被分为两个主要部分:客户端 和服务器 。这种模型的核心思想是通过服务器为客户端提供服务和资源。
在这个模型中,有一个总是打开的主机称为服务器 ,它处理很多来自其他被称为客户机的主机请求。
特点
- 集中控制:服务器集中管理资源和服务,客户端通过请求访问这些资源。
- 明确分工:客户端负责用户接口和请求处理,服务器负责处理请求和管理数据。
- 安全性:服务器集中存储和管理数据,便于实现集中安全策略。
优点
- 易于管理:集中管理使得系统维护和升级更为方便。
- 安全性好:数据集中存储,便于实施安全策略和数据备份。
- 性能稳定:服务器可以通过负载均衡和冗余设计来提高性能和可靠性。
缺点
- 单点故障:服务器出现问题时,整个系统可能无法正常工作。
- 可拓展性不佳:随着客户端数量的增加,服务器需要更高的性能和带宽支持。
- 服务器压力大:所有客户端请求集中到服务器,可能导致服务器负载过高。
- 客户机相互之间不能通信:例如,web应用中两个浏览器并不能直接通信。
应用场景
- Web应用:如网页浏览(浏览器和Web服务器)。
- 电子邮件系统:如邮件客户端和邮件服务器。
- 数据库系统:如数据库客户端和数据库服务器。
对等网络模型(Peer-to-Peer Model, P2P)
对等网络模型是一种去中心化的网络架构,每个节点(peer)在网络中既可以充当客户端,也可以充当服务器。节点之间可以直接进行通信和资源共享。
特点
- 去中心化 :没有中央服务器,所有节点 具有相同的地位。
- 资源共享:每个节点既可以提供资源,也可以请求资源。
- 高扩展性:节点数量增加时,网络容量也随之增加。
- 自组织:网络可以自动适应节点的加入和离开。
优点
- 抗故障能力强:没有单点故障,网络更加健壮。
- 资源利用率高:每个节点都可以贡献带宽和存储资源,分担负载。
- 扩展性好:随着节点的增加,网络性能和容量也增加。
缺点
- 安全性较差:由于没有中央控制,难以统一管理和保障安全。
- 一致性问题:数据的分布和更新需要复杂的协议来保持一致性。
- 复杂性高:节点的动态变化和资源分布管理相对复杂。
应用场景
- 文件共享:如BitTorrent、eDonkey等P2P文件共享网络。
- 分布式计算:如SETI@home,利用闲置的计算资源进行科学计算。
- 即时通讯:部分P2P即时通讯应用,如Skype的早期版本。
比较
特性 | 客户端-服务器模型(C/S) | 对等网络模型(P2P) |
---|---|---|
结构 | 中心化 | 去中心化 |
控制 | 集中管理 | 分布式管理 |
扩展性 | 依赖服务器性能和带宽 | 节点增加带来性能提升 |
安全性 | 高安全性 | 安全性较差 |
抗故障能力 | 单点故障风险 | 高抗故障能力 |
资源利用 | 服务器集中提供资源 | 每个节点共享资源 |
总结
客户端-服务器模型适用于需要集中控制和管理的应用场景,具有良好的安全性和管理性。而对等网络模型则适用于分布式资源共享和高扩展性的应用场景,具有高抗故障能力和资源利用率。选择哪种模型取决于具体的应用需求和网络环境。
域名系统DNS
参考链接
特别说明 :DNS系统采用客户/用户端
层次域名空间(Hierarchical Domain Name Space)
以www.server.com
为例。
这是层次树状的命名方法,任何一个连接到因特网的主机或者路由器都有一个唯一的层次结构名称。这句话非常难以理解?没关系因为根本不用理解,只要记住是层次树状结构 即可。Man!What can I say?
www.server.com
这个域名由三个.
分开的域
组成。
每个域
都由标号组成。
从右到左分别是顶级域名、二级域名、三级域名。
域名查询方式
域名解析过程中,递归查询和迭代查询是两种不同的查询方式。下面我们详细介绍它们的区别,并列出各自的步骤。
域名解析过程中,递归查询和迭代查询是两种不同的查询方式。下面我们详细介绍它们的区别,并列出各自的步骤。
递归查询(Recursive Query)
在递归查询中,DNS服务器接收到查询请求后,如果不能直接回答请求,它将代表客户端继续查询其他DNS服务器,直到获得最终答案,然后将结果返回给客户端。
递归查询步骤
- 用户请求:用户在浏览器中输入
www.example.com
,请求发送到递归DNS服务器。 - 递归DNS服务器查询根域名服务器:如果递归DNS服务器没有缓存结果,它向根域名服务器发送查询请求。
- 根域名服务器响应:根域名服务器返回
.com
顶级域名服务器的地址。 - 递归DNS服务器查询顶级域名服务器:递归DNS服务器向
.com
顶级域名服务器发送查询请求。 - 顶级域名服务器响应:顶级域名服务器返回
example.com
的权威DNS服务器地址。 - 递归DNS服务器查询权威DNS服务器:递归DNS服务器向
example.com
的权威DNS服务器发送查询请求。 - 权威DNS服务器响应:权威DNS服务器返回
www.example.com
的IP地址。 - 返回结果:递归DNS服务器将
www.example.com
的IP地址返回给用户的设备。
迭代查询(Iterative Query)
在迭代查询中,DNS服务器接收到查询请求后,如果不能直接回答请求,它将返回一个指向其他DNS服务器的地址,客户端(或中间DNS服务器)需要继续查询这些服务器,直到获得最终答案。
迭代查询步骤
- 用户请求:用户在浏览器中输入
www.example.com
,请求发送到本地DNS服务器。UDP查询 - 本地DNS服务器查询本地缓存,若没有记录,则查询根域名服务器:本地DNS服务器向根域名服务器发送查询请求。UDP查询
- 根域名服务器响应:根域名服务器返回
.com
顶级域名服务器的地址。UDP响应 - 本地DNS服务器查询顶级域名服务器:本地DNS服务器向
.com
顶级域名服务器发送查询请求。UDP查询 - 顶级域名服务器响应:顶级域名服务器返回
example.com
的权威DNS服务器地址。UDP响应 - 本地DNS服务器查询权威DNS服务器:本地DNS服务器向
example.com
的权威DNS服务器发送查询请求。UDP查询 - 权威DNS服务器响应:权威DNS服务器返回
www.example.com
的IP地址。UDP响应 - 返回结果:本地DNS服务器将
www.example.com
的IP地址返回给用户的设备.UDP响应
递归查询和迭代查询的比较
-
查询方式:
- 递归查询:DNS服务器替客户端完成所有查询工作。
- 迭代查询:客户端或中间DNS服务器逐步查询每一级DNS服务器。
-
负担:
- 递归查询:递归DNS服务器负担较重,需要处理整个查询过程。
- 迭代查询:客户端或中间DNS服务器负担较重,需要逐步处理每一级查询。
-
响应速度:
- 递归查询:客户端等待时间较长,因为递归DNS服务器处理所有查询。
- 迭代查询:每次查询的响应速度较快,但整体查询过程由客户端或中间DNS服务器处理。
-
缓存:
- 递归查询:递归DNS服务器可以缓存查询结果,提高后续查询效率。
- 迭代查询:每一级DNS服务器可以缓存部分结果,但整体查询过程可能不会缓存所有结果。
总结
递归查询和迭代查询在DNS解析过程中各有优劣,递归查询由递归DNS服务器完成整个查询过程 ,适合减少客户端的复杂性和负担,而迭代查询由客户端或中间DNS服务器逐步查询 ,每一级查询结果都返回给客户端或中间服务器,适合分布式查询和减轻单个服务器的负担。选择哪种查询方式取决于具体的网络配置和需求。
次UDP报文总共来自哪里?看前面的内容。
本地域名服务器 向根域名服务器 查询通常是采取迭代查询 。
文件传输协议 FTP File Transport Protocol
FTP提供的功能
- 提供不同种类主机系统之间的文件传输能力
- 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
- 以匿名FTP的方式提供公用文件共享的能力
FTP在传输层所使用的协议
FTP采用 C/S 服务器的工作方式,使用TCP可靠的传输服务。
一个FTP故武器进程可同时为多个客户进程提供服务。
FTP的服务器进程由两大部分组成:一个主进程负责接收新的请求 ;另外若干从属进程负责处理单个请求。
工作步骤:
- 代开熟知端口(控制端口) Port 21,使得客户进程能够链接。
- 等待用户进程发送链接需求。
- 启动从属进程处理客户进程发来的请求。 从属进程对客户进程的请求处理完毕后即终止。
- 回到等待状态,继续接受其他客户进程的请求。主进程与从属进程是并发执行的。
在FTP(文件传输协议)中,控制连接和数据连接有不同的作用和过程:
控制连接
作用:
- 控制连接用于传递FTP命令和服务器的响应。它主要负责管理会话、用户认证以及控制命令的发送和接收。
过程:
- 建立连接:客户端与服务器之间建立控制连接,通常使用TCP端口21。
- 用户认证:客户端发送用户名和密码进行认证。
- 命令传输 :客户端发送各种FTP命令(如
USER
、PASS
、LIST
、RETR
、STOR
等),服务器响应这些命令。 - 会话管理 :控制连接始终保持打开状态,直到客户端发送
QUIT
命令终止会话。
数据连接
作用:
- 数据连接用于传输实际的文件数据,如上传、下载文件以及获取目录列表等。
过程:
- 建立连接:根据客户端和服务器之间的约定(主动模式或被动模式),数据连接在需要传输数据时临时建立。
- 传输数据 :
- 主动模式 :客户端在控制连接中发送
PORT
命令,指示服务器连接到客户端指定的端口。服务器主动连接客户端的数据端口,传输数据。 - 被动模式 :客户端在控制连接中发送
PASV
命令,服务器响应一个端口号,客户端主动连接服务器的该端口进行数据传输。
- 主动模式 :客户端在控制连接中发送
- 关闭连接:数据传输完成后,数据连接自动关闭。
主动模式和被动模式
-
主动模式(Active Mode):
- 客户端发送
PORT
命令,指定数据端口。 - 服务器从端口20主动连接到客户端指定的数据端口。
- 这种模式下,客户端需要打开防火墙以允许外部连接到指定端口。
- 客户端发送
-
被动模式(Passive Mode):
- 客户端发送
PASV
命令,请求服务器打开一个数据端口。 - 服务器响应一个端口号,客户端主动连接这个端口。
- 这种模式下,服务器需要打开防火墙以允许客户端连接到指定端口。
- 客户端发送
电子邮件
电子邮件系统
电子邮件系统由以下组成部分:
-
用户代理(User Agent):
- 用户与电子系统的接口。
-
邮件服务器:
- 他的功能是发送和接受文件。,同时还要向发件人报告邮件传送的情况(已交付、被拒绝、丢失等)。
- 服务器以 C/S 模式工作,蛋挞必须能够同时担任服务器和客户。
-
邮件访问协议:
- POP3:一种简单的邮件访问协议,允许用户从邮件服务器下载邮件到本地设备。
- IMAP:一种更复杂的协议,允许用户在服务器上管理和访问邮件,同时支持多个设备同步。
- SMTP:主要用于发送邮件,但也用于从用户代理传输邮件到 MTA。
邮件发送协议和读取协议的应用
- SMTP服务器是采取
推
的通信方式,POP3是采取拉
的通信方式
电子邮件格式
form:XXX@XXX
to:XXX@XXX
subject:XXXX
这是电子邮件首部的格式,to是必填的关键字。subject是选填的,内容是可选的关键词。
电子邮件首部和主体。
额外说明:MIME (Multipurpose Internet Mail Extensions)
MIME是出于SMTP无法传递非英语的、7位ASCII码文本邮件设计的。
关注错题、关注STMP和POP3的工作流程、使用过程
这我随后会在本章的做题总结中详细写出来。