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

【Linux】DNS系统,ICMP协议,NAPT技术

遏制自己内心的知识优越感,才能让你发自内心的去尊重他人,避免狂妄自大,才能让你不断的丰富自己的内心。

在这里插入图片描述

文章目录

  • 一、DNS系统
    • 1.DNS服务器返回域名对应的ip
    • 2.使用dig工具分析DNS过程
    • 3.浏览器中输入url后发生的事情?
  • 二、ICMP协议
    • 1.ICMP功能
    • 2.ping 和 traceroute命令
    • 3.ICMP攻击
  • 三、NAT和NAPT
  • 四、代理服务器
    • 1.正向代理
    • 2.反向代理
    • 3.访问外网的原理(正向代理)
    • 4.NAT和代理服务器的区别
  • 五、总结


一、DNS系统

1.DNS服务器返回域名对应的ip

1.
域名其实就是平常我们所访问的www.baidu.com、www.google.com网址,有人说,我们访问服务器上的某个进程不应该用ip+port的方式来访问吗?怎么用域名开始访问了?其实主要还是因为服务器的ip都是数字,数字对于计算机很友好,但对我们人类就不太友好了,如果我今天要访问一下百度,那我记一下百度服务器的ip地址,明天访问edge,再记一下edge的ip地址,一旦要访问的网站数量上来或时间线拉长了,那一定会混的。
为了互联网的商业化推广和普通百姓的使用体验,有人就搞出来了域名这样的东西,一个域名对应映射一个ip地址,这样的映射关系最初是存储在一个hosts文件当中的,这个hosts文件最初是由互联网信息中心(SRI-NIC)来管理的,如果有设备想要入网,则必须向SRI-NIC中心机构申请变更hosts文件,其他已经入网的设备也要定期的从SRI-NIC下载更新新的hosts文件,更新新的ip和域名的映射关系,只有这样才可以正常上网。

2.
但这样让用户自己定期更新的方式太麻烦了,于是就产生了DNS系统。
DNS是一个分布式的系统,由许许多多不同的DNS服务器组成,这些DNS服务器分布在全球各地,你家所在的区,市,省都会有相应的DNS服务器,这些服务器共同组成了一个庞大的网络基础设施。
在DNS系统中,服务器有很多级,例如根域名服务器,顶级域名服务器,权威域名服务器,像中国互联网网络中心(CNNIC)负责管理顶级域名服务器和权威域名服务器,提供对.cn域名的解析服务,像电信,联通,移动,或其他大型互联网厂商,等都会维护自己的DNS服务器,用于内部网络和客户的域名解析需求。

3.
实际我们在访问网站时,大部分的人都不会在地址栏输入ip地址或者域名的方式来访问,最常见的访问方式就是先搜索,在搜索的结果中找到官网,然后点击官网,以这样的方式来访问。
当我们点击官网时,也是要进行dns域名解析的,因为搜索的结果显示的方式就是域名的方式,比如显示出来的https://news.qq.com中,整体是一个完整的URL,协议类型是https,域名部分是news.qq.com,这个URL中没有带路径,也就是访问服务器的web根目录下的哪个服务,此时会带上斜杠(/)斜杠是路径的一部分,而不是域名的。

在这里插入图片描述

4.
当我们点击搜索到的官网链接时,浏览器会尝试进行域名解析,将域名转换为ip地址,然后以ip+port的访问去访问对应的服务器,有人说端口号在哪里啊?我怎么没见到啊?我只见到了域名能够通过DNS转换为ip地址啊,其实像https这样成熟的应用层协议,也就是超文本传输安全协议,这样协议对应的进程bind的是知名端口号443,所以我们的浏览器在拿着ip进行访问时,默认访问的就是ip对应的服务器上绑定443端口号的进程。
一般在浏览器进行域名解析时,会首先向OS或browser自带的缓存发起DNS查询请求,如果缓存中没有相应的记录的话,OS会将DNS查询请求发到我主机所在局域网的出口路由器,一般出口路由器都会相应的配置一个本地DNS服务器,当路由器收到dns请求时,会将此请求发送给配置的本地DNS服务器,本地DNS服务器接收到查询请求后,会向根域名服务器发起请求,逐级向上进行查询,根域名服务器会通过自己的数据库找到目标域名的ip地址,找到后会将ip逐级返回至最初的浏览器,让浏览器拿着ip地址进行https请求,以获取网站的内容。

下面分别是我的windows和linux云服务机器的dns缓存内容,一些常见的域名的ip地址都被浏览器缓存了下来,例如csdn.net,cplusplus.com等域名对应的服务。
在这里插入图片描述

