快速理解网络协议(一) IP 地址、MAC 地址

2023年 10月 9日 99.9k 0

ipmac.png
IP 地址

IP 地址中的 “IP” 代表Internet Protocol(互联网协议),IP 地址是在 IP 协议下使用的地址,IP 地址有三个主要功能:标识设备或网络、定位和选择路由。由于 IPv4 是第一个架构中的主要版本,所以在没有特殊说明的时候,IP 地址一般指的是 IPv4 地址。

IPv4 地址

一个 IPv4 地址被 “.” 分割成 4 个部分,每个部分 8 个 bit,总共 32 位,使用十进制表示。在设计之初,IPv4 地址被分成 5 类,如下图所示,我们平时接触到的基本是 ABC 三类。一个 IPv4 地址被分为两部分,网络号 + 主机号,这种地址分类的方式叫做分类网络。

IPv4地址分类

在分类网络中,A、B、C 三类的 IPv4 地址的数量分割一点都不合理,范围跨度太大了。随着互联网的快速发展,CIDR 取代了分类网络。

CIDR (Classless Inter-Domain Routing )无类别域间路由,旨在重新划分地址空间,将地址块可以较为自由合理的分配给用户。

  • CIDR(“/” 后带着数字这种表示形式,“/” 后)将 32 位的 IP 地址一分为二,网络号 + 主机号,例如 100.100.100.2/24,前 24 位是网络号,后 8 位是主机号

  • 网络号全为 1 的就是子网掩码,主机号全为 1 的就是广播地址

  • 将子网掩码和 IP 地址按位计算 AND,可以得到网络号,可用于判断一个 IP 地址是不是在当前子网内

    示例: 100.100.100.2/24

    • 子网掩码:255.255.255.0
    • 广播地址:100.100.100.255,所有 100.100.100 网络里面的机器都可以收到
    • 100.100.100.20 与子网掩码做按位与运算,得到 100.100.100.0,即为网络号

    易错计算: 求 16.158.165.91/22 的网络号、第一个地址、子网掩码和广播地址

    • 16.158.165.91/22 → 16.158. 101001/01. 01011011
    • 网络号:16.158. 101001/00.0 → 16.158.164.0
    • 第一个地址:16.158.164.1
    • 子网掩码:255.255.252.0
    • 广播地址:16.158.167.255

特殊 IPv4 地址

  • 127.0.0.1 表示本机地址
  • 0.0.0.0 有两种含义,默认路由地址和通配符地址。默认路由地址我们之后再说。通配符地址指的是,若进程监听了通配符地址,那么进程监听了本机上的所有 IP 地址

IPv6 地址

由于互联网的快速兴起, IPv4 地址很快就不够用了,于是出现了 IPv6 地址。一个 IPv6 地址被 “:” 分为 8 个部分,每个部分以 4 位十六进制方式表示,总共 128 位。比如:2001:0db8:85a3:08d3:1319:8a2e:0370:734。

IPv6 地址和 IPv4 地址相似,也使用网络号 + 主机号的形式划分。一个 IPv4地址可以很容易的转换成一个 IPv6 地址,如果一个地址是 IPv4 地址,可以直接表示成::ffff:IPv4地址,比如 ::ffff:192.168.89.9,这种格式叫做IPv4映射地址。而::1类似于 IPv4 中的 127.0.0.1

IP 地址的功能

  • 标识设备或网络、定位,提供设备在网络中的位置信息
  • 选择路由,在网络传输中,通过 IP 地址选择路由
  • MAC 地址

    和 IP 地址相似,由于此地址作用于 MAC 层,所以称之为 MAC 地址。MAC 地址是指网络设备的硬件地址,是由网络设备的制造商烧录在设备的网卡中的一个全球唯一的地址。类比现实生活的话,IP 地址更像是精确到门牌号的地址信息,而 MAC 地址则是拥有唯一身份证号的“人”。

    IP 地址 和 MAC 地址的区别

    区别 IP地址 MAC地址
    地址类型 逻辑地址 物理地址
    分配方式 由运营商分配 由设备制造商烧录到设备的网卡中
    作用范围 全球互联网上的通信 局域网内通信
    主要功能 标识设备和选择路由 唯一标识设备

    查看 IP 地址、MAC 地址

    Linux 下使用 ip addr 或 ifconfig,Windows 下使用 ipconfig

    ifconfig

    • “1” 表示 MAC 地址,是一个网卡的物理地址,使用十六进制,6个byte表示
    • “2” 表示 net_device flags,网络设备的状态标识
      • BROADCAST 表示此网卡有广播地址,可以发送广播包
      • MULTICAST 表示此网卡可以发送多播包
      • UP 表示此网卡处于启动状态
      • LOWER_UP 表示 L1 启动,即网线已插入
      • mtu 1500 表示最大传输单元 MTU 为 1500,是以太网的默认值,即正文部分不允许超过 1500 个字节
      • qdisc 表示 queueing discipline 排队规则,内核通过网络接口发送数据包时,需要按照 qdisc 配置的规则把数据包加入队列
        • mq:是一个虚拟 qdisc,目的是为网络设备的每个硬件队列创建一个 pfifo_fast 队列
        • pfifo:不对数据包做任何处理,先入先出
        • pfifo_fast:数据包按照服务类型 TOS Type Of Service( IP 头中的一个字段)分配到不同的波段中,每个波段对应的优先级不同

    小测验

  • 如何判断一个 IP 地址是否在子网内?
  • IP 地址是逻辑地址还是物理地址?它在网络中的作用是什么?
  • IP 地址和 MAC 地址的区别?
  • MAC 地址是逻辑地址还是物理地址?它在网络中的作用是什么?
  • 相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论