【Linux网络】其他协议和技术:DNS、ICMP、NAT

news2024/9/24 18:30:32

        本篇博客补充了 TCP/IP 分层模型中,应用层的 DNS 协议、网络层的 ICMP 协议、网络层的 NAT 技术,旨在让读者更加深入理解网络协议栈的设计和网络编程。

目录

一、DNS 协议

1)技术背景

2)域名与域名解析

二、ICMP 协议

1)功能

2)ICMP 报头

 3)指令 ping、指令 traceroute

三、NAT 技术

1)功能

2)IP 转换过程

3)NAPT

4)NAT 与代理服务器

补、TCP/IP 网络协议栈总结


一、DNS 协议

1)技术背景

        在 TCP/IP 分层模型中,通过 IP 地址和端口号的方式,来确定网络中一个主机上的一个程序。

        但 IP 地址是一长串数字,不便于记忆,于是人们发明了主机名,并用 hosts 文件来描述主机名和 IP 地址之间的对应关系。

        最初,这个 hosts 文件是由互联网信息中心(SRI-NIC)来管理的。如果一个新计算机要接入网络,或者某个计算机 IP 变更,都需要到信息中心申请变更 hosts 文件,而其他计算机也需要定期下载更新新版本的 hosts 文件才能正确上网。当用户通过域名访问互联网服务时,会先通过域名在本地的 hosts 文件中,找到其对应的 IP 地址,然后再用这个 IP 地址去访问对应的服务。

        但这个过程较为麻烦,于是后来 DNS 系统诞生了。 DNS 是一个可以解析域名的服务器,由一个组织的系统管理机构提供,维护系统内的每个主机的 IP 和主机名的对应关系。如果新计算机要接入网络,或者某个计算机的 IP 变更了,就需要将对应信息注册到数据库中。当用户通过域名访问互联网服务时,会自动查询 DNS 服务器,由DNS服务器检索数据库,得到对应的 IP 地址。
        至今,计算机上仍然保留了 hosts 文件,其中一般存储的是主机名与 IP 地址之间的映射关系。用户自己也可以在 hosts 文件中添加域名和 IP 映射关系,在域名解析的过程中会优先查找hosts文件的内容。

        输入指令 cat /etc/hosts 可以查看 hosts 文件中的内容:

2)域名与域名解析

        域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称,例如www.baidu.com,其中:

  • com:是一级域名,表示这是一个工商企业域名。同级的还有.net(网络提供商)、.org(开源组织或非盈利组织)等。
  • baidu:是二级域名,一般为公司名。
  • www:是一种习惯用法,不写也可以,直接使用 baidu.com 也可以访问百度的服务器。以前人们在使用域名时,往往命名成类似于 ftp.xxx.xxx、www.xxx.xxx 这样的格式,来表示主机支持的协议。

        在浏览器中输入 url 网址后,如果 url 中包含域名,则需要进行域名解析。

        首先,计算机会在浏览器的 DNS 缓存中查询是否有相应记录,如果查询到记录,就可以直接得到对应的IP地址,以完成解析;如果在浏览器的 DNS 缓存中没有找到,就会去查询系统中的 DNS 缓存,查询到了就完成了解析;如果在系统的 DNS 缓存中也没有找到,就会去查询本地的hosts 文件,查询到了就完成了解析;如果在本地的 hosts 文件中也没有找到,就会去本地 DNS 服务器中查找。

        本地 DNS 服务器中的 IP 地址,一般由本地网络服务商提供,例如电信、移动等公司,一般通过 DHCP 自动分配。目前使用比较多的是,谷歌提供的公用 NDS 8.8.8.8 和国内公用 DNS  114.114.114.114。

        如果在本地 DNS 服务器中有对应域名的缓存,则直接返回对应的 IP 地址;如果在本地 DNS 服务器中仍然没有找到,那么本地 DNS 服务器就会拿着域名,去根 DNS 服务器中询问,从根DNS服务器那里获得本地 DNS 顶级域名服务器的IP地址。
        本地 DNS 拿到顶级域名服务器的 IP 地址后,就会拿着域名去找顶级 DNS 服务器,从顶级 DNS 服务器那里获得本地 DNS 权威域名服务器的 IP 地址;然后,拿着域名去找权威域名服务器,从中获取域名对应的 IP 地址,最终将其返回给浏览器。