2.使用dig工具分析DNS过程

1.
域名一般使用 . 来进行连接,例如www.baidu.com,com(commercial)是一级域名,表示这是一个企业,同级域名还有net(网络提供商),org(非盈利组织,kernel.org)等。
baidu是二级域名,一般代表公司的名字。
www只是一个习惯性的用法,在早期的互联网中比较常见,比如人们默认约定www开头的是支持Web服务的主机,ftp开头的是支持FTP协议的主机,但随着互联网技术的发展,这种命名约定变得没有那么重要了,现代的域名系统不要求以www作为Web服务的默认前缀,转而直接用域名本身,例如baidu.com来作为网站的URL。
(所以如果想要让一个国家的网络体系直接瘫痪掉,则只要停掉这个国家的域名解析服务就可以了,一旦停掉,则网民无法访问任何互联网公司所提供的服务,因为没有ip就找不到这些服务对应的服务器主机位置,自然就无法进行网络请求。)

2.
下面我们来用dig工具来分析DNS域名解析的过程,安装dig工具的指令sudo yum install bind-utils,安装好之后,就可以使用dig指令来查看域名解析的过程了。

在这里插入图片描述

3.浏览器中输入url后发生的事情?

1.
这道题是非常经典的开放性面试题,你说的越多越详细越好,但需要注意的是我们不能乱说,一定要有条理性的去说,这样能够体现出你的知识是成体系化的,你不是东一榔头西一棒子学出来的。

2.
通常我们在回答这种开放式的问题时,一定要先交代清楚,准备怎么回答这个问题,从哪几个方面回答这个问题,把这些先告诉HR,正确的做法应该是下面这样的。
提前语:回答过程中,可能有些技术的细节占用的时间比较长,欢迎面试官随时打断我。
我接下来准备从两个方面来回答这个问题,首先我会从纯应用层的角度解释这个问题,然后再从贯穿协议栈的角度来回答。
(1)输入URL后,浏览器会先查自己的dns缓存,如果找到那就将url中域名对应的ip交给浏览器,浏览器拿到ip后,会向服务器发起HTTPS请求(常见的),请求报头中会包含请求行,请求行最常见的字段就是GET和POST,请求报头,空行,请求正文,服务器收到HTTPS请求后,会构建HTTPS响应报文(状态码),除此之外,HTTP还有周边会话保持,长连接等技术,周边会话中还有内存级cookie和文件级cookie,以及为了解决cookie文件私密性太差的session技术。
HR最关心的还是应用层,因为大部分的程序员都是在做应用层开发的,所以我们在回答时,先把面试官最关心的东西交给他,一个从业十年的程序员其实应用层下面的东西早就忘记了,他最熟练的还是应用层,但如果我们能把应用层和其下面的协议都说明白,那就很加分了。
(2)传输层的UDP和TCP,面向连接和无连接,面向数据报和面向字节流,socket接口的不同,TCP的连接管理,确认应答,超时重传,流量控制,滑动窗口,拥塞控制,网络层的IP,网段划分,NAT技术,数据包如何实现路由,路由表的结构,数据链路层的以太网,ARP请求,数据碰撞,交换机,ARP欺骗。
结束语:如果我刚刚的回答有细节遗漏 或 概念不清晰的问题的话,烦请面试官指出,下来后我会再认真学习。

3.
在工作中,沟通和表达能力是非常重要的,在秋招市场上,有三类同学很受欢迎,纯技术能力强,技术能力过关,沟通和表达能力很强,技术能力过关,心态很好,对工作和生活充满激情,这三类人是最容易找到好工作的。
还有一定要诚实,千万不要在项目上造假,一个刚毕业的本科生或研究生,能够做什么样的项目,面试官心里都是有数的,不要欺骗面试官。

浏览器中输入url后发生的事情?

二、ICMP协议

1.ICMP功能

1.
ICMP是基于网络层IP的一个协议,但他并没有被划分到传输层,因为他主要的作用还是在于路由数据包,IP报头的protocol值为1时,就代表将IP报头拆开后,将有效载荷交付给ICMP协议,而不是UDP或TCP。

在这里插入图片描述

2.
之前我们谈过IP协议将数据包跨网络发送到对端主机的过程,但如果网络层在路由的时候出了问题呢?那网络层是不是应该提供一些,他自己所在层的故障排查的功能呢?当然应该提供,ICMP主要用于确认数据包是否成功到达目的主机,或者当数据包没有到达目的主机时,我们想知道是什么原因造成的。
所以ICMP报文大概分为两类,一类是查错报文,由网络中间节点设备或目标主机返回的错误报文,常见的错误问题有超时问题,目标不可达,以及参数问题等,另一类是查询报文,用于探测网络的健康状况等。

