IP地址,MAC地址,计算机连接方式

计算机之间的通信基础

  • 需要得知对方的 IP地址

  • 最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收

    • 如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理
    • 如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层
  • 假设 计算机0 知道计算机1 的 IP地址,此时1 ping 2,步骤如下 :

    • 0 发送 ARP 广播,此广播是为了获取到 2 的MAC地址

      • 0 发送 Broadcast 广播

      屏幕快照 2020-10-12 下午3.23.40

      • 1 接收到广播,发现 0 的目标IP地址是自己,此时 1 将 自己的MAC地址通过 ARP协议回传

      屏幕快照 2020-10-12 下午3.23.56

      • 0 接收到 1 的MAC 地址,可以通过ICMP协议发送数据包

      屏幕快照 2020-10-12 下午3.24.26

    • 然后通过 ICMP 协议发送数据.

计算机之间的连接方式

  • 网线直连

    • 需要用交叉线 (不是直通线)
  • 同轴电缆

    • 半双工通信
    • 容易冲突
    • 不安全
    • 中间如果断了,所有都瘫了
  • 集线器(Hub)

    • 半双工通信
    • 容易冲突
    • 不安全
    • 跟同轴电缆一样,没有智商
    • 对比同轴电缆的好处:
      • 中间一台机器断了,对其他机器通信没有影响
  • 网桥(Bridge)

    • 能够通过自学习得知每个接口那侧的MAC地址
      • 从而得到隔绝冲突域的作用
  • 交换机(Switch)

    • 相当于多个接口的网桥, 集线器和网桥结合.
    • 全双工通信
    • 比集线器安全
    • 是局域网的最终方案
    • 但是如果跨网段,需要使用路由器Router
  • 路由器(Router)

    • 网线直连,同轴电缆,集线器,网桥,交换机
      • 连接的设备必须在同一网段
      • 连接的设备必须处于同一广播域
    • 路由器
      • 可以在不同网段之间转发数据
      • 隔绝广播域
    • 主机发送数据之前,首先会判断目标主机的IP地址跟他是否在同一个网段
      • 同一个网段
        • 通过交换机,集线器等 发送ARP广播
      • 不在同一个网段
        • 通过路由器转发数据

网关

  • 跨网段发送数据,需要用网关,一个网关连接一个网段

MAC地址

  • 每个网卡都有一个6字节(48bit) 的 MAC 地址(Media Access Control Address)
  • 全球唯一,固化在网卡的ROM中,由IEEE802标准规定
    • 前3个字节: OUI (Orgnizationally Unnique Identifier), 组织唯一标识符
      • 由 IEEE 的注册管理机构分配给厂商
    • 后3个字节: 网络接口标识符
      • 由厂商自行分配

MAC地址的表示格式

  • Windows
    • 50-55-82-0A-8C-6D
  • Linux, Android, Mac, iOS
    • 40:55:82:0A:8C:6D
  • Packet tracer
    • 4055.820A.8C6D
  • 当48位全为1时,代表广播地址
    • FF-FF-FF-FF-FF-FF

MAC地址的获取

  • 当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址
    • 获取成功后,会缓存IP地址,MAC地址的映射信息,俗称ARP缓存
    • 通过ARP广播获取的MAC地址,属于动态缓存
      • 存储时间比较短(默认是2分钟),过期自动删除

IP地址

  • IP地址(Internet Protocol Address) : 互联网上的每一个主机都有一个IP地址
    • 最初是 IPv4地址, 32bit(4字节),2019年11月25日,全球的IP地址已经用完
    • 后面推出了IPv6版本,128bit(16字节)

IP地址的组成

  • IP地址由两部分组成 : 网路标识(网络ID),主机标识(主机ID)
    • 通过子网掩码(subnet mask) 可以得知网络ID,主机ID
  • 主机所在的网段 = 子网掩码 & IP地址
  • 计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段
    • 同一网段 : 不需要由路由器转发
    • 不同网段 : 交由路由器进行转发

