9,10 IP选路,动态选路

【鸿蒙实战开发教程】支持刷新加载的HarmonyOS动态分组列表组件 PullToRefreshFor是鸿蒙下可同时实现动态分组列表进行下拉刷新、上拉加载的组件在以下版本验证通过:理论上也支持API 9、10的版本。 阅读详情

1.静态IP选路

1.1.一个简单的路由表

选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.11.0    *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.11.1    0.0.0.0         UG    0      0        0 eth0

对于一个给定的路由器,可以打印出五种不同的flag。

  1. U表明该路由可用。
  2. G表明该路由是到一个网关。如果没有这个标志,说明和Destination是直连的,而相应的Gateway应该直接给出Destination的地址。
  3. H表明该路由是到一个主机,如果没有该标志,说明Destination是一个网络,换句话说Destination就应该写成一个网络号和子网号的组合,而不包括主机号(主机号码处为0),例如 192.168.11.0
  4. D表明该路由是为重定向报文创建的
  5. M该路由已经被重定向报文修改

U没啥可说的,G说明这是一个网关,如果你要发数据给Destination,IP头应该写Destination的IP地址,而数据链路层的MAC地址就应该是GateWay的Mac地址了;反之,如果没有G标志,那么数据链路层和IP层的地址应该是对应的。H说明了Destination的性质,如果是H的,则说明该地址是一个完整的地址,既有网络号又有主机号,那么再匹配的时候就既要匹配网络号,又要匹配主机号;反之,Destination就代表一个网络,在匹配的时候只要匹配一下网络号就可以了。

这样,IP选路的方式就可以更加具体化了。如下

  1. 首先用IP地址来匹配那些带H标志的DestinationIP地址。
  2. 如果1失败就匹配那些网络地址。
  3. 如果2失败就发送到Default网关

顺便提一下那个GenMask(还记得子网掩码么),它指定了目的地址的子网号,例如第一条的子网就是11。

1.2.其他有关路由表的知识

一般,我们在配置好一个网络接口的时候,一个路由就被直接创建好了。当然我们也可以手动添加路由。用route add命令就可以了。

而当一个IP包在某一个路由器的时候发现没有路由可走,那么该路由器就会给源主机发送“主机不可达”或者“网络不可达”的ICMP包来报错。

注意,一般的操作系统默认是没有路由功能的,这需要自己配置。这些历史原因就不细说了,

1.3.ICMP的IP重定向报文和路由发现报文

当IP包在某一个地方转向的时候,都回给发送IP报的源主机一个ICMP重定向报文,而源主机就可以利用这个信息来更新自己的路由表,这样,随着网络通信的逐渐增多,路由表也就越来越完备,数据转发的速度也会越来越快。我们需要注意的是:

  1. 重定向报文只能由路由器发出。
  2. 重定向报文为主机所用,而不是为路由器所用。

在主机引导的时候,一般会发送在网内广播一个路由请求的ICMP报文,而多个路由器则会回应一个路由通告报文。而且,路由其本身不定期的在网络内发布路由通告报文,这样,根据这些报文,每一个主机都会有机会建立自己的路由表而实现网络通信。路由器在一份通告报文中可以通告多个地址,并且给出每一个地址的优先等级,这个优先等级是该IP作为默认路由的等级,至于怎么算的就不深究了。

路由器一般会在450-600秒的时间间隔内发布一次通告,而一个给定的通告报文的寿命是30分钟。而主机在引导的时候会每三秒发送一次请求报文,一旦接受到一个有效的通告报文,就停止发送请求报文。

在TCP/IP详解编写的时候,只有Solaris2.x支持这两种报文,大多数系统还不支持这两种报文。(后面还会讲到一些有用的路由报文)

动态选路协议

前面的选路方法叫做静态选路,简要地说就是在配置接口的时候,以默认的方式生成路由表项。并通过route来增加表项,或者通过ICMP报文来更新表项(通常在默认方式出错的情况下)。 而如果上诉三种方法都不能满足,那么我们就使用动态选路。

