计算机网络–概述

前言

  • 国庆好无聊啊,小熊饼干接待完朋友、过完生日之后实在是没有什么事了,但是又不想更新Python,所以他决定开始学习计网
  • 本栏目仅仅是笔者自学内容,与北京航空航天大学的计网无关,我不是我没有

什么是计网

  • 硬件
    • 主机,又称端系统可以简单理解我们日常使用的电脑、服务器、手机、各类智能嵌入式系统等,他们处于计算机网络的边缘,所以称为端系统
    • 通信链路,像网线、电缆、光纤等物理连接设备,例如可以将两台电脑使用网卡连接,就组成了一个简单的计算机网络
    • 通信设备,端系统向计算机网络核心传递信息的中转站,例如集线器、交换机、路由器,通过他们我们可以将若干简单的计算机网络组成复杂的计算机网络
  • 软件
    • 可以是在主机运行的应用程序,例如微信、QQ、网盘等,方便用户使用,实现资源共享的程序
    • 可以是在通信设备中的控制程序,用以控制通信设备传输信息
  • 协议
    • 规定计算机网络中的通信规则,利用这种规则封装传递的信息或者解构信息
  • $Attention$
    • 使用集线器可以简单连接某几台设备,缺点是可能导致发送信息之间的冲突
    • 使用交换机则不会出现信息冲突,不过交换机一般用于构建较小的计算机网络
    • 使用路由器可以构建计算机网络核心,即各种通路

举一个快递的例子(似乎所有教材都会有一个快递的例子):快递相当于传递的信息;各个快递终点站、快递驿站相当于端系统;公路、高速、立交桥相当于各种通信链路;快递中转站及仓库可以理解为通信设备;快递公司的运行规则和交通规则相当于协议


计网的功能

  • 数据通信
    • 实现计算机(端系统)之间的数据传输,是最基本、最重要的功能
  • 资源共享
    • 请求服务器处理、网盘、分享视频、应用商店等
  • 分布式处理
    • 将某个复杂任务分配给网络中多台计算机处理,提高任务处理效率
  • 提高可靠性
    • 网络中各台计算机互为替代,数据冗余备份等操作
  • 复杂均衡
    • 网络中多台计算机共同分担繁杂工作,如游戏服务器

计网通信

计网通信方式

  • 因为在计算机之前已经有电话与发报机等可以传递信息的工具,那么计算机通信方式是否可以参考“前辈”的经验呢?答案是肯定的

电路交换技术

  • 曾经的固定电话是通过电话线连接到电路交换器上的,在指定通信方与被通信方之后通过人工或者机器的方式连接实际物理电路,传递消息
    • 建立连接(尝试占用资源)
    • 通信(持续占用通信资源)
    • 断开连接(归还占用资源)
      电路交换示意图
  • 优缺点分析
    • 优点
      • 建立了专用的物理电路,两个用户始终占用线路资源,数据传输速度快
    • 缺点
      • 建立/释放连接需要额外的时间开销,等待通信时间可能过长
      • 线路被通信双方占用,利用率差
      • 线路的分配灵活性差(线路单一)
      • 不支持差错控制,无法更改或者发现通信的错误
  • 由于电路交换技术适合少频次大量数据的场景,一般的计算机通信常常是高频次少量数据的传递,所以计算机通信方式不适合直接沿用电路交换技术(为什么是直接沿用呢?)

报文交换技术

  • 发报机通过线路连接到报文转发机上,通过对信息头部加入地址信息,由转发机自动向目的地转发,而不需要实际地接线
    报文交换示意图
  • 优缺点分析
    • 优点
      • 不用占用通信双方中地资源,利用率高
      • 无需建立连接,线路可以灵活分配
      • 交换节点时可以“差错控制”
    • 缺点
      • 报文长度不定,报文交换机地存储空间难以规定大小
      • 长报文存储转发的时间开销大,缓存开销大
      • 长报文的纠错困难,重发的代价大
  • 由于对长报文的传输支持困难,所以计算机通信方式也没有沿用报文交换技术,而是在报文交换技术的基础上改进而成的分组交换技术

分组交换技术

  • 将长报文分为若干段,称为分组(Packet)然后我们的传递最小单位由报文变成分组
    分组交换示意图
  • 优缺点分析
    • 优点
      • 同报文交换技术
      • 存储转发的时间开销小,缓存开销小
      • 不易出错,且重传的代价小
    • 缺点
      • 控制信息占比增加
      • 存储转发时延依旧存在
      • 发送的各个分组存在顺序问题,可能导致混乱

虚电路交换技术

  • 对于分组交换技术可能出现的顺序问题,虚电路技术提供了一种方式解决(沿用了电路交换技术的策略)
    • 建立连接(没有实际电路,仅作规划路径使用)
    • 通信(分组按照顺序以构建好的路线传递,通信双方不用占用线路)
    • 释放连接
      虚电路交换示意图
  • 优缺点分析
    • 优点
      • 同分组交换技术优点
    • 缺点
      • 同分组交换技术缺点

