网络协议入门 笔记一

一、服务器和客户端及java的概念

        JVM (Java Virtual Machine) : Java虚拟机,Java的跨平台:一次编译,到处运行,编译生成跟平台无关的字节码文件 (class文件),由对应平台的JVM解析字节码为机器指令 (010101)。

        如下图所示,java的项目编译时,写好java代码之后,经过编译得到“.class”后缀的文件,但是这个文件并不是可执行文件,需要依靠各种平台上安装的JVM平台才能运行。这与C/C++代码文件不同,C/C++代码是在不同平台使用不同的编译器编译成不同平台可执行的机器指令,之后在不同的平台运行。

        如下图所示,客户端会安装各种各种的软件,软件将数据发给服务器不同的或者相同的端口,服务器会监听各种端口,例如80或者8080端口,因为有不同的客户端软件发过来数据,为了处理不同软件的数据,就需要在客户端的端口监听下部署针对不同软件的项目。

        下面是服务器的部署项目的方式及依赖:

二、网络物理层知识

        下面将介绍网络中的基础知识:两计算机之间的直接通讯、集线器、网桥、交换器、路由器等。

    1.两台计算机之间可以通过交叉线直连。

    2.集线器

        连接多台计算机
        这些计算机的ip在同一个网段
        半双工通信:整体形成一个冲突域

    3.网桥:
        这些计算机的ip在同一个网段
        会记住两端计算机们的ip和MAC
        半双工通信:网桥两端的计算机们各自隔离成一个冲突域。
        两端独立的冲突域可以各自在域内独立同行

    4.交换器:
        这些计算机的ip在同一个网段
        全双工通信
        会记住连接在交换器上的所有的计算机的ip和MAC

    5.路由器:
        路由器的每个端口都配置有网关和MAC
        网关可以发出ARP广播
        路由器可以实现不同网段的通信。

ICMP协议:是ping指令的通讯协议,具体的内容参考下面文档

ICMP协议详解-CSDN博客

IAR协议:进行ping指令前需要得到对方主机的MAC地址,地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址。具体参考下面的文章。

彻底搞懂系列之:ARP协议 - 知乎 (zhihu.com)

(1)两台计算机之间的直连

         如下图所示的,电脑之间进行数据通讯,需要IP地址地同时,还是需要MAC地址(MAC地址在对应地网卡中,是全球唯一的)。计算机1向计算机2发送数据的时候,需要知道计算机2的IP地址,还需要知道对方的MAC地址。

        数据传输的过程,最终计算机中的数据是根绝MAC(网卡地址)将数据发出,接收数据的时候如果数据包中的目标MAC地址是自己网卡的地址就接收数据,如果不是自己网卡的地址就将数据包丢弃。

        两个电脑直连,要想实现两个电脑之间的通讯,两个电脑的IP地址必须在同一个网段,不在同一个网段是不能ping通的。ping过程走的是ICMP协议。

        一个主机ping另一个主机的时候,首先向自己同一个网段内发送ARP广播,获得对方的MAC地址,然后在进行ICMP协议的ping命令的发送。

一次ARP请求:(1)pc7------->:ARP请求开始

                         (2)pc7------->pc8:ARP

                         (3)pc8------->pc7:ARP

一次ICMP请求:(1)pc7------->:ICMP请求开始

                          (2)pc7------->pc8:ICMP

                          (3)pc8------->pc7:ICMP

注意:ARP和ICMP的数据报,都是要求自己和目标主机在同一个网段中,也就是ping这条指令的进行首先要发ARP广播获得目标主机的MAC地址,然后在发送ICMP数据,这两条通讯都是需要两台主机在同一个网段,不在同一个网段需要加路由器,这个后面会讲。

如上图所示的发送ARP请求的时候,目标MAC地址为“FFFF.FFFF.FFFF”说明这个信息是“广播”。

        发送数据给指定ip的主机是如何判断目标ip是否与自己是同一个网段?

        例如PC1:ip(192.168.5.10),子网掩码(255.255.255.0)

               PC2:ip(192.168.6.11),  子网掩码(255.255.255.0)

        (1)PC1给PC2发数据的时候,使用PC1的子网掩码与PC1和PC2相位与,两个网段一样,PC1才能给PC2发数据。

        (2)PC2给PC1发数据的时候,使用PC2的子网掩码与PC2和PC1相位与,两个网段一样,PC2才能给PC1发数据。

