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

HCIA、OSPF笔记

一、OSI参考模型

1、OSI的结构

应用层:把人类语言转化成编码,为各种应用程序提供网络服务。

表示层:定义一些数据的格式,(对数据进行加密、解密、编码、解码、压缩、解压缩,每一层都可以实现,只不过一般在表示层进行操作)。

会话层:对通信双方进行建立、维护、拆除(session ID能够保障各个会话窗口互不影响)

传输层:建立端口对端口的连接(逻辑连接(ip连接))----端口号

DNS(域名解析系统):端口号53

HTTP(超文本传输协议)----80

SMTP(简单邮件传输协议)----发邮件--25

pop3(邮局协议)---收邮件--110

telnet(远程登录)---23

FTP(文件传输协议)----20、21

TFTP(简单文件传输协议)

动态端口号:1024-65535----用来分配给一些不固定的服务

网络层:路由器,提供路由,依据ip寻址,转发数据。

数据链路层:交换机,封装成帧、差错检测、流量控制。

LLC子层:逻辑链路控制子层,为传输可靠性提供一个保障,减少出现帧丢失、重复、失序的情况 (CRC-----循环冗余计算码)

MAC子层:媒体接入控制子层,负责识别网络层的协议,然后对他们进行封装、解封装,MAC寻址、 流量控制

物理层:集线器,传输比特流,定义一些参数(电压、接口、线缆标准、传输距离、传输介质、物理扩扑、信号传输模式)

2、信号传输模式:

单工模式:同一时间内,通信双方只能有一方有收或者发消息

半双工模式:同一时间内,通信双方可以同时有收或者发消息

全双工模式:同一时间内,通信双方可以同时有收发消息(目前使用的模式)

二、TCP/IP参考模型

1、TCP/IP的模型

TCP/IP标准模式:应用层、传输层、网络层、网络接口层

TCP/IP对等模式:应用层、传输层、网络层、数据链路层、物理层(8字):7字节+1字节
前同步码(标识从数据链路层传下来的数据+帧开始定界符(10101011)(便于接收端识别帧头帧尾))

2、各个层中的协议

应用层、表示层、会话层:SMTP、POP3、FTP、DNS、SNMP、TFTP等

传输层:TCP、UDP

中间的协议:ICMP、IGMP

网络层:IP

中间的协议:RARP、ARP

数据链路层、物理层:USB

3、TCP协议

TCP固定的头部字节:20Byte

source port:源端口

destination port:目的端口

sequence number:序列号,标识本机发送的数据报文的编号 Ack : ACK=1,确认号,标识请求对方下次发送的数据报文的编号

date offest:数据偏移,标识数据分段在完整数据中的位置

reserved:保留,给未来开发的功能 urg:当位置为1,urgent pointer紧急指针位会发挥作用,优先发送数据

PSH:TCP的推送位,在缓冲区未填满的情况下,尽快的将缓冲区的数据推送上前,交付给接收的应用 进程

RST:复位开关

SYN:连接建立的标志位

FIN:连接断开的标志位

WINDOW:窗口,通告本机接收能力 checksum:校验和

4、TCP的可靠机制

TCP的三次握手:

第一次:由客户端发出连接请求到服务器,服务器收到后可以确定客户的发送与自身的接收没问题。

第二次:再由服务器回话个客户,让客户知道自己的发送与接受没问题,这时服务器还不知自己的发 送是否有碍,

第三次:需客户在此回话表示服务器的发送无碍时,方可以稳定建立连接,三次握手完成后就可以进 行数据传输。

四次挥手:

第一次:若由客户端发出断开请求时,当服务器收到后,表明了客户没有要给服务器发送数据的事。

第二次:当服务器收到后,再次回复给客户端表明同意你的请求。

第三次:再次由服务器给客户端发送关闭连接的请求。

第四次:客户端收到后,再次给服务器发送同意的信息时,就会关闭连接,此时当客户端等待2msl时, 客户端依旧没有收到信息时,则证明服务器已正常关闭,此时客户端就可以正常关闭。

确认机制:

Ack=上一次seq+上一次的lenseq=上一次的Ack

滑动窗口机制:

通过滑动窗口来通告本机的接收能力,实现流量控制

完整性校验机制:

通过checksum来校验数据的完整性

5、TCP,UDP的协议特点

