python类的继承
概念继承是指可以使用现有类的所有功能而无需重新编写原来类的情况下对这些功能进行扩展。
举例:12345class A: pass class B(A): pass
super()用途:
避免在改动父类名称时还需改动子类调用方法的代码
在子类中按照一套内置的顺序自动调用父类的方法
多用于多继承问题中
同时可以使用super()初始化父类123456789class Person: def __init__(self,name,score): print("Person is initialized with name:",name) self.score = scoreclass Employee(person): def __init__(self,job_title): super().__init__(name,score) self.job_title = job
类的继承顺序概念类有多继承特性,如果继承关系太复杂,很难看出会先调用那个属性或方法
使用mro可以查 ...
python模块与包概述
模块概念模块是将多个变量、函数放到同一个文件中以方便调用。类与模块都是程序设计模块化的重要手段。类更注重将现实世界的对象抽象,并定义其属性与方法;而模块可以包含多个变量、函数、类定义。
编写模块编写模块就是编写一个.py源文件
导入模块一个模块可以被其他程序导入并使用,导入模块需要使用import语句(1)import 模块名(2)from 模块 import 具体的函数或类
关于__name__一个源文件可以被独立执行,也可以当做模块导入别的文件中,那如何知道在哪种环境中?这就需要内部变量__name__。如果是在主程序中,这个变量的值就是一个特殊值”__main__“;如果是在模块中,就是文件名。
包概念包就是将多个模块组织在一起。如果”模块”是文件,那么”包”就是文件夹
一般来说,库就是一个比较大型的程序包或是一系列程序包。导入时,可以直接导入一个包名。一般情况下,包文件夹中都会有一个特殊的__init__.py的文件,当这个包被首次导入时,__init__.py就会被执行,这段代码一般用于初始化的工作,包括给特殊变量__all__赋值。导入时,python按照以下顺序来查找包或 ...
入侵检测系统概述
概念通过观察行为、安全日志或审计数据来检测入侵的技术,是通过从计算机网络或计算机系统中的若干关键点收集信息并对其分析,从而检测网络或系统是否有违反安全策略的行为和被攻击的迹象。
入侵检测的内容包括:试图闯入、成功闯入、冒充其他用户、违反安全策略、合法用户的泄露、独占资源以及恶意使用。
分类从检测的数据来源,可分为:
网络入侵检测系统 (Network-based IDS, NIDS): 部署在网络的战略位置,例如路由器或交换机后面,监控网络流量。它可以检测到针对整个网络的攻击。
主机入侵检测系统 (Host-based IDS, HIDS): 部署在单个主机上,监控主机的活动,例如文件访问、进程执行等。它可以检测到针对特定主机的攻击。
从技术上说,可分为:
基于异常情况的检测技术:建立一个正常的网络流量模式的基线,然后监测偏离该基线的任何异常活动,如CPU利用率、内存利用率、文件校验和等。如果检测到异常,IDS 就会发出警报。这种方法的优点是可以检测到未知的攻击,缺点是误报率较高,需要仔细调整基线。
基于标志的检测技术:依靠预定义的攻击签名(特征)来识别已知的攻击。当网络流量与这 ...
arp协议
概念地址解析协议(Address Resolution Protocol,缩写ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。
网络中的设备都有一个APR缓存表,存储了其它网络设备IP地址与MAC地址的对应关系。当发送设备向目标设备发送信息时,首先会检索APR缓存表来查找目标设备的MAC地址。若缓存表中没有存储,发送设备会在本地网络上广播发送一个ARP请求,目标设备接受后以单播方式进行ARP应答。这样发送设备便获得了目标设备的MAC地址,可以发送信息,同时也会更新自己的ARP缓存表。
用于动态地完成IP地址向物理地址的转换。物理地址通常是指计算机的网卡地址,也称为MAC(Medai Access Control,媒体访问控制)地址,每块网卡都有唯一的地址。
TCP协议
TCP协议报文格式
16位端口号:告知主机该报文段是来自哪里(源端口Source Port)以及传给哪个上层协议或应用程序(目的端口Destination Port)的。
32位序号:一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。假设主机A和主机B进行TCP通信,A发送给B的第一个TCP报文段中,序号值被系统初始化为某个随机值ISN(Initial Sequence Number,初始序号值)。那么在该传输方向上(从A到B),后续的TCP报文段中序号值将被系统设置成ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移。例如,某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025.另外一个传输方向(从B到A)的TCP报文段的序号值也具有相同的含义。
32位确认号(acknowledgement number):用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。假设主机A和主机B进行TCP通信,那么A发送出的TCP报文段不仅携带自己的序号,而且包含对B发送来的TC ...
UDP协议
UDP协议概念报文格式
UDP首部有8个字节,由4个字段构成,每个字段都是两个字节,
源端口: 源端口号,需要对方回信时选用,不需要时全部置0.
目的端口:目的端口号,在终点交付报文的时候需要用到。
长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部)
校验和:检测UDP数据报在传输中是否有错,有错则丢弃。该字段是可选的,当源主机不想计算校验和,则直接令该字段全为0.当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给应用进程。如果接收方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程0,),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给对方。
IP协议
IP协议概述 IP,指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
IP是TCP/IP协议族中最为核心的协议。所有的 TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。网际协议IP又称为Kahn-Cerf协议,因为这个重要协议正是Robert Kahn和Vint Cerf二人共同研发的,这两位学者在2005年获得图灵奖。
报文格式
版本:占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4),以后要使用IPv6(即版本6的IP协议)。
首部长度:占4位,可表示的0~15,单位是4B。因为IP首部的固定长度是20字节,因此首部长度字段的最小值是5(即二进制表示的首部长度是0101)。而当首部长度为最大值1111时(即十进制数的15 ...
二进制到高级语言
二进制到汇编语言二进制CPU相当原始,只能先把数据从一个地方搬到另一个地方,进行简单运算,再把数据搬过去,这其中没有任何高难度动作。程序员只能按照CPU的旨意直接用0与1编写指令,这就是早期代码。
汇编语言程序员仔细研究汇编语言,发现CPU执行的指令总共也就几个,因此把机械指令和对应的操作系统进行一个简单的映射,将机械指令映射成人们能看懂的单词,就这样,汇编语言出现了。从此,程序员只需要记住人们可以认识的add、sub、mov等单词即可
高级语言的雏形条件与循环的诞生如果指令不涉及某个具体动作,而是做出选择,需要根据某种状态来决定做的事,条件语句出现了:1234if *** blablablaelse *** blablabla此外,有许多重复执行的指令,看起来就是在原地打转时,循环语句出现了:12while *** blablabla
函数的诞生如果需要多组相同的操作,如果说只用汇编语言,无疑是增加多余的工作量,于是便出现了函数,人们可以先打包重复的指令。等使用的时候在声明一下就可以。12func abc: blablabla
递归的运用当条件、循环、函数综合 ...
k8s常见做题思路
一、查看host文件1vim /etc/hosts
找到原本的服务器ip
二、更改网卡配置文件centos、ubumtu、kali网卡配置文件不同,按不同方式配置即可。方法在其他笔记中
虚拟机网络调成仅主机后配置网络
三、启动kubelet服务123systemctl restart dockersystemctl restart kubelet
四、获得nodes信息123456[root@master1 ~]# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIMEmaster1 Ready master 150d v1.18.0 222.1.1.10 <none> CentOS Linux 7 (Core) 3.10.0-862.el7.x86_6 ...
k8s常用命令
k8s常用命令启动k8s:
1systemctl start docker、systemctl start kubelet
1、查看类命令获取节点和服务版本信息1kubectl get nodes
获取节点和服务版本信息,并查看附加信息1kubectl get nodes -o wide
获取pod信息,默认是default名称空间1kubectl get pod
获取pod信息,默认是default名称空间,并查看附加信息【如:pod的IP及在哪个节点运行】1kubectl get pod -o wide
获取指定名称空间kube-system的pod12kubectl get pod -n kube-system
获取指定名称空间kube-system中的指定pod1kubectl get pod -n kube-system podName
获取所有名称空间的pod1kubectl get pod -A
查看pod的详细信息,以yaml格式或json格式显示12kubectl get pods -o yamlkubectl get pods -o json
查看pod的标签信息1 ...