性能分析

  • 对于上述电路交换技术、报文交换技术、分组交换技术进行性能的分析
    时序图
    性能分析对比图

计网分类

范围

  • 广域网(Wide Area Network)
    • 范围大,跨省、跨国、跨洲
  • 城域网(Metropolitan Area Network)
    • 范围较大,一个或几个相邻的城市
    • 通信技术采用“以太网技术”,常并入局域网范畴讨论
  • 局域网(Local Area Network)
    • 范围稍小,学校/企业/家庭等
    • 通信技术采用“以太网技术”
  • 个域网(Personal Area Network)
    • 范围小,家庭/个人
    • 常使用无线技术将个人设备连接起来的网络,因此也被称为无线个域网(WPAN)

传输技术

  • 广播式网络
    • 计算机发送数据分组时,广播范围内的所有计算机都会收到该分组,通过检查分组地址决定是否接受分组
  • 点对点网络
    • 精确地发向某个计算机

拓扑结构

  • 总线形结构
    • 数据采取广播式技术,存在“总线争用”的现象
    • 集线器连接的设备
  • 环形结构
    • 数据广播式传播但是,可以通过“令牌”指定当前发送数据的计算机,即拿到“令牌”者可以控制总线的数据,从而解决“总线争用的问题”
    • 令牌环网
  • 星形结构
    • 由中央设备实现各个设备的“点对点”传输,不存在“总线争用”的现象
    • 以太网交换机连接的设备
  • 网状结构
    • 数据通过各个中间节点逐一存储转发,实现数据“点对点”的传输
    • 由众多路由器构建的广域网

使用者

  • 公用网
    • 公开的网络,只要向ISP付钱即可
  • 专用网
    • 内部使用网络,例如,国家总局、银行等的内网

计网性能指标

  • 信道
    • 即信息传输的通道,一般而言我们所说的通信线路往往对应着一个发送信道和一个接收信道
  • 速度相关
    • 速率,连接在网络的节点的数据沿着信道传输的速率,也称作数据传输速率,单位一般为(bps Kbps Mbps),这里的K是 $10^3$,与计算机组成不同
    • 带宽
      • 含义一,表示一个信道所能传输数据的最大速率,即最高数据率,可以有上行带宽和下行带宽
      • 含义二,表示某个信道允许通过的信号频带范围,单位是Hz,两个含义其实有某些关系哦
      • 节点间通信的最高速率由带宽和节点性能共同限制
    • 吞吐量
      • 单位时间通过某个网络的实际数量,所以要计算上行和下行速率
  • 时延相关
    • 各种时延
      • 发送时延(传输时延)
        • 将数据全部传入信道的时间($ \frac{M_{数据大小}} {V_{数据传输速率}} $)
      • 传播时延
        • 数据在信道上传输的时间($ \frac{L_{信道长度}} {V_{信号传播速率}} $)
      • 处理时延
        • 路由器处理数据的时间(分析首部、查找存储转发表)
      • 排队时延
        • 数据入队和出队花费的时间
          加油站时延示意图
    • 时延带宽积
      • $ X_{时延带宽积} = T_{传播时延} \times M_{带宽} $
    • 往返时延(Round-Trip Time)
      • 从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间
      • 例如,游戏时延即“手机-服务器”的往返时延RTT
  • 信道利用率
    • $ \frac{T_{有数据通过}} {T_{有数据通过} + T_{没有数据通过}} $
    • 信道利用率不能太低,会浪费资源
    • 信道利用率不能太高,容易导致网络拥塞

计网分层

  • 就如快递链一样,计算机网络中实现传递数据也是需要实现许许多多的功能,例如封装数据、校验数据、解析数据等等各种复杂的功能
  • 这里给出一些完整功能,可以先尝试理解
    • 差错控制:确保数据在传输过程中不会出错
    • 流量控制:发送端发送数据的速率必须比接收端的接收速率小,来得及接收
    • 分段与重装:发送端将要发送的数据分解为更小的单位,并且在接收端将其还原
    • 复用与分用:发送端几个高层会话共同使用一条低层的连接,然后在接收端进行分用
    • 连接建立与释放:交换数据前先建立一条逻辑连接,数据传输结束后释放
  • 采取分层的策略可以将问题分为各种小问题,以局部实现的策略实现

常见分层结构

  • OSI模型
    • 考虑的功能更加全面,会出现统一功能出现在多个层面
    • 法律上的标准
    1. 物理层
    2. 数据链路层
    3. 网络层
    4. 传输层
    5. 会话层
    6. 表示层
    7. 应用层
  • TCP/IP模型
    • 结构更加简单,同一功能只会出现在某一个层面
    • 事实上的标准
    1. 网络接口层
    2. 网络层
    3. 传输层
    4. 应用层
  • 教学模型
    1. 物理层
    2. 数据链路层
    3. 网络层
    4. 传输层
    5. 应用层
      各模型示意图
  • 实体
    • 同处于某一层的活动元素(硬件与软件)被称为第n层的实体,不同节点上的同一层被称为对等层,同一层的对应实体被称为对等实体
  • 协议
    • 对等实体的通信规则,约束了对等实体之间的数据传输的要求
  • 接口
    • 同一节点相邻两层的实体交换信息的逻辑通道,又称为服务访问点(Service Access Point,SAP)
  • 服务
    • 同一节点相邻两层中下层为上层提供的功能调用(这里层数小的在下,层数大的在上)

