Linux: 网络基础
1.协议
为什么要有协议:减少通信成本。所有的网络问题,本质是传输距离变长了。
什么是协议:用计算机语言表达的约定。
2.分层
软件设计方面的优势—低耦合。
一般我们的分层依据:功能比较集中,耦合度比较高的模块层—高内聚。
每一层都要解决特定的问题!都有匹配的协议。
3.网络要解决的问题:
具有“下一跳”的能力,如何将数据交付给直接相连的下一台主机。
路径选择能力。
容错纠错能力。
目标主机收到数据后,解决应用的问题。
4.OSI七层模型
会话层、表示层、应用层;都被工程中合并为应用层。
5.TCP/IP五层(四层)模型
物理层:
了解集线器(当信息长距离传输时,信号衰减过多集线器可以对信息做信号放大)。
模拟信号(振幅)用于网络传输,数字信号(0/1的离散信号)适合家庭内部路由器二进制解释。
调制解调器(猫mode--光纤/双绞线-网线),装网:光纤先接到猫(适配网络发送和本地局域网做数据解释,数字信号和模拟信号)上,再从猫接一根线和路由器连接。
连接局域网中的设备是路由器,路由器识别的是0/1二进制的数字信号。
网卡:有很多寄存器,其中储存很多0/1序列,它是连接计算机和局域网传输介质的一个硬件。
数据链路层:如何将数据交给相邻的主机。
网络层:负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层。
传输层:解决纠错和容错的能力。解决两台主机之间数据通信时的可靠性问题。
应用层:收到对发送的请求,应用层解释。

6.网络传输的基本流程
6.1协议报头
a.协议每一层都有,而每一个协议最终表现就是协议都要有报头。
b.协议通常是通过协议报头来进行表达的,包头就是数据包经过每一层协议对其的封装。
c.每一份数据最终在被发送或者不同的协议层中,都要有自己的报头。
在网络协议中,我们可以认为同层协议在直接通信,也可以理解成向下交付,这是两种不同的认知。

—如何判断哪里是报头,哪里是有效载荷—每一层协议的报头中,一定要涵盖这些信息。
—如何判断自己的有效载荷该交给上层的哪个协议—封装报头采用的方式。
6.2局域网
a.局域网中两台主机可以直接通信吗? ——可以,两台相连的主机。(WIFI热点就是一个局域网)
b.局域网通信的原理:每一台主机都有网卡,每一张网卡都有自己的地址,这个地址称之为mac地址,48位的二进制数据可以按照16位进行解释,一串字符用来标识网卡的唯一性,被写进网卡里。全球内唯一,但不应用于全球,而是用在局域网中表征自己的唯一性。基本设备都有它们的序列号,方便溯源促使厂商产品迭代。
局域网主机之间是可以通信的,它们通过MAC地址识别信息是不是发送给自己的信息,如果不是就丢弃,是就进行处理。
常见局域网:
以太网:在局域网中任何一个时刻只允许一台主机发消息,否则就会发生碰撞—在一个冲突域内,这个局域网内的网络资源可以被称作共享资源,发生碰撞了该数据作废发送失败,要重新发送。
令牌环网:在局域网内只允许拿到特定数据的主机发送数据,一并发给另一台主机,另一台主机会拥有发送数据的权利...
无线LAN:以太网的变种。(以太:宇宙中可以传播光的一种介质)
6.3主机间跨网络通信
两台主机在同一网络内可以通过TCP/IP协议通过交换机/集线器直接交流;跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。一个设备至少要横跨两个网络,才能实现数据报跨网络转发->路由器必须要横跨至少两个网络->有两个网络连接接口。
在链路层局域网有多种通信标准,在网络层往上都认为整个互联网全部是IP协议—屏蔽底层网络的差异;如今的互联网能够应用全球就是得益于IP协议屏蔽底层的差异。
请求与响应->数据段->数据包->数据帧
每一层要明确1>将报头和有效载荷分离 2>根据报头的字段决定将有效载荷交付给上层的哪些协议
###后续学习怎么理解在C语言中把一块内存空间划分成报头区域和有效载荷区域###

