有了 IP 地址,为什么还要用 MAC 地址

JAVA获取请求的IP及MAC地址 package com.hw.util.net; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.So... 阅读详情
为什么要这样设计?交换机为什么不可以处理ip?为什么要分层?
因为交换机只能处理mac地址,不能处理ip地址。交换机工作在二层,只认识MAC地址。
交换机处理mac,路由器处理ip
简单地说两句:
二层是这样工作的:每个接入设备口分配一个地址,一般的星形结构的网络,每台设备发出的数据所有其他设备都能收到,然后根据目标地址看是否是发给自己的。这个地址是谓MAC地址,因为身在最底层,没有设置分配机制或者自动获取机制,每台设备制作的时候固定写在里面,并且确保全球不重复,这样就不会有冲突。

当然后来也就有了交换机,也就是带有存储转发功能的集线器,可以把包存一下,看一看目标地址,然后选择某一条线路发出去。怎么知道哪条线路是哪个MAC?学咯,每条线路发来的包看一下来源地址,然后记到表里面。

二层还要解决多个设备同时发送冲突的问题,要检测,要处理,要重发等等。

三层是这样工作的:每个设备有一个IP地址,也要保证唯一。这个IP地址可以手工分配,也可以通过DHCP获取。手工分配的时候需要注意保证唯一。局域网内想联系一个IP地址,先要知道对应的MAC地址,这时候走二层的ARP全网问一下就可以了。反过来,自己作为新设备想要一个IP地址,要么RARP要一个,要么走基于UDP的DHCP要一个,当然都只限于局域网内。

有了这些底层的东东,每台设备都有了自己的IP地址,这样就可以互相通信。三层的关键在于,有了路由器,路由器用于将不同的网段连接在一起,并对两个网段间的通信进行存储转发。比如A网络10.0.0.0/24,B网络10.0.1.0/24,中间有一路由器隔着,两边的网关都是.1。10.0.0.2要发信给10.0.1.2,那么先看子网掩码,发现不在自己网络内,然后交给10.0.0.1,路由器看到在网络B内,从10.0.1.1发出,然后到达10.0.1.2。

假如这俩网络没有路由器,直接走二层,那么多电脑连在一起,广播包就会占掉大量的网络带宽。

路由器,顾名思义就是要找路用的。比如B网络还用一个路由器连接着C网络10.0.2.0/24,那么A网络一台机器要发包给C网络的一台机器,路由器怎么知道怎么走法呢,于是需要路由协议,路由器之间要说说话,了解一下对方的状态。

再往大了去,就是互联网了。中国的一台电脑要连接美国微软,那么发出的包先到宽带运营商,然后到北京出口,然后觉得现在走欧洲到美国慢,于是转到上海,走海底光缆到了美国,再走旧金山,到西雅图,再到雷德蒙。如果只有MAC地址,是无法支撑起这么大的网络的,你觉得直接访问到MAC地址就行了,问题是你让路由器怎么给你找到路线呢?

所以,对于原题「都只是描述IP是什么,MAC是什么。当数据包到达局域网后,完全可以直接送到对应的IP地址主机,为什么还要询问一下对应IP主机的MAC地址?」
你缺乏网络知识,搞不清NAT的含义,只以为公网就是用IP的,局域网就是用MAC地址的。

如果你本身用的公网IP,那么全部走IP访问即可。如果是局域网多台电脑共用公网出口,那么首先要做的是NAT转换,这个是要在4层TCP和UDP上做的。只在二层无法完成。

