概念
- 协议: 一系列规则和约定的规范性描述
- 数字带宽: 指在单位时间内流经的信息总量
- 吞吐量: 实际的、可测到带宽
- 点到点(Point to Point): 信源机 和 信宿机 之间 的通信 由一段一段的直接相连的机器间通信组成
- 端到端(End to End):信源机 和 信宿机 之间 直接通信,好像拥有一条 直接的线路
参考模型/分层
分层原则: 信宿机 第 n 层 收到的对象 应与 信源机第 n 层 发送出 的对象完全一致。
分层模型
- OSI 七层模型
- Applicaiton
- Presentation 表示层
- Session 会话层
- Transport
- Network
- Data Link 数据链路层
- Physical 物理层
- TCP/IP 四层模型
- Application
- Transport
- Internet
- Network Access
- 5 层混合参考模型
- Application (数据流 Data stream)
- Transport (数据段 Segment)
- Network (分组 Packet)
- Data Link (帧 Frame)
- Physical (比特流 BIts)
物理层
物理层 提供透明的比特流传输,不关心比特流里携带的信息。 呈现 4 大特性
机械特性(mechanical characteristics), 指明接口所有接线器的形状、尺寸、引脚数、排列等
电气特性(electrical),指明在接口电缆的各条线 上出现 的电压 范围
功能特性(functional), 某一电平 的电压 表示 何种意义
规程特性(procedural),对于不同功能的各种可能事件的出现顺序
信号的传输
信号在传输的过程中,可以看成由很多不同频率的分量的传输,因为 高频分量的不等量衰减,接收方收到的信号是衰减和**失真(变形)**的
截止频率:,一般从 0~fc 这一频段,振幅在传输过程不会明显衰减,fc 称为 截止频率
奈奎斯特定理 (无噪声 信道,理想信道)
- 最大 传输速率 = 2Blog_2V (bps)
- B, Hz, 物理带宽
- V 离散等级
香农定理 (有 噪声 信道)
- 最大 传输速率 = B log_2(1 + S/N) (bps)
- B, Hz, 物理带宽
- S/N, 信噪比 , 分贝值 = 10 log_10(S/N)(dB), 例如 噪声 30dB, 则信噪比 S/N = 1000
传输介质
引导性 (有线)
- 铜线 (同轴电缆,双绞线)
- 光纤
非引导性(无线)
- 无线电
- 卫星
复用技术
频分多路复用 (FDM, Frequency Division Multiplexing)
- 在干线起点,信道的频谱 被分成 若干频段,每个用户占据其中一段 来传输 自己的信号
- 到了干线终点, 每个频段 的信号被单独分离出
- 相邻用户 使用 的 频段之间,通常留有 一定的带宽,以免混淆。 此频段 为 保护带
- 正校频分多路复用 (OFDM,Orthogonal FDM),没有保护带,频段之间 可相互重叠
波分多路复用 (WDM,Wavelength Division Multiplexing)
- 按不同的波长,分成若干份,承载不同用户的光信号,到了终点,分离器分离出各子信号
时分多路复用 TDM(Time Division Multiplexing)
- 在时间上共享信道,将时间划分为非常短的时间片
- 每个用户周期性 地 在自己的时间片 内使用整个带宽
统计 时分多路复用 (Statistic TDM, STDM)
- 按需分配:动态分配信道,不是用信道的用户不分配,分给有需要的用户使用
物理层设备
- 收发器(Transceiver),将一种形式的信号 转变 成 另一中形式,负责收发信号
- 中继器(Reapter),主要功能是再生信号 (去噪、放大), 让线缆可以延伸得更远,不能过滤流量
- 集线器 (Hub), 多端口 的中继器,再生信号,可作为 星型拓扑的中心,它收到一个信号,就广播出去
- 中继器、集线器 都扩大了冲突域
数据链路层
保障 数据传输的有效、可靠
- 处理传输错误: 差错检测 和 控制
- 流量控制:
- 基于速度
- 基于反馈
成帧
将原始的比特流分散到离散的帧中,叫成帧,成帧方法:
- 字符计数法
- 带字节/字符填充的标志字节法
- 每一帧使用特殊的字节/字符作为 开始 或 结束
- 容易造成 帧界 混淆
- 比特填充的比特标志法
- 面向二级制位的帧格式,把所有需要传输的数据以比特位排开,以特殊的位模式
01111110
作为帧标志, - 当帧内容出现一个和帧标志相同的位串时 01111110, 则 在 5 个 1 后插入一个 0,变成
01111101
,接收方 自动删除第 5 个 1 后的 0
- 面向二级制位的帧格式,把所有需要传输的数据以比特位排开,以特殊的位模式
- 物理层编码违例法
- 在曼切斯特编码中,连续高电平或连续低电平 可用作 帧边界
差错处理
- 纠错, 发现错误,从错误中恢复出正确信息,其需要太多的冗余位,纠错开销大
- 检错,智能发现错误,不能恢复,但可采用重传, 主要采用 循环冗余码(CRC)
海明距离(Hamming Distance)
码字:包含数据位和校验位的 n 为单元
海明距离: 两个码字之间不同位的数目,异或的结果中,1 的个数
全部码字的海明距离:, 全部码字中任意两个 码字 之间 海明距离的最小值
海明距离的意义:如果海明距离为 d, 则一个码字需要发生 d 个 1 位错误 才能变成另外一个码字
海明距离与检错的关系
海明距离为 d+1 的编码 能监测出 d 为差错, 因为在距离为 d+1 的检验码中,只能改变 d 位的值,不可能产生另一个合法码。
海明距离与纠错的关系
海明距离为 2d+1 的编码,能纠正 d 位差错,因为此时,如果一个码字有 d 位发生差错,它仍距原来的码字距离最近,可以直接恢复为该码。
纠 1 位错的海明码
数据 m 位,冗余位人,编码后的码字位数 n(n=m+r)。因为要传输的数据位是 m 位,需要传输的正确的码字个数 是 2^m,全部码字的个数 2^n,如果每个正确码字 发生 1 位错,能够被纠错,至少发生 1 位错不会变成另外 1 个正确的码字,如果 n 位码字的每一位都发生一次跳变,变成一个错误的码字,那么每个码字至少需要 n+1ge 码字来表示它。所以:(n+1)*2^m <= 2^n, n = m +r; (m+r+1)<=2^r
滑窗协议
提高信道利用率
- 全双共
- 捎带确认
- 批量发送数据(滑窗技术,2 个滑窗)
- 发送窗口,已经发送但还未被确认的帧的序号
- 接收窗口,期望接收的帧的序号
滑动窗口基本概念
- 每个待发送帧 被 赋予 一个序列号 seq, seq 的取值范围 0 ~ 2^n -1 (n 位字段)
- 建立缓存区
- 发送窗口, 缓存已发送、待确认的帧
- 顺序接收来自网络层的分组,成帧,赋予序列号
- 最多保存 W 个 已经发送、等待确认的帧
- 窗口达到最大值 W 时,强制关闭网络层
- 接收窗口,缓存期待接收的帧(序号)
- 对进入窗口的帧 顺序提交网络层,产生确认
- 落在窗口外的帧被丢弃
- 发送窗口, 缓存已发送、待确认的帧
窗口滑动条件
- 接收方收到帧后,首先核对是否 为预期 帧号(frame_expected),如果是,则 接收并移动接收窗口,frame_expected + 1
- 发送方 收到应答帧,核对 响应帧号 next_frame_to_send, 如果无误,从网络层取新的帧,移动窗口, next_frame_to_send +1
信道利用率
信道传输速率: b (bps)
每帧的大小:k (bits)
来回时间:R (sec)
则 信道利用率: k / (k + bR)
最大 窗口值 W = 2 * BD +1 (BD: 带宽-延迟积)
回退 N 帧
回退 N 帧:缓存在发送窗口中的出错帧以及其后续帧全部重发。 (重传帧数多,适用于信道出错率较小的情况)
- 定义序列号 seq 的取值范围和滑动窗口长度 W
- 发送方连续 发送至发送窗口满
- 接受窗口为 1, 对出错帧不确认(引发 超时)
- 发送方超时重传,从未被确认帧开始
累计确认
- n 号帧 的确认到达时,暗含一个 n-1,n-2…等 n 号帧之前的帧也被确认
- 当采用了累计确认,收到了 n 帧的确认,n 帧之前的帧都可以从缓存中删掉
滑动窗口长度 W 选择
Seq = 0 ~ MAX_SEQ
发送窗口:W = MAX_SEQ
接收窗口: W = 1
选择性重传
选择性重传: 只重发出错帧 (重传帧数少,适用于信道质量不好的情况)
- 接收窗口 存储 差错帧 后继的所有正确帧
- 发送方 只重传 差错帧
- 接收方 接收 重传帧,按正确顺序 将 分组 提交 网络层
否定确认 NAK
- 加快出错帧的重传
- 对出错帧回送否定确认,使发方不再 等到超时再重传
滑动窗口长度 W 选择
- Seq = 0 ~ MAX_SEQ
- 接收方窗口 W = (MAX_SEQ + 1)/ 2
- 发送窗口 小于 接收 窗口
介质访问控制层
数据链路层被分成了两个子层
- 介质访问控制层 (MAC ,Madia Access Control)
- 逻辑链路控制层 (LLC ,Logical Link Control)
数据通信 3 中方式,单播、广播、组播
局域网中主要采用在共享信道上的广播
介质访问控制要解决:某一时刻由哪个工作站共享信道的问题, 通过多路访问协议(Mutiple Access Protocol)动态分配信道资源,提高信道利用率
多路访问协议
- 随机访问协议
- 站点争用信道,可能出现站点之间的冲突
- ALOHA 协议
- 任何一个站点都可以在成帧后立即发送,可能有冲突,并通过信号反馈,检测信道,以确定发送是否成功。如果发送失败,则经过随机延时后再发送
- 冲突危险期:2t, 信道利用率 18.4%
- CSMA/CD 协议 ,带冲突检查载波侦听多路访问协议
- 先听后发,边发边听,
- 经侦听,如果介质空闲,开始发送;
- 如果忙,持续帧听,一旦空闲立即发送
- 如果发生冲突,等待一个随机分布的时间
- 在发送的同时也接受自己的信号,监测发送情况,一旦收到的信号与发出的不一致,说明有冲突
- 发送站 感知冲突后 立即停止发送,并且发送一个简短的阻塞信号,通知网上各站有冲突,都等待一段随机分布时间后,再按 CSMA/CD 方式重发该帧。
- 先听后发,边发边听,
- 受控访问协议
- 站点被分配占用信道,无冲突
二层交互/二层设备
可用网桥(Bridges)将很多 LAN 连接起来
网桥工作在 DLL 层,通过检查MAC 地址做出转发帧的决策。 它不检查网络层,所以,IPV4,IPV6 分组 均可穿越网桥
内部转发表?
- 扩散算法,当网桥不知道目的地址时(不在表中),它会将这帧从除来的 LAN 外的所有 LAN 转发出去
- 逆向学习,网桥从 到达帧的源地址 认识 到 源地址 对应的那台机 是在帧来的那个 LAN 上,并把它写入 MAC 地址表
- 凡往表中加入记录,也必须同时打下时戳
- 到达帧的源地址在表中已有记录,将时间戳更新为当前时间
- 网桥 周期 性地 扫描表,将那些超时的记录从表中删除
NIC 网卡
- 和上层通信
- 提供一个独特的 MAC 地址标识符
- 封装过程的一部分,为传输比特流打包
- 为访问共享介质提供访问策略
- 创建信号和介质的接口, 内建转发器
交换机
- LAN 交换机 是 多端口网桥
- 连接 LAN 网段
- 使用 MAC 表,决定帧 转发的端口
- 常被用来替换 集线器,以改善现有网络性能
- 支持 VLAN 虚拟局域网络
- 三种交互方式
- 存储转发
- 直通交换
- 无分片交互
网络层
所做之事: 将源端 数据包 通过路由(路由选择),一路送到 接收方
IP 地址
IP 地址,标识收/发数据的机器。32 位二进制位标识,约 43 亿个
- 32 位 被 分成 4 个 8 位组
- 相邻 8 位组之间 用
.
分割 - 每个 8 位组 转换成十进制,即 0 - 255
IP 地址分类,A,B,C,D,E 5 类
- A 类
- 前 1 个字节 标识网络地址,后 3 个字节 标识 主机地址
- 第 1 个字节 十进制表示 取值范围 0-127, 二进制,
0000 0000 - 0111 1111
- 网络总数 128 个,每个网络最多容纳 2^24 - 2 台 主机
- B 类
- 前 2 个字节标识 网络地址,后 2 个字节 标识 主机地址
- 第 1 个字节用十进制表示 取值范围 128-191,二级制
1000 0000 - 1011 1111
- 网络总数 2^14 个, 每个网络最多容纳 2^16 - 2 台 主机
- C 类
- 前 3 个字节 标识 网络地址,后 1 个 字节 标识 主机地址
- 第 1 个字节 用十进制 表示 的取值范围 192 - 223 , 二级制
1100 0000 - 1101 1111
- 网络数 2^21 个,每个网络最多容纳 256 (2^8 -2) 台主机
- D 类 224.0.0.0 ~ 239.0.0.0
- E 类 240.0.0.0 ~ 254.0.0.0
- 网络地址: 主机部分 全为 0 的 IP 地址
- 广播地址: 主机部分 全为 1 的 IP 地址
- 保留的 IP 地址
- 32 位全为 0 ,0.0.0.0, 当前主机
- 32 位 全为 1,255.255.255.255 广播地址
- 127.0.0.0, 环回地址
- 127.0.0.1, 本机地址
- A 类
子网规划
子网掩码
路由器使用子网掩码决定分组往哪个子网转发
路由器 采用 “AND”操作(目标 IP 和 子网掩码),得到目的网络地址
广播地址: 主机部分全为 “1” 的 IP 地址
网络地址: 主机部分 全为 “0”的 IP 地址
某单位分到一个 C 类网络 193.71.56.0,要分成 5 个 子网,每个子网连接 20 台主机?
- 需要向最后 一个 8 位组(主机位) 借 3 位, 2^3 = 8, 可创建 8 个子网
- 剩下 5 位 可用 IP 地址 2^5 = 30, 大于 20,满足每个子网 20 台主机
- 子网掩码: 1111 1111.1111 1111.1111 1111.1110 0000, 255.255.255.224, (或者 /27)
子网序号 | 网络地址/子网掩码 | 子网 网络地址 | 广播地址 | 可用地址范围 |
---|---|---|---|---|
1 | 193.71.56.0/27 193.71.56.0/255.255.255.224 |
193.71.56.0 | 193.71.56.31 (000 11111) |
193.71.56.1~30 |
2 | 193.71.56.32 | 193.71.56.63 (001 11111) |
193.71.56.33~62 | |
3 | 193.71.56.64 | 193.71.56.95 (010 11111) |
193.71.56.65~94 | |
4 | 193.71.56.96 | 193.71.56.127 (011 11111) |
193.71.56.97~126 | |
5 | 193.71.56.128 | 193.71.56.159 (100 11111) |
193.71.56.129~158 | |
6 | 193.71.56.160 | 193.71.56.191 (101 11111) |
193.71.56.161~190 | |
7 | 193.71.56.192 | 193.71.56.223 (110 11111) |
193.71.56.193~222 | |
8 | 193.71.56.224 | 193.71.56.255 (111 11111) |
193.71.56.225~254 |
IP 寻址
IP 寻址、MAC 寻址? 路由器处理分组,决策依据:路由表?
互联网和网络层
- 在网络层上,可以将整个互联网 看作 一组互联的子网络和自治系统
- IP 协议将整个互联网粘合起来
- IP 的任务就是提供一种尽力而为的方法,将数据报 从 源端 传送 到 目的端
路由器
路由器处理 接到一个分组后
- 打开分组, 提前出目的 IP 地址
- 确定目标网络,查找路由表
- 重新封装,转发, TTL-1,置换 源和目的 的 MAC 地址,计算校验和、可选分片等
除了路由表,路由器内部还有一种ARP 表(所有子网设备的 IP-MAC 映射)
动态路由协议
距离矢量 路由选择协议(DV)
- 每个路由器 维护 两个 向量,Di (从该路由器到所有其他路由器的距离)和 Si(对应的下一跳)
- 在邻居路由之间 交换 路由信息
- 每个路由器 根据收到的信息,更新自己的路由表
简单,交换的信息太大,路由信息传播慢,收敛慢,不适合大型的网络
链路状态 路由选择协议(LS)
发现 其邻居节点们,了解它们的网络地址; 路由器启动时,发送一个特别的hello 分组,收到 hello 分组的路由器回发 一个应答,包含其全球唯一的名字
设置到 每个邻居的成本度量, 测量往返时间,多次测量,设置该线路的开销
构造一个分组 (周期性的构造、发送,或右特别事件发生,路由器 down),包含其 所了解的所有信息, 包括:
- 发送方标识
- 序列号, 随着新分组的产生而递增, 路由器会记录下 它 看到的所有 源路由器-序列号 对
- 年龄
- 邻居列表
- 到邻居的成本/量度
发送这个分组给所有其他的路由器
当一个新分组到达时,路由器根据它的记录
- 分组是新的,则泛洪,转发出去
- 重复分组,则 丢弃
- 如果分组的序列号 比对应 的源路由器发送到此 的序列号还小,则被当做过时信息被拒绝
计算 到每个路由器的最短路径
- 一旦 一个路由器 获得了全部的链路状态分组 ,就可以构造出全网络图
- 使用 最短路径算法 计算路由器之间的最短路径
- 计算的结果是一个树,形成相应的路由,安装在路由表中,引导数据分组的转发
NAT 网络地址翻译
NAT netaddress translate: 私有 IP 地址和公有 IP 地址之间的转换。
- 内部网络使用私人地址,当内网需要同外网通信时,私人地址转换成合法的公有地址
- NAT 转换器完成,其维护一个地址转换表
- 如果传输层不采用 TCP 或 UDP,采用其它的协议,NAT 将无法工作
**PAT port address translate: ** 将多个私有 IP 地址映射到 同一个公有 IP 地址 的不同端口
ICMP 互联网控制协议
- IP 分组传送不可靠,丢包,拥塞,延迟、抖动
- ICMP 用来向 源端 报告 问题或状况
- ICMP 也常用来测试网络
ICMP 工具
ping 命令
将向目标站点发送一个 ICMP 回声请求 报文,如果站点接受到该报文,必须向源站点发回 一个 ICMP 回声应答报文,则认为目的站点 是可达的,否则不可达
tracert 命令
通过 ICMP 超时报文 来 得到 一张途径 的路由器列表
源主机向目的主机发送一个 IP 报文,并设置 TTL 为 1,到达第一个路由器时,TTL 减 1,为 0,则改路由器回发 一个 ICMP 数据报 超时报文,则源主机 取出路由器的 IP 地址 即为 途径的第一个路由端口地址,依此类推,发送第二个报文,设置 TTL 为 2,第三、第四个 IP 数据报,…… 直到 到达目的主机
ARP Address Resolution Protocol 地址解析
找到给定 IP 地址所对应的 MAC 地址
ARP 更高效优化措施
- 缓存 ARP 结果
- 在 ARP 请求中包括 源机 的 IP-MAC 地址的映射
- 每台机器在启动时,广播它的 IP-MAC 地址对
免费 ARP
当一台主机启动时,或接口的配置发生改变,会发送一个免费 ARP
缺省网关
当源设备需要的目的地址与自己不在同一个网络时,如果源 不知道 目的的 MAC 地址,它必须使用路由器的服务 使它的数据达到目的。
缺省网关, 与 源设备所处的网段相连 的路由器接口 上 的 IP 地址
拥塞解决
拥塞根源,负载 大于 资源
- 增加资源
- 在某些点之间使用更多的通道 增加 带宽
- 把流量分散 到 多条路径
- 启用空闲或备份的路由器
- 降低负载
- 拒绝 为某些 用户服务
- 给某些 用户的服务 降低 等级
- 让用户 更有预见性地 安排 其需求
抑制分组、逐条抑制
流量整形
调节数据传输的平均速率,突发数据流
- 漏桶, 每个时钟,仅允许固定数量分组发送出去,不稳定的流 变成 稳定流
- 每个主机连接到网络的接口中 有一个 漏桶
- 当桶 中有分组时,输出速率是恒定的,当桶空时,输出速率 为 0
- 当桶满时,分组将别丢弃
- 令牌桶
- 当大量数据突发时,令牌桶算法 允许输出加快到某种程度
- 以每 T 秒 产生一个令牌的速度 往同中输入令牌
- 一个分组要发送的时候,必须要从桶中取出一个令牌
- 允许累积令牌,最多 n 个(令牌桶的容量)
- 其他,资源预留、准入控制、分组调度
传输层
UDP
- 无连接的传输协议
- UDP 数据段 ,8 字节 头部 + 数据
- 长度域表示的长度包括 头部 和数据 总共的长度
- 检验和 是可选的
- 端口范围 0 -65535
TCP
可靠的 端到端, 字节流
发:封装
TCP 实体接收到本地进程的用户数据流,将其分割成不超过 64KB 的分片 (实践中,通常分割成 1460 字节,以通过以太网传输,1500 - 40 )
收:解封装
当包含 TCP 数据段的报文 到达 某台机器时,被提交给传输实体,将其重构出原始的字节流
TCP 连接 上 的每个 字节 都有 自己独有的 32 位 序列号
TCP 使用的基本协议, 具有动态窗口大小的滑动窗口协议
TCP 数据段头
- 源端口,目的端口, 用来跟踪 同一时间内通过网络的不同会话,每个端口 对应一个应用程序
- 序列号, 字节号,32 位,初始序列号,随机产生
- 确认号, 期望接收的字节号 32 位
- TCP 段头长度,单位 32 位,4 字节
- 保留域/字段
- 当紧急指针使用时,URG被置为 1,表明有紧急数据,优先处理; 紧急指针是一个相对于 当前序列号的字节偏移量,标明紧急数据从哪里 开始
- ACK 可设置为 1/0, 1 表示 确认号有效,0 无效
- PUSH, 带有 PUSH 标志的数据,应该立刻 送到上层,不需要缓存它
- REST, 用来重置一个已经混乱的连接
- SYN,用在连接建立的过程
- SYN=1,ACK=0, 连接请求
- SYN=1,ACK=1, 连接接受
- FIN, 用来释放连接,它表示 发送方 已经没有数据要传输了,但 可以继续接收数据
- Window size, 告诉对方 可以发送的数据字节数,从确认字节号开始
TCP 三次握手
三次握手建立连接是一个同步的过程,交换初始序列号,保证后续的每一个字节的可靠传输
- 第一次 : 发方 连接请求, SYN=1,ACK=0, 初始序列号seq=x
- 第二次: 收方 回发 连接接受,SYN=1,ACK=1, 初始序列号seq=y, 确认号、期望接收的字节序列号 ack=x+1
- 第三次: 发方,最后确认,建立连接, SYN=0,ACK=1,序列号 seq=x+1, 确认号 ack=y+1
TCP 连接释放
任何一方在没有数据要传送时,都可以发送一个FIN 置位的 TCP 数据段
TCP 传输策略
- 接收端
- 不请求对方发送短数据段
- 延迟 窗口变更信息,使接收缓冲区足够大
- 发送方
- 尽量不发送数据含量小的数据段
- 缓存应用层的数据,达到一定量再发送
TCP 拥塞控制
拥塞检测(Congestion detection), 所有 TCP 算法都假设超时是由拥塞引起的,并且通过监视超时情况来判断
拥塞控制(Congestion prevention),连接建立时,双方选择一个合适的窗口大小,接收方根据自己的缓冲区大小 来指定窗口的大小
拥塞窗口
发送方 需要维护 2 个窗口,接收者窗口,拥塞窗口(反映目前网络的容量),取两者中较小的窗口
慢启动算法, 决定拥塞窗口大小
- 连接建立时,发送者 用当前使用的最大数据段长度 初始化 拥塞窗口,发送一个最大的数据段
- 如果在 定时器超期之前收到确认, 将拥塞窗口翻倍,然后发送数据端,直到超时
- 如果发送 4096 字节没问题,但发送 8192 字节,超时,则拥塞窗口设置为 4096 个字节
阈值
- 除了使用接收者窗口,拥塞窗口,还使用第三个参数阈值,初始为 64k
- 当一个超时发生时,阈值降为当前拥塞窗口的一半,同时将拥塞窗口设置为一个最大数据段长度
- 使用慢启动算法来 决定 网络容量,拥塞窗口增长到阈值时 停止指数增长
- 从这个点开始,每次成功的传输 都会让 拥塞窗口 线性增长
应用层
DNS 域名系统
- 域名 是大小写无关的
- 各组成部分的名字最多 63 个字符长,整个路径不超过 255 个字符
- 每个域名自己控制它 下面的子域的划分
资源记录
- 每个域,都可以有一组跟它相关联的资源记录
- DNS 的主要功能是将 域名映射到资源记录上
- 资源记录 包括 5 部分
- 域名 Domain name, 此条记录适用于哪个域
- 生存期 Time to Live, 指示 该 记录的稳定程度
- 类别 Class, 对于互联网信息,总是 IN
- 类型 Type, 什么类型的记录
- A , ipv4
- AAAA, ipv6
- 值 Value
域名解析
将域名 映射 为 IP 地址的方法、过程
- 应用程序 调用 解析器(resolver)的库函数,把名字作为参数传给该函数(gethostbyname())
- 解析器发送一个UDP 分组给本地 DNS 服务器,它会负责查找,并将对于 IP 地址返回给解析器
- 如果查询的域名落在 该域名服务器的管辖范围内,它将返回权威资源记录 (来自管理该记录的权威机构,总是正确的,和缓存的记录不同,后者可能过期)
- 如果本地没有该信息,那么本地域名服务器向 根域名服务器发送一条查询此域的消息
- 解析器返回结果给应用程序
优化方法,高速缓存,减少查询环节,提高效率