- 博客(1286)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
转载 【TCP/IP】检验和算法
在巨著《TCP/IP详解1》中有这样一句话:“ICMP,IGMP,UDP and TCP all use the same checksum algorithm”。的确,检验和算法在TCP/IP协议族中大同小异。其过程大致都是:接收方通过判断检验和是否一致,进一步判断该数据包头部传输过程中是否丢失或者被污染了。本文将以IP协议首部(见下图)为例简单介绍检验和算法:
2016-07-25 17:00:52 2222
原创 ubuntu设置root密码
alt+f2,在弹出的运行窗口中输入:gnome-terminal,回车。 如果新装的系统还没有设置root密码可以在这个界面输入:sudo passwd root,回车后按提示输入两次root的密码
2016-07-25 16:43:00 821
转载 Trie树
很有段时间没写此系列了,今天我们来说Trie树,Trie树的名字有很多,比如字典树,前缀树等等。一:概念 下面我们有and,as,at,cn,com这些关键词,那么如何构建trie树呢?从上面的图中,我们或多或少的可以发现一些好玩的特性。 第一:根节点不包含字符,除根节点外的每一个子节点都包含一个字符。 第二:从根节点到某
2016-07-25 14:41:27 850
原创 trie树与hash表的查找速度对比
#include <stdio.h>#include <string.h>#include <string>#include <tr1/unordered_map>#include "trie_tree.h"using namespace std;int trie_null(void * v, int f){ return 0;}class StrHash{public:
2016-07-25 14:24:56 3682
转载 Trie Tree 介绍
概述Trie树不同于通常的基于键比较的方法, 直接利用键的数字序列直接定位, 通常用于字符串匹配, 特别对公共前缀查找, 非常有效. 朴素的Trie树使用转移矩阵表示,简单易懂, 查找速度快(O(k), k表示键的长度).唯一的缺点是空间利用效率低下. 于是有两种压缩方案被提出, 一种叫后缀压缩, 把non-branching的后缀统一存储起来; 另一种使用链表来表示转移矩阵, 能有效压缩
2016-07-25 11:53:24 1580
转载 Linux分区
前言:以前初识Linux时,对Linux系统安装时分区的选择,一点都不了解,导致几次没法进行下一步安装,因此就静下心来,专门拿出时间研究了研究这方面的知识;以下内容就是以前通过研究Linux安装过程中分区的知识总结出来的一些知识;贴上来,做个备份,也希望对Linux初学者有一些帮助。正文:一般来说,在linux系统中都有最少两个挂载点,分别是/ (根目录)及 swa
2016-07-25 10:16:02 547
转载 Linux系统奇怪的磁盘占用解决记录
近日我所维护的一台服务器运行出现了异常,翻开程序运行日志,初步发现问题是某个过程无法创建新临时文件。 再仔细阅读日志,看到了Java报出的Java.io.IOException; there is not enough space on the disk。那么问题就很明显了,磁盘占满了。但是这事本身就让我很费解,因为这个服务器上所跑的程序不会长期存储文件, 只是一个数据加工服务器,把传
2016-07-25 09:54:17 4207
原创 debian彻底卸载软件
找到此软件名称,然后sudo apt-get purge ......(点点为为程序名称),purge参数为彻底删除文件,然后sudo apt-get autoremove,sudo apt-get clean和dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 两条命令来清除残余的配置文件
2016-07-24 17:24:33 21332 1
原创 TTL & OS
Device / OS Version Protocol TTL AIX TCP 60 AIX UDP 30 AIX 3.2, 4.1 ICMP 255 BSDI BSD/OS 3.1 and 4.0 ICMP 255 Compa Tru64 v5.0 ICMP 64 Cisco ICMP 254 DEC P
2016-07-24 14:55:48 977
转载 POD
对于Windows下ping指令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 现在我就参照ping指令的辅助说明来给大家讲我使用ping时会用到的技巧,ping只有在安装了TCP/IP通讯协定以后才可以使用: ping [-t] [-a]
2016-07-24 14:42:56 868
原创 红黑树分析
为什么要设计成红黑间隔呢?摘录自维基百科 https://zh.wikipedia.org/wiki/%E7%BA%A2%E9%BB%91%E6%A0%91性质[编辑]红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:节点是红色或黑色。根是黑色。所有叶子都是黑色(叶子是NIL
2016-07-24 10:30:25 1184
转载 红黑树插入和删除结点的全程演示
作者:July、saturnman。时间:二零一一年三月二十八日。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权必究。-----------------------------------引言: 目前国内图书市场上,抑或网上讲解红黑树的资料层次不齐,混乱不清,没有一个完整而统一的阐述。而本人的红黑树系列四篇文章(详见文末
2016-07-24 10:17:03 1440
转载 为什么 Archlinux 不适合服务器使用
写在前面:我使用 Archlinux 已经快三年了,而且最近两年中它已经是我的主系统,工作、娱乐都是用它完成的, Windows 只是用来刷刷 BIOS ……我个人还是很喜欢 Archlinux 的 KISS 哲学的,软件包时刻跟随上游并且保持原汁原味,滚动更新随时体验新特性,最喜欢的大概还是 Arch User Repository 了吧……说了这么多,其实核心意思只有一个——我不是什么 Arc
2016-07-24 09:29:30 2390
转载 setup lang
OS:Ubuntu14.04alilang版本v1.0.02015.11.051.alilang安装1.1 gksu.deb安装 下载gksu.deb后,双击文件,出现Ubuntu Software Center安装界面(下图),点击install安装(1),在随后弹出提示框中输入本机管理员密码完成安装1.2 alilang.de
2016-07-24 09:28:19 1660
原创 The Hacker Way
On Wednesday, Facebook filed the prospectus for a $5 billion initial public offering. Here is CEO Mark Zuckerberg’s letter to potential investors. Facebook was not originally created to be a company.
2016-07-23 17:06:44 1459
转载 黑客攻防之可疑文件还原【二】
在上一篇文章中,我们已经取得了两个文件.a和.b,这次我们来解开.a这个pyc文件。需要用到的工具是Easy Python Decompile 由于它只识别.pyc和.pyo类型的文件,我们把.a修改为a.pyc,并进行反编译: 此时情况还不太明朗,我们还需要把b.c文件的内容还原出来,还原的方法是不执行反编译的最后两行,只是生成b.c文件,文件内容如下:
2016-07-23 17:01:52 1136
转载 黑客攻防之可疑文件还原【一】
在一般的攻防对抗中,常常会遇到机器上被放了后门的情况,但这些文件一般是经过处理的,无法直接看出问题所在,这样增加了入侵检测的难度,下面我把入侵检测中真实遇到的例子,结合我之前的一些经验分享给大家,希望大家能对入侵检测有些新的认识,文中的不当之处,也希望大家能联系我纠正,谢谢! 假设我们检测到了机器10.125.7.191有异常,下面需要对异常进行确认,并找到攻击者是如何利用漏洞的。
2016-07-23 17:00:42 868
转载 wireshark捕获/过滤指定ip地址数据包
使用捕获过滤或显示过滤,wireshark可以仅捕获/显示经过指定ip的数据包,即某个ip收到或发出的所有数据包。wireshark捕获/显示过滤使用方法见:“wireshark过滤器”显示过滤:wireshark过滤经过指定ip的数据包显示过滤可以完整的复现测试时的网络环境,但会产生较大的捕获文件和内存占用。ip.addr ==192.168.1.1 //显示所有目标或源
2016-07-23 15:50:30 1262
转载 循环冗余校验检错方案(CRC)
循环冗余校验检错方案(CRC)1、crc校验原理crc校验的根本思想就是在要发送的帧后面附加一个二进制序列,生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使生成的新帧能与发送端和接收端共同选定的某个特定数整除,需要注意的是,这里不是采用的二进制除法,而是采用“模2除法”。到达接收端后,再把接收到的新帧除以(模2除)这个选定的除数。因为在发送端已经通过附加一个数
2016-07-23 15:08:05 2225
转载 在Ubuntu上安装zsh
本文以Ubuntu 12.04 LTS为例,安装目前比较流行的zsh的配置oh-my-zsh。 oh-my-zsh最初是在OS X上供人使用,使用方法见此处。在Ubuntu上安装oh-my-zsh稍有不同。安装先安装zsh和git,同时移除之前可能的oh-my-zsh的安装。?1234sudo
2016-07-23 13:14:23 4405
转载 Ubuntu 14.04 + Terminator + Oh My ZSH with Agnoster Theme
Install Terminator (shell)sudo add-apt-repository ppa:gnome-terminatorsudo apt-get updatesudo apt-get install terminatorTerminator should be setup as default now. Restart your terminal (sh
2016-07-23 13:04:08 4316
转载 zsh-改造你的terminal
今天在知乎上看到了一篇关于《程序员如何优雅使用Mac》,里面介绍了不少Mac的高端使用技巧,其中关于terminal的部分更是深深的吸引了我,于是我也开始了我的terminal改造计划。OK,废话不多说,如果想把你的terminal改造成如下图这个样子,知乎直接盗图,莫怪莫怪,访问原文请点击上方蓝色链接那么至少你需要准备好以下几个东西:iterm2,点击过去下载
2016-07-23 11:39:03 8081
原创 zsh安装教程
先补充点东西1.ubuntu中默认安装了那些shelljiang@Linux:~$ cat /etc/shells # /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbash我的PC上有sh、dash、bash和rbash(这货是谁?)2.当前正在运行的是那个版本的shelljiang
2016-07-22 23:21:01 3729 2
转载 Mocks Aren't Stubs
Mocks Aren't StubsThe term 'Mock Objects' has become a popular one to describe special case objects that mimic real objects for testing. Most language environments now have frameworks that make
2016-07-22 17:23:51 1284
转载 TCP粘包,拆包及解决方法
转自:http://blog.insanecoder.top/tcp-packet-splice-and-split-issue/在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。我们都知道TCP属于传输层的协议,传输层除了有TCP协议外还有UD
2016-07-22 16:35:36 39068 9
转载 Mockito:一个强大的用于Java开发的模拟测试框架
介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例。模拟(Mock)的概念 在软件开发的世界之外, "mock"一词是指模仿或者效仿。因此可以将“mock”理解为一个替身,替代者。在软件开发中提及"mock",通常理解为模拟对象或者fake。 译者注:mock等多
2016-07-22 14:57:50 1012
转载 ITestMock原理解析
1. 干什么用的首先明确一点,ITestMock是一个【Mock管理框架】。顾名思义,我们先来解释一些这个名词中涉及的几个概念。Mock:是一种通过创造难以复现或者缺失的真实对象的替代实例,来进行模拟测试的一种测试手段。它主要应用于隔离复杂的真实外部应用如网络、数据等以专注自身逻辑正确性的测试场景。现在常用的Mock框架已经有不少比较成熟的mock框架如easymock
2016-07-22 14:56:51 1776
转载 JDK动态代理的常见问题
1. 代理只代理接口上的方法本身,不关注实现 类具体实现一个类有a,b两个方法,a中调用了b,如果用动态代理拦截了b,那么调用a方法时,a中对b调用会被拦截么?public class Bean1 implements Bean { public void a() {System.out.println('a');b();} public void b() {S
2016-07-22 14:50:02 2917
转载 【转载】JAVA知识点集锦(下)
这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。
2016-07-22 14:47:30 1766
转载 【转载】JAVA知识点集锦(中)
这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。补充:Sun Micr
2016-07-22 14:47:03 1724
转载 【转载】JAVA知识点集锦(上)
1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的
2016-07-22 14:46:34 3418
转载 实现aop思想的多种方法
含义:AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高
2016-07-22 14:44:06 1792
转载 cglib proxy 源码学习
背景前段时间在写hank hsf 的工具(http://www.atatech.org/articles/23763) 时,发现cndcp 中,一个单例的bean,被jmonitor 做了代理, 动态生成了3个class, 其中 CndcpConsolidationTmsOrderServiceImplEnhancerByCGLIBEnhancerByCGLIB35f433a5
2016-07-22 14:41:30 2861
原创 《TCP/IP卷》读书笔记
本书所有测试网络例子1、TCP/IP的分层在图1 - 2的右边,我们注意到应用程序通常是一个用户进程,而下三层则一般在(操作系 统)内核中执行。尽管这不是必需的,但通常都是这样处理的,例如 U N I X操作系统。在图1 - 2中,顶层与下三层之间还有另一个关键的不同之处。应用层关心的是应用程序的 细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,但它们要处理所有的 通信细节。2、
2016-07-22 10:38:16 2573 1
转载 Ubuntu burg
比自带的grub2好看太多了burg是基于grub2的引导软件,所以用grub2引导的桶子们可以放心使用。一、添加源:sudo add-apt-repository ppa:n-muench/burg二、更新源:sudo apt-get update三、安装主程序、主题以及模拟器:sudo apt-get install burg burg-themes burg-emu安装过
2016-07-22 08:00:35 3957
转载 ubuntu开机画面的修改
这里所讲的ubuntu开机画面的修改指的是9.10以后的版本,因为在9.10之后,ubuntu采用的是plymouth,取代了原先的xsplash,所以只适用于9.10之后的版本。Ubuntu12.04(这里以12.04版本为例)的plymouth设定文件放在/lib/plymouth目录内,与主题相关的设定文件放置于/lib/plymouth/theme,设定主题样式文件为default
2016-07-22 07:08:18 2786
转载 BIO | NIO | AIO释疑
关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一个解释:BIO | NIO | AIO,本身的描述都是在Java语言的基础上的。而描述IO,我们需要从三个层面:1.编程语言2.实现原理3.底层基础从编程语言层面BIO | NIO | AIO 以Java的角度,理解如下:BIO,同步阻塞式IO,简单理解:一个
2016-07-21 16:31:17 789
转载 AIO与BIO接口性能对比
Servlet 3.0标准新增了诸多特性,异步处理支持是令开发者最为关注的一个特性。本文就将详细对比传统的Servlet与异步Servlet在开发以及性能上的差别,分析异步Servlet为何会提升Java Web应用的性能。在进行性能分析前,先简单介绍什么是同步异步、什么是阻塞非阻塞,以及AIO、NIO、BIO的概念。基础知识1 什么是同步与异步、阻塞与非阻塞同步:自己
2016-07-21 16:28:00 5957
转载 Java中BIO,NIO和AIO使用样例
转自:http://blog.insanecoder.top/javazhong-bio-niohe-aioshi-yong-yang-li/上文中分析了阻塞,非阻塞,同步和异步概念上的区别以及各种IO模型的操作流程,本篇文章将主要介绍Java中BIO,NIO和AIO三种IO模型如何使用。需要注意的是,本文中所提到的所有样例都是在一个server对应一个client的情况下工作的,如果你想
2016-07-21 12:58:49 3347
转载 Java NIO系列教程(三) Buffer
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffe
2016-07-21 11:06:26 896
【免费】很小的UML画类图工具很好用
2015-08-03
《算法导论原书第3版》(高清正宗中文版).pdf
2013-10-06
父类非虚函数,子类继承变成虚函数,会发生什么
2015-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人