动态选路协议是用于动态选路的重要组成部分,但是他们只是使用在路由器之间,相邻路由器之间互相通信。系统(路有选择程序)选择比较合适的路有放到核心路由表中,然后系统就可以根据这个核心路有表找到最合适的网路。也就是说,动态选路是在系统核心网络外部进行的,它只是用一些选路的策略影响路由表,而不会影响到最后通过路由表选择路由的那一部分。选路协议有一大类常用的叫做内部网关协议(IGP),而在IGP中,RIP就是其中最重要的协议。一种新的IGP协议叫做开放最短路经优先(OSPF)协议,其意在取代RIP。另一种最早用在网路骨干网上的IGP协议--HELLO,现在已经不用了。

如今,任何支持动态选路的路由器都必须同时支持OSPF和RIP,还可以选择性的支持其他的IGP协议。

2.1.Unix选路程序

Unix系统上面通常都有路由守护程序--routed。还有一个叫做gate。gate所支持的协议要比routed多,routed只是支持RIPv1版本。而gate则支持RIPv1、v2,BGPv1 等等。

2.1.RIP:选路信息协议

它的定义可以在RFC1058内找到,这种协议使用UDP作为载体(也就是UDP的上层协议)。我们最关心的就是RIP其中的一个段,叫做度量的段,这是一个以hop作为计数器(就是以走过多少路由为计数器)的段(IP协议里面也有一个TTL不是么)。这个度量段将最终影响到路由表的建立。参考图:

一般说来routed要承担如下的工作:

  1. 给每一个已知的路由器发送rip请求报文,要求其他路由器给出完整的路由表。这种报文的命令字段为1,地址字段为0,度量地段为16(相当于无穷大)。
  2. 接受请求,如果接收到刚才的那个请求,就把自己的完整的路由表交给请求者。如果没有,就处理IP请求表项,把表项中自己有的部分添上跳数,没有的部分添上16。然后发给请求者。
  3. 接受回应。更新自己的路由表。使用hop数小的规则。
  4. 定期更新路由表,一般是30s(真频繁)给相邻的路有启发一次自己的路由表。这种形式可以使广播形式的。

这个协议看起来会工作的很好,但是,这里面其实有很多隐藏的忧患,比如说RIP没有子网的概念,比如说环路的危险。而且hop数的上限也限制了网络的大小。

因此,出现了很多RIPv1的替代品,比如说RIPv2,比如说OSPF。他们都是通过某种策略来影响路由表,所以就不说了。

TCP/IP协议中的动态选路与路由发现机制 本文深入探讨了TCP/IP协议中的动态选路机制,包括ICMP重定向报文的原理、ICMP路由器发现报文的作用以及RIP、OSPF、BGP和CIDR四种重要路由协议的特点。通过分析路由器如何响应ICMP报文来动态更新路由表,以及如何利用路由器发现报文简化配置,读者将对TCP/IP网络中的数据传输和路由选择有更深刻的理解。 阅读详情

相关推荐

PyTorch实战:5步搞定Res2Net图像分类模型(附完整代码)

本文详细介绍了如何使用PyTorch在5步内构建高性能Res2Net图像分类模型,包括环境配置、核心模块实现、完整网络架构搭建、训练流程优化及模型部署技巧。Res2Net通过多尺度特征融合机制显著提升图像分类性能,附完整代码帮助开发者快速实践。

java5的博客 1022

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

1.静态IP选路1.1.一个简单的路由表选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0 

一块积木 3万+

【Python爬虫案例教学】超简洁代码采集原神所有角色信息

(。・∀・)ノ゙嗨 大家好,这里是池鱼

xiaoyuan_____的博客 2419

RIP、OSPF、BGP、动态路由选路协议、自治域AS

目录 view sourceprint? 1.1. 动态路由选路协议简介 2.2. RIP(Routing Information Protocol)路由信息协议 3.3. OSPF(Open Shortest Path First)开放式最短路径优先 4.4. BGP/BGP4(Border Gateway Protocol)边界网关协议 5.5. 自治域AS简介

