文章目录
- @[toc]
- 零、前言
- 一、什么是Internet
- 1.1 从具体构成角度
- 1.2 什么是协议
- 1.3 从服务角度
- 1.4 网络结构
- 二、网络边缘
- 2.1 通讯模式
- 2.2 采用网络设施的面向连接服务
- 2.3 采用基础设施的无连接服务
- 三、网络核心
- 3.1 认识网络核心
- 3.2 网络核心:电路交换
- 3.2.1 基本原理
- 3.2.2 实现方式
- 3.3 网络核心:分组交换
- 3.3.1 存储-转发
- 3.3.2 排队延迟和丢失
- 3.3.3 网络核心的关键功能
- 3.3.4 统计多路复用
- 3.3.5 分组交换 vs 电路交换
- 3.3.6 分组交换的方式
- 四、接入网和物理媒体
- 4.1 接入网
- 4.1.1 数字用户线(digital subscriber line,DSL)
- 4.1.2 线缆网络
- 3.4.3 住宅接入:电缆模式
- 4.1.4 接入网:家庭网络
- 4.1.5 企业接入网络(Ethernet)
- 4.1.6 无线接入网络
- 4.2 物理媒体
- 4.2.1 同轴电缆、光纤
- 4.2.2 无线链路
- 五、Internet 结构 和 ISP
- 5.1 互联网络结构:网络的网络
- 5.2 ISP之间的连接
- 六、分组延时、丢失和吞吐量
- 6.1 四种传输延时
- 6.2 节点延时
- 6.3 排队延时和流量强度
- 6.4 Internet 的延时和路由
- 6.5 分组丢失
- 6.6 吞吐量
- 七、协议层次和服务模型
- 7.1 协议层次
- 7.2 现实生活中的例子
- 7.3 服务和服务访问点
- 7.4 服务的类型
- 7.5 服务和协议
- 7.6 数据单元(DU)
- 7.7 分层处理和实现复杂系统的好处?
- 7.8 Internet 协议栈
- 7.9 ISO / OSI 参考模型
- 7.10 封装和解封装
- 7.11 各层次的协议数据单元
- 八、历史
- 8.1 早期(1960以前)计算机网络
- 8.2 1961-1972:早期的分组交换概念
- 8.3 1972-1980: 专用网络和网络互联
- 8.4 1980-1990:体系结构变化,网络数量激增,应用丰富
- 8.5 1990,2000's:商业化,Web,新的应用
- 8.6 2005-现在
- 九、小结
文章目录
- @[toc]
- 零、前言
- 一、什么是Internet
- 1.1 从具体构成角度
- 1.2 什么是协议
- 1.3 从服务角度
- 1.4 网络结构
- 二、网络边缘
- 2.1 通讯模式
- 2.2 采用网络设施的面向连接服务
- 2.3 采用基础设施的无连接服务
- 三、网络核心
- 3.1 认识网络核心
- 3.2 网络核心:电路交换
- 3.2.1 基本原理
- 3.2.2 实现方式
- 3.3 网络核心:分组交换
- 3.3.1 存储-转发
- 3.3.2 排队延迟和丢失
- 3.3.3 网络核心的关键功能
- 3.3.4 统计多路复用
- 3.3.5 分组交换 vs 电路交换
- 3.3.6 分组交换的方式
- 四、接入网和物理媒体
- 4.1 接入网
- 4.1.1 数字用户线(digital subscriber line,DSL)
- 4.1.2 线缆网络
- 3.4.3 住宅接入:电缆模式
- 4.1.4 接入网:家庭网络
- 4.1.5 企业接入网络(Ethernet)
- 4.1.6 无线接入网络
- 4.2 物理媒体
- 4.2.1 同轴电缆、光纤
- 4.2.2 无线链路
- 五、Internet 结构 和 ISP
- 5.1 互联网络结构:网络的网络
- 5.2 ISP之间的连接
- 六、分组延时、丢失和吞吐量
- 6.1 四种传输延时
- 6.2 节点延时
- 6.3 排队延时和流量强度
- 6.4 Internet 的延时和路由
- 6.5 分组丢失
- 6.6 吞吐量
- 七、协议层次和服务模型
- 7.1 协议层次
- 7.2 现实生活中的例子
- 7.3 服务和服务访问点
- 7.4 服务的类型
- 7.5 服务和协议
- 7.6 数据单元(DU)
- 7.7 分层处理和实现复杂系统的好处?
- 7.8 Internet 协议栈
- 7.9 ISO / OSI 参考模型
- 7.10 封装和解封装
- 7.11 各层次的协议数据单元
- 八、历史
- 8.1 早期(1960以前)计算机网络
- 8.2 1961-1972:早期的分组交换概念
- 8.3 1972-1980: 专用网络和网络互联
- 8.4 1980-1990:体系结构变化,网络数量激增,应用丰富
- 8.5 1990,2000's:商业化,Web,新的应用
- 8.6 2005-现在
- 九、小结
零、前言
本章作为概述,和大部分课程一样,主要目标为 了解基本术语和概念,基本原理。主要以Internet为例。
一、什么是Internet
1.1 从具体构成角度
Internet 是一个世界范围的计算机网络,互联了遍及全世界的数十亿计算设备,这些设备可以是传统桌面PC,Linux 工作站以及所谓的服务器,也可以是智能手机,家用电器,汽车等。
这些设备我们将其看作节点:
-
**主机(host)**以及运行在上面的应用程序
-
主机也称为端系统(end system)
- 端系统 通过 通信链路(communication link) 和 **分组交换机(packet switch)**连接。
- 端系统 通过 **因特网服务提供商(Internet Service Provider,ISP)**接入因特网
通信链路由不同物理媒体组成,包括同轴电缆、铜线、光纤和无线电频谱。链路的 传输速率(transmission rate) 以**bps(bit / s)**描述。
- 当一台端系统向另一台端系统发送数据时,发送端系统将数据分段,为每段加上首部字节,由此形成的信息称为 分组(packet)。
分组交换机:转发分组,即从一条 入通信链路 接收到达的分组,并从一条 出通信链路 转发该分组。
两种著名的类型是路由器(router)和链路层交换机(link - layer switch)。
- 链路层交换机通常用于接入网,路由器通常用于网络核心
- 从发送端到接收端系统,一个分组经历的一系列通信链路和分组交换机称为通过该网络的路径(route 或 path)
端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),由协议来控制信息的发送和接收。
- 如**TCP(Transmission Control Protocol,传输控制协议) 和 IP(Internet Protocol,网络协议)**这两个在Internet中最为重要的协议,IP协议定义了路由器和端系统之间发送和接收的分组格式。Internet 的主要协议统称为 TCP/IP
1.2 什么是协议
1、人类协议类比
- 你好
- 你好
- “几点了?”
- "2:00”
在人类协议中,有我们发送的特定报文,也有我们根据接收到的应答报文或其他事件(例如在某个给定的时间内没有回答)采取的动作。
如果人们使用不同的协议(比如-几点啦?-我吃过饭了。),这些协议就不能交互。
又如 课堂上老师滔滔不绝,你举起手(发送隐含报文),老师:请讲
你提出问题(向老师传输报文)
老师听取问题(接收报文)
老师回答(传输回答报文)
报文的发送和接收,以及这些报文发送和接收时所采取的一系列约定俗成的动作,是 上面这个”提问与回答“协议的关键所在。
2、网络协议
网络协议类似于人类协议,只不过交换报文和采取动作的实体是某些设备的硬件或组件。
因特网中,涉及两个或多个远程通信实体的所有活动都受协议的制约
- 例如,在两台物理上连接的计算机中,硬件实现的协议控制了在两块网络接口卡间的“线上”的比特流;在端系统中,拥塞控制协议控制了在发送方和接收方之间传输的分组发送的速率;路由器中的协议决定了分组从源到目的地的路径。
协议(Protocol)定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或其它事件方面所采取的动作。
1.3 从服务角度
使用通信设施进行通信的**分布式应用程序(distributed application)**是网络存在的理由
- Web,VoIP,email,分布式游戏,电子商务,社交网络……
它们并不运行在网络核心中的分组交换机中,它们如何互相发送数据呢?
这使得我们从为应用程序提供服务的基础设施的角度来描述因特网,通信基础设施为apps提供编程接口(通信服务)
- 将发送和接收数据的apps与互联网连接起来
- 为app应用提供服务选择,类似于邮政服务:
- 无连接不可靠服务
- 面向连接的可靠服务
1.4 网络结构
互联网大致分为如下结构:
- 网络边缘
- 主机
- 应用程序(客户端和服务器)
- 网络核心
- 互联着的路由器
- 网络的网络
- 接入网、物理媒体
- 有线或者无线通信链路
主机上的应用是网络存在的理由,应用程序之间需要交换报文。
接入网和物理媒体将网络边缘接入到网络核心,由网络核心来实现端到端的数据交换,它实际上是由数百万的交换节点如路由器、交换机组成的一个分布式的系统,节点相互配合,完成了从源主机到目标主机的数据的发送和接收。
下面从外到内,介绍网络结构。
二、网络边缘
2.1 通讯模式
前面我们把与因特网相连的计算机和其他设备称为端系统。因为它们处于网络的边缘。
应用进程之间通信的模式大概有如下两种:
客户/服务器模式
- 客户端向服务器请求、接收服务
- 如Web浏览器/服务器;email/客户端/服务器
客户通常指桌面PC、移动PC和智能手机,而服务器通常是强大的机器,用于存储和发布Web页面、流视频、中继电子邮件等。
随着客户数量增加,服务器数目也增多,继而通信链路也要扩容。这样导致服务器负载很大,很容易崩溃。
亦即,客户端服务器模式的可扩展性太差。
对等(peer-peer)模式
- 很少(甚至没有)专门的服务器
- 如 Gnutella、KaZaA、Emule
在这种模式下,每个节点既是客户端,又是服务器。
比如一个节点A向节点B请求某个资源片段,B拥有一部分,此时B属于服务器,接着B向节点C请求剩下的部分,此时B又是客户端。
基础设施为端系统提供的通信方式又可分为如下两种:
- 面向连接服务
- 无连接服务
2.2 采用网络设施的面向连接服务
目标:在端系统之间传输数据。
- 握手:在数据传输之前做好准备
- 人类协议中:你好、你好
- 两个通信主机之间为连接建立状态
- TCP-传输控制协议(Transmission Control Protocol)
- Internet 上面向连接的服务
TCP 服务:
- 可靠地、按顺序地传送数据
- 确认和重传
- 流量控制
- 发送方不会淹没接收方
- 拥塞控制
- 当网络拥塞时,发送方降低发送频率
2.3 采用基础设施的无连接服务
目标:在端系统之间传输数据。
-
无连接服务
-
UDP - 用户数据报协议(User Datagram Protocol)[RFC-768]
- 无连接
- 不可靠数据传输。发出去就不管了,丢了就丢了。
- 无流量控制
- 无拥塞控制
UDP虽然不可靠,但是传输速度快,在很多实时场景会应用。
三、网络核心
3.1 认识网络核心
网络核心:路由器的网状网络。
基本问题:数据怎样通过网络进行传输?
通过网络链路和交换机移动数据有两种基本方法:电路交换(circuitswitching)和分组交换(packetswitehing)。
- 电路交换:为每个呼叫预留一条专有电路,如电话网
- 分组交换:
- 将要传送的数据分成一个个单位:分组
- 将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端
- 每段:采用链路的最大传输能力(带宽)
3.2 网络核心:电路交换
3.2.1 基本原理
端到端的资源被分配给从源端到目标端的呼叫“call”;
- 即预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)
- 如上图,每段链路有4条线路
- 该呼叫采用了上面链路的第2个线路,右边链路的第1个线路(piece)
- 独享资源:不同享
- 每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会浪费
- 通常被传统电话网络采用
电路交换为呼叫段预留端-端资源
- 链路带宽、交换能力
- 专用资源:不共享
- 优点:保证性能
- 缺点:要求建立呼叫连接,有时通讯时间很短,那么建立连接的开销就显得过大了
3.2.2 实现方式
网络资源(如带宽)被分成片(piece):
- 为呼叫分配片
- 如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)
而划分片的方式有:
- 频分(Frequency-division multiplexing)
- 时分(Time-division multiplexing)
- 波分(Wave-division multiplexing)
- 码分(Code-division multiplexing)
一般来说,我们认为链路中的电路是通过多路复用技术来实现的。多路复用技术是利用一条链路同时传输多路信号的技术。
根据上面的划分片的方式,则有频分复用(Frequency-Division Multiplexing, FDM)、时分复用(Time-Division Multiplexing, TDM)、波分复用(Wave-division multiplexing),WDM、码分复用(Code-division multiplexing),CDM
频分多路复用FDM
频分多路复用通过划分链路的带宽,将共享的链路分割成几个独立的通道。在连接期间链路为每条连接专用一个频段。
上图显示了频分多路复用划分频谱的原理。每个信道之间必须用狭长的频带(警戒频带)分割,以防止信号交叉。
时分多路复用TDM
时分多路复用通过划分时间为固定的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据。
波分多路复用 WDM
波分复用是一种光纤通信技术,将输入的多路光信号调制到特定的频率上,然后将调制后的信号复用到一根光纤上,然后在接收端经过解复用将不同波长的光信号分离,通过不同的检测器将其解调转换成电信号输出。
不是重点,不多介绍。
码分多路复用 CDM
码分多路复用会在后续3G移动通讯涉及,这里略。
计算举例
在一个电路交换网络上,从主机A到主机B发送一个640’000比特的文件需要多长时间?
- 所有的链路速率为 1.536 Mbps
- 每条链路使用时隙数为 24 的TDM
- 建立端-端的电路需 500 ms
由于是时隙数为 24 的TDM,所以在一个时间片内每条链路的速率为:1.536 Mbps / 24 = 64kbps
传输时间:640 kb / 64kbps = 10s
总时间:传输时间 + 建立时间 = 10.5 s
事实上这里忽略了传输延迟
电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间通信具有突发性,如果使用线路交换,则浪费的片比较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用
- 可靠性不高
3.3 网络核心:分组交换
分组交换以分组为单位,使用存储转发的方式。
- 网络带宽资源不再分为一个个的片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组
资源共享,按需使用:
- 存储-转发:分组每次移动一跳(hop)
- 在转发之前,节点必须收到整个分组
- 延迟比电路交换要大,因为要等到接收完整个分组后才转发
- 有排队时间,但是换取了共享性
3.3.1 存储-转发
- 被传输到下一个链路之前,整个分组必须到达路由器:存储-转发
- 在一个速率为R bps 的链路,一个长度为L bits 的分组的存储转发延时:L/R s
比如L = 7.5 Mbits,R = 1.5 Mbps,3次存储转发的延时 = 15s
3.3.2 排队延迟和丢失
每台分组交换机有多条链路与之相连。
对于每条相连的链路,分组交换机具有一个输出缓存(output buffer,也称为输出队列)
因而如果多个分组接连到达时,其它分组要等待正在传输的分组。
因此除了存储-转发时延外,分组还要承受输出缓存的排队时延(queuing delay)。
但是缓存容量是有限的,当缓存已满,后续到达的分组就会被丢弃,我们称之为分组丢失(丢包)(Packet loss)
3.3.3 网络核心的关键功能
路由:决定分组采用的从源到目标的路径。
- 路由算法
转发:将分组从路由器的输入链路转移到输出链路。
3.3.4 统计多路复用
分组交换也可以看成是一种时分复用。
A 和 B 在时间上依次使用带宽资源。
这种分组没有固定的模式,我们称之为统计多路复用。
3.3.5 分组交换 vs 电路交换
同样的网络资源,分组交换允许更多用户使用网络!
-
1 Mb/s 链路
-
每个用户
- 活动时 100kb/s
- 10% 的时间是活动的
-
对于电路交换
- 最多给10个用户服务
-
分组交换
-
35 用户时
-
>= 10 个用户活动的概率 = 0.0004
-
分组交换是“突发数据的胜利者”
- 适合于对突发式数据传输
- 资源共享
- 简单、不必建立呼叫
- 过度使用会造成网络拥塞:分组延时和丢失
- 对可靠地数据传输需要协议来约束:拥塞控制
- 怎样提供类似电路交换的服务?(来保证带宽)
- 保证音频/视频应用需要的带宽
- 一个仍未解决的问题(chapter 7)
3.3.6 分组交换的方式
分组交换:分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internet
- 虚电路网络
- 每个分组都带标签(虚电路标识VCID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 在路由维持每个呼叫的状态信息
- X.25 和 ATM
数据报(datagram)工作原理
- 在通信之前,无须建立起一个连接,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由
虚电路(virtual circuit)工作原理
每次到达交换节点,都通过查表来决定下一跳
四、接入网和物理媒体
4.1 接入网
接入网:将端系统物理连接到其**边缘路由器(edge router)**上的网络。
大致有下面几种:
- 住宅接入网络
- 单位接入网络(学校、公司)
- 无线接入网络
需要关注的指标:
- 接入网络的带宽(bits per second)
- 共享/专用?
住宅接入:modem
modem:调制解调器。(modulate & demodulate)
将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来;反之亦然
- 调频
- 调幅
- 调相位
- 综合调制
拨号调制解调器
- 56Kbps 的速率直接接入路由器(通常更低)
- 不能同时上网和打电话,不能总是在线
4.1.1 数字用户线(digital subscriber line,DSL)
- 采用现存的到交换局DSLAM的电话线
- DSL线路上的数据被传到互联网
- DSL线路上的语音被传到电话网
- < 2.5 Mbps上行传输速率(typically < 1 Mbps)
- < 24 Mbps下行传输速率(typically < 10 Mbps)
4.1.2 线缆网络
有线电视信号线缆双向改造
FDM:在不同频段传输不同信道的数据,数字电视和上网数据(上下行)
HFC:混合同轴电缆,hybrid fiber coax
- 应用了光纤和同轴电缆
- 非对称:最高30Mbps的下行传输速率,2 Mbps 上行传输速率
线缆和光纤网络将各个家庭用户接入到 ISP 和 路由器
各用户共享到线缆头端的接入网络
- 与DSL不同,DSL每个用户一个专用线路到CO(central office)
3.4.3 住宅接入:电缆模式
住宅从有线电视公司获得了电缆因特网接入。光缆将电缆头连接到地区枢纽,从这里使用传统的同轴电缆到达各家各户。
4.1.4 接入网:家庭网络
家庭将宽带住宅接入 DSL 或 线缆 的调制解调器 和 廉价的无线局域网技术结合,产生强大的家庭网络。
4.1.5 企业接入网络(Ethernet)
- 经常被企业或者大学等机构采用
- 10Mbps,100Mbps,1Gbps,10Gbps传输率
- 现在,端系统经常直接接到以太网络交换机上
4.1.6 无线接入网络
- 各无线端系统共享无线接入网络(端系统到无线路由器)
- 通过基站或者叫接入点
WLANs(wireless local area net):
- 建筑物内部(100 ft)
- 802.11 b/g(WiFi):11,54 Mbps 传输速率
广域无线接入
- 由电信运营商提供
- 1 到 10 Mbps
- 3G,4G:LTE(Long-Term-Evolution,长期演进)
4.2 物理媒体
Bit:在发送-接收对间传播
物理链路:连接每个发送-接收对之间的物理媒体
导引型媒体:信号沿着固体媒介被导引,同轴电缆、光纤、双绞线
非导引型媒体:开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
双绞线(TP):两根绝缘铜导线拧和
- 5类:100Mbps 以太网,Gbps 千兆位以太网
- 6类:10Gbps 万兆以太网
4.2.1 同轴电缆、光纤
同轴电缆
- 两根同轴的铜导线
- 双向
- 基带电缆
- 电缆上一个单个信道
- Ethernet
- 宽带线缆
- 电缆上有多个信道
- HFC
光纤和光缆
- 光脉冲,每个脉冲表示一个bit,在玻璃纤维中传输
- 高速:
- 点到点的高速传输(如10 Gps-100 Gps传输速率)
- 低误码率:在两个中继器之间可以由很长的距离,不受电磁噪声的干扰
- 安全
4.2.2 无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应
- 反射
- 吸收
- 干扰
无线链路类型:
-
地面微波
-
LAN(e.g. WiFi)
-
wide-area(e.g. 蜂窝)
- 3G
- 4G
- 5G
-
卫星
- 每个信道Kbps 到45Mbps(或者多个聚集信道)
- 270 msec端到端延迟
- 同步静止卫星和低轨卫星
五、Internet 结构 和 ISP
5.1 互联网络结构:网络的网络
- 端系统通过**接入ISPs(Internet Service Providers)**连接到互联网
- 住宅、公司和大学的ISPs
- 接入ISPs相应的必须是互联的
- 因此任意2个端系统可相互发送分组到对方
- 导致“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
问题:给定数百万接入ISPs,如何将它们互联到一起
暴力构造完全图:可扩展性太差,而且成本也高
一个选项:将每个接入ISP都连接到全局ISP(全局范围内覆盖)?
客户ISPs和提供者ISPs有经济合约
竞争:但如果全局ISP是有利可为的业务,那会有竞争者
合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系
…然后业务会细分(全球接入和区域接入),区域网络将出现,用与将接入ISPs连接到全局ISPS
然后内容提供商网络(Internet Content Providers, e.g.Google,Microsoft,Akamai) 可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出
在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、但是之间有着多重连接)
-
“tier-1” commercial ISPs(e.g.,Level 3,Sprint,AT&T,NTT),国家或者国际范围的覆盖
-
content provider network(e.g. Google):将它们的数据中心接入ISP,方便周边用户的访问:通常私有网络之间用专网绕过第一层ISP和区域ISPs
-
上面是一个松散的层次模型
-
中心:第一层ISP(如UUNet,BBN/Genuity,Sprint,AT&T)国家/国际覆盖,速率极高
- 直接与其它第一层ISP相连
- 与大量的第二层ISP和其它客户网络相连
第二层ISP:更小些的(通常是区域性的)ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP(P2P)
第三层ISP与其它本地ISP
- 接入网(与端系统最近)
一个分组要经过许多网络。
- 很多内容提供商(如:Google,Akamai)可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据
- 连接若干local ISP和各级(包括一层)ISP,更加靠近用户
- 经济考虑:少付费
- 用户考虑:更快
5.2 ISP之间的连接
再看下面这张结构图
- POP:高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互接,不涉及费用结算
- IXP:多个对等ISP互联互通之处,通常不涉及费用结算
- 对等接入
- ICP自己部署专用网络,同时和各级ISP连接
六、分组延时、丢失和吞吐量
分组丢失和延时是怎样发生的?
在路由器缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力
- 分组等待到达队头、被传输
6.1 四种传输延时
1、节点处理延时
- 检查分组首部和决定将该分组导向何处所需要的时间。
- 检查 bit 级别差错所需要的时间
2、排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
3、传输延时
- R = 链路带宽(bps)
- L = 分组长度(bits)
- 将分组发送到链路上的时间(将分组的所有 bit 推向链路所需时间):L / R
- 存储转发延时
4、传播延时
一旦一个比特被推向链路,该比特需要向路由器B传播。
从该链路的起点到路由器B传播所需要的时间是传播时延。
- d = 物理链路的长度
- s = 在媒体上的传播速度( 2 × 1 0 8 m / s e c ~2\times 10^8 m/sec 2×108m/sec)
- 传输延时 = d / s
我们可以用车队来类比:
- 汽车以 100km/hr 的速度传播
- 收费站服务每辆车需12s(传输时间)
- 汽车 ~ bit ;车队 ~ 分组
Q: 在车队在第二个收费站排列好之前需要多长时间?
即:从车队的第一辆车到达第一个收费站开始计时,到这个车队的最后一辆车离开第二个收费站,共需要多少时间?
将车队全部打上高速:12 * 10 = 120s
最后一辆车从第一个收费站到第二个收费站:100 / 100 = 1hr
则共需 62 min
现在修改下参数:
- 汽车以 1000km/hr 的速度传播汽车
- 收费站服务每辆车需 1分钟
Q: 在所有的汽车被第一个收费站服务之前,汽车会到达第二个收费站吗?
会,7 min 后第一辆车到达第二个收费站
在整个分组被第一个路由器传输之前,第一个比特已经到达了第二个路由器!
6.2 节点延时
d n o d a l = d p r o c + d q u e u e + d t r a n s + d p r o p d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop} dnodal=dproc+dqueue+dtrans+dprop
- d p r o c d_{proc} dproc = 处理延时
- 通常是微秒数量级或者更少
- d q u e u e d_{queue} dqueue = 排队延时
- 取决于拥塞程度
- d t r a n s d_{trans} dtrans = 传输延时
- = L / R,对低速率的链路而言很大(如拨号),通常为微秒级到毫秒级
- d p r o p d_{prop} dprop = 传播延时
- 几毫秒到几百毫秒
6.3 排队延时和流量强度
- R = 链路带宽(bps)
- L = 分组长度(bits)
- a = 分组到达队列的平均速率
流量强度 = La / R
- La / R ~ 0,平均排队延时很小
- La / R -> 1,延时变得很大
- La / R > 1,比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大
对于 La / R 趋于 1 为何延时变得很大,需要了解排队论的知识,个人理解 在一条流量强度为1的公路上,如果某些事件引起一个即便是稍微大于平常量的流量,经受的时延就可能很大。
6.4 Internet 的延时和路由
Internet 的 延时和路由是怎样的呢?
Traceroute 诊断程序:提供从源端,经过路由器,到目的地延时测量。
- 沿着目的地的路径,向每个路由器发送3个探测组
- 路由器 i 将向发送方返回一个分组
- 发送方对发送和回复之间间隔计时
大黑书上给了从 源主机 gaia.cs.umass.edu 到 cis.poly.edu 的Traceroute 程序输出的例子(Traceroute 向目的地发送了3 × N 个分组):
第一列是 n,即第 n 台路由器 接收 第 n 个分组时,向源返回的报文。
第二列时路由器名称
第三列为路由器地址
最后三列是 3次实验的往返时延
6.5 分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
6.6 吞吐量
吞吐量:在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内的平均值
上图显示了服务器和客户两个端系统,考虑从服务器传送一个文件的吞吐量
Rs 表示服务器和路由器之间的链路速率
Rc 表示路由器和客户之间的链路速率
显然 服务器不能以快于 Rs bps 的速率通过其链路注入比特
客户也不能以快于 Rc bps 的速率转发比特
因而对于这种两链路网络,其吞吐量为 min {Rs, Rc}
也就是说,它是瓶颈链路的传输速率。
端到端的平均吞吐:min {R1, R2,… Rn}
再看一个互联网场景
此时链路上每一段的实际可用带宽?
每个连接上的端到端吞吐:
min {Rc, Rs, R / 10}
实际上:Rc 或者 Rs 经常是瓶颈。
七、协议层次和服务模型
7.1 协议层次
网络是一个复杂的系统。
- 网路功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等。
- 现实来看,网络的许多构成元素和设备:
- 主机
- 路由器
- 各种媒体的链路
- 应用
- 协议
- 硬件、软件
问题是:如何组织和实现这个复杂的网络功能?
7.2 现实生活中的例子
我们现实中是如何描述航线系统这个复杂的系统的?
将航线功能划分为一些层次,如上图
层次化方式实现复杂网络功能:
- 将网络复杂的功能分成功能明确的层次,每一层实现了其中一个或者一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的) + 更下层所提供的服务
7.3 服务和服务访问点
- 服务(Service):低层实体向上层实体提供他们之间通信的能力:
- 服务用户(service user)
- 服务提供者(service provider)
- **原语(primitive):**上层使用下层服务的形式,高层使用底层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的——形式
- 服务访问点 SAP(Services Access Point):上层使用下层提供的服务通过层间的接口——地点
- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
- 可以有不同的实现,队列
- 例子:传输层的SAP:端口(port)
7.4 服务的类型
- 面向连接的服务和无连接的服务——方式
- 面向连接的服务(Connection-oriented Service)
- 连接(Connection):两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信的过程:建立连接、通信、拆除连接
- 面向连接的服务例子:网络层的连接被连成虚电路
- 适用范围:对于大的数据块要传输;不适合小的零星报文
- 特点:保序
- 服务类型:
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登陆
- 不可靠的连接 数字化声音
- 面向连接的服务(Connection-oriented Service)
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包
- 适用范围:适合传送零星数据
- 服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
7.5 服务和协议
- 服务和协议的区别
- 服务(Service):低层实体向上层提供它们之间的通信能力,是通过原语(Primitive)来操作的,垂直
- 协议(Protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
- 服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
7.6 数据单元(DU)
- 第 n 层 通过SAP 向上层提供服务
- 第n + 1 层 要向第 n 层 传输的数据称为 SDU(Service Data Unit)
- 传输的时候需要一些控制信息,称为 ICI(Interface Data Unit)
- 对于第 n 层而言,上层的 SDU 通过 层间接口SAP 加上本层的 头部(Header)就形成了本层的 PDU(Protocol Data Unit)
- 第 n 层的PDU 再往下又作为 SDU 下传
SDU 向下的传输一般为三种关系:
- 1对多的关系:上层发送的SDU 太大了,需要分解成分组大小:n-PDU
- 多对1的关系:上层发送了多个非常小的SDU,下层需要将小单元合成一个分组
- 1对1的关系:上层发送了一个数据单元,没有超出分组大小
我们自顶向下的看,每层都有自己的SDU:
- 应用层:应用报文
- 传输层:报文段
- 网络层:分组(如果是无连接:数据报)
- 链路层:帧(frame)
- 物理层:比较含糊,可以称为 位 等等
7.7 分层处理和实现复杂系统的好处?
对付复杂的系统
- 概念化:结构清晰,便于标示网络组件,以及描述相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统的其他层次
- 对于其他层次而言是透明的
- 如改变登机程序并不影响系统的其它部分
- 改变2个秘书使用的通信方式不影响2个翻译的工作
- 改变2个翻译使用的语言也不影响上下2个层次的工作
- 改变某一层服务的实现不影响系统的其他层次
分层思想有害的地方:分层与模块化导致效率比较低。(但是好处是远大于坏处的)
7.8 Internet 协议栈
- 应用层:网络应用
- 为人类用户或者其它应用进程提供网络应用服务
- FTP, SMTP, HTTP, DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
- TCP, UDP
- 网络层:为数据报从源到目的选择路由
- 主机与主机之间的通信,端到端通信,不可靠
- IP,路由协议
- 链路层:相邻网络节点间的数据传输
- 2个相邻2点的通信,点到点通信,可靠或不可靠
- 点对对协议PPP,802.11(wifi),Ethernet
- 物理层:在线路上传送bit
7.9 ISO / OSI 参考模型
- 表示层:允许应用解释传输的数据,e.g.,加密,压缩,机器相关的表示转换
- 会话层:数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层!
- 这些服务如果需要的话,由应用程序自己做‘
7.10 封装和解封装
下面这张图非常直观地解释了封装和解封装的过程
7.11 各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
八、历史
8.1 早期(1960以前)计算机网络
- 线路交换网络
- 线路交换的特性使得其不适合计算机之间的通信
- 线路建立时间过长
- 独享方式占用通信资源,不适合突发性很强的计算机之间的通信
- 可靠性不高:非常不适合军事通信
- 三个小组独立地开展分组交换的研究
- 1961: Kleinrock(MIT),排队论,展现了分组交换的有效性
- 1964: Baran(美国兰德公司)——军用网络上的分组交换
- 1964: Donald(英国)等,NPL
8.2 1961-1972:早期的分组交换概念
- 1967: 美国高级研究计划研究局考虑ARPAnet
- Kleinrock在MIT的同事
- 1969: 第一个 ARPAnet节点开始工作, UCLA
- IMP: 接口报文处理机
- 1969年底: 4个节点
- 1972:
- ARPAnet 公众演示
- 网络控制协议是第一个端系统直接的主机-主机协议
- NCP协议: 相当于传输层和网络层在一起,支持应用开发
- 第一个e-mail 程序(BBN)
- ARPAnet有15个节点
8.3 1972-1980: 专用网络和网络互联
- 出现了很多对以后来说重要的网络形式,雨后春笋
- 1970: ALOHAnet,夏威夷上的微波网络
- 1973: Metcalfe在博士论文中提出了Ethernet
- ATM网络
- ALOHAnet,Telenet,Cyclades法国等
- 1970后期,网络体系结构的必要性
- 专用的体系结构: DECnet,SNA,XNA
- 标准化的体系结构
- 1974: 网际互联的Cerf and Kahn 体系结构
- 1979: ARPAnet的规模在持续增加,体系结构也在酝酿着变化,以支持网络互联和其他目的(性能)需求
- 节点数目增加,有200个节点
Cerf and Kahn 网络互联原则:
- 极简、自治
- 尽力而为(best effort)服务模型
- 无状态的路由器
- 分布控制
定义了今天的Internet体系结构
8.4 1980-1990:体系结构变化,网络数量激增,应用丰富
-
1983: TCP/IP部署,标记日
- NCP分化成2个层次,TCP/IP,从而出现UDP
- 覆盖式IP解决网络互联问题
- 主机设备和网络交换设备分开
-
1982: smtp e-mail协议定义
-
1983: DNS 定义,完成域名到IP地址的转换
-
1985: ftp 协议定义
-
1988: TCP拥塞控制
-
其他网络形式的发展
- 新的国家级网络: Csnet,BITnet, NSFnet, Minitel
- 1985年: ISO / OSI提出,时机不对且太繁琐,
-
100,000 主机连接到网络联邦
8.5 1990,2000’s:商业化,Web,新的应用
- 1990年代初: NSF对ARPAnet 的访问网,双主干,ARPAnet退役
- 1991: NSF放宽了对NSFnet用于商业目的的限制(1995退役),ASFNET非盈利性机构维护,后面叫Internet
- UNIX 中TCP/IP的 免费捆绑
- 1990年代初: Web
- hypertext [Bush 1945, Nelson1960’s]
HTML,HTTP: Berners-Lee - 1994: Mosaic (Netscape,andreesen)
- 1990年代后期: Web的商业化
1990后期-21世纪
- TCP/TP体系结构的包容性,在其上部署应用便捷,出现非常多的应用
- 新一代杀手级应用(即时讯息,P2P文件共享,社交网络等更进一步促进互联网的发
- 安全问题不断出现和修订(互联网的补丁对策)
- 2001网络泡沫,使得一些好公司沉淀下来(谷歌,微软,苹果,yahoo,思科)
- 主干网的速率达到Gbps
8.6 2005-现在
- ~50+亿主机:包括智能手机和平板
- 宽带接入的快速部署
- 高速无线接入无处不在:移动互联时代
- 4G部署, 5G蓄势待发
- 带宽大,终端性能高,价格便宜,应用不断增多
- 在线社交网络等新型应用的出现:
- Facebook: 10亿用户
- 微信,qq: 数十亿用户
- 内容提供商(Google,Microsoft)创建他们自己的网络
- 通过自己的专用网络提供对搜索、视频内容和电子邮件的即刻访问
- 电子商务,大学,企业在云中运行他们的服务(eg, Amazon EC2)
- 体系结构酝酿着大的变化,未来网络蠢蠢欲动
九、小结
- 组成角度看 什么是互联网
- 边缘:端系统(包括应用)+ 接入网
- 核心:网络交换设备 + 通信链路
- 协议:对等层实体通信过程中遵守的规则的集合
- 语法、语义、时序
- 为了实现复杂的网络功能,采用分层方式设计、实现和调试
- 应用层,传输层,网络层,数据链路层,物理层
- 协议数据单位:
- 报文、报文段、分组、帧、位
- 从服务角度看互联网
- 通信服务基础设施
- 提供的通信服务:面向连接 无连接
- 应用
- 通信服务基础设施
- 应用之间的交互
- Clent-Server 模式
- P2P模式
- 数据交换
- 分组数据交换
- 线路交换
- 比较线路交换和分组交换
- 分组交换的2种方式
- 虚电路
- 数据报
- 接入网和物理媒介
- 接入网技术:
- 住宅:ADSL,拨号,cable modem
- 单位:以太网
- 无线接入方式
- 物理媒介
- 光纤,同轴电缆,以太网,双绞线
- 接入网技术:
- ISP层次结构
- 分组交换网络中延迟和丢失是如何发生的
- 延迟的组成:处理、传输、传播、排队
- 网络的分层体系结构
- 分层体系结构
- 服务
- 协议数据单元
- 封装与解封装
- 历史