IP地址的分类

  • A类地址 : 默认子网掩码是 255.0.0.0
    • 8bit 网络ID 0开头
    • 24bit 主机ID
  • B类地址 : 默认子网掩码是 255.255.0.0
    • 16bit 网络ID 10开头
    • 16bit 主机ID
  • C类地址 :默认子网掩码是 255.255.255.0
    • 24bit 网络ID 110开头
    • 8bbit 主机ID
  • D类地址 : 以1110开头,多播地址
  • E类地址 : 以1111开头,保留为今后使用
  • 只有A/B/C类地址才能分配给主机
    • 主机ID为全0,表示主机所在网段
    • 主机ID为全1,表示主机所有网段的全部主机(广播)

子网掩码的CIDR表示方法

  • CIDR(Classless Inter-Domain Routing) : 无类别域间路由。
  • 子网掩码的CIDR表示方法
    • 123.168.1.100/24 代表子网掩码有24个1, 也就是 255.255.255.0
    • 123.210.100.200/16 代表子网掩码有16个1,也就是 255.255.0.0

为什么要进行子网划分?

  • 如果需要让200台主机在同一个网段内,可以分配一个C类网段,比如192.168.1.0/24
    • 共254个可用IP地址,这种情况并不算浪分
  • 如果需要500台主机在同一个网段内,那就分配一个B类网段,比如 192.100.0.0/16
    • 共65534 个 可用的IP地址:191.100.0.1 ~ 191.100.255.254
    • 多出 650034 个空闲的IP地址,这种情况属于极大的资源浪费

子网划分

  • 借用主机位作为子网位,划分出多个子网
  • 可以分为
    • 等长子网划分 : 将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的
    • 变长子网话费 : 每个子网的可用IP地址数量可以是不一样的

题目

屏幕快照 2020-10-13 下午1.54.15

这两个机器可以正常通信吗?

  • 根据IP地址 和 子网掩码计算 网段
    • 192.168.0.10/24 –> 192.168.0.0
    • 192.168.10.10/16 –> 192.168.0.0
  • 计算出网段,两台机器是一样的,所以理论上应该是可以通信的
  • 但是通过Packet Tracer测试后,发现不通

为什么不通呢?

  • 因为计算机0 在给 计算机1 发消息时, 只知道 1 的IP,不知道 1 的 子网掩码
    • 所以计算机0 在判断 1是否跟自己在同一网段时,是用 1 的IP地址,和自己的子网掩码计算网段
    • 所以计算机0计算出的 1 的网段:
      • 192.168.10.10/24 –> 192.168.10.0
    • 跟0 不在同一网段
    • 不在同一网段,没有路由器不能通信

超网

  • 超网: 跟子网反过来,它是将多个连续的网段合并成一个更大的网段

思考

  • 192.168.0.255/23这个 IP地址,可以分配给计算机使用吗?
  • 回答这个问题之前,先看另一个问题,192.168.0.255/24可以分配个计算机使用吗?
    • 不可以,全1的地址为广播地址
  • 192.168.0.255/23可以分配给计算机使用,因为主机位不是全为1,后边8位为1,前边有一位0.
  • 192.168.1.255/23 可以分配给计算机使用吗?
    • 不可以,因为后边主机位都为1(后边9位), 为广播地址

判断一个网段是子网还是超网

    • 看看该网段的类型,是A类网络,B类网络,C类网络?
    • 默认情况下A类子网掩码的位数是8,B类子网的掩码的位数是16,C类子网的掩码的位数是24
    • 如果该网段的子网掩码位数比默认子网掩码多,就是子网
    • 如果该网段的子网掩码位数比默认子网掩码少,就是超网
    • 25.100.00.0/16 就是一个A类子网
    • 200.100.0.0/16 就是一个C类超网

路由

  • 在不同网段之间转发数据,需要有路由器的支持
  • 默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由,动态路由告诉它
    • 静态路由
      • 管理员手动添加路由信息
      • 适用于小规模网络
    • 动态路由
      • 路由器通过路由选择协议(RIP,OSPF)自动获取路由信息
      • 适用于大规模网路

练习

两路由器,四台机器之间通信

两路由四主机

四路由四主机通信四路由四主机