常用基本概念
- 计算机网络:使用单一技术相互连接(连接介质可以是光纤,铜线,微波…)的自主(单台计算机具有独立自主性)计算机的互联集合
- 互联网络(Internet):是计算机网络的连接,是网络的网络
- 拓扑:信道(信号的通道)的分布方式,常见有一下几种形式,最常见的两种基础拓扑是总线拓扑和星型拓扑
- 总线拓扑
- 从主机上发出的信号在总线上双向同时传输
- 所有主机都可以接收这个信号
- 星型拓扑
- 主机都挂接在一个中心节点上
- 早期中心节点由集线器充当,现在的中心节点主要由交换机充当
- 相较于总线拓扑有单点故障这一缺点(是指系统中一点失效,就会让整个系统无法运作的部件,换句话说,单点故障即会整体故障。)
- ISP: Internet Service Provider,互联网服务提供商,指的是面向公众提供下列信息服务的经营者:一是接入服务,即帮助用户接入Internet;二是导航服务,即帮助用户在Internet上找到所需要的信息;三是信息服务,即建立数据服务系统,收集、加工、存储信息,定期维护更新,并通过网络向用户提供信息内容服务。
- 协议:一系列规则和约定的规范性描述,控制网络中的设备之间 如何进行信息交换
- 易混淆的常见单位
- bit意为“位”或“比特”,是计算机运算的基础;
- byte意为“字节”,是计算机文件大小的基本计算单位;
- 二者转换关系为:一字节(1byte)=八个单位元(8bit)
- 数字带宽:指在单位时间内流经的信息总量,带宽越大意味着里边信息越多
- 基本单位:比特每秒,即bps(k,M,G…)或者写作bits/s
- 吞吐量(Throughput):实际的,可测的带宽
- 受制因素
- 网络设备性能
- 用户数量
- 用网的时间
- 用户计算机性能
- 网络拓朴
- 服务器
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在很长一段时间内平均的吞吐率
- 瓶颈链路:限制端到端吞吐量的链路
- 受制因素
- 信息量(S/bit),带宽(BW/bps)和传输时间(T/s)之间的关系
- 理想情况:
- 实际情况(P表示吞吐量/bps):
例题:
如果ISDN的带宽为 128kbps,OC-48的带宽为 2.488 Gbps,如果用ISDN传输一张装满数据的1.44M软盘,用OC-48传输装满10G的硬盘数据,问哪一种传输所用的时间更少?
解题:
按照理想的传输状况来计算,即根据:T=S/BW,
易知,OC-48更快,题目中承8的原因是1.44M表示文件大小,单位是字节,这里要计算标准时间秒,就要转换为标准的比特bit
- 点到点 信源机和信宿机之间的通信由一段一段==直接相连的机器==间的通信组成,机器间的直接连接叫做点到点的连接
- 端到端 信源机与信宿机之间直接==通信==,好像拥有一条直接的线路
- 计算机网络分类
- 按传输介质:
- 有线网络
- 无线网络
- 按大小和规模划分
- 最小的计算机网络:PAN(Personal Area Networks)覆盖的范围1米左右
- 局域网:LAN(Local Area Networks)覆盖范围一公里左右
- 城域网:MAN(Metroplitan Area Networks)覆盖范围十公里左右
- 广域网:WAN(Wide Area Networks)覆盖范围约100/1000公里
- 互联网:Internet覆盖范围为全球
- 按传输介质:
这里提到的距离不是绝对的,判断网络类型的绝对因素是其是否具有对应网络类型的特征以及是否采用对应技术
因特网
上文提到,计算机网络是使用单一技术相互连接的自主计算机的互联集合,而Internet则是计算机网络的连接。处在因特网的边缘部分即因特网上的所有主机(host),又称为端系统(end system)
端系统通过通信链路(光纤,铜线,微波…)和分组交换机(路由器,链路交换机…)相互连接。
协议的准确定义
定义了在两个或多个通信实体间交换的报文格式和顺序,以及报文发送/接收及其他事件发生时所采取的动作
网络结构
网络边缘(edge)
网络边缘指的就是位于因特网边缘的主机(端系统)以及运行于其上的应用程序(例如web浏览器/web服务器,email程序等…)根据具体功能又可以被细分为C/S,即客户端Client与服务器Server
接入网
接入网指的就是将端系统物理连接到其边缘路由器(端系统到任何其他远程端系统路径上的第一台路由器)的网络
网络核心(core)
由分组交换机(路由器等…)和链路构成的网状网络
数据通过网络进行传输的方式
电路交换
为每个呼叫(CALL)预留一条专属线路,即在端系统通信会话期间,会为该会话预留端系统沿路通信所需的所有资源(缓存,链路传输速率)
电路交换这种数据传输方式具有如下特性
- 资源独享,同时保证了呼叫的性能
- 如果呼叫没有数据传输,被分配的资源就会被浪费
- 通常被电话网络采用
为了使一条真实线路能够同时传输多条对话,电路交换网络采用了片的概念,指将带宽等网络资源按照一定的复用方式进行切分,然后为某个呼叫分配指定的片进行数据传输
电路交换网络中的复用
- 频分(Frequency-division multiplexing)
- 时分(Time-division multiplexing)
- 波分(Wave-division multiplexing)
电路交换网络并不适合作为计算机间通信的方式:
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用
- 可靠性不高
分组交换
分组交换不再采用片的概念,当数据传输时会占据整个网络资源
在进行数据传输时,源会将长报文进行切割,切为一个个的分组后,以分组为单位进行交换。
多数的分组转换机采用存储转发传输的方式,即在数据的输入端规定进行转发前,节点必须确保已经接收到了完整的一个分组(只有当完整的一个分组到达数据交换机时才会执行转发操作),也因此分组交换的延迟时间要大于电路交换(电路交换可以每比特直接进行传输,因为此时整条线路都是自己独占的)
分组交换可能出现排队延迟和丢失
- 当到达速率>链路的传输速率时会出现交换机处接收到完整的数据包,但发出链路方向还有数个未发出或正在发出的数据包,此时该数据包就需要进行排队,等待传输完成
- 如果路由器的缓存用完了,分组将会被抛
网络核心的关键功能
- 路由:利用路由表决定数据包从源到目的地的路径(通过路由算法)
- 转发:将分组从路由器的输入链路转移到输出链
ISP互联
- POP: 高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互接,不涉及费用结算
- IXP:多个对等ISP互联互通之处,通常不涉及费用结算
- 对等接入
- ICP自己部署专用网络,同时和各级ISP连接
分组交换网中的时延,丢包和吞吐量
四种主要的分组延时
处理延时(节点处理延时)
出现原因是检查bit级差错,检查分组首部和决定将分组导向何处
排队延时
出现原因是在输出链路上等待传输的时间,取决于路由器的拥塞程度
- 流量强度
- R=链路宽度(bps)
- L=分组长度(bits)
- a=分组到达队列的平均速率
- 流量强度=La/R
- 流量强度趋于0时,排队延时很小
- 流量强度趋于1时,排队延时快速增加直至无穷大
- 流量强度等于或大于1时,排队延时无穷大,几乎所有分组都会处于排队状态
- 设计系统时需要保证流量强度小于1
传输延时
出现原因是将分组发送到链路上所消耗的时间,也被称为存储转发延时
计算方式:
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间= L/R
传播延时
传播延时出现的原因是由于比特流在物理线路上传播时,产生的传播时间。
计算方式:
- d=物理链路的长度
- s=比特流在传播媒介上的速率
- 传播延时=d/s
节点延时
- d_{proc}表示处理延时,通常是微秒级或更少
- d_{queue}表示排队延时,时长取决于拥塞程度
- d_{trans}=L/R 表示传输延时,对低速率的链路其传输延时较为明显(如拨号),通常为微秒级到毫秒级
- d_{prop}传播延时,一般为几微妙到几百毫秒
参考模型
为什么计算机网络需要进行分层
- 各层独立工作,层之间通过接口联系,降低协议工作的复杂程度
- 提高灵活性,任何一层的改变不影响其他层
- 每层的实现技术可以不同,减少了实现的复杂度
- 易于维护,每层可以单独进行调试
- 还便于标准化
分层原则:
信宿机第n层收到的对象应该与信源机第n层发出的对象完全一致
典型分层模型
- OSI七层模型
- TCP/IP四层模型
OSI七层模型
层次 | 名称 | 功能描述 |
---|---|---|
7 | 应用层(Application) | 主要为各种各样的网络应用提供网络服务,应用报文之间的交互(Email,FTP,微信) |
6 | 表示层(Presentation) | 将信息表示为一定形式的数据流(将信息转换为比特)完成的任务有压缩与解压缩,加密解密等 |
5 | 会话层(Session) | 它负责通信主机间的会话的建立,管理和拆除(协调通信双方会话) |
4 | 传输层(Transport) | 是参考模型的核心层之一,负责通信主机间的进程到进程的区分,并负责提供可靠的传输(对于TCP来说,其还负责提供可靠的传输,差错恢复,拥塞控制等额外功能) |
3 | 网络层(Network) | 是另一个核心层,功能是通过IP地址以及最优路径,将每一个每一个分组从信源机一路送至目的机(以分组为单位,端到端的传输) |
2 | 数据链路层(Data Link) | 在相邻的两点间传输以帧为单位的数据(提供介质访问服务(通过物理地址识别通信主机,提供可靠的帧传递,并作差错控制,流控等)) |
1 | 物理层(Physical) | 发送端将上层的帧转换为物理信号,通过介质传送到相邻的接收方,接收方将物理信号转换为还原为比特流数据(提供透明的比特流(光信号,电信号,无线信号…)传递,物理流只关心比特流传输,不关心比特流包含内容) |
每一层都利用它下层的服务,为它的上层提供服务
TCP/IP参考模型
TCP/IP协议 | OSI参考模型 |
---|---|
应用层(Telent,FTP,SNTP协议) | 会话层,表示层和应用层 |
传输层(TCP,UDP协议) | 传输层 |
网络层(ICMP,IP,ARP协议) | 网络层 |
数据链路层 | 物理层和数据链路层 |
数据如何传输?
涉及到:发送方,接收方和中间的信号通道(用于传输比特流)
发送方:进行封装/打包:将信息打包,从最高层逐渐下行到最底层
- 在每一层上,数据都被加上头部信息,用于传递信息
- 在OSI模型上三层,信息表示为报文(message)或数据流(DataStream)
- 传输层,切割为报文段或数据段(segment),加上段头(包含端口号等)
- 网络层,添加分组头部(包含寻址主机的IP地址等),形成分组(包)
- 数据链路层,添加帧头(包含寻址主机所需的物理地址(MAC),校验等信息)形成帧
- 物理层,帧转为比特流
上述加粗标注为数据在各层存在形式,称为数据协议单元PDU
数据单元(DU)
- SDU:服务数据单元,是上层传送给下层的数据单元
- PDU:协议数据单元,是相同层级间交换的数据单元
从上图可以看出,数据单元的基本传输形式就是上层的SDU与上层的ICI(接口控制信息,包含了对应层的一些基本信息)组成了完整的数据单元利用原语通过服务接入点SAP进入下层,下层会根据本次的ICI与上层数据单元结合并继续向下层传递
接收方:进行解封装/解包,从最底层逐渐上行到最高层提取出信息(解封装的过程就是封装的逆向过程,在每层去掉头部信息,最终还原出应用层的输出:信息)
实体(Entity):
每层中活动的元素,可能是硬件也可能是软件,负责完成对应层的封装或解封装任务。
对等实体:
收发双方对应层上的实体互称对等实体
虚拟通信(对等通信)
只看收发双方的对应层,发现收发双方对应层(即对等实体之间)之间好像有一根直接的通道(虚拟通道),沿虚拟通道,PDU从发放到达收方。
服务(Service):
低层实体向上层实体提供它们之间的通信的能力
- 服务用户(serviceuser)
- 服务提供者(serviceprovider)原语(primitive): 上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过 服务访问原语来进行交互的—形式服务访问点SAP(ServicesAccessPoint): 上层使用下层提供的服务通过层间的接口—地点;
服务,协议和接口之间的关系
参考模型上每一层都为上一层提供服务,以接口的形式供上层调用。协议作用于对应层之间