《网络协议》路由协议

概述

在互联网中,网络结构是相当复杂的(存在复杂的局域网或广域网),若想要将数据包从一个主机成功发送到目的主机,则需要合理的路由将数据转发最终发送到目的主机。而要使路由能够正确的工作,需要路由控制模块和相关的路由协议来支持路由的工作。

路由控制

互联网是由路由器连接的网络组合而成,为了能让数据包正确到达目的主机,路由器必须能够正确的转发数据包,对数据包的转发处理需要路由控制来进行。路由器根据路由控制表来转发数据包,它根据接收到数据包中目主机的 IP 地址与路由控制表比较得出下一个应该接收数据包的路由器。因此,路由控制表应该正确记录信息。

路由控制可分为:静态路由动态路由;静态路由是指由管理员事先手动设置好路由器和主机中并将路由信息固定的一种方法;动态路由是指让路由协议在运行过程中自动设置路由控制信息的一种方法;

路由算法

最基本的算法是距离向量算法和链路状态算法:

  1. 距离向量算法:是根据距离和方向决定目标网络或目标主机的位置的一种方法。路由器之间可以互换目标网络的距离和方向相关信息,并以这些信息为基础制作路由控制表。
  2. 链路状态算法:是路由器在了解网络整体连接状态的基础上生成的路由控制表的一种方法。该方法中每个路由器必须保持同样的信息才能进行路由选择。

距离路由算法中每个路由器的信息都不同,通往每个网络所耗的距离也根据路由器的不同而不同。因此,该算法的一个缺点是不能判断路由器上的信息是否正确。

链路状态算法所以路由器所持的信息都相同,对任何一台路由器,网络拓扑都一样。因此,只要某一台路由器与其他路由器保持的同样的路由控制信息,则该路由器上的信息就是正确的。只要每个路由器尽快的与其他路由器保持同步的路由信息,就可以使路由信息到达一个稳定的状态。因此,即使网路结构再复杂,每个路由器也能保持正确的路由信息、进行稳定的路由选择。

路由协议

路由协议大致可分为两类:用于同一自治系统各路由器之间的内部网关协议(Interior Gateway Protocol,IGP)和用于不同自治系统内部路由器通信的外部网关协议(Exterior Gateway Protocol,EGP)。

IP 地址分为网络部分和主机部分,他们有各自的分工。IGP 与 EPG 的关系类似 IP 地址的网络部分和主机部分的关系,就像根据 IP 地址的网络部分可以在网路之间进行路由选择、根据 IP 地址主机部分在链路内部进行主机识别一样。可以根据 EGP 在区域网络之间进行路由选择、根据 IGP 在区域网络内部进行主机识别。

---IGP 协议主要有:RIP(Routing Information Protocol,路由信息协议)RIP2OSPF(Open Shortest Path First,开放式最短路径优先)

---EGP 协议主要有:BGP(Border Gateway Protocol,边界网关协议)

RIP 协议

广播路由控制信息: RIP 将路由信息定期(30 秒一次)向全网广播,没有收到路由控制信息,连接就会被断开。没收到路由控制信息有可能是丢弃 IP 数据报所引起,因此 RIP 规定等待 5 次,若在第 6 次仍未收到路由控制信息,则真正将连接关闭。

RIP 协议是基于距离向量算法确定路径。距离的单位是“跳数”,跳数是指所经过路由器的个数。RIP 希望尽可能少的经过路由器将数据报发送到目的主机的 IP 地址。

RIP 虽然不交换子网掩码信息,但是可以用于使用子网掩码的网络环境,但必须注意以下情况:

  • 从接口 IP 地址对应分类得出网路地址后,与根据路由控制信息流过此路由器的包的 IP 地址对应分类得出的网络地址进行比较。若两个网络地址相同,则就以接口网络地址的长度为标准。若不相同,则以 IP 地址分类所确定的网络地址长度为标准。

RIP 的基本行为可总结如下:

  1. 将自己所知道的路由控制信息定期进行广播;
  2. 一旦认为网络被断开,则数据无法流过该路由器,其他路由器也就可以得知该网络已断开;

RIP2 协议

