第一章 计算机网络概述
1.什么是Internet
- Internet:“网络的网络”
松散的层次结构、互联的ISP
公共Internet vs 专用intranet(企业用)
- Internet标准
RFC:Request fo comments
IETF:Internet Engineering Task Force
- 分布式应用以及为分布式应用提供服务的基础设施
1.1 从具体构成角度
1.节点
- 主机及其上运行的应用程序
- 路由器、交换机等网络交换设备
2.边:通信链路
- 接入网链路:主机连接到互联网的链路
- 主干链路:路由器间的链路
3.协议
Internet中所有通信行为都受协议制约。协议控制发送、接收消息。
如TCP、IP、HTTP、FTP、PPP
协议规范的方面:语法、语义、时序、动作。
4.数以亿计的、互联网的计算设备
- 主机:端系统
- 运行网络应用程序
5.通信链路
- 光纤、回轴电缆、无线电、卫星
- 传输速率:带宽(bps)
6.分组交换设备:转发分组(packets)
- 路由器和交换机
1.2 从服务角度
1.使用通信设施进行通信的分布式应用
分布式应用是网络存在的理由。
- Web、VoIP、email、分布式游戏、电子商务、社交网络...
2.通信基础设施为apps提供编程接口(通信服务)
将发送和接受数据的apps与互联网连接起来
为app应用提供服务选择,类似于邮政服务
- 无连接不可靠服务
- 面向连接的可靠服务
2.网络边缘
网络边缘是网络存在的理由。
- 主机
- 应用程序(客户端和服务器)
2.1 端系统(主机)
- 运行应用程序
- 如Web、email
- 在“网络的边缘”
2.2 客户/服务器模式
典型的主从模式:所有的运行资源都在服务器,客户端所请求的所有资源都来源于服务器。
主要缺点:客户/服务器模式的可扩展性比较差。随着请求载荷的增加,能力会下降,当达到一定阈值时,客户端/服务器模式的能力会断崖式下降。
- 客户端向服务器请求、接受数据
- 如Web浏览器/服务器,email客户端/服务器
2.3 对等(peer-peer)模式
每个节点既是客户端又是服务器。随着peer节点的增多,请求资源的节点越来越多,但同时提供资源的节点也越来越多。而且它的通讯是分布式的,所以不存在客户/服务器的缺点。
例如:迅雷、电驴就采用p2p模式
- 很少(甚至没有)专门的服务器
- 如Gnutella、KaZaA、Emule
2.4 采用网络设施的面向连接服务
目标:在端系统之间传输数据
- 握手:在数据传输之前做好准备
人类协议中:你好、你好
两个通信主机之间为连接建立状态
- TCP-传输协议(Transmission Control Protocol)
Internet上面向连接的服务
TCP服务
- 可靠地、按顺序地传送数据
确认和重传机制
可靠要求包括的要素:不出错、不丢失、不重复、不失序。
- 流量控制
发送方不会淹没接收方
协调发送方速度和接收方速度,从而让两者有序通信。
- 拥塞控制
当网络拥塞时,发送方降低发送速率。
-
使用TCP的应用:HTTP(Web)、FTP(文件传送)、Telnet(远程登录)、SMTP(email)
2.5 采用基础设施的无连接服务
目标:在端系统之间传输数据
- 无连接服务
UDP-用户数据报协议(User Datagram Protocol)
-
无连接
-
不可靠数据传输
-
无流量控制
-
无拥塞控制
-
使用UDP的应用:流媒体、远程会议、DNS、Internet电话
3.网络核心
网络核心:路由器的网状网络。
网络核心的核心作用是数据交换。
边缘通过接入网和物理媒体接入到核心,核心把所有的边缘节点接在一起,为网络边缘提供连通性,让它们能够通信,进行数据交换。
- 互连着的路由器
- 网络的网络
3.1 电路交换
为每个呼叫预留一条专有电路(如电话网)
端到端的资源被分配给从源端到目标端的呼叫“call”:
1.图中,每段链路有4条线路:该呼叫采用了上面链路的第2个线路,右边链路的第1个线路
(piece)
2.独享资源:不同享
每个呼叫一旦建立起来就能够保证性能
3.如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
4.通常会被传统电话网络采用
为呼叫预留端-端资源
- 链路带宽、交换能力
- 专用资源:不共享
- 保证性能
- 要求建立呼叫连接
网络资源(如带宽)被分成片
-
为呼叫分配片。如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)。
-
将带宽分成片:频分、时分、波分
-
电路交换不适合计算机之间的通信:1、连接建立时间长 2、计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多 3、可靠性不高
3.2 分组交换
- 将要传送的数据分成一个个单位:分组(packet)
- 将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端
- 每段:采用链路的最大传输能力(带宽)
以分组为单位存储-转发方式
- 网络带宽资源不再分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组
资源共享,按需使用
-
存储-转发:分组每次移动-跳(hop)
- 在转发之前,节点必须收到整个分组
- 延时比线路交换要大
- 排队时间
排队和延迟
-
如果到达速率>链路的输出速率:
- 分组将会排队,等待传输
- 如果路由器的缓存用完了,分组将会被抛弃
分组交换 vs 电路交换
分组交换允许更多用户使用网络
1. 1MB/s链路
2. 每个用户:活动时100kb/s、10%的时间是活动的
电路交换
1. 10用户
分组交换
1. 35用户
2. >=10个用户活动的概率为0.0004
3.3 网络核心的关键功能
- 路由
决定分组采用的源到目标的路径。
- 转发
将分组从路由器的输入链路转移到输出链路。
3.4 分组交换网络:存储-转发
分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
- 数据报网络
- 虚电路网络
- 数据报网络
工作原理
- 在通信之前,无需建立起一个连接,有数据就传输。
- 每个分组都独立路由(路径不一样,可能会失控)。
- 路由器根据分组的目标地址进行路由。
- 虚电路网络
工作原理
4.接入网和物理媒体
接入网的作用是将网络边缘接入到核心。
- 有线或者无线通信链路
怎样将端系统和边缘路由器连接?
- 住宅接入网络
- 单位接入网络(学校、公司)
- 无线接入网络
4.1 住宅接入:modem
-
将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来:反之亦然
- 调制
- 解调
- 调相位
- 综合调制
-
拨号调制解调器
- 56Kbps的速率直接接入路由器(通常更低)
- 不能同时上网和打电话:不能总是在线
4.2 企业接入网络(Ethernet)
-
经常被企业或者大学等机构采用
- 10Mbps、100Mbps、1Gbps、10Gbps传输率
- 现在,端系统经常直接接到以太网络交换机上
-
各无线端系统共享无线接入网络(端系统到无线路由器)
- 通过基站或者交接入点
- 无线LANs
- 广域无线接入
4.3 物理媒体
- Bit:在传输-接收对间传播
- 物理链路:在每个传输-接收对,跨越一种物理媒体
- 导引型媒体:信号沿着固体媒介被导引(同轴电缆、光纤、双绞线)
- 非导引型媒体:信号自由传播(如无线电)
双绞线
- 两根绝缘铜线
- 5类:100Mbps Ethernet、Gbps以太网
- 6类:10Gbps
同轴电缆
- 两根同心的铜导线
- 双向
- 基带电缆
- 电缆上一个单个信道
- Ethernet
- 宽带电缆:
- 电缆上有多个信道
- HFC
光缆
- 光脉冲,每个脉冲表示一个bit,在玻璃纤维中传输
- 高速:点到点的高速传输(如10Gbps-100Gbps传输速率)
- 低误码率:在两个中继器之间可以有很长的距离:不受电磁噪声的干扰
- 安全
无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应:反射、吸收、干扰
- 类型:
- 地面微波
- LAN(例如:WiFi)
- widi-area(例如:蜂窝)
- 卫星
5.Internet结构和ISP
互联网络结构:网络的网络
- 端系统通过接入ISPs(Internet Service Providers)连接到互联网
- 住宅。公司和大学的ISPs
- 接入ISPs相应的必须是互联的
- 因此任何2个端系统可相互发送分组到对方
- 导致的“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
松散的层次结构
-
中心:第一层ISP(如UUNet,BBN/Genuity,Sprint,AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
-
第二层ISP:更小些的(通常是区域性的)ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP相连
-
第三层ISP与其他本地ISP
- 接入网(与端系统最近)
ISP之间的连接
- POP:高层ISP面向客户网络的接入点,涉及费用结算
- 如一个底层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互联,不涉及费用计算
- IXP:多个对等ISP互联互通之处,通常不涉及费用计算
- 对等接入
- ICP自己部署专用网络,同时和各级ISP连接
6.分组延时、丢失和吞吐量
分组丢失和延时是怎样发生的
在路由器缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头、被传输
6.1 四种分组延迟
- 节点处理延时
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
- 传输延时
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间=L/R
- 存储转发延时
- 传播延时
- d=物理链路的长度
- s=在媒体上的传播速度(~2×10^8m/sec)
- 传播延时=d/s
6.2 排队延时
R = 链路带宽(bps)
L = 分组长度(bits)
a = 分组到达队列的平均速率
流量强度 = La/R
- La/R ~ 0:平均排队延时很小
- La/R -> 1: 延时变得很大
- La/R > 1:比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大
6.3 分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或源端系统重传,或者根本不重传
6.4 吞吐量
在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内的平均值
7.协议层次及服务模型
网络是一个复杂的系统
- 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
- 现实来看,网络的许多构成元素和设备:
- 主机、路由器、各种媒体的链路
- 应用、协议、硬件和软件
7.1 层次化方式实现复杂网络功能
- 将网络复杂的功能分成功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务。
- 在实现本层协议的时候,直接利用了下层所提供的服务。
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
分层处理和实现复杂系统的好处
对付复杂的系统
- 概念化:结构清晰,便于标识网络组件,以及描述其相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
7.2 服务和服务访问点
-
服务(Service):低层实体向上层实体提供它们之间通信的能力
- 服务用户(service user)
- 服务提供者(service provider)
-
原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的
-
服务访问点SAP(Services Access Point):上层使用下层提供的服务通过层间的接口——地点:
- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
- 可以有不同的实现、队列
- 例子:传输层的SAP:端口(port)
服务的类型
面向连接的服务和无连接的服务
-
无连接服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接、不预留资源:不需要通信双方都是活跃(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组、数据包
- 适合范围:传送零星数据
- 服务类型:1.不可靠的数据报:电子方式的函件 2.有确认的数据报:挂号信 3.请求回答、信息查询
服务和协议
服务和协议的区别
- 服务(Service):低层实体向上层实体来提供它们之间的通信能力,是通过原语(primitive)来操作的,垂直
- 协议(protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
服务和协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
7.3 Internet协议栈
- 应用层:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP、SMTP、HTTP、DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
- TCP、UDP
- 网络层:为数据报从源到目的选择路由
- 主机与主机之间的通信、端到端通信。不可靠
- IP、路由协议
- 链路层:相邻网络节点间的数据传输
- 2个相邻2点的通信、点到点通信、可靠或不可靠
- 点对点协议PPP,802.11(WiFi),Ethernet
- 物理层:在线路上传送bit
各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段、UDP数据段
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
8.历史
早期(1960以前)计算机网络
- 线路交换网络
- 线路交换的特性使得其不适合计算机之间的通信
- 线路建立时间过长
- 独享方式占用通信资源,不适合突发性很强的计算机之间的通信
- 可靠性不高,非常不适合军事通信
- 三个小组独立地开展分组交换的研究
- 1961:Kleinrock(MIT),排队论,展现了分组交换的有效性
- 1964:Baran(美国兰德公司)-军用网络上的分组交换
- 1964:Donald(英国)等,NPL
1961-1972:早期的分组交换概念
1972-1980:专用网络和网络互联
1980-1990:体系结构变化,网络数量激增,应用丰富
1990,2000's:商业化,Web,新的应用
2005-现在
- ~50亿主机:包括智能手机和平板
- 宽带接入的快速部署
- 高速无线接入无处不在:移动互联时代
- 4G部署,5G蓄势待发
- 带宽大,终端性能高,价格便宜,应用不断增多
- 在线社交网络等新型应用的出现:
- Facebook:10亿用户
- 微信、qq:数十亿用户
- 服务提供商创建他们自己的网络
- 通过自己的专用网络提供对搜索、视频内容和电子邮件的即刻访问
- 电子商务、大学、企业在云中运行他们的服务
- 体系结构酝酿着大的变化,未来网络蠢蠢欲动