计算机网络学习笔记(3.数据链路层 4.网络层)

文章目录

  • 第三章 数据链路层
    • 数据链路层功能概述
    • 封装成帧&透明传输
    • 差错控制(检错编码)
    • 差错控制(纠错编码--海明码)
    • 流量控制与可靠传输机制(一)
    • 停止等待协议
    • 后退N帧协议(GBN)
    • 选择重传协议(SR)
    • 信道划分介质访问控制
    • ALOHA协议
    • CSMA协议
    • CSMA/CD协议
    • CSMA/CA协议
    • 轮询访问介质访问控制
    • 局域网基本概念和体系结构
    • 以太网
    • IEEE 802.11无线局域网
    • VLAN的基本概念及基本原理
    • 广域网及相关协议
    • 链路层设备
    • 第三章总结
  • 第四章 网络层
    • 网络层概述和功能
    • SDN基本概念
    • 路由算法及路由协议
    • IP数据报格式
    • IP数据报分片
    • IPv4地址
    • 网络地址转换(NAT)
    • 子网划分与子网掩码
    • 无分类编址CIDR
    • ARP协议
    • DHCP协议
    • ICMP协议
    • IPv6
    • RIP协议及距离向量算法
    • OSPF协议及链路状态算法
    • BGP协议
    • IP组播
    • 移动IP
    • 网络层设备
    • 网络层总结

第三章 数据链路层

数据链路层功能概述

概述

  • 考试重点
  • 功能和应用
  • 流量控制非常重要

计算机网络学习笔记(3.数据链路层 4.网络层)_第1张图片
数据链路层研究思想

  • 数据的传输是不断的封装,解封装
  • 我们在研究结点之间的同层之间通信时,可以理解为数据链路层直接对数据链路层的通信

计算机网络学习笔记(3.数据链路层 4.网络层)_第2张图片
数据链路层基本概念

  • 链路:强调物理通道
  • 数据链路:强调逻辑通道,硬件和软件控制着数据的传输协议
  • 帧:链路层的协议数据单元
  • 数据链路层就是负责将上层网络层的数据,安全无误的传输给相邻结点的数据链路层

计算机网络学习笔记(3.数据链路层 4.网络层)_第3张图片
数据链路层功能概述

  • 基于物理层的服务,对网络层提供服务
  • 可靠的传输,加强物理层的传输比特的功能
  • 物理层可能出差错,数据链路层可以改造成逻辑上无差错,向上对网络层表现为无差错

计算机网络学习笔记(3.数据链路层 4.网络层)_第4张图片
功能

  • 确认指的是确认机制,连接服务指的是建立连接,如果建立连接一定有确认机制
  • 链路管理功能面向连接服务

计算机网络学习笔记(3.数据链路层 4.网络层)_第5张图片

封装成帧&透明传输

计算机网络学习笔记(3.数据链路层 4.网络层)_第6张图片
封装成帧

  • 封装成帧:数据报的首尾添加帧定界符
  • 首尾包含了很多的控制信息,帧定界符是其中之一,此外还有差错控制信息,流量控制信息,物理地址信息等
  • 从帧首部开始接受到帧尾部,接收方可以区分出帧的起始和终止
  • 数据链路层的帧长,我们应该尽可能让数据部分占比更大,但是链路层协议规定了数据部分的上限MTU,最大传送单元
  • 组帧四种方法:字符计数法,字符字节填充法,零比特填充法,违规编码法

计算机网络学习笔记(3.数据链路层 4.网络层)_第7张图片
透明传输

  • 不管数据里有什么,都能传输,即使传输数据里有和帧首尾相同的信息,也不影响
  • 如何避免把数据误认为控制信息,需要采取一定的手段

计算机网络学习笔记(3.数据链路层 4.网络层)_第8张图片
字符计数法

  • 简单,但是容易出问题,不常用
  • 用第一个字节规定帧内部有多少个字符(包括帧首部自己)或字节
  • 问题:一旦帧首的字节标错数了,后续的所有帧都会错乱

计算机网络学习笔记(3.数据链路层 4.网络层)_第9张图片
字符填充法

  • 用特定的字符组合规定这是帧首帧尾,当识别出这样的比特组合之后,就能帧同步
  • 如果是文本文件,即键盘输入的字符,都是ascii码,是不会和帧首尾的特定字符冲突的,可以透明传输
  • 如果是非ascii码文件,数据种就有可能有比特组合和帧首尾的比特组合撞车,导致接收端错误识别
  • 如果数据中出现与帧首尾冲突的情况,采用字符填充法

计算机网络学习笔记(3.数据链路层 4.网络层)_第10张图片
字符填充法实现

  • 在数据中出现冲突的比特组合前面加上字节,表示转义
  • 数据中如果有数据与转义字符相同的,也是在前面加上转义字符,
  • 接收端在数据中识别到转义字符,就会把转义字符去掉,并正常把后面的字符当做数据接收
  • 直到遇到真正的控制信息

计算机网络学习笔记(3.数据链路层 4.网络层)_第11张图片
零比特填充法

  • 允许数据帧中包含任意个数的比特组合
  • 帧首尾字节一样,都是01111110
  • 如果发送数据时数据报中出现某一字节也是01111110,处理办法口诀5110
  • 发送数据时,发现数据中有连续的5个1就在后面加个0,接收端接收时发现有连续5个1,就把后面的0删除

计算机网络学习笔记(3.数据链路层 4.网络层)_第12张图片
违规编码法

  • 比较常用,实现起来比较简单
  • 曼彻斯特编码每一个码元中一定会有一次电平跳变
  • 我们可以用没有跳变的高高或低低来界定帧的起始和终止,就不会和数据部分有冲突
  • 目前比较普遍使用的帧同步法:比特填充和违规编码法

计算机网络学习笔记(3.数据链路层 4.网络层)_第13张图片

差错控制(检错编码)

差错从何而来

  • 全局性差错,局部性差错
  • 局部性差错是主要原因,我们通过编码来解决
  • 差错:位错,帧错
  • 帧错:帧为单位的错误,可以使用帧编号,确认重传机制解决;通信质量好的有限传输链路无需使用确认重传机制;靠上层传输层来解决可靠保证
  • 本节课主要讨论位错

计算机网络学习笔记(3.数据链路层 4.网络层)_第14张图片
数据链路的差错控制

  • 发生在任何节点的链路层,每个节点和下一个节点构成了发送方和接收方,就有差错检测和纠错
  • 检错编码中的循环冗余码CRC是目前主要的检错机制
  • 纠错编码主要使用海明码
  • 链路层编码和物理层编码的区别:
    • 物理层编码针对单个比特,数据转数字信号,帧同步
    • 数据链路层编码解决的是一组比特,通过冗余编码技术,实现一组二进制比特传输是否出现差错
  • 冗余码:就是在原始数据中附加冗余位,通过一定的匹配规则,可以使接收端用来判断是否出错

计算机网络学习笔记(3.数据链路层 4.网络层)_第15张图片
检错编码–奇偶校验码

  • 如果发送的是n位的信息元,那么前n-1位是原始数据,最后一位用来控制整体的1是奇数个还是偶数个
  • 奇校验就是发送方用最后一位控制整体包含奇数个1,偶校验就是偶数个1,如果接收方发现1的奇偶数不对,就说明出错了
  • 局限:如果数据中出现了偶数个1变0或0变1,接收方也无法检测到错误

计算机网络学习笔记(3.数据链路层 4.网络层)_第16张图片
检错编码–CRC循环冗余码

  • 文字不好形容,做几道题就能理解
  • 1.已知待传数据是d位,生成多项式(除数)是r+1位
    • 生成多项式是题里给定的,可能是直接以数字01的形式,也可能是x的多项式
    • 如果是x的多项式,自己给还原成数字的形式,即,补全x的系数,从最高次幂,补到0次幂,有就是1,没有就是0
  • 2.在d位的待传数据后面加r个0,用这个整体除以生成多项式,除法采用模二除法,即,同0异1,得到余数就是r位FCS
  • 3.把r位FCS填到d的后面,将这个整体的帧发送给接收方
  • 4.接收方,把接收的帧,除以r+1位生成多项式,如果没有余数,表示正确接收,有余数表示错误,丢弃

计算机网络学习笔记(3.数据链路层 4.网络层)_第17张图片
举个栗子

  • FCS的生成和接收端CRC检验都是由硬件实现的,处理迅速,不会延误数据传输
    计算机网络学习笔记(3.数据链路层 4.网络层)_第18张图片
    计算机网络学习笔记(3.数据链路层 4.网络层)_第19张图片
    CRC循环冗余码
  • 缺点:几乎可以保证,接收端数据链路层接受的帧都是没有差错的,因为出错的已经被丢弃了,所以可能还是会丢帧
  • 只能说是无比特差错的传输,但不是可靠传输
  • 可靠传输是数据链路层发送端发什么,接收端就接收什么

计算机网络学习笔记(3.数据链路层 4.网络层)_第20张图片

差错控制(纠错编码–海明码)

海明码工作流程
计算机网络学习笔记(3.数据链路层 4.网络层)_第21张图片
海明距离

  • 海明距离(码距)
    • 两个合法编码之间的,对应比特取值不同的个数;
    • 有效编码集中的任意两个合法编码之间的海明距离的最小值
  • 如果编码系统的码距是1,接收方无法检错,因为合法编码变动了一个比特,可能就成了另一个合法编码了
  • 如果编码系统的码距是2,接收方可以检错出1个不合法编码,因为合法编码至少变化两个比特才可能成为另一个合法编码;所以接收方发现有1个比特不一样,肯定是不合法
  • 如果编码系统的码距是2,接收方可以检测1位不合法,但是无法纠错,因为a合法编码变化1位成为了不合法编码x,b合法编码也可能变化了1位,成为了x,且满足a和b码距为2,因此若对x纠错,并不知道原理是a还是b;比如a是1101,b是1110,x是1111
  • 如果码距是3,则可以检测2位比特错,纠正1位比特错;一个合法编码变化了1位,另一个码距为3的合法编码,至少要变化2位,才有可能成为这个错误编码;因此码距为3的时候,出现1位错误,可以对应唯一的原来的合法编码
  • 结论:要想能检测d位,码距至少为d+1;要想能纠正d位,码距至少为2d+1;
  • 记住公式就好,推导过程不考,考试不会考太深

计算机网络学习笔记(3.数据链路层 4.网络层)_第22张图片
海明码的工作流程

1.确定校验码位数r

  • 数据信息m位,校验码r位
  • 校验码有2的r次幂种取值,可以标记2的r次幂种错误情况
  • 因此,m+r位的数可能有m+r种错误情况,外加1个全正确的情况,需要2的r次幂>=m+r+1,校验码就可以一一对应所有情况
  • 根据不等式,已知m求r,枚举法一个个试即可
  • 以要发送的数据为1100为例

计算机网络学习笔记(3.数据链路层 4.网络层)_第23张图片
2.确定校验码和数据的位置

  • 从右向左编号,1到m+r,其中r位校验码的各个比特分别放在2的n次幂的位置上

计算机网络学习笔记(3.数据链路层 4.网络层)_第24张图片
3.求出校验码的值

  • 附加一行二进制数,代表各个位置的编号
  • 分组:x4负责编号开头为1的位置,x2负责编号中间为1的位置,x1负责编号结尾为1的;分的各个组包括校验位自身
  • 以采用偶校验为例,我们要保证各个组的1的个数为偶数,通过校验位来控制;因此x4=0 x2=0 x1=1
  • 得出完整海明码

计算机网络学习笔记(3.数据链路层 4.网络层)_第25张图片
4.检错并纠错

  • 以第5位出错为例,接收方接到数据,开始检错,检错类似于奇偶校验
  • 对各个分组检查1的个数是否为偶数(因为是偶校验),发现2号校验位对应的分组有问题
  • 如何知道具体是哪一位出的问题?如图,将各个校验位对应的1.2.4放在3个圈中,两两重合相加,中间的是三个相加
  • 纠错方法一:不满足校验的取交集,再与符合规则的分组差集,定位到了哪个位置出现的比特错误
  • 纠错方法二:此时有各个分组的比特位,为了让各个分组再次满足偶校验,我们再增加一个x,控制各分组的1为偶数个,所以x4=1 x2=0 x1=1,把这个向量转置,横过来,得到101,101的十进制数是5,因此第五位错了;第五位现在是0,改为1就完成了纠正;需要注意,这里的x4 x2 x1不是前面的那个x4 x2 x1,这里x的是后加的
  • 多做几道题就熟练了

