网络知识 娱乐 爆干3天整理出来,408考研计算机网络复习笔记(更新中)

爆干3天整理出来,408考研计算机网络复习笔记(更新中)

唤醒手腕考研计算机网络复习笔记:2022/4/11:课程学习(王道考研)

网络体系结构

概念、组成、功能和分类

组成部分:一个完整的计算机网络主要由硬件、软件、协议三大部分组成,缺一不可。硬件主要由主机(端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。

软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP程序、聊天程序等)。软件部分基本属于应用层,网络协议是计算机网络的核心。
在这里插入图片描述
计算机网络的定义:计算机网络是互连的、自治的计算机的集合。

①自治:是指互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。

②计算机:计算机设备。

③互连:是指利用通信链路链接相互独立的计算机系统。

工作方式:计算机网络(这里主要指Internet)可分为边缘部分和核心部分。边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。

功能组成:计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。

在这里插入图片描述
虽然网络类型的划分标准各有千秋,但是以地理范围划分是一种大多数人都认可的通用网络划分标准。按照此标准可以将各种网络类型划分为局域网城域网广域网互联网4种。

标准化工作及相关组织

Request for comments RFC

RFC要上升为因特网正式标准的四个阶段:

①因特网草案(Internet Draft)②建议标准:开启成为RFC文档(Porposed Standard)③因特网标准(Internet Standard)

标准化工作的相关组织

国际标准化组织 ISO:ISO参考模型、HDLC协议

国际电信联盟 ITU:制定通信规则

国际电气电子工程师协会 IEEE:学术机构、IEEE802系列标准、5G

Internet工程任务组 IETF:负责因特网相关标准的制定 RFC XXXX

速率相关的性能指标

速率

速率:即数据率或称为数据传输率或比特率,连接在计算机网络上的主机在数字信道上传送数据位数的速率。

速率单位换算:1 Tb / s = 103 Gb / s = 106 Mb / s = 109 kb / s = 1012 b / s

带宽

带宽:“带宽”原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)

计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
在这里插入图片描述
吞吐量

吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。吞吐量受网络的带宽或网络的额定速率的限制。

简单的讲,对于P2P系统而言,当主机A到主机B传送一个文件,任何时间瞬间的瞬时吞吐量都是主机B接收到该文件的速率(以bps计算)。如果文件由F比特组成,主机B接收到所有F比特用去T秒,则文件传送的平均吞吐量是F/T bps

什么是bps: “bits per second” 常用于表示数据机及网络通讯的传输速率。

例如GigabitEthernet端口: 5 minute input rate 38410000 bits/sec, 6344 packets/sec 382410000 bits/sec = 382.41Mbps

所以常说的快速以太网能达到百兆传输,其实实际传输文件大小只有10MB = 100Mb

注意:在计算传输速率时,直接用1000来换算(1 Mb = 1000 Kb = 1000,000 bit)

在这里插入图片描述
想象比特是流体,而链路是管道,那么吞吐量应该为min{ Rc ,Rs }。如上图所示,当Rc为2Mbps且Rs>Rc,无论Rs有多大,吞吐量都是2Mbps。同理,当有n个路由器的时候,吞吐量为min{R1,R2,···,Rn,Rn+1}

我们今天因特网对吞吐量的限制因素通常是接入网:如果R和Rs(服务器传输速率)、Rc(接入网传输速率)相近的话,会出现怎么样的情况呢?
在这里插入图片描述
这时候每个下载的瓶颈不再位于接入网中,而是位于核心中的共享链路了,该瓶颈仅能为每个下载提供1.5Mbps的吞吐量,因此每个下载的端到端吞吐量现在减少到1.5Mbps

时延、BDP、RRT、利用率

时延

时延:指一个报文或分组从网络的一端传送到另一端所耗费的时间,时延由节点处理时延、排队时延、发送时延、传播时延组成。

在这里插入图片描述
节点处理时延:

主机或路由器在收到分组后要花费一定的时间进行处理,比如分析首部,提取数据,差错检验,路由选择等。一般高速路由器的处理时延通常是微秒或更低的数量级。

排队时延:

