1.1 什么是因特网
1.1.1 从具体构成角度
从构成角度来看,网络由节点,边,协议构成。
- 节点
1.主机节点:主机及其上运行的应用程序
2.数据交换节点:路由器、交换机等网络交换设备 - 边:通信链路
1.接入网链路:主机连接到互联网的链路
2.主干链路:路由器间的链路 - 协议:
对等层实体在通信过程中应该遵守规则的集合
1.1.2 从服务角度
从服务角度,网络分为:
- 使用通信设施进行通信的分布式应用(如Web、VoIP、email、分布式游戏、电子商务、社交网络)
- 通信基础设施 :为分布式应用提供编程接口(通信服务)
1.2 网络边缘
1.2.1 端系统(主机)
在网络的边缘,运行着应用程序,如web,email
1.2.2 应用进程之间通信的模式:
- 客户/服务器模式(C/S模式)
服务器为主,客户端主动地向服务器请求资源,可拓展性差(随着请求的增加,服务器的能力逐渐下降,当达到一定阈值的时候,服务器的能力断崖式下降) - 对等模式(p2p模式)
每个节点既可以是客户端又可以是服务器,可拓展性强,分布式通信,请求的节点和提供资源的节点多,从多个节点下载资源,可以使得下载速度加快。
1.2.3 基础设施为网络应用提供的通信服务
- 面向连接的通信方式 (TCP)
需要握手,在数据传输之前做好准备
可靠地、按顺序地传送数据 (确认和重传)
流量控制(发送方不会淹没接收方)
拥塞控制(当网络拥塞时,发送方降低发送速率) - 无连接的通信方式 (UDP)
无连接
不可靠数据传输
无流量控制
无拥塞控制
使用tcp的应用:HTTP (Web), FTP (文件传送), Telnet (远程登录),SMTP (email)
使用udp的应用:流媒体、远程会议、 DNS、 Internet电话
1.3 网络核心
1.3.1.基本问题:数据如何通过网络进行传输
-
电路交换
(1)独享资源,不共享 (每个呼叫一旦建立起来就能够保证性能)
(2)如果呼叫没有数据发送,被分配的资源会被浪费
(3)被传统电话采用
(4)将带宽分成片 ( 频分(FDM),时分(TDM),波分(WDM),码分(CDM))
电路交换不适合计算机之间的通信
(1)连接建立时间长
(2)计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多 -
分组交换
(1)网络宽带资源不再细分为一个个片,传输时使用整个宽带
(2)传输的数据被分为一个个分组
(3)存储-转发:分组每次移动一跳(hop) 需要将整个分组存储下来再进行转发
排队延迟和丢失: 如果到达速率 > 链路的输出速率:
(1)分组将会排队,等待传输
(2)如果路由器的缓存用完了,分组会被丢弃
分组交换支持的用户数量更多(主机的通信具有突发性,按需使用 ==》分组交换有更好的共享性)
1.3.2 网络核心的功能:
- 路由:决定分组采用的源到目标的路径
- 转法:将分组从路由器的输入链路转移到输出链路
1.3.3 分组交换网络:
分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分为:
1.数据报网络 (无连接):
工作原理:
(1) 在通信之前,无须建立起一个连接,有数据就传输
(2) 每一个分组都独立路由(路径不一样,可能会失序)
(3)路由器根据分组的目标地址进行路由
2. 虚电路:
(1)在通信之前,建立虚电路
1.4 接入网和物理媒体
1.4.1接入网:
- 家庭接入:数字用户线(DSL),电缆,光纤到户(FTTH),5G固定式无线
- 企业(和家庭)接入:以太网和WiFi
- 广域无线接入:3G,LTE4G 和 5G
1.4.2 物理媒体:
- 双绞铜线
- 同轴电缆
- 光纤
- 陆地无线电信通
- 卫星无线电通道
1.5 分组延时、丢失和吞吐量
1.5.1分组延时和丢失的原因
- 分组到达链路的速率大于链路输出的的能力时,当没有可用的缓冲区时,该分组会丢失,丢失的分组可能会被前一个节点或源端系统重传(可靠的),或根本不重传(不可靠的)。
- 分组排队,传输都会产生延时
1.5.2 延时的类型
- 处理延时:检查分组首部和决定该分组导向何处所需的时间,检查比特级别的差错所需要的时间
- 排队延时:在输出链路上等待的时间,依赖于路由器的拥塞程度
- 传输延时:R=链路带宽,L=分组长度,传输延时=L/R,也就是将所有分组的比特推向链路所需要的时间。
- 传播延时 : d=物理链路的长度,s=在媒体上的传播速度,传播延时 = d/s
也就是两台路由器之间的距离 / 传播速率
1.5.4 排队延时
R = 链路带宽(bps) L = 分组长度(bits) a = 分组到达队列的平均速率
流量强度 = La / R
- 当La / R 趋于 0时:平均排队延时很小
- 当La / R 趋于 1时:延时变得很大
- 当La / R 大于 1时:比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大
1.5.5 节点延时
- d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)
- d(proc) = 处理延时 (通常是微秒数量级或更少)
- d(queue) = 排队延时 (取决于拥塞程度)
- d(trans) = 传输延时 (L/R,对低速率的链路而言很大,通常为微妙级到毫秒级)
- d(prop) = 传播延时 (几微妙到几百毫秒)
1.5.6 吞吐量
- 在源端和目标端之间传输的速率(数据量/单位时间),a向b传输,b能够收到的有效的数据量
- 瞬间吞吐率:在一个时间点的速率
- 平均吞吐率:在一个长时间内平均值
- 瓶颈链路:限制端到端吞吐的链路
1.6 协议层次及服务模型
1.6.1 为什么要分层
因为网络是一个复杂的系统,有大量的应用程序和协议、各种类型的端系统、分组交换机和各种类型的链路级媒介,为了更好地组织和实现复杂的网络模块,需要将网络分为一个个功能明确的层次,每一层借助通过层间的接口使用下一层的服务,再通过层间接口向上层提供更好的服务。从而实现复杂的网络。
每一层的功能包含下层的功能 + 本层新的功能
1.6.2 服务和服务访问点
-
服务(service):低层实体向上层实体提供它们之间的通信的能力
服务用户(service user)
服务提供者(service provider ) -
原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务 都是通过服务访问原语来进行交互的——提供服务,使用服务的形式
-
服务访问点 SAP (Services Access Point) :上层使用下层提供的服务通过层间的接口——地点(下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用)
1.6.3 服务的类型
- 面向连接的服务:
通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程 - 无连接的服务
通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃
1.6.4 服务和协议
- 服务与协议的区别
服务(Service):低层实体向上层实体提供他们之间的通信的能力,层间之间的关系是垂直的
协议(protocol):对等层实体(peer entity)之间再通信的过程中,需要遵循的规则的集合,实体之间的关系是水平 - 服务与协议的联系
本层协议的实现要靠下层提供的服务来实现
本层实体通过协议为上层提供更高级的服务
1.6.5 分层的好处
-
概念化:每层的结构清晰,便于标示网络组件,以及描述其相互关系,便于交流与讨论
-
结构化:易于维护和系统升级
改变某一层服务的实现不影响系统中的其他层次。便于采用新技术
1.6.6 Internet 协议栈
- 应用层:网络应用
为人类用户或其他应用进程提供网络应用服务(如;FTP,SMTP,HTTP,DNS) - 传输层:主机之间的数据传输
在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信(如:TCP,UDP) - 网络层:为数据报从源到目的选择路由
主机与主机之间的通信,端到端通信,不可靠(如:IP,路由协议) - 链路层:相邻网络节点间的数据传输
相邻两点的通信,点到点通信,可靠或不可靠(如:点对点协议PPP) - 物理层:在线路上传送bit
1.6.7 OSI 参考模型
- 表示层:允许应用解释传输的数据,如:加密,压缩,机器相关的表示转换。
- 会话层:数据交换的同步,检查点,恢复。
1.6.8 各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UCP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
1.6.9 封装
数据传输的过程是先封装,在经过链路层交换机或路由器时,先进行解封装再封装再继续传输,直到目标主机再解封装。
在数据传输时,一个应用层报文被传送到传输层,在最简单的情况下,传输层接受并附上附加信息,应用层的报文加上传输层的附加信息构成了传输层报文段。然后再将报文段传递给网络层,网络层再添加网络层的首部信息,包含了源和目的端系统的地址,再生成网络层数据报。再将此数据报传递给链路层,链路层增加链路层首部信息并生成链路层帧。