我觉得计算机的地址这个概念可以分为两个层面的事情,一个是对内,计算机系统内部的地址;另一个对外,这个计算机系统在网络上的地址。
计算机内部的地址,针对不同的处理器架构,采用不同位宽的地址总线,8bit、16bit、32bit到64bit或者128bit,内部CPU核可以管理的内部地址空间不一样,32bit的CPU最大4G byte地址空间(2^32)。对于处理器芯片内部的其它IP如SRAM、定时器等,芯片设计者给他们分配了固定的地址(物理地址),就像每个房子都有门牌一样,处理器核要访问某个指定的资源,就是通过这个物理地址进行的。而对于DDR、FLASH或者其他外部芯片,在处理器芯片设计时不会给他们预留足够的物理地址空间,往往都远小于外部芯片的实际地址空间,这时会引入虚拟地址的概念,虚拟地址的概念比较复杂,这里就不做详细说明,处理器芯片内特定的部分会完成虚拟地址到物理地址的转化,这样处理器核也就能像访问内部资源一样,访问外部器件了。
计算机系统对外的地址,一般就是MAC地址或者IP地址,这个地址就好比邮编,信件的投递依靠邮编一样。MAC地址每个网卡都是唯一的,也能表明计算机在网络上的唯一,而IP地址是不同运营商分配的,同一台计算机接入不同的网络会有不同的IP地址,IP地址和MAC地址需要建立映射关系的,这就是TCP/IP协议。