什么是计算机网络?
计算机网络=通信技术+计算机技术
计算机网络是通信技术与计算机技术紧密结合的产物
计算机网络就是一种通信网络
定义:计算机网络就是互连的、自治的计算机集合
自治-无主从关系
互连-互联互通
距离远、数量大如何保证互连?---通过交换网络互连主机
什么是 Internet?
组成细节角度
全球最大的互联网络---ISP 网络互连的“网络之网络
数以百万计的互连的计算设备集合: 主机(hosts)=端系统(end systems),运行各种网络应用
通信链路:光纤, 铜缆, 无线电, 卫星......
分组交换:转发分组(数据包):路由器(routers) 和交换机(switches)
服务角度
为网络应用提供通信服务的通信基础设施:Web, VoIP, email, 网络游戏,电子商务, 社交网络, ...
为网络应用提供应用编程接口(API):支持应用程序“连接”Internet,发送/接收数据,提供类似于邮政系统的数据传输服务
协议
协议是计算机网络有序运行的重要保证
- 硬件(主机、路由器、通信链路等)是计算机网络的基础
- 计算机网络中的数据交换必须遵守事先约定好的规则
- 如同交通系统
任何通信或信息交换过程都需要规则
- 网络通信
- 通信主体是“机器”而不是人
- 交换“电子化”或“数字化”消息
- 计算机网络的所有通信过程都必须遵守某种/些规则—协议
什么是网络协议?
- 网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定
- 协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的“动作”(actions)
协议的三要素
- 语法(Syntax)
- 数据与控制信息的结构或格式
- 信号电平
- 语义(Semantics)
- 需要发出何种控制信息
- 完成何种动作以及做出何种响应
- 差错控制
- 时序(Timing)
- 事件顺序
- 速度匹配
协议是计算机网络的重要内容
- 协议规范了网络中所有信息发送和接收过程
- e.g., TCP, IP, HTTP, Skype, 802.11
- 学习网络的重要内容之一
- 网络创新的表现形式之一
- Internet 协议标准
- RFC: Request for Comments
- IETF:互联网工程任务组(Internet Engineering Task Force)
计算机网络结构
- 网络边缘
- 主机
- 网络应用
- 接入网络,物理介质
- 有线或无线通信链路
- 网络核心(核心网络)
- 互联的路由器(或分组转发设备)
- 网络之网络
网络边缘
- 主机(端系统)
- 位于“网络边缘”
- 运行网络应用程序
- 如:Web, email
- 客户/服务器(client/server)应用模型
- 客户发送请求,接收服务器响应
- 如:Web 应用,文件传输 FTP 应用
- 对等(peer-peer, P2P)应用模型
- 无(或不仅依赖)专用服务器
- 通信在对等实体之间直接进行
- 如:Gnutella, BT, Skype, QQ
接入网络
如何将网络边缘接入核心网(边缘路由器)?
- 接入网络
- 住宅(家庭)接入网络
- 机构接入网络(学校,企业等)
- 移动接入网络
用户关心: 带宽(bandwidth)和(bps)共享/独占
数字用户线路(DSL)
- 利用已有的电话线连接中心局的 DSLAM
- 数据通信通过 DSL 电话线接入 Internet
- 语音(电话)通过 DSL 电话线接入电话网
- < 2.5 Mbps 上行传输速率(典型速率< 1 Mbps)
- < 24 Mbps 下行传输速率(典型速率< 10)
- FDM: >50 kHz -1 MHz 用于下行
- 4 kHz -50 kHz 用于上行
- 0 kHz -4 kHz 用于传统电话
电缆网络
频分多路复用:在不同频带(载波)上传输不同频道
- HFC:混合光纤同轴电缆(hybrid fiber coax)
- 非对称: 下行高达 30Mbps 传输速率,上行为 2 Mbps 传输速率
- 各家庭(设备)通过电缆网络 → 光纤接入 ISP 路由器
- 各家庭共享家庭至电缆头端的接入网络
- 不同于 DSL 的独占至中心局的接入
无线接入网络
通过共享的无线接入网络连接端系统与路由器,通过基站(base station)或称为“接入点”(access point)
- 无线局域网(LANs)
- 同一建筑物内(30m)
- 802.11b/g (WiFi): 11Mbps、54Mbps 传输速率
- 广域无线接入
- 通过电信运营商(蜂窝网) ,接入范围在几十公里~
- 带宽:1 Mbps、10 Mbps、100Mbps
- 3G、4G: LTE
- 移动互联网 to Internetto Internet12
网络核心
- 互联的路由器网络
- 网络核心的关键功能:路由+转发
- 路由(routing):确定分组从源到目的传输路径
- 转发(forwarding): 将分组从路由器的输入端口交换至正确的输出端口
Internet 结构
- 端系统通过接入 ISP(access ISPs )连接到 Internet
- 家庭、公司和大学 ISPs
- 接入 ISP 必须进一步互连
- 这样任意两个主机才可以互相发送分组
- 构成复杂的网络互连的网络
- 经济和国家政策是网络演进的主要驱动力
- 当前 Internet 结构?
- 无人能给出精确描述
- 因为他的状态是在不断地发生变化
计算机网络之网尽其用主讲人:李全龙 Q: 数以百万计的接入 ISP 是如何互连在一起的呢?
直接互连不适用于大规模网络:O(N2)连接问题
将每个接入 ISP 连接到一个国家或全球 ISP,但是从商业角度,必定有竞争者,这些 ISP 网络必须互连可能出现区域网络(regional networks)连接接入 ISP 和运营商 ISP,内容提供商网络(content provider networks,如:Google, Microsoft 等) 可能运行其自己的网络,并就近为端用户提供服务、内容
- 在网络中心: 少数互连的大型网络
- “一级”(tier-1)商业 ISPs(如:网通、电信、Sprint、AT&T),提供国家或国际范围的覆盖
- 内容提供商网络(content provider network,如:Google):私有网络,连接其数据中心与 Internet,通常绕过一级 ISP 和区域 ISPs
数据交换-电路交换
为什么需要数据交换?
N2 链路问题,连通性,网络规模
交换=动态转接+动态分配传输资源
数据交换的类型有电路交换,报文交换和分组交换
电路交换的特点
- 最典型电路交换网络:电话网络
- 电路交换的三个阶段:
- 建立连接(呼叫/电路建立)
- 通信
- 释放连接(拆除电路)
- 独占资源
电路交换网络通过多路复用(Multiplexing)实现共享中继线?
多路复用
多路复用(multiplexing),简称复用,是通信技术中的基本概念
多路复用(Multiplexing):链路/网络资源(如带宽)划分为“资源片”
- 将资源片分配给各路“呼叫”(calls)
- 每路呼叫独占分配到的资源片进行通信
资源片可能“闲置”(idle) (无共享)
- 典型多路复用方法:
- 频分多路复用( frequency division multiplexing-FDM)
- 时分多路复用( time division multiplexing-TDM)
- 波分多路复用(Wavelength division multiplexing-WDM)
- 码分多路复用( Code division multiplexing-CDM)4
频分多路复用 FDM
频分多路复用的各用户占用不同的带宽资源(注意,这里的“带宽”是频率带宽(单位:Hz)而不是数据的发送速率),用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带
时分多路复用
时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧),每个用户在每个 TDM 帧中占用固定序号的时隙,每用户所占用的时隙是周期性出现(其周期就是 TDM 帧的长度)
波分多路复用
波分复用就是光的频分复用
码分多路复用
广泛应用于无线链路共享(如蜂窝网,卫星通信等),每个用户分配一个唯一的 mbit 码片序列(chippingsequence),其中“0”用“-1”表示、“1”用“+1”表示,例如:S 站的码片序列:(–1–1–1+1+1–1+1+1),各用户使用相同频率载波,利用各自码片序列编码数据
编码信号=(原始数据)×(码片序列)
- 如发送比特 1(+1),则发送自己的 mbit 码片序列
- 如发送比特 0(-1),则发送该码片序列的 mbit 码片序列的反码
各用户码片序列相互正交(orthogonal)
解码: 码片序列与编码信号的内积
数据交换—报文、分组交换
报文:源(应用)发送信息整体,比如一个文件
分组:报文分拆出来的一系列相对较小的数据包,分组交换需要报文的拆分与重组,产生额外开销
统计多路复用
存储-转发(store-and-forward)
报文交换与分组交换均采用存储-转发交换方式
- 区别:
- 报文交换以完整报文进行“存储-转发”
- 分组交换以较小的分组进行“存储-转发”
分组交换: 传输延迟
发送主机接收应用报文(消息),拆分为较小长度为Lbits 的分组(packets),在传输速率为 R 的链路上传输分组
报文交换 vs 分组交换
报文交换:报文长度为 M bits,链路带宽为 R bps,每次传输报文需要 M/R 秒
分组交换:报文被拆分为多个分组,分组长度为 Lbits,每个分组传输时延为 L/R 秒
在这里涉及到缓存需要被考虑,显然路由器在分组交换是要小于报文交换的
设: 报文: Mbits 链路带宽(数据传输速率): Rbps,分组长度(大小): Lbits,跳步数: h,路由器数:n
则分组交换:T=M/R+(h-1)L/R=M/R+nL/R
分组交换 vs 电路交换
例:1 Mb/s 链路,每个用户: “活动”时需 100 kb/s,平均活动时间 10%
- 电路交换:10 用户
- 分组交换:对于 35 个用户, 大于 10 个用户同时活动的概率<0.0004
分组交换允许更多用户同时使用网络!——网络资源充分共享
但是分组交换绝对优于电路交换?答案是不一定的
分组交换适用于突发数据传输网络,资源充分共享,简单、无需呼叫建立,但可能产生拥塞(congestion):分组延迟和丢失,需要协议处理可靠数据传输和拥塞控制
计算机网络性能
速率即数据率(data rate)或称数据传输速率或比特率(bit rate),速率往往是指额定速率或标称速率
- 单位时间(秒)传输信息(比特)量
- 计算机网络中最重要的一个性能指标
- 单位:b/s(或 bps)、kb/s、Mb/s、Gb/s
- k=10^3、M=10^6、G=10^9
带宽”(bandwidth)原本指信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz),网络的“带宽”通常是数字信道所能传送的“最高数据率”,单位:b/s (bps),常用的带宽单位:kb/s (10^3b/s),Mb/s(10^6b/s),Gb/s(10^9b/s),Tb/s(10^12b/s)
分组交换为什么会发生丢包和时延?分组在路由器缓存中排队,分组排队,等待输出链路可用,分组到达速率超出输出链路容量时,如果缓存满,到达分组被丢弃-丢包(loss)5
四种分组延迟
- 结点处理延迟(nodal processing delay)
- 差错检测
- 确定输出链路
- 通常< msec(很小很小)
- 排队延迟(queueingdelay)
- 等待输出链路可用
- 取决于路由器拥塞程度
- 传输延迟(transmission delay)
- L: 分组长度(bits)
- R: 链路带宽(bps)
- 传输延迟=L/R
- 传播延迟(propagation delay)
- d: 物理链路长度
- s: 信号传播速度(~2×108m/sec)
- 传播延迟= d/s
排队延迟
R:链路带宽(bps),L:分组长度(bits),a: 平均分组到达速率,流量强度(traffic intensity)= La/R
- La/R~ 0: 平均排队延迟很小
- La/R -> 1: 平均排队延迟很大
- La/R > 1: 超出服务能力,平均排队延迟无限大!
时延带宽积
时延带宽积= 传播时延*带宽,链路的时延带宽积又称为以比特为单位的链路长度
分组丢失(丢包):队列缓存容量有限,分组到达已满队列将被丢弃(即丢包),丢弃分组可能由前序结点或源重发(也可能不重发),丢包率 = 丢包数/已分发的组总数
吞吐量:表示在发送端与接收端之间传送数据速率(b/s),即时吞吐量:给定时刻的速率,平均吞吐量:一段时间的平均速率
瓶颈链路(bottleneck link):端到端路径上,限制端到端吞吐量的链路
计算机网络体系结构
为什么需要计算机网络体系结构?
计算机网络是一个非常复杂的系统,涉及许多组成部分:主机(hosts),路由器(routers),各种链路(links),应用(applications),协议(protocols),硬件、软件...,是否存在一种系统结构有效描述网络?利用什么样的结构?至少用于讨论网络?----分层结构
复杂系统的分层结构可以类比坐火车旅行,每层完成一种(类)特定服务/功能,每层依赖底层提供的服务,通过层内动作完成相应功能
网络体系结构是从功能上描述计算机网络结构,计算机网络体系结构简称网络体系结构(network architecture)是分层结构,每层遵循某个/些网络协议完成本层功能,计算机网络体系结构是计算机网络的各层及其协议的集合,体系结构是一个计算机网络的功能层次及其关系的定义,体系结构是抽象的
为什么采用分层结构?结构清晰,有利于识别复杂系统的部件及其关系---分层的参考模型(reference model ),模块化的分层易于系统更新、维护----任何一层服务实现的改变对于系统其它层都是透明的,有利于标准化
分层网络体系结构基本概念:实体(entity) 表示任何可发送或接收信息的硬件或软件进程,协议是控制两个对等实体进行通信的规则的集合,协议是“水平的”,任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是“垂直的”,下层协议的实现对上层的服务用户是透明的,同系统的相邻层实体间通过接口进行交互,通过服务访问点 SAP(Service Access Point),交换原语,指定请求的特定服务。
OSI 参考模型
开放系统互连(OSI)参考模型是由国际标准化组织(ISO)于 1984 年提出的分层网络体系结构模型,目的是支持异构网络系统的互联互通,是异构网络系统互连的国际标准,是理解网络通信的最佳学习工具(理论模型),但理论成功,市场失败,一共有 7 层(功能),每层完成特定的网络功能,自上而下依次是:应用层(Application)表示层(Presentation)会话层(Session)传输层(Transport)网络层(Network)数据链路层(Data link)物理层(Physical)
OSI 参考模型解释的通信过程
OSI 参考模型数据封装与通信过程
为什么需要数据封装?
- 增加控制信息,构造协议数据单元(PDU)
- 控制信息主要包括
- 地址(Address): 标识发送端/接收端
- 差错检测编码(Error-detecting code): 用于差错检测或纠正
- 协议控制(Protocol control): 实现协议功能的附加信息,如: 优先级(priority)、服务质量(QoS)、和安全控制等 6
各层的功能
物理层功能
接口特性---机械特性、电气特性、功能特性、规程特性;比特编码;数据率比特同步;时钟同步;传输模式:单工(Simplex),半双工(half-duplex),全双工(full-duplex)
数据链路层功能
负责结点-结点(node-to-node)数据传输;组帧(Framing);物理寻址(Physical addressing),在帧头中增加发送端和/或接收端的物理地址标识数据帧的发送端和/或接收端;流量控制(Flow control),避免淹没接收端,两端要保持同步;差错控制(Error control),检测并重传损坏或丢失帧,并避免重复帧;访问(接入)控制(Access control),在任一给定时刻决定哪个设备拥有链路(物理介质)控制使用权
网络层功能
负责源主机到目的主机数据分组(packet)交付,可能穿越多个网络;逻辑寻址(Logical addressing),全局唯一逻辑地址,确保数据分组被送达目的主机,如 IP 地址;路由(Routing),路由器(或网关)互连网络,并路由分组至最终目的主机,路径选择;分组转发;
传输层功能
负责源-目的(端-端)(进程间)完整报文传输;分段与重组;SAP 寻址,确保将完整报文提交给正确进程,如端口号;连接控制;流量控制;差错控制
会话层功能
对话控制(dialog controlling),建立、维护;同步(synchronization),在数据流中插入“同步点”;是最“薄”的一层
表示层功能
处理两个系统间交换信息的语法与语义(syntax and semantics )问题,数据表示转化,转换为主机独立的编码;加密/解密;压缩/解压缩。
应用层功能
支持用户通过用户代理(如浏览器)或网络接口使用网络(服务),典型应用层服务:文件传输(FTP),电子邮件(SMTP),Web(HTTP)
TCP/IP 参考模型
5 层参考模型
综合 OSI 和 TCP/IP 的优点,应用层:支持各种网络应用:FTP, SMTP, HTTP;传输层:进程-进程的数据传输:TCP, UDP;网络层:源主机到目的主机的数据分组路由与转发,IP 协议、路由协议等;链路层:相邻网络元素(主机、交换机、路由器等)的数据传输;相邻网络元素(主机、交换机、路由器等)的数据传输,以太网(Ethernet)、802.11 (WiFi)、PPP;物理层:比特传输