Asutorufaのブログ

こんにちは


  • Home

  • Tags

  • Categories

  • Archives

  • About

  • Friends

  • Search

DNS客户端协议详解

Posted on 2020-05-31 | Post modified: 2020-05-31 | In Network

这个DNS系列现在有以下几篇文章
DNS EDNS DNSSEC DNS over HTTPS 完整代码请看DNS

DNS Header

                                1  1  1  1  1  1
  0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                      ID                       |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    QDCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ANCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    NSCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ARCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

header在dns请求和应答中相同的,查询中有Query Section,应答中有answer section.

  • ID: 2字节,应答中也有ID,可以用来判断是否为我们请求的应答
  • QR:1bit,请求时为0,应答时为1
  • Opcode:4bit 通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求),[3,15]保留值
  • AA:1bit authoritative answer,在应答中才有效
  • TC:1bit 表示可截断
  • RD:1bit 期望使用递归查询
  • RA:1bit 在应答中返回,返回服务器是否支持递归查询
  • Z: Reserved for future use.
  • RCODE:4bit,应答码,代表返回的状态
    • 0 No Error
    • 1 Format error 格式错误
    • 2 Server failure 服务器失败
    • 3 Name Error 查询域名错误
    • 4 Not Implemented 未实现的查询方式
    • 5 Refused 拒绝
    • 6-15 Reserved for future use.
      Read more »

翻译-C程序员所应该知道的内存

Posted on 2020-05-04 | Post modified: 2020-05-04 | In Program

原文章 What a C programmer should know about memory
提示: 本篇文章的图片都是直接使用原文中的图片的地址,如果无法显示,请挂代理


2007年,Ulrich Drepper写了一篇"每个程序员都应该知道的内存".是的,虽然这篇文章又细又长,但做到了它所应做到的.很多年后,虚拟内存的概念对于很多人来说仍然难以琢磨,仿佛是某种魔法.我无法抗拒的引用一下.很多年后甚至原始文章的有效性也被质疑,到底发生了什么事?

北桥,这是什么东西?那不是巷战.

我尝试从"学习锁的基本原理"去传达实用的一面(比如:你能做什么)和更多有趣的东西.可以看待这是一个胶水在原始文章和你每天使用的东西之间.例子将使用linux上的C99,但是更多主题将是普遍的.
编辑: 虽然我对Windows不了解,但我很乐意联系文章去解释.我会尽全力去提起什么函数是平台特有的,但是再一次我只是一个人.如果你发现出入,请让我知道.
事不宜迟,倒一杯咖啡,让我们开始吧。

译者注:

worth one's salt:
    good or competent at the job or profession specified.
    ig:"any astrologer worth her salt would have predicted this"

what gives?
    是在英语对话中常用的一句口语
    通常用它的时候只有两层意思
    一个是What's happening?发生了什么事?
    另一个是What is the news?有什么消息?

the practical side
    实用的一面

理解虚拟内存 - 复杂且神秘

除非你要处理一些嵌入系统或内核空间的代码,否则你应该在保护模式下进行.这太棒了,你的程序一定拥有它自己的[虚拟]地址空间.“虚拟"在这里很重要.这意味着,除了其他事情外,你不会被可使用的内存限制,但是也无权获得任何.为了使用这些空间,你不得向操作系统要一些真东西来作后援,这被叫做映射.后援可能是物理内存,也可能是持久性存储.前者也被叫做"匿名映射”.但是,稍安勿躁.

Read more »

解决linux下Realtek ALC295的耳机炸裂声

Posted on 2020-04-25 | Post modified: 2020-04-25 | In linux

个人使用的笔记本是暗影精灵2 PRO,产品名称是: OMEN by HP Laptop 15-ax210TX.

最初本人装的是ubuntu,左边耳机的声音一直有噼里啪啦的炸裂声,后来换了Arch还是一样的情况,而且本人喜欢听安静的声音,类似读故事或是心跳声这种,每次听到劈裂啪啦的声音真是难受.

最初尝试过Arch wiki中的各种方法 包括

PulseAudio/Troubleshooting#Glitches,_skips_or_crackling
PulseAudio/Troubleshooting#Static_noise_when_using_headphones

都没有任何改进.

直到后来才发现这是linux下Realtek ALC295的驱动不完善导致的,这个bug在17年就提出了,至今都没有得到解决.

Bug 195457 - Realtek ALC295 still unsupported
Crackling and popping sound when using headphones

即使有人提交补丁并合并到了linux内核中

ALSA: hda - Fix missing COEF init for ALC225/295/299

但是事实证明并没有用

依照上面有人提供的方法却有效(看起来跟提交补丁差不多,但是补丁却没有起作用):

Read more »

NAT穿透

Posted on 2020-04-22 | Post modified: 2020-04-22 | In Network

NAT 网络地址转换

网络地址转换 NAT (Network Address Translation) 方法于1994年提出。
需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫作 NAT路由器,它至少有一个有效的外部全球IP地址。
所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

网络地址转换的过程

内部主机 A 用本地地址 IPA 和互联网上主机 B 通信所发送的数据报必须经过 NAT 路由器。
NAT 路由器将数据报的源地址 IPA 转换成全球地址 IPG,并把转换结果记录到NAT地址转换表中,目的地址 IPB 保持不变,然后发送到互联网。
NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 IPB 而目的地址是 IPG。
根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPA,转发给最终的内部主机 A。

网络地址转换表例子:

+-------------+---------------+
| private IP  |   public IP   |
+-------------+---------------+
| 192.168.1.55|219.152.168.222|
+-------------+---------------+
| 192.168.1.59|219.152.168.223|
+-------------+---------------+
|192.168.1.155|219.152.168.224|
+-------------+---------------+
Read more »

