计算机网络与分布式系统

1. 计算机网络概述

1.1 计算机网络基本概念

计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

计算机网络的基本特征

  • 资源共享
  • 信息传递
  • 分布式处理
  • 提高可靠性
  • 负载均衡

计算机网络的分类

分类标准类型说明
按覆盖范围局域网(LAN)覆盖范围小,如办公室、校园
城域网(MAN)覆盖一个城市
广域网(WAN)覆盖范围广,如国家、洲际
按拓扑结构总线型所有设备连接到一条总线上
星型所有设备连接到一个中心节点
环型设备首尾相连形成环
树型层次结构
网状型任意两个节点之间都有连接

1.2 网络体系结构

OSI参考模型

层次名称主要功能协议/设备
第7层应用层为应用程序提供网络服务HTTP、FTP、SMTP、DNS
第6层表示层数据格式转换、加密解密SSL/TLS
第5层会话层建立、管理和终止会话NetBIOS
第4层传输层端到端的数据传输TCP、UDP
第3层网络层路由选择、拥塞控制IP、ICMP、ARP、路由器
第2层数据链路层帧的传输、差错控制PPP、HDLC、交换机
第1层物理层比特流传输集线器、中继器、网线

TCP/IP模型

层次对应OSI层主要协议
应用层应用层+表示层+会话层HTTP、FTP、SMTP、DNS、Telnet
传输层传输层TCP、UDP
网际层网络层IP、ICMP、ARP、RARP
网络接口层数据链路层+物理层Ethernet、WiFi

1.3 网络协议

TCP协议(传输控制协议)

  • 面向连接的、可靠的、基于字节流的传输层通信协议
  • 提供流量控制、拥塞控制、差错控制
  • 三次握手建立连接,四次挥手断开连接

UDP协议(用户数据报协议)

  • 无连接的、不可靠的传输层协议
  • 传输速度快,开销小
  • 适用于实时应用,如视频、音频传输

IP协议(网际协议)

  • 负责将数据包从源主机传输到目的主机
  • IPv4:32位地址,约43亿个地址
  • IPv6:128位地址,几乎无限

常用端口号

服务端口号协议
HTTP80TCP
HTTPS443TCP
FTP20/21TCP
SSH22TCP
Telnet23TCP
SMTP25TCP
DNS53UDP/TCP
DHCP67/68UDP
POP3110TCP
IMAP143TCP

2. 物理层与数据链路层

2.1 物理层

物理层功能

  • 为数据端设备提供传送数据的通路
  • 传输数据

物理层特性

  • 机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等
  • 电气特性:指明在接口电缆的各条线上出现的电压的范围
  • 功能特性:指明某条线上出现的某一电平的电压表示何种意义
  • 规程特性:指明对于不同功能的各种可能事件的出现顺序

传输介质

介质类型特点应用场景
双绞线成本低、易安装、抗干扰能力较弱局域网
同轴电缆抗干扰能力强、传输距离远有线电视、早期以太网
光纤带宽大、传输距离远、抗干扰能力强骨干网、长距离传输
无线灵活、无需布线移动网络、WiFi

2.2 数据链路层

数据链路层功能

  • 链路管理:链路的建立、维持和释放
  • 帧定界:确定帧的边界
  • 流量控制:控制发送方的发送速率
  • 差错控制:检测和纠正传输错误
  • 将数据和控制信息区分开
  • 透明传输
  • 寻址

帧格式

帧格式

差错控制

  • 检错编码:奇偶校验码、循环冗余校验(CRC)
  • 纠错编码:海明码

流量控制方法

  • 停止-等待协议:发送一帧后等待确认
  • 滑动窗口协议:连续发送多帧
    • 后退N帧协议(GBN)
    • 选择重传协议(SR)

介质访问控制

  • 信道划分:频分多路复用(FDM)、时分多路复用(TDM)、波分多路复用(WDM)、码分多路复用(CDM)
  • 随机访问:ALOHA、CSMA、CSMA/CD、CSMA/CA
  • 轮询访问:令牌传递

3. 网络层

3.1 网络层功能

网络层主要功能

  • 路由选择与分组转发
  • 异构网络互联
  • 拥塞控制

路由算法分类

  • 静态路由算法
    • 泛洪路由算法
    • 固定路由算法
  • 动态路由算法
    • 距离向量路由算法(RIP)
    • 链路状态路由算法(OSPF)

3.2 IP协议

IPv4地址分类

类别地址范围默认子网掩码用途
A类1.0.0.0 ~ 126.255.255.255255.0.0.0大型网络
B类128.0.0.0 ~ 191.255.255.255255.255.0.0中型网络
C类192.0.0.0 ~ 223.255.255.255255.255.255.0小型网络
D类224.0.0.0 ~ 239.255.255.255-组播
E类240.0.0.0 ~ 255.255.255.255-保留