(2)集线器、同轴电缆 

        同轴电缆如上图所示,半双工通讯。

        下面是集线器,也就是多个同轴电缆的线路集合。

       集线器和同轴电缆都是没有智商的,发送APR广播的时候就会发给所有的机器,是目标地址就会回复,ICMP通讯的通讯的时候,也是发给所有的机器,目标机器接收到数据不是发给对方的,就丢弃数据。

(3)网桥

        介绍网桥是离不开集线器的弊端,因为如下图所示的两个集线器“Hub0”和“Hub1”之间连接起来,然后每个集线器之间接多个设备通讯是有弊端的。

        例如下图所示的“PC11”主机向“PC14”主机发送ping数据报,先发送ARP获取MAC地址,但是这个ARP会发送给图中的所有主机,然后在发送ICMP的数据,这时候也是发送下面的四个主机,由于集线器的半双工通讯,所以左边一个主机发送的给左边主机的之后,右边的主机也是会收到,也是不能进行通讯工作的,这时候工作效率是比较低的。

        这时候引进网桥,网桥是可以记录下来端口接的设备都是有那些MAC地址,在网桥的内部会有一个表格,记录端口和对应连接的MAC地址。

网桥端口连接的MAC地址

L1

PC15的MAC地址
L1PC12的MAC地址
L2PC13的MAC地址
L2PC14的MAC地址

        例如下图所示的网桥已经记录了如上表所示的端口和MAC地址关系。所以PC15给PC12发送ICMP数据,经过集线器,经过网桥的时候,网桥判断这个信息的目标MAC地址是在左边,就不会将信息发送到右边的集线器,这样右边的集线器是可以进行自己的工作的,比如PC13给PC14发送数据在此时,是可以的,提高了效率。

        网桥是不需要ip和MAC地址的。

(4)交换机(局域网的方案)

        交换机是不需要ip和MAC地址的。

        交换机会记录下来每个连接在交换机的端口的主机的MAC地址,交换机的内部在每次通讯的时候记录下来每个端口接的主机的MAC地址,在内部也会记录为一个表格。全部记录下来之后,再次进行源MAC到目标MAC数据发送的时候,就可以将数据从源主机发送到目标主机。

 

        注意:交换机刚开始不知道端口对应的MAC地址的时候,也需要通过ARP报文发送数据,这时候的ARP广播也是会发给连接在交换机上的所有的主机的。

(5)路由器

        前面的集线器、网桥、交换机等都是局域网之间设备进行通讯的方案,只能实现ip地址同一网段的主机之间进行通讯。路由器是局域网与局域网之间进行通讯的解决方案,可以实现不同网段之间主机的通讯。

        对路由器的描述就需要说到交换机的缺点,如果全球的机器都使用交换机连接,那么刚开始发送ARP广播的时候,将会发送给全球所有的主机,如果所有的主机都进行ARP广播,那么网络就乱套了。这时候使用交换机实现局域网内的主机之间的通讯,局域网与局域网之间通过路由器连接交换数据。

        只有通一个网段之间才能形成广播域,不同网段之间不能进行广播,路由器也是隔绝广播信号的。所以即使有了路由器也是不能进行不同网段之间直接进行广播信号的,而是一个网段的广播信号通过网段发给路由器,由路由器转发给另一个网段的交换机,这个路由器上的所有主机。

       上面使用“Packet Tracer”软件进行仿真实验的时候,需要配置的是,四个主机的IP地址、子网掩码、默认网关IP;两个交换机不需要配置,路由器要对两个口配置网关IP地址、子网掩码。

        网关的地址是网段的地址,加上主机地址为1。

        如上图所示的,交换机之间使用路由器连接,当“PC6”和“PC9”进行通讯的时候,主要由以下的几个步骤:

通过ARP获得目标PC的MAC地址:

(1)PC16向“192.168.5.1”这个局域网内发送:目标ip为网关“192.168.5.1”的ARP广播,获得路由器网关接口的MAC地址。

(2)获得网关的MAC地址之后,开始发送ICMP数据:目标ip为PC9“192.168.4.8”,MAC为路由器网关的地址。

