初识计算机网络
🌎初识计算机网络
文章目录:
初识计算机网络
计算机网络背景
网络协议
初识协议
制定协议标准的组织或公司
OSI七层模型
操作系统和计算机网络关系
再谈协议
网络传输的基本流程
局域网通信
跨网络传输流程
🚀计算机网络背景
- 独立模式: 计算机之间相互独立。
- 网络互联: 多台计算机连接在一起, 完成数据共享。
- 局域网 LAN : 计算机数量更多了, 通过 交换机 和 路由器 连接在一起。
- 广域网 WAN: 将远隔千里的计算机都连在一起。
所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网。
🚀网络协议
✈️初识协议
- “协议” 是一种约定。
比如打电话约定电话铃响的次数的约定,而计算机网络协议,是通信双方所遵守的约定。
计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式。
思考: 只要通信的两台主机, 约定好协议就可以了么?
定好协议,但是你用频率表示 01,我用强弱表示 01,就好比我用中国话,你用葡萄牙语一样,虽然大家可能遵守的一套通信规则,但是语言不同,即是订好了基本的协议,也是无法正常通信的。
所以,完善的协议,需要更多更细致的规定,并让参与的人都要遵守。
- 计算机生产厂商有很多。
- 计算机操作系统, 也有很多。
- 计算机网络硬件设备, 还是有很多。
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议。
阿熊在龙国A市B小区C单元住着,阿熊的楼上是卖牙膏的,有一天阿熊的牙膏用完了,直接去楼上买牙膏就行,而阿熊只需要操心到手的牙膏怎么使用即可。
阿熊这天又把牙膏用完了,不同的是,阿熊这次想要试一试国外的牌子,这个时候阿熊点开网络购物,从加拿大买了一款牙膏,下单之后,阿熊只需要静待快递到即可,而发货公司考虑的就多了。
首先,发货公司需要确定目的地址,然后需要确定中途的每一个站点,只有确定了,以及到达每个地方的配送方式,最重要的是,包裹如果出现了以外该怎么办,有哪些补救方法。
在现实生活中有上述的问题,而在计算机网络的世界中同样存在这些问题,通过以上的例子,我们可以将网络当中的所有问题归为以下四类:
- 如何使用数据的问题
- 可靠性的问题
- 主机定位的问题
- 数据报局域网转发的问题
而计算机网络协议的出现就是为了解决以上问题所制定的。
✈️制定协议标准的组织或公司
一般具有定制协议或者标准的资格的组织或者公司都必须是业界公认或者具有江湖地位的组织或者公司。
能定制协议标准的组织或公司主要有以下几类:
- 国际标准化组织:
- IEEE(电气和电子工程师协会):这是一个由计算机和工程领域专家组成的庞大技术组织,在通信协议领域贡献突出。IEEE 制定了全世界电子、电气和计算机科学领域 30%左右的标准,包括 IEEE 802 系列标准,这些标准涵盖了从局域网(LAN)到广域网(WAN)等多种网络技术。
- ISO(国际标准化组织):ISO 是由多个国家的标准化团体组成的国际组织,它在开放系统互连(OSI)模型方面的工作尤为著名。OSI 模型定义了网络通信的七层协议结构,尽管在实际应用中,TCP/IP 协议族更为普遍,但 OSI 模型仍然在学术和理论研究中占有重要地位。
- ITU(国际电信联盟):ITU 是联合国下属的专门机构,负责制定电信领域的国际标准。ITU-T 制定的标准涵盖了电话和网络通信,与 ISO 合作确保了通信技术的全球兼容性和互操作性。
- 区域标准化组织:
- ETSI(欧洲电信标准学会):由欧洲共同体各国政府资助,是一个由电信行业的厂商与研究机构参加并从事研究开发到标准制定的组织。
- ASTAP(亚洲与泛太平洋电信标准化协会):1998 年由日本与韩国发起成立的标准化组织,旨在加强亚洲与太平洋地区各国信息通信基础设施及其相互连接的标准化工作的协作。
- 公司:
- 某些公司,如泰凌微,也自研各种标准的软件协议栈,包括低功耗蓝牙、zigbee、thread 及 Matter 等,并可进行定制化改动,这是其核心竞争力之一。泰凌微还计划重点发展智能电子价签、智能遥控、智能家居等市场。
- 民间国际团体:
- IETF(互联网工程师任务组):这是一个负责开发和推广互联网协议(特别是构成 TCP/IP 协议族的协议)的志愿组织,通过 RFC 发布新的或者取代老的协议标准。
- 官方机构:
- FCC(联邦通信委员会):美国对通信技术的管理的官方机构,主要职责是通过对无线电、电视和有线通信的管理来保护公众利益。也对包括标准化在内的通信产品技术特性进行审查和监督。以上这些组织或公司都能在一定程度上定制协议标准,以满足特定需求或推动技术发展。
✈️OSI七层模型
在计算机中,很多东西都是分层的,比较常见的就是 软件分层 与 网络分层。相信很多人都听说过这样一句话:任何问题都可以通过添加一层软件层来解决。软件分层能更好的解决问题,但是为什么需要网络分层呢?
实际上,网络分层是为了让层和层之间是松耦合的,这样,如果上层出现问题就去上层解决,下层出现问题就去下层解决。不至于一个小问题导致整个网络瘫痪。
- 协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的。
在这个例子中, 我们的"协议"只有两层:语言层、通信设备层。
但是实际的网络通信协议,设计的会更加复杂, 需要分更多的层, 但是通过上面的简单例子,我们是能理解,分层可以实现解耦合,让软件维护的成本更低。
-
OSI(Open System Interconnection,开放系统互连) 七层网络模型称为 开放
式系统互联参考模型,是一个逻辑上的定义和规范。 -
把网络从逻辑上分为了 7 层. 每一层都有相关、相对应的物理设备,比如路由器,交换机。
-
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可 靠的通讯。
虽然OSI提出了七层模型,但是并不负责实现这七层模型,仅仅是提出了定义,而后人们通过工程实践得出,OSI七层模型实现起来比较困难,现实一般需要5层模型即可。而 应用层 表示层 会话层,统一为应用层。同时也可称为 TCP/IP 五层(四层协议):
物理层我们考虑的比较少,我们只考虑软件相关的内容. 因此很多时候我们直接称为TCP/IP 四层模型。TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
- 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的 wifi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
- 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线 LAN 等标准. 交换机(Switch)工作在数据链路层。
- 网络层: 负责地址管理和路由选择. 例如在 IP 协议中, 通过 IP 地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层。
- 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机。
- 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层。
上三层合并为一层,这是因为上三层的不确定性太大,有些通过网络传播的是音频,有些是视频,有些是文字、图片等等。所以不能将这些都内置在OS中,否则就会限制网络的功能。
✈️操作系统和计算机网络关系
如果你学过Linux系统编程,那么在看到OSI七层模型的时候,可能第一时间想到的是操作系统划分的层状结构,那么计算机网络与OS还有关系吗?实际上,他们的关系如下:
上图很清晰的解释了计算机网络相对于操作系统的位置。而传输层和网络层集成在操作系统内部的,所以,网络就是OS的一部分。操作系统在诞生之初,其网络协议栈就已经存在了,因为其集成在内核当中。
所以用户是无法直接访问网络协议栈的,网络势必要像OS那样,提供系统调用接口给上层使用。而基于网络的系统调用接口开发出的程序,就属于应用层。有些人觉得系统调用使用起来比较麻烦,所以又对网络的系统调用接口做了封装,形成网络库。
按照常识,我们都知道,windows的电脑是可以给苹果用户的电脑发消息的,安卓同样可行。实际上,世界上所有的OS只要想入网,就必须遵守TCP/IP协议,保证不同主机之间的数据通信。这就是OS与网络之间的关系。
✈️再谈协议
截止到目前为止,我们并没有真正的接触协议。我们都知道,OS大部分都是由C语言来编写的,而TCP/IP网络协议栈也属于内核的一部分,则TCP/IP网络协议栈也是由C语言来编写的。
仔细观察下图:
问题 :主机 B 能识别 data,并且准确提取 a=10,b=20,c=30 吗?
-
回答:答案是肯定的!因为双方都有同样的结构体类型 struct protocol。也就是说,用同样的代码实现协议,用同样的自定义数据类型,天然就具有”共识“,能够识别对方发来的数据,这不就是约定吗?
-
关于协议的朴素理解:所谓协议,就是通信双方都认识的结构化的数据类型因为协议栈是分层的,所以,每层都有双方都有协议,同层之间,互相可以认识对方的协议。
🚀网络传输的基本流程
✈️局域网通信
假设在一个局域网内,有多台主机,共用这个局域网,那么这些处在同一个局域网当中的主机,是否可以相互通信呢?
按照常识,我们都知道,同一局域网内的主机之间是完全可以相互通信的,但是他们是如何做到的呢?怎么知道我要发送数据的对端是谁呢?
其实很简答,在上课时,老师喊阿熊起来回答问题,明明其他人也都听到了,但是为什么就阿熊站起来呢?因为只有阿熊自己叫做阿熊。而在计算机当中,每台主机都有自己的唯一标识,我们称为 Mac地址。
有关Mac地址的详细原理:
- MAC 地址用来识别数据链路层中相连的节点。
- 长度为 48 位, 及 6 个字节. 一般用 16 进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改. mac 地址通常是唯一的(虚拟机中的 mac 地址不是真实的 mac 地址, 可能会冲突; 也有些网卡支持用户配置 mac 地址)
在Linux当中,我们使用 ifconfig
可以查看本机的Mac地址:
尽管如此,它们之间想要通信还有不少的问题。阿熊在上课被叫起来回答问题,这个时候张三肯定不会说,“阿熊,昨天借我的5毛钱赶紧还我”。但是在计算机的世界里,发送数据时可能不止一台主机在发送,而它们处在同一局域网之间,就 有可能会发送数据碰撞。
所以,每台主机为了避免这种情况,内置了碰撞检测和避免方法,当局域网内有其他主机在发送消息时,当前主机就会阻塞等待,等待网络通信状态重新变好,才会继续发送数据。所以,我们又把 一个局域网称为一个 碰撞域。
所以在 任何时刻,在局域网内只能有一台主机发送数据的局域网,我们称为 以太网。
还有一种网络叫做 令牌环网,在一个局域网内,有多台主机,只有一台主机持有令牌时才可发送数据,否则只能等待令牌。
不论是 局域网 还是 令牌环网,本质都是 在同一时刻只有一台主机发送数据。
我们已经初步了解了局域网通信的原理,再来看同一个网段内的两台主机进行收发消息的过程:
现在有两台主机进行通信,上面我们说了,如果两台计算机想要通过网络进行通信,那么他们必须遵守相同的协议,一台主机在发送数据时会自上而下对发送信息进行封装,而收端收到信息需要自下而上解开对信息的封装才能拿到信息。
而不同层协议之间,都认为自己是在和对端同层协议进行通信。每一层协议都会对原有的数据进行封装,形成 报头,除了本层添加的报头,剩下的信息 我们称为 有效载荷。
当应用层对原始文本添加了报头,并不能直接发送给对端同层协议,而是需要向下继续添加下一层协议报头,下一层协议同样需要添加这一层自己的报头,直到数据链路层封装完最后的报头。
这个数据就被封装完成了,然后就可以通过网卡向对端主机发送数据。对端主机收到数据的流程与发送的流程截然相反,自底向上一层一层的解包,最后才接收到数据。
前面我们说了,TCP/IP协议属于内核中的一部分,而每一层封装的报头,实际上就是计算机网络协议的结构化数据报头。说人话就是结构体。两台计算机通过tcp/ip协议通讯的过程如下:
对端主机在收到数据的时候,是需要解包的,从数据链路层往上一层一层解包,但是每一层可能是不同的协议(比如,网络层协议可能不是IP, 有可能是ICMP协议),那么当前层在将数据解包之前,需要先明确将解包过后的有效载荷发送给上层的哪个协议,而这部分工作实际上在本层报头解析时就已经完成了,因为当前层的报头会有下一层协议报信息,这样就可以发送指定层的指定协议了。
上述过程在计算机网络中的专业术语叫做 解包 与 分用:
- 解包:将报头和有效载荷进行分离。
- 分用:将自己的有效载荷交付给上层的那一个协议。
下图为数据封装过程:
下图为数据分用的过程:
✈️跨网络传输流程
现在又两个不同的局域网,它们之间想要通信,所以使用了路由器将两个子网建立连接,这样,处在不同网络之间的数据就可以开始通信了。
跨网段的主机的数据传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
我们先不着急了解双方是如何跨网络通信的,我们先来看一下唐僧去西天取经的故事:
话说唐僧师徒四人去西天取经,这一回,唐僧一行人刚从女儿国出来,前往黑风岭,熟悉故事的我们都知道,黑风岭的下一站就是火焰山。唐僧一行人刚到了黑风岭,就遇见了黑风岭领主,领主问唐僧:“你是谁,从何而来,到哪里去?” 唐僧回答:“贫僧自东土大唐而来,要到西天取经,敢问施主可知通往西天路的下一站是哪里?” “原来是唐僧,来了就别走了,袈裟留下!”
如果黑熊精是一个好领主,他就会告诉唐僧下一站该前往火焰山。而有意思的是在唐僧身上永远会有两套地址:
- src(自东土大唐而来),dst(西天取经)。
- 上一站从哪来,下一站到哪里去。
唐僧无论去到那个地方,如果有人问唐僧从哪来到哪去,唐僧一定回答:“自东土大唐而来,到西天取经去。” 我们发现,第一套地址无论唐僧在哪里都不会改变。
但是每当唐僧去到了不同的地方的时候,唐僧上一站从哪来,下一站到哪去都会立刻刷新。也就是说,唐僧的第二套地址是一直在变化的。
而在计算机网络当中,上述的两套地址,它们分别对应:
- 源IP地址,目的IP地址
- 源Mac地址,目的Mac地址
其中 目的IP地址给我们提供路径规划的依据,唐僧为什么要去女儿国?因为唐僧要去西天,唐僧为什么要去黑风岭?因为唐僧要去西天。
这里涉及了IP地址的概念,IP地址是什么?以及它与Mac地址有什么区别?
- IP地址是一种点分十进制的地址通常以:xxx.xxx.xxx.xxx 形式出现
在Linux当中可以使用 ifconfig
命令查看IP地址:
- IP地址在整个路由过程中,一直不变(目前知识储备不足,我们只能这样说明,后面在修正)
- Mac 地址一直在变
- 目的 IP 是一种长远目标,Mac 是下一阶段目标,目的 IP 是路径选择的重要依据,mac 地址是局域网转发的重要依据。
路由器一般至少横跨两个子网,所以这里路由器要有两张网卡,有两个Mac地址。
在 网络层IP进行封装协议头时,就已经将源IP于目的IP封装进报头里面。而在最后一层协议封装时,需要将原Mac地址与目的Mac地址封装进数据报头。所以左侧设备的网络源mac地址是自己,目的mac地址是路由器 mac_left 地址。
此时,被封装完的数据通过网卡发送到了路由器,路由器发现目的mac是发给自己的,那么就对第一层协议头进行解包并分用,当有效载荷到达了上层IP网络层,此时源mac和目的mac已经不再重要,此时IP层协议对IP报头进行分析,发现目的IP是 主机B.
路由器作为三层交换机,也有自己的层数划分,不过只有两层。所以路由器的IP网络层会重新对有效载荷进行封装,送达下层协议,当有效载荷到达了下层协议,不论是什么网路,都会对有效载荷进行报头封装,这时,源mac地址变为了 right_mac ,目的地址变为了 IPB。
于是对端主机B就可以收到对应的数据了,因为通信双方遵守相同的TCP/IP协议,所以由路由器转发的数据在主机B也是可以看懂的,在经过一层层的解包和分用,最终把信息呈现给了用户B。
IP层往上,这些协议有区别吗?
实际上IP层往上,双方的协议并没有任何的不同,而IP层往下就有差别了,上面例子中,第一次封装的是以太网的数据报头,发送给了路由器,而路由器发送给对端B时,却变为了令牌环网的数据报头。
相关文章:

