导航:首页 > 源码编译 > 协议算法

协议算法

发布时间:2022-01-31 04:47:39

㈠ 谁能帮我区分一下路由算法与路由协议

不同路由协议有不同的协议报文,也就是通告信息的方式不一样,其次每种路由协议收到其他路由器发送的信息以后最终要计算出路由,计算时使用的就叫算法,算法一般有D-V距离矢量算法(RIP,IGRP,EIGRP,BGP),L-S链路状态算法(也称SPF最短路径树算法,如ospf,isis)

㈡ 485协议交互通讯算法的问题

485是硬件不是协议,上位机和单片机这种一般是主从模式,以modbus协议为例,你上位机发一条,下位机回复一条,规定时间没没接受到相应格式回应就判断为超时,如果发多台单片机那就上位机分时发送就可以了

㈢ 1)通信网络协议或算法方面的文献,了解协议和算法描述的表现形式和方法

你可以去看下(无线通信),上面的文献都是可以免费下载查阅的

㈣ IGRP(内部网关路由协议)是基于什么算法的

IGRP:内部网关路由协议(IGRP:Interior Gateway Routing Protocol)

内部网关路由协议(IGRP)是一种在自治系统(AS:autonomous system)中提供路由选择功能的思科专有路由协议。在上世纪80年代中期,最常用的内部路由协是路由信息协议(RIP)。尽管 RIP 对于实现小型或中型同机种互联网络的路由选择是非常有用的,但是随着网络的不断发展,其受到的限制也越加明显。思科路由器的实用性和 IGRP 的强大功能性,使得众多小型互联网络组织采用 IGRP 取代了 RIP。早在上世纪90年代,思科就推出了增强的 IGRP,进一步提高了 IGRP 的操作效率。

IGRP 是一种距离向量(Distance Vector)内部网关协议(IGP)。距离向量路由选择协议采用数学上的距离标准计算路径大小,该标准就是距离向量。距离向量路由选择协议通常与链路状态路由选择协议(Link-State Routing Protocols)相对,这主要在于:距离向量路由选择协议是对互联网中的所有节点发送本地连接信息。

为具有更大的灵活性,IGRP 支持多路径路由选择服务。在循环(Round Robin)方式下,两条同等带宽线路能运行单通信流,如果其中一根线路传输失败,系统会自动切换到另一根线路上。多路径可以是具有不同标准但仍然奏效的多路径线路。例如,一条线路比另一条线路优先3倍(即标准低3级),那么意味着这条路径可以使用3次。只有符合某特定最佳路径范围或在差量范围之内的路径才可以用作多路径。差量(Variance)是网络管理员可以设定的另一个值。

IGRP度量标准的计算公式如下:度量标准=[K1*带宽+(K2*带宽)/(256-负载)+K3*延迟]*[K5/(可靠性+K4)],默认的常数值是K1=K3=1,K2=K4=K5=0。因此,IGRP的度量标准计算简化为:度量标准=带宽+延迟。

IGRP使用复合度量值,在选择到目的地的路径方面,这种度量值比RIP单一度量值“跳数”更精确,度量值最小的路由为最佳路由。
IGRP度量值中包含以下分量:
带宽:路径中的最低带宽;
延迟:路径上的累积接口延迟;
可靠性:信源和目的地之间的链路上的负载,单位为bit/s(比特每秒);
MTU:路径上的最大传输单元。

补充内容
有关命令
任务 命令
指定使用RIP协议 router igrp autonomous-system1
指定与该路由器相连的网络 network network
指定与该路由器相邻的节点地址 neighbor ip-address

注:1、autonomous-system可以随意建立,并非实际意义上的autonomous-system,但运行IGRP的路由器要想交换路由更新信息其autonomous-system需相同。

cisco最新产品及IOS停止了对IGRP的支持 仅支持新的增强型内部网关路由协议(EIGRP)
EIGRP和IGRP为cisco专有协议 但部分华为设备也支持此两种协议

发布路由更新信息的周期是90秒

㈤ OSPF协议的SPF算法

spf算法(最短路径算法)

㈥ 算法和协议的定义和区别是什么

算法是为了达到某一目的,而做的一系列的步骤。协议是为了双方达到某一目的而规定的一系列的规则。

㈦ 综述网络访问的整个过程,并描述用到的算法和协议

我来回答这个问题吧,整个过程比较复杂,也不知道哪些步骤对你有用,就说得详细一些吧,采用分条的形式,看哪里你能用到就参考哪里吧,呵呵!

