网络层中一些零碎且易忘的知识点

  1. 异构网络:指传输介质、数据编码方式、链路控制协议以及数据单元格式和转发机制不同,异构即物理层和数据链路层均不同
  2. RIP、OSPF、BGP分别是哪一层的协议:
    -RIPOSPFBGP
    所属层次应用层网络层应用层
    封装在什么协议中UDPIPTCP
  3. 一个主机可以有多个IP地址,但不同IP地址必须属于不同的网络,否则在发送的时候会出现问题。
  4. 关于NAT:一个NAT路由器收到内网主机的分组后,会匹配表项,若没有匹配的表项(源主机IP地址不匹配或源主机端口不匹配)会直接丢弃分组,因为添加新的表项是管理员的工作,NAT路由器不管这个。
  5. 关于ICMP:
    • 差错报告报文格式:ICMP的数据是出错的IP数据报的首部,而ICMP报文又被封装在IP数据报中,且ICMP属于网络层协议。如下图:
      请添加图片描述
    • 不应发送ICMP差错报告报文的几种情况(特差片组):
      • 对ICMP错报告报文不再发送ICMP差错报告报文
      • 对第一个分片的数据报片的所有后续数据报都不发送ICMP差错报告报文
      • 对具有播地址的数据报都不发送ICMP差错报告报文
      • 对具有殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
  6. OSPF相关
    • 五种分组类型:
      • 问候分组(Hello):用来发现和维持邻站的可达性
      • 数据库描述分组(Database Description):向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
      • 链路状态请求分组(Link State Request):向对方请求发送某些链路状态项目的详细信息
      • 链路状态更新分组(Link State Update):用洪泛法对全网更新链路状态。这种分组是最复杂的,也是OSPF协议最核心的部分。路由器使用这种分组将其链路状态通知给邻站
      • 链路状态确认分组(Link State Acknowledgement):对链路更新分组的确认
    • OSPF可以没有主干区域,但如果一个自治系统内区域过多就需要有一个来管事,也就是要设置一个主干区域了。
  7. BGP四种报文类型:
    • 打开报文(OPEN):用来与相邻的另一个BGP发言人建立关系,使通信初始化
    • 保活报文(KEEPALIVE):用来周期性地证实邻站的连通性
    • 更新报文(UPDATE):用来通告某一条路由的信息,以及列出要撤销的多条路由
    • 通知报文(NOTIFICATION):用来发送检测到的差错
  8. 单播、组播、广播区别:
    • 单播:数据报一对一发送。
      • 若要用单播仿真组播(用多个单播仿真一个组播),则源主机需要发送多个数据报,进而导致比真正的组播需要更多带宽,时延也更大
    • 组播:源主机一个数据报一对多发送。由转发路由复制成多个发送
    • 广播:一个数据报在网络内一对所有发送(源主机发送一个广播分组,广播域内的所有主机都能收到)
  9. 多播MAC地址的映射问题:多播MAC地址的前25位是固定的,前24位是01-00-5E,第25位是0。所以48位MAC地址就只剩下了23位,也用于和多播IP地址的后23位进行一一对应。而多播MAC地址前4位是D类网络号,还剩下5位不能映射,因此 2 5 = 32 2^5=32 25=32个组播IP地址映射成一个组播MAC地址
  10. 广域网概念:广域网是涉及物理层、数据链路层、网络层的一个网络。广域网的数据传输和链路管理涉及数据链路层和物理层,而其建立和管理需要在网络层进行,因为需要路由器来连接和管理不同的局域网。 一般数据传输(如PPP协议)都是在数据链路层的层次,因此广域网大多数是在链路层上进行讨论。
  11. 首部检验和:这个16位检验和字段只对首部查错,不包括数据部分。在每一跳,路由器都要重新计算出的首部检验和并与此字段进行比对,如果不一致,此报文将会被丢弃。重新计算的必要性是因为每一跳的一些首部字段(如TTL、Flag、Offset等)都有可能发生变化,不检查数据部分是为了减少工作量。数据区的错误留待上层协议处理——用户数据报协议(UDP)和传输控制协议(TCP)都有检验和字段。此处的检验计算方法不使用CRC。

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

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

相关文章

Flutter 扩展函数项目实用之封装SizedBox

