《计算机网络 自顶向下方法》笔记:第一章 计算机网络和因特网
🚥计算机网络 自顶向下方法 系列文章导航🚥
一、什么是因特网
两种回答方式:
-
其一,描述因特网的具体构成,即构成因特网的基本硬件和软件组件;
-
其二,根据为分布式应用提供服务的联网基础设施来描述因特网。
1.从具体构成的角度描述其组成
网络由节点和边组成,而计算机网络则是联网的计算机所构成的系统。
(1)计算机网络的结点:
主机结点:主机(host,也叫做端系统(end system),一些能够联网的设备)及其上运行的应用程序。是数据的源,也是数据的目标。
数据交换节点:路由器(router,工作在网络层), 交换机(switch,工作在链路层) 等网络交换设备。既不是数据的源也不是数据的目标,是数据的中转节点。
(2)计算机网络的边,即通信链路(communication link,将节点连接在一起):
接入网链路:主机连到互联网的链路。(即连接主机结点和数据交换节点)
主干链路:路由器间的链路。(即连接数据交换节点和数据交换节点)
注:链路的传输速率(transmission rate) 以比特/秒(bit/s,或bps)度量。
(3)协议(protocol,第三个组成部分,支撑互联网工作的一些标准):
协议控制发送、接受消息,如:TCP、IP、HTTP、FTP、PPP
协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和接收一条报文或其他事件所采取的动作。(即规范了报文的语法、语义、时序、动作)
2.从服务的角度描述其组成
(1)使用通信设施进行通信的分布式应用:Web、email、分布式游戏、电子商务等
(2)为分布式应用提供通讯服务的基础设施:将发送和接收数据的apps与互联网连接起来,为app应用提供服务选择。服务又分为两种:
-
面向连接的可靠服务,如TCP(传输控制协议)
-
无连接的不可靠服务,如UDP(用户数据报协议)
3.网络的层次结构:网络边缘、网络核心、接入网
-
网络边缘:与用户直接相连的部分,包括终端设备和用户所在的局域网
-
网络核心:是网络中的主干部分,它由多个路由器和交换机组成,用于转发和路由数据包。将边缘结点连接在一起,使任意两个端系统能够通信
-
接入网:接入网是连接网络边缘和网络核心的部分,它提供了用户与网络核心之间的连接。
二、网络边缘
1.计算机网络架构模式
客户端-服务器(Client-Server)模式: 客户端发送请求给服务器,并等待服务器响应来获取所需的服务或资源。
特点: 中心化,可扩展性较差
P2P(Peer-to-Peer)模式: 是一种分布式计算和通信模式,节点在对等的基础上进行直接交互,而无需依赖中央服务器。每个节点既可以作为客户端,也可以作为服务器,可以提供资源和请求资源。
特点: 去中心化,可扩展性强,高容错
2.基础设施为通讯提供的服务
采用网络设施的面向连接服务: TCP服务(传输控制协议,Transmission Control Protocol)
特点: 握手(两个通信主机之间为连接建立状态),可靠的,保证顺序的(确认和重传),流量控制(协调发送方的发送速度和接收方的接受速度,使两者能够有序地进行),拥塞控制(网络拥塞时,发送方降低)
采用基础设施的无连接服务: UDP服务(用户数据报协议,User Datagram Protocol)
特点: 无连接,不可靠数据传输,无流量控制,无拥塞控制
三、网络核心
网络核心实现数据交换作用的两种方式:电路交换(circuit switching)和分组交换(packet switching)
1.电路交换
端到端的资源被分配给从源端到目标端的呼叫。
特点:资源独享,保证性能(每个呼叫一旦建立就能够保证性能,因为连接是专用的,数据传输不会受到网络拥塞或其他通信干扰的影响),要求建立呼叫连接,如果呼叫没有数据发送,被分配的资源就会被浪费。
2.电路交换三种常见的多路复用技术(将网络资源如带宽分片):
频分复用(Frequency Division Multiplexing,FDM)
频分复用是一种将不同信号或数据流分配到不同频率带宽上的技术。
时分复用(Time Division Multiplexing,TDM)
时分复用是一种将不同信号或数据流按照时间片分配的技术。
波分复用(Wavelength Division Multiplexing,WDM)
波分复用是一种将不同信号或数据流分配到不同光波长上的技术。
3.电路交换不适合计算机之间通信的原因
-
连接建立时间长
-
计算机之间的通信有突发性,如果使用线路交换,则浪费的资源较多(因为连接都是专用的,即使没有传递数据,其占据的资源也不能被别的呼叫所使用)
-
可靠性不高
4.分组交换
(1)以分组(packet)为单位的存储-转发方式
-
网络带宽资源不再分为一个个片,传输时使用全部带宽;
-
主机直接传输的数据被分为一个个分组;
(2)资源共享,按需使用
分组每次只移动一跳(hop);在转发之前,节点必须确保接收到了单个完整的分组,以保证数据的正确传输,因此延时比电路交换要大;存在排队延时;
(3)分组交换的排队延迟和丢失
如果数据到达链路的速率>链路的输出速率,可能导致:
-
分组将会排队,等待传输;
-
如果路由器的缓存用完,分组将会被抛弃;
5.网络核心的关键功能
-
转发:将分组从路由器的输入链路转移到输出链路(局部)
-
路由:决定分组采用的源到目标的路径(全局)
6.分组交换的统计多路复用
分组交换采用的是时分复用,但是没有固定的模式,我们称之为统计多路复用,它是一种特殊的时分复用。
7.分组交换VS.电路交换
同样的网络资源,分组交换允许更多用户使用网络(因为计算机之间的通信有突发性,其只有一小部分时间是活跃的而分组交换有资源共享、简单、不必建立呼叫的特点,更适合应对突发式数据传输)
分组交换过度使用会造成网络拥塞:分组延时和丢失(当流量强度=1时,排队延迟无限大),可靠的数据传输需要协议来约束(拥塞控制)
8.分组交换的存储-转发
分组(packet) 的存储转发按照有无网络层的连接分为以下两种:
(1)数据报网络(Datagram Network)
-
数据被划分为较小的数据包(称为数据报或分组)进行传输。
-
在通信前无须建立连接,有数据就传输。
-
每个数据报都独立地传输,它包含了目标地址和其他必要的控制信息,使其能够独立地在网络中寻找最佳路径到达目标节点。
-
在数据报网络中,每个数据报都可以独立地选择不同的路径进行传输,因此数据报网络具有较好的灵活性和容错性。
(2)虚电路网络(Virtual Circuit Network)
-
虚电路网络是一种面向连接的网络模型,其中在通信之前需要建立一个虚拟的通信路径(称为虚电路)。
-
一旦建立了虚电路,后续的数据传输将沿着该虚电路进行,而不需要再次确定路径。
-
虚电路网络通常具有较低的延迟和较高的传输效率,适用于需要保证通信质量和资源分配的应用。
虚电路靠信令建立,这里的连接方式可以理解为H0对应B2,所以A传到B,传输值为2,对应B表由A传来2 然后到C。
9.网络分类
四、接入网和物理媒体
接入网:数字用户线路(Digital Subscriber Line,DSL)、光纤接入网(Fiber to the Home,FTTH)、无线接入网
物理媒体:导引型媒体(Guided Media)(同轴电缆,光纤)、非导引型媒体(Unguided Media)(无线局域网(Wi-Fi)、蓝牙、卫星通信)
五、Internet结构和ISP
ISP(Internet Service Provider):因特网服务提供者(提供商)
互联网络结构:网络的网络,松散的层次模型
-
第一层ISP(作为中心):国家/国际覆盖,速率极高,直接与其他第一层ISP相连,与大量的第二层ISP和其他客户网络相连
-
第二层ISP:更小些的(通常是局域型的)ISP,与一个或多个第一层ISP相连,也可能与其他第二层ISP相连
-
第三层ISP与其他本地ISP:接入网(与端系统最近,端系统通过接入ISP连接到互联网)
网络和互联网的区别:
计算机网络(简称网络)把许多计算机连接在一起,而互联网把许多网络连接在一起,是网络的网络。
六、分组延时、丢失和吞吐量
1.四种分组延时
(1)节点处理延时:检查bit级差错;检查分组首部和决定将分组导向何处;
(2)排队延时:在输出链路上等待传输的时间,依赖于路由器的拥塞程度;
R(链路带宽),L(分组长度),a(分组到达队列的平均速率)
流量强度=La/R:
-
La/R~0:平均排队延时很小
-
La/R->1:排队延时很大
-
La/R>1:比特到达队列的速率超过了从该队列输出的速率,平均排队延时趋向于无穷大
注:La/R=1时,排队延时也是无限大。
(3)传输延时:传输延迟是指将数据从发送方传输到接收方所需的时间,它取决于数据的大小和传输速率;传输延迟 = 数据大小/传输速率;
(4)传播延时:传播延迟是指信号在传输介质中传播所需的时间,它取决于信号传播的距离和传播介质的特性,如光纤、电缆或无线信号的传播速度;传播延迟 = 传输距离/传播速度;
节点延时 = 处理延时 + 排队延时 + 传输延时 + 传播延时
2.分组丢失
分组到达链路的速率超过了链路输出的能力,分组就会在可用的缓冲区处排队等待,如果没有可用的缓冲区,则该分组会被丢弃(分组丢失,即丢包),丢失的分组可能会被前一个节点重传,可能会被源端系统重传,也可能根本不重传。
3.吞吐量
吞吐量:在源端和目标端之间传输的速率(数据量/单位时间)
瞬间吞吐量(instantaneous throughput):在一个时间点的速率
平均吞吐量(average throughput):在一个长时间内的平均值
瓶颈链路(bottleneck link):端到端路径上,限制端到端吞吐的链路(总吞吐量由吞吐量最小的那一段决定)
七、协议层次和服务模型
1.协议层次
-
协议要通过访问下层的服务才能实现,协议的目的是为了向上层提供更好的服务,协议是平行的。
-
每一层向上层提供的服务包括了所有上层提供服务的总和以及和对等层的实体交互过程中形成的一些新的服务特性。(即每一层不仅仅是对服务的单纯分解,在传递分解的过程中还会加入和同一层的实体交互后获得的新特性)
2.服务和服务访问点
服务(Service):底层实体向上层实体提供他们之间的通信的能力(服务是垂直的)
-
服务用户(Service user);
-
服务提供者(Service provider);
原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的——提供服务的形式
服务访问点SAP(Services Access Point):上层使用下层提供的服务通过层间的接口——提供服务的地点
3.服务的类型
面向连接的服务(Connection-oriented service) 是一种网络通信模式,其中在进行数据传输之前,通信的两个端点需要先建立一个持久的连接。面向连接的服务提供了可靠的数据传输,确保数据的有序性和完整性。如TCP(Transmission Control Protocol,传输控制协议)
无连接的服务(Connectionless service) 是一种网络通信模式,其中通信的两个端点在进行数据传输之前不需要建立持久的连接。无连接的服务通常用于对实时性要求较高的应用程序。如UDP(User Datagram Protocol,用户数据报协议),IP(Internet Protocol,互联网协议)
4.服务与协议的区别和联系
服务与协议的区别
-
服务:低层实体向上层实体提供他们之间的通信的能力,通过原语来操作,是垂直的。
-
协议:对等层实体之间在相互通信的过程中,需要遵守的规则的集合,是水平的。
服务与协议的联系
-
本层协议的实现要靠下层提供的服务来实现;
-
本层实体通过协议为上层提供更高级的服务;
5.Internet协议栈
应用层:网络应用
-
网络应用程序及他们的应用层协议存留的地方;
-
HTTP、DNS、FTP、SMTP
-
数据单元:报文(message)
传输层:主机之间的数据传输
-
在网络层提供的端到端通信基础上,细分为进程到进程(一个主机同时在运行多个进程)
-
将不可靠的通信变成可靠的通信;
-
TCP、UDP
-
数据单元:报文段(segment)
网络层:为数据报从源到目的选择路由
-
端到端通信
-
路由和转发
-
IP、路由协议
-
数据单元:数据报(datagram)
链路层:相邻网络节点间的数据传输,
-
点到点通信
-
数据单元:帧(frame)
物理层:将帧中的一个个比特从一个节点移动到下一个节点
-
数据单元:比特(bit)
6.ISO/OSI参考模型
国际标准化组织(ISO)提出计算机网络围绕七层来组织,成为开放系统互联(OSI)模型。
七层分别为:应用层、表示层、会话层、运输层、网络层、链路层、物理层
表示层:使通信的应用程序能够解释交换数据的含义,这些服务包括数据压缩和数据加码(它们是自解释的)以及数据描述(这使得应用程序不必担心在各台计算机中表示/存储的内部格式不同的问题)。
会话层:提供了数据交换的界定和同步功能,包括了建立检查底单和恢复方案的方法。
注:互联网协议栈并没有这两层,如果需要这些服务的话,将会在应用层实现。
7.封装和解封装
封装(encapsulation):指在发送端将数据从上层协议传递到下层协议时,将数据添加到每个协议的头部或尾部的过程。这个过程也被称为数据的封装或数据的包装。封装的目的是为了在网络中正确传输和处理数据。
解封装(decapsulation):指在接收端将数据从下层协议传递到上层协议时,逐层去除每个协议的头部或尾部的过程。这个过程也被称为数据的解封装或数据的拆包。解封装的目的是为了将数据恢复到原始的上层协议格式,以便应用程序能够正确处理和使用数据。
展示如下一条物理路径:
(1)数据在源端进行一个大的封装。从应用层开始,逐层封装到物理层的数据帧中。
(2)在链路层交换机进行两层的解封装和封装。数据到达交换机时,交换机会解析数据帧的头部信息,根据目标MAC地址进行转发(链路层交换机不抽取IP层)。然后,交换机会封装数据帧,添加适当的头部信息(如源MAC地址和目标MAC地址),以便在局域网中正确传输数据。
(3)在路由器进行三层的解封装和封装,路由器会解析数据帧的头部信息,提取出IP数据报。根据目标IP地址进行路由选择,然后封装IP数据报,添加适当的头部信息(如源IP地址和目标IP地址),以便在网络中正确传输数据。
(4)最后在目的地进行一次大的解封装。 目的地主机会解析数据帧的头部信息,提取出IP数据报,然后根据上层协议(如TCP或UDP)解析数据报的数据部分,以获取应用层的数据。