课程
计算机网络要点梳理
计算机网络要点梳理
作者:陈浩杰
计网的知识点很碎很杂,很多都要理解整个过程,没办法用简单的言语表达,建议还是刷课后题来的实在。
第一章 计算机网络概述
1.1 计算机网络的基本特点
计算机网络的两个重要基本特点:连通性和共享。
1.2 计算机网络的组成
计算机网络由若干结点和连接这些结点的链路组成。
1.3 网络与互联网的区别
| 术语 | 说明 |
|---|---|
| 网络 | 把主机连接在一起 |
| internet(互连网) | 网络的网络,通过路由器把许多网络连接在一起 |
| Internet(互联网) | 全球最大的、开放的、由众多网络相互连接而成的特定互连网,采用TCP/IP协议簇作为通信的规则 |
1.4 体系结构
四层与五层体系结构的区别与联系
| OSI七层协议 | TCP/IP四层协议 | 五层协议 |
|---|---|---|
| 应用层 | 应用层(TELNET, FTP, SMTP等) | 应用层 |
| 表示层 | ||
| 会话层 | ||
| 运输层 | 运输层(TCP或UDP) | 运输层 |
| 网络层 | 网际层IP | 网络层 |
| 数据链路层 | 网络接口层 | 数据链路层 |
| 物理层 | 物理层 |
1.5 互联网标准化工作
互联网标准化工作的三个阶段:
- 互联网草案
- 建议标准
- 互联网标准
1.6 互联网的组成
| 部分 | 说明 |
|---|---|
| 边缘部分 | 由所有连接在互联网上的主机组成,用于通信和资源共享,用户直接使用 |
| 核心部分 | 由大量网络和连接这些网络的路由器组成,为边缘部分提供服务 |
1.7 通信方式
边缘部分的两种通信方式
- 客户-服务器方式(C/S方式)
- 对等方式(P2P方式)
核心部分的三种交换方式
| 交换方式 | 特点 | 优点 |
|---|---|---|
| 电路交换 | 面向连接,有专属物理通路,经历建立连接、通信、释放连接三个阶段 | 端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高 |
| 报文交换 | 整个报文传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点 | 无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速 |
| 分组交换 | 单个分组传送到相邻结点,存储下来后查找转发表,转发到下一个结点 | 具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生存性能好 |
1.8 计算机网络分类
| 分类方式 | 类型 |
|---|---|
| 按作用范围 | 广域网WAN、城域网MAN、局域网LAN、个人区域网PAN |
| 按使用者 | 公用网、专用网 |
| 接入网络 | 接入网AN(用来把用户接入到互联网的网络) |
1.9 计算机网络性能指标
| 指标 | 说明 |
|---|---|
| 速率 | 数据的传送速率,单位:bit/s |
| 带宽 | 单位时间内某信道能通过的”最高速率”,单位:bit/s |
| 吞吐量 | 单位时间内某网络的实际数据量 |
| 时延 | 见下表详细说明 |
| 时延带宽积 | = 传播时延 × 带宽,又称为以比特为单位的链路长度 |
| 往返时间RTT | 双向交互一次所需的时间 |
| 利用率 | 信道或网络的利用率过高会产生非常大的时延 |
时延的组成
| 时延类型 | 说明 | 计算公式 |
|---|---|---|
| 发送时延 | 主机或路由器发送数据帧所需要的时间 | = 帧长度 / 发送速率 |
| 传播时延 | 电磁波在信道中传播移动距离花费的时间 | = 信道长度 / 传播速率 |
| 处理时延 | 主机或路由器收到分组处理所花费的时间 | - |
| 排队时延 | 分组在路由器的输入队列中排队所产生的时延 | - |
1.10 网络协议三要素
| 要素 | 说明 |
|---|---|
| 语法 | 数据与控制信息的结构或格式 |
| 语义 | 需要发出何种控制信息,完成何种动作及做出何种响应 |
| 同步 | 事件实现顺序的详细说明 |
1.11 实体、协议、服务
| 概念 | 说明 |
|---|---|
| 实体 | 表示任何发送或接收信息的硬件或软件进程 |
| 协议 | 控制两个或多个对等实体进行通信的规则的集合 |
| 服务 | 下层向上层提供的服务 |
- 协议是”水平的”,即协议控制的是对等实体间的通信
- 服务是”垂直的”,即服务是下层向上层通过层间接口提供的
第二章 物理层
2.1 物理层四大特性
| 特性 | 说明 |
|---|---|
| 机械特性 | 指明接口所用的接线器的形状和尺寸、引线数目和排列、固定和锁定装置等 |
| 电气特性 | 指明在接口电缆的各条线上出现的电压的范围 |
| 功能特性 | 指明某条线上出现的某一电平的电压表示何意 |
| 规程特性 | 说明对于不同功能的各种可能事件的出现顺序 |
2.2 基本概念
| 概念 | 说明 |
|---|---|
| 信道 | 一般用来表示向某一个方向传送信息的媒体 |
| 信号 | 数据的电气的或电磁的表现 |
| 信息 | 运送消息的内容 |
| 数据 | 运送消息的实体 |
2.3 信道的三种通信方式
| 通信方式 | 说明 |
|---|---|
| 单向通信(单工通信) | 只能有一个方向的通信而没有反方向的交互 |
| 双向交替通信(半双工通信) | 通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收) |
| 双向同时通信(全双工通信) | 通信的双方可以同时发送和接收信息 |
2.4 基带信号与带通信号
| 信号类型 | 说明 |
|---|---|
| 基带信号 | 来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号 |
| 带通信号 | 经过载波调制后的信号 |
2.5 编码方式
| 编码方式 | 规则 |
|---|---|
| 曼彻斯特编码 | 位周期中心的向上跳变代表0,位周期中心的向下跳变代表1(也可反过来定义) |
| 差分曼彻斯特编码 | 在每一位的中心处始终都有跳变,位开始边界有跳变代表0,位开始边界没有跳变代表1 |
2.6 信道极限容量
奈奎斯特准则
在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
如果信道的频带越宽,也就是能够通过的信号高频分量越多,那么就可以用更高的速率传送码元而不出现码间串扰。
香农公式
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
意义:只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
2.7 传输媒体分类
| 类型 | 说明 |
|---|---|
| 导引型传输媒体 | 依托于各种物理介质进行传输 |
| 非导引型传输媒体 | 大气、空气等,无线传播 |
2.8 信道复用技术
| 复用方式 | 说明 |
|---|---|
| 频分复用FDM | 所有的用户在同样的时间占用不同的带宽资源 |
| 时分复用TDM | 所有的用户在不同的时间占用同样的带宽资源 |
| 波分复用WDM | 是光的频分复用,可以认为是频分复用的一种 |
| 码分复用CDM | 所有的用户在同样的时间使用同样的频带进行通信,由于各用户使用经过特殊挑选的不同码型,各用户之间不会造成干扰(重点) |
2.9 码分复用(重点)
- 每个站被指派一个唯一的 m bit 码片序列
- 如发送比特1,则发送自己的 m bit 码片序列
- 如发送比特0,则发送该码片序列的二进制反码
- 每个站分配的码片序列不仅必须各不相同,并且还必须互相正交
正交的计算:令向量S表示站S的码片向量,令T表示其他任何站的码片向量,则如果正交,有:S·T = 0
2.10 接入技术
- ADSL:电话线接入
- HFC:光纤接入
第三章 数据链路层
3.1 数据链路层三个基本问题
- 封装成帧
- 透明传输
- 差错控制
3.2 PPP协议
帧格式
| 标志 | 地址 | 控制 | 协议 | 信息部分 | FCS | 标志 |
| 7E | FF | 03 | | ≤1500字节 | | 7E |
帧定界
PPP协议中,采用 0x7E(01111110) 作为帧定界符,两个帧定界符之间即为一个帧。
透明传输的两种方法
| 方法 | 说明 |
|---|---|
| 字节填充 | 遇到一个0x7E转变成2字节序列(0x7D, 0x5E),遇到转义字符0x7D则变成0x7D, 0x5D。遇到数值小于0x20的字符,要做相应的改变,如0x03变成0x7D, 0x23 |
| 零比特填充 | 只要发现5个连续的1,立马填入一个0 |
3.3 CRC差错检测
基于循环冗余检验CRC的帧检测序列FCS。
3.4 局域网
局域网:网络为一个单位所有,且地理范围和站点数量均有限。
局域网设备
- 集线器
- 交换机
以太网的两个标准
| 标准 | 说明 |
|---|---|
| DIX Ethernet V2 | 世界上第一个局域网产品(以太网)的规约 |
| IEEE 802.3 | 第一个IEEE的以太网标准 |
3.5 CSMA/CD协议
要点:发前先听,边发边听,冲突停止,等待重发。
CSMA/CD协议的工作流程
-
准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
-
检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
-
在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
- 发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
- 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待512比特时间后,返回到步骤(2),继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。
3.6 二进制指数退避算法
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
算法步骤:
- 基本退避时间取为争用期 2τ
- 从整数集合 [0, 1, …, (2^k - 1)] 中随机地取出一个数,记为 r
- 重传所需的时延就是 r 倍的基本退避时间
- 参数 k 按下面的公式计算:k = Min[重传次数, 10]
- 当 k < 10 时,参数 k 等于重传次数
- 当重传达16次仍不能成功时即丢弃该帧,并向高层报告
3.7 交换机自学习
从一个口收到帧,先把这个帧的源MAC地址和接口记录或更新,查找表项中是否有目的MAC地址:
- 有:直接交付
- 没有:进行广播交付
3.8 MAC帧格式
| 前同步码 | 帧开始定界符 | 目的地址 | 源地址 | 类型 | 数据 | FCS |
| 7字节 | 1字节 | 6字节 | 6字节 | 2字节 | 46~1500字节 | 4字节 |
3.9 以太网参数
| 参数 | 值 |
|---|---|
| 10Mbit/s以太网最小帧长 | 64字节 |
| 帧定界同步码 | 8字节 |
| 帧间最小间隔 | 96比特时间 |
| 争用期 | 512比特时间 |
3.10 以太网升级
低速以太网向高速以太网升级时,帧格式不变,最短有效帧长不变。
3.11 100BASE-T含义
- 100:最大100Mbit/s
- base:基带传输,没有进行调制和频分复用
- T:传输介质是双绞线
- F:光纤
第四章 网络层
4.1 网络层提供的两种服务
| 对比方面 | 虚电路服务 | 数据报服务 |
|---|---|---|
| 思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
| 连接的建立 | 必须有 | 不需要 |
| 终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
| 分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
| 当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
| 分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
| 端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
4.2 虚拟互连网络
虚拟互连网络就是逻辑互连网络,意思就是互连起来的各种物理网络的异构性是客观存在的,但我们利用IP协议就可以使这些性能各异的网络在网络层上看起来是一个统一的网络。
4.3 IP地址分类
| 类别 | 网络号前缀 | 网络号位数 | 说明 |
|---|---|---|---|
| A类 | 0 | 8 | |
| B类 | 10 | 16 | |
| C类 | 110 | 24 | |
| D类 | 1110 | - | 多播 |
| E类 | 1111 | - | 保留未使用 |
4.4 特殊IP地址
| 网络号 | 主机号 | 源地址使用 | 目的地址使用 | 代表的意思 |
|---|---|---|---|---|
| 0 | 0 | 可以 | 不可 | 在本网络上的本主机 |
| 0 | host-id | 可以 | 不可 | 在本网络上的某台主机host-id |
| 全1 | 全1 | 不可 | 可以 | 只在本网络上进行广播(各路由器均不转发) |
| net-id | 全1 | 不可 | 可以 | 对net-id上的所有主机进行广播 |
| 127 | 非全0或全1的任何数 | 可以 | 可以 | 用作本地软件环回测试之用 |
4.5 IP数据报格式
| 0 | 4 | 8 | | 16 | 19 | | 31 |
|----|----|----|----|----|----|----|-----|
| 版本 | 首部长度 | 区分服务 | 总长度 |
| 标识 | 标志 | 片偏移 |
| 生存时间 | 协议 | 首部检验和 |
| 源地址 |
| 目的地址 |
| 可选字段(长度可变) | 填充 |
| 数据部分 |
字段说明:
- 首部长度:一个单位占4个字节
- 总长度:单位为字节
- 标志字段:
- 最低位为MF:=1表示还有分片,=0表示最后一个分片
- 中间一位为DF:=1代表不能分片,=0代表可以分片
- 片偏移:单位为8个字节
- 生存时间:代表可通过路由器的最大跳数
- 协议:代表数据部分的数据采用的协议
- 首部校验和:把首部分为16位的多组,进行反码算术运算,把和再求反码,得到首部校验和
- 可变部分:最大为40字节
4.6 ARP地址解析协议
ARP地址解析协议,用来获取本局域网上IP地址为x的主机的MAC地址。
4.7 划分子网
划分子网的原因
- IP地址空间的利用率有时很低
- 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变差
- 两级的IP地址不够灵活
路由选择
路由时最长前缀匹配,就是多个匹配时,选网络号最长的那个。
4.8 ICMP协议
ICMP报文分类
a) ICMP差错报告报文:
- 终点不可达
- 时间超时(主要看生存时间字段)
- 参数问题
- 改变路由
b) ICMP询问报文:
- 回送请求和回答
- 时间戳请求和回答
PING命令
PING命令是ICMP的一个应用,它使用了ICMP回送请求和回送回答报文,没有通过运输层的TCP或UDP。
不发送ICMP报文的情形
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有多播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
4.9 路由协议
路由协议三要素
- 和谁交换
- 交换什么
- 什么时候交换
RIP协议
- 仅和相邻路由器交换信息
- 交换的信息是当前本路由器所知道的全部信息,即自己的路由表
- 按固定的时间间隔交换路由信息,例如,每隔30秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息
路由算法比较
| 协议 | 算法 |
|---|---|
| RIP | 距离向量算法 |
| OSPF | 链路状态算法 |
路由协议分类
| 类型 | 协议 |
|---|---|
| 内部网关协议 | RIP, OSPF |
| 外部网关协议 | BGP |
4.10 RIP协议更新规则
- 下一跳相同要更新
- 距离变小要更新
- 不变或者变大不更新
4.11 其他协议
- IGMP(网际组管理协议):为了使路由器知道多播组成员的信息
- 隧道技术
- NAT
第五章 运输层
5.1 运输层功能
运输层:实现网络边缘部分的主机与主机的通信。
5.2 端口
端口实现了复用与分用功能。
常用的熟知端口号
| 应用程序 | 熟知端口号 |
|---|---|
| FTP | 21 |
| TELNET | 23 |
| SMTP | 25 |
| DNS | 53 |
| TFTP | 69 |
| HTTP | 80 |
| SNMP | 161 |
| SNMP(trap) | 162 |
| HTTPS | 443 |
5.3 UDP和TCP区别
| 特性 | UDP | TCP |
|---|---|---|
| 连接方式 | 面向无连接 | 面向连接 |
| 交付方式 | 尽最大努力交付 | 可靠交付 |
| 数据传输 | 面向报文 | 面向字节流 |
| 拥塞控制 | 没有 | 有 |
| 通信方式 | 支持多对多 | 只支持一对一 |
5.4 TCP的连接
- 套接字 socket =(IP地址:端口号)
- TCP连接 = {socket1, socket2} = {(IP1:port1), (IP2:port2)}
5.5 数据链路层协议
停止等待协议和连续ARQ协议是数据链路层协议。
5.6 TCP报文段格式
| 0 | 4 | 10 | 16 | | 31 |
|----|----|----|----|----|-----|
| 源端口 | 目的端口 |
| 序号 |
| 确认号 |
| 数据偏移 | 保留 | URG | ACK | PSH | RST | SYN | FIN | 窗口 |
| 检验和 | 紧急指针 |
| 选项(长度可变) | 填充 |
TCP首部字段说明
| 字段 | 说明 |
|---|---|
| 序号 | 指本报文段发送的第一个字节的编号 |
| 确认号 | 期望收到对方下一个报文段的第一个数据字节的序号 |
| 数据偏移 | 其实指首部长度,单位为4字节 |
| URG | =1表示数据紧急,不按照原本的排队顺序,尽快送达此数据,与紧急指针配合使用 |
| ACK | =1时确认号字段才有效 |
| PSH | =1代表立即交付此数据,而不必等接收缓冲区满 |
| RST | =1表示TCP连接出现严重错误,要断开连接 |
| SYN | =1且ACK=0:连接请求报文;SYN=1且ACK=1:连接接受报文 |
| FIN | =1表示要求释放连接 |
| 窗口 | 表示发送方的接收窗口大小,用来让对方调整发送窗口大小 |
| 紧急指针 | URG=1时使用,表示紧急数据结尾在本报文段中的位置,即使窗口为0也可发送紧急数据 |
| 选项 | 最大40字节 |
5.7 TCP可靠传输
- TCP采用累积确认机制
- 滑动窗口:谁先滑动,怎么滑,什么时候滑
5.8 流量控制
流量控制是谁对谁的控制,怎么样控制。
5.9 拥塞控制
拥塞的四个算法:征兆,动作。
5.10 TCP连接管理
三次握手建立连接
客户端 服务器
| |
|------- SYN=1, seq=x -------->|
| |
|<-- SYN=1, ACK=1, seq=y, ack=x+1 --|
| |
|------- ACK=1, seq=x+1, ack=y+1 -->|
| |
| ESTABLISHED | ESTABLISHED
四次握手释放连接
客户端 服务器
| |
| ESTABLISHED | ESTABLISHED
| |
|------- FIN=1, seq=u -------->|
| |
|<------- ACK=1, ack=u+1 ------|
| |
| FIN-WAIT-1 | CLOSE-WAIT
| |
| FIN-WAIT-2 |
| |
|<------- FIN=1, seq=w ---------|
| |
|------- ACK=1, ack=w+1 ------>|
| |
| TIME-WAIT | LAST-ACK
| |
| 等待2MSL | CLOSED
| |
| CLOSED |
第六章 应用层
6.1 域名系统DNS
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名结构
域名是成树状组织,从根到顶级域名到各级域名。
域名服务器分类
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
DNS查询方式
| 查询方式 | 说明 |
|---|---|
| 递归查询 | 主机向本地域名服务器查询采用递归查询。递归查询就是a问b,b去问c |
| 迭代查询 | 本地域名服务器向根域名服务器的查询采用迭代查询。迭代查询就是a问b,b说c知道,a再去问c |
6.2 FTP协议
FTP分为控制进程和数据传送进程。
工作过程:
- 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
- 接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
注意:FTP在运输层使用了TCP协议。
6.3 TELNET
TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。(了解,不用记)
6.4 万维网WWW
URL统一资源定位符
格式:<协议>://<主机>:<端口>/<路径>
HTTP协议
HTTP是基于TCP的。
浏览器访问网页的过程:
- 浏览器分析超链指向页面的URL
- 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址
- 域名系统DNS解析出清华大学服务器的IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令:GET /chn/yxsz/index.htm
- 服务器给出响应,把文件index.htm发给浏览器
- TCP连接释放
- 浏览器显示”清华大学院系设置”文件index.htm中的所有文本
Cookie技术
Cookie技术可以让站点来标记跟踪用户。
6.5 搜索引擎
搜索引擎分为:
- 全文检索搜索
- 分类目录搜索
6.6 电子邮件
邮件协议
| 协议 | 用途 |
|---|---|
| SMTP | 发送电子邮件 |
| POP3 | 接收电子邮件 |
| IMAP | 接收电子邮件 |
电子邮件组成
电子邮件由信封和内容两部分组成。
地址格式:收件人邮箱名@邮箱所在主机的域名
邮件内容首部
| 字段 | 说明 |
|---|---|
| To: | 填入一个或多个收件人的电子邮件地址 |
| Subject: | 邮件的主题,反映了邮件的主要内容,便于用户查找邮件 |
| Cc: | 表示应给某某人发送一个邮件副本 |
| From | 发信人的电子邮件地址 |
| Date | 发信日期 |
| Reply-To | 对方回信所用的地址 |
基于万维网的电子邮件
- 电子邮件从A发送到网易邮件服务器使用HTTP协议
- 两个邮件服务器之间的传送使用SMTP
- 邮件从新浪邮件服务器传送到B是使用HTTP协议
万维网电子邮件的好处:只要能够找到上网的计算机,打开任何一种浏览器就可以非常方便地收发电子邮件。
附录:应用层协议与运输层协议关系
| 应用层协议 | 运输层协议 |
|---|---|
| BGP | TCP |
| FTP | TCP |
| TELNET | TCP |
| HTTP | TCP |
| SMTP | TCP |
| SNMP | UDP |
| TFTP | UDP |
| DNS | UDP/TCP |
| RIP | UDP |
| BOOTP | UDP |
| DHCP | UDP |
本文档整理自陈浩杰同学的计算机网络要点梳理,供复习参考使用。













