暑期-网络部分

第一课

OSI参考模型:7层

OSl参考模型中从低到高依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

  • 应用层:文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet。

  • 表示层:数据格式化,代码转换,数据加密,没有协议。

  • 会话层:负责验证访问和会话管理。解除或建立与别的接点的联系,没有协议。

  • 传输层:为会话层用户提供一个端到端的可靠、透明和优化的数据传输服务机制。(端口号)

  • 网络层:为特定类型的网络应用提供了访问OSI环境的手段。(IP)

  • 数据链路层:将数据分帧,并处理流控制,以实现介质访问控制。(以太网)

  • 物理层:利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。

Screenshot_20220627_145538

TCP/IP协议 :4层

  • 应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。

    • 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
    • 应用层还能加密、解密、格式化数据。
    • 应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。
  • 传输层:作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中,TCP和UDP也同样起到了中流砥柱的作用。

  • 网络层:网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。

  • 网络接口层:在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。

Screenshot_20220627_145553

传输介质

  1. 同轴电缆:用在有限电视以及监控(现用的少)
Screenshot_20220627_145440
  1. 双绞线(网线):3类、4类、5类、6类、7类(越来越粗)(近距离传输)
Screenshot_20220627_145457

双绞线特征:

缺点:

  • 传输距离近,最大只能传输100米

优点:

  • 造价便宜
  • 传输速率不断增大,传输速率看以太网标准(10BASE代表10Mbit/s,100BASE代表100Mbit/s)

6类双绞线以及以上就有屏蔽层:屏蔽层用来避免干扰。

双绞线:做双绞线相应的线序是有标准的:橙白-1、橙-2、绿白-3、蓝-4、蓝白-5、绿-6、棕白-7、棕-8

  1. 光纤(远程传输)
Screenshot_20220627_145516

光纤特征:

优点:

  • 造价便宜
  • 传输距离远,最大可达到2000米
  • 传输速率高

缺点:

  • 传输的为光,需要光电转换器(比较昂贵)

光纤分类:

  • 单模光纤:

发送、接收同一种光信号。

  • 多模光纤:

发送、接收同多种光信号。

多模光纤有致命缺点:会有光的色散(影响信号失真)

  1. 串口电缆(淘汰)

冲突域

  1. 概念:

在共享网络中,收到一个数据会从除了接收端口以外的所有关口进行转发,容易造成数据的冲突。

  1. 解决冲突域方法:CSMA/CD(载波侦听多路访问/冲突检测):4个机制
  • 先听后发:
  • 边听边发:
  • 冲突停发:
  • 随机延迟后重发:

双工方式

单工:只发不收(鼠标,键盘)

半双工:既能发又能收,但是不是同时(对讲机)

双工:可以同时发同时收(手机)

第二课

数据的封装

数据:在应用层里面称之为数据,在网络里面称之为PDU(分组数据单元),当PDU传送到传输层,需要进行封装。当到达传输层,需要在PDU前面添加源目端口号,封装完成后称之为数据段。将数据段传送给网络层,当PDU到达网络层,需要在PUD前面添加源目IP地址,主要为了选择最优路径。封装完成称之为数据包,将数据包转给数据链路层,当PDU到达数据链路层,需要在PDU前面添加源目MAC地址,主要是找到对应的设备。封装完成后称之为数据帧,传送给传输介质,形成比特流,从而可以在网络中传输。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uhuNrcgD-1657113343457)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220627111426608.png)]应用层:数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ML5b6D6E-1657113343459)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220627143532595.png)]传输层:数据段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q6uwGORO-1657113343461)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220627143825068.png)]网络层:数据包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oM4Y4oka-1657113343463)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220627144213500.png)]网络接口层:数据帧

PDU最大不能超过1500B

Screenshot_20220627_145604

以太网的帧结构

Screenshot_20220627_145627

D.MAC:目的MAC地址(占用6个字节)

S.MAC:源MAC地址(占用6个字节)

Type:类型(有两种,分别代表:0x0800和0x0806。0x0800:代表上一层(第三层)是IP协议。0x0806:代表上一层(第三层)是ARP协议。)(占用2个字节)

DATA:数据(最大占用1500个字节)

FCS:帧校验(检查数据是否有问题)(占用4个字节)

2.数据链路层最大占用1518个字节,最小接收64个字节

超过1518个字节或者小于64个字节,FCS会将数据丢弃

如果MAC不一致 将直接丢弃。

第三课

MAC(以太网)地址的组成

  1. 长度位48位,由两部分组成:OUI(24位)+厂商分配(位)
  2. 例如:30-C9-AB-8F-E0-0F(16进制表示)
  • 单播:一对一进行通信
  • 组播:一对多
  • 广播:一多所有
  1. 判断是什么类型

    转换为二进制:00110000-11001001-10101011-10001111-11100000-00001111

    看第8位:如果位0为单播,如果为1为组播,全部为F为广播(FF-FF-FF-FF-FF-FF)

IP协议(网络层)

IP协议报文头部(长度:20-60个字节)

Screenshot_20220627_144727
  • Veision(版本号):有两个值4,6:4代表IPV4,6代表IPV6
  • Header length:IP头部长度
  • Total length:总长度
  • DS Field(现在不用了):
  • Identification(标识符):相同的数据包标识符是相同的(用来识别同一个数据包)
    • 相同的数据包:比如传输一个15000个字节的数据,无法一次发完。先发1500(标识符为12345)再发1500(标识符还是12345)等等。
  • Flags(标记) :告诉接收端还有数据要发:做数据的分片
    • DF=0 表示允许分片 DF=1表示不允许分片
    • MF=1 表示后面还有分片 MF=0表示后面没有分片
  • Fragment Offset(偏移值):将分片的数据进行重组,得到完整数据
  • MTU:最大可以传输1500个字节
  • Time To Live(TTL)(生存时间):数据在互联网上传输多远(最大为255跳),每经过一个路由器减1,当TTL等于0时,代表不可达。
  • Protocal协议(表示上层的协议):当Protocal=1表示ICMP协议;当Protocal=6表示TCP协议;当Protocal=17表示UDP协议;
  • Header Checksum(校验位):仅仅对IP头部做校验;FCS是对二层整个数据做校验

IP地址

  1. IP地址分为2部分:网络位(网段)和主机位(可用主机数),使用点分十进制192.168.1.1
Screenshot_20220627_154653
  1. 如何去确定IP地址的网络地址以及广播地址

192.168.1.1一共有32位(192是十进制)化为二进制为11000000.10101000.00000001.00000001

最大的IP地址为255.255.255.255

上面的网络地址为:192.168.1.0

上面的广播地址为:192.168.1.255

