第一章 计算机网络体系结构

1.1 计算机网络概述

 1. 定义:将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。

2. 基本构成:

  · 硬件:主机、通信链路、交换设备(路由器、交换机)、集线器等。

  · 软件:网络操作系统、通信协议、应用软件。

  · 协议:语法、语义、同步三要素。

3. 按工作方式划分:

  · 边缘部分:由所有连接在互联网上的主机组成,用户直接使用。

  · 核心部分:由大量网络和连接这些网络的路由器组成,为边缘部分提供服务。

4. 按功能划分:

  · 通信子网:负责数据通信,包括传输介质和通信设备(路由器、交换机)。

  · 资源子网:负责数据处理,包括主机和软件资源。

1.2 计算机网络功能

  1. · 数据通信
  2. · 资源共享
  3. · 分布式处理
  4. · 提高可靠性(冗余链路)
  5. · 负载均衡

1.3 计算机网络分类

1. 按分布范围

· 广域网(WAN):跨国家/城市,使用路由器连接。

· 城域网(MAN):覆盖一个城市,常采用以太网技术。

· 局域网(LAN):小范围,如校园、公司,采用广播或交换技术。

· 个人区域网(PAN):个人设备间。

2. 按拓扑结构

· 星形网:中央节点控制,易于管理,中心故障则全网瘫痪。

· 总线型网:所有节点共享一条总线,易冲突,常用CSMA/CD。

· 环形网:数据沿环单向传输,需令牌控制。

· 网状网:节点间多条路径,可靠性高,但成本高。

· 树形网:层次结构,扩展性强。

3. 按使用者

· 公用网:由电信运营商建设,向社会开放。

· 专用网:某个部门自行构建,不对外开放。

4. 按交换技术

· 电路交换:建立专用物理线路,如电话网络。

· 报文交换:存储转发,以报文为单位。

· 分组交换:存储转发,以分组为单位,分为虚电路和数据报两种方式。

1.4 三种交换技术对比

  • 交换技术 特点 优点 缺点
  • 电路交换 建立连接→通信→释放连接,资源独占 实时性好,无冲突 线路利用率低,建立连接时间长
  • 报文交换 存储转发,报文不定长 无需预约,线路利用率高 转发时延长,需大缓存
  • 分组交换 存储转发,分组定长 灵活,可靠性高,利用率高 存在时延和开销

1.5 性能指标

· 速率:单位时间内传输的比特数,单位 b/s (bps)。

· 带宽:原本指信号频带宽度(Hz),计算机网络中指最高数据率(b/s)。

· 吞吐量:实际通过网络的比特率。

· 时延:包括发送时延、传播时延、处理时延、排队时延。

· 时延带宽积 = 传播时延 × 带宽,表示链路上能容纳的比特数。

· 往返时间RTT:从发送数据到收到确认的时间。

· 利用率:信道或网络被利用的时间百分比。

 

1.6 计算机网络体系结构

 

1. OSI七层参考模型

层次 名称 功能 协议数据单元(PDU)

7 应用层 用户应用程序接口,提供网络服务 报文

6 表示层 数据格式转换、加密解密、压缩解压 报文

5 会话层 管理会话,建立同步,对话控制 报文

4 传输层 端到端通信,流量控制,差错控制,可靠传输 报文段

3 网络层 路由选择,分组转发,拥塞控制,网际互联 分组/包

2 数据链路层 相邻节点间可靠传输,差错控制,流量控制,介质访问控制 帧

1 物理层 比特流的透明传输,定义接口电气、机械、功能、过程特性 比特流

 

2. TCP/IP四层模型

· 应用层 (对应OSI应用层、表示层、会话层)

· 传输层 (TCP/UDP)

· 网络层 (IP)

· 网络接口层 (对应OSI数据链路层和物理层)

 

3. 五层协议模型 (教学用)

· 应用层

· 传输层

· 网络层

· 数据链路层

· 物理层

1.7 虚电路与数据报对比

对比项 虚电路 数据报

连接方式 面向连接 无连接

路由选择 建立连接时决定,所有分组按同一路径 每个分组独立选择路由

顺序保证 分组按序到达 可能失序

带宽分配 统计复用 统计复用

可靠性 由网络保证 由端系统保证

 

第二章 物理层

 

2.1 物理层基本概念

物理层考虑如何在传输媒体上传输比特流,而非具体的传输媒体。

· 机械特性:接口形状、尺寸、引脚数。

· 电气特性:电压范围、信号速率、传输距离。

· 功能特性:引脚定义、信号含义。

· 过程特性:时序、事件顺序。

2.2 通信基础

1. 数据通信系统模型

```

信源 → 发送器 → 信道 → 接收器 → 信宿

               ↑

             噪声源

```

 

· 信源:产生数据

· 发送器:编码/调制

