第一章 计算机网络概述
计算机网络是由通信介质将地理位置不同的且相互独立的计算机连接起来,实现数据通信与资源共享。
1.1 一些基本概念
互联网的两个重要特点:连通性和共享(资源共享)
计算机网络 :计算机的网络。由若干个结点和连接这些结点的链路组成。
互连网:网络的网络。网络之间通过路由器互连起来,构成了一个范围更大的计算机网络。
区分:Internet 与 internet
- Internet是一个专有名词(具体的互联网),互联网或者因特网,它指当前全球最大的、最开放的、由众多网络相互连接而成的特定互连网。
- internet 是一个通用名词(抽象的概念),它泛指由计算机网络互连而成的计算机网络。
1.2 互联网的组成
从其工作方式上可以划分为以下两大块:
-
边缘部分 (资源子网)
由所有连接在互联网上的主机组成,是用户直接使用。(用来进行通信和资源共享)
-
核心部分 (通信子网)
由大量网络和连接网络的路由器组成,是为边缘部分提供服务的(提供连通性和交换)
边缘部分
主机 和 端系统 可以视作等价概念,端系统是一种抽象概念,主机是端系统的实例。
主机 = 端系统 = 连接在互联网上的计算机 != 计算机
Web服务器是一种端系统,实体是主机。
主机A 与主机B 通信
实际上是:
主机A 的某个进程和 主机B 的某个进程进行通讯
端系统之间的通信分为两大类
- 客户-服务器方式(C/S 方式)
- client 客户:主动请求服务(突发性,任意)
- server 服务器:被动提供服务(总是在线)
- 其中一种特殊的C/S模式是 B/S 模式:依赖外部的浏览器
- 对等方式(P2P 方式)
- 通讯时不区分服务请求方和服务提供方
核心部分
在核心部分最重要的起着特殊作用的是路由器,它是一种专用计算机。
- 功能:实现分组交换
- 任务:转发收到的分组
路由器与交换机的区别
| 路由器: 位于网络层,能识别 IP 地址并根据 IP 地址转发分组。 维护着路由表,根据路由表选择最佳路线。 |
|---|
| 交换机: 工作于数据链路层,能识别 MAC 地址,根据 MAC 地址转发链路层数据帧。 具有自学机制来维护 IP 地址与 MAC 地址的映射。 |
电路交换(打电话的场景)
- 面向连接
通过"建立连接 (占用通信资源)-> 通话 (一直占用通信资源)-> 释放连接 (归还通信资源)"三个步骤的交换方式称为电路交换
特点:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
缺点:① 计算机的数据具有突发性
② 线路的传输效率很低
分组交换
采用存储转发技术
把一个报文划分为几个分组后再进行传送,报文为要发送的整块数据。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些由必要的控制信息组成的首部(header),就构成了一个分组(packet)。
分组是在互联网中传送数据的单元。
分组中的首部包含了诸如目的地址和源地址、序号等重要控制信息,每一个分组才能在互联网中独立地选择传送路径,并被正确地交付到分组传输的终点。
处理过程:
路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地以存储转发的方式,把分组交付最终的目的主机。
优点:高效、灵活、迅速、可靠
缺点:① 在路由器存储转发时需要排队,有一定时延。
② 各分组都携带了控制信息,造成一定的开销 。
报文交换
利用存储转发原理,整个报文先传送到相邻结点,全部存储下来之后查找转发表,转发到下一个结点。
路由器的三种交换方式:
若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。
报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。
1.3 计算机网络的类别
网络的作用范围
-
广域网WAN
一个国家、全世界······
-
城域网MAN
一个地区、一个城市······
-
局域网LAN
一个公司、一个家庭、一个学校······
-
个人区域网PAN
-
全球网
网络的使用者
-
公用网
-
专用网(军队、银行等)
1.4 计算机网络的性能
- 速率
连接在计算机网络上的主机在数字信道上传送数据位数的速率,也称为data rate 或 bit rate
计算机发送出的信号都是数字形式的。
速率指的是数据的传送速率,它也称为数据率或比特率。速率的单位是bit/s(比特每秒)(或b/s,有时也写作bps,即bit per second)。
单位是 b/s ,kb/s,Mb/s,Gb/s
当提到网络的速率时,往往指的是额定速率或标称速率,而并非网络实际上运行的速率。
例题
使用8M的网线,这个8M表示的是bit,而平时我们下载东西看到的速率是以字节为单位的。1字节=8bit,所以实际最高速度只有8/8M
- 带宽
”带宽“有以下两种不同的意义:
(1)带宽本来指某个**信号具有的频带宽度。**信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。
这种意义的带宽的单位是赫兹(或千赫、兆赫、吉赫等)
(2)带宽用来表示网络中某通道传送数据的能力。即在单位时间内,网络中的某信道所能通过的“最高数据率”。
单位b/s,kb/s,Mb/s,Gb/s
- 吞吐量
吞吐量表示在单位时间内通过某个网络的实际数据量。
单位b/s,kb/s,Mb/s,Gb/s
- 时延
时延是指数据从网络的一端传送到另一端所需的时间。时延是个很重要的性能指标,它有时也称为延迟或者迟延。
网络中的时延是由一下几个不同的部分组成的:
(1)发送时延
发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做传输时延。发送时延的计算公式是:
发送时延=数据帧长度(bit)/发送速率(bit/s)
比如 火车过隧道,火车车长 / 隧道长度
(2)传播时延
传播时延是电磁波在信道中传播一定的距离需要花费的时间,即传输指定距离所用的时间。
传播时延的计算公式是:
传播时延=信道长度(m)/电磁波在信道上大的传播速率(m/s)
电磁波在自由空间的传播速率是光速。即3.0*10^5km/s。
发送时延发生在机器内部的发送器中,与传输信道的长度没有任何关系。传播时延发生在机器外部的传输信道媒体上,而与信道的发送速率无关。信号传送的距离越远,传播时延就越大。
(3)处理时延
主机或路由器在收到分组时需要花费一定时间进行处理,例如分析分组的首部,从分组中提取数据部分、进行差错检验或查找合适的路由等,这就产生了处理时延。
即网络节点存储转发处理时间。
(4)排队时延
分组在进行网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待,在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延无穷大。
即当多个数据传输到结点A时要进行排队处理
这样数据在网络中经历的总时延就是以上四种时延之和:总时延=发送时延+传播时延+处理时延+排队时延。
一般来说,小时延的网络要优于大时延的网络。
- 时延带宽积
把传播时延和带宽相乘,就可以得到:传播时延带宽积,即:
时延带宽积=传播时延*带宽
- 往返时间RTT
从发送方发送数据开始,到发送方收到接收方确认的时间。
- 利用率
利用率有信道利用率和网络利用率等。
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道利用率是零。
信道利用率:有数据通过时间 / (有+无)数据通过时间
网络利用率则是全网络的信道利用率的加权平均值。数值在0~1之间。
信道利用率并非越高越好。这是因为,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。
信道或网络的利用率过高会产生非常大的时延。
1.5 网络层次划分
协议
通俗的说:就是两个独立且毫不相关的计算机,想要进行数据传输(聊天),就需要网。这个网就是指互联网,大家都在这进行数据交换就需要一个找一个统一的标准,也就是协议来约束大家的行为。
协议分层为两种:
- OSI 七层模型(理想) -- 开发系统互连基本参考模型
- TCP/IP 协议四层模型 (现实:行业标准)
OSI七层模型
| 分层名称 | 功能 | 备注 |
|---|---|---|
| 应用层 | 针对特定应用的协议(例如:电子邮件、文件传输等) | 程序(HTTP、SSH、SFTP) |
| 表示层 | 设备固有的数据格式和网络标准数据格式的转换 | |
| 会话层 | 通信管理。负责建立和断开数据库通信连接的;管理传输层以下的分层 | |
| 运输层 | 管理两节点之间的数据传输(可靠传输) | 类似于填写快递单号(收发件人信息) |
| 网络层 | 地址管理和路由选择(路由器) | 决定快递传输的方式(陆运/空运) |
| 数据链路层 | 互连设备之间传送和识别数据帧 | 确定具体的运输路径(不堵的路线) |
| 物理层 | 界定连接器和网线的规格 | 光信号和电信号来发送 |
osi的七层协议体系结构的概念清楚,理论也比较完善;
但它既复杂又不实用,ISO制定的osi协议参考模型的过于庞大、复杂招致了许多批评。
网络交互必备的5个部分:
-
目标地址IP (可以定位到电脑)
-
目标地址的端口号 (找到程序)
-
源地址IP (发送失败后的退还地址,可以接收目标的回传信息)
-
源地址的端口号
-
协议 (决定解析的方式)
TCP/IP 的四层模型
| 分层名称 | 功能 | 备注 |
|---|---|---|
| 应用层 | 针对特定应用的协议(例如:电子邮件、文件传输等) | FTP / SMTP / TELNET |
| 运输层 | 管理两节点之间的数据传输(可靠传输) | TCP / UDP |
| 网际层 | 地址管理和路由选择 | IP |
| 网络接口层 | 互连设备之间传送和识别数据帧 |
1.6 数据传输过程
数据的传输过程主要是分为封装 / 分用
-
封装
封装是指应用层数据通过协议栈发到网络上时,每层协议都要在上层协议的基础上加上一个数据首部(header),称为封装。
-
分用
当帧到达主机的时候,将沿着协议栈自底向上依次传递,各层一些依次处理帧中本层负责的头部信息数据,以获取所需的各层信息,并最终获取我们的应用程序需要的数据,这个过程就是分用。分用就是依靠头部信息中的类型字段实现的。
1.7 网络中的地址
-
IP地址(互联网地址标识)
IP地址是在IP协议中, 用来标识网络中不同主机的地址,分为两个版本:IPv4 以及 IPv6,但现在通常默认为IPv4
对于IPv4来说, IP地址是一个4字节, 32位的整数,采用十进制
.分法来命名. -
MAC地址(网络地址:物理地址)
MAC地址用来识别数据链路层中相连的节点
长度为48位, 及6个字节. 一般用16进制数字加上冒号(Linux)或者减号(Windows)的形式来表示
在网卡出厂时就确定了, 不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)
IPv4地址:192.168.0.8
MAC地址(物理地址):BC-54-2F-40-22-2A