Screenshot_20220627_155723
  1. 子网掩码
  • A类地址:0.0.0.0-127.255.255.255

    • 默认子网掩码:255.0.0.0
  • B类地址:128.0.0.0-191.255.255.255

    • 默认子网掩码:255.255.0.0
  • C类地址:192.0.0.0-223.255.255.255

    • 默认子网掩码:255.255.255.0
  • D类地址:224.0.0.0-239.255.255.255(组播地址)

  • E类地址:240.0.0-255.255.255.255

Screenshot_20220627_161344
  1. 计算网络地址和广播地址
  • 先判断属于哪一类
  • 然后化为二级制
  • 将得到的二进制与相应类的默认子网掩码做与运算
  • 与运算后得到的为它的网络地址
  • 将网络地址的.0还为.255就是广播地址

例如:172.17.10.10

网络地址:172.17.0.0

广播地址:172.17.255.255

  1. 求可用主机数

网络地址一样是代表在同一个网段)网络位代表的是一个网段,主机位代表的是一个可用的主机数。

  • 主机位:对用类默认子网掩码0的位数
  • A类24
  • B类16
  • C类8

可用主机数计算方法:2的主机位次方-2

如:172.17.10.10 (B类)

  • 简写:198.10.10.10为C类写为198.10.10.10/24(默认子网掩码为24个1)

第四课

私有地址

  • 不能在互联网上传输,只能够在内网上使用

  • 可以重复使用(不同的人都可以用所有的)

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BSB54j7T-1657113343464)(C:\Users\LIUXINYU\Documents\Tencent Files\1990434829\FileRecv\Screenshot_20220628_094052.jpg)]

特殊地址

  • 127.0.0.0-127.255.255.255 环回地址,仅仅是做测试使用,是来测试网卡的连通性(是否可以上网)
  • 0.0.0.0 默认地址,用于默认路由去使用
  • 255.255.255.255 广播地址

判断两个主机是否可以通信

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ctDCNJXO-1657113343465)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220628095727838.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tO9wjwo-1657113343466)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220628095742633.png)]

  • 网段(网络地址)一样才可以进行通信

  • 网段不一样需要使用路由器才能进行通信

  • 网段不一样:只不知道MAC地址,数据无法进行封装

可变长子网掩码 :VLSM

  1. 为啥使用可变长子网掩码

在设计网络时使用有类IP地址会造成地址的浪费

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fVgI4S7M-1657113343467)(C:\Users\LIUXINYU\Documents\Tencent Files\1990434829\FileRecv\Screenshot_20220628_102348.jpg)]

因为在左边这个框里在192.168.1.0这个网段里面可用主机数为254个,但是这里面只使用30个,会造成浪费。所以这时候使用可变长子网掩码。

  1. 咋样形成VLSM
  • 需要子网掩码像主机位借位

例如:192.168.1.1

11000000.10101000.00000001.00000001

  • 原来:

缩写:192.168.1.1/24(网络位24位,主机位8位)

原来默认的子网掩码为:

11111111.11111111.11111111.00000000

网络地址为:192.168.1.0

分为1网段

  • 向主机位借一位

缩写:192.168.1.1/25(网络位25位,主机位7位)

默认的子网掩码为:

11111111.11111111.11111111.10000000

网络地址为:192.168.1.0

分为2网段:因为借的那一位可以为0/1

  • 向主机位借二位

缩写:192.168.1.1/26(网络位26位,主机位6位)

默认的子网掩码为:

11111111.11111111.11111111.11000000

网络地址为:192.168.1.0

分为4网段:因为借的那一位可以为00/01/10/11

  • 以此类推
  1. 可用主机数为:2的主机位位数的次方-2

例如:192.168.1.7/25

192.168.1.00000111

分为几个网段:2

网络地址:192.168.1.0/25

广播地址:192.168.1.127/25

主机位位数:7

网络位位数:25

默认子网掩码:255.255.255.128

可用主机数:126

例如:192.168.1.130/25

192.168.1.10000010

分为几个网段:2

主机位位数:7

网络位位数:25

默认子网掩码:255.255.255.128

可用主机数:126

网络地址:192.168.1.128/25

广播地址:192.168.1.255/25

CIDR

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m1rBBCXo-1657113343468)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220628142854135.png)]

网关(路由器)

  • 用来转发来自不同网段之间的数据包

第五课

ICMP

  1. 含义

Internet控制消息协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在**网络设备间传递各种差错和控制信息,**并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

  1. 格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHr7iuwy-1657113343469)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220628145823915.png)]

Type:表示ICMP消息类型

Code:表示同一消息类型中不同信息

checksum:校验位

Type=0 Code=0 echo reply 响应信息

Type=8 Code=0 echo request 请求信息

Type=5 Code=0 重定向

  1. ICMP重定向[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YZDRpweV-1657113343470)(C:\Users\LIUXINYU\Documents\Tencent Files\1990434829\FileRecv\Screenshot_20220628_143222.jpg)]

lICMP Redirect重定向消息用于支持路由功能。如图所示,主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,因为此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjWSc1mz-1657113343471)(C:\Users\LIUXINYU\Documents\Tencent Files\1990434829\FileRecv\Screenshot_20220628_145022.jpg)]

ICMP应用-Tracert

  • 跟踪路径

lICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。**该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。**这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。

ICMP应用-Ping

ICMP的一个典型应用是Ping。Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。

Ping命令的输出信息中包括目的地址、ICMP报文长度、序号、TTL值以及往返时间。序号是包含在Echo回复消息(Type=0)中的可变参数字段,TTL和往返时间包含在消息的IP头中。

用到:

Type=0 Code=0 echo reply 响应信息

Type=8 Code=0 echo request 请求信息

第六课

地址解析协议:ARP(FF-FF-FF-FF)

  1. 作用:用来解析目的MAC地址

当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址来获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。

  1. 格式
image-20220628152758211

Operation Code:有两个选择,ARP的请求或ARP的响应

Source Hardware Address:源MAC地址

Source Protocol Address:源IP地址

Destination Hardware Address:目的MAC地址

Destination Protocol Address:目的IP地址

  1. 工作过程:广播(一对全部)发送,单播(一对一)回

在数据封装过程中,不知道目的MAC地址,先将目的MAC地址设为广播地址(广播发送),所有的主机接收到该ARP Request报文后,都会检查它的目的协议地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。同时Operation Code被设置为Reply。ARP Reply报文通过单播传送。l收到ARP Reply以后,会检查ARP报文中目的MAC地址是否与自己的MAC匹配。

  1. **ARP报文不能穿越路由器,**不能被转发到其他广播域。

因为路由器屏蔽广播包,所以ARP只能在二层(局域网)进行发送和接收

  1. ARP缓存:arp -a(用的很多)
  • 网络设备一般都有一个ARP缓存(ARP Cache),ARP缓存用来存放IP地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它(上面工作过程)。学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内,设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表项会被自动删除
  • 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备。
  1. 免费ARP与代理ARP
  • 免费ARP可以用来探测IP地址是否冲突。(用来检测IP地址是否有相同的)
  • 同一网段、不同物理网络上的计算机之间,可以通过ARP代理实现相互通信。
