计算机网络性能
速率
在计算机网络中,速率
即数据率(date rate)
或称数据传播速率
或比特率(bit rate)
,往往是指额定速率
或标称速率
单位时间(秒)传输信息(bit)量
单位:b/s(或bps)、kb/s、Mb/s、Gb/s
- k= 、M= 、G=
带宽
一般情况下,我们指的带宽
都是信号具有的频率宽度,即最高频率与最低频率之差,单位是赫兹(Hz)
而在计算机网络中带宽
指的是数字信道所能传送的最高数据率
,单位:b/s(bps)
延迟/时延
Q:分组交换为什么会产生丢包和时延?
A:因为遵守的是存储-转发
的规则,当数据包到达路由器时,会由路由器暂存,知道确定转发目的地开始转发为止,同时路由器是有一定的缓存大小的,当缓存满的时候,再有分组进入缓存的话就会被丢失。而正在传输的分组就会产生延迟,排队的分组就会产生时延
四种分组延迟
:结点处理延迟(nodal processing delay)
- 差错检测(检查数据是否出错)
- 确定输出链路(根据数据信息看输出的目的地和对应的输出链路)
- 通常
举个例子:
车队在高速行驶,那么车队
就是分组(数据包)
,车速
就是信号传播速度
,收费站放行一台车的时间就是传输一个bit的时间,整个车队通过收费站的时间
就是传输延迟
,每台车从第一个收费站跑到第二个收费站用时
就是传播延迟
。
排队延迟
- R:链路带宽(bps)
- L:分组长度(bits)
- a:平均分组到达速率
- ~0:平均排队延迟很小
- ->1:平均排队延迟很大
- 1:超出服务能力,平均排队延迟无限大
其实这些用高速上的塞车和过收费站的例子就可以很清晰的感受到计算机网络这些传输的过程
时延带宽积
- 链路的时延带宽积又称为
以比特为单位的链路长度
分组丢失(丢包)
- 队列缓存容量有限
- 分组到达已满队列将被丢弃
- 丢弃分组可能由前序结点或源重发(也可能不重发)
吞吐量/率
Q:何为吞吐量?
A:吞吐量表示在发送端与接收端之间传送数据速率(b/s)
- 即时吞吐量:给定时刻的速率
- 平均吞吐量:一段时间的平均速率
若 ,则端到端的吞吐量取决于
若 ,则端到端的吞吐量取决于
这就是瓶颈链路
,端到端路径上,限制端到端吞吐量的链路。
计算机网络体系结构
分层结构
Q:为什么采用分层结构?
A:
结构清晰,有利于识别复杂系统的部件及其关系
- 分层的参考模型
模块化的分层易于系统更新、维护
- 任何一层服务实现的改变对于系统其它层都是透明的
- 各层之间互不影响
有利于标准化
基本概念
- 实体表示任何可发送或接受信息的硬件或软件进程
- 协议是控制两个对等实体进行通信的规则的集合,协议是
“水平的”
- 任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是
“垂直的”
- 下层协议的实现对上层是
透明的
,上层无需了解下层的具体实现,只需调用服务即可 - 同系统的相邻层实体间通过接口进行交互,通过
服务访问点SAP(Service Access Point)
,交换原语,指定请求的特定服务
OSI参考模型
提出的目的是为了支持异构网络系统的互联互通,也是一个国际标准,但是这个模型在理论上成功,市场上失败
七层模型
通信过程
- 这里的协议在解析数据时起作用
- 对等层只能识别对等层上的数据
数据封装
主机A传输到主机B
数据传输时都会加上数据头,到数据链路层时就会加头加尾,到物理层就是对应数据的一系列比特。然后根据网络介质传输播一层一层识别出各层的数据单元,最后传到主机B
Q:为什么需要数据封装?
A:
- 增加控制信息
- 构造协议数据数据单元(PDU)
- 控制信息
地址(Address)
:标识发送端/接收端差错检测编码(Error-detecting code)
:用于差错检测或纠正协议控制(Protocol control)
:实现协议功能的附加信息,如:优先级(priority)、服务质量(QoS)和安全控制等
物理层功能
接口特性
- 机械特性(几何形状,方形口、圆形口)、电气特性(电压、电平)、功能特性、规程特性(通信过程是怎样的)
比特编码
- 物理层要解决什么表示0,什么表示1的问题
数据率
- 定义数据传输的速率,到底能有多快速度发送
比特同步
发送端发送一个bit,接受端刚好能接受到这个bit,不会说错过了bit的接受时间或者提前接受导致没有正确接受这个bit
时钟同步,比如通过发送设备和接收设备之间利用一个通道来传输时钟信号或者别的解决方法
传输模式
- 单工(A发给B,只能A发给B,不能B发给B,电视就是单工)
- 半双工(对讲机,发和收不能同时进行)
- 全双工(收发可以同时进行)
数据链路层功能
从网络层接收网络层的协议数据单元,然后加头加尾构造成帧,然后将帧交给物理层
负责
结点-结点(node to node)
数据传输,以帧为数据单位进行传输组帧(Framing)
(组成一个数据帧),加头加尾,头部加上地址等等信息,尾部加上差错检测等等信息物理寻址(Physical addressing)
- 在帧头中增加发送端(和/或)接收端的
物理地址
标识数据帧的发送端(和/或)接收端
Q:本来A发送给B就已经明确了发送端和接收端了,为什么还要在帧头加上地址呢?
A:如图,所有通讯主机都连接在这个物理链路上,这就是广播形式通讯,因为物理层发出去的数据,其他任何一方都能收到,所以没有地址的话根本没法确定要到达哪个通讯主机
- 在帧头中增加发送端(和/或)接收端的
流量控制(Flow control)
- 匹配发送端和接收端的发送速度和接收速度,避免发送端发送速度太快,接收端接收数据太慢造成淹没接收端
差错控制(Error control)
- 检测并重传损坏或丢失帧,并避免重复帧
访问(接入)控制(Access control)
- 在任一给定时刻决定哪个设备拥有链路(物理介质)控制使用权,比如20发送数据到链路层了,那么25就要避开不用,避免造成冲突
网络层功能
- 负责
源主机到目的主机
的主机数据分组交付
- 可能穿越多个网络
逻辑寻址(Logical addressing)
全局唯一
逻辑地址(下图的S和D),确保数据分组被送达目的地主机,如IP地址
路由
- 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动,路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。作成硬件的话,则称为路由器。路由通常根据路由表(一个存储到各个目的地的最佳路径的表)来引导分组转送
- 路由器(或网关)互连网络,并路由分组至最终目的主机
- 路径选择
分组转发
总的来说,网络层完成的功能是从源主机到目的主机可以跨越网络、跨越多个链路的数据分组的传输
传输层功能
- 报文的分段和重组
- SAP寻址
- 确保将完整报文提交给正确进程,如端口号
- 连接控制
- 端到端连接的建立、维护和拆除,这跟电路交换的连接不同,这个是逻辑 连接
- 流量控制
- 速度匹配
- 差错控制
- 一些差错纠正机制和解决方案
会话层功能
对话控制
- 建立、维护对话
同步(synchronization)
- 在数据流中插入“同步点”,目的是一旦数据传输在某一个控制点的附近中断了或出现意外了,下次恢复的时候只需要恢复到最近的控制点
最“薄”的一层,功能少,在实际网络中这一层不存在
表示层功能
处理两个系统间交换信息的语法和语义
问题
数据表示的转化
- 发送端表示层将数据转化为主机独立的编码
- 到接收端表示层再将这些独立的编码转化成主机相关的
加密/解密
- 压缩/解压缩
- 在实际网络中,这一层也不是独立存在的,在Internet网络中这一层是应用层处理的
应用层功能
支持用户通过用户代理(如浏览器)或网络接口使用网络(服务)
典型应用层服务
- 文件传输(FTP)
- 电子邮件(SMTP)
- Web(HTTP)
TCP/IP参考模型
TCP/IP是先有了实现后才整理总结出这个模型,与OSI模型相反
TCP/IP参考模型是一个四层模型
5层参考模型
综合OSI和TCP/IP的优点,现在应用最多
应用层
:支持各种网络应用
- FTP、SMTP、HTTP
传输层
:进程-进程的数据传输
- TCP,UDP
网络层
:源主机到目的主机的数据分组路由与转发
- IP协议、路由协议等
链路层
:相邻网络元素(主机、交换机、路由器等)的数据传输
- 以太网(Ethernet也就是有线)、802.11(WiFi)、PPP
物理层
:比特传输
5层模型的数据封装
我画的可能比较丑大家将就看,这里最主要的还是在各层中的拆解和组装的过程。