排队时延很好理解,就是路由器或者交换机处理数据包排队所消耗的时间。一个特定分组的排队时延取决于先期到达的、正在排队等待向链路传输分组的数量。如果该队列是空的,并且当前没有其他分组在传输,则该分组的排队时延为0;另一方面,如果流量很大,并且许多其他分组也在等待传输,该排队时延将很大。实际的排队时延通常在毫秒到微秒级。

传输时延:

传输时延又被称为“发送时延”,是发送数据所需要的时间,也就是从网卡或者路由器队列递交网络链路所需要的时间。用L比特表示分组的长度,用R bps表示从路由器A到路由器B的链路传输速率,传输时延则是L/R。实际的发送时延通常在毫秒到微秒级。

传播时延:

传播时延是指在链路上传播数据所需要的时间。传播时延等于两台路由器之间的距离除以传播速率,即传播时延是D/S,其中D是两台路由器之间的距离,S是该链路的传播速率。实际传播时延在毫秒级。

更加细致的描述:发送时延(首次传输时延)、节点处理时延、排队时延、传播时延、处理时延(接收时延)

发送时延计算公式:Sending Delay 发送时延 = Data Length 数据长度 / Channel Bandwidth 信道带宽

传播时延计算公式:Transfering Delay 传播时延 = Channel Length 信道长度 / 电磁波在信道传播的速率

带宽时延积 BDP

带宽时延积:(Bandwidth-Delay Product ,BDP)即链路上的最大比特数,也称以比特为单位的链路长度。描述某段链路中的数据容量。

计算方法: Bandwidth - Delay Product = Delay * Bandwidth

发送缓冲区与带宽时延积的关系:

  • 如果发送缓冲区「超过」带宽时延积,超出的部分就没办法有效的网络传输,同时导致网络过载,容易丢包;

  • 如果发送缓冲区「小于」带宽时延积,就不能很好的发挥出网络的传输效率。

结论:发送缓冲区的大小最好是往带宽时延积靠近

例题:考虑两台主机 A 和主机 B 由一条带宽为 R bps、长度为 M 米的链路互连,信号传播速率为 V m/s。假设主机 A 从 t=0 时刻开始向主机 B 发送分组,分组长度为 L 比特,试求:(注:1 k = 103, 1 M = 106)

(1) 传播延迟(dp)

传播时延:dp = 信道长度(m) / 电磁波在信道上的传播速率(m/s) = M / V

(2) 传输延迟(dt)

传输延迟:dt = 数据帧长度(b) / 信道带宽(b/s) = L / R

(3) 若忽略结点处理延迟和排队延迟,求端到端延迟 de

端到端总延迟:de = 传播时延 + 传输延迟 = M / V + L / R

(4) 若 dp > dt,则 t = dt 时刻,分组的第一个比特在哪里?

dp > dt 意味着最早发送的信号没有到达目的主机之前,数据分组的最后一个比特已经发送出来了,所以分组的第一个比特在距离主机的 V * dt 米的链路上

(5) 若 V = 250000 km/s,L = 512 bit,R = 100 Mbps,则使带宽时延积刚好为一个分组长度(即 512 bit)的链路长度M是多少?

时延带宽积 = 传播时延 * 带宽 = M / V * R = 512,解之得 M = 1280 m

往返时延 RTT

往返时延:RTT ( Round-Trip Time ),从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。

往返延时(RTT)由三个部分决定:即链路的传播时间、末端系统的处理时间以及路由器的缓存中的排队和处理时间。其中,前面两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化。

RTT的变化在一定程度上反映了网络拥塞程度的变化。

结论:RTT越大,在收到确认之前,可以发送的数据越多。

利用率 Utilization Rate

信道利用率指出某信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道利用率是零。

假定A发送分组需要的时间为TD,分组确认时间为TA,往返时间为RTT。根据信道利用率的概念,我们可以得到如下信道利用率的计算方法:
在这里插入图片描述
经典例题:通信信道带宽为 1 Gb/s,端到端时延为 10 ms,TCP的发送窗口为 65535 字节,试问:可能达到的最大吞吐量和信道利用率?

发送时延 = 数据长度 / 信道带宽 = (655358 bit) / (1 Gb/s) = 0.52428 * 10-3 s = 0.52428 ms;

传播往返时延 = 2 * 10 = 20 ms (发送数据和接收确认)

