这系列文章为计算机网络理论的学习笔记,学习笔记基于老师给的的PPT、他人学习笔记和维基百科、百度百科等一系列权威资料。学习笔记仅个人学习用,便于记录和复习,无广泛传播之意,若有侵权,请联系我删除。欢迎各位大佬指正和交流。
路由是指导IP报文发送的路径信息。(就是指导路由器如何进行数据报文发送的路径信息)
路由工作包含两个基本的动作:
- 确定最佳路径。
- 通过网络传输信息。
在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。
路由表是路由器转发报文的判断依据。
1. 路由度量值表示到达折条路由所指目的地址的代价。(跳几次?)
2. 通常影响路由度量值的因素:
线路演示,带宽,线路使用率,线路可信度,跳数,最大传输单元。
3. 不同路由协议参考的因素不同:
路由类型 |
度量值参考因素 |
静态路由协议 |
固定值,0 |
OSPF路由协议 |
带宽 |
RIP路由协议 |
跳数 |
各类路由默认优先级:
环路产生的原因:配置错误/协议缺陷。
根据路由器学习路由信息、生成并维护路由表的方法包括直连路由(Direct)、静态路由(Static)和动态路由(Dynamic)。
- 直连路由:路由器接口所连接的子网的路由方式。
- 非直连路由:通过路由协议从别的路由器学到的路由方式。分为静态路由和动态路由。
实验学习:沫仔 的 网络初级篇之直连路由与静态路由(原理与实验)
直连路由就是直接连接网段的路由。即连接在各个路由器接口网段的路由,在路由器启动时可以直接得到路由网段。
上图的路由器不需要任何配置就能互相访问,因为这三个网段的网关地址都在同一个路由器的接口上,属于直连路由。
路由器会自动生成路由表,不需要手动配置就可以让这三个区域互相ping通。这就是直连路由的作用!
直连路由在路由表中显示的协议为 Direct ,在所有路由协议中优先级是最优的。
查路由表命令: display ip routing-table (显示路由表)
静态路由(Static routing)是一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。
与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。
静态路由的公式:ip route + ‘目的地址’+‘目的地址子网掩码’+‘下一跳路由地址’。
与直连路由一样,当路由器收到一段IP数据包时,会将IP数据包拆开,寻找目的IP地址,当找到目的IP地址后,会查自身路由表中的路由,从而寻找到由哪个端口发出数据包,将数据包重新打包后发出,完成路由动作。
拆包 》》 寻址 》》查表 》 封装 》 发送数据包
[Router]ip route-static dest-address { mask | mask-length } { gateway-address | interface-type interface-name } [ preference preference-value ]
静态默认路由配置:
优先级不同的, 优先级高为主。 优先级相同的,均匀分布。
通过上图的静态路由的配置,RTA、RTB、RTC...
这些静态路由要是想访问RTE,则必须经过RTD。( 因为他们都是RTD的直连路由 )
导致环路的原因:当RTA访问RTE的数据时,RTD需要写一个默认路由传到RTE。又因为路由是互相传递的,有来有回,因此RTE也会写一个路由传到RTD,反复传递就会导致环路。
解决环路的方法:在RTD中写一个静态路由,将RTE传递回来的数据放入回收站中不作处理即可。
动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化自主动态进行调整。
BGP | RIP | OSPF | |
TCP | UDP | ||
IP | Raw IP |
||
链路层 |
|||
物理层 |
一个VLAN是一个广播域,同一个VLAN之间通信是属于二层互访,那如果想要VLAN之间的通信,就需要借助三层设备。
三层设备:路由器或三层交换机。如下图所示。
广播域:全体目光向我看齐!我是xx!
路由器与每个VLAN建立一条物理连接,浪费大量的端口。不如Trunk链路聚合好。
目的:避免物理端口和线缆浪费,简化连接方式。
方法:使用802.1Q封装和子接口,通过一条物理链路实现VLAN间路由。
原理:交换机的端口链路类型有Access和Trunk,其中Access链路仅允许一个VLAN的数据帧通过,而Trunk链路能够允许多个VLAN数据帧通过。单臂路由正是利用Trunk链路允许多个VLAN的数据帧通过而实现的。
三层交换机在功能上实现了:VLAN的划分、VLAN内部的二层交换和VLAN间路由。
三层VLAN接口连接到三层路由转发引擎上,通过转发引擎在三层VLAN接口间转发数据。
路由协议(Routing protocol)是一种指定数据包转送方式的网上协议。
路由器用来计算、维护网络路由信息的协议,通常有一定的算法,工作在传输层或应用层。
协议计算的正确性
协议使用的算法能够计算出最优的路由,且正确无自环。
路由收敛速度
当网络的拓扑结构发生变化之后,能够迅速感知并及时更新相应的路由信息。
协议占用系统开销
协议自身的开销(内存、CPU、网络带宽)最小。
协议自身的安全性
协议自身不易受攻击,有安全机制。
协议适用网络规模
协议可以应用在何种拓扑结构和规模的网络中。
(1)距离矢量协议: RIP、BGP 其中BGP也被称为路径矢量协议;
学习路由:周期性、广播式更新路由表。协议基于贝尔曼-福特算法(D-V算法)
维护路由:网络发生改变,直连路由器更新路由表,在下一个拷贝间隔发到邻居路由器,
邻居路由器再更新路由表。
缺点:采用距离矢量算法,可能造成路由环路。
解决方案:最大跳数限制,水平分割,路由毒杀,反转毒杀,保持时间,快速更新。
(2)链路状态协议: OSPF、IS-IS
学习路由:发送链路状态和泛洪链路状态声明,同步链路状态数据库,运行最短路径的
优先算法计算路由。协议基于Dijkstra算法(最短路径优先算法)
维护路由:链路改变,发送新的状态和泛洪声明,同步数据库,运行最短路径优先算法。
缺点:对于大的链路状态数据库,CPU要求高,链路不稳定,负担更大。
解决方案:层次化的拓扑设计,通过划分区域实现,将链路状态声明的泛洪控制在区域内。
1.可靠性、安全性比较
协议 |
协议端口 |
可靠性 |
安全性(是否支持验证) |
RIP-1 |
UDP 520 |
低 |
否 |
RIP-2 |
UDP 520 |
低 |
是 |
OSPF |
IP 89 |
高 |
是 |
IS-IS |
基于链路层协议 |
高 |
是 |
BGP |
TCP 179 |
高 |
是 |
2.协议特性比较
特性 |
RIP-1 |
RIP-2 |
OSPF |
IS-IS |
BGP |
距离矢量算法 |
是 |
是 |
- |
- |
是 |
链路状态算法 |
- |
- |
是 |
是 |
- |
支持VLSM |
- |
是 |
是 |
是 |
是 |
支持手工聚合 |
- |
是 |
是 |
是 |
是 |
支持自动聚合 |
是 |
是 |
- |
- |
是 |
支持无类别 |
- |
是 |
是 |
是 |
是 |
收敛速度 |
慢 |
慢 |
快 |
快 |
慢 |
度量值 |
跳数 |
跳数 |
开销 |
开销 |
路径属性 |
3.定时器比较
协议 |
周期性发送全部路由 |
Hello定时器 |
保持定时器 |
RIP-1 |
30秒 |
- |
180秒 |
RIP-2 |
30秒 |
- |
180秒 |
OSPF |
触发更新 |
广播链路上10秒 |
4倍hello定时器 |
IS-IS |
触发更新 |
10秒 |
4倍hello定时器 |
BGP |
触发更新 |
60秒 |
3倍hello定时器 |
文章浏览阅读9.6k次,点赞3次,收藏9次。Unity Hub for Mac 安装_unity hub for mac
文章浏览阅读938次,点赞13次,收藏11次。这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是毕业设计 STM32的智能饮水机控制系统(源码+硬件+论文)学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:4分项目分享:见文末!项目分享:见文末!**项目分享: **
文章浏览阅读1.3w次,点赞5次,收藏50次。今天为大家分享一些可以接私单的平台,相信大家学习编程未来是希望成为一个软件工程师或者码农,找到好的工作,有好的发展。但是在还没有找工作之前,大家可以通过一些平台接一些兼职,一来能够赚钱,在主页保持稳定的情况下能够发展自己的副业。二来通过接项目,大量的实践,你说接触的类型会更丰富,可以为你积累实战经验,面试时也会比他人更有优势。下面就跟我一起来看看有哪些兼职平台吧~国内远程工作平台,接单平台1、CODING 码市著名的Coding旗下的互联网软件外包服务平台,平台以外包为主。._软件工程师哪里好找活
文章浏览阅读497次,点赞8次,收藏9次。在Deepin系统上部署samba服务器_deepin配置samba服务器
文章浏览阅读3k次,点赞4次,收藏29次。本文主要描述QNX SPI Drvier的相关内容,并以SA8155P处理器为例讲解SPI框架。_sa8155
文章浏览阅读7.3k次,点赞4次,收藏5次。IVF是一个非常简单的视频容器。用于封装VP8/VP9的数据。下面多字节的数据是采用小端编码(little-endian)。IVF文件头由32字节组成:bytes 0-3 signature: 'DKIF'bytes 4-5 version (should be 0)bytes 6-7 length of header in bytesbytes _ivf vp8
文章浏览阅读3.4k次,点赞13次,收藏20次。在上一篇: Android项目实战 | 从零开始写app(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换 的基础上实现数据的填充展示由于首页会展示到推荐新闻列表,所以今天先把新闻模块的数据先请求下来,就跳着更吧,后面再继续完善首页~~这篇早早就写好了,奈何发布了几次老是说审核不通过,说内容违规???? 无可奈何~菜鸡一枚,写得不好,有问题的请指教~~文章导航一、【Android项目实战 | 从零开始写app(一)】 创建项目二、【Android项目实战 | 从零开_android listview和http实现获取新闻列表
文章浏览阅读119次。ASP.NET MVC 5 一 入门 本系类教程将要构建ASP.NET MVC 5 Web 应用程序,使用的工具是VS2013 。现在有预览版可以下载了,点击下载VS2013 FOR WEB ISO文件。VS2012 还没用几天呢,2013就要出来,据说数据库..._.net mvc5的body属性
文章浏览阅读603次。为了更好的使用Cmder v1.2,不得不升级PowerShell为4.0。不知道Cmder的,可以点击这里:https://github.com/cmderdev/cmder和逆天神器 cmder。Powershell是运行在Windows机器上实现系统和应用程序管理自动化的命令行脚本环境。需要.NET环境的支持,同时支持.NET对象。当前PowerShell有5个版..._powershell v4
文章浏览阅读1.3k次。CTS/GTS问题分析6遇到一个Android P相关的问题,和原来CTS/GTS 问题分析1的表现是一样的,但是将http://gerrit.pt.miui.com/#/c/387000/这个修复cp过来,发现不生效,仍然报错,因此记录一下问题初探测试命令: run gts -m GtsGmscoreHostTestCases -t com.google.android.gts.devicepo..._gts测试问题分析
文章浏览阅读1.9k次。P: 2009-05-10 23:35:263DVI D系列端子插口针脚定义,“WORD-BREAK处理方式:break-all幅度高达140%”,就像如果人们参加赛马[/ align >英文简介:插头,连接器———插头端子>,< /处理起来:“WORD-BREAK风格,就像如果人们参加赛马break-all幅度高达140%”[/ align >,D型端子EIAJ五D-c..._dvi接口音频针脚
文章浏览阅读683次。Apple Pay的发布,让从事安卓NFC应用开发者兴奋了一把,苹果对NFC的支持必将推动整个产业的发展,然而Apple Pay与安卓系统上的NFC支付有什么区别呢?特别是安卓系统上的HCE技术。近日,著名HCE方案商SimplyTapp CEO Doug Yeager就在博客中发表了文章,对比Apple Pay与HCE。博客对信令技术进行了简单的介绍,他认为“一个信令可以理解成一个证书的生命”,..._hce nfc apdu unionpay