RIP2 协议是 RIP 协议的第二版本,也就是其的改进版本,改进信息如下:

  1. 使用多广播:RIP 中当路由器之间交换路由信息采用广播形式,然而在 RIP2 采用多播,这不仅减少了网络流量,还缩小对无关主机的影响;
  2. 支持子网掩码:RIP2 支持在交换路由信息时加入子网掩码信息;
  3. 路由选择域:在同一个网络中可以使用多个逻辑上独立的 RIP;
  4. 外部路由标志:通常用于把从 BGP 等获得的路由控制信息通过 RIP 传入到 AS 内;
  5. 身份验证密钥:RIP 携带密钥,只有自己能够识别这个密钥时才接收数据,否则丢弃该 RIP 数据包;

OSPF 协议

OSPF 协议克服了 RIP 协议的所有限制,与采用距离向量算法的 RIP 协议不同的是,OSPF 协议采用的是链路状态算法。

OSPF 是链路状态型路由器,路由器之间交换链路状态生成网络拓扑信息,然后根据这个拓扑信息生成路由控制表。

RIP 的路由选择,要求途中所经过的路由器个数越少越好。而 OSPF 可以给每条链路赋予一个权重,并且选择一个权重最小的路径作为最终的路由。

RIP 中包的类型只有一种,它利用路由控制信息,一边确认网络是否连接,一边传送网络信息。这种方式的确定是,当网络的个数越多,每次交换的路由控制信息就越大,而且当网络处于稳定状态时,还要定期进行交换相同的路由控制信息,这在一定程度上浪费了网络带宽。

OSPF 根据作用不同采用 5 包的类型,如下表所示:

通过发送问候包确认是否连接。每个路由器为了同步路由控制信息,利用数据库描述包相互发送路由摘要信息和版本信息。如果版本较老,则首先发出一个链路状态请求包请求路由控制信息,然后由路由链路状态更新包接收路由控制信息,最后通过链路状态确认应答包通知大家本地已接收到路由控制信息。这样可以减少网络流量,加快更新速度。

BGP 协议

BGP 协议是一种不同自治系统内部路由器通信的外部网关协议。在 RIP 和 OSPF 中采用 IP 的网络地址部分进行路由控制。而 BGP 的最终路由控制表由网络地址和下一站的路由器组来表示,不过它会根据所要经过的 AS 个数进行路有个控制。BGP 与 RIP 和 OSPF 不同的是采用 TCP 作为其传输层协议。两个运行 BGP 的系统之间建立一条 TCP 连接,然后交换整个 BGP 路由控制表。BGP 是一个距离向量协议,但是与 RIP 不同的是,BGP 列举了到每个目的地址的路由。

参考资料:

《TCP/IP 详解》

《图解 TCP/IP》

时间: 2024-08-01 20:59:00

《网络协议》路由协议的相关文章

常见的网络协议有哪些?

原文链接地址:http://blog.sina.com.cn/s/blog_9cf7416701012pw4.html 在网络的各层中存在着许多协议, 它是定义通过网络进行通信的规则, 接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息, 以这种规则规定双方完成信息在计算机之间的传送过程. 下面就对网络协议规范作个概述: ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算机的物理地址和临时指定的网络地址. 启动时它选择一个协议(网络层

网络协议设计

一篇文章: 要解决的重点在于1 防止发送的消息丢失(1)接收方收到则应答(2)发送发发送后,过一段时间未收到应答,则重发:重发多次仍无应答,则退出2 防止应答丢失(1)应答丢失,则发送方会重发.接收方需判断收到的消息是否重复(帧中加入序列号)3 身份确认(1)用地址确认身份4 传递效率(1)限制每条消息的大小 上面的很基础.转自:http://blog.csdn.net/ybdesire/article/details/6859582 一篇文章: 实时游戏的网络协议设计 类似于SLG这类游戏,对

1. 为什么要学习网络协议?

1. 什么是协议? 人与人之间通过语言进行沟通,计算机之间通过0和1进行沟通,程序员和计算机之间通过计算机语言沟通. 计算机语言是人类和计算机沟通的一种协议,通过这个协议,计算机可以知道我们想让他干什么. 计算机语言还比较接近人类语言,计算机不能直接读懂,还需要通过编译计算机才能直接读懂. 1.1 协议的三要素 语法:这一段内容要符合一定的格式: 语义:这一段内容要代表某种意义: 顺序:就是先干啥,后干啥. 学会计算机语言就可以教给一台计算机完成你想让他做的事了,如果想教给一片机器做什么,这时候

