DNS、ICMP和NAT

DNS、ICMP和NAT

文章目录

  • DNS、ICMP和NAT
      • DNS是什么
      • 域名系统的名字空间
        • 域名空间的层次结构
        • 域名的分配和管理
        • 顶级类别域名
      • DNS域名解析过程
        • 递归查询
        • 迭代查询
      • 高速缓存
  • ICMP
        • ICMP的定位
        • ICMP协议的功能
      • ICMP的报文格式
        • ping命令
        • traceroute命令
  • NAT
      • NAT技术背景
      • NAT IP转换过程
      • NAPT
        • NAT的实现方式
        • NAT技术的缺陷
      • 代理服务器
        • 正向代理
        • 反向代理
        • NAT和代理服务器

DNS是什么

DNS(Domain Name System)是一整套从域名映射到IP的系统,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

TCP/IP中通常使用IP地址和端口号来标定主机上的一个服务,而IP地址通常是32位的二进制数字的集合,记起来非常不方便,因此就有人发明出来了域名((Domain Name),采用了就采用了域名系统来管理名字和IP的对应关系。

一个企业的web网站相当于网络上它的门户,而域名就是门户的门牌号,因此通常域名会使用企业的名字或简称。例如百度的域名https://www.baidu.com/。b站的域名https://www.bilibili.com/。使用域名的另一个好处是,当我想要访问某个网站,但又不记得该网站的域名,就可以通过输入其企业名字作为试探。实际上域名可以看作成一个字符串,这样会让网络上的服务好记些

当一个用户想要访问网络上的服务时,可以通过IP地址进行访问,也可以输入域名进行访问。

域名系统的名字空间

域名空间的层次结构
  1. 名字空间是指定义了所有可能的名字的集合。域名系统的名字空间是层次结构的,类似Windows的文件名。
  2. 它可看作是一个树状结构,域名系统不区分树内节点和叶子节点,而统称为节点,不同节点可以使用相同的标记。
  3. 所有节点的标记只能由3类字符组成:26个英文字母(a~z)、10个阿拉伯数字(0~9)和英文连词号(-),并且标记的长度不得超过22个字符。
  4. 一个节点的域名是由从该节点到根的所有节点的标记连接组成的,中间以.分隔。最上层节点的域名称为一级(顶级)域名(TLD,Top-Level Domain),第二层节点的域名称为二级域名,依此类推。

例如www.baidu.com

com:一级(顶级)域名。表示这个是企业使用的域名,同级的还有net(网络提供商),org(非盈利组织)等。

baidu:二级域名,通常是企业名。

www:万维网的简称。只是一种习惯用法,之前人们在使用域名时, 往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式, 来表示主机支持的协议。

域名的分配和管理

域名由因特网域名与地址管理机构(ICANN,Internet Corporation for Assigned Names and Numbers)管理,这是为承担域名系统管理、IP地址分配、协议参数配置,以及主服务器系统管理等职能而设立的非盈利机构。ICANN为不同的国家或地区设置了相应的顶级域名,这些域名通常都由两个英文字母组成。例如:.uk代表英国、.fr代表法国、.jp代表日本。中国的顶级域名是.cn,.cn下的域名由CNNIC进行管理。

顶级类别域名

除了代表各个国家顶级域名之外,ICANN最初还定义了7个顶级类别域名,它们分别是是.com.top.edu.gov.mil.net.org.com。.top用于企业,.edu用于教育机构,.gov用于政府机构,.mil用于军事部门,.net用于互联网络及信息中心等,.org用于非盈利性组织等。

例如因特网的域名空间

image-20231020164707481

DNS域名解析过程

image-20231020165843656

  • 主机在浏览器中输入某个web服务器的域名后,主机首先会去自己的DNS高速缓存中查找该域名对应的IP地址。

  • 如果没有找到,就会向网络上的某台DNS服务器申请查询,DNS服务器中含有域名和IP地址映射关系的数据库。

  • 当DNS收到DNS查询报文后,在数据库中查询,之后将查询结果通过网络发送给主机。

  • 给DNS给域名服务器,返回一个IP地址。

  • 此时主机中的浏览器可以通过Web服务器的IP地址对其进行访问了。

域名解析包含两种查询方式,递归查询迭代查询

递归查询

如果主机所询问的本地域名服务器不知道查询域名的IP地址,那么本地域名服务器会充当DNS客户端的身份,向其他根域名服务器继续发送查询请求报文,即替主机查询。

image-20231020180447964

  • 主机首先向本地域名服务器进行递归查询。
  • 本地域名服务器收到查询请求后,在服务器的数据库中没有查询到对应内容,也采用递归查询的方式向某个根域名服务器查询。
  • 根域名服务器收到查询请求后,在服务器的数据库中没有查询到对应内容,也采用递归查询的方式向某个顶级域名服务器查询。
  • 当查询到域名对应的IP地址后,查询结果会在之前受委托的各域名服务器之间传递,最终传回给用户主机。
迭代查询

当根域名服务器收到本地域名服务器发送的迭代查询请求时,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步去找哪个服务器进行查询。

image-20231020180501444

  • 主机首先向本地域名服务器进行递归查询。
  • 本地域名服务器收到查询请求后,在服务器的数据库中没有查询到对应内容,采用迭代查询的方式向某个根域名服务器查询。
  • 根域名服务器收到查询请求后,在服务器的数据库中没有查询到对应内容,告诉本地域名服务器可以向某个顶级域名服务器查询。
  • 本地域名服务器向顶级域名服务器进行迭代查询。
  • 顶级域名服务器收到查询请求后,当查询到域名对应的IP地址后,查询结果会直接发送给本地域名服务器,最终传回给用户主机。

高速缓存

为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录

域名与IP地址的映射不是永久不变的,为了保持高速缓存中内容的正确性,域名服务器应为每项内容设置计时器并删除超过合理时间的项。

不仅仅本地域名服务器需要高速缓存,用户主机也需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。

ICMP

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。

控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP的定位

在TCP/IP四层模型中,网络协议栈自顶向下分为四层,分别是应用层、传输层、网络层、数据链路层。

其中应用层最常见协议的是HTTP、HTTPS和DNS,传输层最常见协议的是TCP、UDP,网络层最常见协议的是IP,数据链路层最常见协议的是MAC协议。

image-20231020190745947

而ICMP、IMP协议和IP协议虽然同属于传输层层,但ICMP协议和IMP协议都位于IP帧协议的上层。

image-20231020190952196

  • 因此IP协议的上层协议不一定是TCP协议、UDP协议,有可能是ICMP协议/IMP协议。也就是说IP协议解包后向上交付时不只会交付给IP协议,也可能会交付给ICMP、IMP协议。
ICMP协议的功能

ICMP协议的主要功能包含:

  • 确认IP包是否成功到达目标地址。
  • 通知在发送过程中IP包被丢弃的原因。
  • ICMP也是基于IP协议工作的,但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议。
  • ICMP只能搭配IPv4使用. 如果是IPv6的情况下, 需要是用ICMPv6。

举个例子

image-20231022164639829

  • 主机A想要跨网络发送数据给主机B,首先主机A会将数据包发送给路由器1,由路由器1转发。
  • 路由器1将数据包转发给主机B的入口路由器,即路由器2,此时路由器2知道主机B的IP地址,但是不知道主机B的mac地址,因此发送arp请求给主机B,请求主机B的mac地址。
  • 由于主机B掉线了,无法回答路由器2arp响应,经过多次的arp请求后,路由器2返回一个Destination Unreachable给主机A,通知主机A该IP数据包没有成功到达主机B。

ICMP的报文格式

image-20231022165419559

ICMP大概分为两种报文:

  • 一类是用于通知出错原因
  • 一类是用于诊断查询

ICMP包常见类型如下:

类型内容
0回送应答(Echo Reply)
3目标不可达(Destination Unreachable)
4原点抑制(Source Quench)
5重定向或改变路由(Redirect)
8回送请求(Echo Request)
9路由器公告(Router Advertisement)
10路由器请求(Router Solicitation)
11超时(Time Exceeded)
17地址子网请求(Address Mask Request)
18地址子网应答(Address Mask Reply)
ping命令

ping命令是一个基于ICMP协议的TCP/IP工具。它的主要功能为:

  1. 用来检测网络的连通情况和测试网络速度。
  2. 根据域名得到相应主机的IP地址。
  3. 根据ping返回的TTL(IP包中的Time To Live, 生存周期)值来判断对方所使用的操作系统及数据包经过路由器数量。

因为具备了以上功能,ping命令常常被黑客用来做网络扫描和主机攻击。

image-20231022172029606

现通过ping命令对百度的网站进行检测。会对域名www.baidu.com解析成IP地址157.148.69.74

  • ping命令会先发送一个ICMP Echo Request给对端。
  • 对端接收到之后,会返回一个ICMP Echo Reply。

image-20231022172433549

telnet对应的端口号是23,ssh对应的端口号是22,那ping对应的端口号是多少?

ping命令基于ICMP,是在网络层,而端口号是传输层的内容,传输层在网络层之上,因此在ICMP中根本就不关注端口号这样的信息。

traceroute命令

traceroute命令也是基于ICMP协议实现的,利用ICMP协议定位主机和目标主机之间的所有路由器。

image-20231022182215355

  • tracetoute命令通过控制数据包的TTL来获取到路径上的路由器信息。
  • 每当数据包经过一个路由器,其TTL值就会减1,当TTL值减为0时对应路由设备就会将该数据包丢弃,并传送一个Destination Unreachable ICMP TTL数据包返回给主机。
  • tracetoute命令底层修改TTL,多次发送数据包,就能够拿到路径上路由器信息。

NAT

NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。

NAT技术背景

NAT实际上是为解决IPv4地址短缺而开发的技术。

之前介绍IP协议的时候提到过,早期的IP地址被划分为5类,由于B类设计的比较合理,会导致大多数人申请B类(最多能容纳6w多个主机号),而A类却浪费了大量地址。网络层协议—IP协议

  • A类从0.0.0.0到127.255.255.255
  • B类从128.0.0.0到191.255.255.255
  • C类从192.0.0.0到223.255.255.255
  • D类从224.0.0.0到239.255.255.255
  • E类从240.0.0.0到247.255.255.255

因此需要通过NAT技术,将子网内的私有IP转化为公网IP,公网IP才要求唯一性。大大提高了IP地址的使用率。

NAT IP转换过程

image-20231023191543914

例如客户端A想要跨网段将数据发送给服务器。客户端A的私有IP是10.0.0.10。注意:私有IP的在子网内使用的,不同子网的私有IP可以相同,但在同一个子网内私有IP需要保持唯一性。

  • 客户端A将数据包发送到同个子网的路由器,由路由器转发。数据包的源IP是客户端A的私有IP10.0.0.10 ,目的IP是服务器的公网IP163.221.120.9。 在NAT路由器中,会将数据包IP首部的源IP由私有IP10.0.0.10转化为公网IP202.244.174.37,该公网IP在公网内具备唯一性。根据目的IP,NAT路由器将该报文进行转发。
  • 报文经过多次跳转,最终发送到目标服务器上,由于该服务器是直接部署在公网上,因此服务器只认识公网IP,而该报文的源IP恰好就是全局IP。
  • 服务器接收到了客户端A的请求,现发送响应给客户端A。源IP是服务器的公网IP163.221.120.9,目的IP是202.244.174.37即NAT路由器所替换的全局IP。
  • NAT路由器接收到数据包后,将全局IP202.244.174.37转换回客户端A的私有IP10.0.0.10,然后将该报文发送到客户端A上。

image-20231023201058222

  1. 实际上,NAT路由器内含有一张私有IP和全局IP的映射表。当10.0.0.10第一次向163.221.120.9发送数据时就会生成表中的映射关系。NAT路由器转换数据包IP首部包含的IP地址就是根据该映射表完成的。
  2. NAT路由器所管理的子网内,私有IP统称为LAN口IP,而服务器发送给客户端A的响应IP首部包含的目的IP是NAT路由的WAN口IP。一个路由器可以配置两个地址,一个是LAN口IP,对内(子网)使用LAN口。一个是WAN口IP,对外(公网)使用WAN口。

NAPT

若局域网内具有多个主机同时访问一个公网上的服务器,对于服务器返回的数据包,目的IP都是相同的,NAT路由器如何判定将数据包发送给哪个客户端呢?

使用IP+port来解决

image-20231023194522223

例如子网内的客户端A和客户端B都要发送请求给公网上部署的服务器,客户端A的私有IP是10.0.0.10,端口号是1025。客户端B的私有IP是10.0.0.11,端口号是1025。服务器的公网IP是163.221.120.9,端口号是80

  • 客户端A想要跨网段发送数据包给服务器,需要将数据包发送给子网的出口路由器,由路由器转发到公网上的服务器。NAT路由器接收到客户端A发送来的数据包时,建立私有IP和公网IP的地址转换表,其中数据包IP首部包含的IP地址和端口号字段10.0.0.10:1025对应的公网上使用的IP地址和端口号202.244.174.37:1025。该公网IP是路由器的WAN口IP,端口号由路由器分配。
  • 同理,路由器收到客户端B发送来的数据包,也建立对应的地址转换表。由于1025端口先前被使用了,因此分配1026给客户端B,客户端B被路由器转发到公网上数据包的源IP+端口号字段为202.244.174.37:1026。该公网IP是路由器的WAN口IP,端口号由路由器分配。
  • 服务器先后接收到客户端A和客户端B发送来的请求数据包,由于两份数据包的源端口号字段不同,服务器能够区分出这是两份数据包。现需要对请求返回相应。返回的响应中,源IP+端口号字段都为163.221.9:80。不同的是,返回给客户端A的响应中包含的目的IP+端口号字段是202.244.174.37:1025,返回给客户端B的响应中包含的目的IP+端口号字段是202.244.174.37:1026
  • 路由器接收到两份响应,根据已经建立好的地址转换表,能够判别出数据包是发送给子网内的哪台主机。

这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下, 建立连接时, 就会生成这个表项,在断开连接后, 就会删除这个表项。

NAPT简介

NAPT(Network Address Port Translation),即网络地址端口转换,可将多个内部地址映射为一个合法公网地址,但根据不同的协议端口号,完成不同的内部地址相对应和转换。NAPT普遍用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT也被称为“多对一”的NAT。

总结一下:

  • 当子网内的主机需要向公网上的主机发送数据时,路由器会将发送的报文包含的源IP替换成路由器的WAN口IP,并建立子网主机的私有IP与其对应公网IP的关系。
  • 当一个子网内有多台主机需要向公网上的主机发送数据时,路由器不仅会将对发送的报文包含的源IP替换成路由器的WAN口IP,还会给主机分配端口号,并建立并建立子网主机的私有IP+端口号与其对应公网IP+端口号的关系。
  • 公网上的主机虽收到同个源IP发送来的报文,但能通过不同的端口号进行判定这是不同的主机发送过来的报文。

如果说NAT技术通过建立私有IP与公网IP的联系保持子网主机的唯一性,那么NAPT技术就是通过建立私有IP+端口号与公网IP+端口号的联系保持子网主机的唯一性。即维护了一张转换表。

image-20231023205332351

NAT的实现方式

NAT的实现方式有三种,即静态转换,动态转换和端口多路复用。

静态转换:内部本地地址一对一转换成内部全局地址,相当内部本地的每一台PC都绑定了一个全局地址。

image-20231023203832773

静态转换维护子网内一台主机分配一个公网IP,其实际使用意义不大,因为一个公网IP只能唯一的对应一台子网主机。

动态转换:将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。

image-20231023204311374

它能够将未注册的IP地址映射到注册IP地址池中的一个地址。不像静态转换那样,你无需静态的配置路由器,使其子网IP映射到公网IP上,但必须要包含足够的公网IP,让连接上公网的子网主机能够同时发送和接收数据。

端口多路复用(Port address Translation,PAT):是指在对IP进行转换的基础上,改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation),采用端口多路复用方式。