· 信道:传输介质

· 接收器:解码/解调

· 信宿:接收数据

 

2. 基本概念

· 数据:传送信息的实体。

· 信号:数据的电气或电磁表现。

· 码元:固定时长的信号波形,代表离散数值。

· 波特率:每秒传输的码元数,单位 Baud。

· 比特率:每秒传输的比特数,单位 b/s。

· 关系:比特率 = 波特率 × log₂(码元状态数)

3. 信道的极限容量

· 奈奎斯特定理 (无噪声)

  1.   · 最大传输速率 = 2W log₂V (b/s)
  2.   · W:带宽(Hz),V:信号电平数。
  3.   · 结论:码元传输速率受带宽限制,提高电平数可增加比特率。

· 香农定理 (有噪声)

  1.   · 最大传输速率 = W log₂(1 + S/N) (b/s)
  2.   · S/N:信噪比,通常以dB表示:信噪比(dB) = 10 log₁₀(S/N)
  3.   · 结论:带宽或信噪比越大,极限传输速率越高。

2.3 编码与调制

编码 (数字信号 → 数字信号)

常用编码方式:

· 不归零码(NRZ):高电平表示1,低电平表示0,无同步能力。

· 归零码(RZ):每个码元中间归零,有同步能力,但效率低。

· 反向不归零码(NRZI):遇0电平跳变,遇1电平不变 (或反之),常用于USB。

· 曼彻斯特编码:每个码元中间有跳变,从高到低表示0,从低到高表示1 (或相反)。自带同步,用于以太网。

· 差分曼彻斯特编码:每个码元开始处有跳变表示0,无跳变表示1,中间始终有跳变。抗干扰性强。

 

调制 (数字信号 → 模拟信号)

 

· 调幅(ASK):用载波幅度表示0/1。

· 调频(FSK):用载波频率表示0/1。

· 调相(PSK):用载波相位表示0/1。

· 正交幅度调制(QAM):结合ASK和PSK,提高速率。

2.4 传输介质

双绞线

· 构成:两根绝缘铜导线绞合,可加屏蔽层。

  · STP:屏蔽双绞线,抗干扰好。

  · UTP:非屏蔽双绞线,成本低。

· 应用:局域网(如10Base-T)、电话线。

· 类别:Cat5、Cat5e、Cat6等。

同轴电缆

· 构成:内导体、绝缘层、外导体屏蔽层、外皮。

· 抗干扰能力好。

· 应用:早期有线电视、以太网(10Base2、10Base5)。

光纤

· 构成:纤芯(高折射率)、包层(低折射率),利用全反射传输光信号。

· 分类:

  · 单模光纤:纤芯细,传输距离远,带宽大。

  · 多模光纤:纤芯粗,适合近距离。

· 优点:抗电磁干扰、损耗小、中继距离长、通信容量大。

物理层接口特性示例

· 10Base5:10 Mbps,基带信号,最大段长500m。

· 10Base-T:10 Mbps,基带,双绞线。

2.5 物理层设备

· 中继器:放大信号,延长传输距离,工作在物理层。

· 集线器:多端口中继器,半双工,广播方式,所有端口属于同一冲突域。

第三章 数据链路层

3.1 数据链路层功能

· 封装成帧:将网络层分组添加首部和尾部,形成帧。

· 透明传输:防止数据中的特殊字符被误解为帧边界。

· 差错控制:检测并纠正比特错误。

· 可靠传输:保证无差错、不丢失、不重复。

· 流量控制:协调发送方和接收方速率。

· 介质访问控制:控制共享信道的访问。

· 链路管理:连接的建立、维持、释放。

3.2 组帧方法

1. 字符计数法:帧首部一个计数字段表示帧长度,缺点:计数字段出错会丢失同步。

2. 字符填充法:使用特定字符定界,数据中出现的特殊字符前加转义字符。

3. 零比特填充法:以01111110为边界,数据中每5个连续1后插入一个0(HDLC)。

4. 违规编码法:利用物理层编码冗余,如曼彻斯特编码中的高-高或低-低电平违规作为边界。

3.3 差错控制

检错编码

· 奇偶校验码:添加1位校验位使1的个数为奇/偶数,只能检测奇数位错误。

· 循环冗余校验(CRC):

  · 原理:发送方根据生成多项式对数据做模2除法,余数作为FCS附在数据后。

  · 接收方对接收到的帧做同样除法,余数为0则无误。

  · 例:G(x)=x³+x²+1 (即1101),数据101001,求CRC码。

    · 数据后加3个0 → 101001000

    · 模2除以1101,得余数001,故发送101001001。

    · 接收方用1101除,余0正确。

 

纠错编码:海明码

 

 原理:在数据位间插入多个校验位,使每个校验位覆盖不同数据位,可定位错误位。

