自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 四层和七层负载均衡的区别

(一)  简单理解四层和七层负载均衡:  ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再

2015-03-18 17:25:16 485

原创 linux一天一命令博客链接

mark以下方便日后学习。http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/

2015-11-03 17:19:12 396

原创 linux下制作补丁文件方法

配合使用diff和patch在此仅举一个简单的例子来说明如何用diff/patch工具维护源码升级。假设program-1.0目录中为老版,现开发完成的新版位于program-2.0目录中,将两个目录置于同一父目录下,然后在该父目录上执行:diff -Nur program-1.0 program-2.0 >program-2.0.patch将生成一个progr

2015-10-14 14:30:21 492

转载 shell test命令用法

test命令用法。功能:检查文件和比较值  1)判断表达式  if test  (表达式为真)  if test !表达式为假  test 表达式1 –a 表达式2                  两个表达式都为真  test 表达式1 –o 表达式2                 两个表达式有一个为真  2)判断字符串  test

2015-09-21 18:30:45 516

转载 iptables 从链、表开始理解

Filter表:过滤数据包,默认表。   (1)INPUT   链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤)(2)OUTPUT 链:过滤所有本机产生的数据包(对源地址得数据包的过滤) (3)FORWARD链:过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包。  NAT表:网络地址转换(Network Address Translation

2015-09-07 15:30:02 439

转载 TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:【注意】中断连接端可以是Cl

2015-08-03 10:54:25 278

转载 C++的XML编程经验――LIBXML2库使用指南

写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如

2015-07-14 13:56:58 400

原创 CRC校验C实现

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。以下是CRC32的C语言实现,经过测试,能够正确运行:/***********************************

2015-07-13 10:22:35 673

原创 TCP之TIME_WAIT状态原理

IME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。下图是以客户端主动关闭连接为例,说明这一过程的。TIME_WAI

2015-07-10 13:54:51 395

转载 TCP状态转移图学习总结 (转)

这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析: 1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。 2.LISTEN:svr端在等待连接过来时候的状态,svr端为此要调用socket, bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。

2015-07-07 11:11:36 411

转载 Makefile经典教程

makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make

2015-06-23 10:36:05 421

转载 TCP三次握手连接及seq和ack号的正确理解

三次握手Three-way Handshake一个虚拟连接的建立是通过三次握手来实现的1. (B) –> [SYN] –> (A)假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接.注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有当A受到

2015-06-17 17:36:40 738

转载 几种TCP连接中出现RST的情况

应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收到R

2015-06-05 09:02:53 509

转载 关于select中fd限制问题

select 是多路复用,或异步模型中经常用到的一个系统调用。 基本原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 该函数的一个缺点就是nfds不能太大。上限为1024.为什么会有这样的限制,今天就来一起看看se

2015-05-18 09:48:16 728

转载 网络拥塞控制---传统TCP存在的缺陷

这个世界在一直变化着,任何事物如果停留在原地,最终是要被淘汰的,TCP的拥塞控制算法也是如此。90年代中后期到21世纪以来,Internet得到迅猛发展,首先是拥塞现象变得越来越严重,其次是高带宽的网络出现,从100Mbps到1Gbps到10Gbps,再者很多对数据敏感的应用越来越多,如音视频应用等,这些对TCP的传统的拥塞控制算法提出了巨大的挑战。首先来看高带宽和高时延网络情况,这种网络

2015-04-21 10:15:14 763

转载 GNU Autotools的使用方法

手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事。在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色。(在Windows系统的开发环境中,IDE工具,诸如Visual Studio,来管理项目也很方便。)      本文以一个简单项目为例子,来讲述GNU Autotools的一列工具及其命令的用法。autotoo

2015-04-14 18:22:59 324

转载 什么是带外数据?

带外数据(out—of—band   data),有时也称为加速数据(expedited   data), 是指连接双方中的一方发生重要事情,想要迅速地通知对方。 这种通知在已经排队等待发送的任何“普通”(有时称为“带内”)数据之前发送。 带外数据设计为比普通数据有更高的优先级。 带外数据是映射到现有的连接中的,而不是在客户机和服务器间再用一个连接。 在字节流服务中,由于没

2015-04-07 14:16:53 2196

转载 值得推荐的C/C++框架和库 (真的很强大)

值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz

2015-04-03 09:12:44 1151

转载 TCP序列号和确认号详解

TCP序列号和确认号详解在网络分析中,读懂TCP序列号和确认号在的变化趋势,可以帮助我们学习TCP协议以及排查通讯故障,如通过查看序列号和确认号可以确定数据传输是否乱序。但我在查阅了当前很多资料后发现,它们大多只简单介绍了TCP通讯的过程,并没有对序列号和确认号进行详细介绍,结合实例的讲解就更没有了。近段时间由于工作的原因,需要对TCP的序列号和确认号进行深入学习,下面便是我学习后的一些知

2015-03-25 11:05:32 585

原创 谈一谈在这里写博客

鉴于上一周都是转载别人的博客,我就想是不是也要自己写一个。但是苦于肚子里墨水太少,写不出大牛的段子,所以只能以一篇心情博文充数,方便日后自己回顾年少无知时的自己:)       之所以选择在CSDN,有几方面原因:    第一点,自己觉的自己太懒。自小学起,老师就让每天都写日记,开始我还很新奇,最后还是应了大人们常说的那句话“一天新新,两天够!”,过了几天后,我的日记质量就好比现在

2015-03-23 10:04:34 380

转载 web服务器对比

现在在嵌入式设备中所使用的web服务器主要有:boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、appweb和apache等。2011-4-11-10-48Boa1.介绍Boa诞生于1991年,作者Paul Philips。是开源的,应用很广泛,特别适合于嵌入式设备,网上流行程度很广。它的官方网站说boa是最受人喜爱的嵌入式web服务器。功能较为强大,支

2015-03-19 14:17:35 996

转载 原始套接字

基于原始套接字编程       在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证:       也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的I

2015-03-16 15:58:48 602

转载 linux中定义的几个网络报文的结构体

1、UDP协议UDP协议是建立在IP协议基础之上的,用在传输层的协议。0                               16                              32 ------------------------------------------------------- |       UDP源端口     |      UDP目的端

2015-03-16 15:53:02 955

转载 如何设置linux socket为非阻塞

将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即:设置成非阻塞模式:先用fcntl的F_GETFL获取flags,用F_SETFL设置flags|O_NONBLOCK;        即:      flags = fcntl(sockfd, F_GETFL, 0);                        //获取文件的flags值。      f

2015-03-16 15:27:39 9950 3

转载 tcp的三次握手流程

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:【注意】中断连接端可以是Cl

2015-03-16 15:25:52 404

转载 linux socket详解

1、socket()函数int socket(int domain, int type, int protocol);参见/usr/include/bits/socket.hsocket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket

2015-03-16 10:58:32 380

转载 AF_UNSPEC、AF_INET和AF_INET6之间的关系

ai_family参数指定调用者期待返回的套接口地址结构的类型。它的值包括三种:AF_INET,AF_INET6和AF_UNSPEC。如果指定AF_INET,那么函数九不能返回任何IPV6相关的地址信息;如果仅指定了AF_INET6,则就不能返回任何IPV4地址信息。AF_UNSPEC则意味着函数返回的是适用于指定主机名和服务名且适合任何协议族的地址。如果某个主机既有AAAA记录(IPV6)地址,

2015-03-16 10:36:12 1500

转载 NAT打洞原理(转)

NAT路由器打洞原理什么是打洞,为什么要打洞由于Internet的快速发展 IPV4地址不够用,不能每个主机分到一个公网IP 所以使用NAT地址转换。下面是我在网上找到的一副图 一般来说都是由私网内主机(例如上图中“电脑A-01”)主动发起连接,数据包经过NAT地址转换后送给公网上的服务器(例如上图中的“Server”),连接建立以后可双向传送数据,NAT设备允许私

2015-03-13 11:32:43 561

转载 epoll详解(转)

好文,转载出处:http://blog.chinaunix.net/uid-24517549-id-4051156.html什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linu

2015-03-13 11:23:41 352

原创 开始技术博客旅程

今天,就开始在csdn的伟大平台记录我工作中遇到的问题及解决办法,做一个技术的整理和记录,方便日后回顾!

2014-12-05 14:17:22 294

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除