网络协议底层原理(八):应用层

一、应用层
    1. 应用层位于五层模型中的第一层,应用层的作用就是遵守各种应用层协议,从而产生数据,然后向下发送给传输层,例如:访问http://www.baidu.com,就是遵守HTTP协议构造了一个应用层的请求的数据,然后向下传递给了传输层,最终传递给了百度的服务器
      image.png
  • 2.应用层常见的协议如下所示:

    ◼ 超文本传输: HTTP、HTTPS

    ◼ 文件传输: FTP

    ◼ 电子邮件: SMTP、POP3、IMAP

    ◼ 动态主机配置: DHCP

    ◼ 域名系统: DNS

二、应用层协议之DNS协议
  • 1.DNS的全称是:Domain Name System,译为:域名系统, 利用DNS协议,可以将域名(比如baidu.com)解析成对应的IP地址(比如220.181.38.148) ,DNS可以基于UDP协议,也可以基于TCP协议,服务器占用53端口

  • 2.DNS的解析IP的流程如下图所示:

    ◼ (1). 客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器) ,去请求某个域名的IP地址

    ◼ (2). 如果最近的DNS服务器没有此域名的IP,那么就会返回根名称服务器的IP地址,让本地服务器去询问根服务器(上级DNS服务器记录了下一级DNS服务器的IP地址)

    ◼ (3). 如果根服务器仍然没有,就会返回顶级服务器的地址,让本地服务器去询问顶级服务器,就这么一级一级向下询问,最终拿到此域名的IP地址,如果所有服务器都没有就会报错

    ◼ (4). 全球一共13台IPv4的DNS根域名服务器、25台IPv6的DNS根域名服务器, 所有的DNS服务器都记录了DNS根域名服务器的IP地址

    image.png

  • 3.DNS的常用命令
    ipconfig /displaydns:查看DNS缓存记录

    ipconfig /flushdns:清空DNS缓存记录

    ping 域名

    nslookup 域名

三、应用层协议之DHCP协议
  • 1.我们都知道网络层传输的数据包需要源IP地址目标IP地址,才能将数据传送给对方,那么IP地址是怎么得到的呢,这就需要我们这里的DHCP协议

  • 2.其实IP地址是分为两类:静态IP和动态IP

    ◼静态IP地址是手动设置的,适用于不怎么挪动的台式机(比如学校机房中的台式机)、服务器等

    ◼动态IP地址是从DHCP服务器自动获取的IP地址,适用于移动设备、无线设备等

  • 3.DHCP(Dynamic Host Configuration Protocol),译为:动态主机配置协议DHCP协议基于UDP协议,客户端是68端口,服务器是67端口

    1. DHCP服务器会从IP地址池中,挑选一个IP地址“出租“给客户端一段时间,时间到期就回收它们,平时家里上网的路由器就可以充当DHCP服务器
    1. DHCP协议分配IP地址的四个阶段,如下图所示:

    ◼ (1). DISCOVER:发现服务器,通过发送广播包来发现服务器,广播包的格式是:源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FF:FF:FF:FF:FF:FF

    ◼ (2). OFFER:提供租约, 服务器返回可以租用的IP地址,以及租用期限、子网掩码、网关、DNS等信息,注意:这里可能会有多个服务器提供租约

    ◼ (3). REQUEST:选择IP地址 ,客户端选择一个OFFER,发送广播包进行回应

    ◼ (4). ACKNOWLEDGE:确认 ,被选中的服务器发送ACK数据包给客户端,至此,IP地址分配完毕

image.png
    1. DHCP的常用命令

    ipconfig /all:可以看到DHCP相关的详细信息,比如租约过期时间、DHCP服务器地址等

    ipconfig /release:释放租约

    ipconfig /renew:重新申请IP地址、申请续约(延长租期)

    1. DHCP的一些细节

    ◼(1). DHCP服务器可以跨网段分配IP地址么? (DHCP服务器、客户端不在同一个网段)
     答:可以借助DHCP中继代理(DHCP Relay Agent)实现跨网段分配IP地址

    ◼(2).租期不足怎么办?
     答:客户端会在租期不足的时候,自动向DHCP服务器发送REQUEST信息申请续约

四、应用层协议之FTP协议
    1. FTP(File Transport Protocol),译为:文件传输协议,RFC 959定义了此规范,是基于TCP应用层协议FTPURL格式为:ftp://[user[:password]@]host[:port]/url-path
      image.png
    1. FTP有两种工作模式:

      主动模式(PORT):服务器主动向客户端发起连接请求

      被动模式(PAVS)FTP服务器等待客户端发起连接请求(FTP的默认工作模式)

    1. FTP协议需要用到两个TCP连接,如下所示,无论是主动模式还是被动模式,想要进行文件传输都必须依次建立这两个连接

      命令连接:用来在FTP客户端与服务器之间传递命令

      数据连接:用来在服务器和客户端进行文件传输

  • 4.我们知道FTP是专门的下载协议,但是为什么现在下载用FTP比较少,而HTTP的下载却很多呢?

因为FTP存在很多缺点,如下所示:

◼`缺乏加密` - 原始形式的 FTP 不支持加密。 客户端代理和 FTP 服务器之间的数据通信采用明文格式。
◼`防火墙问题` - 现代企业防火墙默认阻止非 HTTPS 流量。 到其他端口的流量需要添加到防火墙规则中。
◼`字符编码` - FTP 客户端和 FTP 服务器不协商字符编码。 客户端和服务器都使用英语作为语言环境是可以的。 但是,对于具有国际业务关系的公司以及需要在国际业务合作伙伴之间进行文件传输的公司来说,字符编码成为 FTP 服务的一个问题。
◼`传输模式` - FTP 协议定义了文件传输的 ASCII 模式和二进制模式。 该文件有可能在 Windows 系统和 UNIX/Linux 系统之间以 ASCII 模式重写。
◼`文件元数据` - FTP 协议忽略文件元数据,例如文件创建日期、文件修改日期。 如果以 ASCII 模式传输文件,文件长度也可能不同。 依赖文件日期信息对文件进行排序的远程工作人员遇到了问题。 元数据的变化也会给那些提供重复数据删除功能的服务带来麻烦。

而HTTP解决了这些问题,并且具备更强的扩展性,HTTP的优势如下:

◼安全性 - HTTPS 是建立在 SSL 协议之上的 HTTP 协议。 SSL 协议从 SSL 3.0 到 TLS 1.3 一直在不断自我完善。 由于HTTPS用于保护网站,使用HTTPS协议传输文件更安全,因为它的安全性更顺应时代。
◼灵活性和可扩展性 - 默认情况下,HTTPS 用于共享网页和电子商务信息。 但是,协议本身包括上传和下载功能。 对于专门从事文件传输的供应商来说,它是灵活和可扩展的。 您可以看到许多添加到通过 HTTPS 协议传输文件的功能。
◼可互操作 - 由于 HTTPS 是一种网络协议,不限于文件传输,因此它可以与 SAML 等身份验证协议进行互操作。 因此,可以将文件传输与单点登录服务集成在一起。 HTTPS 协议还提供来自客户端代理(如 Web 浏览器之外的 iOS 和 Android 应用程序)的连接

你可能感兴趣的:(网络协议底层原理(八):应用层)