计算机网络——网络层:控制层面

路由方式

在控制层面中,路由器的路由方式有两种:

  • 预路由。通过已知的网络拓扑信息以及每个线路的传输开销,路由器将通过算法进行预路由,选择开销最小的路线。
  • 逻辑中心控制。所有的路由器的路由表由一个逻辑中心控制,由逻辑中心控制数据包的流向。

路由需要路由算法提供和计算转发表,我们将网络拓扑结构抽象为一个无向图,每个节点代表一个路由器,每个边代表一个物理链接,边权代表开销,因此我们最终目的是要寻找一条最小开销路线。

路由算法分为两种,一种是中心化路由算法,指的是每个路由器都知道网络的拓扑结构,每个路由都可以单独执行一次路由算法。另一种则是去中心路由算法,即每个路由只知道和他相连的线路的延迟并不知道整个网络的拓扑信息,在这种情况下进行路由。

除此之外,还可以根据二十年后了拓扑结构改变的速率分为静态路由算法和动态路由算法,静态路由算法在网络结构是固定的情况下能很好工作一般由人们手动配置,动态路由算法通过发送链接状态包侦测网络的拓扑结构,动态维护网络的拓扑结构。以及按照开销对网络的影响分为负载敏感和负载不敏感算法,负载敏感算法遇到网络开销有较大变化的时候,造成网络堵塞的几率更大。

LS 路由算法

LS 路由算法指的是指的是每个路由器都知道网络的拓扑结构,每个路由都可以单独执行一次路由算法。常用的算法是 Dijkstra 最短路算法。

遇到开销动态变化的时候,可以使得路由器更新 Dijkstra 算法的时间随机化,这样可以保证所有的路由器不会发生自同步现象。

DV 路由算法

DV 路由算法指的是路由器只和直接相连的路由器进行交互,路由器在不知道整个网络拓扑结构的情况下选择开销最小的路线。

DV 路由算法基于 Bellman-Ford 等式,也就是说:

dx(y)=min⁡v∈V(c(x,y)+dx(y))d_x(y) = \min_{v \in V}(c(x,y)+d_x(y)) dx​(y)=v∈Vmin​(c(x,y)+dx​(y))

因此,在每个路由器维护一个 D(y)D(y)D(y) 列表即可,当更新列表的时候,将新的列表发送到邻居路由器,根据 Bellman-Ford 等式更新自己的 D(y)D(y)D(y) ,当网络中没有列表交换的时候,则进入静默状态,此时路由表完全收敛。因此 DV 算法具有自动停止、自动开始、异步的特性。

但是 DV 算法也具备一些缺点,例如路由死循环,当一个路线的开销增加的时候,那么交换表将交换非常多次才能收敛,可以使用阻止反向的技巧解决小部分的这个问题,但是无法解决一般的路由死循环问题。

对于两个算法的比较:

  • 消息复杂程度:LS 算法需要知道整个网络的拓扑信息而 DV 只需要和相邻的节点进行交互即可。
  • 时间复杂度:LS 算法是 O(n2)O(n^2)O(n2) 的,而 DV 是 O(NE)O(NE)O(NE) 的。
  • 鲁棒性:LS 算法鲁棒性较好,如果出现错误节点也不会影响太多,而 DV 如果出现错误节点,将导致错误继续传播,以至于最坏情况整个网络都是错误的。

AS 网络:OSPF 协议

实际上,不可能将互联网上的所有路由器都视为一个路由网络,维护整个互联网的拓扑信息。我们使用 AS 网络来将一些路由器看成是一个子网路由,这些子网路由器只维护子网内的路由器和网络拓扑结构,OSPF 协议广泛适用于 AS 网络。

AS 网络之间:BGP 协议

BGP 协议是 AS 与 AS 网络之间的路由协议。正如其他路由协议一样,BGP 也同样做两件事情:

  • 通过 IP 前缀维护可达的子网。BGP 允许通过广播消息,告知各个 AS 网络,可以达到的子网。
  • 决定最佳路线。BGP 通过一些转发策略决定最佳的转发路线。

BGP 广播

考虑多个 AS 网络,路由器无非就是两个类型,一种是外部路由器,连接其他的 AS 网络,一种是内部路由器,只连接自身 AS 网络的路由器。

BGP 使用 TCP 协议,在每个路由器直接都会建立一条长链接称为 BGP 链接。内部路由器之间的链接称为内部链接,外部路由器直接的链接称为外部链接。

在这个图中,3d 会想外部广播子网 x 的存在,在 AS1 中的路由器都会收到 “AS2 AS3 x” 的路由路径信息。

BGP 路由算法

