- 博客(21)
- 收藏
- 关注
原创 将EAP报文封装到RADIUS报文
1. 采用eap over radius封装格式承载到radius中,用于方便扩展认证协议报文穿越复杂的网络,到达认证服务器。2. eap中继方式需要radius服务器支持eap属性,eap终结方式将rap报文在设备端终结并映射到radius报文中,利用标准radius协议完成认证、授权、计费。设备端与radius服务器之间可以采用pap或者chap认证认证方法;3. eap-message属...
2019-11-20 15:26:47
1630
原创 抓包分析AP、客户端和服务器三者之间数据的传输过程
1. 客户端发出eapol-start报文;2. ap发出request,identity报文,请求客户端发送用户名过来;3. 客户端将用户名通过response报文发出去;4. ap将EAP数据封装在radius协议的eap-Message属性中,发送给radius服务器进行认证;5. 服务器收到设备转发的用户名信息后,将该信息与数据库中的用户名表比对,找到该用户名对应的密码信息,用随机...
2019-11-20 15:24:47
1878
1
转载 关系型数据库和非关系型数据库
关系型数据库有:MySQL,MicroSoft Access,MicroSoft SQL Server,DB2,Oracle。非关系型数据库:NoSQL,Redis,HBase,Cloudant,MongoDo。关系型数据库:特性:1.采用了关系模型来组织数据的数据库。2.关系模型指的是二维表格模型,二一个关系型数据库就是由一个二维表和其之间的联系所组成的一个数据组织。...
2019-08-28 13:56:05
188
原创 设计模式六大原则简单总结
1 单一职责原则:指的是一个类对应一种职责,而不是一个类对应多个职责,实现类的职责要单一,尽量避免出现职责扩散的问题。2 里氏替换原则:指的是类之间的继承关系,子类不应该去修改父类中的内容,不能破坏继承体系,而是在子类中去扩展父类的功能。3 依赖倒置原则:指的是类之间的依赖关系,尽量避免直接依赖,通过定义一个接口,然后被依赖的类分别去实现这个接口中的所有方法,然后通过调用接口去...
2019-08-02 12:16:27
110
原创 TelneT四种工作模式
1 半双工这是Telnet的默认方式,但现在却很少使用。NVT默认是一个半双工设备,在接收用户输入之前,它必须从服务器进程获得GO AHEAD(GA)命令。用户的输入在本地回显,方向是从NVT键盘到NVT打印机,所以客户进程到服务器进程只能发送整行的数据。虽然该方式适用于所有类型的终端设备,但是它不能充分发挥目前大量使用的支持全双工通信的终端功能。RFC 857 [Postel 和Reyn...
2019-06-20 14:53:46
3732
原创 Telnet协议(图解交互过程)
TelneT默认端口号修改:(1)修改/etc/services中的默认端口(2)修改/usr/lib/systemd/system/telnet.socket中的默认端口 修改内容如下: ListenStream=9090 #9090:请用自己的端口号代替(3)修改端口:命令:semanage port -a -t telnetd_port_t -p tcp 9...
2019-06-20 14:45:40
7886
原创 Telnet协议
基于TCP协议,面向连接的一种服务。1 使用Telnet协议远程登录的工作过程(1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名;(2)将本地终端上输入的用户名和口令以及输入的任何命令或字符以NVT格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;(3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送...
2019-06-17 21:31:58
2228
1
原创 Linux下查看CPU的负载状态、磁盘状态的命令
1 查看CPU信息(1)总核数 = 物理CPU个数 * 每颗物理COU的核数。(2)总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数。(3)查看物理CPU个数:cat /proc/cpuinfo | grep "physical id" | sort |uniq |wc -l(4)查看每个物理CPU中core的个数(即核数)cat /proc/cp...
2019-04-30 15:25:17
1321
原创 僵死进程
Linux僵死进程产生的原因以及如何避免产生僵死进程:给进程设置僵死状态的目的是维护子进程的信息,以便父进程在以后某个时间获取。这些信息包括子进程的进程ID、终止状态以及资源利用信息(CPU时间,内存使用量等等)。如果一个进程终止,而该进程有子进程处于僵死状态,那么它的所有僵死子进程的父进程ID将被重置为1(init进程)。继承这些子进程的init进程将清理它们(init进程将wait它们,从...
2019-04-26 11:14:23
371
原创 多进程和多线程
1 多进程:进程可以分为系统进程和用户进程。进程是操作系统进行资源分配的基本单位。在windows下,进程又被细化成线程。一个进程下有多个能独立运行的更小的单位。在同一时间同一计算机系统中如果允许两个或两个以上的进程处于运行状态,即就是多任务(并发技术)。1.1 并发技术:实现并发技术很复杂:最容易理解的就是“时间片轮转进程调度算法”,其思想是在操作系统的管理下,所有正在运...
2019-04-22 17:02:22
218
原创 C++11智能指针的底层及解析
智能指针的本质:本质是存放在栈上的模拟对象只是在栈内部包了一层指针,指针指向的是堆内存。到时一同释放。shared_ptr内部的引用计数是线程安全的,但是对象的读取需要加锁,它初始化传入指针通过构造函数或者使用make_shared函数,不能将指针直接赋值给一个智能指针,一个是类,一个是指针。(1)拷贝使得对象的引用计数加1,赋值使其减1。当为0时,自动释放内存。后来的对象引用计数加1...
2019-04-21 15:51:04
542
原创 关于hash类关联容器的底层实现
有关hash类的关联容器有:hash_set,hash_map,hash_multiset,hash_multimap这四类。它们的底层实现方法为hashtable,并且哈希表底层通过开链法实现。开链法和开地址法:开链法即(开散列):相对于闭散列所解决hash冲突的优势。闭散列(开地址法):最大的局限性就是空间利用率低。采用开链法的原因:开链法可以使载荷因子为1。每个链上都...
2019-04-14 14:28:30
211
原创 指针和引用的区别
1 指针和引用的定义1.1 什么是指针?指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。所有指针的值的实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数。不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。1....
2019-03-23 17:31:11
186
原创 Git常用的命令操作
1 git 怎么在本地建立代码仓库 (1)打开Git Bash之后,输入命令ssh-keygen -t rsa -C "xxxxxxxx@xxx.com"(自己注册时绑定的邮箱)(2)进入:C:\Users\自己电脑用户名\.ssh)中,使用记事本打开 id_rsa.pub 文件, 将该文件中的内容复制(3)进入 github,进入账户的设置选项 ,之后点击左边侧栏的SSH and G...
2019-03-21 22:54:54
104
原创 RPC封装需要注意的一些技术细节
什么是RPC?RPC(Remote Procedure Call,即远程过程调用)是建立在Socket之上的,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用)。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。对于RPC架构来说,应...
2019-03-20 16:59:36
923
原创 浅谈MySQL中的InnoDB存储引擎
前言:MYSQL中常见的三种存储引擎有:MyISAM引擎、InnoDB引擎、Memory引擎。MyISAM引擎MyISAM引擎是MySQL默认的存储引擎,MyISAM不支持事务和行级锁,所以MyISAM引擎速度很快,性能优秀。MyISAM可以对整张表加锁,支持并发插入,支持全文索引。如果你不需要事务支持,通常我们建表时都选用MyISAM存储引擎,像新闻表之类都没有必要支持事务。In...
2019-03-19 09:40:24
332
1
原创 TCP的半关闭状态
Linux中的close和Windows中的closesocket被使用后,在 不涉及socket的引用计数增加与减少的情况下,当被调用的时候是会处于完全断开的状态。为什么TCP要支持半关闭状态这种特性?由于在全关闭的状态下,当服务器端的数据发送完毕要关闭连接的时候,这时客户端会接收到服务器端的请求,但由于使用全关闭状态,则客户端向服务器端发送的断开连接确认请求将无法再次返回给服务器端。此...
2019-03-17 11:32:03
3561
原创 Linux中互斥锁、读写锁、自旋锁的使用
Linux中常见的锁主要有:互斥锁、读写锁、自旋锁。这三种锁的使用以及区别将在下面一步步深入了解。1 互斥锁1.1 互斥锁的作用互斥锁(也称互斥量)可以用于保护关键代码段,以确保其独占式的访问,和有点像一个二进制信号量。当进入关键代码段时,我们需要获得互斥锁并将其加锁,这等加于二进制信号量的P操作;当离开关键代码段时,我们需要对互斥锁解锁,以唤醒其他等待该互斥锁的线程,这等价于二进...
2019-03-16 14:34:39
5275
原创 select、poll和epoll三组I/O复用函数的比较
select、poll和epoll主要有如下五点区别:1. select、poll和epoll三组I/O复用系统调用,这三组系统调用都能同时监听多个文件描述符。它们将等待由timeout参数指定的超时时间,直到一个或者多个文件描述符上有事件发生时返回,返回值时就绪的文件描述符的数量。但有区别的就是由于每次select和poll调用都返回整个用户注册的事件集合(其中包括就绪和未就绪的),所以应用...
2019-03-12 16:03:31
173
原创 TCP和UDP总结
1.TCP和UDP的区别:(1)TCP是面向连接的;UDP是面向无连接的,即发送数据之前不需要建立连接。(2)TCP提供可靠数据服务,即传送的数据无差错,不丢失,且按照顺序到达,UDP只是尽最大努力交付。(3)TCP通过校验和,重传控制,序号标识,滑动窗口,确认应答实现,可靠传输。(4)UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信或广播通信。...
2019-03-10 13:29:18
344
原创 八大排序的思想以及代码的实现
概述排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。我们这里说说八大排序就是内部排序。1.选择排序(Simple Selection Sort)基本思想:选择排序是一种简...
2019-03-04 23:25:39
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人