MAC地址和IP地址
概述¶
在计算机个其他计算机发送消息时 , 需要知道目标ip和MAC地址, 发送数据之前计算机都会判断目标ip和自己的ip是不是同一个网段. 这里分为两种情况:
- 同一个网段. 两台从来没有通信过的电脑进行通信, 此时不知道目标IP所在电脑的MAC地址, 会先使用ARP广播协议查找所需要的MAC, 随后就可以进行通信了.
- 不是同一个网段. 计算机会发送一个ARP协议给网关, 获取网关的MAC地址, 因为要有MAC地址才能发送数据. 由网关根据目标地址的ip找到对应网段的网关, 将数据发送出去.
MAC(Media Access Control Address)地址¶
每一个网卡都有一个6字节(48bit)的MAC地址,MAC地址全球唯一, 固化在网卡的ROM中的.
查看MAC地址
ipconfig /all
可以修改MAC地址蹭网, 比如, 有些学校的交换机可以设置MAC地址来限制上网的设备的MAC地址, 如果你知道一台可以上学校网的MAC地址, 你可以把你的MAC改成这个可以上网的MAC地址就可以蹭网了, 但是两台相同MAC地址的主机肯定只有一个能上网.
当MAC地址的48位全部是1的时候, 代表广播地址
ARP:地址解析协议¶
当不知道对方主机的MAC地址是, 可以通过ARP广播获取对方的MAC地址(通过ARP获取的MAC地址属于动态缓存, 过两分钟就会清除). 获取成功后, 会缓存IP地址, MAC地址的映射信息, 俗称:ARP缓存(arp -a
可以查看当前计算机缓存的MAC地址. arp -d
删除ARP缓存).
- ARP:通过IP地址获取MAC地址.
- RARP:逆地址解析协议, 作用与ARP相反, 用于将MAC地址转为IP地址
ICMP:互联网控制消息协议¶
IPv4中的ICMP被称作ICMPv4, IPv6中的ICMP则被称作ICMPv6, 通常用于返回错误信息(比如TTL值过期,目的不可达). ICMP的错误消息总是包括了源数据并返回给发送者.
IP地址¶
互联网上面的每一个主机都有一个ip地址. 最初推出的IPv4, 32个bit(4字节), 2019年11月25日, 全球的IP地址已经用完了. 后面推出了IPv6, 128bit(16字节)
IP地址由两部分组成:网络标识(网络ID) + 主机标识(主机ID). 有一个ip地址, 通过子网掩码就可以获取网络id, 主机id. 主机所在的网段 = 子网掩码 & IP地址.
例:
IP地址:192.168.1.10
子网掩码:255.255.255.0
255.255.255.0 (转换成2进制)
&
192.168.1.10 (转换成2进制)
按位与(&)运算规则, 1 & 任何数 得 任何数 , 0 & 任何数 得 0
两个二进制按位与的时候, 顺序可以互换的.
所以上面这个地址的网络ID是 , 192.168.1
同一网段的计算机, 网络id相同, 所以一个网段能都表示多少台主机, 主要是看主机id有多少位.
特殊IP
主机id全是0, 表示该主机所在的网段; 主机id全是1, 表示主机所在网段的全部主机(广播), 可以尝试ping某个网段的全部主机.
子网掩码的CIDR表示方式 CIDR:无类别域间路由. 写法 :IP地址/子网掩码1的个数. 192.1.1.100/24 (这个就表示子网掩码有24个1, 也就是子网掩码是:255.255.255.0)
IP地址的分类¶
ip地址被分成了五类:
- A类地址:默认子网掩码是255.0.0.0.
- B类地址:默认子网掩码是255.255.0.0.
- C类地址:默认子网掩码是255.255.255.0.
- D类地址:以1110开头, 多播地址.
- E类地址:以1111开头, 保留为今后使用.
只有 A\B\C 类的地址才能分配给主机使用.
子网划分¶
子网划分的目的就是减少ip地址的浪费, 比如一个网段里面只有500台主机, 但是确分配了一个B类网段, 如191.100.1.0/16, 此时共有 191.100.1.0 ~ 191.100.255.254 台(65534台)主机可以在这个网段, 相当浪费. 但是如果用一个C类网段, 192.168.10.0/24, 这个网段能够容纳的主机数量是 192.168.10.1 ~ 192.168.10.254(共253台)台主机, 使用C类网段又放不下500台主机了. 这时就需要子网划分.
常见划分方式:
- 等长子网划分:将每一个个网段划分成多个子网, 每个子网可用的ip地址数量是一样的
- 变长子网划分:划分出来的每个子网可用的IP数量不一样.
超网
超网和子网是反过来的, 它是将多个连续的网段合并成一个更大的网段.
路由¶
在不同的网段之间转发数据时需要路由器,但是默认情况下路由器只知道和路由器直接连接的网段,非直接连接的网段需要通过静态路由或者动态路由告诉路由器。
静态路由¶
- 管理员手动添加路由信息。
- 适合小规模网路。
动态路由¶
- 路由器通过路由协议(如RIP,OSPF)自动获取路由星系。
- 适合大规模网路。
路由表¶
- 需要和非直连的不同网段通信时,需要至少两个路由器,两个路由器连接的ip需要在同一个网段,需要连接哪个网段就配置下一跳的地址和这个网段相同就可以了。