返回

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

本文概览

快速理解网络协议(一),基础知识的补充

本文概览
本文概览

IP 地址

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

IPv4 地址

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

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 地址的功能

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

MAC 地址

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

IP 地址 和 MAC 地址的区别

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

查看 IP 地址、MAC 地址

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

ifconfig
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 头中的一个字段)分配到不同的波段中,每个波段对应的优先级不同

小测验

  1. 如何判断一个 IP 地址是否在子网内?
  2. IP 地址是逻辑地址还是物理地址?它在网络中的作用是什么?
  3. IP 地址和 MAC 地址的区别?
  4. MAC 地址是逻辑地址还是物理地址?它在网络中的作用是什么?
© Licensed Under CC BY-NC-SA 4.0