网络协议从入门到底层原理学习(三)—— 路由
网络协议从入门到底层原理学习(三)—— 路由
1、简介
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程

在不同网段之间转发数据,需要有路由器的支持
默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由、动态路由告诉它
-
静态路由
管理员手动添加路由信息
适用于小规模网络
-
动态路由
路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息
适用于大规模网络
2、网络、互联网、因特网

全世界最大的互联网是:因特网( Internet)
-
将全世界所有的计算机都连接在一起
-
一般使用大写I开头的Internet特指因特网
-
日常生活中说的:你的电脑上不了网。其实就是指:你的电脑没有连接到因特网
3、ISP
ISP,Internet Service Provider,Internet服务提供商,比如移动、电信、网通、铁通等
- 我们平时拉的宽带都是通过ISP连接到Internet的
4、网络分类
按照网络的范围进行分类,可以分为:局域网、城域网、广域网等
◼ 局域网(Local Area Network, LAN)
-
一般是范围在几百米到十几公里内的计算机所构成的计算机网络
-
常用于公司、家庭、学校、医院、机关、一幢大楼等
-
局域网中使用最广泛的网络技术叫:以太网( Ethernet)
-
在电脑、手机上经常见到的一个英文 ( Wireless LAN),意思是无线局域网
◼ 城域网(Metropolitan Area Network,MAN)
- 一般范围是数十公里到数百公里,可以覆盖一个城市
◼ 广域网(Wide Area Network,WAN)
- 一般范围是几百公里到几千公里,可以覆盖一个国家。通常都需要租用 ISP的线路
常见的几种接口
FastEthernet
- 快速以太网接口(100M)
GigabitEthernet
- 千兆以太网接口
Serial
- 串行接口
5、上网方式
上网方式——电话线入户

这就是平时说的:ADSL电话拨号上网(Asymmetric Digital Subscriber Line)
- 非对称数字用户线路,提供上、下行不对称的传输带宽
猫( Modem),调制解调器,进行数字信号和模拟信号的转换
上网方式——光纤入户

光猫( Optical Modem),光调制解调器,进行数字信号和光信号的转换
上网方式——网线入户

家用无线路由器的逻辑结构

6、路由器的作用
1、能够将数据包转发到正确的目的地
2、转发过程中选择最佳路径的设备
7、路由器转发数据包的封装过程
源目IP保持不变,源目MAC随着传输设备不同而不同
8、路由器和交换机的对比

9、选取最优路由时的标准
1、子网掩码长度最长的最优先匹配
2、选取路由协议中优先级最小的最优先匹配

