- 博客(41)
- 收藏
- 关注
原创 2021-10-09
大佬博客:https://wandouduoduo.github.io/archives/NAT回环:https://wandouduoduo.github.io/articles/6fa007b.html
2021-10-09 20:36:39 246
原创 C语言判断逻辑中&&和||执行规则
对于一个判断语句,如果存在&&和||,其有“短路方式”的判断逻辑:&&:如果第一个为FALSE,则直接退出,不进行后续条件的判断||:如果第一个为TRUE,直接退出,不进行后续条件的判断...
2020-07-09 15:20:20 2037
原创 IPv6知识概述 - ND协议
IPv6知识概述 - ND协议ND协议功能概述ND(Neighbor Discovery,邻居发现)协议是IPv6的一个关键协议,它综合了IPv4中的ARP,ICMP路由发现和ICMP重定向等协议,并对他们做了改进。作为IPv6的基础性协议,ND协议还提供了前缀发现,邻居不可达检测,重复地址检测,地址自动配置等功能,具体如下所示:1)地址解析地址解析是一种确定目的节点的链路层地址的方法。ND中的地址解析功能不仅替代了原IPv4中的ARP协议,同事还用邻居不可达检测(NUD)方法来维护邻居节点之间的
2020-06-12 09:36:22 25088 2
原创 IPv6知识概述 - IPv6报文
IPv6知识概述 - IPv6报文IPv6报文结构IPv6数据报文由两个基本组成部分:IP报头和有效载荷。IP报头包含很多字段,这些字段标识了发送方,接收方和传输协议,并定义许多其他参数。路由器根据这些信息转发数据报文到最终目的地。IP报文中的有效载荷就是发送方给接收方的信息。其结构如下图所示:其中各字段的含义如下:1)IPv6报头(IPv6 Header)每一个Ipv6数据报文都必须包含报头,其长度固定为40bytes。2)扩展报头(Extension Headers)IPv6扩展报头是
2020-06-11 09:59:38 6484
原创 IPv6知识概述 - IPv6地址
IPv6知识概述 - IPv6地址IPv6地址表示根据RFC4291,IPv6地址有3中格式:首选格式,压缩表示和内嵌IPv4地址的IPv6地址表示。首选格式IPv6的地址长度是128位(bit),将这128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开,格式如下:x:x:x:x:x:x:x:x (x表示一个4位十六进制数) 典型的例子如下所示:2000:0000:0000:0000:0001:2345:6789:ABCDIPv6地址每段中的前导0是可以去掉的,
2020-06-10 20:43:05 8303
原创 IPv6知识概述 - IPv4与IPv6
IPv6知识概述 - IPv4与IPv6由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放、透明以及端到端的特性,因此IPV6地址协议应运而生。IPv4局限性IP地址枯竭IPv4只有约42.9亿个地址,而随着社会的发展,需要连接互联网的设备已经远远超过这个数字。Internet骨干路由器路由表容量压力过大NAT技术破坏了端到端应用模型1)NAT方案破坏了IP的端到端模型2)NAT会影响网络的性
2020-06-10 11:41:22 730
原创 IPv6知识概述 - RA报文M/O标志位
RA报文M/O标志位设备在获取IPv6地址等信息时,会先发送RS报文请求链路上的路由设备,路由设备受到RS报文后会发送相应的RA报文来表示自身能够提供的IPv6服务类型。对于RA报文,根据其M字段和O字段确定其获取IPv6地址的模式:1) M字段:管理地址配置标识(Managed Address Configuration)M=0,标识为状态地址分配,客户端通过无状态协议(如ND)获得IPv6地址M=1,标识有状态地址分配,客户端通过有状态协议(如DHCPv6)获得IPv6地址2) O字段:其
2020-06-05 15:30:23 20309
原创 函数返回局部变量
函数返回局部变量在一次C语言实验中,在定义函数返回char*类型的局部变量时,编译器警告“函数返回局部变量地址”。经查资料发现,一般的来说,函数是可以返回局部变量的,但是要注意几种情况。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是...
2019-11-19 17:30:37 718
原创 关于地址转换函数
关于地址转换函数在进行网络编程的时候,常常会遇到ASCII字符串与网络字节序的二进制之间的地址转换问题。老版本的函数有:inet_aton(), inet_addr(), inet_ntoa()inet_aton原型:int inet_aton(const char *strptr,struct in_addr *addrptr);功能:将strptr所指的字符串转换成一个32位的网络...
2019-11-19 17:04:38 400
原创 主机字节序与网络字节序
主机字节序与网络字节序字节序:字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。常见的字节序有:Little endian(小端,LE):将低序字节存储在起始地址小端模式是最符合人的思维的字节序,地址低位存储值的低位,地址高位存储值的高位Big endian(大端,BE):将高序字节存储在起始地址最直观的字节序,地址低位存储值的高位,地址高位存储值的低位,不要考虑对...
2019-11-19 15:32:27 280
原创 共用体Union
共用体Union之前编程很少用到共用体union,最近在学习网络编程的时候,发现一个测试系统大小端的程序利用到了Union的特性,现将其介绍一番。(参考博文:http://c.biancheng.net/view/2035.html)union,共用体,其定义格式如下:union 共用体名{ 成员列表};结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影...
2019-11-19 15:15:47 322
原创 结构体边界对齐问题
结构体边界对齐问题在构造DNS应答包的Answer字段时,我定义了一个结构体,如下所示:typedef struct{ __u16 name; __u16 type; __u16 class; __u32 ttl; __u16 length; __u32 ipv4_addr;}DNS_ANSWER_DATA;但是在进行数据包的构造的时候,在...
2019-11-19 11:39:19 1047
原创 对于一些常用数据类型的理解
对于一些常用数据类型的理解在上个项目的网络编程中,遇到了很多typedef定义的数据类型,现进行记录,主要参考了一下链接:https://blog.csdn.net/EUSIA/article/details/76401235https://www.cnblogs.com/curo0119/p/8891906.htmlhttps://www.jb51.net/article/109690...
2019-11-19 11:34:34 499
原创 使用insmod安装内核模块失败
使用insmod安装内核模块失败由于centos主机与要开发的平台系统版本号不同,因此在编译的时候,如果是要烧录到路由器中,则以其系统版本号为准,如果是在PC机中模拟运行,则以主机系统版本号为准。通过命令uname –r查得PC主机的系统版本号为3.10.0-957.el7.x86_64,而设备开发系统版本号为3.10.14,因此在编译的时候,注意Makefile中相关的路径问题:当在主机中...
2019-11-19 10:31:15 1231
原创 DNS协议分析
DNS协议分析协议描述DNS协议是用来进行域名与IP地址之间的转换的。当一个应用进程需要把域名解析为IP地址时,该应用进程就调用解析程序,把待解析的域名在DNS请求报文中,以UDP数据报方式发送给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在DNS应答报文中返回。若本地域名服务器不能回答该请求,则向其它域名服务器发送查询请求,直至找到能够回答该请求的域名服务器。协议数据格式...
2019-11-12 14:13:53 1306
原创 DNS协议分析
DNS协议分析DNS协议是用来进行域名与IP地址之间的转换的。当一个应用进程需要把域名解析为IP地址时,该应用进程就调用解析程序,把待解析的域名在DNS请求报文中,以UDP数据报方式发送给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在DNS应答报文中返回。若本地域名服务器不能回答该请求,则向其它域名服务器发送查询请求,直至找到能够回答该请求的域名服务器。协议数据格式根据RF...
2019-10-10 17:52:14 1039
原创 C++ 编程题总结
好久没有代码,感觉自己好多东西东忘了,这两天上牛客网刷了几道题。成绩排序查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。示例: jack 70 peter 96 Tom 70 smith 67从高到低 成绩 peter 96 jack ...
2018-07-20 14:35:03 685
原创 指令系统
指令系统MIPS操作数 MIPS算术运算指令的操作数必须来自寄存器。 寄存器分类: MIPS汇编指令算术指令 数据传输指令 在存储器和寄存器之间移动数据的命令 ex1: 假设变量h存放在寄存器$s2中,数组A的基址放在$s3中,试将C语言:A[12] = h + A[8]翻译成MIPS指令: lw $t0, 32($s3) #从内...
2018-07-17 16:17:06 2794
原创 虚拟存储器
虚拟存储器虚拟存储器定义一种将主存用作辅助存储器高速缓存的技术 当代计算机系统的主存主要由半导体存储器组成,由于工艺和成本的原因,主存的容量受到限制。然而,计算机系统软件和应用软件的功能不断增强,程序规模迅速扩大,要求主存的容量越大越好,这就产生了矛盾。 为了给大的程序提供方便,使它们摆脱主存容量的限制,可以由操作系统把主存和辅存这两级存储系统管理起来,实现自动覆盖。...
2018-07-17 14:24:14 5279
原创 高精度运算
高精度加、减、乘、除算法高精度运算作用当参与运算的数据和运算结果的范围超出标准数据类型能表示的数据大小范围的运算时,依靠普通的方法显然不能得到正确的计算结果,因此可以采用高精度算法来进行计算 高精度加法由于高精度数据的位数较高,因此我们可以用字符串的方法来输入数据,并将字符串转换成数字形式存储到int类型的数据中,对数组进行循环,按位做加法运算,并注意进行进位操作。 由...
2018-07-16 23:49:59 1399
原创 几种获取字符串和字符数组长度的函数的区别
几种获取字符串和字符数组长度的函数的区别sizeof()、 length()、 strlen()、 size()strlen(str)和str.length()和str.size()都可以用来求字符串的长度 str.length()和str.size()是用于求string类对象的成员函数 strlen(str) 是用于求字符串数组的长度,其参数是char* 其他的参考博客:h...
2018-07-16 19:35:31 2117
原创 KMP算法
在进行字符串匹配的过程中,如果直接使用暴力法匹配,则时间复杂度为O(mn),其具体代码如下: int string_match(string T, string P){//普通的字符串匹配算法,时间复杂度为O(mn) int i=0; int j=0; int lenT=T.size(); int lenP=P.size(); cout<&l...
2018-07-16 16:53:09 179
原创 操作系统概述
操作系统概述操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,它既承担管理计算机硬件和软件资源的角色,又兼有服务者的职责,为用户使用计算机提供方便,同时作为基础设施,为应用程序提供运行平台。 操作系统作用可以从不同的观点(角度)来观察OS的作用。从一般用户的观点,可把OS看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把OS视为计算...
2018-07-15 09:37:16 441
原创 高速缓存cache
高速缓存cachecache的基本原理 cache是一种小容量高速缓冲存储器,由快速SRAM组成。在CPU和贮存之间设置cache,总是把主存中被频繁访问的活跃程序块和数据块复制到cache。 cache是为了解决CPU与主存的速度匹配问题设计的 cache机制能够达到目的的根本原因是程序执行时存在访问局部性特点: 时间局部性 被访问单元在一个较短的时间间隔内...
2018-07-14 20:41:55 3080
原创 计算机组成原理的基本知识
计算机组成原理的基本知识计算机的分类个人计算机(personal computer) 用于个人使用的计算机,通常包含图形显示器,键盘和鼠标等 服务器(server) 用于为多用户运行大型程序的计算机,通常由多个用户并行使用,并且一般通过网络访问嵌入式计算机(embedded computer) 嵌入到其他设备中的计算机,一般运行预定义的一个或者一组应用程序 软...
2018-07-14 16:30:42 2184 2
原创 存储器分类
存储器分类为了缩小存储器与处理器两者之间在性能方面的差距,通常在计算机内部把各种不同容量和不同存取速度的存储器按一定的结构邮寄地组织在一起,以形成层次化的存储器体系结构。 通常存储器的速度越快则容量越小,就越将其靠近CPU。因此,最快的寄存器离ALU最近,然后是在CPU内部的cache,然后是在CPU芯片外的贮存,离CPU再远一点的就是磁盘,最后是海量后备存储器。 常见的存储器的分类如下:...
2018-07-14 15:55:18 1038
原创 求解乘法逆元
求解乘法逆元基本定义记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 在mod p的运算中,a存在乘法逆元当且仅当a与p互质。一般题目给的是一个大质数,所以只要a不是p的倍数,就以求乘法逆元。例题 代码实现(python)#欧几里得算法求最大公约数def get_gcd(a, b): k = a // b rem...
2018-07-12 10:48:16 1292
原创 分组密码的工作模式
对称密码体制-分组密码的工作模式分组密码的输入具有b位固定长度的明文分组和密钥,输出为b为密文。明文长度若大于b位,则可简单将其分成b位一组的块。工作模式是一项增强密码算法或者使算法适应具体应用的技术。电码本模式(ECB)需要加密的消息按照块密码的组大小被分为数个组,并对每个组进行独立加密: https://i.imgur.com/PsA853T.png” style = “zo...
2018-07-12 00:26:36 2279
原创 网络安全知识
安全套接层(SSL)安全套接层(SSL)SSL是一个通用服务,由依赖于TCP的一组协议实现。 SSL体系结构 SSL为TCP提供可靠的端到端安全服务。SSL实部简单的单个协议而是两层协议: SSL记录协议为高层协议提供基本的安全服务。 SSL中两个重要的概念如下: 连接 提供合适服务类型的一种传输会话 SSL会话是一个客户端和服务器间的关联,会话是通过握手...
2018-07-11 08:57:05 644
原创 密钥管理和分发
密钥管理和分发密钥管理要求对于一个密钥加密方案,双方必须共享同一密钥必须保护密钥不被其他人访问钥匙应该定期更换 密钥分发的可能方式A选择一个密钥后以物理的方式传递给B第三方选择密钥后物理地传给A和B如果A和B先前或最近使用过一个密钥,则一方可以将 新密钥用旧密钥发送给另一方如果A和B到第三方C有加密连接,则C可以在加密连接上发送密钥给A、B 分析:...
2018-07-11 08:56:28 11003
原创 PGP邮件系统
PGP邮件系统PGP简介PGP(Pretty Good Privacy),是一个基于RSA公匙加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它的功能强大,有很快的速度,而且它的源代码是免费的。 PGP包含了用于公钥加密的RSA, DSS和Diffie-Hellman算法,用于对称加密的C...
2018-07-11 08:55:59 2552
原创 完整性和认证性
完整性和认证性密码学Hash函数Hash函数H将可变长度的数据块M作为输入,产生固定长度的Hash值 h = H(M)。一个“好”的Hash函数具有以下的特点: 对于大的输入集合使用该函数,产生的输出结果均匀地分布且看起来随机。即Hash函数的首要目标是保证数据完整性,对于M任何一位或者几位的改变,都将极大可能改变其Hash码。 Hash函数的特性: 对预先制定的H...
2018-07-11 08:55:28 5562
原创 ElGamal、Schnorr数字签名方案
数字签名方案-ElGamal、Schnorr数字签名方案数字签名简介特征 它必须能验证签名者、签名日期和时间 它必须能够认证被签的消息内容 签名应能由第三方仲裁,以解决争执 因此数字签名具有认证功能攻击和伪造 唯密钥攻击 已知消息攻击 一般选择消息攻击 定向选择消息攻击 适应性选择消息攻击 完全破译通用伪造选择伪造 存在性伪造数...
2018-07-11 08:54:59 4956
原创 RSA加密算法
RSA加密算法定义RSA体制是一种分组密码,其明文和密文均是0值某n-之间的整数。RSA使用算法使用乘方运算,没耐高温以分组为单位进行加密。数学基础:大整数因子分解的困难性——任何大于1的整数总可以唯一分解成素因数乘积的形式。算法描述生成密钥 KeyGen: 选择一对不同的素数p和q,n=pq,φ(n)=φ(pq)=(p-1)(q-1) 公钥:n,e; e...
2018-07-11 08:54:14 5196 1
原创 公钥密码学的基本原理
公钥密码学的基本原理基本概念问题公钥密码学与传统密码学的区别 公钥算法是基于数学函数;传统密码学算法是基于代替和置换公钥密码是非对称的,它使用两个独立的密钥;传统密码学使用一个密钥 任何加密方法的安全性依赖于密钥的长度和破译密钥所需要的计算量 公钥密码学仅限于应用在密钥管理和数字签名中 使用公钥密码也需要某种形式的协议,该协议通常包含 一个中心代理,并且其所包含...
2018-07-11 08:53:36 12370
原创 对称密码体制DES、3DES、AES
对称密码体制DES、3DES、AESDESDES采用了64位的分组长度 和56位的密钥长度,它将64位的输入经过一系列变换得到64位的输出,解密则使用了相同的步骤和密钥。 对明文的处理 64位明文经过初始置换而被重新排列 进行16轮相同函数的作用,每轮作用都有置换和代替。 密钥的处理 密钥经过一个置换后,再经过一个置换后,再经过循环左移和一个置换分别得到各轮的子...
2018-07-11 08:51:44 1266
原创 对称密码体制(一)
对称密码体制(一)对称密码模型五个基本成分 明文:原始的消息或数据,既算法的输入。加密算法:对明文进行各种代替和替换。密钥:独立于明文和算法,也是加密算法的输入。算法根据所用的特定的密钥而产生不同的输出。密文:算法的输出,依赖于明文和密钥。解密算法:加密算法的逆运算,既得到明文的过程。 两个要求 加密算法足够强 发送者和接受者必须在某种安全的形式下获得密钥并且...
2018-07-11 08:50:40 10641
原创 数论和有限域的基本概念
数论和有限域的基本概念整除性b | a &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b 整除 a, b 是 a 的因子欧几里得算法最大公因子 gcd(0,
2018-07-05 13:49:32 9390
原创 密码编码学与网络安全基本概念
密码编码学与网络安全密码算法3个分支: 对称密码非对称密码密码学Hash函数以及相关的消息认证码和数字签名 互相信任两个范畴: 通信双方基于加密密钥建立信任的密钥管理和密钥分配的问题基于通信方身份建立信任的用户认证问题 密码算法与协议4个领域: 对称加密:用于加密任意大小的数据块或数据流的内容,包括消息、文件、加密密钥和口令...
2018-07-04 21:15:28 878
原创 关于数据挖掘学习中的知识补充
一、熵(Entropy)用于决策树的属性选择函数,定义为其属性的不纯性度量,发生概率越低的事件,其所携带的熵越低。满足以下几个条件:1.当结点很纯时,其度量值为0;2.当不纯性最大时,其度量值最大;3.度量应该服从多级特性,使得决策树可以分阶段建立起来。其中pi为比例值。二、信息增益(Info Gain)信息增益,即前后信息的差值,对于决策树分类问题而言,指的是决策树在进行属性选择划分前后的信息差...
2018-03-21 16:23:39 291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人