导言
作为一个影视剧爱好者,通过开源软件jellyfin如何管理BT或者PT下载的视频资料是本文的主要内容。
Wake-on-LAN 也叫 WoL,指通过网络消息打开或唤醒计算机。
WoL 需要由另一台「同局域网」设备发送网络信号,任意有能力发送 WoL 信号 的设备都可以充当此角色;在远程办公场景中,则最好由「带有线网卡的低功耗设备」来执行,这类设备包括但不限于以下选项:
获取局域网下设备MAC地址, 或者OpenWRT直接显示
| 平台 | 工具 |
|---|---|
| Windows | Softperfect Network Scanner |
| Linux | arp-scan |
| Android / iOS | Fing / PingTools |
可以使用的幻数据包唤醒工具有:
| 平台 | 工具 | 特点 |
|---|---|---|
| Windows | wolcmd.exe | 命令行,跨网段 |
| Linux/MacOS | etherwake, wakeonlan | 命令行,同网段 |
| Android / iOS | Fing / PingTools | 可扫描 |
请注意,WoL 属于无状态协议,仅发送、不确认。
1 | WolCmd.exe 90:09:D0:15:70:B8 192.168.233.242 255.255.255.255 9 (目的地址 192.168.233.242) |
路由遇到目的MAC是广播地址怎么办?
IP的广播有三种:
路由器是三层设备,可以隔离广播,但并不是所有广播都隔离。事实上只有本地广播路由器才不转发,对于子网广播和全子网广播,路由器是转发的。
为什么呢?我们来看255.255.255.255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。所以路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。
1 | > netstat -r -anv |
路由器
1 | [root@ax6s ~]$ ip route get to 192.168.233.242 from 192.168.233.142 iif lan2 |
1 | Automatic Power On |
暂无
暂无
Nas 太吵,需要自动关机
区别于BT,核心概念在于文件共享。
eDonkey网络所使用的协议,eDonkey网络所共享的文件会生成eD2k开头的链接。
eDonkey2000:(又称:eDonkey;缩写:eD2k;非官方中文译名:电驴)最先开发使用eDonkey网络的文件共享客户端软件。2000年起开发,2005年停止维护,之后eDonkey网络被其他软件沿用。
eMule:(官方中文名:电骡)eMule及其Mods是现在最流行的一款eDonkey网络文件共享客户端软件。2002年起开发。
暂无
暂无
作者:qysnn
链接:https://www.zhihu.com/question/19922200/answer/29022933
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
127.0.0.1:7890上的数据+.*便等价于redir-host模式1 | # RESTful web API listening address |
假如服务器和笔记本在LAN下,笔记本的clash软件只需要打开LAN就可以给服务器代理了,是最简单方便的方式。
由于UGREEN NAS一直开机,作为代理节点很适合。
首先注意修改代理机场的文件config.yaml的0.0.0.0:9090,以便haishanh/yacd使用。
1 | mixed-port: 7890 |
dreamacro/clash^1haishanh/yacd下载可执行文件
1 | wget https://github.com/Dreamacro/clash/releases/download/v1.11.8/clash-linux-amd64-v1.11.8.gz |
Country.mmdb 文件,Country.mmdb 文件利用 GeoIP2 服务能识别互联网用户的地点位置,以供规则分流时使用。./clash 命令) 会自动下载(会下载至 /home/XXX/.config/clash 文件夹下)。自动下载可能会因网络原因较慢,可以访问该链接手动下载。根据订阅链接配置文件
1 | cd ~/.config/clash |
成功结果
1 | # shaojiemike @ node6 in ~/Download [10:22:54] C:130 |
http://clash.razord.top/#/proxies
输入
1 | Host: node6.swangeese.fun |
查看config.yaml,发现是空
1 | mixed-port: 7890 |
[^2]: Docker 安装 Clash 并对外提供代理服务
https://blog.iswiftai.com/posts/clash-linux/
https://einverne.github.io/post/2021/03/linux-use-clash.html
官网要钱,有泄漏的50G的模型,B站有up抽取了其中的一个做了整合包
不知道,会不会有版权问题下架了。
1 | https://pan.baidu.com/s/1AAHoNYYano6q7XBl3luCcg |
可以把start.bat改成sh脚本在实验室A100上跑
作者:秋葉aaaki https://www.bilibili.com/read/cv19038600?spm_id_from=333.788.b_636f6d6d656e74.7 出处:bilibili

