计算机网络初识

概念

  • 协议: 一系列规则和约定的规范性描述
  • 数字带宽: 指在单位时间内流经的信息总量
  • 吞吐量: 实际的、可测到带宽
  • 点到点(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, 本机地址

子网规划

子网掩码
  • 路由器使用子网掩码决定分组往哪个子网转发

  • 路由器 采用 “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 数据段头

TPDU - 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 传输策略

  • 接收端
    • 不请求对方发送短数据段
    • 延迟 窗口变更信息,使接收缓冲区足够大
  • 发送方
    • 尽量不发送数据含量小的数据段
    • 缓存应用层的数据,达到一定量再发送

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 地址返回给解析器
    • 如果查询的域名落在 该域名服务器的管辖范围内,它将返回权威资源记录 (来自管理该记录的权威机构,总是正确的,和缓存的记录不同,后者可能过期)
    • 如果本地没有该信息,那么本地域名服务器向 根域名服务器发送一条查询此域的消息
  • 解析器返回结果给应用程序

优化方法,高速缓存,减少查询环节,提高效率