应用层

概述

1、计算机网络体系结构的最顶层

2、设计和建立计算机网络的最终目的

3、网络应用

(1)万维网 WWW

(2)域名系统 DNS

(3)动态主机配置 DHCP

(4)电子邮件

(5)文件传送 FTP、P2P 文件分享

(6)多媒体

 

网络应用程序在各种端系统上的组织方式

1、主流

(1)客户 / 服务器方式

(2)对等方式

2、网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务

3、开发一种新的网络应用首先要考虑的问题:网络应用程序在各种端系统上的组织方式和它们之间的关系

 

客户 / 服务器方式

1、C / S:Client / Server

2、客户、服务器:指通信中所涉及的两个应用进程

3、描述的是进程之间服务和被服务的关系

4、客户是服务请求方,服务器是服务提供方

5、服务器总是处于运行状态,并等待客户的服务请求,服务器具有固定端口号(例如:HTTP 服务器的默认端口号为 80)而运行服务器的主机也具有固定的IP地址

6、是因特网上传统的、最成熟的方式,应用:万维网 WWW、电子邮件、文件传输 FTP 等

7、基于 C / S 方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上

(1)由于一台服务器计算机要为多个客户机提供服务,在 C / S 应用中,常会出现服务器计算机跟不上众多客户机请求的情况

(2)为此,在 C / S 应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器

 

对等方式

1、P2P:Peer-to-Peer

2、在 P2P 方式中,没有固定的服务请求者和服务提供者

(1)对等方:分布在网络边缘各端系统中的应用进程是对等的

(2)对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者

3、应用:P2P 文件共享、即时通信、P2P 流媒体、分布式存储等

4、基于 P2P 的应用是服务分散型的

(1)因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中

(2)这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑

5、P2P 方式的最突出特性之一:可扩展性

(1)因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低

6、P2P 方式具有成本上的优势,因为它通常不需要庞大的服务器设施和服务器带宽

 

动态主机配置协议

1、DHCP:Dynamic Host Configuration Protocol,属于 TCP / IP 协议体系应用层的协议

2、作用:为局域网中各主机配置以下信息

(1)IP 地址

(2)子网掩码

(3)默认网关

(3)DNS 服务器

3、即插即用连网机制:允许一台计算机加入新网络时,可自动获取 IP 地址等网络配置信息而不用手工参与

4、主要使用以下报文来实现其功能

(1)DHCP Discover:DHCP 发现报文

(2)DHCP Offer:DHCP 提供报文

(3)DHCP Request:DHCP 请求报文

(4)DHCP ACK:DHCP 确认报文

(5)DHCP NACK:DHCP 否认报文

(6)DHCP Release:DHCP 释放报文

(7)DHCP Decline:DHCP 拒绝报文

(8)DHCP Inform:DHCP 信息报文

5、DHCP 报文在运输层使用 UDP 协议封装

6、DHCP 客户使用的 UDP 端口号:68;DHCP 服务器使用的 UDP 端口号:67

7、DHCP 客户在未获取到 IP 地址时,使用地址:0.0.0.0

8、在每一个网络上都设置一个 DHCP 服务器,会使 DHCP 服务器的数量太多,因此使每一个网络至少有一个 DHCP 中继代理(通常是一台路由器),它配置了 DHCP 服务器的 IP 地址信息,作为各网络中计算机与 DHCP 服务器的桥梁

9、DHCP 工作过程

(1)寻找 DHCP 服务器

(2)提供 IP 地址租用

(3)接受 IP 地址租约

(4)确认 IP 地址租约

(5)IP 地址续约

(6)随时解除 IP 地址租约

 

寻找 DHCP 服务器

1、启用主机的 DHCP 后,DHCP 客户端将广播发送 DHCP 发送报文

(1)封装 DHCP 发送报文的 IP 数据报

(2)源 IP 地址:0.0.0.0,因为主机目前未分配 IP 地址,所以使用该地址代替

(3)目的 IP 地址为广播地址:255.255.255.255,因为主机不知道网络中有哪几个 DHCP 服务器、其 IP 地址,所以进行广播发送

2、因为是广播 IP 数据报,所以网络中所有设备都会收到该 IP 数据报,解封出封装有 DHCP 发现报文的 UDP 用户数据报

