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

        前言:本节内容讲解一些网络基础相关的知识点, 不涉及网络代码!同样的本节内容是作为前一篇的补充知识点, 前一篇文章地址:【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.rhkb.cn/news/456788.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文笔记】MLSLT: Towards Multilingual Sign Language Translation

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: MLSLT: Towards Multiling…

计算机网络:网络层 —— IPv4 协议的表示方法及其编址方法

文章目录 IPv4IPv4的表示方法IPv4的编址方法分类编址A类地址B类地址C类地址可指派的地址数量一般不使用的特殊IPv4地址 划分子网编址子网掩码默认子网掩码 无分类编址方法地址掩码斜线记法无分类域间路由选择 CIDR IPv4 IPv4(Internet Protocol version 4&#xff…

麒麟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. &…

C++ [项目] 愤怒的小鸟

现在才发现C游戏的支持率这么高&#xff0c;那就发几篇吧 零、前情提要 此篇为 制作,由于他没有CSDN,于是由我代发 一、基本介绍 支持Dev-C5.11版本(务必调为英文输入法),基本操作看游戏里的介绍,怎么做的……懒得说,能看懂就看注释,没有的自己猜,如果你很固执……私我吧 …

Oracle SQL Developer 同时打开多个table的设置

Oracle SQL Developer 同时打开多个table的设置 工具 》 首选项 》数据库 》对象查看器&#xff0c;勾选 “自动冻结对象查看器窗口”

数据结构------手撕顺序表

文章目录 线性表顺序表的使用及其内部方法ArrayList 的扩容机制顺序表的几种遍历方式顺序表的优缺点顺序表的模拟实现洗牌算法 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;…

TLS协议基本原理与Wireshark分析

01背 景 随着车联网的迅猛发展&#xff0c;汽车已经不再是传统的机械交通工具&#xff0c;而是智能化、互联化的移动终端。然而&#xff0c;随之而来的是对车辆通信安全的日益严峻的威胁。在车联网生态系统中&#xff0c;车辆通过无线网络与其他车辆、基础设施以及云端服务进行…

Lucas带你手撕机器学习——套索回归

好的&#xff0c;下面我将详细介绍套索回归的背景、理论基础、实现细节以及在实践中的应用&#xff0c;同时还会讨论其优缺点和一些常见问题。 套索回归&#xff08;Lasso Regression&#xff09; 1. 背景与动机 在机器学习和统计学中&#xff0c;模型的复杂性通常会影响其在…

【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)

文章目录 在写redis集群搭建的时候,有提到过使用nfs做storageclass,那时候kubernetes是1.20版本,https://dongweizhen.blog.csdn.net/article/details/130651727 现在使用的是kubernetes 1.29版本,根据之前的修改方式并未生效,反而提示:Error: invalid argument "Re…

Claude Financial Data Analyst:基于Claude的金融数据分析工具!免费开源!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

智创 AI 新视界 -- 探秘 AIGC 中的生成对抗网络(GAN)应用

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【算法设计与分析】-回溯法的回忆-学习【期末复习篇章】

引言 简单说,迷宫问题的求解方法就是走的通就走&#xff0c;走不通 就回头寻找另外的路径的一种满足某约束条件的穷举式 搜索技术 回溯法是一种在解空间中搜索可行解或最优解的方法。 该方法通常将解空间看做树形结构&#xff0c;即状态空间树。从根结 点开始,以深度优先对状态…

李沐读论文-启发点记录2:Resnet--残差连接--kaiming老师神作

&#xff08;一&#xff09;可以借鉴&#xff1a; 1. 计算机视觉的论文&#xff0c;都会在第一页的右上角&#xff0c;放上一张好看的图&#xff01; 2.bottleNet的设计——很大程度上节省了计算FLOPs开销&#xff0c;这是Resnet50及其更大版本都会用到的设计。 3.Resnet在de…

[RK3566-Android11] 使用SPI方式点LED灯带-JE2815/WS2812,实现呼吸/渐变/随音量变化等效果

问题描述 之前写了一篇使用GPIO方式点亮LED灯带的文章 https://blog.csdn.net/jay547063443/article/details/134688745?fromshareblogdetail&sharetypeblogdetail&sharerId134688745&sharereferPC&sharesourcejay547063443&sharefromfrom_link 使用GPIO…

OceanBase 首席科学家阳振坤:大模型时代的数据库思考

2024年 OceanBase 年度大会 即将于10月23日&#xff0c;在北京举行。 欢迎到现场了解更多“SQL AI ” 的探讨与分享&#xff01; 近期&#xff0c;2024年金融业数据库技术大会在北京圆满举行&#xff0c;聚焦“大模型时代下数据库的创新发展”议题&#xff0c;汇聚了国内外众多…

详细尝鲜flutter

flutter 161由于官方的汉化文档感觉还是有很多没有汉化的地方 &#xff0c;所以自己打一遍的同时写下了以下笔记 社区生态 官方文档 所有的控件:Widget 目录 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 官方论坛的教程 Flutter Widget框架概述 - Flutter中文网…

微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件

要在微信小程序中关闭默认的 navigationBar&#xff0c;并使用自定义的 nav-bar 组件&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 关闭默认的 navigationBar 在你的页面的配置文件 *.json 中设置 navigationBar 为 false。你需要在页面的 JSON 配置文件中添加以下代码…

JS 中 reduce()方法及使用

摘要&#xff1a; 开发中经常会遇到求合计的状况&#xff01;比如和&#xff0c;积等&#xff01;这次遇到的是求合计的和&#xff01; reduce()方法是JavaScript中Array对象的一种高阶函数&#xff0c;用于对数组中的每个元素执行一个由您提供的reducer函数&#xff08;回调函…

内置数据类型、变量名、字符串、数字及其运算、数字的处理、类型转换

内置数据类型 python中的内置数据类型包括&#xff1a;整数、浮点数、布尔类型&#xff08;以大写字母开头&#xff09;、字符串 变量名 命名变量要见名知意&#xff0c;确保变量名称具有描述性和意义&#xff0c;这样可以使得代码更容易维护&#xff0c;使用_可以使得变量名…

STM32-Modbus协议(一文通)

Modbus协议原理 RT-Thread官网开源modbus RT-Thread官方提供 FreeModbus开源。 野火有移植的例程。 QT经常用 libModbus库。 Modbus是什么&#xff1f; Modbus协议&#xff0c;从字面理解它包括Mod和Bus两部分&#xff0c;首先它是一种bus&#xff0c;即总线协议&#xff0c;和…