【补】使用 dig 工具分析 DNS 过程

        dig 工具,可以让用户看到域名解析的过程,使用前需用 yum -y install bind-utils 指令安装。

        以下使用 dig 工具,对域名 www.baidu.com 进行解析:

        在浏览器中输入域名 www.baidu.com,浏览器自动采用 HTTPS 协议,可以直接访问到百度的首页:

        输入解析出来的 IP 地址 112.80.248.76,浏览器自动采用 HTTP 协议,也可以直接访问到百度的首页:

二、ICMP 协议

1)功能

        ICMP(Internet Control Message Protoco,网络控制报文协议)位于 TCP/IP 分层模型中的网络层,是 IP 协议的直接上层协议,主要负责在 IP 主机、路由器之间传递控制信息。

        其主要功能包括:

  • 确认 IP 包是否成功到达目标地址。
  • 通知在发送过程中 IP 包丢弃的原因。

【ps】ICMP 只能搭配 IPv4 使用,如果是 IPv6 的情况下,需要使用 ICMPv6。

        以主机 A 跨局域网向主机 B 发送数据为例,假设在数据传输过程中,主机 B 因某些原因而离线了。

        当数据到达主机 B 所在局域网的入口路由器时,入口路由器为了获得主机 B 的MAC地址,会向主机 B 发送 ARP 请求包,但由于主机B已经离线了,因此路由器在多次发送 ARP 请求包均得不到响应。然后,路由器就会向主机 A 返回一个ICMP Destination Unreachable 的数据包,让主机A知道,自己发送的数据无法到达主机 B。

2)ICMP 报头

【Tips】ICMP 协议格式

        ICMP 主要有两类报文,一类是通知出错原因的,另一类是用于诊断查询的,其常见类型如下:

 3)指令 ping、指令 traceroute

        指令 ping 是基于 ICMP 协议实现的,通常用于测试本地主机与另一台主机之间的通信信道是否正常。

        例如,测试本地主机与百度服务器之间的通信信道是否正常:

        其中, www.baidu.com 是百度的域名,会被 DNS 解析成 IP 地址。

        ping 不仅能验证网络的连通性,同时也会统计响应时间和 TTL(IP 数据报中的 8 位生存时间)。ping 会发送一个 ICMP Echo 请求给对端服务器,对端接收到之后会返回一个 ICMP Echo 应答,通过与对端服务器之间的请求和应答,实现自己的功能。

【补】ICMP 协议并没有上层协议,因此并不关心端口号,基于 ICMP 实现的 ping 指令实际是绕过了传输层的。

        在 Linux 中其实也存在一套可以绕过传输层的网络编程接口,叫做原生套接字。


        指令 traceroute 也是基于 ICMP 协议实现的,可以遍历数据包传送到目标主机所经过的所有路由器。

        例如使用 traceroute 遍历数据包传送到百度服务器所经过的所有路由器:

         traceroute 是通过增加生存时间(TTL)的值来实现的。

        每当数据包经过一个路由器,其 TTL 值就会自减 1,当减为 0 时,对应路由设备就会将该数据包丢弃,并传送一个 ICMP TTL 数据包给发送主机。traceroute 在底层可以发出多个数据包,并给这些数据包设置不同的TTL值,traceroute 所在的主机最终就能由此得到一连串的数据包路径。

三、NAT 技术

1)功能

        NAT(Network Address Translation,网络地址转换),是一种可以将私有 IP 和全局 IP 相互转化的技术方法,也是解决 IP 地址不足的主要手段,能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

        在 IPv4 协议中,IP地址数量不足是一个很棘手的问题,而 NAT 技术就是如今解决 IP 地址不足的主要手段,是路由器的一个重要功能。

        在进行对外通信时,NAT 能够将私有 IP 经过一系列替换操作最终转为全局 IP。装有 NAT 软件的路由器叫做 NAT 路由器,所有使用私有 IP 的主机在和外界通信时,都要在 NAT 路由器上将其私有 IP 转换成公网 IP(或称全局 IP)。很多学校、家庭、公司内部每个终端设置的 IP 都是私有 IP,而只在路由器或必要的服务器上设置公网 IP。公网 IP 要求唯一,但私有 IP 不需要,在不同的局域网中出现相同的私有 IP 对网络传输完全没什么影响。