image-20231023205253392

内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自公网的攻击。因此,网络中应用最多的就是端口多路复用方式。

NAT技术的缺陷

由于NAT依赖这个转换表,因此也具有诸多缺陷

  • 无法从NAT外部向内部服务器建立连接。子网内的主机没有主动向公网上的主机建立连接的话,NAT路由器中就没有建立好子网IP+端口号与公网IP+端口号的对应关系。公网上的主机主动向子网内的机器发送连接时,NAT路由器就不能通过转换表将请求数据包传达到对应的子网内主机上。
  • 转换表的生成和销毁都需要额外开销。
  • 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开。NAT路由器作为子网主机与公网上的机器通信的桥梁,若NAT路由器异常,就不能进行正常通信。

实际上,NAT可以作为子网主机与公网上的机器通信的桥梁,那么也存在子网主机实际上是与另一个子网内的主机在通信,部署在公网上的设备实际上是两台NAT路由器罢了。通过NAT路由器将子网的主机暴露在公网上,可以当作云服务器使用,这种方法称为“内网穿透”。

image-20231024150121487

代理服务器

代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。

正向代理

image-20231024152340395

正向代理,指的是一台处于客户端和目标服务器之间的代理服务器,客户端不会直接访问目标服务器,而是先访问代理服务器,然后由代理服务器替客户端对目标服务器进行访问,并由代理服务器将目标服务器的响应转发回给客户端。

