应用层

9/17/2021 Network

应用层概述

一个选择题

每个应用层协议用于解决某一类应用文题,规定应用进程之间通信时所遵循的协议

  • DNS
  • FTP
  • Email
  • WWW
  • DHCP

域名系统 DNS

上网时使用域名,需要解析成 IP,DNS 实现域名到 IP 的映射

互联网采用层次树状结构的命名方法,每一级以点号隔开,根在最后,如www.baidu.com,com 是一级域名,baidu 是二级域名,www 是三级域名

域名服务器(DNS)管辖的范围叫做区(zone)

  • 根域名服务器:最高的、最重要的服务器,用于解析所有的顶级域名服务器的域名和 IP 地址,任何一台主机若在本地无法解析域名,首先找到的就是根域名服务器
  • 顶级域名服务器(TLD):解析二级域名,给出回答或下一步要查找的服务器 IP
  • 权限域名服务器:负责一个区的域名服务器(域名的派出所)
  • 本地域名服务器,也叫默认域名服务器,需要配置

域名的解析过程

  • 迭代+递归解析:最常用
  • 递归解析

迭代+递归解析,本地域名服务器将请求发送给所有域名服务器(根域名+顶级域名+权限域名),同时迭代并更新,找到 IP 后返回给本地 DNS

递归解析即请求只发给根域名 DNS,根域名 DNS 发给顶级域名 DNS,顶级域名 DNS 发给 权限域名 DNS,找到 IP 后递归返回给本地 DNS,不常用,根域名服务器压力太大

提高可靠性和速度的方法

  • 主域名服务器和辅助域名服务器
  • DNS 维护一个高速缓存,存放最近使用过的 IP 和域名的对应关系

解析过程

迭代模式

  • 主机:请求只有一次,向本地 DNS
  • 本地 DNS
    • 有缓存:请求 0 次
    • 无缓存:请求 n+1 次,n 表示域名级别(域名级别 = 点号 +1)

递归模式

  • 主机:最少 1 次,最多 1 次
  • 本地 DNS
    • 有缓存:请求 0 次
    • 无缓存:请求 1 次

文件传输协议 FTP

最广泛的文件传输协议

  • 提供交互式的访问
  • 屏蔽计算机系统细节,适合于异构网络计算机中文件传输
  • 屏蔽计算机存储数据的格式不同,屏蔽文件的目录结构和文件命名的规定不同
  • 屏蔽操作系统命令不同
  • 屏蔽访问控制方法的不同

FTP 工作模式

  • 采用 C/S 结构
  • 一个主进程,负责接收请求
  • 若干从属进程,负责处理单个请求

FTP 的两个连接,这种传输模式也叫带外传送

  • 控制连接:不传文件,一直开启,提供交互式的访问
  • 数据连接:用于传输用户数据,按序打开

FTP 两个端口

  • 建立连接请求时访问控制连接端口 21
  • 连接端口 20,进程通过该端口传输数据

这里需要注意,数据传输端口不一定是 20:若主动打开,则为 20,若是接收方,是二者协商的端口

万维网 WWW

主要作用:让 Web 客户端访问浏览 Web 服务器上的页面

万维网是分布式超媒体(hypermedia)系统,是超文本(hypertext)系统的扩充

  • 统一资源定位符 URL
  • 超文本传输协议 HTTP
  • 万维网文档 HTML
  • 万维网信息检索系统 Google

URL

统一资源定位符,用于表示互联网上的资源位置和访问方法

<协议>://<主机><端口>/<资源>

  • 主机对应 IP 地址
  • 端口对应进程
  • 资源对应文件路径

HTTP

超文本传输协议 HTTP,是一个应用层协议,使用 TCP 连接进行可靠的传送