计算机网络学习笔记(3.数据链路层 4.网络层)_第26张图片
b站视频提供了另外一种解决套路,可以参考学习
https://www.bilibili.com/video/BV1tL4y1h7Fd?spm_id_from=333.337.search-card.all.click&vd_source=d9e7e582a6a91288aa45784971f4839c
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第27张图片

流量控制与可靠传输机制(一)

数据链路层的流量控制

  • 数据链路层的控制是点到点,即相邻节点之间的;传输层的流量控制是端到端,即主机之间的

计算机网络学习笔记(3.数据链路层 4.网络层)_第28张图片
流量控制的方法

  • 停止等待协议可以看做是一个特殊的滑动窗口协议,因为他的窗口是1
  • 停止等待协议的效率很低,必须一个等一个
  • 如图可知,帧序号有重复,说明帧序号是重复利用的
  • 发送窗口可以理解正在发送处理的数据
  • 假设接收窗口有一个,当接收到数据回复确认后,接收窗口移动到下一个窗口,
  • 发送窗口里的各个帧都可以发出去,接收窗口的各个帧需要都可以接收;发送窗口的帧序号只有接收确认了才可以移动到下一个,接收窗口接收到数据才可以移动到下一个
  • 疑问?如果此时发送窗口234接收到确认了,1没有接收到,窗口还会继续滑动么?发送窗口的滑动机制是窗口里全部收到确认才会滑动,还是编号最小的那个接收确认了就会下一个位置滑动?同理接收窗口?

计算机网络学习笔记(3.数据链路层 4.网络层)_第29张图片
流量控制方法

  • 在链路层的发送过程中,滑动窗口,即发送窗口和接收窗口的大小是固定值,不变的

计算机网络学习笔记(3.数据链路层 4.网络层)_第30张图片
可靠传输,滑动窗口,流量控制三者关系

  • 滑动窗口可以解决可靠控制和流量传输,流量控制与可靠传输又相互交织在一起,不必太纠结三者的区别和关系
  • 发送方如果到一定时间没有收到确认,会自动重传

计算机网络学习笔记(3.数据链路层 4.网络层)_第31张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第32张图片

停止等待协议

停止等待协议究竟是哪一层

  • 不用纠结
  • 早期通信质量不好,链路层就会使用停止等待协议,后退N帧协议,选择重传协议,等
  • 现在通信质量好了,可以把这个责任交给传输层实现,速度更快,延迟更小
  • 不管在哪个层次,影响的是传输对象;如果在传输层,那么发送的数据就可以成为分组,在链路层,发送的数据就可以成为一个帧;只是对象上命名不同,本质上一样

停止等待协议

  • 因为链路上,除了帧内会发生差错,即比特出错,底层信道还会出现丢包问题;所谓数据包在链路层就是帧,在传输层就是报文段,在网络层就是IP数据报或分组
  • 研究停止等待协议(停等协议)的前提,为了便于研究,仅考虑一方发送数据,一方接收数据;也不要纠结数据在哪个层次,了解机制即可
  • 停止等待就是每发送一个,等待对方确认后才发送下一个
  • 停等协议应用情况:无差错,有差错

计算机网络学习笔记(3.数据链路层 4.网络层)_第33张图片
停等协议–无差错情况

  • 发送,确认,发送,确认。。。
  • 需要注意,帧的编号可以重复利用的
  • 1bit用来编号就可以

计算机网络学习笔记(3.数据链路层 4.网络层)_第34张图片
停等协议–有差错情况1

  • 上面是理想情况,实际会出现丢包,或者包出错
  • 发送方发出帧以后,没有收到确认帧,超过了超时时间,就会重复发送帧
  • RTT是往返传播试验,从发送方发送结束开始,到接到确认帧时的时间;计时器设置的超时时间比平均RTT略长一些
  • 这个机制是自动的,所以叫自动重传机制
  • 发送方发完帧之后,要保留副本的,以备重传
  • 数据帧和确认帧一定要编号,用来解决帧的丢失,重复等问题
  • 帧出错也类似,接收方检测帧出错也不会返回确认帧,然后发送方再进行超时重传

计算机网络学习笔记(3.数据链路层 4.网络层)_第35张图片

停等协议–有差错情况2

  • ACK丢失,ACK就是确认帧,

计算机网络学习笔记(3.数据链路层 4.网络层)_第36张图片
停等协议–有差错情况3

  • ACK迟到
  • 发送方如果收到重复的确认帧就会正常丢弃,正常按自己的顺序继续发送数据帧或者等待确认帧
  • 接收方如果收到重复的数据帧就会正常丢弃,并且再重传一次这个重复的确认帧

计算机网络学习笔记(3.数据链路层 4.网络层)_第37张图片
停等协议性能分析

  • 信道利用率太低
  • 图中的宽条表示,发送方发出数据帧也是有时间的,同理接收确认帧也是有时间的
  • Ta相对比价小,如果题中没给,就不加上

在这里插入图片描述
信道利用率
计算机网络学习笔记(3.数据链路层 4.网络层)_第38张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第39张图片

后退N帧协议(GBN)

  • 停等协议弊端
  • 等待时间过长,信道利用率低
  • 可以在收到确认之前多发些数据帧
  • 流水线技术,需要满足一定条件

计算机网络学习笔记(3.数据链路层 4.网络层)_第40张图片
后退N帧协议中的滑动窗口

  • 停等协议,发送窗口1,接收窗口1;后退N帧协议,发送窗口>1,接收窗口1;选择重传协议,发送窗口>1,接收窗口>1
  • 图中表示数据帧发出之后,还留有副本,发完0,继续发1,
  • 接收方接收到确认0,返回确认帧0,窗口移动一位,接收方接收确认帧0,也往前移动一位
  • 接收窗口可以在接收一组连续的允许接收的帧以后,只返回最大的帧序号,窗口也移动到这个最大的帧序号的下一位;
  • 发送方接到这个帧需要,就知道前面的都已经确认了,窗口直接移动多位

计算机网络学习笔记(3.数据链路层 4.网络层)_第41张图片
GBN发送方必须响应的三件事

  • 上层调用
  • 确认机制:累计确认是重要考点,接收方无需每一个数据帧都确认,可以隔一会返回一个
  • 超时事件,后退N帧机制:接收方必须按顺序接收,如果某一帧没有收到,那么后续的也全部丢弃,一直等待期待的下一帧;发送方发现某一帧迟迟得不到确认,直到超时,就会回退到这一帧开始重新往后发送这些没有确认的数据帧

计算机网络学习笔记(3.数据链路层 4.网络层)_第42张图片
GBN接收方要做的事

  • 除了正确情况,其余情况都是,只发送最近的数据帧的ACK,而且只需要维护一个信息,就是期待的下一个帧序号信息

计算机网络学习笔记(3.数据链路层 4.网络层)_第43张图片
运行中的GBN协议
计算机网络学习笔记(3.数据链路层 4.网络层)_第44张图片
滑动窗口长度

  • 帧的编号如果有n比特,那么最多可以表示2的n次方个数,编号范围0-2的n方
  • 发送方的窗口最小为1,最大只能是2的n次方-1,如果超过2的n次方,窗口里就会编号重复;
  • 如果窗口大小等于2的n次方,当发送方发送了窗口的全部的数据帧都丢失了,超时之后,再次重新发送,接收方不知道这是哪一个数据帧

计算机网络学习笔记(3.数据链路层 4.网络层)_第45张图片
GBN协议重点总结

  • 累积确认,偶尔捎带确认是指,双方通信,接收方其实也是发送方,可以把确认信息偶尔放在发送的数据中

计算机网络学习笔记(3.数据链路层 4.网络层)_第46张图片
练习题1
计算机网络学习笔记(3.数据链路层 4.网络层)_第47张图片
练习题2

  • 信道带宽是100Mb/s不代表甲的平均传输速率就是100,因为有等待确认的时间
  • 甲发送窗口的全部数据需要80ms,甲从发送第一个数据帧到收到第一个确认帧需要100.08ms
  • 甲只有收到第一个确认帧,才会继续发送数据,后面就是不停地重复循环
  • 因此,相当于在100.08ms的时间内,甲发送了100010008bit的数据

计算机网络学习笔记(3.数据链路层 4.网络层)_第48张图片
GBN协议性能分析

  • 相比停等协议提升了信道利用率
  • 但是因为有回退N帧的机制,相比于选择重传协议还是传送效率低

计算机网络学习笔记(3.数据链路层 4.网络层)_第49张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第50张图片

选择重传协议(SR)

GBN协议的弊端

  • 累积确认

计算机网络学习笔记(3.数据链路层 4.网络层)_第51张图片
选择重传协议中的滑动窗口

计算机网络学习笔记(3.数据链路层 4.网络层)_第52张图片
SR发送方必须响应的三件事

  • 发送方一直在盯着窗口内的最小序号帧,如果最小序号接到ACK了,就往前移动,直到被下一个没有接收ACK的最小序号卡住
  • 超时事件,每个帧有自己的独立的定时器,所以才可以出现超时时,只重传这一个帧

计算机网络学习笔记(3.数据链路层 4.网络层)_第53张图片
SR接收方要做的事

  • 不管接收的帧是否有序,都可以接收,接收之后恢复确认帧
  • 当接收方的的窗口内,最小需要也收到确认了,就从最小序号的位置向后找这一段已确认的连续序号,将这段连续的帧一并上传,窗口再次卡在未确认的序号上
  • 接收到了窗口序号外的帧,指的就是窗口左边的一个窗口长度内帧的范围,这里的帧代表应确认过了,如果再接收,就继续回复确认ACK,其他情况,不考虑了
  • 收到窗口外的帧的情况不重点考察,主要掌握窗口内的帧的接收来者不拒

计算机网络学习笔记(3.数据链路层 4.网络层)_第54张图片
运行中的SR

  • 不论是发送方的窗口还是接收方的窗口,窗口是否能移动其实都是被最小序号帧是否完成工作所卡者

计算机网络学习笔记(3.数据链路层 4.网络层)_第55张图片
滑动窗口的长度

  • 窗口的长度不可以无限,因为帧序号有一定范围,窗口过大,会导致接收方接收了一个序号帧,但是却不知道这个序号究竟是已收到的帧,还是未收到的帧
  • 发送窗口最好等于接收窗口
  • n个比特用来给帧编号,可以有2的n次方中编号,发送窗口和接收窗口的最大长度能达到这个编号数量的一半即可

计算机网络学习笔记(3.数据链路层 4.网络层)_第56张图片
SR协议重点总结
计算机网络学习笔记(3.数据链路层 4.网络层)_第57张图片
习题1
计算机网络学习笔记(3.数据链路层 4.网络层)_第58张图片
脑图时刻
在这里插入图片描述

信道划分介质访问控制

传输数据使用的两种链路

  • 广播式网络需要解决,多个主机向链路发送信息时如何避免冲突

计算机网络学习笔记(3.数据链路层 4.网络层)_第59张图片
介质访问控制

  • 静态划分信道,动态分配信道
  • 随机访问介质访问控制是重要考点

计算机网络学习笔记(3.数据链路层 4.网络层)_第60张图片
信道划分介质访问控制

  • 信道上有多个设备,将各个设备通信隔离开,把时域和频域合理分配给网络上的设备
  • 多路复用技术,把多个信号拧成一捆,发送出去,接收端在分离开
  • 把广播信道在逻辑上分成几条用于两点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道

计算机网络学习笔记(3.数据链路层 4.网络层)_第61张图片
频分多路复用FDM

  • 这里的带宽指通信过程中的频率带宽,每个用户占据自己的频段
  • 技术成熟,实现容易,是信道复用中最简单最成熟的一种

计算机网络学习笔记(3.数据链路层 4.网络层)_第62张图片
时分多路复用TDM

  • 一个时分复用帧也可以理解为一个周期
  • 每个用户固定占用其中的时隙,轮流使用这个时隙
  • TDM帧不是链路层的帧,是物理层传送比特流划分的,标志一个周期
  • 有个问题:如果正在休息的用户比较多,但还占着时隙,信道的利用率就比较低

