前言

建议课后下来多花点时间,不然到了期末这些内容就是依托答辩

第一章 概述

什么是协议和体系结构?

协议(protocol):计算机(节点)通信时对信息内容、信息表示以及交换过程遵循的共同约定

体系结构(architecture):计算机网络非常复杂,一般被分成多个层次,如何分层以及各层采用的协议总和称为体系结构

了解网络应用的两种模型:C/S和P2P模型

客户-服务器C/S(Client-Server)模型:客户方主动发送请求给服务方,请求对方提供相应的服务

P2P(Peer-to-Peer)模型:都是客户方和服务方

什么是资源子网和通信子网?

ARPANET的中概念

资源子网:网络的边缘,提供信息的处理和共享,由运行网络应用程序的主机(端系统)等组成,Internet内容提供者ICP(Internet Content Provider)通过网站(Website)等形式提供内容服务

通信子网:接入网 + 网络的核心,提供信息的传输,由传输媒体(通信线路)以及转发器、集线器、网桥、交换机、路由器等网络互连设备组成

各种网络设备(转发器、集线器、网桥、路由器等)所工作的层次和基本特性

转发器(repeater):物理层互连设备。连接两段电缆,从它连接的电缆上收到的数字信号转发给连接的另一条电缆中

集线器(Hub):物理层互连设备。实际上是一个多口转发器。当从一条线路上接收到信号时,集线器会向其他线路转发,如果多于两个端口同时传输,产生并发送一个冲突存在信号,某个网段出现故障时可以关闭对应的端口。转发器和集线器都:工作在物理层,和MAC协议无关,既无缓冲功能,也无分段功能。通过其连接的网段本质上仍然属于同一个冲突域(在同一个冲突域内,任何两个节点同时传输都会遇到冲突)

网桥:数据链路层的网络互连设备,具体见后面。交换机实际上是一种高性能的多端口网桥,也在数据链路层。

路由器:工作在网络层

了解计算机网络的分类方式:拓扑结构/传输媒体/地理范围等
  • 从拓扑角度:不规则网形(mesh)、星形(树形)、总线形、环形网络

  • 从传输媒体角度:同轴电缆网/双绞线网/光纤网或无线网等

  • 从覆盖范围角度:个人区域网、局域网、城域网、广域网、全球网等

计算机网络的度量:带宽、延迟、RTT和吞吐率,掌握如何计算延迟,如何计算吞吐率等

带宽(Bandwidth):指某个信号具有的频带宽度,即该信号所包含的各种不同频率的范围,单位是赫兹(Hz)。链路允许通过的信号的频带宽度称为该链路的带宽

延迟:指数据从一端传送到另一端所需的时间

  • 处理延迟

  • 排队延迟

  • 传输延迟:数据首到尾,与数据长度有关

  • 传播延迟:点到点,与链路距离有关

往返时间RTT:从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间

吞吐率:单位时间内通过某个链路的实际数据量(bps),

掌握分组交换(报文交换)和电路交换的工作方式,特别是经历的延迟

分组交换 电路交换
资源使用 资源共享,无需连接建立和释放 资源独占使用,需要连接建立和释放过程
路径选择 分组可选择不同的路径,可避开那些不好的路径 在建立电路时决定路径,信息沿着建立好的电路传输
延迟 每个分组进行路由查找,更多处理延迟,可能会有排队延迟 沿着预先路径快速转发
头部开销 更多的头部开销 头部只需要电路号
链路利用率
为什么要采用层次模型?

计算机网络非常复杂,技术更新迭代快。需要把一个复杂的系统分解成多个可管理、好研究、相对独立的层次。

掌握层次模型的封装和解封装

封装:每一层从高层接收数据(SDU),然后添加头部信息封装成新的数据单元(PDU),再把新的数据单元通过服务接口传递给更低层

解封装:每一层从底层接收到数据后,剥离该层协议所添加的头部,同时根据该头部给出的解复用关键字(SAP)将解封装后的数据单元交给更高层

