计算机网络原理
概述
计算机网络(简称网络)由若干节点和连接这些节点的链路组成,网络把许多计算机连接在一起,互连网则把许多网络通过一些路由器连接在一起。
互连网和互联网
Internet和internet是常见的与计算机网络相关的名词,但意义相差很大。
- internet:互连网,泛指由多个计算机网络互联而成的计算机网络;
- Internet:互联网,指当前全球最大的、开发的、由众多网络相互连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则,其前身是美国的APRANET。
互联网的组成
互联网的拓扑结构从工作方式上看,可以分为边缘部分和核心部分。处于互联网边缘的部分就是连接在互联网上的所有的主机,又称为端系统。核心部分由大量网络和连接这些网络的路由器组成,为边缘部分提供服务。
端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。在C/S中,客户是服务请求方,服务器是服务提供方。P2P指两台主机在通信时,并不区分哪一个是服务请求方和哪一个是服务提供方,只要运行了P2P软件,就可以进行平等的对等连接通信。
核心部分的核心是路由器,可以实现分组交换以转发收到的分组。从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。在历史发展中,共出现了三种交换技术。
- 电路交换:整个报文(发送的整块数据)的比特流连续地从源点直达终点,在传输前建立一条专用的物理通信信道;
- 报文交换:整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点;
- 分组交换:单个分组(由报文划分的小的等长数据段和存储必要控制信息的首部组成)传送到相邻节点,存储下来后查找转发表,转发到下一个节点。分组交换提高了信道的利用率,但存储转发时的排队会造成一定的时延。分组必须携带的控制信息也造成了一定的开销。
计算机网络的性能指标
- 速率:数据的传送效率,单位:bps
- 带宽(此处为时域中的概念):网络中某通道传送数据的能力,表示单位时间内网络的某信道所能通过的最高数据率,单位:bps
- 吞吐量:单位时间内通过某个网络的实际数据量
- 时延:数据从网络(或链路)的一端传送到另一端所需的时间,时延=发送时延+传播时延+处理时延+排队时延
- 发送时延:主机或路由器发送数据帧所需要的时间
- 传播时延:电磁波在信道中传播一定的距离需要花费的时间
- 处理时延:主机或路由器收到分组时进行处理所花费的时间,如分析首部、提取数据、差错检验、查找转发表等
- 排队时延:分组在路由器的输入队列和输出队列中的等待时间,排队时延的长短往往取决于网络当时的通信量
- 时延带宽积:传播时延×带宽
- 往返时间(RTT):确认报文返回发送方所需的时间
- 利用率:信道利用率越大,网络时延反而会增加
计算机网络体系结构
网络协议:为进行网络中的数据交换而制定的规则、标准或约定;
体系结构:计算机网络的各层及其协议的集合。
【注】
- 服务是垂直的,协议是水平的;
- 下面的协议对上面的实体是透明的。
五层协议
- 应用层:对应七层协议中的会话层、表示层和应用层,通过一台主机内进程之间的交互来完成特定网络应用。其包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议;
- 运输层:负责向两台主机中进程之间的通信提供通用的数据传输服务,包括TCP(传输控制协议)、UDP(用户数据报协议)两种协议;
- 网络层:为分组交换网上的不同主机提供通信服务;
- 数据链路层:将源自物理层的数据可靠地传输到相邻节点的目标机网络层;
- 物理层:完成原始数据比特流在物理介质上的传输。
五层协议的体系结构中的各层 | 数据传输单位 |
---|---|
应用层 | 报文 |
运输层 | 报文段(TCP)、用户数据报(UDP) |
网络层 | 分组/包/数据报 |
数据链路层 | 帧 |
物理层 | 比特 |
物理层
基带调制的四种编码方式
- 不归零制:正电平代表1,负电平代表0;
- 归零制:正脉冲代表1,负脉冲代表0;
- 曼彻斯特编码:遇不同则变换;
- 差分曼彻斯特编码:遇“1”变换。
通信的双方信息交互的方式
- 单工:只能有一个方向的通信,而没有反方向的交互,如传统电视;
- 半双工:通信的双方都可以发送信息,也可以接收信息,但不能在同一时间发送信息,如对讲机;
- 全双工(双工):通信的双方可以同时发送和接收信息。
香农公式
设信道最大数据传输速率为 bps,信道带宽为 Hz,信道中信号噪声功率比为,则有
因此,提高数据传输速率的方法有三种:
- 选用高带宽传输介质
- 增大信号噪声比
- 改进编码方案以优化基频(让每一个码元携带更多比特的信息量)
传输介质
- 电磁波在光纤中的传输速度:
- 双绞线使用双绞的目的:减少相邻导线之间的电磁干扰(如串音干扰等)
- 同轴电缆
- 无线电
信道复用技术
复用是指允许用户使用一个共享信道进行通信。信道复用包含频分复用、时分复用和码分复用等。当码分复用CDM (Code Division Multiplexing) 信道为多个不同地址的用户所共享时,就称为码分多址(CDMA)。
graph TD;
信道复用Multiplexing-->频分复用FDM;
信道复用Multiplexing-->时分复用TDM;
信道复用Multiplexing-->码分复用CDM;
码分多址的基本规则:
- 正交:向量和的规格化内积等于0;
- 任何一个码片向量和该码片向量自己的规格化内积都是1;
- 一个码片向量和该码片反码的向量的规格化内积值是(–1)。
数据链路层
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
三个基本问题:封装成帧、透明传输、差错检测。
典例:适配器(网卡)
封装成帧
网络层的IP数据报传送到数据链路层称为帧的数据部分,在帧的数据部分的前面和后面分别添上首部和尾部,构成一个完整的帧。首部和尾部的一个重要作用是帧定界(确定帧的界限)。
有多种链路层协议,每种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU。
透明传输
用字节填充法解决,具体方法:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B,二进制是00011011),而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。
差错检测
目前在数据链路层广泛使用了循环冗余校验CRC检错技术,CRC校验可以做到对帧的无差错接受,即凡是接收端数据链路层接受的帧,都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。(注:在数据后面添加上的冗余码称为帧检验序列FCS)
CRC检验能够实现无比特差错的传输,但这还不是可靠传输。除了比特差错,还有帧丢失、帧重复、帧失序等传输差错。在过去,常使用可靠传输的高级数据链路控制HDLC(High-level Data Link Control)协议来保证可靠传输。
现如今,对于通信质量良好的有线传输链路,数据链路层不使用确认和重传机制,如果数据链路层出现了差错并且需要进行改正,那么改正差错的任务由上层协议(如TCP协议)来完成。
对于通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,数据链路层向上提供可靠的服务。
PPP协议
PPP是面向字节的,所有PPP帧的长度都是整数字节。
点对点协议PPP是目前使用的最广泛的数据链路层协议,PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议。
标志字段为0X7E,即01111110。地址字段和控制字段无具体含义。协议字段为0x0021时,信息字段便是IP数据报;协议字段为0x8021时,信息字段是网络控制数据;协议字段为0xC021时,信息字段是PPP链路控制数据;协议字段为0xC023时,信息字段是鉴别数据。
PPP协议保障透明传输
- 当PPP用在异步传输时,使用字节填充法。
- 当 PPP 用在同步传输链路时,采用零比特填充法。在信息字段中,只要发现有5个连续的1,就立即填入一个0,这样信息字段中就不会出现6个连续的1,防止被误认为是标志字段F。