· 码距:两个合法编码不同位的个数,要纠正d位错误,需码距≥2d+1。

· 海明不等式:2^k ≥ n + k + 1,其中n为数据位,k为校验位。

· 例:数据1010 (n=4),则k=3,2^3=8≥4+3+1=8,满足。

  · 放置校验位P1、P2、P4在2^(i-1)位置,数据位占其余。

  · 生成海明码:D4 D3 D2 P3 D1 P2 P1。

  · 校验方程:每个校验位负责的位为对应二进制表示含该位的位置。

  · 计算P值,形成最终海明码。

 

3.4 流量控制与可靠传输机制

1. 滑动窗口机制

· 发送窗口:允许连续发送未确认的帧数。

· 接收窗口:允许接收的乱序帧数。

· 确认机制:ACK帧。

2. 停止-等待协议

· 发送窗口=1,接收窗口=1。

· 发送方每发一帧等待确认,超时重传。

· 信道利用率低:U = TD / (TD + RTT + TA)

3. 后退N帧协议 (GBN)

· 发送窗口>1,接收窗口=1。

· 累积确认:收到ACKn表示n及之前帧都正确。

· 超时后重传所有已发但未确认的帧。

· 发送窗口大小≤2^n -1 (n为帧序号位数)。

4. 选择重传协议 (SR)

· 发送窗口>1,接收窗口>1。

· 每个帧独立确认,可NAK请求重传特定帧。

· 接收窗口缓存乱序帧。

· 发送窗口大小≤2^(n-1)。

3.5 介质访问控制

1. 信道划分

· 频分多路复用(FDM):划分频带,同时传输。

· 时分多路复用(TDM):划分时间片,各站轮询。

  · 统计时分复用(STDM):按需分配时隙。

· 波分多路复用(WDM):光纤中不同波长。

· 码分多路复用(CDMA):每个站分配正交码,同时同频传输,利用码序列正交性分离。

 

2. 随机访问

· ALOHA协议:纯ALOHA随时发,冲突随机重发;时隙ALOHA在时隙开始时发。

· CSMA协议:载波监听,有1-坚持、非坚持、p-坚持。

 

· CSMA/CD (适用于有线以太网):

  · 要点:先听后发,边听边发,冲突停发,随机重发。

  · 冲突检测:在2τ(争用期)内检测到冲突。

  · 二进制指数退避:第i次冲突后从[0, 2^i-1]选r,等待r×512比特时间。

  · 最短帧长:确保在发送完前能检测到冲突,以太网最短64B。

· CSMA/CA (适用于无线局域网):

  · 由于无线难以检测冲突,采用冲突避免。

  · 信道预约:RTS/CTS握手机制。

  · 帧间间隔:DIFS、PIFS、SIFS,优先级不同。

  · 随机退避:避免冲突。

3. 轮询访问

· 令牌环网:节点持有令牌才能发送,无冲突。

· 令牌传递协议。

3.6 局域网

以太网 (IEEE 802.3)

· 有线局域网标准。

· 拓扑:早期总线型,现星形(使用交换机)。

· 传输介质:同轴电缆、双绞线、光纤。

· MAC协议:CSMA/CD。

· MAC地址:48位,全球唯一。

· 以太网帧格式:

 

