登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

银河里的星星

落在人间

 
 
 

日志

 
 

路由算法 tcp协议  

2009-09-14 23:39:11|  分类: 技术专题 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

由于整个网络是非常巨大的,如果想把整个网络上的主机看成同样的层次,运行相同路由算法,这根本是不可行的。实际的网络是通过分层的思想,将数量庞大的主机联系起来。将整个internet划分成很多不同的自治系统,自治系统内部运行一个路由算法,自治系统之间通过边界路由器进行通讯,这样一个分层系统实际上通过一个默认网关地址联系起来,我们可以注意到前面一篇文章中的网络地址0.0.0.0,这个是默认网关地址,即自治系统接入主干网的入口,如果本自治系统内无法找到目标地址,就要交给上层主干网,因为它跨越了不同的区域,这样两个层次在包传递的过程中就联系起来了。

路由算法主要掌握三个,其中两个是内部网关协议:RIP和OSPF;另一个属于外部网关协议:BGP

RIP:路由信息协议。该协议主要用在机子比较少时,基于UDP协议,所以属于应用层协议。

通过将它的路由表发送给相邻节点,然后相邻节点根据收到的这个路由表对自己的路由表进行更新,从而逐步达到计算出节点本身与整个网络其他节点的路由可达信息。也就是说节点A,收到节点B的路由表后,它会将节点B的到其他节点的距离+1,与节点A当前的路由表信息比较,决定是否更新。该协议有个缺点,就是坏消息更新慢,也就是说当一个节点变得不可达之后,其他节点要经历很长时间才能做出反应,这是因为其他节点都还认为可以到达该节点,而要判断出它不可达,必须当计算出的路径长度大于一个最大值之后。

OSPF:开放最短路径优先。基于IP协议,属于网络层协议。

该协议通过将它与相邻节点的路径信息发送到所有其他节点,这样最后每个节点将得到关于整个网络的拓扑信息,然后利用这个信息,运行djsktra算法,就计算出了节点间的路径。

BGF:边界网关协议。该协议基于TCP,所以属于应用层协议。

但是它是运行在更上层的路由器之间,这些路由器都是自治系统选出来的发言人。由于网络十分巨大,通常有几万台,因此不能再按照自治系统内部的路由算法。主要通过自治系统的发言人之间交换网络可达性信息(即到达某个网络要经过的一系列自治系统),然后上次的路由器把这些信息再发送给下面的路由器,最后达到计算路由的目的。


tcp协议:

通过编号和确认,保证数据传输的可靠性。以第一个字节在整个数据中的序号为seq,然后以接受到的数据的最高序号的下一个字节序号为ack,也就是下一个需要传的字节号为确认号。一般来说要保存一个数据的副本,如果未收到ack,超时后则进行重发。

通过接受端和发送者协议发送窗口大学,可以防止拥塞。整个过程如下所示,可以进行拥塞控制

网际路由算法 tcp协议 - 星星 - 银河里的星星


另外tcp连接建立时还有一个三次握手过程,之所以进行第三次握手,是为了防止接受者收到已失效的连接请求报文段时建立连接。

比如当A向B发送了一个连接请求,但是由于数据包在网上很久没有到达,于是A取消了这次连接,又发起了新的一个连接。这样原来的第一次连接请求就是无效的了,如果过了一段时间,这个数据包又到达了B处。如果B不向A进行确认,而是认为这就是一个请求,那么它就会建立连接,开始等待A发送数据,但是实际上A已经取消了这个连接请求。所以有必要让A再确认该请求的确还存在。

 转载请注明作者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/709717672009814113911677/

  评论这张
 
阅读(1122)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018