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

网络 :网络基础【网络框架认识】

网络 :网络基础【对网络的认识】

  • (一)网络发展
  • (二)协议
    • 1、协议是什么?
    • 2、协议分层
    • 3、OSI七层模型
    • 4、TCP/IP五层(或四层)模型
    • 5、系统与网络的关系
    • 6、总结
  • (三)网络传输流程
    • 1、网络传输流程图
    • 2、数据包封装和分用
    • 3、局域网内通信原理
    • 4、以太网(物理层)通信原理
    • 5、认识令牌环和路由器
  • (四)网络中的地址管理
    • **IP地址**
    • **MAC地址**
    • 两者之间的关系

(一)网络发展

在以前计算机通信的中是十分不便的,如下图:
在这里插入图片描述
将终端1处理完的数据存到软盘中再给终端2去进行处理,再将终端2处理完的数据继续存到软盘中给终端3进行处理(这一切都是人工来将数据进行传输),这十分繁琐并且不适合远距离的传输。

为了解决计算机之间通信的问题,便有了网络。
网络互联: 多台计算机连接在一起,完成数据的共享。
在这里插入图片描述


局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起:
在这里插入图片描述
广域网WAN: 将远隔千里的计算机都连在一起;
在这里插入图片描述
所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网.

(二)协议

1、协议是什么?

  • “协议” 是一种约定,这种协议便于计算机之间的通信。
  • 计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式。

计算机生产厂商有很多;
计算机操作系统, 也有很多;
计算机网络硬件设备, 还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准,
大家都来遵守, 这就是 网络协议;

2、协议分层

下面这是一个打电话例子:
在这里插入图片描述

在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次.

分层模式优点:

  • 高内聚
  • 低耦合

3、OSI七层模型

基于 网络分层 的设计思想,诞生了著名的 OSI七层网络模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯

在这里插入图片描述

但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型

4、TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.

  • 物理层:
    负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层:
    负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层:
    负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层:
    负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层:
    负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

在这里插入图片描述
在这里插入图片描述

物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型.

一般而言

对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器, 它实现了从网络层到物理层;
对于一台交换机, 它实现了从数据链路层到物理层;
对于集线器, 它只实现了物理层;

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);

5、系统与网络的关系

系统、网络 不分家,看似设计复杂的网络标准模型其实和系统设计有着千丝万缕的联系。
在这里插入图片描述
网络本质上是挂接至文件系统中的一个重要子功能

系统可以有很多种,但网络中的核心协议栈必须一致,无论是哪种系统,如果核心协议栈不一致,就无法进行网络通信。

通信:本质就是贯穿,而我们体会到的是层与层之间的通信,但实际的本质是贯穿后通信(不管从上往下贯穿还是从下往上贯穿)。
在这里插入图片描述

6、总结

  • 不同操作系统的进程管理、文件管理、内存管理、驱动管理的实现方式可能是不一样的。比如Windows和Linux实现多线程的方式是不一样的,Linux当中的线程是用轻量级进程模拟的,而Windows当中是有真正意义上的线程的。
  • 而协议栈是网络标准组织定义的,是具有全球性质的,所有的操作系统都必须支持。也就是说,虽然客户端和服务端可能使用的是不同种类的操作系统,但每个操作系统实现网络协议栈的方法包括各种细节都是一样的,因此双方对数据进行的封包和解包操作都是一样的。

用户在应用层的各种请求最终会下达给操作系统,操作系统除了进程管理、文件管理、内存管理、驱动管理之外,还有一个内嵌的软件协议栈,协议栈将用户的数据进行各种封包后,通过网卡将数据传递到网络中,数据在网络内部经过各种路由器转发,最终将数据都传送到了目标的服务器中。
此外,对端服务器也有自己的协议栈,对端服务器将拿到数据通过协议栈进行各种解包操作后上交给应用层,在对端服务器的应用层就有一个对应的软件服务器。
在这里插入图片描述