在这里插入图片描述

下面是ICMP报文的类型
在这里插入图片描述

2.ping 和 traceroute命令

1.
ping和traceroute是典型的基于ICMP协议实现的应用程序,ping程序是最常见的用于检测ipv4或ipv6网络设备的连通性的工具,ping使用ICMP的echo信息来确定网络的连通性如何,比如远程设备是否可达,与主机通信的来回时延(round-trip),数据包的丢失情况。
ping的时候,ping的不是url,而是域名,通过域名就可以DNS解析得到ip地址,ping命令会发送ICMP Echo Request报文给对端。

2.
traceroute可以打印出数据包到达目的主机过程中经过的网络节点信息,为我们显示出数据包的路由路径,可以显示出每一个节点的延迟时间信息。
打印结果中的***代表该网络节点选择忽略或不响应ICMP请求,这可能是由于防火墙设置,路由器配置或网络设备有自己的策略所导致的,这并不一定表示存在问题或故障,而可能是该节点只是选择不回复ICMP请求而已。

在这里插入图片描述

3.
有些面试官可能会问,telnet程序是23端口,ssh是22端口,那么i、ping是什么端口?
因为ping是基于ICMP协议的,而ICMP是网络层的协议,没有端口号这样的概念,而telnet和ssh是基于TCP的,所以他们有端口号。

3.ICMP攻击

1.
之前讲数据链路层的时候,谈到过ARP欺骗的攻击,实际上ICMP也有攻击,正因为他的设计简单,所以违法者才会利用他的漏洞从而进行攻击。

2.
(1)ICMP Flood攻击:ICMP洪水攻击是最为常见的一种攻击方式,攻击者会发送大量的ICMP echo请求报文来查询网络健康状况,而目标主机会因为处理大量的echo报文而造成资源消耗过度,从而导致网络延迟,或目标主机的服务不可用
(2)ICMP Smurf 攻击:攻击者会伪造自己的源ip地址,然后向广播地址发送大量的echo请求报文,这些请求报文会被广播到网络上的所有主机,所有主机收到后都会向源ip对应的主机返回echo响应报文,而这个伪造的源ip其实就是被攻击主机的ip地址,该主机也会由于同一时间内受到大量的报文,而导致主机性能下降,网络延迟等问题。
(3)ICMP Redirect 攻击:攻击者可以发送伪造的ICMP Redirect报文到目标主机,欺骗目标主机更改路由表中的路由信息。这就可能导致目标主机讲流量转发到攻击者控制的路由器上,从而导致中间人进行数据窃取。

三、NAT和NAPT

1.
NAT技术之前讲网络层协议时已经介绍过了,这里再简单的提一下,NAT技术最成功的地方就是解决了ipv4地址不足的问题,NAT技术可以将让多个内网主机共享公网ip地址,而所谓的共享,其实就是当这些主机想要连接或访问公网上的服务时,NAT技术可以将他们发送的数据包一步步替换为最终发送给目标主机的节点的公网源ip,以这样的方式来解决ipv4地址不足的问题,因为大部分的主机都会共享同一个公网ip,同时在不同的局域网中出现不同的私有ip也是可以的,大部分的局域网主机都可以高频率重复的使用私有ip,这也正是网段划分,所以NAT+网段划分解决了ipv4地址不足的问题。
之前在讲述IP协议的时候,在《产生的疑问》那一部分,我就演示过我家庭里面所有的入网设备的公网ip地址是相同的。

【Linux】网络层协议:IP

在这里插入图片描述

2.
NAT技术着重于解决ipv4地址不足的问题,在讲IP层的时候,也学习过一个局域网中的数据包是如何转发到公网环境上去的,在转发过程中会不断的替换源ip地址,但数据包如何从公网环境上转发回原来的局域网呢?
这样的问题靠NAT技术就无法解决了,而是需要NAPT技术。