计算机网络学习笔记(3.数据链路层 4.网络层)_第63张图片
改进的时分复用–统计时分复用STDM

  • 信道上的各个用户都是发送一回,歇一会
  • 集中器将信道上数据收集起来,再通过高速线路用一个信道发送出去;统计之后的信道也是划分为一个个的STDM帧
  • 哪个用户的数据先来,就先进入缓存,然后缓存数据放入STDM帧里,帧满了就发出,
  • STDM帧不是固定分配时隙,而是按需动态分配,非常高效,信道利用率比较高
  • 比如,四个用户分信道,只有一个用户使用,其他三个一直休息,普通时分复用的话这个用户2000b/s,在统计时分复用中这个用户可以达到8000b/s,相当于这个用户在经过集中器以后一直在使用信道

计算机网络学习笔记(3.数据链路层 4.网络层)_第64张图片
波分多路复用WDM

  • 本质是光的频分多路复用
  • 了解大概原理即可,不大会考

计算机网络学习笔记(3.数据链路层 4.网络层)_第65张图片
码分多路复用CDM

  • 频分多路复用相当于共享时间,时分多路复用相当于共享空间
  • 每个比特转成芯片序列,0变-1,1还是1,将芯片序列看做是向量,利用线性代数知识进行向量运算
  • 让各个站点的芯片序列正交,即规格化内积为0,
  • 不是很理解??比特1,比特0?

计算机网络学习笔记(3.数据链路层 4.网络层)_第66张图片
计算机网络学习笔记(3.数据链路层 4.网络层)_第67张图片

ALOHA协议

计算机网络学习笔记(3.数据链路层 4.网络层)_第68张图片
ALOHA协议
计算机网络学习笔记(3.数据链路层 4.网络层)_第69张图片
纯ALOHA协议

  • 协议思想:想发就发
  • 冲突检测:接收不到确认
  • 具体怎么重传,时间,概率,具体细节不考,了解即可
  • 太随性,导致数据帧发送成功率比较,吞吐量低

计算机网络学习笔记(3.数据链路层 4.网络层)_第70张图片
时隙ALOHA协议

  • 控制想发就发的随意性,划分时间片段,若发生冲突,必须等待下一个时间片开始时刻再发送

计算机网络学习笔记(3.数据链路层 4.网络层)_第71张图片
关于ALOHA要知道的事

  • 考纲不是重点

计算机网络学习笔记(3.数据链路层 4.网络层)_第72张图片

CSMA协议

计算机网络学习笔记(3.数据链路层 4.网络层)_第73张图片
CSMA协议

  • 监听总线电压摆动

计算机网络学习笔记(3.数据链路层 4.网络层)_第74张图片
1-坚持CSMA

  • 如果媒体空闲,可能会有多个站点都想发送数,冲突就不可避免

计算机网络学习笔记(3.数据链路层 4.网络层)_第75张图片
非坚持CSMA

  • 忙则等待随机时间在监听,减少了信道突然空闲时大伙扎堆发送数据
  • 缺点,可能大伙都在随机等待中,媒体使用率降低

在这里插入图片描述
p-坚持CSMA

  • 需要把数据帧的发送划分为一个个时间片,应用于时隙信道
  • 空闲也不一定发送,而是概率为p发送,1-p的概率等下一个时间槽再发,发送的时候可能冲突也可能不冲突
  • 如果发生冲突了,还是要继续发送完,造成了浪费

计算机网络学习笔记(3.数据链路层 4.网络层)_第76张图片
三种CSMA对比总结
计算机网络学习笔记(3.数据链路层 4.网络层)_第77张图片

CSMA/CD协议

这一节很重要,考试重点
计算机网络学习笔记(3.数据链路层 4.网络层)_第78张图片
CSMA/CD协议

  • 载波监听,多点接入,碰撞检测
  • 应用于半双工网络

计算机网络学习笔记(3.数据链路层 4.网络层)_第79张图片
传播时延对载波监听的影响

  • A发送数据,有一定时延,B还没有收到,以为信道上没有人发送数据
  • 信号发生碰撞,产生叠加,接收端能够检测出来
  • δ是A与B开始发送数据的时刻的差,右侧的红笔给的时间不对,具体的时间关系不用记
  • 最迟经过2τ的时间能检测到自己的信号发生碰撞,记住这个2τ,后面计算的依据

计算机网络学习笔记(3.数据链路层 4.网络层)_第80张图片
如何确定碰撞后的重传时机

  • 发生了冲突之后,如果双方立刻重传,还是会冲突,无限循环,所以应该让双方的重发时间不同,有随机性
  • 有公式可知,碰撞次数越多,离散集合越大,重传时间越随机,离散集合的范围最大达到[0,1,1023],因此重传等待时间上限是1023*2τ
  • 重传次数的到达16次仍然不成功,向上层报错

计算机网络学习笔记(3.数据链路层 4.网络层)_第81张图片
最小帧长问题

  • 帧太小,以至于发完了,之后才发生碰撞检测,应该定义一个最小帧长,使得监测到碰撞时,还没有发完
  • 确保发送帧所用的时间至少达到2τ
  • 以太网规定最短帧长为64B,所以达不到64B的,以太网也会对其填充达到标准

计算机网络学习笔记(3.数据链路层 4.网络层)_第82张图片
计算机网络学习笔记(3.数据链路层 4.网络层)_第83张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第84张图片

CSMA/CA协议

CSMA/CA协议

  • 不是考试重点,理解就好
  • 载波监听,多点接入,碰撞避免
  • 适用于无线局域网,因为CD协议无法做到全面检测碰撞,无法解决隐蔽站问题

计算机网络学习笔记(3.数据链路层 4.网络层)_第85张图片
CSMA/CA协议工作原理

  • RTS和CTS解决了隐蔽站问题,接收端接到RTS后回应CTS,同时不再回复其他发送的RTS,其他发送端接收不到CTS,也不会后续发送数据;RTS、CTS是可选择,主要为了解决隐蔽站问题
  • 只有接收端返回了ACK数据帧,发送端才会发送下一个数据帧;如果发送端没有收到ACK,就会进行重传,并且有次数限制

计算机网络学习笔记(3.数据链路层 4.网络层)_第86张图片
CSMA/CD与CSMA/CA
计算机网络学习笔记(3.数据链路层 4.网络层)_第87张图片

轮询访问介质访问控制

介质访问控制

  • 只有随机访问MAC协议才会产生冲突
  • 轮询访问MAc协议包含,轮询协议,令牌传递协议(重点掌握)

计算机网络学习笔记(3.数据链路层 4.网络层)_第88张图片
轮询协议

  • 主节点轮流问话
  • 但是,有轮询开销;靠后的主机有较多的等待延迟;主节点如果宕机,子节点将无法发送数据
  • 当然可以给主节点,子节点准备备用的结点

计算机网络学习笔记(3.数据链路层 4.网络层)_第89张图片
令牌传递协议

  • 使用令牌环网,逻辑上是环形,物理上是星型
  • 每个主机需要有TCU转发器
  • 每次只有一个主机掌握令牌,所以不会发生碰撞
  • 令牌在各主机之间不停传递,当有主机需要发送数据,就会获取令牌,修改令牌标志位表示忙的状态,带上发送的数据,往下传递,经过其他主机时,其他主机不会接受,直到接收端主机接到,复制一份数据,再向下传递,直到原来的发送主机接收到,原来的发送主机检查数据帧是否出错,出错则重传,没有出错则回收数据帧,把令牌修改为闲的状态,继续传递令牌
  • 令牌持有时间有限制,让每个节点都有机会发送数据
  • 问题:令牌有一定开销;有等待延迟;如果有主机宕机,也会导致令牌无法传递,可以准备备用主机
  • 适合负载较重,通信量大的网络,因为如果网络负载小,令牌就会一直空转

计算机网络学习笔记(3.数据链路层 4.网络层)_第90张图片
MAC协议总结
#计算机网络学习笔记(3.数据链路层 4.网络层)_第91张图片

局域网基本概念和体系结构

要点

  • 本节开始都是科普性知识,文字和图片比较多,不是所有的都要记忆,主要掌握重点,总结笔记,非重点了解即可

局域网

  • 某一区域,广播信道
  • 范围较小;传输速率高;延迟短,可靠性高;共享传输信道;广播,组播
  • 决定局域网的主要要素:网络拓扑,传输介质,介质访问控制

计算机网络学习笔记(3.数据链路层 4.网络层)_第92张图片
局域网拓扑结构

  • 常考:星型,总线型,环形
  • 总和考量,总线型优势最大,成本低,综合表现最好,广泛使用,以太网就是一种逻辑上的总线型结构

计算机网络学习笔记(3.数据链路层 4.网络层)_第93张图片
局域网传输介质
计算机网络学习笔记(3.数据链路层 4.网络层)_第94张图片
局域网介质访问控制方法

  • 令牌总线,用于总线型局域网,但是使用了逻辑环,综合了总线型和环形的有点
  • 令牌环用于环形局域网,物理上是星型,逻辑上是环形
  • 物理结构和逻辑结构不一定要一致

计算机网络学习笔记(3.数据链路层 4.网络层)_第95张图片
局域网的分类

  • 以太网,逻辑拓扑为总线型,物理拓扑为星型或拓展星型,使用CSMA/CD
  • FDDI网,传输介质光纤,了解即可
  • ATM网,固定长度的单元进行交换
  • 无线局域网:就是WLAN,wifi是无线局域网的一种应用

计算机网络学习笔记(3.数据链路层 4.网络层)_第96张图片
IEEE 802标准

  • 1980年2月成立的委员会指定的,用于局域网,城域网

计算机网络学习笔记(3.数据链路层 4.网络层)_第97张图片
重点记忆 IEEE 802标准4个

  • IEEE 802.3:以太网介质访问控制协议,以太网也称802.3局域网
  • IEEE 802.5:令牌环网的介质访问控制协议,
  • IEEE 802.8:光纤技术,也就是针对FDDI网,
  • IEEE 802.11:无线局域网WLAN的介质访问控制

计算机网络学习笔记(3.数据链路层 4.网络层)_第98张图片MAC子层和LLC子层

  • IEEE 802标准描述的局域网参考模型只针对OSI参考模型中的数据链路层和物理层
  • 其中将数据链路层划分为MAC子层和LLC子层
  • LLC和网络层挨着,是逻辑上的链路控制子层,用于识别网络协议,为网络层服务,对其封装,告诉数据链路层接收帧以后如何处理数据包
  • MAC和物理层挨着,处理与物理层有关的问题,

计算机网络学习笔记(3.数据链路层 4.网络层)_第99张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第100张图片

以太网

以太网概述

  • 如果说一个网络采用了CSMA/CD技术,就可以说这是个以太网
  • 以太网占据统治地位的原因
  • 以太网的两个标准:满足这两个规约其中之一,就是以太网,这两个规约差别也很小
  • 因此以太网也成为802.3局域网
    计算机网络学习笔记(3.数据链路层 4.网络层)_第101张图片
    以太网提供无连接、不可靠的服务
  • 以太网:尽最大努力交付,只能实现无差错接收(因为有CRC校验),不能实现可靠传输,差错纠正和可靠传输有上层负责

计算机网络学习笔记(3.数据链路层 4.网络层)_第102张图片
以太网传输介质与拓扑结构的发展

  • 星型结构是目前以太网最常使用的物理拓扑结构,
  • 以太网拓扑:逻辑上相当于总线型,物理上为星型,使用双绞线+集线器

计算机网络学习笔记(3.数据链路层 4.网络层)_第103张图片
10BASE-T以太网

  • 常考点
  • 10表示10Mb/s,BASE表示基带信号即数字信号,T表示双绞线
  • 物理上星型拓扑,逻辑上总线型拓扑,每一段双绞线最长100米,再通过集线器扩充了网络通信范围
  • 采用曼彻斯特编码,CSMA/CD介质访问控制机制

计算机网络学习笔记(3.数据链路层 4.网络层)_第104张图片
适配器与MAC地址

  • 适配器就是我们说的网卡,现在已经内嵌在主板上了
  • 网卡有处理器和存储器,存储器ROM上有计算机硬件MAC地址,局域网中,硬件地址又称物理地址,MAC地址
  • MAC地址全球唯一,每个适配器都有,通常用6个16进制树表示,网卡烧制结束出厂,MAC地址就确定了
  • 所以只要网卡换了,MAC地址就发生了改变,否则其他因素都不会导致MAC地址改变