2)IP 转换过程

        假设某局域网中有 A、B、C 三台主机,在公网中有一台服务器,局域网与公网之间由一台 NAT 路由器连接。下以主机 A 访问公网中的这台服务器为例,陈述在数据传输过程中,IP 地址的转换。

        要访问服务器,主机 A 得先向服务器发起数据请求。

        最初,在主机 A 发给服务器的数据包中,源 IP 地址就是主机 A 的私有 IP 地址,目的 IP 地址就是服务器的公网 IP 地址。当数据包经过局域网与公网之间的 NAT 路由器时,路由器会将该数据包中的源 IP 地址替换成自己的 WAN 口 IP 地址,使其变成公网 IP。然后,该数据包在互联网中经过各种路由转发,最终到达服务器主机。

        服务器收到主机 A 的数据请求后,会对其进行响应。

        最初,在服务器响应给主机 A 的数据包中,源 IP 地址就是服务器的公网 IP 地址,目的 IP 地址就是路由器的 WAN 口 IP 地址。数据包在互联网中经过各种路由转发,到达局域网与公网之间的  NAT 路由器,  NAT 路由器会将该数据包的目的 IP 地址替换成主机 A 的私有 IP 地址,然后会将该数据包转发给主机 A。        

3)NAPT

        当局域网当中的主机要访问外网时,NAT 路由器会将这些数据包的源 IP 地址替换成自己的WAN 口IP地址;当外网发来响应数据时,NAT 路由器又会将响应数据包的目的 IP 地址替换成局域网中对应主机的 IP 地址。在这个过程中,NAT 路由器是如何判断,应该将从外网收到的响应数据包转发给局域网中的哪一台主机呢?这都要归功于,在 NAT 路由器内部自动生成的一张地址转换表。

        仍以上文中,主机 A 访问公网中的一台服务器为例。

        主机 A 第一次向服务器发起数据请求时,NAT 路由器中就会建立以下映射关系:

        当 NAT 路由器收到服务器向主机 A 发来的响应数据时,就可以通过查表得知该响应数据是发送给局域网中的主机 A 的。但如果转换表中维护的只是局域网中主机的私有 IP,与其对应访问的外网当中的某个公网 IP 之间的映射关系,那么就会出现某些问题。

        例如,如果局域网中的主机 A 和主机 B 同时都在访问该服务器,那么此时转换表中就会建立如下两对映射关系:

        此时 NAT 路由器中的这张转换表,就只能保证从左到右的唯一性,而不能保证从右到左的唯一性。当服务器发来响应数据时,该数据包中的目的 IP 地址都是路由器的 WAN 口 IP,因此 NAT 路由器就无法判断该数据包应该转发给主机 A 还是主机 B。

        要解决这个 IP 地址的转换问题,就需要用到 NAPT 技术。


         NAPT(Network Address Port Translation,网络地址端口转换),可以通过 IP 地址 + 端口号的方式,来将多个内部地址映射为一个合法公网地址。

        当局域网中的主机向外网发送数据时,路由器会将该数据包的源IP地址替换为自己的 WAN 口 IP 地址,并建立该主机的私有 IP 与其要访问的公网 IP 之间的映射关系。但如果局域网中的多台主机同时访问同一个外网服务,当路由器收到外网发来的响应数据时,路由器就无法判断该响应数据应该转发给局域网中的哪台主机。这是因为,该局域网中所有主机的数据包都由路由器代替发送了,发来的响应数据包的目的 IP地 址都是路由器的 WAN 口 IP 地址。
        于是,NAPT 在建立转换表的映射关系时,除了建立局域网中私有 IP 与其要访问的公网 IP 之间的映射关系,还会加上一个由 NAT 路由器选定的端口号。如此一来,当局域网中的多台主机同时访问同一个外网服务时,虽然外网发来的响应数据的目的 IP 地址都是路由器的 WAN 口 IP,但路由器可以通过响应数据中,不同的目的端口号,并结合 IP 地址,来将数据包分发给相应的主机。
        仍以上文中,局域网中的主机 A 和主机 B 都在访问同一个服务器为例,且它们采用的端口号都是 1025。假设主机 A 发送的数据包先到达路由器,路由器将该数据包的源 IP 地址替换成自己的 WAN 口 IP 地址,由于路由器也可以使用 1025 号端口来访问服务器,因此该数据包的源端口号可以不变。当主机B发来的数据包到达路由器时,路由器同样将数据包的源 IP地址替换成自己的 WAN 口 IP 地址,但由于路由器访问服务器的 1025 号端口已经被主机 A 占用了,因此路由器会重新选定一个 1026 号端口,并对该数据包中的源端口号进行替换。
        于是,此时的转换表中就会建立如下两对映射关系:

        如此一来,转换表既能保证从左到右的唯一性,也能保证从右到左的唯一性。当服务器发来的响应数据到达路由器时,虽然服务器发给主机 A 和主机 B 的数据包中的目的IP地址是一样的,但路由器是用 1025 号端口代替主机 A 进行数据请求的,且是用 1026 号端口代替主机 B 进行数据请求的,因此路由器可以继续根据数据包中的源端口号,来判断应该将该数据包转发给主机 A 还是主机 B,然后将数据包中的目的 IP 地址和目的端口号进行替换,并转发给局域网中相应的主机。