Flutter里扩展函数可以用简化代码写法,关键字为extension,伪代码写法如下: extension 扩展类名 on 扩展类型 { //扩展方法 } 在Flutter页面里实现控件间距会常用到SizedBox,可使用扩展函数封装来达到简化代码的目的&#xff0…

Java 递归实现汉诺塔小游戏

Java 递归实现汉诺塔小游戏 一、规则二、代码实现(一)思路(二)代码(三)复杂度 三、运行结果 一、规则 汉诺塔(Tower of Hanoi)是一个经典的数学问题,它涉及到将一堆盘子…

Bootloader

Bootloader 一段有下载和引导功能的程序 下载应用程序引导使MCU运行在应用程序中,只在有更新请求或者APP无效的时候才会激活 APP和Bootloader都存在Flash中Flash Driver用来擦除APP,下载临时存放在RAM中,下载完成后复位释放。一般随用随下&a…

Pytorch个人学习记录总结 玩俄罗斯方块の深度学习小项目

目录 前言 模型成果演示 训练过程演示 代码实现 deep_network tetris test train 前言 当今,深度学习在各个领域展现出了惊人的应用潜力,而游戏开发领域也不例外。俄罗斯方块作为经典的益智游戏,一直以来深受玩家喜爱。在这个项目中&…

Python web实战 | 用 Flask 框架快速构建 Web 应用【实战】

概要 Python web 开发已经有了相当长的历史,从最早的 CGI 脚本到现在的全栈 Web 框架,现在已经成为了一种非常流行的方式。 Python 最早被用于 Web 开发是在 1995 年(90年代早期),当时使用 CGI 脚本编写动态 Web 页面…

spring启动流程 (6完结) springmvc启动流程

SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。在实现方法中使用WebApplicationInitializer创建ApplicationContext、创建注册DispatcherServlet、初始化ApplicationContext等。 SpringMVC…

68. 文本左右对齐

题目链接:力扣 解题思路:遍历单词数组,确定每一行的单词数量, 之后就可以得到每一个需要补充的空格数量。从而得到单词之间需要补充的空格数量。具体算法如下: 确定每一行的单词数量 初始值: num 0&…

【JavaWeb】正则表达式

🎄欢迎来到边境矢梦的csdn博文,本文主要讲解Java 中正则表达式 的相关知识🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一下🫰🫰&am…

2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化

2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化 不知道上一讲的大段代码大家看晕了没有。但是如果你仔细看了会发现,其实代码还是不全的。比如分词器我们就没讲。 另外,13B比7B的改进点也没有讲。 再有,对于13B需要多少显存我们…

ios 查看模拟器沙盒的路径

打一个断点运行程序,在xcode consol底部控制台输入: po NSHomeDirectory() 复制路径粘帖到前往文件夹打开沙盒缓存文件夹

Oracle存过-对象权限创建回收、同义词创建删除

Oracle存过-对象权限创建回收、同义词创建删除 -- Oracle存过-对象权限创建回收、同义词创建删除--得到对象授权语句--调用:CALL LOG.COMMON_PKG.get_tab_grant_privs_p(LOG,TZQ,INFO);PROCEDURE get_tab_grant_privs_p(pi_grantor IN VARCHAR2,pi_grantee IN …

golang pprof

pprof是一个用于分析数据的可视化和分析工具,由谷歌公司的开发团队使用go语言编写成的。一般用于对golang资源占用进行分析。不是原创,参考:https://juejin.cn/post/7122473470424219656 1. 通过页面查看golang运行情况 访问 http://127.0.0…

使用Streamlit快速搭建和共享交互式应用

大家好,在数据科学和机器学习领域,向他人展示见解和分享结果与分析本身同样重要,然而创建交互式和用户友好型的应用程序通常需要复杂的框架和耗时的开发过程。Streamlit是一个Python库,它简化了以数据为重点的网络应用程序的创建过…

ppt怎么压缩到10m以内?分享好用的压缩方法

PPT是一种常见的演示文稿格式,有时候文件过大,我们会遇到无法发送、上传的现象,这时候简单的解决方法就是压缩其大小,那怎么才能将PPT压缩到10M以内呢? PPT文件大小受到影响的主要因素就是以下几点: 1、图…

如何使用 PHP 进行数据库连接池优化?

连接池是一个存放数据库连接的地方,就像一个水池,你在这里可以得到数据库连接。这比每次都新建和关闭连接要快得多,因为连接池中的连接是可以重复使用的。 下面是一个简单的例子,展示如何使用PHP和PDO(PHP Data Objec…

Keepalived 在CentOS安装

下载 有两种下载方式,一种为yum源下载,另一种通过源代码下载,本文章使用源代码编译下载。 官网下载地址:https://www.keepalived.org/download.html wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz --no-…

Android 项目架构

🔥 什么是架构 🔥 在维基百科里是这样定义的: 软件架构是一个系统的轮廓 . 软件架构描述的对象是直接构成系统的抽象组件. 各个组件之间的连接则明确和相对细致地描述组件之间的通讯 . 在实现阶段, 这些抽象组件被细化为实际组件 , 比如具体某个类或者对象 . 面试的过程中…

CNN卷积详解

转载自:https://blog.csdn.net/yilulvxing/article/details/107452153 仅用于自己学习过程中经典文章讲解的记录,防止原文失效。 1:单通道卷积 以单通道卷积为例,输入为(1,5,5),分别表示1个通道…

libuv库学习笔记-networking

Networking 在 libuv 中,网络编程与直接使用 BSD socket 区别不大,有些地方还更简单,概念保持不变的同时,libuv 上所有接口都是非阻塞的。它还提供了很多工具函数,抽象了恼人、啰嗦的底层任务,如使用 BSD …

Git拉取远程分支并创建本地分支

一、查看远程分支 使用如下git命令查看所有远程分支: git branch -r 查看远程和本地所有分支: git branch -a 查看本地分支: git branch 在输出结果中,前面带* 的是当前分支。 二、拉取远程分支并创建本地分支 方法一 使用…