3.
NAPT技术是基于NAT技术,用来解决数据包如何从公网返回到内网的问题的。
NAPT不仅仅会替换源ip地址,同时还会替换源端口号,其目的就是维护一张在映射关系上是具有唯一性的NAT转换表。在下面的通信过程中,A和B都要访问公网上的服务器,他们的数据包的源ip是不同的,但源端括号是相同的,当数据包发送到NAT路由器时,路由器会将数据包里面的源ip替换为自己的公网ip地址,同时路由器发现两个数据包的源端口号是相同的,此时路由器会将其中一个数据包的源端口号替换为一个不重复的值,所以你可以在NAT转换表中看到,替换后的源端口号一个是1025,一个是1026,为什么要这么做呢?后面再说
当数据包成功发送到公网上的服务器后,公网上的数据包会构建响应报文,响应报文的目的ip和目的端口号,服务器会查看收到的数据包的头部内容而填充,如果响应报文的目的ip是202.244.174.37,端口号是1025,那么这个数据包被发送到路由器后,路由器会查自己的NAT转换表,发现这个目的ip和目的port对应的映射关系是10.0.0.10:1025,所以下一步,该路由器就会将报文转发回内网的主机A,如果服务器发送的数据包的目的ip不变,端口号是1026,那么路由器也可以通过查NAT转换表的方式来查到对应的映射关系,将数据包再发送回内网的主机B。
这就是除了源ip外,还要进行源端口号替换的原因,因为当数据包从服务器先返回到路由器时,所有数据包的目的ip都是完全相同的,都是路由器的公网ip,只有目的端口号的不同,才能区分数据包应该由路由器转发到哪个内网主机,因为从内网发送出来的数据包的端口号可能是相同的,为了保证数据包从外边发送回来的唯一性,路由器必须要将端口号进行替换以,以此来保证NAT转换表中映射关系的唯一性。

在这里插入图片描述

4.
像运营商的路由器一般都不需要维护NAT转环表,因为运营商路由器只需要负责将数据包发送回家用路由器即可,家用路由器的wan口ip一定是不同的,所以运营商路由器没必要维护NAT转换表,因为返回的数据包从运营商到家用路由器是具有唯一性的!
而从家用路由器到内网主机是不具有唯一性的,所以此时路由器需要维护转换表,他需要决策将数据包返回给哪个内网主机,而这是需要转换表来决定的。

在这里插入图片描述

5.
如果主机A从来没有访问过公网上的服务器,那么服务器能否直接从外部的公网将数据包发送给内网的主机A呢?
这一定是做不到的,因为如果没有内网先到公网的访问,就无法在NAT转换表中维护好一个新的转换条目,而此时数据包只能从服务器到路由器,无法从路由器转发到内网主机,因为路由器没有对应的映射关系条目。

6.
由于NAT依赖这个转换表,所以NAT技术也有很多缺陷,比如无法从NAT外部向内部直接建立连接,通信过程中一旦NAT设备异常,所有的TCP连接都会断开,NAT转换表的生成和销毁都需要额外开销。
不过这些缺点相对于NAT的优点,根本不算什么,NAT的优点一定是远远大于缺点的!

四、代理服务器

1.正向代理

1.
正向代理和反向代理都是横在目标服务器和客户端中间的代理服务器,但在访问方式上,两者还是不同的。当客户端需要访问目标服务器时,请求会先发送到正向代理服务器,然后由正向代理服务器代表客户端发送请求到目标服务器,接收响应后再转发回客户端。
在发送的过程中,通过正向代理可以对请求进行修改、过滤或缓存,通过配置正向代理,客户端可以通过正向代理访问受限制的资源,例如fq,匿名浏览等。

在这里插入图片描述

2.
像正向代理这样的服务器,在学校里面最为常见,一般学校都会有自己的内网,和学校自己的服务器,当学生连接学校wifi后,进行的任何互联网请求都会由学校的服务器进行代理请求,有的学校会搭建自己的电影网站,供学生去看,此时当学生请求某些电影资源(例如战狼)时,如果学校的服务器缓存过,那么该正向代理服务器就会将缓存的资源返回给学生。
除此之外,有些学校的服务器会拦截使用ssh协议进行远程登录云服务器的请求,这也是由于正向代理的作用,正向代理检测到你进行的是ssh请求,可能学校会觉得ssh不太安全,直接就掐断你对于公网的访问,解决的办法也很简单,不要连学校的wifi,而是直接用移动热点,连接附近的运营商基站即可,运营商会转发我们的合法的数据包请求。

在这里插入图片描述

3.
正向代理另一种常见的使用情景就是游戏的加速器,假设你和你的舍友都在西安,你们在开黑王者荣耀,可能此时你们的王者荣耀客户端访问的都是北京的服务器,但如果你用了加速器,你会发现你玩游戏的流畅度立马提高了,而这其实就是因为正向代理的作用,例如西安附近有一些王者荣耀的正向代理服务器,如果你购买了加速器的话,那么你玩游戏时,各种网络请求都会由该正向代理服务器代你请求,同时该服务器可能会缓存各种有效数据和资源,像这样的网络请求就属于加速通道,这也是为什么玩游戏流畅的原因。

