Howie's Notes

Machine Learning and Cyber Security

vCard 是广为使用的电子名片的文件格式标准,常用于手机通讯录文件中,其后缀名常为 .vcf

一个典型的 vCard 文件内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testa
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testa
TEL;CELL:12345678910
END:VCARD
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testb
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testb
TEL;CELL:12345678910
END:VCARD

每个 vCard 条目通过 BEGIN:VCARDEND:VCARD 包裹,其中 VERSION 字段表示 vCard 版本号,NFN 字段分别表示 姓名TEL 字段表示电话号码。

GitHub 上的 vCards 项目提供了类似中国黄页的功能。

CDN 全称 Content Distribution Network,即内容分发网络。CDN 管理分布在多个地理位置上的服务器,在它的服务器中存储各种类型的 Web 内容(包括文档、图片、音频和视频等)的副本,并且所有试图将每个用户请求定向到一个将提供最好的用户体验的 CDN 位置。

CDN 可以是专用 CDN(private CDN),即它由内容提供商自己所拥有;例如,谷歌的 CDN 分发 YouTube 视频和其他类型的内容。也可以是第三方 CDN(third-party CDN),它代表多个内容提供商分发内容;AkamaiLimelightCloudflare CDN 都运行第三方 CDN。

Read more »

UDP 全称 User Datagram Protocol,即用户数据报协议,它为调用它的应用程序提供了一种不可靠、无连接的服务。

UDP 无非就是对网络层协议增加了一点(多路)复用/(多路)分解服务而已。

使用 UDP 的上层协议有:

选择使用 UDP 的原因:

  • 关于发送什么数据以及何时发送的应用层控制更为精细。
  • 无须连接建立。
  • 无连接状态。
  • 分组首部开销小。每个 TCP 报文段都有 20 字节的首部开销,而 UDP 仅有 8 字节的开销。

使用 UDP 的应用是可能实现可靠数据传输的,这可通过在应用程序自身中建立可靠性机制来完成。
可参考 KCPQUIC

Read more »

DNS(Domain Name System,域名系统)的主要任务是进行主机名(hostname,也称域名)到 IP 地址转换的目录服务,它由两部分组成:

  • 一个由分层DNS 服务器(DNS server)实现的分布式数据库
  • 一个使得主机能够查询分布式数据库的应用层协议

DNS 服务器通常是运行 BIND(Berkeley Internet Name Domain)软件的 UNIX 机器。DNS 协议运行在 UDP 之上,使用 53 号端口。

Read more »

因特网电子邮件系统由 3 个主要部分组成:

  • 用户代理(user agent):允许用户阅读、回复、转发、保存和撰写报文,如微软的 Outlook 和 Apple Mail 等
  • 邮件服务器(mail server):每个接收方在其中的某个邮件服务器上有一个邮箱(mailbox)
  • SMTP

一个典型的邮件发送过程是:从发送方的用户代理开始,传输到发送方的邮件服务器(通过 SMTP 或 HTTP),再传输到接收方的邮件服务器(通过 SMTP),然后在这里被分发到接收方的邮箱中。如果发送方的邮件服务器不能将邮件交付给接收方的邮件服务器,发送方的邮件服务器在一个报文队列(message queue)中保持该报文并在以后尝试再次发送。

Read more »

P2P 是一种体系结构,就好像 C/S 体系结构一样,但不同的是,P2P 对总是打开的基础设施服务器有最小的(或者没有)依赖,成对间歇连接的主机(称为对等方)彼此直接通信。

基于 P2P 这种体系结构产生了许多应用,譬如文件分发应用分布式散列表(DHT),而文件分发应用中一个典型的例子就是 BitTorrent 协议。

如果要类比 P2P 与 BitTorrent 之间的关系,就好像 C/S 体系结构与 FTP 协议之间的关系。

Read more »

节选自《The Little Schemer》

Scheme 五法

Scheme 五法之第一法 —— car 之法则

基本元件 car 仅定义为针对非空列表。

Scheme 五法之第二法 —— cdr 之法则

基本元件 cdr 仅定义为针对非空列表。任意非空列表的 cdr 总是另一个列表。

Scheme 五法之第三法 —— cons 之法则

基本元件 cons 需要两个参数。第二个参数必须是一个列表。结果是一个列表。

Scheme 五法之第四法 —— Null? 之法则

基本元件 null? 仅定义为针对列表。

Scheme 五法之第五法 —— eq? 之法则

基本元件 eq? 需要两个参数。每个参数都必须是一个非数字的原子。

Read more »
0%