计算机网络(Computer Network)相关内容。本篇内容多且杂,请仔细阅读。
相关阅读:计算机公共基础知识(3):计算机网络
1 计算机网络体系结构
| OSI | TCP/IP | 硬件 | 协议 |
|---|---|---|---|
| 应用层 | 应用层 | / | HTTP、Telnet、FTP、TFTP、DNS、SMTP |
| 表示层 | |||
| 会话层 | |||
| 传输层 | 传输层 | 四层交换机、四层路由器 | TCP、UDP |
| 网络层 | 网络层 | 路由器、三层交换机 | IP、ICMP、RIP、IGMP |
| 数据链路层 | 网络接口层 | 网卡、网桥、以太网交换机 | ARP、RARP、IEEE802.3、PPP、CSMA/CD |
| 物理层 | 明线、电缆、光纤、中继器等 | FE自协商、Manchester、MLT-3、4A、PAMS |
1.1 网络的主要功能
计算机网络主要有如下几点功能:
- 硬件资源共享:可以在全网范围内共享昂贵设备来处理资源、存储资源、输入输出资源等,使用户节省投资,亦便于集中管理和均衡分担负荷。
- 软件资源共享:允许互联网上的用户远程访问各类大弄数据库,可以得到网络文件传送服务、远地进程管理服务和远程文件访问服务,从而避免软件研制上的重复劳动以及数据资源的重复存贮,也便于集中管理。
- 用户间信息交换:计算机网络为分布在各地的用户提供了强有力的通信手段。用户可以通过计算机网络传送电子邮件、发布新闻消息和进行电子商务活动。
- 分布式处理:当计算机网络中某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。
1.2 主机间的通信方式
根据对象,可以将主机间的通信方式分为以下两类:
- 客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
- 对等(P2P):不区分客户和服务器。
三种常见通信技术对比:
- 电路交换:整个报文的比特流从源点连续地直达终点,如同在管道中传输。包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
- 报文交换:将整个报文转发到相邻结点全部存储,查找转发表后再转发到下一个结点。属于存储-转发类型。
- 分组交换:将报文分组转发到相邻结点,查找转发表后再转发到下一个结点。亦属于存储-转发类型。

