路由器距离向量算法计算举例_路由器基本原理是什么 路由器基本发展情况介绍【图文】...

  PLC路由器原理和ARR

  路由器基本原理

  要实现网络中通信节点彼此之间的通信,首先必须给每个节点分配一个唯一的IP地址。路由器应该至少有两个网络端口,分别连接LAN或者WAN子网上,每个端口必须具有一个唯一的IP地址,并且要求与所连接IP子网的网络号相同。不同的端口有不同的网络号,对应不同的IP子网,这样各子网中的主机才能通过自己子网的IP地址把要求发出去的IP数据报送到路由器上。当路由器收到一份IP数据报后,首先要对该报文进行判断,然后根据判断的结果做进一步的处理。如果数据报是有效或正确的,路由器就根据数据报的目的IP地址转发该报文:否则就把报文丢弃。如果这个数据报的目的IP地址与路由器直接相连的一个子网上,路由器会通过相应的接口把报文转发到目的子网上去;否则会把它转发到下一跳(Hop)路由器。

  为了完成上述的操作,每台路由器必须维护一个路由表。把对应不同目的地的最佳路径存放在路由表中,这就是路由策略(Routing Policy)问题。路由表反映网络的拓扑结构,一般一条表项应该包含数据报的目的IF地址(通常是目的主机所在网络的地址)、下一跳路由器的地址和相应的网络接口等,在网络拓扑发生变化的时候,路由表也应该做相应的变动。所以路由器必须能够生成并更新路由表。

  选路机制实际上就是如何查找路由表,通过查询路由表来决定向哪个方向转发数据。一般来说,路由器首先搜索匹配的主机地址:如果没有,再搜索匹配的网络地址:最后搜索默认路由。一旦查到匹配的表项,路由器就会把数据从相应的接口发送出去。路由器具备上述各要素后,就可以完成数据转发任务了。另外,路由器不仅负责对1P包的转发,还要负责与别的路由器进行联络,共同确定互联网的路由选择和路由表的更新维护。

  发展情况及存在问题

  路由器体系结构主要经历了4次大的变迁:

  1) 单机集中式总线结构。

  2) 单机分布式共享总线结构。

  3) 单机分布式Crossbar结构。

  4) 多机互连的集群结构

  变迁的主线是这样的:由使用通用功能器件过渡到使用专用器件;由系统的串行操作过渡到并行操作。器件的专用化程度越高,意味着系统的一些关键运算可以采用独立的物理器件来完成,提高系统性能。

  另一方面,进行并行化处理.提高系统的并行化度,在提高系统性能方面一直都有广泛的应用,在路由器领域的应用当然也是自然的是工作在网络体系结构中的网络层上的,因而它可以获得更多的网络信息,它的功能相对丰富。路由器是目前组网,尤其是组建广域网络或大规模网络时使用最多的网络互连设备之一,它具有更强大的异种网互联的能力。路由器的基本功能如下:

  (1) 截获发送到远程网络的报文,根据相应的路由算法,选择最合理的路由,对该报文进行转发。

  (2) 为了便于网络间传送报文,路由器可以将大的数据包分成小的数据包,每个数据包单独选路转发,在目的主机再将小的数据包根据其首部字段中的标识、标志、片偏移组装成原始数据包的形式。

  (3) 路由器可以连接使用不同通信协议的网络段路由器上的路由协议分为静态路由协议(非自适应协议)和动态路由协议(自适应协议)两类。在静态路由协议下使用的路由算法土要有固定路由法、分散通信最法、洪泛法、随机走动法等。这类协议的特点是简单和开销小,但不能适应网络拓朴结构及网络通信量的变化。动态路由策略有现在流行的分布式路由选择策略(属于这种策略的基本算法为有距离向量算法和链路状态算法)、集中式的路由选抒策略和混合式的路由选择策略。

  值得特别提出的是作为Internet枢纽的路由器。由于Internet的规模非常大,而H构成整个Internet的每个自治系统不愿意外界了解木单位所采用的选路协议及本单位内部的网络结构,Internet采用的是分布式的路由选择协议。按照路由器在整个网中所处的地位不同,Internet路由选择协议分为内部网关协议IGP(如RIP, HELLO, OSPF)和外部网关协议EGP(如BGP-4),内部网关协议是在一个自治系统内部使用的路由选择协议,外部网关协议用来在不同自治系统的路由器之间交换路由信息。RIP协议是一个基于距离向量的分布式路由选择协议,NSFNET最初用到的HELLO是基于路由的网络时延的协议,OSPF是一种分布式的链路状态协议,BGP基本上是一个基于距离向量协议。路由器作为Internet的核心部件, 目前正朝着速度更快、服务质量(QoS)更好、管理更加综合化的方向发展

  发展背景(出因):信道传输差错控制技术一般来说 ,降低信道传输误码率的方法大致有两种,一是改善信道质量,降低信道自身误码率:二是采取一定的差错控制传输技术来降低因信道误码引起的传输错误。在实际使用中,信道质量的改善可能不切实际,因此采用差错控制的方法来解决信道传输误码是一个好的选择。

  数据传输的差错控制技术就是在数据码流中人为地插入一些冗余数据,使其具有自动检错或纠错的能力,从而减少信息序列在传输过程中造成的误码。传输差错控制的方法大致可分为2类:利用纠错码的前向纠错(FEC)和利用检错码的自动重传请求(ARQ)。图是差错控制传输的类型示意图。

