📖 前言:计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施。已经像水、电、煤气这些基础设施一样,成为我们生活中不可或缺的一部分。
🕒 0. 思维导图
🕒 1. 因特网概述
🕘 1.1 网络、互联网和因特网
- 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。其中链路可以有线,也可以无线。
- 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网。因此,互联网是“网络的网络(Netwrok of Networks) "。其基本特点是连通性和共享。
- 因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
internet与Internet的区别
internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。
Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET(1969年创建的第一个分组交换网)。
因特网就是一种特殊的计算机网络,而计算机网络是一种特殊的数据通信网络。
🕘 1.2 因特网发展的三个阶段
因特网服务提供者ISP(Internet Service Provider):在国内就是电信、联通、移动三大运营商。
基于ISP的三层结构的因特网:层数越小覆盖越多
🕘 1.3 因特网的标准化工作
- 因特网的标准化工作对因特网的发展起到了非常重要的作用。
- 因特网在制定其标准上的一个很大的特点是面向公众。
- 因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载;🔎 技术文档链接
- 任何人都可以随时用电子邮件发表对某个文档的意见或建议。
- 因特网协会lSOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
- 因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
- 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
- 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
- 制订因特网的正式标准要经过以下4个阶段:
- 因特网草案(在这个阶段还不是RFC文档)
- 建议标准(从这个阶段开始就成为RFC文档)
- 草案标准
- 因特网标准
🕘 1.4 因特网的组成
- 边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频、视频)和资源共享
- 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
其中,边缘部分可划分为两大类:客户-服务器方式(C/S,Client/Server 方式)和对等方式(P2P,Peer-to-Peer 方式)
🕤 1.4.1 客户-服务器方式
客户是服务请求方,服务器是服务提供方。
客户程序:
- 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
- 不需要特殊的硬件和很复杂的操作系统。
服务器程序:
- 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
- 系统启动后即一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
- 一般需要有强大的硬件和高级的操作系统支持。
客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。
🕤 1.4.2 P2P方式
两台主机在通信时,并不区分哪一个是服务请求方和哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通信。
🕒 2. 三种交换方式
🕘 2.1 电路交换
电话问世后,人们发现所有电话之间都两两相连是不现实的。因此可以用一个中间设备将讲话接入,根据需要进行转发,这个中间设备就是电话交换机。
定义:电话交换机接通电话线的方式称为电路交换(Circuit Switching)
从通信资源分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。
电路交换三个步骤:
- 建立连接(分配通信资源):例如在使用电路交换打电话前,必须先拨号请求建立连接,当被叫用户听到电话交换机送来的拨号音并拿起电话后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信中不会被其他用户占用。
- 通话(一直占用通信资源):分配的资源始终被占用。
- 释放连接(归还通信资源)
优点
- 通信时延小:通信线路为通信双方专用的,数据直达
- 有序传输:通信双方只有一条专用通信线路,数据只在这一线路上传输,不存在失序问题
- 没有冲突:不同的通信双方拥有不同的信道,不会出现争用物理通道的问题
- 适用范围广:适用于传输模拟信号,也适用于传输数字信号
- 实时性强:得益于时延小,所以实时性强
- 控制简单
缺点
- 建立连接时间长
- 线路独占,适用效率低
- 灵活性差:只要连接所建立的物理通路中的任何一点出现了故障,就必须重新拨号建立新的连接
- 难以规格化:不同类型、不同规格、不同速率的终端很难互相进行通信,也难以差错控制
🕘 2.2 分组交换☆☆☆
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。因此。计算机网络通常采用分组交换(Packet Switching)。
方法:将报文划分成若干个等长的数据段,然后给各数据段添加首部(包含重要的控制信息)构成分组。
- 发送方:①构建分组 ②发送分组
- 路由器:①缓存分组 ②转发分组
- 接收方:①接收分组 ②还原报文
优点
- 无需建立连接
- 线路利用率高
- 简化存储管理:因为分组大小固定,管理起来就容易一些
- 加速传输:因为分组是逐个传输,这样前一个交换机的转发操作与后一个交换机的存储操作可同时进行
- 减少出错率和重复数据量:分组比报文小,因此出错概率也会比较小,即使出错也只需要重传出错的这一小部分即可
缺点
- 引起了转发时延
- 需要传输额外信息量(分组头部信息)
- 当分组交换采用数据报服务时,可能会出现失序、丢失、重复分组。分组到达目的结点时,需要重新还原成原始报文,比较麻烦。若分组交换采用虚电路服务,虽然没有分组失序问题,但有呼叫建立,数据传输和虚电路释放三个过程。
虚电路交换与数据报交换介绍:
按顺序收发属于虚电路交换,随机收发属于数据报交换。
采用虚电路交换时,需要在发送方和接收方之间建立一条逻辑通道,通道上的每个节点都要服从安排,按顺序传输数据“小包”,就好像有一条专用通道一样。虚电路在数据交换结束后会自动释放。与电路交换不同,虚电路交换各节点不是某虚电路独占的,它们仍可用于传输其他数据。采用数据报交换时,不同的数据“小包”可以通过不同的路径到达目的地,而且先发的“小包”不一定先到,后发的“小包”不一定后到。“小包”中含有关于次序的信息,接收“小包”的设备根据次序,把收到的“小包”重新组装起来,恢复成原来的信息。
🕘 2.3 报文交换
报文交换(Message Switching)与分组交换类似,不过对报文没有限制大小,现如今多使用分组交换。
优点
- 无需建立连接
- 动态分配线路
- 提高线路可靠性:如果某条线路出现故障,会重新选择另一条线路
- 提高线路利用率:通信双方在不同的时间分段占用物理线路
- 提供多目标服务:一个报文可以同时发送给多个目的地址
缺点
- 引起转发时延:报文在节点交换机上要经历存储转发的过程
- 需要较大的存储转发空间:因为报文大小没有限制
- 需要传输额外信息量:有头部等信息
🕘 2.4 对比
- 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。
- 报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。
- 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。防止过长时间占用线路以及方便排错。
🕒 3. 计算机网络的定义与分类
🕘 3.1 定义
计算机网络的精确定义并未统一。
最简单的定义:一些互相连接的、自治的计算机的集合
- 互连:指计算机之间可以通过有线或无线的方式进行数据通信
- 自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用
- 集合:指至少需要两台计算机
计算机网络的较好的定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
- 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
🕘 3.2 分类
按交换技术:①电路交换网络 ②报文交换网络 ③分组交换网络
按使用者:①公用网 ②专用网
按传输介质:①有线网络 ②无线网络
按覆盖范围:①广域网WAN(国家级) ②城域网MAN ③局域网LAN(如校园网) ④个域网PAN(如蓝牙连接)
按拓扑结构:①总线型网络 ②星型网络 ③环型网络 ④网状型网络(如广域网)
※按传输方式:①点对点式 ②广播式
※按服务方式:①主从式(C/S) ②对等式(P2P)
🕒 4. 计算机网络的性能指标
🕘 4.1 速率
比特:计算机中的数据量单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0
常用的数据量单位:
8
bit
=
1
Byte
K
B
=
2
10
B
M
B
=
K
⋅
K
B
=
2
10
⋅
2
10
B
=
2
20
B
G
B
=
K
⋅
M
B
=
2
10
⋅
2
20
B
=
2
30
B
T
B
=
K
⋅
G
B
=
2
10
⋅
2
30
B
=
2
40
B
\begin{array}{l} 8 \text { bit }=1 \text { Byte } \\ K B=2^{10} B \\ M B=K \cdot K B=2^{10} \cdot 2^{10} B=2^{20} B \\ G B=K \cdot M B=2^{10} \cdot 2^{20} B=2^{30} B \\ T B=K \cdot G B=2^{10} \cdot 2^{30} B=2^{40} B \end{array}
8 bit =1 Byte KB=210BMB=K⋅KB=210⋅210B=220BGB=K⋅MB=210⋅220B=230BTB=K⋅GB=210⋅230B=240B
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率。
常用的数据率单位:
b
i
t
/
s
(
b
/
s
,
b
p
s
)
k
b
/
s
=
1
0
3
b
/
s
(
b
p
s
)
M
b
/
s
=
k
⋅
k
b
/
s
=
1
0
3
⋅
1
0
3
b
/
s
=
1
0
6
b
/
s
(
b
p
s
)
G
b
/
s
=
k
⋅
M
b
/
s
=
1
0
3
⋅
1
0
6
b
/
s
=
1
0
9
b
/
s
(
b
p
s
)
T
b
/
s
=
k
⋅
G
b
/
s
=
1
0
3
⋅
1
0
9
b
/
s
=
1
0
12
b
/
s
(
b
p
s
)
\begin{array}{l} \mathrm{bit} / \mathrm{s}(\mathrm{b} / \mathrm{s}, \mathrm{bps}) \\ \mathrm{kb} / \mathrm{s}=10^{3} \mathrm{~b} / \mathrm{s}(\mathrm{bps}) \\ \mathrm{Mb} / \mathrm{s}=k \cdot \mathrm{kb} / \mathrm{s}=10^{3} \cdot 10^{3} \mathrm{~b} / \mathrm{s}=10^{6} \mathrm{~b} / \mathrm{s}(\mathrm{bps}) \\ \mathrm{G} b / \mathrm{s}=k \cdot \mathrm{Mb} / \mathrm{s}=10^{3} \cdot 10^{6} \mathrm{~b} / \mathrm{s}=10^{9} \mathrm{~b} / \mathrm{s}(\mathrm{bps}) \\ \mathrm{Tb} / \mathrm{s}=k \cdot \mathrm{Gb} / \mathrm{s}=10^{3} \cdot 10^{9} \mathrm{~b} / \mathrm{s}=10^{12} \mathrm{~b} / \mathrm{s}(\mathrm{bps}) \end{array}
bit/s(b/s,bps)kb/s=103 b/s(bps)Mb/s=k⋅kb/s=103⋅103 b/s=106 b/s(bps)Gb/s=k⋅Mb/s=103⋅106 b/s=109 b/s(bps)Tb/s=k⋅Gb/s=103⋅109 b/s=1012 b/s(bps)
例1:有一个待发送的数据块,大小为100 MB,网卡的发送速率为100 Mbps,则网卡发送完该数据块需要多长时间?
例2:【考研2013年35题】主机甲通过1个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均为10Mbps,主机甲分别采用报文交换和分组大小为10kb的分组交换向主机乙发送1个大小为8Mb(1M=106)的报文。若忽略链路传播延迟、分组头开销和分组拆装时间,则两种交换方式完成该报文传输所需的总时间分别为
A.800ms、1600ms
B.801ms、1600ms
C.1600ms、800ms
D.1600ms、801ms
解析:不进行分组时,发送一个报文的时延是 8 M b 10 M b / s = 800 m s \frac{8Mb}{10Mb/s}=800ms 10Mb/s8Mb=800ms,在接收端接收此报文的时延也是800ms,共计1600ms。进行分组后,发送一个报文的时延是 10 k b 10 M b / s = 1 m s \frac{10kb}{10Mb/s}=1ms 10Mb/s10kb=1ms,接收一个报文的时延也是1ms,但是在发送第二个报文时,第一个报文已经开始接收。共计有800个分组,总时间为801ms。因此选D。
🕘 4.2 带宽
带宽在模拟信号系统中的意义
- 信号所包含的各种不同频率成分所占据的频率范围
- 单位:Hz(kHz,MHz,GHz)
带宽在计算机网络中的意义
- 用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的"最高数据率"
- 单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
一条通信线路的"频带宽度"越宽,其所传输数据的"最高数据率"也越高
🕘 4.3 吞吐量
- 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
- 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
- 吞吐量受网络的带宽或额定速率的限制
🕘 4.4 时延
在处理过程中所需要的时间:
- 处理时延(processing delay)
- 排队时延(queuing delay)(合并到处理时延)
- 发送时延(transmission delay)
- 传播时延(propagation delay)
例3:数据块长度A为100 MB,B为1B,信道带宽为1Mb/s,传送距离为1000 km,分别计算发送时延和传播时延。
A:
发送时延
=
分组长度(
b
)
发送速率(
b
/
s
)
=
100
×
2
20
×
8
(
b
)
1
0
6
(
b
/
s
)
=
838.8608
(
s
)
发送时延=\frac{分组长度(b)}{发送速率(b/s)}=\frac{100\times2^{20}\times8(b)}{10^6(b/s)}=838.8608(s)
发送时延=发送速率(b/s)分组长度(b)=106(b/s)100×220×8(b)=838.8608(s)
传播时延
=
信道长度(
m
)
电磁波传播速率(
m
/
s
)
=
1000
×
1
0
3
(
m
)
2
×
1
0
8
(
m
/
s
)
=
0.005
(
s
)
传播时延=\frac{信道长度(m)}{电磁波传播速率(m/s)}=\frac{1000\times10^{3}(m)}{2\times10^8(m/s)}=0.005(s)
传播时延=电磁波传播速率(m/s)信道长度(m)=2×108(m/s)1000×103(m)=0.005(s)
B:
发送时延
=
分组长度(
b
)
发送速率(
b
/
s
)
=
1
×
8
(
b
)
1
0
6
(
b
/
s
)
=
8
×
1
0
−
6
(
s
)
发送时延=\frac{分组长度(b)}{发送速率(b/s)}=\frac{1\times8(b)}{10^6(b/s)}=8\times10^{-6}(s)
发送时延=发送速率(b/s)分组长度(b)=106(b/s)1×8(b)=8×10−6(s)
传播时延
=
信道长度(
m
)
电磁波传播速率(
m
/
s
)
=
1000
×
1
0
3
(
m
)
2
×
1
0
8
(
m
/
s
)
=
0.005
(
s
)
传播时延=\frac{信道长度(m)}{电磁波传播速率(m/s)}=\frac{1000\times10^{3}(m)}{2\times10^8(m/s)}=0.005(s)
传播时延=电磁波传播速率(m/s)信道长度(m)=2×108(m/s)1000×103(m)=0.005(s)
可以看出,在时延方面谁占主导要具体情况具体分析。
判断题
“在高速链路(或高带宽链路)上,比特会传送得更快些”。
解答:错误。对于高速网络链路,我们提高的仅仅是数据的发送速率,而不是比特在链路上的传播速率。
提高数据的发送速率只是减小了数据的发送时延。
🕘 4.5 时延带宽积
时延带宽积 = 传播时延 × 带宽
- 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特;
- 链路的时延带宽积又称为以比特为单位的链路长度。
🕘 4.6 往返时间
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互,我们有时很需要知道双向交互一次所需的时间,因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标。
🕘 4.7 利用率
- 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
- 网络利用率:全网络的信道利用率的加权平均
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。因此,信道利用率不是越高越好。如果令 D 0 D_0 D0表示网络空闲时的时延, D D D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示 D 、 D 0 D、D_0 D、D0和利用率 U U U之间的关系:
D
=
D
0
1
−
U
D = \frac{D_0}{1-U}
D=1−UD0
- 当网络利用率U到50%时,时延急剧增大。
- 当网络利用率接近100%时,时延趋于无穷大
- 但是也不能使信道利用率过低,这回使宝贵的通信资源被浪费
因此一些拥有较大主干网的ISP通常会控制它们的信道利用率不超过50%。如果超过了,就要准备扩容,增大线路带宽。也不能使信道利用率太低。这会使宝贵的通信资源被白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量。使网络利用率保持在一个合理的范围内。
🕘 4.8 丢包率
- 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
- 具体可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
- 丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们意识不到丢包。
分组丢失的两种情况
- 分组在传输过程中出现误码,被结点丢弃
- 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞
丢包率反映了网络的拥塞情况
- 无拥塞时路径丢包率为
0
- 轻度拥塞时路径丢包率为
1%~4%
- 严重拥塞时路径丢包率为
5%~15%
🕒 5. 计算机网络体系结构☆
🕘 5.1 常见的体系结构
一个特定的系统所使用的一组协议称为协议栈。
层和协议的集合为网络体系结构
🕤 5.1.1 TCP/IP 参考模型
先有TCP/IP协议栈,然后有TCP/IP参考模型
参考模型只是用来描述协议栈的
- 网络接口层(host-to-network Layer):描述与具体物理网络的接口,通过对类型扩展,使TCP/IP协议可以连接任何类型的物理网络
- 网际层(Internet Layer)的核心协议是IP协议,它允许主机将数据包注入网络,让这些数据包独立的传输至目的地,即可以互连各种不同的网络接口,并给运输层的TCP协议和UDP协议提供服务。
- 运输层(Transport Layer)的TCP协议在享受IP协议提供的服务后,可向应用层的相应协议(例如,FTP、HTTP,SMTP等)提供可靠传输的服务。
- 运输层的UDP协议在享受IP协议提供的服务后,可向应用层的相应协议(例如,DNS,RTP等)提供不可靠传输的服务。
- 应用层(Application Layer):运输层之上的所有高层协议:DNS、HTTP、FTP、SMTP…
模型特点:
- 摒弃电话系统中“笨终端&聪明网络”的设计思路
- 采用聪明终端&简单网络,由端系统TCP负责丢失恢复等,简单的网络大大提升了可扩展性
- 实现了建立在简单的、不可靠部件上的可靠系统
IP分组交换的特点:
- 使用IP协议可以互连不同的网络接口(IP over everything)
- IP协议可以为各种网络应用提供服务(Everything over IP)
- 每个IP分组携带各自的目的地址
- 网络核心功能简单
- 适应爆炸性增长
🕤 5.1.2 OSI / RM 参考模型
在因特网协议栈出现以前,OSI模型是ISO组织研发的计算机网络结构模型。OSI的模型一共有7层,从下到上依次为:物理层,链路层,网络层,传输层,会话层,表示层,应用层。相比因特网体系结构,OSI多了两层。
因特网将两层的功能留给了开发者自行实现。
物理层(Physical Layer)关注如何在通信信道上进行原始比特的传输,构建物理链路。
物理层并不是物理媒体本身,它只是开放系统中利用物理媒体实现物理连接的功能描述和执行连接的规程。
- 针对物理媒体的电气特性使用什么样的信号来表示数据“0”和“1”能够保证接收端可以正确的分离并识别;
- 一个比特的传输时间需要多久;
- 数据的传输是否在两个方向可以同时进行;
- 节点间的物理连接如何建立、维持及撤销;
- 物理连接器的接插头的形状、大小、尺寸、针数
涉及机械特性、电气特性、功能特性和时序特性等规范
数据链路层(Data Link Layer)基于不可靠的物理链路构建逻辑链路,实现对传输差错的检测及纠正、数据同步、流量控制等
- 检测差错一般采用循环冗余校验(CRC)
- 如果要求提供可靠的数据链路,需要使用确认、序号和定时器等机制对出错、丢失、重复的数据帧检测和纠正
- 数据同步通常使用封装成帧的方法:在发送方将数据分割成一定长度并添加一些控制信息(地址、SDU数据类型、长度、差错检验系列FCS)和首位定界符构造成一种特定格式的帧,然后按顺序发送这些帧
- 流量控制用于避免收发进程处理速度不匹配而导致数据“淹没”的问题,一般使用滑动窗口(Slide Window)策略解决
- 广播型的网络的数据链路层还需要解决多个通信节点对共享传输介质的访问冲突问题
网络层(Network Layer)主要控制网络的运行,完成不同网络主机间的数据传输
- 如果存在多条数据通路,如何将数据包从源端路由到接收方路由可以是源节点确定,也可以是由网络选定;可以是针对特定用户端静态指定的,也可以是网络中的中继系统根据网络负载能力和当前状态随机选定
- 如何防止主机将过多的数据注入到网络造成网络拥堵,即拥塞问题
- 网络提供的服务质量(延迟、传输时延、抖动等)
- 针对不同网络中寻址方案、协议设计等的差异所导致的互联问题
传输层(Transport Layer)接收来自上一层的数据,有必要的话会将较大的数据进行分割然后传递给网络层
- 传输层交换的数据单元是规定格式的报文段(segment)
- 传输层需要决定向会话层提供哪种类型的服务,是可靠的(即数据传输是按序的、无差错的、无丢失的、无乱序的),还是仅仅传输独立的报文,不需要关注可靠性
- 服务的类型在进程初始化阶段就确定下来
- 传输层已经是到达了网络中进程数据传输的端点,因此传输层的通信通常也称为端到端的通信
- 传输层向上层屏蔽下面通信子网中的数据传输细节
会话层(Session Layer)允许机器上的用户间建立会话关系
- 会话层按照在应用进程之间的约定,按照正确的顺序收发数据,进行各种形式的会话
- 对话控制(记录该由谁来传递数据)
- 令牌管理(禁止双方同时执行同一个关键操作)
- 同步(在一个较长的传输过程中设置断点,以便系统崩溃后还能恢复到崩溃前的状态继续执行)
- 会话层可以允许用户利用一次会话在远端的分时系统上登录,或在两台机器间传输文件
表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式
- 表示层关注所传送数据的语法和语义,通过定义一种抽象的数据结构对数据进行统一编码,来屏蔽计算机和应用间的数据表示差异
- 表示层可能提供数据加/解密、数据压缩/解压等
- 表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理等
应用层(Application Layer)是应用软件与网络的接口,是OSI模型中的最高一层
- 应用层采用不同的应用协议来满足不同类型的应用需求
- 应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的服务
- 应用层并不是应用程序,而是为应用程序提供服务
🕤 5.1.3 原理体系结构
有5个层次组成:物理层、链路层、网络层、传输层、应用层
应用层:
- 任务:通过应用进程间的交互来完成特定网络应用。
- 把应用层交互的数据单元称为报文(message)
- 例如:DNS,HTTP,SMTP
传输层:
- 任务:负责向两台主机中进程之间的通信提供通用的数据传输服务。
- 具有复用和分用的功能。
- 主要使用两种协议:
- 传输控制协议 TCP(Transmission Control Protocol)
- 提供面向连接的、可靠(有流量控制、拥塞控制等机制)的数据传输服务
- 数据传输的单位是报文段(segment)
- 用户数据报协议 UDP (User Datagram Protocol)
- 提供无连接的尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性)
- 数据传输的单位是用户数据报
- 传输控制协议 TCP(Transmission Control Protocol)
网络层:
- 为分组交换网上的不同主机提供通信服务
- 两个具体任务:
- 路由选择:通过一定的算法,在互联网中的每一个路由器上,生成一个用来转发分组的转发表
- 转发:每一个路由器在接收到一个分组时,要依据转发表中指明的路径把分组转发到下一个路由器
- 互联网使用的网络层协议是无连接的网际协议 IP (Internet Protocol) 和许多种路由选择协议,因此互联网的网络层也叫做网际层或 IP 层
- IP 协议分组也叫做 IP 数据报,或简称为数据报。
数据链路层:
- 任务:实现两个相邻节点之间的可靠通信
- 在两个相邻节点间的链路上传送帧(frame)
- 如发现有差错,就简单地丢弃出错帧
- 如果需要改正出现的差错,就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层协议复杂
物理层:
- 任务:实现比特(0 或 1)的传输
- 确定连接电缆的插头应当有多少根引脚,以及各引脚应如何连接。
- 注意:传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内,而是在物理层协议的下面。
🕤 5.1.4 OSI模型与TCP/IP模型对比
7层模型与4层模型
- TCP/IP模型的网络接口层定义主机与传输线路之间的接口,描述了链路为无连接的互联网层必须提供的基本功能
- TCP/IP模型的网际层、运输层与OSI模型的网络层、运输层大致对应
- TCP/IP模型的应用层包含了OSI模型的表示层与会话层
基本设计思想:通用性与实用性
- OSI:先有模型后设计协议,不局限于特定协议,明确了服务、协议、接口等概念,更具通用性
- TCP/IP模型:仅仅是对已有协议的描述
无连接与面向连接
- OSI模型网络层能够支持无连接和面向连接通信
- TCP/IP模型的网络层仅支持无连接通信(IP)
OSI的失败:糟糕的时机、技术、实现、政策
OSI模型的不足:
- 从未真正被实现
- TCP/IP已成为事实标准,OSI缺少厂家支持
- 技术实现糟糕
- OSI分层欠缺技术考虑:会话层、表示层很少内容;数据链路层、网络层内容繁杂。模型和协议过于复杂
- 分层间功能重复:差错控制、流量控制等在不同层反复出现
- 非技术因素
- TCP/IP实现为UNIX一部分,免费
- OSI被认为是政府和机构的强加标准
TCP/IP模型的不足:
- 核心概念未能体现
- 未明确区分服务、接口和协议等核心概念
- 不具备通用性
- 不适于描述TCP/IP之外的其它协议栈
- 混用接口与分层的设计
- 链路层和物理层一起被定义为网络接口层,而非真正意思上的分层
- 模型欠缺完整性
- 未包含物理层与数据链路层
- 物理层与数据链路层是至关重要的部分
因特网体系结构现状:
- 仍然以TCP/IP协议为核心
- IP协议用来给各种不同的通信子网或局域网提供一个统一的互连平台
- TCP协议则用来为应用程序提供端到端的通信和控制功能
- 某些应用程序可以直接使用 IP 层,甚至直接使用最下面的网络接口层
- 在网络接口层下面的物理网络由IEEE802委员会提出的局域网标准结构具象化
🕘 5.2 分层的必要性
分而治之、模块化
物理层:
- 采用怎样的传输媒体(介质)(如光纤)
- 采用怎样的物理接口(如RJ45)
- 使用怎样的信号表示比特0和1(如方波)
数据链路层:
- 如何标识网络中的各主机(主机编址问题,例如MAC地址)
- 如何从信号所表示的一连串比特流中区分出地址和数据
- 如何协调各主机争用总线
网络层:
- 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
- 路由器如何转发分组,如何进行路由选择
运输层:
- 如何解决进程之间基于网络的通信问题
- 出现传输错误时,如何处理
应用层:
- 通过应用进程间的交互来完成特定的网络应用
小结:
通常各层所要完成的功能主要有以下一些(可以只包括一种,也可以包括多种):
- 差错控制:使相应层次对等方的通信更加可靠。
- 流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。
- 分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
- 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
- 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
分层当然也有一些缺点,例如,有些功能会在不同的层次中重复出现,因而产生额外开销。
🕘 5.3 分层思想举例
一个分组,在不同的层次有不同的称谓,是因为它们经过每一层的时候就被该层封装上了属于该层的相关信息,也就是前面提到的必要信息;于是,每一分层的分组有两种类型的字段:首部字段和有效负载;其中有效负载即为来自上一层的分组数据,而首部字段就是该层加上的必要信息;分组不断被封装以实现各层协议规定的相关功能。
浏览器发送:
- 应用层按照HTTP协议的规定构建一个HTTP请求报文(请求要干什么)。应用层将HTTP请求的报文交给运输层处理
- 运输层给HTTP请求报文添加一个TCP首部(区分应用进程),使之成为TCP报文段。运输层将TCP报文段交给网络层处理
- 网络层给TCP报文段添加一个IP首部(使之可以在互联网上传输),使之成为IP数据报。网络层将IP数据报交付给数据链路层处理
- 数据链路层给IP数据报添加一个首部(让其能在一段链路上传输,能被相应主机接收)和一个尾部(让目的主机检查所接收到的帧是否有误码),使之成为帧。数据链路层将帧交给物理层
- 物理层将帧看作比特流,如果网络是以太网,它还会在帧上加前导码(让目的主机做好接收帧的准备)。接着将比特流变成相应信号发送到传输媒体。
路由器转发:
- 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层(交付的实际是帧)
- 数据链路层将帧去掉首部和尾部后,将其交付给网络层(交付的实际是IP数据报)
- 网络层解析IP数据报首部,从中提取目的网络地址,然后查找自身路由表,确定转发端口。接着数据链路层封装,物理层再封装,将比特流变成信号发送出去。
服务器接收:
- 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层(交付的实际是帧)
- 数据链路层收到帧后,去除首部和尾部,将其交付给网络层(交付的实际是IP数据报)
- 网络层收到IP数据报后,去除IP首部,将其交付给运输层(交付的实际是TCP报文)
- 运输层收到TCP报文后,从中得知是与哪个端口上的进程通信,去除TCP头部后,交付给应用层(交付的实际是HTTP请求报文)
- 应用层收到HTTP请求报文后,将其解析给对应进程,并执行相关操作,返回HTTP响应报文
🕘 5.4 相关专用术语
🕤 5.4.1 实体
定义:任何可发送或接收信息的硬件或者软件进程
对等实体:收发双方相同层次中的实体
🕤 5.4.2 协议
控制两个对等实体进行逻辑通信(这种通信实际上不存在,只是便于我们考虑问题)的规则的集合
三个要素
- 语法:定义所交换信息的格式(即报文格式)。例如,IP数据报的格式。
- 语义:定义收发双方所要完成的操作(即收,发任务需要各自定义)。例如,主机HTTP的GET请求给Web服务器,Web服务器收到后执行相应的操作,然后给主机发回HTTP的响应。
- 同步(或时序):定义收发双方的时序关系。例如,TCP的“三报文握手”建立连接。
两种形态:
- 标准类文档:RFC
- 计算机可以解释执行的软件代码或硬件指令序列
🕤 5.4.3 服务
- 在协议控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务(也就是说通过协议完成本层的内容后就可以向上提供服务),上层实体通过接口使用下层实体的服务。
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是“水平的”,服务是"垂直的"
- 实体看得见相邻下层所提供的的服务,但是并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明”的(就像手机为我们提供服务,但是我们并不知道具体是如何实现的)
服务访问点SAP:在同一系统中相邻两层的实体交换信息的逻辑接口(就像Web里的request域,后端前端都能取到),用于区分不同的服务类型
- 物理层的服务访问点是“网卡接口”;
- 数据链路层的服务访问点为帧的"类型"字段,即MAC地址
- 网络层的服务访问点位IP数据报首部中的"协议字段",即IP地址(网络地址)
- 运输层的服务访问点为"端口号",对网络主机的进程进行区分标识
- 应用层提供的服务访问点是“用户界面”
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令(操作)称为服务原语。
- 典型服务:面向连接传输服务(4原语),无连接传输服务(2原语)
- 服务由一组可用于用户进程以访问服务的原语(操作)形式指定
- 六个基本服务原语(系统调用)
协议数据单元PDU(横向):对等层次之间传送的数据包称为该层的协议数据单元
- 物理层是比特流;数据链路层是帧;网络层是IP数据报或分组……
服务数据单元SDU(竖向):同一系统内,层与层之间交换的数据报称为服务数据单元
- 物理层往上送是比特流;数据链路层往下送是帧……
多个SDU可用合成为一个PDU;一个SDU页可以划分为几个PDU
🕒 6. 课后习题
-
【单选题】所有的互联网标准都是以RFC的形式在互联网上公开发表的。RFC文档( )
A.按发表时间的先后编号
B.按协议层次编号
C.按协议种类编号
D.使用随机数编号 -
计算机网络可分为通信子网和资源子网,下列属于通信子网的是( )。Ⅰ.网桥Ⅱ.交换机Ⅲ.计算机软件Ⅳ.路由器
A. Ⅰ、Ⅱ、Ⅳ
B. Ⅱ、Ⅲ、Ⅳ
C. Ⅰ、Ⅲ、Ⅳ
D. Ⅰ、Ⅱ、Ⅲ -
【单选题】局域网-广域网的互连是通过( )实现的。
A、通信子网
B、路由器
C、城域网
D、电话交换网 -
【单选题】局域网和广域网的差异不仅在于它们所覆盖的范围不同,还主要在于它们( )。
A、所使用的介质不同
B、所使用的协议不同
C、所能支持的通信量不同
D、所提供的服务不同 -
【2010年 题34】在下图所示的采用“存储-转发”方式的分组交换网络中,所有链路的数据传输速率为100Mbps,分组大小为1000B,其中分组头大小为20B。若主机H1向主机H2发送一个大小为980 000B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开始到H2接收完为止,需要的时间至少是
A、80ms
B、80.08ms
C、80.16ms
D、80.24ms -
【单选题】假设在某段链路上传输某个10MB的数据块,链路带宽为10Mb/s,信号传播速率为200000km/s,链路长度为1000 km,则数据块的发送时延约为
A、1s
B、8s
C、8.4s
D、5μs -
【单选题】假设有500B的数据待发送(无拆分),需要经过OSI参考模型的逐层封装,除物理层外,其他各层在封装PDU时均引入20B的额外开销,则数据传输效率约为
A、78%
B、81%
C、88%
D、92% -
【单选题】在TCP/IP参考模型中,运输层的相邻下层实现的主要功能是
A、对话管理
B、数据格式转换
C、可靠数据传输
D、IP数据报在多个网络间的传输 -
【单选题】OSI参考模型中的数据链路层不具有的功能是
A、物理寻址
B、流量控制
C、差错检测
D、拥塞控制 -
【单选题】相对于OSI的7层参考模型的低4层,TCP/IP模型内对应的层次有( )。
A、传输层、互联网层、网络接口层和物理层
B、传输层、互联网层、网络接口层
C、传输层、互联网层、ATM层和物理层
D、传输层、网络层、数据链路层和物理层 -
【判断题】TCP/IP参考模型的应用层与OSI参考模型的应用层相对应()
-
【单选题】OSI参考模型将整个网络的功能分成7个层次来实现,以下说法正确的是()。
A、层与层之间的联系通过协议进行
B、不同结点的同等层的功能并不相同
C、层与层之间的联系通过接口进行
D、除物理层外,各对等层之间均存在直接的通信关系 -
【单选题】集线器和路由器分别运行于OSI参考模型的()。
A、网络层和传输层
B、数据链路层和物理层
C、物理层和网络层
D、传输层和数据链路层 -
【2009年 题33】在OSI参考模型中,自下而上第一个提供端到端服务的层次是
A、应用层
B、数据链路层
C、会话层
D、传输层 -
【2010年 题33】下列选项中,不属于网络体系结构所描述的内容是
A、每一层必须完成的功能
B、协议的内部实现细节
C、网络层次
D、每一层使用的协议 -
【2013年 题33】在OSI参考摸型中,下列功能需由应用层的相邻层实现的是
A、可靠数据传输
B、路由选择
C、对话管理
D、数据格式转换 -
【单选题】OSI参考模型中的数据链路层不具有( )功能。
A、物理寻址
B、拥塞控制
C、流量控制
D、差错校验 -
【单选题】下列说法中,正确描述了OSI参考模型中数据的封装过程的是( )。
A、网络层将高层协议产生的数据封装成分组,并增加第三层的地址和控制信息
B、数据链路层在分组上仅增加了源物理地址和目的物理地址
C、传输层将数据流封装成数据帧,并增加可靠性和流控制信息
D、表示层将高层协议产生的数据分割成数据段,并增加相应的源和目的端口信息 -
【单选题】在OSI参考模型中,为数据分组提供在网络中路由的功能的是( )。
A、网络层
B、传输层
C、数据链路层
D、物理层 -
【判断题】现在的互联网中某些应用程序可以直接使用IP层,或直接使用最下面的链路层。
答案:
1.A
2.A(解析:资源子网:由主计算机系统、终端、终端控制器、联网外部设备、各种软件资源与信息资源等组成。资源子网负责全网的数据处理业务,负责向网络用户提供各种网络资源与网络服务。 通信子网(包括物理层、数据链路层、网络层):由通信控制处理机、通信线路与其他通信设备组成,完成网络数据传输、转发等通信处理任务。)
3.B(解析:中继器和桥接器通常是指用于局域网的物理层和链路层的联网设备。目前局域网接入广域网主要是通过称为路由器的互联设备来实现的。)
4.B
5.C(解析:由题设可知,数据即分组大小1000B-首部20B=980B,故一共分了980000B/(1000B-20B)=1000个分组。每个分组1000B。一共需要传输的数据量为1000×1000B=100 0000B。题目中不考虑分组拆装时间和传播延迟。故只需要考虑发送延迟。
所有内容的发送时延为1000000B/100mbps=(1M×8bit)/100Mbps=0.08s=80ms
一个分组的发送时延为1000B/100mbps=0.08ms
最终答案为80ms+0.08ms×2=80.16ms 🔎 视频讲解)
6.C(解析:发送时延 = 数据块大小10MB / 链路带宽10Mb/s,
10
×
2
20
×
8
(
b
)
10
×
1
0
6
(
b
/
s
)
≈
8.4
(
s
)
\frac{10×2^{20}×8(b)}{10×10^6(b/s)}\approx8.4(s)
10×106(b/s)10×220×8(b)≈8.4(s))
7.B(解析:OSI参考模型共7层,除去物理层外还有6层。它们会向待发送数据引入20B x 6 = 120B 的额外开销。数据传输效率为 500B/(500B + 120B)≈81%)
8.D(解析:TCP/IP参考模型的运输层的相邻下层是网际层。网际层的主要功能是实现IP数据报在多个网络间的传输。)
9.D(解析:网络层和传输层才具有拥塞控制功能。)
10.B 11.× 12.C 13.C 14.D(解析:传输层使用端口号为应用层的应用进程之间提供端到端的逻辑通信,而网络层仅仅为主机之间提供逻辑通信,如下图所示:
)
15.B(解析:计算机网络的体系结构就是计算机网络及其构件所应完成的功能的精确定义。需要强调的是:这些功能的实现细节(例如采用何种硬件或软件),则是遵守这种体系结构的具体实现问题,并不属于体系结构本身所描述的内容。🔎 讲解视频)
16.D(解析:OSI参考模型应用层的相邻层是表示层。表示层的任务是实现与数据表示相关的功能,主要包括数据字符集的转换、数据格式化、文本压缩、数据加密以及解密等工作。对话管理:会话层;路由选择:网络层;可靠数据传输:传输层。🔎 讲解视频)
17.B(解析:数据链路层在不可靠的物理介质上提供可靠的传输。其作用包括物理寻址、成帧、流量控制、差错校验、数据重发等。网络层和传输层才具有拥塞控制的功能。)
18.A(解析:数据链路层在分组上除增加源和目的物理地址外,也增加控制信息;传输层的PDU不称为帧;表示层不负责把高层协议产生的数据分割成数据段,负责增加相应源和目的端口信息的应是传输层;)
19.A(解析:在OSI参考模型中,物理层实现比特流在传输介质上的透明传输;数据链路层将有差错的物理线路变成无差错的数据链路,实现相邻结点之间即点到点的数据传输。网络层的主要功能是路由选择、拥塞控制和网际互联等,实现主机到主机的通信;传输层实现主机的进程之间即端到端的数据传输。)
20.√(解析:在现代互联网中,一些应用程序可以直接使用 IP 层或链路层进行通信,跳过中间的传输层或应用层协议,以提高通信效率。这种直接使用底层协议的方式称为原始套接字(raw socket)通信。使用原始套接字可以使得应用程序访问到更底层的网络信息,也增加了一些安全风险和协议实现上的复杂性。)
适用视频:湖科大教书匠
适用教材:计算机网络(第8版) 谢希仁
OK,以上就是本期知识点“计网概述”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页