跳到主要内容

基本结构与协议

网络(Network)是 20 世纪的一个重要发明,其使得计算机可以互相连接,提供了无限的可能性。

概念 & 术语

有必要先理清一些概念。

图自:https://blog.csdn.net/fiberroad/article/details/139987286

当我们讨论 “网络” 时,想到的应该是由点、边构成的图,它们有专用术语:

  • 网络节点:可以是电脑、手机、路由器、基站、服务器等,总之能接入网络的计算机都算。
    • 路由器:一种传递网络数据的设备,可以实现分发、中继等作用。路由器通常不会修改传递的数据流。
    • 服务器:提供网络服务的计算机。
  • 网络链路:例如网线、光纤、无线链路,起到连接网络节点的作用。
  • 网络协议:规定如何传输数据。

还有一些较次要的术语:

  • 数据包:在网络上传递的一组数据。
  • 流量:有时可以和 “数据包” 互换使用。

谁来提供网络服务?

几台计算机连接起来,互相可以看到其他人的文件,这叫局域网,整个城市的计算机都连接起来,就是城域网,把城市之间连接起来的网就叫骨干网。这些骨干网是国家批准的可以直接和国外连接的互联网。其他有接入功能的ISP(互联网服务提供商)想连到国外都得通过这些骨干网。

骨干网(Backbone Network)是用来连接多个区域或地区的高速网络。每个骨干网中至少有一个和其他骨干网进行互联互通的连接点。不同的网络供应商都拥有自己的骨干网,用以连接其位于不同区域的网络。

摘自:介绍国内四大骨干网与十大ISP服务商-CSDN博客

  • 局域网:如家庭、学校、单位内的计算机网络。
  • 城域网:顾名思义,就是一个城市的计算机网络。
  • 骨干网:连接不同城市的网络,并且可以和国外连接。

目前国内有十大 ISP(互联网服务提供商),比如 CHINANET(中国公用计算机互联网)、CMNET(中国移动互联网)等。下面是 CERNET(中国教育与科研网)的结构图(别的找不到好看的图,就放这个凑合凑合):

图自 https://blog.csdn.net/weixin_48419914/article/details/124950407

cmd 中,可以用如下命令查看到指定目标的路由节点:

tracert -4 www.bilibili.com

IP 地址

简单来说,IP地址就像是互联网上每台设备的“家庭住址”。它是一串唯一的数字标识符,用于在庞大的网络世界中准确地找到并定位某台设备(如电脑、手机、服务器、智能家居设备等),从而实现设备之间的通信。

由 DeepSeek 总结,供参考

目前使用的 IP 地址主要有两种:IPv4 和 IPv6。

IPv4 地址形如:139.159.241.37,理论上有 43 亿个不同的地址,现在已经耗尽。

IPv6 地址形如:240e:97d:10:1402:0:1:1:40,理论上有 103810^{38} 个地址,根本用不完。

IPv4 和 IPv6 网络

那么为什么我们仍在使用IPv4?

问题就在于IPv4和IPv6无法相互通信。这就是为什么IPv6的集成和适配很复杂。大多数网站或应用程序仅支持IPv4类型的IP地址。想象一下突然更改每个设备的IP地址。用户将无法访问大多数网站或应用程序,而我们在互联网上将陷入一片混乱。从旧的IP类型转换为新的IP类型的过程应分步完成。例如,这两个协议能够并行运行。此功能称为**双重堆栈**。它允许用户同时访问IPv4和IPv6内容。

摘自:IPv4和IPv6有什么区别? - 知乎

目前的互联网,IPv4 和 IPv6 并存,并没有完全普及 IPv6。上面提到 IPv4 地址已经耗尽,那我们为什么还能正常地使用 IPv4 网络呢?

答案是网络地址转换(NAT)。我们上网时,并不是每个人都有自己的专属 IP 地址,而是一个区域内共用一个 IP 地址,这个地址由运营商的 NAT 分配。

内网 IP

内网IP,也称为私有IP地址,是专门为在内部网络(如家庭、公司或校园网络)中使用而保留的IP地址范围。这些地址在整个公共互联网上不具备唯一性,也不能被直接路由。

你可以把它想象成:

  • 公网IP:就像你家的街道门牌号(例如:人民路123号)。这个地址是全球唯一的,快递员和访客凭借这个地址可以从世界上任何地方找到你的家。
  • 内网IP:就像你家里每个房间的编号(例如:101房、102房)。这个编号只在你的家庭内部有效。如果你对外人说“请把包裹送到101房”,而没有提供“人民路123号”这个前提,快递员是根本无法投递的。

由 DeepSeek 总结,供参考

主机名

IP 地址都是一串数字(IPv6 是一串 16 进制数字),不好记。

一般的网站都会有自己的主机名,比如 bilibili.combaidu.com。我们访问这些网站时,先通过 DNS 解析主机名对应的 IP 地址是什么,再通过 IP 地址访问。(粗略地说)

网络协议

如果只有网线,并不能传输数据。我们还需要一定的网络协议。网络协议是一种 “规则” 或 “语言”,规定了使用网络传递数据的方法。

网络协议分层

网络协议分为若干层级,底层的协议最先建立,然后依次向上建立协议。

这样做的目的是:层层抽象,隐藏细节。例如,假如我要连接某网站,我并不关心这条网络路径上的网线用的是什么插头(这个细节对我来说毫无必要)。

图自 https://blog.csdn.net/weixin_42259823/article/details/102577447

这些协议是这样依次建立的:

  • 物理层 & 数据链路层:保证了你的计算机和目标计算机(比如目标网站的服务器)之间有(至少一条)可用的网络通路。简单来说就是网线是通的。

    比如光纤、网线、路由器(网络交换机)、网卡就属于这一层。

  • 网络层:维持基本的网络连接,简单来说就是我发数据,对面可以接收。这一层主要有两个协议:

    • IP(网际协议):把你的数据传输到目标计算机。
    • ICMP(互联网控制消息协议):用于传递控制消息,例如网络通不通、主机是否可达、路由是否可用等。
    • ARP(地址解析协议):根据目标的IP地址,查询其对应的 MAC地址(物理地址,即网卡硬件地址)。每台物理设备的 MAC 地址是独一无二的。
  • 传输层:规定如何传输数据。

    • TCP(传输控制协议):所谓 “分组依次传输” 的协议,传输前会先 “握手”,传输完成会回复 “收到”。
    • UDP(用户数据报协议):只管发送,不关心对方是否收到。
  • 应用层:提供具体服务,是面向用户的层。这一层百花齐放,常见的有:

    • HTTP / HTTPS:常见的互联网网站使用这两个协议传输网页数据。
    • DNS:把主机名翻译成 IP 地址。