OSI 7层模型,每层大概的功能

由低层到高层——

物理层:如何传输比特
数据链路层:如何在相邻节点间传输帧
网络层:如何在节点间传输(路由)分组
运输层:如何在端系统间发送数据
会话层:如何把分组流联系在一起
表示层:信息表示形式、安全等
应用层:如何实现某种类型的网络应用

Internet的4层模型,与OSI模型的对应

第二章 物理层

传输媒体:了解双绞线、同轴电缆、光纤等导向媒体的基本特性

掌握香农定理和那奎斯特定理的应用

有限带宽为H的无噪声信道:

受噪声干扰的信道:

  • 假设分贝值为x db,则信噪比=10x/1010^{x/10}10x/10

信道的最大数据速率应该受到这两者的制约,取两者的最小值

了解波特率和数据速率的关系

C=Blog2⁡LC=B log_2⁡LC=Blog2​⁡L

  • L为信号可取的离散值的个数(状态数)

掌握NRZ、NRZI、曼彻斯特和差分曼彻斯特编码、4B5B、MLT-3

Clock先低后高

曼彻斯特和差分曼彻斯特编码是Clock分别与NRZ和NRZI异或,NRZ或NRZI为0为Clock,为1则是Clock反转

MLT-3在0时的跳变方向与之前最后的非0位置相反

4B5B编码:4bit转5bit,保证码组的前面没有多于1个“0”,尾部没有多于2个“0”,5bit的码组再用NRZI编码

了解什么是模拟传输和数字传输?放大器和转发器

模拟传输:模拟信号传输的方式,不关心数据信号的内容。放大器会放大噪声信号

数字传输:信道上可以是数字信号也可以是模拟信号,关心数据信号的内容,需要能还原数字数据转发器:恢复为数字数据,然后重新生成相应信号传递

掌握数字调制的3种基本方法:频率、幅度、相位,掌握星座图

A sin⁡( 2πft+φ):幅度A、频率f、相位φ

星座图可表示调制的幅度和相位,有几个点就有几个离散值(L)

了解多路复用技术:FDM、OFDM、TDM、WDM、SDM、CDM
  • 频率多路复用: Frequency Division Multiplexing
  • 正交频分复用: Orthogonal frequency-division multiplexing
  • 波分多路复用: Wavelength Disivion Multiplexing
  • 时分多路复用: Time Division Multiplexing
  • 码分多路复用: Code Division Multiplexing
  • 空分多路复用: Space Division Multiplexing

第三章 数据链路层

帧同步:了解有哪些同步机制,掌握字符填充和比特填充机制

帧同步:帧的起始和结束定位

