网络篇01 | 入门篇

网络篇01 | 入门篇

  • 01 各层协议目录
    • [网络篇02 | 应用层 kcp(王者荣耀)](https://blog.csdn.net/qiushily2030/article/details/135835946)
    • [网络篇03 | 应用层 quic](https://blog.csdn.net/qiushily2030/article/details/136192481)
    • [网络篇04 | 应用层 mqtt(物联网)](https://blog.csdn.net/qiushily2030/article/details/137739784)
    • [网络篇05 | 应用层 http/https](https://blog.csdn.net/qiushily2030/article/details/137738941)
    • [网络篇06 | 应用层 自定义协议](https://blog.csdn.net/qiushily2030/article/details/137740639)
    • [网络篇07 | 应用层 其他协议](https://blog.csdn.net/qiushily2030/article/details/137740706)
    • [网络篇08 | 运输层 tcp](https://blog.csdn.net/qiushily2030/article/details/137740741)
    • [网络篇09 | 运输层 udp](https://blog.csdn.net/qiushily2030/article/details/137741519)
    • [网络篇10 | 网络层 IP](https://blog.csdn.net/qiushily2030/article/details/137741548)
    • [网络篇11 | 网络层 ICMP](https://blog.csdn.net/qiushily2030/article/details/137741672)
    • [网络篇12 | 链路层 ARP](https://blog.csdn.net/qiushily2030/article/details/137741897)
    • 网络篇13 | 链路层 RARP
    • 网络篇14 | 物理层
  • 02 网络基础概念
    • 1)各层划分
    • 2)各层PDU
    • 3)网络传输
  • 03 网络层级概要
    • 1)应用层(应用、表示、会话)
    • 2)运输层(TCP、UDP)
    • 3)网络层(IP、ICMP、IGMP)
    • 4)链路层(ARP、RARP)
    • 5)物理层(比特)
  • 04 网络诊断工具
    • 1)tcpdump
    • 2)hping3
    • 3)mtr
  • 05 网络抓包工具
    • 1)Wireshark
    • 2)Burp Suite
  • 06 位操作
    • 1)位运算(原码 反码 补码)
    • 2)位运算符
    • 3)Java代码使用

01 各层协议目录

网络篇02 | 应用层 kcp(王者荣耀)

网络篇03 | 应用层 quic

网络篇04 | 应用层 mqtt(物联网)

网络篇05 | 应用层 http/https

网络篇06 | 应用层 自定义协议

网络篇07 | 应用层 其他协议

网络篇08 | 运输层 tcp

网络篇09 | 运输层 udp

网络篇10 | 网络层 IP

网络篇11 | 网络层 ICMP

网络篇12 | 链路层 ARP

网络篇13 | 链路层 RARP

网络篇14 | 物理层

02 网络基础概念

1)各层划分

在这里插入图片描述

2)各层PDU

在这里插入图片描述

3)网络传输

在这里插入图片描述

03 网络层级概要

1)应用层(应用、表示、会话)

  • 应用层:提供用户接口和服务的应用程序。
  • 表示层:处理数据格式转换、加密解密等功能。
  • 会话层:管理通信会话,确保数据传输的正确性。

2)运输层(TCP、UDP)

  • TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输服务。
  • UDP(User Datagram Protocol):提供不可靠的、无连接的数据传输服务。

3)网络层(IP、ICMP、IGMP)

  • IP(Internet Protocol):负责数据包的路由和寻址。
  • ICMP(Internet Control Message Protocol):用于传递控制消息和错误报告。
  • IGMP(Internet Group Management Protocol):用于组播组管理。

4)链路层(ARP、RARP)

  • ARP(Address Resolution Protocol):将 IP 地址映射为 MAC 地址。
  • RARP(Reverse Address Resolution Protocol):将 MAC 地址映射回 IP 地址。

5)物理层(比特)

在网络模型中,物理层传输的单位是比特。与其他网络层(如数据链路层、网络层、传输层和应用层)不同,物理层并没有类似于这些层的报文协议。

