前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >戏说不是胡说:高铁换乘之 IP 地址与 MAC 地址

戏说不是胡说:高铁换乘之 IP 地址与 MAC 地址

作者头像
飞天小牛肉
发布于 2022-02-23 06:15:30
发布于 2022-02-23 06:15:30
5270
举报
文章被收录于专栏:飞天小牛肉飞天小牛肉

一个邮递员拿着地址详细到教室的一封信,收件人是小明,教室里没有重名的,邮递员问 “小明的学号是多少?”,小明站起来回答 “12345”,然后小明坐下,然后邮递员说 “学号 12345 的过来拿信”,小明站起来去拿信。好像有点多此一举?

问题:

当数据包到达局域网后,完全可以直接送到对应的 IP 地址主机,为什么还要询问一下对应 IP 主机的 MAC 地址?

或者换种问法:

既然有了 IP 地址用来唯一标识这台计算机了,那还需要 MAC 地址干啥

首先,我来简单的解释下 MAC 地址所属的数据链路层和 IP 地址所属的网络层的用途:

两个计算机在计算机网络之间进行通信,不可能就一条数据链路,对吧,它会经过很多条数据链路,也可能还要经过很多的通信子网,那么网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。

然后,需要明白的是,一台计算机向网络中的另一台计算器进行通信的时候,需要知道的其实就是三个地址:

  • 起点地址
  • 下一跳的地址
  • 终点地址

IP 地址负责起点地址和终点地址,下一跳的地址由 MAC 地址负责

结合这两点,我们来归纳下数据链路层和网络层的关系:

通俗来说,数据链路层的作用很简单,它是无脑的,只负责在两个相邻节点之间传送数据,它并不知道它所传送的数据最终目的地是哪。而网络层便是它的大脑,网络层负责指定起点地址和目的地址,并告诉数据链路层该走哪条路线

看下图,网络层告知了 1-2-3 路线,那么数据链路层就会根据 MAC 地址依次找到 1、2、3,并在他们之间传输数据:

1)网络层指定了从哪个主机(「源 IP 地址」)发送到哪个主机(「目的 IP 地址」)。源 IP 地址和目标 IP 地址在传输过程中是不会变化的

2)而数据链路层则是根据 MAC 地址在一个接一个的区间中进行传输的,每个区间内的出发地址即「源 MAC 地址」,每个区间内的目的地址即「目的 MAC 地址」。显然,随着数据的传输,源 MAC 地址和目的 MAC 地址会不断的发生变化

再举个形象点的例子:

我们把数据链路层看作一个乘坐高铁从苏州到南京,再在南京转乘到北京,再在北京转乘到西藏的旅客(一个没脑子的机器人),那么网络层就相当于每个车站的工作人员,在数据链路层这个没脑子的机器人每次转乘时,网络层就会为其购买一张标有下一个 MAC 地址的车票。因此,即使数据链路层(旅客)不知道往哪走也没有关系,工作人员(网络层)会给你做出指引:

如果没有 MAC 地址,仅仅只有 IP 地址,能不能完成这些事情?

从理论上来说,如果 IP 地址够用,交换机也支持根据 IP 地址进行转发,我们只需要在 IP 数据报中加一个 “下一跳 IP 地址” 的字段就行了,MAC 地址确实并不是必要的。

But,从宏观来说,IP 地址只管上层建筑即路线规划,底层具体走的逻辑交给 MAC 地址来做,这样其实才符合 TCP/IP 协议体系这种分层的理念!

所以,这种设计并非多次一举,而是为了符合最根本的设计理念。

