【linux网络编程】| 网络基础 | 解析IP与Mac地址的区别

news2024/10/26 8:58:39

        前言:本节内容讲解一些网络基础相关的知识点, 不涉及网络代码!同样的本节内容是作为前一篇的补充知识点, 前一篇文章地址:【linux网络编程】 | 网络基础Ⅰ| 认识网络-CSDN博客,本篇文章内容较少, 友友们可以放松观看哦。

        ps:本节内容为网络的基础,所以不需要太多系统相关知识。 友友们在看完前一篇文章就可以观看喽

目录

令牌环网

跨网络传输

网络通信的基本脉络示意图

名词

ifconfig


令牌环网

        令牌环网不像碰撞检测, 碰撞避免的以太网, 他同样是每一个时刻, 同一个局域网内只有一台主机发送消息, 只不过它是如何保存的, 就相当于每一台主机, 比如a主机, 他要获得一个特定的标识数字。 这个标识数字a主机拿到了,a主机才能发消息。 所以令牌环网的特点就是局域网内只有一个令牌,哪一个主机拿到令牌, 他才能发消息。 (相当于锁, 只是网络中没有锁的概念。)

        ps:令牌环网, 以太网其实都属于数据链路层, 只不过底层协议是不一样的。 网络是层状结构的, 将令牌环网替换掉以太网,上层不受到影响。

跨网络传输

        我怎么知道我的数据要跨网络交给对方主机呢?这里就要引入一个地址:IP地址。

        IP地址的作用:ip地址能够表示特定一台主机在全网中的唯一性。 而mac地址只应用于局域网, 保证的是局域网里面的唯一性(mac地址理论上可以保证全网的唯一性)。

  • ip地址是什么:

可以利用两个小故事理解IP地址:

        假设张三家在辽宁,然后冬天了,张三觉得辽宁有点冷,他想去云南去玩.他想去云南去玩的时候怎么去呢?

  •         他就直接做动车一站一站的转乘一边玩一边走去了辽宁。所以张三就开始做路径规划。张三问了当地的大爷,去云南怎么走。大爷告诉他先去河北,然后张三就去了河北。然后到了河北后张三继续问当地的大爷,大爷告诉他去山西.张三就去山西了。张三就这么一边问一边玩,一边走。经过了河北,山西,陕西,四川。然后终于到了云南。那么问题来了,张三为什么要到河北?为什么要到山西?为什么要到河北?为什么要到四川?其实,张三在路上,张三身上一定有两套地址,第一套地址一从哪来到哪去。第二套地址一一上一站从哪来,下一站到哪去。

        在路径当中,我们从哪来,到哪去,也就是第一套地址,一直都是不变的。在路上每一个地方,我们的上一站从哪来,下一站到哪里去一直是变化的。——这里的第一套地址, 就是IP地址。 第二套地址, 就是我们的mac地址。 而ip地址为什么要有呢?不就是因为它要给我们做定位, 让我们一直有一个目标, 这个目标就是我们的目标主机的ip地址。

  • ip地址有什么用 

        由上面的结论我们就知道——ip地址的做用就是引导数据到达目标主机, 进行定位。 

  • ip VS mac 

        那么,假如我们想要去辽宁的鞍山。那么张三还会去云南绕一圈再回来吗?是不是就不会了,而是直接在本省内直接动车到鞍山了?
        换言之,我们怎么知道我们的客户端要把数据通过路由器发给服务端,原因是目的IP表明我们的目标主机和当前主机不在同一个子网。不在子网就需要跨网络。所以,我们凭什么我们的数据交给路由器,是因为我们的要去的目标不在一个子网内.

        所以,在客户端,把数据交给路由器的本质:本质就是局域网通信。假设我们的路由器的IP地址叫IP_R, mac地址叫Mac_R.所以我们对应的路由器自己的mac地址就必须得被我们的用户知道.

        假设我们mac桢报头里填的是Mac_c、目标地址就是路由器的mac地址,就是Mac_R。然后呢,我们的主机就将报文放到了以太网当中。

        放到以太网之后,所有的主机就都能够接收到这个报文。但是这些主机接收到报文之后,就分离有效载荷,分离后判断mac地址,一看和自己不一样就都丢弃了。但是对于路由器,路由器也接收到报文。它一看和自己的mac地址一样。所以,有效载荷部分就向上交付给了路由器的网络层。然后由路由器的网络层查找对应的IP地址,查到之后,知道了有效载荷内的目标主机的IP地址了。就将有效载荷向下交付!交给令牌环驱动程序。而令牌环驱动程序也是驱动程序,所以他就必须要封装令牌环驱动程序的报文。封装完成之后就找到目标主机,然后向上交付!!

        ——这, 就是mac地址和ip地址在网络数据流传输的过程中的不同作用。 所以IP地址尤其是目的IP, 一般都不会改变的, 会协助我们进行路径选择。 mac地址出局域网之后, 源头和目的都要被丢弃, 让路由器重新选择。 