该层的设备和技术包括网卡、集线器、中继器、光纤、电缆等。物理层是 OSI 模型中最底层的一层,负责在物理媒介上传输比特流。它处理数据的传输速率、传输介质的接口标准、信号的电压等细节。物理层主要任务包括传输比特流、对传输媒介进行编码和解码、提供物理连接的建立和维护。

当数据以比特形式在网络中传输时,以下是一般情况下的传输过程:

  • 数据编码:在发送端,原始数据被转换为比特流。这可能涉及将数据分割成固定大小的块,并对每个块进行编码,通常使用数字信号处理技术来表示二进制比特。
  • 物理层传输:经过数据编码后的比特流会通过物理层传输介质(如铜线、光纤或无线波段)。在传输介质上,比特以电信号、光信号或者无线信号的形式传输。
  • 调制与解调:在模拟传输媒体中,数字信号需要经过调制(Modulation)转换为模拟信号才能传输。接收端会对接收到的信号进行解调(Demodulation),将模拟信号转换回数字信号。
  • 传输延迟:在传输过程中,会出现传输延迟(如传播延迟、处理延迟等)。这些延迟会影响数据到达接收端的时间和顺序。
  • 接收端解析:接收端接收到比特流后,会根据事先约定好的协议或标准对比特流进行解析和重组,还原出原始数据。

总的来说,数据比特在网络中传输的过程包括编码、基于物理层介质的传输、调制与解调(如果有必要)、传输延迟和接收端的解析过程。这些步骤确保了数据能够在网络中可靠地传输并最终正确地被接收端解析。

在内部服务器通过交换机进行通信时,在数据链路层,设备之间识别目标地址主要是通过目标MAC地址来实现的,每个网络设备都有一个唯一的MAC地址,用于在数据链路层中唯一标识设备。数据链路层帧中包含了源MAC地址和目标MAC地址。

MAC地址与硬件通常是一一绑定的,每个网络设备(如网卡、无线适配器)在生产过程中会被分配一个全球唯一的MAC地址。这个MAC地址是设备固化在其硬件中的,并且不可更改,确保了网络中每个设备具有唯一的身份标识。

硬件与数据链路层对接获取MAC地址的过程:

  • 嵌入式设备:在硬件设备(如网络适配器)中内置了芯片或电路,其中包含设备的MAC地址信息。这个MAC地址通常是由设备制造商编程到设备的固件中的。
  • 驱动程序:当操作系统启动时,它会加载适当的硬件驱动程序,这些驱动程序知道如何与硬件设备通信并提供所需的服务。驱动程序可以通过访问嵌入式设备以获取设备的MAC地址。
  • 数据链路层获取MAC地址:数据链路层在需要发送或接收数据时,会通过底层的驱动程序与硬件设备进行通信。驱动程序会向数据链路层提供设备的MAC地址,以便正确地封装和解析数据帧。
  • MAC地址的使用:数据链路层将源MAC地址和目标MAC地址添加到数据帧中,以确保数据帧能够传输到正确的目标设备。接收端根据目标MAC地址来识别并处理接收到的数据帧。

总的来说,MAC地址是设备硬件上的固定标识符,通过嵌入式设备中的芯片或电路与硬件绑定。数据链路层在需要发送或接收数据时,通过驱动程序获取硬件的MAC地址,并将其用于数据帧的封装和解析过程,以实现数据在网络中的准确传输。

04 网络诊断工具

1)tcpdump

监听192.168.50.223端口7778的eth0网卡,包信息导入到r1.cap的Wireshark中。

#执行命令如下,抓包操作会持续进行,直到你手动停止tcpdump命令。通常可以使用Ctrl + C来终止抓包操作,然后查看捕获的数据包。
# tcpdump host 192.168.50.223 and port 7778 -i eth0 -w ./r1.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

一下就是Wireshark打开的效果,可以继续分析数据包了。
在这里插入图片描述

2)hping3

  • Dos攻击