程序狗的成长之路 5539

广义平均(Generalized Mean, GeM)

本位介绍了广义平均操作的定义和简要推导,帮助大家理解其含义。

qq_45802280的博客 4547

RK3588+TRL8367s四网口千兆交换机硬件调试与DTS配置实战

本文详细介绍了基于RK3588处理器与RTL8367S交换机芯片构建四网口千兆交换设备的硬件调试与DTS配置实战。文章深入对比了MDIO与SMI两种通讯方式的配置差异,提供了详尽的设备树代码示例,并总结了常见问题的排查思路,旨在帮助开发者高效完成嵌入式网络设备的软硬件集成与调试工作。

weixin_28308325的博客 467

BGP总结

且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居)--- 基于TCP工作 -三次握手四次断开 4种可靠传输机制 -- TCP只能基于单播工作。1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;[r3-bgp]peer 2.2.2.2 reflect-client 邻居2.2.2.2成为本地的客户端,同时本地成为RR。[r1-bgp]load-balancing as-path-ignore BGP协议开启负载均衡,仅针对EBGP路由有效。

LT3514832434的博客 1120

基于Android13的系统启动流程分析(三)之FirstStageMain阶段

init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init1. Bootloader 引导当按下设备电源键时,最先运行的就是 bootloader(固化在ROM的程序),bootloader 的主要作用就是硬件设备(如 CPU、flash、内存)的初始化并加载到RAM,通过建立内存空间映射,为装载 Linux 内核做好准备,。

q1210249579的博客 5496

数据传输选路

静态选路主要用于主机与路由器之间(route命令): 1.先用本地路由 2.不行则用默认路由 3.当ip包在某个地方中转时,路由器会回给发送IP报的源主机一个ICMP重定向报文,源主机收到后会更新路由表, 如果静态选路不行,则进行动态选路 动态选路主要用于路由器之间: 1.有一个核心路由器存放合适的网路,系统根据它来选路 2.相邻路由器进行通信,路由守护程序根据它从相邻路由器...

program is a art 436