(1)对于 DHCP 客户,其应用层没有监听该 UDP 用户数据报的端口 67 的进程,即 DHCP 服务器进程,所以无法交付 DHCP 发现报文,只能丢弃

(2)对于 DHCP 服务器,其应用层始终运行 DHCP 服务器进程,所以会接收该 DHCP 发现报文,并响应

(3)DHCP 发现报文:事务 ID、DHCP 客户端的 MAC 地址等

 

提供 IP 地址租用

1、DHCP 服务器收到 DHCP 发现报文后,根据其中封装的 DHCP 客户端的 MAC 地址,查找自己的数据库,是否有针对该 MAC 地址的配置信息

(1)若有,则使用这些配置信息,构建并发送 DHCP 提供报文

(2)若无,则采用默认配置信息,构建并发送 DHCP 提供报文

(3)封装 DHCP 提供报文的 IP 数据报

(4)源 IP 地址:DHCP 服务器的 IP 地址

(5)目的 IP 地址仍为广播地址:255.255.255.255,因为主机目前未配置 IP 地址,使主机可以接收,只能发送广播

(6)配置信息:IP 地址、子网掩码、地址租期、默认网关等

2、DHCP 服务器从自己的 IP 地址池中,挑选待租用给主机的 IP 地址时,会使用 ARP 确保所选 IP 地址,未被网络中其他主机占用

3、因为是广播 IP 数据报,所以网络中所有设备都会收到该 IP 数据报,解封出封装有 DHCP 发现报文的 UDP 用户数据报

(1)对于 DHCP 服务器,其应用层没有监听该 UDP 用户数据报的端口 68 的进程,即 DHCP 客户进程,所以无法交付 DHCP 发现报文,只能丢弃

(2)对于 DHCP 客户,其应用层运行 DHCP 客户进程,所以会接收该 DHCP 发现报文,并处理

 

接受 IP 地址租约

1、DHCP 客户根据 DHCP 提供报文的事物 ID,判断该报文是否为自己所请求的报文 

(1)若该事务 ID,与自己之前发送的 DHCP 发现报文中,封装的事务 ID 相等,则接收该报文,否则就丢弃该报文

(2)DHCP 客户收到多个 DHCP 服务器的 DHCP 提供报文,一般情况,选择最先到达的

2、首先需要征用该服务器的同意,之后才能正式使用向该 DHCP 服务器租用的 IP 地址

3、向所选择的 DHCP 服务器发送 DHCP 请求报文

(1)封装 DHCP 请求报文的 IP 数据报:事物 ID、DHCP 客户端 MAC 地址、接受租约中的 IP 地址、提供此租约 DHCP 服务器端的 IP 地址等

(2)源 IP 地址:0.0.0.0,因为此时 DHCP 客户才从多个 DHCP 服务器中,挑选一个作为自己的 DHCP 服务器

(3)目的 IP 地址仍为广播地址:255.255.255.255,不用向网络中每个 DHCP 服务器单播发送 DHCP 请求报文,来告知它们是否请求它们作为自己的 DHCP 服务器

 

确认 IP 地址租约

1、假设:指定的 DHCP 服务器收到 DHCP 请求报文后,接受该请求

2、DHCP 服务器给 DHCP 客户,发送 DHCP 确认报文

(1)封装 DHCP 确认报文的 IP 数据报

(2)源 IP 地址:DHCP 服务器的 IP 地址

(3)目的 IP 地址仍为广播地址:255.255.255.255

3、DHCP 客户收到 DHCP 确认报文

(1)在使用租用到的 IP 地址之前,使用 ARP 检测所分配的 IP 地址,是否已被网络中其他主机占用

(2)若被占用,给 DHCP 服务器发送 DHCP 拒绝报文,撤销 IP 地址租约,并重新发送 DHCP 发现报文

(3)若未被占用,可以使用租约中的 IP 地址与网络中其他主机通信

 

IP 地址续约

1、当经过 0.5 租用期后,DHCP 客户向 DHCP 服务器发送 DHCP 请求报文,请求更新租用期

(1)封装 DHCP 请求报文的 IP 数据报

(2)源 IP 地址:DHCP 客户之前租用的 IP 地址

(3)目的 IP 地址:租约中的 DHCP 服务器地址

2、情况一:若 DHCP 服务器同意,则发回 DHCP 确认报文,DHCP 客户得到新的租用期

(1)封装 DHCP 确认报文的 IP 数据报

