互联网的组成
互联网的边缘部分
处在互联网边缘的部分就是连接在互联网上的所有的主机,又称为端系统(end system),。边缘部分利用核心部分所提供的服务,使众多主机之间能够互相通信并交换或共享信息。 “主机 A 和主机 B 进行通信”,实际上是指:“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。这通常可以简称为“计算机之间通信”。
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S 方式)和对等方式(P2P 方式)。
客户-服务器方式
客户-服务器方式:在互联网上是最常用的,也是传统的方式。在上网发送电子邮件或在网站上查找资料时,都是使用客户-服务器方式(有时写为客户/服务器方式)。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系:客户是服务请求方,服务器是服务提供方。服务请求方和服务提供方都要使用网络核心部分所提供的服务。在实际应用中,客户程序和服务器程序通常还具有以下一些主要特点。
- | 客户程序 | 服务器程序 |
---|---|---|
特点1 | 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。必须知道服务器程序的地址。 | 可同时处理多个远地或本地客户的请求。系统启动后自动调用并一直运行,被动地等待请求。不需要知道客户程序的地址。 |
特点2 | 不需要特殊的硬件和很复杂的操作系统。 | 一般需要有强大的硬件和高级的操作系统支持。 |
上面所说的客户和服务器本来都指的是计算机进程(软件)。有时也指机器。
对等连接
对等连接(peer-to-peer,简写为 P2P)是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P 软件),它们就可以 进行平等的、对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此这种工作方式也称为 P2P 方式。实际上,对等连接方式从本质上看仍然是使用客户-服务器方式,只是对等连接中的每一台主机既是客户又同时是服务器。对等连接工作方式可支持大量对等用户(如上百万个)同时工作。
互联网的核心部分
网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性。在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不叫做主机)。路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
电路交换
要让所有的电话机都两两相连接是不现实的。若 N 部电话要两两相连,就需要 N(N – 1)/2 对电线。电话发明后的一百多年来,电话交换机虽然经过多次更新换代,但交换的方式一直都是电路交换(circuit switching)。每一部电话都连接到交换机上,而交换机使用交换的方法,让电话用户彼此之间可以很方便地通信。当电话机的数量增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电信网。
交换(switching)就是按照某种方式动态地分配传输线路的资源。在使用电路交换通话之前,必须先拨号请求建立连接。当被叫用户听到交换机送来的振铃音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。通话完毕挂机后,交换机释放刚才使用的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网)。这种必须经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换。如果用户在拨号呼叫时电信网的资源已不足以支持这次的呼叫,则主叫用户会听到忙音,表示电信网不接受用户的呼叫。
分组交换
分组交换则采用存储转发技术,把一个报文(message)→ 要发送的整块数据划分为几个分组后再进行传送。
- 在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,例如,每个数据段为 1024 bit。
- 在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组是在互联网中传送的数据单元,又称为“包”,而分组的首部也可称为“包头”。正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点。
定义 | 连接 | 功能 | |
---|---|---|---|
主机 | 位于互联网边缘部分,用于用户信息处理,并与其他主机交换信息 | 通过相对较低速率的链路与核心部分连接 | 进行信息处理,与其他主机交换信息 |
路由器 | 位于互联网核心部分,用于转发分组,进行分组交换 | 通过高速链路与其他路由器相连接 | 转发分组,进行分组交换 |
路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地以存储转发的方式,把分组交付最终的目的主机。
各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
当讨论路由器转发分组的过程时,往往把单个的网络简化成一条链路,而路由器成为核心部分的结点
现在假定主机 H1 向主机 H5 发送数据。
- 主机 H1先将分组逐个地发往与它直接相连的路由器 A。此时,除链路 H1−A 外,其他通信链路并不被目前通信的双方所占用。链路 H1−A,也只是当分组正在此链路上传送时才被占用。 2, 路由器 A 把主机 H1 发来的分组放入缓存。
- 路由器 A 从转发表中查出应把该分组转发到链路 A−C。于是分组就传送到路由器 C。传送时,该分组并不占用网络其他部分的资源。
- 路由器 C 继续按上述方式查找转发表,假定查出应转发到路由器 E。当分组到达路由器 E 后,再被直接交给主机 H5。
- 假定在某一个分组的传送过程中,链路 A−C 的通信量太大,那么路由器 A 可以把分组沿另一个路由传送
- 在网络中可同时有多台主机进行通信
真题
【2013·35】主机甲通过1个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均为10Mbps,主机甲分别采用报文交换和分组大小为10kb的分组交换向主机乙发送1个大小为8Mb(1M=106)的报文。若忽略链路传播延迟、分组头开销和分组拆装时间,则两种交换方式完成该报文传输所需的总时间分别为
A. 800ms、1600ms
B. 801ms、1600ms
C. 1600ms、800ms
D. 1600ms、801ms
答案:D
计算机网络的性能
计算机网络的性能指标
性能指标从不同的方面来度量计算机网络的性能。下面介绍常用的七个性能指标。
性能指标 | 单位 | 描述 |
---|---|---|
速率 | bit/s | 数据的传送速率。当提到网络的速率时,往往指的是额定速率或标称速率,而并非网络实际上运行的速率 |
带宽 | 赫/bit/s | 用来表示网络中某通道传送数据的能力,即单位时间内网络中的某信道所能通过的“最高数据率”。 |
吞吐量 | bit/s | 在单位时间内通过某个网络(或信道、接口)的实际的数据量。 |
时延 | s | 数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间,也称为延迟或迟延。 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延 |
时延带宽积 | bit | 时延带宽积 = 传播时延 × 带宽,表示链路可容纳多少个比特。 |
往返时间 | ||
利用率 |
速率
计算机发送出的信号都是数字形式的。比特(bit)来源于 binary digit,意思是一个“二进制数字”,比特也是信息论中使用的信息量的单位。网络技术中的速率指的是数据的传送速率,它也称为数据率(data rate)或比特率(bit rate)。速率的单位是 bit/s(比特每秒)。数据率较高时常常在 bit/s 的前面加上一个字母。这样,4 × 1010 bit/s 的数据率就记为 40 Gbit/s。另外,当提到网络的速率时,往往指的是额定速率或标称速率,而并非网络实际上运行的速率。
单位 | 符号 | 值 |
---|---|---|
千 | k | 103 |
兆 | M | 106 |
吉 | G | 109 |
太 | T | 1012 |
拍 | P | 1015 |
艾 | E | 1018 |
泽 | Z | 1021 |
尧 | Y | 1024 |
带宽:
- 带宽本来是指某个信号具有的频带宽度。信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是 3.1kHz(从 300 Hz 到 3.4 kHz)。这种意义的带宽的单位是赫(或千赫、兆赫、吉赫等)。在过去很长的一段时间,通信的主干线路传送的是模拟信号(即连续变化的信号)。
- 在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高数据率”。这种意义的带宽的单位就是数据率的单位 bit/s,是“比特每秒”。
在“带宽”的上述两种表述中,前者为频域称谓,而后者为时域称谓,其本质是相同的,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。
吞吐量
吞吐量(throughput) 更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。例如,对于一个 1 Gbit/s 的以太网,就是说其额定速率是 1 Gbit/s,这个数值也是该以太网的吞吐量的绝对上限值。有时吞吐量还可用每秒传送的字节数或帧数来表示。
时延
时延网络中的时延(delay 或 latency)是由以下几个不同的部分组成的:
- 发送时延(transmission delay)。主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
- 传播时延(propagation delay) 。电磁波在信道中传播一定的距离需要花费的时间。 1000 km 长的光纤线路产生的传播时延大约为 5 ms。
- 处理时延。主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等的时延。
- 排队时延。 分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
传输媒体 | 传播速率 (km/s) |
---|---|
自由空间 | 3.0 × 105 → 光速 |
铜线电缆 | 2.3 × 105 |
光纤 | 2.0 × 105 |
高速网络链路提高的仅仅是数据的发送速率而不是比特在链路上的传播速率,只是减小了数据的发送时延。光纤信道的传输速率高”是指可以用很高的速率向光纤信道发送数据,而光纤信道的传播速率实际上还要比铜线的传播速率略低一点。光在光纤中的传播速率约为每秒 20.5 万公里,电磁波在铜线(如 5 类线)中的传播速率约为每秒 23.1 万公里
时延带宽积
时延带宽积 = 传播时延 × 带宽,表示这样的链路可容纳多少个比特。例如,设某段链路的传播时延为 20 ms,带宽为 10 Mbit/s。算出 时延带宽积 = 20 × 103 × 10 × 106 = 2 × 105 bit。这表明,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端已经发送了 20 万个比特,而这 20 万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度。
计算机网络的体系结构
在两台计算机之间互相传送文件需要完成的工作:
- 发起通信的计算机必须将数据通信的通路进行激活(activate)。所谓“激活”就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
- 要告诉网络如何识别接收数据的计算机。
- 发起通信的计算机必须查明对方计算机是否已开机,并且与网络连接正常。
- 发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
- 若计算机的文件格式不兼容,则至少其中一台计算机应完成格式转换功能。
- 对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机出现故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。
相互通信的两个计算机系统协调工作是相当复杂的。为了设计这样复杂的计算机网络,早在最初 的 ARPANET 设计时即提出了分层的方法。
1974 年,美国的 IBM 公司宣布了系统网络体系结构 SNA (System Network Architecture)。 这个著名的网络标准就是按照分层的方法制定的。现在用 IBM 大型机构建的专用网络仍在使 用 SNA。不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。
不同的网络体系结构的出现使用同一个公司生产的各种设备都能够很容易地互连成网。这有利于一个公司垄断市场。但由于网络体系结构的不同,不同公司的设备很难互相连通。 为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构,提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。
“开放”是指非独家垄断的。因此只要遵循 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。世界范围的有线电话和邮政系统这两个系统都是开放系统。“系统”是指在现实的系统中与互连有关的各部分(并不是一个系统中的所有部分都与互连有关。OSI/RM 把与互连无关的部分除外,而仅仅考虑与互连有关的那些部分)。所以 OSI/RM 是个抽象的概念。在 1983 年形成了开放系统互连基本参考模型的正式文件,即著名的 ISO 7498 国际标准,也就是七层协议的体系结构。
到了 20 世纪 90 年代初期,虽然整套的 OSI 国际标准都已经 制定出来了,但由于基于 TCP/IP 的互联网已抢先在全球相当大的范围成功地运行了,而与此同时却几乎找不到有什么厂家生产出符合 OSI 标准的商用产品。因此 OSI 只获得了一些理论研究的成果,但在市场化方面则事与愿违地失败了。现今规模最大的、覆盖全球的、基于 TCP/IP 的互联网并未使用 OSI 标准。
OSI 失败的原因可归纳为:
- OSI 的专家们缺乏实际经验,他们在完成 OSI 标准时缺乏商业驱动力;
- OSI 的协议实现起来过分复杂,而且运行效率很低;
- OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
- OSI 的层次划分不太合理,有些功能在多个层次中重复出现。
按照一般的概念,网络技术和设备只有符合有关的国际标准才能大范围地获得工程上的应用。但最终得到最广泛应用的不是法律上的国际标准 OSI,而是非国际标准 TCP/IP。这样,TCP/IP 就常被称为是事实上的国际标准。在过去制定标准的组织中往往以专家、学者为主。但现在许多公司都纷纷加入各种标准化组织,使得技术标准具有浓厚的商业气息。一个新标准的出现,有时不一 定反映其技术水平是最先进的,而是往往有着一定的市场背景。
虽然 OSI 标准在一开始由 ISO 来制定,但后来的许多标准都是 ISO 与原来的国际电报电话咨询委员会 CCITT 联合制定的。从历史上来看,CCITT 原来是从通信的角度考虑一些标准的制定的,而 ISO 则关心信息的处理。但随着科学技术的发展,通信与信息处理的界限变得比较模糊了。于是,通信与信息处理就都成为 CCITT 与 ISO 所共同关心的领域。CCITT 的建议书 X.200 就是关于开放系统互连参考模型的,它和上面提到的 ISO7498 基本上是相同的。
层次 | 功能 |
---|---|
物理层 Physical Layer | 在物理媒体上为数据端设备透明地传输原始比特流 |
数据链路层 Data Link Layer | 将网络层传来的 IP 数据报组装成帧。成帧、差错控制、流量控制和传输管理 |
网络层 Network Layer | 把网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务。 |
传输层 Network Layer | 负责主机中两进程之间的通信,功能是为端到端连接提供可靠的传输服务 |
会话层 Session Layer | 管理主机间的会话进程,包括建立、管理及终止进程间的会话。 |
表示层 Presentation Layer | 处理在两个通信系统中交换信息的表示方式。 |
应用层 Application Layer | 作为用户与网络的界面,为特定类型的网络应用提供访问 OSI 环境的手段。 |
序号 | OSI 七层协议 | TCP/IP 四层协议 | 五层协议 |
---|---|---|---|
7 | 应用层 |
应用层 (各种应用层协议如 TELNET, FTP, SMTP 等) |
应用层 |
6 | 表示层 | ||
5 | 会话层 | ||
4 | 运输层 |
运输层 (TCP 或 UDP)
|
运输层
|
3 | 网络层 |
网际层 IP
|
网络层
|
2 | 数据链路层 | 网络接口层 |
数据链路层
|
1
|
物理层 |
物理层
|
疑难
交换机不是可以将帧只转发到目的端口吗?为什么说它不能隔离广播域
你提到的交换机将帧只转发到目的端口的功能是基于MAC地址表的单播通信。让我们更详细地解释一下交换机的工作原理以及为什么它不能隔离广播域。
交换机的工作原理: 交换机在OSI模型的第二层(数据链路层)工作,通过以下方式处理数据帧: 学习MAC地址:交换机会记录每个端口上连接的设备的MAC地址,并将这些信息存储在MAC地址表中。 单播通信:当交换机接收到一个数据帧时,它会查找MAC地址表,找到目的MAC地址对应的端口,然后将数据帧只转发到该端口。这就是你提到的“将帧只转发到目的端口”的功能。 广播通信:当交换机接收到一个广播帧(目的MAC地址为FF:FF:FF:FF:FF:FF)时,它会将该帧转发到所有端口(除了接收端口),因为广播帧是发送给网络中所有设备的。
广播域的概念
广播域是指一个网络中,所有设备都能接收到广播帧的范围。在一个没有划分VLAN的交换机中,所有连接到该交换机的设备都属于同一个广播域。这意味着,当一个设备发送广播帧时,交换机会将该帧转发给所有其他设备。
为什么交换机不能隔离广播域
虽然交换机可以通过MAC地址表实现单播通信,但它无法隔离广播流量。具体原因如下:
广播帧的处理:交换机会将广播帧转发给所有端口上的设备,这意味着所有设备都能接收到广播帧。
广播域的范围:在没有VLAN的情况下,整个交换机的所有端口都属于同一个广播域,广播流量会在整个交换机上传播。
VLAN的作用
VLAN(虚拟局域网)通过逻辑方式将一个物理交换机划分为多个虚拟网络,每个VLAN都是一个独立的广播域。这样,不同VLAN之间的广播流量是相互隔离的,只有同一个VLAN内的设备才能接收到彼此的广播帧。
总结
交换机确实可以通过MAC地址表实现单播通信,将数据帧只转发到目的端口,但它无法隔离广播流量。广播帧会在整个交换机的所有端口上传播,形成一个广播域。通过使用VLAN,可以将交换机划分为多个独立的广播域,从而实现广播流量的隔离。