参考教材:谢希仁 计算机网络(第7版)
视频资源:计算机网络微课堂(有字幕无背景音乐版)_哔哩哔哩_bilibili
1.计算机网络的性能指标
常用的计算机性能指标有以下8个:
- 速率
- 带宽
- 吞吐量
- 时延
- 时延带宽积
- 往返时间
- 利用率
- 丢包率
1.0 数据量单位
比特(bit)是计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0。
字节(Byte)注意与比特区分。
常用数据量单位
实际生活中,硬盘或u盘的标注容量往往大于操作系统给出的容量,这是因为标注容量中1K = 1000而不是1024。
1.1 速率
速率:连接在计算机网络上的主机在数字通道上传送比特的速率,也称为比特率或数据率。
常用数据率单位
- 注意b小写
- 注意k小写
例1:一个数据块大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多少时间?
不要求精确结果的估算可以将M直接约掉,结果为8秒。
有些题目为了方便计算会对数据量单位进行规定,需要具体问题具体分析。
1.2 带宽
模拟信号系统(如电话)中的带宽:信号所包含的各种不同频率成分所占据的频率范围。
单位:赫兹(Hz),kHz,MHz,GHz
计算机网络中的带宽:表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。
单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
实际中常说的网速一般就是指的出口带宽,“网速200M”指的就是“最高速率为200Mb/s”。
带宽也可被视为“最高速率”。
以上两种带宽间有密切联系,一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。
1.3 吞吐量
吞吐量:表示在单位时间内通过某个网络的数据量。受到网络带宽或额定速率的限制。
吞吐量通常被用于现实世界中的网络测量,以便知道实际上到底有多少数据量能够通过网络。
1.4 时延
发送时延:源主机将分组发往传输线路需要的时间。
计算方法:分组长度(b)/发送速率(b/s)
发送速率受到网卡的发送速率、信道带宽与接口速率限制,发送速率为三者中最小值。在构建网络时,应该是各设备间以及传输介质的速率匹配。
传播时延:分组在链路中传输需要的时间。
计算方法:信道长度(m)/电磁波传播速率(m/s)
电磁波传播速率受介质影响,常见的传播速率如下:
- 自由空间:
- 铜线:
- 光纤:
处理时延:路由器收到分组后进行存储转发需要的时间。
处理时延没有计算公式,题目中往往将处理时延“忽略不计”。
在处理时延忽略不计的情况下,在没有给出具体情况时,不能确定发送时延和传播时延哪边占主导。
例2:数据块长度为100MB,信道带宽为1Mb/s,传送距离为1000km,假设传输介质为光纤,计算发送时延和传播时延。
题目没给出速率,将带宽作为最高速率进行计算。
发送时延 =
传播时延 =
发送时延占主导
例3:将例2中的数据块长度改为1B,其余条件不变,计算发送时延和传播时延。
发送时延 =
传播时延 =
传播时延占主导
1.5 时延带宽积
计算方法:时延带宽积(b) = 传播时延(s) * 带宽(b/s)
将传输链路视为一个水管,长度为传播时延,横截面积为带宽,则时延带宽积就是水管的体积。
如果发送端连续发送数据,则在发送的第一个比特到达终点时,发送端就已经发送了时延带宽积个比特。(可将数据类比为水)
链路的时延带宽积又被称为以比特为单位的链路长度。
1.6 往返时间
通常,互联网上的信息不仅是单向传播,而是双向交互的。双向交互一次所需的时间就是往返时间RTT(Round-Trip Time)。
往返时间:从源主机发送分组开始,直到源主机收到来自目的主机的确认分组为止,所需要的时间。
1.7 利用率
信道利用率:某信道有百分之几的时间是被利用的(有数据通过)。
网络利用率:全网络的信道利用率的加权平均。
根据排队论,信道利用率增大时,该信道引起的时延也会迅速增加,因此,信道利用率并非越高越好。
如果使表示网络空闲时的时延,表示网络当前时延,则、与利用率之间的关系可表示为:
- 当U=50%时,时延加倍。
- 当U>50%时,时延急剧增大。
- 当U接近100%时,时延趋于无穷大。
一些有较大主干网的ISP通常会控制信道利用率在50%以下,超过就要准备扩容。也不能使利用率太低,应该使用一些机制,动态调整网络的通信量,使网络利用率保持在合理的范围内。
1.8 丢包率
丢包率:分组的丢失率。在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
具体可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
造成分组丢失的情况:
- 分组在传输过程中出现误码,被丢弃
- 分组到达一台队列已满的分组交换机,被丢弃。在通信量较大时会造成网络拥塞。
丢包率反映了网络的拥塞情况:
- 无拥塞时路径丢包率为0
- 轻度拥塞时路径丢包率为1%~4%
- 严重拥塞时路径丢包率为5%~15%
1.9 非性能特征
- 费用
- 质量
- 标准化
- 可靠性
- 可拓展性和可升级性
- 易于管理和维护
2. 计算机网络体系结构
2.1 常见的计算机网络体系结构
2.1.1 OSI
OSI:开放系统互联基本参考模型OSI/RM(Open System Interconnection Reference Model),是法律上的国际标准。
OSI未得到广泛使用的原因:
- OSI的专家缺乏实际经验,缺乏商业驱动力;
- OSI的协议实现复杂,且运行效率低;
- OSI标准的制定周期长,使按OSI标准生产的设备无法及时进入市场;
- OSI的层次划分不合理,有些功能在多个层次中重复出现
OSI体系结构 | TCP/IP的体系结构 | 五层协议的体系结构 |
7 应用层 | 应用层 | 5 应用层 |
6 表示层 | ||
5 会话层 | ||
4 运输层 | 运输层(TCP或UDP) | 4 运输层 |
3 网络层 | 网际层IP | 3 网络层 |
2 数据链路层 | 网络接口层 | 2 数据链路层 |
1 物理层 | 1 物理层 |
2.1.2 TCP/IP
TCP/IP:事实上的国际标准
用户主机的操作系统中带有TCP/IP协议族,路由器中同样带有TCP/IP协议族,不过一般只包括网络接口层和网际层。
网络接口层:为了互联不同的网络接口,没有规定具体内容。
网际层:核心协议为IP协议。
- IP协议将不同的网络接口进行互联,并向其上的TCP协议与UDP协议提供网络互连服务。
运输层:两个重要协议为TCP与UDP协议。
- TCP协议在享受IP协议提供的互联服务的基础上,向应用层的相应协议提供可靠传输的服务。
- UDP协议在享受IP协议提供的互联服务的基础上,向应用层的相应协议提供不可靠传输的服务
应用层:包含大量协议,如HTTP、SMTP、DNS和RTP等。
TCP/IP协议呈漏斗状,IP协议为核心协议,一方面负责互联不同的网络接口(IP over everything),另一方面为各种网络应用提供服务(Everything over IP)。IP和TCP协议作为最重要的协议代表整个协议族,称为TCP/IP协议族。
2.1.3 五层协议体系结构
由于TCP/IP的网络接口层没有具体内容,为了避免学习时缺少部分内容,使用OSI中的物理层与数据链路层代替。
该模型只是为了学习设计的,并未应用。
2.2 计算机网络体系结构分层的必要性(建议看视频)
计算机网络是个非常复杂的系统,分层可将庞大的问题转化为若干较小的局部问题,便于研究和处理。
原理体系结构 | 解决的问题 |
5 应用层 | 解决通过应用进程的交互来实现特定网络应用的问题 |
4 运输层 | 解决进程之间基于网络的通信问题 |
3 网络层 | 解决分组在多个网络上传输(路由)的问题 |
2 数据链路层 | 解决分组在一个网络(或一段链路)上传输的问题 |
1 物理层 | 解决使用何种信号来传输比特的问题 |
2.3 计算机网络体系结构分层思想举例(建议看视频)
看视频!
2.4 计算机网络体系结构中的专用术语
2.4.1 实体
实体:任何可发送或接收信息的硬件或软件进程
对等实体:收发双发相同层次中的实体。如应用层的应用进程
2.4.2 协议
协议:控制两个对等实体进行逻辑通信的规则的集合。逻辑通信实际并不存在,是为了方便我们对单独体系结构的某一层进行研究。
协议的三要素:语法、语义、同步。
- 语法:定义所交换信息的格式。
- 语义:定义收发双发所要完成的操作。
- 同步:定义收发双方的时序关系。
2.4.3 服务
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,需要下面一层提供的服务。
- 协议是“水平的”,即作用在同一层;服务是“垂直的”,即作用在上下层。
- 实体看得见下层提供的服务,但不知道该服务的具体协议。即下面的协议对上面的实体是“透明”的。
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务。
- 数据链路层的服务访问点为帧的“类型”字段。
- 网络层的服务访问点为IP数据报首部中的“协议字段”。
- 运输层的服务访问点为“端口号”。
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
计算机体系结构中对通信双方所交互的数据包有专门的术语。
协议数据单元PDU(Protocol Data Unit):对等层次之间传送的数据包称为该层的协议数据单元。
服务数据单元SDU(Service Data Unit):同一系统内,层与层之间交换的数据包称为服务数据单元。
多个SDU可以合成为一个PDU,一个SDU也可划分为几个PDU。 如对于链路层来说,由上向下传播时,需要添加各层的服务原语,最后成为帧,即多个SDU合成为一个PDU;由下向上传播时,需要去掉各层的数据原语,将帧还原为报文,即一个SDU也可划分为几个PDU。