郑州轻工业大学软件学院计算机网络期末复习

如果今后不能陪在你身边,祝你早安午安晚安 —— 《楚门的世界》

I guess it comes down to a simple choice:get busy living or get busy dying. ——《肖申克的救赎》

前前言

下午考完,发现已经凉了。悲伤它环绕着我。这重点他画了个寂寞。计网老师来骗,来偷袭自己的亲学生,这好吗?这不好。
总结一下,就是下面写的,这次基本没考,等我回头再总结一份补考复习笔记。

前言

本文主要用于计算机网络期末复习,内容并不全面,主要根据重点考察内容进行总结。我们学校使用的教材为《计算机网络教程(第5版|微课版)》,作者为谢希仁。

因为本人打算考研,之前找了一些相关的考研视频,里面有计算机网络的部分,我也做了一些参考。视频地址:

https://www.bilibili.com/video/BV19E411D78Q

下图为基本的考点分布,感谢舍友郭某某的无私奉献。

在这里插入图片描述

上图要素过多,复习不完的看下面第一次更新的版本:

在这里插入图片描述

一、概述(第一章)

1.1 TCP/IP四层协议

在这里插入图片描述

1.2 五层协议

img

1.2.1 五层协议中各层所表示的功能(习题1-17)

应用层:应用层的主要任务是如何通过应用进程间的交互来完成特定的网络应用。

运输层:运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。

(补充:传输控制协议(TCP)提供面向连接的,可靠的数据传输服务,其数据传输的单位是报文段

​ 用户数据报协议(UDP)提供无连接的,尽最大努力的数据传输服务,其数据传输的单位是用户数据报。)

网络层:网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层吧运输层产生的报文段或者用户数据报封装成分组或包进行转发。

数据链路层:数据链路层的任务就是在相邻节点之间的链路上传送以帧为单位的数据。

(补充:我们把数据链路层传送的数据单元称为帧)

物理层:物理层是原理体系结构的最底层,完成计算机网络罗忠最基本的任务,即在传输媒体上传送比特流,将数据链路层帧中的每个比特从一个节点通过传输媒体传送到下一个节点。

(补充:物理层传输的数据的单位是比特)

1.2.2 沙漏计时形状的TCP/IP协议簇(习题1-19)

在这里插入图片描述

这种像沙漏一样表示的协议簇表明:

TCP/IP协议可以为各式各样的应用提供服务(Everything Over IP),同时TCP/IP协议也允许IP协议在各式各样的网络构成的互联网上运行(IP Over Everything)。

说明:其实从图中也可以看出网际层的重要性,运输层无论使用TCP还是UDP,在网际层都需要包装成IP数据报,IP协议在其中确实担任了重要的作用。

1.3 性能指标

1.3.1 速率

速率就是数据的传送速率,它也称为数据率或比特率。比特(bit)是计算机中数据量的单位,意思是一个“二进制数字”(一个比特就是二进制中的0或1)。

补充:

当数据量较大时可以使用kbit/s来表示,或者用Mbit/s、Gbit/s表示,有时为了简便表示也可以直接写为100M这种形式(我们常说的百兆宽带就是这样的表示)。需要注意的是这里的进制转换都是按1000算的。例如1kbit/s = 1000bit,1Mbit/s = 1000kbit/s。

注意:

计算机中的数据量往往用字节作为度量的单位。一个字节(byte,也可以表示为B)表示为8bit。而1K = 2^10B,

1M = 2^20B

1.3.2 带宽

带宽是我们在日常生活中常常提到的一个性能指标。在本书中给出了带宽的两个定义。

(1)带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种笔筒频率成分所占据的频率范围。

(2)在计算机网络中,带宽用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到零一点所能通过的“最高频率”。基本单位为bit/s。如下图的速度就是指的网络带宽。

在这里插入图片描述

1.3.3 吞吐量

吞吐量也被称为吞吐率,表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常的用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络带宽或网络的额定速率的限制。例如,对于一个100Mbit/s的以太网,其典型的吞吐量可能也只有70Mbit/s。

1.3.4 时延

时延是指数据从网络(或链路)的一端传送到另一端所需要的时间。时延有时也称为延迟或迟延。

小插曲:

在平时,有很多同学和我反映说使用校园网的时候玩游戏延迟很差,这里的延迟就是指时延,像王者荣耀这类游戏你的操作需要通过远程服务器进行反馈,如果延迟过大就会很卡顿。对于这个问题可以通过插网线进行解决(当然,如果使用的是单宽那估计插网线也不好使,因为带宽就那么大)

参考: https://www.zhihu.com/question/31181413?from=profile_question_card

1.3.4.1 发送时延(传输时延)

发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。发送时延也称为传输时延。

​ 发送时延 = 数据帧长度(bit) / 发送速率(bit/s)

