Jump to Navigation

Document

Programming articles and books.

平台化建设步伐

hehhe

Category:

Tox API - 开始C API

开始C API

现在给出一个简单的C客户端程序的基本结构,后面详细解释每个重要的部分。

Category:

Tox核心概念

核心概念

Tox ID

public key

以下是一个典型Tox ID,你可以把他给一个好友。它是一个public key,nospan 值和校验值连接起来的十六进制格式字符串。最终结果就是上显示的76个字符的字符串。 public key bd

Public Key

public key 是由NaCl的crypto_box_keypair函数生成的。

它的介绍在这儿 。在当前的NaCl实现中,它是32个字节(64个16进制字符)。

nospan值

nospan值是一个随机生成的追加到public key上的数字。一个未带nospan值的好友请求会被忽略。

Category:

Linux桌面添加新的分辨率

xrandr --newmode "1680x1050" 147.1 1680 1784 1968 2256 1050 1051 1054 1087 +Hsync -Vsync
xrandr --addmode LVDS1 1680x1050

原来的和控制中没有这个分辨率,通过这两个命令,添加新的分辨率
然后可在KDE的"显示与监控”配置项中找到这个新的分辨率可以使用。

也可以继续使用xrandr命令,设置当前的显示分辨率,
xrandr --output LVDS1 --mode "1680x1050"
或者,
xrandr --output LVDS1 --mode "1920x1200"

原来的1920x1200的字段实在太小了。

16:10比例的其他分辨率:
"1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync

当前环境使用IPv6的完全解决方案

目前IPv6已经有小范围的应用。
但国内除了几所高校有IPv6网络之外,互联网上的使用范围还非常少。
现在的操作系统都已经支持IPv6协议,可以使用标准的6over4协议,
实现现在就用IPv6的功能。
现在的网络软件也大多数支持IPv6协议,不过优先支持使用IPv4地址。

除了操作系统之外,还需要DNS的支持,服务器的支持。

这里讨论一种可尽量使用 IPv6协议的客户端系统配置。
这一配置包括以下几项:
1、查看当前的操作系统是否支持IPv6并开启IPv6
2、6over4 隧道的实现程序安装
3、支持IPv6的公用DNS服务器
4、本地DNS缓存服务器,dnsmasq
5、本地DNS劫持服务器,kdns
6、软件的IPv6参数
7、测试与测试工具
8、注意事项

总结P2P程序中UDP穿透难点

最难的一种NAT,这是从对称型NAT演变过来折和中NAT,叫做动态类型NAT。

使用traceroute/tcptraceroute确定动态NAT网络到目标主机的出口IP,为对方的NAT打洞提供目标IP信息。

有一种动态类型的NAT,这种NAT的网络出口IP是一个出口IP池中选出来的。

Category:

自己实现类RUDP协议

UDP协议是一种无状态,不可靠协议,这个描述指的是UDP包之间没有前后顺序关系,也不一定所有的包都能达到目标地址。
在UDP协议由于附带额外包数据小,不需要做包验证等特点,UDP协议效率还是比较高的。
所以,RFC结合TCP和UDP两种协议的优点,制订了RUDP协议标准。

RUDP的核心部分包括,加入包编号,包重传,包确认机制,模拟连接操作与断开连接操作。
标准RUDP协议为UDP包加了8字段的状态数据。

我在实现可靠UDP的时候,参考这RFC RUDP协议同标准,实现了包编号,包重传,包确认机制,
但没有实现模拟连接操作与断开操作。

之所以没有实现模拟三次握手连接,是发现连接包与其他数据包发送接收方式并不一致,
需要额外的方式保证连接包的可靠性。因为连接包参与编号和重传的话,控制上比较复杂,
还不如直接发送数据包,加上编号和和重传、确认,系统的可靠性就已经非常好了。

对stun/turn协议的认识与理解过程笔记

stun协议的全称是 Session Traversal Utilities for NAT,NAT会话传输应用程序

32位 arch linux上使用4G内存:PAE内核使用

原来2G内存的电脑,升级到4G内存后,由于系统是原版的32位archlinux,无法完全利用上4G内存。

在aur.archlinux.org上有个linux-pae内核包,用于32位系统上使用超过4G的内存。

按照编译普通aur包的方式编译出来新的内核包,

pacman -U linux-pae-3.14.3-2-i686.pkg.tar.xz linux-pae-headers-3.14.3-2-i686.pkg.tar.xz

重新使用新安装的内核启动系统。即可利用到4G以上的内存了。

不过,原来安装的一些内核模块需要重新编译安装,像virtualbox,vmware这种第三方的内核模块。

像virtualbox可以使用dkms install vboxhost/4.3.10命令安装,

内核模块安装到了/usr/lib/modules/3.14.3-2-pae/kernel/misc/

再用modprobe vboxdrv后,可以正常使用。

Category:

修改系统路由表, 自行控制网络路由

在登陆vpn后,vpn软件一般会修改系统的路由表,

把默认的路由改到使用vpn,这当然是登 陆vpn 的主要目的。

但有时,登陆vpn单纯只为了访问有些限制性网络,如公司内网,

而其他的网络请求,像浏览器访问网站,软件下载,根本不需要通过VPN。

这种情况下,由于走VPN的网络连接目标相对比较少,并且如果都走VPN的话,还可能导致有些请求变慢,

可以把系统的默认路由改为原来的,然后通过添加针对某些私有网络的访问目标的路由信息,

实现比较完善的支持这种需求的网络。

Category:

页面

订阅 RSS - Document


Main menu 2

by Dr. Radut