f60fc010267095c312951d77e1157c8f.png

  基本定义或原理:

  对于常用的ARQ协议来说,可分为两种:①发送并等待ARQ:②连续ARQ.

  在发送并等待ARQ协议中,发送方每发送一个信息包就等待接收方对其收到的包作出确认;在连续ARQ中,发送方不是发送每个信息包后就暂停,而是接连发送一行中几个包后才暂停。接收方检查每个信息包并确认信号给发送方。在一组信息包全部发送完之后,发送方再重新发送出错的信息包.

  重新发送出错的信息包也有两种方式:在“退回N”的连续ARQ方式中,发送方重新发送第一个出错的信息包及同组的所有后继信息包:在“选择性重传”的连续ARQ方式中,只重新发送传输出错的信息包.尽管发送并等待ARQ协议明显地缺乏效率,当它的实现却相对容易,消耗的系统资源也很少,连续ARQ协议与之相比更需要编程技巧。

  在ARQ方案中。接收端放弃有差错的数据分组,并通过反馈通道〔返回通道)发出请求对同一数据分组的重传。重传一直持续到这一数据分组被成功地接收到为止山于这一过程较简单且使系统具有可靠性,因此在数据通信的差错控制中得到了广泛的应用。不过,ARQ方案的执行依赖于信息差错率和往返行程时延。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 常用命令整理(持续更新)

#配置 git config --global user.name "Your Name" git config --global user.email "emailexample.com" #注意git config命令的--global参数,用了这个参数,表示这台机器上所有的Git仓库都会使用这个配置,当然也可以对某…

LintCode MySQL 1918. 第二高的球员的身高

文章目录1. 题目2. 解题1. 题目 编写一个 SQL 语句,获取球员 (players) 表中第二高的身高 (height) 表定义: players (球员表) https://www.lintcode.com/problem/1918 2. 解题 if(a,b,c), a true,执行 b, 否则 c -- Write your SQL Que…

matlab多种分配方案_基于MATLAB的水资源优化分配问题动态规划解法

基于MATLAB的水资源优化分配问题动态规划解法摘要:介绍了动态规划的基本原理,针对水资源分配问题进行了动态规划方法分析。针对具体问题采用逆序解法的表格法进行了计算,然后用matlab编制了相应的计算程序进行计算,避免了繁琐的人…

python中使用opencv_如何在Python中使用OpenCV Stitcher类?

你正确使用它,因为某些原因导致进程失败. 结果元组的第一个值是错误代码,0表示成功.这里你得到1,这意味着,根据stitching.hpp,这个过程需要更多的图像. enum Status { OK 0, ERR_NEED_MORE_IMGS 1, ERR_HOMOGRAPHY_EST_FAIL 2, ERR_CAMERA_PARAMS_ADJUST_FAIL 3 }; ERR_NEE…

《高可用MySQL》2 – 单机版MySQL主从配置

这里搭建的主从是最简单的单一主从复制(即一个Master和一个slave,没有任何的热机备份和多slave),该主从结构的基本拓扑图如下所示: 建立基本的主从复制可以总结为以下三个基本步骤: 配置master服务器配置sl…

LintCode MySQL 1936. 张三的故事 III

文章目录1. 题目2. 解题1. 题目 记者调查发现,张三所在学校还有一金牌教师,其所带的学生毕业后人均知名学府。 记者对该老师所教的学生的情况产生了好奇。 students 表中记录了学生的姓名以及班级 (class_id),classes 表中记录了班级的名称以…

语言4位bcd码怎么加加_S7300400如何使用SCL语言调用SFC1(READ_CLK)读取日期和时间?...

系统功能 SFC1 用于读取 CPU 的系统时钟。系统时钟存储在数据类型为DATE_AND_TIME的变量里。通过指针访问系统时钟的单个组成元素。数据类型DATE_AND_TIME所包含的关于年、月、日、时等信息是以 BCD 码的格式存储在 8 个字节里。该数据类型显示的范围是:DT#1990-1-1…

php数据库操作命令精华大全

1、表结构//列信息2、表数据//行信息3、表索引//把列中的行加到索引中(一般情况下一个表一定要把id这一列的所有数据都加到主键索引中) 2、[dos下]关闭mysql:net stop mysql开启mysql:net start mysql登陆mysql:mysql -uroot -p123 --teec:\mysql.log查看…

