【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.mzph.cn/pingmian/57743.shtml

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

相关文章

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

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

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

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

一分钟学会MATLAB-时间序列预测模型

时间序列预测是使用过去的数据点来预测未来的数据点。MATLAB提供了强大的工具和函数库来建立和评估时间序列预测模型。以下是一个使用MATLAB进行时间序列预测的基本流程,包括数据准备、模型建立、模型评估和预测。 时间序列预测实例代码 1. 数据准备 首先&#x…

2024.7最新子比主题zibll7.9.2开心版源码+授权教程

授权教程: 1.进入宝塔搭建一个站点 绑定 api.zibll.com 域名 并上传 index.php 文件 2.设置伪静态 3.开启SSL证书,找一个能用的域名证书,将密钥(KEY)和证书(PEM格式)复制进去即可 4.在宝塔文件地址栏中输入 /etc 找到 hosts文件并打开&a…

[Linux][进程间通信] 命名管道

命名管道是一种进程间通信的方式,底层原理与匿名管道极为相似,本质是通过在磁盘上新建一个特殊的文件,然后通过这个文件来进行通信 指令: mkfifo [文件名/路径] 该指令用于创建一个命名管道,可以看到文件的类型是p p 类型 命名管道文件 p文件大小恒为0 可通过echo和cat向其…

JavaEE----多线程(四)----阻塞队列的介绍和初步实现

文章目录 1.阻塞队列1.1作用一:解耦合1.2作用二:削峰填谷1.3系统里面的阻塞队列的使用1.4实现普通队列1.5在普通队列的基础上面实现阻塞队列1.6设计优化1.7实现初步的生产者消费者模型 1.阻塞队列 阻塞队列的最大意义:就是实现“生产者消费者…

js 鼠标拖动canvas画布

功能点&#xff1a; 鼠标拖拽canvas画布移动鼠标检测rect鼠标检测circle 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-sc…

SQL 干货 | SQL 半连接

大多数数据库开发人员和管理员都熟悉标准的内、外、左和右连接类型。虽然可以使用 ANSI SQL 编写这些连接类型&#xff0c;但还有一些连接类型是基于关系代数运算符的&#xff0c;在 SQL 中没有语法表示。今天我们将学习一种这样的连接类型&#xff1a;半连接&#xff08;Semi …

PyTorch 中 12 种张量操作详解

创作不易&#xff0c;还请各位同学三连点赞&#xff01;&#xff01;收藏&#xff01;&#xff01;转发&#xff01;&#xff01;&#xff01; 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料&#xff0c;免费自取&#xff01;&#xff01; PyTorc…

后台管理员登录实现--系统篇

我的小系统后台原来就有一个上传图片的功能还夹带个删除图片的功能&#xff0c;还嵌到了一个菜单里面。之前效果如下 那么现在为了加大安全力度&#xff0c;想增加一个登录页面。通过登录再到这个页面。看着貌似很简单&#xff0c;但是听我细细说来&#xff0c;要新增些什么东西…

机器学习——元学习(Meta-learning)

元学习&#xff08;Meta-learning&#xff09;&#xff1a;学习如何学习的机器学习 元学习&#xff08;Meta-learning&#xff09;&#xff0c;即“学习如何学习”&#xff0c;是机器学习领域中一个令人兴奋且极具潜力的研究方向。它的核心目标是让机器学习系统学会高效地学习…

海港[NOIP2016]

题目描述 小 K 是一个海港的海关工作人员&#xff0c;每天都有许多船只到达海港&#xff0c;船上通常有很多来自不同国家的乘客。 小 K 对这些到达海港的船只非常感兴趣&#xff0c;他按照时间记录下了到达海港的每一艘船只情况&#xff1b;对于第 i 艘到达的船&#xff0c;他…

C#第四讲:C#语言基本元素概览,初识类型、变量与方法,算法简介

一、构成C#语言的基本元素 1、标识符 允许将下划线用作初始字符(这是C编程语言的传统)。 允许在标识符中使用 Unicode 转义序列&#xff0c;以及允许“”字符作为前缀以使关键字能够用作标识符。 &#xff08;1&#xff09;命名方法 变量名&#xff1a;用驼峰法。&#xff…

【SQL实验】表的更新和简单查询

完整代码在文章末尾 在上次实验创建的educ数据库基础上&#xff0c;用SQL语句为student表、course表和sc表中添加以下记录 【SQL实验】数据库、表、模式的SQL语句操作_创建一个名为educ数据库,要求如下: (下面三个表中属性的数据类型需要自己设计合适-CSDN博客在这篇博文中已经…

安全见闻---清风

注&#xff1a;本文章源于泷羽SEC&#xff0c;如有侵权请联系我&#xff0c;违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 安全见闻1 泷哥语录&#xff1a;安全领域什么都有&#xff0c;不要被表象所迷惑&#xff0c;无论技术也好还是其他方面…

YoloV9改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发

摘要 在目标检测领域,YoloV9以其高效和准确的性能而闻名。然而,为了进一步提升其检测能力,我们引入了DeBiFormer作为YoloV9的主干网络。这个主干网络的计算量比较大,不过,上篇双级路由注意力的论文受到很大的关注,所以我也将这篇论文中的主干网络用来改进YoloV9,卡多的…

[jeecg-boot] vue3 版本 nvm 下载node版本

安装pnpm 使用cnpm 进行下载依赖

JavaWeb 23.一文速通npm的配置和使用

目录 一、npm的介绍 二、npm的安装和配置 1.安装 &#xff1a; 2.配置依赖下载使用阿里镜像 3. 配置全局依赖下载后存储位置 4.升级npm版本 5.环境变量配置 三、npm常用命令 1.项目初始化 npm.init npm init -y 2.安装依赖文件 3. 升级依赖 4.卸载依赖 5.查看依赖 查看项目…

深入浅出 Vue3 nextTick

程序员节日快乐~ #1024程序员节 | 征文# nextTick 概念 当你在 Vue 的响应式数据模型中对数据进行修改时&#xff0c;这些变化并不会立即同步到 DOM 上_&#xff0c;而是会在当前的微任务队列&#xff08;microtask queue&#xff09;执行完毕后进行批量更新。这种机制被称为…

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)

内网穿透&#xff1a;如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍 前言 远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接&#xff0c;Windows系统&#xff08;家庭版除外&#xff09;也是支持这种协议的&#xff0c;无需安装…