3、相同路由协议的情况下,选取metric值最小的最优先匹配。
每种协议metric值定义的不相同,静态路由和路由优先级有关,这个是人为指定的,RIP协议和跳数有关,跳数越小越优;OSPF协议和带宽有关,带宽最大最优先;metric时用来判定链路质量优劣的
4、如果以上都没有路由可以匹配得上,就匹配默认路由
10、路由表的定义
路由器中维护的路由条目的集合
11、路由表的形成
1、直连网段:配置IP地址、端口UP状态、形成直连路由
2、非直连网段:对于非直连的网段,需要静态路由或动态路由,将网段添加到路由表中
12、路由表的主要作用
决定设备的三层数据包的转发关系。目标网络能匹配路由表,从相应接口转发;若不能匹配路由表,则drop(丢弃)掉该数据包,不会像交换机那样泛洪(广播)。
路由传递依据路由表
13、路由协议的分类
路由协议:
静态路由——管理员手工配置路由
动态路由——路由器间自动学习路由
1.局域网内——IGP(内部网关路由协议)
距离矢量路由协议——RIPV1、RIPV2、EIGRP(思科)
链路状态路由协议——OSPF、ISIS(LS)
2.互联网 ——EGP(外部网关路由协议)——BGPV4(版本4)
14、静态路由
优点:运行稳定,节省设备链路开销
缺点:对大型网络来说,工作量较大,拓扑一旦发生了改变,维护量变大。
建议:小型网络使用静态路由(总共配置少于十条路由),中大型网络使用动态路由。
15、默认路由-匹配的是所有网段
1、当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口
2、默认路由时静态路由的一种特殊方式,它属于静态路由的一种,使用它是有条件的,只能在末梢网络中使用
16、浮动路由
指的是配置两条静态路由,默认选取链路质量优(带宽大的)作为主路经,当主路经出现故障时,由带宽较小的备份路由顶替,保持网络的不中断
17、动态路由
动态路由:不需要手工写路由,路由器之间能够自己互相学习(基于某种路由协议实现)
特点:
①减少了管理任务
②占用了网络带宽
动态路由协议的概述:邻居路由器之间路由协议应保持一致
度量值:跳数、带宽、负载、时延、可靠性、成本
收敛:所有运行同一种路由协议的路由器使所有路由表都达到一致状态的过程
按照路由执行的算法分类
1、距离矢量路由协议
依据从源网络到目标网络所经过的路由器的个数选择路由
RIP、IGRP
2、链路状态路由协议
综合考虑从源网络到目标网络的各条路径的情况选择路由
OSPF、IS-IS
18、RIP路由协议工作原理
1、RIP 是距离矢量路由协议
2、RIP的概述
①定期更新(30s)
②邻居
③广播更新、组播更新
④全路由表更新
19、RIP的度量值与更新时间
RIP度量值为跳数:最大跳数为15跳,16跳为不可达
RIP更新时间:每隔30s发送路由更新消息,UDP520端口
RIP路由更新消息:发送整个路由表消息
20、路由环路的原因
定期更新,更新周期长
执行水平分割可以阻止路由环路的发生
1、从一个接口学习到的路由消息,不再从这个接口发送出去
2、同时也能减少路由更新消息占用的链路带宽资源
21、RIPV1和RIPV2区别