【补】路由器的确是工作在网络层的一个设备,但不能因此认为,路由器只能在网络层工作。例如,NAPT 涉及的端口号,是传输层的概念,而大部分路由器都带有的、可以对 IP 地址进行动态管理的 DHCP,是一个应用层协议。由此,路由器提供的服务其实不止会涉及网络层,还可能涉及到网络协议栈中的其他层。


【补】NAT 技术的缺陷
        NAT 技术可以进行私有 IP 和公网 IP 之间的替换,主要依赖于 NAT 路由器中维护的网络地址转换表,但这张转换表也体现出了 NAT 的一些缺陷:

  1. 无法从 NAT 外部向内部服务器建立连接,因为外部无法知道内部的私网 IP,也就无法主动与内部服务器建立连接。
  2. 转换表的生成和销毁都需要额外开销。
  3. 通信过程中,一旦 NAT 设备异常,即使存在热备,也会导致所有的 TCP 连接断开。

4)NAT 与代理服务器

        代理服务器(Proxy Server)的功能是,代理网络用户去取得网络信息,其又分为正向代理和反向代理。

        正向代理,是一个位于客户端和目标服务器之间的服务器,客户端并不直接访问目标服务器,而是先访问代理服务器,由代理服务器代替客户端去访问对应的目标服务器,并将目标服务器的响应结果返回给客户端。

        例如在公司内部一般都会有自己的服务器,使用公司内网上网时,对外网发起的数据请求,首先会转发到公司的这台服务器上,然后由公司的这台服务器代替你对外网进行访问,当公司的服务器收到对应外网的响应数据后,再由公司的这台服务器将数据转发给自己的主机。

        正向代理最大的一个好处就是可以加速资源访问。如果公司中大量员工都要访问外网的同一个资源,那么正向代理服务器就可以将对应的资源缓存到本地,当大家要访问该资源时,直接在正向代理服务器就可以获取,而不需要再次进行外网访问。

        反向代理,也是一个位于客户端和目标服务器之间的服务器,对于客户端而言,反向代理服务器就相当于目标服务器,用户不需要知道目标服务器的地址,用户只需要访问反向代理服务器就可以获得目标服务器提供的服务。

        例如域名 www.baidu.com 对应的服务器,实际就是一个反向代理服务器。百度内部并不是只有一台服务器,但不同地区的人们都可以通过访问 www.baidu.com,从而享受到百度提供的服务,而其实人们访问的就是,百度的反向代理服务器。当这台反向代理服务器收到客户端的数据请求后,就会将数据请求转发给百度内部的某台服务器进行数据处理,然后再将数据处理的结果返回给客户端。

        反向代理可以起到负载均衡的作用。如果不设置反向代理服务器,那么用户在访问百度时,就会随机访问到百度内部的某台服务器,就可能导致某些服务器压力太大,而某些服务器却处于闲置状态;而在设置反向代理服务器后,就能够通过某些方法,让用户的数据请求较为平均的落到每台服务器上。
        此外,反向代理还能起到安全防护的作用。有了反向代理服务器后,就不需要直接将提供服务的服务器对应的信息暴露出去。当由非法请求发送到反向代理服务器时,反向代理服务器就相当于一层软件屏障,可以在反向代理服务器当中部署一些防护措施,让这些非法请求在反向代理服务器这里就被过滤掉,而不会影响内部实际提供服务的服务器。