故每发送每个窗口大小的流量,总时延 = 发送时延 + 传播往返时延 = 0.52428 + 20 = 20.52428 ms

每秒钟可以产生 1 s / 20.20.52428 ms = 1000 ms / 20.52428 ms 个窗口

最大数据吞吐量 = 655368 * (1000 / 20.52428) = 25544769 bit/s = 25.5 Mb/s

信道的利用率 = (25.5 Mb/s) / (1000 Mb/s) ≈ 2.55%

信道利用率,也叫信道的效率。对发送方而言,发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
在这里插入图片描述

分层结构、协议、接口、服务

发送文件前要完成的工作?

(1)发起通信的计算机必须将数据通信的通路进行激活。

(2)要告诉网络如何识别目的主机。

(3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。

(4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。

(5)确保差错和意外可以解决。

计算机网络体系分层结构

OSI 体系结构:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层

TCP / IP 体系结构:应用层,运输层(TCP或UDP),网际层(IP),网络接口层

五层协议体系结构:应用层,运输层,网络层,数据链路层,物理层

网络协议 Network protocol

网络协议(network protocol) ,简称为协议 ,是为进行网络中的数据交换而建立的规则、标准或约定 。

协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的“动作”(actions)。

网络协议至少包括三要素:

① 语法(用来规定信息格式)② 语义(用来说明通信双方应当怎么做)③ 时序(详细说明事件的先后顺序)

网际层协议:IP协议、ICMP协议、ARP协议、RARP协议

传输层协议:TCP协议、UDP协议

应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS

接口 (访问服务点SAP)

接口(访问服务点SAP):上层使用下层的服务的入口

例如:传输层和网络层的接口,逻辑上属于网络层。

服务 Service

服务:下层为相邻上层提供的功能调用(垂直)

下层为上层提供的功能调用(即原语)主要分为:Request、Indiction、Response、Confirmation

请求(Request) :由服务用户发往服务提供者,请求完成某项工作。
指示(Indication) :由服务提供者发往服务用户,指示用户做某件事情。
响应(Response) :由服务用户发往服务提供者,作为对指示的响应。
证实(Confirmation) :由服务提供者发往服务用户,作为对请求的证实。

注意:在一层内完成的全部功能并非都称之为服务,只有那些能够被高一层实体“看得见”的功能才能称为服务。

服务原语:上层使用下层所提供的服务必须与下层交换一些指令,这些指令在OSI中被称为服务原语。

OSI 7层网络互连模型

OSI(Open System Interconnect),即开放式系统互联。 一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在 1985 年研究的网络互连模型。

ISO 为了更好的使网络应用更为普及,推出了 OSI 参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。

OSI 定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO 开放互连系统参考模型。

在这里插入图片描述
(1) 物理层 (Physical Layer)

物理层是 OSI 参考模型的最低层,它利用传输介质为数据链路层提供物理连接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。

它关心的问题有:多少伏电压代表 1 ?多少伏电压代表 0 ?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。

(2) 数据链路层 (Data Link Layer)

数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。

数据帧中包含物理地址(又称 MAC 地址)、控制码、数据及校验码等信息。该层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路。

此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞。

(3) 网络层 (Network Layer)

网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。

另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。

(4) 传输层 (Transport Layer)

传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。

传输层传送的协议数据单元称为段或报文。

(5) 会话层 (Session Layer)

会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。

(6) 表示层 (Presentation Layer)

表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。

数据压缩和加密也是表示层可提供的转换功能之一。

(7) 应用层 (Application Layer)

应用层是 OSI 参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。

通信子网(数据通信)、资源子网(数据处理)

通信子网(数据通信):负责完成网络数据的传输,转发等通信处理任务。一方面,作为与资源子网的主机,终端链接的接口,将主机和终端连入网内;另一方面,作为通信子网中的分组存储转发节点,完成分组的接收、校验、存储、转发等功能,实现将源主机报文准确发送到目的主机的作用。

通信子网(数据通信):物理层、数据链路层、网络层、传输层

资源子网(数据处理):由主机系统,终端、终端控制器、联网外设、各种软件资源与信息资源组成。 资源子网实现全网的面向应用的数据处理和网络资源共享。

通信子网(数据通信):会话层、表示层、应用层

OSI 7层参考模型图解
在这里插入图片描述
OSI 7层参考模型的具体功能介绍
在这里插入图片描述

TCP / IP、5层网络架构

OSI 模型和 TCP / IP 模型异同比较?

OSI 模型和 TCP / IP 相同点

① OSI 参考模型与 TCP/IP 参考模型都采用了层次结构。

② 都能够提供面向连接和无连接两种通信服务机制。

OSI 模型和 TCP / IP 不同点

OSI 采用的七层模型; 
TCP / IP 是四层结构。

TCP / IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; 
OSI 参考模型对服务和协议做了明确的区分。

OSI 先有模型,后有协议规范,适合于描述各种网络;
TCP / IP 是先有协议集然后建立模型,不适用于非 TCP / IP 网络。

TCP / IP 一开始就提出面向连接和无连接服务;
而 OSI 一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准。

OSI 参考模型虽然被看好,但将网络划分为七层,实现起来较困难;
相反,TCP / IP 参考模型虽然有许多不尽人意的地方,但作为一种简化的分层结构还是比较成功的。

面向无连接和面向连接的最主要区别是什么?
在这里插入图片描述
其一:面向连接分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。而面向无连接没有这么多阶段,它直接进行数据传输。

其二:面向连接的通信具有数据的保序性, 而面向无连接的通信不能保证接收数据的顺序与发送数据的顺序一致。

为什么 TCP / IP 去除了表示层和会话层?

OSI 参考模型在提出时,他们的理想是非常好的,但实际上,由于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的。

例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,所以在后来的 TCP / IP 协议框架的设计中,便将表示层和会话层与应用层整合在一起,让整个过程更为清晰明了。

总结:会话层,表示层和应用层都是在应用程序内部实现的,应用程序之间无法实现代码的抽象共享,因此应用程序维度无法实现分层。

5层参考模型的功能介绍
在这里插入图片描述

5层网络架构(5层参考模型)封装与解封装过程
在这里插入图片描述

物理层

计算机网络体系结构中的物理层,就是要解决在各种传输媒体上传输比特0和1的问题。进而给数据链路层提供透明传输此特流的服务。

物理层基本概念介绍

物理层为了解决在各种传输媒体上传输比特0和1的问题,主要有以下四个任务:

机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。

电气特性:指明在接口电缆的各条线上出现的电压的范围。

功能特性:指明某条线上出现的某一电平的电压表示何种意义。

过程特性:指明对于不同功能的各种可能事件的出现顺序。
在这里插入图片描述

数据通信基础知识

数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)

数据通信的目的:传送消息

典型的数据通信模型图例:
在这里插入图片描述

数据:传送信息的实体,通常是有意义的符号序列。

信号:数据的电气 / 电磁的表现,是数据在传输过程中的存在形式。

	数字信号:代表消息的参数取值是离散的。
	模拟信号:代表消息的参数取值是连续的。

信源:产生和发送数据的源头。
信宿:接收数据的终点。
信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。

在这里插入图片描述

通信双方信息的交互方式:3种通信方式

单向通信(单工通信):只能有一个方向的通信而没有反方向的交互。(需要1条信道)

双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。(需要2条信道)

双向同时通信(全双工通信):通信的双方可以同时发送和接收信息。(需要2条信道)

基带信号(基本频带信号):来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。

两种数据的传输方式:串行传输(速度慢、费用低、适合远距离)、并行传输(速度快、费用高、适合近距离,如:计算机内部数据传输)

码元、波特、速率、带宽

什么是码元?

码元是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。

1码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表0状态,另一种代表1状态。

什么是波特?

数字信号由码元组成,码元携带一定量的信息。定义单位时间传输的码元数为码元速率,单位为码元/秒,又称为波特(Baud)。

由此可见,波特是一种单位,是码元传输速率(也称传码率)的单位,也可以理解成单位时间内载波调制状态变化的次数。

注意:“波特”(Baud)本身已是速率,所以不需要写成 Baud Rate(Rate 是赘字)。

单位“波特”本身就代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。

什么是速率?

速率也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。

码元传输速率:别名码元速率,波形速率,调制速率,符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或者信号变化次数),单位是波特。1波特表示数字通信系统每秒传输一个码元。码元速率和码元进制数无关。

