Howie's Notes

Machine Learning and Cyber Security

与 DNS 类似,ARP(Address Resolution Protocol,地址解析协议)提供了将 IP 地址转换为链路层地址的机制。这两种解析器之间的一个重要区别是,DNS 为在因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。

Read more »

Session

Session 是一种抽象的概念,它不止存在于 HTTP 中,在计算机的众多领域都有它的身影,比如在 SSH、tmux 中都有 Session 的出现。

Session 被直译为会话,顾名思义,它指客户端和服务器之间的连接会话。

Cookie 是一种具体的技术,它常被用在 HTTP 中,在其他领域很少见到 Cookie 的身影。

Cookie 可以理解为是 Session 这种概念的一种实现,通过 Cookie 可以确定客户端和服务器之间的连接会话,从而使无状态的 HTTP 协议有状态。

除 Cookie 之外,还可以使用带参数的 URL 来实现 Session 这种概念。

Token

Token 直译为令牌,顾名思义,它常被用以客户端和服务器之间的身份认证。

Cookie 不仅可以用来实现上述的这种身份认证,也可以用来实现类似购物车这种场景。

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: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。

Read more »

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

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

使用 UDP 的上层协议有:

选择使用 UDP 的原因:

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

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

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 »
0%