```

|前导码7B |定界符1B |目的地址6B|源地址6B |类型2B |数据46-1500B| FCS4B |

 

· 前导码用于同步,定界符标识帧开始。

· 最小帧长64B,最大1518B。

 

无线局域网 (IEEE 802.11, Wi-Fi)

 

· 拓扑:基础设施模式(AP+STA)或自组网。

· MAC协议:CSMA/CA。

· 帧结构较复杂。

 

集线器与交换机

 

· 集线器:物理层设备,半双工,所有端口共享带宽,同一冲突域。

· 交换机:数据链路层设备,全双工,每个端口独立带宽,隔离冲突域。

 

3.7 虚拟局域网 VLAN

· 概念:将物理局域网划分为多个逻辑局域网,隔离广播域。

· 802.1Q帧:在标准以太网帧中插入4字节VLAN标签。

  · VLAN标签包括TPID (2B 0x8100)、优先级、CFI、VID (12位)。

  · 帧最大长度变为1522B。

· VLAN划分方式:

  · 基于接口

  · 基于MAC地址

  · 基于IP地址 (可跨路由器)

 

3.8 数据链路层设备

 

· 网桥:连接两个局域网,根据MAC地址转发/过滤。

· 交换机:多端口网桥,全双工,可并行通信。

 

第四章 网络层

 

4.1 网络层功能

· 异构网络互联:通过路由器连接不同技术的网络。

· 路由与转发:

  · 路由选择:运行路由协议,生成路由表。

  · 分组转发:根据转发表将分组从输入端口转发到输出端口。

· 拥塞控制:

  · 开环控制:静态预防。

  · 闭环控制:动态调整。

4.2 IPv4

 

4.2.1 IPv4 数据报格式

 

IPv4 数据报由首部(固定20字节 + 可选40字节)和数据部分组成。

 

首部结构(以32位为单位):

 

4位版本 4位首部长度 8位区分服务 16位总长度

16位标识 3位标志 13位片偏移

8位生存时间(TTL) 8位协议 16位首部检验和

32位源IP地址

32位目的IP地址

选项(若有) 填充

 

关键字段说明:

 

· 版本:IPv4 为 4。

· 首部长度:以 4 字节为单位,最小值 5(20字节),最大值 15(60字节)。

· 总长度:首部+数据总长度(字节),最大 65535。

· 标识:同一数据报分片时使用相同标识。

· 标志:

  · DF(Don‘t Fragment):DF=1 不允许分片;DF=0 允许。

  · MF(More Fragments):MF=1 表示后面还有分片;MF=0 表示最后一片。

· 片偏移:以 8 字节为单位,表示该片在原数据报中的相对位置。

· TTL:生存时间,每经过一个路由器减 1,减到 0 丢弃,防止无限循环。

· 协议:标识上层协议(TCP=6,UDP=17,ICMP=1)。

· 首部检验和:只检验首部,不检验数据。

 

分片规则:

 

· 分片可能在源主机或中间路由器进行。

· 重组只在目的主机进行。

· 除最后一片外,每片数据长度必须是 8 字节的整数倍。

 

4.2.2 IP 地址分类(传统分类,现已用 CIDR)

 

类别 前缀 网络号位数 主机号位数 地址范围 用途

A 0 8 24 1.0.0.0 ~ 127.255.255.255 大型网络

B 10 16 16 128.0.0.0 ~ 191.255.255.255 中型网络

C 110 24 8 192.0.0.0 ~ 223.255.255.255 小型网络

D 1110 - - 224.0.0.0 ~ 239.255.255.255 组播地址

E 1111 - - 240.0.0.0 ~ 255.255.255.255 保留

 

特殊 IP 地址:

 

网络号 主机号 源地址 目的地址 含义

0 0 可用 不可用 本网络上的本主机

0 特定 可用 不可用 本网络上的特定主机

全1 全1 不可用 可用 本地网络广播(受限广播)

特定 全1 不可用 可用 对特定网络的广播

127 非全0/非全1 可用 可用 环回测试地址

 

4.2.3 子网划分与子网掩码

 

· 子网划分:从主机号中借用若干位作为子网号。

  · 格式:IP地址 = 网络号 + 子网号 + 主机号。

· 子网掩码:32位,网络号和子网号部分为1,主机号部分为0。

  · 与 IP 地址逐位相与,得到网络地址。

· 默认网关:连接不同网络的出口路由器 IP。

· 路由表项:目的网络号、子网掩码、下一跳、出接口。

· 默认路由:目的网络号 0.0.0.0,子网掩码 0.0.0.0,匹配所有未指定网络。

 

4.2.4 CIDR(无分类域间路由选择)

 

· CIDR 地址块:IP地址/前缀长度,如 192.168.1.0/24。

· 路由聚合(构成超网):将多个连续的子网聚合成一个大的网络前缀,减少路由表项。

  · 条件:这些子网的网络前缀相同且转发接口相同。

· 最长前缀匹配:查找路由表时,选择匹配度最长的路由项。

 

4.2.5 CIDR 地址块划分技巧(哈夫曼树思想)

 

将 CIDR 地址块视为根节点,按二进制展开,构造二叉前缀树:

 

· 左孩子对应 0,右孩子对应 1。

· 叶子节点对应子网。

· 每个非叶子节点必须有两个孩子(保证无浪费)。

· 树高受前缀长度限制。

 

例题:将 101.200.16.0/20 划分为 5 个子网,求可能的子网掩码和可用 IP 数。

 

· 原地址块:101.200.16.0/20,主机位 12 位。

· 要划 5 个子网,可采用变长子网掩码(VLSM),例如:

  · 2 个 /26(可用地址 62),2 个 /27(可用地址 30),1 个 /25(可用地址 126)等,组合总数为 5。

  · 可用 IP 数需根据具体划分计算,常用选项为 254(/24 的可用地址数),但需结合具体题目。

 

4.2.6 NAT(网络地址转换)

 

· 私有 IP 地址范围(不可在公网路由):

  · 10.0.0.0/8

  · 172.16.0.0/12

  · 192.168.0.0/16

· NAT 路由器:将内网主机的私有 IP 转换为公网 IP,并记录映射关系(NAT 表)。

  · 通常结合端口号(NAPT)实现多对一转换。

· 作用:节省公网 IP,隐藏内网结构。

 

4.3 地址解析协议 ARP

 

· 作用:根据 IP 地址解析出同一局域网内的 MAC 地址。

· 原理:

  1. 主机广播 ARP 请求(目标 IP 地址),包含自己的 IP 和 MAC。

  2. 目标主机单播回复 ARP 响应(包含自己的 MAC)。

· ARP 缓存:存储最近解析的 IP-MAC 映射,老化时间通常 20 分钟。

· 跨网通信:ARP 只解析下一跳路由器接口的 MAC,而非最终目的主机。

 

4.4 动态主机配置协议 DHCP

 

· 作用:给新接入网络的主机自动分配 IP 地址、子网掩码、默认网关等配置。

· 工作模型:客户/服务器,基于 UDP。

· 通信过程(4 个步骤):

  1. DHCP 发现(DISCOVER):客户端广播(源 IP=0.0.0.0,目的 IP=255.255.255.255),包含 MAC 地址。

  2. DHCP 提供(OFFER):服务器单播/广播回复,提供 IP 地址、租用期等。

  3. DHCP 请求(REQUEST):客户端广播确认使用该 IP。

  4. DHCP 确认(ACK):服务器确认,完成配置。

· 租用期:可续约。

 

4.5 网际控制报文协议 ICMP

 

· 作用:报告网络中的差错和异常情况,辅助诊断。

· 封装:ICMP 报文封装在 IP 数据报中(协议字段=1)。

· 常见类型:

  · 差错报告报文:

    · 终点不可达

    · 时间超过(TTL 减到 0)

    · 参数问题

    · 源点抑制(已弃用)

  · 询问报文:

    · 回送请求/应答(ping)

    · 时间戳请求/应答

· 典型应用:

  · ping:利用回送请求/应答测试连通性。

  · traceroute:利用 TTL 超时报文跟踪路由路径。

 

4.6 IP 多播

 

· 概念:源主机发送一个 IP 多播分组,由多播路由器复制转发给多个成员。

· 多播地址:D 类地址(224.0.0.0 ~ 239.255.255.255),只能作为目的地址。

· IGMP 协议:主机与路由器之间的多播组成员管理协议(网络层),用于加入/离开多播组。

· 多播路由协议:如 PIM、DVMRP,负责多播路由计算。

· 特点:

  · 尽最大努力交付,不可靠。

  · 不产生 ICMP 差错报文。

 

4.7 移动 IP

 

· 基本概念:

  · 归属代理:移动节点在家乡网络时的代理。

  · 外地代理:移动节点在外地网络时的代理。

  · 永久地址:移动节点的固定 IP(家乡地址)。

  · 转交地址:在外地网络获得的临时地址。

· 通信过程:

  1. 移动节点在外地注册转交地址到归属代理。

  2. 归属代理截获发往永久地址的分组,通过隧道(IP in IP)转发到转交地址。

  3. 外地代理接收后交付给移动节点。

  4. 移动节点发出的分组可直接通过外地网络发送(或反向隧道)。

 

4.8 路由算法与路由协议

 

4.8.1 路由算法分类

 

· 静态路由:手工配置,不自动适应网络变化。

· 动态路由:

  · 距离-向量算法(如 RIP):每个路由器维护到所有目的网络的距离向量,定期与邻居交换。

  · 链路状态算法(如 OSPF):每个路由器收集全网链路状态,构建 LSDB,用 Dijkstra 计算最短路径。

  · 层次路由:将互联网划分为自治系统(AS),内部使用内部网关协议(IGP),外部使用外部网关协议(EGP)。

 

4.8.2 自治系统 AS

 

· AS 内部运行相同的路由策略,有全球唯一 AS 号。

· 边界路由器连接其他 AS。

 

4.8.3 路由信息协议 RIP

 

· 特点:

  · 基于距离-向量算法,以跳数(hops)为度量,最大 15,16 表示不可达。

  · 仅和相邻路由器交换信息(30 秒广播一次)。

  · 交换完整路由表。

  · 应用层协议,基于 UDP(端口 520)。

· 优缺点:

  · 优点:实现简单,开销小。

  · 缺点:网络规模受限(最大 15 跳);收敛慢(坏消息传播慢,存在“慢收敛”问题);开销大(交换完整路由表)。

· 路由表更新原则:

  · 收到邻居通告的距离向量,与自己路由表比较,取较小值更新(下一跳为邻居)。

  · 若某路由在 180 秒内未收到更新,则标记为不可达。

 

4.8.4 开放最短路径优先 OSPF

 

· 特点:

  · 基于链路状态算法,使用 Dijkstra 计算最短路径。

  · 以“代价”为度量(可基于带宽等设置),支持负载均衡。

  · 支持 CIDR 和 VLSM。

  · 通过洪泛法向区域内所有路由器发送链路状态信息(LSA)。

  · 网络层协议,IP 协议号 89。

· OSPF 工作过程:

  1. 建立邻居关系(Hello 报文)。

  2. 交换链路状态数据库摘要(DD 报文)。

  3. 请求缺失的 LSA(LSR 报文)。

  4. 更新 LSA(LSU 报文),确认(LSAck)。

  5. 根据 LSDB 计算路由。

· 区域划分:支持分层,骨干区域 Area 0,其他区域与骨干相连。

· OSPF 分组类型:

  类型 名称 作用

  1 Hello 发现和维护邻居关系

  2 DD 数据库描述,交换 LSA 摘要

  3 LSR 链路状态请求

  4 LSU 链路状态更新

  5 LSAck 链路状态确认

 

4.8.5 边界网关协议 BGP

 

· 作用:在不同 AS 之间交换路由信息,找到一条较好的可达路径(考虑策略、政治、经济等因素)。

· 特点:

  · 基于路径-向量算法,通告中携带 AS 路径(AS_PATH)防止环路。

  · 应用层协议,基于 TCP(端口 179),保证可靠性。

  · 支持 CIDR。

  · 只通告可达性信息,不计算最短路径。

· BGP 路由信息:

  · CIDR 前缀

  · AS_PATH:经过的 AS 列表

  · NEXT_HOP:下一跳路由器 IP

  · 其他属性(本地优先级、MED 等)

· BGP 报文:

  报文类型 作用

  OPEN 建立 BGP 会话

  UPDATE 通告/撤销路由

  KEEPALIVE 周期性保活

  NOTIFICATION 报告错误,关闭连接

· BGP 决策过程(简化):

  1. 选择具有最高本地优先级的路径。

  2. 若相同,选择 AS 路径最短的。

  3. 若相同,选择热土豆路由(最小代价离开当前 AS)。

  4. 若相同,选择 BGP 标识最小的。

 

4.9 路由器组成与功能

 

· 路由器结构:

  · 控制层面:路由选择处理机,运行路由协议,生成路由表(控制平面软件)。

  · 转发层面:硬件转发,包括输入端口、交换结构、输出端口。

· 输入端口处理:物理层接收、链路层解封装、查找转发表、排队。

· 交换结构:将分组从输入端口传送到输出端口(内存交换、总线交换、纵横交换)。

· 输出端口处理:排队、链路层封装、物理层发送。

· 路由表 vs 转发表:

  · 路由表由路由协议生成,包含下一跳等。

  · 转发表由路由表优化生成,用于快速查找。

 

第五章 传输层

 

5.1 传输层提供的服务

 

· 端口号:16位,标识主机上的特定应用进程。

  · 熟知端口(0-1023):FTP(20/21)、TELNET(23)、SMTP(25)、DNS(53)、TFTP(69)、HTTP(80)、SNMP(161)等。

  · 登记端口(1024-49151)

  · 动态/私有端口(49152-65535)

· 套接字:IP地址 + 端口号,唯一标识一个端点。

· 复用与分用:

  · 复用:发送方多个应用进程共用同一传输层协议。

  · 分用:接收方传输层根据端口号将数据交付给正确的应用进程。

· 传输层协议:

  · TCP:面向连接、可靠、面向字节流、支持拥塞控制、仅支持单播。

  · UDP:无连接、不可靠、面向报文、支持一对多。

 

5.2 UDP 协议

 

5.2.1 UDP 特点

 

· 首部仅 8 字节。

· 无连接,不可靠,不保证顺序。

· 支持广播和多播。

· 实时性要求高的应用常用(如视频、语音)。

 

5.2.2 UDP 数据报格式

 

16位源端口号 16位目的端口号

16位 UDP 长度 16位 UDP 检验和

 

· UDP 长度:首部 + 数据总长度(字节),最小 8。

· 检验和:可选,若为 0 表示不检验。

  · 计算时添加 12 字节伪首部(源IP、目的IP、0、协议号17、UDP长度),然后按 16 位二进制反码求和。

  · 伪首部只用于计算,不传输。

 

5.3 TCP 协议

 

5.3.1 TCP 特点

 

· 面向连接(三次握手建立,四次挥手释放)。

· 可靠传输(确认、重传、序号)。

· 全双工通信。

· 面向字节流。

· 拥塞控制和流量控制。

· 仅支持一对一。

 

5.3.2 TCP 报文段格式

 

16位源端口 16位目的端口

32位序号

32位确认号

4位首部长度 保留(6位)

16位检验和 16位紧急指针

选项(若有) 填充

 

· 序号:本报文段数据部分的第一个字节的序号(初始序号 ISN 随机)。

· 确认号:期望收到的下一个字节序号,确认号之前的数据已正确接收。

· 数据偏移:TCP 首部长度(以 4 字节为单位)。

· 标志位:

  · URG:紧急指针有效。

  · ACK:确认号有效(连接建立后一直置 1)。

  · PSH:推送,立即上交应用层。

  · RST:复位连接。

  · SYN:同步序号,用于连接建立。

  · FIN:终止连接,用于连接释放。

· 窗口:接收方通告的剩余缓冲区大小,用于流量控制。

· 检验和:包括伪首部(协议=6)、TCP 首部、数据。

 

5.3.3 TCP 连接管理

 

三次握手建立连接:

 

1. 客户端发送 SYN 报文段(SYN=1,seq=x),消耗一个序号,进入 SYN-SENT。

2. 服务器回复 SYN+ACK(SYN=1,ACK=1,seq=y,ack=x+1),消耗一个序号,进入 SYN-RCVD。

3. 客户端发送 ACK(ACK=1,seq=x+1,ack=y+1),可能携带数据,进入 ESTABLISHED;服务器收到后进入 ESTABLISHED。

 

四次挥手释放连接:

 

1. 客户端发送 FIN 报文段(FIN=1,seq=u),消耗一个序号,进入 FIN-WAIT-1。

2. 服务器回复 ACK(ACK=1,seq=v,ack=u+1),进入 CLOSE-WAIT;客户端收到后进入 FIN-WAIT-2。

3. 服务器发送 FIN 报文段(FIN=1,seq=w,ack=u+1),消耗一个序号,进入 LAST-ACK。

4. 客户端回复 ACK(ACK=1,seq=u+1,ack=w+1),进入 TIME-WAIT(等待 2MSL 后关闭);服务器收到 ACK 后立即关闭。

 

状态转换图(简化):

 

```