1.若DNS缓存中没有相关数据,则IE浏览器先向DNS服务器发出DNS请求:
这一过程的目的是获取www.sina.com这个域名所对应的IP地址;
IE浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;
DNS模块将生成的DNS报文传递给传输层的UDP协议单元;
UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;
IP协议单元将该数据封装成IP数据包,其中目的IP地址为DNS服务器的IP地址;
封装好的IP数据包将传递给数据链路层的协议单元进行发送;
发送时如果ARP缓存中没有相关数据,则发送ARP广播请求,等待ARP回应;
得到ARP回应后,将IP地址与路由下一跳MAC地址对应的信息写入ARP缓存表;
写入缓存后,以路由下一跳地址填充目的MAC地址,并以数据帧形式转发;
这个转发过程可能会进行多次,这取决于DNS服务器在校园网中的位置;
DNS请求被发送到DNS服务器的数据链路层协议单元;
DNS服务器的数据链路层协议单元解析收到的数据帧,将其内部所含有的IP数据包传递给网络层IP协议单元;
DNS服务器的IP协议单元解析收到的IP数据包,将其内部所含有的UDP数据报传递给传输层的UDP协议单元;
DNS服务器的UDP协议单元解析收到的UDP数据包,将其内部所含有的DNS报文传递给该服务器上的DNS服务单元;
DNS服务单元收到DNS请求,将域名解析为对应的IP地址,产生DNS回应报文;
(所有应用层报文必须通过传输层、网络层和数据链路层,因此在下面的叙述中,我将简化这一过程的叙述,简化形式如下面的样子,其中单箭头为本机内部传递,双箭头为网络上的发送)
DNS回应报文→UDP→IP→MAC→→请求域名解析的主机;
请求域名解析的主机收到数据帧,该数据帧→IP→UDP→DNS→IE浏览器;
将域名解析的结果以域名和IP地址对应的形式写入DNS缓存表。

2.IE浏览器与www.sina.com.cn建立TCP连接:
IE浏览器向www.sina.com.cn发出TCP连接请求报文;
该请求TCP报文中的SYN标志位被设置为1,表示连接请求;
该TCP请求报文→IP(DNS)→MAC(ARP)→→校园网关→→www.sina.com.cn主机;
该TCP请求报文经过IP层时,填入的目的IP地址就是上面DNS过程获得的IP地址;
经过数据链路层时,若MAC地址不明,还要进行上面所叙述的ARP过程;
www.sina.com.cn收到的数据帧→IP→TCP,TCP协议单元会回应请求应答报文;
该请求应答TCP报文中的SYN和ACK标志位均被设置为1,表示连接请求应答;
该TCP请求应答报文→IP→MAC(ARP)→→校园网关→→请求主机;
请求主机收到数据帧→IP→TCP,TCP协议单元会回应请求确认报文;
该请求应答TCP报文中的ACK标志位被设置为1,表示连接请求确认;
该TCP请求确认报文→IP→MAC(ARP)→→校园网关→→www.sina.com.cn主机;
www.sina.com.cn收到的数据帧→IP→TCP,连接建立完成;
在这个过程中,任何一个报文出错或超时,都要进行重传;
这个过程被称为TCP建立连接的三次握手。

3.IE浏览器开始HTTP访问过程
IE浏览器向www.sina.com.cn发出HTTP-GET方法报文;
该HTTP-GET方法报文→TCP→IP→MAC→→校园网关→→www.sina.com.cn主机;
www.sina.com.cn收到的数据帧→IP→TCP→HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML超文本形式数据;
HTTP-HTML数据→TCP→IP→MAC(ARP)→→校园网关→→请求主机;
请求主机收到的数据帧→IP→TCP→HTTP→IE浏览器,浏览器会以网页形式显示HTML超文本,就是我们所看到的网页。

4.断开TCP连接
IE浏览器向www.sina.com.cn发出TCP连接结束请求报文;
该请求TCP报文中的FIN标志位被设置为1,表示结束请求;
该TCP结束请求报文→IP→MAC(ARP)→→校园网关→→www.sina.com.cn主机;
www.sina.com.cn收到的数据帧→IP→TCP,TCP协议单元会回应结束应答报文;
该结束应答TCP报文中的FIN和ACK标志位均被设置为1,表示结束应答;
该TCP结束应答报文→IP→MAC(ARP)→→校园网关→→请求主机;
这个过程需要双向进行,因此www.sina.com.cn主机也会按上述流程再做一次;
整个过程被称为TCP断开连接的四次握手。

呵呵,好麻烦的一个过程对不对?我也写了好长时间诶,希望对你有所帮助!

㈧ 请写出连续arq协议的算法。

#define MAX_SEQ 7 /* 应该为2^n-1 */
typedef enum {frame_arrival, cksum_error, timeout, network_layer_ready} event_type;
#include protocal.h
static boolean between(seq_nr a, seq_nr b, seq_nr c)
{ /* 如果b落在a和c之间(含a不含c)返回true,否则返回false. */
if (((a<=b) && (b<c)) || ((c<a) && (a<=b)) || ((b<c) && (c<a)))
return(true); else return(false); }

