ARP 运行机制
与 DNS 类似,ARP(Address Resolution Protocol,地址解析协议)提供了将 IP 地址转换为链路层地址的机制。这两种解析器之间的一个重要区别是,DNS 为在因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。
与 DNS 类似,ARP(Address Resolution Protocol,地址解析协议)提供了将 IP 地址转换为链路层地址的机制。这两种解析器之间的一个重要区别是,DNS 为在因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。
Session 是一种抽象的概念,它不止存在于 HTTP 中,在计算机的众多领域都有它的身影,比如在 SSH、tmux 中都有 Session 的出现。
Session 被直译为会话,顾名思义,它指客户端和服务器之间的连接会话。
Cookie 是一种具体的技术,它常被用在 HTTP 中,在其他领域很少见到 Cookie 的身影。
Cookie 可以理解为是 Session 这种概念的一种实现,通过 Cookie 可以确定客户端和服务器之间的连接会话,从而使无状态的 HTTP 协议有状态。
除 Cookie 之外,还可以使用带参数的 URL 来实现 Session 这种概念。
Token 直译为令牌,顾名思义,它常被用以客户端和服务器之间的身份认证。
Cookie 不仅可以用来实现上述的这种身份认证,也可以用来实现类似购物车这种场景。
vCard 是广为使用的电子名片的文件格式标准,常用于手机通讯录文件中,其后缀名常为 .vcf。
一个典型的 vCard 文件内容如下所示:
1 | BEGIN:VCARD |
每个 vCard 条目通过 BEGIN:VCARD 与 END:VCARD 包裹,其中 VERSION 字段表示 vCard 版本号,N 和 FN 字段分别表示 姓名 和 名,TEL 字段表示电话号码。
GitHub 上的 vCards 项目提供了类似中国黄页的功能。
CDN 全称 Content Distribution Network,即内容分发网络。CDN 管理分布在多个地理位置上的服务器,在它的服务器中存储各种类型的 Web 内容(包括文档、图片、音频和视频等)的副本,并且所有试图将每个用户请求定向到一个将提供最好的用户体验的 CDN 位置。
CDN 可以是专用 CDN(private CDN),即它由内容提供商自己所拥有;例如,谷歌的 CDN 分发 YouTube 视频和其他类型的内容。也可以是第三方 CDN(third-party CDN),它代表多个内容提供商分发内容;Akamai、Limelight 和 Cloudflare CDN 都运行第三方 CDN。
UDP 全称 User Datagram Protocol,即用户数据报协议,它为调用它的应用程序提供了一种不可靠、无连接的服务。
UDP 无非就是对网络层协议增加了一点(多路)复用/(多路)分解服务而已。
使用 UDP 的上层协议有:
选择使用 UDP 的原因:
DNS(Domain Name System,域名系统)的主要任务是进行主机名(hostname,也称域名)到 IP 地址转换的目录服务,它由两部分组成:
DNS 服务器通常是运行 BIND(Berkeley Internet Name Domain)软件的 UNIX 机器。DNS 协议运行在 UDP 之上,使用 53 号端口。
因特网电子邮件系统由 3 个主要部分组成:
一个典型的邮件发送过程是:从发送方的用户代理开始,传输到发送方的邮件服务器(通过 SMTP 或 HTTP),再传输到接收方的邮件服务器(通过 SMTP),然后在这里被分发到接收方的邮箱中。如果发送方的邮件服务器不能将邮件交付给接收方的邮件服务器,发送方的邮件服务器在一个报文队列(message queue)中保持该报文并在以后尝试再次发送。
P2P 是一种体系结构,就好像 C/S 体系结构一样,但不同的是,P2P 对总是打开的基础设施服务器有最小的(或者没有)依赖,成对间歇连接的主机(称为对等方)彼此直接通信。
基于 P2P 这种体系结构产生了许多应用,譬如文件分发应用和分布式散列表(DHT),而文件分发应用中一个典型的例子就是 BitTorrent 协议。
如果要类比 P2P 与 BitTorrent 之间的关系,就好像 C/S 体系结构与 FTP 协议之间的关系。
HackRF 是由 Great Scott Gadgets 设计和制造的开源 SDR 硬件,其可以发送或接收 1 MHz 到 6 GHz 的无线电信号。
目前 HackRF 的具体版本为 HackRF One。你可以通过其官网上列出的购买网址购买它,也可以在万能的淘宝上购买。
Sphinx 是一个用 Python 编写的文档生成工具,其使用 reStructuredText 作为标记语言,目前广泛应用于 Python 相关项目的文档生成。比如 Python 官方文档就是基于 Sphinx 生成的,此外 Linux 内核文档的生成也于 2016 年从 Doxygen 转向 Sphinx,要了解更多使用 Sphinx 的项目可参考其官方列表。