| 技术路线 | 代表 |
|---|---|
| 全系统模拟 | gem5 |
| 基于平台无关的PIM的trace代码的模拟 | Sinuca (HPCC’15) |
| Host端为真实机器,只模拟PIM端 | $Sim^2PIM$ (DATE’21) |
| PIMSim( IEEE Computer Architecture Letters’19) |
| 文献 | 环境 | 特点 |
|---|---|---|
| CoNDA(ISCA ’19) | gem5(X86 full-system) + DRAMSim2 | 魔改了gem5的内存模型 |
| Accelerating Neural Network Inference with Processing-in-DRAM: From the Edge to the Cloud(IEEE Micro) | 讨论了三种PIM架构1. UPMEM(真实系统) 2. Mensa(Google’s Edge TPU in-house simulator) 3. SIMDRAM(gem5) | |
| Ambit: In-Memory Accelerator for Bulk Bitwise Operations Using Commodity DRAM Technology(Micro 17) | gem5 | |
| GraphPIM: Enabling Instruction-Level PIM Offloading in Graph Computing Frameworks | Structural Simulation Toolkit (SST) [28] with MacSim [29], a cycle-level architecture simulator. HMC is simulated by VaultSim, a 3D-stacked memory simulator. We extend VaultSim with extra timing models based on DRAMSim2 | |
| ProPRAM: Exploiting the Transparent Logic Resources in Non-Volatile Memory for Near Data Computing | Multi2Sim + DRAMSim2 + NVSim | |
| Operand Size Reconfiguration for Big Data Processing in Memory(RVU 架构 DATE 17 B会) | SiNUCA(类似gem5) |
越来越多的工作在real PIM system上开展,基于专门的PIM模拟器的貌似很少???为什么无法满足定制的要求吗?
A compiler for automatic selection of suitable processing-in-memory instructions,
Providing plug n’ play for processing-in-memory accelerators,
LazyPIM: An Efficient Cache Coherence Mechanism for Processing-in-Memory,
比较,优点和局限性
| 模拟器名称 | 文献 | 代码 | 特点 |
|---|---|---|---|
| ZSim + Ramulator | Processing-in-memory: A workload-driven perspective | https://github.com/CMU-SAFARI/ramulator-pim/ | ZSim(类似gem5)+Ramulator(HMC logic layer add PIM core) 了解实现原理后,其memory端的拓展性值得期待 |
| Sim2PIM | 暂无 | 可以将任意PIM架构和任意host端结合,多线程very fast as perf(通过利用Host系统OS的pthread和硬件计数器来实现)缺点:Host端的cache策略等不能任意定制 | |
| gem5 | SiNUCA文章指出gem5的DRAM模拟误差可以达到36% | ||
| Sinuca(HPCC 15) | Sinuca: A validated micro-architecture simulator | use real trace-based simulator(但是不能采OS和多线程的) | |
| PinTools | Pin: Building customized program analysis tools with dynamic instrumentation, | 类似上面的,JIT执行 | |
| MultiPIM | Multipim: A detailed and configurable multistack processing-in-memory simulator | ||
| Pimsim | Pimsim: A flexible and detailed processing-in-memory simulator | 太慢 | |
| Hmc-sim-2.0: A simulation platform for exploring custom memory cube operations | 特定架构 | ||
| Cycle Accurate Parallel PIM Simulator (CLAPPS) | A generic processing in memory cycle accurate simulator under hybrid memory cube architecture | 无 | 依赖system模拟器(SystemC HMC simulation) |
| Mnsim: Simulation platform for memristor-based neuromorphic computing system | 不是全系统的模拟(忆阻器PIM 模拟器) | ||
| Cim-sim | Non-Volatile Memory(忆阻器PIM 模拟器) |