特点

  • 使用面向连接的 TCP 作为运输层协议,保证数据的可靠传输
  • HTTP 本身是无连接的,即使他使用了面向连接的 TCP 向上提供的服务,重新打开需要重新加载
  • 是面向食物的客户服务器协议,要么打得开要么打不开
  • HTTP 1.0 是无状态的,不会保留打开信息

HTTP 两类报文

  • 请求报文
  • 相应报文

HTTP 是面向正文的,报文中每个字段都是 ASCII 码串

工作过程

  • 浏览器分析页面的 URL
  • 浏览器向本地 DNS 请求解析域名的 IP 地址
  • DNS 返回 IP 地址
  • 浏览器和服务器(两个进程之间)建立 TCP 连接
  • 浏览器发出命令 Get / Post
  • 服务器给出相应响应
  • TCP 连接释放
  • 浏览器显示 HTML 中所有文本信息

该过程使用的协议

  • 首先是 HTTP 协议,超文本传输
  • 请求 DNS 时使用了 UDP 协议
  • 建立连接使用 TCP 协议
  • 数据传输使用 IP 协议
  • 链路层
  • 物理层

协议分层:HTTP ——> TCP ——> IP

持续连接:每个请求、响应使用同一个 TCP 连接

  • 连接消耗 1 个 RTT,传 n 个内容消耗 n 个 RTT,共 1+n 个 RTT

非持续连接:每个请求、响应使用单独的 TCP 连接

  • 对于 n 个内容消耗 2n 个 RTT 时间

非流水线持续连接,必须要等前一个请求确认完毕才发送下一个内容:n+1 个 RTT

流水线持续连接:1+1+(n-1/2) 个 RTT

  • 和计网概述中计算流水线时延一模一样

Email 协议

连接建立均使用的 TCP 协议

发送邮件使用 SMTP 协议,读取/接收邮件使用 POP3 或 IMAP 协议

共分为三个阶段

  • 客户端通过 TCP 连接发送邮件到中转 SMTP 服务器
  • 中转 SMTP 服务器作为客户端将收到的邮件发送到目的 SMTP 服务器
  • 目的 SMTP 服务器通过 POP3 服务器将邮件送到指定用户并且用户使用 POP3 协议对邮件进行解析

SMTP 是一种 push 协议,有就立即往外推,只支持传输 7 比特的 ASCII 码内容

POP 是一种 pull 协议,始终将数据从服务器拉到本地

MIME:增加翻译结构,转化非 ASCII 码和 ASCII 码

动态主机配置协议 DHCP

Dynamic Host Configuration Protocol

这种机制允许一台计算机加入新的网络和自动获取 IP 地址,而不需要手动配置

工作过程:广播请求,单播响应

  • 需要 IP 地址的主机广播一个发现报文,成为 DHCP 客户
  • 因为是广播,本地网络上所有住居都会收到该报文,但只有 DHCP 服务器会回应

DHCP 服务器处理过程

  • 先从其数据库中查找请求计算机的配置信息,若找到直接返回,若没找到,则从未被分配的地址中找一个分配给该计算机
  • 包括 IP 地址、网关、子网掩码

广播报文

  • 源地址:0.0.0.0
  • 目的地址(广播):255.255.255.255

相应报文

  • 源地址:DHCP 服务器 IP
  • 目的地址:分配主机的 IP

这里对比一下 DHCP 请求响应的网络层 ARP 地址解析协议(IP 到 MAC 的映射)

  • 广播请求
    • 目的:FFFFFFFFFFFF
    • 源:发送方 MAC
  • 单播相应
    • 目的:广播发送方 MAC
    • 源:HDCP 的 MAC 地址

常见应用总结

应用 下层协议 端口号
HTTP TCP 80
FTP TCP 20/21
SMTP TCP 25
POP3 TCP 110
TEINET TCP 23
BGP-4 TCP 179
DNS UDP 53
DHCP UDP 67
RIP UDP 520
PING IP /
Last Updated: 3/13/2024, 8:33:01 PM
妖风过海
刘森