计算机网络系列六 -- 应用层详解

1 应用层的基本功能

应用层位于运输层之上,主要功能为通过应用进程间的交互来完成特定网络应用。

2 DNS 协议

2.1 DNS 协议简介

DNS 为域名解析系统,其主要功能为将主机名转换为 IP 地址。DNS 运行在 UDP 上,使用53端口。

2.2 DNS 服务器分类

计算机网络系列六 -- 应用层详解_第1张图片

  1. 根域名服务器:知道所有顶级域名服务器的 IP 地址
  2. 顶级域名服务器:负责管理在其服务器注册的二级域名
  3. 授权域名服务器:能够将其管辖的主机名转换为该主机的 IP 地址
  4. 本地域名系统:本地网络提供商负责的域名服务器
2.3 查询方式

DNS 使大多数主机名都在本地进行解析,仅少量解析需要互联网上通信。当需要把主机名解析成 IP 地址时,应用进程调用解析程序,并成为 DNS 的一个客户,把待解析的域名放在 DNS 请求报文中,以 UDP 用户数据报方式发给本地域名服务器,本地域名服务器查找域名后,把对应的 IP 地址放在回答报文中返回,应用进程获得目的主机的 IP 地址后即可进行通信。

DNS 协议使用的是递归与迭代查询相结合的方式。示意图如下:
计算机网络系列六 -- 应用层详解_第2张图片

  1. 递归查询:主机向本地域名服务器查询,如果本地域名服务器不知道查询域名的 IP 地址,则本地域名服务器以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。
  2. 迭代查询:本地域名服务器向根域名服务器查询,当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的 IP 地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的 IP 告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。

3 DHCP 协议

3.1 DHCP 简介

DHCP 指的是动态主机配置协议。一般在小型网络中,网络管理员都是采用手工分配 IP 地址的方法,但在中大型网络中,由于客户机过多,这种方法不太适用,我们需要一种高效分配 IP 地址的方法,这就需要我们现在讲到的 DHCP 协议了。

3.2 DHCP 协议的工作流程
  1. 发现:DHCP 客户机寻找 DHCP 服务器的阶段。DHCP 客户机以广播方式(客户机并不知道 DHCP 服务器的 IP 地址)发送 DHCP discover 发现信息来寻找 DHCP 服务器,即向地址 255.255.255.255 发送特定的广播信息。网络上每一台安装了 TCP/IP 协议的主机都会接收到这种广播信息,但只有 DHCP 服务器才会做出响应。
  2. 提供:DHCP 服务器提供 IP 地址的阶段。在网络中接收到 DHCP discover 发现信息的 DHCP
    服务器都会做出响应,它从尚未出租的 IP 地址中挑选一个分配给 DHCP 客户机,向 DHCP 客户机发送一个包含出租的 IP 地址和其他设置的 DHCP offer 提供信息。
  3. 选择:DHCP 客户机选择某台 DHCP 服务器提供的IP地址的阶段。如果有多台 DHCP 服务器向 DHCP 客户机发来的 DHCP offer 提供信息,则 DHCP 客户机只接受第一个收到的 DHCP offer 提供信息,然后它就以广播方式回答一个 DHCP request 请求信息,该信息中包含向它所选定的 DHCP 服务器请求 IP 地址的内容。之所以要以广播方式回答,是为了通知所有的 DHCP 服务器,他将选择某台 DHCP 服务器所提供的 IP 地址。
  4. 确认:DHCP 服务器确认所提供的 IP 地址的阶段。当 DHCP 服务器收到 DHCP 客户机回答的 DHCP request 请求信息之后,它便向 DHCP 客户机发送一个包含它所提供的 IP 地址和其他设置的 DHCP ack 确认信息,告诉 DHCP 客户机可以使用它所提供的 IP 地址。然后 DHCP 客户机便将其 TCP/IP 协议与网卡绑定,另外,除 DHCP 客户机选中的服务器外,其他的 DHCP 服务器都将收回曾提供的 IP 地址。
  5. 重新登录:以后 DHCP 客户机每次重新登录网络时,就不需要再发送 DHCP discover 发现信息了,而是直接发送包含前一次所分配的 IP 地址的 DHCP request 请求信息。当 DHCP 服务器收到这一信息后,它会尝试让 DHCP 客户机继续使用原来的 IP 地址,并回答一个 DHCP ack 确认信息。如果此 IP 地址已无法再分配给原来的 DHCP 客户机使用时(比如此 IP 地址已分配给其它 DHCP 客户机使用),则 DHCP 服务器给 DHCP 客户机回答一个 DHCP nack 否认信息。当原来的 DHCP 客户机收到此 DHCP nack 否认信息后,它就必须重新发送 DHCP discover 发现信息来请求新的 IP 地址。
  6. 更新租约:DHCP 服务器向 DHCP 客户机出租的 IP 地址一般都有一个租借期限,期满后 DHCP 服务器便会收回出租的 IP 地址。如果 DHCP 客户机要延长其 IP 租约,则必须更新其 IP 租约。 DHCP 客户机启动时和 IP 租约期限过一半时,DHCP 客户机都会自动向 DHCP 服务器发送更新其 IP 租约的信息。