host CPU cores and general-purpose PIM cores.
The PIM cores are placed in the logic layer of a 3D-stacked memory (Ramulator’s HMC model).
The simulation framework does not currently support concurrent execution on host and PIM cores.
主机CPU核和通用PIM核的计算系统。PIM核心被放置在一个3d堆叠存储器(Ramulator的HMC模型)的逻辑层中。通过这个模拟框架,我们可以模拟主机CPU核和通用PIM核,目的是比较两者对于一个应用程序或其部分的性能。该仿真框架目前不支持主机和PIM核心上的并发执行。
use ZSim to generate memory traces that are fed to Ramulator.
Zim跟踪内存的使用,还可以模拟主机的缓存层次结构(包括coherence协议)。ZSim还可以模拟硬件预取器。
Ramulator simulates the memory accesses of the host cores and the PIM cores
Ramulator contains simple models of out-of-order and in-order cores that can be used for simulation of host and PIM.
暂无
暂无
DRAM types: Size, Latency, Bandwidth, Energy Consumption
这篇文章主要聚焦于各种计算设备的DRAM的参数,以及发展趋势。
购买 shaojiemike.top
自动在华为DNS服务器上进行DNS解析(ip与域名对应)
实名认证
网站报备
网站解析
当您想在Internet上通过域名访问您的网站时,可以通过华为云的云解析服务为域名添加解析记录。
例如,搭建一个网站服务器,采用IPv4格式的弹性IP地址。如果想要实现通过域名“example.com”及其子域名“www.example.com”访问该网站,需要配置如下解析记录:
A:添加域名“example.com”到弹性IP地址的解析记录。
A:添加子域名“www.example.com”到弹性IP地址的解析记录。
修改DNS服务器为华为
不要修改成域名解析的
1 | # shaojiemike @ node6 in ~ [21:24:21] |
可以看到13个根DNS服务器到to子服务器再到us.to的解析过程。
在“公网域名”页面的域名列表的“域名”列,单击域名的名称“example.com”。
进入“解析记录”页面。
在页面右上角,单击“添加记录集”。
在“添加记录集”页面,根据界面提示为域名“example.com”设置A记录集参数。

主机记录:设置为“www”,表示解析的域名为子域名“www.example.com”。
测试域名解析是否生效
1 | D:\OneDrive - mail.ustc.edu.cn\homepage> nslookup shaojiemike.top ns1.huaweicloud-dns.org |

云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务。它能帮助您快速的构建更稳定、安全的应用,提高运维效率,降低IT成本
1 | 10.0.0.0/8:10.0.0.0~10.255.255.255 |
有这么一种情况:拉的联通的带宽,分配的IP只能在联通内部访问,移动网络不能访问。这个IP最多只能算是“联通内的公网IP”,不是真的公网IP。
上面几部分IP都可称为内网IP
貌似node5 与 node6 挂了网络通,是动态公网IP(chivier说的)
node5 ip: 202.38.73.26
IPv4封了许多端口(至少ssh的22端口是不行的)
IPv6是直接可以ssh访问的
ipv4是32位地址,分成4段,每段之间都有”.”分开,而每段之间有8位,从0-255
最普遍看到的就是ipv4
ipv6是128位地址,每个数目等于4位(0-f)16位进制,4个一组,每段之间由“:”隔开,共有8段,其中如果有连续性的”0”
如fe80:0000:0000:0000:0000:0000:0000:de4f
IPv4DNS服务器能根据IP修改,但是我不知道华为DNS服务器的IP。
ns1.huaweicloud-dns.com:中国大陆各区域DNS地址
ns1.huaweicloud-dns.cn:中国大陆各区域DNS地址
ns1.huaweicloud-dns.net:除中国大陆之外国家或地区DNS地址
ns1.huaweicloud-dns.org:除中国大陆之外国家或地区DNS地址
动态公网IP,可以使用nat123动态域名解析解决公网IP不固定的问题
node6配置没用80端口,不能直接IP访问
还是不能直接访问shaojiemike.top(TTL为300,需要时间?)
第二天可以了。
我用阿里的域名,用这个教程,把我的IP挂到阿里DNS上面去了
https://support.huaweicloud.com/qs-dns/dns_qs_0002.html
https://blog.csdn.net/meitesiluyuan/article/details/58588216
SSH 端口转发自然需要 SSH 连接,而SSH 连接是有方向的,从 SSH Client 到 SSH Server 。
而我们所要访问的应用也是有方向的,应用连接的方向也是从应用的 Client 端连接到应用的 Server 端。比如需要我们要访问Internet上的Web站点时,Http应用的方向就是从我们自己这台主机(Client)到远处的Web Server。
如果SSH连接和应用的连接这两个连接的方向一致,那我们就说它是本地转发。
1 | ssh -L [bind_address:]port:host:hostport <SSH hostname> |

