计算机网络-网络层(BGP协议,IP组播,IGMP协议与组播路由选择协议)

news2025/7/21 20:30:29

文章目录

  • 1. BGP协议
    • BGP协议报文格式
  • 2. RIP,OSPF,BGP协议对比
  • 3. IP组播
  • 4. IGMP协议与组播路由选择协议

1. BGP协议

与其他自治系统的邻站BGP发言人(BGP边界路由器)交换信息

在这里插入图片描述
BGP边界路由器之间交换网络可达性的信息,即要到达某个网络所要经过的一系列AS.(各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。)

每当网络状态发送改变或更新时需要使用BGP协议对路由信息进行更新

BGP协议报文格式

一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,。

然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。

在这里插入图片描述

BGP是应用层协议,借助TCP传输数据。

BGP协议特点:

  1. BGP支持 CIDR,因此 BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。

  2. 在BGP刚刚运行时,与BGP的邻站交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

BGP-4的四种报文:

  1. OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。

  2. UPDATE(更新)报文:通告新路径或撤销原路径。

  3. KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性

    也作为收到OPEN报文的确认。

  4. NOTIFICATION(通知)报文:报告先前报文的差错,也被用于关闭连接。

2. RIP,OSPF,BGP协议对比

  • RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。

  • OSPF是一个内部网关协议基于链路状态算法,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议〈如UDP或TCP),而是直接采用IP。

  • BGP是一个外部网关协议使用路径向量算法,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。

3. IP组播

IP数据报的三种传播方式

  1. 单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。

  2. 广播:发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。

  3. 组播(多播):介于广播和单播之间,当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。

    组播提高了数据传送效率。减少了主干网出现拥塞的可能性。

IP组播地址:

为了区分发送主机在同一个IP组播地址,需要IP组播地址

IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。

组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。

需要注意的细节:

  1. 组播数据报也是尽最大努力交付,不提供可靠交付,应用于UDP。速度较快
  2. 对组播数据报不产生ICMP差错报文。
  3. 并非所有D类地址都可以作为组播地址。(了解即可)

IP组播有两种情况:

  1. 局域网的硬件组播
  2. 因特网上的组播(IGMP和组播路由选择协议)

硬件组播:
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。

组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的。

在这里插入图片描述
局域网的组播范围为:

01-00-5E-00-00-00 - 01-00-5E-7F-FF-FF .

但是存在一种情况,D类IP地址后23位相同,但是前5位不同。这样经过硬件组播后,最后组播的结果相同。

所以为了避免上述情况,收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

4. IGMP协议与组播路由选择协议

IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。以及收到组播后是否需要经组播发送给局域网的组播中。

ICMP和IGMP都使用IP数据报传递报文。都是属于网络层协议。

IGMP工作的阶段:

  1. 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。

    本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。

  2. 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。

    只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的

    如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。(组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。)

组播路由选择协议: 组播路由选择协议目的是找出以源主机为根节点的组播转发树。解决组播在路由器之间传输问题。

构造成树形的目的是避免路由器构成环路。

对不同的多播组对应于不同的多播转发树
同一个多播组,对不同的源点也会有不同的多播转发树。

路由选择协议常用的算法:

  1. 基于链路状态的路由选择
  2. 基于距离-向晕的路由选择
  3. 协议无关的组播(稀疏/密集)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++Qt开发——SMTP协议

1. SMTP协议简介 SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。 SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的…

网络安全之命令执行漏洞复现

0x01 漏洞介绍 漏洞等级:严重 Webmin是功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。在版本1.997之前的Webmin中存在一个任意命令注入漏洞,触发该漏洞需登录Webmin。 0x02 漏洞影响范围 …

GitHub最新发布 阿里十年架构师手写版spring全家桶笔记全新开源

嗨咯,大家好! 没错,又是我,还跟前面一样,有好东西我才会出现。那是什么好东西呢?今天啊,给他分享阿里在Github最新发布的spring全家桶笔记第九版,这份笔记一共分三份:sp…

自学前端开发 - VUE 框架 (二):渲染、事件处理、表单输入绑定、生命周期、侦听器、组件基础

[TOC](自学前端开发 - VUE 框架 (二) 事件处理、表单输入绑定、生命周期、侦听器、组件基础) 事件处理 可以使用 v-on 指令 (简写为 ) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。用法:v-on:click"methodName" 或 click"ha…

音视频进阶知识

亮度方程 亮度方程给出彩色光的亮度Y与三基色(R、G、B)的关系式Y1.0000R4.5907G0.06015B 在不同的彩色电视制式中,由于所选的标准白光和显像三基色不同,导致亮度方程也互有差异。 以C光为标准白光源的NTSC制彩色电视制式的亮度方程…

[java/初学者/GUI编程]GUI界面设计——界面组件类

前言 GUI,即图形用户界面,其英文全称是Graphics User Interface。 它是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GUI编程就是编出一个图形用户界面的软件,它使用图形的方式,以菜…

昇思MindSpore时序AI SIG,共同提高序列大数据分析能力

