物理层

OSI七层模型

应用层---表示层---会话层---传输层---网络层---数据链路层---物理层

7 6 5 4 3 2 1

TCP/IP四层模型 两个主导协议----> 工业标准

应用层---传输层---网络层---网络接口层

OSI模型只是说了该做什么,并没有说怎么做,所以没有使用,TCP/IP不仅说了做什么还说了怎么做

TCP/IP--->定义多种协议 把OSI中负责的层级简单化

虽然用的是TCP/IP模型但是我们称呼依然是OSI模型。2层---数据链路层 4层---传输层

网路接口层---物理层+数据链路层


物理层

定义了传输的方式,数据通过二进制比特流传递出去

定义传输介质的标准


以太网标准

定义了传输介质的标准带宽 Base=基带信号<二进制信号> 距离(10BASE5)

  1. 铜轴电缆(500米)优点:扩展性相对来说不错
    缺点:有可能造成数据的冲撞,从而丢失数据<为什么>
  2. 双绞线(100米)五类:质量一般
    六类:桐芯质量更好
    屏蔽<STP>/非屏蔽<UTP>
    双绞线有8芯,100M通信的信号传输只需要4芯 1 2 3 6,1000M的信号传输8芯全用
    交换机显示绿灯为1000M传输速率,橙灯为100M传输速率
    优点:传输速率更快,造价更低
    缺点:传输距离太小

  3. 光纤(单模多模 2000米)单模(黄色):更加细,光的折射次数更多,传输的距离更远
    多模(橙色):设备互联设备连接
    光纤与设备连接需要一个光纤模块,类似于网线接口
    好处:传输距离远
    缺点:成本问题,还要买光模块,融光纤---光纤和尾纤对接起来
  4. 串口电缆

扫描枪---串口线

机械臂---串口线

同轴电缆--->冲突

冲突域:在一定范围内数据在接受或发送产生冲突和碰撞的过程

总线型(共享型)

为了避免冲突:CSMA/CD带冲突检测的载波侦听多路访问技术,避免冲突域中数据产生碰撞的协议。

如何检测呢?

数据传输中检测电压的摆动值

CSMA/CD

  1. 先听后发
  2. 边听边发
  3. 冲突停发
  4. 随机延迟时间后重发

缺点:带宽利用率低,有一定延迟

解决方式:

链路中采用双工模式数据的发送,设备进行协商和交换,看是采用全双工还是半双工,基于链路来实现

半双工:同一时间只能有一个人发送或者接受数据,此时有CSMA/CD协议参与进来,小于等于1G网络都有可能出现半双工的情况。,

全双工:同一时间通信设备彼此之间可以同时实现发送和接受数据,不用CSMA/CD协议。

每条链路都是一个独立的冲突域

数通基础知识_ip地址

通信双方必须都是一样的模式


网络标准:

  1. 以太网络:同轴电缆:10M,采用全双工方式,以及其他介质的出现,网线和光纤能够发送100G 400G
  2. 令牌环网络:只有当前设备拥有“令牌”后,才能正常发送数据,达到100M速率。但是用户数据得不到保障。

可以按管理员规定的方向传递:顺时针、逆时针

以太网标准:

  1. 传输介质:网线光纤
  2. 数据通信的标准



以太网这个名字,起源于一个科学假设:声音是通过空气传播的,那么光呢?在外太空没有空气光也可以传播。于是,有人说光是通过一种叫以太的物质传播。后来,爱因斯坦证明以太根本就不存在。大家知道,声音是通过空气传播的,那么光是通过什么传播的呢?在牛顿运动定律中,物体的运动是相对的。比如,地铁车厢里面的人看见您在车厢里原地踏步走,而位于车厢外面的人却看见你以120公里每小时的速度前进。 但光的运动并不是这样,您无论以什么物体作为参照物,它的运动速度始终都是299 792 458 米 / 秒。这个 问题困惑了很多科学家,难道牛顿定律失灵了?一个来自瑞士专利局的职员,名叫爱因斯坦的人在1905年发表了 篇论文,文中提到,无论观察者以何种速度运动,相对于他们而言,光的速度是恒久不变的,相对论便由此诞生了。 这简单的理念有一些非凡的结论。可能最著名者莫过于质量和能量的等价,用爱因斯坦的方程来表达就是 E=mc^2(E是能量,m是质量,c是光速),以及没有任何东西能运动得比光还快的定律。由于能量和质量的等价, 物体由于它的运动所具的能量应该加到它的质量上面去。换言之,要加速它将变得更为困难。这个效应只有当物 体以接近于光速的速度运动时才有实际的意义。例如,以10%光速运动的物体的质量只比原先增加了0.5%,而以 90%光速运动的物体,其质量变得比正常质量的2倍还多。当一个物体接近光速时,它的质量上升得越来越快,它 需要越来越多的能量才能进一步加速上去。实际上它永远不可能达到光速,因为那时质量会变成无限大,而由质 量能量等价原理,这就需要无限大的能量才能做到。 由此我们可以看出,世界上根本就不存在以太这种物质,因为光速是永远恒定不变的,为其找个运动参照物 是个笑话。有鉴于此,以太网的命名也就是一个笑话。但以太网并不会消失,它正随着人们追求高速度而不断的 进行蜕变。以前,只要数据链路层遵从CSMA/CD协议通信,那么它就可以被称为以太网,但随着接入共享网络设备 的增加,冲突会使网络的传输效率越来越低。后来,交换机的出现使全双工以太网得到了更好的实现。未来,以 太网会披上光的外衣,飞的更快。


数据链路层

数据链路层

  1. 数据的差错检测
  2. 组帧、解帧 数据帧帧头帧尾
  3. 标识身份 MAC地址

用以太网络标准来定义数据链路层

数据链路层不仅仅只有以太网,还有HDLC、PPP

按照地域来分类

局域网:小型地域5KM之内(以太网标准)

城域网:以城市为单位

广域网:范围较大从全局角度考虑(HDLC、PPP)、


局域网以太网标准来定义

  1. 定义传输介质的标准
  2. 定义了数据链路层数据封装<传输>的标准

以太网标准:EthernetⅡ、802.3


数据封装:原始数据上打上几层新的能够实现通信以及其他作用的封装

PDU:protocol data unity 协议数据单元,可以理解为具体的应用数据

数据链路层采用分组交换。

报头:不同层级打上不同的封装

数据段(semment):传输层报头+上层PDU

数据包(packet):网络层报头+上层PDU(包含传输层报头+上层PDU)

数据帧(frame):数据链路层报头+上层PDU+数据链路层帧尾

发送方:数据封装的过程

接收方:数据解封的过程

到底谁是发送方,接收方并不是一成不变的,根据不同数据变化的。


数通基础知识_链路_02

EthernetⅡ:通信数据

802.3:一些协议中STP IS-IS

Ethernet2:

数通基础知识_链路_03

