MHuiG

「看庭前花开花落,望天上云卷云舒」

IP 编址

# IP 编址

## IP

IP: 网际协议，网络层协议，用来为网络中设备分配逻辑地址.

网络层的逻辑地址就是 IP 地址，IP 地址是可以更改的，当设备在不同网络中，根据所处网络的不同发生变化，在同一个网络内必须保证唯一性。设备有了 IP 地址后，就可以在网络中进行通信.

## IP 报文头部

RFC 791

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Version|  IHL  |Type of Service|          Total Length         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Identification        |Flags|      Fragment Offset    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Time to Live |    Protocol   |         Header Checksum       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Source Address                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Destination Address                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Options                    |    Padding    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Example Internet Datagram Header

### 基本信息行

Version: 版本，4bit, 用来标明当前 IP 协议的版本，如果当前报文在 IPv4 时，则该字段的值为 4 (0b0100)

IHL: IP 头部长度，4bit, 范围 20-60 字节，每个单位代表 4 字节

0b1111=15 ,
字节 = 60 字节

0b0101=5 ,
字节 = 20 字节

字节长度取值一定是四的倍数.

TOS/DS: 差分服务域，服务类别，8bit, 让特定的数据拥有更高的优先级.

Total length: 数据包总长度，16bit, 用于标识 IP 报文头部加数据载荷的长度，最大 65535 字节.

### 分片行

[MTU: 最大传输单元，用于限制报文不被分片的最大字节，默认情况下 MTU 值为 1500 字节.]

ID: 标识，16bit, 用于顺序 IP 报文，同一个报文得到的分片信息中的 ID 相同.

Flages: 标志位，3bit.

- 最高位被保留，固定为 0.
- 中间位为 DF 位：如果置位为 1, 则表示该报文不能被分片.
- 最低位称为 more 位：如果置位 1 则表示后续还有分片报文.

如果报文大于 MTU 值并且 DF 置位，直接丢弃.

Offset: 13bit, 片偏移，用于标识分片包在原始报文的位置.

### 功能行

TTL: 生存周期，8bit, 用来在 IP 报文转发过程中，打破环路对网络的影响，最大值 255, 会在数据包经过一次第三层转发时减 1. 当值为 0 时数据包被丢弃.

Protocol: 8bit, 用于标明网络层处理完 IP 报文后，需要交给上层的某个协议继续处理.

- 1: ICMP
- 6: TCP
- 17: UDP

Header Checksum: 16bit, 首部校验和，检测 IP 首部是否发生错误.

### 地址行

SIP: 源 IP 地址，32bit, 表明当前数据包从哪出发.

DIP: 目的 IP 地址，32bit, 表明当前数据包去往何处.

### 可选项

Options: 可选项，可变长度，最大 40 字节。军事或研究方向，支持松散源路由，严格源路由等等.

## IP 编址

IP 地址：用来你标识网络中的一个节点或网络设备的接口，总长度 32bit, 约 42.9 亿，每个 IP 地址都由网络位和主机位组成.

网络位：用来标明当前设备的网络位置.

主机位：用来标明当前主机在当前网络中的位置.

网络掩码: 32bit, 由连续的 1 和 0 构成，其中 1 标记的是网络位，0 标记的是主机位.

网络地址：当主机位全都为 0 时，表示当前网络信息.

广播地址：当主机位全都为 1 时，表示当前网络范围内的广播地址.

可用地址：可分配给网络中的节点或网络设备接口的地址.

一个网络内的可用 IP 地址
, h 表示主机位的位数.

网络地址和广播地址不能直接被节点或网络设备所使用.

### IP 地址分类

#### 有类 IP 地址

A: 第一个 bit 为 0, 并且掩码长度为 8.

(0.0.0.0-127.255.255.255)

B: 前两个 bit 为 10, 并且掩码长度为 16.

(128.0.0.0-191.255.255.255)

C: 前三个 bit 为 110, 并且掩码长度为 24.

(192.0.0.0-223.255.255.255)

D: 前四个 bit 为 1110, 组播地址.

(224.0.0.0-239.255.255.255)

E: 前四个 bit 为 1111.

(240.0.0.0-255.255.255.255)

#### 按照使用范围分类

公有地址：可以在公网范围内使用的地址.

私有地址：可以在局域网中使用，在不同的局域网中可以重复使用，不能够被公网转发.

私有地址范围:

A: 10.0.0.0-10.255.255.255/8

B: 172.16.0.0-172.32.255.255/16

C: 192.168.0.0-192.168.255.255/24

### 特殊地址

这类 IP 地址不能够给设备使用，并且全部具有特定意义.

0.0.0.0: 当设备初次进入网络时，会使用该地址。特定场景下可以代表所有地址.

255.255.255.255: 全网广播地址，可以向广播域内所有设备发送数据.

127.0.0.0-127.255.255.255: 本地环回测试地址，检查本地网卡驱动是否正常.

## 进制转换

十进制转二进制 短除法 倒着写

    2|192  0
     ----
     2|96  0
      ---
     2|48  0
      ---
     2|24  0
      ---
     2|12  0
      ---
      2|6  0
       ---
      2|3  1
        --
        1

    2|168  0
     ----
     2|84  0
      ---
     2|42  0
      ---
     2|21  1
      ---
     2|10  0
      ---
      2|5  1
       ---
       2|2 0
        --
         1

二进制转十进制

0b1100 0000 =

0b1010 1000 =

256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1

## example

172.16.10.1/16 B 类的网路地址，广播地址，可用地址数

IP 地址: 172.16.10.1

掩码: 255.255.0.0

网络地址: 127.16.0.0

广播地址: 127.16.255.255

IP 地址数:

可用 IP 地址数:

可用 IP 地址范围: 172.16.0.1-172.16.255.254

交换网络基础

交换网络基础 交换网络基础 交换网络交换网络：由交换机所构成的网络. 交换机：工作在二层的全双工设备，能够处理数据帧并且能够根据数据帧的头部进行数据的转发，通过设备之间的唯一信道转...

推荐阅读
以太网帧结构 网络参考模型 网络通信 交换网络基础 数据通信网络 传输介质

留言区

Notes
数据通信网络
Are You A Robot?