Skip to content

一、计算机网络概述

1. 基本概念

1.1. 组成:边缘部分,核心部分

  • 边缘部分:直接连接在因特网上的主机(用户);

  • 核心部分:大量网络和连接这些网络的路由器(提供连通性,数据交换功能);

  • 图示:

    img_TCGMmqJ1bs

1.2. 分类

  • 按作用范围分类:

    • 广域网(WAN,Wide Area Network)

    • 局域网(LAN,Local ...)

    • 城域网(MAN,Metropolitan ...)

    • 个人区域网(PAN,Personal ...)

  • 按使用者分类:

    • 公用网

    • 专用网

  • 按拓扑结构分类:

    • 星形

    • 总线

    • 环形

    • 树形

    • 网形

1.3. 主要性能指标

  • 速率:比特 bit,b/s,kb/s,Mb/s,Gb/s;

  • 带宽:数字信道所能传送的最高数据率,单位 bit/s,bps;

  • 时延:数据块从节点进入到传输媒体所需要的时间;

    • 发送时延:从发送数据帧的第一个bit算起到该帧最后一个bit发送完毕所需时间;

      img_zfwmzirCtK

    • 传播时延:电磁波在信道中传播花费的时间

      img_ncCXPyU8HO

      • 区分:信号的发送速率和信号在信道上的传输速率
    • 处理时延:交换节点进行数据处理花费的时间(了解);

    • 排队时延:节点缓存队列中分组排队产生的时延(了解);

    • 总时延:

      img_YToRlmSPxV

    • 案例:从节点 A 向节点 B 发送数据:

      img_dfJ7DaJzC9

  • 往返时间 RTT:发送方发送数据开始,到发送方收到接收方确认所经历的时间;

  • 信道利用率:信道有数据通过时间的占比;

2. 体系结构

2.1. 计算机网络的分层结构

  • 划分层次的必要性

    • 数据交换必须遵守事先约定好的规则;

    • 明确规定数据交换的格式和同步问题(时序);

    • 网络协议(Network Protocol,简称协议)是网络中数据交换的规则,标准或约定;

  • 计算机网络的体系结构定义

    • 体系结构(architecture)是计算机网络的各层及其协议的集合

    • 体系结构是计算机网络及其部件所应完成功能的精确定义;

    • 实现(implementation)是遵循上述体系结构的前提下用硬件和软件来实现各项功能;

    • 体系结构为抽象概念,实现为具体方案,是具体运行的计算机软硬件

2.2. 计算机网络的协议,接口和服务

  • 协议(Protocol)

    • 协议总是指某一层的协议,是对某层同等实体之间的通信规则集合;

    • 三个要素:语法(Syntax),语义(Semantics),同步(Timing);

      • 语法:数据与控制信息的结构或格式;

      • 语义:需要发出何种控制信息,完成何种动作以及做出何种响应;

      • 同步:事件实现顺序的详细说明;

  • 接口(Interface):又称服务访问点,是同一系统相邻两层的实体进行交互的地方;

  • 服务(Service):为保证上层实体间的通信,由下层实体向上层提供的功能

  • 实体(Entity):表示可以发送或接受信息的硬件或软件

  • 协议和服务图示

    img_OZXi1v14YS