TCP:可以实现流量控制; 进行数据分段; 面向连接的可靠协议; 使用场景:对传输效率要去求不高,对准确性要求高,占用带宽高 。

UDP(用户数据协议):不能实现流量控制; 连接无的不可靠协议; 使用场景:对传输效率要去求高,对准确性要求不高,占用带宽不高。

6、IP协议

version:版本(4或6)

IHL:IP地址的头部长度20Byte

type of service :服务类型

total length:IP头部+从传输层传下来的数据

identification:标识

FLAGS:标识符,保证数据分片后,区别与网络中的其他IP数据报文

fragment offset:片偏移,标识数据分片在完整数据中的位置

ttl:生存周期,32、64、128、256

protocol:描述上层所使用的协议

header checksum:头部校验和

source address:源IP地址

destination address:目标IP地址

TCP分段:受MSS的影响(最大数据分段长度)

IP分片:受MTU的影响(最大传输单元) 例如:以太网接口(通过光纤上网),默认的MTU是1500字节 PPPOE(宽带拨号上网、网线上网),默认的MTU是1492字节

7、ICMP协议-网络报文管理协议

Type=0,Code=0时Echo reply:ping回复

Type=8,Code=0时Echo rrquest:ping请求

Type=3,Code=0时网络不可达

Type=3,Code=1时主机不可达

Type=3,Code=2时协议不可达

Type=3,Code=3时端口不可达

Type=5,Code=0时重定向

8、以太网帧协议(只在数据链路层出现)

目的地址+源地址+类型+数据(来自网络层)+FCS
FCS:帧尾


三、OSPF

1、OSPF的介绍

1.1、三张表


路由表:提供路由信息
拓扑表:存放链路状态信息
邻居表:存放了邻居的状态和邻居的基本信息


1.2、五种数据包


hello:周期性的建立和维护邻居关系
DBD(DD):数据库描述报文,描述的是LSA(链路状态通告报文)的摘要信息
LSR:链路状态请求报文,自己没有的或者比自己更新的那些链路状态的信息
LSU:链路状态更新报文
LSAck:链路状态确认报文

1.3、ospf工作过程


邻居:同一OSPF区域内相互通信的路由器。邻居之间通过定期发送Hello包来确认连通性,并建立相互的邻接关系。
邻接(邻居的升华):


(1)确认可达性(双up),建立邻居(通过3次hello包)


route ID:标识的是路由器的身份
手工配置:IPV4地址格式,点分十进制(不能重复)
自动选举:协议自己自动选举(通过环回口、物理接口)
环回口:IP地址最大的优先成为ROUTER ID(从第一个网络模块开始进行比较,若模块都相同则比较子网掩码的大小)
物理接口:IP地址最大的优先成为ROUTER ID
注:手工配置>环回口>物理接口
建议:一般配置一个环回口


(2)摘要同步,开始建立邻接关系(确立了邻居关系之后)


a、A向邻居路由器B发送DBD报文,通告本地LSDB(链路状态数据库表)中所以的LSA的摘要信息
b、B收到DBD报文后,与本地的LSDB做对比,向A发送LSR报文,请求对方发送自己需要的LSA的完整信息(所需的目录及目录下的所有信息)
c、A收到LSR后,把对方所需要的LSA的完整信息打包成一条LSU报文,发至B
d、B收到LSU后,向A回复LSAck报文,进行确认
选举DR(指定路由器)、BDR(备份指定路由器)、DRother(其他没有角色的路由),保证路由信息的交互更加高效有序的进行
选举范围:每个网段都会选举出一个DR和BDR
选举规则:
a.接口优先级(0~255),默认优先级是1,数字越大接口优先级越高
b.router ID,IP地址大的优先成为DR、次优是BDR
关系状态:
DR和BDR建立邻接关系
DR和DROTHER建立邻接关系
BDR和DROTHER建立邻接关系
DROTHER和DROTHER之间不用建立邻接关系
注意:DR没有抢占性(不会因为新增路由器而改变原来的DR,除非DR和BDR都故障了),当DR故障了,BDR代替DR


(3)完整信息同步,完全邻接关系建立


完全邻接关系建立,LSDB表和路由表形成
注:OSPF的周期性更新,是增量更新
3、ospf状态机


