Computer Network
概述
- 组成部分:
- 硬件
- 软件
- 协议
- 工作方式:
- 边缘部分
- 核心部分
- 功能组成
- 通信子网:实现 数据通信
各种传输介质、通信设备、相应的网络协议组成。- 网络层:路由器
- 数据链路层:交换机、网桥
- 物理层:集线器、中继器
- 资源子网:实现 资源共享/数据处理
实现资源共享功能的设备和软件的集合。- 应用层、表示层、会话层
- 通信子网:实现 数据通信
- 计算机网络的分类
- 按分布范围分:广域网WAN、城域网MAN、局域网LAN、个人局域网PAN
- 按使用者分:公用网(中国电信)、专用网(军队、政府)
- 按交换技术分:电路交换、报文交换、分组交换
- 按拓扑结构分:总线型、星型、环型、网状型
- 按传输技术分:
- 广播式网络:共享公共通信信道
- 点对点网络:使用 分组存储转发&路由选择 机制
计算机网络的性能指标
- 速率 / 数据率 / 数据传输率 / 比特率
- 链接在计算机网络上的主机在数字信道上传送数据位数的速率
- 速率单位:bit/s、kbit/s、Mbit/s、Gbit/s、Tbit/s(bit可进一步简写为b)
- 存储容量通常不以 bit 为单位,而采用 Byte 为单位(1024b = 1B)
- 带宽 bandwidth
- 在计算机网络中,表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“_最高数据率_”。(原指某个信号具有的频带宽度,即最高频率&最低频率之差,单位是Hz)
- 单位:b/s、kb/s、Mb/s、Gb/s...
- 吞吐量 throughput
- 表示在单位时间内通过某个网络(或信道、接口)的数据量
- 单位:b/s、kb/s、Mb/s...
- 吞吐量受网络的带宽 or 网络的额定速率的影响。
- 时延 delay / latency
- 指数据(报文、分组、比特流)从一个网络的一端传送到另一端所需要的时间。
- 单位:s
- 总时延 = 发送时延 + 传播时延 + 排队时延 + 处理时延
- 发送时延 transmission delay
- 传播时延 propajgation delay
- 排队时延 nodal proccessing delay
- 处理时延 queueting delay
- 时延带宽积
- 传播时延(s) × 带宽(bit/s)
- 单位:bit
- 时延带宽积又称为 以比特为单位的链路长度,即”某段链路中现在有多少比特“(链路容量bit)
- 往返时间 RTT, Round-trip Time
- 从发送端发送数据开始,到发送方收到来自接收方的确认,总共经历的时延
- 单位:s
- RTT = 往返传播时延 + 末端处理时间
- 往返传播时延 = 传播时延 × 2
- 利用率
- 信道利用率 = 有数据通过的时间 / 总时间(有/无数据通过时间)
- 网络利用率 = 信道利用率的加权平均值
网络体系结构中的一些术语
- 实体: 任何可以发送或接收信息的硬件或软件进程。
- 对等实体: 不同机器上位于同一层次,完成相同功能的实体。
- 协议: 对等实体之间交换数据或通信时所必须遵守的规则或标准集合。
- 服务: 在网络分层结构模型中,_每一层为相邻的上一层所提供的功能_。
- 接口,服务访问点SAP:在同一系统中,相邻两层的实体进行交互的地方,是 _上层使用下层服务的入口_。
- 服务数据单元 SDU, Service Data Unit :第n层待处理的数据单元
- 协议数据单元 PDU, Protocal Data Unit :通常是将SDU分成若干段,每段加上报头,作为单独PDU在水平方向上传送
- 接口数据单元 IDU, Interface Data Unit :在相邻层接口间传送的数据单元
物理层
- 物理层解决如何在连接计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
- 物理层的主要任务:确定与传输媒体接口有关的一些特性。---> 定义标准
- 机械特性
- 电器特性
- 功能特性
- 规程特性
数据通信基础
通信的目的是传送消息
数据:传送信息的实体,通常是有意义的符号序列。
信号:数据的电气/电磁表现,是数据在传输过程中的存在形式。
- 数字信号,离散
- 模拟信号,连续
信源:产生和发送数据的源头
信宿:接收数据的终点
信道:信号传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道&一条接收信道。
- 按传输信号分:模拟信道 & 数字信道
- 按传输介质分:无线信道 & 有线信道
两种数据传输方式:
- 串行传输:速度慢,费用低,适合远距离
- 并行传输:速度快,费用高,适合近距离
从通信双方的交互方式看,可以有三种基本通信方式:
- 单工通信 simplex
- 一条信道
- 发送端仅发送,接收端仅接收(e.g. 收音机、电视、广播)
- 半双工通信 half duplex
- 两条信道
- 每一端都具有发送和接收装置,同一时刻仅能发送or接收(e.g. 对讲机)
- 全双工通信 full duplex
- 两条信道
- 同一设备,同一时刻,可同时接收and发送(e.g. 手机电话)
- 单工通信 simplex
奈氏准则 & 香农定理
码元:用一个 固定时长 的 _信号波形/数字脉冲_,代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个固定时长内的信号称为 k进制码元。而这个固定时长称为 码元宽度。一个码元可以携带多个bit的信息。
假设码元宽度相等,则 二进制码元&四进制码元 对应的 波形和传输的bit如下:(用不同字母表示不同波形) 二进制码元 --- 波形 --- bit流 0 --- A --- 0 1 --- B --- 1 如果二进制码元为:10100011 ,则对应的波形为:BABAAABB ,传输的比特流为:10100011 可见 1 个二进制码元携带有 1 位二进制信息。 四进制码元 --- 波形 --- bit流 0 --- a --- 00 1 --- b --- 01 2 --- c --- 10 3 --- d --- 11 如果四进制码元为:01232211 ,则对应的波形为:abcdccbb ,传输的比特流为:0001101110100101 可见 1 个四进制码元携带有 2 位二进制信息。
速率,也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用 码元传输速率 & 信息传输速率 表示。
- 码元传输速率
- 别名 信号传输率 、码元速率、波形速率、调制速率、符号速率等
- 表示单位时间内数字通信系统所传输的码元个数(即 脉冲个数or波形信号变化的次数)
- 单位:波特 Baud( 1 Baud 表示数字通信系统每秒传输一个码元)
- 信息传输速率
- 别名 数据传输率 、信息速率、比特率等
- 表示单位时间内数字通信系统传输的二进制码元个数(即 比特数)
- 单位:bit/s
假设 二进制码元 & 四进制码元 的码元宽度都为 T,则 码元传输速率 B2 = 1/T (Baud); 信息传输速率 R2 = 1 × B2 (bit/s) 码元传输速率 B4 = 1/T (Baud); 信息传输速率 R4 = 2 × B4 (bit/s) 因为 1 个四进制码元携带有 2 位二进制信息,而 1 个二进制码元携带有 1 位二进制信息,所以在码元宽度相同(即 码元传输速率相同)时,四进制码元的信息传输速率是二进制码元的 2 倍。 同理,四进制码元的信息传输速率是是二进制码元的 log2 (k) 倍。
- 码元传输速率
影响失真程度的因素:
- 码元传输速率
- 信号传输距离(信号衰减&干扰)
- 噪声干扰
- 传输媒体质量
奈氏准则 Nyquist
- 在理想低通(无噪声、宽带受限)条件下,为了避免码间串扰(下式中 H 为信道带宽,单位:Hz)
- 极限码元/信号传输速率B = 2 × H (Baud)
- 极限信息/数据传输速率C = 2 × H × log2(K) (bit/s)
- 在理想低通(无噪声、宽带受限)条件下,为了避免码间串扰(下式中 H 为信道带宽,单位:Hz)
香农定理
- 噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误,但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比 就很重要。
- 信噪比 = 信号的平均功率S / 噪声的平均功率N (单位:分贝dB),即 信噪比(dB) = 10 × log10 (S/N) 。(数值等价)
- 香农定理,就是在 带宽受限&有噪声 的信道中,为了不产生误差,信息的数据传输速率有上限值
- 极限信息/数据传输速率C = H × log2 (1+S/N) (bit/s)
应该同时考虑 奈氏准则&香农定理 的情况下(既有 编码规则,也有 信噪比),最小的极限信息/数据传输速率,才是实际的最大信息传输速率。
数据编码技术
信道上传输的信号:
- 基带信号:
- 将数字信号 0 和 1 直接用两种不同的电压表示,再送到 数字信道 上去传输。(基带传输)
- 来自信源的信号。
- 适用于近距离传输。
- 宽带信号:
- 将基带信号进行调制后形成的频分复用模拟信号,再传送到 模拟信道 上去传输。(宽带传输)
- 把基带信号经过 载波调制 后,把信号的频率范围搬移到较高频段以便在信道中传输。
- 在任何信道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的判决(即识别)成为不可能。(即 仅在一定频率范围内能够通过信道。)
- 适用于远距离传输。
- 编码 & 调制
- 编码:数据 ---> 数字信号
- 调制:数据 ---> 模拟信号
数字数据 编码为 数字信号
- 不归零码 NRZ, Non-Return to Zero
- 高 1 低 0 (即每个码元中间是取样时间,高电压表示 1 ,低电压表示 0 )
- 单极性不归零码,无电压为 0 ,有恒定正电压为 1 (判决门限为 0.5,高于0.5表示 1,低于0.5表示0)
- 双极性不归零码,有恒定负电压为 0, 恒定正电压为 1 (判决门限为 0,高于0表示 1,低于0表示0)
- 没有检错功能,且无法判断一个码元的开始和结束(即 不具备自动同步机制)。为了保证收发双方同步,必须使用另一个信道同时发送同步时钟信号(使用外部同步)
- 归零码
- 信号电平在一个码元的时间之内都要恢复到 0 。(发送的都是窄脉冲,发完后会会归到 0 电平)
- 单极性不归零码
- 双极性不归零码
- 反向不归零编码 NRZI
- 信号电平翻转表示 0 ,信号电平不变表示 1 。
- 曼彻斯特编码 Manchester
- 在基带数字信号的每一位码元中间(1/2周期处)有一跳变,该跳变既做 时钟信号 ,也做 数据信号。
- 时钟信号,用于收发双发的时钟同步信号,使接收方可以分辨码元
- 数据信号,高到低的跳变表示 1 ,低到高的跳变表示 0 。(也可采用相反的规定)
- 因为每个码元都被调成 2 个电平,所以,数据传输速率只有调制速率的 1/2。
- 差分曼彻斯特编码 Different Manchester
- 每个码元中间都有一个跳变,
- 时钟信号,每个码元中间的跳变作为时钟信号,用于同步。
- 数据信号,两个码元之间有无电平跳变作为数据信号。(有跳变表示 0 ,无跳变表示 1)
- 抗干扰性强于 Manchester Encoding。
- 4B/5B编码
- 比特流中插入额外的比特以打破一连串的 0 或 1,就是用 5 个比特来编码 4 个比特的数据,之后再传给接收方,因此称为 4B/5B 。编码效率为 80% 。
数字数据 调制为 模拟信号
- 调幅
- 调频
- 调相
- 调幅 + 调相 (QAM)
模拟数据 编码为 数字信号
- 脉冲编码调制 PCM, Pulse Code Modulation
- 采样(香农采样定理):每隔一定时间采集模拟信号的值,得到模拟值
- 量化:模拟指 ---> 离散值
- 编码:离散值 ---> 二进制编码
模拟数据 调制为 模拟信号
物理层传输介质
- 导向性传输介质 / 有线介质
- 双绞线
- 屏蔽双绞线 STP
- 非屏蔽双绞线 UTP
- 同轴电缆
- 光纤
- 多模光纤
- 多模光纤
- 双绞线
- 非导向性传输介质 / 无线介质
- 无线电波:信号向所有方向传播
- 微波:信号固定方向传播
- 地面微波接力通信
- 卫星通信
- 红外线,激光:信号固定方向传播
物理层设备
- 由于存在损耗,在线路上传播的信号功率会逐渐衰减;
- 衰减到一定程度时将造成信号失真,因此会导致接受错误;
- 信号衰减限制了每种传输介质的传输距离。
- 中继器
- 又称 重发器。
- 对物理信号进行 放大&再生 的功能。
- 集线器
- 又称 多端口中继器。
- 对接收到的信号进行再生放大。
数据链路层
结点:主机、路由器
链路:网络中两个结点之间的 物理通道 ,链路的传输介质主要有双绞线、光纤、微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的 逻辑通道 ,把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路。
帧:数据链路层的协议数据单元,封装网络层数据。
数据链路层在物理层的基础上向网络层提供服务,其最基本的服务是将源自网络层的数据可靠地传输到相邻节点的目标机网络层。
其主要作用是 加强物理层传输原始比特流的功能 ,将物理层提供的可能出错的物理连接改造成为 逻辑上无差错的数据链路 ,使之对网络层表现为一条无差错的链路。
- 为网络层提供服务。(无确认无连接服务、有确认无连接服务、有确认有连接服务)
- 链路管理,即链路的建立、维持、释放
- 组帧
- 流量控制(限制发送方)
- 差错控制(帧错、位错)
组装成帧 & 透明传输
- 字节计数法 (首字节表示帧大小)
- 字符填充法 (发送法加ESC转义,接收方去除ESC转义)
- 比特填充法 (发送方填充特殊比特,接收方去除特殊比特)
- 违规编码法 (编码规则之外的电平信号作为帧的起止标志,如:曼彻斯特编码中只定义了 高-低,低-高,而没有定义 高-高,低-低)
差错控制
- 差错产生的原因:传输中的差错是由于噪声引起的。
- 全局性:由于线路本身电气特性所产生的 _随机噪声(热噪声)_,是信道固有的,随机存在的。(解决办法:提高信噪比来减少或避免干扰)
- 局部性:外界特定的短暂原因所造成 冲击噪声 ,是产生错错的主要原因。(解决办法:通常利用编码技术来解决)
- 差错:
- 位错:比特位出错,0变成1,1变成0。
- 帧错:
- 丢失 1 3
- 重复 1 2 2 3
- 失序 1 3 2
- 位错的差错控制
- 检错编码
- 奇偶校验码("校验元 + 信息元",通过添加校验元使得整个帧的数据部分中bit 1 的个数为 奇/偶数)
- 循环冗余码 CRC(发送方将 数据+冗余码的结果 发送,接收方以相同的生成多项式进行检验)
- 纠错编码
- 海明码(发现双比特错,纠正单比特错)
- 检错编码
- 物理层编码&数据链路层编码的区别:
- 物理层的编码&调制:针对 单个比特_,解决传输过程中比特的 _同步问题 ,如 Manchester Encoding。
- 数据链路层的编码:针对的是 一组比特_,通过 _冗余码技术 实现一组二进制比特串在传输过程中是否出现了差错。
流量控制 & 可靠传输机制
较高的发送速度 & 较低的接收能力 的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层&传输层流量控制的区别:
- 数据链路层的流量控制是 点对点 ,传输层的流量控制是 端到端 的。
- 数据链路层的流量控制手段:_接收方收不下就不回复确认_;传输层流量控制的手段:接收端给发送端一个 窗口公告 。
流量控制的手段
- 停止-等待协议 (发送窗口大小=1;接收窗口大小=1 )
- 滑动窗口协议:
- 后退 N 帧协议 GBN(发送窗口大小>1;接收窗口大小=1 )
- 选择重传协议 SR(发送窗口大小>1;接收窗口大小>1 )
可靠传输:发送端发啥,接收端收啥
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。
滑动窗口 解决的问题:
- 流量控制(收不下就不给确认)
- 可靠传输(发送方超时自动重传)
停止-等待协议
- 有差错情况
滑动窗口协议:
- 发送窗口:发送方维持的一组连续的允许发送的帧的序号
- 接收窗口:接收方维持的一组连续的允许接收的帧的序号
- 后退N帧协议 GBN
- 累计确认(接收方确认收到的帧号最大的帧,表示之前的帧全部收到)
- 超时重传
- 选择重传协议 SR, Selective Repeat
- 设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。(发送方只需要重传出错的帧)
信道利用率
信道吞吐率
信道划分 & 介质访问控制
-
- 两个相邻节点通过一个链路相连,没有第三者
- 应用:PPP协议,常用于 广域网
广播式链路
- 所有主机共享通信介质
- 应用:早期的总线以太网、无线局域网,常用于 局域网
介质访问控制:采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
- 静态划分信道(预先分配好信道,避免冲突)
- 信道划分介质访问控制
- 频分多路复用 FDM
- 时分多路复用 TDM
- 波分多路复用 WDM
- 码分多路复用 CDM
- 信道划分介质访问控制
- 动态划分信道 / 动态媒体接入控制 / 多点接入(信道并非实在用户通信时固定分配给用户的)
- 轮询访问介质访问控制
- 轮询协议
- 令牌传递协议
- 随机访问介质访问控制(只有这个可能存在冲突)
- ALOHA 协议
- CSMA 协议(如果一个主机要发送消息,那么它先监听信道)
- CSMA/CD 协议(碰撞检测,用于总线式以太网)
- CSMA/CA 协议(碰撞避免,用于无线局域网)
- 轮询访问介质访问控制
- 静态划分信道(预先分配好信道,避免冲突)
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
多路复用技术:
- 把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
- 把一条广播信道,逻辑上分成用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
码分多址 是CDM 的一种实现。
载波监听多路访问协议 CSMA, Carrier Sense Multiple Access
- CS,载波侦听/监听:每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。(当几个站同时在总线上发送数据时,总线上 信号电压摆动值 将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定 门限值 时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。)
- MA,多点接入:表示许多计算机以多点接入的方式连接在一根总线上。
- 1-坚持 CSMA :信道忙,则一直监听,直到空闲马上传输
- 非坚持 CSMA :信道忙,则等待一个随机时间之后再进行监听
- p-坚持 CSMA :信道空闲,则以 p 概率传输,不必等待;概率 1-p 等待到下一个时间槽再传输。信道忙,则等待一个随机时间后再监听。(但是发生冲突后还是坚持把数据帧发完,造成了浪费)
载波监听多点接入/碰撞检测 CSMA/CD, Carrier Sense Multiple Access with Conllision Detection
- CD, 碰撞检测/冲突检测:“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
- 因为电磁波在总线上总是以有限的速率传播的,所以可能暂时没检测到信号,但总线上已存在信号。
- 传播时延对载波监听的影响?截断二进制指数规避算法
- 最小帧长问题?
- 帧的传输时延至少要两倍于信号在总线中的传播时延。
- 帧长(bit) / 数据传输速率 >= 2×传播时延 ===> 最小帧长 = 数据传输速率 × 2 × 总线传播时延
- 以太网规定,最短帧长为 64B,凡是长度小于 64B 都是由于冲突而异常终止的无效帧。
载波监听多点接入/碰撞避免 CSMA/CA, Carrier Sense Multiple Access with Conllision Avoidance
- 用于 无线局域网。
令牌传递协议
- 令牌:一个特殊格式的 MAC 控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。
局域网
局域网 LAN, Local Area Network :是指在某一区域内由多台计算机互联成的计算机组,使用 广播信道
- 覆盖的地理范围较小。
- 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输率高(10Mb/s ~ 10Gb/s)。
- 通信延迟时间短,误码率低,可靠性高。
- 各站为平等关系,共享传输信道。
- 多采用分布式控制和广播式信道,能进行广播和组播。
局域网覆盖的网络体系结构层次:物理层、数据链路层。
局域网拓扑结构:
- 总线型拓扑
- 星型拓扑
- 环形拓扑
- 树形拓扑
局域网传输介质:
- 有线局域网:双绞线、同轴电缆、光纤
- 无线局域网:电磁波
局域网介质访问控制方法:
- CSMA/CD ,常用于 总线型局域网,也用于 树形网络
- 令牌总线,常用于 总线型局域网,也用玉 树形网络
- 令牌欢, 常用于 环形局域网
局域网的分类:
- 以太网:应用最广泛的局域网,符合 IEEE802.3 系列标准规范。(逻辑拓扑总线型,物理拓扑星型)
- 令牌环网:采用 IEEE802.5 标准。(逻辑拓扑环形,物理拓扑星型)
- FDDI 网,Fiber Distributed Data Interface:采用 IEEE802.8 标准。(逻辑拓扑环形,物理拓扑双环形)
- ATM 网, Asynchronous Transfer Mode(较新型的单元交换技术,使用53Byte固定长度的单元进行交换)
- 无线局域网,WLAN, Wireless Local Area Network:采用 IEEE802.11 标准。
数据链路层的两个子层:
- LLC 子层
- MAC 子层
以太网
- 以太网使用 CSMA/CD(载波监听多路访问及冲突检测) 技术。
- 以太网在局域网各种技术中占统治地位:
- 造假低廉(以太网网卡不到¥100)。
- 应用最广泛的局域网技术。
- 满足网络速率要求:10Mb/s ~ 10Gb/s。
- 以太网提供无链接、不可靠的服务:
- 无链接:发送方&接收方 之间无“握手过程”。
- 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
- 10BASE-T 以太网
- 传送 基带信号 的双绞线以太网,T 表示采用双绞线,现 10BASE-T 采用的是无屏蔽双绞线UTP,传输速率是 10Mb/s 。
- 逻辑拓扑总线型,物理拓扑星型,每段双绞线最长为 100m 。
- 采用 曼彻斯特编码 。
- 采用 CSMA/CD 介质访问控制。
- 适配器 & MAC地址:
- 计算机与外界局域网的连接是通过 通信适配器 的。
- 网络接口板、网络接口卡 NIC, Network Interface Card
- 适配器上装有处理器和存储器(RAM和ROM),ROM 上有计算机硬件地址 MAC地址。
- 在局域网中,硬件地址又称为物理地址,或 MAC地址
- 每个适配器有一个全球唯一的 48位 二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用12个十六进制数表示。
- 最常用的 MAC帧 是 以太网V2 的格式。
- 以太网的最小帧长是 64B。---> 数据部分最少为 64B -18B = 46B
- 因为以太网使用的 Manchester Encoding ,每个码元有两个电平,当帧发送结束时,电平就不再变化,进而判断帧发送结束,所以MAC帧可以省略帧尾。
- “前同步码(同步时钟)+帧开始定界符”(8B) + 目的MAC(6B) + 源MAC(6B) + 数据类型标识(2B) + 数据(46B ~ 1500B/MTU) + FCS(4B)
无线局域网
- IEEE802.11 是 WLAN 通用的标准,它是由 IEEE 所定义的无线网络通信的标准。
- 其中,IEEE802.11b 和 IEEE802.11g 是 WiFi 的标准。
- 802.11 的 MAC帧头格式:
- 帧控制(2B) + 生存周期ID(2B) + RA地址(6B) + TA地址(6B) + DA地址(6B) + 序列控制(2B) + SA地址(6B)
- 无线局域网分类:
- 有固定基础设施的 WLAN
- 无固定基础设施 WLAN 的自组织网络
广域网
- 广域网 WAN, Wide Area Network:通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,能连接多个城市或国家,或横跨几个洲,并能提供远距离通信,形成国际性的远程网络。
- WAN 的通信子网主要使用 分组交换技术
- WAN 的通信子网可以利用公用分组交换网、卫星通信网、无线分组交换网,将分布在不同地区的局域网或计算机互连起来,达到资源共享的目的。
- 因特网(Internet)是世界范围内最大的广域网。
- 广域网覆盖的网络体系结构层次:物理层、数据链路层、网路层。
PPP协议
- 点对点协议 PPP, Point-to-Point Protocol :是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用 PPP 协议。
- 只支持 全双工链路
- PPP 协议的三个组成部分:
- 一个将 IP数据报 封装到串行链路(同步串行/异步串行)的方法。
- 链路控制协议 LCP :建立并维护数据链路连接。(身份验证)
- 网络控制协议 NCP :PPP 可支持多种网络层协议,每个不同的网络层协议都要一个相应的 NCP 来配置,为网络层协议建立和配置逻辑连接。
HDLC协议
链路层设备
物理层扩展以太网:
- 光纤
- 主干集线器
链路层扩展以太网:
- 网桥
- 交换机
网桥:根据 MAC帧 的目的地址对帧进行 转发 和 过滤 。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即 过滤)。
- 透明网桥:“透明”是指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备 —— 自学习。
- 源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。(方法:源站以广播方式向欲通信的目的站发送一个发现帧)
交换机, 又称 多接口网桥。独占传输媒体带宽。
- 直通式交换机:查完目的地址就立刻转发。(延迟小,可靠性低,无法支持具有不同速率的端口的交换)
- 存储转发式交换机:将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。(延迟大,可靠性高,可以支持具有不同速率的端口的转发)
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。(同一时间,同一冲突域中,只能有一台设备发送信息的范围)
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。(如果站点发出一个广播信号,所有能接收到这个信号的设备范围成为一个广播域)
网络层
- 网络层的主要任务:把 分组 从源端传到目的端,为分组交换网上的不同主机提供通信服务。
- 网络层的传输单位是:数据报
- 网络层的功能:
- 路由选择 & 分组转发。(最佳路径)
- 异构网络互联
- 拥塞控制(开环控制、闭环控制)
- 数据交换方式:
- 电路交换 circuit switching(建立连接 -> 独占资源通信 -> 释放连接。e.g. 电话网络)
- 报文交换 message switching(报文:源应用发送的信息整体)
- 分组交换 packet switching (分组:把大的数据快分割成小的数据块)
- 数据报方式:为网络层提供 无链接服务 (不事先为分组的传输确定传播路径,每个分组独立确定传输路径,不同分组传播路径可能不同)
- 虚电路方式:为网络层提供 连接服务 (首先为分组的传输确定路径(即 建立连接),然后沿该路径(即 连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接)
- IP 数据报格式
- 最大传送单元 MTU :数据链路层的数据帧可封装数据的上限。(以太网的 MTU 是 1500B )
- IP 编址的历史阶段:
- 分类的 IP 地址
- 子网的划分
- 构成超网(无分类编址方式)
- 网络地址转换 NAT, Network Address Translation :在 专用网 连接到 因特网 的路由器上安装 NAT 软件,安装了 NAT 软件的路由器叫做 NAT路由器 ,它至少有一个有效的 外部全球 IP 地址 。
- 子网划分 & 子网掩码(网路号 + 子网号 + 主机号 e.g. 192.168.0.1 & 255.255.255.0)
- 无分类编址 CIDR (网络前缀 + 主机号 e.g. 192.168.0.1/24)
- 构成超网 :将多个子网聚合成一个较大的子网,叫做构成超网,或 路由聚合 。(方法:将网络前缀缩短)
- 使用 CIDR 时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。(前缀越长,地址块越小,路由越具体。)
重要协议
- ARP 协议
- DHCP 协议(动态主机配置协议,应用层协议)
- ICMP 协议(网际控制报文协议)
- ICMP 差错报告报文
- ICMP
- IP 数据报的三种传输方式:
- 单播
- 用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址
- 是一种 点对点 传输方式
- 广播
- 是指发送数据包到同一个广播域或子网内的所有设备的一种数据传输方式。
- 是一种 点对多点 的传输方式
- 组播/多播
- 当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发
- 是一种 点对多点 的传输方式。
- 单播
路由算法
- 路由算法:
- 静态路由算法/非自适应路由算法
- 管理员手工配置路由信息。
- 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛应用于高度安全性的军事网络和较小的商业网络。
- 路由更新慢,不适用大型网络。
- 动态路由算法/自适应路由算法
- 路由器间彼此交换信息,按照路由算法优化出路由表项。
- 路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
- 算法复杂,增加网络负担。
- 静态路由算法/非自适应路由算法
- 动态路由算法分类:
- 全局性:链路状态路由算法 OSPF
- 所有路由器掌握完整的网络拓扑和链路费用
- 分散性:距离向量路由算法 RIP
- 路由器只掌握物理相连的邻居及链路费用
- 全局性:链路状态路由算法 OSPF
- 自治系统 AS
- 在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议 & 共同的度量一确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由协议以确定在 AS 之间的路由。
- 一个 AS 内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
- 分层次的路由选择协议
- 内部网关协议 IGP :一个 AS 内使用的 RIP、OSPF
- 外部网关协议 EGP :AS 之间使用的 BGP
路由选择协议
- 内部网关协议:
- RIP 协议
- OSPF 协议
- 外部网关协议
- BGP
IPv6
- BGP
- 从根本上解决 IP 地址耗尽问题
- 改进首部格式
- 快速处理、转发数据报
- 支持 QoS (QoS, Quality of Service,服务质量 :指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。)
- IPv6 向 IPv4 过度的策略:
- 双协议栈
- 隧道技术
移动 IP
移动 IP 技术 是移动节点(计算机/服务器等)以 固定的网络IP地址 ,实现跨越不同网段的 漫游 功能,并保证基于网络IP的网络权限在漫游过程中不会发生任何改变。
- 移动结点 :具有永久IP地址的 移动设备。
- 归属代理/本地代理 :一个移动结点拥有的“居所”称为 归属网络 ,在归属网络中代表移动节点执行移动管理功能的实体叫做 归属代理。
- 外部代理/外地代理 :在 外部网络 中帮助移动节点完成移动管理功能的实体称为 外部代理。
- 永久地址/归属地址/住地址 :移动站点在归属网络中的原地址。
- 转交地址/辅地址 :移动站点在外部网络使用的临时地址。
网络层设备
- 路由器
- 路由选择
- 分组转发
传输层
- 传输层为应用层提供通信服务,使用网络层的服务。
- 传输层的功能:
- 传输层提供 进程&进程 之间的 逻辑通信。(网络层实现 主机&主机 之间的逻辑通信)
- 复用 & 分用
- 传输层对收到的报文进行差错检测
- 传输层的两个协议(TCP、UDP)
- 传输层的寻址与端口:
- 复用:应用层所有的应用进程都可以通过传输层再传输到网络层
- 分用:传输层从网络层收到数据后交付指明的应用进程。
- 逻辑端口/软件端口/端口 是传输层的 SAP,标识主机中的应用进程。
- 端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。
- 端口号长度为 16bit ,能表示 65536 个不同的端口号。
- 端口号(按范围分)
- 服务端使用
- 熟知端口号(0~1023):给 TCP/IP 最重要的一些应用程序,让所有用户都知道。
- 登记端口号(1024~49151):为没有熟知端口号的应用程序使用。
- 客户端使用(49152~65535):仅在客户进程运行时才动态选择。
- 服务端使用
- 套接字 Socket = (Host IP , Port)
- 在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
UDP
- UDP 的功能:复用、分用、差错检测
- UDP 的主要特点:
- UDP 是 无连接 的,减少开销和发送数据之前的时延
- UDP 使用最大努力交付,即 不保证可靠交付
- UDP 是 面向报文 的,适合一次性传输少量数据的网络应用(即 应用层给 UDP 多长的报文,UDP就照样发送,一次发一个完整的报文)
- UDP 无拥塞控制,适合很多实时应用
- UDP 首部开销小,8B(TCP首部20B)
- UDP 首部格式
- UDP 校验
TCP
- TCP 协议的特点:
- TCP 是面向连接(虚连接)的传输层协议。
- 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的。
- TCP 提供可靠交付服务,无差错、不丢失、不重复、按序到达。
- TCP 提供全双工通信,(发送缓存 & 接收缓存)
- TCP 面向字节流(流入进程or从进程流出的字节序列)。(TCP 把应用程序交下来的数据看成仅仅是一连串的无结构字节流)
- TCP 报文段首部格式
- TCP 连接 & 释放(三次握手,四次握手)
- SYN 洪泛攻击
TCP 可靠传输
- 传输层:使用 TCP 实现可靠传输
- 网络层:提供尽最大努力交付,不可靠传输
- 可靠:保证接收方进程从缓存区读出的字节流与发送法发出的字节流是完全一样的。
- TCP 实现可靠传输的机制:
- 校验
- 增加伪首部
- 序号
- 一个字节占一个序号,序号字段 指的是一个报文段第一个字节的序号
- 确认
- 默认使用累计确认,收到接收方确认报文段后才从TCP缓存中删除被确认接收的报文段
- 确认号指示下一个想要接收的报文段
- 重传
- 确认重传不分家,TCP 的发送方在 规定时间(即 重传时间) 内没有收到确认就要重传已发送的报文段(即 超时重传)
- TCP 采用自适应算法,动态改变重传时间 RTTs(加权平均往返时间)
- 冗余 ACK / 冗余确认 :每当比期望序号大失序报文段达到时,发送一个 冗余ACK ,指明下一个期待字节的序号。
- 快速重传 :发送方收到 3 个对于报文段 x 的冗余ACK后,即认为 x报文段 丢失,重传 x号报文段。
- 校验
TCP 流量控制
- 流量控制:让发送方慢点,要让接收方来得及接收。
- TCP 利用 滑动窗口机制 实现流量控制。
- 在通信过程中,接收方根据自己 接收缓存 的大小,动态地调整发送方的发送窗口大小。即 接收窗口 rwnd (接收方设置确认报文段的 窗口字段 来将 rwnd 通知给对方),发送方的发送窗口取 接收窗口rwnd & 拥塞窗口 cwnd 的最小值。
TCP 拥塞控制
- 慢开始 & 拥塞控制
- 快重传 & 快恢复
应用层
- 应用层对应用程序的通信提供服务。
- 应用层协议定义:
- 应用进程交换的报文类型,请求or响应?
- 各种报文类型的语法,如报文中的个字段及其详细描述
- 字段的语义,即 包含在字段中的信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
- 网络应用模型:
- 客户/服务器模型(Client/Server)
- P2P模型(Peer-to-peer)
DNS 系统
- 根
- 顶级域名(基础结构域名/反向域名 arpa)
- 二级域名
- 三级域名
- ...
- 域名服务器
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器(当一个主机发出DNS查询请求时,这个查询请求报文就首先发送给本地域名服务器)
- 域名解析过程:
- 递归查询
- 迭代查询
- 递归 + 迭代(实际应用)
- 高速缓存
FTP
- 文件传送协议 FTP, File Transfer Protocol
- 简单文件传送协议 TFTP, Trivial File Transfer Protocol
电子邮件
- 组成结构:
- 用户代理
- 邮件服务器
- 协议
- SMTP
- POP3、IMAP
- MIME
万维网 & HTTP协议
- URL (不区分大小写)
- Cookie 是存储在用户主机中的文本文件,记录一段时间内某用户的访问记录。
- HTTP 采用 TCP 作为传输层协议,但 HTTP协议本身是无链接的。(通信双方在交换HTTP报文之前不需要先建立 HTTP 链接)
- HTTP 的链接方式:
- 持久链接 Keep-alive
- 流水线
- 非流水线
- 非持久链接 Close
- 持久链接 Keep-alive