设计模式
This is my study note of Design pattern.
简述设计模式总共有23种,总共可以分为三大类:
创建型模式 5种1工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
建构型模式 7种1适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
行为型模式 11种1策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
创建型模式
工厂方法模式
123456简单工厂模式: 定义一个创建对象的类,将实例化对象的函数封装在这个类内。工厂方法模式: 由于简单工厂模式中,修改配置需要更改工厂类中的代码,违背了开闭原则,因此提出了工厂方法解决此类问题。工厂方法定义了一个抽象 方法,将对象的实例化交由子类实现,功能的修改只需要增加类的数量就行了。
抽象工厂模式
12由于工厂方法中,通过增加类的方法实现功能的拓展,导致用户操作复杂性提高,因此提出抽象工厂方法,即定义了一个接口,用于创建相关或有依赖的对象簇,无需指明具体类。只需要传进参数,就可以实现对 ...
iptables
table
{
margin: auto;
}
This is my study note of iptables.
简介
iptables:包过滤防火墙,是内核防火墙netfilter的管理工具
核心:四表五链1231.iptables并不是一个真正意义上的防火墙,可以理解为一个客户端工具2.通过iptables这个客户端将用户设定执行到对应的“安全框架” -- netfilter中3.netfilter才是真正的防火墙,netfilter位于内核空间
防火墙分类
逻辑上分类121.主机防火墙:针对单个主机进行防护2.网络防火墙:处于网络入口或者边缘,针对入口进行防护
从物理上分类121.硬件防火墙:硬件部分实现部分防火墙,另一部分功能基于软件实现2.软件防火墙:应用软件处理逻辑运行于通用硬件平台上的防火墙
四表五链详解
规则
12防火墙的作用就在于经过的报文匹配“规则”,执行对应的动作。规则:网络管理员预定义的条件,如果数据包头符合这样的条件,就处理这个数据包,规则存储在内核空间的信息包过滤表中。
链
123456netfilter才是真正的防火墙,它是内核的 ...
PPPOE
table
{
margin: auto;
}
This is my study note of pppoe.
简述1PPPOE是一种点对点的协议,即一个节点只能访问另一个指定的节点。PPP协议主要工作在数据链路层,其最重要的功能是提供了身份验证功能,但是PPP协议虽然提供了身份验证的功能,但是不包含地址的信息,因此PPP协议无法直接运用在网络中,而PPPOE就是结合PPP协议身份验证的功能,在PPP协议的基础上将报文封装成PPPOE报文,实现点对点通信。
特点:
PPPOE实现了传统以太网上不能提供身份验证、加密以及压缩等功能
PPPOE通过唯一的Session ID可以很好的保障用户的安全性
PPPOE拨号上网让终端设备连接ISP从而连接宽带接入
可用于调制解调器和数字用户线路等以太网线
PPP协议是一种C/S的协议,即客户端和服务端协议
PPPOE报文
报文字段
说明
Ver域
PPPOE版本号,值为0x01
Type域
PPPOE类型,值为0x1
Code域
Code域为0x00,表示会话数据。Code域为0x09,表示PAD ...
DHCP
table
{
margin: auto;
}
This is my study note of DHCP.
DHCP简介1DHCP,动态主机配置协议,是一个应用层协议。DHCP前身是BOOTP,在Linux的网卡配置中也能看到显示的是BOOTP,DHCP引进一个bootp没有的概念:租约。bootp分配的地址是永久的,而dhcp分配的地址是可以有期限的。
DCHP的作用及特点
自动分配IP、子网掩码、网关、DNS
客户端使用端口为68,服务端使用端口67
DHCP一般不为服务器分配IP,因为它们需要使用固定IP
DHCP服务器和客户端需要在同一个局域网内
三种分配方式
自动分配1自动分配是当DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址。
动态分配1动态分配是当DHCP客户端第一次从DHCP服务器分配到IP地址后,并非永久地使用该地址,每次使用完后,DHCP客户端就得释放这个IP地址,以给其他客户端使用。
手动分配1手动分配是由DHCP服务器管理员专门为客户端指定IP地址。
DHCP协议中的报文12345678DHCP ...
Http
table
{
margin: auto;
}
This is my study note of Http.
HTTP/0.9组成
只允许客服端发送Get请求
不支持请求头
由于没有请求头,因此只支持纯文本格式,无法插入图片
无状态性
每个事务独立进行处理,事务结束时就释放这个连接1由客服端发起一个请求,然后Web服务器响应这个请求返回页面内容,然后连接会关闭,如果请求的页面不存在,也不会返回任何错误码。
HTTP/1.0相比与0.9增加特性
支持请求头和响应头
Response响应以一个响应状态行开始
开始支持客户端通过POST方法向Web服务器提供数据
支持长连接Keepalive
缓存机制以及身份认证
关键优化
Persistent Connection
1将TCP连接保持连接打开状态,以便未来的HTTP请求重用现在的连接,直到客服端或者服务端关闭。
Pipelining(请求流水线)
1客户端可以发送多个请求而无需等待服务端响应,但是服务端必须按照顺序来发送响应。
chunked编码传输
1该编码将实体分块传输并表明长度,直到 ...
TR069
table
{
margin: auto;
}
This is my study note of TR069.
简介
协议命名1TR069全称为"Technical Report 069",是应用层的管理协议。
协议应用1提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范和数据模型。
ACS和CPE模型1当前网络接入形式多种多样、网络复杂,因此提出ACS(自动配置服务器)对CPE(用户终端设备)进行集中管理。
以下以华为的ITMS1000进行展示:
TR069网络框架
TR069网络元素主要有:
ACS:自动配置服务器,网络中的管理设备
CPE:用户端设备,网络中的被管理设备
DNS Server:域名服务器
DHCP server:动态主机配置协议服务器1用户终端设备属于CPE,使用TR069协议与ACS进行消息交互。
基本协议功能
ACS和CPE自动连接,CPE可以通过发送Inform报文自动连接ACS1231.CPE启动,根据获得的URL值找到相应的ACS,并自动发起连接2.CPE使能了周期性发送Inform报文功能,到达 ...
SOAP
table
{
margin: auto;
}
This is my study note of SOAP.
总体简介介绍soap是一种简单的基于XML的协议,可以使应用程序在分散式或者分布式的环境通过HTTP来交换信息。其组成部分包括:
SOAP信封1定义了一个框架,框架描述了消息中的内容是什么,包括内容、发送者、接收者、处理者以及如何处理消息。
SOAP编码规则1定义了一系列化的机制,用于交换应用程序所定义的数据类型的实例。
SOAP RPC表示1定义了远程调用和应答的协议。
SOAP绑定1定义了一种底层传输协议来完成结点间交换SOAP信封的协议。
SOAP基本是从发送端到接收端的单向传输,类似请求/应答模式
特性
轻量级
用于应用程序间的通信
使用SOAP的应用使用HTTP协议通信
SOAP独立于平台
SOAP基于xml
SOAP简单可扩展
SOAP可绕过防火强
SOAP消息组成一条SOAP消息就是一个简单的XML文档,文档包括以下元素:
Envelope(信封),必选,可把XML消息标识为SOAP消息
Header(报头)元素,可选,包含头 ...
I2C
This is my study note of I2C.
总线空闲与信号起始终止
I2C协议规定SDA和SCL都为高电平时总线空闲(not busy)。
I2C协议规定SCL保持高电平、SDA由高变低为起始信号(start),所有命令和数据的传输必须以起始信号为首。
I2C协议规定SCL保持高电平、SDA由低变高为终止信号(stop)。所有命令和数据的传输必须以终止信号为尾。
数据有效1I2C协议规定在总线上出现起始信号start后,若SCL在高电平期间SDA保持电平不变,则SDA的状态表示有效数据(data valid)。在传输数据时SDA的改变必须只能发生在SCL为低电平期间,每一bit数据有1个时钟脉冲时长。
应答和非应答
应答1I2C协议规定每个被寻址设备在接收1字节数据后都必须向发送字节的设备发送应答(ACK)信号,确认的器件必须在应答时钟脉冲期间下拉SDA线,使得SDA线在应答相关时钟脉冲SCL为高电平期间稳定为低电平。
非应答1I2C协议规定与ACK信号相反的信号为非应答(not ACK)信号。在主器件从从器件中读取数据时,主器件必须在读取的最后1字节数据后在S ...
Unknown symbol in module解决方案
This is my study note of linux.
table
{
margin: auto;
}
解决方法可能函数申明缺未定义12此类问题解决方案为: 检查缺失符号是否为只申明却未定义的函数,如果是此时将函数定义后并重新编译内核就可以解决问题。
依赖模块并未加载1234此类问题解决方案: 1.先用modinfo命令检查.ko文件 2.查看打印出的日志,depend一行所对应的依赖,查看是否未加载 3.装载缺失模块
函数未被EXPORT_SYMBOL导出为符号12此类问题解决方案: 代码中加上EXPORT_SYMBOL(“缺失模块名即可”)
Module.symvers文件问题12此类问题解决方案: 检查Module.symvers位置是否正确,若位置不正确可能会导致部分文件无法解析符号,或尝试修改Module.symvers文件
网络基础
This is my study note of Network.
table
{
margin: auto;
}
OLT在PON(Passive Optical Network:无源光纤网络)技术应用中,OLT设备是重要的局端设备,它实现的功能是:
与前端(汇聚层)交换机用网线相连,转化成光信号,用单根光纤与用户端的分光器互联。
实现对用户端设备ONU的控制、管理、测距等功能。
OLT设备和ONU设备一样,也是光电一体的设备。
下联口——PON口1PON口通过光缆和分光器(1:32用的比较多,也就是一个PON口会带下面32个ONU)最终连接到ONU上面.用户数据在ONU上会划分好vlan打包后传到OLT上,PON口则是通过波段来区别是哪个ONU发来的数据.
上联口1他要上连到internet和语音(还有视频)他们之间的数据区分可以在OLT上进行,但是现在通用组网一般会在OLT上层加一台汇聚交换机.这台交换机的作用其实就是解析vlan.
Vlan1虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素 ...