1. 计算机网络概述 - Überblick über Computernetzwerke
1.1. 计算机网络在信息时代的作用 - Rolle der Computernetze im Informationszeitalter
- 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施
- 计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分
1.1.1. 德国互联网发展状况
网址:https://www.mcschindler.com/d...
https://de.statista.com/stati...
Anzahl der Internetnutzer in Deutschland in den Jahren 1997 bis 2021 (in Millionen)
1. 网络使用概况
1.2. 因特网概述 - 历史 - Internet Überblick
1.2.1. 网络,互连网和因特网 - Netzwerke, internet und Internet
1. 网络(Network)
- 由若干结点(Node)和连接这些结点的链路(Link)组成。
2. 互连网(互联网)
- 多个网络通过路由器互连起来,形成覆盖范围更大的互连网(互联网)。互联网又称为“网络的网络”。
- 因特网 (Internet) 是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
3. internet 与 lnternet 的区别
- internet (互联网):是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。
- Internet (因特网) 则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络(因特网),它采用TCP/IP协议族作为通信的规则,其前身是美国的 ARPANET。
1.2.2. 因特网发展的三个阶段 - Die drei Phasen der Internet-Entwicklung
1. 1969年 - 从单个网络 ARPANET 向互联网发展
- 1969年,第一个分组交换网 ARPANET
- 70年代中期,研究多种网络之间的互连
- 1983年,TCP/IP协议成为ARPANET的标准协议(因特网诞生时间)
2. 1985年 - 逐步建成三级结构的因特网
- 1985年,NSF围绕六个大型计算机中心建设NSFNET(主干网、地区网和校园网)
- 1990年,ARPANET任务完成,正式关闭
- 1991年,美国政府将因特网主干网交给私人公司经营,并开始对接入因特网的单位收费
3. 1993年 - 多层次ISP结构的因特网
- 1993年,NSFNET逐渐被若干个商用因特网主干网替代;政府机构不再负责因特网运营,让各种因特网服务提供者ISP来运营
- 1994年,万维网wwW技术促使因特网迅猛发展
- 1995年,NSFNET停止运作,因特网彻底商业化
ISP: 因特网服务提供者ISP(Internet Service Provider)
1. 因特网服务提供者ISP
(I
nternet S
ervice P
rovider)
普通用户是如何接入到因特网的呢?
答:通过ISP接入因特网
ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何机构和个人只需缴纳费用,就可从ISP的得到所需要的IP地址。
因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网
中国的三大ISP
:中国电信,中国联通和中国移动
基于ISP的三层结构的因特网
1.3 因特网的标准化工作
因特网协会ISOC |
---|
因特网体系结构委员会IAB |
因特网工程部IETF 和 因特网研究部IRTF |
1.3.1. 制定因特网标准的四个阶段
1.因特网草案(不是RFC)
- 因特网的标准化工作对因特网的发展起到了非常重要的作用。
2. 建议标准(开始成为RFC)
因特网在制定其标准上的一个很大的特点是面向公众。
- 因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载;(http://www.ietf.org/rfc.html)
- 任何人都可以随时用电子邮件发表对某个文档的意见或建议。
3. 草案标准
因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
- 因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
- 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
- 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
4. 因特网标准
制订因特网的正式标准要经过以下4个阶段:
- 因特网草案(在这个阶段还不是RFC文档)
- 建议标准 (从这个阶段开始就成为RFC文档)
- 草案标准 (目前已取消)
- 因特网标准
1.4. 因特网组成 - Internet Komposition
- 因特网由边缘部分和核心部分组成。
1.4.1. 边缘部分
由所有连接在因特网上的主机组成(台式电脑,大型服务器,笔记本电脑,平板,智能手机等)。
这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
1.4.2. 核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
1.4.3. 三种交换方式
- 电路交换(Circuit Switching)
- 分组交换(Packet Switching)
- 报文交换(Message Switching)
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
在网络核心部分起特殊作用的是路由器(router)。
路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
1.4.4. 电路交换(Circuit Switching)
电路交换的三个步骤:
1️⃣ 建立连接
**⬇**
2️⃣ 数据传输
**⬇**
3️⃣ 释放连接
对于计算机突发数据的传输,线路利用率不高。
1.4.5. 分组交换(Packet Switching)
- 将报文划分成若干个等长的数据段,然后给各数据段添加首部(包含重要的控制信息)构成分组。
- 结点交换机(路由器)对分组进行存储转发。
- 分组从源主机到目的主机,可走不同的路径。
1.4.6. 报文交换(Message Switching)
报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。
1.4.7. 三种交换方式的对比
假设A,B,C,D是分组传输路径所要经过的4个结点交换机,纵坐标为时间
分析
电路交换:
- 通信之前首先要建立连接;连接建立好之后,就可以使用已建立好的连接进行数据传送;数据传送后,需释放连接,以归还之前建立连接所占用的通信线路资源
- 一旦建立连接,中间的各结点交换机就是直通形式的,比特流可以直达终点
报文交换:
- 可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机
- 整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间
分组交换:
- 可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组
- 构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制
1.5. 计算机网络的定义和分类
1.5.1. 计算机网络的定义
- 计算机网络的精确定义并未统一
计算机网络的最简单的定义是: 一些互相连接的、自治的计算机的集合。
- 互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
- 自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用;
- 集合:是指至少需要两台计算机;
计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬件(一定包含有中央处理机CPU)互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
- 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
以下系统并不是一个计算机网络。 因为图示终端机只是具有显示和输入设备的终端,不是自治的计算机。因此,这只是一个运行分时系统的大型机系统。
1.5.2. 计算机网络的分类
按照交换技术分类
- 电路交换网络
- 报文交换电路
- 分组交换电路
按使用者分类
- 公用网
- 专用网
按照传输介质分类
- 有线网
- 无线网
按覆盖范围分类
- 广域网 WAN
- 城域网 MAN
- 局域网 LAN
- 个域网 PAN
按拓扑结构分类
- 总线型网络
- 星型网络
- 环型网络
- 网状型网络
1.6. 常用性能指标
性能指标可以从不同的方面来度量计算机网络的性能。 常用的计算机网络的性能指标有以下 8 个:
- 速率
- 带宽
- 吞吐量
- 时延
- 时延带宽积
- 往返时间
- 利用率
- 丢包率
1.6.1. 速率
1. 比特
计算机中 数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个 1
或 0
。
常用数据量单位:
8 bit = 1 Byte
KB = 2^10B
MB = K·KB = 2^10·2^10 B = 2^20 B
GB = K·MB = 2^10·2^20 B = 2^30 B
TB = K·GB = 2^10·2^30 B = 2^40 B Copy to clipboardErrorCopied
2. 速率
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为 比特率 或 数据率。
常用数据单位:
bit/s (b/s,bps)
kb/s = 10^3 b/s (bps)
Mb/s = k·kb/s = 10^3·10^3 bls = 10^6 b/s (bps)
Gb/s = k·Mb/s = 10^3·10^6 b/s = 10b/s (bps)
Tb/s = k·Gb/s = 10^3·10^9 b/s = 10"2 bls (bps)Copy to clipboardErrorCopied
例1∶有一个待发送的数据块,大小为100 MB,网卡的发送速率为100 Mbps,则网卡发送完该数据块需要多长时间?
1.6.2. 带宽
带宽在模拟信号系统中的意义
信号所包含的各种不同频率成分所占据的频率范围。
单位:Hz(kHz, MHz, GHz)
带宽在计算机网络中的意义
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一个点所能通过的“最高数据率”。
单位:b/s(kb/s, Mb/s, Gb/s, Tb/s)
1.6.3. 吞吐量
- 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
- 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底由多少数据量能够通过网络。
- 吞吐量受网络的带宽或额定速率的限制。
带宽1 Gb/s的以太网,代表其额定速率是1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。
注意:吞吐量还可以用每秒传送的字节数或帧数表示
1.6.4. 时延
时延时指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络时延由几部分组成:
1. 发送时延
主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
2. 传播时延
电磁波在信道中传播一定的距离需要花费的时间。
电磁波在 自由空间 的传播速率 v=3×108m/sv=3×108m/s
在铜线中:v=2.3×108m/sv=2.3×108m/s
在光纤中:v=2.0×108m/sv=2.0×108m/s
3. 处理时延
主机或路由器在收到分组时要花费一定时间进行处理
一般不方便计算。
发送时延占主导还是传播时延占主导,要根据具体例子实际分析。
4. 排队时延
分组在进过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
有时会把排队时延看成处理时延 一部分
总时延 = 发送时延 + 传播时延 + 处理时延 (处理时延 + 排队时延)
5. 时延带宽积
时延带宽积等于传播时延和带宽的乘积。
- 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
- 链路的时延带宽积又称为 以比特为单位的链路长度。
6. 往返时间RTT
从发送端发送信息开始,到发送端接收到来自接受端发送的确认信息,称为往返时间RTT。
- 在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互。
- 我们有时很需要知道双向交互一次所需的时间;
- 因此,往返时间 RTT(Round-Trip Time)也是一个重要的性能指标。
7. 利用率
利用率分类为 信道利用率 和 网络利用率
- 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
- 网络利用率:全网络的信道利用率的加权平均
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。
如果令:
- D0D0:网络空闲时延
- DD:网络当前时延
- UU:利用率
那么则有下列关系:
- 当网络的利用率达到50%时,时延就要加倍
- 当网络的利用率超过50%时,时延急剧增大
- 当网络的利用率接近100%时,时延就趋于无穷大
- 因此,一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%。如果超过了,就要准备扩容,增大线路的带宽
也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在合理范围内。
8. 丢包率
- 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中 丢失的分组数量与总分组数量的比率。
- 丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
- 丢包率是 网络运维人员 非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包。
分组丢失主要有两种情况:
- 分组在传输过程中出现 误码,被结点丢弃;
- 分组到达一台队列已满的分组交换机时被丢弃;
- 在通信量较大时就可能造成 网络拥塞。
因此,丢包率反映了网络的拥塞情况:
- 无拥塞时路径丢包率为0
- 轻度拥塞时路径丢包率为1%~4%
- 严重拥塞时路径丢包率为5%~15%
1.7. 计算机网络体系结构
1.7.1. 常见的计算机网络体系结构
1. OSI 的七层体系结构
从下往上依次为物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。
它是法律上的国际标准。
2. TCP/IP 的四层体系结构
从下往上依次为网络接口层、网际层、运输层、应用层。
它是事实上的国际标准。
如今用的最多的是TCP/IP体系结构,现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,并去掉了会话层和表示层。
TCP/IP在网络层使用的协议是IP协议,IP协议的意思是网际协议,因此TCP/IP体系结构的网络层称为网际层
在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族。
而用于网络互连的路由器中,也带有符合TCP/IP体系结构标准的TCP/IP协议族。
只不过路由器一般只包含网络接口层和网际层。
网络接口层:并没有规定具体内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的WIFI接口等。
网际层:它的核心协议是IP协议。
运输层:TCP和UDP是这层的两个重要协议。
应用层:这层包含了大量的应用层协议,如 HTTP , DNS 等。
IP协议(网际层)可以将不同的网络接口(网络接口层)进行互连,并向其上的TCP协议和UDP协议(运输层)提供网络互连服务
而TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠的传输服务。
UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠的传输服务。
TCP/IP体系结构中最重要的是IP协议和TCP协议,因此用TCP和IP来表示整个协议大家族。
3. 五层协议的原理体系结构
结合了 OSI 和 TCP/IP 的特点,一般用于学习。
把TCP/IP体系结构的网络接口层分成了物理层和数据链路层。
五层协议的原理体系结构从下往上依次为物理层、数据链路层、网络层、运输层、应用层。
1.7.2. 计算机网络体系结构分层的必要性
- 计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。
- “分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
下面按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。
- 物理层解决使用何种信号来传输比特的问题。
- 数据链路层解决分组在一个网络(或一段链路)上传输的问题。
- 网络层解决分组在多个网络间传输(路由)的问题。
- 运输层解决进程之间基于网络的通信问题。
- 应用层解决应用进程间的交互来实现特定网络应用的问题。
以五层原理体系结构为例,说明分层的必要性:
- 采用怎样的传输媒体(介质)。
采用怎样的物理接口。
使用怎样的信号表示比特0和1。
上述问题划归到物理层。
- 如何标识网络中的各主机(主机编址问题,例如MAC地址)。
如何从信号所表示的一连串比特流中区分出地址和数据。
如何协调各主机通信(例如,各主机争用总线,交换机的实现原理)。
上述问题划归到数据链路层。
- 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)。
路由器如何转发分组,如何进行路由选择。
上述问题划归到网络层。
- 如何解决进程之间基于网络的通信。
出现传输错误时如何处理。
上述问题划归到运输层。
- 通过应用进程间的交互来完成特定的网络应用。
例如:支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议。
上述问题划归到应用层。
1.7.3. 分层思想举例
- 例子:主机的浏览器如何与Web服务器进行通信
通过浏览器进程与Web服务器进程的交互实例,演示分组逐层封装和解封的过程
解析:
- 主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信
体系结构的各层在整个过程中起到怎样的作用?
1. 发送方发送
第一步:
- 应用层按照HTTP协议的规定构建一个HTTP请求报文
- 应用层将HTTP请求报文交付给运输层处理
第二步:
- 运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段
- TCP报文段的首部格式作用是区分应用进程以及实现可靠传输
- 运输层将TCP报文段交付给网络层处理
第三步:
- 网络层给TCP报文段添加一个IP首部,使之成为IP数据报
- IP数据报的首部格式作用是使IP数据报可以在互联网传输,也就是被路由器转发
- 网络层将IP数据报交付给数据链路层处理
第四步:
- 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧 (图示右边为首部,左边为尾部)
- 该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收
- 该尾部的作用是让目的主机检查所接收到的帧是否有误码
- 数据链路层将帧交付给物理层
第五步:
- 物理层先将帧看做是比特流,这里的网络N1假设是以太网,所以物理层还会给该比特流前面添加前导码
- 前导码的作用是为了让目的主机做好接收帧的准备
- 物理层将装有前导码的比特流变换成相应的信号发送给传输媒体
第六步:
- 信号通过传输媒体到达路由器
2. 路由器转发
在路由器中
- 物理层将信号变为比特流,然后去掉前导码后,将其交付给数据链路层
- 数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际交付的是IP数据报
- 网络层解析IP数据报的首部,从中提取目的网络地址
在路由器中
- 提取目的网络地址后查找自身路由表。确定转发端口, 以便进行转发
- 网络层将IP数据报交付给数据链路层
- 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧
- 数据链路层将帧交付给物理层
- 物理层先将帧看成比特流,这里的网络N2假设是以太网,所以物理层还会给该比特流前面添加前导码
- 物理层将装有前导码的比特流变换成相应的信号发送给传输媒体,信号通过传输媒体到达Web服务器
3. 接收方接收
和发送方(主机)发送过程的封装正好是反着来
在Web 服务器上
- 物理层将信号变换为比特流,然后去掉前导码后成为帧,交付给数据链路层
- 数据链路层将帧的首部和尾部去掉后成为IP数据报,将其交付给网络层
- 网络层将IP数据报的首部去掉后成为TCP报文段,将其交付给运输层
- 运输层将TCP报文段的首部去掉后成为HTTP请求报文,将其交付给应用层
- 应用层对HTTP请求报文进行解析,然后给主机发回响应报文
发回响应报文的步骤和之前过程类似
4. 计算机网络体系结构中的专用术语
以下介绍的专用术语来源于OSI的七层协议体系结构,但也适用于TCP/IP的四层体系结构和五层协议体系结构。
实体
实体:任何可发送或接受信息的 硬件 或 软件进程。
对等实体:收发双方 相同层次中的实体。
协议
- 协议是控制两个对等实体进行逻辑通信的规则的
集合
协议三要素:
语法:定义所交换信息的格式
- 例如,IP数据报的格式
语义:定义收发双方所要完成的操作
- 例如,主机HTTP的GET请求给Web服务器,Web服务器收到后执行相应的操作,然后给主机发回HTTP的响应。
同步:定义收发双发的时序关系
- 例如,TCP的“三报文握手”建立连接。
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下面一层所提供的服务。
- 协议是“水平的”,服务是“垂直的”。
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是 "透明" 的。
服务
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
服务访问点
:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
- 数据链路层的服务访问点为帧的“类型”字段。
- 网络层的服务访问点为IP数据报首部中的“协议字段”。
- 运输层的服务访问点为“端口号”。
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
- 多个SDU可以合成为一个PDU,一个SDU也可划分为几个PDU。
要实现本层协议,还需要使用下面一层所提供的服务。
协议是“水平的”,服务是“垂直的”。
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的。
1.8. 总时延计算
假设: 分组等长,各链路长度相同、带宽也相同,忽略路由器的处理时延。
若有 nn 个分组,mm 段链路,则总时延计算公式为:
设:
- 总时延:$T$
- 一个分组的发送时延:$t_0$
- 一段链路的传播时延:$t_s$
则有:
$T=n×t_0+(m−1)×t_0+m×t_s$
公式理解:除了 $n×t_0$ ,其他都只计算最后一个分组。
注意
注意题目中,分组文件大小和分组头大小的区分。转发过程中,会给分组加上分组头。