DOWN:稳定状态(关闭状态),这种情况处于手动指定router ID,发送第一个HELLO包的时候,进入下一个状态
Attempt:一般不会出现,收不到对方的HELLO回包,这种情况一般出现在NBMA网络(非广播多点接入网络)
INIT:初始化状态,收到了对方的HELLO回包,但没有收到对方的hello确认包
2-way:双方互相发现邻居,邻居状态(关系)稳定,并确认DR和BDR的角色,稳定状态
(以上就已经确认邻居关系了,相当于3次hello包的过程)
Exstart:交换开始状态,发送一个空的DBD报文,不发送LSA的摘要信息(提示对方)
Exchange:交换状态,发送后续的DBD报文,用于通告LSDB的LSA的摘要信息
Loading:读取状态,进行LSA的请求、加入、确认
Full:完全邻接关系建立,LSDB表和路由表形成,稳定状态
OSPF的周期更新:30分钟
以上步骤同时进行

2、ospf的多区域


2.1、区域产生背景


(1)如果运行OSPF协议的路由器都处于同一个区域,随着网络规模的变大,同步LSDB表会表的非常缓慢,会导致诸多的问题
(2)OSPF路由器在同一个区域会广播发送LSA,如果网络规模大,会导致LSDB表的同步非常缓慢


2.2、分区的好处


(1)减少了LSA的广播范围
(2)减少了路由表的规模
(3)提高网络的扩展性,有利于大规模网络


2.3、区域类型(骨干区域和非骨干区域)


骨干区域:area 0
AREA ID 0=0.0.0.0
1=0.0.0.1


2.4、多区互连原则


(1)非骨干区域必须和骨干区域互连
(2)非骨干区域之间不会互连(防止形成环路)
(3)骨干区域不能被分割
路由角色:


IR:内部路由器,所有接口都在一个区域内
BR:边界路由器,连接多个区域
ABR:区域边界路由器
AS:自治系统,同一个自治系统内的路由器的AS编号是一样的
ASBR:自治系统边界路由器

3、OSPF协议的特点


