视频课程见,B站@胡科大教书匠,瑞斯拜老师,yyds。
笔记如下:
思维导图
图示说明
1.1.计算机网络在信息时代的作用
- 有一种计算机网络发展变得重要
- 像水、电、气这样的基础设施,计算机网络已经成为我们的一部分
中国互联网的发展
中国互联网信息中心 CNNIC
1.2.因特网概述
1.网络、互联网(互联网)和因特网
网络:网络(Network)由若干**结点(Node)链路(Link)**组成。
互联网(互联网):多个网络通过路由器连接,形成一个覆盖范围较大的网络,即互联网(互联网)。因此,互联网也被称为网络网络(Network of Networks)”。
因特网:因特网(Internet)是世界上最大的互联网络(用户数亿,互联网数百万)。
- **internet(互联网或互联网)*它是一个通用名词,一般指*由多个计算机网络互连而成的网络。这些网络之间的通信协议可以是任意的。
- ,它指,它采用 TCP/IP 作为通信规则,协议家的前身是美国 ARPANET。
2.特网发展的三个阶段
普通用户是如何访问因特网的?
答:
ISP 可向因特网管理机构申请成块 IP 同时拥有通信线路、路由器等网络设备。任何机构和个人只需支付费用。
一旦用户能够访问因特网,他也可以成为一个 ISP,需要做的是购买一些设备,如调制解调器或路由器,以便其他用户能够与他连接。
3.特网的标准化工作
- 因特网的标准化对因特网的发展起着非常重要的作用。
- 因特网在指定其标准时的一大特点是
- 因特网所有(Request For Comments)技术文档都可从因特网上免费下载;
- 任何人都可以随时用电子邮件对某个文件发表意见或建议。
- 它是一个国际组织,负责全面管理因特网,促进其在世界各地的发展和使用。
- 特网体系结构委员会 IAB,负责开发因特网相关协议;
- 因特网工程部 IETF,研究中短期工程问题,主要针对协议的开发和标准化;
- 因特网研究部 IRTF,一些需要长期考虑的问题需要从事理论研究和开发。
-
制定因特网的正式标准需要通过:
1.因特网草案(这个阶段还不是 RFC 文档)
2.建议标准(从这个阶段开始) RFC 文档)
3、草案标准
4.因特网标准
由特网组成
-
边缘部分
由所有连接在因特网上的组成(台式电脑、大型服务器、笔记本电脑、平板电脑、智能手机等)。,用来做(传输数据、音频或视频)和。
-
核心部分
由连接这些网络组成。这部分是(提供连通性和交换)。
路由器是一种特殊的计算机,但我们不称之为主机。路由器是实现分组交换的关键结构,其任务是转发收到的分组,这是网络核心中最重要的部分。
互联网边缘的部分是所有连接到互联网的主机。这些主机也被称为。
- 小端系统可以是普通互联网功能的普通个人电脑、智能手机甚至小型网络摄像头。
- 大端系统可以是非常昂贵的大型计算机。
- 端系统的所有者可以是个人、单位(如学校、企业、政府机关等),当然也可以是某个单位 ISP。
补充:
“主机 A 和主机 B 通信实际上是指在主机上运行 A 在主机上运行的程序和程序 B 上的另一个程序进行通信”。
端系统之间的通信方式通常可分为两类:
- 客户 (client) 和服务器 (server) 指通信中涉及的两个应用程序。
- 客户 - 服务器模式描述了服务与服务之间的关系。
- 客户是服务请求方,服务器是服务提供商。
- (peer-to-peer,简写为 ) 这意味着两个主机在通信时不区分哪一个是服务请求方还是服务提供商。
- 只要两个主机运行对等连接软件 ( P2P 软件) ,它们可以做到。
- 双方都可以下载存储在硬盘中的共享文档。
1.3 三种交换方式
网络的核心部分是互联网中最复杂的部分。
网络的核心部分应连接到网络边缘的大量主机,使边缘部分的任何主机都能通信到其他主机(即传输或接收各种形式的数据)。
在网络核心部分发挥特殊作用的是(router)。
是实现
1、电路交换(Circuit Switching)
传统两两相连的方式,当电话数量很多时,电话线也很多,就很不方便
所以要使得每一部电话能够很方便地和另一部电话进行通信,就应该使用一个
中间设备 将这些电话连接起来,这个中间设备就是电话交换机
-
电话交换机接通电话线的方式称为电路交换;
-
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
-
电路交换的三个步骤:
1、建立连接(分配通信资源)
2、通话(一直占用通信资源)
3、释放连接(归还通信资源)
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。
这是因为计算机数据是突发式地出现在传输线路上的。
所以计算机通常采用的是
分组交换 ,而不是线路交换
2、分组交换(Packet Switching)
通常我们把表示
该消息的整块数据 成为一个报文 。在发送报文之前,先把较长的报文划分成一个个更小的
等长数据段 ,在每一个数据段前面。加上一些由必要的控制信息组成的首部 后,就构成一个分组,也可简称为“包”,相应地,首部也可称为“包头”。首部包含了
分组的目的地址 分组从源主机到目的主机,可走不同的路径。
发送方
- 构造分组
- 发送分组
路由器
- 缓存分组
- 转发分组
- 简称为“分组转发”
在路由器中的输入和输出端口之间没有直接连线。
路由器处理分组的过程是:
- 把收到的分组先
放入缓存(暂时存储); 查找转发表 ,找出到某个目的地址应从哪个端口转发;- 把分组送到适当的端口
转发 出去。
接收方
- 接收分组
- 还原报文
3、报文交换(Message Switching)
报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,
三种交换方式的对比
假设 A,B,C,D 是分组传输路径所要经过的 4 个结点交换机,纵坐标为时间
分析:
电路交换:
- 通信之前首先要建立连接;连接建立好之后,就可以使用已建立好的连接进行数据传送;数据传送后,需释放连接,以归还之前建立连接所占用的通信线路资源。
- 一旦建立连接,中间的各结点交换机就是直通形式的,比特流可以直达终点;
报文交换:
- 可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机。
- 整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间。
分组交换:
- 可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。
- 构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
1.4 计算机网络的定义和分类
定义
- 计算机网络的精确定义并未统一
- 计算机网络的最简单的定义是:一些
互 相连 接的、自治 的计算机的集合 。- 互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
- 自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用;
- 集合:是指至少需要两台计算机;
- 计算机网络的较好的定义是:计算机网络主要是由一些
通用的,可编程的硬件(一定包含有中央处理机 CPU)互连 而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据 ,并能支持广泛的和日益增长的应用 。- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
- 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
分类
- 电路交换网络
- 报文交换网络
- 分组交换网络
- 公用网
- 专用网
- 有线网络
- 无线网络
- 广域网 WAN(Wide Area Network)
作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
- 城域网 MAN
作用范围一般是一个城市,可跨越几个街区甚至整个城市
- 局域网 LAN
一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)
- 个域网 PAN
就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。
- 总线型网络
- 星型网络
- 环形网络
- 网状型网络
1.5 计算机网络的性能指标
速率
带宽
吞吐量
带宽 1 Gb/s 的以太网,代表其额定速率是 1 Gb/s,这个数值也是该以太网的
吞吐量的绝对上限值 。因此,对于带宽 1 Gb/s 的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。注意:吞吐量还可以用每秒传送的字节数或帧数表示
时延
时延时指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络时延由几部分组成:
- 发送时延
主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
- 传播时延
电磁波在信道中传播一定的距离需要花费的时间。
- 处理时延
主机或路由器在收到分组时要花费一定时间进行处理
- 排队时延
分组在进过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
有时会把排队时延看成
处理时延 一部分 总时延 = 发送时延 + 传播时延 + 处理时延 (处理时延 + 排队时延)
当处理时延忽略不计时,发送时延 和 传播时延谁占主导,要具体情况具体分析
时延带宽积
时延带宽积 = 传播时延 * 带宽
往返时间
互联网上的信息不仅仅单方向传输而是双向交互的。因此,我们有时很需要知道
利用率
利用率有
丢包率
1.6 计算机网络体系结构
1、常见的计算机网络体系结构
如今用的最多的是 TCP/IP 体系结构,现今规模最大的、覆盖全球的、基于 TCP/IP 的互联网并未使用 OSI 标准。
TCP/IP 体系结构相当于将 OSI 体系结构的
物理层 和数据链路层 合并为了网络接口层 ,并去掉了会话层 和表示层 。TCP/IP 在网络层使用的协议是 IP 协议,IP 协议的意思是网际协议,因此
TCP/IP 体系结构的网络层称为网际层
在用户主机的操作系统中,通常都带有符合 TCP/IP 体系结构标准的 TCP/IP 协议族。
而用于网络互连的路由器中,也带有符合 TCP/IP 体系结构标准的 TCP/IP 协议族。
只不过路由器一般只包含网络接口层和网际层。
网络接口层 :并没有规定具体内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的 WIFI 接口等。
网际层 :它的核心协议是 IP 协议。
运输层 :TCP 和 UDP 是这层的两个重要协议。
应用层 :这层包含了大量的应用层协议,如 HTTP , DNS 等。
**IP 协议(网际层)
可以将不同的 网络接口(网络接口层)进行互连,并向其上的 TCP 协议和 UDP 协议(运输层)**提供网络互连服务而
TCP 协议 在享受 IP 协议提供的网络互连服务的基础上,可向应用层的相应协议 提供可靠 的传输服务。
UDP 协议 在享受 IP 协议提供的网络互连服务的基础上,可向应用层的相应协议 提供不可靠 的传输服务。
TCP/IP 体系结构中最重要的是
IP 协议 和TCP 协议 ,因此用 TCP 和 IP 来表示整个协议大家族。
教学时把 TCP/IP 体系结构的
网络接口层 分成了物理层 和数据链路层
2、计算机网络体系结构分层的必要性
这图说明
- 第一,严格来说,传输媒体并不属于物理层
- 计算机传输的信号,并不是图示的方波信号
这样举例只是让初学者容易理解
如何标识与网络通信相关的应用进程:一个分组到来,我们应该交给哪个进程处理呢?浏览器进程还是 QQ 进程
应用层该用什么方法(应用层协议)去解析数据
3、计算机网络体系结构分层思想举例
例子:主机的浏览器如何与 Web 服务器进行通信
主机和 Web 服务器之间基于网络的通信,实际上是主机中的
第一步:
应用层 按照 HTTP 协议的规定构建一个HTTP 请求报文 - 应用层将
HTTP 请求报文 交付给运输层 处理
第二步:
运输层 给HTTP 请求报文 添加一个TCP 首部 ,使之成为TCP 报文段 TCP 报文段的首部格式 作用是区分应用进程以及实现可靠传输运输层 将 TCP 报文段 交付给网络层 处理
第三步:
网络层 给TCP 报文段 添加一个IP 首部 ,使之成为IP 数据报 IP 数据报的首部格式 作用是使IP 数据报 可以在互联网传输,也就是被路由器转发网络层 将IP 数据报 交付给数据链路层 处理
第四步:
数据链路层 给IP 数据报 添加一个首部 和一个尾部 ,使之成为帧 (图示右边为首部,左边为尾部)- 该
首部 的作用主要是为了让帧 能够在一段链路上或一个网络上传输,能够被相应的目的主机接收- 该
尾部 的作用是让目的主机检查所接收到的帧 是否有误码数据链路层 将帧 交付给物理层
第五步:
物理层 先将帧 看做是比特流 ,这里的网络 N1 假设是以太网,所以物理层 还会给该比特流 前面添加前导码 前导码 的作用是为了让目的主机做好接收帧的准备物理层 将装有前导码 的比特流 变换成相应的信号 发送给传输媒体
第六步:
信号 通过传输媒体 到达路由器
在路由器中
物理层 将信号 变为比特流 ,然后去掉前导码 后,将其交付给数据链路层 数据链路层 将帧 的首部 和尾部 去掉后,将其交付给网络层 ,这实际交付的是IP 数据报 网络层 解析IP 数据报 的首部 ,从中提取目的网络地址
在路由器中
- 提取
目的网络地址 后查找自身路由表 。确定转发端口 , 以便进行转发网络层 将IP 数据报 交付给数据链路层 数据链路层 给IP 数据报 添加一个首部 和一个尾部 ,使之成为帧 数据链路层 将帧交付给物理层 物理层 先将帧 看成比特流 ,这里的网络 N2 假设是以太网,所以物理层 还会给该比特流 前面添加前导码 - 物理层将装有
前导码 的比特流 变换成相应的信号 发送给传输媒体,信号通过传输媒体到达Web 服务器
和发送方(主机)发送过程的封装正好是反着来
在 Web 服务器上
物理层 将信号 变换为比特流 ,然后去掉前导码 后成为帧 ,交付给数据链路层 数据链路层 将帧 的首部 和尾部 去掉后成为IP 数据报 ,将其交付给网络层 网络层 将IP 数据报 的首部 去掉后成为TCP 报文段 ,将其交付给运输层 运输层 将TCP 报文段 的首部 去掉后成为HTTP 请求报文 ,将其交付给应用层 应用层 对HTTP 请求报文 进行解析 ,然后给主机发回响应报文
发回响应报文的步骤和之前过程类似
4、计算机网络体系结构中的专用术语
以下介绍的专用术语来源于 OSI 的七层协议体系结构,但也适用于 TCP/IP 的四层体系结构和五层协议体系结构
协议:控制两个对等实体进行逻辑通信的规则的集合
协议三要素:
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双发的时序关系
物理层的基本概念
物理层下面的传输媒体
传输媒体不属于计算机网络体系结构的任何一层。如果非要将它添加到体系结构中,那只能将其放置到物理层之下。
导引型传输媒体
在导引型传输媒体中,电磁波被导引沿着固体媒体传播。
多模光纤
- 可以存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为
多模光纤 。
单模光纤
- 若光纤的直径减小到只有一个光的波长,则光纤就像一根波导那样,它可使光线一直向前传播,而不会产生多次反射。这样的光纤称为
单模光纤 。
非导引型传输媒体
非导引型传输媒体是指自由空间。
LIFI
传输方式
串行传输和并行传输
串行传输 :
- 数据是一个比特一个比特依次发送的,因此在发送端与接收端之间,只需要一条数据传输线路即可
并行传输 :
一次发送n个比特,因此,在发送端和接收端之间需要有n条传输线路
并行传输的优点是比串行传输的速度n倍,但成本高
数据在传输线路上的传输采用是
串行传输 ,计算机内部的数据传输常用并行传输
同步传输和异步传输
同步传输 :
- 数据块以稳定的比特流的形式传输。字节之间没有间隔
- 接收端在每个比特信号的中间时刻进行检测,以判别接收到的是比特0还是比特1
- 由于不同设备的时钟频率存在一定差异,不可能做到完全相同,在传输大量数据的过程中,所产生的判别时刻的累计误差,会导致接收端对比特信号的判别错位
所以要使收发双发时钟保持同步
异步传输 :
- 以字节为独立的传输单位,字节之间的时间间隔不是固定
- 接收端仅在每个字节的起始处对字节内的比特实现同步
- 通常在每个字节前后分别加上起始位和结束位
单向通信(单工)、双向交替通信(半双工)和双向同时通信(全双工)
在许多情况下,我们要使用“
从通信的双方信息交互的方式来看,可以有以下三种基本方式:
又称为
又称为
又称为
单向通信 只需要一条信道,而双向交替通信 或双向同时通信 则需要两条信道(每个方向各一条)
双向同时通信 的传输效率最高
编码与调制
常用术语
数据 (data) —— 运送消息的实体。
信号 (signal) —— 数据的电气的或电磁的表现。
模拟信号 (analogous signal) —— 代表消息的参数的取值是连续的。
数字信号 (digital signal) —— 代表消息的参数的取值是离散的。
码元 (code) —— 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。
基带信号 (即基本频带信号)—— 来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行
调制 (modulation)。
在计算机网络中,常见的是将数字基带信号通过编码或调制的方法在相应信道进行传输
传输媒体与信道的关系
信道的几个基本概念
信道 —— 一般用来表示向某一个方向传送信息的媒体。单向通信(单工通信) ——只能有一个方向的通信而没有反方向的交互。双向交替通信(半双工通信) ——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。双向同时通信(全双工通信) ——通信的双方可以同时发送和接收信息。
严格来说,传输媒体不能和信道划等号
对于单工传输,传输媒体只包含一个信道,要么是发送信道,要么是接收信道
对于半双工和全双工,传输媒体中要包含两个信道,一个发送信道,另一个是接收信道
如果使用信道复用技术,一条传输媒体还可以包含多个信道
常用编码
正电平表示比特1/0
负电平表示比特0/1
中间的虚线是零电平,所谓不归零编码,就是指在整个码元时间内,电平不会出现零电平
实际比特1和比特0的表示要看现实怎么规定
这需要发送方的发送与接收方的接收做到严格的同步
- 需要
额外一根传输线来传输时钟信号 ,使发送方和接收方同步,接收方按时钟信号的节拍来逐个接收码元但是 对于计算机网络,宁愿利用这根传输线传输数据信号 ,而不是传输时钟信号由于
不归零编码 存在同步问题 ,因此计算机网络中的数据传输不采用这类编码!
归零编码 虽然自同步 ,但编码效率低
在每个码元时间的中间时刻,信号都会发生跳变
- 负跳变表示比特1/0
- 正跳变表示比特0/1
- 码元中间时刻的跳变即表示时钟,又表示数据
实际比特1和比特0的表示要看现实怎么规定 传统以太网使用的就是曼切斯特编码
在每个码元时间的中间时刻,信号都会发送跳变,但与
曼彻斯特不同
跳变仅表示时钟 码元开始处电平是否变换表示数据
- 变化表示比特1/0
- 不变化表示比特0/1
实际比特1和比特0的表示要看现实怎么规定 比曼彻斯特编码变化少,更适合较高的传输速率
调制
数字信号转换为模拟信号,在模拟信道中传输,例如WiFi,采用补码键控CCK/直接序列扩频DSSS/正交频分复用OFDM等
模拟信号转换为另一种模拟信号,在模拟信道中传输,例如,语音数据加载到模拟的载波信号中传输。频分复用FDM技术,充分利用带宽资源。
调幅AM :所调制的信号由两种不同振幅的基本波形构成。每个基本波形只能表示1比特信息量。调频FM :所调制的信号由两种不同频率的基本波形构成。每个基本波形只能表示1比特信息量。调相PM :所调制的信号由两种不同初相位的基本波形构成。每个基本波形只能表示1比特信息量。但是使用基本调制方法,1个码元只能包含1个比特信息
下图中一个绿点是一个码元(在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。)
每个码元对应4个bit原因:由于QAM可以调制出16种波形,每个波形对应1个码元,所以1个码元需要包含4个bit
上图码元所对应的4个比特是错误的,码元不能随便对应4个比特
用格雷码(在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code))的原因是可以降低出错个数,原先最多错四个,用格雷码最多错1个
信道的极限容量
- 任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。
- 码元传输的速率越高,或信号传输的距离越远,或传输媒体质量越差,在信道的输出端的波形的失真就越严重。
失真的原因:
- 码元传输的速率越高
- 信号传输的距离越远
- 噪声干扰越大
- 传输媒体质量越差
奈氏准则
三种基本调制方法,它们属于二元调制,只能产生两种不同的码元,也就是两种不同的基本波形,因此每个码元只能携带1比特的信息量
混合调制,属于多元调制,例如QAM16可以调制出16种不同的码元,因此每个码元可以携带4比特的信息量
香农公式
奈氏准则和香农公式对比:
练习:
补充:信道复用技术
本节内容视频未讲到,是《计算机网络(第7版)谢希仁》物理层的内容
频分复用、时分复用和统计时分复用
复用 (multiplexing) 是通信技术中的基本概念。
它允许用户使用一个共享信道进行通信,降低成本,提高利用率。
- 将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用 的所有用户在同样的时间占用不同的带宽资源 (请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
时分复用 则是将时间划分为一段段等长的时分复用帧(TDM帧) 。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。- 每一个用户所占用的时隙是
周期性地出现 (其周期就是TDM帧的长度)的。 - TDM 信号也称为
等时 (isochronous) 信号。 时分复用的所有用户在不同的时间占用同样的频带宽度。
时分复用可能会造成线路资源的浪费 - 使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。
波分复用
波分复用 WDM(Wavelength Division Multiplexing)
码分复用
码分复用 CDM (Code Division Multiplexing)
- 常用的名词是
码分多址 CDMA (Code Division Multiple Access)。 - 各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
- 这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
数据链路层概述
概述
主机H1 到主机H2 所经过的网络可以是多种不同类型的
注意:不同的链路层可能采用不同的数据链路层协议
数据链路层属于计算机网路的低层。
- 点对点信道
- 广播信道
局域网属于数据链路层 局域网虽然是个网络。但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的是多个网络互连的问题,是讨论分组怎么从一个网络,通过路由器,转发到另一个网络。
而在同一个局域网中,分组怎么从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看,
局域网仍属于数据链路层 的范围
三个重要问题
数据链路层传送的协议数据单元是
封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。- 首部和尾部的一个重要作用就是进行
帧定界 。
动图演示:
在传输过程中可能会产生
接收方主机收到有误码的帧后,是不会接受该帧的,会将它丢弃
如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施
以上三个问题都是使用
点对点信道的数据链路层 来举例的
如图所示,主机A,B,C,D,E通过一根总线进行互连,主机A要给主机C发送数据,代表帧的信号会通过总线传输到总线上的其他各主机,那么主机B,D,E如何知道所收到的帧不是发送给她们的,主机C如何知道发送的帧是发送给自己的
可以用编址(地址)的来解决
将帧的目的地址添加在帧中一起传输
还有数据碰撞问题
当总线上多台主机同时使用总线来传输帧时,传输信号就会产生碰撞,这是采用广播信道的共享式局域网不可避免的。
以太网采用的协调方法是,使用一种特殊的协议CSMA/CD,也就是载波监听多点接入/碰撞检测。 动图演示:
随着技术的发展,交换技术的成熟,
在 有线(局域网)领域,使用
点对点链路 和链路层交换机 的交换式局域网 取代了共享式局域网
由于无线信道的广播天性,在无线局域网中仍然使用的是共享信道技术
封装成帧
介绍
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比特,转换成电信号交给传输媒体,那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?
答:需要帧头和帧尾来做
但并不是每一种数据链路层协议的帧都包含有帧定界标志,例如下面例子
前导码
- 前同步码:作用是使接收方的时钟同步
- 帧开始定界符:表明其后面紧跟着的就是MAC帧
另外以太网还规定了帧间间隔为96比特时间,因此,MAC帧不需要帧结束定界符
透明传输
透明 指某一个实际存在的事物看起来却好像不存在一样。
透明传输是指
帧界定标志也就是个特定数据值,如果在上层交付的协议数据单元中, 恰好也包含这个特定数值,接收方就不能正确接收
所以数据链路层应该对上层交付的数据有限制,其内容不能包含帧定界符的值
解决方法 :面向字节的物理链路使用字节填充 (byte stuffing) 或字符填充 (character stuffing),面向比特的物理链路使用比特填充的方法实现透明传输- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面
插入一个转义字符“ESC” (其十六进制编码是1B)。 - 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
- 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
练习:
总结
差错检测
介绍
FCS:帧检验序列(Frame Check Sequence)
在以太网V2的MAC帧格式的帧尾中,包含了一个长度为4字节的FCS字段。其作用就是让接收方的数据链路层,检查帧在传输过程中是否产生了误码。
奇偶校验
循环冗余校验CRC(Cyclic Redundancy Check)
例1:
动图步骤分解:
1、构造被除数
2、构造除数
3、做除法
4、检查余数
例2:
循环冗余校验 CRC 是一种检错方法,而帧校验序列 FCS 是添加在数据后面的冗余码
可靠传输
基本概念
- 分组丢失
路由器输入队列快满了,主动丢弃收到的分组
- 分组失序
数据并未按照发送顺序依次到达接收端
- 分组重复
由于某些原因,有些分组在网络中滞留了,没有及时到达接收端,这可能会造成发送端对该分组的重发,重发的分组到达接收端,但一段时间后,滞留在网络的分组也到达了接收端,这就造成
三种可靠协议
- 停止-等待协议SW
- 回退N帧协议GBN
- 选择重传协议SR
这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中
停止-等待协议
停止-等待协议可能遇到的四个问题
NAK:否认分组(Negative Acknowledgment, 没有应答)
小结: 发送方每发完一个数据分组后,并不能立即将该数据分组从缓存中删除,只有在收到针对该数据分组的确认分组后,才能将其从缓存中删除。
一个比特编号,也就是说用0和1即可。
既然数据分组需要编号,确认分组是否需要编号?
要。如下图所示
注意,图中最下面那个数据分组与之前序号为0的那个数据分组不是同一个数据分组
停止-等待协议的信道利用率
假设收发双方之间是一条直通的信道 (图中忽略了接收方对数据分组的处理时延,以及发送方对确认分组的处理时延。)
TD :是发送方发送数据分组所耗费的发送时延RTT :是收发双方之间的往返时间TA :是接收方发送确认分组所耗费的发送时延
TA一般都远小于TD,可以忽略,当RTT远大于TD时,信道利用率会非常低
像停止-等待协议这样通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ(
A utomaticR epeat reQ uest),意思是重传的请求是自动进行,因为不需要接收方显式地请求,发送方重传某个发送的分组
练习:
回退N帧协议GBN
为什么用回退N帧协议
在相同的时间内,使用停止-等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可以发送多个数据分组
回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数
无差错情况流程
发送方将序号落在发送窗口内的0~4号数据分组,依次连续发送出去
他们经过互联网传输正确到达接收方,就是没有乱序和误码,接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组,在通过互联网的传输正确到达了发送方
发送方每接收一个、发送窗口就向前滑动一个位置,这样就有新的序号落入发送窗口,发送方可以将收到确认的数据分组从缓存中删除了,而接收方可以择机将已接收的数据分组交付上层处理
累计确认
动图演示:
累计确认
优点:
- 即使确认分组丢失,发送方也可能不必重传
- 减小接收方的开销
- 减小对网络资源的占用
缺点:
- 不能向发送方及时反映出接收方已经正确接收的数据分组信息
有差错情况
例如
在传输数据分组时,5号数据分组出现误码,接收方通过数据分组中的检错码发现了错误
于是丢弃该分组,而后续到达的这剩下四个分组与接收窗口的序号不匹配
接收同样也不能接收它们,将它们丢弃,并对之前按序接收的最后一个数据分组进行确认,发送ACK4,
当收到重复的ACK4时,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻开始重传,具体收到几个重复确认就立刻重传,根据具体实现决定
如果收到这4个重复的确认并不会触发发送立刻重传,一段时间后。超时计时器超时,也会将发送窗口内以发送过的这些数据分组全部重传
若WT超过取值范围,例如WT=8,会出现什么情况?
习题
动图演示:
- 回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议
- 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为
滑动窗口协议 - 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高
选择重传协议SR
视频链接
例子:
一般情况下接收窗口大小与发送窗口相同。
发送方将序号落在发送窗口内的这4个数据分组依次连续发送出去。它们经过互联网的传输陆续到达接收方,但其中的2号数据分组丢失了。
只要序号落入接收窗口内且无误码的数据分组,接收方都会接收。接收方接收0号和1号数据分组,并发送0号和1号确认分组。接收窗口向前滑动两个位置,这样就有4和5这两个新的序号落入接收窗口。接收方接收3号数据分组,并发送3号确认分组,但接收窗口不能向前滑动,因为3号数据分组是未按序到达的数据分组。
这些确认分组经过互联网的传输陆续到达发送方,发送方每按序收到一个确认分组,发送窗口就向前滑动一个位置。
发送方接收0号和1号确认分组,发送窗口向前滑动两个位置,这样就有4和5这两个