例如校园网,在宿舍内电脑通过校园网访问网上资源,实际上是学校的正向代理服务器代替电脑去对公网上的服务器发送资源申请,然后由代理服务器将资源返回给电脑。公网上的服务器并不认识宿舍的电脑IP地址。

正向代理的特点:

  1. 由于代理服务器是替客户端对目标服务器进行访问,那么目标服务器只能看到代理服务器的IP地址,隐藏了客户端的真实身份和位置。
  2. 当多个客户端需要对指定目标服务器的某个资源进行访问时,代理服务器会将该资源缓存在服务器中,客户端只需要对代理服务器访问就能拿到资源,无需再对目标服务器进行发起请求。
反向代理

image-20231024152956109

反向代理,也指的是一台处于客户端和目标服务器之间的代理服务器,客户端对目标服务器进行访问,实际上是对反向代理服务器进行访问,由反向代理服务器对目标服务器进行资源申请,然后将资源返回给客户端。

例如WWW.baidu.com,该百度官网实际上是反向代理服务器,我们对百度官网进行资源申请,实际上是由该代理服务器针对不同的资源将客户端的请求分发给内部的服务器,然后由该代理服务器返回客户端相应的资源,我们并不知道内部服务器的IP地址。

反向代理的特点:

  1. 由于客户端是直接访问的反向代理服务器,那么客户端只能看到反向代理服务器的IP地址,隐藏了目标服务器的真实身份和位置。