你说的东西更像IPv6,这样不需要再做NAT,所有内网设备都可以分配一个IPv6地址。
Qt获取本机的ip地址、MAC地址 方法1: 获取ip地址: QString getHostIpAddress() { QString strIpAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // 获取第一个本主机的IPv4地址 int nListSize = ipA... 阅读详情

相关推荐

电磁兼容标准体系解析:从基础到认证的完整指南

本文系统解析了电磁兼容(EMC)标准体系,从基础概念到认证流程提供完整指南。文章阐述了EMC对于产品可靠性与市场准入的重要性,详细拆解了基础标准、通用标准、产品类标准及认证流程四层结构,并结合5G设备与工业控制等实战案例,为工程师提供了从设计初期到认证测试的高效应用策略。

weixin_29294975的博客 355

有MAC地址了为什么还要用IP地址

有MAC地址了为什么还要用IP地址

bali16的博客 2330

Java 网络编程(超级详细)

1. 网络编程 1.1 网络编程概述 计算机网络 是指将地理位置相同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 1.2 网络编程三要素 1、IP地址 要想让网络中的计算机能够互相通信,必须为计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。 2、端口 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程

imByte的博客 3万+

为什么有了MAC地址还要有IP地址(简单易懂)

一、基础知识普及 我们在进行通信的的时候,需要知道对方的地址和身份,才能将信息准确传递,如同寄快递一般。 1. IP地址(包裹地址): 百度解释: IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理...

Cjx_9421的博客 2万+

179、运动控制中的行业标准:机器人安全标准ISO 10218

今天这篇笔记,就把我踩过的坑和标准里的硬骨头掰开揉碎讲清楚。

m0_50546716的博客 169

【华为OD机试真题】458、堆内存申请 | 机试真题+思路参考+代码解析(CD卷)(C++、Java、Py)

题目描述 >有一个总空间为100字节的堆,现要从中新申请一块内存,内存分配原则为优先紧接着前一块已使用内存分配空间足够且最接近申请大小的空闲内存。

KJ.JK 1万+

关于mac地址可唯一标注一台主机 为什么还要有ip地址

查了下网上的资料,我目前的理解是 1.转发问题 mac地址虽然可以标注唯一一台主机,但是mac地址是无序的,网关在转发时,遍历世界所有的mac表,然后找到相应的主机进行转发显然是不可能的。 而ip地址是有序的,他是根据地域来分的(国家+城市+分区+门牌号码),转发时寻找起来比较方便 2.端口映射问题 没有ip和ip协议 就没有端口映射,那么操作系统上的程序就无法进行通信。 ...

naxiaorongshixiatian的博客 1428

智能体异常行为检测-基于行为序列的异常模式识别技术【附代码】

在多智能体系统(Multi-Agent Systems, MAS)中,智能体之间的行为协调与自主决策是系统稳定运行的关键。然而,当某个智能体因策略偏移、环境变化或潜在攻击而出现**异常行为(Abnormal Behavior)**时,整个系统可能陷入混乱或崩溃。

一键难忘的博客 1144

已经有了MAC地址,为什么还要有IP地址?

相比之下,仅使用 MAC 地址进行通信,在跨网络时路由器需要维护庞大的 MAC 地址转发表,并且查找过程复杂,效率低下。IP 地址也允许路由聚合,路由器可以将多个连续的 IP 地址块汇总成一条路由信息,大大减少了路由表的规模,提高了路由查找和转发的效率。MAC 地址没有这样的聚合机制,会导致转发表条目过多,查询速度慢。因为MAC地址的唯一性,通过mac地址也是一定可以实现网络通信的,但是使用ip地址可以更加更加高效、灵活地实现大规模网络通信及管理。

qq_61252549的博客 560

SmartFusion从FPGA到ARM(一)——MSS_GPIO点灯

文章目录前言GPIO点灯 前言 GPIO点灯

whik1194的博客 5271

使用 MATLAB/Simulink + Deep Learning Toolbox,构建一个基于LSTM的电网负荷预测模

本文介绍了一个基于Simulink和深度学习的智能电网负荷预测与调度建模方法。通过LSTM神经网络构建负荷预测模型,将历史负荷、天气、日期等特征作为输入,预测未来24小时负荷。然后将训练好的模型集成到Simulink仿真系统中,结合发电单元模型和经济调度逻辑,实现预测驱动的电力调度优化。实验结果表明,该方法预测误差在2.5%-4.0%之间,相比传统调度方式可降低15%-25%的运行成本。文章详细展示了从数据准备、特征工程、模型训练到系统集成的完整流程,为智能电网中AI技术的应用提供了实用参考。

amy_mhd的博客 171

有了MAC地址,为什么还要IP地址?

有了MAC地址,为什么还要IP地址? 随着网络设备的增多,路由选择变得困难(路径多,计算量大)。因此将网络划分为多个子网。在路由选择的过程中,将一个子网看作一个整体, 路由器只需要选择到达这个子网的路径,到达之后的事情就交给子网内部了。虽然这样的路径选择只能保证局部最优不能保证全局最优,但大大减少了路由器的工作量。 那么为什么需要IP地址呢?因为同一个子网中可能有多个MAC地址,路由器需要记录每一个MAC地址对应的子网。而MAC地址的数量过多,显然没办法全部存储下来的。因此产生了IP地址。IP地址与地域相.

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 1982

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

有了 IP 地址,为什么还要用 MAC 地址?

我认为,IP地址和MAC地址可以类比生活中寄快递的过程。 在整个网络中数据被封装成数据报文进行发送,就像我们生活中寄快递时将物品放进包裹中。而数据在路由器之间的跳转也可以看作是不同地区快递小哥对物流的交接。 IP地址 ip地址等价于快递包裹上的收件人地址。 快递员通过收件人地址将包裹在出发地到目的地之间连出一条线,然后通过不同地区之间的物流中转最后将包裹送到收件人的手中。 从上图的粗箭头所描述的路径便可达到目的地址,陕西省-西安市-xx县-xx街道-…。 同理,ip地址也具备此功能,通过IP地址的网络位

专注于C/C++/Linux领域创作 3万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MAC地址和IP地址的区别

基础知识   标识网络中的一台计算机,一般至少有三种方法,最常用的是域名地址、IP地址和MAC地址,分别对应应用层、网络层、物理层。网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难,MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。 一. 什么是MAC地址 MAC地址就是在媒体接入层上使用的地址,也叫...

追梦_1394270543的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【网络】IP地址和MAC地址

一、IP地址和MAC地址 1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时(每个厂提前划定区间,保证不重复)设定的,是固定的(但可以通过在设备管理器中或注册表等方式修改,同一网段内的MAC地址必须唯一)。MAC地址采用十六进制数表示,长度是6个字节(48位),分为前24位和后24位。 ...

m0_45406092的博客 5521

IP地址和MAC地址的关系

在计算机网络中,要资源共享,有条不紊的交换数据,就要遵守一些大家事先约定好的规则,这些为进行网络中的数据交换而建立的规则标准或约定称为网路协议简称协议。为了使计算机之间能够高效的传输就采用了分层,就像平时生活中大家分工合作完成一件事一样。分层有7层也有5层,都有自己的优缺点。 我们把计算机网络的各层及其协议的集合称为计算机网络的体系结构。这里介绍五层协议的体系结构,如下图所示 首先IP地址...

STTTM的博客 2万+

有了MAC地址为什么还需要IP地址,两者有什么区别

两者协同工作,缺一不可。

Shylock_Mister的博客 2091

对于MAC地址的认识,以及MAC地址和IP地址的区别,MAC地址和IP地址各起到什么作用?

MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为MAC位址、硬件地址,用来定义网络设备的位置。MAC集成在网卡,由48bit的16进制的数字组成,0~23位数字叫作组织唯一标志符(organizationally unique,是识别局域网节点的标识)。24~47位是由厂家自己分配,其中第48位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM芯片中,芯片中的数据可以通过程序进行擦写,它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的.

马小超 4949

有ip地址为什么要mac地址,或者说没有mac地址可以吗?

IP地址是IP协议的一个点标识,MAC地址也只是MAC子层的一个链路层标识。IP协议与MAC协议是分属两层的,功能是不冲突的,主要问题是IP地址和MAC地址是否可以统一使用一个标识。此文仅讨论在一般以太网中的场景。 1.受历史以及复杂的网络环境影响,仅使用IP地址是不行的。 2.仅在以太网TCP/IP协议栈环境下,重新修改设计链路层,可以做到使用IP地址标识代替MAC地址。 3.若使用MAC地址代替网络层的IP地址标识,最大的问题就是无法高效的路由。

学而不思则罔 3581

IP地址和mac地址的区别

解说一下IP地址和mac地址的区别: “IP地址”是指互联网协议地址(Internet Protocol Address),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 “MAC地址”又称为物理地址、硬件地址,用来定义网络设备的位置。网卡的物理地址通常是由网卡生产厂家烧入网卡的,具有全球唯一性。MAC地址用于在网络中唯一标示一个网卡,一台电脑会有一或多个网卡,每个网卡都需要有一个唯一的MAC地址。

zcl050505的博客 1万+

IP地址和MAC地址的区别

IP地址和MAC地址的区别IP地址MAC地址IP地址与MAC地址的区别与联系 IP地址 IP地址分为IPV4和IPV6。IPV4由32位整数组成,分成4个部分,每块8位二进制。IPV6由128位整数组成,分成8个部分,每个部分16位二进制,即4位6进制。一个完整的IP地址由两个部分组成:网络地址+主机地址。 网络地址用于路由选择;主机地址用于在网络或子网内部寻找一个单独的主机。 因为IP地址的存在...

NO_9583的博客 7688

IP地址与MAC地址

一、为什么要进行映射 1.多播时需要特定的MAC地址,因为在以太网中的2层及以下是不识别IP地址的,只认MAC,所以不需转换成MAC地址 2.一个多播(组播)对应一个MAC,网卡的地址虽然固定,但是,它可以监听到任何MAC的通讯,只要它连接的网线上有的数据,只不过在向上层传输时,一般会被忽略掉,是否向上层传输是可以设置的,甚至可以接受2层所有能接收到的数据,传输给应用层,只要设置正确的话。

firefly_2002的专栏 4504

IP地址、MAC地址

IP的全称是Internet Protocol,翻译成中文,就是互联网协议。互联网协议研究的是互联网,互联网中必然有许许多多设备,如何区分它们呢?通过给它们进行编号来区分。怎么编号呢?在计算机网络中,针对IPv4中我们当然是使用二进制进行描述,由于二进制对于人类过于难以记忆,因此我们采用点分十进制的形式进行描述。IPv4地址的长度是32位二进制数。MAC地址的长度是48位二进制数。2. MAC地址2.1. MAC地址是什么,它和IP地址的关系又是什么?MAC地址由两部分构成:厂商地址+设备地址。

2301_81757249的博客 6970

IP地址、MAC地

IP的全称是Internet Protocol,翻译成中文,就是互联网协议。互联网协议研究的是互联网,互联网中必然有许许多多设备,如何区分它们呢?通过给它们进行编号来区分。怎么编号呢?在计算机网络中,针对IPv4中我们当然是使用二进制进行描述,由于二进制对于人类过于难以记忆,因此我们采用点分十进制的形式进行描述。IPv4地址的长度是32位二进制数。MAC地址的长度是48位二进制数。2. MAC地址2.1. MAC地址是什么,它和IP地址的关系又是什么?MAC地址由两部分构成:厂商地址+设备地址。

2201_75334378的博客 1710
上一篇: HTTP协议详解
下一篇: 有了IP和MAC 为什么还需要ARP协议
我爱默小兜
博客等级 码龄14年 387粉丝 266原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值