本地转发在本地这台机器上监听一个端口,然后所有访问这个端口的数据都会通过ssh 隧道传输到远端的对应端口上。命令中的 host 和 <SSH hostname> 可以是不同的主机。

如果SSH连接和应用的连接这两个连接的方向不同,那我们就说它是远程转发。
1 | ssh -R [bind_address:]port:host:hostport <SSH hostname> |

远程转发与本地转发正好相反,打开ssh隧道以后,在远端服务器监听一个端口,所有访问远端服务器指定端口都会通过隧道传输到本地的对应端口上,下面是例子。

1 | -C:压缩数据传输。 |
1 | -f Requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or |
将发往本机的80端口访问转发到174.139.9.66的8080端口
1 | ssh -C -f -N -g -L 80:174.139.9.66:8080 [email protected] |
将发往174.139.9.66的8080访问转发到本机的80端口
1 | ssh -C -f -N -g -R 80:174.139.9.66:8080 [email protected] |
使用远程管理服务器上的MySQL
1 | ssh -C -f -N -g -L 80:174.139.9.66:8080 [email protected] |
一次同时映射多个端口
1 | ssh -L 8888:www.host.com:80 -L 110:mail.host.com:110 -L 25:mail.host.com:25 user@host -N |
.ssh/config修改
1 | Host * |
更改ssh服务器的配置文件/etc/ssh/sshd_config
1 | ClientAliveInterval 60 |
原理同上
重启ssh服务以使配置生效
1 | systemctl restart sshd |
我们可以把这个映射的端口绑定在0.0.0.0的接口上,方法是加上参数-b 0.0.0.0。
同时修改SSH服务器端 /etc/sshd_config中 GatewayPorts no为 GatewayPorts yes来打开它。
1 | Host * |
1 | ssh -L 6006:127.0.0.1:6006 -N -f -l acsacom snode6.swangeese.fun |
本地网络代理到服务器
1 | ssh -fNgR 7333:127.0.0.1:7890 [email protected] |
7333数字不要太小,以免冲突。7890是本地clash端口,80也可以。1 | #YJH proxy |
RAM (random access memory), 中文名叫随机存储器, 随机是什么意思呢? 意思是, 给定一个地址, 可以立即访问到数据(访问时间和位置无关)
而不像咱们熟悉的磁带, 知道最后一首歌在最后的位置, 却没法直接一下子跳到磁带的最后部门, 所以磁带不是随机存储器, 而是顺序存储器。
SRAM (Static Random Access Memory) and DRAM (Dynamic Random Access Memory)
| BASIS FOR COMPARISON | SRAM | DRAM |
|---|---|---|
| Speed | Faster | Slower |
| Size | Small | Large |
| Cost | Expensive | Cheap |
| Used in | Cache memory | Main memory |
| Density | Less dense | Highly dense |
| Construction | Complex and uses transistors and latches. | Simple and uses capacitors and very few transistors. |
| Single block of memory requires | 6 transistors | Only one transistor. |
| Charge leakage property | Not present | Present hence require power refresh circuitry |
| Power consumption | Low | High |

