计算机网络-第一章-计算机网络概述
第一章 计算机网络概述
1.1 Internet介绍
1.1.1 网络和计算机网络
- 网络不仅仅是计算机网络,比如蜘蛛网,神经网络
- 计算机网络是计算机之间互联构成的系统
这里要区分的概念
- 网络不仅仅计算机网络
- 计算机网络 ≠ Internet
- Internet(网际)是网络的网络
1.1.2 Internet组成
(1) 构成的角度
从零件的角度来看:
- 互联网包括节点、边(链路)和协议
- 节点包括主机节点和数据交换节点、边包括接入链路和骨干链路
节点:
- 主机节点:是数据的源,比如笔记本、手机,只能冰箱、Web服务器等设备
- 数据交换节点:中继器、路由器、交换机、负载均衡设备等,不是源也不是目标,是数据的中转节点
- 一般用圆形表示数据交换节点,方形表示主机节点
- 节点之间的边叫做链路
边:链路
- 接入链路(access):主机和数据交换节点连在一起的链路
- 骨干链路:数据交换节点之间的链路
协议:
- 支持互联网工作的标准,不同厂商的网络设备通过协议能工共同工作
- 互联网是以TCP/IP协议为主的一簇协议(即协议组)
- 由这一组协议构成的网络,叫做互联网
- 如果只有TCP/IP,但是不于外接相连,就是内部网(也就是说不是以TCP/IP协议支撑的网络都是互联网)
网络互联设备的角度
- 数以亿计的、互联的计算设备:
- 主机 = 端系统
- 运行网络应用程序
- 通信链路
- 光纤、同轴电缆、无线电 、卫星
- 传输速率 = 带宽(bps)
- 分组交换设备:转发分 组 (packets)
- 路由器和交换机
① 节点
端(节点)包括:
- 设备本身
- 设备上的网络操作系统(使得应用进程能够通信)
- 运行在设备上的网络程序
也就是端(节点)不仅仅包含硬件,还包含硬件之上的软件
- 主机节点:也叫作 host 或者 end system
- 数据交换节点:有交换机,路由器等
端系统的形式有很多,特别是在物联网时代,端的形式是多种多样的
② 链路
通信链路(边):
- 网线、光纤本身
- 建立在网线之上支持工作的协议
- 重要指标是传输速度
③ 协议
- 可以理解为对等层的实体在通信过程中应该遵守的标准
- 比如HTTP协议,就是对等的应用层之间通信的标准,发送方以什么形式接受,接收方以什么形式解析
- TCP也是如此,一个端的TCP实体和另一个端的TCP实体也算是对等层的实体
协议定义了在两个或多个通信实体(对等层的实体)之间交换的报文格式和次序,以及在报文传输和/或接收或 其他事件方面所采取的动作
(2) 层次的角度
-
Internet:“网络的网络” (网际)
- 松散的层次结构,互连的ISP
- 公共Internet vs. 专用intranet
- 教育网、军事网都是网络,互联网就是将这些网络都连起来
- 从构成的角度来看,互联网是节点和边连起来的
- 从层次的角度来看,互联网是由多个网络连接起来的,每个网络之内还包含更小的网络,网络还有更小的网络,更小的网络之间可能连接,还可能与其他网络之间的小网络连接
从层次角度:
- 互联网是一对网络通过网络互联设备连起来的网络的网络
(3) 服务的角度
互联网是:
- 应用进程角度:分布式的进程(应用)
- 基础设施角度:基础设施
- 互联网就是分布式的应用以及为应用提供通信服务的基础设施
- 基础设施包括主机中应用层之下的所有实体,包括TCP,IP等实体
进行通信的分布式应用的角度
- 使用通信设施进行通信的分布式应用
- Web、VoIP、email、分布式游戏、电子商务、社交网络
- 通信基础设施为apps提供编程接口(通信服务>
- 将发送和接收数据的apps与互联网连接起来
- 为app应用提供服务选择,类似于邮政服务:
- 无连接不可靠服务
- 面向连接的可靠服务
也就是操作系统为应用进程提供API,比如socket,发送接受message,实现网络应用
基础设施如何为分布式应用提供通信服务:提供API,比如socket
基础设施向上层提供的服务有两种
一种是面向连接的服务—TCP,无连接的服务—UDP
1.1.3 Internet标准
- RFC: Request for comments (一个互联网的文档)
- IETF: Internet Engineering Task Force(非联网的互联网组织,有任何想法都以RFC文档的形式发送到IETF的网站上,包括TCP和IP等都是如此,全球参与)
1.2 网络组成结构
之前按照零件将网络划分为
- 节点
- 链路
- 协议
按照组成类型来看互联网,互联网包含三个子系统:网络边缘、网络核心以及接入网
-
网络边缘(edge):
- 主机
- 以及应用程序(客户端和服务 器)
-
网络核心(core):
- 互连着的路由器
- 网络的网络
-
接入网、物理媒体:
- 有线或者无线通信链路
接入就是边缘接入核心的连接
-
边缘的作用:应用的载体,边缘上的应用是网络存在的理由
-
边缘之间如果要互联,不可能两两之间链接
-
而是要依靠中间的核心构建成的可复用的网络连接
-
网络核心的作用就是数据交换(就好像在两个边缘之间连接起来)
1.2.1 网络边缘
网络的边缘:
- 分布式的应用以及支持分布式应用通信的基础设施(应用层下方的部分)
(1) 应用进程的通信模式
应用进程之间通信的模式
- 客户/服务器(CS)模式
- 客户端向服务器请求、接收服务
- 如Web、电子邮件的浏览器/服务器
- 是主从模式(Master-slave)
- 服务器被动地等待服务器的请求,所有的资源都在服务器上
服务器挂了就完蛋了
- 可扩展性差
-
对等(peer-peer)模式
- 很少(甚至没有)专门的服务器
- 如 Gnutella、KaZaA、Emule
每个节点既是服务器也是客户端,互相请求,分布式系统,无客户/服务器模式的缺陷;
迅雷、电驴等 可以获得带宽的聚集
- 文件分发系统很多用这种,一个迅雷客户端可以向其他的客户端请求
- 迅雷之所以下载的比页面快,是因为下载时,对同一个文件,可以向客户端A下载一块,客户端B C分别下载,这样实现了带宽的聚集,因此下载比较快
- 如果大家都从Web页面下载,那么服务器需要处理多个客户端
下面讲讲基础设施给网络应用提供的服务的类型
(2) 基础设施提供的服务
① 面向连接服务
- 分布式应用之间通信先建立连接
- 底层的协议栈为之后的通信分配资源,比如缓冲区,控制变量的准备,超时器的设置等
- 之后再进行通信
- 这才是有先进行连接的原因
- 面向连接和有连接还是不同的
- 面向连接:是端准备好了连接
- 有连接:不仅仅是端,包括网络核心的路由等设备也建立起连接才叫有连接
- 目标:在端系统之间传输数据
- 握手:在数据传输之前做好准备
- 人类协议中:你好、你好
- 两个通信主机之间为连接建立状态
- 握手:在数据传输之前做好准备
- TCP–传输控制协议(Transmission Control Protocol)
Internet上面向连接的服务
- TCP 服务 [RFC 793]
- 可靠地、按顺序地传送数据
- 确认和重传
- 流量控制
- 发送方不会淹没接收方
- 拥塞控制
- 当网络拥塞时,发送方降低发送速率
TCP实现了下面的特性
特性:
- 可靠性(不重复,不丢失,不乱序)
TCP协议就是将下层提供的不可靠的服务转变为可靠的服务
流量控制(当服务器负担太重的时候,会给客户机消息,让客户机放慢速度)
拥塞控制
就是链路之间阻塞了,因为一条链路不是一对点进行连接的,可能多对端都要经过一条链路,导致链路堵塞
TCP不仅考虑接收方的处理能力,还考虑网络路径的拥塞问题
② 无连接服务
-
目标:在端系统之间传输数据无连接服务
-
UDP – 用户数据报协议 (User Datagram Protocol) [RFC 768]:
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
但是时间比较快,事务性的应用,UDP只要问一下,回一下就行,不需要建立连接了
应用举例
使用TCP的应用:
- HTTP (Web)
- FTP (文件传送)
- Telnet (远程登录)
- SMTP (email)
使用 UDP的应用:
- 流媒体
- 远程会议
- DNS
- Internet电话
1.2.2 网络核心
网络核心是由交换节点及其链路构成的。交换方式分为
- 电路交换(线路交换)
- 分组交换
互联网和几乎所有的网络都是分组交换,电路交换用于电话网
(1) 分类
① 线路交换
a. 说明
端到端的资源被分配给从源端 到目标端的呼叫 “call”:
- 图中,每段链路有4条线路:
- 该呼叫采用了上面链路的第2 个线路,右边链路的第1个线 路(piece)
首先通过信令系统为两者之间的通讯分配一条独享的线路
- 图中的两个数据节点之间分成了4个piece
- 两个piece串联在一起
- 源主机与目标主机之间串联在一起
- 独享的线路,没有不确定性,性能有保证
b. 优缺点
优点:
- 性能保证:每个呼叫一旦建立起来就能够 保证性能
- 通信延迟较小,但是建立通信需要时间
- 通常被传统电话网络采用
缺点:
- 独享资源:不同享
- 如果呼叫没有数据发送,被分配 的资源就会被浪费 (no sharing)
- 建立呼叫需要时间
c. 适用范围
电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用,浪费资源
- 一般在电话网中使用
- 建立电路是需要时间的
- 通信的时间一般是几分钟,所以建立电路的时间占比很小
- 但是计算机通讯是不一样的,有很强的突发性,总之在计算机中不常用
d. 分片
- 网络资源(如带宽)被 分成片
- 为呼叫分配片
- 如果某个呼叫没有数据, 则其资源片处于空闲状态 (不共享)
- 将带宽分成片
- 频分(Frequencydivision multiplexing)
- 时分(Time-division multiplexing)
- 波分(Wave-division multiplexing)
- 频分FDM
指数据交换节点的带宽比较宽,有效通信覆盖范围如下
-
两个主机通讯的时候就根据频率划分
-
时分TDM:划分时间片的方式,某个时间片供某个用户使用
-
波分:采用光通讯的方式,和频分类似,不过分的是波段
这部分可以参考通信原理,有分片的介绍
例题
在一个电路交换网络上,从主机A到主机B发送一个640,000比特的文件需要多长时间?
- 所有的链路速率为1.536 Mbps
- 每条链路使用时隙数为24的TDM
- 建立端-端的电路需500 ms
- 看到TDM,分成多个时槽,每个用户使用一个时槽
- bps就是每秒的字节数,分成时槽之后就按照时槽的数目进行划分即可
- 每条链路的速率(一个时间片): 1.536Mbps/24 =64kbps传输时间:640kb/64kps = 10s
- 共用时间:传输时间+建立链路时间=10s + 500ms = 10.5s
- 10.5s并不一定传完,还要加上最后电磁波传输的时间(传播延迟)
时间上的传输图如下
② 分组交换
a. 说明
以分组为单位存储-转发方式(核心就是存储转发)
-
网络带宽资源不再分分为一个个片,传输时使用全部带宽
-
主机之间传输的数据被分为一个个分组(package)
-
以package为单位在每个节点当中存储-转发
(假如A→B,中间有C、D数据交换节点,那么C必须等收到A的所有的package,再分组转发给D,如果C收到一个字节就转发给D,那么别的连接就无法使用CD的链路了,网络还是不能够共享)
-
存储-转发:分组每次移 动一跳( hop ) 相当于分段使用链路
b. 优缺点
缺点:
- 不可预计的延迟(有排队延迟,延迟比线路交换大)
- 可能的数据丢弃(队列满的时候可能会造成数据丢失)
排队和延迟:
如果到达速率>链路的输出速率:
-
分组将会排队,等待传输
-
如果路由器的缓存用完了,分组将会被抛弃
优点:
- 资源共享:可以实现按需使用,不使用的时候不占用网络资源
相当于多个电路交换,延迟更大(排队延迟,存储/转发延迟),而来换取了共享性
延迟更大:
电路交换中,每个数据交换节点只有一个bit的延迟,收到一个bit之后直接转发给下一个节点
但是在分组交换中,每个节点都收到了所有的包之后才转发给下一个数据交换节点
而且转发当前分组的时候,如果该数据交换节点还有其他要转发的分组排在前面,那么还有排队时间
但是换取了链路的共享性(使用的时候才占用资源,不使用的时候就不占用资源)
例题
- 存储-转发
- 被传输到下一个链路之前, 整个分组必须到达路由器: 存储-转发
- 在一个速率为R bps的链路 ,一个长度为L bits 的分组 的存储转发延时: L/R s
- L = 7.5 Mbits(整个分组的长度是7.5)
- R = 1.5 Mbps(带宽是1.5)
- 3次存储转发的延时 = 15 s
- 主要还是存储时间占时间了
- 如果建立电路的话,整个时间就是5s
③ 分组交换的优势
结论:
- 同样的网络资源,分组交换允许更多用户使用网络
- 适合于对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 过度使用会造成网络拥塞:分组延时和丢失
- 对可靠地数据传输需要协议来约束:拥塞控制
同样的网络资源,分组交换允许更多用户使用网络!
- 1 Mb/s链路口
- 每个用户:
- 活动时100 kb/s
- 10%的时间是活动的
- 100kbps
- 但是p=0.1
- 也就是发送消息的话,那么发送的速度是100kbps,但是只有0.1的时间是发送消息的
- 电路交换(线路交换):
- 10用户口(1Mbps / 100kbps,直接根据分片划分即可)
- 分组交换:
- 35用户时(假设有35个用户),则35>=10个用户活动的概率为0.0004
- n是指活跃的用户的数量
- n从0-10是记录只有0-10个用户活跃的可能
- 当有这么多用户活跃的时候是可以支持的,但是如果大于10个用户活跃的话,就支持不了了
- 所以要计算支持不了的情况,就用1减去
能支持更多用户
- 但是还设计到一个流量强度的问题,如果流量强度 = 1,就会挂掉,此时的延迟会无穷大。因此还是计算9
- 虽然有0.4%的不能支持率,但是有队列作为缓存,可以撑过去
(2) 关键功能
网络核心的关键功能
- 路由: 决定分组采用的源到 目标的路径
- 转发: 将分组从路由器的输 入链路转移到输出链路
路由是全局的,转发是局部的
(3) 统计多路复用
分组交换也叫作统计多路复用
- 如图所示,分组交换也是一种时间片的划分,但是划分时间片的方式不是固定的
- 这种方式叫做统计多路复用
- 这也是线路交换进行分片的一种特殊形式
(4) 分组交换分类
分组交换按照有无网络层的连接分类
分组交换——分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
数据报是按地址找人,不事先确定路好不好走;虚电路是先去一次,熟悉一下路线,再进行发送。
① 数据报
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internent
数据包:
- 含有目标节点的地址
- 数据交换节点之间不维护源节点和目标节点的连接
- 中间都采用跳的形式传播,每个分组是独立传送的
数据报(datagram) 的工作原理
- 在通信之前,无须建立起一个连接,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由(不维护主机和主机之间的状态)
- 路由器不维护通信状态
② 虚电路网络
- 虚电路网络:
- 每个分组都带标签(虚电路标识VC ID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
要在每个交换节点之间建立连接
虚电路(virtual circuit)的工作原理
- 靠信令检录虚电路根据表象去查找
- 网络连接体现在中间所有的路由器上
1.2.3 接入网和物理媒体
把网络边缘接入网络核心
Q: 怎样将端系统和边缘路由 器连接?
- 住宅接入网络
- 单位接入网络 (学校、公 司)
- 无线接入网络
要考虑的问题:
- 接入网络的带宽 (bits per second) ?
- 共享/专用?
- 比如共享网络,可能白天一起用的时候就会很卡
- 独享的话,是独享一个网络接入设备,带宽是有保障的
(1) 分类
① 住宅接入:modem
调制解调器modem(分为调制和解调两个过程)
- 将上网数据调制加载音频信号上, 在电话线上传输,在局端将其中的 数据解调出来;反之亦然
-
早期运营商将专网连到了每家门口,但是成本太高,难以实现,因此使用电话线来进行联网
-
电话线是传播语音的,但是可以通过调制
- 可以调制幅度:幅度比较高的持续一段时间代表1,幅度比较低的代表0
- 可以调频率:2K、3K都可以是音频,2K一段时间代表1,3K一段时间代表0
- 调相位
- 综合调制等
总之在音频这种载波信号上加载了传输了上网的信号
对于运营商来说,不需要铺专网,只需要买一个设备,进行调制即可
这个设备叫做猫(modem的谐音),就是调制解调器
- 然后信号被传输到了网络核心的边缘再被解调(demodem)
- 这就叫做冲浪,因为音频一直在变化
缺点:
- 带宽非常窄:56Kbps,线路不好的话可能更低
- 不能同时上网和打电话
这种方式被淘汰了
接入网 DSL
digital subscriber line
- 采用现存的到交换局DSLAM的电话线
- DSL线路上的数据被传到互联网 (>4kHz,上行、下行再分频率)
- DSL线路上的语音被传到电话网 (< 4kHz)
- < 2.5 Mbps上行传输速率(typically < 1 Mbps)
- < 24 Mbps下行传输速率(typically < 10 Mbps)
- 带宽在4K以下的用于通话
- 4K以上的用于通信
- 4K以上的分上行和下行,通常不是平均分的,上行比例比较小,下行比较大
- 现在还有的家庭使用IDSL modem
② 接入网: 线缆网络
下面是有线电视公司运营商提供的方式,上面的是电信运营商
电信就是利用电信号来传输信息的通信方式
有线电视信号线缆双向改造(原来的有线电视线缆是单向的,用于电视台广播,后来为了联网,将有线电视信号线缆进行双向改造)
FDM: 在不同频段传输不同信道的数据, 数字电视和上网数据(上下行)
- HFC: hybrid fiber coax
- 非对称: 最高30Mbps的下行传输速率, 2 Mbps 上行传输 速率
- 线缆和光纤网络将个家庭用户接入到 ISP 路由器
- 各用户共享到线缆头端的接入网络 (是共享的)
- 与DSL不同, DSL每个用户一个专用线路到CO(central office)
- 越往上走是光纤,越往下走是电缆
- 一部分带宽用于上行,一部分用于下行,一部分用于传统的电视信号传播,一部分用于控制(即传输信令)
住宅接入:电缆模式
fiber optic transport——光纤传输
越往上走是光纤,越往下走是线缆
接入网: 家庭网络
router, firewall, NAT
③ 企业接入网络:Ethernet
- 经常被企业或者大学等机构采用
- 以太网的带宽也是在不断提升的,10 Mbps, 100Mbps, 1Gbps, 10Gbps传输率
- 家庭用1G即可了,但是在大型服务机可能需要10Gbps
- 现在,端系统经常直接接到以太网络交换机上
就是交换机一直网上级联,然后通过路由器进行连接
(2) 无线接入网络
各无线端系统共享无线接入网络(端系统到无线路由器)
- 通过基站或者叫接入点
无线分为两种:
- WLAN(无限局域,也就是WiFi)
- 无线广域
现在国家也在积极部署5G设施
但是现在还没有一个强大的应用能够使用这样的网络,没有人买5G套餐
而且5G的部署成本也比较高
而且能够也比较高
总之现在还用不到5G
就好像铺了高速公路,但是走的是拖拉机
因此电信运营商不是很积极
(3) 物理媒体
- Bit: 在发送-接收对间传播比特
- 物理链路:连接每个发送-接 收对之间的物理媒体
- 导引型媒体:信号沿着固体媒介被导引:同轴电缆、光纤、 双绞线
- 非导引型媒体:开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
① 引导性媒体
常见的导引性媒体
- 双绞线 (TP)
- 两根绝缘铜导线拧合
- 5类:100Mbps 以太网 ,Gbps 千兆位以太网
- 6类:10Gbps万兆以太网
- 同轴电缆:
- 两根同轴的铜导线
- 双向
- 基带电缆:
- 电缆上一个单个信道
- Ethernet
- 宽带电缆:
- 电缆上有多个信道
- HFC
- 光纤和光缆:
- 光脉冲,每个脉冲表示一个 bit,在玻璃纤维中传输
- 高速: 点到点的高速传输(如10 Gps-100Gbps传输速率 )
- 低误码率:在两个中继器之 间可以有很长的距离,不受 电磁噪声的干扰
- 安全
-
光纤分两层介质,满足一定的条件,可以实现全反射,光纤可以在内介质一直反射传输
光纤分成两类(可以分2类,去了解一下)
-
光缆也了解一下
-
如果全反射的话,那么信号就不会被辐射出去,因此很安全
-
但是电信号是可以辐射出去的
② 非引导型媒体
- 开放空间传输电磁波,携 带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应:
- 反射
- 吸收
- 干扰
无线链路类型:
-
地面微波
- e.g. up to 45 Mbps channels
-
LAN (e.g., WiFi)
-
wide-area (e.g., 蜂窝)(现在移动设备交易的数量已经多于布网的形式了)
-
卫星
- 每个信道Kbps 到45Mbps (或者 多个聚集信道)
- 270 msec端到端延迟
- 同步静止卫星(延迟比较高)和低轨卫星
了解
光纤技术是华人科学家发明的
- 使得光可以进行传输
1.3 Internet层次结构
上面的划分是按照节点和链路划分的
- 下面也是一种划分方式,将关系比较密切,在一个ISP内部的设备叫做一个ISP网络,一个ISP内部也有效的ISP
- 这个层次结构是自己命名的
按ISP划分互联网
1.3.1 互联网结构:网络的网络
- 端系统通过接入ISPs (Internet Service Providers)连接到互联网
- (比如移动设备通过移动的ISP接入到互联网,联通的通过联通的ISP接入到互联网,端系统都是通过接入ISP接入到互联网)
- 住宅,公司和大学的ISPs
- 接入ISPs相应的必须是互联的
- 因此任何2个端系统可相互发送分组到对方
- 接入ISP需要互联,否则双方无法通信
- 导致的“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
- 让我们采用渐进方法来描述当前互联网的结构
问题: 给定数百万接入ISPs,如何将它们互联到一起
ISP,IXP,reginal net,ICP
选项: 将每个接入ISP都连接到全局ISP(全局范围内覆盖)? 客户ISPs和提供者ISPs有经济合约
竞争:但如果全局ISP是有利可为的业务,那会有竞争者
合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互 联,对等互联的结算关系
Internet exchange point
接入方式
- 对等连接(就是路由器之间的连接)
- IXP
上面的IXP是实现全球范围内的交换
然后区域内的交换
然后业务会细分(全球接入和区域接入),区域网络将出 现,用与将接入ISPs连接到全局ISPs
- 除了ISP,客户端两个身份,还有ICP这个角色,比如百度,谷歌等提供内容的服务商
- ISP是提供基本连接的,ICP是提供业务的,早期ICP通过连入ISP来进行信息传输,会出现两个问题
- 成本过高:钱都要交给ISP
- ISP没办法向全球的用户提供高质量的服务
- 因此ICP就搭建自己的专网,即在全球范围内部署自己的数据中心机房,这些机房之间采用自己的专线,(或者是自己搭的,或者是租的,比如国内是不允许谷歌自己搭电缆的,要不然挖的乱七八糟的),而且机房的位置都靠近核心的ISP设备,用户通过ISP接进来,很快就能访问到谷歌的ISP,即使附近没有机房,也可以通过ISP连接到附近有机房的ISP
- 这样降低了成本,也提高了服务质量
- 国内也是类似,不过也可以向政府提案提速降费
然 后 内 容 提 供 商 网 络 (Internet Content Providers,e.g., Google, Microsoft, Akamai) 可能会构建它们自己的网络,将它们的服务、内容更 加靠近端用户,向用户提供更好的服务,减少自己的运营支出
- 在后面学习CDN的时候,会发现还有CDN
当然ICP数据中心机房部署的位置也是要考虑很多因素的
- 离ISP数据中心机房比较近
- 有的部署在温度比较低的地方:北极、水底
- 比如大山:战争、自然灾害影响比较小
在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、 但是之间有着多重连接)
- “tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), 国家或者国际 范围的覆盖
- content provider network (e.g., Google): 将它们的数据中心接入ISP,方便周边 用户的访问;通常私有网络之间用专网绕过第一层ISP和区域
1.3.2 松散的层次模型
(1) 第一层ISP
中心:第一层ISP(如UUNet, BBN/Genuity, Sprint, AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
第二层ISP: 更小些的 (通常是区域性的) ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP
第三层ISP与其他本地ISP
- 接入网 (与端系统最近)
下面是美国的骨干网BBN的覆盖情况
下面是Sprint的覆盖情况
- POP是上级和下级的关系
- 下级通过与上级连接,上级再与ISP连接
(2) 第二层ISP
(3) 第三层ISP
接入网(与端系统最近)
一个分组要经过许多网络!
很多内容提供商(如:Google, Akamai )可能会部署自己的网 络,连接自己的在各地的DC(数据中心),走自己的数据
连接若干local ISP和各级(包括一层)ISP,更加靠近用户
ISP之间的连接
-
POP: 高层ISP面向客户网络的接入点,涉及费用结算
如一个低层ISP接入多个高层ISP,多宿(multi home)
-
对等接入:2个ISP对等互接,不涉及费用结算
-
IXP:多个对等ISP互联互通之处,通常不涉及费用结算
-
ICP自己部署专用网络,同时和各级ISP连接
1.6 分组延时、丢失和吞吐量
网络交换的方式:分组交换和线路交换
- 线路交换不适合计算机网络
分组丢失和延时是怎样发生的?
1.6.1 分组延时
在路由器缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头、被传输
- 延时原因:当当前链路有别的分组进行传输,分组没有到达队首,就会进行排队,从而产生排队延迟
- 丢失原因:分组到达的时候,队列满了,就会丢弃
- 除了排队延时,还有传输延时
(1) 延时类型
四种分组延时
-
节点处理延时:就是对分组进行检查和处理花费的时间
- 检查 bit级差错
- 检查分组首部和决定将分组导向何处
- ...
就是处理延迟 processing,处理延迟一般是确定的,因为怎么处理分组的过程是确定的
-
排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
排队延时一般是不确定的
-
传输延时:
-
R=链路带宽(bps)
-
L=分组长度(bits)
-
将分组发送到链路上的时间= L/R
存储转发延时
-
-
传播延时:
d = 物理链路的长度
s = 在媒体上的传播速度 (~2x10^8 m/sec)
传播延时 = d/s
如下图
-
虚线的高度是传输延迟
-
三角形的高是传播延迟,传播延迟考虑物理空间
如果两个节点非常近的话,那么传播延迟基本可以忽略不计
举例
车队类比
情况一、
汽车以100 km/hr 的速度传播
收费站服务每辆车需 12s(传 输时间)
汽车~bit; 车队 ~ 分组
Q: 在车队在第二个收费站排 列好之前需要多长时间?
即:从车队的第一辆车到达第 一个收费站开始计时,到这个 车队的最后一辆车离开第二个 收费站,共需要多少时间
将车队从收费站输送到公 路上的时间 = 12*10 = 120s
最后一辆车从第一个收费 站到第二个收费站的传播 时间: 100km/(100km/hr)= 1 hr = 60min(这个就是传播延迟)
A: 62 minutes
情况二、
- 汽车以1000 km/hr 的速 度传播汽车
- 收费站服务每辆车需 1分 钟
- Q:在所有的汽车被第一个 收费站服务之前,汽车会到达第二个收费站吗? (一个分组还没打完,就已经到达了下一个节点了)
- A:Yes!7分钟后,第一辆汽车 到达了第二个收费站,而第 一个收费站仍有3辆汽车
- 在整个分组被第一个路由器 传输之前,第一个比特已经 到达了第二个路由器!
(2) 节点延时
排队延迟一般是随机的
(3) 排队延时
排队延时取决于流量强度
- R=链路带宽 (bps)
- L=分组长度 (bits)
- a=分组到达队列的平均速率
La是单位时间通过一天链路放出比特的数量
流量强度 = La/R
0 < 流量强度 < 1,流量强度就是在0和1之间的
-
因此设计系统的时候,不能设计流量强度 = 1的系统,否则延迟就会无限大
-
La/R ~ 0: 平均排队延时很小
-
La/R -> 1: 延时变得很大,趋近无穷
-
La/R > 1: 比特到达队列的速率超过了从该队 列输出的
率,平均排队延时将趋向无穷大! 设计系统时流量强度不能大于1!
Internet的延时和路由
tracerc指令及原理
Internet 的延时和路由是什么样的呢?
- Traceroute 诊断程序: 提供从源端,经过路 由器,到目的的延时测量
- For all i:
- 沿着目的的路径,向每个路由器发送3个探测分组
- 路由器 i 将向发送方返回一个分组
- 发送方对发送和回复之间间隔计时
Traceroute 是 利用 ICMP协议(互联网控制报文协议) 运作的
TTL的原理:
假设源客户端是A,目标客户端是B,中间的路由器标号一次为 1 2 3 4 5
在分组的头部header中有一个字段叫TTL(Time to leave)是整数,每经过一个路由器时路由器将TTL-1,如果TTL=0,则该路由器向原客户端发送消息,从而得到时间
A设置TTL=1,那么第一个路由器返回时间;设置TTL=2,那么第二个路由器返回时间
依次增大TTL,得到每个路由器返回的延时
- 对于目标客户端B,设置TTL足够大能够达到B,但是设置端口号没有对应的服务,这样到达B之后找不到对应的端口号就又会向A返回时间,得到B的延时
- 在Windows系统下
- Tracert hostname
- 如 Tracert www.gucas.ac.cn
- 更完整的例子
- tract [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
- 请见帮助: http://www.linkwan.com/gb/broadmeter/article/trace -help.htm
- 测试网址
- www.traceroute.org
- www.linkwan.com
1.6.2 分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
- 对于TCP协议
- 如果链路可靠,则是前一个节点重传
- 如果链路不可靠,则是原端系统重传
- 对于UDP协议,则不重传
1.6.3 吞吐量
- 吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量: 在一个时间点的速率
- 平均吞吐量: 在一个长时间内平均值
瓶颈链路
瓶颈链路:端到端路径上,限制端到端吞吐的链路(吞吐量最小的链路)
吞吐量取决于吞吐量小的链路
吞吐量:互联网场景
-
如图,可以看到R链路同时由多个连接共享,这样的话不同的连接就要平分带宽
-
这样尽管R的带宽比Rs,Rc大,但是实际给AB的带宽是 1/n,最终比较的是 1/n的大小
1.7 协议层次及服务模型
网络是一个复杂的系统
网络功能繁杂:数字信号的物理信 号承载、点到点、路由、rdt、进 程区分、应用等
现实来看,网络的许多构成元素和设备:
- 主机
- 路由器
- 各种媒体的链路
- 应用
- 协议
- 硬件, 软件
问题是: 如何组织和实现这个复杂的网络功能?
模块化分解/分层
分层和分解是不一样的
- 分解:模块之间是可以互相调用的
- 分层:只有相邻两层客户互相调用
层次化方式实现复杂网络功能:
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一 组功能,功能中有其上层可以使用的功能:服务(服务是功能的子集,是可以由外部使用的功能叫服务)
- 本层协议实体相互交互执行本层的协议动作(水平关系),目的是实现本层功能, 通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的 新功能(上层可以利用的)+更下层所提供的服务
1.7.1 服务和服务访问点
(1) 概念(术语)
服务和服务访问点
- 服务( Service):低层实体向上层实体提供它们之间的通信的能力
- 服务用户(service user)
- 服务提供者(service provider )
服务之间是垂直关系
socket就是传输层向应用层提供的接口
-
原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过 服务访问原语来进行交互的形式 比如socket API(一些类型的函数)
-
服务访问点 SAP (Services Access Point) :上层使用下层提供的服务通过层间的接口—地点;
例子:邮箱
地址(address):下层的一个实体支撑着上层的多个实体, SAP有标志不同上层实体的作用
可以有不同的实现,队列
例子:传输层的SAP: 端口(port)
比如:一个 地点/层间接口,套接字就是服务访问点
比如应用层有 A1,A2,A3这些服务
- A1 A2 A3就是服务用户
- TCP就是服务提供者
- 通过层接界面服务访问点来区分用户
不同层级之间都有各自的用户和提供者
(2) 服务的类型(有无连接)
- 服务的类型
服务不仅仅是应用层才分有无连接,每层之间的服务都有区分的
面向连接的服务和无连接的服务-方式
-
面向连接的服务(Connection-oriented Service)
-
连接(Connection):两个通信实体为进行通信而建立的一种结合
-
面向连接的服务通信的过程:建立连接,通信,拆除连接
面向连接的服务的例子:网络层的连接被成为虚电路
-
适用范围:对于大的数据块要传输;不适合小的零星报文
-
特点:保序
-
服务类型:
- 可靠的信息流传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流远程登录
- 不可靠的连接数字化声音
-
面向连接的服务和无连接的服务
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包;
- 适用范围:适合传送零星数据;
- 服务类型:
- 不可靠的数据报电子方式的函件
- 有确认的数据报挂号信
- 请求回答信息查询
(3) 服务和协议的关系
-
服务和协议
服务与协议的区别
服务(Service):低层实体向上层实体提供它们之间的 通信的能力,是通过原语(primitive)来操作的,垂直
协议(protocol) :对等层实体(peer entity)之间在相互 通信的过程中,需要遵循的规则的集合,水平
服务与协议的联系
本层协议的实现要靠下层提供的服务来实现
本层实体通过协议为上层提供更高级的服务
(4) 数据单元(DU)
ICI : 接口控制信息 - Interface Control Information
上层的PDU对于本层是SDU,封装后对于本层是PDU
两者的封装关系:一对一、一个SDU分成多个再进行封装,成多个PDU(一对多)、多个SDU封装成一个PDU(多对一)
- SDU:服务数据单元,上层传给本层的数据叫做SDU
- ICI:接口控制信息
- IDU:接口数据单元 SDU + ICI,是用于穿过层级接口使用的,实际要用的还是SDU
- PDU:协议数据单元,是来自上层SDU加上本层的控制信息就是PDU
上层传给本层的数据叫SDU,SDU + 本层的控制信息就是PDU
一般情况下,SDU会很大,因此会分解然后分别构造PDU
还有一种关系是SDU很小,可以将多个SDU合并构造PDU
一对一、一对多、多对一
每层都有各自的PDU,也有不同的名称
(5) 分层优势
分层处理和实现复杂系统的好处?
对付复杂的系统
- 概念化:结构清晰,便于标示网络组件,以及描述其 相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 如改变登机程序并不影响系统的其它部分
- 改变2个秘书使用的通信方式不影响2个翻译的工作
- 改变2个翻译使用的语言也不影响上下2个层次的工作
- 改变某一层服务的实现不影响系统中的其他层次
- 分层思想被认为有害的地方:效率相对较低
1.7.2 Internet协议栈(网络层次架构)
下面是互联网的架构
层次 | 服务 | 传输单位 | 协议 |
---|---|---|---|
应用层 | 网络应用(实现网络应用) 为人类用户或者其他应用进程提供网络应用服务 |
报文(message) | FTP,SMTP,HTTP,DNS |
传输层 | 主机之间的数据传输(区分进程,把不可靠变为可靠) 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信 |
报文段(segment):TCP段,UDP数据报 | TCP,IP |
网络层 | 为数据报从源到目的选择路由(转发、路由) 主机主机之间的通信,端到端通信,不可靠 |
分组packet(如果无连接方式:数据报datagram) | IP,路由协议 |
链路层 | 相邻网络节点间的数据传输(相邻两点间,以帧位单位的传输) 2个相邻2点的通信,点到点通信,可靠或不可靠 |
帧(frame) | 点对对协议PPP,802.11(wifi),Ethernet |
物理层 | 在线路上传送bit(相邻两点间电磁波的承载,以bit的传输) | bit |
ISO/OSI 参考模型
- ISO:国际标准化组织
- OSI:关于网络的架构
- 表示层: 允许应用解释传输的数据, e.g., 加密,压缩,机器相关的表示转换
- 会话层: 数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层! (在Internet协议栈在应用层实现)
也就是应用层会实现这两层
1.7.3 封装与解封装
- 在链路层交换机经过一次解封装,解到链路层后再封装交
- 路由器要解封装到网络层
- 链路层交换机主要用于组建局域网,而路由器则主要负责连接外网并寻找网络中最合适数据传输的路径。
- 最后需要说明的是:路由器一般都具有防火墙功能,能够对一些网络数据包选择性的进行过滤。现在的一些路由器都具备交换机的功能,也有具备路由器功能的交换机,称为三层交换机。相比较而言,路由器的功能较交换机要强大,但是速度也相对较慢,价格较为昂贵,而三层交换机既有交换机的线性转发报文的能力,又有路由器的路由功能,因此得到了广泛的应用。
1.8 历史
互联网发展那么快的原因:
- 架构具有很强的包容性
- 应用部署很容易,都能在部署到应用层