计算机网络——概述
因特网概述
网络、互连网(互联网)和因特网
网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)。因此,互联网是“网络的网络(Network of Networks)”。
因特网(Internet)是世界上最大的互连网络。连接在因特网上的计算机称为主机(host)。
internet 互联网 通用名词
Internet 因特网 专有名词
三种交换方式:电路交换、分组交换和报文交换
电路交换(Circuit Switching)
电话交换机接通电话线的方式称为电路交换。
从通信资源的分配角度来看交换(switching)就是按照某种方式动态地分配传输线路的资源。
电路交换的三个步骤:
- 建立连接(分配通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。因此计算机网络通常采用分组交换,而不是电路交换。
分组交换(Packet Switching)
类似快递派发。
将报文划分成若干等长的数据段,然后给各数据段添加首部(包含重要的控制信息)构成分组。
节点交换机(路由器)对分组进行存储转发。
发送方:构造分组、发送分组
路由器:缓存分组、转发分组
接收方:接收分组、还原报文
报文交换(Message Switching)
与分组交换类似,报文交换中的交换节点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换节点需要有较大的缓存空间。
报文交换主要用于早期的电报通信网,现在较少使用。通常被较先进的分组交换方式所取代。
三种交换方式对比
电路交换
优点
- 通信时延小
- 有序传输
- 没有冲突
- 适用范围广
- 实时性强
- 控制简单
缺点
- 建立连接时间长
- 线路独占,使用效率低
- 灵活性差
- 难以规格化
报文交换
优点
- 无需建立连接
- 动态分配线路
- 提高线路可靠性
- 提高线路利用率
- 提供多目标服务
缺点
- 引起了转发时延
- 需要较大存储缓存空间
- 需要传输额外的信息量
分组交换
优点
- 无需建立连接
- 线路利用率高
- 简化了存储管理
- 加速传输
- 减少出错概率和重发数据量
缺点
- 引起了转发时延
- 需要传输额外的信息量
- 对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程
计算机网络的定义和分类
计算机网络的定义
计算机网络的精确定义并未统一。
计算机网络的最简单定义是:一些互相连接的、自治的计算机的集合。
- 互连:计算机之间可以通过有线或无线的方式进行数据通信。
- 自治:独立的计算机,它有自己的硬件和软件,可以单独运行使用。
- 集合:指至少需要两台计算机。
计算机网络的较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传输数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
- 计算机网络并非专门用来传送数据,而是能够支持很多种应用(包括今后可能出现的各种应用)。
计算机网络的分类
按交换技术分类
- 电路交换网络
- 报文交换网络
- 分组交换网络
按使用者分类
- 公用网
- 专用网
按传输介质分类
- 有线网络
- 无线网络
按覆盖范围分类
- 广域网WAN(Wide Area Network)
- 城域网MAN(Metropolitan Area Network)
- 局域网LAN(Local Area Network)
- 个域网PAN(Personal Area Network)
按拓扑结构分类
- 总线型网络
- 星型网络
- 环型网络
- 网状型网络
计算机网络的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
常用的计算机网络的性能指标有以下 8 个:
- 速率
- 带宽
- 吞吐量
- 时延
- 时延带宽积
- 往返时间
- 利用率
- 丢包率
速率
比特:计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个 1 或 0。
常用数据量单位:
速率:连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率、
常用数据率单位:
带宽
带宽在模拟信号系统中的意义:信号所包含的各种不同频率成分所占占据的频率范围;
单位:Hz(kHz,MHz,GHz)
带宽在计算机网络中的意义:用来表示网路的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另外一点所能通过的“最高数据率”;
单位:b/s(Kb/s,Mb/s,Gb/s,Tb/s)
“带宽”的这两种表述之间有着密切的联系。一条通道线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。
吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制。
时延
网络时延由三部分构成:发送时延、传播时延、处理时延(路由)
电磁波传播速率:
- 自由空间:\(3 \times 10^8 \ m/s\)
- 铜线:\(2.3 \times 10^8 \ m/s\)
- 光纤:\(2 \times 10^8 \ m/s\)
处理时延一般不方便计算,通常忽略不计。
时延带宽积
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特;链路的时延带宽积又称为以比特为单位的链路长度。
往返时间
在许多情况下,因特网上的信息不仅仅单方面传输,而是双向交互,我们有时很需要知道双向交互一次所需的时间。因此,往返时间 RTT(Round-Trip Time)也是一个重要的性能指标。
利用率
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。
网络利用率:全网络的利用率的加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加;因此,信道利用率并非越高越好。
丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
分组丢失有两种情况:
- 分组在传输过程中出现误码,被结点丢弃;
- 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞。
计算机网络体系结构
常见的计算机网络体系结构
OSI 体系结构(法律上的国际标准)
7.应用层
6.表示层
5.会话层
4.运输层
3.网络层
2.数据链路层
1.物理层
TCP/IP 体系结构(事实上的国际标准)
4.应用层(HTTP ... SMTP、DNS ... RTP)
3.运输层(TCP、UDP)
2.网际层(IP)
1.网络接口层(网络接口1、网络接口2……网络接口n)
IP over everything
Everything over IP
原理体系结构(适于学习)
5.应用层
4.运输层
3.网络层
2.数据链路层
1.物理层
计算机网络体系结构分层的必要性
第一类问题
- 采用怎样的传输媒体(介质)
- 采用怎样的物理接口
- 使用怎样的信号表示比特 0 和 1
物理层解决此类问题
第二类问题
- 如何标识网络中的各主机(主机编址问题,例如 MAC 地址)
- 如何从信号所表示的一连串比特流中区分出地址和数据
- 如何协调各主机争用总线
数据链路层解决此类问题
第三类问题
- 如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如 IP 地址)
- 路由器如何转发分组,如何进行路由选择
网络层解决此类问题
第四类问题
- 如何解决进程之间基于网络的通信问题
- 出现传输错误时,如何处理
运输层解决此类问题
第五类问题
通过应用进程间的交互来完成特定的网络应用,如
- 支持万维网应用的 HTTP 协议
- 支持电子邮件的 SMTP 协议
- 支持文件传送的 FTP 协议
应用层解决此类问题
总结
5.应用层:解决通过应用进程的交互来实现特定网络应用的问题。
4.运输层:解决进程之间基于网络的通信问题。
3.网络层:解决分组在多个网络上传输(路由)的问题。
2.数据链路层:解决分组在一个网络(或一段链路)上传输的问题。
1.物理层:解决使用何种信号来传输比特的问题。
计算机网络体系结构分层思想举例
主机属于网络 N1,服务器属于网络 N2,网络通过路由器互连,使用主机的浏览器访问 Web 服务器。
此通信实际上是主机中的浏览器应用进程与 Web 服务器中的 Web 服务器应用进程之间基于网络的通信。
主机的处理过程:
应用层:应用层按 HTTP 协议的规定,构建一个 HTTP 请求报文。应用层将 HTTP 请求报文交付给运输层处理。
运输层:运输层给 HTTP 请求报文添加一个 TCP 首部(该首部的作用主要是为了区分应用进程,以及实现可靠传输),使之成为 TCP 报文段。运输层将 TCP 报文段交付给网络层处理。
网络层:网络层给 TCP 报文段添加一个 IP 首部(该首部的作用主要是为了使 IP 数据报可以在互联网上传输,也就是被路由器转发),使之称为 IP 数据报。网络层将 IP 数据报交付给数据链路层处理。
数据链路层:数据链路层给 IP 数据报添加一个首部(目的地址、源地址、类型
,该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收)和一个尾部(FCS
,尾部的作用是为了让目的主机检查所接收到的帧是否有误码),使之成为帧。数据链路层将帧交付给物理层。
物理层:物理层将帧看作是比特流。物理层还会给该比特流前面添加前导码(其作用是为了让目的主机做好接收帧的准备)。物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器。
路由器的处理过程:
物理层:物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层。这实际上交付的是帧。
数据链路层:数据链路层将帧的首部和尾部去掉后,将其交付给网络层。这实际上交付的是 IP 数据报。
网络层:网络层解析 IP 数据报的首部,从中提取中目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发。网络层将 IP 数据报交付给数据链路层。
数据链路层:数据链路层给 IP 数据报添加一个首部和一个尾部,使之成为帧。数据链路层将帧交付给物理层。
物理层:物理层将帧看作是比特流。物理层还会给该比特流前面添加前导码。物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达 Web 服务器。
Web 服务器的处理过程:
物理层:物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层。这实际上交付的是帧。
数据链路层:数据链路层将帧的首部和尾部去掉后,将其交付给网络层。这实际上交付的是 IP 数据报。
网络层:网络层将 IP 数据报的首部去掉后,将其交付给运输层。这实际上交付的是 TCP 报文段。
运输层:运输层将 TCP 报文段的首部去掉后,将其交付给应用层。这实际上交付的是 HTTP 请求报文。
应用层:应用层对 HTTP 请求报文进行解析,然后给主机发回 HTTP 相应报文。(与上述过程大体相同)
计算机网络体系结构中的专用术语
实体
实体:任何可发送或接收信息的硬件或软件进程。
对等实体:收发双方相同层次中的实体。
协议
协议:控制两个对等实体进行逻辑通信的规则的集合。
协议三要素:
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下面一层所提供的服务。
协议是“水平的”,服务是“垂直的”。
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是透明的。
服务访问点
在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
服务原语
上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元 PDU
对等层次之间传送的数据包称为该层的协议数据单元。
层次 | PDU |
---|---|
物理层 | 比特流(bit stream) |
数据链路层 | 帧(frame) |
网络层 | IP 数据报或分组(packet) |
运输层 | TCP 报文段(segment)或 UDP 用户数据报(datagram) |
应用层 | 报文(message) |
服务数据单元 SDU
同一系统内,层与层之间交换的数据包称为服务数据单元。
多个 SDU 可以合称为一个 PDU,一个 SDU 也可以划分为几个 PDU。