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

【JavaEE初阶 — 网络原理】初识网络原理

     c96f743646e841f8bb30b2d242197f2f.gif

ddb5ae16fc92401ea95b48766cb03d96.jpeg692a78aa0ec843629a817408c97a8b84.gif

目录

     1. 网络发展史    

    1.1 独立模式    

    1.2 网络互连    

    1.2.1  网络互联的背景     

    1.2.2  网络互联的定义     

     1.3 局域网LAN    

    1.4 广域网WAN    

    2. 网络通信基础    

    2.1 IP地址    

    2.2 端口号    

    2.3 认识协议    

    2.4 五元组     

    2.5 协议分层    

    2.5.1  分层的作用     

    2.5.2  牛客网Java刷题知识点之OSI七层参考模型 和TCP/IP五层参考模型     

    2.5.3  TCP / IP五层(或四层)模型     

    2.5.4 网络设备所在分层    

    2.5.5  网络分层对应    

    3. 网络通信基本流程     

    3.1 数据传输时的封装分用过程    

    3.2 简述封装过程    

    3.3 简述分用过程      


     1. 网络发展史    


    1.1 独立模式    


独立模式:计算机之间相互独立


    1.2 网络互连    


    1.2.1  网络互联的背景     


随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。


    1.2.2  网络互联的定义     


  • 网络互连:将多台计算机连接在一起,完成数据共享。
  • 数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
  • 根据网络互连的规模不同,可以划分为局域网和广域网。

     1.3 局域网LAN    


      局域网的定义     


  • 局域网,即 LocalArea Network,简称LAN。
  • Local 即标识了局域网是本地,局部组建的一种私有网络。
  • 局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

     局域网组建网络的方式    


     (1) 基于网线直连     


    (2) 基于集线器组建    



    (3) 基于交换机组建    



     (4) 基于交换机和路由器组建    



    1.4 广域网WAN    


     广域网的定义     


  • 广域网,即 Wide Area Network,简称WAN
  • 通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。
  • 广域网内部的局域网都属于其子网。 

    广域网的说明    

  • 如果有北、中、南等分公司,甚至海外分公司,把这些分公司以专线方式连接起来,即称为“广域网”。

  • 如果属于全球化的公共型广域网,则称为互联网 (又称公网,外网),属于广域网的一个子集。

  • 有时在不严格的环境下说的广域网,其实是指互联网。

  • 所谓"局域网"和"广域网"只是一个相对的概念。比如,我们有"天朝特色"的广域网,也可以看做一个比较大的局域网。

    2. 网络通信基础    


  • 网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。
  • 那么,在组建的网络中,如何判断到底是从哪一台主机,将数据传输到另一条台主机呢? 这就需要使用IP地址来标识。

    2.1 IP地址    


    概念    


IP地址主要用于标识网络主机、和其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。 

 就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。


    格式    


  • IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)如:01100100.00000100.00000101.00000110。
  • 通常用 “点分十进制” 的方式来表示,即a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)如:100.4.5.6。

我们需要明确主机的IP地址,才可以把网络数据发送到对应的主机上;


    2.2 端口号    


    端口号的应用场景    


  • 端口号和IP地址往往是配合使用的,IP 地址用于标识主机网络地址,我们通过IP地址,就能找到一台计算机/服务器。
  • 当主机接收到一个数据包,会将数据包给哪一个应用程序使用呢?
  • 这些程序都在一台主机上,所以IP地址都相同。但是他们的端口号是不同的,所以我们的数据包,可以借助端口号,再进一步进行区分;
  • 因此网络通信的过程,往往是需要先根据IP,找到主机的网络地址;再根据端口号,找到对应的程序;

    端口号的概念    


在网络通信中,IP 地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单来说,端口号就是用于定位主机中的进程。

类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。


    端口号的格式    


端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。


    2.3 认识协议    


网络的传输过程

    问题    


有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?


网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”,如何标识发送的数据是文本类型,及文本的编码格呢?


基于网络数据传输,需要使用协议来规定双方的数据格式。 


    概念    