1.3 网络的性能指标
计算机网络的主要性能指标如下:
- 带宽(Bandwidth):本意表示通信线路允许通过的信号频带范围,但在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据率”的同义词,单位为比特/秒(
\text{b/s})。 - 时延(Delay):
总时延 = 排队时延 + 处理时延 + 传输时延 + 传播时延- 排队时延:分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
- 处理时延:主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
- 传输时延(发送时延):结点将分组所有比特推向链路所需的时间。
- 传播时延:电磁波在信道中传播所需花费的时间,电磁波传播的速度接近光速。
- 时延带宽积:指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为单位的链路长度,即
时延带宽积 = 传播时延 * 信道带宽。
1.4 网络提供的服务
计算机网络提供的服务,大致可按以下三种方式分类:
- 面向连接服务与无连接服务:
- 在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可分为连接建立、数据传输、连接释放三个阶段。TCP是一种面向连接服务的协议。
- 在无连接服务中,通信前双方无需先建立连接,需要发送数据时可直接发送,对于每个带有目的地址的包(报文分组),由系统选定线路进行传输。这是一种不可靠的服务,常被描述为尽最大努力交付(Best-Effort-Delivery),它并不保证通信的可靠性。IP、UDP均为无连接服务的协议。
- 可靠服务和不可靠服务:
- 可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
- 不可靠服务是指网络仅能尽量正确、可靠地传送,不保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。对于提供不可靠服务的网络,其网络的正确性、可靠性需由应用或用户来保障。例如用户收到信息后需判断信息的正确性,若不正确,则用户将出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。
- 有应答服务和无应答服务:
- 有应答服务是指接收方收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。文件传输服务是一种有应答服务。
- 无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于WWW服务,客户端收到服务器发送的页面文件后不给出应答。
1.5 ISO/OSI和TCP/IP模型
| OSI | TCP/IP | 硬件 | 协议 |
|---|---|---|---|
| 应用层 | 应用层 | / | HTTP、Telnet、FTP、TFTP、DNS、SMTP |
| 表示层 | |||
| 会话层 | |||
| 传输层 | 传输层 | 四层交换机、四层路由器 | TCP、UDP |
| 网络层 | 网络层 | 路由器、三层交换机 | IP、ICMP、RIP、IGMP |
| 数据链路层 | 网络接口层 | 网卡、网桥、以太网交换机 | ARP、RARP、IEEE802.3、PPP、CSMA/CD |
| 物理层 | 明线、电缆、光纤、中继器等 | FE自协商、Manchester、MLT-3、4A、PAMS |
五层协议(从上至下):
- 应用层:为特定应用程序提供数据传输服务,例如HTTP、DNS等协议。数据单位为报文。
- 传输层:为进程提供通用数据传输服务(端到端)。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:
- 传输控制协议(TCP):提供面向连接、可靠的数据传输服务,数据单位为报文段。TCP主要提供完整性服务(流量控制、差错控制、数据传输管理)。
- 用户数据报协议(UDP):提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。UDP主要提供及时性服务(服务质量)。
- 网络层:为主机提供数据传输服务(注意传输层协议是为主机中的进程提供数据传输服务)。网络层把从传输层传下来的报文段或用户数据报封装成分组
- 功能:流量控制、拥塞控制、差错控制、网际互联
- 数据链路层:主机之间存在很多链路,链路层协议为同一链路的主机提供数据传输服务,把从网络层传下来的分组封装成帧。
- 功能:封装成帧、差错控制、流量控制、传输管理
- 物理层:考虑如何在传输媒体上传输数据比特流,与具体的传输媒体无关。作用为尽可能屏蔽传输媒体和通信手段的差异,使数据链路层不会感觉这些差异。
五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。OSI七层模型中表示层和会话层的用途如下:
- 表示层:进行数据压缩、加密以及数据描述,使得应用程序不必关心在各台主机中数据内部格式不同的问题。
- 会话层:建立及管理会话。
TCP/IP模型只有4层,相当于五层协议中数据链路层和物理层合并为网络接口层。TCP/IP体系结构不严格遵循OSI分层概念,应用层可能会直接使用IP层(网络层)或网络接口层。
1.6 端到端和点到点通信
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务,而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信,它只提供一台机體到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作均由传输层来完成。
端到端通信建立在点到点通信的基础上,由一系列点到点通信信道构成,是比点到点通信更高一级的通信方式,用于完成应用程序(进程)之间的通信。“端”指的是用户程序的端口,量口号标识了应用层中不同的进程。
2 物理层
传输介质:
- 无线:无线电波、微波、红外线和激光
- 有线:双绞线、同轴电缆、光纤
设备:
- 中继器:将信号整形并放大再转发出去,消除信号的失真和衰减问题,具有5-4-3规则。
- 集线器:实质上是一个多端口中维器,对信号进行放大后发到其他所有端口。
协议:FE自协商、Manchester、MLT-3、4A、PAMS
2.1 通信基础
信道:
- 单工:只有一个方向的通信,没有反方向的交互。
- 半双工:通信双方都可以发送、接收信息,但不能同时发送和接收信息。
- 全双工:通信双方可以同时发送、接收信息。
两个决定传输率(\text{bps})的核心定理,其中W为信道带宽(\text{Hz}),V为每个码元的离散电平数(即调制阶数),S/N为信噪比(\text{dB}):
- 奈氏准则:理想低通信道下的极限数据传输率
C=2W\log_2 V, - 香农定理:信道的极限数据传输速率
C=W\log_2 (1+S/N)
调制与编码:
- 调制:把数据变换为模拟信号的过程。
- 编码:把数据变换为数字信号的过程。
- 数字数据 → 数字信号:非归零码、曼彻斯特编码、差分曼彻斯特编码等
- 数字数据 → 模拟信号:幅移键控、频移键控、相移键控、正交振幅调制
- 模拟数据 → 数字信号:①抽样;②量化;③编码。
- 模拟数据 → 模拟信号:频分复用技术等
传输方式(另见第1章“主机间的通信方式”):
- 电路交换:两结点之间建立一条专用的物理通信路径,传输期间一直独占。
- 报文交换:无须建立专门连接,报文携带有目标地址等信息,采用存储转发方式。
- 分组交换:把报文分割成小的数据块,加上必要的控制信息进行传输。主要细分为两种方式——
- 数据报(Datagram) :分组之间可能存在不同路径,各个分组分别转发。
- 虛电路(Virtual Circuit,VC):在发送方和接收方建立一条逻辑上相连的處电路,分组沿着虚电路传输。
2.2 同步和异步通信
在计算机网络中,同步(Synchronous)的含义很广泛,没有统一的定义。例如,协议的三要素之一就是“同步”;在网络编程中常提到的“同步”则主要指某函数的执行方式,即函数调用者需等待函数执行完才能进入下一步。异步(Asynchronous)可简单理解为”非同步”。
在数据通信中,同步通信与异步通信区别较大,两者对比如下:
- 同步通信:通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。
- 主要有两种同步方式:
- 全网同步:通过一个非常精确的主时钟对全网所有结点上的时钟进行同步。
- 准同步:各结点的时钟之间允许有微小误差,然后采用其他措施实现同步传输。
- 同步通信数据率较高,但实现的代价也较高。
- 主要有两种同步方式:
- 异步通信:发送字符时,所发送的字符之间的时间间隔可以是任意的,但接收端必须时刻做好接收的准备。发送端可在任意时刻开始发送字符,因此必须在每个字符的开始和结束位置添加标志,即开始位和停止位,以使接收端能正确地接收每个字符。
- 异步通信亦可以帧作为发送的单位,此时帧的首部和尾部必须设有一些特殊的比特组合,使得接收端能找出一帧的开始(即帧定界)。
- 异步通信的通信设备简单、便宜,但传输效率较低(因为标志的开销所占比例较大)。
2.3 多路复用技术
介质访问常使用信道划分的多路复用技术(Multiplexing Technology),常见的有如下几种:
- 频分复用(FDM):给每个信号分配唯一的载波频率,并通过单一媒体来传输多个独立信号。
- 时分复用(TDM):把多个信号复用到单个硬件传输信道,允许每个信号在一个很短的时间内使用信道,接着让下一个信号使用。
- 波分复用(WDM):光的频分复用。用一根光纤同时传输多个频率很接近的光载波信号。
- 码分复用(CDM):用一组包含互相正交的码字的码组携带多路信号。各用户可以在同样的时间内用同样的频带进行通信,且由于使用经过特殊挑选的不同码型,各用户之间不会造成干扰,因此这种系统发送的信号有较强的抗干扰能力。
3 数据链路层
功能:为网络层提供服务、链路管理、帧定界、帧同步与透明传输、流量控制和差错控制
组帧:
- 字符计数法:在帧头部使用一个计数字段来标明帧内字符数。
- 首尾定界法:使用特定字符或比特模式定结帧的开始和结束
- 字符填充:在数据中的特殊字符前用转义字符填充。
- 比特填充:数据区每遇到连续5个
1就填充一个。
差错控制(详见计组篇):检错编码(奇偶校验码、循环冗余码)、糾错编码(海明码)
介质访问:信道划分(见前述)、随机访问(见后述)、轮询访问(令脾传递协议,只有得到令牌的机器才能发送数据,其他必须等待)
局城网:在一个较小地理范图内,将各种计算机等设备通过双绞线等介质连接。
设备:网卡、网桥、以太网交换机
3.1 流量控制
由于接收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,若此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及接收的帧会被后面不断发送的帧“淹没",造成帧的丢失而出错。
因此,流量控制本质上就是限制发送方的数据流量,使其发送速率不超过接收方的接收处理能力。该过程需借助相应反馈机制,让发送方实时掌握接收方的数据处理状态,即需制定相应规则,明确发送方继续发送下一帧数据或暂停发送的判定条件,待接收方反馈信息后,再恢复数据发送。
流量控制的常见方式:
- 停止-等待(发送窗口大小=1,接受窗口大小=1):发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。
- 滑动窗口:在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
- 后退N帧协议(GBN)(发送窗口大小>1,接收窗口大小=1):在后退
N帧模式ARQ中,发送方无须在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N个帧。换句话说,接收方只允许按顺序接收帧。(接收窗口大小=1则按序接收)- 后退N帧协议一方面因连续发送数据帧而提高了信道的利用率,另一方面在重传时又必须把原来已传送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧出了错),这种做法又使传送效率降低。由此可见,若信道的传输质量很差导致误码率较大时,后退N帧协议不一定优于停止-等待协议。
- 选择重传协议(SR)(发送窗口大小>1,接收窗口大小>1):为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传ARQ协议。
- 在选择重传协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传。另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传。
3.2 可靠传输机制
WIP
3.3 随机访问协议
WIP
3.4 广域网协议
WIP
3.5 网络接口层的设备
WIP