(3)路由器接收到PC6的ICMP数据之后,通过数据中的IP地址查找时候知道这个IP地址主机的MAC地址,发现不知道,就开始发送:目标ip为网关“192.168.4.8”的ARP广播,获得PC9的MAC地址。然后将ICMP数据的MAC地址替换成PC9主机的MAC地址,将ICMP报发给PC9主机。

(4)然后PC9主机将返回一个ICMP数据,之后在发送ICMP数据的时候,就不需要在发送ARP获得MAC地址了。

(6)光猫(调制解调器)

        因为网线传输的距离比较短,所以一般使用电话线或者光纤进行网线数据的传输,所以需要将网线信号转换成电话线或者光纤信号。

二、网络地址解析

(1)MAC地址

        不同的系统显示MAC地址,有的中间用“逗号”表示,有的中间用“-”横杠表示,也有的是“:”冒号连接。

        如果目标MAC地址为“FF-FF-FF-FF-FF-FF”,则说明为广播信号。

(2)IP地址

        IP地址有两部分组成,网络标识(网络ID,也叫网段),主机表示(主机ID)。通过子网掩码可以计算出来网络标识和主机表示。

A类地址:

        A类地址的8位网络ID中,第一位必须位“0”,取值范围0~127,回环ip地址属于A类地址。

       主机全为零的IP地址为0,为网段;主机全为的IP地址,为广播地址;主机为1的时候,一般为网关IP地址。

对应的子网掩码:255.0.0.0。

B类地址:

        B类地址的前两位必须为“10”,网络部分的其他位是可以全为零的。

C类地址:

        C类网络地址的前三位必须位“110”。

D和E类地址:

子网掩码的CIDR表示方法:

        192.168.1.100/24,代表子网掩码有24个1。

(3)子网划分

        子网划分是在使用C类IP地址不够主机使用,但是使用B类IP地址又比较浪费,就使用子网划分。

  • 为了尽量避免浪费IP地址资源

    合理地进行子网划分。

  • 子网划分一般有两种:

    • 等长子网划分

    • 变长子网划分

(3.1)等长子网划分

       等长子网划分,换分出来的子网段所容纳的主机数量是一样的。

  • 将主机位取出若干位作为网络位。这时候只需要子网掩码向后增加一位1,一般在划分的一种网段资源不够适用,然后划分主机位更多的网段的时候,例如C类ip地址的主机不够,使用B类ip地址的时候,主机的数量太多了,使用不完,比较浪费,这时候可以进行子网划分。

            比如有一个C类网段:192.168.0.0/24。这个网段可用的ip数量:192.168.0.1 ~ 192.168.0.254。

            但是我只需要100个ip,所以会有154个ip被浪费掉。那么我需要再进行子网划分,且我采用等长子网划分:

            网段: 11000000 10101000 00000000 00000000 192.168.0.0/24

            原来子网掩码 11111111 11111111 11111111 00000000 255.255.255.0

            现在子网掩码 11111111 11111111 11111111 10000000 255.255.255.128

            此时网络位25位,主机位只有7位,11000000 10101000 00000000 00000000这个网段变成了两个网段:

            11000000 10101000 00000000 0.0000000 192.168.0.0/25

            11000000 10101000 00000000 1.0000000 192.168.0.128/25

            这两个网段分别有128-2 = 126个主机ip。

  • 192.168.0.0/24

    这个网段的网络位是不变的,因为C类地址默认的网络位是24位。但是如果我们进行子网划分,将从主机位取出若干位作为网络位。

    一开始只有一个网段,但是后来将这个网段划分,就变成了2个网段了。

  • 注意:子网划分之后,对应划分的子网的    网段,网关,广播地址    等都已经改变了。例如下面的例子:

/*****************************************原来网络地址****************************************************/

        原ip:        192.168.1.0                         原子网掩码:  255.255.255.0

        原网段:192.168.1.0           原网关:192.168.1.1         原广播地址:192.168.1.255

/*************************************子网划分后网络地址**********************************************/

        子网划分:192.168.1.128       子网划分的子网掩码:255.255.255.128

        划分后网段:192.168.1.128   划分后网关:192.168.1.128   划分后广播地址:192.168.1.  192   

