HCIP——HCIA回顾(笔记)

OSI

OSI -- 开放式系统互联参考模型(7层参考模型)
应用层

抽象语言 -》编码

表示层

编码-》二进制

会话层

提供应用程序的会话地址

传输层
分段

数据包容量不易过大,否则影响传输效率及共享宽带;分段大小由MTU决定;(MTU:最大传输单元,默认1500)

端口号

0-65535,其中1-1023注明端口,用于默认标记固定服务;1024-65535动态端口(高端口),用于随机对应终端的各种进程。

UDP

用户数据报文协议 --- 非面向连接的不可靠传输协议;传输层的基本协议,仅完成传输层的基本工作(分段、端口号)

TCP

传输控制协议 --- 面向连接的可靠传输协议;除了完成传输层的基本工作外,还需要保障传输的可靠性;

面向连接 --- 通过TCP的三次握手建立端到端的虚链路

可靠传输 --- 四种机制(确认、重传、排序、流控(滑动窗口))

TCP的三次握手

最开始的时候客户端和服务器都是处于CLOSED关闭状态。主动打开连接的为客户端,被动打开连接的是服务器。
​
TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了 LISTEN 监听状态
​
第一次握手 TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT 同步已发送状态
​
第二次握手 TCP服务器收到请求报文后,如果同意连接,则会向客户端发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了 SYN-RCVD 同步收到状态
​
第三次握手 TCP客户端收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED已建立连接状态 触发三次握手

有人可能会很疑惑为什么要进行第三次握手?

主要原因:防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误
​
第一次握手: 客户端向服务器端发送报文
证明客户端的发送能力正常
​
第二次握手:服务器端接收到报文并向客户端发送报文
证明服务器端的接收能力、发送能力正常
​
第三次握手:客户端向服务器发送报文
证明客户端的接收能力正常

TCP的四次挥手
数据传输完毕后,双方都可释放连接。最开始的时候,客户端和服务器都是处于ESTABLISHED状态,然后客户端主动关闭,服务器被动关闭。
​
第一次挥手 客户端发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态
​
第二次挥手 服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态
​
第三次挥手 客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
​
第四次挥手 客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

为什么客户端要等待2MSL?

主要原因是为了保证客户端发送那个的第一个ACK报文能到到服务器,因为这个ACK报文可能丢失,并且2MSL是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃,这样新的连接中不会出现旧连接的请求报文。

网络层

Internet协议

IP地址逻辑(临时)寻址

IPV4报头

标准长度20字节 -- 可扩展到60字节

第一行