(base) [root@vm12_efficiency01_50_221 ~]# hping3 -I eth0 -a 192.168.10.99 -S 192.168.50.224 -p 80 -i u1
HPING 192.168.50.224 (eth0 192.168.50.224): S set, 40 headers + 0 data bytes
--- 192.168.50.224 hping statistic ---
15626168 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

根据提供的hping3命令输出:

  • 已发送了15626168个SYN数据包到目标主机192.168.50.224的端口80。
  • 从目标主机返回的统计信息显示,没有接收到任何响应数据包。
  • 100%的数据包丢失率表明在传输过程中没有成功建立连接。
  • 来回时间的最小、平均和最大值都为0毫秒,这意味着没有收到任何响应数据包。

总的来说,虽然发送了大量的SYN数据包,但由于未收到回复,表示目标主机未响应或无法处理这些连接请求。可能是因为防火墙、网络设置或其他原因导致连接失败。
在这里插入图片描述

为什么发了这么多的包,对方的CPU一点都不涨?

我这两台机器都是内网同一个网段,中间只经过交换机,经过了交换机的包过滤,交换机可能会执行一些包过滤功能,如MAC地址过滤、端口安全等,导致部分数据包被丢弃或不被转发。

在这种情况下,虽然你发送了大量的数据包(15626168个SYN包),但目标主机仍未显示任何响应或负载变化。这可能是由于以下原因导致:

  • 防火墙或网络设备过滤: 目标主机可能有防火墙或其他网络设备对入站流量进行过滤,从而导致无法接收到你发送的数据包。
  • 系统资源处理能力: 目标主机的CPU可能具有很高的处理能力,可以轻松处理大量的连接请求,因此即使有大量的数据包传输也不会显著影响其性能。
  • DoS 防护措施: 目标主机可能已经配置了适当的 DoS 防护措施,如连接速率限制、黑名单等,以保护自身免受此类攻击的影响。

在这种情况下,发出如此多的数据包而没有看到任何影响可能意味着目标主机有能力处理这样的请求或者有相应的安全措施来防范此类攻击。

(base) [root@vm12_efficiency01_50_221 ~]# hping3 -c 100000000 -d 120 -S -w 64 -I enp1s0 -p 21 --flood --rand-source -i u0.0000001 192.168.50.224
HPING 192.168.50.224 (lo 192.168.50.224): S set, 40 headers + 120 data bytes
hping in flood mode, no replies will be shown
--- 192.168.50.224 hping statistic ---
1121223 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

根据提供的hping3命令输出:

  • 已发送1121223个SYN数据包到目标IP地址192.168.50.224的端口21。
  • 没有收到任何回复数据包,导致100%的数据包丢失率。
  • 最小、平均和最大来回时间都为0毫秒,表示未发生成功建立连接。

关于目标机器CPU使用率低的原因可能包括:

  • 数据包处理方式: 大量SYN数据包可能未成功建立连接,因此目标机器并不需要花费太多资源对这些无法完成握手的连接进行处理。
  • 网络设备过滤: 网络中的交换机、防火墙或其他设备可能在数据包传输时过滤了部分流量,导致一些数据包无法到达目标机器。
  • 目标主机性能: 目标主机可能具有强大的处理能力,可以轻松处理大量的连接请求,因此即使接收到大量数据包也不会显著增加CPU负载。

虽然发送了大量的数据包并且没有成功建立连接,但由于以上原因,目标机器的CPU使用率仍然保持较低水平。在网络测试中,需要谨慎评估发送频率和数据包数量,以免对目标系统和网络造成意外影响。
在这里插入图片描述

  • SYN泛洪攻击
(base) [root@vm12_efficiency01_50_221 ~]# hping3 -c 5000 -d 100 -S -w 64 -p 80 --flood --rand-source 192.168.50.224
HPING 192.168.50.224 (eth0 192.168.50.224): S set, 40 headers + 100 data bytes
hping in flood mode, no replies will be shown--- 192.168.50.224 hping statistic ---
2652818 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

