计算机网络
本文最后更新于 2024-11-30 19:56:36
1、概述
1.1 互联网的概述
互联网具有两个最重要的基本特点:连通性和共享
计算机网络(简称为网络)由若干个节点和连接这些节点的链路组成
网络中的节点可以是计算机、集线器、交换机和路由器等
例如:由三个计算机通过三条链路连接到一个集线器上,这就是一个简单的计算机网络(简称为网络)
由许多网络通过路由器相互连接起来,构成了一个覆盖范围更大的计算机网络,这样的网络称为互连网
因此,互连网是一个网络的网络
网络把许多计算机连接在一起,而互连网则把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机。
一般用云表示的网络已经包含了网络中的计算机,为了讨论方便(例如:讨论几个计算机之间如何进行通信),一般把有关的计算机画在云外。
习惯上:与网络相连的计算机成为主机,在互联网中不可缺少的路由器是一种特殊的计算机(有中央处理器、存储器、操作系统等),但不能成为主机
注意:
internet
(互连网)是一个通用名词,他泛指有多个计算机网络互连而成的计算机网络,在这些网络之间的通信协议(即通信规则)可以任意选择,不一定非要使用TCP/IP协议
Internet
(互联网,或因特网)则是一个专用名词,他指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用TCP/IP协议
族作为通信的规则,且其前身是美国的 AEPANET
- 可见,任意把几个计算机网络互连起来(不管采用什么协议),并能够互相通信,这样构成的是一个互连网,而不是互联网
1.2 互联网的组成
从工作方式上看,可以划分为两大类:
- 边缘部分 :由所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信(传送数据、音频、视频)和资源共享
- 核心部分 : 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
边缘部分:
处在互联网边缘的部分就是连接在互联网上的所有的主机,这些主机又称端系统
1
2
3/* 端系统
小的端系统可以是一台普通的个人电脑和具有上网功能的智能手机、甚至是一个很小的网络摄像头、大的端系统可以是一个昂贵的大型计算机主机A的某个进程和主机B上的另一个进程进行通信,这种说法通常可以简称为计算机之间通信
边缘方式的通信可以分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)
- C/S
1
2
3
4
5/*
客户和服务器都是值通信中所涉及的两个应用进程,他们描述的是进程之间服务和被服务的关系
服务请求方和服务提供方都要使用网络核心部分所提供的服
但是他们之间的通信可以是双向的,客户和服务器都可发送和接受数据!!!!!!!- P2P
1
2
3
4/*
没有明确的服务请求方和服务提供者,具体看进程工作时的动作
对等连接工作方式可支持大量对等用户(如上百万个)同时工作核心部分
核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘部分中的大量主机提供连通性,使边缘部分中的任何一台主机都能够与其他主机通信
起特殊作用的是路由器,他是一种专用计算机(但不叫作主机)。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能
为了了解分组交换,首先了解电路交换:
1
2
3
4
5
6/*
交换:从通信资源的分配来看,他就是按照某种方式动态的分配传输路线的资源
必须经过: 建立连接(占用通信资源)---> 通话(已知占用资源)--> 释放连接(归还通信资源) 三个步骤的交换方式成为电路交换
电路交换的一个重要特点:
在通话的全部时间内,通话的两个用户始终占用端到端的通信资源分组交换:
通常把要发送的整块数据成为一个报文。
在发送报文之前,先把报文划分为一个个更小的等长数据段,在每一个数据段前面,加上一些必要的控制信息组成的首部后,就构成了一个分组,分组又称为“包”,而分组的首部也可称为“包头”。
1.6计算机网络的性能
速率:网络中的速率指的是数据的传送速率,也称为数据率或比特率
单位
bit/s
(比特每秒)或b/s
有时也写为bps
,当速率较高的时候,就在单位前加一个字母,如:
$$
k=10^3 (千)\
M=10^6 (兆)
$$当提到网络速率的时候,往往指的是额定速率或标称速率
注意: B 是字节,1个字节=8比特
带宽
- 本来指某个信号具有的频带宽度,信号的带宽指的是该信号包含的各种不同频率成分所占据的频率范围,这种意义的带宽的单位是赫
- 在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示单位时间内网络中的某信道所能通过的最高数据率 ,单位
bit/s
吞吐量 : 表示在单位时间内通过某个网络的实际数据量
时延: 指数据(一个报文或分组,甚至比特)从网络(或链路)的一段传送到另一端所需的时间
他是一个重要的性能指标,他有事也称为延迟或迟延
网络的时延是由以下几个不同的部分组成:
- 发送时延 : 是主机或路由器发送数据帧所需要的时间(也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间),计算公式:
$$
发送时延=\frac{数据帧长度(bit)}{发送速率(bit/s)}
$$传播时延: 是电磁波在信道中传播一定的距离需要花费的时间,计算公式:
$$
发送时延=\frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)}
$$
电磁波在自由空间的传播速率是光速,也就是3.0 x 10^5 km/s
处理时延 : 主机或路由器在收到分组时要花费一定的时间进行处理,例如:分析分组的首部、从分组中提取数据部分等
排队时延 : 分组在经过网络传输时,要经过许多路由器,但分组在进入路由器后要现在输入队列中排队等待处理,在路由器确定了转发接口后,还要在输出队列中排队等待
发送时延发生在机器内部的发送器中(一般就是发生在网络适配器中)与传输信道的长度没有任何关系
传播时延发生在机器外部的传输信道媒体上,与信号的发送速率无关,信号传送的距离越远,传播时延就越大
$$
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
$$时延宽带积
$$
时延宽带积 = 传播时延 + 宽带
$$
例如:某链路的传播时延为 20s,宽带为 10Mbit/s,则时延宽带 = 20 x 10 x (10^6)bit这表明,若发送端连续发送数据,则发送的第一个比特即将到达终点时,发送端就已经发送了 20 x 10 x (10^6)比特,这写比特都在链路上向前移动,因此,链路的时延带宽积又称为 以比特为单位的链路长度
往返时间RTT : 双向交互一次所需的时间
有时也称为往返时延
$$
有效数据率=\frac{数据长度}{发送时间+RTT}
$$利用率
信道利用率或网络利用率过高就会产生非常大的时延
1.7 具有五层协议的体系结构
对OSI的七层协议体系结构和 TCP/IP的四层体系结构进行综合,讨论五层体系结构,即(从上到下): 应用层,运输层,网络层,数据链路层,物理层
应用层:协议定义:应用进程间通信和交互的规则 (进程指的是主机中正在运行的程序)
任务:通过应用进程间的交互来完成特定网络应用
我们将应用层交互的数据单元称为报文
如:域名系统DNS、支持万维网应用的HTTP协议等
运输层 : 任务:向两台主机中进程之间的通信提供通用的数据传输服务 ,应用进程利用该服务传送应用层报文