version:版本(4比特),IPV4 为0100,IPV6为0110
​
IHL:ip头部长度(4比特),带参数(0101=5 ,单位是32比特,最大头部就是15*32/8,范围是20字节-60字节,只能以4字节为基础增加。
​
Service Type:服务质量(8比特)对数据标识时使用
QOS --- 服务质量
TOS(type of service) :标记1,ip优先级:3+5(000 001 010 011 100 101 110 111)0-7(用前三个比特标记)2,DSCP区分服务代码点:6+2,0-63+ECN(显示拥塞通告,顺畅为00拥堵为11)3,PHB:逐跳行为(每一跳行为)兼容模式,共有21个分类(IP优先级全部有,DSCP部分有(匹配多少用多少)Packet Length:ip数据包总长度(16比特)

第二行

Identification:标识符(16比特)
​
Flags:标记位(3比特)
R(保留位)
DF(不分片(0或1))
MF(最后一个片段=0(0或1)
​
Fragment Offset:分片偏移(13比特)

第三行

TIme to Live:生存时间(8比特)
路由次数(255-1)
​
Protocol:上层使用协议(8比特)
范围1-255
​
Header Checksum:表头检查码(16比特)

第四行

Source Address:源地址(32比特)

第五行

Destination Address:目标地址(32比特)

第六行

Option:可选项(定义数据传输时进行标识)(默认为0,如果有内容则Option与padding之和必须是32或者32的倍数)1,严格选路2,松散选路3,记录路由4,时间戳
Padding:填充项(垫片)

数据链路层

以太网/PPP/HDLC/FR/ATM.....

以太网

在二层主要负责两个功能

1,控制物理层(该层的基本功能)

2,提供MAC地址进行物理寻址(以太网的额外功能)

物理层
总结

上三层为应用程序对数据流量进行加工以及处理的阶段,下四层负责数据的传输

名词解释
1、MTU  最大传输单元  传输层对数据分段的大小
2、封装  数据从高层向低层的加工过程,过程中数据封装每层的头部,不断变大
3、解封装 数据从低层向高层的识别过程,过程中需要读取,删除部分头部,不断变小
4、PDU  -- 协议数据单元  各层数据在封装完成后,对数据的单位称呼
应用层---报头
传输层--段
网络层--包
数据链路层--帧
物理层-- 比特 
5、ARP --地址解析协议  通过对端的一种地址来获取对端另一种地址
AARP 正向ARP -- 已知同一网段的ip地址,通过广播来获取该ip对应的MAC地址
反向ARP --- 已知对端的MAC地址,获取本地的ip地址;
FARP -- 无故ARP  使用AARP,来查询本地的ip地址; --- 用于ip地址的冲突检测
6、DNS-- 域名解析服务  通过域名地址,查询对应的ip地址;主要用于http、https等服务
7、TCP/IP与OSI的区别
1)层数不同  
2)OSI模型的网络层支持所有的网络层协议,TCP/IP的网络层实际被成为internet层,仅支持IP协议;
3)TCP/IP协议栈道支持跨层封装
跨层封装--- 应用层数据直接封装于3层报头或者2层报头;
封装3层报头:同一广播域内的服务型协议--ARP/OSPF..... 使用的设备均为3层设备
封装2层报头:同一交换网络内的二层设备服务型协议---STP 
正常应用程序封装的数据流量不做跨层处理
因此跨层封装的意义在于更快的完成服务型协议间的沟通计算
​
跨层封装时,部分层面的功能,必须由其他层面来辅助完成;
--- 4层的分段、端口号(区分进程)
跨层封装到3层报头时,IPV4报头可以对数据进行分片,之后每片内容填充于报头中,携带到目的地;
3层报头中还存在协议号,用于对标后方所封装的协议0-255,6代表TCP/17代表UDP;
其余数字每一个皆对应一个固定的跨层封装协议
​
2层报头中也有类似的功能来实现分段、进程区分;
主讲以太网:在非跨层封装到2层时,以太网使用第二代数据帧,该帧不具备分片功能,仅存在类型号,可用于区分进程;
故一旦数据被跨层封装到二层时,将启用第一代以太网封装;
第一代封装将数据链路层分为了两层 --->LLC逻辑链路控制子层+MAC介质访问控制子层
LLC层负责分片和提供类型号来区分进程,MAC层用于提供MAC,以及控制物理层;
LLC层 --802.2标准   MAC层-802.3标准
​
数据包转发过程(重点)
源终端设备需要进行数据封装,从高层封装到物理层;过程中基于应用层流量,选择传输层的协议和端口号;基于目标ip地址、目标mac来封装三层和二层头部;
1,本地已知
2,访问网页基于域名,通过dns服务器进行解析
3,终端客户软件提前存储服务器ip地址,直接访问服务器,基于服务器中转来与实际目标通讯
获取目标mac地址方式:使用arp请求通过广播的形式来获取统一广播设备的mac地址
​
交换机的工作原理:当数据帧进入交换机后,先查看数据中的源mac地址,然后将其与对应的入口记录;之后基于目标mac地址,查询本地的mac地址表,若表中存在记录,按照记录对应接口单播转出;若没有记录,需要洪泛流量(除了流量进入的接口外,其他所有接口复制转出)
​
终端访问另一设备时,在过去目标ip地址后,关注目标ip地址是否和本地处于同一网段;若在同一网段,使用arp获取对端mac地址后,单播通讯;当目标ip地址与源头不在同一网段,将封装目标mac地址为本地的网关位置,之后数据进入路由器,由路由器将数据基于路由表路由转发到目标地点;
数据在跨网段传输过程中,源、目ip地址正常不变化,单源。目mac地址在每一个广播域中重新编写,用于该广播域内的物理寻址;
​
mac地址:由48位二进制构成,使用16进制标识;全球唯一,出厂时烧录到芯片中;
​

IPV4地址

