- 博客(35)
- 资源 (1)
- 收藏
- 关注
转载 SSH简介及公钥、私钥的基本概念
SH为一项创建在应用层和传输层基础上的安全协议。最早的时候,互联网通信都是明文通信,一但被截获,内容就暴露无遗,之后在1995年,芬兰学者Tatu Ylonen设计了SSH协议,将信息加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广。当然需要指出的是,SSH只是一种协议,存在着很多实现,著名的有OpenSSH以及PuTTY。在客户端来看,SSH提供了两种级别的安全验证:第一种级
2016-04-29 10:51:20 5812
原创 [算法] 生成唯一id
生成唯一id 主要有单表唯一id,多表唯一id,集群唯一id,不连续id 等场景可以使用一下方式:1.使用数据库自增Id2.在全局使用创建maxid表,每次插入都查询并更 新该表3.可以使用全局唯一表4.服务器编码+表自增id合成唯一标识5.维护一个id池,程序启动的时候,生成id池,使用id的时候,从id池中随机取出一个,并从id池中删除
2016-04-24 20:21:21 2686
原创 b B kb kB kbps KBps 换算
b = bit 位B = byte 字节1b = 1/8Bkb 千位KB 千字节ps /s 每秒kbps 每秒多少千位KBps 每秒多少千字节1Mkbps = 1024kbps = 128KBps
2016-04-22 11:36:52 1778
原创 ubuntu server设置时区和更新时间
data -R tzselectcp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimentpdate time.windows.com
2016-04-21 11:32:18 242
转载 RTS包
TCP连接关闭的正常方法是四次握手。但四次握手不是关闭TCP连接的唯一方法. 有时,如果主机需要尽快关闭连接(或连接超时,端口或主机不可达),RST (Reset)包将被发送. 注意,由于RST包不是TCP连接中的必须部分, 可以只发送RST包(即不带ACK标记). 但在正常的TCP连接中RST包可以带ACK确认标记。
2016-04-20 14:04:47 909
原创 linux 常用解压压缩命令
zip压缩一个文件:zip error.zip error.log压缩一个文件夹zip -r data.zip data/解压unzip error.zipunzip error.zip -d error //指定文件夹
2016-04-20 11:28:05 245
原创 带宽
1M宽带理论速度=1Mbit/s=1024 Kbit/s=128 KByte/s。也就是说宽带下载速度1MB=128KB/S。1Byte=8bit
2016-04-19 16:08:04 230
转载 动态语言和静态语言
1.动态语言Dynamically Typed Language例如:ECMAScript(JavaScript)、Ruby、Python、VBScript、php也叫动态类型定义语言与静态类型定义相反,一种在执行期间才去发现数据类型的语言,动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。动态语言的类型检查是
2016-04-19 11:22:46 354
转载 网络中出现TCP、UDP粘包、分包的两点解决办法
粘包产生原因:先说TCP:由于TCP协议本身的机制(面向连接的可靠地协议-三次握手机制)客户端与服务器会维持一个连接(Channel),数据在连接不断开的情况下,可以持续不断地将多个数据包发往服务器,但是如果发送的网络数据包太小,那么他本身会启用Nagle算法(可配置是否启用)对较小的数据包进行合并(基于此,TCP的网络延迟要UDP的高些)然后再发送(超时或者包大小足够)。那么这样的话,服
2016-04-18 16:11:15 321
原创 TCP 可靠性
TCP采用一种名为“带重传功能的肯定确认(positive acknowledge with retransmission)”的技术作为提供可靠数据传输服务的基础。这项技术要求接收方收到数据之后向源站回送确认信息ACK。发送方对发出的每个分组都保存一份记录,在发送下一个分组之前等待确认信息。发送方还在送出分组的同时启动一个定时器,并在定时器的定时期满而确认信息还没有到达的情况下,重发刚才发出的分组
2016-04-18 16:10:44 348
原创 127.0.0.1 和 0.0.0.0
127.0.0.1: 本机地址,主要用于测试。这个地址有一个别名“Localhost”.0.0.0.0所有不清楚的主机和目的网络。
2016-04-17 23:58:50 450
原创 TCP/IP协议栈
TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层 如下图一帧以太网数据包的格式: TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议。I P是T C P / I P协议族中最为核心的协议。所有的T C
2016-04-17 22:45:34 418
原创 MTU
最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。MTU也不是越大越好,因为MTU越大, 传送一个数据包的延迟也越大;并且MTU越大,数据包中 bit位发生错误的概率也越大。MTU越大,通信效率越高而传输延迟增大,所以要权衡通信效率
2016-04-17 22:28:42 1261
原创 erlang 创建一个进程所占的内存
1> Fun= fun()-> receive after infinity -> ok end end.#Fun2> {_,Bytes}=process_info(spawn(Fun),memory).{memory,2560}3> Bytes div erlang:system_info(wordsize).3204>
2016-04-17 10:22:08 692
原创 垃圾回收的经典算法
[1] 引用计数方法是和程序执行同时进行,内存管理的开销比较均匀,这样进行没有长时间的挂起内存管理的时间比较稳定,可以获得比较平滑的响应时间; [2]标记清除 内存单元不会被立即回收,而是处于不可到达状态,直到所有的内存都被耗尽,进行全局级别的遍历来确定哪些单元可以回收.显然这种全局级别的中断在实时性要求较高的系统并不实用,甚至视频游戏都不可能接受在GC时有这么长的停顿.如果实时性方面要
2016-04-16 23:45:12 322
转载 Erlang服务器内存吃紧的优化解决方法
问题提出:服务器100万人在线,16G内存快被吃光。玩家进程占用内存偏高解决方法:第一步:erlang:system_info(process_count). 查看进程数目是否正常,是否超过了erlang虚拟机的最大进程数。第二步:查看节点的内存瓶颈所在地方> erlang:memory(). [{total,2099813400},{process
2016-04-16 23:41:57 922
转载 erlang性能监控
Etop类似top命令,查看erlang进程占用cpu、内存较高的进程node atom erlang nodeport integer The used portaccumulate boolean If true execution time is accumulatedlines i
2016-04-16 22:57:53 640
转载 erlang的垃圾回收
"The current default GC is a "stop the world" generational mark-sweep collector. "文档中这样描述Erlang垃圾回收器1.erlang 的回收机制是 复制-清除的 分代回收2.以进程为单位
2016-04-16 22:38:25 337
原创 堆 栈
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
2016-04-16 21:43:34 208
转载 分布式(集群)与集群的联系与区别
分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。 而分布式,从窄意上理解,也跟集群差
2016-04-15 10:24:04 267
原创 ubuntu搭建PHP环境
sudo apt-get updateapt-get install apache2sudo apt-get install php5
2016-04-09 08:19:07 234
原创 ubuntu 安装配置mysql
1.安装apt-get install mysql-serverapt-get install mysql-clientapt-get install libmysqlclient-dev2.配置vim /etc/mysql/my.cnf
2016-04-08 19:08:26 177
原创 svn安装和配置
sudo apt-get install subversioncd /srvmkdir svncd svn sudo svnadmin create /srv/svn/s1cd conf配置svn[general]#匿名用户不可读anon-access = none#权限用户可写auth-access = write#密码文件为passwdpassword-db
2016-04-08 17:06:25 241
原创 ubuntu 安装erlang
1.库sudo apt-get install m4 sudo apt-get install build-essential //gcc套件sudo apt-get install opensslsudo apt-get install libssl-dev 2.配置sudo ./configure --prefix=/opt/erlang/OTP
2016-04-08 16:57:31 686
转载 Ubuntu不同目录下profile与bashrc的区别
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被
2016-04-08 16:09:49 263
转载 apt-get update 和 upgrade 的区别
updateupdate 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。upgradeupgrade 是升级已安装的所有软件包,升级之后的版本就是本地索引里的,因此,在执行 upgrade 之前一定要执行 update, 这样才能是最新的。
2016-04-07 16:12:14 740
原创 设计模式
1.单例模式 当项目中有很多地方要用到同一个类的对象时候,为了避免多次初始化类带来的不必要开销,另外还可以保证一个项目中只初始化一个对象
2016-04-04 22:33:42 205
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人