‘壹’ 计算机网络总结:计算机网络重点知识总结
《计算机网络》课程总结
目录
一、 对老师的印象
二、 对计算机网络的认识
三、 计算机网络实践课程的学习历程与收获
四、灶悉丛 计算机网络笔记整理
五、 总结
对老师的印象
一、 整体印象
对于老师的印象应该追溯到上个学期,上个学期选了短学期的课《数据结构课程设计》,当时选择这门课的时候并没有考虑自己是否对它了解
只是为了单纯的凑学分。但是通过第一节课的了解,感觉天都塌了下来。这个课的基础是C 语言和《数据结构》,这两门课我其实都没有学过,我感觉老师说的真的很对,没有学过这些就可以退掉这门课,我们果断退掉了这门课。当时对老师的印象就是很严格,要求很高,后来我们想想其实是对课程本身的一种恐惧感。
二、二次印象
老师真是太敬业啦,其实从老师进教室的那一刻就看出老师挺着肚子,有了宝宝。当时就想,老师都这样了为什么还要来上课,很是佩服老师的敬业精神。而且以前陆大严格的影响全都被老师的讲课的内容所掩盖,我没有上过老师的课,但第一次上老师的就感觉老师教的很好,其实大学里好多老师的学历很高,但有些老师真的不会讲课,至少让大部分同学感觉他讲的不好。但是我感觉老师在讲课方面很有自己的想法。
三、对同学的态度
在《计算机网络课程设计》的实验课上,老师给我们操作演示,为每一个学生悉心指导,我觉得老师真的很亲民,对于网络的搭建,老师给我们演示了web 服务的构建,DNS 服务器和FTP 的设置,以及最终的客户端设置,很少有老师这样耐心指导。最后老师收作业的方式也是很好,避免了有的同学投机,我觉得很不错。
对计算机网络的认识
一、定义
计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
二、发展历程
1. 第一代计算机网络
其实计算机的发展速度远超过人们的想象,在20世纪50年代,人们利用通信线路,将多台终端设备连接到一台计算机上,构成“主机-终端”系统,这里的终端不能够单独进行数据处理,仅能完成简单的输入输出,所有数据处理和通信处理任务均由计算机主机完成。现在的终端指的就是一台独立的计算机,不仅可以输入输出,还可以处理数据。其实这个时期并不算是真正的计算机网络,应该称为伪计算机网络。
2. 第二代计算机网络
到了上个世纪60年代,独立的终端有了处理数据的能力,例如美国的
ARPAnet 网络。第二代计算机网络主要用于传输和交换信息,因为没有成熟的操作系统,资源共享不高。
3. 第三代计算机网络
70年代,出现了许多协议,比如TCP/IP协议。其主要特征就是所有的计算机遵守同一种网络协议,突出资源共享(硬件、软件和数据)。
4. 第四代计算机网络
90年代开始,微电子技术、大规模集成电路技术、光通技术和计算机技术不断发展,为计算机网络技术的发展提供了有力的支持。信息综合化和传输高速化是第四代计算机网络的特点。
三、网络传输媒体
网络传输媒体也称,传输介质或传输媒介。就好像一条条水管,所有的自来水从自来水厂到家里,都要经过水管,水管相当于一种媒介。分为有线传输和无线传输。在传输过程中要尽可能保证信号的真实性,所以对于有线传输的材质等要求比较高。
四、网络拓扑
由于在大二时没有学《网络技术基础》,所以这个学期同时学《网络技术基础》和《计算机网络》,前一门课是后一门课的基础,在学习网络拓扑机构的时候,了解到其实总体分为,星型和总线型,对于这个为了更好的理解拓扑结构,我们搭建了一个小型的网络。可以实现三个实验室,每个实验室中的计算机可以相互通信,不同实验室中计算机不可以通信,其实可以形成了树型结构。以下是我利用思科的一个软件做的一个网络拓扑结构:
计算机网络课程设计的学习过程与收隐樱获
一、小组的建立
1. 一开5个人,对于实验任务一直不太理解,只知道要配置三个服务器,分别是DNS 服务器配置、FTP 配置、WEB 服务器配置,一个客户端的配置。在还有一周的时间就要叫作业的时候,我们重新组队,进行认真分析。
2. 实验内容对于实验的能容,每个配置都讲了很多,比较详细。但最让人不能理解的就是必须在Windows server 2003系统下进行操作,这就带来了一个问题,只能在实验室做,其实我们的能力有限,在实验室的两节课根本不够。我们通过学习老师的操作过程,大致了解了配置方法,但是并没有真正理解最后的内在关系。我们在周一晚课时,去实验室进行实验。在操作的过程中,我们不断遇到各种问题,我们通过网络查资料,翻看老师的课件和实验例子,不断的改进,后来我突然明白了他们的内在联系。
3. 具体的原理:首先要配置web 和ftp ,在设置IP 地址时要选择自身计算机的IP 地址,web 需要建立一个网站首页,其实就是一个简单的html 文件。ftp 可以传输文件,所以要在设置ftp 的电脑上新建一个路径,按照老师的要求将小组作业存放在这个路径下。此时可以通过访问web 和ftp 的IP 进行网页的浏览和作业的检查。但是IP 地址不方便记忆,所以要通过DNS 服务器为每个IP
设
置域名。DNS 设置域名是从后往前设置的,依次是新建域,新建区域,新建主机,例如 ,这样就可以通过域名进行访问。最后就是客户端,其实这个是最简单的,只需要将首选DNS 服务器的IP 地址改成配置DNS 服务器的那台计算机的IP 地址就可以啦,这样就可以在任何一台电脑上访问web 和ftp 。
4. 收获:最大的收获就是一定要去做,亲自动手去做才能发现问题。实践去做才能有所收获,在最后成功的那一刻,会有一种成就感。这种成就感是无法被任何其他事情所代替,困难问题是有,但这不是一个奋斗的年纪吗?
计算机网络笔记整理
总结
一、认识
对于计算机的认识是在小学开始,但从小学到大学基本上没有什么深刻的认识改变。只是特别浅层次的认识,比如可以用计算机打字,可以上网查资料,可以玩游戏,可以看视频,可以听歌等等。随着计算机的快速发展,网络的搭建使计算机的价值得到了最大的体现。计算机网络到底怎么连接计算机的,到底是什么组成了那个看不见的网络。
二、收获
1. 首先我知道计算机网络的分类组成,知道局域网,城域网,广域网是什么意思。知道学校其实就是一个局域网,我们每天都会用到的172.18.20.5无线网其实就是局域网。
2. 知道计算机之间是通过传输媒体完成传输,有形媒介和无形媒介,知道双绞线是什么,我们宿舍里用的网线就是双绞线,里面有八根线,每两根在一起。
3. 计算机的数据在传输过程中其实要经过一个复杂的程序,从一个用户到另一个用户,数据分别要经过应用层,表示层,会话层,传输层,网络层,数据链路层,最终的物理层。
4. 所有的资源共享得益于遵照相同的协议,例如TCP/IP协议,不同的层次之间也会有一个标准的协议进行传输。
5.了解IP 地址的组成,网络号,主机号,A 类、B 类、C 类。路由器IP 地址的配置,网络传输过程中的加密等问题。
‘贰’ 计算机网络笔记——数据链路层(停等协议、GBN、SR)
流量控制:防止发送端发送和接收端接收速度不匹配造成传输错误
传输层和数据链路层均有流量控制,但是控制手法不一样
传输层:端到端,接收端向发送端发送一个窗口公告。告诉发送端目前我能接收多少
数据链路层:点到点,接收端接收不下的就不回复确认(ack),让发送端自己重传
涉及协议较多分批写
优点 :最简单的控制协议
缺点 :但是性能较弱,信道利用率低
控制方法 :
发送方:发送一个帧
接收方:接收到帧后返回改帧的ack
发送方:接收到ack后发送下一个帧
差错控制 :
注意 :
滑动窗口协议是基于停止等待协议的优化版本
停止等待协议性能是因为需要等待ack之后才能发送下一个帧,在传送的很长时间内信道一直在等待状态
滑动窗口则利用缓冲思想,允许连续发送(未收到ack之前)多个帧,以加强信道利用
窗口 :其实就是缓冲帧的一个容器,将处理好的帧发送到缓冲到窗口,可以发送时就可以直接发送,借此优化性能。一个帧对应一个窗口。
GBN是滑动窗口中的一种,其中 发送窗口 > 1 , 接收窗口=1 因发送错误后需要退回到最后正确连续帧位置开始重发,故而得名。
控制方法 :
发送端:在将发送窗口内的数据连续发送
接收端:收到一个之后向接收端发送累计确认的ack
发送端:收到ack后窗口后移发送后面的数据
累计确认 :累计确认允许接收端一段时间内发送一次ack而不是每一个帧都需要发送ack。该确认方式确认代表其前面的帧都以正确接收到
eg:发送端发送了编号 0,1,2,3,4,5 的帧,等待一段时间后(超过3的超时计时器)累计收到的ack对应 0,2 帧,则证明已经成功 0,1,2 均已经成功接收, 3 传输错误。并且哪怕 4,5 两个帧接收成功后也不会返回 4,5 的ack会一直等待从 3 开始重传
差错控制 :
发送帧丢失、ack丢失、ack迟到 等处理方法基本和停等协议相同,不同的是采用累计确认恢复的方式,当前面的帧出错之后后面帧无论是否发送成功都要重传
优点:信道利用率高(利用窗口有增加发送端占用,并且减少ack回复次数)
缺点:累计确认使得该方法只接收正确顺序的帧,而不接受乱序的帧,错误重传浪费严重
发送窗口大小问题
窗口理论上是越多性能越好,但是窗口不能无限大,n比特编码最大只能2^(n-1)个窗口,否则会造成帧无法区分(本质就是留了一个比特区分两组帧)
SR协议可以说是GBN的plus版本,在GBN的基础上改回每一个帧都要确认的机制,解决了累计确认只接收顺序帧的弊端只需要重发错误帧。
其中 发送窗口 > 1 , 接收窗口 > 1 , 接收窗口 > 发送窗口 (建议接 收窗口 = 发送窗口 接收窗口少了溢出多了浪费).
控制方法 :
发送端:将窗口内的数据连续发送
接收端:收到一个帧就将该帧缓存到窗口中并回复一个ack
接收端:接收到顺序帧后将数据提交给上层并接收窗口后移(若接收到的帧不是连续的顺序帧时接收窗口不移动)
发送端:接收到顺序帧的ack后发送窗口后移(同理发送窗口接收到的ack不连续也不移动)
差错控制 :
发送帧丢失、ack丢失、ack迟到 三类处理方式仍然和停等协议相同,不同的是SR向上层提交的是多个连续帧,停等只提交一个帧(不连续的帧要等接收或重传完成后才会提交)
发送窗口大小问题
同GBN一样,发送窗口和接收窗口都不能无限多,且不说缓存容量问题,当两组帧同时发送时会造成无法区分,大小上限仍然是2^(n-1)个窗口(本质就是留了一个比特写组号)
窗口大小这里留一张截图,方便理解
假设窗口大小都为3(图中编号到了3是借4窗口的图,正常应编号到2,但是不妨碍理解)
左边是错误重发,第一组的0帧ack丢失了
右边是正常收发
三种协议对比:
停等协议:单线程的傻子,简单不易出错,但是效率极其低下
GBN:假的多线程(接收端太坑啦),接收端是情种,只等待自己哪一个帧,丢弃了后来的帧
SR:多线程,接收端有收藏癖,等待集齐一套召唤神龙(提交给上层这只神龙……)
‘叁’ 计算机网络第4章(网络层)
计算机网络微课堂 的笔记整理
笔记也放到了 我的github 和 我的gitee 上
一种观点:让网络负责可靠交付
发送方 发送给 接收方 的所有分组都沿着同一条虚电路传送
另一种观点:网络提供数据报服务
发送方 发送给 接收方 的分组可能沿着不同路径传送
A类地址
B类地址
C类地址
练习
IP 地址的指派范围
一般不使用的特殊的 IP 地址
IP 地址的一些重要特点
(1) IP 地址是一种分等级的地址结构 。分两个等级的好处是:
(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口 。
(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络 ,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
在 ARPANET 的早期,IP 地址的设计确实不够合理:
如果想要将原来的网络划分成三个独立的网路
所以是否可以从主机号部分借用一部分作为子网号
基本思路
划分为三个子网后对外仍是一个网络
举例
例子1
例子2
默认子网掩码
无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
举例
给定一个IPv4地址快,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址
划分子网的IPv4就是定长的子网掩码
举例
无分类编址的IPv4就是变长的子网掩码
举例
举例
源主机如何知道目的主机是否与自己在同一个网络中,是直接交付,还是间接交付?
主机C如何知道路由器R的存在?
路由器收到IP数据报后如何转发?
假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值
接下来路由器对该IP数据报进行查表转发
路由器是隔离广播域的
静态路由配置
举例
默认路由
举例
默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的
特定主机路由
举例
有时候,我们可以给路由器添加针对某个主机的特定主机路由条目
一般用于网络管理人员对网络的管理和测试
静态路由配置错误导致路由环路
举例
假设将R2的路由表中第三条目录配置错了下一跳
这导致R2和R3之间产生了路由环路
聚合了不存在的网络而导致路由环路
举例
正常情况
错误情况
解决方法
网络故障而导致路由环路
举例
解决方法
添加故障的网络为黑洞路由
‘肆’ 计算机网络自学笔记:选路算法
网络层必须确定从发送方到接收方分组所经过的路径。选路就是在网络中的路由器里的给某个数据报确定好路径(即路由)。
一 台主机通常直接与一台路由器相连接,该路由器即为该主机的默认路由器,又称为该主机的默认网关。 每当某主机向外部网络发送一个分组时,该分组都被传送给它的默认网关。
如果将源主机的默认网关称为源路由器,把目的主机的默认网关称为目的路由器。为一个分组从源主机到目的主机选路的问题于 是可归结为从源路由器到目的路由器的选路问题。
选路算法的目标很简单:给定一组路由器以及连接路由器的链路,选路算法要找到一条从源路由器到目的路由器的最好路径,通常一条好路径是指具有最低费用的路径。
图 G=(N,E)是一个 N 个节点和 E 条边的集合,其中每条边是来自 N 的一对节点。在网 络选路的环境中,节点表示路由器,这是做出分组转发决定的节点,连接节点的边表示路由 器之间的物理链路。
一条边有一个值表示它的费用。通常一条边的费用可反映出对应链路的物理长度、链路速度或与该链路相关的费用。
对于 E 中的任一条边(xy)可以用 c(xy )表示节点 x 和 y 间边的费用。一般考虑的都是无向 图,因此边(xy)与边(y x)是相同的并且开销相等。节点 y 也被称为节点 x 的邻居。
在图中为各条边指派了费用后,选路算法的目标自然是找出从源到目的间的最低费用路径。图 G=(N,E)中的一条路径(Path)是一个节点的序列,使得每一对以(x1,x2), (x2,x3),…,是 E 中的边。路径的费用是沿着路径所有边费用的总和。
从广义上来说,我们对 选路算法分类的一种方法就是根据该算法是全局性还是分布式来区分的。
.全局选路算法: 用完整的、全局性的网络信息来计算从源到目的之间的最低费用路径。
实际上, 具有全局状态信息的算法常被称作链路状态 LS 算法, 因为该算法必须知道网络中每条链路的费用。
.分布式选路算法: 以迭代的、分布式的方式计算出最低费用路径。通过迭代计算并与相邻节点交换信息,逐渐计算出到达某目的节点或一组目的节点的最低费用路径。
DV 算法是分布式选路算法, 因为每个节点维护到网络中的所有其他节点的费用(距离)估计的矢量。
选路算法的第二种广义分类方法是根据算法是静态的还是动态的来分类。
一: 链路状态选路算法 LS
在链路状态算法中,通过让每个节点向所有其他路由器广播链路状态分组, 每个链路状态分组包含它所连接的链路的特征和费用, 从而网络中每个节点都建立了关于整个网络的拓扑。
Dijkstra 算法计算从源节点到网络中所有其他节点的最低费用路径.
Dijkstra 算法是迭代算法,经算法的第 k 次迭代后,可知道到 k 个目的节点的最低费用路径。
定义下列记号:
D(V)随着算法进行本次迭代,从源节点到目的节点的最低费用路径的费用。
P(v)从源节点到目的节点 v 沿着当前最低费用路径的前一节点(,的邻居)。
N`节点子集;如果从源节点到目的节点 v 的最低费用路径已找到,那么 v 在 N`中。
Dijkstra 全局选路算法由一个初始化步骤和循环组成。循环执行的次数与网络中的节点个数相同。在结束时,算法会计算出从源节点 u 到网络中每个其他节点的最短路径。
考虑图中的网络,计算从 u 到所有可能目的地的最低费用路径。
.在初始化阶段 ,从 u 到与其直接相连的邻居 v、x、w 的当前已知最低费用路径分别初始化为 2,1 和 5。到 y 与 z 的费用被设为无穷大,因为它们不直接与 u 连接。
.在第一次迭代时, 需要检查那些还未加到集合 N`中的节点,找出在前一次迭代结束时具有最低费用的节点。那个节点是 x 其费用是 1,因此 x 被加到集合 N`中。然后更新所有节点的 D(v),产生下表中第 2 行(步骤)所示的结果。到 v 的路径费用未变。经过节点 x 到 w 的 路径的费用被确定为 4。因此沿从 u 开始的最短路径到 w 的前一个节点被设为 x。类似地, 到 y 经过 x 的费用被计算为 2,且该表项也被更新。
.在第二次迭代时 ,节点 v 与 y 被发现具有最低费用路径 2。任意选择将 y 加到集合 N` 中,使得 N’中含有 u、x 和 y。通过更新,产生如表中第 3 行所示的结果。
.以此类推…
当 LS 算法结束时,对于每个节点都得到从源节点沿着它的最低费用路径的前继节点, 对于每个前继节点,又有它的前继节点,按照此方式可以构建从源节点到所有目的节点的完 整路径。
根据从 u 出发的最短路径,可以构建一个节点(如节点 u)的转发表。
二 距离矢量选路算法 DV
LS 算法是一种使用全局信息的算法,而距离矢量算法是一种迭代的、异步的和分布式的算法。
Bellman-Ford 方程:
设 dx(y)是从节点 x 到节点 y 的最低费用路径的费用,则有 dx(y) = min {c(x,v) + dv(y) }
PS: 方程中的 min,是指取遍 x 的所有邻居。
Bellman-Ford 方程含义相当直观,意思是从 x 节点出发到 y 的最低费用路径肯定经过 x 的某个邻居,而且 x 到这个邻居的费用加上这个邻居到达目的节点 y 费用之和在所有路径 中其总费用是最小的。 实际上,从 x 到 v 遍历之后,如果取从 v 到 y 的最低费用路径,该路 径费用将是 c(x,v)+ dv(y)。因此必须从遍历某些邻居 v 开始,从 x 到 y 的最低费用是对所有邻 居的 c(x,v)+dv(y)的最小值。
在该 DV 算法中,当节点 x 看到它的直接相连的链路费用变化,或从某个邻居接收到一 个距离矢量的更新时,就根据 Bellman-Ford 方程更新其距离矢量表。
三 LS 与 DV 选路算法的比较
DV 和 LS 算法采用不同的方法来解决计算选路问题。
在 DV 算法中,每个节点仅与它的直接相连邻居交换信息,但它为它的邻居提供了从其 自己到网络中(它所知道的)所有其他节点的最低费用估计。
在 LS 算法中,每个节点(经广播)与所有其他节点交换信息,但它仅告诉它们与它直接 相连链路的费用。
·报文复杂性:
LS 算法要求每个节点都知道网络中每条链路的费用,需要发送 O(nE)个消息。
DV 算法要求在每次迭代时,在两个直接相连邻居之间交换报文,算法收敛所需的时间 依赖于许多因素。当链路费用改变时,DV 算法仅当在会导致该节点的最低费用路径发生改 变时,才传播已改变的链路费用。
·收效速度:
DV算法收敛较慢,且在收敛时会遇到选路环路。DV算法还会遭受到计数到无穷的问题。
•健壮性: 在 LS 算法中,如果一台路由器发生故障、或受到破坏,路由器会向其连接的链路广播 不正确费用,导致整个网络的错误。
在 Dv 算法下, 每次迭代时,其中一个节点的计算结果会传递给它的邻居,然后在下次迭代时再间接地传递给邻居的邻居。在这种情况下,DV 算法中一个不正确的计算结果也会扩散到整个网络。
四.层次选路
两个原因导致层次的选路策略:
•规模: 随着路由器数目增长,选路信息的计算、存储及通信的开销逐渐增高。
•管理自治: 一般来说,一个单位都会要求按自己的意愿运行路由器(如运行其选择的某 种选路算法),或对外部隐藏其内部网络的细节。
层次的选路策略是通过将路由器划分成自治系统 AS 来实施的。
每个 AS 由一组通常在相同管理控制下的路由器组成(例如由相同的 ISP 运营或属于相同 的公司网络)。在相同的 AS 内的路由器都全部运行同样的选路算法。
在一个自治系统内运行的选路算法叫做自治系统内部选路协议。 在一个 AS 边缘的一台 或多台路由器,来负责向本 AS 之外的目的地转发分组,这些路由器被称为网关路由器
在各 AS 之间,AS 运行相同的自治系统间选路协议。