由32位二进制构成,点分十进制标识
分类:ABCDE五类
其中ABC为单播地址 --- 唯一计科作为目标ip地址,也可作为源ip地址; --- 只有单播地址可以配置为各个节点的ip;
D类为组播地址,只能作为目标ip地址;

基于ip地址的第一段即可分类:

A 1-126

B 128-191

C 192-223

D 224-239

E 240-255

特殊地址
1,在ABC地址中存在私有ip地址与公有ip地址的区分
公有地址:具有全球唯一性,可以在互联网中通讯,且需要付费使用
私有地址:仅具有本地唯一性,不能在互联网中通讯,无需付费使用
所以,通过私有构建的企业或局域网,访问全部为公有地址的互联网时,必须转换为合法且唯一的互联网公有ip地址;
私有地址:
10.0.0.0/8  
172.16.0.0/16-172.31.0.0/16
192.168.0.0/24-192.168.255.0/24
​
2,127 环回地址,用于测试TCP/IP协议栈道在设备上是否正常
3,全0 0.0.0.0 1)在dhcp请求ip地址作为源ip,代表所有地址2)在路由表作为缺省路由,代表所有目标
4,全1 255.255.255.255 受限广播地址,在不明确目标ip地址时,发送广播时成为目标ip地址,受到路由器的限制,不能转出单个广播域
5,主机位全0 不是一个具体的ip地址,网络号---代表一个网段
6,主机位全1 不是一个具体的ip地址,该网段的直接广播地址
7,169.254.0.0/16 自动私有地址,本地链路地址;终端在通过dhcp行为多次获取ip地址失败后,本地自动生成的一个ip地址,网络号固定,主机位随机
VLSM
可变长子网掩码 --- 通过延长子网掩码的长度,起到将一个网络号码划分为多个可用网段;--- 子网划分
CIDR
无类域间路由 --- 取相同位,去不同位
将多个网络号合成一个网段号码;
CIDR=子网汇总+超网
子网汇总 --- 汇总后,汇总网段地址的掩码长于或等于主类
超网 --- 汇总后,汇总网段的掩码长度短于主类

静态路由

在默认情况下,路由器仅存在直接网段的路由;
直连路由产生的条件:
1,路由器的接口配置了合法的ip地址
2,同时该接口已经开启,且可以通信
所有非直连网段为该路由器的未知网段,获取未知网段方法:
1,静态路由 --- 管理员手写路由表
2,动态路由 --- 所有路由器运行相同的动态路由协议后,路由器之间沟通、协商、计算自动生成路由表
[Huawei]ip route-static 10.1.1.0 24 192.168.1.2目标网络号    下一跳
下一跳:流量从本地发出后,下一个进入的路由器接口  -- 下一个入口地址(路由器)
[Huawei]ip route-static 10.1.1.0 24 GigabitEthernet 0/0/1目标网络号    出接口
出接口:流量从本地路由器发出的接口号;
在MA网络中建议使用下一跳写法,在点到点网络中建议使用出接口写法;
网络类型
点到点 --- 在一个网段中,只能存在两个节点
MA -- 多路访问 ---在一个网段中,存在节点数量不限制;
​
若在MA网络中使用出接口写法,编辑静态路由;为获取精确的下一跳MAC地址,路由器将使用代理ARP和ICMP重定向;
代理ARP:若一台路由器收到了非本接口直连网段地址的ARP请求,将查询本地路由表,若表中存在到达被请求ip地址的网段的路由,将代理该被请求ip,使用本地的MAC地址进行ARP应答;
ICMP重定向:当路由器发现一个数据包从本地的A口进入后,查询完路由表依然从A口再发出,将告知上一跳设备,本地的下一跳地址来优化转发路径;
基于以上的规则总结:在MA网络中使用出接口写法,数据转发过程繁琐浪费资源,故建议下一跳写法;
​
在点到点网络中若使用下一跳写法:
由于路由器是递归查询路由表的,故下一跳写法生成的路由条目每次查询时,均需要递归到直连路由上,但出接口写法可以不用递归;因此在点到点网络中,由于其不存在代理ARP/ICMP重定向之类规则,故建议出接口写法;
​

