应用层
应用层概述
一个选择题
每个应用层协议用于解决某一类应用文题,规定应用进程之间通信时所遵循的协议
- DNS
- FTP
- 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 | / |