计网学习笔记(一):认识网络,一些凌乱的名词与概念

327 阅读12分钟

计网基本概念

网络

计算机网络,简称网络,是指容许节点彼此交换信息。处于网络中的任意两个设备,彼此可以通信。

若干「节点」能够彼此交换信息,这些节点就构成了网络。

网络包括了「节点」和「数据链路」

  • 节点:包括主机,网关,路由器,交换机等等
  • 数据链路:用于收发数据的工具和介质

传输介质有无线和有限两类:

  • 无线:包括wifi,蓝牙,NFC
  • 有线:包括光纤,双绞线等

网络的概念有点像「文件夹」,一个文件夹内可以包含文件(节点),也可以包含文件夹(子网),可以理解成一种组合模式,两个小网络彼此互联,就构成了一个更大的网络。

主机

主机其实有两个意思,「电脑主机」和「网络主机」的简写都叫主机。

  • 电脑主机:机箱及其内部的所有硬件的总和
  • 网络主机:是已连接到一个计算机网络的一台电子计算机或其他设备。

在讨论计算机网络的文章中提到的主机一般都指代网络主机

端口

软件端口

软件端口用于标识接受网络IO的进程。

一个端口号使用16位无符号整数(unsigned integer)来表示,其范围介于0与65535之间。

HTTP默认80,HTTPS默认443。

硬件端口

即交换机等设备上的物理接口。

互联网,因特网

互联网的正式名称是 Internet,即互联网 = 因特网。

互联网是一个逻辑上的单一巨大国际网络,就是一个特殊(可能是最大的)的广域网。

我们上网上的通常是互联网的一个子集:万维网www,尽管互联网 90% 以上的部分都属于万维网。除了万维网,还有电子邮件,SSH安全登录等等,属于互联网而不属于万维网。

它们的区别是:应用层协议不同。

万维网:World Wide Web

万维网全部基于HTTP协议,是你每天访问网页的载体。

骨干网

一个拥有许多办公地点的大公司可能会有一个骨干网,需要将所有的办公地点联系在一起。

中国互联网骨干网,我们能接触的基本就三巨头:

中国电信,中国联通,中国移动,它们分别有3/2/2张骨干网。

常见组网技术

组网技术:即如何将若干设备互联形成一个网络。

下面介绍两个适用于非常近距离的,也是非常贴近生活的:

近场通信:NFC

NFC,Near-field communication,又称近距离无线通信近距离通信

NFC的通信距离在厘米级别,可以充当身份证,在公交,地铁的出进站支付也广泛应用。

蓝牙:Bluetooth

蓝牙也是一个近距离的无线通信技术标准,但距离比NFC远,通常在几米的范围。

一个设备最多与其它七台设备使用蓝牙进行连接。一个蓝牙子网最大的设备数量为8个。

有线局域网

有线局域网包括三类:以太网,令牌环,光纤分布式数据接口

1、以太网:Ethernet

Ethernet,以太网。以太网是最常用的局域网组网方式。不同以太网标准的传输介质可能不同。

因为以太网太过流行,将 有线局域网的组网方式与以太网划等号 在大多数情况都是成立的。

以太网与TCP/IP网络模型中的网络接口层息息相关,后文会深入分析以太网。

下面两个名词了解以下即可,最大的作用可能是通过对比让你能够记住以太网的概念:是个组网方式,是种技术。

2、令牌环

令牌环的优点是:传输速率高,作为对比,一个4M的令牌环网络和一个10M的「以太网」数据传送率相当

但缺点也很明显:令牌环网络不可复用,导致网络利用率低下。

令牌环已经基本被以太网取代了。

3、光纤分布式数据接口

FDDI,Fiber Distributed Data Interface,光纤分布式数据接口,使用光纤作为传输介质。最大连接约为200公里,远高于以太网,因此FDDI也可以算是「城域网」。FDDI基于令牌环协议,但派生自IEEE 802.4协议。

