# 因特网概述
# 网络、互联网和英特网
网络是由若干结点和连接这些结点的链路组成
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网,因此,互联网是网络的网络
因特网是世界上最大的互联网络 (用户数以亿计,互连的网络数以百万计)
# 因特网发展的三个阶段
- 从单个网络 ARPANET 向互联网发展
- 1983 年,TCP/IP 协议成为 ARPANET 的标准协议,因此 1983 被称为互联网的诞生时间
- 逐步建成三级结构的因特网
- NSFNET(主干网、地区网和校园网)
- 逐步形成了多层次的 ISP 结构的因特网
因特网服务提供者 ISP:
ISP 可以从因特网管理机构申请到成块的 IP 地址,同时拥有通信线路以及路由器等连网设备。任何机构和个人只要向 ISP 交纳规定的费用,就可以从 ISP 得到所需要的 IP 地址
我国主要 ISP:中国电信、中国移动、中国联通
基于 ISP 的三层结构的因特网
# 因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用
因特网在制定其标准上的一个很大特点是面向公众
- 因特网所有 RFC 技术文档都可以在因特网上免费下载
- 任何人都可以随时用电子邮件发表对某个文档的意见或建议
因特网协会 ISOC 是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用
因特网体系结构委员会 IAB,负责管理因特网有关协议的开发
因特网工作 IETF,负责研究中短期工程问题,主要针对协议的开发和标准化
因特网研究部 IRTF,从事理论方面的研究和开发一些需要长期考虑的问题
制定因特网的正式标准经过一下 4 个阶段:
- 因特网草案(在这个阶段还不是 RFC 文档)
- 建议标准(从这个阶段开始就成为 RFC 文档)
- 草案标准
- 因特网标准
# 因特网的组成
边缘部分
- 由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信 (传输数据、音频或视频) 和资源共享
核心部分
- 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
# 三种交换方式
电路交换
电话交换机接通电话的方式称为电路交换
从通信资源的分配角度来看,交换就是按照某种方法动态地分配传输线路的资源
电路交换的三个步骤:
- 建立连接 (分配通信资源)
- 通话 (一直占用通信资源)
- 释放连接 (归还通信资源)
优点:
- 通信时延小
- 有序传输
- 没有冲突
- 通用范围广
- 实时性强
- 控制简单
缺点:
- 建立连接时间长
- 线路独占,使用效率低
- 灵活性差
- 难以规格化
分组交换
发送方:构造分组;发送分组
路由器:缓存分组;转发分组
接收方:接收分组;还原报文
优点:
- 无需建立连接
- 线路利用率高
- 简化了存储管理
- 加速传输
- 减少出错概率和重发数据量
缺点:
- 引起了转发时延
- 需要传输额外的信息量
- 对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立,数据传输和虚电路释放三个过程
报文交换
优点:
- 无需建立连接
- 动态分配线路
- 提高线路可靠性
- 提高线路利用率
- 提供多目标服务
缺点:
- 引起了转发时延
- 需要较大的存储缓存空间
- 需要传输额外的信息量
# 计算机网络的定义和分类
计算机网络的定义
计算机网络的精确定义并未统一
计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合
- 互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
- 自治:是指独立的计算机,它有自己的硬件和软件,可以单独运行使用
- 集合:是指至少需要两台计算机
计算机网络的较好定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的 (例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件
- 计算机网络并非专门用来传送数据,而是能够支持很多种应用 (包括今后可能出现的各种进程)
计算机网络的分类
按交换技术分类
- 电路交换网络
- 报文交换网络
- 分组交换网络
按使用者分类
- 公用网
- 专用网
按传输介质分类
- 有线网络
- 无线网络
按覆盖范围分类
- 广域网 WAN
- 城域网 MAN
- 局域网 LAN
- 个域网 PAN
按拓扑结构分类
- 总线型网络
- 星型网络
- 环型网络
- 网状型网络
# 计算机网络的性能指标
性能指标可以从不同的方面来度量计算机网络的性能
常用的计算机的性能指标有以下 8 个:
速率
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
常用单位:b/s,kb/s,Mb/s
例:有一个待发送的数据块,大小为 100MB,网卡发送的速率为 100Mbps,则网卡发送完数据块需要多长时间
带宽
- 带宽在模拟信号系统中意义:信号所包含的各种不同频率成分所占的频率范围,单位:Hz
- 带宽在计算机网络中意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的 "最高数据率",单位:b/s,Kb/s,Mb/s
吞吐量
- 吞吐量表示在单位时间内通过某个网络 (或信道、接口) 的数据量
- 吞吐量经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
- 吞吐量受网络带宽或额定速率的限制
时延
- 网络时延:发送时延、传播时延、处理时延
时延带宽积
- 时延带宽积 = 传播时延 * 带宽
- 若发送端连续发数据,则在所发送第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
- 链路额的时延带宽积又称为以比特为单位的链路长度
往返时间
- 在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互
- 我们有时很需要知道双向交互一次所需的时间
- 因此,往返时间 RTT 也是一个很重要的性能指标
利用率
- 信道利用率:用来表示某信道有百分之几的时间是被利用的 (有数据通过)
- 网络利用率:全网络的信道利用率的加权平均
- 根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加
- 因此,信道利用率并非越高越好;当网络利用率达到 50% 时,时延就要加倍;当网络利用率超过 50% 时,时延急剧增加
- 一些拥有较大主干网的 ISP 通常会控制它们的信道利用率不超过 50%,如果超过了就准备扩容,增大线路的带宽
丢包率
- 丢包率即分组丢失率,是指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率
- 丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
- 丢包率是网络运维人员非常关心的一个指标,但对于普通用户往往并不关心这个指标
- 分组丢失有两种情况:
- 分组在传输过程中出现误码,被结点丢弃
- 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞
- 丢包率反映了网络的拥塞情况
# 计算机网络体系结构
# 常见的计算机网络体系结构
OSI 体系结构(法律上的国际标准):
- 物理层
- 数据链路层
- 网络层
- 运输层
- 会话层
- 表示层
- 应用层
TCP/IP 体系结构(事实上的国际标准):
- 网络接口层
- 网际层
- 运输层
- 应用层
原理体系结构(仅用于教学):
- 物理层
- 数据链路层
- 网络层
- 运输层
- 应用层
# 计算机网络体系结构分层的必要性
计算机网络是个非常复杂的系统。早在最初的 ARPANET 设计时就提出了分层的设计概念
分层可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
- 物理层(解决使用何种信号来传输比特的问题)
- 采用怎样的传输媒体 (介质)(光纤)
- 采用怎样的物理接口(USB)
- 怎样用信号传输 0 和 1(电平高低)
- 数据链路层(解决分组在一个网络 (或一段链路) 上传输的问题)
- 如何标识网络中的各主机 (主机编址问题,例如 MAC 地址)
- 如何从信号所表示的一连串比特流中区分出地址和数据
- 如何协调各主机争用总线
- 网络层(解决分组在多个网络上传输(路由)的问题)
- 如何标识网络以及网络中的各主机 (网络和主机共同编制问题,例如 IP 地址)
- 路由器如何转发分组,如何进行路由选择
- 运输层(解决进程之间基于网络的通信问题)
- 如何解决进程之间基于网络的通信问题
- 出现传输错误时,如何处理
- 会话层(解决进程之间进行会话问题)
- 表示层(解决通信双方交换信息的表示问题)
- 应用层(解决通过应用进程的交互来实现特定网络应用的问题)
- 通过应用进程间的交互来完成特定的网络应用
# 计算机网络体系结构分层思想举例
通信时,发送方对报文一层一层包装,交换机对报文进行一定解封装,解封至网络层后,确定要转发的地点,转发后,接收方再进行解封装,最后获取报文信息
# 计算机网络体系结构中的专用术语
实体:任何可发送或接收信息的硬件或软件进程
对等实体:收发双方相同层次中的实体
协议:控制两个对等实体进行逻辑通信的规则的集合
协议的三要素
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
- 要实现本层协议,还要使用下面一层所提供的服务
- 协议是水平的,服务是垂直的
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是透明的
服务访问点:在同一个系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点为帧的 "类型" 字段
- 网络层的服务访问节点为 IP 数据报首部中的 "协议字段"
- 运输层的服务访问节点为 "端口号"
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
协议数据单元 PDU:对等层次之间传送的数据包称为该层的协议数据单元
服务数据单元 SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
多个 SDU 可以合成一个 PDU;一个 SDU 也可划分为几个 PDU