7.IP地址和MAC地址
当一台主机跨网络给另一台主机发信息时,会先根据IP地址查找对应的MAC地址(通过ARP协议或路由表),并在每跨一个网段时更改源MAC地址和目的MAC地址以适应新的网络段和传输路径(在该段局域网/网段中查找下一个路由/目标主机根据MAC地址)。而源IP地址和目的IP地址则保持不变,用于指导数据包在网络中的路由选择。总之在网络传输中,在每次路由选择时参考IP地址来更改下一个目标MAC地址,直到改成目标主机的IP地址完成数据传输。
7.1IP地址
IP地址是在IP协议中, 用来标识网络中不同主机的地址。IP地址4个字节32个bit位,IPV6是由于IPV4的IP地址不够的产物;IPV6(16字节-128bit位)在局域网环境已经开始推行。IP地址即在局域网中使用又在广域网中使用。
性质:IP地址是逻辑地址,不具备唯一性(私有地址在局域网内可重复,但公网地址全球唯一),是可以改变的,通常由网络管理员分配和管理。
应用:IP地址用于标识网络上的主机或设备,用于不同网络之间的通信,实现跨网络的路由和数据传输;IP地址在OSI模型中的第三层网络层工作,网络层基于IP地址转发报文。
7.2 MAC地址
MAC地址用来识别数据链路层中相连的节点。能够表示一张唯一的网卡,表现在局域网(主机间可以直接通信不用路由器转换)中。
性质:MAC地址是物理地址,具有唯一性,每个硬件制造出的MAC地址是固定的,全球唯一不可变。
应用:MAC地址作用是控制数据包在局域网中(数据链路层)的传输,用于局域网内设备间的通信;MAC地址在OSI模型中的第二层数据链路层工作,数据链路层基于MAC地址进行转发数据帧。
相关文章:
Linux: 网络基础
1.协议 为什么要有协议:减少通信成本。所有的网络问题,本质是传输距离变长了。 什么是协议:用计算机语言表达的约定。 2.分层 软件设计方面的优势—低耦合。 一般我们的分层依据:功能比较集中,耦合度比较高的模块层…...
【实战篇】巧用 DeepSeek,让 Excel 数据处理更高效
一、为何选择用 DeepSeek 处理 Excel 在日常工作与生活里,Excel 是我们频繁使用的工具。不管是统计公司销售数据、分析学生成绩,还是梳理个人财务状况,Excel 凭借其强大的功能,如数据排序、筛选和简单公式计算,为我们提供了诸多便利。但当面对复杂的数据处理任务,比如从…...
Flink CDC YAML:面向数据集成的 API 设计
摘要:本文整理自阿里云智能集团 、Flink PMC Member & Committer 徐榜江(雪尽)老师在 Flink Forward Asia 2024 数据集成(一)专场中的分享。主要分为以下四个方面: Flink CDC YAML API Transform A…...
RabbitMQ技术深度解析:打造高效消息传递系统
引言 在当前的分布式系统架构中,消息队列作为一种高效的消息传递机制,扮演着越来越重要的角色。RabbitMQ,作为广泛使用的开源消息代理,以其高可用性、扩展性和灵活性赢得了众多开发者的青睐。本文将深入探讨RabbitMQ的核心概念、…...
DeepSeek与人工智能的结合:探索搜索技术的未来
云边有个稻草人-CSDN博客 目录 引言 一、DeepSeek的技术背景 1.1 传统搜索引擎的局限性 1.2 深度学习在搜索中的优势 二、DeepSeek与人工智能的结合 2.1 自然语言处理(NLP) 示例代码:基于BERT的语义搜索 2.2 多模态搜索 示例代码&…...
TAPEX:通过神经SQL执行器学习的表格预训练
摘要 近年来,语言模型预训练的进展通过利用大规模非结构化文本数据取得了巨大成功。然而,由于缺乏大规模高质量的表格数据,在结构化表格数据上应用预训练仍然是一个挑战。本文提出了TAPEX,通过在一个合成语料库上学习神经SQL执行…...
Qt:Qt基础介绍
目录 Qt背景介绍 什么是Qt Qt的发展史 Qt支持的平台 Qt版本 Qt的优点 Qt的应用场景 Qt的成功案例 Qt的发展前景及就业分析 Qt背景介绍 什么是Qt Qt是⼀个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向…...
加速度计信号处理
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)_加速度计滤波器-CSDN博客 https://wenku.baidu.com/view/622d38b90f22590102020740be1e650e52eacff9.html?_wkts_1738906719916&bdQ…...
基于SpringBoot养老院平台系统功能实现六
一、前言介绍: 1.1 项目摘要 随着全球人口老龄化的不断加剧,养老服务需求日益增长。特别是在中国,随着经济的快速发展和人民生活水平的提高,老年人口数量不断增加,对养老服务的质量和效率提出了更高的要求。传统的养…...
Conmi的正确答案——Rider中添加icon作为exe的图标
C#版本:.net 8.0 Rider版本:#RD-243.22562.250(非商业使用版) 1、添加图标到解决方案下: 2、打开“App.xaml”配置文件,添加配置: <Applicationx:Class"ComTransmit.App"xmlns&q…...
机试题——DNS本地缓存
题目描述 正在开发一个DNS本地缓存系统。在互联网中,DNS(Domain Name System)用于将域名(例如www.example.com)解析为IP地址,以便将请求发送到正确的服务器上。通常情况下,DNS请求会发送到互联…...
Day38【AI思考】-彻底打通线性数据结构间的血脉联系
文章目录 **彻底打通线性数据结构间的血脉联系****数据结构家族谱系图****一、线性表(老祖宗的规矩)****核心特征** **二、嫡系血脉解析**1. **数组(规矩森严的长子)**2. **链表(灵活变通的次子)** **三、庶…...
【LeetCode】152、乘积最大子数组
【LeetCode】152、乘积最大子数组 文章目录 一、dp1.1 dp1.2 简化代码 二、多语言解法 一、dp 1.1 dp 从前向后遍历, 当遍历到 nums[i] 时, 有如下三种情况 能得到最大值: 只使用 nums[i], 例如 [0.1, 0.3, 0.2, 100] 则 [100] 是最大值使用 max(nums[0…i-1]) * nums[i], 例…...
[MRCTF2020]Ez_bypass1(md5绕过)
[MRCTF2020]Ez_bypass1(md5绕过) 这道题就是要绕过md5强类型比较,但是本身又不相等: md5无法处理数组,如果传入的是数组进行md5加密,会直接放回NULL,两个NuLL相比较会等于true; 所以?id[]1&gg…...
MySQL 缓存机制与架构解析
目录 一、MySQL缓存机制概述 二、MySQL整体架构 三、SQL查询执行全流程 四、MySQL 8.0为何移除查询缓存? 五、MySQL 8.0前的查询缓存配置 六、替代方案:应用层缓存与优化建议 总结 一、MySQL缓存机制概述 MySQL的缓存机制旨在提升数据访问效率&am…...
LabVIEW自定义测量参数怎么设置?
以下通过一个温度采集案例,说明在 LabVIEW 中设置自定义测量参数的具体方法: 案例背景 假设使用 NI USB-6009 数据采集卡 和 热电偶传感器 监测温度,需自定义以下参数: 采样率:1 kHz 输入量程:0~10 V&a…...
海思的一站式集成环境Hispark Studio更新了
HiSpark Studio是海思提供的面向智能设备开发者提供一站式集成开发环境,支持代码编辑、编译、烧录和调试等功能。我以前在评测星闪芯片的时候用过,当时写了篇博客:【星闪开发连载】WS63E开发板Windows环境的构建_hispark studio-CSDN博客。那…...
TresJS:用Vue组件构建3D场景的新选择
在当今数字化时代,3D图形技术正以前所未有的速度发展,从游戏开发到虚拟现实(VR)、增强现实(AR),再到各种沉浸式体验,3D技术的应用场景日益丰富。TresJS作为一款基于Three.js的Web3D开…...
Axure设计教程:动态排名图(中继器实现)
一、开篇 在Axure原型设计中,动态图表是展示数据和交互效果的重要元素。今天,我们将学习如何使用中继器来创建一个动态的排名图,该图表不仅支持自动轮播,还可以手动切换,极大地增强了用户交互体验。此教程旨在提供一个…...
攻防世界 文件上传
题目名称-文件包含 今天的题大概提一下解题思路就好了 这里要使用php://filter 在此基础上因为网页过滤了一些关键字 我们要进行爆破 UCS-4* UCS-4BE UCS-4LE* UCS-2 UCS-2BE UCS-2LE UTF-32* UTF-32BE* UTF-32LE* UTF-16* UTF-16BE* UTF-16LE* UTF-7 UTF7-IMAP UTF-8* ASCII…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...