在这里插入图片描述

2.反向代理

1.
反向代理主要功能是代理目标服务器,客户端的请求会经反向代理转发给他后面的多个目标服务器,反向代理隐藏了后端服务器的真实地址和身份,客户端只与反向代理服务器进行通信,像这样的反向代理服务器,还有另一种称呼就是入口服务器。

在这里插入图片描述
2.
Nginx是常见的一种反向代理服务器技术,公司内部的服务器有很多台,当客户进行访问时,总不能由客户自己来决定要访问哪台服务器吧,而此时反向代理就能够很好解决这种问题,所有的客户端直接访问的都是机房的入口服务器,然后再由入口服务器将请求分发到后端的服务器上,这就是负载均衡,一般向反向代理这样的服务器都是直接放在公网上的,而真正的后端服务器都会放在公司的内网环境中。

在这里插入图片描述

3.访问外网的原理(正向代理)

1.
fq也是典型的正向代理的功能,在我们国家,一切网络请求都会经过运营商,这是一定的,因为运营商是网络基础设施的搭建者,所以所谓的fq,其实就是翻运营商。
如果你想访问google.com公司,则你会使用浏览器发起一个http请求,请求行的url是google.com,当这个http请求报文想要交给公网上的google服务器之前,http请求报文要先交给运营商,运营商一看,你访问的网址不是国内的网站啊,而是国外的网站,那就直接拦截你的请求,不让你f到外网。

2.
而网络上一些加速器能够实现fq,其实就是靠正向代理来实现的,由于我国的一国两制制度,有一些地区是天然能够连接到外网的,比如hongkong和macon,大部分连接外网的正向代理服务器都在hongkong和macon这些地方。
当客户端想要访问google时,如果你电脑上有fq的软件的话,其实这个软件就是客户端,这个软件会将你的http请求加密,放到http的正文里面,通过运营商将http请求交给香港的服务器,运营商一看你的http请求,他也不知道你访问的是外网,因为他没办法解密你的http正文,所以你的http包就成功交到了香港的服务器,而香港的服务器其实就是正向代理服务器,该正向代理服务器收到客户端的http包后,拆分报头和有效载荷后,会将请求正文中的密文进行解密,他发现你要访问google.com,此时该正向代理会代你去请求外网的google服务器,再获取到内容后,同样再以加密的方式将google服务器上的内容返回到客户端,这样就实现了fq。
fq过程中,请求地址的加密和解密过程都是由加速器的客户端和服务器做的,如果你有加速器的话,该加速器在你的主机上一定有一个客户端,在hongkong也有他的正向代理服务器。
(声明:并不鼓励大家fq,严禁传播fq软件)

在这里插入图片描述

4.NAT和代理服务器的区别

1.
从应用上来讲,NAT设备是网络基础设施之一,解决的是ipv4地址不足的问题,而代理服务器更贴近于实际用途,例如翻墙,负载均衡,迅游加速器等等实际应用。

2.
从底层实现来讲,NAT工作在网络层,用于进行数据包源ip 或 源port的替换,而代理服务器往往工作在应用层。

3.
从使用范围上来讲,NAT一般都在局域网的出口部署,代理服务器可以在局域网中做,也可以在公网上做。

4.
从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,而代理服务器只是一个应用层的软件程序,需要部署在服务器主机上。

五、总结

应用层

应用层的作用: 满足我们日常需求的网络程序, 都是在应用层
能够根据自己的需求, 设计应用层协议.
了解HTTP协议.
理解DNS的原理和工作流程
理解HTTPS加密原理

传输层

传输层的作用: 负责数据能够从发送端传输接收端.
理解端口号的概念.
认识UDP协议, 了解UDP协议的特点.
认识TCP协议, 理解TCP协议的可靠性. 理解TCP协议的状态转化.
掌握TCP的连接管理, 确认应答, 超时重传, 滑动窗口, 流量控制, 拥塞控制, 延迟应答, 捎带应答特性.
理解TCP面向字节流, 理解粘包问题和解决方案.
能够基于UDP实现可靠传输.
理解MTU对UDP/TCP的影响.

网络层

网络层的作用: 在复杂的网络环境中确定一个合适的路径.
理解IP地址, 理解IP地址和MAC地址的区别.
理解IP协议格式.
了解网段划分方法
理解如何解决IP数目不足的问题, 掌握网段划分的两种方案. 理解私有IP和公网IP
理解网络层的IP地址路由过程. 理解一个数据包如何跨越网段到达最终目的地,路由表+目的ip
理解IP数据包分包的原因.
了解ICMP协议.
了解NAT设备的工作原理