网络协议 10 - Socket 编程:实践是检验真理的唯一标准

系列文章传送门: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - 从物理层到 MAC 层 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校 网络协议 5 - ICMP 与 ping:投石问路的侦察兵 网络协议 6 - 路由协议:敢问路在何方? 网络协议 7 - UDP 协议:性善碰到城会玩 网络协议 8 - TCP 协议(上):性恶就要套路深 网络协议 9 - TCP协议(下):聪明反被聪明误 ????前面一直在说各种协议,偏理论方面的知

网络协议 12 - HTTP 协议:常用而不简单

系列文章传送门: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - 从物理层到 MAC 层 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校 网络协议 5 - ICMP 与 ping:投石问路的侦察兵 网络协议 6 - 路由协议:敢问路在何方? 网络协议 7 - UDP 协议:性善碰到城会玩 网络协议 8 - TCP 协议(上):性恶就要套路深 网络协议 9 - TCP协议(下):聪明反被聪明误 网络协议 10 - Socket 编程(上)

菜鸟学python第二十七天(网络协议)

网络协议 网络通信的基本要素 物理介质 网络协议 OSI七层模型 OSI五层 应用层 传输层 : TCP/UDP协议,传输层为每个需要联网的应用程序绑定了一个私人端口号(一个整数,最大65585) 注意:0-1024是系统保留的端口,不要使用已经占用的端口(apache:8080,MySQL:3306,FTP:21) 网络层 : IP协议,子网掩码,IP与子网掩码进行AND运算,产生网络地址, 如果网络地址一致,则表明在同一个子网络(局域网). IP协议包含路由协议,帮助找到局域网的网关. 数据

TCP/IP网络协议初识

目录 一.什么是协议? 二.什么是TCP/IP协议? 三.TCP/IP为什么这么多协议? 四.TCP/IP协议为什么分层? 五.TCP/IP协议如何入门? 六.TCP/IP 的分层: 七.各协议层打包和拆包过程: 八.浏览器访问网页的整个流程: 九.举例:网上购物的请求流程 一.什么是协议? 协议就是两个或多个对象之间为了某个或多个需求而设置的约定,即在什么时间,遇到什么情况该做什么. 举例: 小强和小明约定周末一起去玩小霸王游戏机,但是如果遇上停电就去掏鸟窝. 二.什么是TCP/IP协议? T

初识网络协议:HTTP和HTTPS

HTTP和HTTPS都是应用层的协议,也是我们经常看得到的.它们两个的区别,体现在下图. HTTP协议传输的数据都是未加密的,都是明文.所以不安全,信息容易被窃取. HTTPS协议传输的数据是经过加密的,是安全的,所以有个“锁”. HTTP协议: HTTP是基于TCP协议的,在发送HTTP请求之前会先建立起TCP连接.建立TCP连接需要三次握手,断开需要四次挥手,开销还是比较大的,所以得让建立起来的TCP连接能够被复用.目前使用的HTTP协议大部分都是1.1,在1.1的协议里,默认是开启了Kee

用Netty解析Redis网络协议

用Netty解析Redis网络协议 根据Redis官方文档的介绍,学习了一下Redis网络通信协议.然后偶然在GitHub上发现了个用Netty实现的Redis服务器,很有趣,于是就动手实现了一下! 1.RESP协议 Redis的客户端与服务端采用一种叫做 RESP(REdis Serialization Protocol)的网络通信协议交换数据.RESP的设计权衡了实现简单.解析快速.人类可读这三个因素.Redis客户端通过RESP序列化整数.字符串.数据等数据类型,发送字符串数组表示参数的命

看江湖老炮用尽洪荒之力解读网络协议(下)

作者言:老炮总结的有些协议比喻也不是很恰当,毕竟网络协议是一门科学,而江湖规矩是口口相传的道义:如果把此文当成一份凉菜,"老炮如是说"的话语只能做为一点调味,具体调的好不好,老炮也恍惚,老炮只是用心在调,咸了淡了您多包涵,欢迎品尝.上篇叙述了网络协议的上三路,本篇介绍网络协议的下四路.下面看一位老炮如何解读这些网络协议(下)传输层传输层是整个协议层次结构的核心,是惟一负责总体数据传输和控制的一层.它属于OSI模型7层的中间层,网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而