https://segmentfault.com/a/1190000023270768

IP协议

  • IP协议使得复杂的实际网络编程一个虚拟互联的网络(也就是我们只需要将终端连接到这个网络中即可,并不需要关心里面实际的复杂网络)
  • IP协议使得网络层可以屏蔽底层细节而专注网络层的数据转发
  • IP协议解决了在虚拟网络中数据包传输路径的问题

**

MAC地址

一个网络设备或者网卡的身份证,在数据链路层,只要有了MAC地址就可以进行数据帧的传输。MAC地址是48位,16进制表示。
1 网络层IP协议 - 图1

IP地址

32位** 点分十进制表示 4个8位
1 网络层IP协议 - 图2
每一个网络设备都有唯一的IP地址

MAC与IP地址不同

  • MAC地址唯一不可变
  • 网络设备的网络环境变化,IP地址变化

    IP协议

  • 物理层,他传输的是0,1比特流

  • 数据链路层,传输的是数据帧,数据帧包括帧首部、帧尾部和“帧”数据,“帧”数据主要就是IP数据报

IP数据报分为IP首部、IP数据报的数据
**1 网络层IP协议 - 图3
1 网络层IP协议 - 图4

分类的IP地址

将一个IP地址分为两个部分,分别是网络号和主机号。这两部分加起来是32位。根据网络号和主机号长度的不同,又可以将IP地址分为以下几类:
1 网络层IP协议 - 图5

  • A类地址的网络号是8位,且首位是0
  • B类地址的网络号是16位,且首位是10
  • C类地址的网络号是24位,且首位是110

    特殊的主机号

  • 主机号都是1:表示广播地址,向当前网络段所有主机发送消息,也不可以分配给特定的主机(1.255.255.255)

  • 主机号是0:表示当前的网络段,不可分配为特定主机(1.0.0.0)

    特殊的网络号

  • A类地址网络段为0(00000000.)表示特殊网络不能直接使用

  • A类地址网络段后7位全1(01111111.)表示回环地址,不能直接使用
  • B类地址网络段全为0(10000000.00000000.)不可用
  • C类地址网络段为0(11000000.00000000.00000000.)不可用

1 网络层IP协议 - 图6

  1. 125.125.3.60 -- 二进制 -> 01111101 首位是0 -> A
  2. 163.70.31.23 -- 二进制 -> 10100011 前两位是10 -> B
  3. 210.36.127.11 -- 二进制 -> 11000010 前三位是110 -> C

回环地址 127.0.0.1 (01111111.0.0.1)

它代表设备的本地虚拟接口,所以默认被看做是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常.

划分子网

1 网络层IP协议 - 图71 网络层IP协议 - 图8

子网掩码 ——快速判断IP属于哪一个网络号

  • 32位
  • 连续的0和连续的1
  • 某一个子网的子网掩码,具有网路号位数个连续的1

比如对已A类地址,8位网络号,主机号24位,则子网掩码——8个1和24个0——255.0.0.0
B类——255.255.0.0 C类——255.255.255.0 ….
通过子网掩码和IP进行与运算,就可以快速得到该IP所属的子网号
**1 网络层IP协议 - 图91 网络层IP协议 - 图10

无分类编制CIDR

  • CIDR中没有A、B、C类网络号和子网划分的概念
  • CIDR将网络前缀相同的IP地址称为一个‘CIDR地址块’

因此,对于CIDR,它的IP地址分为两个部分:网络前缀主机号。网络前缀并不是和前边的网络号一样,他们最大不同是——网络前缀是任意的位数。

斜线记法

192.10.10.129/25 表示网络前缀25,主机7(110000001.00001010.00001010.100000001)
1 网络层IP协议 - 图111 网络层IP协议 - 图12