【Tips】正向代理和反向代理的异同

        相同点:

  • 都是位于客户端和服务器之间的。
  • 其主要工作,都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端

        不同点:

  • 正向代理是客户端的代理,帮助客户端访问其无法访问的服务器资源的;而反向代理则是服务器的代理,帮助服务器做负载均衡、安全防护等工作的。
  • 正向代理一般是客户端架设的,比如公司的正向代理服务器是公司作为客户端架设的;而反向代理一般是服务端架设的,比如百度的反向代理服务器是百度作为服务端架设的。
  • 正向代理中,服务器不知道真正的客户端到底是谁,服务器认为正向代理服务器就是真实的客户端;而反向代理中,客户端不知道真正的服务器是谁,客户端认为反向代理服务器就是真实的服务器。

【Tips】NAT 与代理服务器的区别

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

 

补、TCP/IP 网络协议栈总结

【Tips】应用层

  • 应用层的作用:负责应用程序间沟通,完成一系列业务处理所需服务。
  • 能够根据自己的需求,设计对应的应用层协议。
  • 了解HTTP协议。
  • 理解DNS的原理和工作流程。

【Tips】传输层

  • 传输层的作用:负责为两个网络通信进程之间的通信提供服务,更多的是为数据的传输提供一些策略。
  • 理解端口号的概念。
  • 认识TCP协议,理解TCP协议的可靠性,理解TCP协议的状态转化。
  • 掌握TCP的连接管理、确认应答、超时重传、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答特性。
  • 理解TCP面向字节流,理解粘包问题和解决方案。
  • 能够基于UDP实现可靠传输。
  • 理解MTU对UDP/TCP的影响。

【Tips】网络层

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

【Tips】数据链路层

  • 数据链路层的作用:负责局域网内两个设备之间的数据传递。
  • 理解以太网通信原理
  • 以太网帧格式。
  • 理解MAC地址。
  • 理解ARP协议。
  • 理解MTU。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Webstorm的下载与安装

Webstorm的下载 1 在浏览器的地址栏输入https://www.jetbrains.com/webstorm/,进入主页面 2 点击右上角的Download按钮,进入下载页面,如图所示 Webstorm的安装 按步骤逐步安装即可

tomcat文件上传漏洞练习

1、靶场账号注册 vulfocus 注册后邮箱中点击激活 2、首页选择并开启靶场 复制映射的ip和端口 在浏览器输入ip和端口 改成put并把1.jsp中内容复制进去 3打开哥斯拉,连接上面的网址

TCP协议程序设计

文章目录 前言一、TCP协议程序是什么?二、使用步骤 1.服务器端与客户端2.实操展示总结 前言 TCP网络程序设计是指利用Socket类编写通信程序。利用TCP协议进行通讯的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序&…

Go语言编程大全,web微服务数据库十大专题精讲

本课程主要从数据结构、Go Module 依赖管理、IO编程、数据库编程、消息队列、加密技术与网络安全、爬虫与反爬虫、web开发、微服务通用技术、Kitex框架等方面讲解~ 链接:https://pan.quark.cn/s/d65337a0e60d

S32K144 CAN使用

S32K144是恩智浦半导体推出的一款高性能微控制器(MCU),主要针对汽车和高可靠性的工业应用。在汽车工业应用中使用CAN总线必不可少。 需要注意的是在ISO 11898(High Speed,速度在5kbps-1Mbps)中,隐形电平电压差在0附件…

收银机打印机相关知识 windows7 查看打印机名称--未来之窗智慧经营收银系统百科

一、名词解释 打印机型号,打印机厂家,打印机接口、打印机驱动,打印机名称 机器的机身都有,打印机品牌,型号 二、什么是打印机接口 2.1 usb接口 一般用在收银小票,结账单,水单 2.2 并口接口 …

RK3568平台开发系列讲解(文件系统篇)什么是 inode?

一、什么是 inode? 为了存储一个文件,除了本身的文件内容块,还需要一个地方来存储文件相关的元信息信息。承载这些文件元数据的数据结构就是 inode(index node),inode 包含了文件元信息,比如文件的所有者、权限、修改时间戳等。 可以使用 ls -i 查看一个文件的 inode 号…

java基础概念11-方法

一、什么是方法 方法(method)是程序中最小的执行单元。 方法中的程序,要不然就是一起执行,要不然就是一起不执行!!! 二、方法的定义 在Java中,方法定义的一般格式如下:…