(2)源 IP 地址:DHCP 服务器地址

(3)目的 IP 地址:DHCP 客户之前租用的 IP 地址

3、情况二:若 DHCP 服务器不同意,则发回 DHCP 否认报文,DHCP 客户必须立即停止使用之前租用的 IP 地址,并重新发送 DHCP 发现报文,重新申请 IP 地址

(1)封装 DHCP 否认报文的 IP 数据报

(2)源 IP 地址:DHCP 服务器地址

(3)目的 IP 地址:DHCP 客户之前租用的 IP 地址

4、情况三:若 DHCP 服务器未做出响应,经过 0.875 租用期后,DHCP 客户必须重新发送 DHCP 请求报文,继续等待 DHCP 服务器可能做出的反应

(1)封装 DHCP 请求报文的 IP 数据报

(2)源 IP 地址:DHCP 客户之前租用的 IP 地址

(3)目的 IP 地址:租约中的 DHCP 服务器地址

(4)若 DHCP 仍为做出响应,则租用期到期后,DHCP 客户必须立即停止使用之前租用的 IP 地址,并重新发送 DHCP 发现报文,重新申请 IP 地址

 

随时解除 IP 地址租约

1、DHCP 客户可以随时提前终止 DHCP 服务器所提供的租用期

2、只需向 DHCP 服务器发送 DHCP 释放报文

(1)封装 DHCP 释放报文的 IP 数据报

(2)源 IP 地址:0.0.0.0

(3)目的 IP 地址:255.255.255.255

 

域名系统

1、DNS:Domain Name System

2、分布式的域名系统

(1)DNS 使大多数域名都在本地解析,仅用户主机少量解析需要在因特网上通信,因此系统效率很高

(2)由于DNS是分布式系统,即使单个计算机出了故障,也不会奶碍整个系统的正常运行

3、域名只是个逻辑概念,并不代表计算机所在的物理地点

 

域名结构

1、层次树状结构

2、域名结构由若干个分量组成,各分量之间用 . 隔开,分别代表不同级别的域名

(1)……三级域名.二级域名.顶级域名

(2)每一级的域名都由英文字母和数字组成,不超过 63 个字符,不区分大小写字母

(3)级别最低的域名写在最左边,级别最高的顶级域名写在最右边

(4)完整的域名不超过 255 个字符

3、域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思

4、各级域名由其上一级的域名管理机构管理,最高的顶级域名则由因特网名称与数字地址分配机构 ICANN 进行管理

 

顶级域名

1、TLD:Top Level Domain

2、3 类

(1)国家顶级域名 nTLD:采用 ISO 3166 规定,如:cn 表示中国,us 表示美国,uk 表示英国

(2)通用顶级域名 gTLD:七个最常见的通用顶级域名:com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(美国教育结构)、gov(美国政府部门)、mil(美国军事部门)

(3)反向域 arpa:用于反向域名解析,即 IP 地址反向解析为域名

 

二级域名

1、在国家顶级域名下注册的二级域名均由该国家自行确定

2、我国则将二级域名划分为以下两类

(1)类别域名:共 7 个:ac(科研机构)、com(工、商、金融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)、org(非营利性组织)

(2)行政区域名:共 34 个,适用于我国的各省、自治区、直辖市,例如:bj 表示北京市、sh 表示上海市、js 表示江苏省

 

域名服务器

1、保存域名和 IP 地址的映射关系,供所有其他应用查询

2、显然不能将所有信息都储存在一合域名服务器中,DNS 使用分布在各地的域名服务器来实现域名到IP地址的转换

3、4 种类型

(1)根域名服务器

(2)顶级域名服务器

(3)权限域名服务器

(4)本地域名服务器

 

根域名服务器

1、最高层次的域名服务器

2、每个根域名服务器,都知道所有的顶级域名服务器的域名及其IP地址

3、因特网上共有 13个 不同IP地址的根域名服务器,13 个根域名服务器并非单个的服务器,实际上是由许多分布在世界各地的计算机构成的服务器群集

4、当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个 DNS 客户最近的一个根或名服务器

(1)加快 DNS 查询过程,

(2)合理地利用了因特网的资源

5、根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址

 

顶级域名服务器

1、负责管理在该顶级域名服务器注册的所有二级域名

2、当收到 DNS 查询请求时,就给出相应的回答

(1)可能是最后的结果