静态的扩展配置
1)手工汇总当路由器访问多个连续子网(可以汇总成一个网段)时,且全部基于相同的下一跳路径;可以将这些目标网络进行汇总计算后,仅编写到达汇总网段的一条路由即可;--优化路由表,减少路由条目数量,加快查表速度,降低网络延时;
​
2)路由黑洞 --- 汇总的路由网段中包含了网络内实际不存在的网段时,流量将有去无回;造成资源浪费;  主动黑洞--地址设计不合理   被动黑洞--设备关机断电导致
​
3)缺省路由 --一条不限定目标,在路由表中0.0.0.0标识的路由,代表所有网段;路由器查表时,在查询完本地所有的直连、静态、动态路由后若依然没有可达路径,才使用该条目;
[Huawei]ip route-static 0.0.0.0 0 12.1.1.2
4)空接口防环路由--当黑洞路由与缺省路由相遇时,将必然出现环路;
通过在黑洞路由器上,编写到达汇总网段的空接口路由,可以防止环路的产生;
[Huawei]ip route-static 1.1.1.0 24 NULL 0
5)浮动静态路由 --默认手写的静态路由优先级为60;直连路由为0;优先级取值范围0-255;越小越优秀;通过在编写静态路由时,修改优先级,可以实现静态路由备份的效果;
[Huawei]ip route-static 1.1.1.0 24 12.1.1.2 preference 61
6)负载均衡--当访问同一网段时,若存在多条开销相似路径时,可以让设备将流量拆分后延多条路径同时传输,实现带宽叠加的效果;
​

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

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

相关文章

积极探索新质生产力,九河云携手华为云技术交流引领数智跃迁

4月18日,九河云携手华为云举办了华为云SA技术培训会议,培训邀请到华为云技术人员作为主讲人,通过理论讲解与案例结合的方式,围绕ECS和EBS之间的联动,调优和数据保护等方面展开,深入浅出地讲解了基于EBS部署…

常用UI组件