数据链路层

数据链路层的作用: 两个设备(同一种数据链路节点)之间进行传递数据
以太网是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑
结构, 访问控制方式, 传输速率等;
以太网帧格式
理解mac地址
理解arp协议
理解MTU
理解局域网中的数据碰撞,以及解决办法

相关文章:

【Linux】DNS系统,ICMP协议,NAPT技术

遏制自己内心的知识优越感,才能让你发自内心的去尊重他人,避免狂妄自大,才能让你不断的丰富自己的内心。 文章目录 一、DNS系统1.DNS服务器返回域名对应的ip2.使用dig工具分析DNS过程3.浏览器中输入url后发生的事情? 二、ICMP协议…...

BI技巧丨Window应用之同环比

白茶曾介绍过OFFSET可以用来解决同环比的问题&#xff0c;其实微软最近推出的开窗函数WINDOW也可以用来解决同环比。 WINDOW函数基础语法 WINDOW ( from[, from_type], to[, to_type][, <relation>][, <orderBy>][, <blanks>][, <partitionBy>][, &l…...

【Mac】编译Spring 源码和Idea导入

今天我们开始Spring源码的阅读之旅。阅读Spring的源码的第一步当然是编译Spring源码。首先我们要去GitHub上将spring源码给clone下来。 笔者编译环境如下&#xff1a; Spring版本&#xff1a;5.28 https://github.com/spring-projects/spring-framework/tree/v5.2.8.RELEASE …...

手把手教你用 ANSYS workbench

ANSYS Workbench ANSYS Workbench是一款基于有限元分析&#xff08;FEA&#xff09;的工程仿真软件。其基本概念包括&#xff1a; 工作区&#xff08;Workspace&#xff09;&#xff1a;工程仿真模块都在此区域内&#xff0c;包括几何建模、网格划分、边界条件设置、分析求解等…...

Kotlin开发笔记:协程基础

Kotlin开发笔记&#xff1a;协程基础 导语 本章内容与书的第十五章相关&#xff0c;主要介绍与协程相关的知识。总的来说&#xff0c;本文将会介绍Kotlin中关于异步编程的内容&#xff0c;主要就是与协程有关。在Kotlin中协程是利用continuations数据结构构建的&#xff0c;用…...

自学设计模式(简单工厂模式、工厂模式、抽象工厂模式)

使用工厂模式来生产某类对象&#xff08;代码简化且容易维护&#xff0c;类之间有血缘关系&#xff0c;可以通过工厂类进行生产&#xff09;&#xff1b; 简单工厂模式&#xff08;用于创建简单对象&#xff09; 对于简单工厂模式&#xff0c;需要的工厂类只有一个&#xff1…...

NFS:使⽤ NFS 为远程客户端提供共享文件系统

写在前面 分享一些 nfs 搭建的笔记考试顺便整理内容涉及 nfs 服务端客户端的搭建配置理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&…...

2022-kaggle-nlp赛事:Feedback Prize - English Language Learning(超多注释讲解)

2022-kaggle-nlp赛事&#xff1a;Feedback Prize - English Language Learning 零、比赛介绍 比赛地址Feedback Prize - English Language Learning | Kaggle 0.1 比赛目标 写作是一项基本技能。可惜很少学生能够磨练&#xff0c;因为学校很少布置写作任务。学习英语作为第…...

第十三课 宾语从句

文章目录 前言一、宾语从句1、主语及物动词宾语从句2、主语双宾动词间接宾语直接宾语3、主语特定及物动词宾语从句&#xff08;作宾语&#xff09;宾补4、主语be某些形容词宾语从句5、动词不定式后面的宾语从句6、动名词后面的宾语从句7、介词后面的宾语从句9、间接引语 前言 一…...

Docker容器与虚拟化技术:GitHub账户注册

目录 一、实验 1.GitHub 一、实验 1.GitHub &#xff08;1&#xff09;GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持Git作为唯一的版本库格式进行托管&#xff0c;故名GitHub。 &#xff08;2&#xff09;官网 GitHub: Let’s build from here …...

thinkphp安装workman

需要加版本&#xff0c;版本太高了不行 composer require topthink/think-worker1.0.*...

L1-036 A乘以B(Python实现) 测试点全过

题目 看我没骗你吧 —— 这是一道你可以在 10 秒内完成的题&#xff1a;给定两个绝对值不超过 100 的整数 A 和 B&#xff0c;输出 A 乘以 B 的值。 输入格式 输入在第一行给出两个整数 A 和 B &#xff08; − 100 ≤ A , B ≤ 100 &#xff09; A 和 B&#xff08;−100≤…...