image-20220628161602777
    • 在上述例子的组网中,主机A需要与主机B通信时,目的IP地址与本机的IP地址在**同一个网段,**所以A将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。
    • 在路由器上启用代理ARP功能,就可以解决这个问题。启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP Request。主机A收到ARP Reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。
  1. ARP欺骗

正常情况下,广播发送后,如果它的目的协议地址字段与自身的IP地址不匹配,正常情况下,会直接丢弃;如果遇到黑客主机,即使不匹配也会响应,不断发送自己的MAC地址,让目的MAC地址为黑客主机的MAC地址。

第七课

传输层(端口号)

  1. 作用

传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据包协议UDP(User Datagram Protocol)。

TCP

  1. 特点
  • TCP是一种面向连接的传输层协议,可提供可靠的传输服务。
  • 面向连接的传输层协议
  • 在发送数据前需要先建立连接(三次握手)
  1. TCP端口号
  • 端口号的范围 0-65535
  • 知名端口号 0-1023

http:80 https:443 FTP:20/21(一个是数据端口,一个是控制端口) telent:23 ssh:22 smtp:25 pop3:110 mysql:3306 远程桌面:3389

  • 端口号是用来区分不同的服务的
  1. TCP头部
image-20220628165347413
  • TCP头部长度:20-60个字节(IP头部也是20-60)
  • Source Port:源端口
  • Destination Port:目的端口
  • Sequence Number:序列号
  • Acknowledge Number:确认号
  • SYN:同步位
  • ACK:确认位
  • FIN:结束位
  • Window:滑动窗口

4.TCP三次握手(进行连接)

image-20220628170056715
  • seq(Sequence Number)为序列号:一个随机数
  • SYN(同步位):进行同步(同时有时间类似);首次进行数据同步需要置位为1;SYN=1。
  • ACK(确认位):服务器A接收到要进行确认。
  • ack(Acknowledge Number)为确认号:表示我收到当前的数据包,请发送下一个数据包

过程1:seq=a(一个随机数);SYN=1(表示要进行同步)

过程2:seq=b(一个随机数);SYN=1(同步);ACK=1(进行确认);ack=a+1(收到了第a个数据包,请发送第a+1个数据包)

过程3:seq=a+1(发送第a+1个数据包);ack=b+1(确认收到了第b个,请发送第b+1个);ACK=1(确认);没有SYN(已经同步过了)

  • 三次握手没有发送数据,只是建立连接的过程
  1. TCP通过三次握手建立可靠连接,有确认机制,三次握手不成功无法传送数据,三次握手完成,如果数据丢失,也要进行数据的重新传送。

6.TCP流量控制

image-20220629091945857
  • 主机A向服务器发送4个长度为1024字节的数据段,其中主机的窗口大小为4096个字节。服务器A收到第3个数据段后,缓存区满,第4个数据段被丢弃。服务器以ACK 3073响应,窗口大小调整为3072,表明服务器的缓冲区只能处理3072个字节的数据段。于是主机A改变其发送速率,发送窗口大小为3072的数据段。

7.TCP四次挥手(结束连接)

image-20220629092207684
  • 当客户端或者服务器结束连接,需要使用FIN(Finish)
  • lTCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。

过程一前面的一个过程:seq=b-1;ack=a(发送b-1表示我已经收到了第b-1个数据包,请发送第a个数据包)

  • 主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。

  • 服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。

  • 服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。

  • 主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。

  • 以上四次交互便完成了两个方向连接的关闭。

DDOS攻击

在三次握手中,正常情况下需要三步(全连接)

在不正常情况下,只发送前两步,不发送第三步,服务器就需要等待主机发送第三步,如果大量的主机只发送前两步 服务器就瘫痪了。(半连接)

ACK攻击

只发送ACK,不发送SYN。服务器以为它要发送数据,就会进行接收。如果有很多主机发送,会导致服务器缓存充斥着大量的数据垃圾。服务器就不进行工作了。

UDP

  1. 特点
  • lUDP是一种面向无连接的传输层协议,传输可靠性没有保证。(不需要三次握手)

  • 对传输速度和延迟要求较高。

  1. 格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KwstjpO1-1657113343473)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629095609935.png)]

  • UDP头部仅占8字节,传输数据时没有确认机制
  • Source port:16位源端口号:源主机的应用程序使用的端口号。
  • Destination port:16位目的端口号:目的主机的应用程序使用的端口号。
  • Length:16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度为8字节,所以该字段的最小值为8。
  • Checksum:16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。
  1. UDP没有确认机制(数据传输一定是双向的),所以确认机制被其他层做了。UDP确认机制是由应用层做的。
  2. 使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。
  3. UDP不提供重传机制,占用资源小,处理效率高。
  4. 一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议。

IP主要实现路由功能,如果再进行分片,会消耗消耗性能

TCP分片功能即MSS,UDP不具有分片功能

第八课

数据转发过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rxq1t65n-1657113343474)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629102744880.png)]

主机A访问服务器A数据包的转发

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T6zluywR-1657113343475)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629103312350.png)]

目的端口号:服务器A为网站(http)端口号为80

源端口号:主机A的端口号随机数(8000)(不能为知名端口号)

源IP地址:主机A的IP地址:10.1.1.1/24

目的IP地址:服务器A的IP地址:172.16.10.1/24

源MAC地址:主机A的MAC地址

目的MAC地址:先为RTA左端端口号的MAC地址,RTA接收,设备收到帧之后,首先会进行FCS校验。如果FCS校验未能通过,则帧被立即丢弃。对于通过了FCS校验的帧,设备会检查帧中的目的MAC地址。如果帧中的目的MAC地址与自己的MAC地址不同,设备将丢弃帧,如果相同,则会继续处理。处理过程中,帧头帧尾会被剥去(也就是解封装)。

RTA收到此数据报文后,网络层会对该报文进行处理。RTA首先根据IP头部信息中的校验和字段,检查IP数据报文头部的完整性,然后根据目的IP地址查看路由表,确定是否能够将数据包转发到目的端。RTA还必须对TTL的值进行处理。另外,报文大小不能超过MTU值。如果报文大小超过MTU值,则报文将被分片。

网络层处理完成后,报文将被送到数据链路层重新进行封装,成为一个新的数据帧,该帧的头部会封装新的源MAC地址和目的MAC地址。如果当前网络设备不知道下一跳的MAC地址,将会使用ARP来获得。

路由选路

  • 路由器负责为数据包选择一条最优路径,并进行转发

路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。

路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。l路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。

路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。