私有IP地址范围

  • A类:10.0.0.0 ~ 10.255.255.255
  • B类:172.16.0.0 ~ 172.31.255.255
  • C类:192.168.0.0 ~ 192.168.255.255

子网划分: 通过借用主机位来创建子网,子网掩码用于区分网络位和主机位。

CIDR(无类别域间路由): 使用”网络前缀/前缀长度”表示法,如192.168.1.0/24

NAT(网络地址转换): 将私有IP地址转换为公有IP地址,实现内网访问外网。

3.3 路由协议

RIP(路由信息协议)

  • 距离向量路由协议
  • 使用跳数作为度量标准
  • 最大跳数为15
  • 每30秒广播一次路由表

OSPF(开放式最短路径优先)

  • 链路状态路由协议
  • 使用Dijkstra算法计算最短路径
  • 支持区域划分
  • 收敛速度快

BGP(边界网关协议)

  • 外部网关协议
  • 用于自治系统之间的路由
  • 路径向量协议

3.4 ICMP协议

ICMP(互联网控制报文协议)

  • 用于在IP主机、路由器之间传递控制消息
  • 差错报告:目的不可达、超时、参数问题
  • 查询报文:回显请求/应答(Ping)、时间戳请求/应答

常用命令

  • ping:测试网络连通性
  • traceroute:跟踪路由路径

4. 传输层

4.1 TCP协议

TCP特点

  • 面向连接
  • 可靠传输
  • 全双工通信
  • 面向字节流

TCP报文段格式

TCP报文格式

TCP连接管理

三次握手

  1. 客户端发送SYN=1,seq=x
  2. 服务器发送SYN=1,ACK=1,seq=y,ack=x+1
  3. 客户端发送ACK=1,seq=x+1,ack=y+1

四次挥手

  1. 客户端发送FIN=1,seq=u
  2. 服务器发送ACK=1,seq=v,ack=u+1
  3. 服务器发送FIN=1,ACK=1,seq=w,ack=u+1
  4. 客户端发送ACK=1,seq=u+1,ack=w+1

TCP可靠传输机制

  • 序号与确认:每个字节都有编号
  • 超时重传:超时未收到确认则重传
  • 快速重传:收到3个重复ACK立即重传
  • 选择确认(SACK):只重传丢失的报文段

TCP流量控制: 使用滑动窗口机制,接收方通过窗口字段告诉发送方自己的接收缓冲区大小。

TCP拥塞控制

  • 慢开始:拥塞窗口从1开始指数增长
  • 拥塞避免:达到阈值后线性增长
  • 快重传:收到3个重复ACK立即重传
  • 快恢复:不降到慢开始,而是降到新的阈值

4.2 UDP协议

UDP特点

  • 无连接
  • 不可靠传输
  • 开销小
  • 支持一对一、一对多、多对一、多对多通信

UDP报文格式

UDP报文格式

UDP适用场景

  • DNS查询
  • 视频、音频流媒体
  • 在线游戏
  • 实时通信

5. 应用层

5.1 DNS(域名系统)

DNS功能:将域名解析为IP地址。

域名结构: 根域 → 顶级域(.com、.org、.cn) → 二级域 → 子域 → 主机

DNS查询方式

  • 递归查询:DNS服务器代替客户端进行查询
  • 迭代查询:DNS服务器返回下一个应该查询的服务器地址

DNS记录类型

记录类型说明
A主机IP地址
AAAAIPv6地址
CNAME别名
MX邮件交换记录
NS域名服务器
PTR反向解析
SOA起始授权记录

5.2 HTTP协议

HTTP(超文本传输协议)

  • 应用层协议
  • 基于请求-响应模式
  • 无状态协议

HTTP方法

方法说明
GET获取资源
POST提交数据
PUT更新资源
DELETE删除资源
HEAD获取响应头
OPTIONS获取支持的选项

HTTP状态码

状态码说明
1xx信息性状态码
2xx成功状态码(200 OK)
3xx重定向状态码(301、302)
4xx客户端错误(404 Not Found)
5xx服务器错误(500 Internal Server Error)

HTTP/1.1 vs HTTP/2

  • HTTP/1.1:串行请求、队头阻塞
  • HTTP/2:多路复用、头部压缩、服务器推送

HTTPS

  • HTTP + SSL/TLS
  • 提供加密、身份认证、完整性保护

5.3 FTP协议

FTP(文件传输协议)

  • 使用两个连接:控制连接(21端口)和数据连接(20端口)
  • 支持主动模式和被动模式