初识计算机网络
🌎初识计算机网络 文章目录: 初识计算机网络 计算机网络背景 网络协议 初识协议 制定协议标准的组织或公司 OSI七层模型 操作系统和计算机网络关系 再谈协议 网络传输的基本流程 …...

Oracle 第11章:异常处理
在 Oracle PL/SQL 中,异常处理是一个重要的概念,它用于管理程序执行过程中可能发生的错误或特殊情况。异常可以是系统预定义的,也可以是由用户自定义的。 异常类型与处理机制 PL/SQL 提供了两种类型的异常: 预定义异常…...

导航栏渐变色iOS
- (void)viewDidLoad {[super viewDidLoad];// 设置导航栏属性self.navigationBar.translucent NO;[self.navigationBar setTitleTextAttributes:{NSForegroundColorAttributeName : [UIColor whiteColor], NSFontAttributeName:[UIFont boldSystemFontOfSize:28]}];// 修复iO…...

mysql读写分离
一、proxysql实现mysql读写分离 二、mycat...

计算机的错误计算(一百四十二)
摘要 本节探讨 MATLAB中 附近数的正弦函数的计算精度问题。 例1. 已知 计算 与 直接贴图吧: 另外, 16位的正确值分别为 -0.3077518861551721e-8 与 0.4106402475009074e-3(ISRealsoft 提供)。 容易看出,MATLAB的…...

利用大模型辅助科研论文写作·第一期|论文写作·24-11-02
小罗碎碎念 从这期推文开始,开一个新的系列——如何利用大语言模型辅助论文写作。 我目前的推文主要都集中于分享已经发表的论文,前期背景积累到一定程度以后,我们要动手做实验然后写自己的论文。如果从头到尾,全都自己写…...

JavaScript。—关于语法基础的理解—
一、程序控制语句 JavaScript 提供了 if 、if else 和 switch 3种条件语句,条件语句也可以嵌套。 (一)、条件语句 1、单向判断 : if... (1)概述 < if >元素用于在判断该语句是否满足特定条…...

Tomcat 11 下载/安装 与基本使用
为什么要使用Tomcat? 使用Apache Tomcat的原因有很多,以下是一些主要的优点和特点: 1. 开源与免费 Tomcat是一个完全开源的项目,任何人都可以免费使用。它由Apache软件基金会维护,拥有一个活跃的社区,这…...

Linux系统时间服务——Chrony服务器
文章目录 Linux系统时间服务——Chrony服务器前言时间同步的重要性Linux系统的两种时钟系统时钟(System Clock)相关命令硬件时钟 (RTC - Real Time Clock)相关命令 Chrony介绍NTP Chronyc相关命令服务管理相关命令chronyc 基本命令时间校正和控制命令NTP…...

C# 接口(Interface)
C# 接口(Interface) 接口在C#中是一种非常重要的概念,它定义了一个约定,实现该接口的类必须遵循这个约定。接口可以包含方法、属性、事件和索引器,但不包含实现。这使得接口成为定义抽象行为的理想选择。在本文中&…...

《高频电子线路》—— 电容三端LC振荡器
文章内容来源于【中国大学MOOC 华中科技大学通信(高频)电子线路精品公开课】,此篇文章仅作为笔记分享。 电容三端LC振荡器 基本原理(考毕兹电路) 反馈电压从C2上取得,作为输入电压,形成正反馈&a…...

leetcode35.搜索插入位置
1)题目描述: 2)本题要求使用 时间复杂度O(log n)的算法,这里使用二分查找的方法,这道题本身不复杂,但是,在使用递归调用时,笔者经常把递归结束的边界搞错,这里给出几版代…...