注:数据帧长度也可替换为分组长度。由于在分组交换中计算机在发送数据时总是以信道最高数据率发送数据,因此公式中的发送速率也可以替换为信道带宽。

1.3.4.2 传播时延

传播时延时电磁波在信道中需要传播一定的距离而花费的时间。公式如下:

传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)(电磁波在信道上的传播速率接近光速)

1.3.4.3 处理时延

主机或路由器在收到分组时要花费一定的时间进行处理。

1.3.4.4 排队时延

分组在经过网络传输时,会经过许多路由器。分组在进入路由器之前要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。

1.3.4.5 注意

在实际发送数据过程中,具体哪个时延占主导地位需要具体分析,并不是说减少某个时延就能极大的提高网络体验。例如对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。承载信息的电磁波在通信线路上的传播速率于数据的发送速率并无关系。提高数据的发送速率只是减小了数据的发送时延。

在这里插入图片描述

1.3.5 丢包率

具体见本书P19页和P20页。

简单来说,丢包率反映了网络的拥塞情况。当通信量较大时会出现网络拥塞,导致分组交换机的队列移除和分组丢失。但是对于我们来说,我们不会直接感觉到信息被丢失而是会感到“网速”变慢了,这主要是因为软件会通过重传机制来保证信息的完整性。

1.3.6 利用率

利用率是指网络有百分之几的时间是被利用的,没有数据通过的网络利用率为0。网络利用率越高,数据分组在路由器和交换机处理时就需要排队等待,因此时延也就越大。

img

img

U使网络利用率,D表示网络当前延时,D。表示空闲时的时延。当网络的利用率接近最大值1时,网络的时延趋于无穷大。

1.3.7 参考

https://www.cnblogs.com/yangmingxianshen/p/7789121.html

1.3.8 习题解答

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)错误,没有分清链路速率的概念。提高链路速率是指提高将比特流发送到链路上的速率;而传播时延与信号的传播速率以及信道长度有关,与发送速率无关。主要就是看上面的公式:传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)(电磁波在信道上的传播速率接近光速)

(2)对,看上面的公式

(3)错误,具体可参照1.2.1。跨越网络提供主机到主机的数据通信问题的是网络层。而运输层则负责为两台主机中进程之间的通信提供通用的数据传输服务。

(4)错误。发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。

(5)对

(6)错误。错在不会出现网络拥塞。分组转发采用的是存储转发技术,也就是说路由器接收到分组后,缓存到路由器的内存中,在查找转发表后转发分组。但是路由器缓存空间是有限的,当发出方或者该节点排队分组过多,路由器缓存占满后,之后到该路由器的分组则被丢失,出现网络拥塞。

1.4 实体、协议和服务

1.4.1 实体

实体用来表示任何可发送或接受信息的硬件或者软件进程。在许多情况下,实体就是一个特定的软件模块。

1.4.2 协议

协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则定义了发送者或接收者所要完成的操作。

1.4.3 区别

在协议的 控制下,两个对等实体间的通信试地本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。

在这里插入图片描述

1、下面的协议对上面的实体是透明(指某一个实际存在的事物看起来像不存在一样)的。例如运输层使用了很复杂的协议实现了可靠传输。但是在应用层只感受到运输层所提供的这种可靠传输 服务,但它看不到运输层是如何使用复杂的协议来实现可靠传输的。

2、协议是“水平的”,即协议是控制对等实体之间通信的规则。但是服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。

二、编码与调制(第二章)

2.1 基本概念

要利用西岛传输数据,必须将数据转换为能在传输媒体上传送的信号。信道可以分成传送模拟信号的模拟信道和传送数字信号的数字信道两大类。通常人们将数字数据转换成数字信号的过程称为编码,而将数字数据转换为模拟信号的过程称为调制。

2.2 常用编码方式

在这里插入图片描述

2.2.1 曼彻斯特编码

位周期中心的上跳变代表0,位周期中心的下跳变代表1

其实也很简单,曼彻斯特编码规定从上往下跳变是表示1,而从下往上跳变是表示0

在这里插入图片描述

2.2.2 差分曼彻斯特编码

在每一位的中心处始终都有跳变。为开始边界有跳变代表0,而位开始边界没有跳变代表1。

在这里插入图片描述

2.2.3 习题

题干:请画出数据流10100011的不归零编码、曼彻斯特编码以及差分曼彻斯特编码(从高电位开始)

题解:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 奈氏准则和香农公式

2.3.1 码元

码元是承载信息的基本信号单位,一个码元能够承载的信息量多少,是由码元信号所能表示的数据有效值状态个数决定的。单位时间内通过信道传输的码元数称为码元传输速率(单位为波特)。

2.3.2 奈氏准则

理想低通信道的最高码元传输速率 = 2W Baud

理想带通信道的最高码元传输速率 = W Baud