5.4 电子邮件协议

协议功能端口
SMTP发送邮件25
POP3接收邮件110
IMAP接收邮件,支持在线管理143

5.5 DHCP协议

DHCP(动态主机配置协议)

  • 自动分配IP地址
  • 工作过程:发现(DISCOVER)→ 提供(OFFER)→ 请求(REQUEST)→ 确认(ACK)

6. 网络安全

6.1 网络安全威胁

威胁类型说明
窃听非法获取通信内容
篡改修改传输中的数据
伪造冒充他人身份
拒绝服务(DoS)使系统无法提供服务
中间人攻击在通信双方之间插入攻击者

6.2 加密技术

对称加密

  • 加密和解密使用同一密钥
  • 算法:DES、3DES、AES
  • 优点:速度快
  • 缺点:密钥分发困难

非对称加密

  • 使用公钥和私钥配对
  • 算法:RSA、ECC
  • 优点:密钥分发安全
  • 缺点:速度慢

哈希函数

  • 将任意长度数据映射为固定长度
  • 算法:MD5、SHA-1、SHA-256
  • 特点:单向性、抗碰撞性

数字签名

  • 使用私钥签名,公钥验证
  • 提供身份认证和不可否认性

6.3 安全协议

SSL/TLS

  • 传输层安全协议
  • 提供加密、认证、完整性保护
  • 握手过程协商加密算法和密钥

IPsec

  • 网络层安全协议
  • 提供AH(认证头)和ESP(封装安全载荷)

VPN(虚拟专用网络)

  • 在公共网络上建立加密通道
  • 类型:PPTP、L2TP、IPsec VPN、SSL VPN

6.4 防火墙与入侵检测

防火墙

  • 包过滤防火墙:基于IP地址、端口过滤
  • 状态检测防火墙:跟踪连接状态
  • 应用层防火墙:深度包检测

IDS(入侵检测系统)

  • 检测网络或系统中的恶意活动
  • 类型:基于主机(HIDS)、基于网络(NIDS)

IPS(入侵防御系统)

  • 主动阻止检测到的攻击

7. 网络设备

7.1 物理层设备

设备功能工作层次
中继器信号放大、延长传输距离物理层
集线器(Hub)多端口中继器,广播数据物理层

7.2 数据链路层设备

设备功能工作层次
网桥连接两个局域网,基于MAC地址转发数据链路层
交换机多端口网桥,基于MAC地址转发数据链路层

交换机工作原理

  • 学习:建立MAC地址表
  • 转发/过滤:根据MAC地址表转发数据帧
  • 消除回路:使用生成树协议(STP)

7.3 网络层设备

设备功能工作层次
路由器基于IP地址转发数据包,实现不同网络互联网络层

路由器功能

  • 路由选择
  • 分组转发
  • 网络地址转换(NAT)
  • 防火墙功能

7.4 高层设备

设备功能工作层次
网关协议转换,连接不同体系结构的网络传输层及以上

8. 无线网络

8.1 无线局域网(WLAN)

WiFi标准

标准频段最大速率
802.11b2.4GHz11Mbps
802.11a5GHz54Mbps
802.11g2.4GHz54Mbps
802.11n2.4/5GHz600Mbps
802.11ac5GHz6.93Gbps
802.11ax (WiFi 6)2.4/5GHz9.6Gbps

WiFi安全

  • WEP:已淘汰,不安全
  • WPA:使用TKIP加密
  • WPA2:使用AES加密
  • WPA3:最新安全标准

8.2 移动通信网络

蜂窝网络

  • 1G:模拟语音
  • 2G:数字语音(GSM、CDMA)
  • 3G:移动宽带(WCDMA、CDMA2000、TD-SCDMA)
  • 4G:LTE,全IP网络
  • 5G:高速率、低延迟、大连接

9. 分布式系统

9.1 分布式系统概述

分布式系统定义:由多个独立的计算机组成的系统,这些计算机通过网络进行通信和协调,对用户呈现为一个统一的系统。

分布式系统特征

  • 分布性:计算机分布在不同地理位置
  • 自治性:每台计算机独立运行
  • 透明性:用户无需了解系统的分布性
  • 容错性:部分故障不影响整体

分布式系统优势

  • 资源共享
  • 负载均衡
  • 容错性
  • 可扩展性

9.2 分布式系统的透明性

透明性类型说明
访问透明性本地和远程资源使用相同的访问方式
位置透明性用户无需知道资源的位置
并发透明性多个用户共享资源时互不干扰
复制透明性用户无需知道资源是否被复制
故障透明性用户无需知道故障的发生和恢复
迁移透明性资源可以移动而无需改变名称
性能透明性负载变化时系统可以重新配置
伸缩透明性系统和应用可以扩展而不改变结构

