课程笔记

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)。
  • 设备:交换机、网卡。
  • 单位:帧。

网络层

网络层负责把数据从源主机传输到目标主机,途中可能跨越多个不同的网络,核心任务是路由和逻辑寻址。

  • 单位:数据包。
  • 设备:路由器。

IPv4的地址、数据包和路由分别有独立说明。

传输层

传输层负责端到端的通信,也就是进程与进程之间的通信。端口号属于这一层,用来区分同一台主机上的不同应用程序。

  • 单位:段或数据报。

TCP与UDP的机制和取舍见TCP与UDP的传输形式。

应用层

应用层直接为用户的应用程序提供网络服务,定义运行在不同端系统上的应用进程如何相互传递报文。

  • 常见协议: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.2558(首位为0)24超大型网络
B类128.0.0.0 – 191.255.255.25516(前两位10)16中型网络
C类192.0.0.0 – 223.255.255.25524(前三位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地址长 128128 位,通常写成八组十六进制数,每组表示 1616 位,组间用冒号分隔。例如

text
2001:0db8:0000:0000:0000:0000:0000:0001

每组开头的零可以省略;连续的全零组可以用一次 :: 代替。常用的规范写法压缩最长的一段连续全零组;等长时选靠前的一段,并不压缩单个全零组。上例可写成2001:db8::1。:: 在一个地址中只能出现一次,否则无法确定它代表多少组。

常见子网题先按前缀划分网络位与主机位;特殊前缀要按具体链路规则判断,不能机械套用普通子网的广播地址或主机数公式。

传输层与端口

传输层为应用进程提供端到端通信。端口号用于区分同一主机上的通信端点;协议、地址、端口及连接状态共同参与实际分用。TCP与UDP的端口空间分别处理,因此相同的数字端口不必指向同一个端点。

例如网页服务常监听TCP端口 8080,客户端通常使用临时源端口连接服务;端口 8080 不是所有浏览器进程自身固定使用的端口。

TCP与UDP

TCP是面向连接的传输层协议,向应用提供有序字节流。它通过序列号、确认、重传与校验等机制应对丢失、重复和乱序;连接遇到持续故障时仍可能失败,不能理解为任何网络条件下都保证成功交付。

TCP没有应用消息边界:一次发送的数据可以被多次读取,多次发送的数据也可能被一次读取。应用需要时须自行设计分帧方式。

UDP是无连接的数据报传输协议。一个数据报具有源端口、目的端口、长度、校验和字段与数据;首部固定为 88 字节。UDP保留数据报边界,但自身不提供自动重传、按序交付或拥塞控制。

数据报可能丢失、重复或乱序。应用可以在UDP之上自行实现可靠性、加密或拥塞控制;不能只根据传输协议断定应用是否能容忍丢包,也不能断言UDP一定比TCP快。

TCP提供面向连接的有序字节流;UDP提供无连接的数据报。两者都使用端口,区别在于传输形式和协议提供的服务。

特性TCPUDP
数据形式字节流,不保留应用发送边界数据报,保留消息边界
交付尝试可靠、按序交付;连接可能失败不保证到达、顺序或不重复
连接通常先建立连接不需要建立传输层连接
首部最小20字节固定8字节

应用可在UDP之上实现可靠性或拥塞控制。性能取决于网络、实现和应用需求,不能简单断言一种协议总是更快。

信道复用

为了提高通信线路的利用率,需要在同一条传输介质上同时传输多路信号,这就是信道复用。四种常见方式按“把什么切开分给各路信号”来区分。

方式划分依据说明
频分复用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。