什么是计算机网络 #
计算机网络是通信技术与计算机技术紧密结合的产物,是一种特殊的通信网络
计算机网络是一个互联(互联互通)、**自治(无主从关系)**的计算机集合
通信系统模型 #
Internet #
全球最大的互联网络,网络之网络,ISP(Internet Service Provider)因特网服务提供商,是互联的计算设备的集合,组成:
计算设备:主机(Host)、端设备(End System)
通信链路:光纤、铜缆、无线电
分组交换:路由器(Routers)、交换机(Switches)
网络协议 #
硬件是计算机网络的基础,计算机网络的数据交换必须遵守实现约定好的协议
网络协议(network protocol),简称协议,是未进行网络中的数据交换而建立的规定、标准和约定,协议规定了通信实体之间交换信息的格式、意义、顺序以及针对收到信息或发生的事件采取的动作
协议规范了网络中所有信息的发送和接收过程,常见的协议:e.g.、TCP、IP、HTTP等
- Internet协议标准:
- RFC:Request for Comments,文档,查看权威协议描述
- IETF:互联网工程任务组
协议的三要素 #
语法(Syntax):数据和控制信息的结构和格式
语义(Semantics):需要发出何种控制信息,完成何种动作以及做出何种响应,差错控制
时序(Timing):事件顺序,速度匹配
计算机网络结构 #
- 网络边缘:
- 主机
- 运行各种网络应用
- 网络应用
- 客户/服务器(client/server)应用模型:用户发送请求,接收服务器响应,如Web、FTP
- 对等(peer-peer,P2P)应用模型:无(或不仅依赖)专用服务器,通信在对等的实体之间直接进行,如BT、Skype、QQ
- 主机
- 接入网络、物理介质:
- 有线或无线通信链路
- 带宽(bandwidth)(bps)
- 共享/独占
- 有线或无线通信链路
- 网络核心(核心网络):
- 互联的路由器(或分组转发设备)
- 数据交换,主要解决每两个主机连接的,n平方链路问题,通过动态转接、同台分配传输资源
- 电路交换,在通信之前要在通信双方之间建立一条被双方独占的物理通路,用于数据的传输
- 报文交换,以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式
- 分组交换, 基于报文交换,将报文划分为更小的数据单位:报文分组(也称为段、包、分组),分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去,当一次数据传输的所有分组都到达接收方时,接收方再将所有分组重组为原来的数据
- 数据交换,主要解决每两个主机连接的,n平方链路问题,通过动态转接、同台分配传输资源
- 互联的路由器(或分组转发设备)
计算机网络性能 #
指标 #
速率 #
即数据率(data rate)或称数据传输速率或比特率(bit rate),单位时间(秒)传输信息(比特)量,单位:b/s(bps)、kb/s(10^3^b/s)、Mb/s(10^6^b/s)、Gb/s(10^9^b/s)
带宽 #
带宽(bandwidth)原本是指信号具有的频带宽度,即最高频率和最低频率之差,单位(HZ)
网络带宽是指数字信道所能传输的最高数据率,单位b/s(bps)
延迟/时延 #
延迟=结点处理延迟(路由器检查数据、确定输出链路,通常不会超过毫秒级)+排队延迟(分组排队等待从链路传输,取决于路由器拥挤程度)+传输延迟(分组传输到链路,取决于分组长度bits和链路带宽bps)+传播延迟(在链路上传输,取决于物理链路长度和信号传播速度)】
流量强度 #
- 流量强度(traffic intensity) = La/R
- R:链路带宽(bps)
- L:分组长度(bits)
- a:平局分组到达速率
La/R ~ 0:平均排队延迟很小
La/R -> 1:平均排队延迟很大
La/R > 1:超出服务能力,平均排队延迟无限大
时延带宽积 #
时延带宽积 = 传播时延 * 带宽,又称为以比特为单位的链路长度
丢包率 #
分组转发会发生丢包,是因为分组在路由器缓存中排队,如果分组到达速率超出输出链路容量,那么该分组会被丢弃(丢包loss)
丢包率 = 丢包数 / 已发分组总数
吞吐量/率 #
表示在发送端到接收端之间传送数据速率(b/s)
计算机网络体系结构 #
计算机网络体系结构是从功能上描述计算机网络结构,而不是硬件,计算机网络中使用分层结构(network architecture网络体系结构)来描述网络,是计算机网络各层以及其协议的集合,是抽象的
- 为什么使用分层结构
- 结构清晰,由利于识别复杂系统的部件及其关系
- 模块化分层有利于系统更新、维护
- 有利于标准化
OSI参考模型 #
开放系统互连(OSI)参考模型是由国际标准化组织(ISO)与1984年提出的分层网络体系结构模型,目的是支持异构网络系统的互联互通,一共是七层
数据流向 #
上面四层也是端到端层
传输中几乎每一层都会添加头尾信息,即数据封装,增加控制信息(PDU),主要包括:地址(Address)、差错检测编码(Error-detecting code),协议控制(Protocol control)
各层功能 #
- 物理层
- 负责实现单个bit的传输,解决比特编码、数据率、比特同步、传输模式(单工、半双工、全双工)问题
- 接口特性:机械特性、电器特性、功能特性、规程特性
- 数据链路层
- 负责结点-结点(node-to-node)的数据传输,解决组帧、物理寻址、流量控制、差错控制、接入(访问)控制问题
- 网络层
- 负责源主机到目的主机数据分组(packet)交付,解决逻辑寻址、路由、分组转发问题
- 传输层
- 负责源-目的(端-端)(进程间)完整报文的传输,解决分段与重组、SAP寻址(端口号)、连接控制、流量控制、差错控制问题
- 会话层
- 负责对话控制(建立、维护),解决同步问题
- 表示层
- 负责两个系统之间交换信息的语法与语义,解决数据表示转化、加密解密、压缩解压缩问题
- 应用层
- 负责支持用户通过用户代理(如浏览器)或网络接口使用网络(服务),常见的应用层服务:文件传输(FTP)、电子邮件(SMTP)、Web(HTTP)
TCP/IP参考模型 #
数据流向 #