第一章 概述
Ø 计算机网络在信息时代的作用(了解就行)
Ø 互联网概述
Ø 互联网的组成
Ø 计算机网络在我国的发展(了解就行)
Ø 计算机网络的类别
Ø 计算机网络的性能
Ø 计算机网络的体系结构
1 计算机网络在信息时代的作用
21 世纪的一些重要特征就是数字化、网络化和信息化,、它是一个以网络为核心的信息时代。
当然大家熟悉的三大类网络:
2 互联网概述
2.1 互联网具有的两个重要的基本特点:
连通性(connectivity): 使上网用户之间可以非常便捷、非常经济地交换各种信息好像这些用户终端都彼此直接连通一样。
共享性(sharing): 所谓共享就是指资源共享,即实现信息共享、软件共享、硬件共享。
2.2 网络、互连网 和 互联网(因特网)
计算机网络(简称为网络):由若干节点(node) 和 连接这些节点的链路(link)组成。
内容补充:网络中的 节点 可以是计算机、集线器、交换机或路由器等(在后续会逐一介绍)
这里我给出一张 (图 a) 具有四个节点和三条链路的简单网络(三台计算机通过三条链路连接到一个集线器上)
又如图 b,有多个网络通过一些路由器相互连接起来,构成了一个覆盖范围更大的计算机网络,这样的网络称为:互连网,从图中可以看出互连网也可以被有趣的理解为 “网络中的网络”。因此全球最大的互连网又叫互联网(因特网 Internet)
内容补充:用一朵云表示一个网络的好处,就是可以先不考虑每一个网络中的细节,而是集中精力讨论与这个互连网有关的问题。
⚠️ 当我们用一朵云来表示网络时,可能会遇到两种不同的情况:
有时用云表示的网络已经包含了和网络相连的计算机(如图 a),但有时为了讨论问题的方便 (例如,要讨论几个计算机之间如何进行通信),也可以把有关的计算机画在云的外面 (如图 c)。习惯上,与网络相连的计算机常称为主机 (host)。这样,用云表示的互连网里面就只剩下许多路由器和连接这些路由器的链路了。
总结:网络把许多计算机连接在一起,而互联网则把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机(一般智能手机和智能电视机也行)
2.3 互联网基础结构发展的三个阶段
internet(互连网) 是一个通用名词,它泛指由多个计算机网络互连而成的计算机网络(这些网络之间的通信协议可以任意选择,不一定非要使用 TCP/IP 协议)
Internet(互联网,或因特网) 则是一个专有名词,它指当前全球最大、最开放、由众多网络相互连接而成的特点互连网,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET
第一阶段:1969 – 1990
☆ 1969 年美国国防部创建的 ARPANET 最初只是一个单个的分组交换网,不是一个互连 网。
☆ 1983 年,TCP/IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP/IP 协议的计 算机都能利用互连网相互通信。
☆ 人们把 1983 年作为互联网的诞生时间。
☆ 1990 年,ARPANET 正式宣布关闭
第三阶段:1993 – 现在
☆ 从 1993 年开始,由美国政府资助的 NSFNET 逐渐被若干个商用的互联网主干网替代, 政府机构不再负责互联网的运营。互联网服务提供者 ISP (InternetService Provider) 成为互联网的运营主体。
☆ 多层次 ISP 结构:
• 主干 ISP、地区 ISP 和本地 ISP;
• 本地 ISP 提供接入到互联网的服务,并收取一定的费用;
• 不同层次的 ISP 覆盖面积大小和拥有的 IP 地址数目不同(互联网上的主机都必须有 IP 地址才能上网)。
这里我给出具有三层 ISP 结构的互联网概念图:
补充:互联网交换点 IXP 的主要作用就是允许两个 ISP 网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。
内容提供者 是在互联网上向所有用户提供视频文件的公司,这种公司和前面的 ISP 不同,因为他们并不会向用户提供互联网的转接服务,而是提供视频内容的服务。
互联网服务提供者 ISP ,可以是中国电信、中国移动、中国联通。
所谓的上网 就是指通过某 ISP 获取所需 IP 地址 ,以通过该 ISP 接入互联网。
2.4 互联网的标准化工作
☆ 互联网的标准化工作对因特网的发展起到了非常重要的作用
☆ 互联网在制订其标准上一个很大特点是 面向公众
• 互联网所有的 RFC 技术文档都可以从互联网上免费下载
• 任何人都可以随时用电子邮件发表对某个文档的意见或建议
☆ 互联网协会(ISOC)是一个国际性组织,它负责对互联网进行全面管理,以及在世界范围内促进其 发展和使用
☆ 制订互联网的正式标准经过以下 三个阶段
• 互联网草案(在这个阶段还不是 RFC 文档)
• 建议标准(从这个阶段开始就成为 RFC 文档)
• 互联网标准 (一个互联网标准可以和多个 RFC 文档关联)
3 互联网的组成
从其工作方式上看,可以划分为以下两大块:
【1】边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传输数据、音频或视频)和资源共享。
【2】核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
3.1 互联网边缘部分重点知识:
☆ 主机 A 和主机 B 通信,实际上是指:
主机 A 的某个进程和主机 B 上的另一个进程进行通信(“进程” 就是 “运行着的程序”)。
☆ 主机之间的两种通信方式:
- 客户 / 服务器方式(C/S 方式) 参考左图
客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。客户 / 服务器方式所描 述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
- 对等连接方式(P2P 方式) 参考右图
主机之间通信时不区分服务请求方和服务提供方,只要都运行了 P2P 软件,就可以进行对 等连接通信。
对等连接方式从本质上看仍然使用客户 / 服务器方式,只是对等连接中的每一台主机既是 客户又是服务器。
3.2 互联网核心部分重点知识:
☆ 核心部分向边缘部分中的大量主机提供连通性,使边缘部分中的任何一台主机都能够与其 他主机通信。
☆ 核心部分的关键设备是路由器 (router),其任务是进行分组交换 (packet switching) , 这是核心部分最重要的功能。
☆ 数据交换方式主要有以下三种(讲的比较细,知道的可以直接看后面三者的区别):
- 电路交换 (CircuitSwitching)
电话交换机接通电话线的方式称为电路。
从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。
电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
当电话机的数量增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电信网。
电路交换的过程分为三个阶段:
① 建立连接:建立一条专用的物理通路(占用通信资源)。
② 通话:主叫和被叫双方互相通电话(一直占用通信资源)。
③ 释放连接:释放刚才使用的专用的物理通路(归还通信资源)。
电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
缺点:计算机数据具有突发性,这导致使用电路交换传送数据时,通信线路的利用率很低,真正用来传送数据的时间往往不到 10%,甚至不到 1%。已被用户占用的通信线路资源在绝大部分时间里都是空闲的。所以计算机网络不采用电路交换,而是采用分组交换。
⚠️ 这种必须经过 “建立连接(占用通信资源)、通话(一直占用通信资源)、释放连接(归还通信资源)” 三个步骤的交换方式称为电路交换。
- 分组交换 (PacketSwitching)
分组交换采用存储转发技术。
把要发送的整块数据称为一个报文 (message)。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段。在每一个数据段前面,加上一些由必要的控制信息组成的首部 (header) 后,就构成了一个分组 (packet)。分组是在互联网中传送的数据单元。
① 发送端将所有分组连续地发送出去,直至发送完毕。
② 假定分组在传输过程中没有出现差错,在转发时也没有被丢弃。接收端收到分组后剥去首部,还原成原来的报文。
路由器对分组的处理——>
通过多个路由器的 “接力” 传输,分组最终会到达目的主机。
1、路由器采用存储转发技术先暂时存储收到的分组,然后根据首部中包含的目的地址等重要 控制信息查找转发表进行转发。
2、各路由器之间定期交换各自掌握的路由信息,以创建和动态维护转发表。
3、每一个分组在互联网中独立选择传输路径,位于网络核心部分的路由器负责转发分组,即 进行分组交换。
分组交换的注意事项(以 H1 向 H5 发送分组为例)——>
每个分组独立选择传输路径,由于链路状态不断变化,分组路径也会动态变化!
注意 1:H1 先将分组连续地发往与它直接相连的路由器 A,而不是等第一个分组到达 H5 后再发送下一个分组;
注意 2:每个分组独立选择传输路径;
注意 3:单个分组经过多个路由器 “接力”,最终到达目的主机 H5;
注意 4:单个分组对通信资源是逐段占用的,只有当分组在链路上发送时才占用该链路,发送完毕即释放该链路。
注意 5:所有分组到达目的主机 H5 后,即可还原出原来的报文。
分组交换的优、缺点 ——>
- 报文交换 (MessageSwitching)
既然已经谈论了分组交换,那报文交换就看起来非常简单了(一个分组,一个整体)
1、将整块数据作为一个报文,采用存储转发模式的数据交换方式叫做报文交换。
2、报文交换的时延较长,现在已经很少使用这种交换方式了。
☆ 电路交换、报文交换和分组交换的主要区别:
1、若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。
2、报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。
3、由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。
4 计算机网络在我国的发展(略)
5 计算机网络的类别
根据不同的分类标准,计算机网络可以分为不同的类别:
5.1 按照网络的作用范围进行分类
广域网 WAN (WideArea Network) :
通常为几十到几千公里,是互联网的核心部分。
城域网 MAN (MetropolitanArea Network) :
作用范围一般是一个城市,作用距离约为 5~50 公里。
局域网 LAN (LocalArea Network) :
局限在较小的范围(如 1 公里左右)。通常采用高速通信线路。
个人区域网 PAN (PersonalArea Network) :
范围很小,大约在 10 米左右。有时也称为无线个人区域网 WPAN(Wireless PAN)。
5.2 按照网络的使用者进行分类
公用网 (publicnetwork) :
按电信公司的规定交纳费用的人都可以使用的网络。
专用网 (privatenetwork) :
某部门为满足本单位的特殊业务需要而建造的网络,不向本单位以外的个人提供服务。
5.3 按拓扑结构分类
• 总线型
用单根传输线把计算机连接起来。
优点:建网容易,增减节点方便,节省线路。
缺点:重负载时通信效率不高,任意一处出现故障后全网瘫痪。
• 环型
将所有计算机网络结构连接成一个环,环可以是单环或者双环,环中信号是单向传输的。
优点,缺点和总线型差不太多。
• 星形
将每个计算机都以单独的线路与中央设备相连。中央设备现在一般是交换机。
优点:便于网络的集中控制和管理。
缺点:成本高,中央设备对故障敏感。
• 树形
树形网络也叫多星级型网络。树形网络是由多个层次的星型结构纵向连接而成,树的每个节点都是都是计算机或转接设备。一般来说,越靠近树的根部,节点设备的性能就越好。与星型网络相比,树形网络总长度短,成本较低,节点易于扩充,但是树形网络复杂,与节点相连的链路由故障时,对整个网络的影响较大
优点:易于扩展,故障隔离较容易
缺点:各个节点对根的依赖性太大。
• 网状
每个节点至少由两条路径与其它节点相连接,多用在广域网中。
这里就不详细阐述了,以后会详细介绍。
以上结构都可以任意组合成复杂有效的复合型结构。
6 计算机网络的性能
6.1 速率
速率指的是数据的传送速率,也称为数据率 (datarate) 或比特率 (bitrate),是计算机网络中最重要的一个性能指标。当提到网络的速率时,往往指的是额定速率或标称速率。
速率的单位是 bit/s(或 b/s、bps),当数据率较高时,就在前面加上 k、M、G 等表示数量的字母。
把速率和数据量区分一下
6.2 带宽
带宽有以下两种不同的含义:
1、带宽本来是指某个信号具有的频带宽度,即该信号所占据的频率范围。例如模拟电话信号 的频率范围是 300 Hz 到 3.4 kHz,标准带宽是 3.1 kHz。
• 单位是赫(或千赫、兆赫、吉赫等)。
• 某信道允许通过的信号频带范围称为该信道的带宽(或通频带)。
2、在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的 “最高数据库”。
• 在本专栏中,提到 “带宽” 时,主要指这个意思。
• 这种意义的带宽单位就是数据率的单位 bit/s,是 “比特每秒”。
补充:1、在 “带宽” 的上述两种表述中,前者为 “频域” 称谓,而后者为 “时域” 称谓。
2、上述两种表述 本质上是相同的。
3、一条通信链路的 “带宽” 越宽,其所能传输的 “最高数据率” 也 越高。
6.3 吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的实际数据量。
吞吐量受网络的带宽或网络的额定速率的限制。
6.4 时延
指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络中的时延由以下 4 个部分组成:
(1)发送时延
发送时延是主机或路由器发送数据所需要的时间,也就是从发送数据的第一个比特算起,到发送完该数据的最后一个比特为止所需的时间。
(2)传播时延
传播时延是电磁波在信道中传播一定的距离需要花费的时间。电磁波在自由空间的传播速率是 3.0ⅹ10^5km/s,在铜线电缆中的传播速率约为 2.3ⅹ10^5km/s,在光纤中的传播速率约为 2.0ⅹ10^5km/s
⚠️ 发送时延和传播时延有本质上的不同,发送时延发生在机器内部的发送器上(一般是发生在网络适配器上)与传输信道的长度(信号传送的距离)没有任何关系。
而传播时延发生在机器外部的传输信道媒体上,与信号的发送速率无关,信号传送的距离越远,传播时延就越大。
(3)处理时延
主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找转发表等)所花费的时间。
(4)排队时延
分组在进入路由器后要先在输入队列中排队等待处理,在确定了转发接口后还要在输出队列中排队等待转发,这就产生了排队时延。
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
这里给出几种时延产生的地方,方便理解它们。
补充:1、在总时延中,究竟哪一种时延占主导地位,必须具体分析。
例如,不是发送速率越高,其传送的总时延就越小,要综合考虑。
2、容易产生的错误概念 :
“在高速链路(或高带宽链路)上,比特的传播速度会更快些”。
对于高速网络链路,我们提高的仅仅是数据的发送速率,而不是比特在链路上的传播速率。
3、提高数据的发送速率只是减小了数据的发送时延
6.5 时延带宽积
把以上讨论的网络性能的两个度量,即传播时延和带宽相乘,就得到了另一个很有用的度量:传播时延带宽积。
这里从这张图可以看出:
1、链路的时延带宽积表示这样的链路可以容纳多少个比特,因此又称为以比特为单位的链路长度。
2、管道中的比特数表示从发送端发出但尚未到达接收端的比特数。
6.6 往返时间 RTT
往返时间 RTT(Round-TripTime) 表示从发送方发送完数据到发送方收到接收方的确认所经过的时间。
闲谈:这种重要的性能指标出现,是因为在许多情况下,互联网上的信息不仅仅单向传输而是双向交互的。因此我们有时很需要知道双向交互一次的时间。
举例分析:结点 A 要将一个 100MB 数据以 100Mbit/s 的速率发送给结点 B,B 正确收完该数据后,就立即向 A 发送确认。假定 A 只有在收到 B 的确认信息后,才能继续向 B 发送数据,且确认信息很短,可忽略 B 发送确认的发送时延。如果 RTT= 2s,计算 A 向 B 发送数据的有效数据率 ?。
可以发现比原来的数据率 100Mbit/s 小了不少,因此有时也把 RTT 称为往返时延(强调发送方至少要经过这样多时间,才能知道自己所发送的数据是否被对方接收了)
6.7 利用率
利用率有信道利用率和网络利用率两种。
信道利用率:
• 某信道有百分之几的时间是被利用的(即有数据通过)。
• 完全空闲的信道的利用率是零。
网络利用率:
• 全网络的信道利用率的加权平均值。
⚠️ 信道利用率并非越高越好。根据排队论,当某信道的利用率增大时,该信道的时延会迅速增加。
从图中可以看出:
-
当网络利用率达到 50% 时,时延就要加倍。
-
当网络利用率超过 50% 时,时延就急剧增加。
-
当网络利用率接近 100% 时,时延就趋于无穷大。
总结:信道利用率或网络利用率过高就会产生非常大的时延,因此一般要控制信道利用率不超过 50%,如果超过了,就要准备扩容,增大线路的宽度。
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
由于这个性能不需要掌握,就不多阐述了,感兴趣的朋友可以查资料了解~
当然计算机网络还有非性能特征:1、费用 2、质量 3、标准化 4、可靠性 5、可扩展性和升级性 6、易于管理和维护等
7 计算机网络体系结构
计算机网络的各层及其协议的集合,就是网络的体系结构 (architecture) 。
在网络中交换数据,必须遵守相关的网络协议。
网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
网络协议主要由以下三个要素组成:
语法:数据与控制信息的结构或格式;
语义:需要发出何种控制信息,完成何种动作,做出何种响应;
同步:事件实现顺序的详细说明
这里的五层协议体系结构是原理上的五层协议,这种结构的出现只是为了方便我们更为详细和方便的学习。
接下来对于各层的简介,也主要是这个五层协议的体系结构。
7.1 五层协议的体系结构
① 应用层
任务:通过应用进程的交互来完成特定网络应用。(这里的” 进程 “就是指主机中正在运行 的程序)
交互的数据单元:报文。
常用协议:域名系统 DNS , 支持万维网应用的 HTTP 协议 、 支持电子邮件的 SMTP 协议。
⚠️ 应用层协议定义的是应用进程间通信和交互的规则,对于不同的网络应用需要有不同的应用层协议。
② 运输层
任务:为两台主机中进程之间的通信提供通用的数据传输服务。(这里的” 通用 “是指并不 针对某个特定网络应用,而是多种应用可以使用同一个运输层服务)
功能:复用(多个应用层可同时使用下面运输层的服务)
分用(运输层把收到的信息分别交付上面的应用层中的相应过程)
主要协议:传输控制协议 TCP(提供面向连接的、可靠的数据传输服务,其数据传输的单元 是报文段)。
用户数据报协议 UDP(提供无连接的尽最大努力的数据传输服务,但不保证数 据传输的可靠性,其数据传输的单元是用户数据报)
③ 网络层
任务:负责为分组交换网上的不同主机提供通信服务。
数据单元:”分组 “或” 数据报“。
常用协议:网际协议 IP 和许多种路由选择协议。
④ 数据链路层
任务:在两个相邻节点之间传送数据帧(将网络层下来的 IP 数据报组装成帧,每一帧包括数 据和必要的控制信息)。
常用协议:PPP、CSMA/CD 等。
如发现有差错,就简单地丢弃出错的帧。如果要纠错就要采用可靠的传输协议,这样会使数据链路层的协议更复杂。
⑤ 物理层
任务:实现比特(0 或 1)的传输。
数据单元:比特。
⚠️
-
确定表示数据的电压(代表 1 和 0)以及连接电缆的插头应当有多少根引脚,各引脚应如何连接等。
-
传递信息的物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内,而是在物理层协议的下面。
这里给出两台主机通过一台路由器进行的数据在各层之间的传递过程的图示:
上述过程一定要有一个清楚的认知(H 和 T 都是每层所加上的控制信息)。
就好比:有一封信从最高层向下传,每经过一层就包上一个新的的信封,写上必要的地址信息。包有多个信封的信件传送到目的站后,从第一层起,每层拆开一个信封后就把信封中的信交给它的上一层,传到最高层后,取出发信人所发的信,交给收信人。
7.2 协议、实体、服务和服务访问点
实体 :表示任何可发送或接收信息的硬件或软件进程。
对等实体:通信双方相同层次中的实体。
协议:控制两个对等实体进行通信的规则的集合。
-
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
-
要实现本层协议,还需要使用下层所提供的服务。
协议和服务的区别:
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令。
服务访问点 SAP:
-
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点 SAP (ServiceAccess Point)。
-
SAP 是一个抽象的概念,它实际上就是一个逻辑接口。
7.3 TCP/IP 体系结构
TCP/IP 的四层协议体系结构与其他体系结构各层对比。
TCP/IP 最下面的网络接口层并没有属于 TCP/IP 体系的具体协议,目的是为了允许任何形式的网络接口使用 TCP/IP 协议。
TCP/IP 四层协议的主机间的信息交换和五层协议异曲同工。
值得注意的是随着技术的发展,TCP/IP 体系结构并不严格遵循分层的概念,某些应用程序可以直接使用 IP 层,甚至直接使用最下面的网络接口层。
当然还有另外一种方法用来表示 TCP/IP 协议族,他的特点是上下两头大而中间小:应用层和网络接口层都有多种协议,而中间的 IP 层很小,上层的各种协议都向下汇集到 IP 协议中
补充:
☆ IP 层可以支持多种运输层协议,这里只是画出来最主要的两种。
☆ 从图中我们可以看出 IP 协议在互联网中的核心作用。
☆ 此图的设计理念反映了网络的核心部分越简单越好,一切复杂的部分让网络的边缘部分去实现。
第二章 物理层
本章复习内容: ₍ᐢ..ᐢ₎♡
Ø 物理层的基本概念
Ø 数据通信的基础知识
Ø 物理层下面的传输媒体
Ø 信道复用技术(难点)
Ø 数字传输系统
Ø 宽带接入技术
1 物理层的基本概念
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层的作用是:尽可能屏蔽掉不同传输媒体和通信手段的差异,有助于数据链路层。
物理层的主要任务为确定与传输媒体的接口有关的一些特性,即:
- 机械特性:指明接口的形状和尺寸、连接线数目和排列、固定装置等。
e.g : 全球通用的水晶头 。
- 电气特性:指明在接口的各条连接线上出现的电压的范围。
e.g : 如 5V ~ 10V 的电压范围 。
- 功能特性:指明某条连接线上出现的某电压的意义。
e.g : 如高低电平含义,高电平代表 1,低电平代表 0 。
- 过程特性:指明对于不同功能的各种可能事件的出现顺序。(比如在发送数据比特流之前是否要进行时钟同步)
e.g : 不同功能的的事件顺序描述,如信号 1100 代表同步等 。
2 数据通信的基础知识
数据通信的常用术语:
通信的目的:传送消息 (message)。话音、文字、图像、视频等都是消息。
数据:运送消息的实体,比如 11001001001100111101011011001110……
2.1 数据通信系统的模型
一个数据通信系统可分为三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和 目的系统(或接收端、接收方)。
解释:
源点:源点设备产生要传输的数据。
发送器:通常源点产生的数字比特流要通过发送器编码后才能够在传输系统中进行传输。而典型的发送器就是调制器。
接收器:接收传输系统传送过来的信号,并把它转换为能够被目的设备处理的信号。而典型的接收器就是解调器。
终点:终点设备从接收器获取传送来的数字比特流,并将信息输出。
2.2 信道的几个基本概念
信道表示某一个方向上的信息通道(或某一个方向传送信息的媒体)。一条通信线路往往包含两条信道(发送信道和接收信道)。
信息交互的方式:
-
单向通信(单工通信):只有一个方向的通信而没有反方向的交互。一条线路,一个信道
-
双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。一条线路,两个信道
-
双向同时通信(全双工通信):通信的双方可以同时发送和接收信息。两条线路,两个信道(传输效率最高)
⚠️ ⚠️ ⚠️
1、 信道和通信线路并不是同一个概念。
2、 收音机的无线电广播是单工通信,对讲机工作时使用半双工通信,电话、计算机通信都 是全双工通信。
3、 半双工通信是指通信双方只使用一条通信线路,数据可以沿两个方向传送(所以是两个信道)但同一时刻只能有一个方向的通信。若要改变传输方向,需由开关进行切换。半双工方式要求收发两端都有发送装置和接收装置。由于这种方式要频繁切换方向,故效率低,但可以节约传输线路。
从源点发出的信号(像计算机输出的代表各种文件或图像文件的数据信号)常称为基带信号(即基本频带信号)。基带信号往往包含较多的低频成分和直流成分,必须进行调制(modulation)才能在许多信道中传输。
调制分为两大类。
-
一类是基带调制,即仅对基带信号的波形进行变换,把数字信号转换为另一种形式的数字信号。这种过程又称为编码 (coding),变换后的信号仍是基带信号。
-
另一类是带通调制,即使用载波 (carrier) 进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号。经过载波调制后的信号称为带通信号(即仅在一段频率范围内能够通过信道)。
2.3 数字信号常用的编码方式
不归零制:正电平代表 1,负电平代表 0。
归零制:正脉冲代表 1,负脉冲代表 0。
曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。
差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。
从信号频率中可以看出:
§ 曼彻斯特编码和差分曼彻斯特编码产生的信号频率比不归零制高。
从 自同步能力中可以看出:
§ 不归零制不能从信号波形本身中提取信号时钟频率(即没有自同步能力)。
§ 归零制、曼彻斯特编码和差分曼彻斯特编码具有自同步能力。
2.4 基本的带通调制方式
§ 调幅 (AM):载波的振幅随基带数字信号而变化。
§ 调频 (FM):载波的频率随基带数字信号而变化。
§ 调相 (PM):载波的初始相位随基带数字信号而变化。
一般为了达到更高的信息传输速率,必须采用技术上更为复杂的多元制的振幅相位混合调制方法。例如:正交振幅调制 QAM 。
2.5 信道的极限容量
任何实际的信道都不是理想的,都不可能以任意高的速率进行传送。
码元传输的速率越高、信号传输的距离越远、噪声干扰越大或传输媒体质量越差,在接收端的波形的失真就越严重。
码间串扰:具体的信道所能通过的频率范围总是有限的。信号中的许多高频分量往往不能通过信道。如果信号中的高频分量在传输时受到衰减,那么在接收端收到的波形前沿和后沿就变的不那么陡峭了,每一个码元所占的时间界限也不再是很明确的,而是前后都拖了 “尾巴”。这样,在接收端收到的信号波形就失去了码元之间的清晰界限。这种现象叫做码间串扰。
为了避免码间串扰,1924 年,奈奎斯特 (Nyquist) 就推导出了著名的奈氏准则。他给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。
奈氏准则:在带宽为 W (Hz) 的低通信道中,若不考虑噪声影响,则码元传输的最高速率是 2W Baud(码元 / 秒)。传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
⚠️ ⚠️ ⚠️
1、这里的单位是 码元 / 秒 ,即 Baud(波特)。因为波特(Baud)和 比特(bit)是两个不同的概念。
2 、 可通过编码的方法让每一个码元携带更多比特的信息量,但这样做会增加码元的种数, 在实际有噪声干扰的信道中,大大增加了解码的难度。
信噪比 :
-
实际的信道都是有噪声的,但噪声的影响是相对的。如果信号相对较强,则噪声的影响就相对较小。
-
信噪比就是信号的平均功率和噪声的平均功率之比,常记为 S/N。若以分贝 (dB) 为单位,则信噪比 (dB)= 10 log10(S/N)(dB) 。例如当 S/N =1000 时,信噪比为 30dB 。
香农公式 :
在带宽受限且有高斯噪声干扰的信道中,信道的极限信息传输速率 C = W·log2(1+S/N)(bit/s)
• W 为信道的带宽,单位是 Hz;
• S 为信道内所传信号的平均功率;
• N 为信道内部的高斯噪声功率。
• 信道的带宽或信道中的信噪比越大,则信道的极限信息传输速率就越高。
• 注意单位是 bit/s , 不是码元 / 秒。
奈氏准则和香农公式的意义 :
奈氏准则:适用于理想低通信道;激励工程人员不断探索更加先进的编码技术,使每一个码元携带更多比特的信息量;
香农公式:适用于真实信道;告诫工程人员,在实际有噪声的信道上,不论采用多么复杂的编码技术,都不可能突破信息传输速率的上限。
随堂练习:若某低通信道在无噪声情况下的极限数据传输速率不小于其在信噪比为 30 dB 条件下的极限数据传输速率,则信号状态数至少是多少个 ?
解:设低通信道的带宽为 W(Hz),由奈氏准则可知,码元传输速率的上限是 2W(码元 / s)。假设一码元携带的信息量为 n(bit),则极限数据传输速率为 2nW(bit/s)。
由 30=10log10(S/N) 可得 S/N=1000,由香农公式可知极限信息传输速率为 W·log21001(bit/s)。令 2nW ≥ W·log21001,可得 2n ≥ log21001,并注意到 n 为整数,于是 n 的最小值为 5,信号状态数为 =32 。
3 物理层下面的传输媒体
传输媒体可分为两大类:
- 导引型传输媒体:电磁波被导引沿着固体媒体(铜线或光纤)传播。
1、双绞线
2、同轴电缆
3、光缆
- 非导引型传输媒体:指自由空间。在非导引型传输媒体中电磁波的传输常称为无线传输。
4 信道复用技术
复用 (multiplexing) 是指多个用户使用一个共享信道进行通信。
频分复用 FDM(Frequency Division Multiplexing)
概念:将整个带宽分为多份。用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
所有用户在同样的时间占用不同的带宽(即频带)资源。(这里的带宽是频率带宽不是数据的发送速率)
通过频分复用共享信道也叫作频分多址 FDMA(FrequencyDivision MultipleAccess)。
时分复用 TDM(Time Division Multiplexing)
概念:将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个用户在每一个 TDM 帧中占用固定序号的时隙。(这里的帧和数据链路层的帧是完全不同的概念)
每一个用户所占用的时隙周期性地出现,其周期就是 TDM 帧的长度。所有用户是在不同的时间占用同样的频带宽度。
通过时分复用共享信道也叫作时分多址 TDMA(TimeDivision Multiple Access)。
从下面图解不难看出时分复用可能会造成线路资源的浪费。
原因:使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。
为了能提高线路资源的利用率,就对时分复用进行了改进。
统计时分复用 STDM(StatisticTDM)
-
STDM 帧并不是固定分配时隙的,而是按需动态的分配时隙,因此统计时分复用可以提高线路的利用率
-
每一个 STDM 帧中的时隙数小于用户数。
-
当一个帧的数据放满了,就发送出去。
-
一个用户所占用的时隙并不是周期性的出现。
波分复用 WDM(WavelengthDivision Multiplexing)
波分复用就是光的频分复用。使用一根光纤来同时传输多个载波信号。
码分复用 CDM(CodeDivision Multiplexing)
通过码分复用共享信道也叫作码分多址 CDMA (CodeDivision Multiple Access)。
优势:各个用户使用经过特殊挑选的不同码型,因此彼此之间不会造成干扰, 因此广泛使用在移动通信中,特别是在无线局域网中。
工作原理:
在 CDMA 中,每一个比特时间被划分为 m 个短的间隔,每一个间隔称为一个码片 (chip)。通常 m 的值是 64 或 128,但为了讲述方便,下文取 m=8。
使用 CDMA 的每一个站被指派一个唯一的 m bit 码片序列:
-
若发送比特 1,则发送自己的 m bit 码片序列;
-
若发送比特 0,则发送该码片序列的二进制反码。
例如,S 站的 8 bit 码片序列是 00011011。
• 发送比特 1 时,就发送序列 00011011;
• 发送比特 0 时,就发送序列 11100100。
⚠️ ⚠️ ⚠️
一般为了运算的方便,将码片中的 0 写为 - 1,将 1 写为 + 1.
则 S 站的码片序列向量为:(–1–1 –1 +1 +1 –1 +1 +1)。
既然是为了运算方便,那这些码片序列有什么联系吗?
CDMA 系统的一个重要特点就是:每个站的码片序列各不相同,并且两两正交。
公式说明:
令向量 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-1-1+1-1+1-1] /8 = 0 , 所有 S 和 T 正交。
通过正交关系这一个重要的特性,我们还能推出其他重要关系:
1、任何一个码片向量和该码片向量自己的规格化内积值都是 1。
2、一个码片向量和该码片反码的向量的规格化内积值都是 - 1。
3、如果一个 “码片向量 S” 和 另一个 “码片向量 T” 是正交,那么就会有如下重要的性质:
-
S 和 T 正交
-
S 和 “T 的反码” 正交
-
“S 的反码” 和 T 正交
-
“S 的反码”和 “T 的反码” 正交
这些性质都是十分重要的,这里给出实际样例图阐述~
解释:
那么,在接收端要想得到 S 站的数据码元,就要规格化内积 S * (Sx + Tx) 。
而 S * (Sx + Tx) = S * Sx + S * Tx = S * Sx + 0 = S * Sx 。
根据前面的性质,S 和 Tx 规格化为 0,如果 Sx 是 S 的反码,则规格化为 - 1,对应 “0” 比特。如果 Sx 和 S 相同,则规格化为 +1,对应 “1” 比特。
用实际数据在来计算一下,不然光讲可能不太懂~
S:(-1-1 -1 +1 +1 -1 +1 +1),
Sx:(-1 -1 -1 +1 +1 -1 +1 +1),(-1 -1 -1 +1 +1 -1 +1 +1),(+1 +1 +1 -1 -1 +1 -1 -1),
Tx:(-1 -1 +1 -1 +1 +1 +1 -1),(-1 -1 +1 -1+1 +1 +1 -1),(+1 +1 -1 +1 -1 -1 -1 +1),
Sx+Tx:(-2-2 0 0 +2 0 +2 0),(-2 -2 0 0 +2 0 +2 0),(+2 +2 0 0 -2 0-2 0),
S*(Sx+Tx) : 1 , 1 , -1 , 所以发送的数据是 1 , 1 , 0
同理如果你要想得到 T 站的数据码元,就要规格化 T *(Sx + Tx)。
随堂练习:
解:
(A * R)/ 8 = 1;A 发送 1
(B * R)/ 8 = -1; B 发送 0
(C * R) / 8 = 0; C 没发送任何数据
(D * R)/ 8 = 1; D 发送了 1
5 数字传输系统
早期数字传输系统的缺点:
-
速率标准不统一
-
不是同步传输
现代的传输网络的传输媒体:光纤。
最初的在数字传输系统中使用的传输标准是脉冲调制 PCM。现在高速的数字传输系统使用同步光纤网 SONET(美国标准)或 同步数字系列 SDH(国际标准)。
同步光纤网络 (SONET):是数据在光学媒介上同步传输的 ANSI 标准。与 SONET 相当的国际标准是同步数字层次 (SDH)。它们制定了一个标准,这样国际数字网络就可以互联,现有的传统传输系统也可以利用光学媒介的优点。
6 宽带接入技术
从宽带接入的媒体来看,可分为两大类:
-
有线宽带接入(这里只探究这个)
-
无线宽带接入(过于复杂,后续讨论)
用户到互联网的宽带接入方法有这三种:
【1】ADSL 技术:
非对称数字用户线 ADSL(Asymmetric Digital Subscriber Line) 技术是用数字技术对现有模拟电话的用户线进行改造,使它能够承载宽带数字业务。
§ 标准模拟电话信号的频带在 300~3400 Hz 的范围内,而用户线本身实际可通过的信号频率超过 1 MHz。
§ ADSL 技术就把 0~4kHz 低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给用户上网使用。
ADSL 的特点:
1、非对称:下行(从 ISP 到用户)带宽远大于上行(从用户到 ISP)带宽。
2、 需要在用户线的两端各安装一个 ADSL 调制解调器。
DMT 调制技术:
DMT 调制技术采用频分复用的方法,把 40 kHz 以上一直到 1.1 MHz 的高端频谱划分为许多的子信道,其中 25 个子信道用于上行信道,而 249 个子信道用于下行信道,并使用不同的载波进行调制。
每个子信道占据 4 kHz 带宽,并使用不同的载波(即不同的音调)进行数字调制。
ADSL 调制解调器又称为接入端接单元 ATU (Access Termination Unit)。ATU-C (C 代表端局 Central Office)、ATU-R (R 代表远端 Remote) 都是调制解调器,只是所在地不同。
ADSL 最大的好处就是可以利用现有电话网中的用户线,而不需要重新布线。
第二代 ADSL:
得到了更高的数据率,采用无缝速率自适应技术,可在运营中不中断通信和不产生误码的情况下,自适应的调整数据率。
【2】光纤同轴混合网 (HFC 网)
1、HFC(Hybrid Fiber Coax) 网是在目前覆盖面很广的有线电视网的基础上开发的一种居民宽带接入网。
2、HFC 网利用已经有相当大的覆盖面的有线电视网,除可传送电视节目外,还能提供电话、数据和其他宽带业务。
3、早期的有线电视网是树形拓扑结构的同轴电缆网络,对电视节目进行单向传输。通过将原有线电视网中的同轴电缆主干部分改换为光纤,变成了现在的光纤同轴混合网。
4、HFC 网具有双向传输功能。
HFC 网的结构图解:
光纤从头端连接到光纤节点 (fiber node),在光纤节点光信号被转换为电信号,然后通过同轴电缆传送到每个用户家庭。
HFC 网用户端需要使用的设备:
1、机顶盒(set-topbox)
• 使现有的模拟电视机能够接收数字电视信号。
• 连接在同轴电缆和用户的电视机之间。
2、电缆调制解调器(cablemodem)
• 使用户计算机能够利用 HFC 网接入互联网。
• 连接在同轴电缆和用户计算机之间。
• 不需要成对使用,只需安装在用户端。
• 可以集成在机顶盒里面。
【3】FTTx 技术
§ FTTx 表示 FiberTo The…(光纤到…),字母 x 代表不同的光纤接入地点,也就是光电进行转换的地方。
§ 光纤到户 FTTH (Fiber To The Home):光纤一直铺设到用户家庭。
§ 光纤到大楼 FTTB (Fiber To The Building):光纤进入大楼后就转换为电信号,然后用电缆或双绞线分配到各用户。
另外还有 FTTC、FTTZ、FTTF、FTTO、FTTD 等不同形式。
无源光网络 PON:为有效利用光纤资源,在光纤干线和用户之间使用无源光网络 PON。无源光网络无须配备电源,长期运行和管理成本低。
最流行的无源光网络是以太网无源光网络 EPON 和吉比特无源光网络 GPON。
宽带接入技术这里讲的有点多,但部分学校又不会考察太多,甚至不会考察,这里就当扩充下课外知识吧。
第三章 数据链路层
1 数据链路层概述
数据链路层使用的信道主要有以下两种类型:
- 点对点信道:这种信道使用一对一的点对点通信方式。
- 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
在复习之前,先看一下互联网进行通信时数据链路层所处的位置(两台主机之间)
数据链路和帧 数据链路和帧
数据链路和帧
链路:
- 从一个节点到相邻节点的物理线路。
- 链路只是一条通信路径的组成部分。
数据链路 :
- 要传送数据,除了物理线路外,还必须有通信协议来控制数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 现在最常用的方法是使用网络适配器 (即网卡,既有硬件也包括软件) 来实现这些协议。一般的适配器都包括了数据链路层和物理层这两层的功能。
**帧:**数据链路层的协议数据单元
图示:
2 三个基本问题三个基本问题
在点对点信道的数据链路层进行传输时,我们需要考虑以下三个基本问题。
封装成帧 :
封装成帧: 就是在一段数据的前后分别添加 首部 和 尾部 ,把它构成一 个 帧。发送帧时,从首部开始发送。
- 首部和尾部的一个重要作用就是帧定界(确定帧的界限)。
- 首部和尾部还包括许多必要的控制信息。不同数据链路层协议,首部和尾部的格式不同。
- 每一种数据链路层协议都规定了所能传送的数据部分长度上限,即最大传送单元 MTU
- 帧定界一般使用特殊的控制字符 SOH(Start Of Header)和 EOT
若忽略与帧定界无关的控制信息,则帧可表示如下:
容易出现的相关问题:
(1) 假设发送端由于故障发送中断,故障消除后又重新开始发送。由于使用了帧定界符,接收端就会知道前面收到的数据是个不完整的帧(只有 SOH 而没有 EOT),而对于不完整的帧,会直接丢弃。
(2) 如果数据中的某个字节的二进制代码恰好和 SOH (00000001)或 EOT (00000100)一样,数据链路层就会错误地 “找到帧的边界”,导致发生错误。
透明传输
**透明传输:**是指无论什么样的数据,都能够不受阻碍地进行传输。
而上面提到的第二个问题显然不是 “透明传输” ,而为了解决透明传输的问题,就要采用字节填充的方法**:**
原理解释:
- 发送端的数据链路层在数据中出现的控制字符SOH 或 EOT 的前面插入一个转义字符 ESC;
- 接收端的数据链路层遇到 ESC 后,会跳过检测下一个字节,并将 ESC 删去。这样在数据中就不会检测到SOH 或 EOT,并能将插入的ESC 删去;
- 如果 ESC 也出现在数据当中,为了避免被误删,在 ESC 前面也插入一个转义字符。这样,前面的 ESC 被删去,后面的 ESC 因跳过检测而被保留。
注意:MTU 指的是帧中原始数据的最大长度,不包括填充的数据。
差错检测(重点)
现实的通信链路都不会是理想的,这就是说:比特在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
- 比特差错是传输差错的一种,另一种是【帧丢失、帧重复、帧失序】(很复杂,本章不讲,后续会讲)
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER 。
- 误码率不可能下降到零,为了保证数据传输的可靠性,必须采用差错检测措施。
- “无比特差错”和 “无传输差错” 是不同的概念。在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。要做到可靠传输还必须再加上编号、确认和重传机制。
在数据链路层传送的帧中,广泛使用了 循环冗余检验 CRC 的检错技术 。
大概过程:
- 假定发送端的原始数据为 k 个比特。
- 对原始数据进行 CRC 运算,产生 n 位冗余码供差错检测使用。
- 将原始数据和冗余码构成帧发送出去。
- 接收端检验。
重点:冗余码的计算 (必考)
计算演示:
用模 2 运算进行加法运算时不进位,例如:1111+1010 = 0101。减法和加法一样,按加法规则运算。
其实你也可以理解为, 二进制数进行按位 “异或” 运算,即相同为 0,不相同为 1。
接收端检验:
你可以自行带入上面那段计算演示,进行检验,很容易理解的。
只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错(即出现误码后接收端校验余数仍为零)的概率就很小很小。
可以用多项式来表示循环冗余检验的除数,如用多项式 P(X) = X3 + X2 + 1 表示 1101。这种多项式叫做生成多项式。
3 点对点协议 PPP
对于点对点链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP。
用户通过 ISP 接入互联网时,用户计算机和 ISP 进行通信时所使用的数据链路层协议就是 PPP 协议 。
从 PPP 协议设计需求上,理解它的功能。
- 简单:不要求可靠传输;
- 封装成帧:规定特殊的字符作为帧定界符;
- 透明性:解决透明传输的问题;
- 多种网络层协议:能够同时支持多种网络层协议;
- 多种类型链路:能够在多种类型的链路上运行;
- 差错检测:能够对收到的帧进行检测,并立即丢弃有差错的帧;
- 检测连接状态:能够及时自动检测出链路是否处于正常工作状态;
- 最大传送单元:对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值(1500 字节);
- 网络层地址协商:提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址;
- 数据压缩协商:提供一种方法来协商使用数据压缩算法。
PPP 协议的组成:
主要以下三大部分:
(1) 对各种协议数据报的封装方法(封装成帧)。
(2) 链路控制协议 (Link Control Protocol, LCP),LCP 协议是 PPP 协议的一部分。它用于建立、配置、测试数据链路的连接。
(3) 一套网络控制协议 (Network Control Protocol, NCP),NCPs 是一系列协议,用于建立和配置不同的网络层协议。每个 NCP 协议都支持不同的网络层协议,比如 IP 协议,OSI 的网络层,苹果的 Appple Talk 等。
PPP 协议的帧格式
各字段的意义:(注意不要和后面的 MAC 帧格式混为一谈)
PPP 帧的首部和尾部分别为四个字段和两个字段。
- 首部的第一个字段和尾部的最后一个字段都是标志字段 F (Flag),规定为 0x7E(符号 “0x” 表示它后面的字符是用 16 进制表示的,0x7E 的二进制形式:01111110 )。标志字段就是 PPP 帧的定界符,连续两帧之间只需要用一个标志字段(如果出现连续两个标志字段,就表示这是一个空帧,应丢弃)。
- 地址字段 A 规定为 0xFF(11111111),控制字段 C 规定为 0x03(00000011)。这两个字段没有实际意义,并没有携带 PPP 帧的信息。
- 协议字段(2 字节)指明信息部分的类别,当协议字段为 0x0021 时, PPP 帧的信息字段 就是 IP 数据报,当为 0xC021,则信息字段是 PPP 链路控制协议 LCP 的数据,当为 0x8021,表示这是网络层的控制数据……….. 。
- 信息字段长度可变,不超过 1500 字节。
- 尾部的第一个字段 (2 字节) 是使用 CRC 的帧检验序列 FCS 。
如果信息字段中出现 0x7E 这样的比特序列,会被误认为是 “标志” 字段,必须采取一定的方法解决这个问题,这也是之前我们提到的实现透明传输。
这里我们会从更深层角度探讨实现透明传输,即字节填充和零比特填充。
字节填充
当 PPP 使用异步传输(以字节为单位)时,采用字节填充的方法实现透明传输,转义符定义为 0x7D:
具体做法:
- 将信息字段中出现的每一个 0x7E 字节转变为 2 字节序列:0x7D 0x5E。
- 若信息字段中出现 0x7D 字节, 则将其转变为 2 字节序列:0x7D 0x5D。
- 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面加入一个 0x7D 字节,同时将该字符的第 5 位取反 (即加上 0x20)。(解释:例如出现 0x03(00000011)【在控制字符中是 “传输结束”ETX】就要把它的第五位‘0’取反为‘1’ ,变为 00100011(0x23)所以就转变成了:0x7D , 0x23)
总结:
- 发送数据时在需要转义的字节前面插入转义符 0x7D,并把需要转义的字节的第 5 位取反。
- 在接收端,每检测到一个 0x7D 字节,就把它删掉,并把紧接着的下一个字节的第 5 位取反即可还原出原来的数据。
⚠️⚠️⚠️
异步传输以字节为单位,一个字节是 8 个二进制位。
字节的最右边是最低位,即第 0 位
零比特填充
当 PPP 使用同步传输(连续比特流传送)时,采用零比特填充的方法实现透明传输:
具体做法:
- 在发送端,只要发现有 5 个连续的 1,则立即填入一个 0,以保证不会在信息字段中出现 6 个连续的 1。
- 在接收端,先找到标志字段 F 以确定帧的边界,然后对其中的比特流进行扫描,每当发现 5 个连续的 1 时,就把这 5 个连续的 1 后的一个 0 删除,以还原成原来的信息比特流。
ppp 协议的工作状态
4 使用广播信道的数据链路层
局域网的数据链路层
广播信道可以进行一对多的通信,下面讨论的局域网使用的就是广播信道。
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和主机数目均有限。
局域网主要有以下优点:
- 具有广播功能,从一台主机可以很方便地访问全网。局域网上的主机可共享连接在同一个局域网上的各种硬件和软件资源。
- 便于系统的扩展 和逐渐演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和生存性
局域网中的拓扑结构:
⚠️⚠️⚠️
局域网覆盖范围有限,而且局域网中的节点主要是主机,所以局域网无法形成网状结构。
局域网使用的传输媒体:
- 双绞线:最便宜最常用;
- 光纤:高数据率、长距离传输时使用。
信道共享的方法主要有两类:
- 静态划分信道,又称为信道复用(代价较高):
• 频分复用
• 时分复用
• 波分复用
• 码分复用
2. 动态媒体接入控制,又称为多点接入:
• 随机接入 :所有的用户可随机地发送信息;需要有解决碰撞的机制。
• 受控接入: 用户不能随机地发送信息而必须服从一定的控制(目前在局域网中使用较少)。
适配器
既然谈到了局域网,那么计算机是怎样连接到局域网上的呢?
计算机与外界局域网的连接是通过适配器。
适配器:是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。
适配器本来是主机箱内插入的一块网络接口板(又称为” 网络接口卡 NIC“,简称” 网卡 “),但是现在的计算机主板上就已经嵌入了这种适配器,不在使用单独的网卡了,因此现在的计算机上的适配器不是独立的。
注意:计算机的硬件地址(在后续的以太网的 MAC 层讨论)就在适配器的 ROM 中,而计算机的软件地址—— IP 地址(在网络层会讲)则在计算机的存储器中。
适配器的作用
-
要进行数据串行传输和并行传输的转换。
-
对数据进行缓存。
-
实现以太网协议。
-
管理该适配器的设备驱动程序安装在计算机的操作系统。
CSMA/CD 协议(重点)CSMA/CD
现在以太网已成为了局域网的代名词。以太网采用的是随机接入的方式。
最初的以太网是将许多计算机都连接到一根总线上。如图:
- 总线上的每一台计算机都能检测到计算机B 发送的数据。
- 每一台计算机的网卡都有一个全球唯一的硬件地址。计算机B在发送数据帧时,在帧的首部写明计算机D的硬件地址。
- 只有计算机的硬件地址与数据帧首部的目的地址一致时才会接收这个帧,因此只有计算机D接收这个数据帧。
- 其他所有的计算机(A、C和E)检测到不是发送给它们的数据帧就丢弃。
⚠️⚠️⚠️
- 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
- 当目的主机收到有比特差错的数据帧时,就把帧丢弃,其他什么也不做,是否需要重传则由高层协议来决定。
以太网发送的数据信号使用曼彻斯特编码。
如图:曼彻斯特编码的编码方法是把每个码元分成两个相等的间隔(每一个码元都被调成两个电平)。码元 1 前一个间隔为低电压(也可采用相反的约定),后一个间隔为高电压,码元 0 则相反。这样就保证了在每个比特的正中间出现一次电压的转换,而接收端就能利用这种电压的转换很方便的把位同步信息(比特同步信号)提取出来(优点)。
当然我们还能提取出更重要的信息:曼彻斯特编码所占的频带宽度比原始的基带信号增加了一倍(每秒传输的码元数加倍了),所以数据传输速率(bit/s)只有调制速率的 1/2(码元 / s) 。(这也是它的缺点所在)。
原因:比如说在一个时间内,要发送一个比特 1,使用一个高电平就可以了,而使用曼彻斯特编码,它需要一个高和一个低电压,这个时候传输的码元(波形)就加倍了,因此频带宽度就加倍了,导致传输等量的数据所需的带宽增大了一倍 ,最后曼彻斯特编码的效率只可达到 50% 左右。(关于编码和调制,可以复习之前的物理层)。
下面介绍 CSMA/CD 协议的要点:——>
当多台计算机同时发送数据时,会产生碰撞,导致发送失败。以太网使用 CSMA/CD 协议来解决这一问题。
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) **意思是****载波监听多点接入** / 碰撞检测**。**
- 多**点**接入**:就是说明**这是总线型网络**,许多**计算机以多点接入的方式连接在一根总线上。
- 载波监听**:****每**一台计算机在**发送数据之前要先检测一下总线上是否有其他计算机在发送**数 据。如果**有,则****暂时先不发送数据,等到信道空闲时再发送。**
- 碰撞检测**:计算机****边发送数据边检测信道上的信号**电压的变化情况,以**便判断是否与其他计 算机发生****碰撞。**
- 当多台计算机同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加)。
- 当计算机检测到信号电压变化幅度超过一定的门限值时,就认为总线上至少有两台计算机同时在发送数据,即产生了碰撞。
- 所谓 “碰撞” 就是发生了冲突。因此 “碰撞检测” 也称为“冲突检测”。
- 任何一台正在发送数据的计算机,一旦发现总线上出现了碰撞,就要立即停止发送以免浪费网络资源,然后等待一段随机时间后再次发送。
那么问题来了:既然每一台计算机在发送数据之前已经监听到信道为空闲,那么为什么还会出现碰撞呢?
答:因为电磁波在总线上的传播速率是有限的,当某台计算机监听到总线空闲而发送数据时,可能已经有其他计算机在发送数据了,只是因为传播时延还没有到达该计算机那里。
传播时延对载波监听的影响:
对上述图解,详细解释一下。
最终,A 和 B 发送数据均失败,它们都要推迟一段时间再重新发送。
从上述我们不难看出;
- 使用 CSMA/CD 协议的以太网不能进行全双工通信而**只能进行双向交替通信**(半双工通信)。(一个站不能同时进行发送和接收,但可以边发送边监听信道)
- **每台计算机在****发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。**
- 16 字总结:先听后发,边听边发,冲突停止,延迟重发。
根据上图,一台计算机在发送数据帧后最多经过时间 2t 就可知道自己所发送的数据帧是否遭受了 碰撞。(一台计算机在发送数据后,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞)
因此为了尽可能减少重传时再次发生冲突的概率,规避算法有如下具体的规定:
- 基本规避时间为 2t (2t 称为争用期或碰撞窗口), 以太网规定具体的争用期时间为 51.2µs (这也是为什么 25.6*10^-6 * 2.0*10^8 = 5120m【实际上并没有这么远】局域网覆盖范围有上限的原因吧),对于 10Mbit/s 以太网也可以说争用期是 512 比特时间,1 比特时间就是发送 1 比特需要的时间。例如:争用期是 512 比特,即争用期是发送 512 比特所需时间。
- 发生碰撞的计算机在停止发送数据后,等待信道空闲后不是立即发送而是要推迟(即退避)一个随机的时间才能再发送数据。具体的截断二进制指数退避算法如下: § 规 定 基本退避 时间为争用 期 2 t ; § 定义参数 k , k = Min[ 重传次数 , 10 ] ; § 从整数集合 [0 , 1, …, (2^ k - 1)] 中随机地取出一个数,记为 r 。 重传应推后的时间就是 r 倍的基本退避时间。 § 当 重传达 16 次 仍不能成功 时则丢弃 该帧,并向高层报告 。
最短有效帧长
如果一个帧太短,发送方很快就能发送完毕而检测不到碰撞,但这个帧却有可能在到达目的主机的途中与其他主机发送的帧发生碰撞。由于不再监听信道,发送方无法知道这个帧发生了碰撞。
因此:
- 对于 10 Mbit/s 的传统以太网,在争用期内可发送 512 bit,即 64 字节。若前 64 字节未发生碰撞,则后续发送的数据就一定不会发生碰撞。
- 以太网规定最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是无效帧。如果要发送的数据非常少,则必须加入一些填充字节,使帧长不小于 64 字节。
关于涉及最短帧长的考点:
需要理解最短帧长的概念及计算公式, 最短帧长就是要求发送方在数据的传播过程中仍然不停地发送数据帧,即争用时间内发出的数据总数。 在 CSMA/CD 协议中,只有收到大于最短帧长的数据帧且经过争用期这段时间还没有检测到碰撞,才认为未检测到数据冲突。
最小数据帧长度 = 2 _ 传播时延 _ 数据传输率
因此当最短数据帧长度减小时,根据公式,如果保持数据传输率不变,传播时延就必须要减少,而传播时延等于站点间距离除于数据的传播速率,从而站点间距离就必须要减少。
帧间最小间隔
以太网还规定帧间最小间隔为 9.6 µs 。一台计算机在检测到总线开始空闲后,还要等待 9.6 µs 才能再次发送数据。
这样做是为了使刚刚收到数据帧的计算机的接收缓存来得及清理 ,为接收下一帧做好 准备。
使用集线器的星形拓扑
传统以太网(10 Mbit/s)使用的传输媒体一直在变,从粗同轴电缆到细同轴电缆再到现在流行的双绞线。
使用双绞线的以太网往往采用星形拓扑,在星形的中心使用一种可靠性非常高的设备,叫做集线器
我们谈论这个肯定有它的意义:
- 这种使用双绞线的星形以太网又叫 10BASE-T 以太网。“10” 代表 10 Mbit/s 的数据率,BASE 表示连接线上的信号是基带信号,T 代表双绞线。
- 10BASE-T 以太网的通信距离稍短,每个站到集线器的距离不超过 100 m。
- 10BASE-T 以太网是局域网发展史上的一个非常重要的里程碑,它奠定了以太网在局域网中的统治地位。
当然还有一个重要知识点,就是学习集线器
- 集线器使用电子器件来模拟实际电缆线的工作。使用集线器的以太网在物理上是一个星形网,但在逻辑上仍是一个总线网,各主机使用的还是 CSMA/CD 协议(更具体来说,是各主机中适配器执行 CSMA/CD 协议),并共享逻辑上的总线。
- 一个集线器有许多端口,每个端口通过 RJ-45 插头用两对双绞线与一台计算机的适配器相连。
- 集线器工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测。
当然我这里只讲了一些重要的概念,还有许多细节的地方没有过多阐述了,感兴趣的可以自行查找资料。(大概了解就行了)
以太网的信道利用率
若一个 10Mbps(Mbit/s) 的以太网同时有 10 个站工作,每个站所能发送数据的平均速率并不是 1 Mbps 。因为多个站在以太网上同时工作就可能发生碰撞。发生碰撞时信道资源被浪费
扣除这些浪费,以太网的信道利用率不可能达到 100%。
一个 帧经过若干次碰撞最终发送成功所 需 的时间 :
解释:上图就是以太网的信道被占用的情况。一个站在发送帧时出现了碰撞。经过一个争用期 2t 后(t 是以太网单程端到端的传播时延),可能又出现了碰撞。这样经过若干个争用期后,一个站就发送成功了,假定发送帧所需要的时间是 To (它等于帧长(bit)除以发送速率)
⚠️⚠️⚠️ 成功发送出一个帧后,需要占用信道的时间实际上是:To + t (t 是以太网单程端到端的传播时延),这里要多一个 t , 实际上不难理解,这是因为发送的最后一个比特还要再经过时间 t 才能在信道上传送完。就好像火车过一个隧道,**To **就等于一个火车完全进入隧道,可能它的头部已经出隧道了,但只有尾部彻底出来隧道(再经过 t),才真正通过。
从上图可以看出,要提高以太网的信道利用率,就必须 减小 t 与 T0 之比。在以太网中定义参数 a 为 t 与 T0 之比:
- a→0 表示 t 非常小,只要一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
- a 越大,表明争用期所占的比例越大,每发生一次碰撞浪费的信道资源就越多,信道利用率就越低。
解决方法:
a 的值应当尽可能小些,这就要求 t 的数值小些而 T0 的数值大些:
- 以太网的连线的**长度不能太长,**否则 t 的数值会太大。
- 以太网的帧长不能太短,否则 T0的值会太小。
信道利用率的最大值
假定以太网上的 各主机发送数据都不会产生碰撞,并且总线 一旦空闲就有某主机立即发送数据 。在这种理想情况 下,发送 一帧占用线路的时间是 T 0 + t ,而帧本身的发送时间是 T 0 , 于是极限 信道利用率 S max 为:
实际上,据统计,当以太网的利用率达到 30% 时就已经处于重载的情况,很多的网络容量被网上的碰撞消耗掉了。
以太网的 MAC 层
在局域网中,硬件地址又称为物理地址,或 MAC 地址 (因为这种地址用在 MAC 帧中),长度为 48 位(ip 地址:32 位)。以太网中的数据帧又叫 MAC 帧。
适配器从网络上每收到一个 MAC 帧就先用硬件检查 MAC 帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理;否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧” 包括以下三种帧:
- 单播帧(一对一),即帧的目的 MAC 地址与本站的硬件地址相同。
- 广播帧(一对全体),即发送给本局域网上所有站点的帧,此时帧的目的MAC地址为全1(0xFFFFFFFFFFFF)。
- 多播帧(一对多),即发送给本局域网上一部分站点(包含本站在内)的帧。
MAC 帧的格式
常用的以太网 MAC 帧格式有两种标准,一种是 DIX Ethernet V2 标准 (即以太网 V2 标准),另一种是 IEEE 的 802.3 标准 。(但大家也常常把以太网 V2 称为 IEEE802.3 标准的 MAC 帧,其实并不严格区分二者,区别一点都不大,详细请见:P99 下面那段话)
⚠️⚠️⚠️MAC 帧是数据帧的一种。而所谓数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如 ip 数据报。
在发送端,数据链路层把网络层传下来得数据封装成帧,然后发送到链路上去;在接收端,数据链路层把收到的帧中的数据取出并交给网络层。不同的数据链路层协议对应着不同的帧,所以,帧有多种,比如 PPP 帧、MAC 帧等,其具体格式也不尽相同。
不要和之前讲的使用点对点信道的 PPP 帧格式(广域网范畴)混为一谈!!!!
如图,这里只介绍使用最多的以太网 V2 的 MAC 帧格式 (假定网络层使用的是 IP 协议,实际上其他的也行)
从图中可以看出,以太网 V2 的 MAC 帧由五个字段组成,前两个字段分别为 6 字节长的目的地址和源地址字段。第三个字段是 2 字节长的类型字段(用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议【例如:当类型字段的值是 0x0800 时,就表示上层协议是 IP 协议】) ,第四个字段是数据字段(最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度 ), 最后一个字段是 4 字节的帧检验序列 FCS(使用 CRC 检验)。
若数据字段的长度小于 46 字节,封装成帧时就会在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
MAC 帧的首部并没有指出数据字段的长度是多少。在有填充字段的情况下,接收端的数据链路层在剥去首部和尾部后就把数据字段和填充字段一起交给上层协议。但这完全不必担心,上层协议具有识别有效的数据字段长度的功能。例如,当上层使用 IP 协议时,其首部就有一个 “总长度” 字段。
MAC 帧中没有帧结束定界符。由于以太网使用曼彻斯特编码,当 MAC 帧发送完毕后,适配器的接口上就不再有电压变化,接收方可以很容易地找到 MAC 帧的结束位置。
插入的 8 字节比特流由两个字段构成,第一个字段占 7 个字节,叫做前同步码,用来使接收端适配器在接收 MAC 帧时迅速实现位同步。第二个字段是帧开始定界符,表示后面的信息就是 MAC 帧。(从数据链路层向下传到物理层时需要在帧的前面插入 8 字节比特流)。
由于 MAC 帧之间有一定的间隔,因此接收端只要找到帧开始定界符,其后连续到达的比特流就都属于同一个 MAC 帧。所以以太网不需要使用帧结束定界符,也不需要使用字节填充来保证透明传输。
以下为无效的 MAC 帧:
- 帧的长度不是整数个字节
- 用帧检验序列 FCS 查出有差错
- 帧的数据字段的长度不在 46 ~ 1500 字节之间(有效的 MAC 帧长度为64 ~ 1518 字节之间)
接收方 对于 检查出的无效 MAC 帧就简单地丢弃 。
5 扩展的以太网
在许多情况下,我们希望把以太网的覆盖范围扩展。
在物理层扩展以太网
现在,扩展以太网和集线器之间的距离的一种简单方法就是使用光纤和一对光纤调制解调器。
注:光纤调制解调器的作用是进行电信号和光信号的转换。
当以此为基础,使用多个集线器,就可以构成覆盖范围更大的多级星形结构的以太网。
用集线器扩展以太网的优点
- 使不同系的以太网上的计算机能够进行跨系的通信。
- 扩大了以太网覆盖的地理范围。
用集线器扩展以太网的缺点
- 扩展后网络的带宽并未提高,但网络中主机的数目增加,使每台主机分到的带宽降低。
- 如果不同系的以太网使用不同的数据率,那么就不能用集线器将它们互连起来。
注:
碰撞域又称为冲突域。在任一时刻,一个碰撞域中只能有一个站在发送数据。(之前讲的 CSMA/CD 协议里面就有碰撞检测)
在数据链路层扩展以太网
扩展以太网更常用的方法是在数据链路层进行。最初人们使用的是 网桥 (需要了解点击),但后续交换式集线器(以太网交换机或第二层交换机)的问世,很快就淘汰了网桥,因此这里就介绍以太网交换机就 Ok 了。
- 以太网交换机实质上就是一个多端口的网桥,通常都有十几个或更多的端口。
- 以太网交换机的每个端口都直接与一台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据,同时不再使用 CSMA/CD 协议。
- 交换机连接的两个主机可以是不同网络号,因此也可以连接到不同的多个路由器上。
和之间的在物理层用集线器扩展对比,以太网交换机逐渐占据它的市场。
例如:
对于传统的 10 Mbit/s 的 共享式 以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总 带宽的 1 / N 。 使用以太网交换机时 , 假如 每个 接口到主机的带宽还是 10 Mbit/s ,由于每一 个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽, 因此每个用户的带宽还是 10 Mbit/s 。这正是交换机的最大优点 。 以太网 交换机 的每个接口都是一个碰撞域
⚠️⚠️⚠️:这里集线器的出现只是为了说明 以太网 交换机 的每个接口都是一个碰撞域,上述那个【例如】的例子成立是建立在以太网交换机每个端口直接和主机连接,中间可没有集线器,不要因为看到这张图而与上面的在物理层 使用集线器扩展以太网的情况混淆了哦 ~
以太网交换机的自学习功能
以太网交换机是一种即插即用设备,其内部的帧交换表(又叫地址表)是通过自学习算法自动地逐渐建立起来的。
-
开始时,以太网交换机里面的交换表是空的。
-
交换机收到一个帧后先进行自学习:查找交换表中有没有与收到的帧****的****源地址相匹配的项目。** 。如没有,就在交换表中增加一 个新项目:将源地址写入 MAC 地址列,将进入 的 接口写入接口列,并设置有效时间。 。如有,则把原有的项目进行更新 (接口 和 有效时间 ) 。
3. 然后转发这个帧:查找交换表中有没有与收到的帧的目的地址相匹配的项目。
。 如 没有,则 向 除 进入接口外 的所有 其他 接口转发这个帧。
。 如有 ,则还要判断项目中给出的接口是否是该帧进入交换机的接口。如果不是,则按项目中 给出的接口进行 转发;若是,则应丢弃 这个帧(因为这时不 需要交换机转发)。
总结上述过程:
以太网交换机中的 MAC 地址和接口很好理解,那这个有效时间的作用是什么呢?
随堂练习:
扩充知识(补充了解,不需要掌握):
为了避免单点故障,以太网中往往会增加一些冗余的链路。此时,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。
为了解决这种兜圈子的问题,IEEE 的 802.1D 标准制定了一个生成树协议 STP(Spanning Tree Protocol)。
STP 不改变网络的实际拓扑结构,但在逻辑上则切断某些链路以消除网络中的环路,使网络在逻辑上变成树状拓扑,从而消除了兜圈子的现象。一旦出现单点故障, STP 会检测到网络拓扑结构的变化,此时 STP 会恢复冗余的链路并重新生成一个无环路的树状结构。
从总线以太网到星形以太网:
总线以太网使用 CSMA/CD 协议,以半双工方式通信。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。既然连以太网的重要协议 CSMA/CD 都没有,为什么还叫作以太网呢?
原因就是它的帧结构未改变,仍然采用以太网的帧结构。
虚拟局域网
我们学校不掌握,这里就简要的介绍一下吧。
前瞻:
一个以太网是一个广播域,即以太网中任何一台设备发出的广播帧都能被该网络中的所有其他设备所接收。
一个单位的以太网往往为几个部门所共享,但有些部门的信息是需要保密的(例如财务、人事),许多部门共享一个局域网对信息安全不利。
利用以太网交换机可以很方便、灵活地建立虚拟局域网 VLAN (Virtual LAN),从而把一个较大的局域网,分割成一些较小的局域网。使用虚拟**局域网不但可使广播域范围缩小,还能提高整个局域网的安全性。**虚拟局域网**其实只是局域网给用户提供的一种**服务**(或**功能**),****而****并不是一种新型局域网。**
虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标签 (tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入 VLAN 标签的帧称为 802.1Q 帧。
- 一个虚拟局域网的范围可以跨越多个交换机。划分虚拟局域网的方法有很多种,最常用的是按交换机的接口划分。
- 每台主机都是通过接入链路(access link)连接到交换机的,但主机并不知道 VLAN 的存在,它们发往交换机的帧都是标准以太网帧。
- 两台交换机之间的链路称为汇聚链路(trunk link)。只有在汇聚链路上才会使用 802.1Q 帧 。
需要更多相关知识的学习,请自行查阅其他博客哦。
6 高速以太网
随着电子技术的发展,以太网的速率也不断提升。从传统的 10 Mbit/s 以太网一直发展到现在常用的速率为 1 Gbit/s 的吉比特以太网,甚至更快的以太网。下面简单介绍几种高速以太网技术。
100BASE-T 以太网
速率达到或超过 100 Mbit/s 的以太网称为高速以太网。
100BASE-T 是在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网,又称为快速以太网。
- 快速以太网的 MAC 帧格式仍然是以太网 V2 的帧格式。
- 100 Mbit/s 以太网的物理层标准:(了解就行)
。 100BASE-TX : 2 对 UTP 5 类线或屏蔽 双绞线
。 100BASE-T4 : 4 对 UTP 3 类线或 5 类 线
。 100BASE-FX : 1 对 光纤,发送和接收各用一根
几个必记的知识点:
- 快速以太网可在全双工方式下工作而无冲突发生,此时不使用 CSMA/CD 协议(使用以太网交换机);若在半双工方式工作,则一定要使用 CSMA/CD 协议。
- 快速以太网保持最短有效帧长 64 字节不变,争用期由原来的 51.2 µs 变为 5.12 µs ,帧间最小间隔由原来的 9.6 µs 变为现在的 0.96 µs 。都是 10Mbit/s 以太网的 1/10。
- 快速以太网使用的 MAC 帧格式是 IEEE802.3 标准规定的帧格式,然而其标准并未包括对同轴电缆的支持,这就意味着想从细缆以太网升级到快速以太网的用户必须重新布线。
吉比特以太网
重要知识点:
- 允许在 1 Gbit/s 下以全双工和半双工两种方式工作。
- 使用以太网 V2 的帧格式。(书上说的是 IEEE802.3 协议的帧格式,但正如上面所说的这两种区别不大,可以互相交换的)
- 在半双工方式下使用 CSMA/CD 协议,在全双工方式不使用 CSMA/CD 协议。
- 与 10BASE-T 和 100BASE-T 兼容。
吉比特以太网的物理层标准:(了解就行)
。1000BASE-SX :多模光纤
。1000BASE-LX :单模光纤 / 多模光纤
。1000BASE-CX : 2 对 屏蔽 双绞线(最大长度 25m )
。1000BASE-T : 使用 4 对 UTP 5 类线
吉比特以太网交换机可以直接与多个图形工作站相连,也可以作百兆以太网的主干网,与百兆比特或吉比特交换机相连,然后再和大型服务器连接在一起,如图示例:
扩充:
10 吉比特以太网与 10 Mbit/s,100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同,并保留了 64 字节的最短有效帧长,以便保持兼容性。
10 吉比特以太网只工作在全双工方式,因此不存在争用问题,也不使用 CSMA/CD 协议。
10 吉 比特 以太网的物理层标准 :(了解就行)
。 10GBASE-SR :多模光纤
。 10GBASE-LR :单模光纤
。 10GBASE-ER :单模光纤
。 10GBASE-CX4 : 4 对 双芯同轴电缆
。 10GBASE-T : 4 对 6A 类 UTP 双绞线
第四章 网络层
网络层(network layer)是 OSI 模型的第三层。它是 OSI 参考模型中最复杂的一层,也是通信子网的最高层,它在下两层的基础上向资源子网提供服务。网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务【实现两个不同网络系统之间的数据透明传输】。它通过路由选择算法,为分组通过通信子网选择最适当的路径,以实现网络的互连功能。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、流量控制、拥塞控制等将信息从一台网络设备传送到另一台网络设备。网络层负责在网络中传送的数据单元是分组或包。
网络层是 OSI 参考模型中的第三层,介于传输层和数据链路层之间,它在链路数据层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。
网络层主要是为传输层提供服务,为了向传输层提供服务,则网络层必须要使用数据链路层提供的服务。而数据链路层的主要作用是负责解决两个直接相邻节点之间的通信,但并不负责解决数据经过通信子网中多个转接节点时的通信问题,因此,为了实现两个端系统之间的数据透明传送,让源端的数据能够以最佳路径透明地通过通信子网中的多个转接节点到达目的端,使得传输层不必关心网络的拓扑构型以及所使用的通信介质和交换技术,网络层需要具备如下功能。后续会详细的逐一介绍它的具体功能~
我们知道如果只是同一局域网内的各个计算机之间的通信,单靠物理层和数据链路层就可以建立起主机间通信链路完成用户间的数据通信(这里强调的是信息交付到主机的应用进程前的通信过程,别以为只需要这两层就完了,它上面的三层只是在这里不明显强调而已),但要扩大应用范围,连接不同的局域子网,就需要借助网络层处理各个网络子网的协议【这里值得一提的是:如果一个网络中的用户不能识别其他网络的通信协议和地址规范,那么这两个网络之间就不能进行数据通信】,从而进行计算机的网络互连【不同网络之间进行访问不能通过属于数据链路层地址的 MAC 地址来进行寻址,这需要通过网络层对应的网络地址来进行访问】。
这里要注意区分【相邻节点间】和【端点间】的区别。
这里的节点:可以是运行在数据链路层协议的任何设备,包括主机、路由器、交换机、集线器等
这里的端点:不能和后面要介绍的运输层的 “ 端到端的可靠通信 ” 中端点含义混为一谈,这里的端点强调的是主机,运输层的端点强调的是应用进程,因为严格来讲,IP 协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付到主机中的应用进程,后序请期待运输层更新~。
之前在第一章概述部分就谈到了节点
最后更值得一提的是:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。因此,网络层不提供服务质量的承诺,不保证分组交付的时限,所转送的分组可能出错、丢失、重复和失序。进程之间通信的可靠性由运输层负责。
一、网络层的几个重要概念
1.1 网络层提供的两种服务
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接” 还是 “无连接”)曾引起长期的争论。
而争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
(1)虚电路服务
一种观点认为应当让网络负责可靠交付。当两台计算机通信时,应当先建立一条虚电路,以预留一定的网络资源;然后再使用可靠传输的网络协议,就能实现可靠交付。
虚电路只是一条 逻辑上 的连接,分组都沿着这条逻辑连接按照 存储转发 方式传送,而并不是真正建立了一条物理连接。
虚电路服务与下面要介绍的另一种观点——数据报服务 ,是相补的,对二者的选择取决于应用背景。但是目前现代网络层协议已主要使用后者了~
(2)数据报服务
另一种观点认为,网络层应尽量简单,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。 网络层不提供服务质量的 承诺 , 所 传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证 分组 交付 的时限。
当然这种方式肯定有它的好处:
① 网络中的路由器可以做得比较简单,而且价格低廉。
② 如果主机(即端系统)中的进程之间需要可靠通信,那么就由主机中的运输层负责(包括差错处理、流量控制等)。
③ 网络的造价大大降低,运行方式十分灵活,能够适应多种应用。
④ 促进了互联网的发展。
两者对比:
1.2 网络层的两个层面
路由表用来决策最佳路由 ; 转发表用来转发分组
前瞻:不同网络中的两个主机之间的通信,要经过若干个路由器转发分组来完成。路由器查找转发表,将分组从指明的接口转发到下一个路由器。
转发表是从路由表得出的,而路由表又是由互联网中许多的路由器通过不断交换路由信息产生的。在路由器之间传送的信息有以下2大类:
(1)转发源主机和目的主机之间所传送的数据 (2)路由信息(为数据传送服务)
二者~的具体介绍:见 p117~
可以把网络层抽象地划分为数据层面和控制层面。
数据层面 | 控制层面 |
● 路由器根据本路由器生成的转发表,把收到的分组从查找到的对应接口转发出去。 ● 每个路由器独立工作。 ● 采用硬件进行转发,速度快。 | ● 根据路由选择协议所用的路由算法 计算路由, 创建出本路由器的 路由表。 ● 许多路由器 协同 动作。 ● 采用 软件 计算,速度慢。 |
图解上述两个层面:
路由器的路由选择和分组转发分别处于上述控制层面和数据层面之中(实际上这两种的实现都是在路由器内部完成)。
这里用 ” 控制层面和数据层面 “ 这种概念进行划分,是因为最近网络界提出的:软件定义网络 SDN
上面这两张图区别在于前者每个路由器既有转发表又有路由选择软件【图中可以看出】,后者所有路由器都变得更加简单了(它的路由选择软件不存在),因此路由器之间不在交换路由信息(路由表由远程控制器生成)。当然这种集中控制的网络好处有些,但传统的前者分散控制的网络也有它所不及的优点,因此相铺相成吧。
二、网际协议 IP
网际协议 IP (Internet Protocol) 是 TCP/IP 体系结构中两个最主要的协议之一。与 IP 协议配套使用的还有三个协议:
(1) 地址解析协议 ARP (Address Resolution Protocol)
(2) 网际控制报文协议 ICMP (Internet Control Message Protocol)
(3) 网际组管理协议 IGMP (Internet Group Management Protocol)
这里对于 ICMP 、 IGMP 和 ARP 介绍 及 于 IP 协议的联系后文会陆续介绍~(这里前两个协议画在上面,ARP 画在下面都是有它们的理由……)
2.1 虚拟互连网络
将网络互相连接起来需要使用一些中间设备:
(1) 在物理层使用 转发器 (repeater) 或 集线器 (hub) 。
(2) 在数据链路层使用 网桥 (bridge) 或 交换机 (switch) 。
(3) 在网络层使用 路由器 (router) 。
(4) 在网络层以上使用 网关 (gateway) 。
我们知道:当中间设备是物理层或数据链路层设备时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,在网络层看来仍然是一个网络。 而网络互连是指用路由器将不同的网络连接起来。
当参加互连的计算机网络都使用相同的网际协议 IP 时, 可以把互连以后的计算机网络看成一个虚拟互连网络——各种物理网络的差异性被屏蔽,在网络层上看起来好像是一个统一的网络。
而这种使用 IP 协议的虚拟互连网络又称为虚拟 IP 网。现在的互联网(Internet)就是这种虚拟 IP 网(上层使用 TCP 协议)。
2.2 IP 地址
在 TCP/IP 体系中,IP 地址是一个基本概念。一个连接在互联网上的设备,如果没有 IP 地址,就无法和网上的其他设备进行通信。因此这就是重点!!
2.2.1 IP 地址及其表示方法
整个互联网是一个单一的、抽象的网络,IP 地址就是给每个连接在互联网上的主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的 32 位的标识符。(IP 地址由互联网名字和数字分配机构 ICANN (Internet Corporation for Assigned Names and Numbers) 进行分配。)
为了便于人的书写和记忆,我们常采用点分十进制记法表示:
IP 地址采用两级结构,由两个字段组成。第一个字段是网络号,它标志主机(或路由器)所连接到的网络;第二个字段是主机号,它标志该主机(或路由器)。
IP 地址可记为:
符号 “::=” 表示 “定义为”。从 IP 地址的结构可以看出,IP 地址指明了连接到某个网络上的一台主机(或路由器)。
IP地址规定:前 n 位是主机所连接的网络号,后 (32 - n) 位是主机号。
但是当计算机或路由器获得一个 IP 地址时,怎样知道它的网络号的数 n 是多少?
2.2.2 分类的 IP 地址
在互联网发展早期采用的是分类的 IP 地址:
⚠️⚠️⚠️:(一些特殊的不指派的 IP 地址)
(1)网络号全0和127(01111111)是保留地址,不进行指派。全 0表示 “本网络”,127保留作为本地环回测试地址。
(2)全0和全1的主机号一般不指派。主机号为全0的IP地址表示该网络的地址;主机号为全1的 IP 地址表示该网络上的所有主机,是该网络的广播地址,用于给同一个链路中相互连接的所有主机发送数据包 (此时目的地址当然就被设为了广播地址)
(3) 0.0.0.0 标识本机上的所有网卡。用与 TCP 服务端程序的绑定地址,相当于监听本机的所有网卡。
因此根据上面的信息也就不难理解下面这个表格了:
当然分类的 IP 地址不够灵活,会造成 IP 地址资源的浪费,于是新的无分类编址方法取代了分类的 IP 地址。
2.2.3 无分类编址 CIDR (重点)
无分类编址的全名是无分类域间路由选择 CIDR,它把 IP 地址划分为前后两个部分,前面部分是 “网络前缀”(network-prefix),用来指明网络;后面部分是主机号,用来指明主机。
在使用 CIDR 编址时,IP 地址的定义及示意图如下:
在 CIDR 编址中,网络前缀的位数 n 不固定,可以在 0 ~ 32 之间任意选取。
CIDR 使用 “斜线记法”(slash notation),或称为 CIDR 记法,即在 IP 地址后面加上一个斜线 “/”,斜线后面写上网络前缀所占的位数。例如:128.14.35.7/20,前 20 位是网络前缀(相当于原来的网络号),剩下 12 位是主机号。
CIDR 把网络前缀都相同的连续的 IP 地址组成一个 “CIDR 地址块”(即后文的构造超网)。一个 CIDR 地址块包含的 IP 地址数目,取决于网络前缀的位数。
举个栗子:
假设 128.14.35.7/20 是某 CIDR 地址块中的一个地址。则此地址块的起始地址(即最小地址)是 128.14.32.0,最大地址是 128.14.47.255,此地址块可记为 128.14.32.0/20,即用地址块中的最小地址和网络前缀的位数指明一个地址块。
128.14.32.0/20 表示的地址块共有
个地址,但主机号全 0 和全 1 的地址不指派。
上述中:128.14.35.7 是 IP 地址,但未指明网络前缀长度,因此不知道其网络地址;128.14.35.7/20 也是 IP 地址,且同时指明了网络前缀为 20 位,由此可算出网络地址;128.14.32.0 /20 是包含多个 IP 地址的地址块或网络地址,同时也是这个地址块中主机号为全 0 的 IP 地址。
在不需要指明网络地址,或仅仅指出地址块的大小时,可将地址块简称为 “/n 地址块”。
斜线记法可以让我们很方便知道网络前缀的数值,但计算机不理解啊,因此计算机采用地址掩码来算 IP 地址对应的网络地址:
● 计算机使用 32 位的地址掩码 (address mask) 以便从 IP 地址迅速算出网络地址。地址掩码又称为子网掩码。
● 地址掩码由一连串 1 和一连串 0 组成,而 1 的个数就是网络前缀的长度。CIDR 记法中斜线后面的数字就是地址掩码中 1 的个数。
● 对于 /20 地址块,它的地址掩码是 20 个连续的 1 和 12 个连续的 0。这个掩码用点分十进制表示就是 255.255.240.0。
把二进制的 IP 地址和地址掩码进行按位AND 运算,即可得出网络地址:
就是只有双方都是 1 才为 1,否则都为 0。
栗子:
2.2.4 构造超网和划分子网 (重点)
在路由器的转发表中,如果几个连续的、小的 CIDR 地址块具有相同的下一跳路由器,则可以把这几个小的地址块合并成一个大的地址块,并用一个转发表项代替原来的多个转发表项。
这种方法称为路由聚合(也称为构造超网),可以大大压缩转发表所占的空间,减少查找转发表所需的时间。
构造超网也要满足一下条件才行哦:
构造超网就是把某几个 CIDR 地址块合并起来,用一个更大的 CIDR 地址块来表示。这几个地址块可能大小不一,但只要满足以下条件就能合并:
1) 这几个地址块中的 IP 地址在地址空间中必须连续;
**2)**这几个地址块中的 IP 地址的总个数一定是 2 的 n 次方;
**3)**这几个地址块中最小的 IP 地址和最大的 IP 地址一定要位于要构成的超网的内部边界。
这样就可以用这些地址块都具有的相同的部分来作为网络前缀,其余的部分作为主机号,这个构造出来的超网就包括了主机号从全 0 到全 1 的 IP 地址。
划分子网是构造超网的逆运算。因此这里我就只需要着重讲解子网的划分就行了(构造超网就是顺其自然的事了)。
子网划分是通过借用 IP 地址的若干位主机位来充当子网地址,从而将原网络划分为若干子网而实现的。
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。以 C 类网络为例,原有 8 位主机位,2 的 8 次方即 256 个主机地址,默认子网掩码 255.255.255.0。借用 1 位主机位,产生 2 个子网,每个子网有 126 个主机地址;借用 2 位主机位,产生 4 个子网,每个子网有 62 个主机地址…… 每个子网中,第一个 IP 地址(即主机部分全部为 0 的 IP)和最后一个 IP(即主机部分全部为 1 的 IP)不能分配给主机使用,所以每个子网的可用 IP 地址数为总 IP 地址数量减 2;根据子网 ID 借用的主机位数,我们可以计算出划分的子网数、掩码、每个子网主机数。
至于划分子网为什么要向主机号字段借位,这里再给大家举一个栗子:
假设 CIDR 地址块为 211.82.244.0/24, 我现在要划分为两个等长的子网,那么第一个子网的 ip 地址范围就是 211.82.244.00000000~211.82.244.01111111,第二个子网的 ip 地址范围就是 211.82.244.10000000~211.82.244.11111111。而第一个子网我们观察可以发现,其 ip 地址的前 25 位相同,所以可以写成 211.82.244.00000000/25 的形式,也就是 211.82.244.0/25, 第二个子网我们经过观察也能发现,其 ip 地址的前 25 位也相同,所以可以写成 211.82.244.10000000/25 的形式,也就是 211.82.244.128/25。这就是划分子网为何要向主机号字段借位的原因。(上面用红色标出的就是划分子网时借位的子网号:IP 地址 = 网络号 + 子网号 + 主机号)
划分两个等长子网,需要向主机号字段借 1 位(分别可设为 0 和 1),划分 4 个等长子网,就需要向主机号字段借 2 位(分别可设为:00 , 01 , 10 ,11),依次类推。
其实划分子网最复杂的地方是不等长划分,不过我们可以用等长划分来实现,比如:把一个网络划分为 1/2 、 1/4 、 1/8 、 1/8 的 4 个不等长子网(这里假设该超网的主机号数:256),可以先划分为两个等长子网(子网号分别为 0 和 1) ,把其中的一个分给第一个网络,剩下的 1/2 再进行等长划分(比如把子网号 1 再分成:子网号 10 和 子网号 11,即再借一位),把其中的一个分给第二个网络,再将剩下的 1/4 平分给网络三和网络四(比如把子网号 11 再分成:子网号 110 和 子网号 111,即再借一位 )。
综合上述,这里看一道书上的例题和一道理清子网划分的例题和一道经典的考试例题:
假定某 ISP 已拥有地址块 206.0.64.0/18(相当于 64 个 C 类网络),现在某大学需要 800 个 IP 地址。则该 ISP 可将这块超网进行子网划分,即可以划分出 1/16,即给该大学分配一个地址块:206 . 68 . 0 / 22(即向主机号借 4 位),然后接下来,就只需要再根据该大学分配到的地址块再进一步子网划分给各个系。
注意:表中的星号 ***** 是一种常用的简写方式,表示星号后面的二进制主机号都省略了。
从上表可知要将该大学分配到的地址块按地址数的需要分配给这四个系的话。就需要把划分子网为:1/2 + 1/4 + 1/8 + 1/8 。要划到 1/8,说明就要借 3 位主机号,然后按照上面我讲的方法逐一划分就欧克了。
理清子网划分例题:
答案:
这里有些同学可能就有疑惑了,为什么网络 1 需要 128 个 IP 地址呢?
这是因为 62 台主机需要 62 个 IP 地址,路由器接口也需要一个 IP 地址,那么网络中至少需要 63 个可分配的 IP 地址才行。但是如果网络中只有 64 个 IP 地址,去掉主机号全 0 和全 1 的,就只有 62 个可分配的 IP 地址(而我们需要 63 个啊),所以网络中至少需要 128 个 IP 地址,这样可分配的 IP 地址数目就是 126 个。
那为什么不是 65 个呢,我上文不是说了嘛!!,划分出的子网一定要是 2 的 n 次幂,所以就是 128 勒~
经典例题:(多多益善)
因为最后这三个子网合并成的该超网一定是从主机号全 0 到全 1 的,所以观察题目可知,这里就只需要考虑 8 位的主机位 和 7 位的主机位。
192.168.9.10000000/26 :子网号为:10
A 192.168.9.00000000/25 :子网号:0
B 192.168.9.00000000/26 :子网号:00
C 192.168.9.11000000/26:子网号:11
D 192.168.9.11000000/27 :子网号:110当主机位是 8 位时,即 256 个主机数,此时可划分成:0 、10 、11 【即 1/2(128) + 1/4(64)+ 1/4(64)】。
所以排除:A 和 C。
当主机位是 7 位时,即 128 个主机数,此时可划分成:10 、 110 、 111【即 64 + 32 + 32】。
即排除:D。
那为什么 B 不行呢?
这很显然啊,要从 192.168.9.00000000 ~ 192.168.9.111111111
题目已经给了一个子网:192.168.9.10000000
所以如果加上 B 这个子网的话:192.168.9.00000000
那么还需要 01,11,因此已经四个子网了。所以选择 B 选项。
终于讲完这个重点内容了,一定要认真体会理解୧꒰•̀ᴗ•́꒱୨
2.2.5 IP 地址的特点
IP 地址具有以下一些重要的特点:
(1)**IP **地址由网络前缀和主机号两部分组成,这种两级结构的好处是:
● 第一, IP 地址管理机构在分配 IP 地址 时可以只 分配 网络前缀, 而剩下的主机号则由得到该 网络前缀的 单位自行分配。这样就方便了 IP 地址的管理。
● 第二, 路由器可以根据 目的 主机的网络前缀来 转发分组(而不 考虑主机 号),这样就可以 使转发表 中的项目数大幅度减少,从而 减少转发表 所占的存储空间,缩短查找转发表的时间。
(2)IP 地址标识一台主机(或路由器)和一条链路的接口。
● 当一台 主机 同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,且其网络前缀必须是不同的。 这种主机称为多归属主机 ( multihomed host) 。
● 由于一台 路由器 至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络), 因此一个路由器至少应当有两个不同网络前缀的 IP 地址。
(3)一个网络(或子网)是指具有相同网络前缀的主机的集合,因此用转发器或交换机连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络前缀。具有不同网络前缀的局域网必须使用路由器进行互连。
(4)所有分配到网络前缀的网络,不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
这里给一张图,认真体会:
2.3 IP 地址与 MAC 地址
在学习局域网时,我们知道由于 MAC 地址已固化在网卡上的 ROM 中,因此常常称 MAC 地址为硬件地址或物理地址。而 IP 地址是一种逻辑地址(因为 IP 地址是用软件实现的)。IP 地址和 MAC 地址
IP 地址和 MAC 地址之间没有简单的应关系,所以必须使用 ARP 协议进行地址转换。,但我们能清楚的看到 MAC 地址和 IP 地址的所处位置,和它们转换后数据部分对应的位置。
IP 数据报的转发过程:
主机 H1 先要查找自己的转发表(实际就是查找 ARP 高速缓存的映射表),看目的主机是否就在本网络上。如是,则直接交付,任务完成;如不是,则必须把 IP 数据报发送给某个路由器。
2.4 地址解析协议 ARP (重点)
**(1)**每一台主机都设有一个 ARP 高速缓存 (ARP cache) ,里面有 本局域网 上的一些主机和路由器的 IP 地址到 MAC 地址的 映射表 。 当主机 A 欲向 本局域网 上的某台主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存 中查看有无主机 B 的 IP 地址 对应的 MAC 地址 。 如有,就 可将此 MAC 地址 写入 MAC 帧,然后通过局域网将该 MAC 帧 发送出去。 (2) 若主机 A 查不到主机 B 的 MAC 地址(比如主机 A 此前没有与主机 B 发送过信息或主机 A 刚开机其 ARP 高速缓存为空),主机 A 就自动运行 ARP 协议来找出主机 B 的 MAC 地址, 并将主机 B 的 IP 地址到 MAC 地址的 映射写入 其 ARP 高速缓存 。 有了主机 B 的 MAC 地址,主机 A 就可以向主机 B 发送数据帧了。 (3) 考虑到计算机通信的双向交互特性,主机 A 在发送其 ARP 请求分组时,会将自己的 IP 地址到 MAC 地址的映射写入 ARP 请求分组。当主机 B 收到主机 A 的 ARP 请求分组时,就将主机 A 的地址映射写入主机 B 自己的 ARP 高速缓存中。 **(4)**ARP 把 已经得到的地址映射保存 在高速缓存 中 ,这样就可以 直接从高速缓存中找到所需 的 MAC 地址(如果有的话)而 不必再用广播方式 发送 ARP 请求 分组 。 ARP 对保 存在高速缓存中的 每 一 个地址映射项目 都设置 生存时间 ( 例如, 10 ~ 20 分钟 ) 。凡超过生存时间的项目就从高速缓存中删除掉 。
ARP 请求分组的报格式这里就不做探究了,你只需要理解它的作用和过程即可~
将上述过程用流程图归纳:
ARP 用来解决同一个局域网上的主机或路由器的IP 地址到 MAC 地址的映射问题。如果目的主机和源主机不在同一个局域网上(通过比较网络前缀即可知道),那么就无法通过 ARP 进行解析(路由器不转发广播帧),而实际上源主机也不需要知道另一个局域网上的目的主机的 MAC 地址。
但这不慌,当目的主机和源主机不在同一个局域网时,就要通过 ARP 先找到本局域网上的某个路由器的 MAC 地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个节点,依此类推,直至最终交付目的主机。
上述 A - B 的过程:
从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为数据链路层所需要的 MAC 地址。
最后再总结一下:使用 ARP 的四种典型情况
(1) 发送方是主机,要把 IP 数据报发送到同一个网络上的另一台主机。这时主机用 ARP 找到目的主机的 MAC 地址。
(2) 发送方是主机,要把 IP 数据报发送到另一个网络上的一台主机。这时主机用 ARP 找到本网络上的一个路由器的 MAC 地址。
(3) 发送方是路由器,要把 IP 数据报转发到同一个网络上的一台主机。这时路由器用 ARP 找到目的主机的 MAC 地址。
(4) 发送方是路由器,要把 IP 数据报转发到非直连网络上的一台主机。这时路由器用 ARP 找到直连网络上的另一个路由器的 MAC 地址。
既然在网络层使用 IP 地址还要用 ARP 转成 MAC 地址才能在局域网中通信。那为什么不直接使用 MAC 地址通信呢?
(1)MAC 地址固化在网络适配器中,随主机的移动而移动,这不利于形成稳定的路由;甚至当移动主机的数量过多、移动过于频繁时,路由根本无法形成。
(2)而 IP 地址一旦分配,其在互联网中的相对位置基本不会改变,互联网中的路由信息可在相当大的范围内和相当长的时间内保持不变。而稳定的路由对于互联网通信是必不可少的。
2.5 IP 数据报的格式
这个就是纯记忆的东西,感觉把各字段的作用都写出来,有点多,就借用了其他博主的,忘了的同学,可以看一下: IP 数据报格式
这里提醒一下注意事项:
(1)注意各字段的单位(例如首部长度是以 4 字节为单位长度,片偏移以 8 字节为单位长度……)
(2) 总长度字段是以字节为单位(最大为 $$ 2 的 16 次 减 1),当超过数据链路层的 MTU,就要注意分片的计算过程(P137 那道例题很值得一看),每一个分片的总长度,是指分片后的首部长度与该分片的数据部分长度之和。,除了最后一个分片 (数据部分),其他每个分片的数据部分长度一定是 8 字节的整倍!。
三、IP 层转发分组的过程
3.1 基于终点转发
分组在互连网上传送和转发是基于分组首部中的目的地址的,就叫基于终点转发。
这里补充一下:
(1)通常 转发表中的每一项指明到某一个 网络 而不是到某一台主机的 路由。 特定主机路由 和 默认路由 除外(后文会介绍)。
(2)路由器每收到一个分组, 就根据其首部的 目的地址 查找 转发表,找到匹配的 项目,根据 对应的接口或下一 跳 地址 转发出去(可能是直接交付,也可能是转交给下一个路由器)。
(3)如果是转交给下一个路由器,下一个路由器进行同样的查找、转发操作。
(4) 在将分组转发到下一跳路由器的过程中,会用到 ARP 协议进行 IP 地址到 MAC 地址的转换。
使
那它怎样判断该目的地址已经转发到目的网络呢?
过程就如上述顺序!!!
3.2 最长前缀匹配
在使用 CIDR 时,转发表中的每个项目由 “网络前缀” 和“下一跳”组成。在查找转发表时有时可能会得到不止一个匹配结果。应当从所有匹配结果中选择具有最长网络前缀的路由,即最长前缀匹配 (longest-prefix matching)。(网络前缀越长,其地址块就越小,因而路由就越具体)
不理解,这里我举个例子(其实书上 P142 那个栗子已经很形象了)
选择两个匹配的地址中更具体的一个,即选择网络前缀最长****的那个路由。
3.3 两种特殊的路由
(1)虽然互联网中几乎所有的分组转发都是基于目的主机所在的网络进行的,但在大多数情况下都允许对特定的目的主机指明一个路由,这种路由叫做特定主机路由。
● 假设特定主机的 IP 地址是 a.b.c.d**,那么在转发表中对应于特定主机路由的网络前缀就是** a.b.c.d**/32****。**
● 特定主机路由一般位于转发表的最前面。
(2)还有一种特殊路由叫默认路由 (default route) 。
● 在实际的转发表中,对应于默认路由的网络前缀是 0.0.0.0/0**。网络前缀长度为** 0**,表明地址掩码是** 32 个 0**,而任何目的地址与全** 0 的掩码****按位 AND 运算的结果都是 0.0.0.0**,都能与默认路由匹配。**
● 默认路由一般位于转发表的最后一条,只有在转发表中的其他路由都不匹配的时候才会用到默认路由。
● 在网络只有很少的对外连接时使用默认路由非常有用。
3.4 分组转发算法(总结)
(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 从转发表的第一行开始,将目的地址 D 与该行的子网掩码进行按位 AND 运算,看结果与该行的前缀是否匹配。若匹配则查找结束,按照下一跳指出的路由进行处理;若不匹配则继续查找下一行。
(3) 若查找完整个转发表也没有匹配项(比如没有配置默认路由),则丢弃分组并报告转发分组出错。
注意:转发表并没有给出到某个网络的完整路径,仅仅给出到某个网络应当先到某个路由器(即下一跳路由器)。在到达下一跳路由器后,再继续查找其转发表, 从而知道再下一步应当到哪一个路由器。就这样一步一步地查找下去,直至最后到达目的网络。
3.5 使用二叉线索查找转发表 (略)
需要的朋友可以自行查阅其他博客~
四、网际控制报文协议 ICMP(重点)
主机或路由器使用网际控制报文协议 ICMP (Internet Control Message Protocol) 报告差错和异常情况。(前面 IP 数据报的首部字段中的 “首部检验和” 只检验数据报的首部,不包括数据部分,因此不能保证传输的 ICMP 报文不产生差错。这和下文 ICMP 报文格式中 “ 检验和 ” 使用的方法是一样的,但是它检验的范围包括 icmp 报头和数据部分 , 不会检验 IP 报头)
解释 ICMP 协议的出现:
我们都知道,IP 协议是一个不可靠协议,尽最大努力交付,如果 IP 包在传输过程中出现错误,比如 checksum 对不上,拥塞,超时等等,那么 IP 包是会直接被丢弃的,之后也不会有进一步的努力来修正。但高层能提供质量控制的协议毕竟在少数,所以就需要在下层有协议来辅助 IP 完成必要的网络质量管理。ICMP 协议自然就被提出来了。
ICMP 提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据 ICMP 报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是 ICMP 唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。
在网络中经常会使用到 ICMP 协议,比如经常使用的用于检查网络通不通的 Ping 命令(Linux 和 Windows 中均有),这个 “Ping” 的过程实际上就是 ICMP 协议工作的过程。还有其他的网络命令如跟踪路由的 Tracert 命令也是基于 ICMP 协议的。
不过需要注意的是,ICMP 仅仅只能提供某些特定类型的错误信息汇报,并不能帮助 IP 协议成为可靠的协议。它能做的事还是有限,但用于基本的网络质量管理是足够了。
注意:
(1)ICMP 报文封装在 IP 数据报中,作为 IP 数据报的数据部分。但 ICMP 不是高层协议,而是 IP 层的协议。
(2)ICMP 只能搭配 IPv4 工作,如果是 IPv6(下文会介绍),需要使用 ICMPv6。
(3)ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告
。
ICMP 报文格式 ——>
解释:ICMP 报文的前 4 个字节是统一的格式,共有三个字段:类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。这 8 个字节****构成了 ICMP 报文的首部。最后面是数据字段,其长度取决于 ICMP 的类型。
ICMP 报文分为两类: ICMP 差错报告 报文和 ICMP 询问 报文。 每 一类 又细分为不同的类型 。
-
一类是 查询类报文 :主要用于信息的查询和采集,比如采集传输路径上的每个路由器都是谁,本次传输的报文是否达到目的地等等 , 例如 ping。
-
另一类是 差错诊断类报文 :主要用于诊断网络故障,比如传输报文被丢弃的原因是什么等等 , 例如 tracert。
书上 P147 上对于这几种类型的介绍都去仔细看一下,另外还有书上也举例了不应发送 icmp 差错报告报文的几种情况也看看,这里我就不写了 QvQ 。算了,还是把后者写出来吧~
● 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
● 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
● 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
● 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
所有的 ICMP 差错报告报文的数据部分都具有同样的格式。
把收到的需要进行差错报告的 IP 数据报的首部和数据字段的前 8 个字节(这我也不太清楚作用,好像跟运输层的端口号和运输层报文的发送序号有关……)提取出来,作为 ICMP 报文的数据字段,再加上相应的 ICMP 差错报告的前 8 个字节,就构成了 ICMP 差错报告报文。
ICMP 报文包含在 IP 数据报中,IP 报头在 ICMP 报文的最前面。一个 ICMP 报文包括 IP 报头(至少 20 字节)、ICMP 报头(至少八字节)和 ICMP 报文(属于 ICMP 报文的数据部分)。当 IP 报头中的协议字段值为 1 时,就说明这是一个 ICMP 报文。(前面的 IP 数据报首部格式有介绍)
ICMP 的应用举例:
就书上 P148 那两个重要应用,这里简单介绍一下:
1. 测试两台主机之间连通性的 ping 命令使用 ICMP 回送请求和应答报文
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP**。**在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。
2. 路由分析诊断程序 tracert 使用了 IP 数据报中的 TTL 字段、ICMP **时间超过差错报告**报文
( traceroute 是类 Linux 系统自带的工具,Windows 上类似的工具是 tracert,两者有些许不同,tracert 默认使用 ICMP 报文探测,而 traceroute 默认使用 UDP,但是也可以使用 TCP/ICMP 三种报文探测。)
tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息(经过路由器的 IP 地址),并显示每个路径所消耗的时间(到达每个路由器的往返时间)。
五、IPv6
为了解决 IP 地址耗尽的问题,就有了 IPv6。
IPv6 对首部的主要更改:
(1)取消了首部长度字段,因为这里是 40 字节固定的。 | (4)把 TTL 字段改称为跳数限制字段 |
(2)取消了服务类型字段,因为优先级和流标号字段以实现了这个功能了 | (5)取消了协议字段,改用下一个首部字段 |
(3)取消了总长度字段,改用有效载荷长度字段 | (6)取消了检验和字段 |
(8)首部长度改为 8 字节整数倍(IPv4 是 4 字节)。 | (7)取消了选项字段,而用扩展首部来实现选项功能 |
IPv6 首部各字段的作用:
为了对比,我把 IPv4 也给出来:
(1)版本 (version)——占 4 **位,它**指明了协议的版本,对 IPv6 该****字段为 6**。**
(2)通信量类 (traffic class**)——占 8 **位,这**是为了区分不同的** IPv6 数据报的类别或优先级。
(3)流标号 (flow label**)——占 20 位。“流” **是互联网络上从特定源点到特定终点的一系列数据报,“流” 所经过的路径上的路由器都保证指明的服务质量**。所有****属于同一个流的数据报都具有同样的流标号。**
(4)有效载荷长度 (payload length**)——占 16 **位,它指明** IPv6 **数据报除基本首部以外的字节数(所有扩展首部都算有效载荷之内),其最大值是 **64 KB(65535 字节)。**
(5)下一个首部 (next header)——占 8 **位,它**相当于 IPv4 的协议字段或可选字段。当 IPv6 数据报没有扩展首部时,其值指明有效载荷应交付的高层协议;若有扩展首部,其值指明后面第一个扩展首部的类型。
(6)跳数限制 (hop limit**)——占 8 位。源点在每个数据报发出时即设定跳数限制。路由器在转发数据报时先将跳数限制字段中的值减 1。当****跳数限制字段的值为零时,就要将此数据报丢弃。**
(7)源地址**——占 128 **位,是**数据报的发送端的** IP 地址。
(8)目的地址**——占 128 **位,是数据报**的接收端的** IP 地址。
与 IPv4 不同的是,一****个 IPv6 数据报的目的地址可以是以下三种基本类型地址之一:
单播 (unicast) :传统的点对点通信。
多播 (multicast) :一点对多点的通信。 IPv6 将广播 看作多播的一个特例。(就相当于 IPv4 的广播 + 组播 )
任播 ( anycast ) : IPv6 增加的一种 类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是距离最近的一个。
而 IPv4 是:
单播
单播是指单台设备与单台设备之间的通信,源地址和目的地址都是单一的 IPv4 地址,单播数据包的通信可以在网络之间转发。在实际的网络通信中,大多数的通信都属于单播。
广播
广播是一台主机向网络中所有主机发送数据包,广播的目的地址不同于单播单一的地址。
广播有两类:定向广播和有限广播
1、定向广播是将数据包发送到向本网络之外的特定网络所有主机,定向广播的目的地址是定向网络的广播地址,如当前网络为 192.168.0.0/24, 要向 192.168.1.0/24 的网络发送定向广播,那么定向广播的目的地址是:192.168.1.255。可以配置路由器让其转发定向广播。
2、有限广播是将数据包发送到本地网络的所有主机,有限广播使用的目的地址是: 255.255.255.255. 路由器不转发此广播。组播
单播是单台设备与单台设备之间的通信,广播是单台设备向网络中所有主机发送数据,而组播是单台主机向选定的一组主机发送数据。与单播相比,提高了发送数据包的效率,与广播相比,减少了网络流量。与广播不同的是,要实现组播需要在接受组播的客户机上安装相应的客户端程序。
冒号十六进制记法
显然 IPv6 用 IPv4 的点分十进制记法以不太可能了。因此冒号十六进制记法诞生了~
在 IPv6 中,每个地址占 128 位。IPv6 使用冒号十六进制记法 (colon hexadecimal notation):每 16 位二进制值用 4 个十六进制值表示,各组值之间用冒号分隔,并允许把数字前面的 0 省略,例如: 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
规定:
(1)在冒号十六进制记法中,一串连续的 0 可以被一对冒号取代,这就是零压缩**。例如,FF05:0:0:0:0:0:0:B3 **可以写成** FF05::B3。**
(2)为了不引起歧义,在 IPv6 地址中只能****使用一次零压缩。
(3)冒号十六进制记法可结合使用点分十进制后缀,这种形式在 IPv4 转向 IPv6 **的过渡阶段特别****有用。**例如:0:0:0:0:0:0:128.10.2.1。再使用零压缩即可得出 ::128.10.2.1。
(4)在冒号十六进制记**法中,CIDR 的斜线表示法仍然可用。例如,60 位的前缀 12AB00000000CD3 **可记为 12AB:0000:0000:CD30:0000:0000:0000:0000/60 或 12AB::CD30:0:0:0:0/60 或 12AB:0:0:CD30::/60 。
对于 IPV6 的常用地址分类(就简单给张图,我们学校不要求掌握,需要去掌握了解的自行查阅其他博客)
地址类型 | 二进制前缀或地址 | CIDR 风格的冒号十六进制记法 |
未指明地址 | 00…0(128 位),仅此一个 | ::/128 |
环回地址 | 00…1(128 位),仅此一个 | ::1/128 |
多播地址 | 11111111(8 位),功能和 IPv4 多播地址一样 | FF00::/8 |
本地站点单播地址 | 1111111011(10 位),仅供一个单位内部使用 | FEC0::/10 |
本地链路单播地址 | 1111111010(10 位),启用 IPv6 时自动生成 | FE80::/10 |
全球单播地址 | 除上述五种外,所有其他的地址(这是使用得最多的一类,其划分方法有三种) |
从 IPv4 向 IPv6 过渡:
从 IPv4 向 IPv6 过渡只能采用逐步演进的办法,同时还必须使 IPv6 能够向后兼容。这就要求 IPv6 必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。
从 IPv4 向 IPv6 过渡主要有两种方法:双协议栈和隧道技术。
六、互联网的路由选择协议
根据****路由算法是否具有自适应性,路由选择策略分为两大类:
(1)静态 路由选择策略:用人工配置每一条路由,适用于简单的小网络;
(2)动态 路由选择策略:使用 路由选择协议 生成每一条路由,并可根据网络的通信量或 拓扑 的变化进行动态调整,适用于复杂的大网络 。
对于静态路由选择 我们可以自己在右图这个软件上模拟实现:(这几个实验的操作后序会上传在资源里,但我想你们老师应该都会讲的吧)
6.1 分层次的路由选择协议
由于互联网的规模非常大,如果让所有的路由器知道所有的网络应怎样到达,则路由表将会非常大,处理起来花费的时间也会很多,所以互联网采用分层次的路由选择协议:
(1) 把整个互联网划分为许多较小的 自治系统 AS 。例如,一个 ISP 就是一个自治系统;
(2) 在一个自治系统内部使用 内部网关协议 ,如 RIP 和 OSPF 等 ;
(3) 在不同自治系统之间使用 外部网关协议 ,如 BGP-4 。
自治系统 (AS) 是在单一技术管理下的许多网络、IP 地址以及路由器,这些路由器使用同一种自治系统内部的路由选择协议和共同的度量。每一个 AS 对其他 AS 表现出的是一个单一的、一致的路由选择策略。
6.2 内部网关协议 RIP (重点)
RIP(Routing Information Protocol)是一种分布式的基于距离向量的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录,这组距离就叫做 “距离向量”。
“距离” 的定义:
(1) 路由器 到 直连网络 的距离定义 为 1 ; 每经过一个路由器,距离就加 1。
(2) RIP 允许的距离的最大值为 15 ,“距离” 等于 16 表示不可达 , 因此 RIP 只适用于小的自治系统。
(3) RIP 认为,好的路由就是它通过的路由器的数目少,即 “距离短”。
RIP 路由表中最主要的信息就是**:到某个网络的距离****,以及应经过的下一跳地址。**
RIP 协议的特点:
(1)每个路由器仅和相邻路由器交换信息。
(2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表:我到本自治系统中所有网络的(最短)距离,以及到每个网络应经过的下一跳路由器。
(3)路由器按固定的时间间隔交换路由信息,然后根据收到的路由信息更新路由表。
RIP 路由表的建立:
路由器在刚刚开始工作时,其路由表是空的。
(1)然后路由器就得出到几个直连网络的距离(即 1)。
(2)之后,每一个路由器和相邻路由器交换路由信息,并使用距离向量算法更新自己的路由表。更新的原则是找出到每个目的网络的最短距离。
(3)经过若干次更新后,最终所有的路由器都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器。
6.2.1 距离向量算法
对每一个相邻路由器发送过来的 RIP 报文(里面包含路由信息),进行以下操作:
(1) 对地址****为 X 的相邻路由器发来的 RIP 报文**,先修改此报文中的路由信息:把** **“下一跳” 字段中的地址都改为** X**,并把所有的 “距离” 字段的值加** 1**。修改后,每一条路由可表示为:到目的网络** N**,距离是** d**,下**一跳路由器是** X。**
(2) 用****修改后的路由,与路由表中原来的路由进行对比:
● 若原来的路由表中没有目的****网络 N**,则把该路由添加到路由表中;**
否则(即在路由表中有目的网络 N**),就再查看下一跳路由器地址,**
● 若下一跳路由器地址****是 X**,则用修改后的路由更新原路由表中的路由;**
否则(即这个路由是:到目的网络 N**,但下一跳路由器不是** X**),**
● 若修改后的路由中的距离 d 小于路由表中的距离,则进行更新**;**
否则什么也不做。
(3) 若 3 分钟还没有收到相邻路由器****的 RIP 报文,则把此相邻路由器记为不可达的路由器,即把距离置为 16(距离为 16 表示不可达)。
上述文字描述部分看懂了嘛? 没看懂的话,这里举个栗子,结合栗子来理解:
步骤如 a ~ d : (1) 先都将下一跳改为 R4 ,然后举例都加 1 (2)用修改后的路由,与路由表中原来的路由进行对比:发现原来路由表的目的网络没有 Net1,所有就直接添加上 ; 然后对比下一项,发现目的网络都是 Net2 , 并且下一跳路由器都是 R4 ,所有就用修改后的路由更新原路由表中的路由;对比最后一项,发现虽然目的网络都是 Net3,但是它们的下一跳路由器不同,因此就对比距离单位看哪个距离最短,发现修改后的路由表距离最短(为 2),所有就更新成它。
最后对于 RIP 协议的报文格式(不需要掌握),想了想还是给大家看一下,可以加深对 RIP 报文的理解。
我们应知道 RIP 是基于 UDP 协议的, 而后文的要介绍的 OSPF 是基于 IP,BGP 是基于 TCP 的。它们共同用于发现和维护前往目的地的最短路。从上面我所阐述的,我们可以理解 RIP 、OSPF 、BGP 分别属于应用层协议 、网络层协议、应用层协议(都是废话,哈哈~)。
我们可以看出这和上面详细介绍的 ICMP 报文基本格式是相识的。需要详细了解各字段含义的请参考 其他博客 ~
6.2.2 RIP 协议的缺点:坏消息传播得慢
为了,证明这个坏消息,请看下述的栗子:
接着就一直更新下去~
RIP 协议优缺点总结:
(1)RIP 协议最大的优点就是实现简单,开销较小。
(2)RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
(3)路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
(4)坏消息传播得慢,使更新过程的时间过长。
最后有条件的可以自己做个实验:实验 4-7**:配置** RIP 动态路由。
6.3 内部网关协议 OSPF
开放最短路径优先 OSPF(Open Shortest Path First)是为了克服 RIP 的缺点而开发出来的。
● “开放” 表明 OSPF 是一个公开发表的协议。
● “最短路径优先” 是因为使用了 Dijkstra 提出的 最短路径优先 SPF 算法。
● OSPF 最主要的特征就是使用 分布式 的链路状态协议,不是像 RIP 那样的距离向量协议
OSPF 协议的特点:
(1)用洪泛法向本自治系统中所有的路由器****发送信息。
(2)发送的信息是与本路由器相邻的所有路由器的链路状态,而这只是路由器所知道的部分信息。
● 链路状态 指明本 路由器都和哪些路由器相邻,以及该链路的度量 (metric)。
● 链路状态的 “度量” 可以是距离、带宽、时延或费用等
(3)当链路状态发生变化或每隔一段时间,路由器才用洪泛法向所有路由器发送链路状态信息。
洪泛法工作图解:
路由器 R 使用可靠的洪泛法(收到更新分组后要发送确认)发出链路状态更新分组给其相邻的三个路由器,这三个路由器再将收到的分组再进行转发(上游路由器除外)……
知识补充:
(1)所有的路由器都维持一个链路状态数据库 (link-state database),这个数据库实际上就是全网的拓扑结构图。这个拓扑结构图在全网范围内是一致的,每个路由器都知道整个网络的拓扑结构。
(2)每个路由器根据链路状态数据库中的数据,使用 SPF 算法构造出自己的路由表。
(3)上面所介绍的使用 RIP 协议的每个路由器虽然知道所有网络的距离以及吓一跳路由器,但却不知道全网的的拓扑结构(只有到了下一跳路由器,才能知道下一跳应该怎么走~)
(4) RIP 适用于小型互联网, OSPF 适用于大型互联网。
为了能把 OSPF 用于规模更大的网络,OSPF 把自治系统再划分为不同的****区域 (area**)****:**
书上 P165 对于它的介绍简单了解下就行了,反正我们学校不要求掌握,hh~
6.4 外部网关协议 BGP
由于不同的自治系统使用不同的内部路由选择协议并使用不同的度量,所以必须在不同的自治系统之间使用另外的路由选择协议。目前使用最多的是边界网关协议 BGP, 其最新版本是 BGP-4(常简写为 BGP)。
注意:BGP 只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。
我们学校介绍的极为简略,可能不会怎么考察,如果需要深入了解的,看这篇博客吧:
BGP 协议总结(比较详细,好理解)_Looo~ye 的博客 - CSDN 博客
还有书上 P175 对于路由器构成的介绍,都去看一下,对你有好处,我就不写了~
七、IP 多播
这里看两种情况的对比,就能清楚 IP 多播的好处了:
当采用多播后:
当需要信息的主机数增大,效果更明显 。
需要我们记的知识点:
(1)IP **多播所传送的分组需要使用多**播 IP 地址,也就是 D 类 IP 地址(224.0.0.0 —— 239.255.255.255)。
(2)多播地址只能用于目的地址,而不能用于源地址。
(3)IP 多播可以分为两种,一种是只在本局域网上进行硬件多播,另一种则是在互联网的范围进行多播。在互联网上进行多播的最后阶段,还是要把多播数据报在局域网上用硬件多播交付多播组的所有成员。
(4)多播数据报的协议字段为 2,表明使用网际组管理协议 IGMP。
当然还有很多知识没说明的,比如 IGMP 协议 和 多播路由选择协议 的介绍。由于我们学校对于非这方面专业的学生要求挺低的,所有就不讲了,需要去进一步了解的,可以自己去看书上 P181 那几页,或者搜博客看,相信看完一定对你有很大收获的。
八、虚拟专用网 VPN 和网络地址转换 NAT
考虑到 IP 地址的紧缺,以及某些主机只需要和本机构内部的其他主机进行通信,互联网管理机构将一部分 IP 地址作为专用地址(private address)供机构内部自行分配使用。
专用地址只能用于一个机构的内部通信,不能用于和互联网上的主机通信(互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发)。不同的机构在内部可使用相同的专用地址。
与专用地址相对的是全球地址,这是互联网主机通信所必须具有的、全球****唯一的 IP 地址,必须向互联网的管理机构****申请才可以使用。
互联网管理机构划分的三个 IPv4 专用地址块如下:
10.0.0.0/8 ,即从 10.0.0.0 到 10.255.255.255
172.16.0.0/12 ,即从 172.16.0.0 到 172.31.255.255
192.168.0.0/16,即从 192.168.0.0 到 192.168.255.255
虚拟专用网 VPN
采用专用 IP 地址的互连网络称为专用网。
如果一个机构有很多部门且分布在世界各地,就可以利用公用的互联网作为此机构各专用网之间的通信载体,形成一个更大的专用网,这样的专用网称为虚拟专用网 VPN (Virtual Private Network)。虚拟专用网用于一个机构内部的主机通信,而不是用于和机构外的主机通信。
这时候,你可能就有疑问了,既然要借用公用的 IP 地址传输,那怎么实现呢?难道不会泄密嘛?
部门 A 和部门 B 要借助两个路由器 R1 和 R2(它们的一个接口地址必须是合法的全球 IP 地址,在专有网内部网络的接口地址则是专有网的本地地址) 。假设部门 A 的 x 要和部门 B 的 y 通信 , X 先把数据报发给 R1,此时 R1 发现数据的源地址是 10.1.01,目的地址是 10.2.0.3,必须要通过公有的互联网才能到达,它就先把整个内部数据报进行加密,这样就保证了安全,然后重新加上数据报的首部(就是在原来数据报的首部前在加一个新首部),其源地址是路由器 R1 的全球 IP 地址 125.1.2.3,目的地址是 194.4.5.6。路由器 R2 收到该数据报后,将其数据部分取出进行解密,恢复出原来的内部数据报(目的地址是 10.2.0.3),然后交付给主机 Y。
远程接入 VPN
有的公司可能没有分布在不同场所的部门,但却有很多流动员工在外地工作,他们需要经常访问公司内网的服务器,远程接入 VPN 可满足这种需求。
在外地工作的员工通过拨号接入互联网,而员工个人电脑中的 VPN 软件可在员工的个人电脑和公司的主机之间建立 VPN 隧道(当然也是加密的),因而外地员工就可以使用公司内部的网络了。
网络地址转换 NAT
专用网内的主机如果想要和互联网上的主机通信,使用得最多的方法是网络地址转换 NAT
这种方法需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的全球 IP 地址。
所有使用专用地址的主机在和外界通信时都要在 NAT 路由器上将其专用地址转换成全球 IP 地址才能和互联网通信。
在看了书上 P188 的解释说明后,在内部主机与外部主机通信时,在 NAT 路由器上发生了两次地址转换:
离开专用网时:替换源地址, 将专用地址 替换为全球地址。
进入专用网时:替换目的地址,将全球地址替换 为专用地址
NAT 转换 表举例:
当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。
注意:通过 NAT 路由器的通信必须由专用网内的主机发起,因此专用网内部的主机不能直接充当服务器用。
网络地址与端口号转换 NAPT
从上面的介绍,不难看出 NAT 并不能节省 IP 地址。为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个专用网主机,共用 NAT 路由器上的一个全球 IP 地址,同时和互联网上的不同主机进行通信。
使用端口号的 NAT 叫做网络地址与端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。
NAPT 转换表举例:
NAPT 把专用网内不同的源 IP 地址都转换为相同的全球 IP 地址,但将 TCP 源端口号(不管是否不同)转换为不同的新的端口号。
当 NAPT 路由器收到从互联网发来的应答时,就可以从 IP 数据报的数据部分找出运输层端口号,然后根据不同的目的端口号,从 NAPT 转换表中找到正确的目的主机和端口号。