没有跳数限制
使用组播更新变化的路由和网络信息
224.0.0.6:DR和BDR的组播接收地址
224.0.0.5:指网络中所以运行OSPF协议的路由器
路由收敛速度快
以cost作为度量值(rip以跳数作为度量值)
有效避免环路问题
在互联网上被大量使用,是应用最广泛的路由协议
OSPF的更新周期是30分钟(RIP的更新周期是30秒

相关文章:

HCIA、OSPF笔记

一、OSI参考模型 1、OSI的结构 应用层:把人类语言转化成编码,为各种应用程序提供网络服务。 表示层:定义一些数据的格式,(对数据进行加密、解密、编码、解码、压缩、解压缩,每一层都可以实现&#xff0c…...

Python删除lru_cache缓存

在 Python 中,lru_cache 是一个装饰器,用于添加缓存功能以提高函数的性能。如果你想清除或者删除 lru_cache 中的缓存,有几种方法可以做到: 手动清除缓存: lru_cache 对象有一个方法叫做 cache_clear(),可以手动清除所有缓存。示例:@lru_cache(maxsize=128) def some_fun…...

Android面试必问题:大白文讲透Android View工作原理

目录 第一章 引言 第二章 Android View 基础概念 2.1 视图(View) 2.2 布局(Layout) 2.3 绘制(Drawing) 第三章 Android View 工作原理详解 3.1 测量过程剖析 3.2 布局流程探究 第四章 Android View 性能优化建议 4.1 视图层级优化 4.2 避免过度的视觉效果 4.…...

WinDbg配置远程调试

WinDbg配置远程调试 1、为什么需要远程调试 某些特殊的场合需要远程调试,如: ①调试特殊的程序,比如在调试全屏程序,内核。 ②需要别人帮助调试或者帮助别人调试。比如由于商业性质不能直接给你pdb和源代码。 ③还有一类就是…...

spl注入实战thinkphp

目录 一、环境的部署 二、本地创建数据库 三、填写数据库连接文件 四、编写控制器 五、访问分析 debug报错会显示物理路径 原因是config.php文件相关配置 六、注入分析 七、进入断点调试 八、通过mysql执行语句查看结果 九、总结: 一、环境的部署 二、本地…...

整理深度学习时最常用的Linux命令(自用)

清华大学镜像源: https://pypi.tuna.tsinghua.edu.cn/simple/tar文件解压 tar -xzvf xxx.tar.gztar xvf xxx.tarzip文件解压 unzip xxx.zip -d path/to/your/fold清理GPU异常内存占用 杀掉 1 号显卡的所有进程 fuser -v /dev/nvidia1 | xargs -t -n 1 kill -9杀掉…...

LVS——>linux 虚拟服务器知识汇总

一、概念: LVS(Linux Virtual Server),是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统负载均衡解决方案,它将一个真实服务器集群虚拟成一台服务器来对外提供…...

AI赋能周界安防:智能视频分析技术构建无懈可击的安全防线

周界安全防范是保护机场、电站、油库、监狱、工业园区等关键设施免受非法入侵和破坏的重要措施。传统的周界安防手段主要依靠人员巡查和物理屏障,但这种方式不仅人力成本高,而且效率较低,难以满足日益复杂多变的安全需求。随着AI技术的引入&a…...

FastAPI+Vue3工程项目管理系统项目实战私教课 上课笔记20240808 课程和学习计划制定

学习目标 将Word和Excel做的东西放到数据库里面去工程类公司,甲方,劳务存到数据库存储的信息主要是人员的信息 基本信息: 人员信息,资料库,甲方的人出现在哪些项目上,考勤材料信息,进货记录&…...

Robot Operating System——发布相对湿度数据

大纲 应用场景定义字段解释 案例 sensor_msgs::msg::RelativeHumidity 是 ROS (Robot Operating System) 中的一个消息类型,用于表示相对湿度数据。 应用场景 环境监测 气象站:在气象站中,相对湿度传感器可以用于监测环境湿度,帮…...

一文搞懂后端面试之不停机数据迁移【中间件 | 数据库 | MySQL | 数据一致性】

数据迁移方面的工作: 重构老系统:使用新的表结构来存储数据单库拆分分库分表、分库分表扩容大表修改表结构定义 数据备份工具 MySQL上常用的两款数据备份工具:mysqldump和XtraBackup mysqldump:一个用于备份和恢复数据库的命令…...

【ESP01开发实例】- ISD1820录音控制

ISD1820录音控制 文章目录 ISD1820录音控制1、ISD1820模块介绍2、硬件准备及接线3、代码以实现录音技术已经取得了长足的进步,它已成为从语音助手到安全系统的各种应用不可或缺的一部分。如果您有兴趣构建自己的录音系统,将 ISD1820 模块与 ESP01 微控制器相结合可能是一个不…...

Linux驱动面试高频考点后面继续改整理

Linux驱动开发是将硬件设备与操作系统内核连接起来的重要环节,它涉及到设备模型、中断处理、文件操作等方面,是一项挑战性且充满乐趣的工作。今天给大家分享45道Linux驱动面试高频考点,直接上干货。 1、驱动程序分为几类? 内核驱动…...

【Python】nn.ConvTranspose1、2、3d()函数详解和示例

前言 在深度学习中,特别是在处理图像、音频和三维数据时,转置卷积(Transposed Convolution)或称为反卷积(Deconvolution)是一种非常重要的操作。PyTorch提供了nn.ConvTranspose1d、nn.ConvTranspose2d和nn…...

vtkConnectivityFilter提取连通区域中的问题

直接使用vtkConnectivityFilter提取连通区域&#xff0c;渲染上没问题&#xff0c;但是打印出polydata中的点数&#xff0c;发现跟原始数据是一致的。 for (int i 0; i < numRegions; i){vtkSmartPointer<vtkConnectivityFilter> connectivityFilter vtkSmartPointe…...

购物系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;特价商品管理&#xff0c;用户管理&#xff0c;留言板管理&#xff0c;订单管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&…...

做报表用什么工具?不想再用Excel了!!!

一、什么是中国式报表&#xff1f; 不知道大家现在还是使用Excel来制作报表&#xff0c;然后跟领导汇报工作吗&#xff1f;虽然Excel功能很强大&#xff0c;但是用Excel做过中国式报表的小伙伴一定知道它的制作过程有多复杂。 中国式报表可以用一句话简单概括&#xff1a;格式…...

c++实现学生管理系统(附源码)

目录 一、基本功能&#xff1a; 二、包含的模块&#xff1a; 三、系统介绍 1. 学生管理系统的功能&#xff1a; 2. 具体的需求&#xff1a; 3. 支持的标准&#xff1a; 四、系统结构功能图&#xff1a; 五、系统设计 1. 退出系统&#xff1a; 2. 增加学生&#xff1a…...

JS防抖是什么?干嘛用的?

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏和关注&#xff01;个人知乎 防抖在前端开发中可以说经常用到&#xff0c;有诸多使用场景。接下来我们一起看下防抖的定义、防抖函数的实现、应用场景、lodash防抖函数以及防抖在框架中的使用。Let’s go 一、什么是防…...

Linux磁盘管理与文件系统(二):实用工具和命令、fdisk分区示例

文章目录 4、查看或管理磁盘分区-fdisk格式选项示例 4、示例&#xff1a;使用 fdisk 命令创建分区需求操作步骤 5、创建文件系统-mkfs格式常用选项示例创建其他类型的文件系统 6、创建文件系统-mkswap格式常用选项示例拓展&#xff1a;关闭和启用交换分区拓展&#xff1a;swap分…...

使用vtkRenderer创建的显示点云的窗口如何刷新(QT/C++)

一、使用vtkRenderer创建点云显示窗口&#xff0c;参考 在Qt创建的UI中放一个显示点云的窗口&#xff08;PCLQT5&#xff09;_pcl点云和qt-CSDN博客 二、刷新vtkRenderer创建的窗口 使用场景&#xff1a;在某些情况下代码中需要对显示窗口的显示物改动&#xff0c;例如通过滑…...

Mysql绕过小技巧

上源码。 <?php $mysqli new mysqli("localhost", "root", "root", "security");/* check connection */ if ($mysqli->connect_errno) {printf("Connect failed: %s\n", $mysqli->connect_error);exit(); }$my…...

气象大数据案例项目(求各气象站的平均气温)

气象大数据案例项目&#xff08;求各气象站的平均气温&#xff09; 一、项目需求二、数据格式三、项目开发3.1 在windows 进行开发3.2 运行结果3.3 对项目打包 一、项目需求 现在有一份来自美国国家海洋和大气管理局的数据集&#xff0c;里面包含近30年每个气象站、每小时的天…...

博客摘录「 一个ModBus RTU程序(支持01、02、03、05、06、15、16功能码)」2024年4月19日

发送数据最好改为中断模式&#xff0c;不然通信速度不够。...

Vue3学习笔记第一天

MVVM Vue是一种用于构建用户界面的JavaScript框架。MVVM 是Vue采用的一种软件架构模式&#xff0c;用于构建交互式的用户界面。它的全称是 Model-View-ViewModel&#xff0c;这三个部分分别代表了应用程序的不同层次和角色&#xff1a; Model&#xff08;模型&#xff09;&…...

C++之类与对象(完结撒花篇)

目录 前言 1.再探构造函数 2.类型转换 3.static成员 4. 友元 5.内部类 6.匿名对象 7.对象拷贝时的编译器优化 结束语 前言 在前面的博客中&#xff0c;我们对类的默认成员函数都有了一定了解&#xff0c;同时实现了一个日期类对所学的没内容进行扩展延伸&#xff0c;本…...

代码质量的守护者:Python静态代码分析工具的集成之道

标题&#xff1a;代码质量的守护者&#xff1a;Python静态代码分析工具的集成之道 在软件开发过程中&#xff0c;代码质量是至关重要的一环。Python作为一种流行的编程语言&#xff0c;拥有众多的静态代码分析工具&#xff0c;它们能够在代码运行之前检测潜在的错误和代码风格…...

JVM -- 类加载器

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现访问接口和类字节码数据的技术。类加载器只负责加载过程中的字节码获取并加载到内存的这一过程。 一、 类加载器的分类 类加载器的详细信息可以使用Arthas通过classloader命令查看&#xff1a; 1.启动类加载器(Boots…...

OLAP引擎之StarRocks

StarRocks 是一款新兴的开源分布式实时分析型数据库&#xff0c;专为高性能、高并发的数据分析场景设计。它结合了传统数据仓库和大数据技术的优势&#xff0c;提供了强大的实时数据处理和分析能力。以下是对 StarRocks 的详细介绍&#xff0c;涵盖其基本概念、核心特性、架构设…...

基于微信小程序的小区业主服务系统(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…...