RIPV1:
跨越主类网络边界:指的是两个不同的主类网络之间的路由网段,跨越主类网络边界的路由器会自动把路由汇总成主类显示
22、公网IP、私网IP
IP地址也分为:公网IP、私网IP
公网IP(Public)
-
Internet上的路由器中只有到达公网的路由表,没有到达私网的路由表
-
公网IP由因特网信息中心(Internet Network Information Center,Inter NIC)统一分配和管理
-
ISP需要向 Inter NIC 申请公网
私网IP(Private)
-
主要用于局域网。下面是保留的私网网段
A类:10.0.0.0/8,1个A类网络
B类:172.16.0.0/16 ~ 172.31.0.0/16,16个B类网络
C类:192.168.0.0/24 ~ 192.168.255.0/24,256个C类网络
23、NAT
私网IP访问Internet 需要进行 NAT 转换为公网
-
NAT( Network Address Translation )
-
这一步可以由路由器来完成
NAT 的特点
-
可以节约公网IP资源
-
会隐藏内部真实IP
NAT的分类
-
静态转换
手动配置 NAT 映射表
一对一转换
-
动态转换
定义外部地址池,动态随机转换
一对一转换
-
PAT( Port Address Translation )
多对一转换,最大程度节约公网IP资源
采用端口多路复用方式,通过端口号标识不同的数据流
目前应用最广泛的 NAT 实现方式
相关文章:
网络协议从入门到底层原理学习(三)—— 路由
网络协议从入门到底层原理学习(三)—— 路由 1、简介 路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 在不同网段之间转发数据,需要有路由器的支持 默认情况下,路由器…...
2023/9/6 -- C++/QT
一、输出流对象cout 1> 该对象是来自于ostream的类对象,功能上类似于printf函数 2> 该类对象本质上调用成员函数插入运算符重载函数 3> 输出数据时,无需使用格式控制符:%d、%c、%s。。。,直接输出即可 4> 换行使用…...
python爬虫,多线程与生产者消费者模式
使用队列完成生产者消费者模式使用类创建多线程提高爬虫速度 https://sc.chinaz.com/tupian/index.html https://sc.chinaz.com/tupian/index_2.html https://sc.chinaz.com/tupian/index_3.html from threading import Thread from queue import Queue import requests from b…...
WordPress 提示“此站点遇到了致命错误”的解决方法
WordPress 提示“此站点遇到了致命错误”的解决方法 WordPress 网站博客提示“此站点遇到了致命错误。”如何解决?今天老唐不幸遇到了这个问题,搜了一下解决方法,发现致命错误原因有很多,所以需要先打开 WordPress 的 WP_DEBUG 功…...
Vue3,Typescript中引用组件路径无法找到模块报错
是这么个事,我在vue3新创建的项目里,写了个组件叫headerIndex.vue,放到app.vue中import就会报错 路径肯定没写错,找到了解决方法,但是也没想明白为什么 解决方法如下 在vite-env.d.ts文件中加入 declare module &qu…...
科技成果鉴定之鉴定测试报告
鉴定测试 由于软件类科技成果的复杂、内部结构难以鉴别等特点,我们提供了软件类科技成果鉴定测试服务。软件类科技成果鉴定测试是依据其科研项目计划任务书或技术合同书,参照相应的国家标准对要申请鉴定的软件类科技成果进行的一种符合性测试࿰…...
NFTScan 浏览器正式版上线 2 周年!
NFTScan 成立于 2021 年 4 月份,总部位于香港。在 2021 年的 7 月份,NFTScan 团队对外发布了 NFTScan 浏览器公测版,并在同年的 9 月 4 号,对外发布了 NFTScan 浏览器正式版,同步启用了全球品牌域名:NFTSCA…...
为什么要使用Token
传统的session认证 我们知道,http协议是一种无状态的协议,这就意味着当用户向我们的应用提供了用户名和密码进行用户认证,那么在下一次登录的时候,用户还要再进行验证,因为根据http协议,浏览器并不知道是谁…...
前端面试的话术集锦第 8 篇:高频考点(JS性能优化 性能优化琐碎事)
这是记录前端面试的话术集锦第八篇博文——高频考点(JS性能优化 & 性能优化琐碎事),我会不断更新该博文。❗❗❗ 1. 从V8中看JS性能优化 注意:该知识点属于性能优化领域。 1.1 测试性能⼯具 Chrome已经提供了⼀个⼤⽽全的性能测试⼯具Audits。 点我们点击Audits后,可…...
【数据分析】Python:处理缺失值的常见方法
在数据分析和机器学习中,缺失值是一种常见的现象。在实际数据集中,某些变量的某些条目可能没有可用的值。处理缺失值是一个重要的数据预处理步骤。在本文中,我们将介绍如何在 Pandas 中处理缺失值。 我们将探讨以下内容: 什么是缺…...
“批量随机字母命名文件,轻松管理你的文件库“
你是否曾经遇到过文件命名混乱,难以管理的问题?为了解决这个问题,我们推出了一款全新的文件改名工具,它可以帮助你批量给文件名添加一个随机字母,让你的文件库更加有序、易于管理。 首先第一步,我们要进入…...
elasticsearch的数据聚合
聚合可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且…...
【网络编程·数据链路层】MAC帧/以太网协议/ARP协议/RARP协议
需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。 目录 一、MAC帧 1、IP地址和MAC地址的区别 2、MAC帧协议 3、MTU对IP协议的…...
算法:移除数组中的val的所有元素---双指针[2]
文章来源: https://blog.csdn.net/weixin_45630258/article/details/132689237 欢迎各位大佬指点、三连 1、题目: 给你一个数组 nums和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用…...
Python小知识 - Python爬虫进阶:如何克服反爬虫技术
Python爬虫进阶:如何克服反爬虫技术 爬虫是一种按照一定的规则,自动抓取网页信息的程序。爬虫也叫网页蜘蛛、蚂蚁、小水滴,是一种基于特定算法的自动化程序,能够按照一定的规则自动的抓取网页中的信息。爬虫程序的主要作用就是从一…...
SAP中的新旧事务码
SAP中的新旧事务码 SAP随着新版本的发布,我们知道sap已经更新了很多的程序和TCODE。sap提供了很多新的TCODE来替换旧的TCODE,新TCODE有很多的新特性和新功能。在这个这种情况下,很多旧TCODE就会被废弃。我们如何查找这个替换呢? …...
day3_C++
day3_C 思维导图用C的类完成数据结构 栈的相关操作用C的类完成数据结构 循环队列的相关操作 思维导图 用C的类完成数据结构 栈的相关操作 stack.h #ifndef STACK_H #define STACK_H#include <iostream> #include <cstring>using namespace std;typedef int datat…...
力扣题解(73. 矩阵置零),带注释
题目描述 链接:点我 题解 //法一 使用hashset记录有0的横纵坐标即可 class Solution {public void setZeroes(int[][] matrix) {HashSet<Integer> row new HashSet<Integer>();HashSet<Integer> col new HashSet<Integer>();for(int i 0;i <…...
SpringMVC应用
文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…...
百度输入法全面升级,打造首个基于大模型的输入法原生应用
基于文心一言,百度输入法宣布全面升级,打造行业首个“基于大模型的输入法原生应用”,从“输入工具”全面转型为“AI创作工具”。 近日,百度文心一言正式向公众开放。基于文心一言,百度输入法宣布全面升级,打…...
5大场景解锁智能群管理:如何让LuckyLilliaBot提升社群运营效率80%
5大场景解锁智能群管理:如何让LuckyLilliaBot提升社群运营效率80% 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot LuckyLilliaBot作为一款基于OneBot11协议的NTQQ插件,能够将…...
终极指南:如何让2007年旧Mac运行最新macOS系统
终极指南:如何让2007年旧Mac运行最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为那台陪伴多年的老Mac无法升级最新系统而烦恼吗࿱…...
从乱码到清晰:一位开发者与iText7中文PDF的三年斗争史
从乱码到清晰:一位开发者与iText7中文PDF的三年斗争史 【免费下载链接】itext7-chinese-font 项目地址: https://gitcode.com/gh_mirrors/it/itext7-chinese-font "为什么我的PDF中文又变成方块了?" 这可能是每个Java开发者在处理中文P…...
OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS
OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老旧的Mac无法升…...
基于WebSocket与Protobuf协议的抖音直播间实时数据采集方案
基于WebSocket与Protobuf协议的抖音直播间实时数据采集方案 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2024最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 技术背景与挑战 在当今直…...
Greasy Fork:开源用户脚本平台的价值探索与实践指南
Greasy Fork:开源用户脚本平台的价值探索与实践指南 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 一、价值定位:重新定义浏览器增强体验 1.1 开源平台的核心价值…...
从零开始:用正则表达式处理日期时间格式的完整指南
从零开始:用正则表达式处理日期时间格式的完整指南 在数据处理和文本分析中,日期时间格式的校验一直是个高频需求。无论是表单验证、日志分析还是数据清洗,确保日期时间格式的正确性都至关重要。正则表达式作为文本处理的瑞士军刀,…...
nli-distilroberta-base实际项目:高校招生简章关键条款与考生疑问逻辑关系库构建
nli-distilroberta-base实际项目:高校招生简章关键条款与考生疑问逻辑关系库构建 1. 项目背景与需求 高校招生简章通常包含大量专业条款和政策说明,每年都会收到大量考生关于条款理解的咨询。传统的人工解答方式存在几个痛点: 效率低下&am…...
Node.js 环境避坑指南:从零搞定 Fetch MCP 依赖安装与构建 (Windows/macOS)
Node.js 环境避坑指南:从零搞定 Fetch MCP 依赖安装与构建 在开发者的日常工作中,遇到环境配置问题就像程序员遇到bug一样常见。特别是对于刚接触Node.js生态的前端新手,或是需要在不同操作系统间切换的开发者来说,一个看似简单的…...
Maccy剪贴板管理器:彻底改变你的macOS复制粘贴体验
Maccy剪贴板管理器:彻底改变你的macOS复制粘贴体验 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy Maccy是一款专为macOS设计的轻量级剪贴板管理器,它彻底改变了你的复制粘…...