奈氏准则的另一种表达方式为:每赫带宽的理想低通信道的最高码元传输速率是每秒2个码元,每赫带宽的带通信道的最高码元传输速率每秒1个码元。

则任何通道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰现象,以致在接收端无法正确识别在发送方所发送的码元。

2.3.3 香农公式

信道的极限信息传输速率C可表示为:

​ C = Wlog2(1+S/N)bit/s

式中,W为信道的带宽(以Hz为单位);S为信道内所传信号的平均功率;N为信道内部的高斯噪声功率。

香农公式表明:信道的带宽或者信道中的信噪比越大,则信息的极限传输速率就越高。

2.3.4 补充

从上面两条可以看出,要想提高信息的传输速率就必须采用多元制和努力提高信道中的信噪比。

2.4 习题

p62页

2-6 “比特/秒” 和 “码元/秒”有什么区别?

答案:

“比特/秒”是指信息传输速率,每秒钟传送的信息量;“码元/秒”是码元传输速率,每秒钟传送的码元个数。两者在二进制时相等。在多进制时,信息传输速率要乘以log以2为底的进制数等于码元传输速率

解读:

一个以m波特传送信号的线路,其传送二进制数据的速率不一定是m比特/秒,因为每个符号需要通过几个比特来表示,所以运送一个符号等于运送了几个比特。例如,若使用0、1、2、3、4、5、6、7共8个电平级,则需要 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gTlDeICf-1609332167370)(https://private.codecogs.com/gif.latex?log(2)8)] ,即3个比特来表示一个信号值,因而这种条件下比特率是波特率的3倍。

在这里插入图片描述

由以上的对波特率和比特率的理解,可以得到[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1gdnGSc-1609332167372)(https://private.codecogs.com/gif.latex?log(2)16)]=4,也就是说在这种条件下比特率是波特率的4杯,而此时,波特率为20000码元每秒,因此比特率为20000*4=80000bit/s

三、CRC循环冗余码(第三章)

在这里插入图片描述

3.1 需要的计算机组成原理知识

  1. 什么是异或操作

    很好理解,例如1异或0结果为1,1异或1结果为0,0异或0结果为0,0异或1结果为1。总结而言就是相同为0,不同为1。

  2. 二进制除法操作

    二进制除法和正常除法很相似。但是两个结果不是进行减法操作而是进行异或操作。

    在这里插入图片描述
  3. 二进制与十进制的转换问题

    在这里插入图片描述

3.2 具体思路

这类题目思路基本都是固定的,题目中会给出要发送的数据(二进制)以及生成多项式。

(1)根据生成多项式算阶数r

​ 计算方法:r = 生成多项式位数-1

​ 注:上面讲到二进制与十进制的转换,这里的阶数r其实就是最高位

(2)加0:在要发送的数据后面加0,总共要加r个0

(3)要发送的数据除以生成多项式得到余数FCS

(4)将FCS加到要发送的数据后面(得到的是最终要发送的数据)

(5)接收端的处理:使用接收到的数据(其实就是上一步中最终发送的数据)除以生成多项式,观察余数

(6)如果余数为0则不需要丢弃,如果不为0则需要丢弃

3.3 注意

CRC循环冗余码只能计算某一帧是否出现差错,但是它没有办法具体到某一位是否出现了差错。

3.4 习题(课本P121)

要发送的数据为101110。采用CRC的生成多项式是P(X) = X^3+1。试求应添加在数据后面的余数。

在这里插入图片描述

习题3-5

(1)

在这里插入图片描述 在这里插入图片描述

四 、集线器、路由器、网桥、交换机(第三章)

4.1 基本概念

在这里插入图片描述

本图来源:https://blog.csdn.net/luoweifeng1989/article/details/6446495,如果侵犯了您的权益,请联系我删除。

4.2 简单理解

4.2.1 集线器

集线器主要作用于OSI网络模型中的第一层即物理层,主要将多个计算机设备连接起来组建局域网。集线器的功能比较单薄,集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。大多数的时候它用在星型与树型网络拓扑结构中。

4.2.2 交换机

交换机作用于数据链路层。

交换机的出现在集线器之后,应该说交换的出现就是为了解决集线器的一些弊端。它和集线器在外形上没有什么区别,主要用途也是组网。但是交换机拥有更强大的功能。集线器是采用共享工作模式的代表,如果把集线器比作一个邮递员,那么这个邮递员是个不认识字的“傻瓜”——要他去送信,他不知道直接根据信件上的地址将信件送给收信人,只会拿着信分发给所有的人,然后让接收的人根据地址信息来判断是不是自己的!而交换机则是一个“聪明”的邮递员——交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。

4.2.3 路由器

路由器是网络中进行网间连接的关键设备。作为不同网络之间互相连接的枢纽,路由器系统构成了基于 TCP/IP 的国际互连网络 Internet 的主体脉络。
路由器之所以在互连网络中处于关键地位,是因为它处于网络层,一方面能够跨越不同的物理网络类型(DDN、FDDI、以太网等等),另一方面在逻辑上将整个互连网络分割成逻辑上独立的网络单位,使网络具有一定的逻辑结构。路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。 路由器的基本功能是,把数据(IP 报文)传送到正确的网络,细分则包括:

1、IP 数据报的转发,包括数据报的寻径和传送;

2、子网隔离,抑制广播风暴;

3、维护路由表,并与其它路由器交换路由信息,这是 IP 报文转发的基础;

4、IP 数据报的差错处理及简单的拥塞控制;

5、实现对 IP 数据报的过滤和记帐。
路由器构成了 Internet 的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响着网络互连的质量。因此Internet 研究领域中,路由器技术始终处于核心地位。

4.3 参考

https://www.cnblogs.com/imapla/archive/2013/03/12/2955931.html(该链接包含了详细的解读)

五、CSMA/CD协议要点

5.1 CSMA/CD协议要点

CSMA/CD协议的要点:发送前先监听,检测到信道空闲就发送数据,同时边发送边监听,一旦发现信道上出现了信号碰撞,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。每一个站点在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。以太网上各站点都平等地争用以太网信道。

CSMA/CD协议的四个要点:

1、适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送。

2、若适配器检测到信道空闲96比特时间,就发送这个帧。若检测到信道忙,则继续检测并等待信道转为空闲96比特时间,然后发送这个帧。

3、在发送过程中继续检测信道,若一直未检测到碰撞,就顺利吧这个帧成功发送完毕。若检测到碰撞,则中止数据的发送,并发送认为干扰信号。

4、在中止发送后,适配器就执行指数退避算法,随机等待r倍512比特时间后,返回到步骤(2)。

5.2 超时重传时间的选择

以太网规定帧间最小间隔为96比特时间(9.6us),即所在站点在发送帧之前要等信道空闲96比特时间。这样做是用于接收方检测一个帧的结束,同时也使得所有其它站点都能有机会平等竞争信道并发送数据。

六、在数据链路层拓展以太网(第三章)

6.1 基本概念

6.1.1 以太网

在这里插入图片描述

在这里插入图片描述

注:只要是满足以上两个标准的都可以称为以太网,这样个标准主要的区别就在于帧的格式有轻微的差别。

6.1.2 适配器和MAC地址

在这里插入图片描述

总结而言,适配器实际上就是我们常说的网卡,而MAC地址则是电脑的唯一标识,一台电脑通常情况下只能有一个MAC地址。

6.1.3 网桥的工作原理

在这里插入图片描述

在这里插入图片描述

6.1.4 透明网桥

在这里插入图片描述

上述文字在书本P98下方。

6.1.5 生成树协议

当网络比较复杂时,很容易因为误配导致网络出现环路,更重要的是,有时需要在两个局域网之间使用多个网桥形成冗余链路以增强网络的可靠性。为了避免帧在网络中不断的兜圈子。透明网桥使用了一个生成树协议,通过互连在一起的网桥间彼此的通信,找出原来网络拓扑的一个连通子集(生成树),在这个子集里整个连通的网络中不存在环路,即在任何两个站点之间有且只有一条路径。一旦生成树确定了,网桥就会关闭不在生成树链路上的那些接口(这些接口不在接收和转发帧),以确保不存在的帧。

在这里插入图片描述
上图具体解释见书本P99。

七、常用端口号

常以连线题的方式出现,只需要记住即可。

在这里插入图片描述

在这里插入图片描述

八、子网划分

在这里插入图片描述

这个题目属于比较简单的类型,个人感觉考试应该会出这种题目。

在这里插入图片描述
在这里插入图片描述

九、路由表的更新以及下一跳计算

在这里插入图片描述
在这里插入图片描述

十、零压缩算法

在这里插入图片描述

十一、基于TCP的Socket编程流程

  1. 服务器端流程简介:
    (1)创建套接字(socket)
    (2)将套接字绑定到一个本地地址和端口上(bind)
    (3)将套接字设定为监听模式,准备接受客户端请求(listen)
    (4)阻塞等待客户端请求到来。当请求到来后,接受连接请求,返回一个新的对应于此客户端连接的套接字sockClient(accept)
    (5)用返回的套接字sockClient和客户端进行通信(send/recv);
    (6)返回,等待另一个客户端请求(accept)
    (7)关闭套接字(close)
  2. 客户端流程简介:
    (1) 创建套接字(socket)
    (2) 向服务器发出连接请求(connect)
    (3) 和服务器进行通信(send/recv)
    (4) 关闭套接字(close)

十二、TCP四次挥手

在这里插入图片描述
在这里插入图片描述

原文地址:https://www.cnblogs.com/zwscode/p/14243173.html