计算机网络
中国科学技术大学 郑烇老师 - 计算机网络
参考教材 : 计算机网络-自顶向下方法 原书第7版
计算机网络与因特网
这一章的目标是从整体上粗线条地勾勒出计算机网络的概貌,并且描述计算机网络的框架。包括大量的背景知识,讨论大量的计算机网络构件,而且将他们放在整个网络的大环境中进行讨论
目标:
- 了解基本术语和概念
- 掌握网络的基本原理
什么是 Internet?
从具体构成角度描述
节点
- 主机及其上运行的应用程序
- 路由器、交换机等网络交换设备
边 : 通信链路 (communication link)
- 接入网链路 : 主机连接到互联网的链路
- 主干链路: 路由器间的链路
数以亿计的、互联网的计算设备:
- 主机(host) = 端系统 (end system)
- 运行 网络应用程序
通信链路:
- 光纤、同轴电缆、无线电、卫星
- 传输速率 = 带宽 (bps)
分组交换设备 : 转发分组(packets)
- 路由器和交换机
**协议**控制发送、接收消息
- 如 TCP、IP、HTTP、FTP、PPP
Internet : “网络的网络”
- 松散的层次结构,互连的 ISP
- 公共 Internet vs. 专用 intranet
Internet 标准
- RFC : Request for comments
- IETF : Internet Engineering Task Force
从服务角度描述
使用通信设施进行通信的分布式应用
- Web、VoIP、email、分布式游戏、电子商务、社交游戏…
- …
通信基础设施为 apps 提供编程接口(通信服务)
- 将发送和接收数据的app与互联网连接起来
- 为APP 应用提供服务选择,类似于邮政服务
- 无连接不可靠服务
- 面向连接的可靠服务
什么是协议
人类协议和计算机网络协议示例
人类协议
发送特定的消息
收到消息时采取特定的行动或其他事件
网络协议
- 类似人类协议
- 机器之间的协议而非人与人之间的协议
- Internet 中所有的通信行为都受协议制约
协议(protocol)定义了在两个或多个通信实体之间交换的 报文格式 和 次序,以及 在 报文传输和 / 或接收 或 其他事件方面所采取的 动作
网络结构
- 网络边缘:
- 主机
- 应用程序(客户端和服务端)
- 网络核心
- 互连着的路由器
- 网络的网络 以 中国科学技术大学 郑烇老师的计算机网络为主线,<计算机网络-自顶向下方法>第7版、自己查阅资料辅助总结的学习笔记。内容包括 计算机网络概述、应用层、运输层、网络层、数据链路层、物理层等知识。
- 接入网、物理媒体
- 有线或者无线通信链路
网络边缘
- 端系统(主机)
- 运行 应用程序
- 如 web、email
- 在 " 网络的边缘"
- 客户/服务器模式
- 客户端向服务器端请求/接收服务
- 如 web 浏览器/服务器 : email 客户端/服务器
- 对等(peer-peer) 模式
- 很少(甚至没有)专门的服务器
- 如 GnutElla、KaZaA、Emule
采用 网络设施的面向连接服务
目标 : 在 端系统之间传输数据
握手:
在数据传输之前做好准备
- 人类协议中 : 你好、你好
- 两个通信主机之间为 连接建立状态
TCP - 传输控制协议(Transmission Control Protocol)
Internet 上面向连接的服务
- 可靠地、按顺序地传送数据
- 确认和重传
- 流量控制
- 发送方 不会淹没接收方
- 拥塞控制
- 当网络拥塞时,发送方降低发送速率
采用基础设施的无连接服务
目标:在端系统之间传输数据
UDP - 用户数据报协议 (User Datagram Protocol )
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
使用 TCP 的应用
- HTTP(web)
- FTP(文件传送)
- Telnet(远程登录)
- SMTP(email)
使用 UDP 的应用
- 流媒体
- 远程会议
- DNS
- Internet 电话
网络核心
网络核心: 路由器的网状网络(即由互联因特网端系统的分组交换机和链路构成的网状网络)
数据怎样通过网络进行传输?
- 电路交换:为每个呼叫预留一条专有电路:如 电话网
- 分组交换:
- 将要传送的数据分成一个个单位: 分组
- 将分组从一个路由器传到相邻路由器(hop ),一段段最终从源端传到 目标端
- 每段 : 采用链路的 最大传输能力(带宽)
电路交换
在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通所需要的资源(缓存、链路传输速率)
端到端的资源被分配给从源端到目标端的呼叫 “ call ”
- 图中 ,每段链路有四条线路:
- 该呼叫采用了上面链路的第二个线路,右边线路的第一个线路(piece)
- 独享资源: 不共享
- 每个呼叫一旦建立起来就能够保证性能
- 如果 呼叫没有数据发送,被分配的资源将被浪费 (no sharing)
- 通常被传统电话网络采用
为 呼叫 预留端-端资源
- 链路带宽、交换能力
- 专用资源 : 不共享
- 保证性能
- 要求建立呼叫连接
网络资源(如带宽)被分成 片
- 为呼叫分配片
- 如果某个资源处于**空闲状态**(不共享)
- 将 带宽分成片
- 频分(Frequency - division multiplexing)
- 时分(Time - division multiplexing)
- 波分(Wave - division multiplexing)
FDM 与 TDM
链路中的电路是通过 频分复用(Frequency - Division Multiplexing,FDM) 或 时分复用(Time - Division Multiplexing, TDM) 来实现的。
对于 FDM,链路的频谱是由 跨越链路创建的所有连接共享。特别是,在连接期间链路为每条连接专用一个频段。
对于一条 TDM 链路,时间被划分为 固定期间的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙(在每个帧中)可用于传输该连接的数据
习题
计算示例
电路交换不适合计算机之间的通信的原因
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换,则浪费的片比较多
- 即使 这个呼叫没有数据传输,其所占据的片也不能够被别的呼叫使用
- 可靠性不高 ?
分组交换
以分组为单位存储-转发方式
- 网络带宽资源不再分为一个一个片,传输时使用全部带宽
- 主机之间传输的数据 被划分为一个个分组
资源共享,按需使用
- 存储 - 转发 : 分组每次移动一跳(hop)
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
- 排队时间
统计多路复用
A & B 时分复用 链路资源
A & B 分组没有固定模式 -> 统计 多路复用
网络核心的关键功能
存储 - 转发
分组交换:分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似 : 问路
- Internet
- 虚电路网络:
- 每个分组都带标签(虚电路标识 VCID),标签决定下一跳
- 在 呼叫建立时 决定 路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25 和 ATM
数据报的工作原理
- 在通信之前,无须建立一个连接,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器 根据分组的目标地址进行路由
虚电路的工作原理
- 被传输到下一个链路之前,整个分组必须到达路由器 : 存储 - 转发
- 在 一个速率为 R bps 的链路,一个长度为 L bits 的 分组的存储转发延时 : L/R s
- L = 7.5 Mbits
- R = 1.5 Mbps
- 三次 存储转发延时 : 15 s
排队延迟和丢失
排队和延迟
每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称为输出队列(output queue)),它用于存储路由器准备发往那条链路的分组。该输出缓存在分组交换中起着重要的作用。如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组必须在输出缓存中等待。因此,除了存储转发时延以外,分组还要承受输出缓存的排队时延(queuing delay)。这些时延是变化的,变化的程度取决于网络的拥塞程度。因为缓存空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满了。在此情况下,将出现**分组丢失(丢包)**(packet loss),到达的分组或已经排队的分组之一将被丢弃。
如果 到达速率 > 链路的输出速率
- 分组将会排队,等待传输
- 如果 路由器的缓存用完了,分组将会被抛弃
转发表和路由选择协议
路由: 决定分组采用的源到目标的路径
转发: 将分组从路由器的输入链路转移到输出链路
在因特网中,每个端系统具有一个称为 IP 地址的 地址。当源主机要向目标主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的 IP 地址,如同 邮政地址那样,该地址具有一种等级结构。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。 特别的是,每台路由器具有一个 转发表(forwarding table),用于将目的地址(或者目的地址的一部分)映射成为输出链路。当某分组 到达一台路由器时,路由器检查该地址,并用这个地址搜索其转发表,以发现适当的输出链路。路由器则将分组导向该出链路。
以上解释了 路由器使用分组的目的地址来索引转发表并决定适当的出链路。但是 转发表是如何进行设置的呢 ?
因特网 具有一些特殊的 路由选择协议(routing protocol),用于 自动地设置这些转发表。
例如 : 一个路由选择协议 可以决定从每台路由器到每个目的地的最短路径,并使用这些最短路径的结果来配置 路由器中的转发表。
分组交换 和 电路交换的 对比
同样的网络资源,分组交允许更多的用户使用 网络
- 1 Mb/s 链路
- 每个用户
- 活动时 100 kb/s
- 10 % 的时间是活动的
电路交换:
- 10 用户
分组交换:
- 35 用户时
>= 10
用户活动的概率为 0.0004
分组交换是 “突发数据的胜利者”?
- 适用于对 突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 过度使用会造成网络瘫痪 :分组延迟和 丢失
- 对可靠地数据传输需要协议来约束 : 拥塞控制
- 怎样提供 类似电路交换的 服务 ?
- 保证 音频/视频应用需要的带宽
- 一个 仍未解决的问题 (chapter 7)
网络分类
接入网和物理媒体
怎样将端系统和边缘路由器连接 ?
- 住宅接入网络
- 单位接入网络(学校、公司)
- 无线接入网络
注意
- 接入网络的带宽(bits per second)?
- 共享/专用
接入网
考虑了位于 “网络边缘” 的应用程序 和 端系统后,下面考虑 接入网 ,这是指将端系统物理连接到其 边缘路由器(edge route) 的网络。
边缘路由器是指 端系统到任何其他远程端系统的路径上的第一台路由器。
住宅接入 : modem
将 上网数据 调制 加载音频信号上,在电话线上传输,在局端将其中的数据 解调 出来;反之亦然
- 调频
- 调幅
- 调相位
- 综合调制
拨号调制器
- 56 kbps 的速率直接接入路由器(通常更低)
- 不能同时上网和打电话:不能 总是在线
住宅接入 :线缆模式
数字用户线 digital subscriber line (DSL)
- 采用 现存的 到交换局 DSLAM(数字用户线接入复用器) 的电话线
- DSL 线路上的数据被传到互联网
- DSL 线路上的语音被传到电话网
- < 2.5 Mbps 上行传输速率 (typical < 1 Mbps)
- < 24 Mbps 下行传输速率 (typical < 10 Mbps)
线缆网络
有线电视信号线缆双向改造
FDM : 在 不同频段传输不同信道的数据,数字电视和 上网数据(上下行)
- HFC : hybrid fiber coax
- 非对称 : 最高 30 Mbps 的下行传输速率, 2 Mbps 的上行传输速率
- 线缆和 光纤网络 将每个家庭用户 接入到 ISP 路由器
- 各用户 共享 到 线缆头端的接入网络
- 与 DSL 不同,DSL 的每个用户 一个专用线路到 CO (central office)
家庭网络
企业接入网络(Ethernet)
- 经常被企业和大学等机构采用
- 10 Mbps,100 Mbps,1 Gbps,10 Gbps 传输速率
- 现在,端系统经常直接接到 以太网络交换机上
无线接入网络
- 各无线端系统共享接入网络(端系统到 无线路由器)
- 通过基站或者叫 接入点
物理媒体
- Bit:在发送-接收对 间传播
- 物理链路:连接每个发送-接收对 之间的物理媒体
- 导引型媒体
- 信号沿固体媒介被导引
- 同轴电缆
- 光纤
- 双绞线
- 信号沿固体媒介被导引
- 非导引型媒体
- 开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
双绞线:
两根绝缘铜导线拧合
- 5 类 :100 Mbps 以太网,Gbps 千兆以太网
- 6 类 : 10 Gbps 万兆以太网
同轴电缆、光纤
同轴电缆
- 两根同轴的铜导线
- 双向
- 基带电缆
- 电缆上一个单个信道
- Ethernet
- 宽带电缆
- 电缆上有多个 信道
- HFC
光纤和光缆
- 光脉冲,每个脉冲表示一个 bit,在玻璃纤维中传输
- 高速
- 点到点的高速传输(如 10Gbps - 100 Gbps 传输速率)
- 低误码率 : 在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
- 安全
无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理 “线缆”
- 双向
- 传播环境效应
- 反射
- 吸收
- 干扰
无线链路类型
- 地面微波
- LAN
- wide-area
- 3G cellular : ~ 几 Mbps
- 4G :10Mbps
- 5G : 数 Gbps
- 卫星
- 每个信道 kbps 到 45 Mbps(或者多个聚集信道)
- 270 msec 端到端延迟
- 同步静止卫星和地轨卫星
Internet 结构 和 ISP
互联网络结构 : 网络的网络
- 端系统通过 接入**ISPs** (Internet Service Providers) 连接到互联网
- 住宅,公司和 大学的 ISPs
- 接入 ISPs 相应的必须是互联的
- 因此任何两个 端系统可互相发送分组给对方
- 导致的 “ 网络的网络” 非常复杂
- 发展和演化是通过 经济的 和 国家的 政策来驱动的
- 让我们采用渐进方法来描述当前互联网的结构
- 在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、但是之间有着多重连接)
- “ tier-1" commercial ISPs ,国家或者国际范围的覆盖
- content provider network : 将他们的数据中心接入 ISP,方便周边用户的访问;通常私有网络之间用专网绕过第一层 ISP 和
network of networks
- 松散的层次结构
- 中心:第一层 ISP (如 UUNet,BBN/Genuity,Sprint,AT&T) 国家/国际覆盖,速率极高
- 直接与其他第一层 ISP 相连
- 与大量的 第二层 ISP 和 其他客户网络相连
- 第二层 ISP : 更小些的(通常是区域性的)ISP
- 与一个或多个第一个 ISPs ,也可能与其他第二层 ISP
- 第三层 ISP 与其他本地 ISP
- 接入网(与端系统最近)
- 一个分组要经过许多分组
- 许多内容提供商(如 Google) 可能会部署自己的网络,连接自己在各地的 DC (数据中心),走自己的数据
- 连接若干 local ISP 和各级(包括一层)ISP,更加靠近用户
ISP 之间的连接
- POP : 高层 ISP 面向客户网络的接入点,涉及费用结算
- 如一个低层 ISP 接入多个高层 ISP,多宿(multi home)
- 对等接入: 两个 ISP 对等接入,不涉及费用结算
- IXP : 多个对等 ISP 互联互通之处,通常不涉及费用结算
- 对等接入
- ICP 自己部署专用网络,同时 和各级 ISP 连接
分组延时、丢失和吞吐量
在理想状态下 ,我们希望因特网服务能够在任意两个端系统之间随心所欲的瞬间移动数据而没有任何的数据丢失。然而这是一个极高的目标。与之相反,计算机网络必定要限制在端系统之间的吞吐量(每秒能够传送的数据量)。在端与端之间引入时延,而实际上也会存在 丢失分组。
分组丢失和延时是怎么发生的?
在路由器缓冲区的分组队列
- 分组到达链路的速率大于链路传输的速率
- 分组等待排到队头、被传输
分组交换网中的时延概述
分组从一个主机(host 源)出发,通过一系列的路由器传输,在另一台主机(目的地)中结束它的历程。当分组从一个节点(主机或路由器)沿着这条路径到后继节点(主机或路由器),该分组在沿途的每个节点经受了几种不同类型的时延。这些时延最为重要的是
- 节点处理时延(nodal processing delay )
- 排队时延(queuing delay)
- 传输时延(transmission delay)
- 传播时延(propagation delay)
这些时延总体累加起来是 节点总时延
节点处理时延
- 检查 bit 级 差错
- 检查分组首部和决定将分组导向何处
排队时延
- 在输出链路上等待被传输的时间
- 依赖于路由器的拥塞程度
传输时延
- R = 链路带宽(bps)
- L = 分组长度(bit)
- 将分组发送到链路上所需的时间 = L / R
- 存储转发延时
传播延时
- d = 物理链的长度
- s = 在媒体上传播的速度 (~ 2 x 10 ^ 8 m/sec)
- 传播延时 = d / s
Note : s and d are very different quantities
时延的类型
作为源和目的地之间的端到端路由的一部分,一个分组从上游节点通过路由器 A 向路由器B 发送。A 具有 通往 B 的出链路。该链路 前面有一个 队列 (也称缓存)。当 分组从上游节点到达路由器 A 时,路由器 A 检查该分组的首部以决定它的适当 出链路,并将该分组导向该链路。
在此例子中,对该分组的出链路是通向路由器 B 的那条链路。 仅当 在该链路没有其他分组正在传输并且没有其他分组排队在该队列之前时,才能在该链路上传输该分组
如果 该链路当前正繁忙或有其他分组已经在该链路上排队,则 新到达的分组将加入排队
处理时延
协议层次及服务类型
协议层次
网络是一个复杂的系统
- 网络的功能复杂:
- 数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等等
- 现实来看,网络的许多构成元素和设备
- 主机
- 路由器
- 各种媒体的链路
- 应用
- 协议
- 硬件、软件
层次化方式实现复杂的网络功能
- 将网络复杂的功能分层功能明确的 层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能 : 服务
- 本层协议实体相互交互执行本层的 协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接 利用率下层所提供的的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的) + 更下层所提供的的服务
服务
服务和服务访问点
- 服务(Service):
- 低层实体向上层实体提供他们之间的通信的能力
- 服务用户(service user)
- 服务提供者(service provider)
- 低层实体向上层实体提供他们之间的通信的能力
- 原语(primitive)
- 上层使用下层 服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是服务访问原语来进行交互的 — 形式
- 服务访问点 SAP( Services Access Point)
- 上层使用下层提供的服务通过层间的接口 - 地点
- eg: 邮箱
- 地址(address) : 下层的一个实体支撑着上层的多个实体,SAP 有标志不同上层实体的作用
- eg: 邮箱
- 上层使用下层提供的服务通过层间的接口 - 地点
服务的类型
面向连接的服务
- 面向连接的服务(Connection-oriented Service)
- 连接 (Connection)
- 两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信的过程:
- 建立连接
- 通信
- 拆除连接
- 面向连接的服务的 例子
- 网络层的连接被称为虚电路
- 适用范围
- 对于大的数据块要传输;不适合小的零星报文
- 特点
- 保序
- 服务类型
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登录
- 不可靠的连接 数字化声音
- 连接 (Connection)
面向无连接的服务
- 无连接的服务(Connectionless Service)
- 无连接服务
- 两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃(eg: 寄信)
- 特点
- 不可靠
- 可能重复
- 可能失序
- IP 分组,数据包
- 使用范围
- 适合 传送零星数据
- 服务类型
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
- 无连接服务
服务和协议
服务与协议的区别
- 服务(Service)
- 低层实体向上层实体提供他们之间的通信的能力,是通过 原语(primitive) 来操作的, 垂直
- 协议(protocol )
- 对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合, 水平
服务与协议的关系
- 本层 **协议的实现 ** 要靠下层提供的服务来实现
- 本层实体通过协议为 上层 提供更高级的服务
数据单元(DU)
分层处理和实现复杂系统的好处
- 概念化
- 结构清晰,便于标示网络组件,以及描述其相互关系
- 分层参考模型
- 结构化
- 模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 分层思想被认为有害的地方
Internet 协议栈
- 应用层: 网络应用
- 为人类或者其他应用进程提供网络应用服务
- FTP、SMTP、HTTP、DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为 进程到进程,将不可靠的通信变成可靠地通信
- TCP、UDP
- 网络层 : 为数据报从源到目的地 选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP、路由协议
- 链路层: 相邻网络节点间的数据传输
- 2 个 相邻 2 点的通信,点到点通信,可靠或不可靠
- 点到点协议 PPP,802.11(wifi),Ethernet
- 物理层:在线路上传送 bit
ISO / OSI 参考模型
- 表示层: 允许应用解释传输的数据 (加密,压缩,机器相关的表示转换)
- 会话层:数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层(在 应用层)
封装与解封装
各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):tcp 段,UDP 数据报
- 网络层:分组 packet(如果无连接方式 : 数据报 datagram )
- 数据链路层 : 帧(frame)
- 物理层:位 (bit)
小结
- 组成角度看 什么是互联网
- 边缘 : 端系统(包括应用) + 接入网
- 核心 : 网络交换设备 + 通信链路
- 协议 : 对等层实体通信过程中遵守的规则的集合
- 语法,语义,时序
- 为了实现复杂的网络功能,采用分层方式设计、实现和调试
- 应用层、传输层、网络层、数据链路层、物理层
- 协议数据单位
- 报文、报文段、分组、帧、位
- 从 服务角度 看互联网
- 通信服务基础设施
- 提供的通信服务: 面向连接 无连接
- 应用
- 通信服务基础设施
- 应用之间的交互
- C/S 模式
- P2P 模式
- 数据交换
- 分组数据交换
- 线路交换
- 比较 线路交换和 分组交换
- 分组交换的 2 中方式
- 虚电路
- 数据报
- 接入网和物理媒介
- 接入网技术
- 住宅:ADSL,拨号,cable modem
- 单位:以太网
- 无线接入方式
- 物理媒介
- 光纤,同轴电缆,以太网,双绞线
- 接入网技术
- ISP 层次结构
- 分组交换网络中 延迟和丢失是如何发生的
- 延迟的组成:
- 处理
- 传输
- 传播
- 排队
- 延迟的组成:
- 网络的分层体系结构
- 分层体系结构
- 服务
- 协议数据单元
- 封装与解封装
- 历史