当前位置: 首页 > news >正文

网络协议从入门到底层原理学习(三)—— 路由

网络协议从入门到底层原理学习(三)—— 路由

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…...

科技成果鉴定之鉴定测试报告

鉴定测试 由于软件类科技成果的复杂、内部结构难以鉴别等特点,我们提供了软件类科技成果鉴定测试服务。软件类科技成果鉴定测试是依据其科研项目计划任务书或技术合同书,参照相应的国家标准对要申请鉴定的软件类科技成果进行的一种符合性测试&#xff0…...

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的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、MAC帧 1、IP地址和MAC地址的区别 2、MAC帧协议 3、MTU对IP协议的…...

算法:移除数组中的val的所有元素---双指针[2]

文章来源&#xff1a; https://blog.csdn.net/weixin_45630258/article/details/132689237 欢迎各位大佬指点、三连 1、题目&#xff1a; 给你一个数组 nums和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用…...

Python小知识 - Python爬虫进阶:如何克服反爬虫技术

Python爬虫进阶&#xff1a;如何克服反爬虫技术 爬虫是一种按照一定的规则&#xff0c;自动抓取网页信息的程序。爬虫也叫网页蜘蛛、蚂蚁、小水滴&#xff0c;是一种基于特定算法的自动化程序&#xff0c;能够按照一定的规则自动的抓取网页中的信息。爬虫程序的主要作用就是从一…...

SAP中的新旧事务码

SAP中的新旧事务码 SAP随着新版本的发布&#xff0c;我们知道sap已经更新了很多的程序和TCODE。sap提供了很多新的TCODE来替换旧的TCODE&#xff0c;新TCODE有很多的新特性和新功能。在这个这种情况下&#xff0c;很多旧TCODE就会被废弃。我们如何查找这个替换呢&#xff1f; …...

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框架&#…...

百度输入法全面升级,打造首个基于大模型的输入法原生应用

基于文心一言&#xff0c;百度输入法宣布全面升级&#xff0c;打造行业首个“基于大模型的输入法原生应用”&#xff0c;从“输入工具”全面转型为“AI创作工具”。 近日&#xff0c;百度文心一言正式向公众开放。基于文心一言&#xff0c;百度输入法宣布全面升级&#xff0c;打…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...