Redis全系列学习基础篇之位图(bitmap)常用命令的解析
文章目录 描述常用命令及解析常用命令解析 应用场景统计不确定时间周期内用户登录情况思路分析实现 统计某一特定时间内活跃用户(登录一次即算活跃)的数量思路分析与实现 描述 bitmap是redis封装的用于针对位(bit)的操作,其特点是计算效率高,占用空间少,常被用来统计…...

Copilot功能
Copilot 1、简介:Copilot是由GitHub与OpenAI共同开发的一款AI编程助手,旨在帮助开发者提高工作效率,改善代码质量。 2、主要功能包括: 1.代码补全:Copilot可以在开发者编写代码时提供代码建议,包括函数、循…...

《GBDT 算法的原理推导》 11-13初始化模型 公式解析
本文是将文章《GBDT 算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。 公式(11-13)是GBDT算法的第一步,它描述了如何初始化模型。公式如下: f 0 ( x ) arg min c ∑ i 1 N L ( y i , c ) f_0(x) \arg \m…...

# Easysearch 与 LLM 融合打造高效智能问答系统
LangChain通过提供统一的抽象层和丰富的工具,极大地简化了LLM应用程序的开发过程,使得开发者能够更加专注于业务逻辑。RAG技术则通过索引和检索生成两步流程,利用最新数据或私有数据作为背景信息来增强大模型的推理能力。然而,对于…...