计算机网络学习笔记(3.数据链路层 4.网络层)_第105张图片
在这里插入图片描述
以太网MAC帧

  • 最长用的MAC是以太网V2格式
  • 数据链路层,即这里的MAC层,对上层数据加头(目的地址,源地址,类型),加尾(FCS),
  • 以太网MAC前面加上前导码,前导码中7B数据都是1010…为了帮助发送和接收尽快同步,帧开始界定符表示准备接收MAC帧
  • 源地址:发送方地址,
  • 目的地址:接收方地址,三种情况:单播地址,表示一个专有的地址,专门给某个地址;广播地址,全1,发送给所有主机;多播地址,了解即可
  • 类型指明上层使用了什么协议
  • 数据部分:长度46-1500字节;1500记住就好;46怎么来的,以太网规定最小帧长为64B,64-6-6-2-4=46
  • FCS是CRC循环冗余检验的帧检验序列
  • 为什么以太网MAC帧前面有开始定界符,结尾后面没有结束符,因为以太网使用曼彻斯特编码,如果不发送数据,电平就不会发生变化了,很容易被检测出来,从电平不变的位置向前4个字节,就是数据的位置
  • 以太网与802.3格式区别:

计算机网络学习笔记(3.数据链路层 4.网络层)_第106张图片
高速以太网

  • 100BASE-T以太网
    • 仍然使用CSMA/CD协议,说明仍然存在冲突,支持全双工和半双工;
    • 为什么支持全双工,因为星型拓扑结构中的中心节点是交换机,交换机可以隔离冲突域,全双工模式没有冲突
    • 半双工模式下有冲突
  • 吉比特以太网
    • 传输介质为光纤或双绞线,支持全双工和半双工;其中全双工模式下无冲突
  • 10吉比特以太网
    • 传输介质为光纤,只支持全双工,没有冲突问题

计算机网络学习笔记(3.数据链路层 4.网络层)_第107张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第108张图片

IEEE 802.11无线局域网

802.11

  • 专门用来规定无线局域网标准的
  • wifi只是无线局域网的应用,无线局域网的覆盖范围比wifi大的很多
  • 802.11b和802.11g就是规定wifi的

计算机网络学习笔记(3.数据链路层 4.网络层)_第109张图片
802.11的MAC帧头格式

  • 举例,A接入基站AP1,B接入基站AP2,
  • A给B发信息,通过基站/接入点通信;目的地址是B的MAC地址,源地址是A的MAC地址,本例中,接收端就是AP2,发送端是AP1

计算机网络学习笔记(3.数据链路层 4.网络层)_第110张图片
802.11的MAC帧头格式

  • 802.11的 MAC帧头格式还有其他类型
  • 上面的例子是第四种类型
  • 个人理解:其实就是 发送端,接收端,目的地之,源地址,一共四个地址,目的地址和源地址必须有,接收端和发送端可能有两个,可能有一个
  • SA源地址,DA目的地之,如果是四个地址,则RA接收端,TA发送端,如果是三个地址,则BSSID表示基站地址
  • To AP有接收端的基站地址,From AP有发送端的基站地址,
  • 做题时看根据题意,看是属于那种类型,在对照表格,对号入座各个地址所对应的位置

计算机网络学习笔记(3.数据链路层 4.网络层)_第111张图片
无线局域网分类
计算机网络学习笔记(3.数据链路层 4.网络层)_第112张图片
有固定基础设施的无线局域网

  • 基站可以让区域内的主机通信,也可以实现漫游,即不同基站范围内的主机进行通信
  • 一个基站范围内构成了一个基本服务集,几个基本服务集构成了扩展服务集
  • 分配系统就是把有线和无线网络连接在了一起
  • wifi名字也叫服务集标识符
  • 不是重要考点

计算机网络学习笔记(3.数据链路层 4.网络层)_第113张图片
无固定基础设施无线局域网的自组织网络

  • 每台主机都可以充当主机和路由器功能
  • 每个节点可以移动,组网简单
  • 考试基本不考

计算机网络学习笔记(3.数据链路层 4.网络层)_第114张图片

VLAN的基本概念及基本原理

传统局域网的局限
计算机网络学习笔记(3.数据链路层 4.网络层)_第115张图片
VLAN基本概念

  • 打破物理限制,在逻辑上构成广播域

计算机网络学习笔记(3.数据链路层 4.网络层)_第116张图片
VLAN实现

  • 交换机上生成的各VLAN互不相通,若想实现通信,需要借助路由器,三层交换机;这里先不做讨论,主要讨论VLAN内的通信
  • 基于接口的VLAN技术:的每个主机的物理地址与端口有映射表,端口与VLANID有映射表,这就间接给每个主机的MAC地址分配了,属于哪个VLAN
  • 基于MAC地址的VLAN技术:每个主机的MAC地址与VLANID有对应表
  • 基于接口的VLAN技术实用更广泛一些
  • 交换机内部实现VLAN中的通信,直接找映射表,看是不是一个VLAN的即可

计算机网络学习笔记(3.数据链路层 4.网络层)_第117张图片
在交换机之间实现VLAN内的通信

  • 贴标签,比如A主机给E主机发数据
  • A主机发送普通的以太网帧,到了交换机1,交换机1会给这个帧增加字段,打了个标签,标记这是VLAN1的
  • 交换机之间通过trunk端口通信,将数据发给了交换机2,
  • 交换机2识别标签,发现这是VLAN1的,于是把这个帧还原为普通的以太网帧,并发给E

计算机网络学习笔记(3.数据链路层 4.网络层)_第118张图片
VLAN实现–IEEE 802.1Q帧,也就是贴标签之后的新的帧

  • 注意,802.1Q帧,是由交换机来处理的,主机值提供普通以太网帧

计算机网络学习笔记(3.数据链路层 4.网络层)_第119张图片
练习
计算机网络学习笔记(3.数据链路层 4.网络层)_第120张图片
计算机网络学习笔记(3.数据链路层 4.网络层)_第121张图片

广域网及相关协议

广域网

  • 主要有PPP协议和HDLC协议,2022年大纲已经去掉了HDLC协议,这里可以作为了解和PPP协议对比理解
  • 使用分组交换技术,将多个局域网组建起来
  • 广域网中有很多节点交换机,广域网的节点交换机只能在单个网络内转发分组,而路由器可以在多个网络内转发分组
  • 广域网可有交换机,集线器,路由器,覆盖物理层,链路层,网络,而局域网只覆盖物理层,链路层
  • 局域网使用多点接入技术,如逻辑总线,广域网使用点对点技术,一个发送端一个接收端
  • 广域网强调资源共享,局域网强调数据传输
  • 广域网传输速率很高,但是距离远,延迟更长一些,

计算机网络学习笔记(3.数据链路层 4.网络层)_第122张图片
PPP协议特点

  • poinr to point,目前适用最广泛

计算机网络学习笔记(3.数据链路层 4.网络层)_第123张图片
PPP协议应满足的要求

  • 简单:当时的设计,把最复杂的部分放在了TCP协议中,IP协议比TCP协议简单一些,提供不可靠数据报服务,因此链路层上就没必要抢在IP协议之前提供可靠传输的服务,简单说就是,可靠传输交给上层实现了
  • 透明传输:不论数据部分传什么,都能传过去,即使数据中有帧定界符一样的也能传;异步线路用字节填充指逐字节的传,同步线路逐比特的传
  • 多种网络层协议:链路层在对网络层的数据封装时,很包容,支持多种网络层协议
  • 差错检测:CRC循环冗余,错了就丢弃,无需可靠
  • 数据部分最大长度MTU=1500字节

计算机网络学习笔记(3.数据链路层 4.网络层)_第124张图片
PPP协议无需满足的要求
计算机网络学习笔记(3.数据链路层 4.网络层)_第125张图片
PPP协议的三个组成部分

  • 相当于LCP协议建立了物理连接,NCP协议在LCP协议之上建立了一个逻辑连接

计算机网络学习笔记(3.数据链路层 4.网络层)_第126张图片
PPP协议的状态图

  • 过程想象成,输入账号密码,建立物理链路,在建立LCP链路,再配置对应的NCP链路,才能正式访问
  • 具体细节不用管,知道大概过程即可

计算机网络学习笔记(3.数据链路层 4.网络层)_第127张图片
PPP协议的帧格式

  • 首尾字节是7E,标志字段,也是帧定界符,如果信息部分也有7E,就插入转义字符,7D
  • 第二个字符,FF,设计之初为了作为地址字段,第三个字符设计之初为了作为控制字符,可惜,第二第三字符现在都没用上
  • 协议部分用来标识信息部分是什么
  • FCS用于实现差错检测,是帧检验序列,
  • 可见PPP协议传输都是以字节为单位,因此是面向字节传输

计算机网络学习笔记(3.数据链路层 4.网络层)_第128张图片
HDLC协议(了解,考纲没有)

  • 不属于TCP/IP协议的,是ISO制定的
  • 可以实现透明传输,采用0比特插入法

计算机网络学习笔记(3.数据链路层 4.网络层)_第129张图片
HDLC的站
计算机网络学习笔记(3.数据链路层 4.网络层)_第130张图片
HDLC的帧格式
计算机网络学习笔记(3.数据链路层 4.网络层)_第131张图片
PPP协议和HDLC协议

  • PPP协议既可以实现0比特填充法的比特填充,也可以实现字节填充,HDLC只能实现0比特填充法
  • PPP的帧长度一定是8的整数倍,HDLC的帧长度不一定
  • 为什么PPP协议不可靠,使用却更加普遍?因为实际应用中我们主要靠TCP协议实现可靠和流量控制,网络层链路层主要实现不可靠的尽最大努力的交付,便于提高传输速率

计算机网络学习笔记(3.数据链路层 4.网络层)_第132张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第133张图片

链路层设备

物理层扩展以太网

  • 主机连接集线器最多100米长,否则失真无法恢复
  • 可以用光纤扩展长度
  • 也可以,利用主干集线器再连接集线器,可以跨冲突域通信,扩展了以太网范围,但是降低了通信效率,因为机器太多,冲突概率更高

计算机网络学习笔记(3.数据链路层 4.网络层)_第134张图片
如何扩展以太网,又不扩大冲突域

  • 使用网桥和交换机,网桥不是考点,但是有助于理解交换机,实际应用中一般使用交换机
  • 网桥比集线器多了一些智商,会考虑是否过滤
  • 网桥有两个端口,把几个以太网连接起来,每个冲突域就是一个网段,网段内连接着同一个物理层设备
  • 网桥分割了冲突域,如果一个冲突域只是内部通信,是不会影响其他冲突域的,间接提高了整体的吞吐量
  • 如果每个网段的最大速率是10Mb/s,那么三个网段合起来就是30,如果换做集线器,就还是10Mb/s
  • 扩大了物理范围,主机可以跨冲突域通信

计算机网络学习笔记(3.数据链路层 4.网络层)_第135张图片
网桥分类–透明网桥

  • 主机发送数据,也不知道经过哪些网桥,因为网桥可以即插即用,自学习,插上以后建立转发表,转发表初始是空的,地址是主机的物理地址,网桥左右两个接口1和2
  • 自学习的原理就是,A主机发出数据给B,相邻的网桥接收,查表,没有A的记录,则记录A地址,来自1接口,从另一个端口发出,进入到下一个网段
  • 即使AB在一个网段,B已经接收到了,但是信息还是会传下去,被其他网桥转发表记录
  • 同理B发送数据,也会被各个网桥转发表记下来
  • 当转发表有了AB记录,若A发给B,网桥发现发送方A有记录,不用再记录,接收方B也有记录,且端口就是1,那么就不用转发了,直接过滤掉;
  • 如果A发给F,网桥发现接收方F有几率,且端口为2,就意味着网桥会把数据从2端口传出去
  • 综上所述,转发表的自学习算法就是,收到数据,先查接发送方是否有记录,没有则记录,有则不用记录;再检查是否有接收方的记录,没有则通过另一个端口继续传下去;有记录,则看是哪个端口,如果就是当前接收的这个端口,则过滤掉,如果在另一个端口,则通过另一个端口传下去;
  • 所谓端口,其实就是标记了,这个主机地址在当前网桥的哪个方向
  • 转发表会定期更新一次,也就是删除所有记录,重新记录,反应当前最新的网络拓扑状态