9.3 分布式系统的通信

远程过程调用(RPC)

  • 使远程调用看起来像本地调用
  • 客户端存根(Stub)和服务器存根

消息传递

  • 直接通信:send/receive原语
  • 间接通信:通过信箱(Mailbox)

消息队列

  • 异步通信模式
  • 解耦生产者和消费者

9.4 分布式系统的同步

时钟同步

  • 物理时钟同步:外部同步(UTC)、内部同步
  • 逻辑时钟:Lamport时间戳、向量时钟

互斥

  • 集中式算法
  • 分布式算法(Ricart-Agrawala算法)
  • 令牌环算法

选举算法

  • bully算法
  • 环算法

9.5 分布式系统的容错

故障类型

  • 崩溃故障:进程停止运行
  • 遗漏故障:进程遗漏某些事件
  • 时序故障:进程响应时间超出规定
  • 拜占庭故障:进程任意行为

容错技术

  • 冗余:信息冗余、时间冗余、物理冗余
  • 检查点:定期保存系统状态
  • 事务:原子性、一致性、隔离性、持久性

9.6 分布式文件系统

分布式文件系统特点

  • 文件分布在多个服务器上
  • 用户透明访问
  • 高可用性和可扩展性

典型系统

  • NFS(网络文件系统):Sun公司开发
  • HDFS(Hadoop分布式文件系统):大数据存储
  • GFS(Google文件系统):Google内部使用

9.7 分布式数据库

分布式数据库特点

  • 数据分布在多个节点上
  • 每个节点可以独立处理本地数据
  • 支持全局查询

数据分片

  • 水平分片:按行分割
  • 垂直分片:按列分割
  • 混合分片:水平和垂直结合

数据复制

  • 提高可用性和性能
  • 主从复制、多主复制

9.8 云计算与分布式系统

云计算服务模型

服务模型说明示例
IaaS(基础设施即服务)提供虚拟机、存储、网络AWS EC2、阿里云ECS
PaaS(平台即服务)提供开发平台和工具Google App Engine
SaaS(软件即服务)提供应用软件Office 365、Salesforce

云计算部署模型

  • 公有云
  • 私有云
  • 混合云
  • 社区云

容器技术

  • Docker:容器化平台
  • Kubernetes:容器编排系统

10. 网络新技术

10.1 SDN(软件定义网络)

SDN架构

  • 应用层:网络应用程序
  • 控制层:SDN控制器,集中控制
  • 基础设施层:网络设备(交换机、路由器)

SDN特点

  • 控制平面与数据平面分离
  • 集中式控制
  • 网络可编程

10.2 NFV(网络功能虚拟化)

NFV概念:将网络功能(防火墙、负载均衡等)从专用硬件迁移到通用服务器上运行。

NFV优势

  • 降低设备成本
  • 加快业务部署
  • 提高灵活性

10.3 物联网(IoT)

物联网架构

  • 感知层:传感器、RFID等
  • 网络层:通信网络
  • 应用层:各种应用服务

物联网协议

  • MQTT:轻量级消息协议
  • CoAP:约束应用协议
  • LoRaWAN:低功耗广域网

10.4 边缘计算

边缘计算概念:将计算和数据存储推向网络边缘,靠近数据源。

边缘计算优势

  • 降低延迟
  • 减少带宽消耗
  • 提高隐私性
  • 支持离线运行

11. 考试真题精选

真题1:OSI模型

在OSI参考模型中,(数据链路层)利用通信子网提供的服务实现两个对等实体之间的通信,并为其上层提供服务。

真题2:TCP连接

TCP协议使用(三次握手)机制来建立连接,使用(四次挥手)机制来终止连接。

真题3:子网划分

某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数为(32),每个子网内的最大可分配地址个数为(6)。

解析:248 = 11111000,借用5位作为子网位,2^5=32个子网。主机位3位,2^3-2=6个可用地址。

真题4:路由协议

RIP协议使用(跳数)作为度量标准,OSPF协议使用(链路状态)算法计算最短路径。

真题5:网络安全

在公钥体系中,私钥用于(解密和签名),公钥用于(加密和验证)。

真题6:HTTP协议

HTTP协议工作在(应用层),使用(TCP)协议传输数据,默认端口号为(80)。

真题7:分布式系统

分布式系统的透明性包括(访问透明性、位置透明性、并发透明性、复制透明性、故障透明性、迁移透明性、性能透明性、伸缩透明性)。

真题8:DNS

DNS服务器中,(A记录)用于将域名解析为IPv4地址,(AAAA记录)用于将域名解析为IPv6地址,(CNAME记录)用于创建别名。