本地可以插入表记录,生产不能插入表记录
先说解决方案: 切面没有注入容器,在切面这加上Component详情: 大致是这样一个方法,本地运行会插入数据到sys_log表,但部署到服务器上就不会插入,而服务部署三年多了,一个表一直是空的居然没人…...

11.Three.js使用indexeddb前端缓存模型优化前端加载效率
11.Three.js使用indexeddb前端缓存模型优化前端加载效率 1.简述 在使用Three.js做数字孪生应用场景时,我们常常需要用到大量模型或数据。在访问我们的数字孪生应用时,每次刷新都需要从web端进行请求大量的模型数据或其他渲染数据等等,会极大…...

功能测试:方法、流程与工具介绍
功能测试是对产品的各功能进行验证的一种测试方法,旨在确保软件以期望的方式运行并满足设计需求。以下是对功能测试的详细解释: 一、定义与目的 定义:功能测试(Functional Testing),也称为行为测试&#…...

【Orange Pi 5 Linux 5.x 内核编程】-设备驱动中的sysfs
设备驱动中的sysfs 文章目录 设备驱动中的sysfs1、sysfs介绍2、内核对象(kobject)介绍3、设备驱动中的SysFS31 在/sys中创建目录3.2 创建sysfs文件3.2.1 创建属性3.2.2 创建sysfs文件4、驱动程序实现5、驱动验证1、sysfs介绍 sysfs是内核导出的虚拟文件系统,类似于/proc。sys…...

