文章目录
注:内容参考湖科大教书匠《深入浅出计算机网络》
信息时代的计算机网络
计算机网络的各类应用
网络应用大致可以分为信息浏览和发布、通信和交流、休闲和娱乐、资源共享、电子商务、远程协作、网上办公等几个类别。
计算机网络带来的负面问题
黑客利用网络窃取国家机密、传播计算机病毒、肆意攻击正规网站,不法分子在网络上实施诈骗、建立各种色情网站和赌博网站来牟利,某些电子商务平台上的不良商家通过网络售卖假冒伪劣商品,网络使用者有意或无意地传播形形色色的谣言。
因特网概述
网络、互连网(互联网)与因特网的区别与关系
网络
网络(Network)是由若干**节点(Node)和连接这些节点的链路(Link)**组成的。
网络中的节点可以是计算机(笔记本电脑、台式电脑、服务器等)、网络互连设备(集线器、交换机、路由器等)、其他具有网络功能的设备(网络打印机、网络摄像头、物联网设备等)。
网络中的链路既可以是有线链路,也可以是无线链路。
为了简单起见,我们可以仅用一朵云来表示一个网络,而网络内部的细节则不用给出。
互连网
互连网(intermet)是由若干网络和连接这些网络的路由器组成的。
如果我们忽略互连细节,则可将互连网看作一个覆盖范围更大的网络,因此也可称其为"网络的网络(Network of Networks)"。
因特网
因特网(Internet)是我们几乎每天都会使用的网络,它是当今世界上最大的互联网。
因特网也常常用一朵云来表示,其内部各种路由器和异构型网络的互连细节不用给出(一般也难以给出)。
连接在因特网上的各种通信设备(例如智能手机、平板电脑、笔记本电脑、台式电脑、服务器、网络打印机和可联网家用电器等)称为主机(Host)(也叫端系统),而路由器是用于网络互连的专用设备,一般不称其为主机。
综上所述,我们可以将网络、互联网与因特网的区别与关系总结如下:若干节点和链路互连形成网络,而若干网络通过路由器互连形成互联网,因特网是当今世界上最大的互联网。
internet和Internet
有时并没有严格区分互联网和因特网这两个名词,许多人口中的互联网实际上是指因特网。但internet和Internet这两个英文名词却有很大的区别:
internet | Internet |
---|---|
互连网 | 因特网 |
通用名词 | 专用名词 |
网络之间可以使用任意的通信协议作为通信规则 | 网络之间必须使用TCP/IP协议族作为通信规则 |
网络互连并不仅仅是简单的物理连接,还需要各通信设备中安装有相应的软件。因此当我们谈到网络互连时,就隐含地表示在这些通信设备中已经安装好了相应的软件,因而各通信设备可以通过网络交换信息。
因特网简介
三个阶段
ISP
因特网服务提供者(Internet Service Provide)。
因特网已发展成为基于ISP 的多层次结构的互连网络。
相同层次的ISP可选择直接相连。
已接入因特网的用户也可以成为一个ISP。只需要购买一些相关的设备(例如调制解调器、路由器等),让其他用户能够通过他来接入因特网。各ISP可以在因特网拓扑上添加新的层次和分支。
因特网的标准化工作
因特网的管理机构
因特网的组成
从组成部分看
计算机网络主要由硬件 、软件 、协议三大部分组成。
硬件主要由主机、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。
软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件。
协议是计算机网络的核心,协议规定了网络传输数据时所遵循的规范。
从工作方式看
因特网可以从功能上简单的划分为两部分:边缘部分和核心部分。
因特网的边缘部分。由连接在因特网上的台式电脑、笔记本电脑、服务器等用户设备构成。这些用户设备常称为主机,由用户直接使用,为用户直接提供各式各样的网络应用。
因特网的核心部分。由大量异构型网络和连接这些网络的路由器构成。因特网的核心部分为其边缘部分提供连通性和数据交换等服务。
从功能组成看
计算机网络由通信子网 和资源子网组成。
通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。
资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。
电路交换、分组交换和报文交换
从通信资源分配的角度看,交换(Switching)实际上就是以某种方式动态地分配传输线路的资源。
电路交换
使用电路交换进行通信的三个步骤如下:
- 建立连接,连接为通话双方提供通信资源。
- 通话,通话双方始终占用着连接,通信资源不会被其他用户占用。
- 释放连接,所占用的通信资源归还给电信网。
计算机之间的数据传送都是突发式的,当使用电路交换来传送计算机数据时,其线路传输效率一般都很低,真正的传送数据的时间不到10%甚至不到1%。
注:在电路交换中,电路建立后,除源结点和目的结点外,电路上的任何结点都采取"直通方式"接收数据和发送数据,即不存在存储转发所耗费的时间。
报文交换
报文交换是分组交换的前身。
数据交换的单位是报文,用户数据加上源地址、目的地址等信息后,后封装成报文(message)。
在报文交换中,报文被整个地发送,而不是拆分成若干个分组进行发送。
交换节点将报文整体接收完成后才能查找转发表,将整个报文转发到下一个节点。
报文交换比分组交换带来的转发时延要长很多,需要交换节点具有的缓存空间也大很多。
分组交换
源主机在发送之前,先把较长的报文划分成若干较小的等长数据段,在每个数据段前面添加一些由必要控制信息(如源地址、目的地址和编号信息等)组成的首部,构成分组(Packet)。
源主机将待发送的整块数据构造成若干个分组并发出去,分组传送途中的各交换节点(即路由器)对分组进行存储转发,目的主机收到分组后,组合还原成原始数据块。
源主机将分组发送到分组交换网中,分组交换网中的分组交换机收到一个分组后,先将其缓存下来,然后从其首部中提取出目的地址,按照目的地址查找自己的转发表,找到相应的转发接口后将分组转发出去,把分组交给下一个分组交换机。经过多个分组交换机的存储转发后,分组最终被转发到目的主机。
优点 | 缺点 |
---|---|
没有建立连接和释放连接的过程。 | 分组首部带来了额外的传输开销。 |
分组传输过程中逐段占用通信链路,有较高的通信线路利用率。 | 交换节点存储转发分组会造成一定的时延。 |
交换节点可以为每一个分组独立选择转发路由,使得网络有很好的生存性。 | 无法确保通信时端到端通信资源全部可用,在通信量较大时可能造成网络拥塞。 |
分组可能会出现失序和丢失等问题。 |
三种交换方式的对比
若要连续传送大量的数据,并且数据传送时间远大于建立连接的时间,则使用电路交换可以有较高的传输效率。然而计算机的数据传送往往是突发式的,采用电路交换时通信线路的利用率会很低。
报文交换和分组交换都不需要建立连接(即预先分配通信资源),在传送计算机的突发数据时可以提高通信线路的利用率。
将报文构造成若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性。
计算机网络的定义和分类
计算机网络的定义
计算机网络的定义反映了当时计算机网络技术的发展水平。
- 计算机网络早期的一个最简单定义是:
一些互连的、自治的计算机的集合。"互连"是指计算机之间可以进行数据通信,而"自治"是指独立的计算机,它有自己的软硬件,可以独立运行。
- 对于计算机网络较好的定义是:
计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
注1:定义中的"可编程的硬件"表明这种硬件一定包含有中央处理单元CPU。
注2:计算机网络并非只用来传送数据,而是能够基于数据传送进而实现各种各样的应用。
计算机网络的分类
按网络的覆盖范围分类
1)广域网(WAN),2)城域网(,MAN),3)局域网(LAN),4)个域网(PAN)
按网络的使用者分类
1)公用网(PublicNetwork),2)专用网(PrivateNetwork)
按其他角度分类
除上述两种分类角度外,计算机网络还有很多分类角度。例如按传输介质分类(有线或无线)、按网络拓扑分类(总线型、星型、环型、网状型)、按交换方式分类(电路交换、报文交换、分组交换)以及按传输技术分类(点对点或广播)等。
计算机网络的性能指标
计算机网络的性能指标被用来从不同方面度量计算机网络的性能。
速率
比特(bit,记为小写b)是计算机中数据量的基本单位,一个比特就是二进制数字中的一个1或0。
数据量的常用单位有字节(bytebyte,记为大写B)、千字节(KB)、兆字节(MB)、吉字节(GB)以及太字节(TB)。
速率是指数据的传送速率(即每秒传送多少个比特),也称为数据率(Data Rate Rate)或比特率(Bit Rate Rate)。
速率的基本单位是比特/秒(bit/s,可简记为b/s,有时也记为bps)。速率的常用单位有千比特/秒(kb/s 或kbps)、兆比特/秒(Mb/s 或Mbps)、吉比特/秒(Gb/s 或Gbps)以及太比特/秒(Tb/s 或Tbps)。
带宽
- 在模拟信号系统中
带宽是指某个信号所包含的各种不同频率成分所占据的频率范围。单位是赫兹(Hz),简称"赫"。
常用单位有千赫(kHz)、兆赫(MHz)以及吉赫(GHz)等。表示通信线路允许通过的信号频带范围就称为线路的带宽。
- 在计算机网络中
带宽用来表示网络的通信线路所能传送数据的能力,即在单位时间内从网络中的某一点到另一点所能通过的最高数据率。
在计算机网络中,带宽的单位与速率的单位是相同的。基本单位是比特/秒(b/s或bps),常用单位有千比特/秒(kb/s或kbps)、兆比特/秒(Mb/s或Mbps)、吉比特/秒(Gb/s或Gbps)以及太比特/秒(Tb/s或Tbps)。
根据香农公式可知,带宽的上述两种表述有着密切的关系:线路的"频率带宽"越宽,其所传输数据的"最高数据率"也越高。
注:数据传送速率 = min [ 主机接口速率,线路带宽,交换机或路由器的接口速率 ]
吞吐量
吞吐量是指在单位时间内通过某个网络或接口的实际数据量。吞吐量常被用于对实际网络的测量,以便获知到底有多少数据量通过了网络。
当用户计算机中与网络通信相关的应用进程增多时,吞吐量也会随之增大,但吞吐量会受网络带宽的限制。
时延
时延是指数据从网络的一端传送到另一端所耗费的时间,也称为延迟或迟延。 数据可由一个或多个分组、甚至是一个比特构成。
发送时延(传输时延)是主机或路由器发送分组所耗费的时间,也就是从发送分组的第一个比特开始,到该分组的最后一个比特发送完毕为止所耗费的时间。
传播时延 是电磁波在链路(传输介质)上传播一定的距离所耗费的时间。
发送时延 = 分组长度( b ) 发送速率( b / s ) 传播时延 = 信道长度( m ) 信号传播速率( m / s ) 发送时延=\frac{分组长度(b)}{发送速率(b/s)}\\传播时延=\frac{信道长度(m)}{信号传播速率(m/s)} 发送时延=发送速率(b/s)分组长度(b)传播时延=信号传播速率(m/s)信道长度(m)
注:三种电磁波的信号传输速率,自由空间:3.0 × 10^8 m/s;铜线:2.3 × 10^8 m/s;光纤:2.0 × 10^8 m/s
排队时延是分组在路由器的输入队列和输出队列中排队缓存所耗费的时间。
处理时延是路由器对分组进行一系列处理工作(检查是否误码、提取目的地址、查找转发接口以及修改部分内容)所耗费的时间就是处理时延。
排队时延和处理实验不方便计算。
例:源主机连续发送多个分组经多个路由器的转发后才能到达目的主机。
主机A给主机B连续发送四个分组,则从主机A发送第一个分组开始,到主机B接收完第四个分组为止,在不考虑排队时延和处理时延的情况下,总时延由四个分组的发送时延、三段链路的传播时延以及两个路由器的转发时延构成。
时延带宽积
时延带宽积是传播时延和带宽的乘积。指发送端发送的第一个比特即将到达终点时,发送端已发出了多少比特。
链路的时延带宽积也称为以比特为单位的链路长度(可帮助理解以太网的最短帧长)。
往返时间
往返时间(RTT)是指从发送端发送数据分组开始,到发送端收到接收端发来的相应确认分组为止,总共耗费的时间。
利用率
- 链路利用率
也称信道利用率。
链路利用率是指某条链路有百分之几的时间是被利用的(即有数据通过)。
链路利用率 = 有数据通过的时间 (有 + 无)数据通过的时间 链路利用率=\frac{有数据通过的时间}{(有+无)数据通过的时间} 链路利用率=(有+无)数据通过的时间有数据通过的时间
完全空闲的链路的利用率为零。
- 网络利用率
网络利用率是指网络中所有链路的链路利用率的加权平均。
根据排队论可知,当某链路的利用率增大时,该链路引起的时延就会迅速增加。
当网络的通信量较少时,产生的时延并不大,但在网络通信量不断增大时,分组在交换节点(路由器或交换机)中的排队时延会随之增大,因此网络引起的时延就会增大。
令 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
丢包率
丢包率是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
分组丢失主要有以下两种情况:
- 分组在传输过程中出现误码,被传输路径中的节点交换机(例如路由器)或目的主机检测出误码而丢弃。
- 分组交换机根据丢弃策略主动丢弃分组。
丢包率可以反映网络的拥塞情况:
- 无拥塞时路径丢包率为0
- 轻度拥塞时路径丢包率为1%~4%
- 严重拥塞时路径丢包率为5%~15%
当网络的丢包率较高时,通常无法使网络应用正常工作
计算机网络的体系结构
计算机网络的各层及其协议的集合称为网络的体系结构。换言之,计算机网络的体系结构就是这个计算机网络及其所应完成功能的精确定义。
常见的三种计算机网络体系结构
OSI参考模型
开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称OSI。
OSI参考模型是一个七层协议的体系结构,自下而上依次是物
理层、数据链路层、网络层、运输层、会话层、表示层以及应用
层。
物理层
物理层的传输单位是比特,功能是在物理介质上为数据端设备透明地传输原始比特流。
数据链路层
数据链路层的传输单位是帧。
数据链路层将网络层交来的IP分组封装成帧,并且可靠地传输到相邻结点的网络层。
主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
数据链路层应能检测信号发生的差错,然后将收到的错误信息丢弃。
网络层
网络层的传输单位是数据报。
关键问题是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互连等功能。
传输层
传输层也称运输层,负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,即为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。
注 :数据链路层提供的是点到点通信 ,传输层提供的是端到端通信。
点到点可理解为主机和主机之间的通信,一个点是指一个硬件地址或IP地址,网络中参与通信的主机是通过硬件地址或IP地址来标识的。
端到端通信是指运行在不同主机内的两个进程之间的通信,一个进程由一个端口来标识,所以称为端到端通信。
会话层
会话层允许不同主机上的各个进程之间进行会话。
这种服务主要为表示层实体或用户进程建立连接,并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)。
会话层负责管理主机间的会话进程,包括建立、管理和终止进程间的会话。
表示层
表示层主要处理在两个通信系统中交换信息的表示方式。
表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式。
数据压缩、加密和解密也是表示层的功能。
应用层
应用层是OSI参考模型的最高层,是用户与网络的接口。
应用层是最复杂的一层,使用的协议也最多。典型的协议有用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP等。
TCP/IP参考模型
TCP/IP参考模型是一个四层协议的体系结构,自下而上依次是网络接口层、网际层、运输层、应用层。
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,将会话层和表示层合并到了应用层。
注:由于TCP/IP在网络层使用的核心协议是IP协议,IP协议的中文意思是网际协议(Intermet Protocol),因此TCP/IP体系结构的网络层也常称为网际层。
网络接口层
TCP/IP体系结构的网络接口层并没有规定什么具体的内容。
这样做的目的是可以互连全世界各种不同的网络接口,例如有线的以太网接口、无线局域网的Wi-Fi接口,而不限定仅使用的一种或几种网络接口。
TCP/IP体系结构在本质上只有上面的三层。
网际层
网际协议IP是TCP/IP体系结构网际层的核心协议。
IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不同的网络接口,另一方面为各种网络应用提供服务。
IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务。
TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的某些协议提供可靠传输的服务。
UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的某些协议提供不可靠传输的服务。
运输层
传输控制协议(TCP)和用户数据报协议(UDP)是TCP/IP体系结构运输层的两个重要协议。
应用层
TCP/IP体系结构的应用层包含了大量的应用层协议,例如超文本传送协议(HTTP)、简单邮件传送协议(SMTP)、域名系统(DNS)以及实时运输协议(RTP)等。
原理参考模型
在学习计算机网络原理时往往采取折中的办法,也就是综合OSI参考模型和TCP/IP参考模型的优点,采用一种原理参考模型。
原理参考模型是一个五层协议的体系结构,自下而上依次是物理层、数据链路层、网络层、运输层以及应用层。
五层协议的原理体系结构将TCP/IP体系结构的网络接口层又重新划分为物理层和数据链路层,有利于我们对计算机网络原理的学习。
计算机网络体系结构分层的必要性
"分层"可将庞大复杂的问题转化为若干较小的局部问题。
要解决实现计算机网络所面临的各种软件问题,将它们划分到不同的模块中,逐个模块编程实现。
物理层需要考虑的主要问题:
1)采用什么传输媒体(介质,物理层之下,第0层);2)采用什么物理接口;3)采用什么信号表示比特0和1。
数据链路层需要考虑的主要问题:
1)标识网络中各主机(主机编址,例如MAC地址);2)从比特流中区分出地址和数据(数据封装格式);3)协调各主机争用总线(媒体接入控制);4)以太网交换机的实现(自学习和转发帧);4)检测数据是否误码(差错检测);5)出现传输差错如何处理(可靠传输和不可靠传输);6)接收方控制发送方注入网络的数据量(流量控制)。
网络层需要考虑的主要问题:
1)标识网络和网络中的各主机(网络和主机共同编址,例如IP地址);2)路由器转发分组(路由选择协议、路由表和转发表)。
运输层需要考虑的主要问题:
1)进程之间基于网络的通信(进程的标识,例如端口号);2)出现传输差错如何处理(可靠传输和不可靠传输)。
应用层需要考虑的问题:
1)通过应用进程间的交互来完成特定的网络应用;2)进行会话管理和数据表示。
计算机网络体系结构分层思想举例
主机属于网络N1,Web服务器属于网络N2,N1和N2通过路由器互连。
用户在主机中使用浏览器访问Web服务器的简化版过程如下:
- 用户在浏览器地址栏中输入Web服务器的域名。
- 主机向Web服务器发送一个请求报文。
- Web服务器收到请求报文后,执行相应的操作,然后给主机发送响应报文。
- 主机收到响应报文后,由浏览器负责解析和染显示。
主机对数据包的处理过程
- 应用层
根据HTTP协议的规定,构建一个HTTP请求报文,用来请求Web服务器执行相应的操作。应用层将构建好的HTTP请求报文向下交付给运输层。
- 运输层
给HTTP请求报文添加一个TCP首部,将其封装成TCP报文段。TCP首部的主要作用是区分应用进程和实现可靠传输。运输层将封装好的TCP报文段向下交付给网络层。
- 网络层
为TCP报文段添加一个IP首部,将其封装成IP数据报。IP首部的主要作用是IP寻址和路由。网络层将封装好的IP数据报向下交付给数据链路层。
- 数据链路层
为IP数据报添加一个首部和一个尾部,将其封装成帧。帧首部和尾部的主要作用是MAC寻址和帧校验。数据链路层将封装好的帧向下交付给物理层。
- 物理层
并不认识顿的结构,仅仅将其看作比特流,以便将比特流转换成相应的电信号进行发送。对于以太网,物理层还会在比特流前添加前导码,目的是使接收方的时钟同步,并做好接收准备。
路由器对数据包的处理过程
- 接收口的物理层:将收到的电信号转换成比特流,并去掉前导码,然后将帧向上交付给数据链路层。
- 接收口的数据链路层:去掉帧的首部和尾部后,将IP数据报向上交付给网络层。
- 网络层:网络层从IP数据报的首部中提取出目的IP地址,根据的IP地址查找自已的转发表,以便决定从哪个接口转发该IP数据报。与此同时,还要对首部中的某些字段值(例如生存时间TTL字段的值)进行相应的修改,然后将该IP数据报向下交付给数据链路层。
- 转发口的数据链路层:为IP数据报添加一个首部和一个尾部,将其封装成帧,然后将帧向下交付给物理层。
- 转发口的物理层:将帧看作比特流,给其添加前导码后转变成相应的电信号发送出去。
Web服务器对数据包的处理过程
Web服务器收到数据包后,按网络体系结构自下而上的顺序对其进行解封,解封出HTTP请求报文。
Web服务器给主机发送HTTP响应报文的过程
Web服务器的应用层收到HTTP请求报文后执行相应的操作,然后给主机发送包含有浏览器请求内容的HTTP响应报文。
与浏览器发送HTTP请求报文的过程类似,HTTP响应报文需要在Web服务器层层封装后才能发送。
数据包经过路由器的转发到达主机。主机对收到的数据包按网络体系结构自下而上的顺序逐层解封,解封出HTTP响应报文。
计算机网络体系结构中的专用术语
实体
实体是指任何可以发送或接收信息的硬件或软件进程。
不同机器上的同一层称为对等层,通信双方相同层次中的实体称为对等实体。
协议
协议是控制两个对等实体在"水平方向"进行"逻辑通信"的规则的集合。
协议的三要素;
- 语法,定义所交换信息的格式
- 语义,定义通信双方所要完成的操作
- 同步,定义通信双发的时序关系
接口
在同一系统中相邻两层的实体交换信息的逻辑接口成为服务访问点SAP,用于区分不同的服务类型。
帧的"类型"字段、IP数据报的"协议"字段、TCP报文段或UDP用户数据报"端口号"字段都是SAP、应用层的服务访问点为"用户接口"。
###服务
协议是"水平"的,服务是"垂直"的。
实体看得见下层提供的服务,但是并不知道实现该服务的具体协议。下层的协议对上层是"透明"的。
注 :并非在一层内完成的全部功能都成为服务,只有那些能被高一层实体看得见的功能称为服务。
上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元(PDU):对等层次之间传送的数据包,第n层的PDU记为n-PUD,分为数据和控制信息两部分。
服务数据单元(SDU):同一系统内层与层之间交换的数据包。
协议控制信息(PCI):控制协议操作的信息。
当在各层之间传输数据(发送)时,将从第n+1层收到的PDU作为第n层的SDU,加上第n层的PCI,就封装成了第n层的PDU,交给第n-1层后作为SDU发送,接收方接收时做相反的处理。