信息传输速率:别名信息速率,比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特 / 秒(b/s)。

两者关系:若一个码元携带 n bit 的信息量,则 M Baud 的码元传输速率所对应的信息传输速率为 M × n bit / s。

若一个码元有4个状态值时,该码元携带的信息量?在9600波特对应的信息传输速率?

在4个状态值时,按上述的推理可以知道( 2^2=4),每2个比特组成一个码元。即该码元携带2个bit的信息量。

在9600RB条件下,利用 Rb 公式,就可以直接得到 = 9600 log24 = 9600 × log24 = 9600 × 2 = 19200 bps,即信息传输速率 = 19200 bps

什么是带宽?

带宽:表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,常用来表示网络的通信线路所能传输数据的能力。单位是b/s。

速率与带宽的区别?

速率是实际上的发送速率,带宽是理想状况下的发送速率

奈氏准则和香农定理

码元在信道传输失真问题:

影响失真程度的因素: 1. 码元传输速率 2. 信号传输距离 3. 噪声干扰 4. 传输媒体质量

失真的一种现象 - 码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象。

理想低通信道:

什么是“低通”呢?:简单说就是带宽受限,“低通”即指低频通过,“理想低通信道”即指理想的能让部分低频率信号通过的信道(只要不要超过这个低频率信号范围都可无失真的通过)。