反向代理的优点:

  1. 反向代理常见的应用场景包括:负载均衡、高可用性、缓存和加速、安全过滤和防护等。它可以提供可靠的请求分发、保护内部服务器、优化性能并增加安全性。
  2. 反向代理常用于Web应用部署中,将客户端的请求分发给多个内部服务器,以实现负载均衡和高可用性。
NAT和代理服务器

路由器往往都具备NAT设备的功能, 通过NAT设备进行中转, 完成子网设备和其他子网设备的通信过程。

代理服务器看起来和NAT设备有一点像,客户端向代理服务器发送请求,代理服务器将请求转发给目标服务器。服务器返回结果后,代理服务器又把结果转发给客户端。

么NAT和代理服务器的区别

  • 从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  • 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换,代理服务器往往工作在应用层。
  • 从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做、在广域网做,还可以跨网。
  • 从部署位置上看, NAT一般集成在防火墙、路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。

最后作者在这里祝福大家1024节快乐!前途似锦,未来可期!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云原生Docker Cgroups资源控制操作

目录 资源控制 cgroups四大功能 CPU 资源控制 设置CPU使用率上限 进行CPU压力测试 设置50%的比例分配CPU使用时间上限 设置CPU资源占用比(设置多个容器时才有效) 设置容器绑定指定的CPU 对内存使用的限制 限制容器可以使用的最大内存 限制可用的…

