一、应用层的功能

  每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。

  应用层的许多协议都是基于客户服务器方式,客户和服务器都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。

  • 域名系统 DNS:将域名解析成 IP 地址。
  • 动态主机配置协议 DHCP:为主机分配 IP 地址。
  • 文件传输协议 FTP
  • 远程终端协议 TELNET
  • 远程连接协议 RDP
  • WEB
  • HTTP
  • 发送邮件

二、域名系统 DNS

  域名只是个逻辑概念,并不代表计算机所在的物理地点。 变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。

1、因特网的域名结构

  因特网采用了层次树状结构的命名方法。域名的结构由标号序列组成,各标号之间用点隔开:… .三级域名.二级域名.顶级域名,例如 www.zyxwmj.top。

因特网的域名空间

image.png

2、域名服务器的类型

  上面讲述的域名体系是抽象的,具体实现域名系统的是分布在各地的域名服务器。如果每一级的域名都有一个相应的域名服务器,那么域名服务器数量太多会使用域名系统的运行效率降低。因此 DNS 就采用划分区的办法来解决这个问题。(DNS服务使用53端口,用UDP发送)

  一个服务器所负责管辖的(或有权限的)范围叫做区。 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。 DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是 DNS 服务器实际管辖的范围。区一定等于或小于域。

image.png

  根据上面 abc 域划分的两个区为例,给出 DNS 域名服务器树状结构图:

image.png

(1)根域名服务器

  根域名服务器是最高层次的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。

  根域名服务器采用了任播技术,因此当 DNS 客户向某个根域名服务器的 IP 地址发出查询报文时,互联网上的路由器就能找到离这个 DNS 客户最近的一个根域名服务器。

(2)顶级域名服务器

  顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。

(3)权限域名服务器

  权限域名服务器就是前面已经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。

(4)本地域名服务器

  本地域名服务器对域名系统非常重要。当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。

递归查询

  主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

94S45MNESFXMSHI9D46.png

迭代查询

  本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”,然后让本地域名服务器进行后续的查询。

S6OHMBWQDNXZ5Y2.png

3、提高域名服务器的可靠性

(1)主域名服务器和辅助域名服务器

  DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,这样就保证了数据的一致性。

(2)高速缓存

  每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。 可大大减轻根域名服务器的负荷,使因特网上的 DNS 查询请求和回答报文的数量大为减少。 为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。 当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。

三、文件传输协议 FTP

  文件传送协议 FTP 使用 TCP 可靠的运输服务,提供交互式的访问(简单文件传送协议 TFTP)。 FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤:

  1. 打开熟知端口(端口号为 21),使客户进程能够连接上;
  2. 等待客户进程发出连接请求;
  3. 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建一些子进程;
  4. 回到等待状态,继续接受其他客户进程发来的请求,主进程与从属进程的处理是并发进行的。

FTP 的两个TCP连接:

  • 控制连接:在整个会话期间一直打开,FTP客户发出的传送请求,通过控制连接发送给服务器端;端口号 21。
  • 数据连接:用于传输文件;端口号 20。

  由于 FTP 使用两个不同的端口号,所以数据连接与控制连接不会发生混乱。服务器端控制进程收到 FTP 客户发来的文件传输请求后,就创建数据传送进程和数据连接,用来连接客户端和服务端的数据传送进程。

image.png

数据连接的建立类型:

  • 主动模式:服务端从 20 端口主动向客户端发起连接。
  • 被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接。

FTP 传输模式:

  • 文本模式:ASCII 模式,以文本序列传输数据;
  • 二进制模式:Binary 模式,以二进制序列传输数据

四、远程连接

1、远程终端协议 TELNET

  用户用 TELNET 就可在其所在地通过 TCP 连接登录到远地的另一个主机上 TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。(默认 23 端口)

TELNET 使用网络虚拟终端 NVT 格式

  网络虚拟终端:客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。 服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。 向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。 现在由于 PC 机的功能越来越强,用户已较少使用 TELNET 了。 TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。 和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

image.png

