一、概述
(一)计算机网络在信息时代的作用
计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施
计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分
(二)因特网概述
1.网络、互连网(互联网)、和因特网
- 网络:由若干节点node和连接这些节点的链路组成。
- 互连网(互联网):多个网络通过路由器互连起来,这样就构成了一个覆盖范围更,大的网络,即互连网 (互联网)。因此,互联网又称为“网络的网络(Network of Networks)“。
- 因特网:因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
2.因特网发展的三个阶段
因特网服务提供者(Internet Service Provider)
普通用户通过ISP接入互联网。ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何 机构和个人只需缴纳费用,就可从ISP的得到所需要的IP地址。 因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网。
中国的三大ISP:中国移动、中国联通、中国电信
3.因特网的标准化工作
4.因特网的组成
(1)边缘部分:
- 由所有连接在因特网上的主机组成(台式电脑,大型服务器,笔记本电脑,平板,智能手机等)。 这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
(2)核心部分:
- 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交 换)。
补充:
端系统:处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统 (end system)。“主机 A 和主机 B 进行通信”实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进 行通信”。即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。简称为“计算机之间通信”。
端系统之间的通方式可分为两大类:C/S方式、P2P方式。
(1)客户-服务器方式:
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程;C/S所描述的是进程之间服务和被服务的关系,客户是服务的请求方,服务器是服务的提供方。
(2)对等方式:
指两个主机在通信时并不区分哪个是服务请求方和服务提供方;只要两个主机都运行了对等连接软件,它们就可以进行平等的、对等的连接通信;双方都可以下载对方已经储存在硬盘中的共享文档。
(三)三种交换方式
1.电路交换
- 电话交换机接通电话线的交换方式称为电路交换。从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
- 电路交换的三个步骤:
- 建立连接(分配通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
2.分组交换(Packet Switching)
- 报文:要发送消息的整块数据。在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,在每一个数据段前面。加上 一些由必要的控制信息组成的首部后,就构成一个分组,也可简称为“包”,相应地,首部也可称 为“包头”。
- 首部包含了分组的目的地址分组从源主机到目的主机,可走不同的路径。
- 在路由器中的输入和输出端口之间没有直接连线。 路由器处理分组的过程是:
- 把收到的分组先放入缓存(暂时存储);
- 查找转发表,找出到某个目的地址应从哪个端口转发;
- 把分组送到适当的端口转发出去。
3.报文交换(Message Switching)
报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需 要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。
(1)三种交换方式的对比
假设A,B,C,D是分组传输路径所要经过的4个结点交换机,纵坐标为时间。
电路交换
- 通信之前需要首先建立连接;使用已经建立好的连接进行数据传送;数据传送完成后需要释放连接,已归还之前建立连接所占用的通信线路资源。
- 一旦建立连接,中间的各节点交换机就是直通形式的,比特流可以直达终点。
报文交换
- 可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后 进行查表转发,转发到下一个结点交换机。
- 整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间。
分组交换
- 可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。
- 构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延, 还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
(四)计算机网络的定义和分类
1.定义
计算机网络的精确定义并未统一
计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合。
互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用;
集合:是指至少需要两台计算机;
计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬件(一定包含有中央处理机CPU)互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)
2.分类
(1)按交换技术分类:
- 电路交换
- 报文交换
- 分组交换
(2)按使用者分类:
- 公用网
- 专用网
(3)按传输介质分类:
- 有线网络
- 无线网络
(4)按覆盖范围分类:
-
广域网(Wide Area Network):作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
-
城域网MAN:作用范围一般是一个城市,可跨越几个街区甚至整个城市。
-
局域网LAN:一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)
-
个域网PAN:就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。
(5)按拓扑结构分类:
- 总线型网络
- 星型网络
- 环型网络
- 网状型网络
(五)计算机网络的性能指标
1.速率
- 比特:数据量的单位:8bit=1Byte B\KB\ MB\ GB\ TB 2的10次方
- 速率:比特率或数据率。bit/s (bps,b/s) kb/s Mb/d Gb/s Tb/s 10的三次方
2.带宽
带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。(带宽是最高数据速率)。
带宽的两种表述之间有着密切联系。一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。
3.吞吐量
- 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
- 吞吐量被经常用于对现实世界中网络的一种测量以便知道实际上到底有多少数据量能够通过网络。
- 吞吐量受网络的带宽或额定速率的限制。
带宽1 Gb/s的以太网,代表其额定速率是1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。 因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。
注意:吞吐量还可以用每秒传送的字节数或帧数表示。
4.时延
时延时指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络时延由几部分组成:
(1)发送时延
主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比 特发送完毕所需的时间。
(2)传播时延
电磁波在信道中传播一定的距离需要花费的时间。
(3)处理时延
主机或路由器在收到分组时要花费一定时间进行处理。
(4)排队时延
分组在进过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。有时会把排队时延看成处理时延一部分。
总时延=发送时延+传播时延+处理时延(处理时延+排队时延)
5.时延带宽积
时延带宽积=传播时延*带宽
- 若发送端连续发送数据,则在所发送的第一个bit即将到达终点时,发送端就已经发送了时延带宽积个比特。
- 链路的时延带宽积又称为以比特为单位的链路长度。
6.往返时间
互联网上的信息不仅仅单方向传输而是双向交互的。因此,我们有时很需要知道双向交互一次所需的时间。
- 往返时间RTT(Round-Trip Time)也是一个重要的性能指标。
7.利用率
利用率有信道利用率和网络利用率两种。
- 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。
- 网络利用率:全网络的信道利用率的加权平均。
8.丢包率
丢包率:即分组丢失率,是指在一定时间范围内传输过程中丢失的分组数量与总分组数量的比率。
丢包率具体可分为接口丢包率、节点丢包率、链路丢包率、路径丢包率、网络丢包率等。
- 分组丢失主要有两种情况:
分组在传输过程中出现误码,被结点丢弃;
分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥堵。
- 因此,丢包率反映了网络的拥塞情况:
无拥堵时丢包率为0
轻度拥堵时路径丢包率为1%——4%
严重拥堵时丢包率为5%——15%
(六)计算机网络体系结构
1.常见的计算机网络体系结构
(1)OSI体系结构
(2)TCP/IP体系结构
如今用的最多的是TCP/IP体系结构,现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用 OSI标准。
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,并去掉了会话层和表示层。TCP/IP在网络层使用的协议是IP协议,IP协议的意思是网际协议,因此TCP/IP体系结构的网络层称为网际层。
在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族。 而用于网络互连的路由器中,也带有符合TCP/IP体系结构标准的TCP/IP协议族。只不过路由器一般只包含网络接口层和网际层。
- 网络接口层:并没有规定具体的内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的WiFi接口等。
- **网际层:**它的核心协议是IP协议。
- **运输层:**TCP和UDP协议
- **应用层:**包含大量应用层协议,如HTTPS,DNS等。
IP协议(网际层)可以将不同的网络接口(网络接口层)进行互连,并向其上的TCP协议和UDP协议(运输层)提供网络互连服务。
而TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠的传输服务。
而UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠的传输服务。
TCP/IP体系结构中最重要的是IP协议和TCP协议,因此用TCP和IP来表示整个协议大家族。
教学时把TCP/IP体系结构的网络接口层分成了物理层和数据链路层。
2.计算机网络体系结构分层的必要性
计算机网络是个非常复杂的系统。分层可以将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。下面,从简单到复杂的顺序来看看实现计算机网络面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。
(1)物理层问题
采用怎样的传输媒介?
采用怎样的物理接口?
使用怎样的信号表示比特0或1?
(2)数据链路层问题
如何标识网络中的各主机(主机编址问题,例如MAC地址)?
如何从信号所表示的一连串比特流中区分出地址和数据?
如何协调各主机争用总线?
(3)网络层问题
如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)?
路由器如何转发分组,如何进行路由选择?
(4)运输层问题
如何解决进程之间基于网络的通信问题?
出现传输错误时,如何处理?
如何标识与网络通信相关的应用进程:一个分组到来,我们应该交给哪个进程处理呢?浏览器进程 还是QQ进程?
(5)应用层问题
通过应用进程间的交互来完成特定的网络应用。
应用层该用什么方法(应用层协议)去解析数据?
(6)总结
3.计算机网络体系结构分层思想举例
例子:主机的浏览器如何与web服务器进行通信?
解析:主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。
(1)发送方发送
第一步:
- 应用层按照HTTP协议的规定构建一个HTTP请求报文。
- 应用层将HTTP请求报文交付给运输层处理。
第二步:
- 运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段。
- TCP报文段的首部格式作用是区分应用进程以及实现可靠传输 。
- 运输层将TCP报文段交付给网络层处理。
第三步:
- 网络层给TCP报文段添加一个IP首部,使之成为IP数据报 。
- IP数据报的首部格式作用是使IP数据报可以在互联网传输,也就是被路由器转发。
- 网络层将IP数据报交付给数据链路层处理。
第四步:
- 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧 (图示右边为首部,左边为 尾部) 。
- 该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收。该尾部的作用是让目的主机检查所接收到的帧是否有误码。
- 数据链路层将帧交付给物理层。
第五步:
- 物理层先将帧看做是比特流,这里的网络N1假设是以太网,所以物理层还会给该比特流前 面添加前导码 。
- 前导码的作用是为了让目的主机做好接收帧的准备。
- 物理层将装有前导码的比特流变换成相应的信号发送给传输媒体。
第六步:
- 信号通过传输媒体到达路由器。
(2)路由器转发
在路由器中
- 物理层将信号变为比特流,然后去掉前导码后,将其交付给数据链路层。
- 数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际交付的是IP数据报
- 网络层解析IP数据报的首部,从中提取目的网络地址。
在路由器中
- 提取目的网络地址后查找自身路由表,确定转发端口,以便进行转发
- 网络层将IP数据报交付给数据链路层
- 数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧
- 数据链路层将帧交付给物理层
- 物理层先将帧看成比特流,这里的网络N2假设是以太网,所以物理层还会给该比特流添加前导码
- 物理层将装有前导码的比特流变换成相应的信号发送给传输媒体,信号通传输媒体到达web服务器。
(3)接收方接收
和发送方(主机)发送过程的封装正好是反着来
在web服务器上
- 物理层将信号变为比特流,然后去掉前导码后成为帧,交付给数据链路层
- 数据链路层将帧的首部和尾部去掉后成为IP数据报,将其交付给网络层
- 网络层将IP数据报的首部去掉后成为TCP报文段,将其交付给运输层
- 运输层将TCP报文段的首部去掉后成为HTTP请求报文,将其交付给应用层
- 应用层对HTTP请求报文进行解析,然后给主机发回响应报文
发回响应报文的步骤和之前过程类似
4.计算机网络体系结构中的专用术语
(1)实体
- 实体:任何可以发送或接收信息的硬件或软件进程。
- 对等实体:收发双方相同层次中的实体。
(2)协议
协议:控制两个对等实体进行逻辑通信的规则合集
协议三要素:
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
(3)服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下面一层所提供的服务。
协议是“水平的”,服务是“垂直的”。
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明的”。
- 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。(数据链路层的访问服务点为帧的”类型“字段。网络层的服务访问点为IP数据报首部中的”协议字段“。运输层的服务访问点为”端口号“。)
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
- 多个SDU可以合成一个PUD;一个SDU也可划分为几个PUD.
“水平的”,服务是“垂直的”。
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明的”。
- 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。(数据链路层的访问服务点为帧的”类型“字段。网络层的服务访问点为IP数据报首部中的”协议字段“。运输层的服务访问点为”端口号“。)
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
- 多个SDU可以合成一个PUD;一个SDU也可划分为几个PUD.