什么是“信道”呢?:信道一般用来表示向某一个方向传送信息的媒体,因此一条通信电路往往含一条发送信道和一条接收信道。而“理想的信道”指没有噪声的信道。

什么是“噪声”呢?:指因传输系统造成的各种失真,例如导体中电子的热振动、闪电引起脉冲错乱等。

奈氏准则

奈奎斯特定理:奈奎斯特(Nyquist)定理:又称奈氏准则,指在理想低通(无噪声,带宽受限)的信道中,极限码元传输率为 2W Baud。其中,W是理想低通信道的带宽,单位为Hz。(当然只有在这两个公式里带宽采用Hz,其他地方采用bps)

奈氏准则:(目的是为了避免码间串扰)

在这里插入图片描述

♥ 对于奈氏准则,可得以下结论:

1)在任何的信道中,码元传输的速率是有限的;(如果过大,会出现严重的码间串扰问题,使得接收方正确识别非常困难)

2)信道的频带越宽(能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输;

3)奈氏准则给出了码元传输速率的限制,并没有对信息传输速率给出限制;

4)由于码元的传输速率受限于奈氏准则,要提高数据的传输速率,要采用多元的调制方法。

例题:在无噪声的情况下,若某通信链路的带宽为 3k Hz,采用 4 个相位,每个相位具有 4 种振幅的 QAM 调制技术,则该通信链路的最大数据传输率是?

信号有 4 x 4 = 16 种变化,最大数据传输率 = 2 x 3 k x 4 = 24 k b/s

补充内容:什么是相位?
在这里插入图片描述

香农定理

噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。

香农定理(Shannon Theory):在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。给出了信道信息传送速率的上限(比特每秒)和信道信噪比及带宽的关系。

信噪比 = 信号的平均功率 / 噪声的平均功率,常记为S/N,并用分贝(dB)作为度量单位。信噪比 dB = 10 log10 (S / N)

香农定理可以解释现代各种无线制式由于带宽不同,所支持的单载波最大吞吐量的不同。

在有随机热噪声的信道上传输数据信号时,信道容量Rmax与信道带宽W,信噪比S/N关系为:
Rmax=W*log2(1+S/N)。注意这里的log2是以2为底的对数。

♥ 对于香农定理,可以得出以下结论:

1)信道的带宽或信噪比越大,则信息的极限传输速率越高;

2)对一定的带宽和一定的信噪比,信息传输速率就确定了;

3)只要信息的传输速率低于信道的传输速率,就一定能找到某种方法来实现无差错的传输;

4)香农定理得出的为极限传输速率,实际信道能达到的传输速率要比它低不少;

5)若带宽W或信噪比 S/N 没有上限(不可能),信道的极限信息传输速率也就没有上限。

在这里插入图片描述
例:电话系统的典型参数是信道带宽为3000 Hz,信噪比为30 dB,则该系统最大数据传输速率是多少?