(3.2)变长子网划分

        变长子网划分,划分的子网部分所容纳的主机是可以不一样的。

1、192.168.0.0/24 等分成: 192.168.0.0/25 和 192.168.0.128/25

                                192.168.0.0 ~ 192.168.0.127 和 192.168.0.128 ~ 192.168.0.255

2、192.168.0.0/25 等分成: 192.168.0.0/26 和 192.168.0.64/26

                                192.168.0.0 ~ 192.168.0.63 和 192.168.0.64 ~ 192.168.0.127

3、192.168.0.0/26 等分成: 192.168.0.0/27 和 192.168.0.32/27

                                192.168.0.0 ~ 192.168.0.31 和 192.168.0.32 ~ 192.168.0.63

4、192.168.0.0/27 等分成: 192.168.0.0/28 和 192.168.0.16/28

                                192.168.0.0 ~ 192.168.0.15 和 192.168.0.16 ~ 192.168.0.31

5、192.168.0.0/28 等分成: 192.168.0.0/29 和 192.168.0.8/29

                                192.168.0.0 ~ 192.168.0.7 和 192.168.0.8 ~ 192.168.0.15

6、192.168.0.0/29 等分成: 192.168.0.0/30 和 192.168.0.4/30

                                192.168.0.0 ~ 192.168.0.3 和 192.168.0.4 ~ 192.168.0.7

(4)这两台设备能通信吗?

  • 计算机发消息时要先判断目标ip是否和自己在同一网段,比如从左向右发消息,计算机0的掩码是255.255.255.0与目标地址192.168.10.10与运算得到结果是:192.168.10.0。而源ip地址192.168.0.10的网段是192.168.0.0。所以两者显然不在同一个网段。所以从左向右一开始就发布出去。

    从右向左:计算机1的网段是192.168.0.0,用自己的(不知道目的计算机的掩码)掩码判断目标地址192.168.0.10的网段是192.168.0.0。发现网段是一样的,那么从右向左能发出去。然是发出去后,还要能接收,经历一次从左向右发送消息。计算机0再判断是否同一个网段时,就会发现不在同一个网段。从左向右发布出去。一种特殊情况:

从左向右:判断目的ip192.168.0.11的网段是192.168.0.0

从右向左:判断目的ip192.168.0.10的网段是192.168.0.0

所以这两个ip能通信:192.168.0.10/24 和 192.168.0.11/16。

主要看计算机发信息时判断源ip和目的ip是否在同一个网段的结果。

(5)超网

        和子网划分相反,前面子网划分是在ip地址分配的主机的数量不够的时候,可以分配主机数量更多的类型的IP地址,这时候可能主机的数量过于多了,可以将这个网络ip进行子网划分,使用划分之后的子网。

        但是现在使用超网的方式也是一样可以解决的,就是将“多个连续网段”合并成一个更大的网段。

注意:必须是连续的网段才能合并。

网段合并的规律:

(6)判断一个网段是子网还是超网

  1. 首先判断该网段的类型:A, B, C

  2. 在判断和默认的子网掩码相比,当前的掩码是向左移还是向右移。

  3. 左移:超网;右移:子网。

比如:

25.100.0.0/16是一个A类子网

00011001 01100100 00000000 00000000

11111111 11111111 00000000 00000000 得到网段 00011001 01100100 .0.0 -- 25.100

而A类地址原本的子网掩码是:255.0.0.0,网段是25;现在掩码255.255.0.0,网段25.100

所以网段变小了,是一个A类子网。

200.100.0.0/16是一个C类超网

11011100 01100100 00000000 00000000

11111111 11111111 00000000 00000000

C类地址:主机位8位;改地址:主机位16位,所以是一个C类超网

