【音樂】今生共相伴
20年前,我結婚了~
-----
我發現,這歌只有我一個人覺得好聽。。。
我結婚的時候,就是放這歌的~
因爲我很喜歡
歌詞也很好
-----
我發現,這歌只有我一個人覺得好聽。。。
我結婚的時候,就是放這歌的~
因爲我很喜歡
歌詞也很好
3 个评论
在GitHub上看到一个开源项目
https://github.com/cloudflare/boringtun
我已经看完了
Linux的内核实现了内核态的wireguard
这个是cloudflare实现的用户态的wireguard
使用了Rust语言
重点看
device目录: 模拟虚拟网卡
noise目录: 网络通信协议
device目录下,只用看 tun_linux.rs 就可以了!精华!
这个文件,注意
open(b"/dev/net/tun\0".as_ptr() as _, O_RDWR)
这行是关键代码
ifru_flags: (IFF_TUN | IFF_NO_PI | IFF_MULTI_QUEUE) as _,
第二层关键
IFF_TUN 表示工作在 网络层 【IFF_TAP】 表示工作在数据链路层
IFF_MULTI_QUEUE 为了多队列访问,提升性能
其他的epoll kqueue 就是为了这个
epoll为了linux系统,kqueue为了mac系统
我们可以使用libevent代替
现在看noise,也就是重点wireguard的网络协议
重点看 handshake.rs 这个文件,mod.rs 这个文件
其中 handshake 里实现了握手协议
format_handshake_initiation 这个函数负责拼 handshake_initiation 报文
就是拼字符串,根据协议实现。。。【对应 TLS 里的 ClientHello】
format_handshake_response 这个函数负责拼 handshake_response 报文
也是拼字符串,根据协议实现。。。【对应TLS 里的 ServerHello】
拼字符串,我觉得是一个很机械的工作,我就没有细看,反正也就那么回事。。。
至于 noise 下的mod.rs
我推荐 只看
encapsulate 和 decapsulate 两个函数
分别是把 /dev/net/tun读取的buffer 封装为 wireguard协议
和 根据wireguard协议,解析为buffer 回写到 tun虚拟网卡
关键函数,我都已经给出了,你们只要看看哪些代码会调用
我说的这些函数,就可以对整个客户端有所了解!
https://github.com/cloudflare/boringtun
我已经看完了
Linux的内核实现了内核态的wireguard
这个是cloudflare实现的用户态的wireguard
使用了Rust语言
重点看
device目录: 模拟虚拟网卡
noise目录: 网络通信协议
device目录下,只用看 tun_linux.rs 就可以了!精华!
这个文件,注意
open(b"/dev/net/tun\0".as_ptr() as _, O_RDWR)
这行是关键代码
ifru_flags: (IFF_TUN | IFF_NO_PI | IFF_MULTI_QUEUE) as _,
第二层关键
IFF_TUN 表示工作在 网络层 【IFF_TAP】 表示工作在数据链路层
IFF_MULTI_QUEUE 为了多队列访问,提升性能
其他的epoll kqueue 就是为了这个
epoll为了linux系统,kqueue为了mac系统
我们可以使用libevent代替
现在看noise,也就是重点wireguard的网络协议
重点看 handshake.rs 这个文件,mod.rs 这个文件
其中 handshake 里实现了握手协议
format_handshake_initiation 这个函数负责拼 handshake_initiation 报文
就是拼字符串,根据协议实现。。。【对应 TLS 里的 ClientHello】
format_handshake_response 这个函数负责拼 handshake_response 报文
也是拼字符串,根据协议实现。。。【对应TLS 里的 ServerHello】
拼字符串,我觉得是一个很机械的工作,我就没有细看,反正也就那么回事。。。
至于 noise 下的mod.rs
我推荐 只看
encapsulate 和 decapsulate 两个函数
分别是把 /dev/net/tun读取的buffer 封装为 wireguard协议
和 根据wireguard协议,解析为buffer 回写到 tun虚拟网卡
关键函数,我都已经给出了,你们只要看看哪些代码会调用
我说的这些函数,就可以对整个客户端有所了解!
在GitHub上看到一个开源项目https://github.com/cloudflare/bori...
连 Rust 都能看懂,完全不信你“不会编程”。
(大伙儿要是学过 Rust 都知道,这是一门学习门槛很高、很难入门的编程语言)
连 Rust 都能看懂,完全不信你“不会编程”。(大伙儿要是学过 Rust 都知道,这是一门学习门槛...
天下事,有难易乎,为之,则难者亦易矣,不为,则易者亦难矣~