(三)网络传输流程

1、网络传输流程图

同一个网段内的两台主机进行文件传输
在这里插入图片描述
两台计算机通过TCP/IP协议通讯过程:
在这里插入图片描述

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.
在这里插入图片描述

2、数据包封装和分用

TCP/IP模型中的不同层都有自己的协议,而协议最直观的表现部分叫做 「协议报头」

协议报头 在数据传输过程中,用于承载一些控制信息;协议报头 提供了关于数据包或帧的元信息,以便在网络中正确地路由、传递和处理数据

对于同层来说,协议是用来解决问题的,问题解决后,会用自己的 协议报头 将数据打包,传给下层;或者把自己本层的协议报头与有效载荷分离后,把有效载荷传给上层。

  • 传给下层时:解决完问题后,将上层传过来的有效载荷,与自己层的协议打包后,继续传给下一层,这个过程称为 封装
  • 传给上层时:上层得到的是一个自己能看懂的数据包,把自己本层的协议分离后,把有效载荷继续往上传就好了,这个过程称为 分用

封装 与 分用 是不同网络层中必须面对的重要问题,只有把这两个问题解决了,整个传输过程才会通畅,关于更多实现细节可以接着往下看

不同的协议层对数据包有不同的称谓

  • ,在传输层叫做段(segment)
  • 在网络层叫做数据报 (datagram)
  • 在链路层叫做帧(frame).

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
(Encapsulation).
首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理.

在这里插入图片描述

下图为数据分用的过程
在这里插入图片描述
总的来说:

  1. 每一层都有自己的协议报头
  2. 向下传输时,每一层都要有将自己的「协议报头」与「有效载荷」封装,传给下一层的能力
  3. 向上传输时,每一层都要有将自己的「协议报头」与「有效载荷」分离,识别并交付给上一层的能力
  4. 在逻辑上,同一层中使用的都是同一个协议,都认为自己在于对端直接通信

3、局域网内通信原理

通信过程:应用层将自己的 协议报头 与用户想发送的 信息 封装成一个 数据包,传给下一层,传输层将自己的 协议报头 与 数据包 封装成一个新的 数据包,传给下一层,不断重复,直到 数据包 来到对端主机网络中;链路层从数据包中分离出 有效载荷,向上交付,网络层同样需要分离出 有效载荷,向上交付,最终 有效载荷 为 主机A 发送的 信息,成功交给了 主机B
在这里插入图片描述

4、以太网(物理层)通信原理

以太 这个名词源于物理学中的 以太假说:认为光在太空中通过 以太 传播,但物理实验证明其根本不存在,最终沦为物理学界的笑柄。而我们网络中正是通过 光电信号 传输数据的(光电信号中有光),因此就把该标准称为 以太网,用来 “致敬” 物理学。

实际上我们发送的每一个数据包信息到网络中去的时候,所有在以太网内的主机都会收到这个数据包,但是所有主机回去匹配这个数据包,所以唯一的一个主机收到这个数据包。如图:
在这里插入图片描述

以太网数据碰撞
既然局域网中的数据包可以被所有人收到,也就意味着通信过程可能被干扰,就比如同时向湖面丢石头,产生的波纹之间会相互影响,导致自己的波纹 丢失/混乱。为了解决这个问题那么就有了碰撞避免的算法,也就是多台主机等一个随机数的时间再发送数据和报文,这样每台主机的发送时间各不相同,那么就大大减少了数据碰撞的问题。碰撞域和碰撞避免。

除了碰撞避免算法,交换机也可以有效避免数据碰撞问题
在这里插入图片描述
当源主机发送信息给目标主机时,交换机会检测 目标主机 和 源主机 是否 在同一侧 ,若在同一侧交换机会阻挡信息发送到另一侧 有效避免数据碰撞。