实际上,一个 BGP 路由表中的表项由 BGP 属性和 IP/子网掩码 组成,其中两个最重要的 BGP 属性是 AS-PATH 称为路由路径,NEXT-HOP 是下一个 AS 网络外部路由器的 IP 地址。

BGP 使用热土豆算法,1c 如果要传输一个数据到 x ,那么他会在所有的可达路线中,选择距离它最近的那个下一跳地址,在这里是 2a,因此他会选择路线 “AS2 AS3 x” 而不是 “AS3 x” 。

热土豆算法是不公平的算法,因为他只想快速的将数据包传出 AS 网络,而不考虑整体开销。

实际上,BGP 网络使用的路由算法无非也就是和热土豆算法进行结合。

  • 一个路由器都会被赋予一个 local preference 值作为一个 BGP 的属性和路由优先级。BGP 选择优先级较大的路由器进行路由。
  • 如果可选路线的优先级都相同,则会选择一个 AS-PATH 开销最小的线路。
  • 如果还存在多个可用的路线,那么使用热土豆算法。
  • 如果还剩余,使用 BGP 标志符决定。

这样 BGP 的路由算法就是公平的了。

IP 多播

实际上 BGP 还可以用于 IP 多播,在 CDN 服务器的网关路由器添加一个和主服务器相同的 IP 地址进行广播,这样 BGP 网络会决定最近的那个 CDN 服务器。

大部分 CDN 服务器并不使用 BGP 协议进行搭建 CDN 网络,这并不适合 TCP 链接,因为来自同一个客户端的数据包可能会达到多个不同的 CDN 服务器。而 DNS 缓存服务器使用 BGP 网络作为负载均衡。

SDN 控制

SDN 网络中有四个关键的特性:

  • 基于流控制的转发。路由器能够通过检查各个层的协议头的数据,决定该数据包该如何匹配和操作。
  • 分离数据层面和控制层面。数据层面只进行匹配-操作。控制层面决定网络的转发表。
  • 网络控制函数:对于数据层面交换器是外部的。SDN 网络由软件控制,通过软件识别和操控网络中的路由器。这部分由两个子部分组成,其中是 SDN 控制器,和网络控制应用。控制器进行维护网络中的各种信息,而控制应用则通过控制器中收集的信息计算转发表。
  • 可编程的网络。通过网络控制应用,整个网络是可编程的,SDN 控制器通过提供 API 我们能轻松编写出网络控制应用。

SDN 控制器和控制应用

SDN 控制器和控制应用具有如下的层次:

  • 一个交流层:SDN 控制器和被控制路由器交通过交流层进行传输数据。控制器通过发送指令,被控制路由器进行更改或者路由器发送通知给控制器。OpenFlow 就是一个交流层协议,也称为南桥协议。
  • 网络状态管理层:收集网络中的各种信息。
  • 网络控制应用接口:定义了网络控制函数如何和控制层进行交互。通常称为北桥协议。

ICMP

ICMP 是网络控制消息协议,一般用于网络层路由器和消息主机进行交互。最常见的应用是错误检测。ICMP 通常被视为 IP 协议的一部分,但是ICMP 承载于 IP 协议之上,这和 UDP 和 TCP 是一样的。ICMP 的协议号是 1。ICMP 只有类型和代码字段。

(0,0) 和 (8,0) 用于 Ping 操作,从第二行到第七行用于错误侦测。(4,0) 原意是用于网络拥堵控制,但是几乎被 TCP 的拥堵控制代替。(11,0) 在 TTL 过期时会发送至发送者。

网络管理

在网络管理中,有四个关键的角色参与:

  • 管理服务器:管理服务器运行网络管理服务,例如 SDN 网络中的控制器和控制应用,网络管理员能够直接操作这一部分。
  • 被控制设备。一般包括路由器和各种中间组件。
  • 数据。配置数据是管理服务器显式用于控制设备的数据。操作数据,是设备处理某个事件使用的数据。设备数据,是设备自身的状态数据。
  • 网络管理代理。网络管理代理是运行在被控设备上的软件,通过接收管理服务器的数据,实际地控制设备。
  • 网络管理协议。

网络管理通过三种方式进行:

  • CLI 。命令行接口,其中图形化界面是这个方式的变种。
  • SNMP / MIB 。通过发送 SNMP 数据包来管理网络。
  • NETCONF / YANG 。YANG 语言这使得数据更加模型化,NETCONF 通过远程 RPC 调用的方式进行管理网络。