计算机网络学习笔记(3.数据链路层 4.网络层)_第136张图片
网桥分类–源路由网桥

  • 源站发送发现帧,接收响应帧,可以得出路由方案,选择路由最少或时间最短(看实际情况)的方案路径,把这个方案的路由信息放在帧的首部

计算机网络学习笔记(3.数据链路层 4.网络层)_第137张图片
以太网交换机

  • 相当于一个多端口的网桥,结合网桥的连接接口,想象一下,把这几个网桥抽象的捏合在一起,就是个以太网交换机
  • 以太网交换机通常由十几个端口,每个端口既可以连接集线器,也可以直接连接主机
  • 以太网交换机和网桥是一个原理,每个端口连着的都是一个冲突域
  • 以太网交换机可以独占传输媒体带宽,比如,交换机的带宽10Mb/s,那么每个连着交换机的冲突域都可以从交换机分到10Mb/s,这一点和集线器形成对比,集线器是连接主机越多,每个主机带宽越低

计算机网络学习笔记(3.数据链路层 4.网络层)_第138张图片
以太网交换机的种类

  • 直通式交换机,存储转发式交换机,也有两种兼顾的混合式交换机,实际中多使用存储转发式交换机

计算机网络学习笔记(3.数据链路层 4.网络层)_第139张图片
交换的转发原理

  • 与网桥几乎一样,只是端口更多了
  • 也会自学习,自更新

计算机网络学习笔记(3.数据链路层 4.网络层)_第140张图片
冲突域和广播域

  • 冲突域,同一时间只能有一台设备发送信息的范围,通常都是由一个物理层设备所连接的主机构成的范围,比如多个主机连着一个集线器
  • 广播域:一个站点发送信号,所有能接受这个信号的设备的范围

计算机网络学习笔记(3.数据链路层 4.网络层)_第141张图片
练习题

  • 以太网交换每个端口连接的就是一个冲突域
  • 答案:4个冲突域,1个广播域

计算机网络学习笔记(3.数据链路层 4.网络层)_第142张图片

脑图时刻

  • 物理层扩大网络设备会扩大冲突域,于是放在链路层扩展,链路层可以隔离冲突域

计算机网络学习笔记(3.数据链路层 4.网络层)_第143张图片

第三章总结

  • 字符字节填充法,零比特填充法,记一下
  • 流量控制和可靠传输重点记忆
  • 差错控制比较重要,但是一直没怎么考,不能掉以轻心
  • 海明码原来在计组中,后来计组的考点删除了,但是计网的考点还没有删除,也要看
  • 介质访问控制非常重要,静态划分很简单,容易记忆,码分多路复用可能会靠计算,计网里的计算不多,这个是之一
  • 动态分配信道要清楚之间的差异,轮询访问介质访问协议中有令牌传递协议,对应的令牌环网,但是令牌环网考纲删除了
  • 局域网类型
  • 广域网主要是PPP协议,HDLC不考了
  • 链路层设备,理解网桥的原理,重点是交换机
  • 数据链路层协议很多,容易混淆,不好理清关系,有些抽象,需要反复多看

第四章 网络层

网络层概述和功能

网路层导图
计算机网络学习笔记(3.数据链路层 4.网络层)_第144张图片
网络层功能

  • 网络层传输单位是数据包,数据包与分组的关系就像父与子,数据包比较长
  • 路由选择就是通过路由选择算法,选择最佳路径
  • 异构网络互连,理解为通过路由器将各种不同构成的网络连接在一起
  • 拥塞控制,是一个全局性问题,与流量控制不同,流量控制只限于发送和接收方
  • 解决拥塞方法:开环控制(静态解决),闭环控制(动态结局)

计算机网络学习笔记(3.数据链路层 4.网络层)_第145张图片

SDN基本概念

大纲新增考点

  • 不会考的太深入,主要集中在选择题上

路由器功能:转发和路由选择

  • 路由器的基本功能:转发和路由选择
  • 转发:发生在路由器内,从路由器的输入端口,如何转发选择一个正确的输出端口
  • 路由选择:更宏观,范围广的概念,有很多路由器的时候,如何选择路由器确定路径,
  • 数据平面就是指路由器转发的过程;控制平面就是指路由选择的过程
  • 数据平面的过程一般时间比较短,用硬件解决;控制平面的过程一般时间比较长,用软件解决;时间短的用硬件解决,时间长的用软件解决

计算机网络学习笔记(3.数据链路层 4.网络层)_第146张图片
数据平面

  • 根据转发表进行转发
  • 路由表包含子网掩码,地址,端口等,
  • 基于路由表计算出转发表,转发表的首部指的是分组中的一个或几个字段,输出是指应该哪个端口输出
  • 路由表的生成和转发表的计算都不是数据平面处理的,只是单纯地转发分组,很基础,也很频繁

计算机网络学习笔记(3.数据链路层 4.网络层)_第147张图片
控制平面的方法主要有两种:传统方法,SND方法

控制平面(传统方法/每路由器法)

  • 路由器既要负责转发,又要计算路由选择算法,每台路由器都是这样
  • 一台路由器的路由选择算法与其他路由器中的路由选择算法通信,计算出路由表和转发表

计算机网络学习笔记(3.数据链路层 4.网络层)_第148张图片
控制平面法(SDN方法)

  • 数据平面与传统方法一样,只需要转发
  • 控制平面上,路由器不需要计算转发表和路由选择,交给了远程控制器处理,并分发转发表,远程控制器是真正的大脑
  • 路由器的功能是负责与远程控制器通信
  • 远程控制器通过可编程软件与路由器交互以及计算
  • 很多大厂开始使用SDN方法
  • 远程控制:可以自己控制如何计算转发表,以及流量划分和分配,更加灵活

计算机网络学习笔记(3.数据链路层 4.网络层)_第149张图片
控制平面中的路由选择器
计算机网络学习笔记(3.数据链路层 4.网络层)_第150张图片
SDN中的控制平面

  • 图中来自自定向下书,图中的交换机就是指路由器

计算机网络学习笔记(3.数据链路层 4.网络层)_第151张图片
SDN控制器的三个层次

  • 知道SDN协议中使用了OpenFlow协议

计算机网络学习笔记(3.数据链路层 4.网络层)_第152张图片
习题
计算机网络学习笔记(3.数据链路层 4.网络层)_第153张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第154张图片

路由算法及路由协议

路由算法

  • 路由器根据路由表/转发表知道了抵达目的地的最佳路径
  • 路由表的各个表项是通过路由算法得到的,路由算法可以计算出一个抵达目的地址的最佳路径,并把结果添加到 路由表中
  • 在网络层中,最佳路由通常是路径最短的选择,跳数最短,也可以成为链路费用最小,代价最小

计算机网络学习笔记(3.数据链路层 4.网络层)_第155张图片
路由算法的分类

  • 实际通信中动态路由使用比较多
  • 动态路由算法:全局性(OSPF),分散性(RIP)

计算机网络学习笔记(3.数据链路层 4.网络层)_第156张图片
分层次的路由选择协议

  • 把整个因特网分成很多个小的团体,每个团体成为自治系统AS,这样不至于每个路由的表项过于庞大
  • 自治系统内使用一些协议,自治系统外部(相互之间)使用一些协议,内部的协议外不是不知道,
  • 图中的内部网关协议外部网关协议就是路由器的内部协议,外部协议

计算机网络学习笔记(3.数据链路层 4.网络层)_第157张图片

IP数据报格式

TCP/IP协议栈

  • 网络层协议:ARP,IP,ICMP,IGMP,除了掌握每个协议,还要知道协议之间的关系
  • IP协议占了大头,非常重要

计算机网络学习笔记(3.数据链路层 4.网络层)_第158张图片
IP数据报格式

  • 在网络层这里,我们暂时不用区分IP数据报和分组,但是要知道,如果IP数据报过大,我们就要对其分片
  • IP数据报包括首部和数据部分,首部的固定部分固定20字节,可变部分大多数情况没有

计算机网络学习笔记(3.数据链路层 4.网络层)_第159张图片
IP数据报格式详解

  • 数据部分放在传输层详细讲解
  • 图中的数字是以位进行划分的,注意区分
  • 版本:4位,表示使用的版本IPv4/IPv6
  • 首部长度:占了4位,可以表示0000-1111,表示的最大十进制数是15,单位是4字节,因此可以表示最大为60字节,即首部长度最大为60字节;固定部分20字节,因此可变部分最大40字节;首部长度最小也是固定部分的长度,即20字节,换算为首部长度这个字段的值为5,因此首部长度字段的数值为5-15
  • 因此,首部长度的字节数应该为4的整数倍,如果首部的字节数不够4的整数倍,用填充这个部分来凑满
  • 区分服务表示期望获得那种服务,使用比较少,只有再使用区分服务时才会用到
  • 总长度表示首部的部分+数据部分的长度,总长度这个字段有16位,表示范围0-65535,单位是1字节,因此总长度字段能表示整个IP数据报的最大长度是65535字节,实际情况不会这样,长度太大就分组了
  • 标识,标志,片偏移,留到IP数据报分片在讲解
  • 生存时间,没经过一个路由器就-1,变成0则丢弃,防止IP数据报永远在路由器的循环中出不来
  • 协议字段和版本字段要区分,协议字段表示数据部分所使用的协议,常用的是TCP 6 和 UDP 17
  • 首部检验和:用于只检验首部,因为经过路由器需要校验有关首部信息,比如生存时间等,出错就丢弃,没错就继续传输
  • 源地址和目的地址:长度都是32位
  • 可选字段:0-40字节,长度可有可无,用来支持排除,测量,安全等功能,
  • 填充字段:补全作用,确保首部长度为4字节的整数倍,

计算机网络学习笔记(3.数据链路层 4.网络层)_第160张图片

IP数据报分片

最大传送单元

  • 以太网的最大传送MTU是1500字节,也就是网络层的 首部+数据部分 最大为1500字节
  • 如果传送的数据超过链路MTU值,则需要分片(前提是IP分组同意将数据报分片)
  • 如果不同分片,就会返回报错

计算机网络学习笔记(3.数据链路层 4.网络层)_第161张图片
IP数据报格式

  • 标识:同一个数据报的分片,都使用同一个标识
  • 标志:一共3位,第一位保留不用,只用第二位第三位;第二位1代表禁止分片,0代表允许分片;第三位1代表后面还有分片,0代表最后一片或没有分片
  • 片偏移:13位的比特,单位是8字节,比如,片偏移的十进制为1,则当前的分片在原来的数据报的第八个字节的位置;因此,除了最后一片,前面的分片长度都为8字节的整数倍,最后一片不一定

计算机网络学习笔记(3.数据链路层 4.网络层)_第162张图片
IP数据报分片例题

  • 原始数据报,首部20字节,数据部分3800字节,现在要求传输链路传输不得超过1420字节(MTU),如何分片
  • 1420字节里有20字节(分片的首部要和原数据报的首部长度一致),数据部分最大1400字节,分割时,尽量让数据部分越大越好,因此就取1400字节
  • 因此,数据部分3800字节,分成了,1400,1400,1000
  • 分片之后,加上首部,形成了1400+20,1400+20,1000+20
  • 1片的数据部分在原数据部分为0-1399字节,首字节是第0个字节,除以8等于0,因此片偏移为0
  • 2片的数据部分在原数据部分为1400-2799字节,首字节是第1400字节,除以8等于175,片偏移为175
  • 3片的数据部分在原数据部分为2800-3799字节,首字节是第2800字节,除以8等于350,片偏移为350

计算机网络学习笔记(3.数据链路层 4.网络层)_第163张图片
注意IP数据报中首部里有不同的字段,对应的单位不同,区分一下
计算机网络学习笔记(3.数据链路层 4.网络层)_第164张图片

IPv4地址

IPv4地址

  • 查找目的主机的位置,在哪个网络,是哪个主机

计算机网络学习笔记(3.数据链路层 4.网络层)_第165张图片
IP编址的历史阶段

  • 分类的IP地址,子网的划分,构成超网
  • 本节主要将分类的IP地址

计算机网络学习笔记(3.数据链路层 4.网络层)_第166张图片
分类的IP地址

  • 32位/4字节表示,路由器可以隔离广播域,如果多个接口连接不同的网络,在它连接的各网络中,路由器都能分配到对应的IP地址
  • 32位二进制数不利于人看,常用点分十进制表示

