很久以前,美国军方需要一种能够在核战争中维持运作的通信系统。为了达到这个目标,这个网络被设计成了去中心化的,两点之间可以有多条路径,消息被分割成小的数据包,数据包采用“保存并传递”的方式在节点之间传播。
在 1973 年 X.25 协议被引入之前,大概有20种不同的网络技术在被开发。
为了让访问远程服务器更方便,需要方便人类阅读和记忆的域名,域名被解析成对应的IP地址。存储域名和IP的对应关系存储在 DNS 服务器上,DNS 是一种应用层协议。DNS数据库内存储着不同类型的资源记录(RR),买过域名的朋友可能就知道,有CNAME(域名别名),MX(邮件交换),A或AAAA(IP地址)等等。还有一种记录叫PTR(Pointer for reverse DNS lookups)倒序DNS查询点。最初的DNS数据记录在一个HOSTS.TXT文件里,需要人工修改。当然,后来变成自动化且分布式的了。
域名其实是树状结构,从右到左是对应从父到子。而IP地址是从左到右表示从父到子,所以在DNS查询时,IP地址需要以不同方式倒序。IPv4是倒序后加上 ".in-addr.arpa",而IPv6是倒序后每个字符都用"."隔开,最后加上".ip6.arpa"。由于域名每个点隔开表示一级,所以IPv6就有了16级。域名是大小写无关的。
DNS有Class Type,“IN”表示Internet,另外两个类型表示的网络都已经没人用了,但也保留了下来。有数不清的技术在历史的长河中消失了,这样留下痕迹的还是少数。
比特币节点初始化的时候需要获取到其它节点的IP地址,现在一般是通过DNS服务器来查找几个事先写在代码里的域名,例如: "seed.bitcoinsv.io". 就可以查到包含一系列节点ip的RR。