A. 大学里的计算机网络需要用数学吗
计算机网络,专业课是不太用到数学。
但你要考自考,计算机网络是理工科的专业,所以高等数学是必考的科目。
你不仅要学数学,而且要学好。因为理工科的数学,比文科的还要难
是的,如果考计算机相关专业的话,数学是必考的
B. 计算机网络的最短路径算法有哪些对应哪些协议
用于解决最短路径问题的算法被称做“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法有:
Dijkstra算法、A*算法、SPFA算法、Bellman-Ford算法和Floyd-Warshall算法,本文主要介绍其中的三种。
最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。
算法具体的形式包括:
确定起点的最短路径问题:即已知起始结点,求最短路径的问题。
确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
确定起点终点的最短路径问题:即已知起点和终点,求两结点之间的最短路径。
全局最短路径问题:求图中所有的最短路径。
Floyd
求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。
Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。
Floyd-Warshall算法的时间复杂度为O(N^3),空间复杂度为O(N^2)。
Floyd-Warshall的原理是动态规划:
设Di,j,k为从i到j的只以(1..k)集合中的节点为中间节点的最短路径的长度。
若最短路径经过点k,则Di,j,k = Di,k,k-1 + Dk,j,k-1;
若最短路径不经过点k,则Di,j,k = Di,j,k-1。
因此,Di,j,k = min(Di,k,k-1 + Dk,j,k-1 , Di,j,k-1)。
在实际算法中,为了节约空间,可以直接在原来空间上进行迭代,这样空间可降至二维。
Floyd-Warshall算法的描述如下:
for k ← 1 to n do
for i ← 1 to n do
for j ← 1 to n do
if (Di,k + Dk,j < Di,j) then
Di,j ← Di,k + Dk,j;
其中Di,j表示由点i到点j的代价,当Di,j为 ∞ 表示两点之间没有任何连接。
Dijkstra
求单源、无负权的最短路。时效性较好,时间复杂度为O(V*V+E),可以用优先队列进行优化,优化后时间复杂度变为0(v*lgn)。
源点可达的话,O(V*lgV+E*lgV)=>O(E*lgV)。
当是稀疏图的情况时,此时E=V*V/lgV,所以算法的时间复杂度可为O(V^2) 。可以用优先队列进行优化,优化后时间复杂度变为0(v*lgn)。
Bellman-Ford
求单源最短路,可以判断有无负权回路(若有,则不存在最短路),时效性较好,时间复杂度O(VE)。
Bellman-Ford算法是求解单源最短路径问题的一种算法。
单源点的最短路径问题是指:给定一个加权有向图G和源点s,对于图G中的任意一点v,求从s到v的最短路径。
与Dijkstra算法不同的是,在Bellman-Ford算法中,边的权值可以为负数。设想从我们可以从图中找到一个环
路(即从v出发,经过若干个点之后又回到v)且这个环路中所有边的权值之和为负。那么通过这个环路,环路中任意两点的最短路径就可以无穷小下去。如果不处理这个负环路,程序就会永远运行下去。 而Bellman-Ford算法具有分辨这种负环路的能力。
SPFA
是Bellman-Ford的队列优化,时效性相对好,时间复杂度O(kE)。(k< 与Bellman-ford算法类似,SPFA算法采用一系列的松弛操作以得到从某一个节点出发到达图中其它所有节点的最短路径。所不同的是,SPFA算法通过维护一个队列,使得一个节点的当前最短路径被更新之后没有必要立刻去更新其他的节点,从而大大减少了重复的操作次数。
SPFA算法可以用于存在负数边权的图,这与dijkstra算法是不同的。
与Dijkstra算法与Bellman-ford算法都不同,SPFA的算法时间效率是不稳定的,即它对于不同的图所需要的时间有很大的差别。
在最好情形下,每一个节点都只入队一次,则算法实际上变为广度优先遍历,其时间复杂度仅为O(E)。另一方面,存在这样的例子,使得每一个节点都被入队(V-1)次,此时算法退化为Bellman-ford算法,其时间复杂度为O(VE)。
SPFA算法在负边权图上可以完全取代Bellman-ford算法,另外在稀疏图中也表现良好。但是在非负边权图中,为了避免最坏情况的出现,通常使用效率更加稳定的Dijkstra算法,以及它的使用堆优化的版本。通常的SPFA。
C. 认识一下网络拓扑,几张图片几条线。
网络拓扑,不就是网络和拓扑组合在一起的新名词吗。这样理解很有道理,网络很好理解,关键是这个拓扑,首先来了解一下什么是拓扑。
拓扑是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。是一种不考虑物体的大小、形状等物理属性,而仅仅使用点或者线描述多个物体实际位置与关系的抽象表示方法。拓扑不关心事物的细节,也不在乎相互的比例关系,而只是以图的形式表示一定范围内多个物体之间的相互关系。
拓扑英文名是Topology,直译是地志学,最早指研究地形、地貌相类似的有关学科。几何拓扑学是十九世纪形成的一门数学分支,它属于几何学的范畴。有关拓扑学的一些内容早在十八世纪就出现了。那时候发现的一些孤立的问题,在后来的拓扑学的形成中占着重要的地位。
"拓扑"是一个外来词,中国人把Topo译为“拓扑”!谁?江泽涵先生是也!
江泽涵(1902-1994年),安徽旌德人,1926年毕业于南开大学数学系教授,1955年当选为中国科学院数理学部委员。他是把拓扑学引入中国的第一人,他出版的《拓扑学引论》是中国人编写的第一部拓扑学教材。
译Topo为拓扑,音义兼顾,形神俱备———“拓”者,对土地之开发也,“扑”者,全面覆盖也。
网络拓扑(Network Topology)结构是指用传输介质互连各种设备的物理布局。指构成网络的成员间特定的物理的即真实的、或者逻辑的即虚拟的排列方式。如果两个网络的连接结构相同我们就说它们的网络拓扑相同,尽管它们各自内部的物理接线、节点间距离可能会有不同。
在实际生活中,计算机与网络设备要实现互联,就必须使用一定的组织结构进行连接,这种组织结构就叫做“拓扑结构”。网络拓扑结构形象地描述了网络的安排和配置方式,以及各节点之间的相互关系,通俗地说,“拓扑结构”就是指这些计算机与通讯设备是如何连接在一起的。
研究网络和它的线图的拓扑性质的理论,又称网络图论。拓扑是指几何体的一种接触关系或连接关系;当几何体发生连续塑性变形时,它的接触关系会保持不变。用节点和支路组成的线图表示的网络结构也具有这种性质。
网络拓朴的早期研究始于1736年瑞士数学家L.欧拉发表的关于柯尼斯堡桥问题的论文。1845年和1847年,G.R.基尔霍夫发表的两篇论文为网络奠定了基础。
在设计网络拓扑结构时,我们经常会遇到如“节点”、“结点”、”链路”和“通路”这四个术语。它们到底各自代表什么,它们之间又有什么关系呢?
(1) 节点
一个“节点”其实就是一个网络端口。节点又分为“转节点”和“访问节点”两类。“转节点”的作用是支持网络的连接,它通过通信线路转接和传递信息,如交换机、网关、路由器、防火墙设备的各个[网络端口]等;而“访问节点”是信息交换的源点和目标点,通常是用户计算机上的网卡接口。如我们在设计一个网络系统时,通常所说的共有××个节点,其实就是在网络中有多个要配置IP地址的网络端口。
(2)结点
一个“结点”是指一台网络设备,因为它们通常连接了多个“节点”,所以称之为“结点”。在计算机网络中的结点又分为链路结点和路由结点,它们就分别对应的是网络中的交换机和路由器。从网络中的结点数多少就可以大概知道你的计算机网络规模和基本结构了。
(3)链路
“链路”是两个节点间的线路。链路分物理链路和逻辑链路(或称数据链路)两种,前者是指实际存在的通信线路,由设备网络端口和传输介质连接实现;后者是指在逻辑上起作用的网络通路,由计算机网络体系结构中的数据链路层标准和协议来实现。如果链路层协议没有起作用,数据链路也就无法建立起来。
(4)通路
“通路”从发出信息的节点到接收信息的节点之间的一串节点和链路的组合。也就是说,它是一系列穿越通信网络而建立起来的节点到节点的链路串连。它与“链路”的区别主要在于一条“通路”中可能包括多条“链路”。
星形拓扑结构的主要优点有:
1.结构简单,容易管理维护;
2.重新配置灵活;
3.方便故障检测与隔离;
4.控制简单,便于建网;
5.网络延迟时间较小,传输误差较低;
星形拓扑结构的主要缺点有:
1.成本高、可靠性较低;
优点是由于每个节点都同时与两个方向的各一个节点相连接,此路不通彼路通,因此环状拓扑具有天然的容错性。缺点是由于存在来自两个方向的数据流,因此必须对这两个方向加以区分,或者进行限制,以避免无法区分的冗余数据流对正常通信的干扰。管理和维护比较复杂。
优点是结构简单,可扩充性好。缺点是维护难、单点的结构可能会影响全网络。
D. 建立计算机网络的主要目的是实现计算机资源的共享。计算机资源主要是指计算机
计算机资源主要包括硬件和软件两个方面:
硬件资源包括计算机的各种物理设备,例如中央处理告皮咐器(CPU)、内存、硬盘等。这些设备共同组成了计算机的物理结构,提供了计算和存储数据的能力。
软件资源则是指计算机所运行的程序和应用,包括操作系统、数据库管理系统、办公软件、浏览器等等。这些软件资源可以帮助用户完成各种任务,例如文字处理、图像编辑、网页浏览、数据分析等等。
4、计算机网袜纯络:了解计算机网络的基本原理和协议,如TCP/IP、HTTP等。
5、数据库:了解数据库的基本概念和使用方法,如SQL语句、关系型数据库等。
6、前沿技术:了解当前流行的技术,如人工智能、大数据、区块链等。