网络通信的基本脉络示意图

 下面是我们网络通信的脉络图, 两边是我们的源头主机和目标主机。 中间是一个一个的子网:

        日常中, 我们的主机想要向远端传送数据, 就要经过很多路由器这样的设备。 (每个路由器都有两张网卡),然后我们的源头主机向目标主机传送数据的示意图就是如下:

        就是这样从路由器的一端网卡进入, 然后经过路由器转化mac地址, 由另一端网卡送出,反复中转到达目标主机!

名词

  • 在传输层的报文我们称为数据段, 数据报。
  • 在网络层的报文我们称为数据报。
  • 在链路层的报文我们称为数据帧。

ifconfig

 

         上面的eth0就是我们的网卡接口。 另外, inet其实就是ip地址, 这个192.168.3.85其实每一个点之间的数字都是0 ~ 255, 所以这整个的ip地址就是四字节。   

        这个ether其实就是以太的意思。 后面的这些数字都是16进制数, 所以就可以看到一共6个字节。 每个字节对应的8个比特位。而这个其实就是mac地址。 

windows下使用ipconfig也可以查对应的ip地址。 

 ——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2223890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

命名空间std, using namespace std

命名空间std&#xff0c;using namespace std 在标准C以前&#xff0c;都是用#include<iostream.h>这样的写法的&#xff0c;因为要包含进来的头文件名就是iostream.h。标准C引入了名字空间的概念&#xff0c;并把iostream等标准库中的东东封装到了std名字空间中&#x…

UE5 源码学习 初始化

跟着 https://www.cnblogs.com/timlly/p/13877623.html 学习 入口函数 UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp WinMain 入口 int32 WINAPI WinMain(_In_ HINSTANCE hInInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ char* p…

unity开发之可视化制作动画

录制动画 1&#xff09;打开录制动画页面&#xff08;或者按快捷键ctrl6&#xff09; 2&#xff09;选中需要录制动画的对象 3&#xff09;创建动画列表&#xff0c;注意现在还没有录制动画&#xff0c;我这里创建了开门和关门动画列表 4&#xff09;选择需要录制动画的对象的相…

【计网】UDP Echo Server与Client实战:从零开始构建简单通信回显程序

目录 前言&#xff1a; 1.实现udpserver类 1.1.创建udp socket 套接字 --- 必须要做的 socket&#xff08;&#xff09;讲解 代码实现&#xff1a;​编辑 代码讲解&#xff1a; 1.2.填充sockaddr_in结构 代码实现&#xff1a; 代码解析&#xff1a; 1.3.bind sockfd和…

关于在vue2中接受后端返回的二进制流并进行本地下载

后端接口返回&#xff1a; 前端需要在两个地方写代码&#xff1a; 1.封装接口处&#xff0c;responseType: blob 2.接收相应处 download() {if (this.selectionList.length 0) {this.$message.error("请选择要导出的数据&#xff01;");} else {examineruleExport…

【Git】将本地代码提交到github仓库

一、创建仓库 复制这里的HTTP连接码 二、仓库初始化 进入你要提交的代码文件夹 右键选择 Git Bach Here 输入命令 git clone [HTTP连接码] 此时文件夹里会出现一个新的文件夹&#xff0c;将原来的文件当今这个新的文件夹 三、上传代码 执行命令 cd [新文件夹] 将所有文件放…

ArcGIS必会的选择要素方法(AND、OR、R、IN等)位置选择等

今天来看看ArcGIS中的几个选择的重要使用方法 1、常规选择、 2、模糊查询、 3、组合复合条件查询&#xff08;AND、OR、IN&#xff09;&#xff0c; 4、空值NULL查询 5、位置选择 推荐学习&#xff1a; 以梦为马&#xff0c;超过万名学员学习ArcGIS入门到实战的应用课程…

Pandas模块之垂直或水平交错条形图