协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备,都必须共同遵从的一组约定、规则。

如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

协议(protocol)最终体现为在网络上传输的数据包的格式。


    2.4 五元组     


在TCP / IP协议中,用五元组来标识一个网络通信: 


五元组在网络通信中的作用,类似于发送快递:


  • 可以在cmd中,输入netstat -ano ,查看网络数据传输中的五元组信息 
  • 如果需要过滤(一般是通过端口号或进程PID过滤),可以使用netstat - ano | findstr过滤字符串

    2.5 协议分层    


     2.5.1  分层的作用     


    把大的协议拆分成小的协议,降低实现和使用的难度    

  • 网络通信本身是一件非常复杂的问题;
  • 如果只使用一个协议,来完成网络方方面面的问题,就很可能使得这个协议非常的庞大和复杂
  • 这样协议实现和使用都会困难重重,所以需要对协议进行拆分,把大的协议拆分成若干个小的协议,使得拆分出来的协议的功能更单一,更易于理解

     解耦合,高内聚,使得各个协议分工明确    

只是把大协议,拆分成若干个小协议也是不够的,因为如果拆分出来的小协议数量比较多,也会比较麻烦;所以我们需要对这些小的协议进行归类,能更好的满足高内聚;


为了这些小的协议能够进行良好的交互,需要按小协议的类别分类,并且约定好若干个层级结构,只有相邻两层协议之间可以进行交互,上层协议可以调用下层协议,下层协议可以给上层提供服务;


这样的约定非常有必要如果只是归类,但是这些协议彼此之间的调用关系混乱不堪,会使得体系也变得十分混乱 


    封装,便于更好的拓展和维护      

分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。


在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务),这样能更好的扩展和维护,如下图:


     2.5.2  牛客网Java刷题知识点之OSI七层参考模型 和TCP/IP五层参考模型     


OSI:即Open System Interconnection,开放系统互连;

  • OSI七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。
  • OSI七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输; 

    通俗理解OSI各层作用     实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下TCP / IP 五层(或四层)模型来实现;

OSI 七层模型既复杂又不实用:所以 OSI七层模型没有落地、实现。


    2.5.3  TCP / IP五层(或四层)模型     


下图就把 OSI七层模型,和TCP / IP五层模型之间做了一个对应,OSI和TCP / IP下面四层是一 一对应的,主要区别在上面,OSI上面有三层,但是在TCP中合并成了一层,往往应用层不会分得那么细,所以合成一个应用层即可;

下面四层的叫法,更常见的是左边的 OSI 模型命名;

      通俗理解TCP / IP各层作用     

从五层模型到四层模型,是因为把数据链路层和物理层看做一个整体;


为什么要把物理层和数据链路层看做一个整体,主要是因为在实际实现协议的时候,数据链路层和物理层本身就不太容易完全分开;


因为物理层和硬件设备直接相关,不同的硬件设备,又会影响到数据链路层中的特性,所以数据链路层和物理层的耦合比较紧密,很难把它们完全拆分开;


协议分层有一个好处,就是可以灵活的替换层,但是如果站在物理层和数据链路层的角度来看,物理层一旦被替换,那么对应的数据链路层往往也会发生改变,因为它们的高耦合,所以可以把这两层看做一层 ;


    2.5.4 网络设备所在分层    


  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;


  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;

    路由器工作过程    

  • 主机的数据发送到路由器,路由器收到之后,物理层,数据链路层,网络层解析,重新构造出新的网络数据包,构造出以太网数据帧,构造出二进制数据,进行转发。
  • 路由器是工作在网络层,这也叫三层转发

  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;

    交换机工作过程    

主机的数据发送到交换机,交换机收到之后,物理层解析,数据链路层解析,重新构造出新的以太网数据帧,发给下一个设备数据链路层中,得到的以太网数据帧的帧头,信息就足以支持交换机进行下一步工作。
交换机是工作在数据链路层,这也叫二层转发。


  • 对于集线器,它只实现了物理层;


注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层)、三层路由器(工作在TCP/IP五层模型的下三层)。

