网络1️⃣基础知识

学习参考

  • 入门
    • 书籍:图解 TCP/IP、图解 HTTP、网络是怎样连接的
    • 文章小林 coding 图解网络
    • 视频:计算机网络微课堂(B 站)
  • 进阶

1、发展阶段

计算机从 20 世纪 50 年代开始普及,

计算机网络的发展大致经历 7 个阶段。

  1. 批处理(Batch Processing):

    • 程序员事先将用户程序和数据装入卡带/磁带。

    • 计算机按照一定的顺序读取并批量处理。

      image-20220224182424520

  2. 分时系统(TSS, Time Sharing System):

    • 多个终端与同一个计算机连接,允许多个用户同时使用一台计算机的系统。

    • 具有多路性、独占性、交互性和及时性。

      image-20220224182434242

  3. 计算机间通信

    • 计算机通信技术诞生前,需要将数据保存到磁带、软盘等外部存储介质中,送到目的计算机才能实现数据转存。

    • 计算机通信技术诞生后(计算机之间由通信线路连接),计算机之间能够轻松即时读取另一台计算机中的数据,极大缩短了数据传送时间。

      image-20220224182446512

  4. 计算机网络

    image-20220224182458091

  5. 互联网普及:瘦身、多供应商

    image-20220224195559192

  6. 以互联网为中心

    image-20220224195611098

  7. 安全连接: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):同一层交互所遵循的约定。

    image-20220224184435763

2.3、地址

通信传输中,发送端和接收端都可以视为通信主体

  1. 作用唯一标识通信主体,且每层的协议使用不同的地址。
    • 传输层:端口号,用于识别同一计算机中同时通信的不同应用程序。
    • 网络层:IP 地址,用于寻找网络中互连的主机或路由器。
    • 数据链路层:MAC 地址,用于寻找局域网中的主机。
  2. 特点
    • 唯一性:一个地址必须明确地标识一个主体对象。
    • 层次性:在地址多的情况下,有利于高效寻址。

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)

    • 发送端可以随时发送数据,即使接收端不存在或无法接收数据。

    • 接收端对于何时会收到哪里的数据是未知的,需要经常确认。

      image-20220224201331058

3.2、交换方式

3.2.1、电路 vs 分组

电路交换 分组交换
核心思想 独占性 分组交换、存储转发
源主机操作 源主机通过交换机与目标主机建立连接线路,发送完整数据 源主机将数据分成多个数据包(packet),分别发送给路由器
交换机作用 交换机负责数据的中转处理 分组交换机(路由器)负责连接通信线路将缓存到缓冲区,再转发给下一个路由器或目标主机
资源占用 连接建立期间,始终占用端到端资源
(其它计算机需等待处理结束后,才有机会使用该电路)
无需占用端到端资源,多台主机共享通信线路
(但可能发生网络拥塞、分组丢失)

3.2.2、图示

  • 电路交换 vs 分组交换

    image-20220224202449552

  • 分组交换

    image-20220224183748232

3.3、接收端数量

类型 接收端 场景示例
单播(Unicast) 1 对 1 早期固定电话
广播(Broadcast) 广播域中的所有其它主机 电视播放
多播/组播(Multicast) 特定组内的主机 电视会议
任播(Anycast) 特定组内任意一台主机 DNS 根域名解析器

image-20220224203020001

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 层,比较理想化。

  • 优点

    • 每个分层独立使用,某一层变化不影响其它层。
    • 细分通信功能,界定每层的责任,易于实现每个分层的协议。
  • 缺点:过分模块化、处理沉重、每个模块需要实现相似的逻辑处理。

    image-20220224200602627

4.3、通信示例

假设主机 A 要给主机 B 发送一封电子邮件。

  • 发送方

    • 从上往下传输数据;
    • 每层接收上一层的数据,并加上当前分层的协议所必需的首部信息,转发给下一层。
  • 接收方

    • 与发送方相反,从下往上传输数据;

    • 每层接收下一层的数据,将首部与数据分离,再转发给上一层。

    • 最终将数据恢复为原状。

      image-20220224201142691

5、TCP/IP 🔥

5.1、含义

TCP/IP 也称网际协议族(Internet Protocol Suite)

不仅指 TCP 和 IP 两种协议,是对利用 IP 通信时需使用的协议群的统称。

  • 传输控制协议:TCP(Transmission Control Protocol)
  • 网际协议:IP(Internet Protocol)

image-20220224204950099

5.2、发展史

  1. 军事通信技术

  2. ARPARNET 诞生:分组交换技术

  3. TCP/IP 诞生:可靠传输

  4. UNIX 系统普及、互联网普及

  5. 商用互联网服务:ISP

    image-20220224204727572

5.3、分层模型 🔥

对比

  • OSI:侧重通信协议必要的功能,在实际中并不常用。

  • TCP/IP:强调实现协议所需开发的程序

5.3.1、TCP/IP 网络模型

应用层:工作在操作系统用户态,

传输层及以下:工作在操作系统内核态。

分层 作用 说明 常见协议
应用层 为用户提供应用功能 无需关注底层数据传输 HTTP、SMTP、FTP、TELNET、SSH、SNMP
传输层 为应用层提供网络传输 基于端口号实现进程间通信
进程到进程
TCP、UDP
网络层 负责实际传输功能 基于 IP 地址转发分包数据
端到端寻址、路由)
IP
数据链路层 为网络层提供链路级别传输 利用以太网的数据链路进行通信
跳到跳
-

TCP/IP 模型将网络划分为 4 层,但在实际应用中会划分为 5 层。

物理层:负责数据传输的硬件。

image

5.3.2、数据包 & 首部

数据包(Packet):在不同层的称呼不同。

  • 应用层:消息/报文(message)
  • 传输层:段(segment)
  • 网络层:数据报(datagram)
  • 数据链路层:帧(Frame)
  • 物理层:比特(Bit)

首部:数据包从上往下流动时,每个分层都会对上层数据附加一个首部。

本层数据包 = 上层数据 + 本层首部

  • 首部主要信息

    • 传输层:源端口号、目标端口号
    • 网络层:源 IP 地址、目标 IP 地址、协议类型(i.e. 传输层协议)
    • 数据链路层:源 MAC 地址、目标 MAC 地址、以太网类型(i.e. 网络层协议)
  • 包的最后还有以太网包尾

    image-20220224235056669

5.4、通信示例

假设主机 A 要给主机 B 发送一封电子邮件。

  • 发送方从上往下传输数据,每层都会附加一个首部。

    1. 应用层:编码处理,在发送邮件的时刻建立 TCP 连接。
    2. 传输层:建立连接、发送数据、断开连接
    3. 网络层:根据路由控制表,将数据包发送给下一跳路由器或主机。
    4. 数据链路层
    5. 物理层
  • 接收方:与发送方相反

    image-20220224233752624

posted @ 2022-02-24 23:52  Jaywee  阅读(342)  评论(0编辑  收藏  举报

👇