根据 hping3 命令的输出,可以看到以下信息:

  • 2652818 packets transmitted: 已传输的数据包数量,数据包使用的是TCP协议(S代表TCP SYN报文),每个数据包的大小为100字节。
  • 0 packets received: 接收到的数据包数量为 0。
  • 100% packet loss: 100% 的数据包丢失率。
  • round-trip min/avg/max = 0.0/0.0/0.0 ms: 来回时间的最小、平均和最大值都为0毫秒

这表明发送的5000个数据包中没有一个被目标主机192.168.50.224接收,可能由于网络配置、防火墙或其他原因导致连接失败。

这个是对目标机器发起TCP泛洪攻击,目标的CPU使用率很高,因为要接收处理报文,即使只是过滤拦截。ksoftirqd/2 是 Linux 内核中的软中断处理程序,用于处理网络和I/O相关的软中断。具体而言,ksoftirqd/2 是软中断处理程序之一,其中的 /2 表示这是针对 CPU 2 的软中断处理程序。软中断是一种低优先级的中断处理 机制,用于处理那些不需要立即响应的中断。ksoftirqd 进程负责处理这些软中断请求,例如网络数据包的接收、网络协议栈处理等。
在这里插入图片描述

  • ICMP泛洪攻击
    类似于SYN泛洪攻击,只不过发送的数据包类型不同。
(base) [root@vm12_efficiency01_50_221 ~]# hping3 -c 50000 -d 100 -1 -C 5 -K 1 192.168.50.224
HPING 192.168.50.224 (eth0 192.168.50.224): icmp mode set, 28 headers + 100 data bytes--- 192.168.50.224 hping statistic ---
35 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

这表明在发送了50000个数据包后,目标主机192.168.50.224并没有接收任何数据包。可能由于网络配置、防火墙或其他原因导致连接失败。
根据 hping3 命令的输出,可以得到以下信息:

  • 35 packets transmitted: 已传输的数据包数量
  • 0 packets received: 接收到的数据包数量为 0
  • 100% packet loss: 100% 的数据包丢失率
  • round-trip min/avg/max = 0.0/0.0/0.0 ms: 来回时间的最小、平均和最大值都为 0 毫秒
    在这里插入图片描述

3)mtr

托管:https://github.com/traviscross/mtr/tree/v0.85
官网:https://www.bitwizard.nl/mtr/

  • 简介

mtr结合了“traceroute”和“ping”程序的功能。mtr运行在和用户指定的目标主机上。之后确定机器之间的每个网络跳的地址,它向每一个发送一个ICMP ECHO请求序列,以确定连接到每台机器的链路质量。当它这样做的时候,它会打印运行有关每台机器的统计信息。

ping命令通常是由操作系统提供的,包括在Linux系统中。ping命令用于测试与另一个主机的网络连接,并可以帮助确定网络是否正常工作以及网络延迟情况等。在Linux系统中,ping命令通常作为网络诊断工具的一部分,可通过终端运行来执行网络连通性测试。
traceroute命令通常也是由操作系统提供的,包括在Linux系统中。traceroute命令用于确定数据包从本地计算机到目标主机之间所经过的路由路径。它显示了数据包在路由器之间传输时经过的跳数和延迟时间。在Linux系统中,traceroute命令是网络诊断工具的一部分,可用于帮助诊断网络连接问题并分析网络路径。

Ping 和 Traceroute 都是网络诊断工具,但它们的功能和用途有一些区别:

  • Ping:
    功能:Ping 用于测试主机之间的连通性,通过发送 ICMP Echo Request 报文并接收 ICMP Echo Reply 报文来确认目标主机是否可达。
    作用:主要用于检查主机是否在线、测量网络延迟和丢包率。
    实现:Ping 是一个简单的工具,通常用于快速检查网络连接状态。
  • Traceroute:
    功能:Traceroute 用于确定数据包从源主机到目标主机之间经过的路由路径,显示每个路由器(跳)的 IP 地址以及延迟时间。
    作用:主要用于诊断网络故障、分析网络路径和了解数据包传输的详细路径。
    实现:Traceroute 会发送一系列特制的 ICMP 报文,并观察报文经过的路由器,帮助用户追踪网络路径。