“编辑微信小程序与后台数据交互与微信小程序wxs的使用“

引言 在现代移动应用开发中,微信小程序已经成为了一个非常流行和广泛使用的平台。为了使小程序能够展示丰富的内容和实现复杂的功能,与后台数据的交互是至关重要的。同时,微信小程序还提供了一种特殊的脚本语言——wxs,用于增强小…

20231024后端研发面经整理

1.如何在单链表O(1)删除节点? 狸猫换太子 2.redis中的key如何找到对应的内存位置? 哈希碰撞的话用链表存 3.线性探测哈希法的插入,查找和删除 插入:一个个挨着后面找,知道有空位 查找:一个个挨着后面找…

LeetCode 209. 长度最小的子数组

长度最小的子数组 题目链接 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组&…

【刷题-PTA】堆栈模拟队列(代码+动态图解)

【刷题-PTA】堆栈模拟队列(代码动态图解) 文章目录 【刷题-PTA】堆栈模拟队列(代码动态图解)题目输入格式:输出格式:输入样例:输出样例: 分析题目区分两栈解题思路伪代码动图演示代码测试 题目 题目描述 : 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 …

【数据结构】线性表(十)队列:循环队列及其基本操作(初始化、判空、判满、入队、出队、存取队首元素)

文章目录 队列1. 定义2. 基本操作 顺序队列循环队列1. 头文件和常量2. 队列结构体3. 队列的初始化4. 判断队列是否为空5. 判断队列是否已满6. 入队7. 出队8. 存取队首元素9. 获取队列中元素个数10. 打印队列中的元素9. 主函数10. 代码整合 堆栈Stack 和 队列Queue是两种非常重要…