计算机网络——网络层:控制层面相关推荐

  1. 无连接可靠传输_计算机网络-网络层和传输层

    计算机网络-网络层和传输层 网络层概述 面向连接的服务,即虚电路(virtual circuit) TCP/IP采用数据报服务,无连接的服务,因为网络层是整个互联网的核心,因此应当让网络层尽可能简单. ...

  2. 计算机网络——网络层路由协议、IP组播、移动 IP、路由器

    文章目录 前言 一.RIP 协议与距离向量算法 1.RIP 协议 2.距离向量算法 二.OSPF 协议与链路状态算法 1.OSPF 协议 2.链路状态算法 三.BGP 协议和三种路由协议的比较 1.B ...

  3. 计算机网络-网络层详细讲解

    目录 网络层概述 网络层提供的两种服务 面向连接的虚电路服务 无连接的数据报服务 IPv4地址 IPv4地址概述 概述 表示方法 分类编址的IPv4 A类地址 B类地址 C类地址 练习 划分子网的IP ...

  4. 【王道】计算机网络网络层(三)

    王道考研计算机网络网络层 网络层 1.1.网络层功能 1.2.IP数据报格式 1.2.1.TCP/IP协议栈 1.2.2.IP数据报格式 1.2.3.IP数据报分片 1.最大传送单元MTU 2.IP数 ...

  5. 计算机网络-网络层 笔记

    前言:今天听闫乐林老师讲了计算机网络的课,自我感觉真的特别棒,就感觉像是把知识揉碎了喂我们,每个知识都会用生活上的例子,来帮助我们理解.现在再来写篇笔记回顾一下,如果能帮到大家就更好了.如有不恰当部分 ...

  6. 计算机网络---网络层实验

    文章目录 计算机网络---网络层实验 一.实验目的 二.实验环境和任务 三.实验步骤及实验结果记录 四.实验结果分析和总结 计算机网络-网络层实验 一.实验目的 理解通信子网的完整概念,掌握网络层的作 ...

  7. 计算机网络网络层 习题答案

    计算机网络网络层 习题答案 1. 考虑使用32比特主机地址的某数据报网络.假定一台路由器具有4条链路,编号为0~3,分组能被转发到如下的各链路接口: a. 提供一个具有4个表项的转发表,使用最长前缀匹 ...

  8. 控制层面监管(CoPP)

    路由器的控制引擎是整个设备的大脑,负责处理所有控制层面的信息.而网络***有可能伪装成特定类型的需要控制层面处理的数据包直接对路由设备进行***,因为路由器的控制引擎处理能力是有限,即使是最强大硬件架 ...

  9. CCIE-MPLS控制层面

    2021.9.21 难过的不是放飞孔明灯失败和手被烫伤,难过的是没有她 4.1 VPNv4 Label MP-BGP 也是一种可以产生和分发标签的协议  MP-BGP 对标签的产生分成 2 个部分 ...

  10. 计算机网络rip路由表的题目,计算机网络-网络层-练习题

    <计算机网络-网络层-练习题>由会员分享,可在线阅读,更多相关<计算机网络-网络层-练习题(5页珍藏版)>请在人人文库网上搜索. 1.1 下面有关虚电路和数据报的特性,正确的是 ...

最新文章

  1. 千亿级携程酒店AWS实践
  2. 最简单的t-SNE上手使用
  3. d.php xfso_PHP扩展调用so动态链接库
  4. kmeans设置中心_kmeans聚类与支持向量机(1)
  5. GPU神经网络和JAVA神经网络速度对比
  6. cvs update 用法_WinCVS的配置与使用方法
  7. DDD(Domain-Driven Design)领域驱动设计-(二)事件风暴
  8. nfs 跟rpcbind的关系
  9. autojs颜色渐变效果
  10. java+毕业设计+进销存管理系统+源码+论文.rar
  11. python如何实现手眼定标_kafka基础和python如何操作kafka
  12. Spring Boot 定制URL匹配规则:终极篇【从零开始学Spring Boot】
  13. 关于计算机的教学论文,关于计算机教学论文
  14. 【毕业设计】酒店评价情感倾向分析系统 - python 深度学习
  15. 视频教程-嵌入式Linux驱动教程(韦东山2期)-驱动/内核开发
  16. java实现短信发送
  17. 【不看即后悔系列】学习的真相及方法【建议收藏】
  18. JavaScript系列之内置对象Object
  19. 杨辉三角与二项式定理
  20. java ktv喝酒游戏

热门文章

  1. 【转发】相似性度量学习及其在计算机视觉中的应用
  2. activiti实现请假流程
  3. android studio + ndk + cmake + jna +sqlite c层报错SQLITE_CANTOPEN(14),SQLITE_MISUSE(21)问题
  4. 硬盘柱面损坏怎么办_电脑硬盘坏了怎么办?不花一分钱就能成功修复!
  5. 中国IT的领路人——播布客
  6. fig-tlo_PHP-FIG,Quo Vadis?
  7. Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
  8. 洛谷 P3939 数颜色(主席树)
  9. 如何写好博客——常用标点符号易错点正确用法汇总
  10. win10磁盘100%占用