2.3. ISO/OSI 参考模型和 TCP/IP 模型

  • ISO/OSI 参考模型

    img_YON6ULe5iw

    • 分层概览

      • 底部三层(物理,数据链路,网络):依赖网络,需要相关通信协议;

      • 中间传输层:为顶部三层提供相关接口,方便使用底部层的服务(也起到遮蔽作用);

      • 顶部三层(应用,表示,会话):面向用户和应用,需要终端交互协议;

    • 逐层分析

      • 物理层:在信道上传输的原始比特流;

        • 实现电压到 0/1 的转换,一个 bit 对应电压的持续时间,在两个方向上同时传输等;

        • 处理机械和电气过程的结构,以及物理传输介质等问题;

        • 关键技术:信号与接口;

      • 数据链路层:沿着网络在相邻节点间传输数据的技术规范;

        • 负责产生和识别数据帧之间的边界

        • 帧(Frame)是信息单位,每一帧包含数据和必要的控制信息;

        • 控制信息包括:同步信息(开始和结束),地址信息,错误控制信息和流量控制信息等;

      • 网络层:确定分组从源端到达目的端的路由;

        • 是通信子网的最高层,任务是:选择合适的路由和交换节点,以透明地向目的站传输所发送的分组信息,路由选择是网络层主要工作之一

        • 网络层传输数据的单位是分组,即将报文分割成等长的组;

      • 传输层:负责从会话层接收数据,必要时将数据分成较小的单位,传递给网络层,同时确保发送给对方的各段信息无误;

        • 传输层是真正的源到目标的“端到端”层

        • 源端的某程序,利用报文头和控制报文和目标端的类似程序进行对话;

      • 会话层:允许不同机器上的用户建立对应关系,同时提供某些应用相关的增强服务会话;

        • 用途:远程登录,远程传递文件等;

        • 同时还负责管理同步对话。使得网络崩溃后仅需要重传最后一个校验点后的数据;

      • 表示层:管理面向应用的信息语法和语义;

        • 网络交换中使用的数据结构以抽象的方式来定义,并采用标准的编码方式;

        • 表示层管理这些抽象的数据结构,并在计算机内部的表示法和网络标准表示法间转换;

        • 例:微信中的表情包编码和显示;

      • 应用层:直接为用户服务的程序所执行的功能;

        • 应用层包括的功能最多,协议也很多(如虚拟终端协议 VTP);

        • 例:文件传输,电子邮件,远程事务处理等;

  • TCP/IP 模型(广泛应用,已成为事实上的国际标准)

    img_2LLT1EoyxY

    • 网络(网际)层:负责把分组发往任何网络,并使分组独立地传向目的地(中间可经过不同物理网络)

      • 到达的顺序和发送顺序可能不同,因此有时需要排序;

      • 定义了标准的分组格式和协议(即 IP 协议);

      • 主要问题:选择分组路由,避免阻塞;

    • 传输层:使源端和目标端主机上的对等实体可以进行通信,类似于 OSI 的传输层;

      • 传输控制协议 TCP:面向连接的协议,允许从一台机器发送的字节流无差错地发送给网上的其他机器;

      • 用户数据报协议 UDP:不可靠地无连接协议,应用于单次的 User-Server 模式的请求—应答式查询;

        • 可以快速传输一些对速度要求更高(相对于准确性)的数据,如语音和图像;
    • 应用层:包含所有高层软件的协议

      • 文件传输协议 FTP;

      • 电子邮件协议 SMTP;

      • 邮局协议 POP;

      • 域名服务 DNS:用于将主机名称映射到 IP 地址;

      • HTTP 协议;

    • 五层结构的体系结构—事实模型:把 OSI 的低两层和 TCP 的高三层结合作为 TCP 协议的结构

      img_tmG8Wavk5s

      • 实际应用中采用的模型,也是教学大纲考点;
  • 案例分析:数据在五层结构之间的传输

    img_2fSNjHngtG

    • H5应用层首部,用于应用内部解析消息内容;

    • H4传输层首部,用于指示传输层应该把数据给哪个应用(一般是端口号);

    • H3网络层首部:核心内容为 IP 地址;

    • H2,T2链路层:标志链路的起点和终点;

  • OSI 参考模型 vs. TCP/IP 模型(了解)

    • OSI 参考模型

      • 层次的数量和内容选择不是很好;

      • 寻址,流程控制,差错控制在每一层里重复出现,降低系统效率;

      • 数据安全性在设计初期被忽略;

      • 用通信的思想来设计模型,不适合计算机和软件的工作方式,使得严格按照此模型编排的软件效率低;

    • TCP/IP 模型

      • 在服务、接口与协议的区别上不很清楚,一个好的软件工程应该将功能与实现方法区分开,参考模型不适合于其它非TCP/IP协议族;

      • TCPP/IP 参考模型的主机-网络层本身并不是实际的一层;

      • 物理层与数据链路层的划分是必要和合理的,而TCP/IP参考模型却没有做到这点。

  • TCP/IP 中的主要协议结构(重点)

    img_zSIZh1g632