[408] [计算机网络] 应用层
在中,有一个总是打开的主机称为,他服务于许多来自其他称为的主角请求。:客户是服务请求方,服务器是服务提供方。
网络应用模型
1.客户/服务器模型
在客户服务器(C/S)模型中,有一个总是打开的主机称为服务器,他服务于许多来自其他称为客户机的主角请求。其工作流程如下:
- 服务器处于接收请求的状态。
- 客户机发出服务请求,并等待接收结果。
- 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。
最重要的特征:客户是服务请求方,服务器是服务提供方。
客户/服务器模型的主要特点还有:
- 网络中各计算机的地位不平等,服务器可通过对用户权限的限制来达到管理客户机的目的。整个网络的管理工作由少数服务器负责,因此网络的管理非常集中和方便。
- 客户机相互之间不直接。
- 可扩展性不佳。
2.P2P模型
整个网络中传输内容不再被保存在中心服务器上,每个节点都同时具有下载、上传的功能,其权利和义务都是大体对等的。
与C/S模型相比,P2P模型的优点主要体现如下:
- 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个节点上,因此大大提高了系统效率和资源利用率。
- 多个客户机之间可以直接共享文档。
- 可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求。
- 网络健壮性强,单个节点的失效不会影响其他部分的节点。
域名系统
域名系统是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。
从概念上可将DNS分为三部分:局次域名空间、域名服务器和解析器。
1.层次域名空间
因特网采用层次树状结构的命名方式。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。
域的名字空间中一个可被管理的划分。
每个域名都由标号序列组成,而各标号之间用点隔开。
关于域名:
- 标号中的英文不区分大小写。
- 标号中除连字符外不能使用其他的标号符号。
- 每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
- 级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
顶级域名(TLD)分为如下三大类:
- 国家(地区)顶级域名(nTLD)。国家和某些地区的域名。
- 通用顶级域名(gTLD)。com公司,net网络服务机构,org非盈利性机构,edu教育机构,gov国家或政府部门。
- 基础结构域名(arpa)。用于方向域名解析,即IP地址方向解析为域名。
在域名系统中,各级域名由其上一级的域名管理机构管理,顶级域名由因特网名称与数字地址分配机构(ICANN)管理。
国家顶级域名下注册的二级域名均由该国家自行确定,每个组织都可以将它的域再分成一定数量的子域,并将这些子域委托给其他组织去管理。
2.域名服务器
域名到IP地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围成为区(小于或等于域)。
根域名服务器
根域名服务器是最高层次的域名服务器为,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
因特网上有13个根域名服务器。
根域名服务器用来关系额顶级域,通常它并不直接将待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个登记域名服务器进行查询。
顶级域名服务器
这域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
权限域名服务器(授权域名服务器)
每台主机都必须在权限域名服务器处登记。一台主机最好至少有两个权限域名服务器。
实际上,许多域名服务器都同时充当本地域名服务器和权限域名服务器。权限域名服务器总能将其管辖的主机名转换为该主机的IP地址。
本地域名服务器
每个因特网服务提供者(ISP),或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。
当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。
事实上,我们在Windows系统中配置“本地连接”时,就需要填写DNS地址,这个地址就是本地DNS(域名服务器)的地址。
DNS的层次结构如下:
3.域名解析过程
域名解析是指把域名转化为IP地址的过程。
域名解析方式有两种方式:递归查询和迭代查询
- 主机向本地域名服务器的查询都采用递归查询
递归查询是指若主机所查询的本地域名服务器不知道被查询域名的IP地址,则本地域名服务器就以DNS客户的身份,向根域服务器继续发出查询请求报文(替代主机继续查询(,而不是让改主机自己进行下一步的查询。 - 主机域名服务器向其他域名服务器采用递归查询或迭代查询
递归查询DNS的工作原理
如下图a所示,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归地在其他几个域名服务器之间进行的[步骤3-6]。在步骤7中,本地服务器从根域名服务器得到了所需的IP地址,最后在步骤8中,本地域名服务器把查询结果告诉发起查询的主机。
因为该方法给根域名服务器造成了负载过大,所以实际上几乎不使用。
迭代查询DNS的工作原理
本地域名服务器向跟域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“下一步应当向哪个顶级域名服务器进行查询”,如下图b所示。
过程举例(假定某客户机向获知域名为y.abc.com主机的IP地址)域名解析过程(最多需要使用8个UDP报文:4个查询报文和4个回答报文)如下:
- 客户机向其本地域名服务器发出DNS请求报文(递归查询)。
- 本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求报文(迭代查询)。
- 根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
- 本地域名服务器dns.com收到请求后,判断该域名属于aabc.com域,因此将对应的权限域名服务器dns.abc.com的IP地址返回给本地域名服务器。
- 本地域名服务器向权限服务器dns.abc.com发出解析请求报文(迭代查询)。
- 权限域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器。
- 本地域名服务器将查询结果保存到本地缓存,同时返回给客户端。
文件传输协议
1.FIP的工作原理
**文件传输协议(FTP)**是因特网上使用得最广泛的文件传输协议。
FTP提供交互式的访问,运行客户指明文件的类型和格式,并允许文件具有存取权限。
FTP提供以下功能:
- 提供不同类型主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
- 以用户权限管理的方式通过用户对远程FTP服务器上的文件管理能力。
- 以匿名FTP的方式提供公用文件共享的能力。
FTP采用客户/服务器的工作方式。使用TCP可靠的传输服务。
DTP服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外由若干从属进程,负责处理单个请求。其工作步骤如下:
- 打开熟知端口21(控制端口),使客户进程能够连接上。
- 等待客户进程发连接请求。
- 启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止。
- 回到等待状态,继续接受其他客户进程的请求。主进程与从属进程是并发执行的。
2.控制连接与数据连接
FTP在工作时使用两个并行的TCP连接,一个是控制连接(服务器端口号21),一个是数据连接(服务器端口号20)。
1).控制连接
服务器监听21端口,等待客户链接,建立在这个端口上的连接称为控制连接,用来传输控制信息。
2).数据连接
数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
数据连接有两种传输模式:主动模式PSRT和被动模式PASV。
- PORT模式的工作原理:客户端连接服务器的21端口,登录成功后要读取数据时,客户端随机开发一个端口,并发送命令告知服务器,服务器收到PORT命令和端口号后,通过20端口和客户端开放的端口进行连接,发送数据。
- PASV模式:不同点在于客户端要读取数据时,发送PASV命令到服务器,服务器在本地随机开发一个端口,并告知客户端,客户端再连接到服务器开发的端口进行数据传输。
主动模式传送数据时服务器连接到客户端的端口;被动模式传送数据时客户端连接到服务器的端口。
电子邮件
1.电子邮件系统的组成节后
电子邮件是一种异步通信方式。
一个电子邮件系统应具有三个最重要的组件:用户代理、邮件服务器和电子邮件使用的协议。
- 用户代理:用户和电子邮件系统的接口。
- 邮件服务器:它的功能是发送和接收邮件,同时还要向发件人报告邮件传送的情况。
- 邮件发送协议和读取协议:邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件。
需要主要的是,SMTP用的是推的通信方式。POP0用的是拉的通信方式。
电子邮件的收发过程:
- 发件人调用用户代理来撰写和编辑哟啊发送的邮件。
- 邮件撰写完后,发件人电力“发送邮件”按钮,把发送邮件的工作全都交给用户代理来完成,就什么都不用管了。用户代理用SMTP把邮件传送给发送端邮件服务器。
- 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
- 发送端邮件服务器的SMTP客户与接收端邮件服务器的SMTP服务器建立TCP连接,然后就把邮件缓存矩阵中的邮件依次发送出去。注意,邮件是直接传送到接收端邮件服务器的,而不会在互联网的某个中间邮件服务器落地。
- 运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收件人的用户邮箱,等待收件人在方便时进行读取。
- 收件人打收信时,调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回。
2、电子邮箱格式和MIME
一个电子邮件分为信封和内容两大部分,邮件内容分为首部和主体两部分。
To是必填的关键字,后面填入一个或多个收件人的电子邮件地址。
Subject是可选关键字,是邮件的主题。
From是一个必填的关键字,但它通常由邮件系统自动填入。
多用途因特网邮件扩展(MIME)
MIME并未改动SMTP或取代他。当发送端发送的邮件中包含有非ASCII码数据时,不直接使用SMTP进程传送,而是通过MIME进行转换,并非ASCII码数据转换为ASCII码数据。之后,就可以使用SMTP进行传送。接收端也要使用MIME对接收到的ASCII码数据进行行逆转换,以便可以得到包含有非ASCII码数据的邮件。
MIM主要包含以下三部分内容:
- 5个新的邮件首部字段,包括MIME版本、内容描述、内容标识、传送编码和内容类型。
- 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
- 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
3.SMTP和POP3
SMTP
简单邮件传输协议(SMTP)是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP进程叫唤信息。采用客户/服务器模式,用的是TCP连接,端口号是25。
SMTP通信有以下三个阶段:
- 连接建立
注:TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立。 - 邮件传送
RCPT指令的作用是,先弄清接收方系统是否已做好节后邮件的准备,然后才发送邮件。 - 连接释放
POP3和IMAP
邮局协议(POP)是一个非常简单但功能有限的邮件读取协议,POP也采用客户/服务器模式,在传输层使用TCP,端口号是110。
接收方的用户代理必须运行POP客户程序。
POP有两种工作模式:
- 下载并保留:用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服务器上读取该邮件。
- 下载并删除:邮件一旦被读取,就被从邮件服务器上删除。
因特网报文存取协议(IMAP),IMAP为用户通过了创建文件夹、在不同文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令。
IMAP允许用户代理只获取报文的某些部分。
此外,用户浏览器与Hotmail或Gmail的邮件服务器之间的邮件发送或接收使用规定是HTTP,而仅在不同邮件服务器之间传送邮件时才使用SMTP。
网维网
1.WWW的概念与组成结构
万维网(WWW)是一个分布式、联机式的信息存储空间,这个空间中:一样有用的事物称为一样资源,并由一个全域**统一资源定位符(URL)**标识。这些资源通过超文本传输协议(HTTP)传送给使用者,而后者通过点击链接来获取资源。
万维网的内核部分是由三个标准构成的:
- 统一资源定位符(URL)。负责表示万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。
- 超文本传输协议(HTTP):一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
- 超文本标记语言(HTML):一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息、格式进行描述。
URL的一般形式是:<协议>://<主机>:<端口>/<路径>
万维网以客户/服务器模式工作,工作流程如下:
- Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求。
- Wen服务器把URL转换为文件路径,并返回信息给Web浏览器。
- 通信完成,关闭连接。
2.超文本传输协议 HTTP
HTTP是面向事务的应用层协议。
HTTP操作过程(万维网的操作过程),用户点击鼠标后发生的实践顺序如下(以访问清华大学的网站为例):
- 浏览器分析连接指向页面的URL(http://www.tsinghua.edu.cn/chn/index.htm)。
- 浏览器向DNS请求www.tsinghua.edu.cn的IP地址。
- 域名系统DNS解析出清华大学服务器的IP地址。
- 浏览器与该服务器建立TCP连接(默认端口号为80)。
- 浏览器发出HTTP请求:GET/chn/index.htm。
- 服务器通过HTTP响应把文件index.htm发送给浏览器。
- 释放TCP连接。
- 浏览器解析文件index.htm,并将Web页显示给用户。
HTTP的特点
HTTP使用TCP作为传输层协议。
HTTP本身是无连接的。
HTTP是无状态的。HTTP通常使用Cookie加数据库的方式来跟踪用户的活动。
HTTP页面请求时间的分析
对于非持续连接,每个页面元素对象的传输都需要单独建立一个TCP连接,如图6.12所示。请求一个万维网文档所需的时间是该文档的传输时间加上两倍往返时间RTT。
对于持续连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和该服务器可以继续在这条TCP连接上传送后续的HTTP请求报文和响应,如图6.13所示。
HTTP/1.1页面请求时间分析
HTTP/1.1默认使用持续连接,持续连接又分为非流水线和流水线两种工作方式。
对于非流水线方式,客户在收到前一个响应后才能发出下一个请求。
对于流水线方式,客户可以连续发出对各种对象的请求,服务器就可连续响应这些请求。
HTTP是基于TCP的,所以每RTT内传送的数据量还要受到TCP发送窗口的限制。
HTTP的报文结构
HTTP是面向文本的,有两类HTTP报文:
- 请求报文:从客户向服务器发送的请求报文。
- 响应报文:从服务器到客户的回答。

两类报文都由三部分组成:
- 开始行:在请求报文中的开始行称为请求行,而在响应报文中的开始行称为状态行。
- 首部行:用来说明浏览器、服务器或报文主体的一些信息。
- 实体主体:在请求报文中一班不用这个字段,而在响应报文中也可能没有这个字段。
表 6 HTTP 请求报文中常用的几个方法
| 方法(操作) | 意义 |
|---|---|
| GET | 请求读取由 URL 标识的信息 |
| HEAD | 请求读取由 URL 标识的信息的首部 |
| POST | 给服务器添加信息(如注释) |
| PUT | 在指定 URL 处存储一个文档 |
| DELETE | 删除由 URL 标识的资源 |
| CONNECT | 用于代理服务器 |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)