计算机网络学习笔记(3.数据链路层 4.网络层)_第167张图片
互联网中的IP地址

  • 图中六个网络,分成了两个类型的网络
  • 网桥可以隔离冲突域,但是不能隔离广播域,因此网桥连接的两个网段还是处在同一个网络号中
  • 路由器连接至少两个链路,因此路由器至少有两个IP地址,
  • 绿色区域也是一种特殊的网路,叫做无编号网络/无名网络,网络是由一段连线构成,但是有IP地址,了解一下

计算机网络学习笔记(3.数据链路层 4.网络层)_第168张图片
分类的IP地址

  • 分ABCDE类型的网络,分别对应固定的开头0,10,110,1110,1111,因此,这个固定的开头也可以称为类别位
  • D类用于一对多使用,E基本不会考察
  • 之所以分类是为了满足不同种类的需求,比如有的网络有很多的主机,有的网络主机很少
  • 并不是所有的IP地址都可以使用,有些有特定含义

计算机网络学习笔记(3.数据链路层 4.网络层)_第169张图片
特殊的IP地址

  • 第一种:网络号全0,主机号全0,表示本网范围内的这台主机,发送数据报的时候填源地址,不清楚自己是啥,可以填这个
  • 第二种:网络号全0,主机号特定值,和第一种效果一样,只能作为源地址,网络号直接给全0,主机号正常填写
  • 第三种:本网内广播,路由器能隔离广播域,不转发
  • 第四种:表示某一特定网络号的网络
  • 第五种:对特定网络号内的所有主机广播
  • 第六种:网络号127,主机号非全0全1,说明是A类网络;环回测试,表示填写了这个地址,发出去的数据报又走回来了,用来软件测试,测试网络层功能是否正确,不用别人接收,而是自己接收;
  • 注意,这里的全0和全1,指的是除去类别位,剩余部分中的网络号和主机号
  • 图中的这些是特殊的IP值,不能能用作为主机或路由器的具体接口的

计算机网络学习笔记(3.数据链路层 4.网络层)_第170张图片
私有IP地址

  • 如果把这些IP地址放在互联网上,路由器是不认的,只适用于内部网络使用
  • 内部网络如果和外部网络通信,使用NAT技术
  • ABC类网络有各自的特殊IP地址,网段数不同,对应的每个网络所包含的主机数也不同,根据实际需要选择

计算机网络学习笔记(3.数据链路层 4.网络层)_第171张图片
再看各个分类的IP地址的可用范围

  • 重要掌握ABC类地址
  • A类:第一个0是分类位,还剩7位表示网络号,去掉全0表示本网络,去掉全1表示127环回,A类网络号为1-126;剩余的24位做主机号,去掉全0表示这个特定网络,去掉全1表示广播,
  • B类:第一二位是分类位,还剩14位表示网络号,去掉全0情况,B网络号为128.1-191.255,主机号同理
  • C类:同理
  • 要对常见IP地址的二进制与十进制表示熟练,能快速反应

计算机网络学习笔记(3.数据链路层 4.网络层)_第172张图片

网络地址转换(NAT)

  • 私有IP地址的数据报不会被路由器转发,
  • 本地IP地址如何与因特网通信,需要用到网络地址转换NAT技术

计算机网络学习笔记(3.数据链路层 4.网络层)_第173张图片
网络地址转换NAT

  • 需要再专用网和因特网之间的路由器上安装NAT软件,安装NAT软件的路由器叫做NAT路由器,NAT路由器至少有一个外部全球IP地址
  • 专用网的主机与外界通信,需要经过NAT路由器进行网络地址转换
  • 主机A与主机B通信时,是以172.38.1.5作为自己的代表地址,B目的地址也是指向172.38.1.5
  • NAT路由器有NAT转换表,有IP地址和端口,端口可以唯一标识某一台主机的进程,这样NAT在收发数据时,根据转化表转为对应的IP地址;转发表两列,外网端和内网端,也可以说是广域网端和局域网端
  • A主机发送数据报,封装IP地址和端口号,源地址是专用网的,经NAT路由器进行地址转换,源地址替换成路由器的因特网IP地址,发送到因特网;B发送数据报,目的地址是NAT路由器的因特网IP地址,经过NAT地址转换,目的地址变为A的专用网地址
  • 具体端口号封装过程见传输层

计算机网络学习笔记(3.数据链路层 4.网络层)_第174张图片

子网划分与子网掩码

分类IP地址的弱点

  • IP地址空间的利用率很低
  • 两级IP地址不够灵活

计算机网络学习笔记(3.数据链路层 4.网络层)_第175张图片

子网划分–三级IP地址

  • 将主机号中一部分高位作为子网号,原主机号剩余的部分重新作为主机号,这样的IP地址被划分了三段,称为三级IP地址
  • 申请到了二级IP地址,要不要划分以及如何划分子网,是单位内部的事情,
  • 划分了子网以后,对外仍表现为一个网络,外界网络看不到内部的子网划分
  • 如果划分子网,至少也要有两位最为主机号,如果只留最后1位作为主机号,0表示这个网络号,1表示广播,就没有真正有意义的IP地址了
  • 子网号能否全0或全1,要看情况,最开始不能,随着CIDR技术广泛应用,子网号可以全0或全1,要看实际出题
  • 三级IP地址的主机号依然不能全0或全1

计算机网络学习笔记(3.数据链路层 4.网络层)_第176张图片
子网划分–过程

  • 已知一个网络145.13.0.0有三个子网,当路由器接收到的数据报中,目的地址为145.13.3.10,这条数据报如何找到对应的主机?

计算机网络学习笔记(3.数据链路层 4.网络层)_第177张图片
子网掩码

  • 上面的例子,目的主机的IP地址为145.13.3.10,将网络号变为全1,主机号变为全0,得到二级子网掩码,即255.255.0.0
  • 本例中,目的主机的三级IP地址划分,子网号占了8位,因此,把网络号全部变1,主机号变0,得到三级子网掩码,即255.255.255.0
  • 不论如何划分,只需要记住,主机号部分全部变0,其余部分全部变1,得到的就是对应的子网掩码
  • 用子网掩码与IP地址相与,得到的就是目的主机所在的子网网络地址,
  • 个人理解,子网掩码的作用就是为了求出目标主机所在的子网;子网掩码清楚告诉了我们一个IP地址的那几位是网络号,哪几位是主机号

计算机网络学习笔记(3.数据链路层 4.网络层)_第178张图片
子网掩码习题一

  • 子网掩码的理解需要多结合习题
  • 已知IP地址,子网掩码,相与得到的就是主机所在的子网地址,
  • 相与时无需全部的列出IP地址的二进制,全0的相与一定是0,全1的相与一定是不变
  • 熟练记忆常见的二进制数与十进制数的对应关系,这样只把特定的几位列出来,进行相与的计算
  • 第一问得出子网的地址为141.14.64.0;第二问得出子网的地址为141.14.64.0
  • 说明同一个IP地址与不同的子网掩码可能会得出相同的子网号;但是这两个子网由于掩码不同,因此所能控制的主机数量不同,需要注意

计算机网络学习笔记(3.数据链路层 4.网络层)_第179张图片
子网掩码习题二

  • 广播分组,主机号全1,A排除
  • 子网掩码的前16位全1,不用算了,后8位全0不用算了,看第三字节
  • 子网掩码第三个字节252,即11111100,和77即01001101相与,得到010011即76,因此这个主机IP地址的子网号为180.80.76.0
  • 广播地址就是把主机号全变1,即后10位全变1,得到180.80.79.255,选D
  • 多做题,子网掩码的习题套路都类似,大部分都是给IP地址,给子网掩码,判断子网号,根据不同情况解题

计算机网络学习笔记(3.数据链路层 4.网络层)_第180张图片
使用子网时如何分组转发

  • 路由器接收到数据报需要参考路由表
  • 路由表包括:目的网络地址,目的网络子网掩码,下一跳地址
  • 路由器提取目的IP地址,与当前这个网络里的各个子网掩码相与,得出网络地址,如果相与的结果与这个子网地址相同,表明目的主机就在当前子网里,即直接交付
  • 如果目的IP地址与子网掩码相与的得出子网与当前网络里都不一致,则需要间接交付,则查找这个目的地址在路由表中是否有特定主机路由,如果有这个特定主机的路由,则继续往下一个路由跳跃
  • 如果没有特定路由,则将目的地址与路由表中的所有子网掩码相与,如果发现相与得到的网络就是目的网络,则按照这一行跳跃
  • 如果还是没有,则交给默认路0.0.0.0由处理,默认路由会交给另一个路由处理,另一个路由将按照上面的步骤从头开始找,如果找到目的子网,则跳转,还是找不到,则继续给默认路由,循环,直到数据报的生命周期结束,丢弃,报告转发分组出错

计算机网络学习笔记(3.数据链路层 4.网络层)_第181张图片

无分类编址CIDR

传统IP地址的问题

  • 为了解决IP地址的利用率的问题,在子网的启发下,把网络号和子网号合并为网络前缀,再次回到了二级IP地址
  • 网络前缀的长度是灵活可变的,对应的主机号长度也是可变,目前广泛使用
  • CIDR是常考点,主要是超网和最长前缀匹配,掌握做题套路,不难

计算机网络学习笔记(3.数据链路层 4.网络层)_第182张图片
无分类编址CIDR

  • 几个IP地址如果网络前缀相同,他们构成了一个CIDR地址块
  • 除去网络前缀,剩余作为主机号,取值范围全0到全1,全0表示本网络,全1表示广播地址,中间部分表示主机号
  • 地址掩码类似于子网掩码,网络前缀全变1,主机号部分全变0,得到地址俺妈
  • 可以继续进行子网划分,再取几位划分子网,并入前面的网络前缀,剩余作为主机号

在这里插入图片描述
无分类编址CIDR举例

  • 192.199.170.82/27
  • 包括2的5次方即32个IP地址,最小地址,最大地址
  • 当前CIDR地址块是多少,就是主机号全0的时候
  • 当前CIDR的地址掩码为多少,令前缀部分全为1,主机号部分全为0

计算机网络学习笔记(3.数据链路层 4.网络层)_第183张图片
CIDR地址应用–构成超网

  • 对于路由1,想要走到网络1和网络2,都需要走路由2同样的接口,但是在路由表中却占据了两行,如果这样的网络很多,就会导致路由表非常的长,不利于路由表的维护
  • 可以把相同接口的行合并到一起,将路由表中这些对应相同接口的IP地址取交集,即找到这些IP地址前多少位值是一样的,剩余部分全部变0,前多少位一样,斜杠后面就是几,这样就实现了路由聚合,把这个地址作为合体的网络地址
  • 划分子网是对网络的进一步划分,构成超网是把多个网络地址聚合到一起,

计算机网络学习笔记(3.数据链路层 4.网络层)_第184张图片
构成超网例题
计算机网络学习笔记(3.数据链路层 4.网络层)_第185张图片
CIDR地址应用–最长前缀匹配

  • 查路由表,与各地址掩码相与,得到网络地址,并且匹配的地址不只一个,这时应选择最长前缀的作为下一跳路由
  • 因为前缀越长,地址块越小,越具体
  • 例题中,计算机系匹配成功,并且是所有匹配的地址里面前缀最长的,因此选择这个作为路由的下一跳

计算机网络学习笔记(3.数据链路层 4.网络层)_第186张图片
最长前缀匹配例题

  • 解题方法不变,最后一个选项表示默认路由,当其他所有目的网络都不匹配的时候,才会跳默认路由

计算机网络学习笔记(3.数据链路层 4.网络层)_第187张图片

ARP协议

发送数据的过程–发给同一个局域网内的主机(1主机发给3主机)

  • 应用发送数据,如果数据比较大,传输层会进行分段,网络层可能继续对数据进行分片(图中没有分)
  • 网络层,添加源主机和目的主机的IP地址,源主机IP地址已知,目的主机IP由传输层查询DNS得知
  • 数据链路层,添加源MAC地址和目的MAC地址,封装成帧,源MAC地址已知,目的MAC地址使用ARP协议获取
  • ARP协议,主机中有ARP高速缓存,保存了当前局域网内的IP地址与MAC地址的映射
    • 如果从缓存查到了,直接封装成帧,有物理层发送给3主机;
    • 如果缓存中没有查到,则源主机发送一个广播ARP请求分组,包含源主机和目的主机IP地址和MAC地址,目的主机MAC地址填全1,表示局域网广播;3主机收到广播信息,会返回一个单播ARP响应分组,只发给1主机,包括自己的IP地址和MAC地址;1主机收到3主机的MAC地址以后,填到上一步的目的主机MAC位置上
  • 数据链路层封装成的帧,从物理层发送出去