30 dB = 10 log2 (S/N),则 S / N = 1000
信道的极限数据传输速率 = W log2 (1 + S/N) = 3000 x log2 (1 + 1000) ≈ 30k b/s

俗话说:“有线的资源是无限的,而无线的资源却是有限的。”无线信道并不是可以任意增加传送信息的速率,它受其固有规律的制约,就像城市道路上的车一样不能想开多快就开多快,还受到道路宽度、其他车辆数量等因素影响。这个规律就是香农定理。

奈氏准则、香农定理比较?

在这里插入图片描述
考试的时候选用提示:看是否给出 V(1个码元对应几个bit),还有是否是无噪声条件下?

重要的区别:奈氏准则只是限制码元传输速率有上限,而香农定理才是限制数据传输速率的上限。

考题例子:进制信号在信噪比为 127 : 1 的 4k Hz 信道上传输,最大数据速率可达到多少?

奈氏准则:2 × 4k × log2 2 = 8 k bps = 8000 b/s

香农定理:4k × log2 (1 + 127) = 28 k bps = 28000 b/s
结果:那个小,选哪个,所以最大数据传输速率为 8000 b/s。

信号的编码与调制

基带信号、宽带信号

基带信号:将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)

来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号。

宽带信号:将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输(宽带传输)

把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。

在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)

在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)

数字信号和模拟信号的区别

数字信号(Digital Signal)

定义:指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。在计算机中,数字信号的大小常用有限位的二进制数表示。

表示形式:① 断续变化的电压脉冲(如我们可用恒定的正电压表示二进制数1,用恒定的负电压表示二进制数0)② 光脉冲

模拟信号(Analog Signal)

定义:指信息参数在给定范围内表现为连续的信号/ 或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。

表示形式:① 连续变化的电磁波(如无线电与电视广播中的电磁波)② 电压信号(如电话传输中的音频电压信号)

在这里插入图片描述
模拟信号转数字信号:模拟信号的数字化一般需要三个步骤:采样、量化和编码。
在这里插入图片描述

随着采样率和量化等级的增加,转换后的数字信号的曲线也就越能贴近模拟信号的曲线(对比上图的原曲线和黄色曲线)。

编码与调制的区分
在这里插入图片描述

物理层传输介质、设备

传输介质及分类

传输介质也称传输媒体 / 传输媒介,它就是数据传输系统中在发送设备和接收设备之间的数据通路。

传输媒体并不是物理层,传输媒体在物理层的下面,因为物理层是体系结构的第一次,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。

物理层则因为规定了电气特性,因此能够识别所传输的比特流。
在这里插入图片描述

导向性传输介质:1. 双绞线(最常用的传输介质) 2. 同轴电缆(主要用于有线电视系统) 3. 光纤

光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频率大约是10MH,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。
在这里插入图片描述
光纤的特点:1. 传输损耗小,中继距离长,对远距离传输特别经济。2. 抗雷电和电磁干扰性好。
3. 无串音干扰,也不易被窃听或截取数据。4. 体积小,重量轻。

非导向性传输介质分三种:分线电波,微波,(红外线、激光)

物理器设备

中继器:中继器又称为转发器,主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后,因噪声或其他原因而造成的失真和衰减,使信号的波形和强度达到所需要的要求,进而扩大网络传输的距离。

中继器是没有存储转发功能的,因此是不能连接两个速率不同的网段,中继器两端的网段一定要使用同一个协议。

集线器:集线器实质上是一个多端口的中继器,它也工作在物理层。(连在集线器的工作主机将会平分带宽)

数据链路层

数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层。

数据链路层必须具备一系列相应的功能,主要有:

  1. 如何将数据组合成数据块(在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位)

  2. 如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使之与接收方相匹配

  3. 在两个网路实体之间提供数据链路通路的建立、维持和释放管理

数据链路层基本概念介绍

数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

数据链路层功能介绍

功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。

功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。

功能三:组帧(把网络层的数据进行封装成帧:打帧头帧尾)

功能四:流量控制(限制发送方)

功能五:差错控制(帧错、位错)

封装成帧和透明传输

封装成帧

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

在这里插入图片描述
透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