数据安全问题
因为在以太网通信的过程中,一台主机向另一台主机发送数据的时候,其结果是该局域网中每一台主机均接收到发送的报文,但每台主机的网卡在接收这些报文发现目标地址不是自己的话就直接将报文进行丢弃了。但网卡既有正常模式,也有混杂模式,接收主机都要往上解析报头看一看的,这就会造成数据被其他主机窃取。为了解决这个问题,我们会在用户层发送信息的时候对信息进行加密,这样就可以保护数据的安全。

5、认识令牌环和路由器

  • 路由器 主要工作在 网络层,但它也具备 数据链路层、物理层 的工作能力,并且 路由器 也可以可以看作一台 主机(节点),作为远端通信的桥梁,路由器 至少需要级联两个子网,至少要提供两个网络接口
  • 令牌环 是局域网中实现通信的另一种方法,存在一个 令牌,该局域网中的主机轮流持有,只有持有 令牌 的主机才能发出信息,令牌环 目的也是确保任何时刻都只有一台主机发送信息(类似锁)

当不同底层网络实现通信图如下:
在这里插入图片描述
假设客户 要 发送信息给服务器,客户的数据会经过以太网,然后以太网再经过路由器,而路由器再发送数据给令牌环,然后数据才被服务器收到。

(四)网络中的地址管理

IP地址

IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

两者之间的关系

IP 地址 与 MAC 地址 最大的区别在于:传输过程中,IP 地址不会改变,MAC 地址会改变,随着传输距离的增加,MAC 地址改变的次数也会增加。

例如:
当 主机A 将数据包交给路由器时,路由器分析 IP 地址得知需要将数据包转交给 主机B,于是数据包中的 目的 MAC 地址 会变成 MAC-主机B,主机B 收到数据包后,经过不断解包分用,主机B 将会收到 主机A 发送的信息

总结:
所以 IP 地址 用来表示始发地与目的地,MAC 地址 用来表示途中需要经过的中转区间,通常把 MAC 地址 的改变称为 下一跳,就是从一个 子网 跳转到另一个 子网 中

IP 地址 和 MAC 地址 共同协作,确保数据能够从源设备传输到目的设备。IP 地址 提供了端到端的逻辑标识,而 MAC 地址 则在局域网中提供了物理设备之间的唯一标识。这种分层的设计有助于网络的灵活性和可扩展性

在整个网络传输流程里,IP 地址作为高层协议的一部分维持稳定;而 MAC 地址则依据实际路径调整频繁变化,确保每一阶段都能找到正确的邻近接续装置来继续传递信息直至抵达终点

在Linux中 我们可以输入ifconfig指令查看对应的IP 和 MAC 地址。
在这里插入图片描述
ether 表示 以太 ,当前局域网中采用了以太网 的通信方式。

相关文章:

网络 :网络基础【网络框架认识】

网络 :网络基础【对网络的认识】 (一)网络发展(二)协议1、协议是什么?2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型5、系统与网络的关系6、总结 (三)网络传输流程1、网络传输…...

Kotlin 极简小抄 P8(不可空类型、可空类型、注意事项、非空断言 !!)

Kotlin 概述 Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言 Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性 Kotlin 是 Android 应用开发的首选语言,也可…...

几种超声波芯片的特点和对比

一 CX20106A ZIP - 8 CX20106A ZIP - 8 的核心竞争力在于高性价比、易用性和抗光干扰能力,尤其适合消费电子、短距离工业检测和低成本物联网场景。尽管在距离和精度上不及高端芯片,但其成熟的电路方案和广泛的市场应用(如经典红外遥控升级为超…...

软考 系统架构设计师系列知识点之杂项集萃(66)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(65) 第106题 一般说来,SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路产品。以下关于SoC不正确的说法是()。…...

Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]

Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]] 目录 Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]1.find练习2.vim高级使用2.1 命令模式:2.2 插入模式:2.3 末行模式: 3. vimdiff4. ping5.…...

年会招标抽奖活动软件———仙盟创梦IDE