字符填充:特殊定义的字符SYN(0x7E=01111110)来标识帧的起始和结束位置。但特殊字符可能在数据部分出现:

  • 特殊字符有:SYN(0x7E)/DLE(0x7D
  • 发送方: 如果特殊字符(如SYN, 0x7E)在数据部分出现,在其前面添加DLE(0x7D),同时该字符半加0x20(保证其大于等于0x20,即32):如7E变5E,7D变5D
  • 接收方: 看到DLE(0x7D),去掉DLE,后面的字节半加0x20来恢复原来的数据(逆操作)

比特填充:通过一个特定的比特模式“01111110”来标识帧的起始和结束位置

  • 发送时:帧中的其他字段中如果出现连续5个1,则之后插入一个0
  • 接收时:如果出现连续5个1后跟一个0,则删除0

差错编码:

什么是随机差错和突发差错

随机差错:即随机热噪声,是信道固有的、持续存在的。码元(比特)的差错是独立的,和前后的码元无关

突发差错:即冲击噪声,外界的因素,持续时间短,突发性,是传输中产生差错的主要原因。差错有关,突发长度:突发差错发生的第一个码元到有错的最后一个码元间所有码元的个数。

了解分组码和卷积码的区别,线性分组码的基本概念

分组码:冗余码元仅仅和当前信息码元(当前一组)相关

卷积码:冗余码元和当前以及最近(多组)的信息码元相关

分组:见上定义

线性:信息码元与监督(冗余)码元之间的关系可以用一组线性方程来表示

掌握CRC

  • 比特串与多项式的对应

    有xkx^kxk项,则k位为1(从0开始)

  • 如何进行编码:

    xrK(x)=G(x)•Q(x)+R(x)x^r K(x)=G(x)•Q(x)+R(x)xrK(x)=G(x)•Q(x)+R(x)

    G(x)为生成多项式,k为其最高次,将K(x)和R(x)对应的串拼起来

  • 如何判断出错?

    用收到的拼起来的串除(二进制)以G(x),无余数则无措

  • 差错多项式:怎么判断漏检

    若差错多项式E(x)能被G(x)整除,则不能检测这样的错误

掌握海明码

  • 需要添加多少个冗余位

    2r≥k+r+12^r≥k+r+12r≥k+r+1,r为冗余位,k为信息位

  • 如何构造监督关系式

    全0表示无错,把监督位为1的异或起来

  • 海明距离与检错和纠错能力之间的关系

    海明距离d

    检e个错:d>=e+1

    纠t个错:d>=t+1

了解Internet检验和

头部检验和采用Internet检验和算法

  • 16-bit word反码加法求和后取反码
  • 检验:反码加法后验证是否为全1
  • 途中路由器转发时TTL减1,需要重新计算检验和

例如要发送的 packet 内容是 :E3 4F 23 96 44 27 99 F3 【00 00】 (checksum 字段清零)

将整个序列看成 16 位的整数,一个十六进制数是 4 bits,所以要看成 4 个十六进制数为一个整数。

  • 补码和:E34F + 2396 + 4427 + 99F3 = 1E4FF
  • 反码和:进位的数字加到最低位:E4FF + 1 = E500
  • 取反:checksum = ~(E500) = 1AFF

则填充 checksum 之后发送的 packet 内容变成:E3 4F 23 96 44 27 99 F3 【1A FF】

接收方检测过程:计算包括 checksum 在内的整个 packet 的反码和,再取反。

  • 补码和:E34F + 2396 + 4427 + 99F3 + 1AFF = 1FFFE
  • 反码和:进位的数字加到最低位:FFFE + 1 = FFFF

掌握基本的差错控制方法,怎样处理帧的丢失、失序,ACK帧的丢失等

差错控制方式

  • 自动请求重发ARQ:接收方检测错误,通知发送方重传;双向信道,发送方缓存发送的数据
  • 前向纠错FEC:接收方不仅可以检测错误,而且知道错误的位置;采用纠错码,无需反向信道,无需重发
  • 混合纠错HEC:ARQ和FEC结合(误码率较高时采用ARQ,低时采用FEC)

以下两种协议来具体处理帧的丢失、失序,ACK帧的丢失等

停等协议:性能分析方法

如果收到重复的数据帧,也发送ACK(why?可能是之前的ACK丢失导致的重传)

有没有可能出现重复的ACK?

  • 有些底层信道传输时可能失序,可能重复
  • ACK并没有丢失,虚假超时导致数据帧提早重传,从而发送重复ACK

问题:采用停等协议,数据帧和ACK帧头部的顺序号字段需要多少个比特呢?

  • 发送方只有在收到正确的ACK帧之后才会发送新的帧,只要能够区分是新帧还是重传帧即可

  • 接收方收到的是新帧或重传帧,发送的ACK可能是新的ACK或重复的ACK

  • 顺序号字段只要1个比特即可,采用模2运算,顺序号为0、1、0、1…

信道效率或有效利用率:吞吐率与信道带宽的比率

信道容量B bps;帧长L bit;往返传播延迟2R秒;忽略ACK的开销


滑动窗口协议