随着信息产业技术的升级,产生了大规模的时间序列数据,长期并广泛存在于工业制造、航空航天、公共卫生、环境保护等关键基础领域。时间序列信息能够被充分理解、计算和利用,实现精准预测并辅助决策,是关系到国家竞争力的重要问题。…

Adaptive Cruise Control (ACC) Test Scenarios(PreScan里面的ACC)

文章目录Adaptive Cruise Control (ACC) Test Scenarios PreScan scenario models available with the ACC system ACC模型的几个预扫描场景可用: 真实生活场景–系统的典型用例 ISO测试协议 这些模型展示了如何使用PreScan对ADAS系统进行建模,并提供“…

Day 56 | 583. 两个字符串的删除操作 72. 编辑距离 编辑距离总结篇

583. 两个字符串的删除操作 解法一:直接求删除的步数 动态规划解题思路: ①确定dp数组以及下标含义 dp[i][j]:以下标i-1结尾的字符串s与下标j-1结尾的字符串t想要达到相等,所需要删除元素的最少次数。 ②确定递推公式 每次…

spring - AnnotationConfigApplicationContext启动之reader、scanner、register逻辑整理

前言 我们在使用spring framework时一般都喜欢按照以下方式写启动 AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(AppConfig.class); 而我们的AnnotationConfigApplicationContext的内容如下 public AnnotationConfigAp…

长时间预测模型DLiner、NLiner模型(论文解读)

前言 今年发布8月份发布的一篇有关长时间序列预测(SOTA)的文章,DLiner、NLine在常用9大数据集(包括ETTh1、ETTh2、ETTm1、ETTm2、Traffic等)上MSE最低,模型单变量、多变量实验数据: 在计算资…

Appium学习日记(二)—— 入门学习(安装Appium和配置环境)

入门 1、安装 Node.js 进入nodejs的官网下载安装包安装,一路点击下一步就行。 安装完毕之后,打开命令行,输入:node -v;显示类似于v10.13.0的版本号信息则表示安装成功。 2、安装Appium以及相关环境配置 Appium可以通过两种方式之…

【Kafka】(1)基础知识汇总

TOC (1)Kafka简介 (1)简单介绍 Kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。既然是消息队列,那么Kafka也就拥有消息队列的相应的特性了。 &#xff0…

Python3 VSCode 配置

VSCode(全称:Visual Studio Code)是一款由微软开发的跨平台免费源代码编辑器。VSCode 开发环境非常简单易用,仅需要安装相关的插件进行简易的配置就可以与原有的python环境组成一套具有简单的代码调试运行的开发工具。对于轻量级的…

聚焦“碳中和”,成都超算中心牵手重庆大学唱好“成渝双城记”

为了积极稳妥推进碳达峰碳中和,加快成渝双城经济圈建设。重庆大学牵手国家超算成都中心和成都计算狗数据科技有限公司,开展了关于CO2电催化还原反应的路径计算工作,积极推动川渝两地实现产学研合作和成果落地转化,深入推进能源革命…

【C++】运算符重载

前言&#xff1a;本教程使用到的工具是vs2010&#xff1b; 目录 为什么要重载运算符&#xff1f; 运算符重载 重载就一定要吗&#xff1f; 重载后的运算符和普通运算符有什么区别&#xff1f; 总结 为什么要重载运算符&#xff1f; 先看代码&#xff1a; #include <…

腾讯实时股票数据接口怎么获取行情?

腾讯实时股票数据接口怎么获取行情&#xff1f;以五粮液为例&#xff0c;要获取最新行情&#xff0c;访问数据接口&#xff1a; 返回数据&#xff1a;v_sz000858"51~五 粮 液~000858~27.78~27.60~27.70~417909~190109~227800~27.78~492~27.77~332~27.76~202~27.75~334~27.…

做SEO为什么有的网站收录很难做?

刚开始做网站的时候&#xff0c;经常遇到网站收录难的问题。有时候一个月都没收录&#xff0c;急得还是忍不住。我困惑了很久。每天都在想是什么原因导致我的网站没有被收录&#xff0c;很无奈也很难过。那时候我还不知道搜索引擎的工作原理&#xff0c;也不知道从何入手。我像…

为什么我抓不到baidu的数据包

最近&#xff0c;有位读者问起一个奇怪的事情&#xff0c;他说他想抓一个baidu.com的数据包&#xff0c;体验下看包的乐趣。 但却发现“抓不到”&#xff0c;这就有些奇怪了。 我来还原下他的操作步骤。 首先&#xff0c;通过ping命令&#xff0c;获得访问百度时会请求哪个I…

[TypeScript]Vue/React子组件实例暴露方法

最近几个月都在用TS开发各种项目&#xff0c;框架有涉及到Vue3,React18等&#xff1b; 记录一下Vue/React组件暴露出变量/函数的方法的写法&#xff1b; Vue2 回顾一下Vue2 组件暴露出去方法&#xff0c;它并没有约束&#xff0c;写在methods里的方法都能被调用&#xff0c;da…