左边的是静态的,右边的是dynamic的。
SRAM,保存一个bit需要6个晶体管。
DRAM 存储一个bit的DRAM只需要一个电容和一个晶体管。 DRAM的数据实际上是存在于电容里面的, 电容会有电的泄露, 损失状态, 故需要对电容状态进行保持和刷新处理, 以维持持久状态, 而这是需要时间的, 所以就慢了。而且很耗电。
DRAM内存实现的存储是通过晶体管实现的一个电路 门控D锁存器,其更简化的形式是 SR锁存器,电路结构如下图:

但是bank矩阵的一个点(基本存储单元, 寻址能力, 内存颗粒(Chip)的位宽)一般是8bit.
8个 门控D锁存器 组成内存的基本(最小)存储单元,他们共用一个行/列 地址线。在一次寻址中每个内存颗粒返回 8 bit的数据 8个内存可以同时寻址 最终得到的是 8 * 8(8个chip) = 64 bit 的连续数据 也就是说 内存一次寻址可以读取 8 Byte 的数据,这里也能说明在C语言中的内存不齐的原因(减少寻址次数)。
现在的DRAM一般都是SDRAM,即Synchronous Dynamic Random Access Memory,同步且能自由指定地址进行数据读写。其结构一般由许多个bank组成并利用以达到自由寻址。

chip的多 Bank 的设计允许向每个Bank 发出不同的命令。同一时刻,不同的bank可以处理不同的行地址。当然,不可能同时读取或者写入多个 Bank,因为读写通道只有 1 个,当时可以在 1 个 Bank 读写时,向另一个 Bank 发出 Precharge 或者 Active 命令。

| 名词 | 解释 |
|---|---|
| dual inline memory modules (DIMMs). | 每个channel可以连接多个DIMM,每个DIMM与多个DRAM chip相联 |
| Cell: | 颗粒中的一个数据存储单元叫做一个Cell,由一个电容和一个N沟道MOSFET组成。 |
| chip: | 一个颗粒叫做一个chip。一根内存的内存带宽是64bit,如果是单面就是8个8bit颗粒,如果是双面,那就是16个4bit的颗粒分别在两面,不算ECC颗粒(Error Checking and Correcting错误校验芯片)。 |
| Bank | 每个chip有4~8个bank,每个bank可以看作一个行列矩阵,每个点存储4~16bit的信息。 |
| Rank: | 内存PCB的一面所有颗粒叫做一个rank,目前在Unbuffered台式机内存上,通常一面是8个颗粒,所以单面内存就是1个rank,8个chip |
| 寻址空间 | 是指内存总共可以存储多少个地址,比如一个2G DDR3内存 ,每个Rank是2/1=1G ,每个内存颗粒是1/8=128M 每个Bank是 128/8=16M 16M = 2^4 * 2^10 = 2^14 也就是地址线需要14根 正对应地址线的 A0-A13 |


{ width=80% }



每個DRAM裏有4個bank選取位元可用來選取多達16個bank單元:兩個bank位址位元(BA0、BA1),和兩個bank群組位元(BG0、BG1)。當在同一個bank群組中存取不同的bank單元時會有另外的時間限制;在不同的bank群組中,存取一個bank比以往的更快。
另外,3個晶片層選取信號(C0、C1、C2),允許最多8個堆疊式晶片層封裝於一塊DRAM封裝上。這可以更有效地充當3個以上的bank單元選取位元,使選取總數達到7(可以定位128個bank單元)。

我们知道cache的存在导致访存是按照cache line(32或者64字节)来进行的,但是内存一般只会处理连续64bits数据,导致需要控制器和总线分多周期(memory burst概念)来实现cache的更新。
SNB CPU的内存控制器可以实现和处理:
AMD公司提高CPU与内存性能的一项技术,将北桥的内存控制器集成到CPU,使得原来CPU-北桥-内存三方传输数据的过程简化成CPU与内存之间的单向传输技术,降低了延迟。

以2GB DDR3为例子,编码如上,