(7)路由(静态路由、动态路由)

  • 在不同网段之间转发数据,需要有路由器的支持

  • 默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由,动态路由告诉它。

    1. 静态路由

      管理员手动添加路由信息

      适用于小规模网络

    2. 动态路由

      路由器通过路由选择协议(比如RIP,OSPF)自动获取路由信息

      适用于大规模网络

        前面已经讲了路由的作用,可以实现不同网段之间的通讯器,前提是路由器对应的网口都已经设置了对应的网关地址和子网掩码,局域网内的主机也设置了默认网关,就可以实现不同网段的局域网之间的通讯。

        但是不同的局域网之间跨两个及两个以上路由器进行通讯的时候,路由器内部是需要一个路由表的,需要知道下一跳路由器的ip及需要通讯的局域网的网关和子网掩码。并且路由器和路由器之间也是一个局域网,需要设置同一个网段的IP。

        上图中的局域网一共又5个,如下图所示。

        下面是实现跨两个路由器的不同的局域网之间的通讯,上面仿真需要的配置:

(1)PC设置ip地址和子网掩码

(2)PC设置默认网关

(3)路由器开启与交换机连接的端口,配置网关ip地址和子网掩码

(4)路由器开始两个路由器之间通讯的串口,然后配置两个路由器的串口的ip地址和子网掩码。

(5)路由器添加静态路由表的内容,包括路由器需要经过的下一跳的路由器的串口ip,与下一个路由器直连的局域网的网段及子网掩码等。

PC的ip、子网掩码、默认网关。

  

        路由器网口的:网关、子网掩码。

        路由器的:串口的ip和子网掩码。

        路由器的静态路由配置:需要通讯的子网的网关ip、子网掩码、下一跳的路由器串口的ip。

        下满是路由器的配置的路由表:

        上面配置设置好之后,主机之间就可以通讯了。

(7.1)默认路由

        跨两个路由器进行通讯的时候,静态路由需要配置下一条的路由器的串口的ip地址,以需要通讯的网段的网关ip和子网掩码。

        如果不知道需要通讯的局域网的默认网关和子网掩码,那就使用下图所示的默认路由,连载这个路由器上的局域网都可以进行通讯。

三、局域网、NAT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/198745.html

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

相关文章

Java入门篇 之 抽象类接口

本篇碎碎念:个人认为压力是一种前进的动力,但是不要有太多压力,不然会使心情烦躁,会控制不住自己的情绪,会在一个临界值爆发,一旦爆发,将迟迟不能消散 今日份励志文案: 努力的背后必有加倍的赏赐…

Word中NoteExpress不显示的问题

首先确认我们以及安装了word插件 我们打开word却没有。此时我们打开:文件->选项->加载项 我们发现被禁用了 选择【禁用项目】(如果没有,试一试【缓慢且禁用的加载项】),点击转到 选择启用 如果没有禁用且没有出…

海康威视综合安防管理平台任意文件上传

系统介绍 HIKVISION iSecure Center综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备,获取边缘节点数据,实现安防信息化集成与联动,公众号:web安全工具库…

使用centos搭建内网的yum源

1.安装httpd服务 2.启动服务,设置开机自启 #启动服务 systemctl start httpd # 设置开机自动启动 systemctl enable httpd systemctl status httpd3.新建一个目录,将rpm文件放到该目录下 4.将/etc/httpd/conf/httpd.conf文件中的DocumentRoot "…

SASS/SCSS精华干货教程

目录 介绍 基本说明 特点 sass语法格式sass的语法格式一共有两种,一种是以".scss"作为拓展名,一种是以".sass"作为拓展名,这里我们只讲拓展名: 编译环境安装 Vscode安装编译插件 简单使用 sass语法扩张…

合并两个有序链表(冒泡排序实现)

实例要求:将两个升序链表合并为一个新的 升序 链表并返回;新链表是通过拼接给定的两个链表的所有节点组成的;实例分析:先拼接两个链表,在使用冒泡排序即可;示例代码: struct ListNode* mergeTwo…

docker的基本使用以及使用Docker 运行D435i

1.一些基本的指令 1.1 容器 要查看正在运行的容器&#xff1a; sudo docker ps 查看所有的容器&#xff08;包括停止状态的容器&#xff09; sudo docker ps -a 重新命名容器 sudo docker rename <old_name> <new_name> <old_name> 替换为你的容器名称…

查询数据库DQL

DQL 查询基本语法 -- DQL :基本语法; -- 1查询指定的字段 name entrydate 并返回select name , entrydate from tb_emp;-- 2 查询 所有字段 并返回select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;-- 2 查询…

C++ 继承和派生 万字长文超详解