微信小程序云开发 - 实现商家转账到零钱(微信企业付款到零钱) V3功能流程及完整实例代码,过微信云开发的云函数实现企业付款到零钱(提供详细示例源码纯云函数实现,证书、密钥、签名等各种常见问题解决方案

企业付款到零钱(微信小程序提现功能,提现到零钱)微信小程序-云函数实现微信企业付款到零钱功能,实现微信商户号中的企业付款到零钱的功能,微信小程序+云开发+商家转账至零钱+微信小程序用户提现,使用云开发环境的云函数实现微信小程序的支付功能,微信小程序实现微信企业付款到零钱功能的流程,V3 V2基于微信云开发的商家转账至零钱,小程序云函数企业付款到零钱功能实现,云开发实现微信商户支付企业付款到零钱功能,不用服务器纯云函数实现,详细示例代码demo教程,API证书错误,转账不到账怎么办,密钥生成有误,转账失败,有

🏆 前端领域优质创作者 1万+

05 Transformer 到底解决了什么问题

Transformer 是现代大语言模型的底层骨架。本文不推公式,而是从 CNN、RNN/LSTM 的瓶颈讲起,解释 Transformer 如何通过自注意力同时解决长距离依赖和并行训练问题,并说明它为什么能支撑 GPT、BERT 和现代大模型的规模化。

老于的笔记的专栏 245

IP地址的编制

老生常谈的话题 ip编制

weixin_57157156的博客 5664

英伟达(NVIDIA) 显卡型号、计算能力(CC)、CUDA版本、PyTorch版本 对照表

本文全面梳理NVIDIA显卡型号与其计算能力(CC)的对应关系,并详解各代CUDA版本对不同架构的支持与弃用情况,帮助用户判断硬件兼容性。同时,结合PyTorch官方发布版本,整理其支持的CUDA版本清单,指导开发者合理选择深度学习环境配置。涵盖从Jetson嵌入式设备到H100、Blackwell等最新旗舰显卡,是一份实用的AI开发环境搭建参考指南。

寒水馨 · 轻量级技术文档 · hanshuixin.org 4885

《图解TCP/IP》学习笔记(五) IP协议相关技术

文章目录仅凭IP无法完成通信DNSIP地址不便记忆-DNS的产生域名的构成域名服务器解析器 ResolverDNS查询DNS如同互联网中的分布式数据库ARPARP工作机制IP地址 和MAC地址缺一不可RARP代理ARPICMP辅助IP的ICMP主要的ICMP消息其他ICMP消息ICMPv6DHCPDHCP实现即插即用DHCP的工作机制DHCP中继代理NAT工作机制NAT-PTNAT潜在问题解决N...

weixin_38548018的博客 751

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

动态创建对象

对象的存储类型回顾,动态创建对象(new / delete),placement new(定位 new),placement new 的常见应用场景,new / delete 与 malloc / free ,

KouFiee的博客 290

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C语言动态内存分配和预处理器,新手只需了解,对指针熟练的朋友可以多使用动态内存分配的函数,好处多多,后续会出指针、函数、动态数组的讲解

本文摘要: C语言动态内存分配技术允许程序在运行时根据需要申请内存空间。主要内容包括: void指针(无类型指针)的特点和使用场景,可用于临时存储不同类型数据的地址,但需要类型转换后才能解引用。 内存分配相关函数: malloc():分配指定大小的连续内存空间 calloc():分配内存并初始化为零 realloc():调整已分配内存块的大小 动态内存管理注意事项: 必须检查分配是否成功 使用后需用free()释放内存 类型转换时建议使用显式转换 数组动态分配时需要计算总字节数 文中通过多个代码示例演示了如

2301_76633821的博客 1158

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TCP/IP详解

目录一、Internet地址结构1.基本的IP地址结构2.CIDR和聚合3.特殊用途地址二、协议1.ARP地址解析协议2.Internet协议IPv6扩展头部:IP转发:一、IP 转发的核心前提二、IP 转发的两种核心方式(对应书中重点讲解内容)1. 直接交付(局域网内转发)2. 间接交付(跨网络转发)移动IP:一、移动 IP 的核心前提与设计目标二、移动 IP 的核心组件(3 个关键角色,缺一不可)三、移动 IP 的核心工作流程(4 个关键步骤,贴合 IP 转发逻辑)3.DHCP动态主机配置协议DHCP

leopard13的博客 2512

MGRE环境下的中心站点与分支站点

GRE—通用路由封装----tunnel隧道技术—不保障安全性的VPN技术 Tunnel属于一种三层的VPN技术,可以实现专线效果; MGRE—多点GRE—典型的MGRE网络 若需要将多个节点通过GRE组合在一起,那么正常建立需要需要两两均配置,且所有节点IP地址固定; MAGRE可以设定一个中心站点和若干个分支站点;分支站点的IP地址可以不固定;而是通过NHRP(下一跳查询协议)服务来实时获取每...

有小小的远大抱负 954

Libvio.link反爬机制深度解析:动态签名URL与前端指纹对抗

动态签名URL是现代轻量级反爬系统的核心技术之一,其原理基于JWT令牌签发、服务端时间同步与CDN节点绑定,兼具时效性与环境依赖性;前端行为指纹则通过hardwareConcurrency、screen信息、插件枚举等浏览器API构建低侵入式设备识别逻辑。这类技术已广泛应用于影视聚合类平台的内容分发控制,既规避了传统WAF的高成本,又提升了自动化访问门槛。典型应用场景包括播放地址生成、限流策略实施与请求准入校验。本文以Libvio.link为真实案例,系统拆解其接口协议设计、签名生成逻辑与指纹采集机制,聚焦

weixin_33681778的博客 873

隔离网络的DHCP服务

云计算

A_baobo的专栏 2701

一文读懂TCP/IP协议

文章目录前言一、OSI参考模型二、TCP/IP模型三、数据链路四、IP协议(网络层)五、ip相关技术六、TCP,UDPTCPUDP其他传输层协议总结 前言 哈喽伙计们,“清明时节雨纷纷,路上行人欲断魂”,美好的假期结束了,收拾心情,努力搬砖! 一、OSI参考模型 物理层 比特流和电子信号直接的切换 数据链路层 数据帧和比特流之间的转换(数据帧的生成与接受) 网络层 负责寻址和路由选择 传输层 可靠的传输,只在双方通信节点进行处理,不在路由上进行处理 会话层 负责建立和断开通信连接(数据流动的逻辑通路) 表

YJ000312的博客 2756

乱七八糟的

欢迎使用Markdown编辑器 为帮助您在优快云创作的文章获得更多曝光和关注,我们为您提供了专属福利: 已注册且未在优快云平台发布过文章的用户,9月1日—9月30日期间发布首篇文章可享大额首篇流量券扶持,且发布首篇文章后30日内,享连续每日流量券扶持; 已注册且未在优快云平台发布过文章的用户,在8月1日—8月30日期间发布过首篇,可自9月1日起,享连续30天每日流量券扶持;更多福利介绍详见https://mp.youkuaiyun.com/mp_blog/manage/traffic如果你想学习如何使用Mark

qq_40670510的博客 809

内网穿透原理和实现

什么是内网穿透 作者:匿名用户 链接:https://www.zhihu.com/question/63098230/answer/1929852198 希望对你们更易懂要知道这个的意思,需要先来点前菜 1、地球上的电脑设备等要实现通信,都需要有个IP地址才可以实现。 2、IP地址是人为创造的,所以一定有数量限制。 3、最开始没有想那么多,反正就那么点电脑设备,于是直接使用IP地址连在了一起 4、但是后来确实IP地址数量不够,怎么办呢? 聪明的地球人就想了个办法:那就多台电脑共用一个IP地址吧。 5、但这“

S_ZaiJiangHu的博客 2472

Cisco Packet Tracer仿真实验 8:路由信息协议RIP

本实验使用Cisco Packet Tracer模拟器研究RIP路由协议,通过构建网络拓扑、配置接口、启动RIP协议等步骤,验证了RIP基于跳数的路由选择机制和等价路径负载均衡特性。实验观察到RIP周期性更新路由表、首次PING超时现象以及路径选择规律,加深了对距离向量协议工作原理的理解。结果表明RIP协议简单易用但收敛较慢,适用于小型网络环境,其负载均衡功能可提升网络可靠性。实验有效提升了网络配置实践能力和协议分析水平。

小李独爱秋的博客 409

网络课设以及毕设

10、10.0.17.0/24用于VLAN17三层管理部门。4、10.0.11.0/24用于VLAN11一层休闲区。5、10.0.12.0/24用于VLAN12二层行政部。6、10.0.13.0/24用于VLAN13二层人事部。7、10.0.14.0/24用于VLAN14二层业务部。8、10.0.15.0/24用于VLAN15二层IT部。9、10.0.16.0/24用于VLAN16二层后勤部。3、10.0.10.0/24用于VLAN10一层前台。14、114.114.114.0/24用于公网。

weixin_46788537的博客 1423

【LeetCode】两百道经典题解 (1)

文章目录算法双指针1、两数之和(Easy)暴力法哈希法一次哈希法双指针法2、平方数之和(Easy)双指针法3、反转字符串中的元音字母(Easy)双指针法思路一思路二4、验证回文字符串 Ⅱ(Easy)双指针法5、合并两个有序数组[Easy]双指针法6、环形链表(Easy)7、通过删除字母匹配到字典里最长单词(Easy)排序堆快速选择1、数组中的第K个最大元素(Medium)堆快速选择桶排序1、前 K 个高频元素(Medium)2、根据字符出现频率排序荷兰国旗问题1、按颜色进行排序贪心1 分发饼干(Easy)2

诗和远方,代码和你 2378
上一篇: 6,7,8 ICMP协议,ping和Traceroute
下一篇: 11 UDP协议
otuhacker
博客等级 码龄18年 21粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值