【IP地址和MAC地址的区别】

本文介绍了网络通信中的关键概念——IP地址和MAC地址。MAC地址是网络设备的物理地址,每个网卡在出厂时拥有全球唯一的6字节地址。IP地址则作为网络中的逻辑地址,分为IPv4和IPv6两种,前者资源有限,后者近乎无限。通过DHCP协议,设备获取IP地址,而ARP协议则用于根据IP地址获取对应的MAC地址,完成网络通信。

一.IP地址和MAC地址的对比

先举一个例子:在现实生活中,如果我们要写一封信给别人,除信件内容以外,在信封上,我们要填写两个信息:

第一个:收信地址

第二个:收信人

映射到网络世界中,收信地址就是MAC地址,收信人就是IP地址

1.那什么又是网卡呐?

如果把公司这个建筑比作网卡,那么MAC地址就是公司的地图位置,IP地址就是公司中的某一个人。

2.在计算机网络中发送信息,我们只需要填写内容和对方的IP地址操作系统会根据目标IP,查询arp表,获取对方的MAC地址,补齐这封信,从网卡中发出。

3.虽然手机,计算机属于不同的设备,但是它们的通讯都是由内部的网卡设备所进行的,所以我们在计算机网络中用网卡来表示设备

每一张网卡在出厂时,都被写入一个MAC地址,这个MAC地址是有6个字节构成的,其中前三个字节是网络硬件厂商编号,后三个字节表示网卡序列号,所以全球的MAC地址是唯一的

交换机上端口地址和MAC地址的绑定见:跳转链接

4.网卡接入到网络后,如果要通信,还要配置另一个IP地址,IP地址有两种:

a.IPV4地址:比如192.168.1.X,4位0-255的数字点分构成,共42亿多个,但由于编码问题,很多被空出,2011年被用尽。

b.IPV6地址:3.4*10^38个,足够用了

5.依照DHCP协议给网卡分配不重复的IP地址

image-20221231233053933

6.依照ARP协议使得操作系统得到发送目标的MAC地址
我们之前说过我们在网络中发送信息的时候,只需提供目标IP地址和内容,MAC地址是由操作系统根据ARP协议填充目标MAC地址,可是操作系统怎么从IP地址获取到MAC地址呐?

依照广播目标IP地址,操作系统接收到目标IP设备回复MAC地址

### IP地址MAC地址区别及在网络层中的作用 #### 一、IP地址MAC地址的基本概念 IP地址(Internet Protocol Address)是用于标识网络中设备的一种逻辑地址,主要用于网络层的路由选择寻址。它在全球范围内具有唯一性,并分为IPv4IPv6两种版本[^1]。 MAC地址(Media Access Control Address),又称物理地址或硬件地址,是由网卡制造商分配给每一块网卡的独特标识符,通常固定不变,除非通过软件修改。它是数据链路层使用的地址,用于同一局域网内的设备识别通信[^2]。 --- #### 二、IP地址的特点及在网络层的作用 - **全局唯一性**:IP地址在整个互联网范围内的设备间提供唯一的身份标识,使得不同子网间的设备能够互相找到对方。 - **动态分配**:可以通过DHCP等协议动态获取IP地址,便于管理大规模网络环境下的资源分配。 - **分层设计**:IP地址采用层次化结构(如A类、B类、C类划分),有助于提高路由效率并减少路由表规模。 - **跨网络通信支持**:作为网络层的核心组件之一,IP地址参与构建路由决策机制,指导数据包如何穿越多个路由器到达目的地[^3]。 --- #### 三、MAC地址的特点及在数据链路层的作用 - **本地有效性**:MAC地址仅限于单个广播域内有效,在跨越不同局域网时失去意义。 - **静态绑定**:一般情况下,每一台设备出厂自带固定的MAC地址,不会轻易更改(特殊情况除外)。 - **直接关联硬件**:因为MAC地址直接嵌入到网卡芯片之中,所以它反映了具体物理设备的存在状态。 - **同网段内精确定位**:当源主机想要向目标主机发送信息时,如果两者处于相同LAN,则无需借助外部网关即可利用ARP查询得到对应的MAC地址完成传输任务。 --- #### 四、二者关系及转换过程 尽管IP地址MAC地址分别隶属于不同的协议层,但它们之间存在密切联系。例如,在同一个网络内部署期间,为了实现高效的数据交换操作,就需要依靠一种叫做“地址解析协议”(Address Resolution Protocol, ARP) 的方法将高层抽象出来的IP地址映射到底层具体的MAC地址上去[^2]。 ```python # Python示例代码演示如何查看本机IP地址MAC地址 import uuid import socket def get_mac_address(): mac_num = hex(uuid.getnode()).upper()[2:] mac_formatted = '-'.join(mac_num[i:i+2] for i in range(0, 11, 2)) return mac_formatted def get_ip_address(): hostname = socket.gethostname() ipaddr = socket.gethostbyname(hostname) return ipaddr if __name__ == "__main__": print(f"My MAC Address: {get_mac_address()}") print(f"My IP Address : {get_ip_address()}") ``` --- ### 总结 综上所述,IP地址侧重于广域网级别的设备标识以及路径规划;而MAC地址则专注于局部区域内的终端确认环节。两者的协同合作构成了现代计算机网络体系的基础架构框架。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值