交换机的应用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WgSnfzU1-1657113343476)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629105610897.png)]

  • 交换机是工作在数据链路层的设备。交换机可以将一个共享式以太网分割为多个冲突域。链路层流量被隔离在不同的冲突域中进行转发,如此便极大地提升了以太网的性能。
  • 通常主机和交换机之间以及交换机与交换机之间都使用全双工技术进行通信,这时冲突现象会被彻底消除。
  • 如本例所示,在由Hub搭建的网络中,所有的主机都处于同一个冲突域,主机A发送数据给主机B时,其他主机都将收到此数据,但同时这些主机都不能发送数据。用交换机替代Hub后,因为交换机分割了冲突域,所以在主机A发送数据给主机B时,主机C和主机D之间也可以同时互相发送数据。

IP路由表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NK94Dqhd-1657113343477)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629112140213.png)]

  • Destination/Mask:目的地

  • Protocal :形成这条路由的方式:Direct(直连);Static(静态)

    • 凡是直连(Direct)下一跳都是自己
  • Pre:优先级,:Direct(0);Static(60);越小越优,最优加表(最优路径放在路由表);当有多个路由信息时,选择最高优先级的路由作为最佳路由。

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EajHRBUB-1657113343477)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629152452930.png)]
    • 写静态路由改变优先级:ip route-static 2.2.2.0 24 20.1.1.2 preference 100
  • Cost:开销 针对相同优先级 越小越优

  • NextHop:下一跳 去往目的网段直连设备的ip地址,一定是对端ip地址

  • Interface:接口,出接口一定是本端的出接口

命令行

  • “< >”表示用户视图,“[ ]”表示除用户视图以外的其它视图。

  • 用户视图,只能做查询,不能进行配置,需要配置,必须要进入系统视图

  • system-view:进入系统视图,可以配置数据

  • sysname:重新命名

  • interface +端口号:可以进入端口号 然后再使用ip address 进行端口ip配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HE69IBhL-1657113343478)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629150657176.png)]

  • quit:返回上一层
  • display this:在当前下去查看
  • display ip interface brief:查看接口ip的简介信息

物理的down表示没有物理连接,协议的down表示没有配IP地址

  • display ip routing-table:查看路由表
  • display current-configuration:查看当前配置
  • undo+配置的内容:就把配置的内容删除了
  • 测试连通性:同网段相连的要测试连通性
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQyiwNfA-1657113343479)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629141013184.png)]
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxKMQIYC-1657113343480)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629141116904.png)]
  • 输入部分字母,点击Tab可以自动补齐
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e0v6BAxr-1657113343481)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629153052634.png)]

为了使PC3和PC4可以连通需要在R7的路由表中有2.2.2.0(网段)所以语句为:ip route-static 2.2.2.0 24 10.1.1.2(目的网段到本端路由相连路由器的对端)(静态路由)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSHh6MFL-1657113343481)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629154809744.png)]

同时R6的路由表也要需要有1.1.1.0(网段)所以语句为:ip route-static 1.1.1.0 24 10.1.1.1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xH0Fdihs-1657113343482)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220629155018520.png)]

路由器选择路由的规则

  1. 根据最长掩码匹配原则选择路由
  • 路由器选择路径遵循最长掩码匹配
    • 例如:有两条路径:10.1.1.0/24和10.1.1.0/30会选择10.1.1.0/30
  1. 掩码相同,根据优先级选择路由(选择小的)
  2. 优先级相同,根据开销值选择路由(选择小的)
  3. 上述都相同,负载分担

静态路由

  1. 静态路由是指由管理员手动配置和维护的路由,比较麻烦,一般用在小型的网络,或者是连接互联网的出口。
  2. 默认路由:0.0.0.0(特殊IP地址):在路由表里面匹配不到其他明路路由(任何都能匹配到)
  3. 浮动静态路由:

有两个路由:两个路由优先级不一样,如果小的优先级那个断了,将大的那个路由继续使用。当小的那个路由又重新连接了,那么又使用小的那个路由。

第九课

OSPF

  1. 用途:用在大型网络上面

  2. 概念:

基于链路状态内部网关路由协议;

  • 链路状态:OSPF能够感知网络的状态,根据网络的状态会自动选择最优的路径(高德地图)
  • 内部网关:仅仅在内部使用(比如只是移动和移动联系)
  • 外部网关:在外部使用(比如移动和电信联系)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6zUrjxl9-1657113343483)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630103109907.png)]

如图:OSPF只在SiteA内使用;只在SiteB内使用;只在SiteC内使用

  1. 工作原理
  • 当路由器运行了OSPF协议后,建立邻居关系(相互打招呼),发送Hello包。建立邻居表
  • 通过LSA(链路状态公告)泛洪更新LSDB(链路状态数据库),建立LSDB表
  • 建立路由表

OSPF要求每台运行OSPF的路由器都了解整个网络的链路状态信息(发送Hello包),这样才能计算出到达目的地的最优路径。OSPF的收敛过程由链路状态公告LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database)(建立邻居表),并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。

  1. lOSPF报文封装在IP报文(网络层)中,协议号(Protocal )为89。

OSPF报文

  • Hello 报文 建立邻居关系(lHello报文用来发现和维持OSPF邻居关系。)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCmVzWeB-1657113343484)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630112103509.png)]

  • DD(Database Description)报文 路由器表述自己的信息 LSA(链路状态公告)(路由器使用DD报文来进行主从路由器的选举和数据库摘要信息的交互。)

  • LSR(Link State Request)报文 请求信息(请求的是简略信息)(LSR用于向对方请求所需的LSA。)

  • LSU(Link State Update)报文 请求信息(更新的是详细信息)(LSU用于向对方发送其所需要的LSA。)

  • LSACK(Link State Acknowledgment)报文 确认报文(LSACK用于向对方发送收到LSA的确认。)

OSPF的配置

  1. 首先进入OSPF(协议视图)

  2. OSPF区域:

    • 有两种区域:骨干区域,非骨干区域

    • 骨干区域:当区域为0为骨干区域

    • 非骨干区域:当区域不为0为非骨干区域

    • 如果建立邻居关系,两个区域号必须相同

  3. 做宣告 网段+反掩码 network 10.1.1.0 0.0.0.255

    • 反掩码:255.255.255.255-掩码
  4. 当运行了OSPF并宣告,立即发送hello包,hello包发送的目的地址为224.0.0.5(组播地址)

    • 好处:1.只有运行了OSPF协议才能接收;2.优化网络,减少网络的带宽资源
  5. OSPF包含有:OSPF头部+hello包

    1. Network mask :子网掩码
    2. Hello interval :10s
    3. Dead interval(死亡时间) : 40s
    4. Router Priority(接口优先级):默认情况下优先级为1(范围为0-255)

    OSPF配置

    1. 在系统视图下面:输入OSPF(配置ospf的时候,需要有进程号以及router-id,也可以省略,在正常请款下,不建议省略。如果省略进程号,自动会配置进程号为1;如果省略router-id,系统根据我们的ip地址最大的作为router-id)

      • 进程号仅仅本地有意义
      • router-id在两个邻居之间不能相同,即使省略了router-id,系统会自动分配router-id,根据物理ip地址或者环回地址(loopback),选择物理ip地址与环回地址两个中最大的一个作为router-id。
        • 环回地址:无论是否连接它物理和控制也通(做测试用)
    2. 查看OSPF的配置:display current-configuration configuration ospf

    3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TVzpznQI-1657113343485)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630145621623.png)]

    ospf 10 router-id 2.2.2.2

    1. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-67brZweU-1657113343486)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630145725334.png)]

    area 0

    1. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-os2Im4KQ-1657113343488)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630145805522.png)]

    network 10.1.1.0 0.0.0.255(宣告网络)

    1. 两个邻居都要进行配置,还要进行端口的抓包。
    2. display ospf peer brief,查看邻居和状态

    建立邻居的规则

    1. 区域要一致
    2. 掩码一定要相同
    3. 相邻路由器的router-id不能相同
    • 构建邻居需要进行宣告网络,宣告的是直连路由(接口物理相连),会出现不同的状态
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DuUnj1HC-1657113343489)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630150400568.png)]
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SnnNjm8G-1657113343490)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630150628659.png)]

