Posts for: #Rust
Pingora 初探
Rust 之闭包 - Ⅰ
闭包
是在以函数作为一等公民等编程语言中实现词法绑定等一种技术, 闭包
和 匿名函数
在一些语境下经常互为替换, 但严格来说 匿名函数
也即字面意义上等没有被赋予名称等函数, 而 闭包
实际上是函数的一个实例, 相对于常规函数, 闭包
可以捕捉环境上下文环境中的自由变量, 从一般定义来说即:
f(x) = g(x) + h(y)
这里函数 f(x)
可以表示为关于 x
和 y
的函数, 而函数 f
中无 y
的信息(相对的是 f(x, y)
), 即 y
是自由变量. 除了本文介绍的 Rust
外其他诸如 Swift
, Go
, Erlang
, JavaScript
, Python
等都有 闭包
.
DHCP 协议分析及实现 - Ⅱ
前一篇文章介绍了 DHCP
协议定义以及相关信令之间的流转, 本文主要通过 Rust
从头实现一个 DHCP
协议客户端.
环境准备
首先需要安装 Rust
, 目前 Rust
官方主要提供 Rustup
这一工具管理 Rust
各版本. 如果是 Windows
可直接下载 Rustup-init.exe
运行即可, 如果是 Linux
或 macOS
则可在 Shell
中运行一下命令快速安装:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Rustup
在安装 Rust
同时也会同时安装 Cargo
这一构建和包管理工具, 相对于 C/C++
而言极大地减轻依赖和构建管理的心智负担.
在安装完 Rust
和 Cargo
后由于涉及到网络报文, 因此还建议安装 Wireshark
(Linux
环境下使用 tcpdump
亦可)以便后续对报文进行分析.
IDE
可以选择 VS Code
或 JetBrains
新发布的 RustRover
, 如果选择 VS Code
的话为了进行调试还需同时安装 CodeLLDB
插件.
DHCP 协议分析及实现 - Ⅰ
背景
最近因工作需要接触了 H3C
的 iNode
客户端, 参考其官网对 iNode
的描述:
iNode智能客户端是H3C公司自行设计开发的基于Windows的多业务接入客户端软件,提供802.1x、Portal、VPN等多种认证方式,可以与H3C以太网交换机、路由器、VPN网关等网络设备共同组网,实现对局域网、广域网、VPN、无线接入的用户认证,是对用户终端进行身份验证、安全状态评估以及安全策略实施的主体,可以按照企业接入安全策略的要求,实现基于角色/身份的权限和安全控制。
以此为发端, 本来主要讨论 DHCP
协议的设计与实现, 以期最后通过修改 DHCP
协议实现 私有
的 DHCP
协议, 实现一定条件下限制网络访问的目的.
同时亦声明本文仅就技术上讨论一种私有协议实现的可能性, 只有如何实现以及是否可行并不在本文讨论范围内.