# 网络基础(1) – 计算机网络基础部分梳理
思考再三,决定在网络系列增加网络基础的章节, 因为它对网络部分的知识体系构建有很大的帮助。网络基础分三部分内容,本文是第一部分主要来源于大学的课程《计算机网络(第五版)》知识点梳理,内容整理自这里 在新窗口打开, 但是作了调整和优化; 不得不说这本书作者谢希忍画的PPT还是挺棒的。
# 1 计算机网络基础
# 1.1 计算机网络在信息时代的作用
网络是指“三网”,即电信网络、有线电视网络和计算机网络。
计算机网络向用户提供的最重要的功能 :
-
连通性——计算机网络使上网用户之间都可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。
-
共享——即资源共享。可以是信息共享、软件共享,也可以是硬件共享。
# 1.2 因特网概述
网络(network)
- 由若干结点(node)和连接这些结点的链路(link)组成。
- 互联网是“网络的网络”(network of networks)。
- 连接在因特网上的计算机都称为主机(host)。
“结点”
- 在网络中的 node 的标准译名是“结点”而不是“节点”。
- 但数据结构的树(tree)中的 node 应当译为“节点”。
网络与因特网
- 网络把许多计算机连接在一起。
- 因特网则把许多网络连接在一起。
因特网发展的三个阶段
- 第一阶段是从单个网络 ARPANET 向互联网发展的过程。 1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。人们把 1983 年作为因特网的诞生时间。 internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。 Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET。
- 第二阶段的特点是建成了三级结构的因特网。 三级计算机网络,分为主干网、地区网和校园网(或企业网)。
- 第三阶段的特点是逐渐形成了多层次 ISP 结构的因特网。出现了因特网服务提供者 ISP (Internet Service Provider)。
根据提供服务的覆盖面积大小以及所拥有的IP 地址数目的不同,ISP 也分成为不同的层次。
20 世纪 90 年代。由欧洲原子核研究组织 CERN 开发的万维网 WWW (World Wide Web)被广泛使用在因特网上,大大方便了广大非网络专业人员对网络的使用,成为因特网的这种指数级增长的主要驱动力。
# 1.3 因特网的组成
# 1.3.1 因特网的边缘部分
从因特网的工作方式上看,可以划分为以下的两大块:
- 边缘部分 由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
- 核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
处在因特网边缘的部分就是连接在因特网上的所有的主机。这些主机又称为端系统(end system)。
“主机 A 和主机 B 进行通信”,实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。
即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。或简称为“计算机之间通信”
两种通信方式
在网络边缘的端系统中运行的程序之间的通信方式通常可划分为两大类:
- 客户服务器方式(C/S 方式) 即Client/Server方式
- 对等方式(P2P 方式) 即 Peer-to-Peer方式
1. 客户服务器方式
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
客户软件的特点: + 被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。 + 不需要特殊的硬件和很复杂的操作系统。
服务器软件的特点: + 一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。 + 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。 + 一般需要强大的硬件和高级的操作系统支持。
2. 对等连接方式
对等连接(peer-to-peer,简写为 P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
双方都可以下载对方已经存储在硬盘中的共享文档。
对等连接方式的特点: 对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
# 1.3.2 因特网的核心部分
网络核心部分是因特网中最复杂的部分。
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
在网络核心部分起特殊作用的是路由器(router)。
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
“交换“的含义
在电路交换的角度看,“交换”(switching)的含义就是转接——把一条电话线转接到另一条电话线,使它们连通起来。 从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。
分组交换的特点:
在发送端,先把较长的报文划分成较短的、固定长度的数据段。
每一个数据段前面添加上首部构成分组。
分组交换的传输单元
分组交换网以“分组”作为数据传输单元。
依次把各分组发送到接收端(假定接收端在左边)。
分组首部的重要性
每一个分组的首部都含有地址等控制信息。
分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。
用这样的存储转发方式,最后分组就能到达最终目的地。
接收端收到分组后剥去首部还原成报文。
最后,在接收端把收到的数据恢复成为原来的报文。
这里我们假定分组在传输过程中没有出现差错,在转发时也没有被丢弃。
因特网的核心部分总结
- 因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。
- 在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
- 主机的用途是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器的用途则是用来转发分组的,即进行分组交换的。
# 1.5 计算机网络的分类
不同作用范围的网络
- 广域网 WAN (Wide Area Network)
- 局域网 LAN (Local Area Network)
- 城域网 MAN (Metropolitan Area Network)
- 个人区域网 PAN (Personal Area Network)
从网络的使用者进行分类
- 公用网 (public network)
- 专用网 (private network)
接入网 AN (Access Network),它又称为本地接入网或居民接入网。
由 ISP 提供的接入网只是起到让用户能够与因特网连接的“桥梁”作用。
# 1.6 计算机网络的性能
1.速率
速率即数据率(data rate)或**比特率(bit rate)**是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等
速率往往是指额定速率或标称速率。
2.带宽
“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)
在时间轴上信号的宽度随带宽的增大而变窄。
3.吞吐量
吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量受网络的带宽或网络的额定速率的限制。
4. 时延(delay 或 latency)
传输时延(发送时延 ) 发送数据时,数据块从结点进入到传输媒体所需要的时间。
也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延 电磁波在信道中需要传播一定的距离而花费的时间。
信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。
处理时延 交换结点为存储转发而进行一些必要的处理所花费的时间。
排队时延 结点缓存队列中分组排队所经历的时延。
排队时延的长短往往取决于网络中当时的通信量。
每种时延产生的地方
5.时延带宽积
时延带宽积=传播时延*带宽
链路的时延带宽积也称为是以bit为单位的链路长度。
6. 利用率
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率则是全网络的信道利用率的加权平均值。
信道利用率并非越高越好。
时延与网络利用率的关系
根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。
若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D 和 D0之间的关系:
U 是网络的利用率,数值在 0 到 1 之间。
# 1.7 计算机网络的体系结构
相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。 (不容易实现)
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
# 1.7.1 划分层次的必要性
计算机网络中的数据交换必须遵守事先约定好的规则。
这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
网络协议的组成要素
- 语法 数据与控制信息的结构或格式 。
- 语义 需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步 事件实现顺序的详细说明。
计算机网络的体系结构
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。
体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
# 1.7.2 具有五层协议的体系结构
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层(没有具体内容)。
和ISO折中之后,综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
- 应用层(application layer)
- 运输层(transport layer)
- 网络层(network layer)
- 数据链路层(data link layer)
- 物理层(physical layer)
# 1.7.3 实体、协议、服务和服务访问点
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
本层的服务用户只能看见服务而无法看见下面的协议。
下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
协议很复杂 协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。
# 2 物理层
# 2.1 物理层的基本概念
物理层的主要任务描述为确定与传输媒体的接口的一些特性,即:
- 机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
- 电气特性 指明在接口电缆的各条线上出现的电压的范围。
- 功能特性 指明某条线上出现的某一电平的电压表示何种意义。
- 过程特性 指明对于不同功能的各种可能事件的出现顺序。
# 2.2 数据通信系统
# 2.2.1 数据通信系统的模型
- 数据(data)——运送消息的实体。
- 信号(signal)——数据的电气的或电磁的表现。
- “模拟的”(analogous)——代表消息的参数的取值是连续的。
- “数字的”(digital)——代表消息的参数的取值是离散的。
- 码元(code)——在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。
# 2.2.2 有关信号的几个基本概念
- 单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。
- 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
- 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。
基带信号和带通信号
- 基带信号(即基本频带信号)——来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制(modulation)。
- 带通信号——把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
最基本的二元制调制方法有以下几种:
调幅(AM)
:载波的振幅随基带数字信号而变化。调频(FM)
:载波的频率随基带数字信号而变化。调相(PM)
:载波的初始相位随基带数字信号而变化。
# 2.2.3 信道的极限容量
任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。
码元传输的速率越高,或信号传输的距离越远,在信道的输出端的波形的失真就越严重。
信道能够通过的频率范围
1924 年,奈奎斯特(Nyquist)的奈氏准则。给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。
在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
如果信道的频带越宽,也就是能够通过的信号高频分量越多,那么就可以用更高的速率传送码元而不出现码间串扰。
信噪比
香农(Shannon)用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。
信道的极限信息传输速率 C 可表达为 C = W log2(1+S/N) b/s
- W 为信道的带宽(以 Hz 为单位);
- S 为信道内所传信号的平均功率;
- N 为信道内部的高斯噪声功率。
香农公式表明
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少。
对于频带宽度已确定的信道,如果信噪比不能再提高了,并且码元传输速率也达到了上限值,那么还有办法提高信息的传输速率。这就是用编码的方法让每一个码元携带更多比特的信息量。
# 2.3 物理层下面的传输媒体
# 2.3.1 导向传输媒体(不重要)
- 双绞线
- 屏蔽双绞线 STP (Shielded Twisted Pair)
- 无屏蔽双绞线 UTP (Unshielded Twisted Pair)
- 同轴电缆
- 50 同轴电缆
- 75 同轴电缆
- 光缆
# 2.3.2 非导向传输媒体(不重要)
- 无线传输所使用的频段很广。
- 短波通信主要是靠电离层的反射,但短波信道的通信质量较差。
- 微波在空间主要是直线传播。
- 地面微波接力通信
- 卫星通信
# 2.4 信道复用技术
复用(multiplexing)是通信技术中的基本概念。
# 2.4.1 频分复用 FDM(Frequency Division Multiplexing)
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
# 2.4.2 时分复用TDM(Time Division Multiplexing)
时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
每一个用户所占用的时隙是周期性地出现(其周期就是 TDM 帧的长度)。
TDM 信号也称为等时(isochronous)信号。
时分复用的所有用户是在不同的时间占用同样的频带宽度。
使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。
# 2.4.3 码分复用 CDM(Code Division Multiplexing)
常用的名词是码分多址 CDMA (Code Division Multiple Access)。
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
每一个比特时间划分为 m 个短的间隔,称为码片(chip)。
码片序列(chip sequence)
- 每个站被指派一个唯一的 m bit 码片序列。
- 如发送比特 1,则发送自己的 m bit 码片序列。
- 如发送比特 0,则发送该码片序列的二进制反码。
例如,S 站的 8 bit 码片序列是 00011011。
- 发送比特 1 时,就发送序列 00011011,
- 发送比特 0 时,就发送序列 11100100。
- S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1)
CDMA 的重要特点
- 每个站分配的码片序列不仅必须各不相同,并且还必须互相正交(orthogonal)。
- 在实用的系统中是使用伪随机码序列。
码片序列的正交关系
- 令向量 S 表示站 S 的码片向量,令 T 表示其他任何站的码片向量。
- 两个不同站的码片序列正交,就是向量 S 和T 的规格化内积(inner product)都是 0:
举例:
- 令向量 S 为(–1 –1 –1 +1 +1 –1 +1 +1),向量 T 为(–1 –1 +1 –1 +1 +1 +1 –1)。
- 把向量 S 和 T 的各分量值代入式就可看出这两个码片序列是正交的。
任何一个码片向量和该码片向量自己的规格化内积都是1 。
一个码片向量和该码片反码的向量的规格化内积值是 –1。
CDMA 的工作原理
# 3 数据链路层
数据链路层使用的信道主要有以下两种类型:
- 点对点信道。这种信道使用一对一的点对点通信方式。
- 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送与接收。
# 3.1 使用点对点信道的数据链路层
# 3.1.1 数据链路和帧
链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
- 一条链路只是一条通路的一个组成部分。
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层传送的是帧
# 3.1.2 三个基本问题
1.封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界。
用控制字符进行帧定界的方法举例
2.透明传输
解决透明传输问题
- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
- 字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
- 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
3. 差错检测
- 在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
- 误码率与信噪比有很大的关系。
- 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
循环冗余检验的原理
- 在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
- 在发送端,先把数据划分为组。假定每组 k 个比特。
- 假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。
冗余码的计算 用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。
冗余码的计算举例
- 现在 k = 6, M = 101001。
- 设 n = 3, 除数 P = 1101,
- 被除数是 2nM = 101001000。
- 模 2 运算的结果是:商 Q = 110101,余数 R = 001。
- 把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R; 即:101001001,共 (k + n) 位。
帧检验序列 FCS
- 在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
- 循环冗余检验 CRC 和帧检验序列 FCS并不等同。
- CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
- FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
接收端对收到的每一帧进行 CRC 检验
- (1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。
- (2) 若余数 R 0,则判定这个帧有差错,就丢弃。
这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。
应当注意
- 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。
- 也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
- 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
# 3.2 点对点协议 PPP
# 3.2.1 PPP 协议的特点
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。用户到 ISP 的链路使用 PPP 协议
PPP 协议的组成
- 一个将 IP 数据报封装到串行链路的方法。
- 链路控制协议 LCP (Link Control Protocol)。
- 网络控制协议 NCP (Network Control Protocol)。
# 3.2.2 PPP 协议的帧格式
- 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示)。
- 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
- 控制字段 C 通常置为 0x03。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
PPP 有一个 2 个字节的协议字段。
- 当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。
- 若为 0xC021, 则信息字段是 PPP 链路控制数据。
- 若为 0x8021,则表示这是网络控制数据。
当 PPP 用在异步传输时,把转义字符定义为0x7D,就使用一种特殊的字符填充法。
- 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
- 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
- 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
零比特填充
- PPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
- 在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除,不提供使用序号和确认的可靠传输
PPP 协议之所以不使用序号和确认机制是出于以下的考虑:
- 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
- 在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
- 帧检验序列 FCS 字段可保证无差错接受。
# 3.2.3 PPP 协议的工作状态
当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
# 3.3 使用广播信道的数据链路层
# 3.3.1 局域网的数据链路层
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网具有如下的一些主要优点:
- 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和残存性。
局域网按网络拓扑结构进行分类:
- 星型网:由于集线器和双绞线的使用,星型以太网得到广泛使用。
- 环形网:典型代表:令牌环形网。
- 总线网:两端匹配电阻吸收电磁波信号的能量,避免在总线上产生有害的电磁波反射。CSMA/CD协议
- 树形网:主要用于频分复用的宽带局域网。
媒体共享技术 静态划分信道(用户只要分配到信道就不会和其他用户发生冲突,代价高,不适合局域网使用)
- 频分复用
- 时分复用
- 波分复用
- 码分复用
动态媒体接入控制(多点接入)
- 随机接入(所有用户可以随机发送信息,一旦和别用户发生碰撞,这些发送的信息都失败)
- 受控接入 (不随机发送信息,服从一定的控制(在局域网中使用的较少)),如多点线路探询(polling),或轮询。
以太网的两个标准
- DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
- IEEE 的 802.3 标准。
DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。 严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
数据链路层的两个子层 为了使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
- 逻辑链路控制 LLC (Logical Link Control)子层(IEEE 802.2标准 以后基本消失由于 TCP/IP 体系经常使用的局域网是 DIX Ethernet V2 而不是 802.3 标准中的几种局域网)
- 媒体接入控制 MAC (Medium Access Control)子层。
与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的
适配器的作用 网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。 适配器的重要功能:
- 进行串行/并行转换(计算机和网卡之间并行通信,网卡和局域网通过双绞线进行串行通信)。
- 对数据进行缓存(网络上的数据率和计算机总线上的数据率不相同)。
- 在计算机的操作系统安装设备驱动程序。
- 实现以太网协议。
网卡发送和接受帧的时候不适用计算机的CPU,丢弃错误帧的时候不通知计算机,收到正确帧时,使用中断来通知计算机。 计算机的硬件地址在网卡的ROM中,计算机的软件地址-IP地址在计算机的存储器中。
# 3.3.2 CSMA/CD 协议
最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
总线上的每一个工作的计算机都能检测到 B 发送的数据信号。
由于只有计算机 D 适配器的硬件地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。
其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。
具有广播特性的总线上实现了一对一的通信。
为了通信的简便以太网采取了两种重要的措施 :
- 一、采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。
- 以太网对发送的数据帧不进行编号,也不要求对方发回确认。这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
- 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
- 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
- 二、以太网发送的数据都使用 曼彻斯特(Manchester)编码(为什么使用曼彻斯特编码?)
- 二进制基带数字信号通常是高低电压交替出现的信号。问题,当出现一长串的0或1时,接收端就无法从收到的比特流中提取位同步(比特同步)信号。
- 曼彻斯特编码:把每一个码元再分成两个相等的间隔,1是上升沿,0是下降沿。
总线上一台计算机发送数据,总线的传输资源就被占用,在同一时间只能允许一台计算机发送信息
以太网采用的协调方法是使用一种特殊的协议CSMA/CD 载波监听多点接入/碰撞检测
CSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection。
“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
检测到碰撞后
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。 电磁波在总线上的有限传播速率的影响
当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
A 向 B 发出的信息,要经过一定的时间后才能传送到 B。
B 若在 A 发送的信息到达 B 之前发送自己的帧(因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞。
碰撞的结果是两个帧都变得无用。
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
争用期(碰撞窗口)
- 最先发送数据帧的站,在发送数据帧后至多经过时间 2τ (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
- 以太网的端到端往返时延 2τ 称为争用期,或碰撞窗口。
- 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
二进制指数类型退避算法 (truncated binary exponential type) 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
- 确定基本退避时间,一般是取为争用期 2τ。
- 定义重传次数 k ,k ≤10,即 k = Min[重传次数, 10]
- 从整数集合[0,1,…, (2的k次方 1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
以太网取 51.2 us 为争用期的长度。对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。
以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
如果发生冲突,就一定是在发送的前 64 字节之内。
由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
强化碰撞
- 当发送数据的站一旦发现发生了碰撞时:立即停止发送数据;
- 再继续发送若干32bit或者48bit比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞。
# 3.4 使用广播信道的以太网
# 3.4.1 使用集线器的星形拓扑
传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。 这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
以太网在局域网中的统治地位
- 10BASE-T 的通信距离稍短,每个站到集线器的距离不超过 100 m。
- 这种 10 Mb/s 速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性。
- 10BASE-T 双绞线以太网的出现,是局域网发展史上的一个非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础。
集线器的一些特点
- 集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
- 使用集线器的以太网在逻辑上是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
- 集线器很像一个多接口的转发器,工作在物理层。
# 3.4.2 以太网的信道利用率
一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。
a→0 表示一发生碰撞就立即可以检测出来, 并立即停止发送,因而信道利用率很高。
a 越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。
当数据率一定时,以太网的连线的长度受到限制,否则τ的数值会太大。
以太网的帧长不能太短,否则 T0 的值会太小,使 a 值太大。
理想情况下最大的利用率为:
# 3.4.3 以太网的 MAC 层
MAC 层的硬件地址
- 在局域网中,硬件地址又称为物理地址,或 MAC 地址。 802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符。
- IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。
- 地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。
- 一个地址块可以生成2的24次方个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是EUI-48。
- “MAC地址”实际上就是适配器地址或适配器标识符EUI-48。
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址.
- 如果是发往本站的帧则收下,然后再进行其他的处理。
- 否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧:
- 单播(unicast)帧(一对一)
- 广播(broadcast)帧(一对全体)
- 多播(multicast)帧(一对多)
常用的以太网MAC帧格式有两种标准 :
- DIX Ethernet V2 标准
- IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式。
类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。
数据字段的正式名称是 MAC 客户数据字段,最小长度 64 字节 -18 字节的首部和尾部 = 数据字段的最小长度
- 当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
- 在帧的前面插入的 8 字节中的第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。
- 第二个字段是帧开始定界符,表示后面的信息就是MAC 帧。
为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节。(指的就是前面的八个字节)
无效的 MAC 帧 数据字段的长度与长度字段的值不一致;
- 帧的长度不是整数个字节;
- 用收到的帧检验序列 FCS 查出有差错;
- 数据字段的长度不在 46 ~ 1500 字节之间。
- 有效的 MAC 帧长度为 64 ~ 1518 字节之间。
- 对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
帧间最小间隔为 9.6 us,相当于 96 bit 的发送时间。
一个站在检测到总线开始空闲后,还要等待 9.6 us 才能再次发送数据。
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
# 3.5 扩展的局域网
# 3.5.1 在物理层扩展局域网
扩展主机和集线器之间的距离,主机使用光纤和一对光纤调制解调器(进行电信号和光信号的转换)连接到集线器
用集线器扩展局域网
优点
- 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
- 扩大了局域网覆盖的地理范围。
缺点
- 碰撞域增大了,但总的吞吐量并未提高。
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
# 3.5.2 在数据链路层扩展局域网
# 1.网桥
在数据链路层扩展局域网是使用网桥。
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
使用网桥带来的好处
- 过滤通信量。 网桥使各网段成为隔离开的碰撞域
- 扩大了物理范围。
- 提高了可靠性。
- 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。
使用网桥带来的缺点
- 存储转发增加了时延。
- 在MAC 子层并没有流量控制功能。(网络符合很重的时候,网桥中的缓存的存储空间可能不够而溢出,以致产生帧丢失现象)
- 具有不同 MAC 子层的网段桥接在一起时时延更大。
- 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
网桥和集线器(或转发器)不同
- 集线器在转发帧时,不对传输媒体进行检测。
- 网桥在转发帧之前必须执行 CSMA/CD 算法。
- 若在发送过程中出现碰撞,就必须停止发送和进行退避。
# 2.透明网桥
目前使用得最多的网桥是透明网桥(transparent bridge)。 “透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。 透明网桥是一种即插即用设备,其标准是 IEEE 802.1D。
网桥应当按照以下自学习算法处理收到的帧和建立转发表 :
- 若从 A 发出的帧从接口 x 进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到 A。
- 网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。
- 在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。
- 在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
网桥在转发表中登记以下三个信息 :
- 在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间。
- 这是因为以太网的拓扑可能经常会发生变化,站点也可能会更换适配器(这就改变了站点的地址)。另外,以太网上的工作站并非总是接通电源的。
- 把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态。
网桥的自学习和转发帧的步骤归纳 :
- 网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。如有,则把原有的项目进行更新。
- 转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。
- 如没有,则通过所有其他接口(但进入网桥的接口除外)进行转发。
- 如有,则按转发表中给出的接口进行转发。
- 若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这时不需要经过网桥进行转发)。
透明网桥使用了生成树算法 :
- 这是为了避免产生转发的帧在网络中不断地兜圈子。
生成树的得出 互连在一起的网桥在进行彼此通信后,就能找出原来的网络拓扑的一个子集。在这个子集里,整个连通的网络中不存在回路,即在任何两个站之间只有一条路径。
为了避免产生转发的帧在网络中不断地兜圈子。为了得出能够反映网络拓扑发生变化时的生成树,在生成树上的根网桥每隔一段时间还要对生成树的拓扑进行更新。
# 3.源路由网桥
透明网桥容易安装,但网络资源的利用不充分。
源路由(source route)网桥在发送帧时将详细的路由信息放在帧的首部中。
源站以广播方式向欲通信的目的站发送一个发现帧,每个发现帧都记录所经过的路由。
发现帧到达目的站时就沿各自的路由返回源站。源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由。凡从该源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息。
# 4.多接口网桥——以太网交换机
1990 年问世的交换式集线器(switching hub),可明显地提高局域网的性能。
交换式集线器常称为以太网交换机(switch)或第二层交换机(表明此交换机工作在数据链路层)。
以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。
以太网交换机的特点:
- 以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。
- 交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据。
- 以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。
独占传输媒体的带宽
对于普通 10 Mb/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽(10 Mb/s)的 N 分之一。 使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 对接口的交换机的总容量为 N乘以10 Mb/s。这正是交换机的最大优点。
利用以太网交换机可以很方便地实现虚拟局域网
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组。
- 这些网段具有某些共同的需求。
- 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。
虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
虚拟局域网使用的以太网帧格式
虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记(tag),用来指明发送该帧的工作站属于哪一个虚拟局域网。
# 3.6 高速以太网
# 3.6.1 100BASE-T 以太网
速率达到或超过 100 Mb/s 的以太网称为高速以太网。
在双绞线上传送 100 Mb/s 基带信号的星型拓扑以太网,仍使用 IEEE 802.3 的CSMA/CD 协议。100BASE-T 以太网又称为快速以太网(Fast Ethernet)。