代码随想录第五十三天

代码随想录第五十三天 Leetcode 1143. 最长公共子序列Leetcode 1035. 不相交的线Leetcode 53. 最大子数组和 Leetcode 1143. 最长公共子序列 题目链接: 最长公共子序列 自己的思路:没想出来&#xff01;&#xff01;&#xff01; 正确思路:首先这道题由于是涉及到了两个数组&…...

cmd - 如何在不重启的情况下让修改后的hosts生效

cmd - 如何在不重启的情况下让修改后的hosts生效 亲测有效 一般在修改了hosts文件后&#xff0c;需要重启电脑才能生效&#xff1b;其实可以不通过重启电脑也可以令其生效&#xff0c;方法如下&#xff1a; 打开cmd窗口输入​​ipconfig /flushdns​​&#xff0c;然后回车。…...

echarts实现双x轴并且分组滚动效果

var myChart echarts.init(document.getElementById(allOutPut1));var option {legend: {itemHeight: 10, // 图例icon高度itemWidth: 16, // 图例icon宽度icon:rect,//设置为矩形top:2%,right:10%,},tooltip: {trigger: axis,axisPointer: {type: shadow},textStyle: {fontS…...

UE4 地形编辑基础知识 学习笔记

之前自己写过这样的功能&#xff0c;今天看到一个UE现成的 点击地形&#xff0c;选择样条 按住CTRL键点击屏幕中某一个点会在场景内生成一个这样的图标 再点两次&#xff0c;会生成B样条的绿线条 点击号再选择一个模型&#xff0c;会生成对应的链条状的mesh 拉高最远处的一个图…...

AcWing算法提高课-5.5.2最大公约数

宣传一下 算法提高课整理 CSDN个人主页&#xff1a;更好的阅读体验 原题链接 题目描述 给定整数 N N N&#xff0c;求 1 ≤ x , y ≤ N 1 \le x,y \le N 1≤x,y≤N 且 gcd ⁡ ( x , y ) \gcd(x,y) gcd(x,y) 为素数的数对 ( x , y ) (x,y) (x,y) 有多少对。 输入格式 输…...

Kubernetes-CKA考题详解

Kubernetes-CKA考题详解 考前须知:考试环境说明第一题:RBAC(4%)第二题:指定node设置为不可用(4%)第三题:升级kubernetes节点(7%)第四题:etcd备份还原(7%)第五题:创建NetworkPolicy(7%)第六题:创建svc(7%)第七题:创建ingress资源(7%)第八题:扩展deployme…...

不同版本.net引用同一个项目

项目文件.csproj文件内容如下&#xff1a; 重点是&#xff1a;不能有其他的 netstandard2;net40;net45;net46;net6 <Project Sdk"Microsoft.NET.Sdk"><PropertyGroup><TargetFrameworks>netstandard2;net40;net45;net46;net6</TargetFrame…...

软件开发企业SDL安全培训案例

1.背景 随着计算机技术的发展、internet及mobile应用的普遍使用,软件安全像功能、性能、稳定性一样是计算机系统的一个非常重要部分。没有安全的软件,任何美好的功能都是徒劳的,没有安全的软件,公司的机密数据、客户隐私、系统的可靠性都得不到保障.如何有效评估、开发安全、可…...

ide-eval-resetter jar包下载、源码、使用介绍

如果你在找ide-eval-resetter插件&#xff0c;这里告诉你&#xff0c;2021.3版本开始该插件正式失效。 如果你安装的JB产品版本低于2021.3版本&#xff0c;你确定要找ide-eval-resetter&#xff0c;下面提供相关链接希望对你有帮助。 ide-eval-resetter源码&#xff1a; Githu…...

数据压缩算法一览

文章首发地址 Huffman编码&#xff1a; Huffman编码是一种基于字符频率的无损压缩算法。它将出现频率较高的字符用较短的编码表示&#xff0c;出现频率较低的字符用较长的编码表示&#xff0c;从而实现压缩。Lempel-Ziv-Welch (LZW)&#xff1a; LZW是一种基于字典的无损压缩算…...

使用Rust开发命令行工具

生成二进制文件&#xff0c;将其扔到环境变量的path下即可~ 用rust打造实时天气命令行工具[1] 找到合适的API 使用该api[2] 如请求 api.openweathermap.org/data/2.5/weather?qBeijing&appidyour_key: { "coord": { "lon": 116.3972, "lat&quo…...

CentOS中Oracle11g进程有哪些

最近遇到Oracle数据库运行过程实例进程由于某种原因导致中止的问题&#xff0c;专门看了下正常Oracle数据库启动后的进程有哪些&#xff0c;查阅资料了解了下各进程的作用&#xff0c;记录如下。 oracle 3032 1 0 07:36 ? 00:00:00 ora_pmon_orcl oracle …...

WebRTC之FEC前向纠错协议

FEC前向纠错用于丢包恢复&#xff0c;对媒体包进行异或或其他算法生成冗余包进行发送。如果接收端出现丢包&#xff0c;可以通过冗余包恢复出原始的媒体包。FEC的代价是增加码率带宽&#xff0c;所以一般会根据网络状况、丢包率来动态调整FEC冗余系数&#xff0c;也会结合NACK/…...

软件测试技术分享丨使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限&#xff0c;校验过用户的用户名和密码后&#xff0c;会向用户响应一段经过加密的token&#xff0c;在这段token中可能储存了数据权限等&#xff0c;在后期的访问中&#xff0c;需要携带这段token&#xff0c;后台解析这段token才…...

GBU812-ASEMI逆变器专用整流桥GBU812

编辑&#xff1a;ll GBU812-ASEMI逆变器专用整流桥GBU812 型号&#xff1a;GBU812 品牌&#xff1a;ASEMI 芯片个数&#xff1a;4 封装&#xff1a;GBU-4 恢复时间&#xff1a;&#xff1e;50ns 工作温度&#xff1a;-55C~150C 浪涌电流&#xff1a;200A 正向电流&…...

D2007在64位Win7出现 delphi 2007 assertion failure thread32.cpp 的解决办法

Delphi2007 原来安装在Win7 下 运行正常&#xff0c; 自从升级到Win10 &#xff0c;新建工程运行然后关闭报错&#xff0c; 报错信息如下&#xff1a; --------------------------- bds.exe - bordbk105N.dll --------------------------- Assertion failure: "(!"S…...

windows10 docker 安装在D盘

win10安装docker后发现c盘空间急速减少&#xff0c;360管家查看发现images镜像安装在C盘&#xff0c;于是重装docker desktop以为在安装过程中能够选择&#xff0c;遗憾的是没有提供选择权限&#xff0c;默认直接就安装到了c盘。 desktop 迁移 百度得知可以将c盘的docker安装…...

Scikit-learn强化学习代码批注及相关练习

一、游戏介绍 木棒每保持平衡1个时间步&#xff0c;就得到1分。每一场游戏的最高得分为200分每一场游戏的结束条件为木棒倾斜角度大于41.8或者已经达到200分。最终获胜条件为最近100场游戏的平均得分高于195。代码中env.step&#xff08;&#xff09;&#xff0c;的返回值就分…...

wordpress robot.txt/加强服务保障满足群众急需ruu7

postgresql比mysql的优势&#xff1a;1、稳定性极强&#xff0c;比mysql稳定性更好PostgreSQL 的稳定性极强&#xff0c; Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步&#xff0c;然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库…...

wordpress网站专题/qq推广软件

SQL安装时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作……”解决办法:打开注册表编辑器(或在命令行输入:regedit)&#xff0c;在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目&#xff0c;并删…...

建设项目招标在什么网站公示/英文seo是什么意思

最近发现centos7 的/etc/rc.local不会开机执行&#xff0c;于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 ?1234567891011#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules…...

网站定制论文1500字左右/推广公司产品

问题&#xff1a;我在视图画的图象或者文字&#xff0c;当窗口改变后为什么不见了&#xff1f;OnDraw()和OnPaint()两个都是解决上面的问题&#xff0c;有什么不同&#xff1f; 答&#xff1a;OnDraw()和OnPaint()好象兄弟俩&#xff0c;因为它们的工作类似。至于不见了的问题…...

wordpress 自动换行/企业培训内容包括哪些内容

小米手机网速慢是怎么回事使用手机的时候&#xff0c;我们有可能会感到手机网速很慢。那么小米手机网速慢是怎么回事呢?下面就让jy135小编来告诉大家吧&#xff0c;欢迎阅读。小米手机上网慢情况一&#xff1a;负荷上传在满速上传(包括P2P后台上传或用户主动上传)的时候&#…...

众云网联做的网站效果好吗/长沙网站建设公司

⭐️本篇博客我要来和大家一起聊一聊数据结构中的二叉树的顺序结构的两个应用——堆排序和TOPK问题 ⭐️博客代码已上传至gitee&#xff1a;https://gitee.com/byte-binxin/data-structure/tree/master/Heap 目录&#x1f30f;应用1——堆排序&#x1f347;堆排序的概念及原理&…...