虚拟机VMware Workstation Pro安装配置使用服务器系统ubuntu-22.04.3-live-server-amd64.iso

虚拟机里安装ubuntu-23.04-beta-desktop-amd64开启SSH(换源和备份)配置中文以及中文输入法等 ​一、获取Ubuntu服务器版 获取Ubuntu服务器版 二、配置虚拟机 选择Custom(advanced): 选择Workstation 17.x: 选择“I will install the operating system later.”…

I/O设备的概念和分类,I/O控制器

文章目录 1.什么是I/O设备2.按使用特性分类1.人机交互类外部设备2.存储设备3.网络通信设备 3.按传输速率分类1.低速设备:2.中速设备:3.高速设备: 4.按信息交换的单位分类1.块设备:2.字符设备: 5.I/O设备的机械部件6.I/O设备的电子部件(I/O控制器)1.接收和…

Vue中的加密方式(js-base64、crypto-js、jsencrypt、bcryptjs)

目录 1.安装js-base64库 2. 在Vue组件中引入js-base64库 3.使用js-base64库进行加密 4.Vue中其他加密方式 1.crypto-js 2.jsencrypt 3.bcryptjs 1.安装js-base64库 npm install js-base64 --save-dev 2. 在Vue组件中引入js-base64库 import { Base64 } from js-ba…