TYPE:类型(0x代表16进制

  1. 标识上层的协议,不同的组合代表上层不同的协议:0x0800--->ipv4 0x86dd--->ipv6 0x0806--->ARP
  2. 区分究竟是Ethernet2帧还是802.3帧

<=1500(0x05DD):802.3 STP/IS-IS

>=1536(0x0600):Ethernet 2

数通基础知识_ip地址_04

16进制转10进制

0x05DC:16*0*12+16*1*13+16*16*5=12+208+1280=1500


FCS:帧校验序列(CRC)进行差错检测:发出之前将算出的结果填充到FCS中,接受时根据CRC同样计算出一个结果,与数据中的FCS进行比对,如果相同,则可以继续处理,如果不同,则丢弃。

数据发送之前进行CRC算法:全世界都知道的公开算法

差错检测任何地方都进行:发出时计算结果填充到FCS 接受时同样计算然后比对

谁发谁填充,谁收谁检查

802.3:

数通基础知识_ip地址_05

LLC:逻辑链路控制(将链路从逻辑意义上控制)

DSAP:目标服务访问点 上层的协议

SSAP:源目标访问点 上层的协议

control:控制链路逻辑状态信息,从逻辑意义上进行通断控制

SNAP:网络服务协议,私有开发的协议才会出现,前提条件:802.3

org_code:机构代码,只有私有的协议厂商才会定义

type:私有协议的类型


二进制0 1 0 1 一位2进制:bit<比特>

Byte<字节> 1B<字节>=8b<比特>

0000 0000 8个bit等于1个字节 32bit = 4字节

E2:在E2这个数据链路层协议中,上层数据最小46最大1500 封装大小为18个字节

802.3:数据链路层封装额外多了8个字节所以需要上层数据承载的大小进行8字节的缩减。




MAC:物理地址

分为2部分,OUI地址

前24位:OUI:组织唯一标识符

后24位:

数通基础知识_数据_06

出厂自带,直接烧录进网卡

  1. 工作在这条链路上,区分该链路上的不同设备节点 6个字节=48位(比特)
  2. 数据的传输方式--->在这一条链路的概念

这样一个链路范围:广播域:在一个范围内能够传递数据,广播信息

单播:QQ聊天 私聊 单对单 点对点 1对1

第8位一定是0

组播:QQ群聊,规定一个范围内才可以收到

第8位一定是1,其他可选

广播:点对所有

第8位一定是1,其他也是1

MAC地址抓包的时候--->16进制

概念讲的是第8bit--->2进制

1个16进制数=4位2进制数

数通基础知识_数据_07

16进制如何变为2进制

0000 0001:1000 0000:1100 0010:0000 0000:0000 0000:0000 0000

这个是组播:第8位为1,其他任意

FF:FF:FF:FF:FF:FF--->广播帧


数据封装过解封装在数据链路层的行为:

组帧:

  1. 收到上层数据后,此时填充源目第MAC以及TYPE<标识上层>和FCS<校验>解帧:
  1. 先查看目的MAC是否自己可以接受 【单播=是自己 广播=接受 组播=加组】
  2. 执行FCS校验 校验通过则进行第3步
  3. 看Type交由上层的协议处理

网络层

网络层:关心--->转发 ipv4协议 Ipv6协议

寻址转发 标识位置 86DD

MAC--->局部定位

网络全局定位

对于上层数据如果过大,网络层可以分组,实现分组转发

环路:发送了一个数据我又收到了这个数据

前4个:IP的标识参数

中4个:IP的分片参数

后4个:IP的辅助参数

0-31=32bit 4B=32bit 基本长度(固定部分)=4B*5=20B 可变部分:0-40B IP报头最大值=20+40=60B

IPV4报头:最小的是20B,最大的是60B 20+40=60B

  1. 版本:代表该报文时V4封装还是V6封装 0100:V4封装 0110: V6封装 4b
  2. 数通基础知识_数据_08

  3. 首部长度:具体IP报头多长 0101=5(首部长度代表)单位是4B 5*4=20B 4b
  4. 1010=10 ---> 10*4=40B 1111=15 --->15*4=60B

    IP报头的长度=数据换算的十进制*4B(固定单位)

  5. DSF区分服务(TOS)--->服务类型:IE--->QOS TOS字段进行不同优先级的设置和QOS联动 8b
  6. 总长度:代表的上层数据长度+我的IP报头本身 总长度减去IP报头长度=上层的数据长度 16b
  7. ID<标识>:分片的标识,如果上层数据进行了分片,此时每一个分片中都会携带该ID号,相同的分组ID号都是一样的。16b
  8. DF=0才有意义,允许分片的时候ID才会有意义

  9. flags<标志位>:3b
  10. 数通基础知识_链路_09

    第一位:resv=0 ,永远为0

    第2位:DontF--->不分片位:某个数据不允许分片则置为1,允许分片,则为0 3b

    第3位:MoreF--->更多分片--->代表接下来是否还有分片的报文 为1=还有 为0=没有

  11. 片偏移:分片数据在整个数据中的相对位置,重组 片偏移单位固定是8B 最大:1500 分组 13b
  12. 生存时间:TTL 代表数据能够在网络中传递多远 最大值为255一旦为0则数据就会丢弃 8b 天然防环
  13. 协议:protocol:协议 代表的也是上层的协议 传输层--->TCP(6)UDP(178b
  14. 首部校验和:IP报头他的完整性--->二进制补码求和 E2--->计算--->FCS TTL--->不参与计算 16b







  15. 网络层ip地址分类

    TCP/IP 每一层关联性

    网络接口层通过Type来标识上层网络层(0x0800 ipv4 0x08dd ipv6 0x0806 arp)协议,网络层通过protocol来标识上层传输层协议(6 tcp 17 udp)

    IP地址 剩下的8个字节 IPV4地址 4个字节 32bit

    IP地址:网络位+主机位

    显示中:点分十进制

    192.168.1.36

    128 64 32 16 8 4 2 1

    192-128=64

    64-64=0

    168-128=40

    40-32=8

    8-8=0

    将2进制转换出来的数进行凑--->取值的那一位置为1,不取值的置为0 从大到小依次计算

    1 1 0 0 0 0 0 0 ---> 192

    1 0 1 0 1 0 0 0 ---> 168

    0 0 0 0 0 0 0 1 ---> 1

    0 0 1 0 0 1 0 0 ---> 36

    最小--->全部为0 则最小 0.0.0.0

    最大--->全部置为1 则最大 255.255.255.255.255

    IP地址:0.0.0.0 255.255.255.255

    IP地址 分类 ---> IANA 5大类

    ABC地址:单播地址--->配置在接口上的 MAC地址单播地址:写进网卡里的

    DE不可以 配置到接口上 MAC地址,组播、广播无法写入到网卡中

    A:规定第一个8位组,第一位一定是0并且不可以被修改

    自然掩码/8 255.0.0.0 ---> 8个网络位 24个主机位

    0000 0000 ……<剩下的3个八位组>

    0111 0111---->最大255-128=127

    最小:0.0.0.0

    最大:127.255.255.255

    0.0.0.0 - 0.255.255.255 保留不被使用

    0.0.0.0.熟知

    数通基础知识_数据_10

    1. 地址概念中,代表此时该接口没有IP地址--->未知地址

    2. 路由概念中,代表的是全网段的所有网段信息

    127.0.0.0 - 127.255.255.255 保留不被使用

    IP协议规定:127网段地址进行内部测试<环回测试:TCP/IP协议栈的好坏>以及内部进程之间的通信<CRT:127.0.0.1:2000>

    1. 数据发送时源地址不能为127.0.0.0地址
    2. 数据接收时,目的地址如果是127.0.0.0网段,此时无法发送出接口,只能在内部的TCP/IP进行测试
    3. 127任何一个地址[除了127.255.255.255和127.0.0.0]其他的本地都可以达

    B 规定第一个8位组前两位一定是10,并且不可以被修改

    自然掩码:/16 255.255.0.0 ---> 16个网络位 16个主机位

    1000 0000 ---> 128.0.0.0

    1011 1111 ---> 191.255.255.255

    128.0.0.0 --- 191.255.255.255

    C规定第一个8位组前两位一定是110,并且不可以被修改

    自然掩码:/24 255.255.255.0 ---> 24个网络位 8个主机位

    1100 0000 ---> 192.0.0.0

    1101 1111 ---> 223.255.255.255

    D规定第一个8位组前四位一定是1110,并且不可以被修改组播地址:逻辑地址

    1110 0000 ---> 224.0.0.0

    1110 1111 ---> 249.255.255.255

    224.0.0.0 239.255.255.255

    E规定第一个8位组前两位一定是1111,并且不可以被修改军事,科研保留使用

    1111 0000 ---> 240.0.0.0

    1111 1111 ---> 255.255.255.255

    240.0.0.0 255.255.255.255

    除了255.255.255.255可以见到

    数通基础知识_ip地址_11


    地址的使用范围A B C 三大类可用的范围不一样 A B C

    0-127

    128-191

    192-223

    基于使用范围:42亿多个,保证全球唯一性,地址远远不够的

    公有地址:

    下述除此之外的其他ip地址(A B C )

    私有地址:内部

    A:10.0.0.0 > 10.255.255.255

    B:172.16.0.0 > 172.31.255.255

    C:192.168.0.0 --> 192.168.255.255

    所有机构,个人都可以免费使用该地址,不需要付费,申请,可以重复利用

    S:源,D:目的

    私网内部使用,无法从运营商进行转发,想要借助公网转发,需要NAT技术实现公网到私网的转发。


    1. <--> 192.168.1.1 地址可达不可达要看2个地址是否在同一个网段中,如何辨是否在同一网段呢

子网掩码

  1. 标识我们的网络位主机位来区分地址是否属于同一网段
  2. 子网掩码为1对应的就是网络位,为0对应的就是主机位

    同一网段:网络位是相同的

  3. 通过ip地址和子网掩码计算出该网络的网络地址
  4. 通过标识出网络位和主机位的区别,借此可以标识出广播地址

192.168.1.1 255.255.255.0

IANA规定的掩码 ---> 自然掩码

1. 先化成2进制 24个网络位,8个主机位---> 子网掩码的简写/24

1100 0000. 1010 1000. 0000 0001. 0000 0001 ---> 192.168.1.1

1111 1111. 1111 1111. 1111 1111. 0000 0000 ---> 255.255.255.0

  1. 网络地址主机位全部取值为0。标识这个网络的网段信息,无法配置到接口上,一般出现在路由表(路由提到)中【最小地址,不可以配置】

广播地址:主机位全部取值为1,此时该地址为广播地址,无法被配置到接口上,一般出现在路由表中,代表可以与这个网段中每个人通信【最大地址,不可配置】

网络地址:ip地址和子网掩码(网络位)进行“与”运算

1100 0000. 1010 1000. 0000 0001. 0000 0001 ---> 192.168.1.1

1111 1111. 1111 1111. 1111 1111. 0000 0000 ---> 255.255.255.0

1100 0000. 1010 1000. 0000 0001. 0000 0000 ---> 192.168.1.0 ---> 网络地址

1100 0000. 1010 1000. 0000 0001. 1111 1111 ---> 广播地址

该网络中地址的可用范围(配置到接口上的):192.168.1.1 ---> 192.168.1.254

因此可用主机数为:2的主机位次方-2=2^8-2=254(掐头去尾不能用)

0001 1011

1100 0000

0100 00000

192.168.1.27/26

网络地址:192.168.1.0

广播地址:192.168.1.63

可用主机地址:192.168.1.1 192.168.1.63

192.168.1.64-192.168.1.127

192.168.1.128-192.168.1.192

192.168.1.192-192.168.256.


VLSM可变长的子网掩码 公网环境

VLSM作用:

  1. 解决IP地址

C类 2^8-2=254个地址,每一个三层接口:路由器的每个接口,设备上的接口的ip地址不能是同网段的

192.168.1.1/24 192.168.1.2/24这2 个Ip地址不能在路由器的2个接口上

设备互联,需要2个Ip地址就够了,减去网络地址和广播地址=2^8-2-2

子网掩码:标识网络位和主机位。C类地址默认掩码是/24,可以改变掩码来改变网络位和主机位。

193.1.1.1

1100 0001. 0000 0001. 0000 0001. 0000 0001

1111 1111. 1111 1111. 1111 1111. 0000 0000 /24

IANA规定前24位不可以变化

网段变多,每个网段都可以独立拿出来,配置到接口上,不存在转发错误的问题

每个网段可用的主机数量慢慢变少IP地址可以实现一个最合理的分配

网络位向主机借位的过程就是可变长的子网掩码。

193.1.1.1

1100 0001. 0000 0001. 0000 0001. 0 000 0001

1111 1111. 1111 1111. 1111 1111. 1 000 0000 /25

  1. 与子网掩码所对应网络位此时有几种变化? ---> 网络地址的变化|逻辑与--->网络地址是否相同如何利用一个网段,可以同时为多个网络提供服务
    借1位,网络位25位,主机位7
    借一位后,变成了2个子网,基于193.1.1.0/24的2个子网
    公式=求借位之后变成了几个子网
    子网数=2^借位次方=2^1=2【个】子网
    主机数=2^主机位次方【借完之后的主机位】-2=2^7-2=126
    广播地址:主机位全为1,借出去的位不能算了,嫁出去的女,泼出去的水
    193.1.1.0 /25
    1100 0001. 0000 0001. 0000 0001. 0 000 0000 193.1.1.0
    1111 1111. 1111 1111. 1111 1111. 1 000 0000 255.255.255.128
    1100 0001. 0000 0001. 0000 0001. 0 000 0000 ---> 193.1.1.0 网络地址|最小地址
    1100 0001. 0000 0001. 0000 0001. 0 111 1111 ---> 193.1.1.127 广播地址|最大地址
    193.1.1.0/25网段的可用地址范围:193.1.1.1 192.1.1.126 1-126 ---> 126个
    193.1.1.128 /25
    1100 0001. 0000 0001. 0000 0001. 1 000 0000
    1111 1111. 1111 1111. 1111 1111. 1 000 0000 255.255.255.128
    1100 0001. 0000 0001. 0000 0001. 1 000 0000 193.1.1.128 ---> 网络地址(最小地址)
    1100 0001. 0000 0001. 0000 0001. 1 111 1111 193.1.1.255 ---> 广播地址(最大地址)
    193.1.1.128/25网段可用地址范围:193.1.1.129 193.1.1.254


    194.2.4.0/24 ---> 194.2.4.0/28
    (1) 变成了几个子网 2^4=16
    (2) 每个子网有几个可用的地址 2^4-2=14个
    下一个子网的网络地址-1等于上一个子网的广播地址

地址

原来的掩码

现在的掩码

借位后掩码的十进制

子网数

可用主机数

地址范围

193.1.1.0

24

25

128

2^1=2

2^7-2=126

0-127 128-255

193.1.1.0

24

26

192

2^2=4

2^6-2=62

0-63

64-127

128-191

192-255


193.1.1.0

24

30

252

2^6=64

2^2-2=2

0-3

4-7

8-11

12-15

16-19..

子网掩码换算10进制

256-2^主机位次方

0-255有256个数 /30 --> 主机位2个(主机数量):2^2=4 十进制:256-4=252

/29 --> 主机位3个(主机数量):2^3=8 十进制:256-8=248

快速算出网段数:

193.1.1.0/30 最多4个【网络+广播】 可用是2个 0+4=下一个网段的网络地址

193.1.1.0/30 全部地址:0-3 可用地址:1-2

193.1.1.4/30 全部地址:4-7 可用地址:5-6

193.1.1.8/30 全部地址:8-11 可用地址:9-10

  1. 设备互联,需要2个IP地址即可,网段位193.1.1.0/24如何进行规划最合理

网段一般称为网络地址,主机位一般称为主机地址

求--->什么情况下,可用的主机数量为2个

先套公式:2^n-2>=2,最佳值 保留2个主机位--->网络位为30,比原来30-24=6,借6位

主机位是1位可以吗 网络位:31位 主机位:2^1-2=0 没有可用地址

主机位是2位可以吗 网络位:31位 主机位:2^2-2=2 2个可用地址

CIDR:无类域间汇总<超网>打破你的地址分类/8/16/24

利用更少的网络信息,代表大多数的网络,以此减少网络条目的数量

255.255.255.192 /26

1111 1111. 1111 1111. 1111 1111. 11 00 0000

1100 0001. 0000 0001. 0000.0001. 00 00 0000 ---> 193.1.1.0

1100 0001. 0000 0001. 0000.0001. 01 00 0000 ---> 193.1.1.64

1100 0001. 0000 0001. 0000.0001. 10 00 0000 ---> 193.1.1.128

1100 0001. 0000 0001. 0000.0001. 11 00 0000 ---> 193.1.1.192

1100 0001. 0000 0001. 0000.0001. 00 00 0000 ---> 193.1.1.0/24

  1. 寻找共同点,将其原封不动的复制下来
  2. 如果是不同的,置为0进行填充,此时可以求出网络地址
  3. 如何求子网掩码
  4. 寻找一共有多少位相同,用相同的位的数量来作为子网掩码

此时193.1.1.0/24(193.1.1.1 193.1.1.254)就可以代表如下的4个子网

193.1.1.0/26 193.1.1.64/26 193.1.1.128/26 193.1.1.192/26


CIDR---> 一条能够代表如下5个网络,最精确

1.1.1.0/24

1.1.2.0/24

1.1.3.0/24

1.1.4.0/24

1.1.5.0/24

0000 0001. 0000 0001. 0000 0001. 0000 0000

0000 0001. 0000 0001. 0000 0010. 0000 0000

0000 0001. 0000 0001. 0000 0011. 0000 0000

0000 0001. 0000 0001. 0000 0100. 0000 0000

0000 0001. 0000 0001. 0000 0101. 0000 0000

0000 0001. 0000 0001. 0000 0000. 0000 0000 ---> 1.1.0.0/21

网络规划---> 保证地址在连续的子网范围,方便后期汇总

  1. 网络地址:找相同,不同的0填充
  2. 子网掩码:找相同


0000 0001. 0000 0001. 0000 0100. 0000 0000 ---> 1.1.4.0

0000 0001. 0000 0001. 0000 0101. 0000 0000 ---> 1.1.5.0

0000 0001. 0000 0001. 0000 0100. 0000 0000 ---> 1.1.4.0/23


问题:如何确定一个地址可用与否

回答:确定主机位不全为0或者1就可用

1.1.5.0/23【主机位没全为0和1】

0000 0001. 0000 0001. 0000 0101. 0000 0000 ---> 1.1.5.0/23

数通基础知识_ip地址_12

数通基础知识_数据_13

3、如果此时我拥有一个IP地址 192.168.1.0/24 此时网络中有四个部门,其中项目部需要使用100台主机,信息部需要60台主机,研发部需要30台主机,财务部需要16台主机,请将该IP进行合理规划,保证每个部门网段信息各不一致,并且将每个部门的网络地址、广播地址、可用的地址数量整理提交。[注意是可用地址]

格式按照如下格式,如:

项目部网络地址:x.x.x.x/yy 广播地址:x.x.x.x/yy 可用数量:z个


子网划分先从大到小依次划分

项目部:2^n>=102因此n=7 此时网络位=1,借1位:/25

信息部:2^n>=62 因此n=6 此时网络位=2 ,借2位:/26

研发部:2^n>=32因此n=5 此时网络位=3 , 借3位:/27

财务部:2^n>=18 因此n=5 此时网络位=3 , 借位:/27


部门 网段 范围 网络地址 广播地址 可用主机数

项目部 /25 192.168.1.0 0-127 192.168.1.0 192.168.1.127 2^7-2=126

信息部 /26 192.168.1.128 128-191 192.168.1.128 192.168.1.191 2^6-2=62

研发部 /27 192.168.1.192 192-223 192.168.1.192 192.168.1.223 2^5-2=30

财务部 /27 192.168.1.224 224-255 192.168.1.255 192.168.1.255 2^5-2=30










传输层

数通基础知识_数据_14

E2:14B SMAC:6B DMAC:6B TPYE:2B

IPV4:20B

FCS:4B


传输层的作用:承上启下,是端到端的通信(程序到程序)无论什么协议都有的

网络层 ---> 主机到主机之间的通信 主机间的通信(调用到具体应用程序时)才会使用传输层。

  1. 提供了端到端的通信
  2. 使用传输层的服务为上层的应用层提供服务
  3. 复用以及分用 ---> 借助传输层协议中的端口实现 ---> 逻辑端口电脑:RJ45:物理端口
    传输:端口:逻辑端口
  4. 传输层实现差错监测


传输层:仅有2大协议 QOS来调控TCP/UDP两者的流量

TCP:传输控制协议(Transmission Control Protocol)

UDP:用户数据包协议(User Datagram Protocol)

TCP:大哥,靠谱 点到点的协议 ---> 单播通信 面向连接的协议 【TCP卸载】---> 虚拟化,Vmware投入使用

优点:

  1. 传输数据之前建立连接的服务,传输之后关闭连接,有一个明确的目的地
  2. 多种可靠性机制
  3. 流量控制


缺点:

相对来说传输效率比较慢

TCP用于传递比比较大的文件【可靠的传输机制】

UDP:2哥 不靠谱,无连接的协议 组播流量

UDP对于时间要求比较敏感的流量使用比较好,一定程度的丢包也可以接受,传小包

UDP:无流控方式


数通基础知识_ip地址_15

使用端口号来确定本地唯一一个应用进程,单播:明确的目的IP,目的IP+目的端口 ---> 套接字 192.168.1.1:80

标准的TCP报头:20B

  1. S-PORT:16bit,本地发起应用的端口号
  2. D-PORT:16bit,去往目的应用的端口号
  3. SEQ:序列号:32bit
  4. ACK:确认号:32bit
  5. Header-length:头部长度 4bit 0110 ---> 6*4B=24B
  6. RESV.:保留 6bit 必须填充为0,为了后期发展,最后2位bit用来开发,扩展了2bit ---> 用于ECN+TOS组合使用【QOS使用】(拥塞避免)
  7. 6个指针:每个为1bit,一共6bit
    数通基础知识_链路_16
    URG:紧急指针,发送方:当发送发有紧急数据要进行插队的时候,优先转发,不需要等待排队时间
    ACK:确认指针,数据开始传送,此时ACK指针永远都为1(除第一次握手时,其他情况都为1
    PSH:推送位,接收方:接收缓存中,有数据PSH置位[1],立刻向应用推送,达到尽快交付
    RST:重启位,如果报文中RST置位,代表此时该TCP连接要立刻终止,并且重新建立
    SYN:同步位
    FIN:终止位
    URG|PSH
    URG|URG Pointer:代表接下来发送的数据中,究竟有哪些是比较紧急的,有多少位是比较紧急的,只有在URG指针置位才有用,否则无用【无用填充为全0】16bit
  8. window:流量调节,理解为接收缓存。16bit
  9. checksum:校验整体的数据【IP报头+TCP报头+上层数据】,基于IP报头生成伪首部(假)+TCP的 2进制补码求和【算法】,校验数据的完整性。16bit
  10. URG pointe:紧急数据的长度 。16bit

网络层protocol字段:TCP【6】、UDP【17】交由不同的上层协议去处理

端口号:16bit 一共2^16=65536个,0-65535

  1. 知名端口号:0-1023,定义好了FTP:文件传输 20【data】21【control】
    SSH:22
    Telnet:23
    http:80 https:443
    DNS:53 DHCP:67 68
  2. 登记端口号:1024-49151端口,一般用于高频出现的应用3389【windows远程操作】
    8080【视频监控
  3. 客户端端口:49152-65535端口,随机选择一个端口使用,在端口使用期间,此端口不会分配给其他应用,端口使用完毕,自动释放,可以重复使用。


TCP三次握手

TCP基本头部:20B

流:一连串数据,从上层“流到传输层,传输层到应用层”

数通基础知识_链路_17

Header:头部

  1. MTU(Maximum Transmission Unit):最大传输单元,从数据链路层封装的尾部开始到数据的尾部结束为1500,是数据链路层所能承受的最大的数据
  2. MSS(Max segment size):最大报文长度:1500B-40B=1460B【Option选项-协商的】,头部可变的,可能会增加新的头部,需要进行协商。1460,并没有具体的数据,协商接下来数据传递过程中TCP之上的数据能有多大
  3. SEQ:序列号,数据在开始分段之后已经分配好了序号,报文中的第一个数据的序号,取最小的。
  4. window:窗口 ---> 接受窗口,也是需要协商的,根据接收者进行协商,接受者会告诉发送方,我的接受窗口有多大,让发送方可以自动调整窗口的大小。

发送者的窗口根据接收者的窗口自动进行调节



ack代表Acknowledge Number

ACK:代表指针里的ACK

ack:Acknowledge Number,确认号[对于每个数据进行确认]

  1. 连接管理 TCP:连接全双工 ---> 既可以发送,也可以接收

建立连接:3次握手(协商)

  1. 协商关键性的选项【MSS+window】
  2. 建立一条逻辑意义上可以传递数据的链路

数通基础知识_ip地址_18

TCP的三次握手中,将对方的seq+1=ack 全双工

要求:只有在ACK指针为1【置位】的时候才有效,否则无效。

ack:1 代表在此之前数据我已收到

期望对方接下来数据的seq为该数值

seq:是自己本地发送数据的序号

ack:确认对方数据的确认号,建立连接之后大ACK为【1】---> ACK永远为1


TCP收到数据之后,如果乱序,可以接收不处理,不会确认,不会交由上层的应用层处理。


  1. 主机A主动发起seq【序列号>0】ack:0【第一次不置位】SYN:1【SYN置位】 代表请求与对方建立连接
  2. 服务A回复报文seq【序列号>0】ack:1【确认+期许】ACK:1【代表上方的确认号是有意义的】SYN:1【请求和对方建立连接】
  3. 主机 A回复报文seq【1】ack【1】ACK【1】SYN【0】

第二次握手的时候:窗口和MSS【1460】已经开始协商(接收端开始确定的)



可靠性机制:seq进行数据排序,ack进行数据的确认

第一种重传:依靠ack的确认号重传

第二种重传:复杂:Rtts【加权的平均重传时间,自适应算法,根据网络自动的变化】超时重传时间

流量管理:基于window调节,接收端接收处理流量时远远无法满足报文发送频率--->window调节


四次挥手

FIN:终止位置为1,终止连接

三次握手中---> 接收端1个报文实现了,同意+申请握手的操作

A ---> B

  1. A主动关闭连接
  2. B同意关闭连接
  3. B申请关闭连接
  4. A同意关闭连接

数通基础知识_ip地址_19大ACK指针置位时,前方小ack不等于0

ack:1. 对于接收数据的确认

2.期待对方下次发送的报文中seq为该数值

对于通信双方而言,当发送了FIN置位后的报文后,不会立刻将TCP连接关闭,等待收到对方确认消息后,才能将连接关闭。




UDP

数通基础知识_链路_20

UDP---> checksum:增加伪首部+UDP+数据 ---> 2进制补码求和(可选项

TCP:面向字节流:上方应用层数据进行排序

UDP:面向报文:无分段,直接将上层的数据拿下来,上层数据很大1500---> UDP不管,IP网络实现分片。

网络层:上层是UDP可能用到网络层的分片功能,UDP:比较小

无可靠机制,无重传机制,无连接机制 ---> 借助应用程序,设计时候考虑进去





数据发送和接收

数通基础知识_数据_21


数通基础知识_链路_22









ICMP协议

ICMP协议:互联网控制消息协议,差错检测,信息检测

发送

接收

ping基于icmp协议实现的,如何实现的,长什么样子,protocol=1

数通基础知识_链路_23


数通基础知识_链路_24

3.5层协议

  1. TPYE:类型 8bit
  2. code:编号 8bit
  3. checksum:校验和:16bit
  4. ID:标识ICMP是否为一组,如果是一组发送的则相同
  5. seq:标识这一组ICMP信息的先后顺序,随着报文的个数增加SEQ逐个递增

LE:Windows

BE:Linux

一次发送4个数据



IP封装时

Echo request ---> ping去的包

Echo reply ---> ping回复的包

数通基础知识_ip地址_25

网络不可达:到达某个设备,该设备不知道去哪里【无路由现象】

主机不可达:到达某个设备,该设备知道去哪里,数据发送到目的地,目的地没有回复【有路由,主机没回复】

协议不可达:目的地没有运行和启动某个协议

端口不可达:传输层端口,到达了目的地,请求你的某项基于传输层的服务,但是服务没开,端口没开放,回复端口不可达


tracert

tracert:路由追踪 type:8 code:0

Windows ---> E2 + IP + ICMP

路由器 ---> E2 + IP + UDP【33434 ---> +1】

IP报文初始化发送TTL=1之后收到TTL超时后记录报文的源IP并TTL+1…….

Tracert作用:

  1. 沿途路径的检测
  2. 多路径的探测(路由)

重定向

默认网关:网关 ---> 基于同网段的互访不需要网关,网关跨网段互访时需要网关。

ICMP ---> 重定向 ---> 解决次优问题,华为关闭掉的,ENSP模拟不出来,思科可以模拟

基于报文的目的地形成一条/32的主机路由 ---> 接下来一直使用该主机路由【接下来就不用问123.1.1.2】---> BGP再学到一次

数通基础知识_数据_26

如何产生:收到一个数据之后,发现去往数据的目的地址,还要从我当前的接收接口发送出去,于是触发重定向报文。

ARP:地址解析协议

在数据链路层E2标识上层协议 ---> Tpye:ARP --> 0x0806

MAC:48bit=6B

IP:32bit=4B

ARP ---> 收到ARP报文,存放一个映射关系:ARP映射 --- ARP缓存

IP

MAC

映射

192.168.1.2

00-00-00-00-00-02

20min

Dynamic动态 ---> ARP协议,只能利用ARP协议刷新,自动形成的,20min不一定会老化

20min后触发ARP老化探测:

  1. 单播的ARP的探测(源MAC和目的MAC),看5s内有没有回复
  2. 单播的ARP的探测
  3. 广播的ARP探测5s,如果还没有回复,就删除表项

单单广 20min到期之后进行探测

高版本路由器、交换机 ---> 时间阈值

1/2 ---> 10min [ARP单播] 3/4 ---> 15min [ARP单播] 20min[ARP广播]

数通基础知识_ip地址_27

数通基础知识_数据_28

Opcode:1 ---> request 2 ---> reply

Send-mac:发送者的MAC的地址

Send-ip:发送者的IP地址

Target-mac:被请求者的MAC地址【不知道:全0填充】

Target-ip:被请求者的IP地址【目的IP】



  1. 正向ARP ---> 已知对方的IP,求与之对应的MAC
  2. 反向ARP ---> RARP,已知MAC无IP,求IP地址(DHCP)
  3. 定向ARP:inARP FR【帧中继】 DLCL号 ---> IP地址
  4. 免费ARP:【无故ARP】主动发送什么时候会发送免费ARP呢?
  1. 设备接口配置了新的IP地址【人为,DHCP请求】
  2. 接口UP|Down
  3. VRRP场景 ---> VRRP

免费ARP有什么作用?

  1. 接口配置了IP地址,自动发送免费ARP ---> DAD:重复地址检测
  2. VRRP ---> 场景下,刷新SW ---> MAC地址表。
  3. 刷新网络中设备的ARP的映射表项
  4. 服务器集群下实现保活 ---> 设备会发送ARP报文宣告自己存在。(堆叠)
  1. ARP代理:路由式的ARP代理,VLAN内ARP代理,VLAN间ARP代理 ---> 原理:“ARP欺骗行为”---> 善意的欺骗

路由器是3层设备,天然隔离广播域的

ARP代理,接收ARP请求报文的接口上

原理:将接收到ARP请求的接口的MAC作为ARP报文中请求者目的MAC回复,欺骗源主机,以此实现源主机可以正常封装报文

出现情况:2个主机在同一个网段,但是不在同一个广播域

数通基础知识_ip地址_29

数通基础知识_数据_30

PC2访问PC3,他们在同一网段,发送ARP,ARP报文会问谁是10.1.2.1,请告诉10.1.1.1,因为10.1.2.1和10.1.1.2不在同一网段,因此AR2的g0/0/0接口会拒绝接收数据(PC2以为10.1.2.1和自己是同一网段,但是AR2就是不回复给PC2arp报文,所以需要开ARP代理),开启ARP代理后,AR2的g/0/0/0接口会把自己MAC地址给PC2,是个善意的谎言,AR2接收到PC2的数据后,会查看目的地是否有包含他的路由信息,因为AR2和PC3是直连路由,默认就有10.1.2.1的路由表信息,因此开启ARP代理就可以PC2ping通PC3



开启g0/0/0端口arp代理:

int g0/0/0

arp-proxy enable # 开启arp代理

设备管理

  1. 基于带内利用可以通信的网络,进行设备的管理 ---> telnet ssh
  2. 基于带外

利用设备自带的管理口 ---> 配置

电脑 ---> windows

路由|交换机 ---> 华为 ---> VRP:通用路由平台,基于linux内核开发的

设备到达机房 ---> 集成的console线连接【不需要驱动】


数通基础知识_ip地址_31 数通基础知识_ip地址_32


命令行

命令行:视图

  1. 用户视图:<Huawei> system-view 查看的配置和命令,做不了配置
  2. 系统视图:[Huawei] quit 日常配置命令
  3. 接口视图:int 接口名
  4. 协议视图:想在协议里配置,要先进协议视图,否则有些命令无法配置
  5. 退到用户视图:ctrl+z
  6. 查看当前视图配置过的命令:display this


命令等级

数通基础知识_链路_33

命令等级:每一个单独的级别,前方的用户等级进行关联,用于分级管理

0(访问级别):基础的命令

1(监控级):display

2(配置级):system-view

3(管理级):设备进行管控的级别

用户等级;

0 ---> 0

1 ---> 0+1

2 ---> 0+1+2

3 ---> 0+1+2+3


设置用户等级:

[AR1]user-interface con 0

[AR1-ui-console0]user privilege level 15 # 默认配置


设置console口超时时间:

[AR1]user-interface console 0

[AR1-ui-console0]idle-timeout 0 0 # 永不超时


设置屏幕的临时显示行数

[AR1]user-interface console 0

[AR1-ui-console0]screen-length 10


设置历史命令缓存区的大小

[AR1]user-interface console 0

[AR1-ui-console0]history-command max-size 20 #历史命令最多可以存200条,这里20是一次性显示20个命令,默认是10个命令


  1. 接口配置地址:
  1. 进入接口视图
  2. 接口协商命令:ip add IP地址 子网掩码
  1. 修改设备名字sysname 设备名
  2. 关闭日志消息提示(工作中建议不要关闭日志信息)undo info-center enable
  3. 查看IP地址,3层接口display ip interface brief
  4. 查看2层接口的信息display interface brief
  5. 查看当前设备时间display clock
    配置静态时间:(在用户视图下配置)
    clock timezone:设置所在时区
    <Huawei>clock timezone BJ add 08:00:00
    clock datetime:设置当前时间和日期
    <Huawei>clock datetime 10:20:29 2020-12-13
  6. 设置登录密码命令:user-interface con 0 # 进入console0接口
    set authentication password cipher 密码【改console密码】
    [AR1]user-interface con 0
    [AR1-ui-console0]set authentication password cipher admin
  7. 配置标题信息(需要设置密码后,才能看到header login)数通基础知识_数据_34
    [AR1]header login information @welcome to Huawei@
    [AR1]header shell information @not reboot device@ # 信息前后的标识符要一致
  8. 查看配置命令查看某个接口:
    [AR1]display current-configuration interface 接口名
    查看所有配置命令
    [AR1]display current-configuration configuration
  9. 查看历史命令[AR1]display history-command
  10. 删除某条命令

undo 命令

接口

环回接口:loopback口,存在于设备上的虚拟接口,1. 测试 2. 稳定不Down-[BGP]

环回接口和物理接口的作用是一样的,代表一个网段

[AR1]interface LoopBack 1

[AR1-LoopBack1]ip add 1.1.1.1 32

数通基础知识_ip地址_35

G:千兆口

E:百兆口

S:串行口

L:环回口


G0/0/0

0:插槽

0:板卡【一个槽,多个卡,进行区分】

0:编号



文件系统基础

VRP ---> 通用路由平台 ---> 文件系统

Windows ---> 文件系统

在用户视图查看:

数通基础知识_ip地址_36

.CC:系统

.PAT:补丁

vrpcfg.zip:配置文件

more:查看文件的详细内容

mkdir:创建文件夹

rmdir:删除文件夹,目录

copy:复制

move:移动,剪切

delete:删除文件,delete 文件名

undelete:恢复删除的文件,undelete 文件名

reset recycle-bin:彻底删除回收站中的文件

rename:重命名,rename 原文件名 新文件名


存储设备

display cu 【SDRAM断电丢失】

save ---> 【flash】

display saved-conf 【flash】

NARAM:非易失性内存 ---> 容灾之后的Bios

Sdcard:外界存储设备

USB:外界存储设备

数通基础知识_ip地址_37

数通基础知识_ip地址_38

数通基础知识_链路_39

数通基础知识_链路_40


路由及路由表基础

主机,跨网段寻找网关,配置在网段的接口,路由器的接口上---> 路由表,跨网段的路由转发,称之为3层转发。

路由表有2种路由形式

网段路由:/8,/16,/24,/22

主机路由:/32,代表主机精确地址

数通基础知识_ip地址_41


数通基础知识_ip地址_42

数通基础知识_ip地址_43

  1. 目的信息/掩码:当前路由的具体范围【涵盖主机的范围】
  2. Protocol:协议,标识前方该路由信息是通过什么方式形成的,Direct【直连方式】
  3. Preference(优先级):前方通过该协议形成的路由信息,优先级为多少,Direct;0【最优的】
  4. Cost:开销【花费】,不同的协议,形成的Cost取值方式不同数通基础知识_ip地址_44
    只有比较相同的协议(都是OSPF)才有意义,越小越优,direct:0,static:0
  5. Flags:标志位 D【Download to Fib】 R【Relay;迭代】
  6. Next-hop:下一跳IP地址,根据不同的路由信息,有不同的下一跳标识,逐跳转发 的行为【除了直连路由之外,其他路由下一跳IP地址不是本身的IP地址】下一跳+出接口:标识数据转发要经过的设备
  7. interface:本地的出接口,如果去往下一跳IP地址,此时通过哪个接口进行转发就填充为谁。

数通基础知识_ip地址_45

PRE:

数通基础知识_数据_46


数通基础知识_数据_47



路由器的原则

设备的内部除了可以被人为修改的外部优先级之外,还有一个无法被修改的内部优先级

  1. 路由器的加表原则:最优加表如果收到相同的前缀,但是是不同的掩码的路由信息,此时都会加表
    如果收到相同的前缀,并且是相同的掩码,此时才会涉及最优加表的比较
    <1> 基于相同的前缀+相同的掩码
    <2> 先比较形成该路由协议的外部优先级,越小越优【如果人为修改的方式,导致不同协议的外部优先级一致。在进行第3步】
    <3> 再比较形成该路由协议的内部优先级,越小越优。【无法被修改
    <4> 如果形成该路由的协议相同,此时会触发比较到Cost值,越小越优【不同的协议Cost不具备比较意义,因为取值方式不一样
    <5> 如果优先级一样,协议一样Cost值都一致,此时多条路由同时加入到路由表中,构成等价路由。
    到此终止,路由器加表完成。
    数通基础知识_链路_48
    数通基础知识_ip地址_49
    数通基础知识_链路_50
  2. 路由器的查表原则

最长掩码匹配,IP和路由器上包含当前目的地址路由进行运算,找出最长的掩码进行转发。

<1> 收到数据之后,会查询目的IP进行转发与自己本地进行与运算


<MAC>基于2层转发的时候,每一跳都会进行改变。

  1. 路由器基于每个链路转发时,数据的源目MAC都会被修改。
  2. 路由器转发时,如果有多条不同的掩码的路由都命中,此时按照最长掩码匹配。


数通基础知识_数据_51



为路由表添加路由条目的3种方式:

  1. 直连路由:只关心自己本地,direct=0
  1. 首先保证物理状态为Up【连接网线】
  2. 协议状态Up【配置一个合法的IP地址】

<1> /网段地址 <2> /32接口的主机路由 <3> /广播地址

局限性:只知道当前直连的路由信息,但是对于非直连的路由信息,无法感知。

  1. 静态路由
  2. 动态路由


MAC 定位局部:每一条的3层链路

网络定位全局:全局转发再不考虑NAT此时地址不会被修改




路由表的生成方式

  1. 直连路由:只关心自己本地,direct优先级为0
  2. 静态路由:管理员手工配置,static优先级为60,无法感知网络的状态,发生变化时无法自动修改。加表保证下一跳是可达的。

特殊的路由:默认路由/缺省路由 0.0.0.0[网络前缀] 0.0.0.0[目的掩码],在路由表中优先级最低,因为掩码最短。



目的地址+掩码 下一跳地址 出接口 路由查表=逐跳过程,每一个沿途经过的设备,都必须有目的网段的路由信息

广播地址 ---> 下一跳地址【IP】

广播网络如果只指定出接口,则此时路由认为目的地址在这个接口下,属于直连路由信息。

数通基础知识_ip地址_52

数通基础知识_链路_53

AR1发送ARP请求给AR2,问谁是10.1.45.5,请告诉10.1.12.1,此时AR2的g0/0/0接口不认识10.1.45.5,会丢弃,此时开启ARP代理,AR2的g0/0/0接口把自己的MAC地址给AR1,AR2在接收到数据后,会看目的IP:10.1.45.5是否有对应的路由信息,因为设置了静态路由,有下一跳,因此有到达目的地对应的路由信息,可以进行转发,如果此时AR2没有配置静态路由,找不到到达目的地的路由信息,他不能进行第2次欺骗,干脆不做APR的响应,会丢弃,所有就不能ping通10.1.45.5.


ip route-static 目的的网络前缀 该前缀的掩码

目的网络前缀:路由中有2种形式,一个网段路由/24(10.1.45.0 /24),一个主机路由/32(10.1.45.5 /32),可以根据个人需求写不同的路由,这个段有很多主机,写网段路由,只有一个主机写主机路由。

数通基础知识_链路_54

Flags:R:迭代|递归:如果我去往一个目的地,我无法直接得知如何去,必须依靠其他的路由才能知道,此时标识为R,代表需要经过别的路由进行多次的路由查找。


以迭代路由的出接口,作为我本次路由的出接口 ---> 目的地转发

去往10.1.45.0这个网段,要经过10.1.12.2,10.1.12.2通过直连路由10.1.12.0到达,10.1.12.0通过g0/0/0这个出接口出去,将直连路由的出接口复制拿到自己静态路由的出接口中。

[Huawei]ip route-static 10.1.45.0 24 10.1.12.2


数通基础知识_ip地址_55

思考:[Huawei]ip route-static 10.1.56.0 24 10.1.45.5能否加表成功?

答案是可以加表成功的。

数通基础知识_数据_56

如果把AR2的G0/0/0端口给down掉,此时AR1的2个迭代路由10.1.45.0和10.1.56.0没有了。

数通基础知识_数据_57

如果在AR1和AR2之间加一个HUB,则迭代路由会重新加到表中。这说明了静态路由无法感知网络的状况。Hub在这的作用可以理解为协议端口为UP

数通基础知识_ip地址_58


静态路由原理

数通基础知识_数据_59

AR1:10.1.12.1ping10.1.45.5 这个IP地址,进行数据封装,ICMP+网络层+数据链路层,ICMP + S-IP:10.1.12.1,D-IP:10.1.45.5 + S-MAC:A,D-MAC:B。这个D-MAC:B是怎样来的呢?是AR1发送ARP请求,请求AR2 g/0/0/0接口的MAC地址,AR2回复给AR1的。AR2的g0/0/0接口接收数据时,单播:会看目的MAC是不是找自己,是的话接收,组播需要加组,广播接收。AR2进行拆包,拆到IP时,会看目的IP是否有对应他的路由信息,也就是目的IP有无下一跳,有就进行转发,没有就丢弃。


数据到达AR2后,会重新封装S-MAC和D-MAC,S-IP和D-IP保持不变,此时S-MAC:C,D-MAC:D

AR2会发送ARP请求AR4 g0/0/0的MAC地址,也就是请求D-MAC:D,AR4的g0/0/0接口在判断是否接收数据,单播是自己,接收,再查看D-IP:10.1.45.5有无对应的路由信息,因为AR4和AR5是直连路由,默认就有对应的路由信息,直接发送ARP。



思考:10.1.12.1能否ping通10.1.24.4

答案:不能,因为在AR1中没有去往目的地10.1.24.4的路由信息,需要配置静态路由

ip route-static 10.1.24.4 32 10.1.12.2

思考:10.1.12.1能否ping通10.1.24.2

答案:不能,因为上一个思考配置的静态路由是10.1.24.4 32这个精确主机,不是10.1.24.0 24这个网段,


书写规则:谁没有路由就在哪个设备上写

转发原则:一定要保证设备上拥有去往目的地址的路由信息

思科设备:接口的ARP-proxy默认开启指定出接口,华为设备:接口的ARP-proxy关闭


基于路由器的路由表的负载均衡。(3层)

如果设备中存在等价路由,此时转发数据时,要查看本身该设备是怎样的负载分担方式。

逐包分担

问题>好处 华为默认无逐包分担 ---> 逐流负载分担

<每个数据包都进行平均发送,从所有的等价链路上平均发送>

<数据包匹配了第一条路由发送+1>

<数据包匹配了第一条路由发送+1>

每个路由维护一个计数器,如果匹配一次,则加1,保证两个链路发送的报文数量都是相同

命令:load-balance packet:使用route设备去模拟。

  1. 无法保证路径的速率、拥塞程度,如果两条路径的拥塞程度不一样,此时可能出现乱序情况。
  2. 如果报文的大小不一致的话,两端对数据的处理相对不均匀。

好处:多条链路可以同时利用。

实验:

数通基础知识_ip地址_60

数通基础知识_链路_61

数通基础知识_ip地址_62

数通基础知识_数据_63

数通基础知识_链路_64


逐流分担【现在设备默认】

数据流:一连串的数据

均衡程度不如逐包分担,避免出现乱序问题

哈希运算:数据并发一旦过大,此时设备的性能会收到一定影响,此时转发也受到影响。

五元组:源目地址【IP+MAC】+ 源目端口号 + 协议号,本地进行hash运算选择一条路径,接下来如果五元组不变,此时一直会走这一条路径。

类型:E2

协议号:IP

端口号:TCP/UDP

S-IP:192.168.1.1

D-IP:22.1.1.2

[tcp] s: 随机高端口

d:80

p:协议号:6

[http]

输入相同的数经过hash运算,得到的结果是相同的

如果输入的数值发生一丝变化,此时得到的结果和之前完全不同。

提取的数值越多,此时计算的负载均衡程度更好,但是额外的设备转发效率会受到影响

提取的数值越少,此时计算的负载均衡程度相对不那么好,但是设备的转发效率受到的影响更小。

源目地址源目端口协议 MPLS标签 L2TP tunnel-ID&&Session-ID计算


默认路由 ---> 出口

路由表中的路由都可以负责数据转发--->直连|静态|packet:包,flow:流




浮动路由:路由备份

数通基础知识_数据_65

命令:

ip route-static 0.0.0.0 0 12.1.1.1 preference 59//修改静态的外部优先级

display ip routing-table protocol static//查看基于静态产生的路由


数通基础知识_链路_66


NQA、BFD、SLA(思科)






动态路由

如果网络环境一旦过大,网段一旦过多,此时静态路由配置量相对繁琐,非直连网络一旦发生变化,就依靠管理员手动更正网络。

路由的形成方式:

  1. 直连路由
  2. 静态路由
  3. 动态路由:在多台设备之间运行某种协议,根据网络工程师的配置,可以选择将某些路由信息发布到协议中,然后可以实现路由信息在所有运行了协议的设备上自动传递,自动学习。

优点;传递路由,根据网络变化可以自动的改变路由

缺点:设备之间交互路由协议的报文,增加设备的处理负担。

运行动态路由的场景:设备比较多,网络比较复杂,设备性能相对良好。【>6台】


AS(自治系统):IP网络系统,统一的管理者,熟知网络的组网结构

广义AS:自己管理的网络,申请了单独的AS号,单独申请

狭义AS:自己管理,家庭网络,公司网络,学校网络 ---> 自己知道的


应用场景分类

AS内部;

IGP(内部网关协议:Interior Gateway Protocols)---> 统称:关心路由的快速学习以及网络设备发生变化,路由快速收敛(网络出现变化能够快速的从路由表里把他删掉,不要对现在的网络产生一定的影响)

IGP包括:OSPF IS-IS RIP EIGRP [最多承载1W条]


AS之间:

EGP(外部网关协议:Exterior Gateway Protocols):BGP协议

  1. 关心路由学习之外,还要关心路由的承载量【80W路由】 ---> IGP办不到
  2. AS之间交互路由的时候,能够丰富,简单且高效的策略实现路由的灵活交互 ---> IGP不灵活
  3. 能够有丰富的扩展性,满足现在多元化的业务 ---> 大部分的IGP扩展性差


IGP:路由学习

EGP:路由传递


相邻设备运行不同的路由协议时,此时无法交互路由信息

全网运行一种路由协议。IGP:OSPF、IS-IS、RIP、EIGRP


基于算法的分类:---> IGP

  1. 距离矢量:RIP、EIGRP【思科私有的 ---> 带条件的公有化 ---> 授权,更新,问题不负责通知】矢量行为:本地的路由表中存在该路由,才会发送给邻居的设备,如果本地路由表没有计算出该路由,此时不会传递。
    传递方式:传闻式 ---> 依靠邻居设备告诉我这个路由信息,对于整网的路由始发以及具体到达该路由的路径不知道。
    COST计算:基于跳数,不关心具体的网络链路的带宽
  1. 计算路由比较多的场景下,容易出现瓶颈
  2. 传递时如果邻居状态信息同步速度不一致,导致路由的删除出现一定延迟,容易引发环路问题。
  3. Cost值计算:无法根据速率计算,只能根据路由器的数量计算。
  1. 链路状态:OSPF、IS-IS
  2. 传递的是基于链路状态【路由】而产生的LSA信息【Link-state-advertisement】链路状态通告
  3. 利用LSA信息自己画出整个网络的拓扑【包含具体的设备信息,路由信息】
  4. 执行SPF算法,自动计算出最优的路由【SPF-Shortest path first最短路径优先】,OSPF一个区域内保证99.99%无环。
  5. 路由信息加入到路由表内。

所有的事情都是自己做,邻居帮忙给我传LSA信息,拓扑,路由都是自己算的。

坏处:开销比较大:传递的信息比较多,设备性能要求较高,随着设备数量的增加,性能继续增加。

OSPF三步走

  1. 需要在设备之间建立能够传递信息的邻居/领接关系 邻居关系表
  2. 同步彼此的链路状态信息 链路状态数据库
  3. 自己独立计算路由 路由表

LSA:link-state-advertisement:链路状态通告

LSDB:link-state-database:链路状态数据库


影响邻居关系建立条件:

  1. 区域号要一致,不一致无法建立邻居关系
  2. Router-ID不能相同,相同不则无法建立邻居关系
  3. 认证类型和认证值要一样,不一样无法建立邻居关系
  4. hello时间和Dead时间要一致,不一致无法建立邻居关系



OSPF传递所有的信息都是利用报文来传递 ---> IPV4 ---> OSPFV2:5种报文

OSPF的报文都工作在网络层之上,IP层协议号为89


5种报文:

Hello

DD(Database Description)

LSR(Link State Request)

LSU(Link State Update)

LSACK(Link State Acknowledgement)

建立邻居关系:Hello报文






简单命令;

[Huawei]ospf 1 router-id 1.1.1.1 # ospf 进程号 router-id 路由id

[Huawei-ospf-1]area 0 # 建立区域0

[Huawei-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0

# 将接口ip12.1.1.1精确宣告进12.1.1.0网段

[Huawei-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255

# 将接口ip12.1.1.1网段宣告进12.1.1.0网段


[huawei]undo ospf 10 # 删除10进程所有的内容

[huawei-ospf-10]undo area 10 # 删除进程10中的区域号10

[huawei-ospf-10-area-0.0.0.10]undo network 10.1.1.1 0.0.0.0

# 删除进程10的区域0里面宣告出去网段

<huawei> reset ospf process # 重置进程

OSPF的基本术语

配置都是基于接口实现的。

  1. Process-ID:进程号,本地标识不同的OSPF的协议进程。
  2. Router-ID:路由器的ID号,标识具体在OSPF协议中设备的名字 ---> 表现形式:和IP地址一样,但是和真实的IP地址没有一丝关系。(非常重要Router-ID的生成方式有2种。
  1. 人为配置的时候,在进程号后面跟随 ---> 人为指定,基于协议的Router-ID。
  2. 如果没有人为配置,则OSPF会从整个路由器为你指定一个Router-ID,叫做全局Router-ID。(注意:这个全局Router-ID和人为指定的OSPF里面的Router-ID是没有关系的。人为指定的OSPF的Router-ID只能服务于OSPF,不能服务其他协议,比如BGP协议,但是全局的Router-ID可以服务于所有需要Router-ID的协议)
  3. 有人为指定的Router-ID优先选择人为指定的,无人为指定的,此时选择全局的Router-ID数通基础知识_ip地址_67
  4. 当OSPF已经赋予Router-ID之后,此时如果进行修改,则默认不会修改成功,需要重置OSPF进程才可以重新生成。
  5. <huawei>reset ospf process # 重启OSPF进程

[huawei]display ospf peer brief # 查看OSPF的邻居关系

[huawei]display current-configuration configuration ospf # 查看OSPF的配置

[huawei]display router id # 查看全局的Router-ID

peer:邻居的意思

  1. 区域号分区域化管理 ---> 如果有很多路由,一时计算不了路由信息LSA,此时OSPF设置在不同的区域,在同一区域内LSDB才是完全一样。
  1. 骨干区域 【backbone】 0区域号,有且仅有0
  2. 非骨干区域 【normal】 不是0就是非骨干区域 != 0
  1. 宣告【发布】

network + 接口所在的网段 + 反掩码

普通:192.168.1.0/24 255.255.255.0 ---> 1代表网络位,0代表主机位

反掩码:192.168.1.0.24 0.0.0.255 ---> 1代表主机位,0代表网络位

快速计算:255.255.255.255-255.255.255.0 = 0.0.0.255(4个255减去子网掩码)

  1. 网段宣告:将符合该网段的所有接口统一宣告出去network 12.1.1.0 0.0.0.255
  2. 精确宣告:将符合条件的接口单独宣告出去(/32)network 12.1.1.1 0.0.0.0
  3. network 网络地址 反掩码 和之后学习计算路由没有任何关系。network的作用只是为了将接口宣告到整个OSPF中,跟后面路由学习没有必然联系,network影响的是本地哪些接口进入OSPF中。计算路由不是看的network。


OSPF通用报文头格式

数通基础知识_ip地址_68

  1. version:版本 IPV4 = OSPFV2 IPV6 = OSPFV3
  2. type:1---> hello 2 ---> dd 3 ---> lsr 4 ---> lsu 5 ---> lsack
  3. packet length:OSPF报文的长度
  4. router-id:携带自己的Router-ID ---> 配置
  5. area-id:0.0.0.0【backbone】 ---> 配置
  6. check-sum:校验和【除认证字段之外的校验和】
  7. autype:认证类型 0不认证 1简单 2md5
  8. autentication:不认证数据

常见问题:

进程号:进程号不一样不会影响相邻的设备建立邻居

ID重名:相邻设备建立邻居时RID不能一样

相邻的设备区域号不一致能否建立邻居:相邻的设备必须保证区域号一致。


OSPF中hello报文

数通基础知识_数据_69

  1. network-mask:当前接口的掩码信息【接口的掩码信息】---> OSPF ---> LSDB
  2. hello-interval:hello时间,10s发送一次hello报文。hello和dead时间要一致,如果2者时间不一致,此时无法建立邻居关系。
  3. options:选项位 ---> 标识OSPF的一些能力
  4. router priority:接下来选举DR角色时,当前接口的优先级,默认是1
  5. router dead-interval:死亡时间,多长时间内如果没有收到对方hello消息,代表邻居关系故障。10*4=40
  6. DR-router-id:指定路由器
  7. BDR-router-id:备份指定路由器
  8. active-neighbor;活跃邻居的router-id









OSPF建立的过程

五种报文:

hello ---> 224.0.0.5(组播地址)

互相建立完整的Full邻接关系,此时7个过程 10 S间隔

down ---> init ---> 2-way ---> exstart ---> exchange ---> loading ---> full

运行了OSPF设备,自动监听224.0.0.5


影响邻居关系建立条件:

  1. 区域号要一致,不一致无法建立邻居关系
  2. Router-ID不能相同,相同不则无法建立邻居关系
  3. 认证类型和认证值要一样,不一样无法建立邻居关系
  4. hello时间和Dead时间要一致,不一致无法建立邻居关系


hello报文:建立邻居关系,维持邻居关系

DD(Database description):数据库描述报文 ---> LSA的信息摘要 ---> 餐馆的菜单

LSR(Link-state-request):链路状态请求

LSU(Link-state-update):链路状态更新

LSACK(Link State Acknowledgement):链路状态确认



可靠:

  1. 2-way:必须在对方的hello中看到自己的RID
  2. DD:DD报文中通过主设备选出seq,实现数据库同步过程的可靠且有序。
  3. 当DROther发送的LSU通过DR发送到224.0.0.5组播地址中,DROther看到了自己的更新后,此时不需要得到LSACK就可以完成更新的过程。(了解)。这里用到了隐式确认
  4. 隐式确认;我的LSU中包含了你的更新,所以不用给你确认
  5. 显示确认:直接告诉你我收到了

数通基础知识_ip地址_70

七个过程:

  1. Down:最开始
  2. init;收到对方的hello报文,但是hello包中没有自己的RID
  3. 2-way:收到对方的hello报文,40s wait-time [DR BDR]:彼此将各自的LSDB的LSA信息按需请求,可以理解为书的目录,餐馆的菜单。
    数通基础知识_链路_71
    1-3是Hello报文实现的
    数通基础知识_数据_72
  4. exstart:选举主从关系,由主提供seq序列号,从设备每次发送DD报文,必须用主提供的seq,以此保证数据库同步过程中的可靠以及有序。比较Router-ID:大的成为主设备,小的成为从设备。
  1. OSPF重传时间:DD报文,发送没有得到回应,5s进行重传。
  2. DD:空的DD报文(第一个DD报文),不携带任何的LSA的摘要信息,只做主从的选举,确定序列号之后,才可以交互LSA摘要信息。
  3. I:init ---> 第一个DD报文才会置位,首个DD,当I=1此时开始进行主从选举
  4. M:more ---> 后方是否还有其他的DD报文,后方还有则M=1,后方没有DD,则M=0
  5. M/S:master/slave:主从,主设备:M/S=1,从设备;M/S=0
  1. exchange:一旦发送带有LSA摘要信息的DD报文,则进入exchange状态。从设备先发送带有LSA摘要的DD报文。数通基础知识_ip地址_73
  2. loading:
  1. 发送LSR请求
  2. 发送LSU更新,携带着对方请求的LSA信息
  3. 发送LSACK对LSU做确认。
  1. Full:发送了所有的更新,且收到了所有的确认,进入Full状态。【邻接状态】


如果领接关系稳定后【Full】,又出现新的路由信息,此时会发送LSU,做更新消息提示,对方发送LSACK。

数通基础知识_数据_74

数通基础知识_数据_75

Hello lsu lsack ---> 组播发送的

DD LSR ---> 单播发送的

首次建立OSPF领接关系会发送

在基于OSPF领接关系已经稳定的情况下,此时OSPF新增加一条或多条路由信息,直接发送LSU【触发更新】。


LSR是谁请求的,谁就发LSACK

问题:

  1. 抵达loading之前,请问是否能够获得对方的LSA完整内容?DD ---> 摘要信息【LSA部分菜单内容】
    LSR ---> 请求完整菜单内容 LSU:发送完整菜单内容 LSACK:收到了完整菜单名
  2. 为什么建立邻接关系一定到Full,不能到2-way呢?

因为2-way没有LSA信息,就无法进行路由计算,无法进行路由交互,就不能建立邻接关系。





主从选举解决的问题:

解决了数据库同步过程的可靠且有序。DD选举:RID大的为主机,RID小的为从机


DR选举解决的问题:

解决无用的OSPF报文泛红导致整个网络设备性能下降的问题


40s

重点:消失的40s去哪里了【2-way之后,exstart之前】

广播网络中,如果设备比较多,此时如果每个都是两两建立Full的领接关系,导致整个网络内报文泛洪次数会过多,造成整个网络设备的性能下降。

数通基础知识_ip地址_76

网络中多个设备时,会选择一个DR路由器,其他路由器称之为DROther

  1. DR和DROther之间建立OSPF中的FULL邻接关系。可以接受FULL的邻接设备给我的更新(邻接设备指的是产生的LSU的设备)
  2. DROther和DROther之间建立OSPF的2-WAY邻居关系
  3. DROther如果因为新加的路由有了更新(新接口宣告进OSPF中),将LSU(包含完整的LSA信息)发送到224.0.0.6组播地址中。224.0.0.6这个组播地址只能由DR和 BDR监听。解决了DR如何获得DROther的更新
  4. DR将LSU发送到224.0.0.5中,此时所有的路由器都会监听,DROther和DR之间是FULL,所以接受该LSU信息。


224.0.0.6:DORther发送到该地址,只有DR和BDR才能接受

224.0.0.5:所有设备都会接受


DR无法被抢占,BDR:备份指定路由

DR和BDR、DROther建立FULL邻接状态

BDR和DR、DROther建立FULL邻接关系

DR坏了,BDR在40s后才能发现DR故障,故障了就不能发OSPF报文了然后通过Hello报文中的死亡时间40s来检测。


DR和BDR如何选择

DR的产生实在广播网络,也就是同一网段。

  1. 比较DR的接口优先级,默认是1,越大越优
  2. 比较设备的Router-ID,越大越优


DR和BDR身上没有2-way的邻居关系,只有DROther才会存在2-way邻居关系

数通基础知识_数据_77



DR和BDR都不会被抢占,除非重置进程。

如果将新的接口宣告进OSPF,DR、BDR、DROther之间如何发送LSU以及LSACK呢

在设备3上的LoopBack口配置88.1.2.3/32将其宣告进OSPF中

数通基础知识_ip地址_78

数通基础知识_ip地址_79

后面包的情况看,设备2也发送了LSACK确认的。发送到了224.0.0.6,代表设备2收到了LSU。









OSPF路由信息表

OSPF的默认优先级是10

入站接口根据接收方向判定,记录运行了OSPF协议的设备接口


浮现在路由表中的COST值等于沿途各个设备入站接口开销值的累加

单个接口的开销值计算公式:参考带宽/接口的带宽。默认参考带宽=100M,不足1的按照1取值。


开销的接口值可以人为的修改,人为修改后,路由计算时优先选择人为修改的

命令:接口下使用 OSPF COST XXX、

设备1:

数通基础知识_ip地址_80

数通基础知识_链路_81




设备2 :

数通基础知识_ip地址_82

数通基础知识_链路_83

数通基础知识_数据_84








思考:

如果把设备2的g0/0/0接口开销值改为10,设备1的路由信息表中,学习10.1.2.0网段有几条路由

答案:1条路由

数通基础知识_数据_85

此时设备6学习10.1.1.0网段,路由有多少条呢

答案是依旧是2条。

判断有几条路由和开销值,都是根据到达改设备沿途经过设备的接收口累加出了的COST值,在根据COST值判断几条路由,COST值越小越优。如果COST值相等形成等价路由,都加表

数通基础知识_链路_86

注意:开销值(路由信息条目)只考虑入站方向(接收端口)





修改默认带宽参考值

如果接口的速率过高,然而按照OSPF的默认的参考值,此时永远得到的接口都是1

  1. 修改设备的参考带宽值 ---> 修改是在OSPF进程内,影响宣告到OSPF的所有接口,建议每个运行了OSPF的设备都修改命令;[huawei-ospf-10] bandwidth-reference XXX
  2. 修改设备的某个接口的开销值 --->单独修改接口

命令[huawei-GigabitEthernet0/0/0] ospf cost XXX

作用是用来选路。


人为控制选择DR

人为控制选择DR的方式 ---> 修改DR接口的优先级(DR-Priority)默认是1,越大越优

如果人为将优先级改为0,则该接口不参与DR和BDR的选举,丧失选举权,只能成为DROther

不要在广播网络中将2个设备的优先级都改为0否则无法建立领接关系。

数通基础知识_ip地址_87数通基础知识_ip地址_88

数通基础知识_ip地址_89


命令:

[huawei-GigabitEthernet0/0/0] ospf dr-priority XXX # 修改接口的DR优先级,越大越优,改为0,则丧失DR选举权








OSPF认证

OSPF提供认证的功能,支持3种类型

默认不认证【0】 Null

明文认证 【1】

密文认证 【2】:key-id ---> 双方保持一致,MD5只需要填充密码,算法自动帮你计算



OSPF认证在什么位置开启呢

单独只是限制接口---> 开启接口 全网所有设备开启认证 ---> 区域

  1. 接口下开始OSPF认证,将基于该接口发送的OSPF报文填充认证的信息【不影响其他接口】
  2. 区域下开启OSPF认证,将基于该设备该区域内所有接口发送的报文填充认证的信息



数通基础知识_链路_90

数通基础知识_链路_91

数通基础知识_ip地址_92


simple:发送OSPF的时候,报文中显示的密码的是明文

cipher:查看配置以密文的方式显示密码

plain:查看配置以明文的方式显示密码

命令:

[3-GigabitEthernet0/0/0]ospf authentication-mode ?? # 基于该设备接口做认证

[3-ospf-10-area-0.0.0.0]authentication-mode ? ? # 基于该设备区域做认证


一端是区域认证另一端是接口认证,只要密码相同,此时该接口的领接关系可以正常建立


一个设备上既做接口认证又做区域认证,密码不一样,请问OSPF中通用报文头部填充谁的认证内容

答案:接口配置优于区域配置


OSPF ---> IGP ---> 链路状态 ---> 5种报文 ---> 7个状态 ---> DR|BDR ---> COST ---> 认证

数通基础知识_链路_93