随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的网络设备都是传统意义上的交换机和路由器。 


    2.5.5  网络分层对应    


网络数据传输时,经过不同的网络节点(主机、路由器)时,网络分层需要对应。


以下为同一个网段内的两台主机进行文件传输:
两台计算机通过TCP/IP协议通讯的过程如下所示


TCP/IP通讯过程


以下为跨网段的主机的文件传输:数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器


    3. 网络通信基本流程     


TCP/IP协议栈与数据包封装


      3.1 数据传输时的封装分用过程    

     计算机利用协议进行通信时:  

  • 发送方从上层向下层传输数据,每经过一层都附加一个协议控制信息,到达物理层后将数据包进行转换,送入传输介质。这样的操作称为“封装”(Encapsulation);
  • 数据传输到接收方时,再自下层向上层,逐层去掉协议控制信息,并且完成各层的指定功能,这样的操作,称为“分用”;

 TCP / IP 的封装


    3.2 简述封装过程    


   

    第一步    


  • 应用程序,获取到用户输入,构造一个“用户数据包”。

  • 这个用户数据包遵守开发这个程序的程序猿定义的应用层协议。

    第二步    


  • 应用程序调用传输层提供的API,把数据交给传输层。传输层拿到数据之后构造出“传输层数段”。

  • 这个“传输层数据段”遵守传输层协议,主要是 TCP 协议,或者 UDP 协议。
  • TCP数据段(传输层数据段) = TCP段头+TCP载荷。
  • TCP载荷就是“应用数据”。

    第三步    


  • 传输层构造好“传输层数据段”后,继续调用网络层的API,把“传输层数据段”交给网络层,网络层拿到数据后构造出“网络层数据报”。

  • 这个“网络层数据报”遵守网络层协议,主要是IP协议。
  • IP数据段(网络层数据报)=IP报头+IP载荷。
  • IP载荷就是“传输层数据段” 

    第四步    


  • 网络层构造好“网络层数据报“后,继续调用数据链路层的API,把“网络层数据报”交给数据链路层,数据链路层拿到后构造出“数据链路层数据帧”

  • “数据链路层数据帧”遵守数据链路层协议,主要是以太网协议。
  • 以太网数据帧(数据链路层数据帧)=太网帧头+以太网载荷+以太网帧尾。
  • 以太网载荷就是 IP数据报。

      第五步     


  • 数据链路层构造好“数据链路层数据帧”后,继续调用物理层的API,把“数据链路层数据帧”交给物理层;
  • 物理层给网卡,网卡将上诉二进制数据,最终以光/电/电磁信号发送出去。

    完整过程    


     3.3 简述分用过程      


  1. 信号到达接受方网卡,网卡将这些信号还原为二进制数据,交给上层数据链路层。

  2. 数据到达数据链路层,通过帧头帧尾包含的数据反应出使用的数据链路层协议,按该协议进行解析,将载荷数据传给上层网络层。

  3. 数据到达网络层,通过报头包含的数据反应出使用的网络层协议,按该协议进行解析,将载荷数据传给上层传输层。

  4. 数据到达传输层,通过段头包含的数据反应出使用的传输层协议,按该协议进行解析,将载荷数据传给上层应用层。

  5. 数据到达应用层,按照程序的应用层协议解析,将信息输出给接受者。 


    复习巩固    


     c96f743646e841f8bb30b2d242197f2f.gif

692a78aa0ec843629a817408c97a8b84.gif

相关文章:

【JavaEE初阶 — 网络原理】初识网络原理

目录 1. 网络发展史 1.1 独立模式 1.2 网络互连 1.2.1 网络互联的背景 1.2.2 网络互联的定义 1.3 局域网LAN 1.4 广域网WAN 2. 网络通信基础 2.1 IP地址 2.2 端口号 2.3 认识协议 2.4 五元组 2.5 协议分层 2.5.1 分…...

算法的NPU终端移植:深入探讨与实践指南