牛客 河南萌新联赛2024第(四)场:河南理工大学 B题

比赛链接: 河南萌新联赛2024第(四)场:河南理工大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) B题:小雷的神奇电脑 题目描述: 小雷有一台特殊的电脑,这台电…

搜维尔科技:如何使用 SenseGlove Nova 在其“CAVE”投影室中操纵虚拟物体

AVR 创建了一个创新的基于 PC 的多面沉浸式环境,参与者完全被虚拟图像和声音包围。 需要解决的挑战: 传统的 VR 系统通常缺乏逼真的触觉反馈,限制了用户的沉浸感。AVR Japan 旨在通过将触觉技术融入其 CAVE 系统来解决这一挑战,使…

【8-9月份唯一机械电气计算机主题的IEEE会议】第七届机电一体化与计算机技术工程国际学术会议(MCTE 2024,8月23-25)

由广东博士创新发展促进会、输变电装备技术全国重点实验室联合主办,重庆大学电气工程学院、AEIC学术交流中心协办的第七届机电一体化与计算机技术工程国际学术会议(MCTE 2024)将于2024年8月23-25日在中国广州隆重举行。 大会诚挚邀请您投递相…

学习日志8.7--Security Zone防火墙安全区域

安全区域实验拓扑开始之前先通过一台主机和防火墙相连,设置主机的IP地址和网关,开启防火墙设置防火墙接口g1/0/1的IP地址为192.168.1.254,将防火墙设置为主机的网关,尝试能不能用主机ping通防火墙。尝试之后,发现失败&…

蚂蚁CodeFuse代码大模型技术解析:基于全仓库上下文的代码补全

背景 2023年CodeFuse完成了百亿级别的代码大模型从0到1的预训练,配合指令微调、量化部署等一系列配套技术,成功将AI大模型能力应用到多个下游研发场景,助力生产提效。在众多下游产品中,CodeFuse代码补全插件直接触及研发过程中最…

性能测试趋势 2024

效率。其主要目标是确保软件满足性能要求并提供令人满意的用户体验。 有效的性能测试需要仔细的规划、真实的场景以及使用适当的工具来模拟真实世界的条件。定期进行性能测试有助于确保软件系统能够处理不同的工作负载并提供积极的用户体验。性能测试的未来正在受到技术发展的…

SSL证书配置

SSL证书配置 证书申请nginx 配置ssl证书 今天群友发现我的博客证书过期了,重新申请一个免费的部署一下 证书申请 点击创建证书 绑定对应的域名,选择快捷签发,点击提交审核 点击验证,如果购买的域名和服务器都在同一个账号下&…

WPF学习(7)- Control基类+ContentControl类(内容控件)+ButtonBase基类

前面给大家介绍完了WPF所有的布局控件,属性以及使用案例,从这里咱们就开始学下内容控件。 Control基类 Control是许多控件的基类。比如最常见的按钮(Button)、单选(RadioButton)、复选(CheckBox)、文本框…

AIGC大模型实践总结(非常详细)零基础入门到精通,收藏这一篇就够了

大模型浪潮席卷全球,在各行各业中的重要性愈发凸显,呈现出一股不可逆转的发展趋势。这一年本人所在业产技也在这一过程中持续探索和尝试AIGC。本文一方面是对AIGC实践的总结回顾,同时也是本人学习实践AIGC过程中一些笔记、心得分享。因个人能…

Linux云计算 |【第二阶段】CLUSTER-DAY4

主要内容: 块存储应用案例(快照、快照回滚、快照克隆)、分布式文件系统(文件系统的构成:inode和block,创建存储池实现inode和block)、对象存储(radosgw) 补充&#xff1…

C++ STL与string类

一 什么是STL? STL,全称是标准模板库(Standard Template Library),是C标准库的一部分。STL提供了一些常用的数据结构和算法,帮助开发者更方便、高效地编写代码。通过使用STL,开发者不需要重复造…

吴恩达机器学习笔记 三十九 协同过滤的TensorFlow实现

TensorFlow的一个优点:可以自动算出成本函数的导数 如上图,设 f( x ) wx,成本 J 为(wx - 1)^2,用GradientTape()这个函数,TensorFlow会记录计算成本J所需的操作序列,保存在 tape 中。 dJdw为自动计算出的导…