目录 df.plot() 函数Pandas模块之垂直条形图Pandas模块之水平交错条形图 df.plot() 函数 df.plot() 是 Pandas 中的一个函数&#xff0c;用于绘制数据框中的数据。它是基于 Matplotlib 库构建的&#xff0c;可以轻松地创建各种类型的图表&#xff0c;包括折线图、柱状图、散点…

权重衰减学习

1.权重衰减是最广泛使用的正则化技术之一 %matplotlib inline import torch from torch import nn from d2l import torch as d2l 2.生成数据 n_train, n_test, num_inputs, batch_size 20, 100, 200, 5 true_w, true_b torch.ones((num_inputs, 1)) * 0.01, 0.05 train_dat…

论文笔记:LaDe: The First Comprehensive Last-mile Delivery Dataset from Industry

2023 KDD 1 intro 1.1 背景 随着城市化进程的加快和电子商务的发展&#xff0c;最后一公里配送已成为一个关键的研究领域 最后一公里配送&#xff0c;如图1所示&#xff0c;是指连接配送中心和客户的包裹运输过程&#xff0c;包括包裹的取件和配送除了对客户满意度至关重要外…

《等保测评新视角:安全与发展的双赢之道》

在数字化转型的浪潮中&#xff0c;企业面临的不仅是技术革新的挑战&#xff0c;更有信息安全的严峻考验。等保测评&#xff0c;作为国家网络安全等级保护的一项重要措施&#xff0c;不仅为企业的安全护航&#xff0c;更成为推动企业高质量发展的新引擎。本文将从全新的视角&…

如何用 Spring AI + Ollama 构建生成式 AI 应用

为了构建生成式AI应用&#xff0c;需要完成两个部分&#xff1a; • AI大模型服务&#xff1a;有两种方式实现&#xff0c;可以使用大厂的API&#xff0c;也可以自己部署&#xff0c;本文将采用ollama来构建• 应用构建&#xff1a;调用AI大模型的能力实现业务逻辑&#xff0c;…

mfc之tab标签控件的使用--附TabSheet源码

TabSheet源码 TabSheet.h #if !defined(AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_) #define AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // TabSheet.h : …

es实现桶聚合

目录 聚合 聚合的分类 DSL实现桶聚合 dsl语句 结果 聚合结果排序 限定聚合范围 总结 聚合必须的三要素&#xff1a; 聚合可配置的属性 DSL实现metric聚合 例如&#xff1a;我们需要获取每个品牌的用户评分的min,max,avg等值 只求socre的max 利用RestHighLevelClien…

【Multisim14.0正弦波>方波>三角波】2022-6-8

缘由有没有人会做啊Multisim14.0-其他-CSDN问答参考方波、三角波、正弦波信号产生 - 豆丁网

arcgis中dem转模型导入3dmax

文末分享素材 效果 1、准备数据 (1)DEM (2)DOM 2、打开arcscene软件 3、加载DEM、DOM数据 4、设置DOM的高度为DEM

【虚幻引擎UE】UE5 音频共振特效制作

UE5 音频共振特效制作 一、基础准备1.插件准备2.音源准备 二、创建共感NRT解析器和设置1.解析器选择依据2. 创建解析器3. 创建解析器设置&#xff08;和2匹配&#xff09;4.共感NRT解析器设置参数调整5.为共感NRT解析器关联要解析的音频和相应设置 三、蓝图控制1.创建Actor及静…

Openlayers高级交互(8/20):选取feature,平移feature

本示例介绍如何在vue+openlayers中使用Translate,选取feature,平移feature。选择的时候需要按住shift。Translate 功能通常是指在地图上平移某个矢量对象的位置。在 OpenLayers 中,可以通过修改矢量对象的几何位置来实现这一功能。 效果图 配置方式 1)查看基础设置:http…

AnaTraf | 全面掌握网络健康状态:全流量的分布式网络性能监测系统

AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具AnaTraf网络流量分析仪是一款基于全流量&#xff0c;能够实时监控网络流量和历史流量回溯分析的网络性能监控与诊断系统&#xff08;NPMD&#xff09;。通过对网络各个关键节点的监测&#xff0c;收集网络性能…

麒麟v10 arm64 部署 kubesphere 3.4 修改记录

arm64环境&#xff0c;默认安装 kubesphere 3.4 &#xff0c;需要修改几个地方的镜像&#xff0c;并且会出现日志无法显示 1 fluentbit:v1.9.4 报错 <jemalloc>: Unsupported system page size Error in GnuTLS initialization: ASN1 parser: Element was not found. &…