年会是企业一年的总结与欢庆时刻,而抽奖环节更是点燃全场气氛的关键。如何让抽奖环节既大气又充满仪式感?选对抽奖软件至关重要!本文精心挑选了 3 款兼具实用性与氛围感的年会抽奖软件,从界面设计到功能特色,全方位为你…...

智防火灾,慧控能耗:物联网赋能金融行业电气安全革新

摘要 随着金融行业对电气安全需求的不断提升,传统用电管理模式已难以满足现代金融机构对火灾防控、能耗管理和智能运维的要求。本文基于物联网、云计算及大数据分析技术,提出一套针对金融行业的安全用电解决方案。该方案通过智能化硬件部署与平台化管理…...

UML基本概念:构造块、公共机制与规则

本篇来介绍UML的一些基础概念。 1 UML的结构 2 构造块 UML构造块是构成UML模型的基础元素,它们共同构成了UML的核心。 UML 的三种基本构造块是: 事物:对模型中重要元素的抽象,如类、对象等等关系:用来连接事物的&a…...

JAVA项目中常见的注解总结

以下是 Spring Boot/Spring MVC 项目中按使用频率排序的核心注解总结,包含常用场景和示例,帮助你快速掌握高频开发需求: 一、高频基础注解(框架核心) 1. SpringBootApplication(启动类注解) …...

数字电子技术基础(六十二)——使用Multisim软件绘制边沿触发的D触发器和JK触发器

1 使用Mulitism软件模拟时钟触发的D触发器 D触发器是一种基本的数字电路存储元件,它在时钟信号的边沿将输入数据D传递到输出Q。下面开始使用Multisim软件来模拟时钟触发的D触发器。 器件选择: 触发器选择:在组选项栏中点击Misc Digital&am…...

滚珠丝杆的承载力是多少?

滚珠丝杆的承载力不是一个固定值,它受到多种因素的影响,包括直径、螺距、滚珠个数、滚珠直径、材料、润滑条件等。 ‌滚珠丝杆的承载力主要取决于其额定动负荷和静负荷,额定动负荷是指在特定条件下,滚珠丝杆能够承受的动态负载&am…...

CQF预备知识:一、微积分简介 —— 基本术语详解

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 📖 数学入门全解 本教程为复习课程,旨在帮助读者复习数学知识。教程涵盖以下四个主题: 微积分线性代数微…...

【深度估计 Depth Estimation】数据集介绍

文章目录 总览1. KITTI Depth Completion1.1. 来源1.2. 采集场景1.3. 数据集内容1.4. 标注内容1.5. 任务目标1.6. 样本量1.7. 下载链接 2. KITTI Stereo Evaluation 20152.1. 来源2.2. 采集场景2.3. 数据集内容2.4. 标注内容2.5. 任务目标2.6. 样本量2.7. 下载链接 3. Virtual …...

鸿蒙UI开发——Builder与LocalBuilder对比

1、概 述 在ArkUI中,有的朋友应该接触过Builder和LocalBuilder。其中有了LocalBuilder的存在,是为了解决组件的父子关系和状态管理的父子关系保持一致的问题。 这里面最直观的表现则是this的指向问题与组件刷新问题,本文对Builder与LocalBu…...

FFT加窗和抽取滤波

FFT加窗 在信号处理中,为了减少频谱泄漏(Spectral Leakage),在进行快速傅里叶变换(FFT)时通常会采用加窗(Windowing)技术。包括常见的窗函数及其特性对比。 MATLAB FFT 加窗流程 采…...

CentOS 10:启动telnet服务

参考, 鳥哥私房菜 - 第七章、網路安全與主機基本防護:限制埠口, 網路升級與 SELinux 7.3.3 埠口与服务的启动/关闭及开机时状态设定 我们知道系统的 Telnet 服务通常是以 super daemon 来控管的,请您启动您系统的 telnet 试看看。 1 要启动 …...