计算机网络学习笔记(3.数据链路层 4.网络层)_第188张图片
发送数据的过程–发给不同局域网内的主机(1主机发给5主机)

  • 路由器的各个端口分别标识给自的MAC地址,交换机没有MAC地址
  • 应用层,传输层部分基本一致,省略
  • 网络层,添加源主机和目的主机IP地址
  • 数据链路层,添加源主机和目的主机MAC地址
  • ARP协议
    • 1主机显然查不到5主机的MAC地址,因为不在一个局域网
    • 1主机首先用子网掩码与5主机的IP地址相与,查看是不是在同一个局域网,发现不是
    • 1主机将目的地址填写为默认网关的MAC地址,如何获取默认网关的MAC地址?同样的方式,1主机广播ARP请求分组,填写源主机与目的主机(这里就是网关)的IP地址和MAC地址,目的MAC地址填全1,表示广播;局域网所有主机后,只有默认网管(路由器)会响应请求,返回单播ARP响应分组
    • 1主机填上默认网关的MAC地址,经过物理层发送出去
    • 这就是通过ARP协议获取路由器地址的过程
  • 数据从路由器一个端口进到另一个端口出,更换了源主机MAC地址,
  • 从图中可以得知,左路由器发送到右路由器使用的是PPP点对点,右路由器的MAC地址可以直接填全1
  • 右路由器,先解封,再封装,更新一下MAC地址,发送出去
  • 右路由器发送给5主机,需要知道5主机的MAC地址,同样使用ARP协议
    • 首先发送广播ARP请求分组,5主机收到请求,返回单播ARP响应分组
    • 右路由器收到响应,给原来的发送数据填上目的主机MAC地址,继续发送数据给5主机
  • 数据传输过程中需要注意的问题
    • 网管是一个局域网连接外界网络的出口,这里左侧局域网的网管就是左侧的路由器
    • 真正要发送的数据信息中,源和目的IP地址从未改变过(NAT特殊除外),但是源和目的MAC一直在更新
    • 广播ARP请求分组的IP地址根据实际情况调整,即当前通信的直接双方的信息
    • 单播ARP响应分组只需包含自身的IP与MAC地址

计算机网络学习笔记(3.数据链路层 4.网络层)_第189张图片
ARP协议重点

  • 传送数据最终必须使用MAC地址,因为数据最终传到局域网中,只能认得MAC地址
  • 如果更换了网卡,主机MAC地址会发生改变,ARP缓存需要定期更新
  • ARP协议的4种典型情况
  • ARP协议是自动进行的,主机用户感知不到
  • ARp协议处于链路层和网络层中间的位置,我们将其划分为网络层的协议,它为IP协议提供服务,

计算机网络学习笔记(3.数据链路层 4.网络层)_第190张图片
ARP协议练习题
计算机网络学习笔记(3.数据链路层 4.网络层)_第191张图片

DHCP协议

主机如何活的IP地址

  • 静态配置:给每台主机固定分配IP地址,子网掩码,默认网管
  • 动态配置:每个网段中都有几台DHCP服务器,交换机,一群主机;
    • DCHP服务器给这个这些主机分配动态IP地址,主机不再连接以后,DHCP服务器收回IP地址,

在这里插入图片描述
DHCP协议

  • 应用层协议,客户/服务器方式,广播交互,基于UDP
  • 即插即用,主机进入DHCP管辖范围,即可动态获取,
  • 允许地址重用指,离开的主机,IP地址会被回收到地址池里,继续等待给其他主机分配使用
  • 支持移动用户加入网络,支持在用地址续租,
  • 由于是主机与服务器之间的来回交互,因此成为客户/服务器方式
  • DHCP工作流程
    • 第二步,拟分配,主机没正式使用这个IP地址,先到先用,
    • 第三步,主机广播以后,其他DHCP服务器收到信息,收回了刚才分配的IP地址

计算机网络学习笔记(3.数据链路层 4.网络层)_第192张图片

ICMP协议

回顾TCP/IP协议栈

  • 为了更加有效的转发IP数据报,提高交付成功的机会

计算机网络学习笔记(3.数据链路层 4.网络层)_第193张图片
网际控制报文协议ICMP

  • ICMP协议支持主机,路由器;用于实现差错或异常的报告,网络探寻,网络层出错的分组丢弃了,但是不能白白丢弃,要返回源地址差错报告
  • ICMP协议的意义就在于发送特定的ICMP报文
  • ICMP报文装在IP数据报的数据部分,数据部分再加上首部就可以由网络层发送了,因此ICMP协议是网络层协议
  • ICMP报文
    • 类型:表示这个ICMP报文是哪一类,主要分差错报文,询问报文
    • 代码:进一步区分这个类型的报文的不同情况
    • 检验和:用于检验整个ICMP报文;与之相比,IP数据报的首部检验和只能检验首部,无法检验内部数据

计算机网络学习笔记(3.数据链路层 4.网络层)_第194张图片
ICMP差错报告报文(5种)

  • 第二种:源点抑制,目前已经不用了
  • 第五种:路由器觉得主机可以有更好的选择,所以把报文返回给主机了

计算机网络学习笔记(3.数据链路层 4.网络层)_第195张图片
ICMP差错报告的数据字段

  • 所有的ICMP差错报告报文的数据字段格式都是一样的
  • 把收到的有问题的IP数据报,截取 首部+数据部分前8字节,再在前面加上ICMP的前8个字节(类型,代码,检验和,进一步类型),构成了IP数据报的数据部分,再加上首部,构成了完整的网络层IP数据报

计算机网络学习笔记(3.数据链路层 4.网络层)_第196张图片
不用发送ICMP差错报文的情况

  • 1.对ICMP差错报告报文不在发送差错报告报文
    • 如果是由ICMP差错报文封装成的IP数据报,首部只能检验首部,无法保证数据部分正确;
    • 如果IP数据报的数据部分除了问题,并且打开发现,是ICMP差错报告报文,就不再对此发送差错报告报文
  • 2.只对第一个分片出问题时发送,后续分片一律不管
  • 3.组播:一对多,和广播不同,广播是对所有
  • 4.特殊地址:本网络的本主机,环回地址
  • 有可能出选择题

在这里插入图片描述
ICMP询问报文

  • 需要两个报文配合使用
  • 1.回送请求和回答报文:一个具体应用就是ping
  • 2.时间戳请求和回答报文,
  • 3.掩码地址请求和回答报文,已经不再使用
  • 4.路由器询问和通告报文,已经不再使用

计算机网络学习笔记(3.数据链路层 4.网络层)_第197张图片
ICMP应用

  • traceroute工作原理:源主机发送一连串数据报,每个数据报的生存时间不一样,第一个为1,后续一次+1,第一个数据报只能到达第一个路由器,没了生存时间,第一个数据报被路由器丢弃,并返回ICMP差错报告报文给源主机;
  • 后续的每个数据报能走到的最远路由一次+1
  • 通过此法,测算出从源主机到目的主机的距离

计算机网络学习笔记(3.数据链路层 4.网络层)_第198张图片

IPv6

为什么有IPv6

  • 为了解决IPv4地址分配效率,CIDR和NAT治标不治本
  • IPv6从根本上解决地址耗尽问题,扩充地址长度
  • 改进首部格式
  • 快速处理/转发数据报:提高了处理和转发效率
  • 支持QoS:网络安全机制,如果支持QoS,就可以满足实时多媒体通信需要
  • 不是考察重点,目前还没有出过题

计算机网络学习笔记(3.数据链路层 4.网络层)_第199张图片
IPv6数据报格式

  • 分两个部分:基本首部+有效载荷
  • 基本首部:固定40字节,类似于IPv4的首部固定部分
  • 有效载荷:选项部分+数据部分
    • 选项部分:相当于IPv4中的首部的可变部分放到了这里;
    • 扩展首部其实就是对这些数据报有一些新的要求
    • IPv4中一些扩展首部本来就不常用,也额外占用时间;放到IPv6的数据部分,大大提高分组的处理速度

计算机网络学习笔记(3.数据链路层 4.网络层)_第200张图片
IPv6数据报格式

  • 版本:指明协议版本,对于IPv6协议,这个字段就是数值6
  • 优先级:区分数据报的类别,声明这个数据报的优先级,是否对当前数据报优先处理
  • 留标签:流的概念;属于同一个流的数据报都有同一个流标签;对比着记忆,IP数据报分片,属于同一个数据报的分片也有统一的标识
  • 有效载荷长度:指明有效载荷部分的长度;
  • 下一个首部:比如当前这个IPv6数据报有3个扩展首部123,则每个扩展首部里都有"下一个首部"这个字段;基本首部中的“下一个首部”字段,指向扩展首部1,扩展首部1中的“下一个首部”指向扩展首部2,扩展首部2的“下一个首部”指向扩展首部3,扩展首部3中的下一个首部指向数据部分;数据部分就是上层传来的报文段
  • 跳数限制:生存时间,相当于IPv4的TTL

计算机网络学习笔记(3.数据链路层 4.网络层)_第201张图片
IPv6和IPv4

  • IPv6协议,如果在路由器发现IP分组过大,只能丢弃,同时返回ICMPv6差错报告报文,
  • 标红和粗体重点记忆,其他了解即可

计算机网络学习笔记(3.数据链路层 4.网络层)_第202张图片
IPv6地址表示形式

  • 二进制一共128位,16字节
  • 一般形式:转成16进制,每4位放在一起,每组之间冒号分隔
  • 压缩形式:对于每个组来说,全0的就用一个0代替;前面有连续的0的,0直接去掉;
  • 零压缩:一连串连续的0可以被一对冒号取代

计算机网络学习笔记(3.数据链路层 4.网络层)_第203张图片
IPv6基本地址类型

  • 单播:一对一通信
  • 多播:IPv6没有使用v4的广播地址,多播可以取代广播;
  • 任播:本质上还是一对一通信,只不过目的主机是随机的,看起来就像一对多一样

计算机网络学习笔记(3.数据链路层 4.网络层)_第204张图片
IPv6向IPv4过渡的策略
计算机网络学习笔记(3.数据链路层 4.网络层)_第205张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第206张图片

RIP协议及距离向量算法

路由选择协议分类回顾
计算机网络学习笔记(3.数据链路层 4.网络层)_第207张图片
RIP协议

  • 分布式,距离向量,因特网协议标准,简单
  • RIP协议要求网络中的每个路由器都维护一个路由表,这个路由表记录了从自己到每个网络的唯一的最佳距离记录
  • 路由表
    • 协议规定,如果当前路由器与目的网络直连,则距离为1,下一跳路由器填直接交付(也可能规定为0,看具体情况)
    • 如果是间接相连的,到目的网络,每经过1个路由器,距离+1,同时填写下一跳路由器
    • RIP允许一条路由最多只能包含15个路由器,16表示网络不可达(因此RIP协议适用于小互联网)
  • 路由器之间交换信息,逐渐的完善填满各自的路由表

计算机网络学习笔记(3.数据链路层 4.网络层)_第208张图片
RIP协议怎么交换信息

  • 路由器刚开始工作只有直连网络的信息,路由器之间交换的路由信息也很少,随着时间的推移,交换的信息越来越多,路由表逐渐完善,最终实现收敛

计算机网络学习笔记(3.数据链路层 4.网络层)_第209张图片
距离向量算法

  • 相邻的路由器之间交换RIP报文,报文内容就是路由表的全部信息
  • 1.把相邻路由器X发来的路由表信息修改一下,下一跳都填X,所有距离+1,
  • 2.用路由器X发来的报文,跟当前路由器R1的路由表对比
    • X有目的网络,R1中没有目的网络,直接加进来
    • X有目的网络,R1中有目的网络,且R1表中的的下一跳就是X,用X表中的替换R1表中的,即新的换旧的
    • X有目的网络,R1中有目的网络,R1的下一跳不是X,选择距离小的留下
  • 3.180s没有收到相邻路由器的RIP报文,则标记为不可达,距离设置16
  • 4.每30s重复以上动作

