HCIP——HCIA回顾(笔记)

server/2024/12/23 1:53:19/

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.ppmy.cn/server/6660.html

相关文章

Python编程玩转二维码

文章目录 Python编程玩转二维码第一部分:背景介绍第二部分:qrcode库是什么?第三部分:如何安装这个库?第四部分:库函数使用方法第五部分:场景应用第六部分:常见Bug及解决方案第七部分…

幻方量化开源国内首个MoE大模型,全新架构、免费商用

幻方量化开源国内首个MoE大模型,全新架构、免费商用 OSC OSC开源社区 2024-01-12 19:01 广东 幻方量化旗下组织深度求索发布了国内首个开源 MoE 大模型 —— DeepSeekMoE,全新架构,免费商用。 今年 4 月,幻方量化发布公告称&…

分布式限流——Redis + Lua实现滑动窗口算法

Zset(有序集合)在Redis中用来实现滑动窗口限流的主要思路是利用其自动排序和可过期成员的特点: 初始化及数据结构选择: 为需要限流的接口或服务创建一个唯一的键(key)对应一个Zset。Zset中的每个成员通常是…

【vim】折叠代码

目录 简介操作创建折叠删除折叠打开或关闭折叠在折叠间移动简介 Vim编辑器中可以使用 foldmethod 选项设置折叠方法。 将 foldmethod 设置为 manual 以外的值时,将删除所有折叠并创建新折叠。切换到 manual 方法不会删除现有的折叠。由此可以先用自动定义折叠,然后手动更改它…

PDF被加密无法打印的解决办法

思路很清晰:先解密→再打印 分享四个工具,可以轻松解密PDF: ⭐i love pdf I LOVE PDF是一款免费的PDF网站,界面设计简洁,首页没有广告,但每个功能的操作界面是有广告的,不会影响使用。 部分功…

Virtualenv:Python项目管理的救星

在Python的世界里,依赖包冲突是开发者的噩梦,但也是成长的催化剂。最近在写Python项目中就碰到了这样的问题,明明代码在自己的电脑上表现都是正常的,在另外一台电脑上却始终有些小问题,两台电脑安装的Python版本都是一…

[ICCV2023]RenderIH:用于3D交互手部姿态估计的大规模合成数据集

这篇论文的标题是《RenderIH: A Large-scale Synthetic Dataset for 3D Interacting Hand Pose Estimation》,作者是Lijun Li, Linrui Tian, Xindi Zhang, Qi Wang, Bang Zhang, Mengyuan Liu, 和 Chen Chen。他们来自阿里巴巴集团、上海人工智能实验室、北京大学机…

【大数据】TiDB: A Raft-based HTAP Database

文章目录 数据库知识介绍数据库系统的ACID特性分布式系统和CAP理论关系型数据库与非关系型数据库关系型数据库非关系型数据库 OldSQL、NoSQL、NewSQLOldSQLNoSQLNewSQL OLTP、OLAP、HTAP 前言:为什么选择TiDB学习?pingCAP介绍TiDB介绍TiDB的影响力TiDB概…