复习:

    网络模型

    OSI MODULE 7层

    TCP/IP STACK 4层 (习惯性的按照5层去理解和分析问题)

    封装:从发送端的高层到低层,逐层加装头部的一个行为

    解封装:从接收端的低层到高层,逐层剥离头部的一个行为

    PDU:

    APP:data

    TRAN:segment

    NET:packet

    D-L:frame

    PHY:bit-flow

    二层头部:Ethernet-II

    | D-MAC | S-MAC | type

    三层头部:IPv4

    version、header length、tos、totally length、ID、flags、fragmentation offset、ttl、protocl、checksum、source-ip、destination-ip

    四层头部:

    TCP:

    source-port、destination-port、sequence-NO.、acknowledge-NO.、header-length、flags、window、checksum、pointer

    UDP:

    source-port、destination-port、length、checksum

    ARP:地址解析协议:

    动态:使用ARP-request和ARP-reply报文来动态解析对方接口的MAC地址。

    ARP-request(broadcast)

    ARP-reply(unicast)

    sender-mac:

    sender-ip:

    target-mac:

    target-ip:

    标准ARP:sender-ip和target-ip是不一样的(用来解析对方接口的MAC地址)

    免费ARP:sender-ip和target-ip是一样的(用来进行重复IP地址探测)

    数据帧的跨跳转发封装和解封装的流程:

    数据帧在跨越路由器转发时,默认情况下,三层地址不发生变化,二层地址会逐链路(每跨越一台路由器)发生变化!

    数据帧没跨越一台路由器,必然会经历一次二层解封装和二层重新封装的过程。

    IPv4地址:

    总长度:32bit

    表达:点分十进制。每个IP有三个点,四个段。因此每个段长度为1Byte。

    192.168.1.1 IP

    255.255.255.0 MASK

    mask是用来表达ip的网络位长度的!

    总长度=网络位长度+主机位长度

    网络位长度:NET-length

    主机位长度:HOST-length

    MASK中有多少个1,那么其对应的IP网络位长度就是多少!

    192.168.1.1

    255.255.255.0

    192.168.1.1/24

    NET-length=24

    HOST-length=8

    网络位的意义:指定一个地方的名字

    主机位的意义:代表网络位指定的这个地方里面有多少个变化可能性

    8个bit,有多少种变化可能性?2^8=256

    192.168.1.0 光明小区

    2^8个住户

    192.168.1.1只是192.168.1.0/24里面的一个地址而已。

    192.168.1.0/24

    192.168.1.1

    192.168.1.2

    192.168.1.100

    。。。。

    192.168.1.0/24 192.168.1.0 /24 2^(32-24) 最小

    172.16.0.0/16 172.16.0.0 /16 2^(32-16) 居中

    10.0.0.0/8 10.0.0.0 /8 2^(32-8) 最大

    网络位越长,主机位越短,网络规模越小

    网络位越短,主机位越长,网络规模越大

    =时间分割线穿越回过去=============

    在过去,没有mask这一项。

    在过去,有土办法。土办法就是给IPv4地址分类:

    A /8 0开头的

    B /16 10开头的

    C /24 110开头的

    D

    E

    300个人

    网络划分:(大网络划分成多个小网络)

    如果有了MASK之后,网络位长度是不是就可以弹性变化了?

    1. 50
    2. 60
    3. 59
    4. 62

    如果将一个C类平均分成4个网络是否可以够用啊?答案:可以

    如何将一个C类平均分成4个网络呢?

    192.168.1.0/24

    1. 从右向左(优先关注主机位)
      HOST-length=32-24=8
      2^8=256 主机地址个数 block地址块
      因为要平均分成4个小网络,那么每个小网络的block应该是多少?
      256/4=64
      2^H=block H代表主机位长度,block代表地址块大小
      2^H=64 => H=6 这个6代表什么含义呢?这个6代表的是每个小网络的主机位长度
      那么每个小网络的网络位长度=32-6=26
      NET-length(小)=26
      HOST-length(小)=6
      block(小)=64 | 网络名及网络范围 | 网络地址范围 | 网络可用地址范围 | | —- | —- | —- | | 192.168.1.0/26 | 192.168.1.0~63 | 192.168.1.1~62 | | 192.168.1.64/26 | 192.168.1.64~127 | 192.168.1.65~126 | | 192.168.1.128/26 | 192.168.1.128~191 | 192.168.1.129~190 | | 192.168.1.192/26 | 192.168.1.192~255 | 192.168.1.193~254 |

    2. 注:可用地址范围是地址范围减去2。因为要把主机位全0和主机位全1减掉。
      主机位全0代表这个网络的名字,因此不能分配给主机使用。
      主机位全1代表这个网络的广播地址,因此不能分配给主机使用。
      192.168.1.00|000000 192.168.1.00|111111
      192.168.1.01|000000 192.168.1.01|111111
      192.168.1.10|000000 192.168.1.10|111111
      192.168.1.11|000000 192.168.1.11|111111

    3. 从左向右(优先关注网络位)
      将一个大网络划成多个小网络,网络位是变长还是变短?答案:变长
      那么至于要变长多少位,取决于要划分成多少个小网络?
      192.168.1.00|000000/24
      到底借几位呢?B代表借的位数
      2^B=小网络的个数
      因为要平均分成4个小网络,因此,上式可表达为:
      2^B=4 => B=2,因此得出结果是要借2位
      因为原来的掩码长度是24,因此新的小网络的掩码长度是24+2=26(小网络的网络位长度)
      那么新的小网络的主机位长度就是32-26=6
      NET-length(小)=26
      HOST-length(小)=6
      block(小)=64 | 网络名及网络范围 | 网络地址范围 | 网络可用地址范围 | | —- | —- | —- | | 192.168.1.0/26 | 192.168.1.0~63 | 192.168.1.1~62 | | 192.168.1.64/26 | 192.168.1.64~127 | 192.168.1.65~126 | | 192.168.1.128/26 | 192.168.1.128~191 | 192.168.1.129~190 | | 192.168.1.192/26 | 192.168.1.192~255 | 192.168.1.193~254 |
    与主类长度之间的偏移位数
    正偏移 0 1 2 3 4 5 6 7
    掩码 0 128 192 224 240 248 252 254

    /30

    NET-length=30

    HOST-length=2

    block=2^2=4

    4-2=2

    课堂练习:

    1. 将192.168.1.0/24平均分成8个小网络的结果是什么?
    2. 将192.168.1.0/24分成4个网络。这四个网络中的主机数分别如下:
      a. 100
      b. 60
      c. 20
      d. 10
      总体要求:尽最大努力不造成地址浪费!
      192.168.1.0/24是一个C类网络,因此其block=256
      把这个C类网络分成多个小网络(不管是否平均分),每个小网络的block肯定都会比这个C类的block要小。
      把一个C类网络分成多个小网络,其地址块大小有几种可能性啊?
      128 100
      64 60
      32 20
      16 10
      8
      4

      128:
      192.168.1.0/25 192.168.1.0~127 192.168.1.1~126 ======> 100
      192.168.1.128/25
      64:
      192.168.1.128/26 192.168.1.128~191 192.168.1.129~190 =======> 60
      192.168.1.192/26
      32:
      192.168.1.192/27 192.168.1.192~223 192.168.1.193~222 =========> 20
      192.168.1.224/27
      16:
      192.168.1.224/28 192.168.1.224~239 192.168.1.225~238 ==========> 10
      192.168.1.240/28 192.168.1.240~255 192.168.1.241~254 ==========> 剩余

    网络汇总:(小网络合并成大网络)

    192.168.0.0/24

    192.168.1.0/24

    192.168.2.0/24

    192.168.3.0/24

    192.168.000000|00.0/24

    192.168.000000|01.0/24

    192.168.000000|10.0/24

    192.168.000000|11.0/24

    192.168.0.0/22

    192.168.1.0/24

    192.168.2.0/24

    192.168.3.0/24

    192.168.4.0/24

    192.168.00000|001.0/24

    192.168.00000|010.0/24

    192.168.00000|011.0/24

    192.168.00000|100.0/24

    192.168.0.0/21 (不严谨的汇总)

    总结:

    网络汇总,需要严谨汇总,不应该将其他网络也汇总进来。

    若想实现严谨汇总,必须二进制“连续”(该“连续”的理解应该是二进制的不同位,长度相同)。

    汇总之后的大网络,包括所有已经罗列出来的明细网络,则可以称为“精确汇总”。

    如果汇总之后的大网络不仅包括了罗列出来的明细网络,还包括了其他没有罗列出来的明细网络,那么就不能称为“精确汇总”。

    子网和超网:

    无论是子网还是超网,都是相对于主类网络来说的。

    192.168.0.0/25是192.168.0.0/24的子网。

    192.168.0.0/23是192.168.0.0/24的超网。

    提问:

    10.0.0.0/16是10.0.0.0/8的子网

    10.0.0.0/7是谁的超网?10.0.0.0/8

    私有地址范围:

    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

    特殊地址:

    loopback地址(环回地址):用来测试本地TCP/IP协议栈安装是否正常!

    127.0.0.0~127.255.255.255. 127.0.0.1~127.255.255.254

    未指定地址:

    0.0.0.0

    在做DHCP地址申请时,报文的source-ip会是0.0.0.0

    全网广播:

    255.255.255.255

    DNS Domain Name System

    在DNS Server上记录的是域名和Ip地址之间的对应关系!

    182.61.200.7<======>www.baidu.com

    系统本地都会存在host文件

    host文件中的记录要优先于DNS查询。

    www.baidu.com

    DNS劫持 x.x.x.x shadow website

    物流中转站点的决定?

    上海中转站点能到如下很多地方:

    深圳

    广州

    西安

    宁夏

    郑州

    由于这个包裹是从浙江义乌去往北京中关村,所以上海中转站点的决定是将该包裹送往郑州。

    提问:

    1. 上海中转站是否知道北京在哪?是否知道经过哪里可以到北京最优?(什么是可达性信息?)
      结果是:必须知道!!!
    2. 上海中转站点是怎么知道的?(可达性信息如何获得?)
      方法一:其他站点告诉上海中转站的。例如:郑州告诉上海说:我是郑州,我能到北京
      方法二:公司直接发来可达性文件。
    3. 每个中转站点,是不是都得知道其他所有站点的可达性信息?(可达性信息是否需要保存)
      答案是:必须的

    综上:每个中转站点就相当于网络中的路由器,那么每个路由器也得知道这个网络中都有哪些可达的地方!并且需要把这些地方的可达性信息罗列成表,作为转发数据包的依据,存放在本地。

    那么这个表,也就是这个转发依据被称为“路由表”!

    R1:

    协议 协议类别 Prefix/mask [AD/metric] next-hop time outgoing-interface

    O OIA 10.1.1.0/24 [110/2] via 23,1,1,3 00:00:00 fastethernet0/0

    O OIA 20.1.1.0/24 [110/2] via 33,1,1,3 00:00:00 fastethernet0/1

    source-ip:3.3.3.3

    destination-ip:30.1.1.100

    这里涉及一个关于路由匹配的问题:什么叫做匹配上了?

    就是一个IP数据包的destination-ip隶属于了某一个路由条目的网络范围,就被成为匹配成功!

    路由器会收到很多网络可达性信息,那么路由器如何决策哪些是比较优的路由条目呢?

    路由决策:

    1. AD Administration Distance 管理距离 其含义就是“可信度”。数值越小越优。
    2. metric 开销 其含义就是“成本”。数值越小越优。

    注意:AD和metric之间,AD优先于metric。而且,如果通过AD可以确定优劣,那么metric将被直接忽略!

    路由决策原则:(选路原则)

    总前提:只有当本地去往同一个目的地,存在多个可达性信息时,才会激发路由决策!

    1. AD,数值越小越优
    2. metric,数值越小越优
    3. 协议类型,OIA>OE1>OE2
    4. load-balance

    路由决策练习:

    协议 协议类别 Prefix/mask [AD/metric] next-hop time outgoing-interface

    O OIA 20.1.1.0/24 [110/3] via 23,1,1,3 00:00:00 fastethernet0/0

    O OIA 20.1.1.0/24 [110/2] via 33,1,1,3 00:00:00 fastethernet0/1(优)

    决策中更优的那个条目会被放入路由表中成为转发依据。此动作被称为“加表”。

    决策中暂时不优的那个条目会被放入本协议的数据库中,以待下次决策。

    综上:路由决策过程发生在路由器的控制平面(control plane)

    那么路由器的数据平面(data plane)有没有什么原则呢?

    1. 最长匹配
      10.1.1.0/24 F0/0
      10.0.0.0/8 F0/1
      Destination-ip: 10.1.1.100
      最长匹配指的是,当一个Ip包的destination-ip同时匹配到了路由表中的多个条目时,则基于掩码长度更长的那一条执行转发。因为当两个条目存在交叠时,掩码长度更长,则代表越精确。
    2. 递归查找
      问:卫生间在哪里?
      答:卫生间在鱼缸的旁边!
      问:鱼缸在哪里?
      若想到达卫生间,那么必须得先到达鱼缸。

    实验命令:

    查看路由表:show ip route

    路由类型:

    1. 直连路由 connected
      路由器互联接口之间可以相互ping通,就是基于直连路由的。
      路由器上的接口,正确配置Ip地址之后,当接口up了,那么路由器就会自动生成与该ip地址关联的直连路由。
    2. 静态路由 static
      标准静态路由:
      ip route [prefix mask] [next-hop]
      ip route 192.168.22.0 255.255.255.0 12.1.1.2
      缺省静态路由:
      ip route 0.0.0.0 0.0.0.0 12.1.1.2
      0.0.0.0/0 网络位长度为0,代表网络规模最大,因此其代表整个网络。
      浮动静态路由:
      ip route 0.0.0.0 0.0.0.0 12.1.1.2 10
      ip route 0.0.0.0 0.0.0.0 14.1.1.4 20

    homework:

    Lab01:

    标准静态路由实现PC1和PC2互通

    Lab02:

    浮动静态路由,实现双出口路由的主备浮动!