本文章内容来源于C课堂上的听课笔记 继承和派生基础 继承是一种概念&#xff0c;它允许一个新创建的类&#xff08;称为子类或派生类&#xff09;获取另一个已经存在的类&#xff08;称为父类或基类&#xff09;的属性和行为。这就好比是子类继承了父类的特征。想象一下&…

【dc-dc】世微 电动车摩托车灯 5-80V 1.2A 一切二降压恒流驱动器AP2915

产品描述 AP2915 是一款可以一路灯串切换两路灯串的降压恒流驱动器,高效率、外围简单、内置功率管&#xff0c;适用于5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功率管输出最大功率可达 12W&#xff0c;最大电流 1.2A。AP2915 一路灯亮切换两路灯亮&#xff0c;其中一路灯…

微积分在神经网络中的本质

calculus 在一个神经网络中我们通常将每一层的输出结果表示为&#xff1a; a [ l ] a^{[l]} a[l] 为了方便记录&#xff0c;将神经网络第一层记为&#xff1a; [ 1 ] [1] [1] 对应的计算记录为为&#xff1a; a [ l ] &#xff1a; 第 l 层 a [ j ] &#xff1a; 第 j 个神经…

在市场发展中寻变革,马上消费金融树行业发展“风向标”

11月11日&#xff0c;2023金融街论坛年会第三届全球金融科技大会“金融科技创新与合规安全”平行论坛在北京召开。会上&#xff0c;马上消费金融副总经理孙磊就数据对金融的赋能作用、数据安全治理等方面展开了深度讨论。 公开信息显示&#xff0c;马上消费金融是一家经中国银保…

如何将文字、图片、视频、链接等内容生成一个二维码?

通过二维彩虹的【H5编辑】功能&#xff0c;就可以将文字、图片、视频、文件、链接等多种格式的内容编辑在一个页面&#xff0c;然后生成一个自定义的二维码——H5编辑二维码。扫描后&#xff0c;即可查看二维码中的详细图文视频等内容了。这个功能大受欢迎&#xff01; 这个H5…

大师学SwiftUI第18章Part1 - 图片选择器和相机

如今&#xff0c;个人设备主要用于处理图片、视频和声音&#xff0c;苹果的设备也不例外。SwiftUI可以通过​​Image​​视图显示图片&#xff0c;但需要其它框架的支持来处理图片、在屏幕上展示视频或是播放声音。本章中我们将展示Apple所提供的这类工具。 图片选择器 Swift…

Three.js相机模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机? 在这篇博文中,我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始,然后添加真实的镜头畸变。 具体来说,我们将仔细研究 OpenCV 的两个失真模型,并使用后处理着色器复制它们。 拥有逼…

Rockdb简介

背景 最近在使用flink的过程中&#xff0c;由于要存储的状态很大&#xff0c;所以使用到了rockdb作为flink的后端存储&#xff0c;本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构&#xff0c;它和hbase很像&#xff0c;不过严格的说&#xff0c;基于LS…

高精度算法【Java】(待更新中~)

高进度加法 在Java中可以使用BigInteger进行高精度计算&#xff0c;除此也可以仿照竖式相加的计算原理进行计算。 BigInteger 提供所有 Java 的基本整数操作符的对应物&#xff0c;并提供 java.lang.Math 的所有相关方法。另外&#xff0c;BigInteger 还提供以下运算&#xff1…

11月20日星期一今日早报简报微语报早读

11月20日星期一&#xff0c;农历十月初八&#xff0c;早报微语早读。 1、T1以3-0横扫WBG&#xff0c;拿下S13冠军&#xff01;Faker豪取第4冠&#xff1b; 2、天舟七号货运飞船已运抵文昌发射场&#xff0c;将于明年初发射&#xff1b; 3、“中韩之战”球票已经售罄&#xf…

回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测

回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测 目录 回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测&#xff08;…

JAVA多线程(5)

JAVA多线程(5) 线程安全问题概述 卖票问题分析 单窗口卖票 一个窗口(单线程)卖100张票没有问题 单线程程序是不会出现线程安全问题的 多个窗口卖不同的票 3个窗口一起卖票,卖的票不同,也不会出现问题 多线程程序,没有访问共享数据,不会产生问题 多个窗口卖相同的票 3个窗口…