概述
前言
本篇笔记方便本人用于复习回顾知识点,内容庞杂,见谅。含有目录方便大家跳转复习!
此复习笔记总结于 湖科大教书匠出品:深入浅出计算机网络 微课视频
此笔记尚未完结,持续更新中…
文章目录
- 前言
- 第一章 概述
- 1.1 计算机网络
- 1.2 因特网概述
- 1.3 三种数据交换方式
- 1.4 计算机网络的定义和分类
- 1.5 计算机网络的性能指标
- 速率、带宽、吞吐量、时延
- 时延带宽积、往返时间RTT、利用率、丢包率
- 1.6 计算机网络体系结构
- 第二章 物理层
- 2.1 物理层的基本概念
- 2.2 物理层的传输媒体
- 2.3 传输方式
- 2.4 编码与调制
- 2.5 信道的极限容量
- 2.6 信道的复用技术
- 2.7 物理层常用设备
- 第三章 数据链路层
- 3.1 概述
- 3.2 封装成帧和透明传输
- 3.3 差错检测
- 3.4 可靠传输
- 3.5 点对点协议PPP
- 3.6 共享式以太网
- 3.6.1 网络适配器和MAC地址
- 3.6.2 CSMA/CD协议(多点接入载波监听/冲突检测)
- 3.6.3 共享式以太网的争用期、最小帧长和最大帧长
- 3.6.4 共享式以太网的退避算法和信道利用率
- 3.6.5 使用集线器的共享式以太网
- 3.6.6 网桥在数据链路层的相关知识
- 3.7 交换式以太网
- 3.7.1 交换机以太网
- 3.7.2 虚拟局域网VLAN
- 3.7.3 虚拟局域网VLAN的实现机制
- 3.8 以太网的发展
- 3.9 802.11无线局域网
- 3.9.1 802.11无线局域网-CSMA/CA协议
- 3.9.2 802.11无线局域网的MAC帧
- 第四章 网络层
- 4.1 网络层概述
- 4.1.1 路由选择和分组转发
- 4.1.2 虚电路服务和数据报服务
- 4.2 网际协议IP
- 4.2.1 异构网络互连
- 4.2.2 IPV4地址
- 4.2.3 地址解析协议ARP
- 4.2.4 IP数据报的发送和转发过程
- 4.2.5 IPV4数据报的首部格式
- 4.3 静态路由配置
- 4.4 路由选择
- 4.4.1 路由选择分类
- 4.4.2 路由信息协议RIP
- 4.4.3 开放最短路径优先OSPF
- 4.4.4 边界网关协议BGP
- 4.4.5 路由器基本工作原理
- 4.5 网际控制报文ICMP
- 4.6 虚拟专用网VPN与网络地址转换NAT
- 4.7 IP多播技术
- 4.8 移动IP技术
第一章 概述
1.1 计算机网络
- 计算机网络已经由一种通信基础设施发展称为一种重要的信息服务基础设施.
- 计算机网络已经像水、电、煤气这些基础设施一样,称为我们生活中不可或缺的一部分
1.2 因特网概述
网络、互联网和因特网
- 网络(Network)由若干节点(Node)和连接这些节点的链路(Link)组成。
- 多个网络还可以通过路由器互联起来,这样就构成了一个范围更大的网络,即互联网(互连网)
- 因特网(Internet)是世界上最大的互联网络。
Internet与internet的区别 - internet(互连网或互联网)是一个通用名词,它泛指由多个计算机网络互连而成的网络,这些网络之间的通信协议可以是任意的。
- Internet(因特网)则是一个专用,名词,它指当前全球最大的、开放的,有众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议簇作为通信的规则,其前身是美国的ARPANET。
因特网发展的三个阶段
- 第一阶段:从单个网络 ARPANET 向互联网发展的过程。1969年,美国国防部创建了第一个分组交换网ARPANET;1983年,TCP/IP协议成为ARPANET的标准协议(因特网的诞生时间)
- 第二阶段:1985年,逐步建成三级结构的因特网:主干网、地区网和校园网
- 第三阶段:1993年,逐步形成多层次的ISP结构的因特网(Internet Service Provider 因特网服务提供者)
因特网协会ISOC
因特网的组成
- 边缘部分
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享 - 核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
1.3 三种数据交换方式
- 电路交换(Circuit Switching)
- 分组交换(Packet Switching)
- 报文交换(Message Switching)
电路交换
电路交换受电话交换的启发。
两部电话,需要一对电线;5部电话两两项链,需要10对电线;N部电话两两相连,需要 N(N-1)/2 对电线。
- 电话交换机接通电话线的方式称为电路交换
- 电路交换的三个步骤:
- 建立连接(分配通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
注意:计算机网络通常采用分组交换
分组交换
分组交换的组成:报文、首部、分组。
分组交换是允许多个发送者在共享的网络中传输数据,实现方式是:将数据分为小的块,称为分组(或数据包,简称包 packet),并将预期的接受者的标识符写在每个分组中。在整个共享的网络中的每一个设备中都包含了发送到每一个可能的目的地的相关信息。当一个分组到达一个设备时,该设备选择一个能够到达目的地的路径,将分组数据发送出去,这样分组可以到达正确的目的地。
分组交换采用存储转发的思想
报文交换
报文交换是以报文为 数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式,
- 报文交换是分组交换的前身
- 将要发送的数据整体作为报文,如 一个文件,以报文为单位进行传输
- 采用存储+转发的交换方式
三种数据交换方式的区别
- 若要连续传送大量的数据,并且数据传送时间大于建立连接的时间,则使用电路交换可以有较高的传输效率。然而计算机的数据往往是突发式的,采用电路交换时通信线路的利用率很低
- 报文交换和分组交换都不要建立连接(即预先分配通信资源)。在传送计算机的突发数据时可以提高通信线路的利用率
1.4 计算机网络的定义和分类
定义
-
计算机网络的最简单的定义:一些互相连接的、自治的计算机的集合
互连:是指计算机之间可以通过有线或无线的方式进行数据通信
自治:是指独立的计算机,它有自己的硬件和软件,可以单独运行使用
集合:是指至少需要两台计算机 -
计算机网络的较好的定义:计算机网络主要是由一些通用的,可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
分类
- 按交换技术分类
- 电路交换网络
- 报文交换网络
- 分组交换网络
- 按网络的使用者分类
- 公用网(公众网)
- 专用网
- 按传输介质分类
- 有线网络(双绞线、光纤等)
- 无线网络(Wifi技术等)
- 按覆盖范围分类
- 广域网WAN:覆盖范围几十到几千千米
- 城域网MAN:覆盖范围5到50千米
- 局域网LAN:覆盖范围1千米作用
- 个域网PAN:覆盖范围10米
- 按拓扑结构分类
- 总线型网络
- 星型网络
- 环形网络
- 网状型网络
1.5 计算机网络的性能指标
- 性能指标可以从不同的方面来度量计算机网络的性能
- 常用的计算机网络的性能指标有以下八个
- 速率
- 带宽
- 吞吐量
- 时延
- 时延带宽积
- 往返时间
- 利用率
- 丢包率
速率、带宽、吞吐量、时延
比特:计算机中数据量的单位,也是信息论中信息量的单位。一位比特就是二进制数字中的一个 1 或 0
常用数据单位:
- 8 bit = 1 Byte(bit简写为b)
- KB = 1 0 10 10^{10} 1010 B
- MB = K × times ×KB = 1 0 10 10^{10} 1010 × times × 1 0 10 10^{10} 1010 B = 1 0 20 10^{20} 1020 B
- GB = K × times ×MB = 1 0 10 10^{10} 1010 × times × 1 0 20 10^{20} 1020 B = 1 0 30 10^{30} 1030 B
- TB = K
×
times
×GB =
1
0
10
10^{10}
1010
×
times
×
1
0
30
10^{30}
1030 B =
1
0
40
10^{40}
1040 B
速率
- 连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
- 常用数据单位
- bit/s(b/s)
- kb/s = 1 0 3 10^{3} 103b/s
- Mb/s = k × times ×kb/s = 1 0 3 10^{3} 103 × times × 1 0 3 10^{3} 103b/s = 1 0 6 10^{6} 106b/s
- Gb/s = k × times ×Mb/s = 1 0 3 10^{3} 103 × times × 1 0 6 10^{6} 106b/s = 1 0 9 10^{9} 109b/s
- Tb/s = k × times ×Gb/s = 1 0 3 10^{3} 103 × times × 1 0 9 10^{9} 109b/s = 1 0 12 10^{12} 1012b/s
带宽
- 带宽在模拟信号系统中的意义
某个信号所包含的各种不同频率成分所占据的频率范围
单位:Hz(kHz,MHz,Ghz) - 带宽在计算机网络中的意义
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中某一点到另一点所能通过的最高数据率
单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
“带宽” 的这两种表述之间有着密切的联系。一条通信线路的 “频带带宽” 越宽,其所传输数据的 “最高数据率” 也越高。
数据传送速率从主机接口速率、线路带宽、交换机或路由器的接口速率中取最小值。
吞吐量
- 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据率。
- 吞吐量受网络的带宽或额定速率的限制。
时延
时延是数据(一个报文或分组,甚至比特)从网络或链路的一段传送到另一端所需要的时间,也称为延迟或迟延。
- 发送时延:主机或路由器发送数据帧到链路所需要的时间,即:从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
发送时延 = 分组长度 ( b ) / 发送速率 ( b / s ) 发送时延 = 分组长度(b) /发送速率(b/s) 发送时延=分组长度(b)/发送速率(b/s) - 传播时延:电磁波或光信号在信道(链路)中传播一定的距离需要花费的时间。
传播时延 = 信道长度 ( m ) / 信号传播速率 ( m / s ) 传播时延 = 信道长度(m) / 信号传播速率(m/s) 传播时延=信道长度(m)/信号传播速率(m/s)
常见的介质传播速率:- 自由空间: 3.0 × 1 0 8 m / s 3.0 times 10^{8}m/s 3.0×108m/s
- 铜线: 2.3 × 1 0 8 m / s 2.3 times10^{8}m/s 2.3×108m/s
- 光纤: 2.0 × 1 0 8 m / s 2.0 times10^{8}m/s 2.0×108m/s
- 排队时延:分组在输入队列中排队等待处理,在输出队列中等待转发,就形成了排队时延。
- 处理时延:主机或路由器在收到分组后要花费一定的时间进行处理,比如分析首部,提取数据,差错检验,路由选择等。
时延带宽积、往返时间RTT、利用率、丢包率
时延带宽积
时延带宽积 = 传播时延 × 带宽 时延带宽积 = 传播时延 times 带宽 时延带宽积=传播时延×带宽
- 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特(即“某段链路现在有多少比特”)
- 链路的时延带宽积又称为以比特为单位的链路长度
往返时间RTT
从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
RTT越大,在收到确认之前,可以发送的数据越多。
利用率
利用率分为信道利用率和网络利用率。
-
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
信道的利用率增大时,该信道引起的时延也会迅速增加
-
网络利用率:全网络的信道利用率的加权平均
丢包率
- 丢包率即分组丢失率,是指在一定的时间范围内,传输过程丢失的分组数量与总分组数量的比率。
- 丢包率具体可分为:接口丢包率、节点丢包率、链路丢包率、路径丢包率、网络丢包率等。
分组丢失主要有两种情况:
- 分组在传输过程中出现 误码 ,被节点丢弃。
- 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时可能造成 网络拥塞 。
1.6 计算机网络体系结构
常见的计算机网络体系结构
分层的基本原则
- 各层之间相互独立,每层只实现一种相对独立的功能。
- 结构上可以分割开。每层都采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务(下层为上层i共服务)
- 整个分层结构可能促进标准化工作。
网络体系结构有三种:
- OSI七层体系结构(法律上的国际标准)
- TCP/IP 四层体系结构(事实上的国际标准)
- 五层体系结构(综合了 OSI 和 TCP/IP 的优点)
计算机网络体系接口分层的必要性
分层 可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
- 物理层:解决使用何种信号来传输数据(比特)的问题
- 数据链路层:解决分组在一个网络(或一段链路)上传输的问题(将网络层传下来的数据报组装成帧)
- 网络层:解决分组在多个网络上传输(路由)的问题(将运输层产生的报文或用户数据报封装成分组或IP数据报或包进行传送)
- 运输层:解决进程之间基于网络的通信问题(TCP、UDP)
- 应用层:解决通过应用进程的交互来实现特定网络应用的问题(直接为用户的应用进程提供服务 HTTP、FTP等)
专用术语
- 实体:任何可发送或接受信息的硬件或软件进程
- 对等实体:收发双方相同层次中的实体
- 协议:控制两个对等实体进行逻辑通信的规则的集合
- 协议的三要素:语法、语义、同步
- 语法:定义所交换信息的格式
- 语义:定义通信双方所要完成的操作
- 同步:定义通信双方的时序关系
- 服务:下层向上层提供服务,上层使用下层的服务
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元
- 服务数据单元SDU:同一系统内,层于层之间交换的数据包称为服务数据单元
- 多个SDU可以合成一个PDU;一个SDU也可以划分为几个PDU
第二章 物理层
2.1 物理层的基本概念
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
物理层的传输媒体可以分为两类:
-
导引型传输媒体
-
非导引型传输媒体
主要任务是在物理媒体上实现比特流的透明传输
- 透明传输:指不管所传数据是什么的比特组合,都应当能够在链路上传输。
- 物理层协议的主要任务:确定与传输媒体接口有关的一些特性(定义标准)
- 机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。
- 电气特性:指明在接口电缆的各条线上出现的电压的范围。
- 功能特性:指明某条线上出现的某一电平的电压表示何种意义。
- 过程特性:指明对于不同功能的各种可能时间的出现顺序。
- 功能:
- 定义接口特性
- 定义传输模式(单工、半双工、全双工)
- 定义传输速率
- 比特同步
- 比特编码
2.2 物理层的传输媒体
导引型传输媒体
- 同轴电缆
- 基带同轴电缆(50Ω)
数字传输,过去用于局域网 - 宽带同轴电缆(75Ω)
模拟传输,目前主要用于有线电视
- 基带同轴电缆(50Ω)
- 双绞线
- 屏蔽双绞线 STP (Shielded Twisted Pair)
- 无屏蔽双绞线 UTP (Unshielded Twisted Pair)
- 光纤
- 多模光纤
- 单模光纤
- 电力线
非导引型传输媒体
- 无线电波
- 微波
- 红外线
- 可见光(LiFi)
2.3 传输方式
-
串行传输:使用一条数据线,将数据一位一位地依次传输
-
并行传输:并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输(速度快,成本高)
-
同步传输:数据以块或帧的形式发送,数据之间没有间隙
-
异步传输:数据以字节或字符的形式发送,在数据的起始位和停止位都添加了奇偶校验位
-
单向通信(单工):单工通信只有一根数据线,通信只在一个方向上进行
-
双向交替通信(半双工):半双工通信也只有一根数据线,它也单工的区别是这根数据线既可作发送又可作发接收,虽然数据可在两个方向上传送,但通信双方不能同时收发数据
-
双向同时通信(全双工):数据的发送和接收用两根不同的数据线,通信双方在同一时刻都能进行发送和接收
2.4 编码与调制
在计算机网络中,由于传输介质及其格式的限制,通信双方的信号不能直接进行传送,必须通过一定的方式处理之后,使之能够适合传输媒体特性,才能够正确无误地传送到目的地。
编码:将数据转成数字信号
调制:将数据转成模拟信号
基带信号(信息源,也称发终端):指发出的没有经过调制(进行频谱搬移和变换)的原始电信号。
可以分为:
- 数字基带信号
- 模拟基带信号
码元
指一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为 K进制 码元,而该时长称码元的宽度,当码元的离散状态有m个时(m>2)此时码元为m进制码元
1 码元可以携带多个比特的信息量。比如,在使用二进制编码时,只有两种不同的码元,一种代表 0 状态,另一种代表 1 状态。
常用编码的方法
- 不归零编码:是用两个电压来表示,两个二进制数字,如低电平表示0,高电平表示1;或者相反。这种编码方式没有检错功能,难以保持同步。
- 归零编码:信号电平在一个码元内都要恢复到零;每个码元的后半段都是0,前半段表示电平的高低(自同步,编码效率低)
- 曼彻斯特编码:将一个码元分成两个相等的间隔,前一个间隔为高电平,后一个间隔为低电平表示码元1;码元0 则相反。
- 差分曼彻斯特编码:常用于局域网传输,其规则是若码元为1,则前半个码元的电平与上一个码元的后半段的电平相同,码元为0 则相反
- 反向不归零编码:信号电平翻转表示0,信号电平不变表示1.
- 4B/5B编码:比特流中插入额外的比特以打破一连串的0或1,就是用5个比特来编码4个比特的数据。
常用调制的方法
调幅(AM)、调频(FM)、调相(PM)
2.5 信道的极限容量
失真是在信号传输过程中,信号发生了扭曲和变化
失真有两种情况:
- 可识别失真:失真不严重,可以识别
- 不可识别失真:失真严重,无法识别(码间串扰)
失真因素:
- 码元传输速率
- 信号传输距离
- 噪音干扰
- 传输媒体质量
奈氏准则
在假定的理想条件下,为了避免码间串扰,码元传输速率是有上限的
理想低通信道的最高码元传输速率 = 2 W B a u d = 2 W 码元 / 秒 = 2W Baud = 2W 码元/秒 =2WBaud=2W码元/秒
理想带通信道的最高码元传输速率 = W B a u d = W 码元 / 秒 = W Baud = W 码元/秒 =WBaud=W码元/秒
W W W:信道带宽(单位Hz)
B a u d Baud Baud:波特,即码元 / / /秒
- 当1个码元只携带1比特的信息量时,则波特率( 码元 / 秒 码元/秒 码元/秒)与比特率( 码元 / 秒 码元/秒 码元/秒)在数值上是相等的
- 当1个码元携带n比特的信息量时,则波特率转换成比特率时,数值要乘以n
数据传输速率 = 波特率 ( 码元传输速率 ) × 每个码元携带的信息量 ( 比特数 ) 数据传输速率=波特率(码元传输速率)times每个码元携带的信息量(比特数) 数据传输速率=波特率(码元传输速率)×每个码元携带的信息量(比特数)
香农定理
带宽受限且有噪音干扰的信道的极限信息传输速率
香农公式: c = W × l o g 2 ( 1 + S / N ) c=Wtimes {log_2{(1+S/N)}} c=W×log2(1+S/N)
c c c:信道的极限信息传输速率(单位: b / s b/s b/s)
W W W:信道带宽(单位:Hz)
S S S:信道内所传信号的评价功率
N N N:信道内的噪声功率
S / N S/N S/N:信噪比,使用分贝( d B dB dB)作为度量单位
- 信噪比( d B dB dB) = 10 × lg ( S / N ) =10times lg (S/N) =10×lg(S/N)(lg表示以10为底)
信道带宽或信道中信噪比越大,信息的极限传输速率越高
2.6 信道的复用技术
复用(Multiplexing)就是在一条传输媒体上同时传输多路用户的信号。当一条传输媒体的传输容量大于多条信道传输的总容量时,就可以通过复用技术,在这条传输媒体上建立多条通信信道,以便充分利用传输媒体的带宽。
常用的信道复用技术
- 频分复用FDM
- 时分复用TDM
- 波分复用WDM
- 码分复用CDM
频分复用FDM
- 按频率分割多路信号的方法,即将信道的可用频带分成若干互不交叠的频段,每路信号占据其中的一个频段
- 在接收端用适当的滤波器将多路信号分开,分别进行解调和终端处理
- 当采用频分复用技术时,所有用户在同样的时间占用不同的带宽(频带)资源
时分复用TDM
将时间划分成一块块等长的时隙,每一个时分复用的用户,在其相应时隙内,独占传输媒体的资源进行通信。时分复用的各用户所对应的时隙就构成了时分复用帧(即TDM帧),各用户时隙周期性出现的,其周期为TDM帧的长度
- 时分复用的所有用户在不同的时间占用同样的频带
TDM帧实际上是一段固定长度的时间,他与数据链路层对等实体间逻辑通信的“帧”,是不同概念的。
波分复用WDM
波分复用就是光的频分复用。实现基于光纤的频分复用技术
码分复用CDM
码分(CDM)复用常称为码分多址(CDMA),它是在扩频通信技术的基础上发展起来的一种无线通信技术,CDMA的每个用户可以在相同的时间使用相同的频段进行通信。
- 抗干扰能力强
原理:
- CDMA将每个比特时间划分为m个更短的时间片,称为码片(Chip),m的取值通常为64或128
- 每个站被指派一个惟一的 m bit 码片序列(chip sequence) 。
- 如发送比特 1,则发送自己的 m bit 码片序列。
- 如发送比特 0,则发送该码片序列的二进制反码。
-
将码片序列中的比特 0 记为 -1 ,而比特 1 记为 +1 ,可写出码片序列相应的码片向量
码片序列的正交关系
- 分配给每个站的码片序列必须各部相同,实际常采用伪随机码序列
- 分配给每个站的码片序列必须相互正交,即各码片序列相应的码片向量之间的规格化内积为0
- 任何站的码片向量与其他站反码的向量的规格化内积为0
- 任何站的码片向量与该站自身码片向量的规格化内积为1
- 任何站的码片向量与该站自身的反码的向量的规格化内积为-1
2.7 物理层常用设备
网卡:唯一的网卡硬件地址,不能更改
中继器:放大信号,延长数据传输距离
集线器:多端口中继器,为多台终端放大信号
第三章 数据链路层
3.1 概述
提供一段链路相邻的节点间的数据帧传输服务
链路、数据链路和帧
- 节点:主机、路由器
- 链路是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点
- 数据链路是基于链路的。当一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路
- 帧:链路层的协议数据单元PDU
3.2 封装成帧和透明传输
封装成帧
封装成帧的过程就是把网络层的IP数据包加上帧首部与帧尾部形成链路层的数据传输单元,也就是形成帧。
IP数据包(网络层)称为帧的数据部分
FCS:检错码(帧检错序列)
帧头和帧尾的作用之一就是帧定界
透明传输
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
当所传数据中的比特组合恰巧与某一个控制信息完全一致时,就必须采取适当的措施,使接收方不会将这样的数据误以为是某种控制信息,这样才能保证数据链路层的传输是透明的。
组帧的四种方法
-
字符计数法(适用于面向字节的链路)
帧首部使用一个计数字段(第一个字节,八位)来标注帧内字符数。
-
字符填充法
字符填充法是一种常用的方法,通过在关键字段前添加一个转义字符,使得数据传输的过程中忽略掉数据部分中的控制字段
接收端接收到这样加过转义字符的帧后,会自动脱去转义字符
SOH:帧首部的第一个标记开始的字节
EOT:帧尾部的结束字节
ESC:转义字符 -
零比特填充法
零比特填充法中,首部和尾部的标志符是一样的,都是 01111110。在发送一连串比特数据的时候,如果数据中出现同样的 01111110,零比特填充法通过每五个1填充一个0的方法来避免出现数据传输错误问题。
在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
-
违规编码法
在曼切斯特编码中,每一个比特对应的电频都是对应“高-低”或者“低-高”,不会出现“高-高”或者“低-低”这两种编码方式,因此这两种编码方式就是两种违规的编码方法。
因此可以使用“高-高”,“低-低”来定界帧的起始和终止。
3.3 差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0.而0可能会变成1,这称为比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层解决的重要问题之一
检错方法:
-
奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中 “1” 的个数为奇数(奇校验)或偶数(偶校验)如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
如果有偶数个位发生误码,则奇偶性不发生改变,不能检查误码(漏检)
-
循环冗余校验CRC(Cyclic Redundancy Check)
- 收发双方约定好一个生成多项式G(x)
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输
- 接收方通过生成多项式来计算机收到的数据是否产生误码
发送端:
(待发送的数据 + 生成多项式最高次个 0 ) / 生成多项式各项系数构成的比特串 = 商 . . . 余数(冗余码 F C S ) (待发送的数据+生成多项式最高次个0)/生成多项式各项系数构成的比特串=商...余数(冗余码FCS) (待发送的数据+生成多项式最高次个0)/生成多项式各项系数构成的比特串=商...余数(冗余码FCS)余数就是所计算机的冗余码,将其添加到待发送的数据一起发送
余数就是冗余码长度与生成多项式最高次数相同(不够,则在余数前补0)
商作于标记,防止计算过程中对错位接受端
已接受的数据 / 生成多项式各项系数构成的比特串 = 商 . . . 余数 已接受的数据/生成多项式各项系数构成的比特串=商...余数 已接受的数据/生成多项式各项系数构成的比特串=商...余数余数为0,判断无误码
余数不为0,判断有误码
注意:算法要求生成多项式必须包含最低此项(采用异或运算)
3.4 可靠传输
数据链路层向上层提供的服务类型
- 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做。
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
比特差错只是传输差错中的一种,传输差错还包括分组丢失、分组失序、分组重复。
可靠传输服务并不仅局限数据链路层,其他各层均可选择实现可靠传输
可靠传输的实现机制(适用于整个网络体系结构)
- 停止-等待协议SW
- 回退N帧协议GBN
- 选择重传协议SR
停止-等待协议
首先,发送方向接收方发送数据分组,接收方收到发送方发来的数据分组后,对其进行差错检测,若没有误码,则接受该数据分组,并给发送方发送确认分组,简称为ACK,发送方收到对应数据分组的ACK后,才能继续发送数据分组。
- 有差错情况
- 确认与否认(数据丢失或者检测到出错)
发送方每次都只发一个数据分组,接收方对数据分组进行差错检测,检验是否有误码。
如果没有误码,那么给发送方发送ACK确认分组;如果有误码,则丢弃分组,并给发送方发送NAK否认分组。
- 超时重传(发送方发送的数据分组在传输过程中丢失)
我们在等待协议中设定一个计时器,比如在发送方发送完一个数据分组后,启动一个计时器,如果到了设定的最长等待时间,发送方还是没有收到对应的回应包的话,就会重发该分组,这就是超时重传,一般设定的最长等待时间略大于从发送方到接收方的平均往返时间
- 确认丢失
发送方超时重新传送数据,直到收到确认帧(ACK),开始发送下一个 - 确认迟到
重新发送,接收方丢弃重复的数据,重新接受返回确认帧(ACK)
- 确认与否认(数据丢失或者检测到出错)
注意:发送分组(DATA)和确认分组(ACK)都需要进行编号,为了应对发送方和接收方接收到重复数据问题
停止等待协议的信道利用率:
U = T D T D + R T T + T A / U=frac{TD}{TD+RTT+TA}/ U=TD+RTT+TATD/
T
D
TD
TD:发送方发送数据分组所耗费的发送时延TD
R
T
T
RTT
RTT:收发双方之间的往返时间RTT
T
A
TA
TA:接收方发送确认分组所耗费的发送时延TA
当往返时延RTT远大于数据帧发送时延TD时,信道利用率非常低(例如使用卫星链路)
回退N帧协议GBN
使用停等协议的发送方式,在发送过程中,信道利用率很低,如果出现超时重传,则信道利用率更低,该协议在流水线传输基础上,利用发送窗口来限制发送方可连续发送数据分组的个数
- 发送窗口:发送方维持一组连续的允许发送的数据分组的序号
- 接收窗口:接收方维持一组连续允许接受数据分组的序号
过程分析:
-
采用三个比特给分组编序号,既序号的取值范围为0~7
-
发送方维持一个发送窗口,序号落在发送窗口内的数据分组可以被连续发送,不必等到收到接收方的确认分组后再发送
- 发送窗口的尺寸: W T WT WT
- 对于本例,发送窗口的尺寸取值范围是: 1 < W T < = 2 3 − 1 1<WT<=2^3-1 1<WT<=23−1
- W T WT WT为1,则为停止等待协议
- 接收窗口的尺寸为: W R WR WR,对于回退N帧协议,其取值只能为1
无差错情况
- 发送方发送0~4号数据分组,依次发送出去,经过传输到达接收方,没有出现任何错误
- 每接收一个,接收方就将滑动窗口移动一个位置,并向发送方发送针对所接收分组的确认分组
- 发送方成功接收到了接收方的确认分组,发送方每接收一个,就将发送窗口向前移动一个位置。
- 发送方可以将受到确认的数据分组从缓存中删除了
- 接收方可以将已接收的数据分组交付上层处理
累计确认(回退N帧协议的接收方)
- 接收方不需要给收到的数据分组逐个发送确认,而是可以在收到几个数据分组后对按序到达的最后一个数据分组发送确认,ACKn表示序号为n及之前的所有数据分组都已经成功接收
- 优点:即使确认分组丢失,发送方也不必重传;减小接收方的开销,减少对网络资源的占用。
- 缺点:不能向发送方及时反映出接收方已经正确是接受的数据分组信息
有差错情况
- 发送方发送的5号报文出现误码,接收方将其丢弃,并向发送方发送ACK4
- 之后的报文因为与接收窗口不对应,故也无法接收,依次向发送方发送四个ACK
- 发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器就立刻重传!
注意:当发送窗口过大时,会导致接收方无法分辨新旧分组,导致分组重复的错误,所以发送窗口的尺寸不可以超过其上限
选择重传协议SR
可以只重传出错的数据(帧),设置单个确认,同时接收窗口的尺寸 W R WR WR不应在等于1(而大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组(缓存),等到所缺分组收齐后再一并送交上层。
选择重传协议为了使发送方近重传出现差错的分组,接收方不能在采用累计确认,而需要对每个正确接收到的数据分组进行逐一确认!
过程分析:
- 采用3个比特给分组编序号,即序号0~7
- 发送窗口的尺寸 W T WT WT的取值: 1 < W T < = 2 ( 3 − 1 ) 1<WT<=2(^3-1) 1<WT<=2(3−1),本例取 W T WT WT为4
- 接收窗口的尺寸 W R WR WR的取值: W R = W T = 4 WR=WT=4 WR=WT=4
- 原理和回退N帧协议相同
发送方的发送窗口尺寸 W T WT WT必须满足: 1 < W T < = 2 ( n − 1 ) 1<WT<=2(^n-1) 1<WT<=2(n−1),其中n是构成分组序号的比特数量
- 若 W T = 1 WT=1 WT=1:与停止等待协议相同
- 若 W T > 2 ( n − 1 ) :造成接收方无法分辨新、旧数据分组的问题 WT>2(^n-1):造成接收方无法分辨新、旧数据分组的问题 WT>2(n−1):造成接收方无法分辨新、旧数据分组的问题
接收方的接收窗口尺寸 W R WR WR必须满足: 1 < W R < = W T 1<WR<=WT 1<WR<=WT
- 若 W R = 1 WR=1 WR=1:与回退N帧协议相同
- 若 W R > W T WR>WT WR>WT::无意义
发送方只有接收到对已发送数据分组的确认时,发送窗口才能相应滑动。
接收方只有在按序接收数据分组后,接收窗口才能相应滑动。
3.5 点对点协议PPP
点对点协议PPP(Point to Point Protocol)是目前使用最广泛的点对点链路层协议,为在点对点连接上传输多协议数据包提供了一个标准方法。
特点:互联网用户通常要连接到某个ISP才能接入到互联网,PPP协议就是计算机和ISP通信时所使用的数据链路层协议。
PPP协议在为点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP,用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCPs,其中的每一个协议支持不同的网络层协议,如IP、AppleTalk等
PPP协议的帧格式
PPP帧的首部有4个字段,尾部有2个字段。
-
标志(Flag)字段:首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),取值为0x7E。标志字段标志着一个帧的开始或结束。
-
地址(Address)字段:取值为0xFF,预留(没有进行其他定义)
-
控制(Control)字段:取值为0x03,预留(没有进行其他定义
-
协议(Protocol)字段:指明帧的数据部分送交哪个协议进行处理
- 当取值为0x0021时表示:帧的数据部分为IP数据报
- 当取值为0xC021时表示:帧的数据部分为(链路控制协议)LCP分组
- 当取值为0x8021时表示:帧的数据部分为(网络控制协议)NCP分组
-
帧检验序列(Frame Check Sequence)字段:CRC计算出的校验位
PPP协议实现透明传输
PPP协议实现透明传输的方法取决于所使用的链路类型
- 如果是面向字节的异步链路,则采用字节填充法(插入转义字符)
- 如果是面向比特的同步链路,则采用比特填充法(插入比特‘0’)
PPP协议的工作状态
- PPP链路的开始和结束都是 “静止” 状态,这时并不存在物理层的连接;当检测到调制解调器的载波信号,并建立物理连接后,PPP就进入链路的 “建立” 状态
- 这时LCP开始协商一些配置选项,若协商成功,则进入 “鉴别” 状态;若协商失败,则退回 “静止” 状态
- 若通信双方无序鉴别,或鉴别成功,则进入 “网络” 状态;若鉴别失败,则进入 ==“终止”==状态
- 进入网络状态,进行NCP配置,配置完成后,就进入 “打开” 状态,可以进行数据通信
3.6 共享式以太网
1975年,美国Xerox公司(施乐)的罗伯特.梅特卡夫等人成功研制出以太网,以太网以曾经被假想的电磁波传输介质——以太(Ether)来命名
以太网的两个标准:
- DIX Ethernet V2(DEC公司、英特尔公司和施乐公司,第一个局域网产品的标准)
- IEEE 的 802.3 标准(IEEE 802委员会)
以太网目前已经从传统的 共享式以太网 发展到 交换式以太网 !
3.6.1 网络适配器和MAC地址
要将计算机连接到以太网,需要使用相应的网络适配器(Adapter),网络适配器一般简称为 “网卡”。
- 在计算机内部,网卡与CPU之间的通信,一般是通过计算机主板上的I/O总线以并行传输方式进行
- 网卡与外部以太网(局域网)之间的通信,一般是通过传输媒体(同轴电缆、双绞线电缆、光纤)以串行方式进行
主要用于实现物理层和数据链路层功能;进行并行传输和串行传输的转换
MAC地址
数据链路层必须使用地址来区分各主机,当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址,在每个主机发送的帧的首部中,都携带有发送主机(源主机)和接收主机(目的主机)的数据链路层地址,由于这类地址是用于媒体接入控制(media access control)的,因此称为MAC地址
- 每块网卡都有一个全球唯一的MAC地址
- 只有网卡地址与其相同时,才接受数据帧,否则丢弃帧。
IEEE 802局域网的MAC地址格式
这种地址叫做扩展的唯一标识符EUI,由于采用48位所以叫EUI-48,前三位字节为IEEE分配的地址字段,各厂商拥有一个或多个地址;后三字节为厂商自行分配
- 单播:主机之间一对一的通讯模式
- 多播:主机之间一对一组的通讯模式
每四个比特写成一个十六进制的字符
字节发送顺序:第1字节——>第6字节
字节内比特发送顺序:b0——>b7
3.6.2 CSMA/CD协议(多点接入载波监听/冲突检测)
多点接入说明是总线型网络,计算机以多点接入的方式连接在一根总线上,协议的实质是“载波监听”和“碰撞检测”,早期的共享式以太网采用 载波监听多址接入/碰撞检测 ,即CSMA/CD协议 来解决碰撞冲突问题(实际上不能完全解决)
- 当某个站点在总线上发送帧时,总线资源就会被该站点独占。此时,如果总线上的其他站点也要在总线上发送帧,就会产生信号碰撞
- 多址(点)接入:多个站点连接在一条总线上,竞争使用总线
- 载波监听CS:每个站点在发送帧之前,先要检测一下总线上是否有其他站点在发送帧(先听后说),若检测到总线忙,则继续检测并等待转为空闲
- 碰撞检测CD:每个正在发送帧的站点边发送边检测碰撞(边说边听),一旦发现总线上出现碰撞,立即停止发送,退避一段随机时间后再次从载波监听开始进行发送
在使用CSMA/CD协议时,由于正在发送帧的站点必须“边发送帧边检测碰撞”,因此站点不可能同时进行发送和接收,也就是不可能进行全双工通信,而只能进行半双工通信(双向交替通信)
3.6.3 共享式以太网的争用期、最小帧长和最大帧长
争用期(Contention Period)就是以太网端到端往返时间2τ,又称为碰撞窗口(Collision Window)。 在局域网的分析中,常把总线上的单程端到端传播时延记为τ。最先发送数据帧的站,在发送数据帧后之多经过实践2τ(两倍的端对端往返时延)就可以知道发送的数据帧是否遭受了碰撞。
- 站点从发送帧开始,经过争用期2τ这段时间还没有检测到碰撞,就说明这次发送没有产生碰撞
- 总线长度越长(单程端到端的传播时延越大),网络中站点数量越多,发生碰撞的概率越大
争用期
2
τ
=
数据大小
/
带宽
争用期2τ=数据大小 / 带宽
争用期2τ=数据大小/带宽
争用期
2
τ
=
2
∗
端到端距离
/
信号传播速率
争用期2τ=2*端到端距离/信号传播速率
争用期2τ=2∗端到端距离/信号传播速率
最小帧长
公式: 最小帧长 = 数据传输速率 × 争用期 2 τ 最小帧长=数据传输速率times争用期2τ 最小帧长=数据传输速率×争用期2τ
- 为了确保共享总线以太网上的每一个站点在发送完一个完整的帧之前,能够检测出是否产生了碰撞,帧的发送时延不能少于共享总线以太网端到端的往返时间,即一个争用期2τ
- 对于
10
M
b
/
s
10Mb/s
10Mb/s的共享总线以太网,其争用期2τ的值规定为
51.2
u
s
51.2us
51.2us,因此其最小帧长为
512
b
512b
512b,即
64
B
64B
64B
以太网规定最短帧长为 64 B 64B 64B,凡是小于64B的都是由于冲突而异常终止的无效帧
最大帧长
一般来说,帧的数据部分的长度应远远大于帧首部和帧尾部的总长度,这样可以提高帧的传输效率。然后,如果不限制数据部分的长度上线,就可能使得帧的长度太长,带来一些问题
长时间占用信道资源,导致接收方的缓冲区爆满
因此以太网的V2的MAC帧的最大长度被限制为1500字节
3.6.4 共享式以太网的退避算法和信道利用率
在使用CSMA/CD协议的共享总线以太网中,正在发送帧的站点一边发送帧一边检测碰撞,当检测到碰撞时就立即停止发送,退避一段随机时间后在重新发送
共享总线以太网中的各站点采用截断二进制指数退避(Truncated Binary Exponential Backoff)算法来选择退避的随机时间
截断二进制指数退避算法
退避时间 = 基本退避时间(争用期 2 τ ) × 随机数 r 退避时间=基本退避时间(争用期2τ)times随机数r 退避时间=基本退避时间(争用期2τ)×随机数r
r r r 从离散的整数集合 { 0 , 1 , . . . , ( 2 k − 1 ) {0,1,...,(2^k-1)} 0,1,...,(2k−1)} 中随机选出一个数, k = m i n [ 重传次数 , 10 ] k=min[重传次数,10] k=min[重传次数,10]
- k k k:等于重传次数,但是k k k k不能超过10;当重传次数大于10时, k k k就不再增大而一直等于10
- 退避算法减少产生碰撞的概率
- 当重传次数为16次仍不能成功时,就表明同时打算发送帧的站点太多,以至于连续产生碰撞,此时应放弃重传并向高层报告
以太网的信道利用率
一个帧从开始发送,经碰撞后再重传数次,到发送成功且信道转为空闲(这里考虑最极端的情况,发送站在传输媒体的一端,即再经过时间
τ
τ
τ 使得信道上无信号在传播)时为止.
- 发送帧所占总线的时间为 T o + τ T~o~+τ T o +τ,而帧本身的发送时间时 T o T~o~ T o
- 极限信道利用率 S m a x = T 0 T 0 + τ Smax=frac{T~0~}{T~0~+τ} Smax=T 0 +τT 0
成功发送一个帧需要占用信道的时间是 T o + τ T~o~+τ T o +τ,比这个帧的发送时间要多一个单程端到端时延 τ τ τ。这是因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。如果这时有其他站发送数据,就必然产生碰撞。因此,必须在 T o + τ T~o~+τ T o +τ以后才允许其他站发送数据。
3.6.5 使用集线器的共享式以太网
在使用细同轴电缆的共享总线以太网之后,以太网发展出来一种使用大规模继承电路来替代总线,可靠性能高的设备,叫做集线器
- 使用集线器的以太网虽然物理拓扑结构是星型,但在逻辑上仍然是总线网。总线上的各站点共享总线资源(CSMA/CD协议)
- IEEE与1990年指定了 10 B A S E − T 10BASE-T 10BASE−T星型以太网的标准 802.3i
- IEEE802.3以太网还可以使用光纤作为传输媒体,相应的标准为
10
B
A
S
E
−
F
10BASE-F
10BASE−F,“F” 表示光纤,光纤主要用于集线器之间的远程连接
3.6.6 网桥在数据链路层的相关知识
对帧进行转发的技术,用于逐步建立起转发表。扩展局域网最常见的方法是使用网桥。最简单的网桥有两个端口,复杂些的网桥可以有更多的端口。网桥的每个端口与一个网段相连。
网桥(bridge)工作在数据链路层(包含其下的物理层),因此网桥具备数据链路层范畴的相关能力
- 网桥可以识别帧的结构
- 网桥可以根据帧首部中的目的MAC地址和网桥自身的帧转发表来转发或丢弃所收到的帧
网桥通过对收到的帧的源地址和目的地址来更新转发表。同时在查找不到目的地址时起转发功能。自学习算法建立转发表
-
网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。如有,则把原来的项目更新
-
转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。如没有,则通过所有其他接口(但进入网桥的接口除外)进行转发。如有,则按转发表中给出的接口进行转发。但应注意,若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(不需要进行转发)
广播帧:网桥则不查找转发表,而是会通过接收该帧的接口的其他接口转发该广播帧
3.7 交换式以太网
网桥的接口数量很少,一般只用来连接不同的网段
交换式以太网:实际上是具有多个接口的网桥,常称为以太网交换机(Switch)或二层交换机
- ”二层” :指的是以太网交换机工作在数据链路层(包括物理层)
- 与网桥相同,交换式内部的转发表也是通过自学习算法自动建立起来的
- 交换机使用的也是生成树协议STP,来产生能够连通全网但不产生环路的通信路径
3.7.1 交换机以太网
交换机的每个接口可以连接计算机,也可以连接集线器或另一个交换机
- 当交换机的接口与计算机或交换机相连时,可以工作在全双工方法(每一对相互通信的计算机都能独占传输媒体,不需要使用CSMA/CD协议)
- 当交换机的接口与集线器相连时,该接口只能使用CSMA/CD协议并且使用半双工方法
一般的交换机都采用“存储转发”方式,为了减小交换机的转发时延,某些交换机采用直通的交换方式
集线器和交换机的区别
- 集线器工作在物理层,属于1层设备,每发送一个数据,所有的端口均可以收到,采用了广播的方式,因此网络性能受到很大的限制。(集线器的工作原理是广播形式,无论哪个端口收到数据之后,都要广播到所有的端口)
- 交换机工作在数据链路层,属于2层设备,每个端口形成一张MAC地址转发表,根据数据包的MAC地址和转发表来转发数据,而不是广播形式。( 交换机根据MAC地址转发数据,收到数据包之后,检查报文的目的MAC地址,找到对应的端口进行转发)
- 集线器不隔离冲突域和广播域,交换机隔离冲突域,不隔离广播域
3.7.2 虚拟局域网VLAN
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。
每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报文就被限制在一个VLAN内。
为什么需要VLAN
早期以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过二层设备实现LAN互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。(广播风暴等问题)
在这种情况下出现了VLAN技术。这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,广播报文就被限制在一个VLAN内。
3.7.3 虚拟局域网VLAN的实现机制
虚拟局域网VLAN技术是在交换机上实现的,需要交换机实现以下两个功能
-
交换机能够处理带有VLAN标记的帧(IEEE 802.1Q帧)
-
交换机的各端口可以支持不同的端口类型
IEEE 802.1Q帧(也称Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记
VLAN标记的最后12比特称为VLAN标识符 VID,它唯一的标志了以太网帧属于哪个VLAN
- VID的取值范围是 0~4095( 0到2的12次方减1,不包括0和4095)
802.1Q帧是由交换机进行处理的,而不是用户主机来处理的
- 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称打标签
- 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通的以太网帧,简称去标签
交换机的端口类型有以下三种:
- Access
- Trunk
- Hybrid
Access端口:一般用于连接用户计算机,Access端口只能属于一个VLAN,Access端口的PVID值与端口所属的VLAN的ID相同(默认为1)
- 当Access接口从主机上收到一个不带VLAN 标签的数据帧时,会给这个帧加上一个与PVID一致的VLAN标签(VID),其中的PVID可通过手工配置,默认值是1。即所有交换机上的接口默认属于VLAN 1。
- 当Access接口要发送一个带VLAN 标签的数据帧给主机时,首先会检查该帧的VLAN ID是否与自己的PVID相同,若相同,则去掉VLAN标签后发送该数据帧给主机;若不同,则直接丢弃该数据帧。
Trunk端口:一般用于交换机之间或交换机与路由器之间的互联,Trunk端口可以属于多个VLAN,用户可以设置Trunk端口的PVID值,默认情况下Trunk端口值为1
- Trunk端口发送:对VID等于PVID的帧,去标签在转发;对VID不等于PVID的帧时,之间进行转发
- Trunk端口接收:接收未打标签的帧,根据接收帧的端口的PVID给帧打标签,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等;接收已打标签的帧;
Hybrid端口:即可用于交换机之间或交换机与路由器之间的互联(同Trunk端口),也可用于交换机与用户计算机之间的互联(同Access端口),Hybrid端口可以属于多个VLAN(同Trunk端口)
用户可以设置Hybrid端口的PVID值,默认情况下,Hybrid端口的PVID值为1(同Trunk端口)
- Hybrid端口发送方法:查看帧的VID是否在端口的==“去标签“==列表中,若存在,则去标签后在转发,若不存在,则之间转发
- Hybrid端口接收方法:接收未打标签的帧,根据帧的端口的PVID给帧打标签,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等;接收已打标签的帧
主机如果收到IEEE 802.1Q帧,则直接丢弃
3.8 以太网的发展
10BASE-T以太网(802.3u)
10BASE-T以太网是指在双绞线上传输基带信号的速率为
100
M
b
/
s
100Mb/s
100Mb/s的以太网,10BASE-T以太网与
10
M
b
/
s
10Mb/s
10Mb/s传统以太网(标准)一样,仍然使用IEEE 802.3的帧格式和CSMA/CD协议
IEEE 802.3u是对原有IEEE 802.3的补充
吉比特以太网
吉比特以太网也称为千兆以太网(Gigabit EthErnet),1998年千兆以太网的标准802.3z称为正式标准,速率为
1000
M
b
/
s
(
1
G
b
/
s
)
1000Mb/s(1Gb/s)
1000Mb/s(1Gb/s),使用IEEE802.3的帧格式,支持半双工方式(使用CSMA/CD协议)和全双工方式(不使用CSMA/CD协议)
兼容以上两种技术
10吉比特以太网
2002年6月,IEEE 802.3ae委员会通过10吉比特以太网(10GE)的正式标准,也成为万兆以太网,万兆网的目标是将以太网从局域网范围(校园网或企业网)扩展到城域网与广域网,使用IEEE 802.3标准的帧格式,只工作在全双工方式(不适用CSMA/CD)
40/100吉比特以太网
2010年,IEEE发布了40/100吉比特以太网(40GE/100GE)的标准IEEE 802.3ba标准,也称为四万兆/十万兆以太网
- 40Gb/s主要用于计算应用
- 100Gb/s主要用于汇聚应用
IEEE 802.3ba标准只工作在全双工方式(不使用CSMA/CD协议)
3.9 802.11无线局域网
IEEE与1997年指定出了无线局域网的协议标准IEEE 802.11,也可称为Wi-Fi
无线局域网可分为两大类:有固定基础设施的无线局域网和无固定基础设施的移动自组织网络。所谓“固定基础设施”,是指预先建立的、能覆盖一定地理范围的固定基站。
有固定基础设施的无线局域网
- 位于其中心的基站被称为接入点,英文缩写AP
- 802.11无线局域网的最小构件,称为基本服务集(BSS),一个BSS中包含一个AP和若干个移动站
本BSS内各站点之间的通信以及与本BSS外的站点之间的通信,必须经过本BSS内的AP进行转发
一个BSS可以是孤立的,也可以通过分配系统(DS)与其它DSS相连,就组成了一个扩展的服务集(ESS)。一个BSS所覆盖的范围,称为基本服务区(BSA),其地理覆盖范围直径小于100m
无固定基础设施的移动自组织网络
自组织网络并没有预先建立的固定基础设施(例如基站或接入点AP),它是由一些对等的移动站点,构成的临时网络。数据在自组织网络中被多跳存储转发
转发站需要具有路由功能,自组织网络由特定的路由选择协议 ,一般不能和因特网之间相连,需要通过网络或协议转换器连接因特网
3.9.1 802.11无线局域网-CSMA/CA协议
802.11无线局域网,使用无线信道传输数据,与共享总线以太网使用有线传输介质不同。所以,802.11无线局域网使用的是CSMA/CA协议(载波监听多址接入/碰撞避免)
CSMA/CA协议仍然采用CSMA/CD协议中的CSMA,以先听后说的方式来减少碰撞的发生,但是将碰撞检测CD改为碰撞避免CA(实际上不能完全避免,只能尽量减少)
CSMA/CA 协议工作原理
- 检测信道:发送数据帧前,检测信道是否空闲;
- 信道空闲:发出 RTS( Request To Send), RTS 包括 发射端地址 , 接收端地址 , 发送持续时间 等信息(RTS控制帧)
- 信道忙:等待;
- 接收端收到 RTS :则等待SIFS帧间隔(SIFS用来分隔开属于一次对话的各帧),之后发送 CTS ( Clear To Send ) 响应(CTS响应控制帧)
- 发送端收到 CTS:同时执行以下两个操作 ;
- 发送数据:则等待DIFS间隔后才能发送(DCF帧间间隔,长度为128us/微秒,DIFS用来发送帧和管理帧),之后开始发送数据帧
- 预约信道:告知其它站点 , 自己要传输数据 , 并给出传输时间(NAV,这段时间内,其他站推迟发送)
- 接收方接收到数据后 , 使用 CRC 循环冗余校验码 校验 数据是否正确 , 如果数据正确 , 则等待SIFS帧间隔,之后返回 ACK 确认帧 ;
- 发送方接收到 ACK 确认帧 后 , 才进行下一帧的发送 , 如果没有收到 , 则一直重传 , 直到16次失败为止 ; ( 二进制指数退避算法 )
当一个站发送完数据时,所以的站都要执行退避算法,防止产生碰撞、
为了进一步降低发生碰撞的概率,802.11无线局域网允许源站对信道进行预约
三种机制
- 使用RTS帧和CTS帧(预约信道)
- 只有当数据帧的长度超过某个数值时才使用RTS帧和CTS帧
- 不使用RTS帧和CTS帧
CSMA/CD主要适用以太网
CSMA/CA主要适用无线局域网
3.9.2 802.11无线局域网的MAC帧
802.11无线局域网的MAC帧分为三种类型
- 数据帧:用于在站点传输数据
- 控制帧:通常与数据帧搭配使用,负责区域的清空、虚拟载波监听的维护以及信道的接入,并于收到的数据帧时给予确认(ACK帧、RTS帧以及CTS帧都属于控制帧)
- 管理帧:用于加入或退出无线网,以及处理AP之间连接的转移事宜(信标帧、关联请求帧以及身份认证帧等都属于管理帧)
这是802.11无线局域网的数据帧的格式
帧头:包含相关控制信息和地址信息
数据部分:用来存放上层交付下来的待传送的协议数据单元(PDU),通常不超过1500字节
帧尾:用于存放帧检验序列,采用CRC循环冗余检验码
持续期:用于实现CSMA/CA的虚拟监听和信道预约机制
序号控制:用来实现802.11的可靠传输,对数据帧进行编号
取决于帧控制字段中的去往DS(到分配系统)和来自DS(分配系统)这两个字段的值
第四章 网络层
4.1 网络层概述
网络层介于传输层和数据链路层之间,网络层的主要任务就是将分组从源主机经过多个网络和多端链路传输到目的主机,可以将该任务划分为分组转发和路由选择两种重要的功能
4.1.1 路由选择和分组转发
路由选择:指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。(选择最佳路线)
分组转发:指路由器根据转发表将用户的IP数据报从合适的端口转发出去。
路由表是根据路由选择算法得出的,而转发表是从路由表得出的(也可以手动配置路由表)
路由表则需要对网络拓扑变化的计算最优化, 转发表的结构应当使查找过程最优化
4.1.2 虚电路服务和数据报服务
网络层向上层提供了两种服务
- 面向连接的虚电路服务
- 无连接的数据报服务
面向连接的虚电路服务
当两台主机进行通信时,必须首先建立网络层连接——虚电路(以保证通信双方所需的一切网络资源);通信双方沿着已建立的虚电路发送分组;通信结束后,通信双方释放之间所建立的虚电路
虚电路表示这是一条逻辑上的连接,分组沿着这条逻辑连接按照存储转发方式传送,而不是真正建立了一条物理连接
无连接的数据报服务
当两台主机进行通信时,不需要建立网络层连接;每个分组可走不同的路径,因此每个分组的首部都必须携带目的主机的完整地址;通信结束后,通信双方没有要释放的连接
4.2 网际协议IP
网际协议IP(Internet Protocol,IP)是TCP/IP体系结构网际层中的核心协议
网际协议IP是TCP/IP体系结构网际层中的核心协议,可以互连各种不同的网络接口。
TCP和UDP是运输层的两个重要的协议,TCP为应用层中的某些协议提供可靠传输;UDP为应用层的某些协议提供不可靠传输服务
4.2.1 异构网络互连
这些网络的拓扑、性能以及所使用的网络协议都不尽相同,这是由用户需求的多样性造成的,没有一种单一的网络能够适应所有用户的需求
要将众多的异构型网络都互连起来,并可以相互通信,则面临许多需要解决的问题
- 不同的网络接入机制
- 不同的差错恢复方法
- 不同的路由选择技术
- 不同的寻址方案
- 不同的最大分组长度
- 不同的服务(面向连接和无连接)
网络层都使用相同的IP的协议,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统或中继系统。根据所在的层次,中继系统分为以下4种:
- 物理层中继系统:中继器,集线器(Hub)
- 数据链路层中继系统:网桥或交换机
- 网络层中继系统:路由器
- 网络层以上的中继系统:网关
4.2.2 IPV4地址
详细内容可在此博客查看
IPV4地址详解
4.2.3 地址解析协议ARP
ARP是根据 IP地址 获取 物理地址 的一个 TCP/IP协议。主机 发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机(ARP请求报文),并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP请求报文被封装在MAC帧中发送
发送
响应
之后B可以给C发送数据报
ARP高速缓存表中的每一条记录都有类型,分为两种
- 动态:自动获取的,生命周期默认为两分钟
- 静态:手工配置,不同操作系统下的生命周期不同
注意:ARP协议只能在同一段链路或同一个网络中使用,ARP协议存在不安全性
4.2.4 IP数据报的发送和转发过程
IP数据报的发送和转发过程包含以下两部分
- 主机发送IP数据报
- 路由器转发IP数据报
同一个网络中的主机可以直接通信,这属于直接交付.
不同网络中的主机不能直接通信,需要路由器的中转,这属于间接交付。
源主机如何知道目的主机是否与自己在同一网络中?
假设主机C给主机F发送ip数据报,主机C将自己的IP地址和子网掩码相与,就可以的到主机C所在网络的网络地址,然后主机C将主机F的IP地址与自己的子网掩码相与,如果结果和主机C的网络地址相同则就在同一网络地址中。不同则需要将IP数据报传输给路由器,由路由器将IP数据报转发给主机F。
源主机如何知道将数据交给哪个路由器?
实际上,用户为了让本网络的主机,能和其他网络的主机进行通信。就必须给其指定本网络中的一个路由器,由该路由器帮忙进行转发,所指定的路由器也被称为默认网关。
当本网络的主机要和其他网络的主机进行通信时,会将IP数据报传递给默认网关,由默认网关帮主机将IP数据报转发出去
路由器如何转发IP数据报
- 检查IP数据报首部是否出错:
若出错,则直接丢弃IP数据报并通告源主机;若没有出错,则进行转发 - 根据IP数据报的目的地址在路由器表中查找匹配的条目
若找到匹配的条目,则转发给条目中指示的下一条;若找不到,则丢弃该IP数据报并通告源主机
路由器接收到广播IP数据报,并不会转发,因为路由器是隔离广播域(避免造成网络风暴)
4.2.5 IPV4数据报的首部格式
IPV4数据报(IP数据报)是实现IP协议主要功能的基础,有两个部分组成:
- 固定部分(20字节):每个IP数据报首部都必须包含的部分
- 可变部分(40字节)
IP数据报的首部常以32比特,也就是4个字节构成
- 版本:表示IP协议的版本(占4比特),通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPV4)
- 首部字段:占4比特,表示IP数据报首部的长度。
- 可选字段:长度1字节到40字节不等。用来支持排错。测量及安全等措施
- 填充字段:确保首部长度为4字节的整数倍,使用全0进行填充
- 标识:占16个比特,属于同一个数据报的各分片数据报应该具有相同的标识
- 标志:占3个比特,DF位为1表示不允许分片,为0表示允许分片;MF位表示后面还有分片,0表示这是最后一个分片;保留位必须为0。
- 片偏移:占13个比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位,片偏移以8个字节为单位。
- 首部检验和:占16个比特,用来检测首部在传输过程中是否出现差错,比CRC检验码简单,称为因特网检验和。
因为网络有最大传送单元MTU限制,所以需要分片(分片的最大长度是小于MTU传送单元,并且是8的整数倍)
分片结束后,给每一个分片重写添加一个首部
4.3 静态路由配置
静态路由配置是指用户或用户管理员使用路由器的相关命令给路由器人工配置路由表
路由条目的类型分为:
- 直连网络
- 静态路由(人工配置)
- 动态路由(路由选择协议)
实际上,对于具有相同下一条的不同目的网络的路由条目,可以使用默认路由来替代,默认路由条目中的网络地址为0.0.0.0,类型为静态。也可以添加特定主机路由条目
默认路由 (Default route),是对IP 数据包 中的目的地址找不到存在的其他路由时, 路由器所选择的路由,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。
为了防止因为静态路由手动配置错误,路由器之间产生了路由环路,导致IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段,IP数据报进入路由器后,TTL字段的值减1,若TTL的值不等于0,则被路由器转发,否则被丢弃
因路由聚合,导致目的IP不存在,则会对路由聚合表中不存在的的IP地址产生一个黑洞路由,当IP数据报报传入到黑洞路由,则会之间丢弃
黑洞路由:避免IP数据报产生环路(null0虚拟接口0)
4.4 路由选择
4.4.1 路由选择分类
路由选择可分为静态路由选择和动态路由选择两类
- 静态路由选择:由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由(人工配置简单,但不能及时适应网络状态),适用于小规模网络
- 动态路由选择:路由器通过路由选择协议自动获取路由信息(复杂,较好适应网络状态的变化),适用于大规模网络
因特网所采用的路由选择协议的主要特点
- 自适应:动态路由选择,能较好地适应网络状态的变化
- 分布式:路由器之间交换路由信息,共同完成路由信息的获取和更新
- 分层次:将因特网划分为许多较小的自治系统AS(不同的自治系统采用不同类别的路由选择协议)
域间路由选择:使用外部网关协议EGP(也可称为外部路由协议ERP)这个类别的路由选择协议
域间路由选择:使用内部网关协议IGP(也可称为内部路由协议IRP)这个类别的路由选择协议
4.4.2 路由信息协议RIP
路由信息西医RIP是内部网关协议IGP中最先得到广泛使用的协议,具体文体为RFC 1058。RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V
- RIP使用跳数作为度量来衡量到达目的网络的距离
- 路由器到直连网络的距离定义为1
- 路由器到非直连网络的距离定义为所经过的路由器数加1
- 允许一条路径最多只能包含15个路由器。距离等于16时相当于不可达,因此,RIP适用于小型互联网
部分厂商的路由器的RIP没有严格按照规定文档实现RIP,比如思科路由器,将路由器到直连网络的距离定义为0,但是并不影响RIP的正常运行
工作过程
- 路由器刚开始工作时,只知道自己到直连路由器的距离为1
- 每个路由器仅和相邻路由器周期性地交换并更新路由信息
- 若干次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛
更新规则
两个相邻之间的路由器,将C的路由表中的相关信息,封装到RIP更新报文中发送给D路由器,D路由器收到后对其进行改造,将到达目的网络的下一条都改为C,距离都增加1
当检测到故障时,会将检测到目的网络地址距离修改为16,表示不可达
4.4.3 开放最短路径优先OSPF
OSPF是基于链路状态的,而不像RIP那样基于距离向量的
- 开放:表示OSPF协议不是受某一家厂商控制,而是公开发表的
- 最短路径优先:使用了Dijkstra提出的最短路径算法SPF
OSPF不限制网络规模,更新效率高,收敛速度快
OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系
- Hello分组封装在IP数据报中,发往组播地址224.0.0.5
- 发送周期为10秒
- 40秒未收到来自邻居路由器的Hello分组,则认为该邻居路由器不可达
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA。
使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自的转发表
工作原理
- 路由器之间相互发送hello包,建立邻居关系
- 然后发送LSA(链路状态通告,包含了路由器已知的接口IP地址,掩码,开销和网络类型等信息),告诉邻居自己相连链路的状态。
- 收到LSA的路由器根据LSA建立自己的链路状态数据库(LSDB),形成拓扑表。
- 在拓扑表的基础上运行SPF算法,选出到达目标网络的最优路由,并加入到路由表中。
4.4.4 边界网关协议BGP
是一种实现自治系统AS之间的路由可达,并选择最佳路由的距离矢量路由协议
内部网关协议IGP:用于自治系统内部AS的路由选择,典型的协议有路由信息协议RIP和开放最短路径优先OSPF
- 设法使分组在一个自治系统内部尽可能有效地从源网络传输到目的网络
- 无序考虑自治系统外部其他方面的策略
外部网关协议EGP:用于自治系统之间的路由选择,典型的协议是边界网关协议BGP
- 在不同自治系统内,度量路由的代价(距离、带宽、费用等)可能不同。因为没有统一的度量,所以使用代价寻找最佳路由不可行
- 所以BGP用于寻找一条能够到达目的网络并且比较好的路由(避免兜圈子)
工作原理
- 在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人(BGP边界路由器)
- 在不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179
- BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIP
边界网关协议BFP适用于多级结构的因特网
4.4.5 路由器基本工作原理
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
路由表:一般包含从目的网络到下一跳的映射,路由表需要对网络拓扑变化的计算最优化
转发表:从路由表得出来的,转发表的结构应当使查找过程最优化
输入缓冲区:用来暂存新进入路由器,但还来不及处理的分组
输出缓冲区:用来暂存已经处理完毕,但还来不及发送的分组
路由选择部分:核心构件是路由选择处理机,其任务是根据所使用的路由选择协议,周期性地与其他路由器进行路由信息的交换,一遍构建和更新路由表
4.5 网际控制报文ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP
主机或路由器使用ICMP来发送差错报告报文和询问报文
ICMP报文被封装在IP数据报中发送
终点不可达
当路由器或主机不能交付数据报时,就向源点发送终点不可达报文,具体的可根据ICMP的代码自动进行细分
源点抑制
当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报发送速率放慢
时间超过
当路由器收到一个目的IP地址不是自己的IP数据报时,会将其生存时间TTL字段减1,若结果不为0,则将该IP数据报转发出去;若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文
参数问题
当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程张出现了误码,就丢弃该数据报,并向源点发送参数问题报文
改变路由
路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由器)
- 不应该发送差错报文ICMP的情况
常用的ICMP询问报文有两种情况
- 回送请求报文
- 时间戳请求和回答
4.6 虚拟专用网VPN与网络地址转换NAT
虚拟专用网
利用公用互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN。
由于IP地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。因此虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址
专用(私有)地址:
- 10.0.0.0~10.255.255.255(10/8地址块)
- 172.16.0.0~172.31.255.255(172.16/12地址块)
- 192.168.0.0~192.168.255.255(192.168/16地址块)
私有地址只能用作本地地址而不能作为全球地址
在因特网所有路由器中,对目的地址是私有地址的IP数据报一律不进行转发。各自路由器至少需要一个路由器具有合法的全球IP地址,它们各自的专用网才能利用公用的因特网进行通信。
同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN。有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN。
网络地址转换NAT
1994年提出了一种网络地址转换NAT的方法再次缓解了IPV4地址空间即将耗尽的问题。
NAT能使大量使用内部网络专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源
私有地址的主机如何通信?
在专用网络连接到因特网的路由器上,安装NAT软件,装有NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址,这样所有使用私有地址的主机在和外界通信时,都要在NAT路由器上将其私有地址转换成全球IP地址
- 发送
- 接收
NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护
4.7 IP多播技术
详细内容可查看此博客: IP多播技术
4.8 移动IP技术
移动IP(Mobile IP)是因特网工程任务组IETF开放的一种技术(RFC 3344),该技术使得移动主机在各网络之间漫游时,仍然能够保持其原来的IP地址不变
移动IP技术还为因特网中的非移动主机提供了相应机制,使得他们能够将IP数据报正确发送到移动主机
最后
以上就是害羞小懒虫为你收集整理的计算机网络学习笔记前言第一章 概述第二章 物理层第三章 数据链路层第四章 网络层的全部内容,希望文章能够帮你解决计算机网络学习笔记前言第一章 概述第二章 物理层第三章 数据链路层第四章 网络层所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复