8.1无远弗届的网络
阅读入口
五层模型
| 层 | 主要职责 | 数据单位 | 典型设备或协议 |
|---|---|---|---|
| 物理层 | 在物理媒介上传输原始比特流 | 比特 | 中继器、集线器 |
| 数据链路层 | 在相邻节点之间传输帧 | 帧 | 交换机、网卡;以太网、Wi-Fi |
| 网络层 | 把数据从源主机送到目标主机,负责路由与逻辑寻址 | 数据包 | 路由器;IP |
| 传输层 | 在进程之间提供端到端通信 | 段或数据报 | TCP、UDP |
| 应用层 | 为应用程序提供网络服务 | 报文 | HTTP、DNS、SMTP、FTP、SSH |
物理层
物理层是网络的最底层,负责在物理媒介上传输原始的比特流。
- 功能:定义物理设备的电气、机械、功能和过程特性,例如用电压高低表示1和0,以及接口的形状。
- 传输介质:有线介质包括双绞线(网线)、光纤和同轴电缆,其中光纤利用光的全反射传输,速度快、损耗低;无线介质包括无线电波(Wi-Fi)、微波和红外线。
- 设备:中继器、集线器。
- 单位:比特。
数据链路层
数据链路层负责在相邻的两个节点之间传输数据,把比特流组装成帧。它不关心跨越多少个网络,只处理一段链路上的传递。
- 物理寻址:用MAC地址标识网络设备,MAC地址用于链路层寻址,例如
00:1A:2B:3C:4D:5E。 - 差错检测:检测传输过程中是否发生比特翻转,例如用CRC循环冗余校验。
- 介质访问控制:决定谁可以在什么时候发送数据,例如以太网的CSMA/CD机制。
- 协议:以太网、Wi-Fi(802.11)。
- 设备:交换机、网卡。
- 单位:帧。
网络层
传输层
应用层
应用层直接为用户的应用程序提供网络服务,定义运行在不同端系统上的应用进程如何相互传递报文。
- 常见协议:HTTP/HTTPS用于万维网访问;DNS是域名系统,把域名转换为IP地址;SMTP、POP3、IMAP用于电子邮件的传输与接收;FTP用于文件传输;SSH用于安全远程登录。
- 通信模式:C/S模式由客户端请求、服务器响应,例如Web;P2P模式是对等连接,每个节点既是客户端也是服务器,例如BitTorrent。
表里把五层的职责、数据单位和典型设备排在一起,正是本节要求整理的那三列。往后读到某一层的协议时,先回到这张表确认自己站在哪一层。
IPv4地址
IPv4地址长度为32位,即4字节。书写时采用点分十进制,把4个字节分别写成十进制数,再用点隔开,例如192.168.1.1。
一个IPv4地址分为两部分:
- 网络号:标识主机所在的网络。
- 主机号:标识该网络内的特定设备。
子网掩码用于区分这两部分:掩码中为1的位对应网络号,为0的位对应主机号。例如掩码255.255.255.0表示前24位是网络号、后8位是主机号。
分类编址
分类编址是历史上的方案;现代路由通常使用无类别的前缀长度,不能只靠地址类别推断当前掩码。
| 类别 | 地址范围 | 网络号位数 | 主机号位数 | 用途 |
|---|---|---|---|---|
| A类 | 0.0.0.0 – 127.255.255.255 | 8(首位为0) | 24 | 超大型网络 |
| B类 | 128.0.0.0 – 191.255.255.255 | 16(前两位10) | 16 | 中型网络 |
| C类 | 192.0.0.0 – 223.255.255.255 | 24(前三位110) | 8 | 小型网络 |
| D类 | 224.0.0.0 – 239.255.255.255 | — | — | 多播 |
| E类 | 240.0.0.0 – 255.255.255.255 | — | — | 保留实验 |
特殊地址
| 地址 | 含义 |
|---|---|
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 | 私有地址,不在公共互联网中作为可路由的源或目标地址 |
127.0.0.1 | 回环地址,通常指localhost,用于本机测试 |
主机号全为1,例如192.168.1.255 | 广播地址,用于向本网络内所有主机发送数据 |
主机号全为0,例如192.168.1.0 | 网络地址,用于标识整个网络 |
IPv4数据包与路由
IPv4头部通常为20字节,包含路由和处理所需的关键信息。
| 字段 | 作用 |
|---|---|
| 版本 | 值为4,表示IPv4 |
| 生存时间TTL | 防止数据包在网络环路中无限循环;每经过一个路由器减1,减到0时数据包被丢弃 |
| 协议 | 指示数据部分使用哪个传输层协议,常见值6表示TCP、17表示UDP |
| 源IP地址 | 发送方的32位地址 |
| 目的IP地址 | 接收方的32位地址 |
路由器根据目的IP地址查询路由表,选择匹配的路由和相应的出口或下一跳。多个前缀同时匹配时通常选择最长匹配前缀;每一跳独立作出转发决定。主机可直接发送到同一链路上的目标,也可通过网关发送到其他网络。
IPv6地址
IPv6地址长 位,通常写成八组十六进制数,每组表示 位,组间用冒号分隔。例如
2001:0db8:0000:0000:0000:0000:0000:0001每组开头的零可以省略;连续的全零组可以用一次 :: 代替。常用的规范写法压缩最长的一段连续全零组;等长时选靠前的一段,并不压缩单个全零组。上例可写成2001:db8::1。:: 在一个地址中只能出现一次,否则无法确定它代表多少组。
常见子网题先按前缀划分网络位与主机位;特殊前缀要按具体链路规则判断,不能机械套用普通子网的广播地址或主机数公式。
传输层与端口
传输层为应用进程提供端到端通信。端口号用于区分同一主机上的通信端点;协议、地址、端口及连接状态共同参与实际分用。TCP与UDP的端口空间分别处理,因此相同的数字端口不必指向同一个端点。
例如网页服务常监听TCP端口 ,客户端通常使用临时源端口连接服务;端口 不是所有浏览器进程自身固定使用的端口。
TCP与UDP
TCP是面向连接的传输层协议,向应用提供有序字节流。它通过序列号、确认、重传与校验等机制应对丢失、重复和乱序;连接遇到持续故障时仍可能失败,不能理解为任何网络条件下都保证成功交付。
TCP没有应用消息边界:一次发送的数据可以被多次读取,多次发送的数据也可能被一次读取。应用需要时须自行设计分帧方式。
UDP是无连接的数据报传输协议。一个数据报具有源端口、目的端口、长度、校验和字段与数据;首部固定为 字节。UDP保留数据报边界,但自身不提供自动重传、按序交付或拥塞控制。
数据报可能丢失、重复或乱序。应用可以在UDP之上自行实现可靠性、加密或拥塞控制;不能只根据传输协议断定应用是否能容忍丢包,也不能断言UDP一定比TCP快。
信道复用
为了提高通信线路的利用率,需要在同一条传输介质上同时传输多路信号,这就是信道复用。四种常见方式按“把什么切开分给各路信号”来区分。
| 方式 | 划分依据 | 说明 |
|---|---|---|
| 频分复用FDM | 频率 | 把频谱分成若干互不重叠的频带,每路信号占用一个频带。收音机不同电台使用不同频率、互不干扰,就是这种思路。 |
| 时分复用TDM | 时间 | 把时间划分为一段段等长的时隙,每路信号轮流占用时隙传输。类似大家轮流发言,每人讲一分钟。 |
| 波分复用WDM | 波长 | 本质是光的频分复用,在光纤中传输不同波长(颜色)的光信号,极大提高了光纤的传输容量。 |
| 码分复用CDM | 编码 | 主要用于无线通信(如3G、4G)。每个用户分配一个唯一的码序列(码片),各用户使用同样的频率同时发送数据,通过解码分离出特定用户的信号。 |
网络交换
数据在网络核心中传输主要有两种交换方式。它们的差别不在传输介质,而在是否为通信双方预留资源。
电路交换
电路交换先在通信双方之间建立电路,并在沿途链路上预留相应的传输资源;这些资源可以是共享物理链路中的时隙或频带。
- 独占资源:通话期间,链路带宽(频率或时隙)被固定分配给用户,其他用户无法使用。
- 三个阶段:建立连接 → 数据传输 → 释放连接。
- 优缺点:资源预留后通常避免竞争性排队;但静默期仍占用资源,实际时延还取决于传播和设备处理等因素。
- 典型案例:传统公共电话交换网(PSTN)。
分组交换
分组交换把数据划分为较小的分组进行传输。
- 机制:存储转发。路由器收到一个分组,先接收分组,再根据转发信息将其送往下一条链路。
- 统计复用:用户按需占用链路,多路数据动态共享带宽。
- 无连接:通常不需要预先分配固定资源。
- 优缺点:线路利用率高,适应突发流量;但存在排队延迟,可能发生丢包。
- 典型案例:互联网。
两种方式的对比:
| 比较项 | 电路交换 | 分组交换 |
|---|---|---|
| 资源分配 | 通信期间独占固定带宽 | 按需共享,统计复用 |
| 建立过程 | 必须先建立连接 | 通常无需预先分配资源 |
| 延迟 | 预留资源后通常避免竞争性排队 | 可能有排队延迟,随负载变化 |
| 线路利用率 | 低,静默期也占用资源 | 高,适合突发流量 |
| 抗毁性 | 通路中断则通信中断 | 可绕行,但可能丢包 |
| 典型场景 | 电话 | 互联网 |
学习安排
教材自底向上展开:先讲物理层怎样传比特,再逐层加上相邻节点寻址、跨网络路由、进程间通信和应用协议。按这个顺序读,每进入一层都能回答“上一层还缺什么”。
建议先把五层各自的负责范围、数据单位和典型设备列成三列,再进入网络层与传输层这两个重点。读 网络分层模型 时先建立整体框架,同时把信道复用和两种交换方式归到“网络核心怎样共享链路”这条线上。读IPv4地址与子网 时重点练地址计算:由地址和掩码写出网络地址、广播地址和可用主机范围,再对照头部字段理解TTL与协议字段。读TCP与UDP的传输形式 时把头部字段、三次握手和可靠性机制连起来看,不要只背字段名。
课程约定
- 采用TCP/IP五层模型:物理层、数据链路层、网络层、传输层、应用层。
- 数据单位沿用教材说法:比特、帧、数据包(分组)、段或数据报。
- 私有地址按A、B、C三段记:
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。 - TCP的可靠性按“确认、重传、窗口”三层记;拥塞控制重点理解目的。
- 应用层协议只要求认出用途,并区分C/S与P2P两种通信模式。
易错点
- 网络层负责主机到主机,传输层才负责进程到进程;端口号属于传输层,不属于网络层。
- MAC地址只在相邻节点之间使用,IP地址负责跨网络寻址;两者不在同一层,也不能互相替代。
- 分组交换的存储转发会带来排队延迟和丢包,这是换取统计复用和线路利用率的代价,不是实现缺陷。
- 电路交换的三阶段是建立通路、传输数据、释放通路;它预留的是沿途带宽,和TCP在两端维护的连接状态不是一回事。
- TTL每经过一个路由器减1,按跳数递减而不是按时间递减。
- 不要因为UDP头部开销小就认为它总是更快;应用可以按自身需要在UDP上实现可靠传输、拥塞控制或其他机制。
复习要点
回忆每一层时按“负责范围、数据单位、典型设备”三列自问,比按协议名背更容易定位遗漏。
TCP提供有序字节流并通过确认和重传应对丢失;UDP保留数据报边界,应用也可以自行实现可靠性;IPv4的地址题先确定掩码位数,再分别把主机号置0和置1。