4 FTP 协议

4.1 什么是 FTP 协议?

FTP 是文件传输协议,基于的传输协议是 TCP,用于互联网上的控制文件的双向传输。客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。根据这个协议,用户可通过客户机程序向远程主机上传或下载文件。

4.2 FTP 的两种模式
  1. PORT :主动方式。FTP 客户端首先使用 TCP 协议和服务器的21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送 PORT 命令。PORT 命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的20端口连接至客户端的指定端口发送数据。FTP 服务器必须和客户端建立一个新的连接用来传送数据。
  2. PASV :被动方式。建立控制通道和 PORT 模式类似,但建立连接后发送 Pasv 命令。服务器收到 Pasv 命令后,打开一个大于1023小于65535的临时端口并且通知客户端在这个端口上传送数据的请求,客户端连接 FTP 服务器的这个端口,然后 FTP 服务器将通过这个端口传送数据。

5 SMTP/POP3/IMAP 协议

5.1 SMTP

SMTP 是简易邮件传输通讯协议。SMTP 协议的主要功能是传送电子邮件,当我们通过电子邮件程序寄邮件给别人时,必须通过 SMTP 通讯协议,将邮件送到对方的邮件服务器上,等到对方上网的时候,就可以收到你所寄的邮件。

SMTP 属于 TCP/IP 协议簇,使用的端口号为25,是用于从源地址到目的地址传输邮件的规范,它可以帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 是一个“推”的协议,它不允许根据需要从远程服务器上“拉”来消息。

5.2 POP3
5.2.1 POP3 协议详解

POP3 是邮局通讯协定,主要功能是传送电子邮件,当我们寄邮件给别人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封邮件,直到收信者来检查这封邮件。当收信人接收邮件的时候,必须通过 POP3 通讯协定,才能取得邮件。

POP3 是 TCP/IP 协议族中的一员,默认端口为110,它可以支持使用客户端远程管理在服务器上的电子邮件,规定如何将个人计算机连接到互联网的邮件服务器和下载电子邮件的电子协议。

5.2.2 POP3 与 SMTP 的区别

POP3 是负责邮件程序和邮件服务器收信的通讯协定,SMTP 则是负责邮件服务器与邮件服务器之间的寄信的通讯协定。简单来说,POP3 协议用于收信,SMTP 协议用于寄信。

5.3 IMAP
5.3.1 IMAP 协议详解

IMAP 即交互式邮件存取协议,与 POP3 协议功能类似,默认端口为143。用于从本地邮件客户端访问远程服务器上的邮件。

5.3.2 IMAP 与 POP3 的区别
  1. POP3 协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作不会反馈到服务器上
  2. IMAP 协议会令客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作

总结来说,IMAP 整体上为用户带来更为便捷和可靠的体验,而 POP3 更易丢失邮件或多次下载相同的邮件。

6 HTTP 协议

看我的这篇博客即可 HTTP简介

6.1 补充:HTTP的长连接与短连接

在 HTTP/1.0 中默认使用短连接。也就是说,客户端和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源(如 JavaScript 文件、图像文件、CSS 文件等),每遇到这样一个 Web 资源,浏览器就会重新建立一个 HTTP 会话。

而从 HTTP/1.1 起,默认使用长连接,用以保持连接特性。使用长连接的 HTTP 协议,会在响应头加入这行代码:

Connection:keep-alive

在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive 不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如 Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

HTTP 协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接。

参考:DHCP协议原理及其实现流程
计算机网络知识点总结-第六章:应用层
FTP,SFTP,FTPS区别
POP3、SMTP和IMAP之间的区别和联系

你可能感兴趣的:(计算机网络,计算机网络)