とある番組の記録

Posted on 2020-02-15 | Post modified: 2020-03-12 | In 日本語

最近わたくしはたくさん言葉知りました、記録したい、例えば:どこ見つかった、どうおもう。
今回は「22・7 計算中」、この番組すごくおもしろい、ぜひ見てください。

ツッコミ・漫才・呆け

この番組のMCは三四郎さん、おふたりはお笑い芸人ですね、この前に私は全然しらなかった、いつも「ツッコミ」を言うで、知りたいですからしらべました。

パクリ

「滝川みうのテンションが上がる動画選手権」で都ちゃんの得点は0点、理由は彼女作りASMR動画は最初みうちゃんの自己PR動画のなかのひとつのパクリ。ここがわたくし知りました。

醍醐味

相田さんはとある回あるVTRの評価です。

屁理屈

桜ちゃんたくさん屁理屈を言った、でもかわいいです。

キャバクラ

「誰かキャバクラに誘うたらどうですか?」は第73回と74回でひとつ問題です。神木みかみ優しすぎる、結果受ける。

ため口

じつはわたくしは日本の上下関係理解不能。なんで「先輩に対してため口なんであり得ないだろう。」、堅苦しい過ぎるじゃないか。

オラオラ

わたくし今覚えるのはこれは相田さん誰に評価です。

オフショット・グラビア

1.いつもの写真
2.アイドルの写真

ロケ

多分VTRです。外へ出てに撮影すること。


まだまだあるです。

用Android/PC为linux拓展屏幕

Posted on 2020-02-12 | Post modified: 2020-02-12 | In linux

新建虚拟屏幕

计算出拓展屏幕所需的信息.比如我想拓展1920x1200 60fps的虚拟屏幕:

gtf 1920 1200 60

结果

# 1920x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 193.16 MHz
 Modeline "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync

使用xrandr添加新的mode,参数就是上面结果Modeline后面那些东西:

xrandr --newmode "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync

使用xrandr查看空闲的接口:

Read more »

linux PPPOE拨号上网

Posted on 2020-02-08 | Post modified: 2020-02-08 | In linux

安装rp-pppoe

pacman -S rp-pppoe

配置

sudo pppoe-setup
>>> Enter your PPPoE user name:

这里输入网络运营商提供给你的用户名.

Read more »

OpenCV瞳孔定位

Posted on 2020-02-06 | Post modified: 2020-02-06 | In Computer Graphics

利用OpenCV自带的分类器识别面部及眼睛

OpenCV自带里许多分类器,可在haarcascades下载

获取面部

// 获取面部
// image 为输入的OpenCV的格式的图像
// out 为输出图像 <- 此处输出图像为裁剪下来的矩形面部图像
bool get_face(cv::Mat image, cv::Mat &out)
{
    // 将图像转为灰度图像,可提高识别精度
    cv::Mat gray;
    cv::cvtColor(image, gray, CV_BGR2GRAY, 0);
    // 此处的rect为用来存储识别出的面部的定位 <- 这里为vector是因为识别的面部可能不止为一个
    std::vector<cv::Rect> rect;
    // 初始化OpenCV的分类器
    cv::CascadeClassifier cas = cv::CascadeClassifier("haarcascade_frontalface_default.xml");
    cas.detectMultiScale(gray, rect, 1.15, 5);
    // 判断rect是否为空,为空的话就是没有被识别的面部
    if (rect.empty())
    {
        return false;
    }
    // 输出图像,这里的rect可能不止为一个(因为可能不止一张脸),所以实际中应该使用for循环
    // 我这里用rect[0]为了简化
    out = image(rect[0]);
    return true;
}
Read more »

http Keep-Alive

Posted on 2019-12-23 | Post modified: 2019-12-23 | In Network

http keep-alive

http头部Connection: Keep-Alive代表连接请求保持长连接
如果是http代理,必须处理Proxy-Connection: Keep-Alive为Connection: Keep-Alive,如果代理没有实现Keep-Alive就不变或者将Connection设为close.

优点:减少握手次数,如下图(图来源文章最下面)
keep-alive

Read more »

深度学习

Posted on 2019-11-09 | Post modified: 2019-11-14 | In Machine Learning

如果以下的表格及图像出现格式问题,请将你的浏览器中文字体的等宽字体设置好

一.预处理

提取特征量

Human created algorithm: 人想到的算法
         +-----------------------+
-------> |Human created algorithm| --------> 答案
         +-----------------------+

Human created Feature quantity: 人想到的特征量
      +------------------------------------------+       +---------------------------+
----> |Human created Feature quantity(SIF,HGD...)| ----> |Machine learning(svm,knn..)| ---> 答案
      +------------------------------------------+       +---------------------------+

Feature quantity find by computer: 计算机自动寻找特征量
         +-----------------------------------+
         |        Neural Networks            |
-------> |      (Machine learning)           | --------> 答案
         | Feature quantity find by computer |
         +-----------------------------------+

Hyper-Parameter

  1. 设定超参数的范围
  2. 从设定的超参数的范围中随机采样
  3. 使用步骤1中采样到的超参数的值进行学习,通过验证数据,评估识别精度(要将epoch设置得很小)
  4. 重复步骤1和步骤2,根据他们的识别精度的结果缩小超参数的范围

超参数优化参考:贝叶斯最优化

权重

权重的初始值:不应该设置为0/1(设置为0或1,可能造成梯度消失),应选择随机生成初始值

其他权重初始值: He初始值

输出层

输出层的神经数量需要根据待解决的问题来决定,如:对于分类问题,输出层的神经元数量一般设定为类别的数量.

Read more »
1…345…7

70 posts
26 categories
100 tags
RSS
GitHub E-Mail
0%
© 2025 Asutorufa