计算机网络学习笔记(3.数据链路层 4.网络层)_第210张图片
距离向量算法练习题1
计算机网络学习笔记(3.数据链路层 4.网络层)_第211张图片
距离向量算法练习题2

  • 来自B的向量为(5,0,8,12,6,2),表示,B-A=5,B-B=0,B-C=8,B-D=12,B-E=6,B-F=2,C到B延迟为6,则C通过B到各点为(11,6,14,18,12,8),同理求出C通过DE到各点距离,比对C通过BDE到达各点的距离,选择最小的,且C到C是0

计算机网络学习笔记(3.数据链路层 4.网络层)_第212张图片
RIP协议报文格式

  • 具体格式不必记忆,主要了解,RIP是应用层协议,使用UDP传送数据
  • 一个RIP报文最多传送25个路由,如果超过,必须再增加RIP报文

计算机网络学习笔记(3.数据链路层 4.网络层)_第213张图片
RIP协议好消息传得快,坏消息传的慢

  • 好消息正常交付
  • 坏消息可能会出现循环交付的情况,直至距离增长为16,表示网络不可达,因此需要一定的延时
    计算机网络学习笔记(3.数据链路层 4.网络层)_第214张图片
    计算机网络学习笔记(3.数据链路层 4.网络层)_第215张图片
    计算机网络学习笔记(3.数据链路层 4.网络层)_第216张图片
    脑图时刻
    计算机网络学习笔记(3.数据链路层 4.网络层)_第217张图片

OSPF协议及链路状态算法

路由选择协议分类回顾
计算机网络学习笔记(3.数据链路层 4.网络层)_第218张图片
OSPF协议

  • 开放的协议,使用了Dijkstra的最短路径算法SPF
  • OSPF最主要特征,使用了分布式链路状态协议
  • 和谁交换:洪泛法,向自治系统内所有路由器发送信息,每个路由器向相邻路由器发送信息,一传十十传百,向洪水泛滥一样,就像广播一样
  • 交换什么:交换与本路由器相邻的所有路由器的链路状态,所谓链路状态指,本路由器和那些路由器相邻,以及该链路的代价
  • 交换多久:只有链路发生变化时,才会交换信息

计算机网络学习笔记(3.数据链路层 4.网络层)_第219张图片
链路状态路由算法

  • Dijkstra算法在计算机网络的部分基本不会考察,且OSPF协议考察较少,只会考察个别重点

计算机网络学习笔记(3.数据链路层 4.网络层)_第220张图片
OSPF的区域

  • 继续对自治系统进行分区,每个区域内的路由器最好不超过200个
  • 有一个主干区域,若干个普通区域
  • 主干区域规定0.0.0.0,主干区域的路由器都叫主干路由器,R3,R4,R7处在多个区域中,称为区域边界路由器;R6处在主干区域中,但是连接着外部区域,称为自治系统边界路由器
  • 普通区域的路由器都称为区域内部路由器
  • 虽然这么做协议变得更加复杂,但是、可以使每个区域内的通信量减少

计算机网络学习笔记(3.数据链路层 4.网络层)_第221张图片
OSPF分组

  • 考纲认为OSPF是网络层协议,也有人认为是传输层,以考纲为准,网络层协议

计算机网络学习笔记(3.数据链路层 4.网络层)_第222张图片
OSPF其他特点
在这里插入图片描述

BGP协议

路由选择协议分类回顾
计算机网络学习笔记(3.数据链路层 4.网络层)_第223张图片
BGP协议

  • 和谁交换:与其他自治系统的临站BGP发言人交换信息;
    • 每个AS系统至少有一个BGP发言人,一般BGP发言人都是边界路由器,几个BGP发言人处在一个网络中
  • 交换什么信息:网络可达性信息,达到其他AS要经过的一些列AS,
  • 多久交换:发生变化时,与OSPF很像

计算机网络学习笔记(3.数据链路层 4.网络层)_第224张图片
BGP协议交换信息的过程

  • BGP发言人交换了信息之后,各BGP发言人根据策略从路由信息中找到较好的路由,无需最佳的,因为网络很大,
  • BGP发言人既要清楚外界到达其他AS的较好路由,又要清楚如果外界信息如果要进入AS内部该如何跳,身兼多职

计算机网络学习笔记(3.数据链路层 4.网络层)_第225张图片
BGP协议交换信息的过程

  • 例如,AS2通知AS1,从AS2可以到达N1,N2,N3,N4
  • 同样主干网也会通知AS2,从主干网AS1可以达到N5,N6,N7
  • 交换信息的具体细节无需了解,只需要知道交换的信息包含什么即可,包含的是完整的路径

计算机网络学习笔记(3.数据链路层 4.网络层)_第226张图片
BGP协议报文格式

  • BGP是应用层协议,借助TCP传送
  • 为什么使用TCP,因为可以提供更可靠的服务,同时简化路由选择协议

计算机网络学习笔记(3.数据链路层 4.网络层)_第227张图片
BGP协议特点
计算机网络学习笔记(3.数据链路层 4.网络层)_第228张图片
BGP-4的四种报文
计算机网络学习笔记(3.数据链路层 4.网络层)_第229张图片
三种路由协议比较

  • 考试对三种协议的考察不会过分的深入
  • RIP可能会考距离向量的算法,OSPF和BGP可能考内部还是外部,以及三个协议的路由选择算法的区分

计算机网络学习笔记(3.数据链路层 4.网络层)_第230张图片
计算机网络学习笔记(3.数据链路层 4.网络层)_第231张图片

IP组播

IP数据报的三种传输方式

  • 如果给一部分用户发送,用单播要一个一个发太麻烦,广播发会造成有些用户不需要却收到信息
  • 组播/多播:发送者先发一次数据,借助组播路由协议建立组播分发树,数据达到了用户端极可能近以后,才开始复制和分发,是点对多;只给组播组内的主机发送,不是所有;也不会一开始就发送很多信息给每个主机,只发一个,最后才开始复制

计算机网络学习笔记(3.数据链路层 4.网络层)_第232张图片
举个看视频例子

  • 源站点根据有多少主机需要观看,复制多少分的数据报发送,非常占用带宽
  • 多播,只发送一份数据报出去,到了最后才开始复制;组播中的主机可以是同一个物理网络,也可不是同一个,需要有组播路由器的支持,这些路由器可以支持组播协议,也可以支持单播协议
  • 如何确定哪些主机属于这个组播组?

计算机网络学习笔记(3.数据链路层 4.网络层)_第233张图片
IP组播地址

  • 主机需要有一个新的组播地址,来接收属于这个组播组的数据报
  • 组播IP地址是D类地址,组播地址只能作为目的地之,不能作为源地址,源地址只能是单播地址,因为组播地址可能对应很多主机,都发给一个主机就数据混乱了
  • 组播数据报尽最大努力交互,不保证可靠,应用于UTP
  • 有些D类地址已经作为了永久地址,也不能作为组播地址
  • 组播地址可以分为因特网范围内组播和硬件组播,硬件组播指只能在局域网内的组播地址,因特网组播地址用于因特网范围内

计算机网络学习笔记(3.数据链路层 4.网络层)_第234张图片
硬件组播

  • 不要忘记的是,在局域网内,一定是IP地址映射对应的MAC地址,才能完成通信,组播通信也不例外
  • 与单播类似(主机IP地址需要主机MAC地址),组播IP地址也需要组播MAC地址
  • 类似于广播MAC地址的全F,组播MAC地址一共48位(二进制),以十六进制01-00-5E开头,再有一位固定为0,还剩23位决定局域网内的多播地址
  • 组播MAC地址的后23位由组播IP地址(D类IP地址)的后23位来填充,这样相当于组播组内几台主机有共同组播IP地址(D类IP地址),就会对应相同的组播MAC地址
  • 但是还有个问题,D类IP地址前4位固定为1110,有可能5-8位不同,9-32位却相同,还是对应出了相同的组播MAC地址,结果就是导致主机接收到了来自多个组播的信息,只因为这些组播IP地址的后23位相同,解决这个问题需要IP层用软件过滤,把不需要的数据报丢弃
  • 考试可能考察组播IP地址与组播MAC地址的映射

计算机网络学习笔记(3.数据链路层 4.网络层)_第235张图片
IGMP协议与组播路由选择协议

  • 一个组播路由通过使用IGMP协议,知道他所连接的局域网中是否有可以接收组播数据报的主机
  • 组播路由选择协议,使得连接的这些组播路由器进行信息交换,让组播数据报以最小的代价选择一个合适的路径传递,在最后的这个组播路由器上开始分发数据

计算机网络学习笔记(3.数据链路层 4.网络层)_第236张图片
网际组管理协议IGMP

  • 组播路由器可以判断自己的局域网内是否有主机进程参加了或者退出组播组,有主机参加的话,就就把组播数据报接收并发到局域网内
  • 但是不知道有多少主机参加,以及这些组播组的主机在哪些网络里

计算机网络学习笔记(3.数据链路层 4.网络层)_第237张图片
计算机网络学习笔记(3.数据链路层 4.网络层)_第238张图片
IGMP工作的两个阶段
计算机网络学习笔记(3.数据链路层 4.网络层)_第239张图片
组播路由选择协议

  • 组播组的成员是可以动态变化的,可以突然加入或者突然离开;组播路由选择协议就是为了保证主机想加入时可以快速的从源主机获取组播数据报
  • 组播转发树:以源主机为根结点,向下不断分叉,连接到各个组播组的主机
  • 不同的组播组可以对应不同的组播转发树,因为源主机可能有变化,组播组的主机可发生了变化
  • 同一个组播组,源主机不同,也会对应不同的组播转发树,比如同一个组播组,R1连接源主机,则组播转发树就是以R1为根结点;如果源主机在R2,则组播转发树就是以R2为根结点的
  • 构造树可以避免组播数据报在路由器之间兜圈子

计算机网络学习笔记(3.数据链路层 4.网络层)_第240张图片
组播路由选择协议的常用的三种算法

  • 基于链路状态的路由选择和基于距离向量的路由选择前面已经介绍
  • 协议无关的组播(稀疏/密集):协议无关意思就是建立在任何路由器协议之上,虽然建立转发树时使用了单播数据报和远程路由器协议,但是并不要求使用相同的单播路选择协议,稀疏和密集指的就是一个组播组内的主机离得远还是近,进而选择不同的算法
  • 这三个算法能够在选择题中选出来即可

计算机网络学习笔记(3.数据链路层 4.网络层)_第241张图片
脑图时刻
计算机网络学习笔记(3.数据链路层 4.网络层)_第242张图片

移动IP

移动IP相关概念

  • 实现功能,设备移动了,固定的网络IP地址不变,跨越不同的网段可以漫游
  • 考试只需要掌握以下基本概念,通信过程,具体细节不考察
  • 移动节点:具有永久的IP地址的移动设备
  • 归属代理(本地地址):移动节点没有移动时,最开始属于归属网络,对应着归属代理
  • 永久地址(归属地址):移动节点在归属网络中的原始地址
  • 外部代理(外地代理):移动节点进入到了外部网络,需要对应外部代理
  • 转交地址(辅地址):在外部网络中使用的代理地址或动态配置的地址

在这里插入图片描述
移动IP的通信过程

  • A从归属网络进入到外部网络,从外部代理获得一个转交地址,可以主动获取可以被动获取

计算机网络学习笔记(3.数据链路层 4.网络层)_第243张图片

网络层设备

路由器

  • 有多个输入端口,输出端口的专用计算机,任务是转发分组
  • 分两个部分,路由选择部分(控制部分),分组转发部分
  • 路由选择:构建路由表
  • 分组转发:构建转发表,由路由表得来
  • 转发发生在路由器内部,一个端口到另一个端口;转发发生在宏观上,路由之间选择一条路径

计算机网络学习笔记(3.数据链路层 4.网络层)_第244张图片
输入端口对线路上收到的分组的处理
计算机网络学习笔记(3.数据链路层 4.网络层)_第245张图片
输出端口将交换结构传送来的分组发送到线路

  • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因

计算机网络学习笔记(3.数据链路层 4.网络层)_第246张图片
三层设备的区别
计算机网络学习笔记(3.数据链路层 4.网络层)_第247张图片
路由表与路由转发
计算机网络学习笔记(3.数据链路层 4.网络层)_第248张图片

网络层总结

计算机网络学习笔记(3.数据链路层 4.网络层)_第249张图片

你可能感兴趣的:(408学习专区,网络)