(2)可能是下一级权限域名服务器的 IP 地址

 

权限域名服务器

1、负责管理某个区的域名

2、每一个主机的域名都必须在某个权限域名服务器处注册登记,因此权限域名服务器知道其管辑的域名与IP地址的映射关系

3、权限域名服务器还知道其下级域名服务器的地址

 

本地域名服务器 / 默认域名服务器

1、不属于上述的域名服务器的等级结构

2、当一个主机发出 DNS 请求报文时,这个报文就首先被送往该主机的本地域名服务器

3、本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中

4、本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中

5、本地域名服务器的 IP 地址需要直接配置在需要域名解析的主机中

 

域名解析

1、递归查询

(1)递归查询:主机 -> 本地域名服务器 -> 根域名服务器 -> 顶级域名服务器 -> 权限域名服务器

(2)查询结果:权限域名服务器 -> 顶级域名服务器 -> 根域名服务器 -> 本地域名服务器 -> 主机 

2、迭代查询

(1)递归查询:主机 -> 本地域名服务器

(2)迭代查询:本地域名服务器 -> 根域名服务器

(3)查询结果:根域名服务器 -> 本地域名服务器

(4)迭代查询:本地域名服务器 -> 顶级域名服务器

(5)查询结果:顶级域名服务器 -> 本地域名服务器

(6)迭代查询:本地域名服务器 -> 权限域名服务器

(7)查询结果:权限域名服务器 -> 本地域名服务器 -> 主机

3、由于递归查询对于被查询的域名服务器负担太大,通常从请求主机到本地域名服务器的查询是递归查询,而其余的查询是送代查询

 

高速缓存

1、本地域名服务器存放最近查询过的域名,以及从何处获得域名映射信息的记录

2、优点

(1)提高 DNS 的查询效率

(2)减轻根域名服务器的负荷

(3)减少因特网上的 DNS 查询报文数量

3、由于域名到 IP 地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并删除超过合理时间的项

4、用户主机中也需要高速缓存

(1)许多用户主机在启动时,从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存

(2)只在从缓存中找不到域名时,才向域名服务器查询

(3)同理,主机也需要保持高速缓存中内容的正确性

 

文件传送协议

1、FTP:File Transfer Protocol

2、提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限

3、屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件

4、主动模式:建立数据通道时,FTP 服务器主动连接 FTP 客户

(1)建立控制连接:FTP 客户随机选择一个临时端口号,向 FTP 服务器监听使用端口号 21,发起控制连接

(2)命令通道:用于 FTP 客户、FTP 服务器之间,传送 FTP 相关控制指令的 TCP 连接

(3)建立数据连接:有数据要传输时,FTP 客户通过命令通道,告知 FTP 服务器,FTP 服务器使用端口号 20,主动发起数据连接,与 FTP 客户的另一个临时端口号建立 TCP 连接

(4)数据通道:FTP 客户、FTP 服务器之间传送文件的 TCP 连接

5、被动模式:建立数据通道时,FTP 服务器被动等待 FTP 客户连接

(1)建立控制连接:FTP 客户随机选择一个临时端口号,向 FTP 服务器监听使用端口号 21,发起控制连接

(2)命令通道:用于 FTP 客户、FTP 服务器之间,传送 FTP 相关控制指令的 TCP 连接

(3)建立数据连接:有数据要传输时,FTP 客户通过命令通道,告知 FTP 服务器,FTP 服务器开启某个临时端口,被动等待来自 FTP 客户的 TCP 连接,FTP 客户使用另一个临时端口号建立 TCP 连接

(4)数据通道:FTP 客户、FTP 服务器之间传送文件的 TCP 连接

6、控制连接:在整个会话期间一直保持打开,用于传送 FTP 相关控制命令

7、数据连接:用于文件传输,在每次文件传输时才建立,传输结束就关闭

 

电子邮件

1、采用客户 / 服务器方式

2、三个主要组成构件

(1)用户代理 / 电子邮件客户端软件:用户与电子邮件系统的接口

(2)邮件服务器:电子邮件系统的基础设施,因特网上所有的 ISP 都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱

(3)协议:邮件发送协议(如 SMTP)、邮件读取协议(如 POP3、IMAP)

3、SMTP 协议只能传送 ASCII 码文本数据,不能传送可执行文件或其他的二进制对象

4、电子邮件的信息格式