流水不争先,争的是滔滔不绝,我是小牛肉,小伙伴们下篇文章再见 👋

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 飞天小牛肉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python全栈学习记录--3(2018
一、Linux操作系统 1、unix是目前世界上最稳定,安全的系统。是分时操作系统,多个联机终端和采用多道技术。 2、开源代表代表公开,所有人可以编辑查看,但不代表免费。 3、服务器要的是性能,稳定,效率,不间断运行。故LINUX更能胜任,WINDOW不行,运行久了就会很卡。 4、桥接:用交换机的方式上网,相当于在局域网内多增加一台电脑联网。 5、虚拟内存一般设为物理内存的1.5-2倍,但不超过8G。物理内存大于4G就足以运行目前几乎所有程序了,没必要设置虚拟内存了。
py3study
2020/01/08
5870
【计网】计算机网络基础
首先,协议是一种约定。就比如使用汉语进行通信,就要遵循汉语的使用约定,不能胡乱遣词造句!
叫我龙翔
2024/09/13
580
【计网】计算机网络基础
5 幅图拿下 ARP 协议
在上一篇文章 别再恐惧 IP 协议 中, 我们了解到,「网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信」。也就是说:只要在网络层确定了 IP 地址,就可以向这个目标地址发送 IP 数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个 IP 地址所对应的 MAC 地址。
飞天小牛肉
2021/02/26
4260
5 幅图拿下 ARP 协议
经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么
在浏览器的地址栏输入一个 URL 后回车,背后到底发生了什么才能使得一个界面完美的展现在我们眼前?
飞天小牛肉
2021/02/26
6.6K1
经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么
IP协议(网络)
主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称;
ljw695
2025/01/03
730
IP协议(网络)
数据链路层重点总结
又是新的一年,展望2023年,博主给大家带来了网络中数据链路层的重点总结,附上博主本人的实例,帮助大家更好的理解数据是怎么在网络中传输的。
VIBE
2023/01/04
4650
数据链路层重点总结
大白话-OSI七层协议,保证看一遍就会
网络和操作系统是本人的软肋,今天正好看到一篇相关OSI七层协议的文章,感觉还不错,在此记录笔记
小土豆Yuki
2022/12/01
3.1K0
大白话-OSI七层协议,保证看一遍就会
计算机网络之网络层
  网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是"路径选择、路由及逻辑寻址"。
程序员波特
2024/01/19
3330
计算机网络之网络层
Linux网络-IP协议
网络层就是为了解决不同网络有不同的规范要求的差异问题,寻找一个不同网络间都能共同遵守的网络通信规范,以便不同网络间能相互识别,并接受对方的网络请求。也就是一个中转站的作用,两个毫无交集的网络通过这个中转站来建立交集
用户9645905
2022/11/15
4K0
Linux网络-IP协议
别再恐惧 IP 协议(万字长文 | 多图预警)
0. 前言 对我个人来说,本科的时候,除去计算机组成原理,计算机网络堪称复习难度最大的一门课,其中无穷无尽的 IP 地址的计算、子网划分、路由转发简直就是梦靥。现在回过头来再看,其实真的不难,只不过
飞天小牛肉
2021/02/26
7020
别再恐惧 IP 协议(万字长文 | 多图预警)
路由器、交换机、集线器
集线器是最基础的网络设备之一。它的主要作用是将多个网络设备连接在一起,使它们可以共享同一个局域网,是一种将多条双绞线或光纤集合连接在同一段物理介质下的设备,通常工作在物理层(即OSI参考模型第一层),用于连接局域网段。
为为为什么
2024/05/25
3650
路由器、交换机、集线器
TCP/IP学习笔记
本文详细介绍了OSI七层模型和TCP/IP四层模型,包括各层的功能、协议及其在数据通信中的作用,如应用层负责数据格式,传输层的TCP和UDP,网络层的IP和MAC寻址,以及数据链路层的硬件接口。以HTTP请求为例,展示了数据从应用层到网络层再到数据链路层的完整过程。
重案组之hu
2024/10/16
730
计算机网络——抓包与分析
​ 本次作业需要使用到一些特定的抓包软件,如Wireshark、Sniffer等。这些软件可以通过对设备上产生的数据包进行截取,通过分析这些数据包可以详细获取一些我们所做的操作的行为,了解计算机底层通讯的具体过程,甚至通过数据包可以进行分析异常的流量,这些对网络的稳定性与安全性都有着十分重要的意义。
星陨1357
2023/03/14
1.1K0
计算机网络——抓包与分析
【Linux】数据链路层:以太网协议
1. (1)IP提供了将数据包跨网络发送的能力,这种能力实际上是通过子网划分+目的ip+查询节点的路由表来实现的,但实际上数据包要先能够在局域网内部进行转发到目的主机,只有有了这个能力之后,数据包才能跨过一个个的局域网,最终将数据包发送到目的主机。 所以跨网络传输的本质就是跨无数个局域网内数据包转发的结果,离理解整个数据包在网络中转发的过程,我们只差理解局域网数据包转发这临门一脚了。 (2)而现在最常见的局域网通信技术就是以太网,无线LAN,令牌环网(这三种技术在数据链路层使用的都是MAC地址),早在1970年代IBM公司就发明了局域网通信技术令牌环网,但后来在1980年代,局域网通信技术进入了以太网大潮,原来提供令牌网设备的厂商多数也退出了市场,在目前的局域网种令牌环网早已江河日下,明日黄花了,等到后面进入移动设备时代时,在1990年,国外的一位博士带领自己的团队发明了无线LAN技术,也就是wifi这项技术,实现了与有线网一样快速和稳定的传输,并在1996年在美国申请了无线网技术专利。 今天学习的正是以太网技术。
举杯邀明月
2023/10/17
5830
【Linux】数据链路层:以太网协议
转发表(MAC表)、ARP表、路由表总结
计算机网络中一个关键步骤在于通信路径上不同节点对于流经本节点的数据包转发,常见的交换设备主要是交换机(第二层、三层)和路由器(第三层),在实际运行时,它们各自维护一些表结构帮助完成数据包的正确寻址与转发,本文详细介绍了三张至关重要的表:转发表、ARP表与路由表的在网络数据包转发功能中发挥的作用,以及它们协同工作的原理,顺便也会接着之前的文章继续谈谈交换机和路由器的一些事儿。
我是东东东
2018/08/01
28.9K4
转发表(MAC表)、ARP表、路由表总结
TCP/IP(四)网络层
前言 前面给大家介绍了计算机网络的基本概述,物理层和数据链路层。这一篇给大家介绍面试中经常会被问到的网络层。在介绍之前我们回顾一下之前学习的知识!   CP/IP协议栈:物理层、链路层、网络层、传输层、应用层(会话层+表示层+应用层)   物理层:通过比特流在线路中传输来完成我们传输数据的目的,传输的方式很多种,传输的介质也很多中,光纤等   链路层:数据帧,在数据包(报)上加mac地址形成数据帧,其中的CRC检测原理用来检测数据的完整性,这一层用到的协议有PPP(点到点协议)、例如家中的拨号上网,    
用户1195962
2018/01/18
1.8K0
TCP/IP(四)网络层
为什么有了mac地址后还需要IP地址
今天闲来无事,看了看OSI七层模型,也就是开放式系统互连,该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)
半月无霜
2025/01/09
1280
71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP
这要从 TCP/IP 协议说起,互联网使用的是 TCP/IP 协议,其中 IP 协议又是最重要的协议之一。IP 协议是基于 IP 地址将数据包发送给目的主机,能够让互联网上任何两台主机进行通信。
网络工程师笔记
2021/05/17
1.8K0
71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP
有了 IP 地址,为什么还要用 MAC 地址?
在整个网络中数据被封装成数据报文进行发送,就像我们生活中寄快递时将物品放进包裹中。而数据在路由器之间的跳转也可以看作是不同地区快递小哥对物流的交接。
网络工程师笔记
2022/10/31
2.4K0
TCP/IP协议详解
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是互联网的基本协议,也是国际互联网络的基础。
天乐404
2023/11/16
3.4K0
TCP/IP协议详解
相关推荐
python全栈学习记录--3(2018
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文