FDDI虽然很好,但造价过于昂贵了,因此实际上,「千兆快速以太网」是更加成熟的方案。

无线局域网

WLAN,无线局域网,无线局域网现在基本要和Wi-Fi划上等号了。从学习计网的角度来说,Wi-Fi不需要重点学习

无线与有线的对比

速度

无线的速度通常更慢,理论上限也只有1GB/s。

稳定性

无线局域网是依靠无线电波进行传输,任何障碍物都会影响电磁波的传输。

安全性

无线电波的信号非常容易监听,会造成信息泄漏。

便捷

有线局域网,无论是布线,还是接入,都非常麻烦。

无线局域网,在无线信号覆盖区域内的任何一个位置都可以轻易接入网络。

网络理论模型

TCP/IP四层模型

20210127143703166.png

TCP/IP是简化版本的OSI。数据链路层+物理层在这个模型中就叫网络接口层。

OSI七层模型

OSI,Open System Interconnection Model,开放式系统互联模型

2021010409370574.gif

为什么会有两种模型

TCP/IP 发明于 1970 年代,当时除了它还有很多其他的网络协议,整个网络世界比较混乱。因此需要统一。

于是国际标准组织(ISO)定义了OSI七层模型,但这只是个理论模型,不是强制标准。

因为TCP/IP 等协议,已经流行起来了,没办法完全统一。

当然这种说法只是“理论上”的层次,并不是与现实完全对应。

OSI 的分层模型在四层以上分的太细,而 TCP/IP 实际应用时的会话管理、编码转换、压缩等和具体应用经常联系的很紧密,很难分开。例如,HTTP 协议就同时包含了连接管理和数据格式定义。

网段:物理层 or 网络层

严格的学术定义

学术定义的「网段」,是这样的:

两个设备处于同一个网段,是指:两个设备共用同一物理层。使用中继器集线器等设备扩展,仍属于一个网段。

而上升到交换机,路由器,它们就不属于同一个网段,这些网络设备已经超出了物理层。

在这个定义下,网段不等于子网。(即IP地址中的网络地址相同并不代表处于同一个网段)

广传的计网概念:子网

而在计算机网络科技领域中,「网段」通常是指:子网

子网:就是在网络层,通过路由器和网关等设备分隔开的,小规模的网络。在学习IP协议的时候,我们就会知道:如何通过IP地址与子网掩码求得网络号,子网号。

例如IP为 192.168.0.1 ~ 192.168.0.254 的设备就位于掩码 255.255.255.0 的同一子网中,这句话经常被说成“位于192.168.0.x 网段中”。

从IP格式的角度,子网就是:「网络号」+「子网号」+「末尾补零至32位」,还是上面这个例子,网络号是192.168,没有子网号,剩余位补零,转为十进制,子网就是:192.168.0.0。而网段在计网中就指代子网。

URL和URI

URI,Uniform Resource Identifier,中文名:统一资源标识符,唯一地标记互联网上资源。

URL,Uniform Resource Locator,中文名:统一资源定位符,URL是URI的一个子集。

实际上,还有个东西叫URN,Uniform Resource Name,中文名:统一资源命名符。

URI 包含了 URL 和 URN。

通常已经不需要严格区分URI和URL了。

一个完整的URI包含了协议名,主机名(IP或域名),路径,查询参数,如下图所示:

image-20231005095710949.png

?:URI查询参数

协议名+主机名+路径,已经能够唯一定位资源了,为什么还要query呢?query是为了满足我们额外的要求的。

比如要查询某件商品,查询到数万件,服务器不可能将全部的查询结果返回,而是需要分页,那就需要query来表达客户端的分页信息。

query以?开头,每个参数以key - value的形式保存,用&间隔。

http://www.chrono.com:8080/11-1?uid=1234&name=mario&referer=xxx

#:锚点

锚点:锚点是超链接的一种,通过锚点可以在同一个web页面内迅速定位,从而跳转到指定的位置。

实际上,在URI查询参数query之后,往往还跟着#,如下所示:

https://juejin.cn/post/7278983339544018956#heading-9

这是掘金的一篇文章,通过点击目录,URI就自动加上了#。

锚点只供浏览器定位使用,浏览器永远不会把带“#fragment”的 URI 发送给服务器。

特殊的本地URI

URI也可用来标记本地磁盘上的一个资源,是一种特殊的URI,它的协议用 file ,后面跟本地路径,以一个 / 开头,没有主机名(file允许省略主机名,默认是本机 localhost。)

file:///D:/http_study/www/

一个URL我们俗称”网址“,差异不大,所以通常不会做严格的区分。

Chrome浏览器中,直接将本地文件拖入地址栏,自动显示文件的URI,如下:

file:///C:/Users/xxx/Desktop/xxxx.docx

URI编码

URI 里只能使用 ASCII 码,当然URI也提供了转义字符 %

URI直接把非 ASCII 码或特殊字符转换成十六进制字节值,然后前面再加上一个“%”。

例如,空格被转义成“%20”,“?”被转义成“%3F”。而中文、日文等则通常使用 UTF-8 编码后再转义。

域名

IP地址虽然比 MAC 的 16 进制数要好一点,但还是难于记忆和输入,因此有了域名。

域名:是一个有层次的结构,是一串用“.”分隔的多个单词。

最左边的是主机名,通常用来表明主机的用途,比如开头的“www”表示提供万维网服务

硬件相关

网卡:NIC

NIC,Network Interface Card,网卡。也叫网络适配器。

网卡通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片,网卡有自己的MAC地址。

集线器:HUB

集线器工作在物理层。集线器会将自己收到的每一个字节,都复制到其他端口上去。

正因为这个特性,会造成许多不必要的数据传输,因此「以太网」,一种局域网组网技术,并没有采用集线器连接设备,而是采用了交换机。

网桥:br

网桥,本质上可以理解为两个网线口的交换机,正好可以把两台电脑给连起来,也叫桥接。而交换机,则是多网线口的网桥,可以把多台电脑给连(桥接)起来。其他功能方面,大差不差,不必太过纠结。

交换机

交换机有若干个端口,通常是几十个,这些端口可以通过网线物理连接到某一个主机,或是另一台交换机,从而构成一个局域网,也可以连接到一个路由器从而跨网通信。通过维护一张交换机表,表项为「MAC地址 - 交换机端口 - 时间」,来实现「聪明的通信」

光猫

光猫就是光纤调制解调器。但现在一般的光猫都可以用作路由器(路由默认),可以使用桥接模式,然后自己买路由器。光猫更接近生活,而在传统的计网学习中接触到的不多。

路由器

路由器的功能:就是使得跨网段的设备能够彼此通信。

当今的大多数多用户系统,包括几乎所有的Unix系统,都可以配置成一个路由器。

主机和路由器都有一张路由控制表,表项为:「目标地址-下一跳的IP地址-标志」

  • 单臂路由器:在路由器的一个物理接口上通过配置多个子接口的方式,实现多个Vlan之间的互通。
  • 边缘路由器:将设备连接到互联网的路由器。
  • 核心路由器:如在ISP网络中,只负责与其他路由器之间传递数据。
  • 无线网络路由器:通过无线方式(如wi-fi)连接终端设备,有的电信运营商为客户安装宽带时会提供含有Wi-Fi的路由器。

网关

网关的工作机制与代理非常相似。

网关是路由器的一个接口。如果目的IP跟本机IP不在同一个局域网下,那么会去获取默认网关的MAC地址,这里就是指获取家用路由器的MAC地址。然后把消息发给家用路由器,让路由器发到互联网,找到下一跳路由器,一跳一跳的发送数据,直到把消息发到目的IP上,又或者找不到目的地最终被丢弃。

参考文档

维基百科

因特网,以太网,局域网这些词到底代表什么,都是什么意思

透视HTTP协议 - 罗剑锋

趣谈网络协议 - 刘超

全解网络协议