客户端:CLOSED → SYN-SENT → ESTABLISHED → FIN-WAIT-1 → FIN-WAIT-2 → TIME-WAIT → CLOSED

服务器:CLOSED → LISTEN → SYN-RCVD → ESTABLISHED → CLOSE-WAIT → LAST-ACK → CLOSED

```

 

5.3.4 TCP 可靠传输

 

· 序号和确认:累积确认,确认号表示期望接收的下一字节。

· 超时重传:每个报文段设置定时器,超时未收到确认则重传。

· 快速重传:收到三个冗余 ACK(同一确认号),立即重传,无需等待超时。

· 确认策略:

  · 立即确认:收到一个报文段就立即返回 ACK。

  · 推迟确认:稍等一段时间(不超过 500ms)或收集多个确认一起发送。

 

5.3.5 TCP 流量控制

 

· 滑动窗口:接收方通过通告窗口 rwnd(接收窗口)限制发送方发送速度。

· 发送窗口大小 = min(rwnd, cwnd)(其中 cwnd 为拥塞窗口)。

· 窗口关闭:若 rwnd=0,发送方停止发送,并定时发送零窗口探测报文。

 

5.3.6 TCP 拥塞控制

 

· 拥塞窗口 cwnd:发送方根据网络拥塞程度动态调整。

· 四种算法:

  1. 慢开始:初始 cwnd=1MSS,每收到一个 ACK,cwnd 加倍(指数增长),直到阈值 ssthresh。

  2. 拥塞避免:超过 ssthresh 后,每经过一个 RTT,cwnd 增加 1(线性增长)。

  3. 快重传:收到三个冗余 ACK,立即重传,进入快恢复。

  4. 快恢复:将 ssthresh 设为 cwnd/2,cwnd 设为 ssthresh + 3MSS,然后执行拥塞避免(有些实现直接设为 ssthresh)。

· 超时重传:发生超时,ssthresh 设为 cwnd/2,cwnd 设为 1,重新慢开始。

 

图示:

 

```