总的来说,Ping 用于测试主机之间的基本连通性和响应时间,而 Traceroute 则用于跟踪数据包在网络中的传输路径。两者结合使用可以帮助定位网络问题并进行全面的网络诊断。

  • ping命令
    命令ping着重查看到目标节点的延迟。
# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=51 time=19.0 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=51 time=19.9 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=51 time=17.9 ms

根据你运行的 ping www.baidu.com 命令的输出结果,我们可以看到与百度服务器(220.181.38.149)之间的 ICMP 回显请求和回显应答的信息。
每一行显示了从你的计算机向百度服务器发送 ICMP Echo Request 报文并接收 ICMP Echo Reply 报文的情况。以下是一些关键信息的分析:

  • 数据包大小为 56 字节。
  • 目标地址为 220.181.38.149,主机名为 www.a.shifen.com。
  • 每次请求的 TTL(Time to Live)值为 51。
  • 每个报文的延迟时间(time)在 17.9 ms 到 20.6 ms 之间变化。
    根据输出结果可知:
  • 数据包成功发送到目标主机,并且目标主机正确地对这些数据包进行了响应。
  • ICMP Echo Request 报文的 TTL 设置为 51,每次从源主机到目标主机的跳数不会超过 51 跳。
  • 平均延迟时间大约在 19 ms 左右,表明网络连接相对良好,响应速度较快。

综合分析来看,通过 ping 命令可以测试主机之间的连通性并测量延迟时间。在这种情况下,连接到百度服务器的网络连接是正常的,并且数据包能够在较短的时间内往返。如果遇到网络问题或延迟增加,请进一步检查网络设备、路由器设置等方面。

  • traceroute命令
    命令traceroute可以查看数据包经过的每一个节点(或者说每一跳(hop))的信息。
# traceroute www.baidu.com
traceroute to www.baidu.com (220.181.38.149), 30 hops max, 60 byte packets1  gateway (192.168.50.1)  2.690 ms  2.821 ms *2  * * *3  * * *4  * * *5  * * *

这个输出显示了数据包从你的计算机到百度服务器(220.181.38.149)之间经过的路由路径的每一跳。每一行表示一个路由器,显示了该路由器的 IP 地址以及数据包经过该路由器时的延迟时间。

根据输出结果可以推断:

  • 第1跳是位于本地网关(192.168.50.1),延迟时间约为 2.7 毫秒至 2.8 毫秒。
  • 从第2跳开始,出现* * *,网络出现了无法获取响应的情况,可能是某些防火墙、路由器不返回 ICMP 报文所致。
  • 在网络传输中,每一跳不仅可能是路由器的选择,还可能是防火墙、交换机或其他网络设备的选择。这些设备根据其配置和路由表信息来决定数据包的转发方式。
  • 综合分析来看,如果网络连接正常且未受阻碍,理想情况下 traceroute 应该能够顺利显示每一跳的 IP 地址和延迟时间。由于一些跳没有返回信息,可能需要更深入的诊断来确定问题所在,比如设备配置或网络故障。如果你遇到网络连接问题,可以联系网络管理员或运营商进行进一步调查和解决。

05 网络抓包工具

1)Wireshark

为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。

wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。windows系统一般是以太网、Linux一般是eth0
在这里插入图片描述

从上到下有几个区域:过滤条件、封包列表、封包信息、16进制、统计信息等等。
在这里插入图片描述

2)Burp Suite

Burp Suite Community Edition官网使用文档:https://portswigger.net/burp/documentation/desktop/getting-started/intercepting-http-traffic?utm_source=burp_suite_community&utm_medium=learn_tab&utm_campaign=onboarding

Burp Suite Community Edition这款是免费版本,一般都用这中版本。
使用内置的浏览器打开,执行普通的GET请求。
在这里插入图片描述

以下是抓包的记录。
在这里插入图片描述

