基础知识

计算机网络的主要问题:实体 服务 协议 实现与管理

计算机网络的构成(个域网 局域网 城域网 广域网)

  • 互联网是网络的网络

边缘->接入->核心

边缘

网络边缘指各种主机

  • 客户端:便携机、智能手机、平板电脑,智能手环等各类智能终端

  • 服务器(服务器通常位于数据中心)

  • 主机的功能

容纳(即运行)应用程序

将用户程序产生的数据向接入网发送

从网络接收数据并提供给应用程序

  • 主机结构

硬件:网卡

内核:内核驱动是与网卡相联系的,内核协议栈是处理网络数据的,与显卡无关

用户程序

  • 主机的命名

    网卡设备有唯一的设备id

    IP地址是根据需要配置的

    主机名,字符串容易记忆

接入

接入网的目标是将主机连接到边缘路由器上

物理介质:双绞线,同轴电缆,光纤(光信号,效率高);无线电(半双工)

双绞线->数字用户线DSL(复用电话线,“拨号上网”)

同轴电缆(复用电视线)

光纤到户FTTH
WLAN ;广域蜂窝网

核心

将端系统互联起来

端系统通过ISP协议集成

区域ISP与Global ISP

网络的功能

  • 网络的目的是将数据发往目标主机
  • 拆分为路由和转发

路由

全局操作:计算通往目标主机的路径,即经过的结点(主机、路由器)序列

实现:通过路由算法计算,结果存储在路由表里

转发(执行)

本地操作:每个结点将数据交给路径上的下一跳

实现:根据目的主机,查找本地路由表,确定下一跳

网络的工作方式

  • 分组交换

大消息拆分成多个小分组

每个分组独立的选择传输路径

灵活的统计多路复用 指按需共享带宽

存储转发传输需要整个数据包到了才开始转发,有一定的延迟

  • 电路交换

建立连接,进行了对于资源的预留,保障用户的传输的速度和稳定性,但是因此无法实现灵活运用,并且有资源的浪费

  • 分组交换的问题

分组交换容易拥塞,引起排队延迟甚至丢包

分组交换无法提供服务质量保障

目前没有确切的解决方案

计算机网络的服务

  • 无论分组交换还是电路交换,从应用程序的角度:与网络上的其他应用程序交互,不同应用的需求有很大差异

按调用方式分类

面向连接

传输前建立对话连接

无连接的网络服务

网络服务的性能指标

  • 带宽 单位时间内网络中的某信道所能通过的“最高数据率” bit/s
  • 包转发率 表示交换机或路由器等网络设备以包为单位的转发速率

线速转发:交换机端口满负载情况下,对帧进行转发时能够达到端口线路的最高速度

大包更容易实现线速

  • 比特率 单位时间内,主机往数字信道上传输数据的数据量,也称数据率或传输速率,单位是b/s

  • 吞吐量 单位时间内,通过某个网络位置(或信道、接口)的数据量,单位是 b/s

  • 有效吞吐量 单位时间内,目的地正确接收到的有用信息的数目,单位b/s

  • 利用率 信道利用率指出某信道有百分之几的时间是被利用的

  • 丢包率 所丢失数据包的数量占所发送数据包的比率

  • 时延 一段到另一端的所需时间

•传输时延(transmission delay):数据从结点进入到传输媒体所需要的时间,传输时延又称为发送时延

•传播时延(propagation delay):电磁波在信道中需要传播一定距离而花费的时间

•处理时延(processing delay):主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间

•排队时延(queueing delay):分组在路由器输入输出队列中排队等待处理所经历的时延 最不稳定

排队论 平均到达速率A,峰值到达速率P 平均等待时间W,平均队列长度L L=A*W L容易测量(交换机里包的数量),A,W相对困难
  • 时延带宽积

时延带宽积 = 传播时延 *带宽,即按比特计数的链路长度

若发送端连续发送数据,则在发送的第一个bit即将达到终点时,发送端就已经发送了时延带宽积个bit ,而这些bit都在链路上向前移动

  • 时延抖动

    变化的时延称为抖动

  • 延迟丢包

    数据时延太长导致失去使用价值

else: 可靠性:发送的每个消息,接收方收到一次且仅收到一次 完整性:发送的数据无法被篡改 隐私性:发送的数据不被第三方截获有时也包含发送方身份不被暴露 可审计性(accountability)可追溯用户的传输行为

计算机网络的协议

网络协议的定义

  • 为进行网络中的数据交换而建立的规则、标准或约定

  • 要素

    语法:传输数据的格式

    语义:要完成的功能

    时许:各种操作的顺序

  • 网络协议以头部封装定义

    协议定义头部信息,数据被封装在载荷里 头部定义如何处理分组

实现和管理

  • 端系统和网络核心如何协同实现网络?

    为了实现一个目标,对于不同的协议,可以有多种实现的方式,这些方式涉及到对于网络资源的管理, 需要把将链路、交换能力、队列分配给不同应用程序; 需要兼顾效率、公平与管理开销。

怎么学网络:计算机网络的分层架构

  • 计算机网络是一个高度复杂的系统

分层设计

分层的优点 降低复杂度,增加灵活性 坏处 额外开销 跨层信息交互困难

OSI参考模型

TCP/IP参考模型

网络接口层(Host-to-network Layer) 描述了为满足无连接的互联网络层需求,单跳链路必须具备的功能 互联网层(Internet Layer) 通过多跳连接,将数据包独立的传输至目的地,并定义了数据包格式和协议(IPv4协议和IPv6协议) 传输层(Transport Layer) 允许源主机与目标主机上的对等实体,进行端到端的数据传输:TCP,UDP 应用层(Application Layer) 传输层之上的所有高层协议:DNS、HTTP、FTP、SMTP...

分层架构总览

  • 发送端:层层封装头部数据;接收端:层层解封装头部数据

网络分层的实现

端系统为了应用层的运行需要实现所有分层,但是边缘网和网络核心只需实现一到三层 交换机:物理层与数据链路层功能 路由器:实现前3层功能 现代交换机和路由器不做区分

虽然现在使用TCP/IP,但是分层的描述普遍使用OSI来描述 1,2层是物理层和数据链络层这样

  • 复杂功能由端系统实现
  • 以IP协议为核心
  • 问题
    • 各层之间功能重叠
    • IP协议本身很难升级(如IPv4 -> IPv6)
    • 网络资源管理与性能控制依赖端系统,网络核心只能进行粗粒度流量