DDR中的Burst(突发长度)指的是,当收到了一个读请求和地址后,会连续取出这个地址周围几个连续地址上的数据,具体取几个就叫BL(Burst Length),是可以随地址信号配置的。(原因是:次次等待Address和Enable信号再读写有些浪费时间)
Burst的实现是通过Prefetch完成的,Prefetch就是一次从Array上取出多bit的过程,而Burst则是根据规则发送这些预取的数据的过程。
Burst Length(BL)是可以配置的,比如8Bit预取可以支持BL8的Burst或者BC4(Burst Length Chopped)的Burst。
Prefetch数量也是前几代DDR的主要区别。

红框标出的DRAM的核心频率基本不变,传输速度的提高是通过增加prefetch的位数(黄框)来做到的。
DDR 有两项主要的技术 2n-prefetch (2 倍预取),和 DLL (延迟锁相环)。这在之后历代 DDR 协议中都是一脉相承的。所谓 2 倍预取,即在一个时钟的上升边沿读取当前地址单元的数据,并同时读取下一个地址单元的数据。
DDRx的核心频率一直维持在100Mhz到266MHz的水平上,每代速度的提升都是靠倍增Prefetch的个数来达到的。
DDR4和DDR3一样,只有8n的prefetch,但为了提升前端Front End的总线速度,不得不在核心频率上动起了手脚:
核心频率不在徘徊在100~266HMz,直接200起跳,到400Mhz。因为核心频率提高,8bit的prefetch不变,总线速度才得以提升。
除此之外,引入了Bank Group。DDR4 新增了4 個Bank Group 資料組的設計,各個Bank Group具備獨立啟動操作讀、寫等動作特性,Bank Group 資料組可套用多工的觀念來想像,亦可解釋為DDR4 在同一時脈工作周期內,至多可以處理4 筆資料,效率明顯好過於DDR3。
CL-tRCD-tRP-tRAS-CR
| 名词 | 解释 |
|---|---|
| CL(CAS Latency) | 列信号延迟: 在读取命令发出后到数据读出到IO接口的间隔时间(时钟周期数) |
| tCAS(tCL?) | 实际延迟时间tCAS(ns)=(CAS*2000)/内存等效频率 |
| tRAS(Row Active Time) | 行地址激活的时间。从一个行地址预充电之后,从激活到寻址再到读取完成所经过的整个时间 tRCD+tCL |
| tRCD(Read-to-Column Delay) | 行地址激活(Active)命令发出之后,内存对行地址的操作所需要的时间。内存中某一行地址被激活时,我们称它为“open page” |
| tRCDR(Read-to-Column Command Delay) | 行地址激活(Active)命令发出之后,内存对行地址的读操作所需要的时间。 |
| tRCDW(Write-to-Column Command Delay) | 行地址激活(Active)命令发出之后,内存对行地址的写操作所需要的时间。 |
| nWR (Write Recovery Time) | time delay between successive write commands to the same row. |
| tRP(RAS Precharge Time) | 前一个行地址操作完成并在行地址关闭(page close)命令发出之后,准备对同一个bank中下一个行地址进行Active操作需要的时间(在对同一个bank的多个不同的行地址进行操作时影响才大) |
| CR(Command Rate) | 首命令延迟。是指从选定bank之后到可以发出行地址激活命令所经过的时间。(如果CPU所需要的数据都在内存的一个行地址上,就不需要进行重复多次的bank选择,CR的影响就很小) |
| Tccd | is the minimum amount of time between column operations |
| tRPRE | The minimum pulse width of READ preamble |
| tRPST | The minimum pulse width of READ postamble |
XMP时序都没有介绍
不同的DRAM。随着频率提升,CL周期也同步提升,但是最后算出来的CL延迟时间却差不多(5~15ns)。其实当下memory的频率宽度过剩,integrated memory controller (IMC)才是瓶颈
在列信号之前还有行信号
如何连续两次访问同一行的不同列,则之间不需要额外的切换行信号。
https://zhuanlan.zhihu.com/p/52272990