数据传输过程

  • 原始数据通过多层处理为物理信号传输,在通过多层反处理转换回数据
    数据传输示意图
  • 数据定义
    • 协议数据单元(Protocol Data Unit)
      • 对等层之间传递的消息,第n层的协议数据单元写作n-PDU
    • 服务数据单元(Service Data Unit)
      • 为完成这一层实体而从上一层传入的数据,第n层的服务数据单元写作n-SDU
    • 协议控制信息(Protocol Control Infomation)
      • 控制协议操作的信息,第n层的协议控制信息写作n-PCI
    • 三者之间的关系
      • n-PDU = n-PCI + n-SDU
      • n-SDU = n-1-PDU
  • 协议定义
    • 语法
      • 数据与控制信息的格式。例如协议控制信息部分占几个字节、每个字节是什么含义、协议的数据部分最多有多少字节
    • 语义
      • 需要发送何种控制信息,完成何种动作及作出何种应答,例如发送完数据后接收方是否需要“应答”,以及应答的种类(传输成功、传输失败)
    • 时序
      • 执行各种操作的条件、时序关系等,即事件实现顺序的详细说明,例如发送方发送数据后接收方需要立即应答,如果发送方在 10 秒内没有应答,发送方会再次发送数据

OSITCP/IP

OSI模型详述

  • 常见网络设备功能层次
    • 主机:#1 ~ #7
    • 集线器:#1
    • 交换机:#1 ~ #2
    • 路由器:#1 ~ #3
    • 物理传输媒体:#0
  • 各层详解
    1. 物理层
      • 实现相邻节点bit传输
      • 定义电路接口参数,形状、尺寸、引脚数等
      • 定义传输信号含义,例如 5v 代表 1,1v 代表 0,每bit传输的持续时间为 0.1ms
    2. 数据链路层
      • 保证相邻节点间的链路逻辑上无差错
      • 原始数据传入链路层,链路层对长信息拆分并添加校验位组成**帧(Frame)**含有多个bit,再将帧陆续传给物理层转化为实际的物理信号传输
      • 差错控制:检错+纠错或者检错+丢弃+重传
      • 流量控制:协调相邻节点的帧的传输速率
    3. 网络层
      • 将分组从源结点转发至目的结点
      • 路由选择:构造并且维护路由表,选择从源结点转向目的结点的最佳路径
      • 分组转发:将分组从合适的端口传出
      • 拥塞控制:发现网络拥塞,并采取措施缓解拥塞
      • 网际互联:由于各个局域网可能采用不同的技术,通过网络层实现异构网络的互联
      • 差错控制:校验分组
      • 流量控制:协调分组的传输速率
      • 连接建立与释放:建立虚电路发送分组
      • 可靠传输管理:接收方返回分组确认消息
    4. 传输层
      • 端到端的通信,即实现进程到进程的通信
      • 多个不同进程的数据通过传输层组合成报文段(Segment)
      • 复用与分用:发送端的几个高层实体例如微信、QQ 的数据共同组成报文段,复用接下来低层的路线;在接收端将报文段重新拆分为多个端口的数据传入
      • 差错控制:校验报文段
      • 流量控制:协调报文段段的传输速率
      • 建立连接与释放:建立虚电路发送报文段
      • 可靠传输管理:接收方返回报文段确认消息
    5. 会话层
      • 管理进程间的会话
      • 会话管理:采用检查点机制,当通信失效时从检查点继续恢复通信
    6. 表示层
      • 解决不同主机上编码方式不同,数据格式转换还有压缩、解密等
    7. 应用层
      • 实现特定的网络应用
      • 各类数据以报文(Message)为单位传递

TCP/IP模型详述

  • OSITCP/IP模型的区别
    • OSI.#5~#7TCP/IP.#4
      • 数据编码格式转换与会话管理功能并不是对于每个网络应用都需要的,所以可以并入应用层
      • 对于某些需要这种特定功能的应用,可以采用具有特定功能的协议去完成
    • OSI.#1~#2TCP/IP.#1
      • 网络层将分组传递给网络接口层,但是不硬性规定处理或者传输分组的方式
    • OSI.#3TCP/IP.#2
      • TCP/IP模型的网络层取消了对于分组检查与控制协调的若干功能,如差错控制、流量控制、连接管理、可靠传输管理
      • TCP/IP模型的网络层的传输数据不可靠
      • TCP/IP模型中不需要中间路由器等计算机网络核心管理流量等行为而将各种功能施加在端系统中