OSPF邻居状态机

  1. down状态:ospf的进程还未启动(抓不到包)
  2. init状态:初始化状态,就是发送Hello包
  3. 2-way状态:当出现有2-way这个状态,就进入了邻居状态(没有发送LSA),在对方发送的hello包里面看到自己的router-id,就代表进入了2-way这个状态
  • 发送hello数据包经历了:init与2-way(down可包括可不包括)
  1. exstart状态:描述自己的数据库(LSDB),主要进行:主从选举(根据router-id),从而进行隐式确认。exstart从DD报文开始
    • 隐式确认:除了第一个DD报文发送不同的DD sequence(序列号),接下来后面序列号都会去使用主的序列号。原因是:OSPF封装在网络层能够,TCP三次握手有确认机制,网络层没有确认机制,所以确认是隐式确认。
    • 显示确认:当报文发送LSACK时进行显示确认
    • 在exstart状态里面,发送的是DD报文,这个DD报文仅仅是主从选举,是一个空报文。
  • DD报文中有三个字段:I,M,MS

    • I字段:是否是第一个DD报文;当

    I=1 代表是第一个DD报文

    I=0 代表不是第一个DD报文

    • M字段:代表后面有没有DD报文

    M=1 代表后面还有DD报文

    M=0 代表后面没有DD报文

    • MS字段:主从位,进行主从选举

    MS=1 代表自己是主

    MS=0 代表自己是从

      • 主从选举的规则:根据router-id的大小,越大为主
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6CiXt7h3-1657113343491)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630153321505.png)]

  1. exchange状态:交互DD报文里面的LSA(主携带),当DD报文里携带了LSA信息,表示进入了exchange状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EidPE5rw-1657113343492)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220630155850127.png)]

  1. loading状态:主要进行:LSR LSU LSACK

  2. full状态:LSDB更新完毕

    • 当进入full状态之后,就进入了邻接状态
  • 2-way是进入邻居状态,full进入邻接状态。

DR&BDR

  • DR:称为指定路由器(相当于班长)

DR会和其他的路由器建立邻接关系,其他路由器更新信息的话,首先将信息给DR,由DR将信息给其他路由器

避免争抢资源,比较有序

  • BDR:称之为备份指定路由器

BDR会和其他的路由器建立邻接关系

  • DR other:之间建立邻居关系

DR&BDR选举规则

  1. 根据接口优先级进行选举,优先级越大越优,优先级的范围为0-255,默认是1
  2. 如果优先级相等,比较router-id,越大越优
  3. DR与BDR采用的是非抢占原则,即使有更高优先级的路由器加入到网络,也不会取代现有的DR,除非重启OSPF,才会重新选举

如果一个新的网段

  1. 当DR other 更新路由的时候,它会向224.0.0.6发送LSU(这时候OSPF会使用两个组播地址: 224.0.0.5 224.0.0.6)
    • 224.0.0.6 只有DR和BDR可以监听
    • 225.0.0.5 所有的路由都可以监听
  1. 当DR收到更新之后,通过224.0.0.5将更新后的信息发送给其他的DR other
  2. DR other 收到DR发送的更新,通过224.0.0.6进行确认

OSPF建立关系和状态的变化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QkNyz2XC-1657113343493)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701103630209.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BfgihYlc-1657113343493)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701103740483.png)]

  • OSPF的邻居发现过程是基于Hello报文来实现的,Hello报文中的重要字段解释如下:

  • Network Mask:发送Hello报文的接口的网络掩码。

  • Hello Interval:发送Hello报文的时间间隔,单位为秒。

  • Options:标识发送此报文的OSPF路由器所支持的可选功能。具体的可选功能已超出这里的讨论范围。

  • Router Priority:发送Hello报文的接口的Router Priority,用于选举DR和BDR。

  • Router Dead Interval:失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效;单位为秒,通常为四倍Hello Interval。

  • Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。

  • Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为0.0.0.0,表示未选举BDR。

  • Neighbor:邻居的Router ID列表,表示本路由器已经从这些邻居收到了合法的Hello报文。

  • 如果路由器发现所接收的合法Hello报文的邻居列表中有自己的Router ID,则认为已经和邻居建立了双向连接,表示邻居关系已经建立。

  • 验证一个接收到的Hello报文是否合法包括:

  • 如果接收端口的网络类型是广播型,点到多点或者NBMA,所接收的Hello报文中Network Mask字段必须和接收端口的网络掩码一致,如果接收端口的网络类型为点到点类型或者是虚连接,则不检查Network Mask字段;

  • 所接收的Hello报文中Hello Interval字段必须和接收端口的配置一致;

  • 所接收的Hello报文中Router Dead Interval字段必须和接收端口的配置一致;

  • 所接收的Hello报文中Options字段中的E-bit(表示是否接收外部路由信息)必须和相关区域的配置一致。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G6sSxQqZ-1657113343494)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701103240972.png)]

  • 如图所示,路由器在建立完成邻居关系之后,便开始进行数据库同步,具体过程如下:

  • 邻居状态变为ExStart以后,RTA向RTB发送第一个DD报文,在这个报文中,DD序列号被设置为X(假设),RTA宣告自己为主路由器。

  • RTB也向RTA发送第一个DD报文,在这个报文中,DD序列号被设置为Y(假设)。RTB也宣告自己为主路由器。由于RTB的Router ID比RTA的大,所以RTB应当为真正的主路由器。

  • RTA发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息,序列号设置为RTB在步骤2里使用的序列号,因此RTB将邻居状态改变为Exchange。

  • 邻居状态变为Exchange以后,RTB发送一个新的DD报文,该报文中包含LSDB的描述信息,DD序列号设为Y+1(上次使用的序列号加1)。

  • 即使RTA不需要新的DD报文描述自己的LSDB,但是作为从路由器,RTA需要对主路由器RTB发送的每一个DD报文进行确认。所以,RTA向RTB发送一个内容为空的DD报文,序列号为Y+1。

  • 发送完最后一个DD报文之后,RTA将邻居状态改变为Loading;RTB收到最后一个DD报文之后,改变状态为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S8FwtQPf-1657113343495)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701103449773.png)]

  • 邻居状态变为Loading之后,RTA开始向RTB发送LSR报文,请求那些在Exchange状态下通过DD报文发现的,而且在本地LSDB中没有的链路状态信息。

  • RTB收到LSR报文之后,向RTA发送LSU报文,在LSU报文中,包含了那些被请求的链路状态的详细信息。RTA收到LSU报文之后,将邻居状态从Loading改变成Full。

  • RTA向RTB发送LSACK报文,用于对已接收LSA的确认。

  • 此时,RTA和RTB之间的邻居状态变成Full,表示达到完全邻接状态。