06 位操作

1)位运算(原码 反码 补码)

在这里插入图片描述

2)位运算符

在这里插入图片描述

3)Java代码使用

short f1 = buffer.readUnsignedByte();
//取出最高位的值,0x80 = 1000 0000
boolean variableFlag = (f1 & 0x80) == 0x80;
//读取低7位的值,0x7F = 0111 1111
byte messageWay = (byte) (f1 & 0x7F);short v4 = buffer.readUnsignedByte();
//retain字段占据v4的高4位,因此可以通过右移4位来得到它的值。
int retain = v4 >> 4;
//dupFlag字段占据v4的第4位(从右往左数),因此可以通过与0x08进行按位与操作来判断它是否为1。
boolean dupFlag = (v4 & 0x08) == 0x08;
//qosLevel字段占据v4的第3和第2位,因此可以通过与0x06进行按位与操作后再右移1位来得到它的值。  0x06是16进制数,它的二进制表示为00000110,按位与第3和第2位会被保留下来,其余位都被置为0。
int qosLevel = (v4 & 0x06) >> 1;
//rewriteFlag字段占据v4的最低位,因此可以通过与0x01进行按位与操作来判断它是否为1。
boolean rewriteFlag = (v4 & 0x01) != 0;

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

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

相关文章

Stable Diffusion之文生图模型训练

1、数据准备 提前准备好一组相关的照片。 在线的图片处理网站 BIRME - Bulk Image Resizing Made Easy 2.0 (Online & Free) 将图片转成统一大小,支持批量处理,效率高 2、生成提示词 进入stable diffusion webui页面 旧版直接使用 train/proproc…

医院一站式后勤管理系统 processApkUpload.upload 任意文件上传漏洞复现

0x01 产品简介 医院一站式后勤管理系统由南京博纳睿通软件科技有限公司开发的一款基于现代医院后勤管理理念的业务系统,产品结合后勤业务管理特点,通过管理平台将后勤管理业务予以系统化、规范化和流程化,从而形成一套构建于平台之上且成熟完善的后勤管理体系,并可在此体系…

使用阿里云试用Elasticsearch学习:Search Labs Tutorials 搭建一个flask搜索应用

文档:https://www.elastic.co/search-labs/tutorials/search-tutorial https://github.com/elastic/elasticsearch-labs/tree/main/example-apps/search-tutorial Full-Text Search

Excel报表成果展示

采用Excel函数实现数据的快速计算,如下,看似很复杂,实际非常方便。

文献速递:深度学习肝脏肿瘤诊断---基于深度学习的肝细胞结节性病变在整片组织病理图像上的分类

Title 题目 Deep Learning-Based Classification of Hepatocellular Nodular Lesions on Whole-Slide Histopathologic Images 基于深度学习的肝细胞结节性病变在整片组织病理图像上的分类 Background 背景 Hepatocellular nodular lesions (HNLs) constitute a heterogen…

面试八股——JVM★

类加载 类加载器的定义 类加载器的类别 类装载的执行过程 类的装载过程: 加载: 验证: 准备: 这里设置初始值并不是传统意义的设置初始值(那个过程在初始化阶段)。 解析: 初始化: …

李廉洋;4.12现货黄金,美原油最新走势分析及策略。

现货黄金在美盘末将历史新高刷至2377美元/盎司。美国3月份PPI指数较上年同期上升2.1%,为11个月来的最高增幅,这份数据加之此前火爆的CPI指数,为美联储实现2%目标所面临的坎坷之路奠定了基础。不过,PPI报告中的细节让担心通胀再度加…

全面支持工业协议钡铼IOy系列模块无缝融入PLC及工业物联网架构

钡铼IOy系列模块作为工业控制领域的创新产品,以其卓越的性能和广泛的适用性,无缝融入PLC(可编程逻辑控制器)及工业物联网架构,为工业自动化领域带来了全新的可能性。下面我们将详细探讨钡铼IOy系列模块与PLC及工业物联…