(1)在 RFC5322 中单独定义

(2)一个电子邮件有信封和内容两部分,而内容又由首部和主体两部分构成

5、多用途因特网邮件扩展

(1)MIMEE:Multipurpose Internet Mail Extensions

(2) 解决 SMTP 传送非 ASCII 码文本的问题

(3)增加 5 个新的邮件首部字段,这些字段提供了有关邮件主体的信息

(4)定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化

(5)定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变

(6)不仅用于 SMTP,也用于面向 ASCII 字符的 HTTP

6、邮局协议

(1)POP:Post office Protocol

(2)POP3 是其第三个版本,是因特网正式标准

(3)非常简单、功能有限的邮件读取协议,用户只能以下载并删除方式,或下载并保留方式从邮件服务器下载邮件到用户方计算机,不允许用户在邮件服务器上管理自己的邮件

(4)采用基于 TCP 连接的客户 / 服务器方式,使用熟知端口 110

7、因特网邮件访问协议

(1)IMAP:Internet Message Access Protocol

(2)IMAP4 是其第四个版本,目前是因特网建议标准,

(3)功能比 POP3 强大的邮件读取协议,用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此 IMAP 是一个联机协议

(4)采用基于 TCP 连接的客户 / 服务器方式,使用熟知端口 143

8、基于万维网的电子邮件

(1)通过浏览器登录(提供用户名和口令)邮件服务器万维网网站,可以撰写、收发、阅读、管理电子邮件

(2)工作模式与 IMAP 类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器

(3)邮件服务器网站通常都提供非常强大和方便的邮件管理功能,用户可以在邮件服务器网站上管理和还理自己的邮件,而不需要将邮件下载到本地进行管理

 

万维网

1、WWW:World Wide Web

2、并非某种特殊的计算机网络,而是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用

3、利用网页之间的超链接,将不同网站的网页链接成一张逻辑上的信息网

4、统一资源定位符

(1)URL:Uniform Resource Locator

(2)指明因特网上任何种类资源的位置

(3)一般形式由四个部分组成:<协议>://<主机>:<端口>/<路径>

5、万维网文档

(1)超文本标记语言:使用多种标签来描述网页的结构和内容

(2)层叠样式表:CSS,Cascading Style Sheets,描述网页的样式

(3)JavaScript:一种脚本语言,控制网页的行为

 

超文本标记语言

1、HTML,Hyper Text Markup Language

2、定义了浏览器怎样向万维网服务器请求万维网文档,以及方维网服务器怎样把万维网文档传送给浏览器

3、HTTP/1.0

(1)采用非持续连接方式

(2)每次浏览器要请求一个文件,都要与服务器建立 TCP 连接,当收到响应后就立即关闭连接

(3)每请求一个文档就要有两倍的 RTT 的开销

(4)为了减小时延,浏览器通常会建立多个并行的 TCP 连接同时请求多个对象,但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重

4、HTTP/1.1

(1)采用持续连接方式

(2)万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上,传送后续的 HTTP 请求报文和响应报文,不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行

(3)为了进一步提高效率,HTTP/1.1 的持续连接还可以使用流水线方式工作,即浏览器在收到 HTTP 的响应报文之前就能够连续发送多个请求报文,这样的连续请求报文到达服务器后,服务器就发回连续的响应报文,节省时间,使 TCP 连接中的空闲时间减少,提高了下载文档的效率

5、HTTP 报文格式

(1)HTTP 是面向文本的,其报文中的每一个字段都是一些 ASCII 码串,并且每个字段的长度都是不确定的

(2)HTTP 请求报文

(3)HTTP 响应报文

6、使用 Cookie 在服务器上记录用户信息

(1)Cookie 是一种对无状态的 HTTP 进行状态化的技术

(2)Cookie 提供了一种机制使得万维网服务器能够记住用户,而无需用户主动提供用户标识信息

7、万维网缓存与代理服务器

(1)万维网缓存 / Web 缓存(Web Cache)

(2)缓存机制提高万维网的效率

(3)缓存可位于客户机,也可位于中间系统上

(4)代理服务器(Proxy Server):位于中间系统上的 Web 缓存

(5)Web 缓存把最近的一些请求和响应暂存在本地磁盘中,当新请求到达时,若发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按 URL 的地址再次去因特网访问该资源

posted @   半条咸鱼  阅读(281)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示