OSPF 支持的类型:

  • OSPF支持的类型有广播类型和点到点类型
  • 广播类型(MA):Hello interval 10s dead interval 40s

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O5hj0BES-1657113343496)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701104032861.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkTiyBGF-1657113343497)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701104413539.png)]

  • 点到点(虚线):Hello interval 10s dead interval 40s

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WriyE4u4-1657113343498)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701104259774.png)]

  • 非广播多路访问(NBMA): Hello interval 30s dead interval 120s
  • 点到多点: Hello interval 30s dead interval 120s

OSPF开销(cost)

  • 直连的优先级(pre)为0,cost为0
  • OSPF的开销指的是接口开销
  • 接口开销的计算
    • 接口开销=带宽参考值/开销
    • 带宽参考值默认情况下为100M
    • 接口E指的是以太网,带宽是100M(接口开销=100/1000=0.1,因为没有小数概念,也算为1)
    • 接口G的带宽是1000M(接口开销=1000/100=10)
    • cost值是路由传递方向入站接口(进入设备的接口值,进入目标也算)cost值的累加
    • cost是从路由器开始
    • 可以通过bandwidth-reference命令来设置带宽参考值。
    • ospf cost命令来手动为一个接口调整开销,开销值范围是1~65535,缺省值为1。

第十课

交换机

  • 交换机工作在数据链路层(第二层,必须要在同一个网段),它有效地隔离了以太网中的冲突域,极大地提升了以太网的性能。
  • 交换机对帧的转发操作行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jyfd825V-1657113343499)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701143343661.png)]

1.泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。

2.转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。

3.丢弃:交换机把从某一端口进来的帧直接丢弃。

  • 交换机中有一个MAC地址表,里面存放了MAC地址与交换机端口的映射关系。MAC地址表也称为CAM(Content Addressable Memory)表。

MAC地址表的形成原理:

当收到ARP包(目的MAC地址为FF-FF-FF-FF)时,做泛洪处理,同时记录下该数据包源MAC地址与交换机接收接口的对应关系,将其放在MAC地址表上。

查看mac地址表:display mac-address

mac地址表是一个动态的:一定时间就没有了(默认是300s)

mac地址是本地有意义的,收到数据包就会记录下MAc地址和接口对应关系。

MAC地址表形成过程:

1.如果进入交换机的是一个单播帧,则交换机会去MAC地址表中查找这个帧的目的MAC地址。

  • 如果查不到这个MAC地址,则交换机执行泛洪操作。

  • 如果查到了这个MAC地址,则比较这个MAC地址在MAC地址表中对应的端口是不是这个帧进入交换机的那个端口。如果不是,则交换机执行转发操作。如果是,则交换机执行丢弃操作。

2.如果进入交换机的是一个广播帧(ARP包),则交换机不会去查MAC地址表,而是直接执行泛洪操作。

VlAN:虚拟局域网

  • 前提:

随着网络中计算机的数量越来越多,传统的以太网络开始面临冲突严重、广播泛滥以及安全性无法保障等各种问题。

  • 定义

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同VLAN间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性。

解释:

没有分配VLAN,整个大的网段充斥着大量的广播包,容易产生广播风暴整个大的局域网就不能正常上网。为了解决广播风暴带来的危害,使用VLAN技术。

VLAN技术:就是将大的局域网分为多个小的局域网,减少网络中的广播包,避免广播风暴。即VLAN能够隔离广播域。

例如:下面分为两个VLAN

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQz4VUdr-1657113343499)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701153627957.png)]

VLAN格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RM5iHSJ2-1657113343500)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701153726054.png)]

  • VLAN就是在以太网的帧结构的smac和type之间添加Tag字段
  • VLAN是封装在二层
  • 通过Tag区分不同VLAN。
  • Tag组成:‘TPID’ ‘PRI’ ‘CFI’ 'VLAN ID’四部分组成
    • TPID:固定值:0x8100 VLAN的封装标准 2字节
    • PRI(优先级):取值范围为0~7,值越大优先级越高 3比特
    • CFI(标识):标识二层网络的类型 1比特
    • VLAN ID:范围: 0-4095(2的12次方) 0和4095不可用 可用的范围:1-4094 12比特(位)

PVID:port VLAN ID

  • 就是VLAN
  • PVID即Port VLAN ID,代表端口的缺省VLAN。交换机从对端设备收到的帧有可能是Untagged的数据帧,但所有以太网帧在交换机中都是以Tagged的形式来被处理和转发的,因此交换机必须给端口收到的Untagged数据帧添加上Tag。为了实现此目的,必须为交换机配置端口的缺省VLAN。当该端口收到Untagged数据帧时,交换机将给它加上该缺省VLAN的VLAN Tag。

PC机发送的数据并带有ALAN

