网络1️⃣基础知识
学习参考
- 入门:
- 书籍:图解 TCP/IP、图解 HTTP、网络是怎样连接的
- 文章:小林 coding 图解网络
- 视频:计算机网络微课堂(B 站)
- 进阶:
- 《计算机网络自顶向下方法》
- 《TCP/IP 详解》
- The TCP/IP GUIDE
1、发展阶段
计算机从 20 世纪 50 年代开始普及,
计算机网络的发展大致经历 7 个阶段。
-
批处理(Batch Processing):
-
程序员事先将用户程序和数据装入卡带/磁带。
-
计算机按照一定的顺序读取并批量处理。
-
-
分时系统(TSS, Time Sharing System):
-
多个终端与同一个计算机连接,允许多个用户同时使用一台计算机的系统。
-
具有多路性、独占性、交互性和及时性。
-
-
计算机间通信:
-
计算机通信技术诞生前,需要将数据保存到磁带、软盘等外部存储介质中,送到目的计算机才能实现数据转存。
-
计算机通信技术诞生后(计算机之间由通信线路连接),计算机之间能够轻松即时读取另一台计算机中的数据,极大缩短了数据传送时间。
-
-
计算机网络:
-
互联网普及:瘦身、多供应商
-
以互联网为中心:
-
安全连接:TCP/IP
2、相关概念 🔥
2.1、协议 🔥
协议(Protocol):计算机之间通过网络实现通信,事先达成的一种“约定”。
-
异构的计算机,只要遵循相同的协议就能实现通信。
-
协议有很多种,每种协议都明确界定了它的行为规范。
网络体系结构 协议 常见用途 TCP/IP IP, ICMP, TCP, UDP, HTTP, TELNET, SNMP, SMTP... 互联网、局域网 IPC/SPC (NetWare) IPX, SPX, NPC... 个人电脑局域网 AppleTalk DDP, RTMP, AEP, ATP, ZIP... 苹果产品的局域网 DECnet DPR, NSP, SCP 前 DEC 小型机 OSI FTAM, MOTIS, VT, CMIS/CMIP, CLNP, CONP - XNS IDP, SPP, PEP... 施乐公司网络
2.2、分层
每个分层都接收下一层提供的服务,并为上一层提供服务。
-
接口(Interface):上下层交互所遵循的约定。
-
协议(Protocol):同一层交互所遵循的约定。
2.3、地址
通信传输中,发送端和接收端都可以视为通信主体。
- 作用:唯一标识通信主体,且每层的协议使用不同的地址。
- 传输层:端口号,用于识别同一计算机中同时通信的不同应用程序。
- 网络层:IP 地址,用于寻找网络中互连的主机或路由器。
- 数据链路层:MAC 地址,用于寻找局域网中的主机。
- 特点:
- 唯一性:一个地址必须明确地标识一个主体对象。
- 层次性:在地址多的情况下,有利于高效寻址。
URI 和 URL
二者是包含关系,不是并列关系。
URI | URL | |
---|---|---|
全称 | 统一资源标识符 Uniform Resource Identifier |
统一资源定位符 Uniform Resource Locater |
含义 | 唯一标识资源 | 唯一标识资源及其在互联网中的位置 |
说明 | 抽象概念,能唯一标识资源的就是 URI | URI 的一种实现 |
实例 | www.abc.com |
www.abc.com/1.png |
2.4、网络组成
- 网络核心(骨干)
- 网络边缘
- 接入网
3、传输方式分类 🔥
3.1、有无连接
根据具体的通信内容来决定采用的传输方式。
-
面向连接:在通信传输前后,需要在收发主机之间专门建立和断开连接。(e.g. TCP)
-
无连接:不需要建立和断开连接。(e.g. UDP)
-
发送端可以随时发送数据,即使接收端不存在或无法接收数据。
-
接收端对于何时会收到哪里的数据是未知的,需要经常确认。
-
3.2、交换方式
3.2.1、电路 vs 分组
电路交换 | 分组交换 | |
---|---|---|
核心思想 | 独占性 | 分组交换、存储转发 |
源主机操作 | 源主机通过交换机与目标主机建立连接线路,发送完整数据 | 源主机将数据分成多个数据包(packet),分别发送给路由器 |
交换机作用 | 交换机负责数据的中转处理 | 分组交换机(路由器)负责连接通信线路将缓存到缓冲区,再转发给下一个路由器或目标主机 |
资源占用 | 连接建立期间,始终占用端到端资源 (其它计算机需等待处理结束后,才有机会使用该电路) |
无需占用端到端资源,多台主机共享通信线路 (但可能发生网络拥塞、分组丢失) |
3.2.2、图示
-
电路交换 vs 分组交换:
-
分组交换:
3.3、接收端数量
类型 | 接收端 | 场景示例 |
---|---|---|
单播(Unicast) | 1 对 1 | 早期固定电话 |
广播(Broadcast) | 广播域中的所有其它主机 | 电视播放 |
多播/组播(Multicast) | 特定组内的主机 | 电视会议 |
任播(Anycast) | 特定组内任意一台主机 | DNS 根域名解析器 |
4、标准化
标准化:使不同厂商生产的异构产品之间具有兼容性、便于使用的规范化过程。
协议的标准化,使所有遵循标准协议的异构设备能够实现通信。
4.1、ISO 和 OSI
ISO(International Organization for Standardization):国际标准化组织
OSI(Open System Interconnect):开放式系统互连
- ISO 制定了国际标准 OSI,对通信系统进行了标准化。
- OSI 参考模型:7 个分层。
- OSI 协议:参考 OSI 模型来定义协议和接口,使异构的计算机能相互通信的网络体系结构。
- 情况:
- OSI 模型仅作为参考,在实际运用中没有得到普及。
- 当今互联网广泛使用 TCP/IP 网络模型,由 IETF 建议并推进。
4.2、OSI 参考模型 🔥
OSI 参考模型将协议分为 7 层,比较理想化。
-
优点:
- 每个分层独立使用,某一层变化不影响其它层。
- 细分通信功能,界定每层的责任,易于实现每个分层的协议。
-
缺点:过分模块化、处理沉重、每个模块需要实现相似的逻辑处理。
4.3、通信示例
假设主机 A 要给主机 B 发送一封电子邮件。
-
发送方:
- 从上往下传输数据;
- 每层接收上一层的数据,并加上当前分层的协议所必需的首部信息,转发给下一层。
-
接收方:
-
与发送方相反,从下往上传输数据;
-
每层接收下一层的数据,将首部与数据分离,再转发给上一层。
-
最终将数据恢复为原状。
-
5、TCP/IP 🔥
5.1、含义
TCP/IP 也称网际协议族(Internet Protocol Suite)
不仅指 TCP 和 IP 两种协议,是对利用 IP 通信时需使用的协议群的统称。
- 传输控制协议:TCP(Transmission Control Protocol)
- 网际协议:IP(Internet Protocol)
5.2、发展史
-
军事通信技术
-
ARPARNET 诞生:分组交换技术
-
TCP/IP 诞生:可靠传输
-
UNIX 系统普及、互联网普及
-
商用互联网服务:ISP
5.3、分层模型 🔥
对比:
OSI:侧重通信协议必要的功能,在实际中并不常用。
TCP/IP:强调实现协议所需开发的程序。
5.3.1、TCP/IP 网络模型
应用层:工作在操作系统用户态,
传输层及以下:工作在操作系统内核态。
分层 | 作用 | 说明 | 常见协议 |
---|---|---|---|
应用层 | 为用户提供应用功能 | 无需关注底层数据传输 | HTTP、SMTP、FTP、TELNET、SSH、SNMP |
传输层 | 为应用层提供网络传输 | 基于端口号实现进程间通信 (进程到进程) |
TCP、UDP |
网络层 | 负责实际传输功能 | 基于 IP 地址转发分包数据 (端到端寻址、路由) |
IP |
数据链路层 | 为网络层提供链路级别传输 | 利用以太网的数据链路进行通信 (跳到跳) |
- |
TCP/IP 模型将网络划分为 4 层,但在实际应用中会划分为 5 层。
物理层:负责数据传输的硬件。
5.3.2、数据包 & 首部
数据包(Packet):在不同层的称呼不同。
- 应用层:消息/报文(message)
- 传输层:段(segment)
- 网络层:数据报(datagram)
- 数据链路层:帧(Frame)
- 物理层:比特(Bit)
首部:数据包从上往下流动时,每个分层都会对上层数据附加一个首部。
本层数据包 = 上层数据 + 本层首部
-
首部主要信息:
- 传输层:源端口号、目标端口号
- 网络层:源 IP 地址、目标 IP 地址、协议类型(i.e. 传输层协议)
- 数据链路层:源 MAC 地址、目标 MAC 地址、以太网类型(i.e. 网络层协议)
-
包的最后还有以太网包尾。
5.4、通信示例
假设主机 A 要给主机 B 发送一封电子邮件。
-
发送方:从上往下传输数据,每层都会附加一个首部。
- 应用层:编码处理,在发送邮件的时刻建立 TCP 连接。
- 传输层:建立连接、发送数据、断开连接
- 网络层:根据路由控制表,将数据包发送给下一跳路由器或主机。
- 数据链路层
- 物理层
-
接收方:与发送方相反