一、文本组件 1.1 概述 Text为文本组件,用于显示文字内容 1.2 参数 Text组件的参数类型为string | Resource Entry Component struct Index {build() {Column({space : 50}) {Text(你好).fontSize(50)}.width(100%).height(100%).justifyContent(FlexAlign.Cent…

便携式HD-SDI模拟源测试设备

便携式HD-SDI模拟源测试设备 平台简介 便携式手提CameraLink模拟源测试设备,以PCIe的HD-SDI播出卡和X86主板为基础,构建便携式的手提设备。 平台默认操作系统为win7 64位系统;具备丰富的外设接口,如VGA、HDMI、千兆网口、USB2.0/3…

HCIP——MPLS(笔记)

MPLS--多协议标签交换技术 包交换 数据组成数据包,之后,在各个网络节点中不断传递,最终到达目标。包交换转发效率不高的问题所在:1,在整个包交换的过程中,需要先查询路由表之后再查看ARP缓存表两张表来完…

【 基于Netty实现聊天室聊天业务学习】第4节.什么是BIO与NIO

IO在读写的时候是阻塞的,无法做其他操作,并发处理能力的非常低,线程之间访问资源通信时候也是非常耗时久,依赖我们的网速,带宽。 我们看一下他的白话原理 我们来看一下这张图那么这张图的话它里面有一个server还有三个…

【C++题解】1607. 两位数运算

问题:1607. 两位数运算 类型:基本运算、拆位求解 题目描述: 小丽在编程课上学会了拆位运算,她已经可以拆出一个两位整数的十位和个位了,她想知道这个整数的十位 / 个位的结果是多少,请编程帮她实现&#…

【问题处理】银河麒麟操作系统实例分享,adb读写缓慢问题分析

1.问题环境 处理器: HUAWEI Kunpeng 920 5251K 内存: 512 GiB 整机类型/架构: TaiShan 200K (Model 2280K) BIOS版本: Byosoft Corp. 1.81.K 内核版本 4.19.90-23.15.v2101.ky10.aarch64 第三方应用 数据库 2.问题…

深度学习--CNN应用--VGG16网络和ResNet18网络

前言 我们在学习这两个网络时,应先了解CNN网络的相关知识 深度学习--CNN卷积神经网络(附图)-CSDN博客 这篇博客能够帮我们更好的理解VGG16和RetNet18 1.VGG16 1.1 VGG简介 VGG论文网址:VGG论文 大家有兴趣的可以去研读一下…

【智能算法】鸡群优化算法(CSO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2014年,X Meng等人受到鸡群社会行为启发,提出了鸡群优化算法(Chicken Swarm Optimization, CSO)。 2.算法原理 2.1算法思想 CSO算法的思想是基于对…

数仓建模—物理数据模型

数仓建模—物理数据模型 前面我们讲了数据模型和逻辑数据模型,你可以参考前面的文章,这一节我们介绍一下物理数据模型 数仓建模—数据模型 数仓建模—逻辑数据模型 什么是物理数据模型 物理数据模型指定如何在数据库中构建数据模型。它概述了所有表结构,包括列名、数据类…

润开鸿与蚂蚁数科达成战略合作,发布基于鸿蒙的mPaaS移动应用开发产品

4月18日,江苏润和软件股份有限公司(以下简称“润和软件”) 旗下专注鸿蒙方向的专业技术公司及终端操作系统发行版厂商江苏润开鸿数字科技有限公司(以下简称“润开鸿”)与蚂蚁数科举行战略合作签约仪式,并发…

【Java开发指南 | 第十六篇】Java数组及Arrays类

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 数组数组特点创建数组处理数组多维数组Arrays类 数组 Java中的数组是一种用来存储固定大小的相同类型元素的数据结构。 数组特点 数组具有以下特点: 1、固定大小: 一旦数组被创建,其…

系统调优助手,PyTorch Profiler TensorBoard 插件教程

0x1. 前言 使用PyTorch Profiler进行性能分析已经一段时间了,毕竟是PyTorch提供的原生profile工具,个人感觉做系统性能分析时感觉比Nsys更方便一些,并且画的图也比较直观。这里翻译一下PyTorch Profiler TensorBoard Plugin的教程并分享一些…

Sui在Basecamp 2024上重塑区块链行业

Sui主网于去年推出,世界各地的社区活动帮助开发者了解了这一开创性的区块链技术的潜力,而Sui Basecamp表明Sui时代已经到来。 来自65个国家的超过1100人参加了今年在巴黎举办的Sui全球活动,以了解Sui在游戏和DeFi领域的坚实立足点。在两天的…

什么是XXE攻击?如何进行防护

安全性很难做到正确,即使在当今具有安全意识的世界中,也存在一些严重的漏洞,例如 XML 外部实体 (XXE),它们被忽视并最终成为破坏的原因。 XML 外部实体 (XXE) 攻击是一种计算机安全漏洞,通常存在于 Web 应用程序中&…

SpringBoot 项目Docker部署三种方式

一种:直接拷贝jar到服务器部署 1.增加docker配置文件 新建Dockerfile文件,负责Docker的配置 FROM openjdk:21#ENV timezone RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo Asia/Shanghai >/etc/timezone# WORKD…

2W 3KVDC 隔离单、双输出 DC/DC 电源模块——TPH 系列

TPH系列是一款2W,单、双输出隔离电源模块,特别适合板上只有一种电压而要求有正负电源的场合,工业级温度范围–40℃到105℃,在此温度范围内都可以稳定输出2W,并且效率非常高,高达86%,温升非常低&…

JavaSE进阶篇-面向对象程序设计

一、面向对象和面向过程的关系 1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做; 2)面向对象:强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。 总结…

Python进阶编程 --- 3.闭包、装饰器、设计模式、多线程、网络编程、正则表达式、递归

文章目录 第三章:3.1 闭包3.2 装饰器语法糖写法 3.3 设计模式3.3.1 单例模式3.3.2 工厂模式 3.4 多线程3.4.1 进程、线程和并行执行3.4.2 多线程编程 3.5 网络编程3.5.1 Socket3.5.2 服务端开发3.5.3 客户端开发 3.6 正则表达式3.6.1 基础匹配3.6.2 元字符匹配单字符…

fopen/fwrite/fread/open/write/read的区别

fopen和Open,read和fread,write和fwrite有什么区别,很多人都会弄混了,而这经常会带来一些问题。所以在这里理清他们的关系是很有必要的。 open/read/write是Linux提供的系统调用,用户态的程序只能通过这些接口来访问文件系统层。而fopen/fread/fwrite是C库提供的文件读写接…