VLAN接口的类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QnREHGBq-1657113343501)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701155400170.png)]

  • Access链路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XcOcIrio-1657113343502)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701155119556.png)]

    • 用在PC机和交换机之间

    • Access端口在收到数据后会添加VLAN Tag,VLAN ID和端口的PVID相同。

    • Access端口在转发数据前会移除VLAN Tag。

    • Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。

    • Access端口收发数据帧的规则如下:

      如果该端口收到对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。如果该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。当VLAN ID与该端口的PVID相同时,接收该报文。当VLAN ID与该端口的PVID不同时,丢弃该报文。

      Access端口发送数据帧时,总是先剥离帧的Tag(PVID),然后再发送。Access端口发往对端设备的以太网帧永远是不带标签的帧。

      在本示例中,交换机的G0/0/1,G0/0/2,G0/0/3端口分别连接三台主机,都配置为Access端口。主机A把数据帧(未加标签)发送到交换机的G0/0/1端口,再由交换机发往其他目的地。收到数据帧之后,交换机根据端口的PVID给数据帧打上VLAN标签10,然后决定从G0/0/3端口转发数据帧。G0/0/3端口的PVID也是10,与VLAN标签中的VLAN ID相同,交换机移除标签,把数据帧发送到主机C。连接主机B的端口的PVID是2,与VLAN10不属于同一个VLAN,因此此端口不会接收到VLAN10的数据帧。

    解释:

    • 接收数据:当pc机发送的数据到达交换机的接口上,交换机会强制打上一个PVID
    • 发送数据:当交换机发送的数据所携带的PVID与交换机发送接口的PVID相同的时候,将数据所携带的PVID剥离掉再转发,不相同就丢弃。
    • 默认的PVID为1
  • Trunk链路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k7FM93Fh-1657113343503)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220701155142220.png)]

    • 交换机与交换机之间

    • 当Trunk端口收到帧时,如果该帧不包含Tag,将添加上端口的PVID;如果该帧包含Tag,则不改变。

    • 当Trunk端口发送帧时,该帧的VLAN ID在Trunk的允许发送列表中:若与端口的PVID相同时,则剥离Tag发送;若与端口的PVID不同时,则直接发送。

    • Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。

      Trunk端口收发数据帧的规则如下:

      1.当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。**当接收到对端设备发送的带Tag的数据帧时,**检查VLAN ID是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文。否则丢弃该报文。

      2.端口发送数据帧时,当VLAN ID与端口的PVID相同,且是该端口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与端口的PVID不同,且是该端口允许通过的VLAN ID时,保持原有Tag,发送该报文。

      在本示例中,SWA和SWB连接主机的端口为Access端口,PVID如图所示。SWA和SWB互连的端口为Trunk端口,PVID都为1,此Trunk链路允许所有VLAN的流量通过。当SWA转发VLAN1的数据帧时会剥离VLAN标签,然后发送到Trunk链路上。而在转发VLAN20的数据帧时,不剥离VLAN标签直接转发到Trunk链路上。

VLAN配置语句

  • Access链路
  1. 告诉交换机有VLAN号:vlan batch 10 20
  2. 进入交换机与主机连接的接口:int e0/0/1
  3. 选择链路类型:port link-type access
  4. 配置VLAN号:port default vlan 20
  5. 查看:display vlan
  • Trunk链路
  1. 进入交换机与交换机连接的接口:int e0/0/3
  2. 选择链路类型:port link-type trunk
  3. 配置运行通过的LAND ID:port trunk allow-pass vlan 10 20
  4. 完成

STP

  1. 二层带来的问题
  • 广播风暴

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPjXQoMV-1657113343503)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704092640265.png)]

环路会引起广播风暴。

网络中的主机会收到重复数据帧。

根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。

本例中,主机A向外发送了一个单播帧,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB接收到此帧后,将其转发到SWA和SWC,SWA和SWC也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SWB,这种循环会一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。

  • MAC地址表震荡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dWjgBL2b-1657113343504)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704092836028.png)]

环路会引起MAC地址表震荡。

交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。

主机A向外发送一个单播帧,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB收到此数据帧之后,在MAC地址表中生成一个MAC地址表项,00-01-02-03-04-AA,对应端口为G0/0/3,并将其从G0/0/1和G0/0/2端口转发。此例仅以SWB从G0/0/1端口转发此帧为例进行说明。

SWA接收到此帧后,由于MAC地址表中没有对应此帧目的MAC地址的表项,所以SWA会将此帧从G0/0/2转发出去。

SWC接收到此帧后,由于MAC地址表中也没有对应此帧目的MAC地址的表项,所以SWC会将此帧从G0/0/2端口发送回SWB,也会发给主机B。

SWB从G0/0/2接口接收到此数据帧之后,会在MAC地址表中删除原有的相关表项,生成一个新的表项,00-01-02-03-04-AA,对应端口为G0/0/2。此过程会不断重复,从而导致MAC地址表震荡。

  • STP作用

STP通过阻塞端口来消除环路,并能够实现链路备份的目的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exGnwFdq-1657113343505)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704093309996.png)]

  • STP的破坏机制

它是通过选举阻塞端口AP来破解环路,AP主要作用是参与流量的转发

阻塞端口,即不转发数据也不接收数据

  • STP的选举规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yq356n5N-1657113343506)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704093509157.png)]

STP通过构造一棵树来消除交换网络中的环路。

每个STP网络中,都会存在一个根桥,其他交换机为非根桥。根桥或者根交换机位于整个逻辑树的根部,是STP网络的逻辑中心,非根桥是根桥的下游设备。当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥,交互的这种信息被称为BPDU。BPDU中包含交换机在参加生成树计算时的各种参数信息,后面会有详细介绍。

STP中定义了三种端口角色:指定端口(DP),根端口(RP)和预备端口(AP)。

指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。

根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。

如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。

  1. 根桥选举

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QbYkqLxD-1657113343507)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704093803061.png)]

每一台交换机启动STP后,都认为自己是根桥。

刚启动交换机时,相互的发送BPDU(桥协议数据单元)数据包,BPDU携带优先级和MAc地址,首先比较优先级(越小越优),然后比较MAC地址(越小越优)

STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID) 。桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先

交换机启动后就自动开始进行生成树收敛计算。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。

  1. 根端口(RP)的选举

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FzUmXfhF-1657113343507)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704094250366.png)]

每个非根桥都要选举一个根端口。根端口是距离根桥最近的端口。在NON-ROOT上有且仅有一个RP(发送数据,接收数据,不会阻塞),确定RPC(去往根桥最近的端口),越小越优。

  1. 指定端口(DP)的选举

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLdHk3uK-1657113343508)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704141100147.png)]

根桥上的所有端口,称之为指定端口 DP,在每一条链路上都有一个DP.

每个网段都应该有一个指定端口,根桥的所有端口都是指定端口(除非根桥在物理上存在环路)。

指定端口的选举也是首先比较累计路径开销(到有几条路程),累计路径开销最小的端口就是指定端口。如果累计路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。

  1. 未被选举为根端口或指定端口的端口为预备端口(AP),将会被阻塞。

端口状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iu8dA9jL-1657113343509)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704104758880.png)]

  1. disable :关闭状态 没有启用STP协议
  2. blocking:阻塞状态 能够接收BPDU
  3. listening: 监听状态 即能够发送BPDU,能够接收BPDU,不能发送用户数据,从listening到learning需要15s
  • 前三个过程是一气呵成的,只要启动STP协议,就立马到listening
  1. learning:学习状态 构建MAC地址表,不能发送用户数据,只有此状态可以发送用户数据,从learning到forwarding需要15s,在learning状态选举端口角色以及根桥
  2. forwarding:转发状态 发送数据

Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。

Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。

Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。

Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。

Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。

BPDU

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSaoIYI9-1657113343509)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704110232371.png)]

PID:协议ID 0

PVI: STP :0 MSTP:3 RSTP:2

BPDU Type:有两种:

  1. 配置BPDU:00 ,默认
  2. TCN BPDU:80