2、远程桌面协议 RDP

  远程桌面协议(RDP)是一个多通道的协议,让使用者(所在计算机称为用户端或本地计算机)连上提供微软终端机服务的计算机(称为服务端或远程计算机)。(默认 3389 端口)

  在运行窗口(win + R)输入 mstsc,可以使用 Windows 提供的远程桌面连接。Server 是多用操作系统,启用远程桌面可以多用户同时使用服务器,XP 和 Windows7 是单用户操作系统,不支持多用户同时登录。

五、万维网 WWW

  万维网 WWW(World Wide Web)并非某种特殊的计算机网络。 万维网是一个大规模的、联机式的信息储藏所。 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。 这种访问方式称为“链接”。 万维网是分布式超媒体系统,它是超文本系统的扩充。

  页面:在客户程序(浏览器)主窗口上显示出的万维网文档就是页面。

  统一资源定位符URL:标志万维网上各种文档,使每个文档在互联网范围具有唯一标识符URL。作用:用来表示从互联网上得到的资源位置和访问这些资源的方法;格式:<协议>://<主机>:<端口>/<路径>

  超文本传送协议HTTP:是一个应用层协议,使用TCP进行可靠传送。

六、电子邮件(SMTP,POP3,IMAP)

  发送邮件的协议:SMTP;读取邮件的协议:POP3 和 IMAP;MIME 支持在邮件中同时传送多种类型的数据。

1、电子邮件的最主要的组成构件

  用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。用户代理的功能:撰写、显示、处理和通信。

image.png

2、收发电子邮件的过程

  1. 发件人调用 PC 机中的用户代理撰写和编辑要发送的邮件;
  2. 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器;
  3. SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送;
  4. 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去;
  5. 运行在接收方邮件服务器中的 SMTP 服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取;
  6. 收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。

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

  电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。 两个邮件服务器之间的传送使用 SMTP。 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。

image.png

七、动态主机配置协议 DHCP

  在软件协议运行之前,必须给每一个参数赋值。在协议软件中给这些参数赋值的动作叫做协议配置。一个软件协议在使用之前必须是已正确配置的,具体的配置信息有哪些则取决于协议栈。

连接到因特网的计算机协议软件配置项目:

  • IP 地址
  • 子网掩码
  • 默认路由器的 IP 地址
  • 域名服务器的 IP 地址

1、主机向 DHCP 请求 IP 地址的过程

  需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为 DHCP 客户。 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。 DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool)中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文(DHCPOFFER)。

DHCP 中继代理

  并不是每个网络上都有 DHCP 服务器,这样会使 DHCP 服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。 当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。

image.png

2、DHCP 协议的工作过程

租用期

  DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期。

image.png

  1. DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文;
  2. DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文;
  3. 所有收到 DHCP 发现报文的服务器都会发出 DHCP 提供报文,因此客户可能收到多个 DHCP 提供报文;
  4. 客户从几个 DHCP 服务器中选择一个,并向其发送 DHCP 请求报文;
  5. 被选中的服务器发送确认报文 DHCPACK,此时客户就可以使用这个 IP 地址了,这种状态叫已绑定状态;DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 和 T2,它们的超时时间分别为 0.5T 和 0.875T,当超时时间到了就要请求更新租用期;
  6. 租用期过半,DHCP 发送请求报文,要求更新租用期;
  7. 服务器若同意,则发回确认报文。客户得到了新的租用期,重置计时器;
  8. 服务器若不同意,则发回否认报文。这是客户停止使用原来的 IP 地址,而重新申请新 IP 地址(回到步骤2);
  9. 客户可以随时提前终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文即可。

DHCP 协议的工作过程

  T表示客户租用期,客户设置T1=0.5T,T2=0.875T 两个计时器,当租用期过了一半(T1 时间到),DHCP 发送请求报文 DHCPREQUEST 要求更新租用期。 服务器若同意,则客户得到新的租用期,重新设置计时器;若服务器不同意,则客户机停止使用原来的 IP 地址,重新申请(到步骤2)。若DHCP服务器不响应步骤 6 的请求报文 DHCPREQUEST,则在租用期过了 87.5% 时,DHCP 客户必须重新发送请求报文 DHCPREQUEST(重复步骤 6),然后又继续后面的步骤。


标题:应用层——计算机网络笔记
作者:Yi-Xing
地址:http://47.94.239.232:10014/articles/2020/11/18/1605664346533.html
博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!