微信小程序-全局数据共享/页面间通信
一.全局数据共享 声明全局的变量,在app.js文件里 App({//全局共享的数据globalData:{token:},//设置全局数据setToken(token){this.globalData.tokentoken}})使用 getApp() 获取全局App实例 //返回全局唯一的APP实例 const appInstancegetApp()Page({login(){con…...

java计算机毕设课设—Java聊天室(附源码、文章、相关截图、部署视频)
这是什么系统? 资源获取方式再最下方 java计算机毕设课设—Java聊天室(附源码、文章、相关截图、部署视频) Java聊天室系统是一个基于Java语言开发的在线即时通讯平台,旨在为用户提供一个简单、易用的实时交流环境。该系统支持多用户同时在线交流&…...

图像识别基础认识
import numpy as np import pandas as pd import matplotlib.pyplot as plt import cv2 %matplotlib inline读取图像 img = cv2.imread(shuzi.png) # 显示图像 cv2.imshow(shuzi, img) # 设置窗口大小 #cv2.resizeWindow(shuzi, 800, 600) # 设置宽为800,高为600 cv2.waitKe…...

使用 OpenCV 读取和显示图像与视频
概述 OpenCV 是一个强大的计算机视觉库,广泛应用于图像处理和视频处理等领域。本文将详细介绍如何使用 OpenCV 在 Python 中读取和显示图像以及视频,并通过具体的代码示例来展示整个过程。 环境准备 在开始之前,请确保已经安装了 OpenCV 库…...

【1】Elasticsearch 30分钟快速入门
文章目录 一、Elasticsearch 基本概念及工作原理(一)基本概念(二)工作原理二、Elasticsearch 原生 RESTful 方式的增删改查(一)创建索引(二)插入文档(三)查询文档(四)更新文档(五)删除文档(六)删除索引三、Python SDK 实现增删改查(一)安装 Elasticsearch Py…...

教材管理系统设计与实现
教材管理系统设计与实现 1. 系统概述 教材管理系统是一个基于PHP和SQL的Web应用程序,旨在为学校提供一个高效的教材管理平台。该系统可以帮助管理员录入教材信息、教师查询和申请教材、学生查询教材信息,提高教材管理的效率和透明度。 2. 技术栈 前端…...

软考(中级-软件设计师)数据库篇(1101)
第6章 数据库系统基础知识 一、基本概念 1、数据库 数据库(Database ,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和扩展…...

安装nscd及glibc包冲突降级【centos7】
安装nscd及glibc包冲突降级【centos7】 一、查看当前glibc版本二、查找可用的glibc版本三、备份系统和数据四、降级glibc五、验证降级是否成功六、解决其他依赖问题七、测试和验证八、考虑使用容器技术endl [08:41:07 rootcentos7 ~]# yum -y install nscd Loaded plugins: fas…...

Qt字符编码
目前字符编码有以下几种: 1、UTF-8 UTF-8编码是Unicode字符集的一种编码方式(CEF),其特点是使用变长字节数(即变长码元序列、变宽码元序列)来编码。一般是1到4个字节,当然,也可以更长。 2、UTF-16 UTF-16是Unicode字符编码五层次…...

Ubuntu用docker安装AWVS和Nessus(含破解)
Ubuntu安装AWVS(更多搜索:超详细Ubuntu用docker安装AWVS和Nessus) 首先安装docker,通过dockers镜像安装很方便,且很快;Docker及Docker-Compose-安装教程。 1.通过docker search awvs命令查看镜像; docker search awvs…...