python装饰器与闭包_python 装饰器和闭包

装饰器 就是函数 功能是为其他函数添加附加功能 def timer(func): def inner(*args,**kwargs): print("执行装饰器") return func(*args,**kwargs) return inner 使用装饰器 timer def test(l): for i in range(l): print(i) test(100) 函数也可以成为对象 l test .…

LintCode MySQL 1932/1933. 挂科最多的同学 I / II

文章目录1. 题目2. 解题1. 题目 exams 表中存放着同学们的考试记录 请用 SQL 语句,找到挂科数最多的同学所对应的 student_id https://www.lintcode.com/problem/1932 2. 解题 -- Write your SQL Query here -- -- example: SELECT * FROM XX_TABLE WHERE XXX…

python 画三角函数_python,将三角函数绘制成二维数组

看起来a, b, c是常量&#xff0c;z是a和{}之间的np.linspace。在a 1 b 2 c 3 def triangle (z, a a, b b, c c): y np.zeros(z.shape) y[z < a] 0 y[z > c] 0 first_half np.logical_and(a < z, z < b) y[first_half] (z[first_half]-a) / (b-a) second…

python中遍历列表enumerate函数_python遍历序列enumerate函数浅析

enumerate函数用于遍历序列中的元素以及它们的下标。enumerate函数说明&#xff1a;函数原型&#xff1a;enumerate(sequence, [start0])功能&#xff1a;将可循环序列sequence以start开始分别列出序列数据和数据下标即对一个可遍历的数据对象(如列表、元组或字符串)&#xff0…

SuperSlide

SuperSlide 致力于解决网站大部分特效展示问题&#xff0c;使网站代码规范整洁&#xff0c;方便维护更新。网站上常用的“焦点图/幻灯片”“Tab标签切换”“图片滚动”“无缝滚动”等只需要一个SuperSlide即可解决&#xff01;从此无需网上苦苦寻觅特效&#xff0c;无需加载n个…

LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)

文章目录1. 题目2. 解题1. 题目 给你一个仅由字符 ‘0’ 和 ‘1’ 组成的字符串 s 。 一步操作中&#xff0c;你可以将任一 ‘0’ 变成 ‘1’ &#xff0c;或者将 ‘1’ 变成 ‘0’ 。 交替字符串 定义为&#xff1a;如果字符串中不存在相邻两个字符相等的情况&#xff0c;那…

python内置的集成开发工具是什么_python内置的集成开发工具是什么_后端开发

go语言之goroute协程_后端开发 协程&#xff08;coroutine&#xff09;是Go语言中的轻量级线程实现&#xff0c;由Go运行时&#xff08;runtime&#xff09;管理。下面就来由go入门教程栏目介绍一下go语言中的goroute协程。python内置的集成开发工具是什么 Python自带的集成开发…

python槽格式里填啥_用于填充插槽的网络挂钩

有时将param设置为required是不够的&#xff0c;因为您不仅需要该param存在&#xff0c;而且需要以特定的格式显示&#xff0c;还有一种使用events的替代方法。在有多个步骤&#xff0c;但一旦你熟悉了&#xff0c;你会做得很快。在1)创建2个新的意图&#xff1a;Year - Confir…

SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中

最近&#xff0c;电脑重装系统之后&#xff0c;安装了SQL Server 2008。附加数据库文件的时候&#xff0c;发现无法附加&#xff0c;提示版本不对。想起来&#xff0c;原来的数据库版本是SQL Server 2008R2。低版本的数据库管理工具无法兼容高版本的数据库文件&#xff0c;所以…

python语言的注释语句引导符_Python 为什么用 # 号作注释符?

关于编程语言中的注释&#xff0c;其重要性基本上已为大家所共识。 然而关于注释的规范&#xff0c;这个话题就像我们之前聊过的缩进、终止符和命名方式一样&#xff0c;众口难调。 注释符通常可分为两种&#xff0c;即行注释与块注释&#xff08;inline/block&#xff09;&…

python 白化_MeteoInfo和Python显著性检验

MeteoInfo显著性检验&#xff1a;MeteoInfo官网&#xff1a;http://www.meteothink.org源代码&#xff1a;https://github.com/meteoinfofn F:/RMeteoInfo/data/test.txtny 71nx 144m ny * nxn 62ss1 asciiread(fn, shape(71,144,n))ss1 ss1[::-1,::1,:]X ss1.reshape(…

最新版本_adt-bundle-windows-x86_64-20140702 无法建立avd

问题描述不是说:"__ADT Bundle包含了Eclipse、ADT插件和SDK Tools&#xff0c;是已经集成好的IDE&#xff0c;只需安装好Jdk即可开始开发&#xff0c;推荐初学者下载ADT Bundle&#xff0c;不用再折腾开发环境。"为什么我下了最新的 版本,还是无法建立 AVD.解决方案1…