计算机网络基础
学习计算机网络基础过程中的一些自己的思考,疑问和总结。
协议
在计算机网络中,我们所说的协议,指的是设备之间用来通信的规则和约定。就像人类交流需要共同的语言和规则(例如英语中的语法、句子结构),计算机在网络中互相通信也需要一种标准化的语言,这种语言就是协议。
协议的本质:共同的规则
假设你和别人通电话:
- 规则1:谁先说话?
- 电话接通后,通常是打电话的人先说“你好”。
- 规则2:如何回应?
- 接电话的人会说“你好,请问找谁?”
- 规则3:挂电话的顺序
- 通话结束时,通常会互相说再见,然后挂断。
如果没有这些规则,双方可能会陷入混乱,比如同时说话,或者没人知道什么时候挂电话。
在计算机网络中,类似的规则就是协议,它确保数据通信有序、准确,避免混乱。
协议的核心特点
- 标准化:所有设备都必须遵循统一的规则。
- 分层结构:通常协议被分为不同层次(如TCP/IP协议的4层)。
- 可互操作:不同厂商的设备(比如苹果和安卓)能通过相同的协议通信。
协议里面为什么还有协议?
为了分工明确、层次清晰,让网络通信既高效又灵活。这种分层结构就像一个团队合作的过程,每个成员专注于自己的职责,遵守共同的规则,最终完成一个复杂的任务。
DNS
根DNS有哪13个?
虽然我们通常说根DNS服务器有13个,实际上这些13个是逻辑服务器的标识符,每个逻辑服务器背后都有多个实际运行的物理服务器,分布在全球,通过任播(Anycast)技术提供服务。
13个根DNS服务器的标识和运营机构
标识符 | 根服务器名称 | 运营机构 |
---|---|---|
A | a.root-servers.net | Verisign, Inc. |
B | b.root-servers.net | USC-ISI |
C | c.root-servers.net | Cogent Communications |
D | d.root-servers.net | University of Maryland |
E | e.root-servers.net | NASA Ames Research Center |
F | f.root-servers.net | Internet Systems Consortium (ISC) |
G | g.root-servers.net | U.S. Department of Defense (DISA) |
H | h.root-servers.net | U.S. Army Research Lab |
I | i.root-servers.net | Netnod |
J | j.root-servers.net | Verisign, Inc. |
K | k.root-servers.net | RIPE NCC |
L | l.root-servers.net | ICANN |
M | m.root-servers.net | WIDE Project (Japan) |
任播(Anycast)技术
任播(Anycast)是一种网络通信技术,它允许多个服务器共享一个相同的IP地址,用户的请求会被自动路由到最近或最优的服务器节点,以提供服务。这种技术在根DNS服务器、内容分发网络(CDN)和负载均衡等场景中被广泛使用。
任播的核心思想
用一个通俗的类比来解释:
- 广播(Broadcast):像一个大喇叭广播消息,所有人都能听到。
- 单播(Unicast):像一对一的电话交流,特定的一个人接收消息。
- 任播(Anycast):像你拨打了一个服务电话(比如12345热线),后台有多个接线员,系统会把你分配给最近的或空闲的接线员。
在任播中,虽然多个服务器使用同一个IP地址,但每次请求只会到达其中一个节点。
常见误解:只有13台根服务器?
虽然只有13个逻辑标识符,但每个逻辑服务器由多台物理服务器组成,这些物理服务器分布在全球的多个地点。通过Anycast技术,用户查询会被路由到最近的物理服务器节点,提供高效的服务。
- 全球物理服务器数量:根DNS的物理服务器数量远超13个,实际上有上千台分布在全球。
- 为何只定义13个?
- 根DNS的协议采用IPv4,最初UDP报文的长度限制为512字节,每条根服务器的地址需要32字节,因此最多容纳13个逻辑服务器。