目录 ​编辑 引言 算法选择 模型压缩 权重剪枝 量化 知识蒸馏 硬件适配 指令集适配 内存管理 并行计算 性能测试 速度测试 精度测试 功耗测试 案例分析 图像识别算法的NPU移植案例 结论 引言 在人工智能技术的浪潮中,神经网络处理器(…...

Lombok :简化 Java 编程的得力工具

在 Java 开发过程中,常常需要编写大量的样板代码,例如构造函数、Getter 和 Setter 方法、equals 和 hashCode 方法等。这些代码虽然逻辑相对固定,但编写起来却较为繁琐且容易出错,并且会使代码显得冗长。Lombok 应运而生&#xff…...

C语言实例_14之求俩数的最大公约数和最小公倍数

1.最大公约数和最小公倍数概述 最大公约数(Greatest Common Divisor,简称GCD): 也称为最大公因数,是指两个或多个整数共有约数中最大的一个。例如,对于整数12和18,它们的约数分别为&#xff1…...

wxWidgets-ImageView

wxWidgets实现图片浏览、放大缩小、另存为新的图片格式等 #include "wx/wxprec.h"#ifndef WX_PRECOMP#include "wx/wx.h" #endif#include "wx/filename.h" #include "wx/zstream.h"#include "imageviewctrl.h"class MyFrame…...

什么是Axios,有什么特点

什么是 Axios? Axios 是一个基于 Promise 的 HTTP 客户端,可以用于浏览器和 Node.js 环境。它由 Matt Zabriskie 创建,旨在提供一个简单、灵活且功能强大的 HTTP 请求库。Axios 支持所有现代浏览器和 Node.js,可以用于发送 GET、…...

springboot331“有光”摄影分享网站系统pf(论文+源码)_kaic

毕 业 设 计(论 文) “有光”摄影分享网站设计与实现 摘 要 自互联网的发展至今,其基础理论与技术都已完善,并积极参与了整个社会各个领域。它容许信息根据媒体传播,并和信息可视化工具一起为大家提供优质的服务。对于…...

3D姿势和跟踪的人体行为识别

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月28日21点20分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…...

手机设置了卡2上网,卡1禁止上网,但是卡1还是会偷偷跑流量,这是什么情况???

双卡双待手机,卡2设置为默认上网卡,卡1却会偷偷跑流量,这就很迷。 双卡双待手机,不管是哪个牌子(网上有小米,华为,vivo出现这种情况,我的是华为mate20),都存在…...

基于单片机的温度控制系统设计

摘 要 当今社会不断发展,工业以及生活领域对温度控制系统的要求日益增加。以往的设计系统已经不能满足如今的社会需求,因此设计更加符合要求的温度控制系统是大势所趋。采用单片机进行温度控制系统的设计可以使温度的调节更简单、灵活,节约操…...

pjfun.top相册中上传图片获取github apiToken

1、登录github [登录](https://github.com/login) 没有账号就注册2、 点击头像,进入设置settings 3、进入Developer settings 4、点击Fine-grained tokens 再点击 Generate new token 5、填写相关基础信息 Token name(随意起名) Expiratio…...

S4 UPA of AA :新资产会计概览

通用并行会计(Universal Parallel Accounting)可以支持每个独立的分类账与其他模块集成,UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估,并…...

单片机学习笔记 11. 外部中断

更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...

C++中智能指针的使用及其原理 -- RAII,内存泄漏,shared_ptr,unique_ptr,weak_ptr

目录 1.智能指针的使用场景分析 2.RAII和智能指针的设计思路 3.C标准库智能指针的使用 4.智能指针的原理以及模拟实现 5.shared_ptr循环引用问题和weak_ptr 5.1shared_ptr循环引用问题 5.2weak_ptr的原理和部分接口 5.3weak_ptr的简单模拟实现 6. shared_ptr的线程安…...

DICOM医学影像应用篇——伪彩色映射 在DICOM医学影像中的应用详解

目录 引言 伪彩色映射的概念 基本原理 查找表(Look-Up Table, LUT) 步骤 示例映射方案 实现伪彩色映射的C代码 代码详解 伪彩色处理效果展示 总结 扩展知识 LUT 的基本概念 LUT 在伪彩色映射中的应用 示例 引言 在医学影像处理中&#xff0c…...

注意http-proxy-middleware要解决跨域问题,想修改origin请求头不要设置changeOrigin=true

在使用http-proxy-middleware的时候,有一个配置是“changeOrigin”,通过名字来看这个字段是用来控制是否修改origin的,但是实际使用下来,你会发现,当设置为true的时候,header中的origin的值并不会修改&…...

SpringBoot宠物领养平台:设计与实现

摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领养…...

qt 的udp发送和接收

udp要在.pro中加入 QT network udp接收 //QUdpSocket *udp1; udp1 new QUdpSocket(this); udp1->bind(2024,QUdpSocket::ShareAddress); connect(udp1,SIGNAL(readyRead()),this,SLOT(ReadyOut())); void MainWindow::ReadyOut() { while(udp1->hasPend…...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【五】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...

中科亿海微SoM模组——波控处理软硬一体解决方案

本文介绍的波控处理软硬一体解决方案主要是面向相控阵天线控制领域,波控处理通过控制不同天线组件的幅相来调整天线波束的方向和增益,实现高精度角度控制和高增益。本方案由波控处理板、波控处理控制软件算法和上位机软件共同构成。波控处理SoM模组原型样…...

vue页面跟数据不同步this.$set

“Vue页面跟数据同步this.$set”可能是指在某些情况下,需要确保数据的响应式特性,即当数据发生变化时,页面上的显示也能实时更新。 如果你遇到数据已经设置,但页面没有更新,可能是因为你没有正确使用 Vue 的响应式系统…...

黑马2024AI+JavaWeb开发入门Day02-JS-VUE飞书作业

视频地址&#xff1a;哔哩哔哩 讲义作业飞书地址&#xff1a;飞书 一、作业1 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge">&l…...

(0基础保姆教程)-JavaEE开课啦!--12课程(Spring MVC注解 + Vue2.0 + Mybatis)-实验10

一、常见的SpringMVC注解有哪些&#xff1f; 1.Controller&#xff1a;用于声明一个类为 Spring MVC 控制器。 2.RequestMapping&#xff1a;用于将 HTTP 请求映射到特定的处理方法上。可以指定请求类型&#xff08;GET、POST等&#xff09;和URL路径。 3.GetMapping&#xff…...

未成年人模式护航,保障安全健康上网

为保护未成年人的上网环境&#xff0c;预防未成年人沉迷网络&#xff0c;帮助未成年人培养积极健康的用网习惯&#xff0c;HarmonyOS SDK 提供未成年人模式功能&#xff0c;在华为设备上加强对面向未成年人的产品和服务的管理。 场景介绍&#xff08;应用跟随系统未成年人模式…...

【实体配置】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列 &#x1f…...

MySQL中Update在什么情况下行锁会升级成表锁

MySQL中Update在什么情况下行锁会升级成表锁 在MySQL中&#xff0c;特别是使用InnoDB存储引擎时&#xff0c;行锁&#xff08;row-level locking&#xff09;通常用于提高并发性能。然而&#xff0c;在某些特定情况下&#xff0c;行锁可能会升级为表锁&#xff08;table-level…...

应急响应靶机——easy溯源

载入虚拟机&#xff0c;开启虚拟机&#xff1a; &#xff08;账户密码&#xff1a;zgsfsys/zgsfsys&#xff09; 解题程序.exe是额外下载解压得到的&#xff1a; 1. 攻击者内网跳板机IP地址 2. 攻击者服务器地址 3. 存在漏洞的服务(提示:7个字符) 4. 攻击者留下的flag(格式…...

使用Compose Multiplatform开发跨平台的Android调试工具

背景 最近对CMP跨平台很感兴趣&#xff0c;为了练手&#xff0c;在移动端做了一个Android和IOS共享UI和逻辑代码的天气软件&#xff0c;简单适配了一下双端的深浅主题切换&#xff0c;网络状态监测&#xff0c;刷新调用振动器接口。 做了两年多车机Android开发&#xff0c;偶…...

LabVIEW实现TCP通信

目录 1、TCP通信原理 2、硬件环境部署 3、云端环境部署 4、TCP通信函数 5、程序架构 6、前面板设计 7、程序框图设计 8、测试验证 本专栏以LabVIEW为开发平台&#xff0c;讲解物联网通信组网原理与开发方法&#xff0c;覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合…...

Realtek网卡MAC刷新工具PG8168.exe Version:2.34.0.4使用说明

本刷新工具虽然文件名叫PG8168.EXE&#xff0c;但不是只有RTL8168可用&#xff0c;是这一个系列的产品都可以使用。实验证明RTL8111也可以使用。 用法&#xff1a; PG8168 [/h][/?][/b][/c HexOffsetHexValue][/d NICNumber][/l][/r][/w][/v] [/# NICNumber] [/nodeidHexNOD…...

【maven】配置下载私有仓库的快照版本

1、setting.xml配置 <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/SETTINGS/1.0.0https://maven.apache.org/xsd/settings-1.0.0.…...

基于pytorch使用仿真数据集来训练一个深度学习模型进行相位解包裹

使用 PyTorch 来训练一个深度学习模型进行相位解包裹是一种常见的方法。下面是一个详细的示例&#xff0c;展示如何生成仿真数据集并在 PyTorch 中训练模型。 1. 生成仿真数据集 首先&#xff0c;我们生成一些仿真数据集&#xff0c;包含多个包裹相位图和对应的解包裹相位图。…...

【排序算法】之快速排序篇

思想&#xff1a; 分而治之&#xff0c;通过选定某一个元素作为基准值&#xff0c;将序列分为两部分&#xff0c;左边的序列小于基准值&#xff0c;右边的序列大于基准值&#xff0c; 然后再分别将左序列和右序列进行递归排序&#xff0c;直至每部分有序。 性质&#xff1a;这…...

WebSocket

握手 1 客户端发起握手请求&#xff1a;客户端向服务器发送一个特殊的HTTP请求&#xff0c;其中包含一个Upgrade字段&#xff0c;表明客户端希望将该连接从HTTP协议升级为WebSocket协议。请求的关键部分包括&#xff1a; GET请求&#xff1a;客户端使用GET方法请求与WebSocket…...

适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09;详解 定义 适配器模式是一种结构型设计模式&#xff0c;通过将一个类的接口转换为客户期望的另一个接口&#xff0c;使得原本接口不兼容的类可以一起工作。适配器模式又称“包装器&#xff08;Wrapper&#xff09;”。 适配…...

Jmeter最新详细安装及修改中文教程(附安装包)

目录 初识&#xff1a;Jmeter 一、下载&#xff1a;Jmeter 二、安装前必要的配置 1.桌面点击菜单栏搜索【cmd】&#xff0c;然后打开命令提示符 2.输入java -version命令 三、安装&#xff1a;Jmeter 1.首先在D盘创建【Jmeter】文件夹&#xff0c;把下载的【Jmeter】压缩…...

Java 语言的起源发展与基本概念(JDK,JRE,JVM)

Java语言的起源 源起 Java语言最初是由Sun Microsystems公司&#xff08;该公司于2009年被Oracle公司收购&#xff09;开发的一种编程语言。其创造者是詹姆斯高斯林&#xff08;James Gosling&#xff09;&#xff0c;他是一位加拿大计算机科学家。其前身名为Oak&#xff08;橡…...

利用dockerCompose一键部署前后端分离项目

1.Docker Compose介绍 2.将自己准备好的docker-compose.yml文件上传到宿主机 3.查看docker-compose.yml文件 宿主机的文件内容可参考&#xff1a; 项目部署-通过docker手动部署前后端分离项目&#xff08;全网超级详细 的教程&#xff09;-CSDN博客 修改宿主机的nginx.conf …...

redis大key和热key

redis中大key、热key 什么是大key大key可能产生的原因大key可能会造成什么影响如何检测大key如何优化删除大key时可能的问题删除大key的策略 热key热key可能导致的问题解决热key的方法 什么是大key 大key通常是指占用内存空间过大或包含大量元素的键值对。 数据量大&#xff…...

在 Linux 系统中根据pid查找软件位置

在 Linux 系统中,如果您知道一个进程的 PID(进程标识符),并且想要找到该进程对应的可执行文件的位置,可以使用以下几种方法: 方法一:使用 ps 命令 ps 命令可以显示进程的详细信息,包括可执行文件的路径。假设您的 PID 是 1234,可以使用以下命令: ps -p 1234 -o co…...

Python开发环境搭建+conda管理环境

下载Miniconda 推荐从清华镜像下载安装包 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 打开网页后&#xff0c;下拉到最后找到Miniconda3-latest前缀的文件&#xff0c;或者网页中直接搜索Miniconda3-latest&#xff0c;都可以找…...

Java 8新特性详解与实战

目录 引言 1. Lambda 表达式&#xff08;Lambda Expressions&#xff09; 2. 函数式接口&#xff08;Functional Interfaces&#xff09; 3. 流 API&#xff08;Stream API&#xff09; 4. 默认方法&#xff08;Default Methods&#xff09; 5. Optional 类 6. 新的时间日…...

K8s内存溢出问题剖析:排查与解决方案

文章目录 一、背景二、排查方案&#xff1a;1. 可能是数据量超出了限制的大小&#xff0c;检查数据目录大小2. 查看是否是内存溢出2.1 排查数据量&#xff08;查看数据目录大小是否超过limit限制&#xff09;2.2 查看pod详情发现问题 三、解决过程 一、背景 做redis压测过程中…...

Network Link Conditioner Mac 上模拟网络环境工具的安装和使用

前言 Xcode 的模拟器本身是不支持模拟网络环境的&#xff0c;在开发界面的时候&#xff0c;设计会出无网、弱网这种情况的设计图&#xff0c;为了方便在开发过程中实现这些情况的代码逻辑&#xff0c;Network Link Conditioner 就是模拟网络环境的好帮手。 安装 Network Lin…...

SeggisV1.0 遥感影像分割软件【源代码】讲解

在此基础上进行二次开发&#xff0c;开发自己的软件&#xff0c;例如&#xff1a;【1】无人机及个人私有影像识别【2】离线使用【3】变化监测模型集成【4】个人私有分割模型集成等等&#xff0c;不管是您用来个人学习 还是公司研发需求&#xff0c;都相当合适&#xff0c;包您满…...

电子应用设计方案-27:智能淋浴系统方案设计

智能淋浴系统方案设计 一、系统概述 本智能淋浴系统旨在为用户提供舒适、便捷、个性化的淋浴体验&#xff0c;通过集成多种智能技术&#xff0c;实现水温、水流、淋浴模式的精准控制以及与其他智能家居设备的联动。 二、系统组成 1. 喷头及淋浴杆 - 采用可调节角度和高度的设计…...

旋转图像(java)

题目描述&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 代码思路&#xff1a; class Solution {public void ro…...

单片机知识总结(完整)

1、单片机概述 1.1. 单片机的定义与分类 定义&#xff1a; 单片机&#xff08;Microcontroller Unit&#xff0c;简称MCU&#xff09;是一种将微处理器、存储器&#xff08;包括程序存储器和数据存储器&#xff09;、输入/输出接口和其他必要的功能模块集成在单个芯片上的微型…...

蓝桥杯备赛笔记(一)

这里的笔记是关于蓝桥杯关键知识点的记录&#xff0c;有别于基础语法&#xff0c;很多内容只要求会用就行&#xff0c;无需深入掌握。 文章目录 前言一、编程基础1.1 C基础格式和版本选择1.2 输入输出cin和cout&#xff1a; 1.3 string以下是字符串的一些简介&#xff1a;字符串…...

Spring Boot【四】

单例bean中使用多例bean 1.lookup-method方式实现 当serviceB中调用getServiceA的时候&#xff0c;系统自动将这个方法拦截&#xff0c;然后去spring容器中查找对应的serviceA对象然后返回 2.replaced-method&#xff1a;方法替换 我们可以对serviceB这个bean中的getServiceA…...