cwnd

  |

  | 慢开始 拥塞避免

  | /| /

  | / | /

  | / | /

  | / | /

  |/ | /

  +----------------- RTT

   ssthresh

```

 

---

 

第六章 应用层

 

6.1 网络应用模型

 

· 客户/服务器模型(C/S):

  · 服务器一直运行,等待服务;客户端主动请求。

  · 例子:Web、FTP、Email。

· P2P 模型:

  · 对等实体直接通信,无中心服务器。

  · 优点:可扩展性好、健壮性强、减轻服务器压力。

  · 例子:BT、eMule、PPlive。

 

6.2 域名系统 DNS

 

6.2.1 域名空间

 

· 层次树状结构,如 www.example.com.

· 标号规则:

  · 不区分大小写。

  · 每个标号 ≤63 字符,全名 ≤255 字符。

· 顶级域名(TLD):

  · 国家顶级域名:.cn、.us

  · 通用顶级域名:.com、.net、.org、.edu、.gov

  · 基础结构域名:.arpa

 

6.2.2 DNS 服务器类型

 

· 根域名服务器:13 个逻辑根(全球分布),负责顶级域名服务器的查询。

· 顶级域名服务器:管理每个 TLD 下的二级域名。

· 权威域名服务器:负责某个区域的域名解析(如公司自建 DNS)。

· 本地域名服务器:用户主机配置的 DNS 服务器(如 ISP 提供的),负责递归查询。

 

6.2.3 域名解析过程

 

· 递归查询:本地域名服务器代替主机查询,逐级向上,直到得到结果后返回。

· 迭代查询:本地域名服务器依次向各级服务器请求,每次得到下一级服务器地址,直到找到权威服务器。

 

典型流程(递归+迭代):

 

1. 主机向本地 DNS 服务器发起递归查询。

2. 本地 DNS 服务器向根域名服务器迭代查询,获取顶级域名服务器地址。

3. 本地 DNS 服务器向顶级域名服务器迭代查询,获取权威域名服务器地址。

4. 本地 DNS 服务器向权威域名服务器查询,得到 IP 地址。

5. 本地 DNS 服务器将结果返回给主机。

 

6.3 文件传输协议 FTP

 

6.3.1 FTP 功能

 

· 不同主机间文件传输。

· 提供用户权限管理。

· 支持匿名 FTP。

 

6.3.2 FTP 工作原理

 

· 两个连接:

  · 控制连接:TCP 21 端口,整个会话期间保持,用于传输命令和响应。

  · 数据连接:TCP 20 端口,每次传输文件时建立,传输完成后关闭。

· 两种模式:

  · 主动模式(PORT):客户端随机打开端口,服务器主动连接客户端的数据端口。

  · 被动模式(PASV):服务器打开随机端口通知客户端,客户端连接该端口传输数据(用于客户端有防火墙时)。

 

6.4 电子邮件

 

6.4.1 电子邮件系统组成

 

· 用户代理:邮件客户端(如 Outlook)。

· 邮件服务器:存储邮件,管理邮箱。

· 协议:

  · SMTP(简单邮件传输协议):用于发送邮件,TCP 25。

  · POP3(邮局协议第3版):用于接收邮件,TCP 110。

  · IMAP:更强大的邮件访问协议。

  · MIME:多用途因特网邮件扩展,将非 ASCII 内容编码为 ASCII。

 

6.4.2 邮件发送过程

 

```