static void send_data(seq_nr frame_nr, seq_nr frame_expected, packet buffer[])
{/* 构造和发送数据帧
frame s; /* 起始变量 */
s.info=buffer[frame_nr]; /* 插入分组到帧中 */
s.seq=frame_nr; /* 插入序号到帧中 */
s.ack=(frame_expected+MAX_SEQ) % (MAX_SEQ+1) /* 捎带应答 */
to_physical_layer(&s); /* 传送该帧 */
start_timer(frame_nr); }
/* 启动定时器 */
void protocal5(void)
{seq_nr next_frame_to_send; /* MAX_SEQ>1; 用于外出流 */
seq_nr ack_expected; /* 还没有得到应答的最早的帧 */
seq_nr frame_expected; /* 进入流期望的下一帧 */
frame r; /* 初始变量 */
packet buffer[MAX_SEQ+1] /* 外出流的缓存 */
seq_nr nbuffered; /* 当前正在使用的输出缓存 */
event_type event;
enable_network_layer(); /* 允许 network_layer_ready 事件 */
ack_expected = 0; /* 下一个期望进入的应答 */
next_frame_to_send = 0; /* 下一个要送出的帧 */
frame_expected = 0; /* 期望进入的帧的序号 */
nbuffered = 0; /* 初始没有分组被缓存 */
while (true) {
wait_for_event ( &event); /* 四种可能的事件,见上面event_type定义 */
switch (event) {
case network_layer_ready; /* 网络层有一个分组要发送 */
/* 接收, 保存, 以及发送一个新的帧 */
from_network_layer(&buffer[next_frame-to_send]); /* 获得一个新的分组 */
nbuffered = nbuffered + 1; /* 增加发送方的窗口 */
send_data(next_frame_to_send, frame_expected, buffer); /* 发送帧 */
inc(next_frame_to_send); /* 发送方的窗口上界向前移动 */
break;
case frame_arrival: /* 一个数据帧或控制帧到达 */
from_physical_layer(&r); /* 从物理层得到一个进入的帧 */
if (r.seq == frame_expected) {
/* 所有的帧只能按序接收. */
to_network_layer(&r.info); /* 传递分组到网络层 */
inc(frame_expected); /* 接收方的窗口下界向前移动 */ }
/* Ack n 意味着n-1,n-2,
while (between(ack_expected, r.ack, next_frame_to_send))
{ /* 处理捎带应答 */
nbuffered = nbuffered + 1; /* 减少一个缓存的帧 */
stop_timer(ack_expected); /* 帧完好到达, 停止定时器 */
inc(ack_expected); /* 压缩发送窗口 */
}
break;
case cksum_err: break; /* 丢弃坏帧 */
case time_out: /* 重传所有超时的帧 */
next_frame_to_send = ack_expected; /* 开始重传 */
for (i = 1; i <= nbuffered; i ++) {
send_data(next_frame_to_send, fram_expected, buffer); /* 重发1帧 */
inc(next_frame_to_send); /* 准备发送下一帧 */
if (nbuffered < MAX_SEQ)
enable_network_layer();
else
disable_network_layer();

注: 算法中所有调用的未说明的过程和函数在protocal.h中定义。

㈨ 简单生成树协议的算法原理

STP的工作过程是:首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID,桥ID最小的网桥将成为网络中的根桥,它的所有端口都连接到下游桥,所以端口角色都成为指定端口。接下来,连接根桥的下游网桥将各自选择一条“最粗壮”的树枝作为到根桥的路径,相应端口的角色就成为根端口。循环这个过程到网络的边缘,指定端口和根端口确定之后一棵树就生成了。生成树经过一段时间(默认值是30秒左右)稳定之后,指定端口和根端口进入转发状态,其他端口进入阻塞状态。STP BPDU会定时从各个网桥的指定端口发出,以维护链路的状态。

㈩ 停止等待协议的停止等待协议的算法

这里不使用否认帧(实用的数据链路层协议大都是这样的),而且确认帧带有序号 n。
按照习惯的表示法,ACKn 表示“第 n – 1 号帧已经收到,现在期望接收第 n 号帧”。
ACK1 表示“0 号帧已收到,现在期望接收的下一帧是 1 号帧”;
ACK0 表示“1 号帧已收到,现在期望接收的下一帧是 0 号帧”。

阅读全文

与协议算法相关的资料

热点内容
linuxvi下一个 浏览:973
安卓手机的应用锁怎么解 浏览:733
linux增加路径 浏览:845
sql身份证号最后四位加密 浏览:533
xp系统表格加密 浏览:854
光遇安卓军大衣什么时候上线 浏览:838
android应用商店图标 浏览:341
java计算圆的面积 浏览:643
应用编译优化recovery 浏览:577
域控命令n 浏览:258
php导出文件 浏览:13
谷歌地图网页版无法连接服务器地址 浏览:298
菜鸟工具在线编译python 浏览:858
栅格化命令有何作用 浏览:823
为什么压缩文件不能解压 浏览:311
足球app哪个软件好 浏览:96
产品经理逼疯程序员的一天 浏览:17
修改svn服务器ip地址 浏览:584
下列关于编译说法正确的是 浏览:246
java马克思 浏览:118