组帧(四种方法)

组帧的四种方法:1. 字符计数法,2. 字符(节)填充法,3. 零比特填充法,4. 违规编码法。

字符计数法

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
在这里插入图片描述
字符填充法

就是在帧的开始部分和结束部分分别加上一个开始字段和结束字段,但是这样会产生一个问题,当传输的帧是非ASCALL的文件时,若数据部分有和开始字段或结束字段相同的字段怎么办?这个时候就需要字符填充法进行透明传输
在这里插入图片描述
当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。

当传送的帧是由非ASCIlI码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。
在这里插入图片描述
就是在数据中出现的与开始和相同的字段是,在其前面加上转义字符ESC,接收方收到数据后,发现前面有ESC就知道这是数据而不是控制字段,同时将ESC去掉还原出原来的数据

零比特填充法

操作:① 在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。② 在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
在这里插入图片描述
违规编码法

违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余编码的特殊编码环境。局域网IEEE802标准就采用这种方法。
在这里插入图片描述

结论: 由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果〉及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

差错控制(检错、纠错编码)

由于数据通信系统传输特性的不理想和外部干扰的存在,传输中出现差错是不可避免的。
在这里插入图片描述
差错控制的目的:确保所有的帧按顺序正确递交到数据链路层用户(网络层实体)。

差错的分类:随机差错(随机的、单个的),突发差错(成片的、连续的)
在这里插入图片描述
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。

奇偶效验码

奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。

一个二进制码字,如果它的码元有奇数个1,就称为具有奇性。例如,码字“10110101”有五个1,因此,这个码字具有奇性。同样,偶性码字具有偶数个1。注意奇性检测等效于所有码元的模二加,并能够由所有码元的异或运算来确定。

具体方法:通过加入校验位后的1个数是奇数还是偶数,可分为两种:① 奇校验:1的个数为奇数 ② 偶校验:1的个数为偶数

在这里插入图片描述
奇偶效验码特点:只能检查出奇数个比特错误,检错能力是50%

循环冗余码 CRC

Cyclic Redundancy Check:即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点。
在这里插入图片描述
CRC算法的是以GF(2)(2元素伽罗瓦域)多项式算术为数学基础的,听起来很恐怖,但实际上它的主要特点和运算规则是很好理解的。

GF(2)多项式中只有一个变量x,其系数也只有0和1,如:

1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 1*x^2 +1*x^1 + 1*x^0

计算冗余码的步骤:① 加0:假设生成多项式G(X)的阶是R,则加R个0 ② 模2除法:数据加0后除以多项式,余数为冗余码 / FCS / CRC 效验码的比特序列。
在这里插入图片描述
接收端检错过程:把收到的每一个帧都除以同样的除数,然后检查得到的余数R

  1. 余数为0,判定这个帧没有差错,接受。
  2. 余数为不为0,判定这个帧有差错(无法确定到位),丢弃。

FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。

链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

海明效验码

海明码的特点:2r >= k + r + 1 (r 为冗余信息位,k 为信息位)

例如发送的数据是 D = 101101,数据的位数 k = 6,满足不等式的最小 r = 4,也就是说 D = 101101 的海明码应该有 6 + 4 = 10 位,其中原数据 6 位,效验码 4 位。
在这里插入图片描述

结论:若采用的是偶校验,四个校验位Gi全为0,表示收到的数据正确;若采用的是奇校验,四个校验位Gi全为1,表示收到的数据正确

流量控制与可靠性传输机制

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

数据链路层的流量控制:点到点;传输层的流量控制:端到端;

在这里插入图片描述
网络中进行数据传输时,如果发送方发送速率过快,超过了接收方的接收速度,会发生丢包等网络错误,TCP提供一种机制,让发送方根据接收方接收能力, 控制发送的速率,这种做法称为流量控制。流量控制是保证TCP可靠性的一个方面。

停止等待协议、滑动窗口协议到底属于哪一层?

早些时候,链路的质量还没有那么可靠的时候,就需要数据链路层负责起可靠传输的功能,就会用到停止等待协议滑动窗口协议;随着链路质量的不断发展,链路的通信已经非常的可靠,这个时候就不需要数据链路层担负可靠传输的任务了,也就用不着停止等待协议、滑动窗口协议。