发件人UA → 发送方邮件服务器(SMTP) → 接收方邮件服务器(SMTP) → 收件人UA(POP3/IMAP)

```

 

· 发件人通过 SMTP 将邮件提交到自己的邮件服务器。

· 发送方邮件服务器通过 SMTP 将邮件转发到接收方邮件服务器。

· 收件人通过 POP3 或 IMAP 从邮件服务器下载邮件。

 

6.5 万维网 WWW

 

6.5.1 基本概念

 

· URL(统一资源定位符):协议://主机:端口/路径,如 http://www.example.com/index.html。

· HTML:超文本标记语言。

· HTTP:超文本传输协议。

 

6.5.2 HTTP 协议

 

· 特点:

  · 面向事务的应用层协议。

  · 基于 TCP(默认端口 80)。

  · 无状态(但可用 Cookie 记录用户状态)。

· 连接方式:

  · 非持续连接(HTTP/1.0 默认):每个请求/响应都建立新的 TCP 连接。

  · 持续连接(HTTP/1.1 默认):同一连接可传送多个对象。

    · 流水线方式:连续发送请求,无需等待响应。

    · 非流水线方式:收到响应后才发下一个请求。

 

6.5.3 HTTP 报文结构

 

· 请求报文:

  ```

  方法 SP URL SP 版本 CRLF

  首部字段名: 值 CRLF

  ...

  CRLF

  实体主体(可选)

  ```

  常用方法:GET(请求)、HEAD(获取首部)、POST(提交数据)、PUT(上传)、DELETE(删除)、CONNECT(代理)。

· 响应报文:

  ```

  版本 SP 状态码 SP 短语 CRLF

  首部字段名: 值 CRLF

  ...

  CRLF

  实体主体

  ```

  状态码:200 OK,404 Not Found,302 Found,500 Internal Server Error 等。

 

6.5.4 Cookie

 

· 服务器生成并发送给客户端的文本文件,存储在用户主机。

· 后续请求携带 Cookie,用于识别用户、维持会话。

 

6.6 典型应用层协议端口总结

 

应用 协议 传输层协议 端口

DNS DNS UDP/TCP 53

HTTP HTTP TCP 80

HTTPS HTTP over SSL TCP 443

FTP FTP TCP 21(控制)、20(数据)

SMTP SMTP TCP 25

POP3 POP3 TCP 110

IMAP IMAP TCP 143

DHCP DHCP UDP 67(服务器)、68(客户端)

TFTP TFTP UDP 69

SNMP SNMP UDP 161

RIP RIP UDP 520

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