Flags :当是TCN BPDU是才有用

Root ID :携带了根桥的优先级和MAC地址

RPC :根路径开销(去往根桥的路径所花费的开销)

Bridge ID :桥ID,自己的优先级加上MAC地址

Port ID :由指定端口的优先级和端口号组成

Message Age :配置BPDU在网络中传播的生存期。从根桥发出来的message age都是0,每经过一台交换机都需要加1,l如果Message Age大于Max Age,非根桥会丢弃该配置BPDU。

Max Age:配置BPDU在设备中能够保存的最大生存期。默认值为20

Hello Time :配置BPDU发送的周期。(2s)

Forward Delay:端口状态迁移的延时。(15s)

根桥故障

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a9ISy8rY-1657113343510)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704113342962.png)]

非根桥会在BPDU老化之后开始根桥的重新选举。

在稳定的STP拓扑里,非根桥会定期收到来自根桥的BPDU报文。如果根桥发生了故障,停止发送BPDU报文,下游交换机就无法收到来自根桥的BPDU报文。如果下游交换机一直收不到BPDU报文,Max Age定时器就会超时(Max Age的默认值为20秒),从而导致已经收到的BPDU报文失效,此时,非根交换机会互相发送配置BPDU报文,重新选举新的根桥。根桥故障会导致50秒左右的恢复时间,恢复时间约等于Max Age加上两倍的Forward Delay收敛时间。

直连链路故障

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-onQiNT4O-1657113343511)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704141959704.png)]

lWB检测到直连链路物理故障后,会将预备端口转换为根端口。

SWB新的根端口会在30 秒后恢复到转发状态。

此例中,SWA和SWB使用了两条链路互连,其中一条是主用链路,另外一条是备份链路。生成树正常收敛之后,如果SWB检测到根端口的链路发生物理故障,则其Alternate端口会迁移到Listening、Learning、Forwarding状态,经过两倍的Forward Delay后恢复到转发状态。

非直连链路故障

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CmyUFgcw-1657113343511)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704142200829.png)]

非直连链路故障后,SWC的预备端口恢复到转发状态大约需要50秒

本例中,SWB与SWA之间的链路发生了某种故障(非物理层故障),SWB因此一直收不到来自SWA的BPDU报文。等待Max Age定时器超时后,SWB会认为根桥SWA不再有效,并认为自己是根桥,于是开始发送自己的BPDU报文给SWC,通知SWC自己作为新的根桥。在此期间,由于SWC的Alternate端口再也不能收到包含原根桥ID的BPDU报文。其Max Age定时器超时后,SWC会切换Alternate端口为指定端口并且转发来自其根端口的BPDU报文给SWB。所以,Max Age定时器超时后,SWB、SWC几乎同时会收到对方发来的BPDU。经过STP重新计算后,SWB放弃宣称自己是根桥并重新确定端口角色。非直连链路故障后,由于需要等待Max Age加上两倍的Forward Delay时间,端口需要大约50秒才能恢复到转发状态。

拓扑改变导致MAC地址表错误

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xloq1yfA-1657113343512)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704142326655.png)]

MAC地址表项的默认老化时间是300秒。在这段时间内,SWB无法将数据从G0/0/2端口转发给主机B。

在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下,MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。

本例中,SWB中的MAC地址表项定义了通过端口GigabitEthernet 0/0/3可以到达主机A,通过端口GigabitEthernet 0/0/1可以到达主机B。由于SWC的根端口产生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛之后,从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒,主机A发往主机B的帧到达SWB后,SWB会继续通过端口GigabitEthernet 0/0/1转发该数据帧。

拓扑改变导致MAC地址表变化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8vLIHSZ-1657113343513)(C:\Users\LIUXINYU\AppData\Roaming\Typora\typora-user-images\image-20220704142638745.png)]

  1. 当链路出现故障,swc会告知swb 通过发送TCN消息,发送给swb
  2. 当swb收到了swc发送的TCN后,swb向swc发送TCA消息,同时SWB向根桥发送TCN消息
  3. 当根桥收到了TCN消息后,回复TC消息,目的:告知SWB将mac地址表老化时间更新为15s
  4. swb收到TC报文后,继续向swc转发TC报文,同时将更新自己的MAC地址表老化的时间

拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。

拓扑变更以及MAC地址表项更新的具体过程如下:

SWC感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。

SWB收到SWC发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SWC,告知SWC停止发送TCN BPDU报文。

SWB向根桥转发TCN BPDU报文。

SWA把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300秒修改为Forward Delay的时间(默认为15秒)。

最多等待15秒之后,SWB中的错误MAC地址表项会被自动清除。此后,SWB就能重新开始MAC表项的学习及转发操作。
BPDU报文。其Max Age定时器超时后,SWC会切换Alternate端口为指定端口并且转发来自其根端口的BPDU报文给SWB。所以,Max Age定时器超时后,SWB、SWC几乎同时会收到对方发来的BPDU。经过STP重新计算后,SWB放弃宣称自己是根桥并重新确定端口角色。非直连链路故障后,由于需要等待Max Age加上两倍的Forward Delay时间,端口需要大约50秒才能恢复到转发状态。

拓扑改变导致MAC地址表错误

[外链图片转存中…(img-xloq1yfA-1657113343512)]

MAC地址表项的默认老化时间是300秒。在这段时间内,SWB无法将数据从G0/0/2端口转发给主机B。

在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下,MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。

本例中,SWB中的MAC地址表项定义了通过端口GigabitEthernet 0/0/3可以到达主机A,通过端口GigabitEthernet 0/0/1可以到达主机B。由于SWC的根端口产生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛之后,从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒,主机A发往主机B的帧到达SWB后,SWB会继续通过端口GigabitEthernet 0/0/1转发该数据帧。

拓扑改变导致MAC地址表变化

[外链图片转存中…(img-X8vLIHSZ-1657113343513)]

  1. 当链路出现故障,swc会告知swb 通过发送TCN消息,发送给swb
  2. 当swb收到了swc发送的TCN后,swb向swc发送TCA消息,同时SWB向根桥发送TCN消息
  3. 当根桥收到了TCN消息后,回复TC消息,目的:告知SWB将mac地址表老化时间更新为15s
  4. swb收到TC报文后,继续向swc转发TC报文,同时将更新自己的MAC地址表老化的时间

拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。

拓扑变更以及MAC地址表项更新的具体过程如下:

SWC感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。

SWB收到SWC发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SWC,告知SWC停止发送TCN BPDU报文。

SWB向根桥转发TCN BPDU报文。

SWA把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300秒修改为Forward Delay的时间(默认为15秒)。

最多等待15秒之后,SWB中的错误MAC地址表项会被自动清除。此后,SWB就能重新开始MAC表项的学习及转发操作。

你可能感兴趣的:(网络,tcp/ip,网络协议)