不管停止等待协议、滑动窗口协议是在数据链路层还是传输层,其功能都是进行可靠传输,只不过数据链路层的传输对象是帧,传输层的传输对象是分组。

停止 - 等待协议

停止等待协议(stop-and-wati),是数据链据层一个很重要的协议,基本原理就是说每发送一个分组,必须要停下来等待,等接收方确认后才可继续发送下一个分组。如果没收到确认,就只能超时重传。

为什么要有停止 - 等待协议?

除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。

什么是丢包?:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。

优点:很简单,每次发送一个分组就等待确认。缺点:信道利用率不高,每次都要等。

情况一:数据帧丢失或检测到帧出错
在这里插入图片描述
情况二:ACK丢失(左图) 情况三:ACK延迟(右图)
在这里插入图片描述

注意:1. 每发完1个帧,必须保留它的副本。 2. 数据帧和确认帧必须编号。

信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

信道利用率 = ( L / C )/ T:L 是 T 内发送 L 比特数据;C 是发送方数据传输率;T 是发送周期(从开始发送数据,到收到第一个确认帧为止)

信道吞吐率 = 信道利用率 * 发送方的发送速率

例题:一个信道的数据传输率为 4k b/s,单向传播时延为 30 ms,如果使停止 - 等待协议的信道最大利用率达到 80 %,要求的数据帧长度至少为( )。

80% = ( L / 4 ) / [ ( L / 4 ) + 2 * 30 ms ] => 答:L = 960 bit

后退 N 帧协议(GBN)

GBN (Go-Back-N):产生背景:停止等待协议的弊端

后退N帧协议和停止等待协议的主要区别在于后退N帧协议的发送窗口包含多个帧序号;而选择重传机制区别于上二者的主要特点是:发送窗口和接收窗口均有多个帧序号。
在这里插入图片描述
滑动窗口的长度

滑动窗口长度不可以无限增大。若采用 n 个比特对帧窗口编号,2n 个数字,满足 1 <= WT <= 2n - 1,因为如果发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

GBN发送方必须响应的 3 件事

上层调用:上层要发送数据时,发送方先检査发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些媺据,窗口不满时再发送帧)。

收到了一个ACK:GBN协议中,对 n 号帧的确认采用累积确认的方式,标明接收方已经收到 n 号帧和它之前的全部帧。

超时事件:协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果岀现超时,发送方重传所有已发送但未被确认的帧。

GBN接收方要做的事

正确时:如果正确收到 n 号帧,并且按序,那么接收方为 n 帧发送一个ACK,并将该帧中的数据部分交付给上层。

非正确时:其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK,接收方无需缓存仼何失序帧,只需要维护一个信息: expected seq num(下一个按序接收的帧序)

运行中GBN流程
在这里插入图片描述
例题测试:答案选 C(3 号帧确认其实就是 0 ~ 3 号全部已经成功接收成功了)
在这里插入图片描述
GBN协议性能分析:因连续发送数据帧而提高了信道利用率,在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。

选择重传协议(SR)

选择重传协议(Selective-Repeat, SR):选择重传协议只重传真正丢失的分组.

背景:由于GBN协议的弊端,在累积确认的机制下,如果有错误的话,则发送方将会批量重传,这样使效率降低。

可不可以只重传出错的帧?

解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。

选择重传协议的发送窗口
在这里插入图片描述
SR发送方必须要响应的 3 件事

上层的调用:从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。

收到了一个ACK:如果收到了ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记记为已接收,如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处,如果窗口移动了,并且有序号在窗口内的未发送帧,则发送这些帧。

超时重传:每一个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

SR接收方要做的事

来者不拒(窗口内的帧):SR接收方将确认一个正确接收的帧而 不管其是否按序,失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。

运行中SR流程
在这里插入图片描述

滑动窗口可以无限吗?

最大发送窗口最好等于最大接收窗口。(大了会溢出,小了没意义)WTmax = WRmax = 2n-1

例题测试:答案选 A
在这里插入图片描述

信道划分 介质访问控制

传输数据使用的两种链路

点对点链路:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网。

广播式链路:所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型)

介质访问控制

介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
在这里插入图片描述
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。

信道划分介质访问控制图例