腾讯位置服务重构出行行业的技术底层逻辑

位置智能:重构出行行业的技术底层逻辑 在智慧城市建设与交通出行需求爆发的双重驱动下,位置服务正从工具层跃升为出行行业的核心基础设施。腾讯位置服务以“连接物理世界与数字空间”为核心理念,通过构建高精度定位、实时数据融合、智能决策…...

webpack5所用依赖以及对应的版本

所有依赖以及版本 {"name": "market-web","version": "0.1.0","private": true,"scripts": {"dev": "cross-env NODE_ENVdevelopment webpack serve --config ./vue.config.js","buil…...

vue-cli 构建打包优化(JeecgBoot-Vue2 配置优化篇)

项目:jeecgboot-Vue2 在项目二次开发后,在本人电脑打包时间为3分35秒左右 webpack5默认优化: Tree Shaking(摇树优化):删除未使用的代码base64 内联: 小于 8KB 的资源(图片等&…...

Webpack 分包策略详解及实现

Webpack 的分包策略(Code Splitting)是优化前端应用性能的重要手段,它能将代码拆分成多个 bundle,实现按需加载或并行加载,从而减少初始加载时间。 分包策略的必要性 在大型项目中,如果将所有代码打包到一…...

大模型微调与高效训练

随着预训练大模型(如BERT、GPT、ViT、LLaMA、CLIP等)的崛起,人工智能进入了一个新的范式:预训练-微调(Pre-train, Fine-tune)。这些大模型在海量数据上学习到了通用的、强大的表示能力和世界知识。然而&…...

postgreSQL日常维护

目录 登录数据库 数据库操作列出列出库 创建库 删除库 切换库 查看库的大小 数据表操作 列出表 创建表 复制表 删除表 查看表的结构 模式操作命令 创建模式 默认模式 删除模式 查看所有模式 在指定模式中创建表 切换当前模式 查看当前所在schema 查看搜索…...

数据直观分析与可视化

数据直观分析与可视化 一、数据的直观分析核心价值 数据的直观分析旨在通过视觉化的方式,帮助人们更直观、更快速地理解数据的特征和模式,从而发现趋势、异常值、分布情况以及变量之间的关系,为决策提供支持。 数据可视化与信息图形、信息可…...

BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds

BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机解决方案技术路线踏脚点奖励双Critic进行稀疏奖励学习两阶段学习地形感知运动马尔可夫决策空间Sim2Real 附录实验结果 BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机…...

Spark大数据分与实践笔记(第五章 HBase分布式数据库-02)

文章目录 每日一句正能量第五章 HBase分布式数据库章节概要5.2 HBase的集群部署 每日一句正能量 人有三样东西是无法隐瞒的,咳嗽,穷困和爱,你想隐瞒越欲盖弥彰。人有三样东西是不该挥霍的,身体,金钱和爱,你…...

【面经分享】微派网络一面

HashMap 如何解决 哈希冲突? HashMap 是拉链法解决。 发生哈希冲突时,同一个槽位上,会形成一个链表。 一个槽位上的节点达到树化的阈值后,会树化为红黑树。 拉链法:哈希冲突时,同一个哈希槽拉成一个链表…...

【寻找Linux的奥秘】第七章:虚拟地址空间

前言 本专题将基于Linux操作系统来带领大家学习操作系统方面的知识以及学习使用Linux操作系统。上一章我们简单认识了环境变量,本章将讲解操作系统中另一个重要的概念——程序地址空间。 1. 初步认识 之前在我们学习C语言和C时我们知道,在我们的程序中不…...

网络安全-等级保护(等保) 2-0 等级保护制度现行技术标准

################################################################################ 第二章:现行等保标准要求,通过表格方式详细拆分了等保的相关要求。 GB 17859-1999 计算机信息系统 安全保护等级划分准则【现行】 GB/T22240-2020 《信息安全技术…...

Linux:进程信号---信号的保存与处理

文章目录 1. 信号的保存1.1 信号的状态管理 2. 信号的处理2.1 用户态与内核态2.2 信号处理和捕捉的内核原理2.3 sigaction函数 3. 可重入函数4. Volatile5. SIGCHLD信号 序:在上一章中,我们对信号的概念及其识别的底层原理有了一定认识,也知道…...

【Linux】C语言模拟实现shell命令行(程序替换原理)

目录 一、自动化构建工具(makefile) 二、输出提示符 三、获取用户输入的数据 四、将用户输入的指令字符串进行分割: 五、执行用户输入的命令 六、发现cd命令用不了(内建命令) 原因在于: 七、处理内…...

WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)

免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…...

【Java】泛型在 Java 中是怎样实现的?

先说结论 , Java 的泛型是伪泛型 , 在运行期间不存在泛型的概念 , 泛型在 Java 中是 编译检查 运行强转 实现的 泛型是指 允许在定义类 , 接口和方法时使用的类型参数 , 使得代码可以在不指定具体类型的情况下操作不同的数据类型 , 从而实现类型安全的代码复用 的语言机制 . …...

Lambda表达式的高级用法

今天来分享下Java的Lambda表达式,以及它的高级用法。 使用它可以提高代码的简洁度,使代码更优雅。 一、什么是lambda表达式 Lambda 表达式是 Java 8 引入的特性,用于简化匿名内部类的语法,使代码更简洁,尤其在处理函…...

ctfhub技能书http协议

http://challenge-ffe8afcf1a75b867.sandbox.ctfhub.com:10800/index.php curl -v -X CTFHUB http://challenge-ffe8afcf1a75b867.sandbox.ctfhub.com:10800/index.php curl:用于发送 HTTP 请求的命令行工具。 -v(--verbose):开启…...

面试题 - 微服务相关的经典问题(33道)

1.什么是微服务? 微服务(Microservices)是一种软件架构风格,将一个大型应用程序划分为一组小型、自治且松耦合的服务。每个微服务负责执行特定的业务功能,并通过轻量级通信机制(如HTTP)相互协作…...

在C#中对List<T>实现多属性排序

本文介绍了四种实现多级排序的方法:1. LINQ链式调用:使用OrderBy和ThenBy实现多级排序,直观易读,适合动态需求,返回新列表。2. 自定义比较器(IComparer):适用于复杂或高频排序&#…...

C++初阶-vector的模拟实现3

目录 1.预备知识:initializer_list 1.1初步了解 1.2关于initializer_list的deepseek的回答 C中的 std::initializer_list 主要特性 常见用途 1. 接受列表的构造函数和函数 2. 基于范围的 for 循环 重要注意事项 实现示例 2.vector::vector(initializer_li…...

详解鸿蒙仓颉开发语言中的日志打印问题

一门新的开发语言在诞生初期,由于它本身的特性和使用人数暂时较少,会容易出现一些大家不太容易理解的问题,或者说有一些坑。今天就详细分享一下仓颉开发语言中的日志打印相关内容,带大家踩一踩坑。 AppLog 在新创建的项目中&…...

dify基于文本模型实现微调Fine-tune语料构造工作流

主要是分为5个部分。分别是:开始、文档提取器、代码执行、LLM大语言模型、结束 5个部分 打开dify,创建一个空白页面-选择工作流,我们给应用起个名字。 创建完成后,进入工作流画布界面 开始 在开始节点中新建2个输入参数。1个是用…...

手机充电协议

1、手机快充 公有:PD、QC(高通骁龙芯片) 私有: 华为:FCP(fast charge protocol) 、SCP( super charge protocol) 、 小米: Mi Turbo Charge oppo:VOOC/SuperVOOC vivo:FlashCharge、…...

HarmonyOS 应用开发,如何引入 Golang 编译的第三方 SO 库

本指南基于笔者临时修复的 ohos_golang_go 项目fork,解决HO 应用导入 cgo编译产物时的 crash 问题。 1. 下载 ohos_golang_go git clone https://gitcode.com/deslord/ohos_golang_go.git📌 该仓库为笔者临时修复版本,修复了 CGO 编译模式下…...

polarctf-web-[某函数的复仇]

考点&#xff1a; 匿名构造函数(create_function) 题目来源&#xff1a;polarctf-web-[某函数的复仇] 解题&#xff1a; 代码审计&#xff1a; <?phphighlight_file(__FILE__);//flag:/flagif(isset($_POST[shaw])){$shaw $_POST[shaw];$root $_GET[root];if(preg_mat…...

Node.js Express 项目现代化打包部署全指南

Node.js Express 项目现代化打包部署全指南 一、项目准备阶段 1.1 依赖管理优化 # 生产依赖安装&#xff08;示例&#xff09; npm install express mongoose dotenv compression helmet# 开发依赖安装 npm install nodemon eslint types/node --save-dev1.2 环境变量配置 /…...

华为云Flexus+DeepSeek征文|Flexus云服务器Dify-LLM资源部署极致体验Agent

前引&#xff1a;重磅来袭&#xff01;本次以DeepSeek-V3/R1商用大模型和Dify-LLM应用平台一键部署为核心&#xff0c;专为新手打造“开箱即用”的AI开发体验。无论你是想快速搭建企业级AI应用&#xff0c;还是探索大模型落地的无限可能&#xff0c;只需跟随小编实现三步走&…...

Java详解LeetCode 热题 100(18):LeetCode 73. 矩阵置零(Set Matrix Zeroes)详解

文章目录 1. 题目描述2. 理解题目3. 解法一&#xff1a;使用两个额外数组标记法3.1 思路3.2 Java代码实现3.3 代码详解3.4 复杂度分析3.5 适用场景 4. 解法二&#xff1a;使用矩阵的第一行和第一列作为标记4.1 思路4.2 Java代码实现4.3 代码详解4.4 复杂度分析4.5 适用场景 5. …...

MySQL刷题 Day08

LC 1341电影评分 本题思路简单&#xff0c;但一不注意就错了 &#xff1a; 不难想到用union&#xff0c;写出如下代码&#xff1a; (select u.name results from MovieRating mr left join Users u on mr.user_id u.user_id group by mr.user_id order by count(mr.user_id…...

linux查看本机服务器的外网IP命令

在 Linux 中查看本机服务器的外网 IP&#xff08;公网 IP&#xff09;可以通过以下几种方法&#xff1a; 1. 使用 curl 查询外部服务&#xff08;推荐&#xff09; curl ifconfig.me或&#xff1a; curl icanhazip.com或&#xff1a; curl ipinfo.io/ip这些服务会返回你的公…...

DVWA-XSS

DOM low 这是一个下拉框的形式&#xff0c;但是如果我们不让他等于English呢&#xff0c;换成js代码呢&#xff1f; <script>alert(xss);</script> Medium <script> 标签&#xff0c;但仅使用简单的字符串匹配进行替换&#xff08;比如移除 "<scr…...

第15天-NumPy科学计算实战:从基础到图像处理

一、NumPy核心优势 高效数组运算:矢量操作比纯Python快10-100倍 广播机制:不同形状数组的算术运算 内存优化:连续内存块存储,支持大数据处理 丰富API:线性代数、傅里叶变换、随机数生成等 二、环境准备 pip install numpy matplotlib 三、基础操作演示 1. 创建数组 im…...

Spring Boot + +小程序, 快速开发零工市场小程序

现在零工经济发展的越来越好&#xff0c;不止是很多人想要利用空余时间找零工赚外快&#xff0c;也有很多企业有灵活用工的需求&#xff0c;根据这样的需求&#xff0c;我们利用Spring Boot 和小程序&#xff0c;快速开发出了零工市场小程序。 利用 Spring Boot 开发零工市场小…...