课程
计算机网络复习知识点
计算机网络复习知识点
考试信息
| 项目 | 比例 | 说明 |
|---|---|---|
| 期末考试 | 60% | 卷面满分100分 |
| 平时成绩 | 40% | 作业(10%) + 探研报告(5%) + 课堂练习(5%) + 实验及实验报告(20%) |
题型分布:
- 选择题:15 × 2 = 30分
- 填空题:10 × 2 = 20分
- 问答题:5 × 6 = 30分
- 综合题:1 × 20 = 20分
重点章节:第3、4、5章
- 协议数据报的首部和尾部
- 第三、四、五章考实验内容(划分VLAN、配置接口IP)
引用内容为AI生成,其余为PPT截取。下划线内容为PPT上未找到的内容。
第一章:计算机网络概述
1.1 互联网
互联网是一个全球性的计算机网络,它通过一系列的通信协议(最重要的是TCP/IP协议)将世界各地的计算机、服务器、路由器等设备连接起来,实现数据和信息的共享与交换。
1.1.1 互联网的组成
- 硬件:计算机、服务器、路由器、交换机等
- 协议:TCP/IP等通信协议
- 服务:各种网络应用服务
1.1.2 网络的分类
| 分类依据 | 类别 |
|---|---|
| 按作用范围 | 广域网WAN、城域网MAN、局域网LAN、个人区域网PAN |
| 按使用者 | 公用网、专用网 |
1.1.3 交换方式
三种交换方式:电路交换、报文交换和分组交换
电路交换
电路交换是一种传统的通信方式,广泛应用于电话网络中。原理是在通信双方之间建立一条专用的物理通道,并在通信过程中保持该通道的持续连接。
报文交换
报文交换是一种数据交换方式,其中整个消息作为一个单位进行传输。消息被存储在中间的交换节点中,直到网络中有足够的资源将消息传送到目的地。
分组交换(核心交换方式)
要点:
- 将数据分成小的、独立的数据包,每个数据包带有目标地址和其他控制信息
- 数据包通过不同的路径在网络中传输,最后在目标设备上重新组装
- 不需要建立专用的通信路径,更加灵活和高效
优点:
| 优点 | 说明 |
|---|---|
| 高效利用网络资源 | 每个数据包独立传输,可动态利用网络带宽 |
| 容错能力强 | 数据包可通过不同路径传输,增强网络可靠性 |
| 适应性强 | 能高效处理不同的数据流量需求 |
| 支持多种通信服务 | 支持文本、语音、视频等多种通信类型 |
| 节省带宽 | 分包传输,避免长期占用线路带宽 |
1.2 网络性能指标
| 指标 | 定义 | 单位 |
|---|---|---|
| 速率 | 数据的传送速率(数据率/比特率) | bit/s(Kbit/s、Mbit/s、Gbit/s) |
| 带宽 | 信号的频带宽度;网络中某通道传送数据的能力(最高数据率) | Hz;bit/s |
| 吞吐量 | 单位时间内通过某个网络(或信道、接口)的数据量 | bit/s |
| 时延 | 数据从网络一端传送到另一端所需的时间 | 秒(s) |
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
往返时延(RTT):从发送端发送数据开始,到发送端收到来自接收端的确认所经历的时间。
1.3 体系结构
1.3.1 网络协议
网络协议三要素:
| 要素 | 含义 |
|---|---|
| 语法 | 数据与控制信息的结构或格式 |
| 语义 | 需要发出何种控制信息,完成何种动作以及做出何种响应 |
| 同步 | 事件实现顺序的详细说明(时序关系) |
1.3.2 五层协议体系结构
| 层次 | 功能 | 协议示例 |
|---|---|---|
| 应用层 | 为满足用户应用程序需求,负责应用程序间沟通 | DNS、HTTP、SMTP、FTP、SNMP |
| 运输层 | 负责两个进程之间的通信(端到端通信) | TCP、UDP |
| 网络层 | 负责主机到主机之间的通信,地址管理和路由选择 | IP、ICMP、ARP |
| 数据链路层 | 在结点到结点之间实现无差错的帧传输 | 以太网、PPP |
| 物理层 | 透明地传输比特流,负责光/电信号的传递方式 | — |
OSI七层模型 vs TCP/IP模型对应关系:
| OSI模型 | TCP/IP模型 | 典型协议 |
|---|---|---|
| 应用层 | 应用层 | DNS、URI、HTML、HTTP、SMTP、POP、IMAP、SSH、FTP |
| 表示层 | 应用层 | TLS/SSL、MIME |
| 会话层 | 应用层 | — |
| 传输层 | 传输层 | TCP、UDP |
| 网络层 | 网络层(互联网层) | IP、ICMP、ARP |
| 数据链路层 | 数据链路层(网卡层) | — |
| 物理层 | 物理层(硬件) | — |
第二章:物理层
2.1 物理层的主要任务(四大特性)
| 特性 | 说明 | 对应协议要素 |
|---|---|---|
| 机械特性 | 接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等 | 语法 |
| 电气特性 | 接口电缆各条线上出现的电压的范围 | 语法 |
| 功能特性 | 某条线上出现的某一电平的电压表示何种意义 | 语义 |
| 过程特性 | 对于不同功能的各种可能事件的出现顺序 | 同步 |
2.2 通信的三种方式
| 方式 | 说明 |
|---|---|
| 单工通信 | 单向传输,只能一个方向 |
| 半双工通信 | 双向传输,但不能同时进行 |
| 全双工通信 | 双方可以同时进行信息传输 |
2.3 两种传输媒体
| 类型 | 说明 | 示例 |
|---|---|---|
| 导引型传输媒体 | 电磁波被导引沿着固体媒体传播 | 双绞线、同轴电缆、光纤 |
| 非导引型传输媒体 | 在自由空间中传输(无线传输) | 短波通信、微波(地面中继、卫星中继) |
2.4 信道相关概念
- 码元:承载信息量的基本信号单位
- 信道:向某一个方向传送信息的媒体
- 基带信号:来自信源的信号,包含较多低频成分甚至直流成分
- 带通信号:经过载波调制后的信号
调制分类:
| 调制类型 | 说明 |
|---|---|
| 基带调制(编码) | 对基带信号波形进行变换,使其与信道特性相适应 |
| 带通调制 | 使用载波将基带信号频率搬移到较高频段 |
2.4.1 基本带通调制方法
| 调制方式 | 英文缩写 | 原理 |
|---|---|---|
| 调幅(AM) | Amplitude Modulation | 载波的振幅随基带数字信号变化 |
| 调频(FM) | Frequency Modulation | 载波的频率随基带数字信号变化 |
| 调相(PM) | Phase Modulation | 载波的初始相位随基带数字信号变化 |
2.4.2 信道的极限容量
限制码元传输速率的因素:
- 信道能够通过的频率范围(奈氏准则)
- 信噪比(香农公式)
奈氏准则
在理想条件下,为避免码间串扰,码元传输速率的上限值:
| 信道类型 | 最高码元传输速率 |
|---|---|
| 理想低通信道 | 2W Baud(每赫带宽每秒2个码元) |
| 理想带通信道 | W Baud(每赫带宽每秒1个码元) |
其中 W 为信道带宽,单位为赫兹(Hz)。
注意: 实际信道的最高码元传输速率明显低于奈氏准则给出的上限值。
波特(Baud)与比特(bit)的区别:
| 概念 | 含义 |
|---|---|
| 波特(Baud) | 码元传输速率的单位(每秒传送的码元数),也称调制速率、波形速率、符号速率 |
| 比特(bit) | 信息量的单位 |
关系:设码元传输速率为 R_B,信息传输速率为 R_b
- 对二进制码元:R_b = R_B
- 对M进制码元:R_b = R_B × log₂M
2.5 信道复用技术
复用是允许用户使用一个共享信道进行通信,降低成本,提高利用率。
2.5.1 频分复用(FDM)
- 将整个带宽分为多份,用户在分配到一定的频带后,通信过程中始终占用该频带
- 所有用户在同样的时间占用不同的带宽资源
2.5.2 时分复用(TDM)
- 将时间划分为等长的时分复用帧(TDM帧),每个用户在每一帧中占用固定序号的时隙
- 每个用户占用的时隙周期性出现(周期即TDM帧的长度)
- 所有用户在不同的时间占用同样的频带宽度
- TDM信号也称为等时(isochronous)信号
- 缺点:计算机数据具有突发性质,用户对子信道利用率一般不高,可能造成线路资源浪费
2.5.3 统计时分复用(STDM)
- 不是固定分配时隙,而是按需分配时隙,可提高线路利用率
- 每个时隙中必须带有用户地址信息,产生额外开销
- 又称为异步时分复用
2.5.4 波分复用(WDM)
- 波分复用就是光的频分复用
- 使用一根光纤同时传输多个光载波信号
2.5.5 码分复用(CDM)
- 使用不同的码字(编码)使多个信号在同一信道上同时传输
- 常用名词:码分多址(CDMA)
- 各用户使用经过特殊挑选的不同码型,彼此不会造成干扰
- 发送的信号有很强的抗干扰能力,频谱类似白噪声
第三章:数据链路层
3.1 三个基本问题
封装成帧
- 在一段数据的前后分别添加首部和尾部,构成一个帧
- 首部和尾部的重要作用是进行帧定界(使用控制字符进行帧定界)
透明传输
问题:如果数据中某个字节的二进制代码恰好和SOH(标题开始)或EOT(结束传输)一样,数据链路层会错误地找到帧的边界。
解决方法:字节填充(byte stuffing)或字符填充(character stuffing)
- 发送端在数据中出现控制字符”SOH”或”EOT”的前面插入一个转义字符”ESC”(十六进制编码为1B)
- 接收端在将数据送往网络层之前删除插入的转义字符
- 如果转义字符也出现在数据当中,则在转义字符前面再插入一个转义字符ESC
差错控制
- 传输过程中可能产生比特差错(1变0,0变1)
- 误码率BER(Bit Error Rate):传输错误的比特占所传输比特总数的比率
- 误码率与信噪比有很大关系
3.1.1 循环冗余检验CRC
二进制模2除法运算:
| 参数 | 说明 |
|---|---|
| 被除数 M | k位数据 |
| 除数 P | n+1位 |
| 商 Q | — |
| 余数 R | n位(作为冗余码) |
CRC原理:
- 将数据划分为组,假定每组k个比特,用M表示
- 用二进制模2运算进行 2^n × M 的运算(相当于在M后面添加n个0)
- 得到的(k+n)位数除以(n+1)位的除数P,得出商Q和余数R
- 将余数R作为冗余码拼接在数据M后面发送出去
注意:
- CRC差错检测技术只能做到无差错接受:凡是接受的帧,都能以非常接近于1的概率认为没有传输差错
- 要做到可靠传输(发送什么就收到什么),必须再加上确认和重传机制
3.2 点对点协议PPP
3.2.1 PPP帧格式
| 字段 | 长度 | 内容 |
|---|---|---|
| 标志字段F | 1字节 | 0x7E |
| 地址字段A | 1字节 | 0xFF |
| 控制字段C | 1字节 | 0x03 |
| 协议 | 2字节 | 标识信息部分的协议类型 |
| 信息部分 | 不超过1500字节 | 数据 |
| FCS | 2字节 | 帧检验序列 |
| 标志字段F | 1字节 | 0x7E |
- PPP是面向字节的,所有PPP帧的长度都是整数字节
3.2.2 透明传输问题
同步传输(SONET/SDH链路)——零比特填充:
- 发送端:只要发现有5个连续1,则立即填入一个0
- 接收端:每当发现5个连续1时,就把其后的一个0删除
异步传输——特殊字符填充法:
| 原始内容 | 替换为 |
|---|---|
| 0x7E | (0x7D, 0x5E) |
| 0x7D | (0x7D, 0x5D) |
| ASCII控制字符(<0x20) | 0x7D + 改变后的字符编码 |
还原规则:
- 0x7D 0x5E → 0x7E
- 0x7D 0x5D → 0x7D
- 0x7D 0xab(ab < 0x20)→ 0xab
3.3 广播信道的数据链路层
3.3.1 局域网
特点:网络为一个单位所拥有;地理范围和站点数目均有限。
拓扑结构:星型网、总线网、环形网
媒体共享技术:
| 类别 | 方式 |
|---|---|
| 静态划分信道 | FDM、TDM、WDM、CDM |
| 动态媒体接入控制(多点接入) | 随机接入(如以太网)、受控接入(如轮询) |
以太网标准
| 标准 | 说明 |
|---|---|
| DIX Ethernet V2 | 世界上第一个局域网产品的规约 |
| IEEE 802.3 | 第一个IEEE的以太网标准 |
- 两个标准差别很小,可将802.3局域网简称为”以太网”
- 以太网采用无连接工作方式,提供不可靠服务
3.3.2 CSMA/CD协议
CSMA/CD:载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)
| 术语 | 含义 |
|---|---|
| 多点接入 | 许多计算机以多点接入方式连接在一根总线上 |
| 载波监听 | 每个站在发送数据前先检测总线上是否有其他计算机在发送数据 |
| 碰撞检测 | 计算机边发送数据边检测信道上的信号电压大小 |
CSMA/CD工作流程:
- 准备发送
- 载波侦听,检测信道是否空闲
- 若信道忙,等待随机时间后回到步骤2
- 若信道空闲,开始发送,同时进行碰撞检测
- 若检测到碰撞,停止发送,发送人为干扰信号,等待随机时间后回到步骤2
- 若发送完毕,结束
特性:
- 使用CSMA/CD协议的以太网只能进行半双工通信
- 每个站发送数据后的一小段时间内存在遭遇碰撞的可能性
- 以太网的平均通信量远小于最高数据率
争用期
- 最先发送数据帧的站,发送后至多经过时间 2τ(端到端往返时延)就可知道是否遭受碰撞
- 以太网的端到端往返时延2τ称为争用期(碰撞窗口)
- 经过争用期还未检测到碰撞,才能肯定这次发送不会发生碰撞
争用期长度:10Mbit/s以太网取51.2μs为争用期长度,可发送512bit(64字节)
最短有效帧长:
- 如果发生冲突,一定在发送的前64字节之内
- 以太网规定最短有效帧长为64字节
- 长度小于64字节的帧是由于冲突而异常中止的无效帧
帧间最小间隔:
- 帧间最小间隔为 9.6μs(相当于96 bit的发送时间)
- 目的:使刚收到数据帧的站的接收缓存来得及清理
3.3.3 以太网的MAC层
MAC地址
- MAC地址是唯一标识的,6字节MAC地址固化在适配器的ROM中
- 也叫做硬件地址或物理地址
MAC地址结构:
| 部分 | 长度 | 说明 |
|---|---|---|
| 组织唯一标识符(OUI) | 3字节(24位) | 由IEEE分配 |
| 扩展唯一标识符(EUI) | 3字节(24位) | 由厂商分配 |
I/G位(第一字节最低位):
| I/G位 | 含义 |
|---|---|
| 0 | 单站地址 |
| 1 | 组地址(多播) |
- 所有48位都为1时,为广播地址(只能作为目的地址使用)
MAC帧格式
常用的以太网MAC帧格式有两种标准:
- DIX Ethernet V2 标准(最常用)
- IEEE 802.3 标准
以太网V2的MAC帧格式:
| 字段 | 长度 |
|---|---|
| 目的地址 | 6字节 |
| 源地址 | 6字节 |
| 类型 | 2字节 |
| 数据 | 46~1500字节 |
| FCS | 4字节 |
- 数据字段最小长度:64 - 18 = 46字节
- 当数据字段小于46字节时,需加入填充字段
- 有效MAC帧长度为 64~1518字节
帧定界:在帧前面插入8字节(7字节前同步码 + 1字节帧开始定界符)
无效MAC帧判定:
- 数据字段长度与长度字段值不一致
- 帧长度不是整数个字节
- FCS查出有差错
- 数据字段长度不在46~1500字节之间
3.4 扩展以太网
| 设备 | 工作层 | 功能 | 在以太网中的应用 | 在互联网中的应用 |
|---|---|---|---|---|
| 集线器 | 物理层(第1层) | 广播数据到所有端口,没有智能 | 小型网络中早期的以太网 | 几乎没有应用,已被交换机取代 |
| 网桥 | 数据链路层(第2层) | 根据MAC地址转发数据,减少冲突域 | 小型或中型网络扩展 | 已被交换机取代 |
| 交换机 | 数据链路层(第2层) | 智能转发数据,避免冲突,提高网络性能 | 现代局域网的核心设备 | 局域网、数据中心内部数据交换 |
| 路由器 | 网络层(第3层) | 根据IP地址转发数据,选择最佳路径 | 将局域网连接到广域网 | 跨不同网络间转发数据包,互联网核心设备 |
3.4.1 以太网交换机特点
- 实质上是一个多接口的网桥,通常有十几个或更多接口
- 每个接口直接与单台主机或另一个交换机相连,一般工作在全双工方式
- 具有并行性,能同时连通多对接口
- 相互通信的主机独占传输媒体,无碰撞地传输数据
- 接口有存储器,能在输出端口繁忙时缓存帧
- 即插即用设备,通过自学习算法自动建立帧交换表(地址表)
- 使用专用交换结构芯片,硬件转发,速率比软件转发的网桥快很多
3.5 虚拟局域网VLAN
利用以太网交换机可以方便地实现虚拟局域网VLAN(Virtual LAN)。
VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送帧的计算机属于哪一个VLAN。
3.5.1 VLAN协议
- IEEE 802.3ac标准定义了以太网帧格式的扩展以支持VLAN
- 在以太网帧格式中插入4字节的VLAN标记(tag)
- 插入VLAN标记得出的帧称为 802.1Q帧(带标记的以太网帧)
802.1Q标记结构:
| 字段 | 长度 | 说明 |
|---|---|---|
| 802.1Q标记类型 | 2字节 | 0x8100 |
| PRI(用户优先级) | 3位 | — |
| CFI(规范格式指示符) | 1位 | — |
| VLAN标识符(VID) | 12位 | 支持4096个VLAN |
- 插入VLAN标记后,最大帧长从1518字节变为1522字节
第四章:网络层
4.1 IP协议
4.1.1 虚拟互联网络
- 网络互连是指用路由器进行网络互连和路由选择
- 虚拟互联网络(逻辑互联网络):利用IP协议使各种异构网络从用户看来好像是一个统一的网络
- 互联网(Internet)就是一个虚拟互联网络
4.1.2 分类IP地址
IP地址由两个固定长度的字段组成:
| 字段 | 说明 |
|---|---|
| 网络号(net-id) | 标志主机(或路由器)所连接到的网络 |
| 主机号(host-id) | 标志该主机(或路由器) |
IP地址分类:
| 类别 | 前缀 | 网络号长度 | 主机号长度 |
|---|---|---|---|
| A类 | 0 | 8位 | 24位 |
| B类 | 10 | 16位 | 16位 |
| C类 | 110 | 24位 | 8位 |
| D类 | 1110 | 多播地址 | — |
| E类 | 11111 | 保留为今后使用 | — |
特殊IP地址:
| 网络号 | 主机号 | 源地址 | 目的地址 | 含义 |
|---|---|---|---|---|
| 0 | 0 | 可以 | 不可 | 在本网络上的本主机 |
| 0 | host-id | 可以 | 不可 | 在本网络上的某台主机 |
| 全1 | 全1 | 不可 | 可以 | 只在本网络上进行广播(各路由器均不转发) |
| net-id | 全1 | 不可 | 可以 | 对net-id上的所有主机进行广播 |
| 127 | 非全0或全1 | 可以 | 可以 | 用作本地软件环回测试 |
各类地址容量:
| 网络类别 | 最大可指派网络数 | 每个网络中最大主机数 |
|---|---|---|
| A | 126 (2⁷-2) | 16,777,214 |
| B | 16,384 (2¹⁴) | 65,534 |
| C | 2,097,152 (2²¹) | 254 |
指派时要扣除全1和全0主机号。
4.1.3 无分类编址CIDR
2级结构:IP地址 = {<网络前缀>, <主机号>}
- 网络前缀的位数n可以在0~32之间选取任意值
- CIDR记法(斜线记法):a.b.c.d/n,表示前n位是网络前缀
示例:128.14.32.0/20
- 该地址块共有 2¹² = 4096 个地址
- 起始地址:128.14.32.0
- 最大地址:128.14.47.255
4.1.4 地址掩码(子网掩码)
默认地址掩码:
| 类别 | 地址掩码 |
|---|---|
| A类 | 255.0.0.0(8位网络号) |
| B类 | 255.255.0.0(16位网络号) |
| C类 | 255.255.255.0(24位网络号) |
计算网络地址:IP地址 & 地址掩码 = 网络地址
示例:已知IP地址是128.14.35.7/20,求网络地址
| 步骤 | 内容 | 结果 |
|---|---|---|
| (a) | IP地址 | 128.14.35.7 |
| (b) | 第3字节二进制 | 128.14.00100011.7 |
| (c) | 子网掩码 | 255.255.11110000.0 |
| (d) | 逐位相与 | 128.14.00100000.0 |
| (e) | 网络地址 | 128.14.32.0 |
4.1.5 IP地址 vs MAC地址
| 特性 | IP地址 | MAC地址 |
|---|---|---|
| 使用层次 | 网络层及以上 | 数据链路层及以下 |
| 作用 | 长远目标,路径选择的重要依据 | 下一阶段目标,局域网转发的重要依据 |
| 变化 | 源IP不变,目的IP不变 | MAC地址一直在变(每经过一个路由器都会改变) |
示例:从H₁到H₂的转发过程
| 路径段 | 源IP | 目的IP | 源MAC | 目的MAC |
|---|---|---|---|---|
| H₁ → R₁ | IP₁ | IP₂ | MAC₁ | MAC₃ |
| R₁ → R₂ | IP₁ | IP₂ | MAC₄ | MAC₅ |
| R₂ → H₂ | IP₁ | IP₂ | MAC₆ | MAC₂ |
4.1.6 地址解析协议ARP
作用:已知IP地址,找出其相应的硬件地址(MAC地址)。
ARP高速缓存(ARP cache):存放所在局域网内各主机和路由器的IP地址到硬件地址的映射表。
格式:< IP address; MAC address; TTL >
工作过程:
- 主机A欲向本局域网上的主机B发送IP数据报时,先在ARP高速缓存中查看有无主机B的IP地址
- 如有,查出对应硬件地址,写入MAC帧发送
- 如没有,ARP进程在本局域网上广播发送一个ARP请求分组
- 收到ARP响应分组后,将IP地址到硬件地址的映射写入ARP高速缓存
要点:
| 项目 | 内容 |
|---|---|
| ARP请求分组 | 包含发送方硬件地址、发送方IP地址、目标方硬件地址(未知时填0)、目标方IP地址 |
| ARP响应分组 | 包含发送方硬件地址、发送方IP地址、目标方硬件地址、目标方IP地址 |
| 传输方式 | 本地广播ARP请求(路由器不转发ARP请求) |
| 封装方式 | ARP分组封装在物理网络的帧中传输 |
跨局域网的情况:当目的主机和源主机不在同一个局域网时,通过ARP找到本局域网上某个路由器的硬件地址,将分组发送给该路由器,由路由器转发给下一个网络。
4.1.7 IP数据报格式
一个IP数据报由首部和数据两部分组成,首部前一部分是固定长度(20字节),是所有IP数据报必须具有的。
IP数据报首部格式:
| 字段 | 长度 | 说明 |
|---|---|---|
| 版本 | 4位 | IP协议版本(如IPv4) |
| 首部长度 | 4位 | 首部长度(以4字节为单位) |
| 服务类型(TOS) | 8位 | 服务质量要求 |
| 总长度 | 16位 | 首部和数据之和的长度,最大65535字节 |
| 标识 | 16位 | 用于分片重组 |
| 标志 | 3位 | DF(不分片)、MF(更多分片) |
| 片偏移 | 13位 | 分片在原始数据报中的位置 |
| 生存时间(TTL) | 8位 | 最大跳数 |
| 协议 | 8位 | 上层协议(如TCP=6,UDP=17) |
| 首部检验和 | 16位 | 首部差错检测 |
| 源IP地址 | 32位 | 发送方IP |
| 目的IP地址 | 32位 | 接收方IP |
标志字段:
| 位 | 含义 |
|---|---|
| MF(最低位) | MF=1表示后面还有分片,MF=0表示最后一个分片 |
| DF(中间位) | DF=0时才允许分片 |
4.1.8 IP数据报分片
示例:数据报总长度3820字节,数据部分3800字节,需分片为长度不超过1420字节的数据报片
| 数据报片 | 总长度 | 标识 | MF | DF | 片偏移 |
|---|---|---|---|---|---|
| 原始数据报 | 3820 | 12345 | 0 | 0 | 0 |
| 数据报片1 | 1420 | 12345 | 1 | 0 | 0/8=0 |
| 数据报片2 | 1420 | 12345 | 1 | 0 | 1400/8=175 |
| 数据报片3 | 1020 | 12345 | 0 | 0 | 2800/8=350 |
4.1.9 IP层转发分组流程
转发过程:
- 主机检查目的地址是否连接在本网络上,如果是则直接交付
- 否则送交路由器
- 路由器在路由表中查找匹配的网络前缀
- 找到匹配项后,将分组转发到下一跳
最长前缀匹配:如果路由表中有多个匹配项,选择网络前缀最长(即/后数值最大)的那个。
4.2 ICMP
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP报文格式:
| 字段 | 长度 | 说明 |
|---|---|---|
| 类型 | 8位 | 报文类型 |
| 代码 | 8位 | 进一步细分类型 |
| 检验和 | 16位 | 差错检测 |
| 内容 | 4字节 | 与ICMP类型有关 |
| 数据部分 | 可变 | 长度取决于类型 |
ICMP报文类型:
| 类型 | 说明 |
|---|---|
| ICMP差错报告报文 | 报告差错情况 |
| ICMP询问报文 | 请求信息 |
ICMP的应用:
| 应用 | 使用的ICMP报文 |
|---|---|
| PING | 回送请求与回送回答报文 |
| Traceroute | 利用TTL字段和ICMP时间超过差错报告报文跟踪路径 |
| 发现路径MTU | 利用IP数据报标志字段的DF位 |
4.3 路由选择协议
4.3.1 自治系统AS
自治系统AS:在单一技术管理下的一组路由器,使用AS内部的路由选择协议和共同的度量确定分组在该AS内的路由,同时使用AS之间的路由选择协议确定分组在AS之间的路由。
路由协议分类:
| 类别 | 名称 | 常用协议 |
|---|---|---|
| 内部网关协议IGP | 域内路由选择 | RIP、OSPF |
| 外部网关协议EGP | 域间路由选择 | BGP-4 |
路由协议对比:
| 特性 | RIP | OSPF | BGP-4 |
|---|---|---|---|
| 类型 | IGP | IGP | EGP |
| 原理 | 距离向量 | 链路状态 | 路径向量 |
| 交换对象 | 相邻路由器 | 所有路由器 | BGP发言人 |
| 交换内容 | 所有路由 | 相邻链路 | 全部、变化时 |
| 传送方式 | 固定间隔 | 变化时 | 变化时 |
| 传输层协议 | UDP | IP | TCP |
| 特点 | 小规模 | 分区域 | 域间 |
4.3.2 RIP
RIP协议基于距离向量,经过一个路由器距离(跳数)加1,最大距离为16(表示不可达)。RIP只选择距离最短的路由。
特性:
- 仅和相邻路由器交换信息
- 交换的信息是当前路由器所知道的全部信息(自己的路由表)
- 按固定时间间隔交换路由信息(如每30秒)
- 网络拓扑变化时及时向相邻路由器通告
路由表建立过程:
- 路由器刚工作时,路由表为空,只知道直接连接的网络(距离为1)
- 每个路由器只和最近的路由器交换并更新路由信息
- 经过若干次更新后,所有路由器都知道到达本AS中任何网络的最短距离和下一跳路由器地址
RIP协议特点: 好消息传播得快,坏消息传播得慢
| 优点 | 缺点 |
|---|---|
| 实现简单,开销较小 | 限制网络规模,最大距离为15 |
| — | 路由器交换完整路由表,随网络规模扩大开销增加 |
| — | 坏消息传播得慢,收敛时间过长 |
4.3.3 BGP
- 力求选择一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
- 采用路径向量(path vector)路由选择协议
- 每个自治系统的管理员要选择至少一个路由器作为该AS的BGP发言人
4.4 IPv6
IPv6基本首部格式:
| 字段 | 长度 | 说明 |
|---|---|---|
| 版本 | 4位 | 6(IPv6) |
| 通信量类 | 8位 | 流量分类 |
| 流标号 | 20位 | 标识同一数据流 |
| 有效载荷长度 | 16位 | 除基本首部外的长度 |
| 下一个首部 | 8位 | 扩展首部类型 |
| 跳数限制 | 8位 | 类似TTL |
| 源地址 | 128位 | 发送方IPv6地址 |
| 目的地址 | 128位 | 接收方IPv6地址 |
4.4.1 零压缩
冒号十六进制记法允许零压缩(zero compression):一连串连续的零可以为一对冒号所取代。
示例:FF05:0:0:0:0:0:0:B3 可压缩为 FF05::B3
注意:在任一地址中只能使用一次零压缩。
4.4.2 双协议栈
- 双协议栈(dual stack)是指在过渡到IPv6之前,使部分主机(或路由器)装有两个协议栈(IPv4和IPv6)
- 主机(或路由器)记为 IPv6/IPv4,同时具有两种IP地址
- 和IPv6主机通信时采用IPv6地址,和IPv4主机通信时采用IPv4地址
- 根据DNS返回的地址类型确定使用哪种地址
4.4.3 隧道技术
在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报。整个IPv6数据报变成了IPv4数据报的数据部分。当IPv4数据报离开IPv4网络中的隧道时,再把数据部分交给主机的IPv6协议栈。
4.5 IP多播
在互联网上进行多播叫做IP多播。互联网范围的多播要靠路由器来实现。能够运行多播协议的路由器称为多播路由器。
多播IP地址:
- 使用D类IP地址(多播地址)作为目的地址
- 每一个D类地址标志一个多播组
- 多播地址只能用于目的地址,不能用于源地址
- IPv4组播地址段:224.0.0.0 到 239.255.255.255
多播数据报特点:
- 首部中协议字段值为2,表明使用IGMP
- “尽最大努力交付”,不保证能交付所有组成员
- 不产生ICMP差错报文
4.5.1 IGMP
IP多播需要两种协议:
- IGMP(网际组管理协议):使路由器知道多播组成员的信息
- 多播路由选择协议:把多播数据报用最小代价传送给所有组成员
IGMP使用范围:
- 并非在互联网范围内对所有多播组成员进行管理的协议
- 不知道IP多播组包含的成员数,也不知道成员分布在哪些网络上
- 让本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组
IGMP工作阶段:
| 阶段 | 工作内容 |
|---|---|
| 加入多播组 | 主机向多播地址发送IGMP报文声明加入,本地多播路由器将组成员关系转发给其他多播路由器 |
| 探询组成员变化 | 本地多播路由器周期性探询本地局域网上的主机,只要有一个主机响应就认为该组是活跃的 |
4.6 VPN
问题:IPv4地址紧缺,另外一些机构不需要接入互联网。
解决:分为全球地址和专用地址(可重用地址)
专用地址(三个专用IP地址块):
| 地址块 | 范围 | 类别 | 别名 |
|---|---|---|---|
| 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255 | A类 | 24位块 |
| 172.16.0.0/12 | 172.16.0.0 ~ 172.31.255.255 | B类 | 20位块 |
| 192.168.0.0/16 | 192.168.0.0 ~ 192.168.255.255 | C类 | 16位块 |
- 专用地址只能用作本地地址,不能用作全球地址
- 互联网中的路由器对目的地址是专用地址的数据报一律不进行转发
虚拟专用网VPN(Virtual Private Network):利用公用互联网作为本机构各专用网之间的通信载体。
4.7 NAT
网络地址转换NAT(Network Address Translation):解决专用网如何在互联网上通信的问题。
- 需要在专用网连接到互联网的路由器上安装NAT软件
- 装有NAT软件的路由器叫做NAT路由器,至少有一个有效的外部全球IP地址
NAT转换过程:
- 内部主机A用本地地址IP_A给互联网上主机B发送数据报,通过NAT路由器转发
- NAT路由器将源地址IP_A转换成全球地址IP_g,记录到NAT地址转换表中,目的地址IP_B不变
- NAT路由器收到主机B发回的数据报时,源地址是IP_B,目的地址是IP_g
- 根据NAT转换表,将目的地址IP_g转换为IP_A,转发给内部主机A
第五章:运输层
5.1 UDP
特点:无连接、不可靠、面向数据报
UDP首部格式:
| 字段 | 长度 |
|---|---|
| 源端口号 | 16位 |
| 目的端口号 | 16位 |
| UDP长度 | 16位 |
| UDP检验和 | 16位 |
| 数据 | 可变 |
5.2 TCP
特点:面向连接、可靠的、面向字节流
TCP首部格式:
| 字段 | 长度 | 说明 |
|---|---|---|
| 源端口号 | 16位 | — |
| 目的端口号 | 16位 | — |
| 序号 | 32位 | 数据字节流的编号 |
| 确认序号 | 32位 | 期望收到的下一个字节的序号 |
| 首部长度 | 4位 | 以4字节为单位 |
| 标志位 | 6位 | URG、ACK、PSH、RST、SYN、FIN |
| 窗口大小 | 16位 | 接收窗口大小 |
| 检验和 | 16位 | — |
| 紧急指针 | 16位 | — |
| 选项 | 可变 | — |
5.2.1 TCP可靠传输的实现
- 确认机制:滑动窗口、累计确认、捎带应答
5.2.2 拥塞控制
拥塞窗口cwnd:发送方维持的拥塞窗口大小
拥塞判断:
- 重传定时器超时
- 收到三个重复的ACK:个别报文段在网络中丢失,预示可能出现拥塞
拥塞时处理:ssthresh = cwnd / 2(乘法减小)
拥塞控制算法:
| 算法 | 说明 |
|---|---|
| 慢开始 | 指数增长cwnd,直到达到ssthresh |
| 拥塞避免 | 加法增大cwnd(每轮次+1) |
| 快重传 | 发送方收到3个重复的ACK,立即进行重传 |
| 快恢复 | 快重传后,cwnd = ssthresh,执行拥塞避免 |
第六章:应用层
6.1 DNS
作用:域名 → IP地址
域名服务器类型:
| 类型 | 说明 |
|---|---|
| 根域名服务器 | 最高层次的域名服务器 |
| 顶级域名服务器 | 管理该顶级域名下的所有二级域名 |
| 权限域名服务器 | 负责一个区的域名服务器 |
| 本地域名服务器 | 默认域名服务器,也称默认域名服务器 |
DNS解析过程:
- 用户在浏览器中输入网址(如 www.example.com)
- 查询本地DNS服务器缓存
- 若缓存未命中,发起迭代查询:
- 查询根DNS服务器 → 返回顶级域名服务器地址
- 查询顶级域名服务器 → 返回权限域名服务器地址
- 查询权限域名服务器 → 获得目标域名的IP地址
- 返回结果给浏览器
- 本地DNS服务器和操作系统缓存返回的IP地址
域名服务器缓存:每个域名服务器维护一个高速缓存,存放最近用过的名字映射记录,可大大减轻根域名服务器的负荷。
6.2 FTP
文件传送协议FTP使用TCP可靠的运输服务。主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP使用客户服务器方式,使用两个独立的连接:
| 组件 | 说明 |
|---|---|
| 主进程 | 负责接受新的请求,创建从属进程处理会话 |
| 从属进程 | 负责处理单个请求,管理数据连接,传输文件数据 |
6.2.1 两个端口号
| 端口 | 号码 | 用途 |
|---|---|---|
| 控制端口 | 21 | 客户进程通过连接21告知自己的数据传送端口号 |
| 数据端口 | 20 | 接受客户端的数据传送端口号,通过20发起连接传送数据 |
6.3 电子邮件
相关协议:
| 协议 | 全称 | 用途 |
|---|---|---|
| SMTP | Simple Mail Transfer Protocol | 简单邮件传送协议 |
| MIME | Multipurpose Internet Mail Extensions | 通用因特网邮件扩充 |
| POP | Post Office Protocol | 邮局协议 |
| IMAP | Internet Message Access Protocol | 因特网报文存取协议 |
电子邮件的发送和接收过程:
- 发送方用户代理 → SMTP → 发送方邮件服务器 → SMTP → 接收方邮件服务器 → POP3/IMAP → 接收方用户代理
6.3.1 基于万维网的邮件
| 阶段 | 使用的协议 |
|---|---|
| 用户A → 网易邮件服务器 | HTTP |
| 网易邮件服务器 → 新浪邮件服务器 | SMTP |
| 新浪邮件服务器 → 用户B | HTTP |
6.4 HTTP
连接方式:
| 连接类型 | 说明 |
|---|---|
| 持续连接 | 非流水线方式:收到应答后发出下一个请求;流水线方式:连续发送请求 |
| 非持续连接 | 每次请求/响应都建立新的TCP连接 |
6.5 动态主机配置协议DHCP
DHCP提供了一种即插即用网的机制,允许一台计算机加入新的网络和获取IP地址而不用手工参与。
DHCP工作过程:
| 阶段 | 消息类型 | 说明 |
|---|---|---|
| 1 | DHCP Discover | 需要IP地址的主机广播发送发现报文 |
| 2 | DHCP Offer | DHCP服务器从地址池中取一个地址分配给该计算机,可能收到多个响应 |
| 3 | DHCP Request | 客户端从多个Offer中选择一个,广播发送请求消息 |
| 4 | DHCP ACK | 服务器确认,客户端配置IP地址及网络参数(网关、DNS等) |
| 5 | DHCP NACK | 服务器不同意,客户端必须立即停止使用原IP地址并重新申请 |
| 6 | DHCP Release | 客户端可随时提前终止租用期 |
租用期:
- DHCP分配的IP地址是有期限的,称为租用期
- 租用期的一半时,发送DHCP Request要求更新租用期
- 若无响应,在租用期的3/4时重新发送
- 服务器同意则发回DHCP ACK,不同意则发回DHCP NACK













