网络的初衷和本质是计算设备连接在一起,共享资源(数据) 。
连接方式
计算设备的主要连接方式有直连和星型两种:
| 连接方式 | 特点 | |
|---|---|---|
| 直连 | * 速度快、简单 * 链路成本、维护成本极高 * 目前网线的最长大约 100m,一旦过长就会有传输质量、信号衰减的问题。需要中继 * 多方互联的时候,每一方都需要和其它方构建链路 * 新加入一台设备,需要与所有其它设备进行链接 * 多用于局域网测试网络 | |
| 星型 | * 每加入一台设备时,只需要将它链接到中心设备 * 把不同网络的中心设备相互链接,就可以实现了两个较远距离网络的通信 |
网络通常是一个混合结构:
- 中心设备称为交换结点,通常是路由器或交换机
- 交换结点构成交换网络,交换网络连接着计算设备,这里的计算设备指一切可接入网络的设备
- 交换网络的作用是将源主机发送的数据正确的转发到目的主机,称为
数据交换。主要由交换结点完成
计算机网络
进一步对网络进行划分:
| 名称 | 设备 |
|---|---|
| 网络边缘 | 主机、网络应用 |
| 接入网络,物理介质 | 有线或无线通信链路 |
| 网络核心(核心网络) | 互联的路由器(或分组转发设备) |
网络边缘
网络边缘从硬件和软件可分别定义为:
- 主机(端系统):手机、电脑、平板、IoT...
- 运行网络应用程序:Web、Email……
网络应用程序可以提供不同的应用模型(不同的服务方式)
客户端/服务器(client/server)应用模型
客户发送请求,接收服务响应:Web、FTP……
- 服务器拥有所有资源
- 服务器如果不能承受大量客户端请求,需要扩容,比较困难
- 服务器随着客户端的增加,服务器的性能断崖式下降(非线性)—— 可扩展性问题
- 服务器宕机 —— 稳定性问题
- 服务器或许能承受,网络带宽不能
对等(peer-peer,P2P)应用模型
无(或不仅依赖)专用服务器,主机既是 Client 也是 Server,是对等的。通信在对等的实体之间直接进行:QQ、BT……
接入网络
网络边缘接入网络核心的方式称为接入网络:住宅(家庭)接入网络、机构(学校、企业等)接入网络、移动接入网络。对于网络用户,关心的主要内容有:
- 带宽(bandwidth)(bps)
- 是共享还是独占?
目前接入网路的方式有很多种,部分如下:
| 名称 | 接入方式 | 速率 | 特点 |
|---|---|---|---|
| 数字用户线路DSL | 利用已有的电话线连接中心局的 DSLAM 。数据通信通过 DSL 电话线接入 Internet;语音(电话)通过 DSL 电话线接入电话网 | < 2.5 Mpbs 上行传输速率,典型速率 < 1 Mbps> 24 Mpbs 下行传输速率,典型速率 < 10 Mbps | FDM(频分多路复用):在不同频带(载波)上传输不同频道。> 50 kHz - 1 MHz 用于下行; 4 kHz - 50 KHz 用于上行; 0 kHz - 4 KHz 用于传统电话独占到中心局的接入 |
| 混合光纤同轴电缆HFC | 各家庭(设备)通过电缆网络 --> 光纤接入因特网服务提供商(ISP,如电信、移动、联通)的路由器 | 下行高达 300 Mbps 传输速率,上行为 2 Mbps 传输速率 | 各家庭共享家庭到电缆头端的接入网络; |
| 机构(企业)接入网络 | 端系统通常直接连接以太网交换机(switch) | 典型传输速率:10 Mbps、100 Mbps、1 Gbps、10 Gbps | 主要用于公司、高校、企业等组织机构 |
| 无线接入网络 | 通过共享的无线接入网络连接端系统与路由器,如基站 |
网络核心
网络核心是互联的路由器网络,关键功能是路由+转发
- 路由(routing):确定分组从源到目的传输的路径,由路由算法管理
- 属于全局的控制层面:表现为对从源到目的整条链路的控制
- 转发(forwarding):将分组从路由器的输入端口交换至正确的输出端口
- 属于局部的数据层面:表现为对完整链路中某个路由器的输入口转发到输出口
网络核心解决的基本问题是:如何实现数据从源主机通过网络核心送达目的主机?—— 即数据交换
Internet
我们说的 Internet 是全球最大的互联网络。它一方面为网络应用如 Web、email、网络游戏、社交网络提供着通信服务,另一方面为网络应用提供着 API,比如发送、接收文件数据的 API
Internet 组成
- 数以百万计的互连的
计算设备(电脑、手机、智能手表、摄像头....)的集合,运行着各种网络应用,如 http/https 网站、ftp 服务器、邮件系统等。一般使用【主机】或者【端系统】指代。 通信链路:光纤、铜缆、无线电、卫星等等一切接入网络的方式分组交换:数据交换的一种方式,用于转发分组(数据包),由路由器(routers)和交换机(switches)(交换结点)实现
总的来说,就是主机通过通信链路接入数据交换网络完成通信
数据交换
数据交换除了可以解决主机两两互联的 链路问题:N 台主机要两两互连,需要 条链路,规模大的时候不切实际,还可以动态分配传输资源
数据交换有以下几种类型:
- 电路交换
- 报文交换
- 分组交换
电路交换
最典型的电路交换网络:电话网络。电路交换的三个阶段:
- 建立连接(呼叫/电路建立)
- 通信
- 释放连接(拆除电路)
电路交换是独占资源的,但也存在共享的中继线。电路交换由于线路建立时间长、不可靠,不适合突发式(burst)的计算机之间的通信
报文交换(message switching)
- 报文:源(应用)发送的信息整体,如:一个文件
- 报文交换直接发送信息整体,如果发送信息过大,会占用链路较长时间,阻碍其它用户发送信息
分组交换(package switching)
- 分组:报文分拆出来的一系列
相对较小的数据包(packet),每个分组需要额外的分组头 - 分组交换需要报文的
拆分与重组,会产生额外的开销(分组头、拆分、重组) - 可能会排队:增加时延,如果中间的交换节点 buffer 满了还会丢包。这个时延和丢包是不确定的
- 统计多路复用:A & B 在通信链路中的分组序列不确定,按需共享链路
按照有没有连接继续区分,分组交换可分为:
- 虚电路网路
- 数据报网络,互联网为数据报网络
虚电路(VC)
在每个小单元都建立连接,先趟一遍找到路径,做好标记(虚电路号,VC号),结合路由器的转发表,之后一直延该路径进行转发
报文交换和分组交换的对比
均采用 存储-转发 的交换方式:
- 报文交换以
完整报文进行存储-转发 - 分组交换以
较小分组进行存储- 转发
对于以下拓扑:
有 M(如 7.5Mb) bits 的报文,链路的传输速率即带宽为 R bits/sec(如 1.5Mbps),路由器数为 n(2,跳步数 h = n + 1 = 3):
报文交换
直接发送 M bits 报文:
- 第一段 M / R = 7.5 / 1.5 = 5 s
- 第二段 M / R = 7.5 / 1.5 = 5 s
- 第三段 M / R = 7.5 / 1.5 = 5 s
共计:15 s,交换结点需要 M bits = 7.5 Mbits 的缓存大小
分组交换
每个分组(packets):L bits,如 1500 bits,分组传输延迟(时延)delay = L / R
7.5 Mb 数据将分为 5000 组,每组 1500 bits:
- 第 1 个分组,第一段
- 第 1 个分组,第二段 1 ms,此时第 2 个分组处于第一段
- 第 1 个分组,第三段 1 ms,此时第 2 个分组处于第二段,第 3 个分组处于第一段
- 当第 4998 个到达时,第 5000 个分组在第一段
- 还需 2 × 1 ms 的时间到达
共计:5002 ms = 5.002 s,交换结点需要 L bits = 1500 bits 的缓存大小
分组交换的报文交付时间:
分组交换一定优于电路交换吗?
- 分组交换允许更多的用户同时使用网络
- 分组交换适用于
突发数据传输网络- 资源充分共享
- 简单、无需呼叫建立
- 分组交换可能产生
拥塞(congestion):分组延迟和丢失- 需要协议处理可靠数据传输和拥塞控制
哪怕是电路交换,交换结点之间的链路也需要为多个不同的用户传输数据,但是链路只有一条,交换节点通过多路复用区分这些数据
多路复用
简称复用,是通信技术中的基本概念,为网络提供基础功能支持,作用是将不同用户的数据经过同一信道传输出去。使用数据链路层的多路访问控制协议控制
- 将链路/网络资源(如带宽)划分为 “资源片”
- 将资源片分配给各路 “呼叫”
- 每路呼叫独占分配到的资源片进行通信
- 资源片可能 “闲置”(无共享)
多路复用有很多种方式,典型的多路复用方法有:
- 频分多路复用
- 时分多路复用
- 波分多路复用
- 码分多路复用
频分多路复用(FDM)
各用户占用不同的带宽资源(带宽指频率带宽,Hz,区分于数据发送速率) 每个用户分配到一定的频带后,在通信过程中自始至终都占用这个频带
时分多路复用(TDM)
将时间划分为一段段等长的时分复用帧(TDM 帧),每个用户在每个 TDM 帧中占用固定序号的时隙 每个用户所占用的时隙是周期性出现的(周期就是 TDM 帧的长度) 所有用户是在不同的时间占用相同的频带宽度
波分多路复用(WDM)
光的频分复用,分的是光波的波长
利用光调制器和光解调器来复用和分用
码分多路复用(CDM)
广泛应用于无限链路共享(蜂窝网、卫星通信等)
每个用户分配一个唯一的 m bit 的码片序列,“0” 用 “-1” 表示,“1” 用 “+1” 表示,如(-1 -1 -1 +1 +1 -1 +1 +1)。各用户使用 相同频率载波,利用各自码片序列编码数据。
编码信号 =(原始数据)X(码片序列)
解码:码片序列与编码信号的内积各用户码片序列相互正交,这样非自身码片序列与自身编码信号的内积为:
- 发送比特 1(+1),则发送自己的 m bit 码片序列
- 发送比特 0(-1),则发送该码片序列的 m bit 码片序列的反码