图像分割:Pytorch实现UNet++进行医学细胞分割

图像分割:Pytorch实现UNet进行医学细胞分割 前言相关介绍项目结构具体步骤准备数据集读取数据集设置并解析相关参数定义网络模型定义损失函数定义优化器训练验证 参考 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容&#x…

【Golang学习笔记】从零开始搭建一个Web框架(三)

文章目录 分组控制分组嵌套中间件 前情提示: 【Golang学习笔记】从零开始搭建一个Web框架(一)-CSDN博客 【Golang学习笔记】从零开始搭建一个Web框架(二)-CSDN博客 分组控制 分组控制(Group Control)是 Web 框架应提供…

【算法刷题 | 回溯思想 01】4.11(回溯算法理论、组合、组合总和 ||| )

文章目录 回溯1.回溯算法理论基础1.1什么是回溯法?1.2回溯法的效率1.3回溯法解决的问题1.4如何理解回溯法?1.5回溯法模板 2.组合2.1问题2.2解法一:暴力解法(循环次数不确定)2.3解法二:回溯2.3.1回溯思路&am…

Unity Shader之数学篇

一、坐标系 1、二维笛卡尔坐标系 屏幕坐标系是二维笛卡尔坐标系,OpenGL的屏幕坐标系原点在左下角,DirectX的屏幕坐标系原点在左上角。 2、三维笛卡尔坐标系 三维笛卡尔坐标系要区分是左手坐标系还是右手坐标系。 左手坐标系:举起你的左手…

linnux文件服务

1.FTP:文件传输协议。 基础:控制端口(身份验证) command 21/tcp 数据端口: data 20/tcp FTP Server默认配置:yum -y install vsftpd (安装vsftpd) touch /var/ftp/abc.txt(创建文件) systemctl start vsftpd(启动文件) systemctl …

Word文档如何更改页面背景颜色?

在Microsoft Word中,设置页面颜色的方法有多种,以下为其中几种常用的方法:(为office2016版本操作) 方法一:使用主题颜色 1. 打开Word文档,在菜单栏中选择“设计”。 2. 在“设计”选项卡中&a…

泰山众筹:低门槛高回报的电商营销新模式

大家好,我是吴军,来自一家专注于软件开发的公司,担任产品经理一职。今天,我想与大家分享一种备受瞩目的商业模式——泰山众筹。 泰山众筹之所以能够在市场上迅速走红,其背后的原因值得我们深入探讨: 首先&…

idm线程越多越好吗 idm线程数多少合适

IDM(Internet Download Manager)是一款流行的下载管理软件,它支持多线程下载,这意味着它可以同时建立多个连接来下载文件的不同部分,从而提高下载速度。我们在使用IDM的时候总是有很多疑问,今天我们学习IDM…

游戏开发者必看:Perforce Helix Core 的功能特点及游戏开发中的常用工具、典型用例介绍

「不出海,即出局」随着全球化的加速发展,企业出海已成燎原之势。日前,2024 亚马逊云科技出海全球化论坛在深圳成功举办。龙智携手 Perforce 亮相游戏行业展区,展示了Perforce Helix Core如何与主流游戏开发引擎高效集成&#xff0…

Pytest精通指南(12)Parametrize源码拆解

文章目录 前言Parametrize 参数化Parametrize 源码分析Parametrize 使用说明一个参数的参数化多个参数的参数化验证类中有多个测试函数验证变量或函数传递参数化验证笛卡尔积拓展用法 前言 在 pytest 中,有两种常见的参数化方法: pytest.mark.parametriz…

哈希密码破解方法汇总

案例: 如何破译 254aa248acb47dd654ca3ea53f48c2c26 e93a1ec56258df7674c4 258df7674c4 该hash加密串的原文信息 步骤: 1)通过Hash Analyzer - TunnelsUP站点了解该hash加密串所使用的哈希加密算法类型。 可知,使用了 sha2-256 加密算法。 2) 访问example_hashes [hash…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 一、简单介绍 二、简单给视频添加水印图片效果实现…