快速排序(c语言代码实现)

交换排序:快速排序(不稳定的排序) 快速排序(Quick Sort)是一种常见的排序算法,它采用分治法的思想,对待排序序列进行划分,使得划分出的子序列可以分别进行排序,最终使整…

2、Linux权限理解

个人主页:Lei宝啊 愿所有美好如期而遇 目录 前言 Linux权限的概念 1.文件访问者的分(人) 2.文件类型和访问权限(事物属性) 3.文件权限值的表示方法 4.文件访问权限的相关设置方法 file指令 目录的权限 粘滞位 关于权限的总结 前言 在开始Linux权限理…

python二次开发Solidworks:读取样条曲线数据

目录 1、草图段对象 2、VBA代码分析 3、python代码实现 样条曲线(spline curve)是数学术语,是一种特殊的参数曲线,由一组控制点通过曲线拟合的方式生成。样条一词源于船舶建造中的一种临时性辅助支架,后来被引入计算…

Kettle循环结果集中的数据并传入SQL组件【或转换】里面

简介:在尝试使用了结果集的Demo循环后,进入到生产还是有一点问题的,以下是各个组件的分解解释、遇到的问题,以及解决问题的思路,最后文章的最后会把完整的Ktr文件放出来。记得收藏点赞喔! 先来看张图~来自…

MOTHERNEST双十一我们的目标是:不愁货——有!不愁钱——折!

喜迎双十一,MOTHERNEST进入开抢模式,水飞蓟护肝片,牛初乳粉,液体钙维生素D3胶囊将进行抢购模式,每人限购4件。 开抢时间: 2023.10.31 20:00-2023.10.31 23:59 2023.11.03 20:00-2023.11.03 23:59 限量每…

目标检测的方法

目标检测大致分为两个方向:基于传统的目标检测算法和基于深度学习的目标检测算法。 1.基于传统的目标检测算法 在利用深度学习做物体检测之前,传统算法对于目标检测通常分为3个阶段:区域选取、特征提取和体征分类。 2.基于深度学习的目标检测…

win10安装spark

一、进入spark下载页面 连接 Downloads | Apache Spark 二、解压下载后的.tgz文件 直接解压即可 三、运行 运行bin目录下的 spark-shell.cmd 提示 Did not find winutils.exe: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.hom…

NSSCTF做题第9页(3)

[GKCTF 2020]CheckIN 代码审计 这段代码定义了一个名为ClassName的类,并在脚本的最后创建了一个ClassName类的实例。 在ClassName类的构造函数中,首先通过调用$this->x()方法获取了请求参数$_REQUEST中的值,并将其赋值给$this->code属性…

短视频矩阵系统软件源码

短视频矩阵系统软件源码 视频成为获得免费流量最便宜的渠道,平台给所有视频最基础的保底流量。如果按照一个视频最低500流量计算,5个账户就是2500的流量,200个视频就是50W流量,如果从其他渠道获得50W流量是个很困难的事情。短视频…

kubeadm初始化的k8s集群证书续期—— 筑梦之路

脚本自动化方式 这个是一个开源的项目:https://gitee.com/ximy/update-kube-cert 该项目可以自动化更新k8s集群的证书,使用也很简单。 该脚本可将 kubeadm 生成的证书有效期更新为 10 年。 git clone https://github.com/yuyicai/update-kube-cert.g…

Notepad++正则查询替换操作

Notepad编辑器查找功能非常强大,本处记录一些实战中常用到复杂查询替换操作。 注意:如果是重要文件,替换操作前最好备份;当前一个操作后也可以用ctrlz恢复。 查找重复行 用查找(ctrlf)功能,用正则表达式模式匹配。 查…