当前位置: 首页 > news >正文

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#版本&#xff1a;.net 8.0 Rider版本&#xff1a;#RD-243.22562.250&#xff08;非商业使用版&#xff09; 1、添加图标到解决方案下&#xff1a; 2、打开“App.xaml”配置文件&#xff0c;添加配置&#xff1a; <Applicationx:Class"ComTransmit.App"xmlns&q…...

机试题——DNS本地缓存

题目描述 正在开发一个DNS本地缓存系统。在互联网中&#xff0c;DNS&#xff08;Domain Name System&#xff09;用于将域名&#xff08;例如www.example.com&#xff09;解析为IP地址&#xff0c;以便将请求发送到正确的服务器上。通常情况下&#xff0c;DNS请求会发送到互联…...

Day38【AI思考】-彻底打通线性数据结构间的血脉联系

文章目录 **彻底打通线性数据结构间的血脉联系****数据结构家族谱系图****一、线性表&#xff08;老祖宗的规矩&#xff09;****核心特征** **二、嫡系血脉解析**1. **数组&#xff08;规矩森严的长子&#xff09;**2. **链表&#xff08;灵活变通的次子&#xff09;** **三、庶…...

【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强类型比较&#xff0c;但是本身又不相等&#xff1a; md5无法处理数组&#xff0c;如果传入的是数组进行md5加密&#xff0c;会直接放回NULL&#xff0c;两个NuLL相比较会等于true&#xff1b; 所以?id[]1&gg…...

MySQL 缓存机制与架构解析

目录 一、MySQL缓存机制概述 二、MySQL整体架构 三、SQL查询执行全流程 四、MySQL 8.0为何移除查询缓存&#xff1f; 五、MySQL 8.0前的查询缓存配置 六、替代方案&#xff1a;应用层缓存与优化建议 总结 一、MySQL缓存机制概述 MySQL的缓存机制旨在提升数据访问效率&am…...

LabVIEW自定义测量参数怎么设置?

以下通过一个温度采集案例&#xff0c;说明在 LabVIEW 中设置自定义测量参数的具体方法&#xff1a; 案例背景 ​ 假设使用 NI USB-6009 数据采集卡 和 热电偶传感器 监测温度&#xff0c;需自定义以下参数&#xff1a; 采样率&#xff1a;1 kHz 输入量程&#xff1a;0~10 V&a…...

海思的一站式集成环境Hispark Studio更新了

HiSpark Studio是海思提供的面向智能设备开发者提供一站式集成开发环境&#xff0c;支持代码编辑、编译、烧录和调试等功能。我以前在评测星闪芯片的时候用过&#xff0c;当时写了篇博客&#xff1a;【星闪开发连载】WS63E开发板Windows环境的构建_hispark studio-CSDN博客。那…...

TresJS:用Vue组件构建3D场景的新选择

在当今数字化时代&#xff0c;3D图形技术正以前所未有的速度发展&#xff0c;从游戏开发到虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;&#xff0c;再到各种沉浸式体验&#xff0c;3D技术的应用场景日益丰富。TresJS作为一款基于Three.js的Web3D开…...

Axure设计教程:动态排名图(中继器实现)

一、开篇 在Axure原型设计中&#xff0c;动态图表是展示数据和交互效果的重要元素。今天&#xff0c;我们将学习如何使用中继器来创建一个动态的排名图&#xff0c;该图表不仅支持自动轮播&#xff0c;还可以手动切换&#xff0c;极大地增强了用户交互体验。此教程旨在提供一个…...

攻防世界 文件上传

题目名称-文件包含 今天的题大概提一下解题思路就好了 这里要使用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…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

Python学习(8) ----- Python的类与对象

Python 中的类&#xff08;Class&#xff09;与对象&#xff08;Object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心。我们可以通过“类是模板&#xff0c;对象是实例”来理解它们的关系。 &#x1f9f1; 一句话理解&#xff1a; 类就像“图纸”&#xff0c;对…...