计算机网络:自顶向下方法 课程学习随笔
文章目录
第一章 计算机网络与互联网
1.1 互联网络概念
一个自主、自治、互联的计算机通信系统。
构成角度
-
节点
-
节点及其上运行的应用程序
-
路由器、交换机等网络交换设备
-
-
边:通信链路
-
接入网链路:主机连接到互联网的链路
-
主干链路:路由器间的链路
-
-
协议:如TCP、IP、HTTP等等
数以亿计的、互联的计算设备:
-
主机 = 端系统
-
运行网络应用程序app
通信链路:
-
光纤、同轴电缆、无线电、卫星
-
传输速率:带宽(bps)
分组交换设备:转发设备(packets)
- 路由器和交换机
协议控制发送、接收信息:
- 如TCP、IP、HTTP、FTP、PPP
Internet:“网络中的网络”:
-
松散的层次结构、互联的ISP
-
公共Internet 专业 Internet
Internet标准:
-
RFC: Request for comments 请求评论 IETF的标准文档
-
IETF: Internet Engineering Task Force 制定网络标准的组织
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mVXgzB8A-1652878695428)(image/image_I6w_RpDfQY.png)]
什么是协议?
协议定义了在两个或者多个通信实体之间交换的报文格式和次序,以及在报文传输/或接收或其他时间方面所采取的动作。
网络协议:
-
类似人类协议
-
机器之间的协议而非人与人之间的协议
-
Internet中所有的通信行为都受协议制约
服务角度
分布式应用是网络存在的理由
-
使用通信设施进行通信的分布式应用
- Web、VoIP、email、分布式游戏、电子商务、社交网络等
-
通信基础设施为apps提供编程接口(通信服务)
-
将发送和接收数据的apps与互联网连接起来
-
为app应用提供服务选择,类似于邮政服务
-
无连接不可靠服务(UDP)
-
面向连接的可靠服务(TCP/IP)
-
-
-
网络结构
-
网络边缘
-
主机
-
应用程序(客户端和服务器)→ 网络存在的原因
-
-
网络核心(作用是数据交换,看起来像是两个主机之间有开关)
-
互联着的路由器
-
网络的网络
-
-
接入网、物理媒体
-
有线或者无线通信链路
-
-
1.2 网络边缘
-
组成
-
端系统(主机)
-
运行应用程序
-
如Web、Email等在“网络的边缘”
-
-
客户/服务器模式(C/S)(服务器先启动、客户端后启动;服务端是被动的、客户端是主动的;所有资源在服务器)
-
典型的主从模式(集中式)
-
客户端向服务器请求、接收服务
-
如Web浏览器/服务器;email客户端/服务器
-
可扩展性差:随着请求载荷的增加,服务器的能力是下降的。需要注意的是,当达到一定的载荷,会出现断崖式的下降
-
-
对等(peer-peer)模式(分布式)
-
很少(甚至没有)专门的服务器
-
如Gnutella、KaZaA、Emule等
-
-
-
面向连接的通信方式
-
面向连接:通信的方式只有在端系统维持
-
有连接:通信的方式整个网络都知道
目标:在端系统之间传输数据
- 握手:在数据传输之前需要做好准备,两个通信主机之间为链路建立状态
TCP服务:
-
可靠地、按顺序地传送数据
- 确认和重传
-
流量控制:协调发送方和接收方的速率
- 发送方不会淹没接收方
-
拥塞控制
- 当网络拥塞时,发送方降低发送速率
-
-
无连接的通信方式
目标:在端系统之间传输数据
UDP——用户数据报协议
-
无连接
-
不可靠传输数据
-
无流量控制
-
无拥塞控制
-
-
主机到主机的通信通过UDP划分为进程到进程的通信
-
使用TCP的应用
- HTTP(Web)、FTP(文件传输)、Telnet(远程登录)、SMTP(email)等
-
使用UDP的应用
- 流媒体、远程会议、DNS、Internet电话等
-
1.3 网络核心
什么是网络核心?
网络核心:路由器的网状网络
基本问题:数据怎么样通过网络进行传输?
-
电路交换:为每个呼叫预留一条专有电路:如电话网
-
分组交换
电路交换
-
端到端的资源被分配给从远端到目标端的呼叫“call”(举例)
-
图中,每段链路有4条线路:
- 该呼叫采用了上面链路的第2 个线路,右边链路的第1个线路(piece)
-
独享资源:不同享
- 每个呼叫一旦建立起来就能够保证性能
-
如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
-
通常被传统电话网络采用
-
-
电路交换的特点(为呼叫预留端到端的资源)
-
链路带宽、交换能力
-
专用资源:不共享
-
保证性能
-
要求建立呼叫连接
-
-
电路交换的分类
频分(Frequency-division multiplexing)
时分(Time-division multiplexing)
波分(Wave-division multiplexing):光通信
g)] -
电路交换不适合计算机之间的通信
-
连接建立时间长(秒级别)
-
计算机之间的通信具有突发性,如果使用电路交换,则浪费的片太多
-
可靠性不高?
-
分组交换
-
什么是分组交换?
以分组为单位存储-转发方式
-
网络带宽资源不再分为一个一个片,传输时使用全部带宽
-
主机之间传输的数据被分为一个个分组
存储-转发:分组每次移动一跳(hop)
-
在转发之前,节点必须收到整个分组
-
延迟比电路交换要大
-
排队时间
-
-
排队延迟和丢失
如果到达速率>链路的输出速率
-
分组将会排队,等待传输
-
如果路由器的缓存用完了,分组将会被抛弃
-
-
分组交换的分类
分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分为:
-
数据报网络(两个主机交换前没有握手):
-
分组的目标地址决定下一跳
-
在不同的阶段,路由可以改变
-
类似:问路
-
Internet
-
-
虚电路网络(靠信令建立)
-
每个分组都带标签(虚电路标识VCID),标签决定下一跳
-
在呼叫建立时决定路径,在整个呼叫中路径保持不变
-
路由器维持每个呼叫的状态信息
-
X25和ATM
-
-
网络核心的关键功能
路由:决定分组采用的源到目标的路径
转发:将分组从路由器的输入链路转移到输出链路
1.4 接入网和物理媒体
注意:
-
接入网络的带宽(bits per second)?
-
共享/专用?
接入方式
-
住宅接入:modem
-
将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来,反之亦然。
-
调频
-
调幅
-
调相位
-
综合调制
-
-
拨号调制解调器
-
56Kbps的速率直接接入路由器(通常更低)
-
不能同时上网和打电话:不能总是在线
-
-
-
接入网:digital subscriber line (DSL)
-
采用现存的到交换局DSLAM的电话线
-
DSL线路上的数据被传到互联网
-
DSL线路上的语音被传到电话网
-
-
<2.5Mbps上行传输速率
-
<24Mbps下行传输速率
-
-
线缆网络
-
FDM:在不用频段传输不同信道的数据,数字电视和上网数据(上下行)
-
HFC: hybrid fiber coax。 非对称:最高30Mbps下行,2Mbps上行
-
线缆和光纤网络将家庭用户接入到ISP路由器
-
各用户共享到线缆头端的接入网络
- 与DSL不同,DSL每个用户一个专用线路到CO (central office)
-
- 无线接入网络
物理媒体
-
bit:在发送-接收对间传播
-
物理链路:连接每个发送-接收对之间的物理媒体
-
导引型媒体:信号沿着固体媒介被导引,如同轴电缆、光纤、双绞线
-
非导引型媒体:开放的空间传播电磁波或者光信号
1.5 Internet结构和ISP
-
端系统通过接入ISPs(Internet Service Providers)连接到互联网
-
接入到ISPs相应的必须是互联的
- 因此任何2个端系统可相互发送分组到对方
-
导致的“网络的网络”非常复杂
- 发展和烟花是通过经济的和国家的政策来驱动的
-
问题:给定数百万接入ISPs,如何将他们互联到一起?
将每两个ISPs直接相连,不可扩展,需要$ o(n^2) $的连接
-
选项:将每个接入ISP都连接到全局ISP?客户ISPs和提供者ISPs有经济合约
-
竞争:如果全局ISP是有利可图的业务,会有竞争
-
合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联对等互联的结算关系
-
Internet结构
-
松散的层次模型
-
中心:第一层ISP,国家/国际覆盖,速率极高
-
直接与其他的第一层ISP相连
-
与大量的第二层ISP和其他客户网络相连
-
-
第二层ISP:更小的(通常是区域性的)ISP
-
第三层ISP与其他本地的ISP
-
1.6 分组延时、丢失和吞吐量
-
分组丢失和延时是怎么样产生的?
-
分组到达链路的速率超过了链路输出的能力
-
分组等待排到对头、被传输
-
-
四种分组延时
-
节点处理延时:
-
检查bit级差错
-
检查分组首部和决定将分组导向何处
-
-
排队延时
-
在输出链路上等待传输的时间
-
依赖于路由器的拥塞程度
-
-
传输延时:
-
R=链路带宽
-
L=分组长度
-
将分组发送到链路上的时间L/R
-
存储转发延时
-
-
传播延时:
-
d=物理链路的长度
-
s=在媒体上的传播速率(~ 2 × 1 0 8 m / s e c 2 \times 10^8 m/sec 2×108m/sec)
-
传播延时=d/s
-
a=分组到达队列的平均速率
流量强度:L*a/R
-
→ 0:平均排队时延很小
-
→ 1:延时变得很大
-
> 1:比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向于无穷大
-
-
-
分组丢失
-
链路的队列缓冲区容量有限
-
当分组到达一个满的队列时,该分组将会丢失
-
丢失的分组可能会被前一个节点和源端系统重传,或根本不重传
-
-
吞吐量
在源端和目标端之间传输的速率(数据量/单位时间)
-
瞬间吞吐量:在一个时间点的速率
-
平均吞吐量:在一个长时间内的平均值
- 瓶颈链路:端到端路径上,限制端到端吞吐的链路被称之为瓶颈链路
-
1.7 协议层次与服务模型
协议层次
网络是一个复杂的系统
-
模块化
-
分层(计算机网络采用)
层次化方式实现复杂的网络功能:
-
将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
-
本层协议实体相互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
-
在实现本层协议的时候,直接利用了下层所提供的服务
-
本层的服务,借助下层服务实现的本层协议实体之间交互带来的新功能+更下层提供的服务
-
服务和服务访问点
-
服务(service):低层实体向上层实体提供他们之间的通信的能力
-
服务用户(service user):如TCP实体上的多个用户等
-
服务提供者(service provider)
-
-
原语(primitive):上层使用下层服务的形式,高层使用底层提供的服务,以及底层向高层提供服务都是通过服务访问原语来进行交互的——形式。
-
服务访问点SAP (Services Access Point):上层使用下层提供的服务通过层间的接口——地点
-
例子:邮箱
-
地址(address):下层的一个实体支撑着上层的多个实体,ASP有标志不同上层实体的作用
-
可以有不同的实现、队列
-
例子:传输层的SAP:端口(port)
-
-
-
服务的类型
-
面向连接的服务
-
连接:两个通信实体为进行通信而建立的一种结合
-
面向连接的服务通信的过程:建立连接、通信、拆除连接
-
-
无连接的服务
-
无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源,不需要通信双方都在活跃
-
特点:不可靠、可能重复、可能失序
-
IP分组、数据包
-
-
-
服务和协议:
-
区别
-
服务:底层实体想上层实体提供他们之间的通信的能力,是通过原语来操作的,垂直
-
协议:对等层实体之间在相互通信的过程中,需要遵循的规则的集合,水平
-
-
联系
-
本层协议的实现要靠下层提供的服务来实现
-
本层实体通过协议为上层提供更高级的服务
-
-
-
数据单元
-
Internet 协议栈
-
应用层:网络应用(报文 message)
-
为人类用户或者其他应用进程提供网络应用服务
-
FTP、SMTP、HTTP、DNS
-
-
传输层:主机之间的数据传输(报文段 segment TCP段、UDP数据报)
-
在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
-
TCP,UDP
-
-
网络层:为数据报从源到目的选择路由(分组 packet, 如果是无连接方式,数据报 datagram)
-
主机主机之间的通信,端到端通信,不可靠
-
IP、路由协议
-
-
链路层:相邻网络节点间的数据传输(帧 frame)
-
2个相邻2点的通信,点到点通信,可靠或不可靠
-
点对对协议PPP、802.11(wifi)、Ethernet
-
-
物理层:在线路上传输bit(位 bit)
-