自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

tcp的效率性和公平性

实际上tcp并没有什么效率性和公平性,虽然从协议的实现来看,任何连接一直在努力做到高效率和高公平。任何稳定的系统都要有一个收敛中心,tcp的速率却没有收敛性,即使在稳定传输期间,其速率-时间曲线也是锯齿形的,不管锯齿再细,它终究不是直线,甚至锯齿也不平滑。这是为何呢?其根本原因在于tcp是端到端的协议,它对中间经过的ip链路一无所知,可是ip链路的路由器们却对数据包有生死大权。并且,很多协...

2010-08-31 21:39:00 932

linux的流量控制

ip命令在linux上实现绝大部分专业路由器上实现的一部分功能,另一个命令tc实现了专业路由器上实现的几乎另一部分功能,而iptable一来,剩余的功能它就全包了,如果再加运行一个zebra的话,linux主机就俨然一个高级路由器了,这时其速率的快慢就不再取决于软件了,而是取决于你的硬件了,用386的机器上一个完全的linux虽然五脏俱全,但是它却不能被扔到公网作为一台真正的路由器来使用。顺便说一...

2010-08-31 21:26:00 81

case 用在 UPDATE

UPDATE [Table1] SET [StatuID] = CASE WHEN [StatuID] - 1 < 0 THEN 0 ELSE [StatuID] - 1 END WHERE [IndexId] = @IndexId;

2010-08-31 18:06:00 61

有那么一些想法哪

1.将wget的结果写入/dev/null可以测试裸网络数据,而不必非要使用netperf工具,要知道,wget得到的结果很大的比例来自写磁盘消耗的时间2.我不知道有些人(ie.me)为何对这个世界上普适的价值漠不关心,是受到父辈的影响还是自己小的时候受到了什么刺激,读布克哈特的书让人有了一种新的感觉,没有尼采的那种直接,却有了比尼采更多的深邃,布克哈特也在提倡超人,呼吁战争对人类的洗礼,可是...

2010-08-29 19:01:00 37

tcp服务器监听任意地址的问题

如果服务器监听地址任意地址,客户端只要连接该服务器上配置的任何地址都能连接进来(前提是arp_ignore为0,否则最后一跳的arp解析可能会失败,详情参见前面的文章),但是看linux协议栈的实现代码时发现内核是通过五元组的哈西来寻找套结字结构从而实现一个连接和套结字绑定的,如果一个服务器监听任意地址,而客户端连接一个确定的地址,因为连接的目的地址和监听地址不同,哈希后是不可能找到监听套结字...

2010-08-28 18:31:00 466

TCP/IP网络的一些问题(路由/协议/linux的实现)

1.linux的虚拟网卡-tunlinux的虚拟网卡驱动可以配置为两种模式,一种是点对点的tun模式,一种是以太网tap模式,实质上tun模式中从虚拟网卡出来的是ip数据报,也就是三层数据,而tap模式中从虚拟网卡中出来的以太网帧,也就是二层链路层数据。tun模式封装的ip数据报可以直接传输给对端,这种点对点模式中对端是确定的,不需要寻址的,因此tun模式下的虚拟网卡是没有mac地址,即链路层...

2010-08-28 18:25:00 107

arp/ip地址/路由--总之很乱

正常情况下,只要有到一台机器的路由,不管服务监听的哪个网卡的哪个地址,也不管请求从哪个网卡进入,只要这个请求的目的ip是该机器的一个ip,连接就能成功,当然你可以设置策略路由或者多表路由表项阻止的目的地址没有配置在数据进入网卡上的情况。实例:R有两块网卡,各个网卡以及环回口配置如下:eth0:172.16.0.1eth1:192.168.0.1lo:127.0.0.1lo:...

2010-08-28 18:24:00 114

ipvs负载均衡模块的内核实现

传输模式:[直接路由方式]:直接查找路由表,以原始数据包的目的地址为查找键。本地配置的ip地址就是数据包的目的地址,数据既然已经到了本地为何还要查找,为何还要继续路由?这是因为本地的目的地到达情景仅仅是一个假象,真正提供服务的机器还在后面,也就是说服务被负载均衡了。此时问题是,既然本地配置了一个目的地ip地址,其它机器还能配置这个ip地址吗?那样的话岂不ip冲突了吗? 在直接路由模式中,负...

2010-08-28 18:23:00 134

选择路由+重定向还是LSP

不可否认,路由+重定向和LSP二者都是将数据包导向某一个主机的方式,不同之处路由的方式并不修改协议头,对协议抓包器是透明的,但是LSP却修改了目的地址,抓包器可以很轻易的发现,本质上说,LSP在本地就完成了重定向,并且是在用户态完成,对于过路的包则无能为力(一般没有人用windows作为路由器),而路由仅仅指导数据包的走向,具体到达那里后做什么由路由指向的目的地来决定,可以是重定向到本地,可以na...

2010-08-28 18:22:00 104

CLR程序里引用System.Web.dll

默认是没有,要在目标数据库里先附加,然后.NET这里才可以引用。SQL SERVER 2005:-------------------------------------------------------------------------------------------USE [mydb]GOEXEC sp_changedbowner 'sa'ALTER D...

2010-08-24 17:04:00 76

易接近和不易接近--我的历史观

大范围的不易接近性和小范围的易接近性,技术不足的年代,小范围是活动范围,只有技术进步,大范围的易接近性才能发挥其作用,因此人们的活动范围和技术能力是有关的。在技术不足的年代,易接近的小范围地区迅速被人们占据,形成了强大的权力中心,这些权力中心反过来阻碍人们自由的交流,因为那个时代权力中心同时也是经济中心。随着权力中心辐射范围的进一步扩大,最终终于到达了能力的边界,这个边界之外都是不可接近的,此后易...

2010-08-21 11:28:00 93

SSL记录协议中的MAC

ssl的消息已经是加密的了,为何还要MAC,难道还有人会修改消息吗?如果怕有人修改消息,加一个摘要不就可以了吗?为何还要mac呢?这是怕有人离线攻击,我们可以信任协议本身,但是却不能信任加密算法,特别是ecb加密算法。 MAC=HASH[shared-key,serial-num,data],mac可以防止重放攻击和保持数据的完整性,并且即使使用ecb加密算法导致被猜出了一部分内容,攻击者也无...

2010-08-21 11:25:00 422

利用远程数据库存储过程的OUTPUT参数来获得返回值

SQL SERVER中,是不能直接调用远程数据库的函数的,有时候觉得不方便。但调用远程数据库的存储过程就没有问题,并且存储过程有OUTPUT类型的参数,某些情况下,可以这样子来变通使用,获得返回数据。远程数据库:[192.168.0.1].dbo.[RemoteDb]:CREATE PROCEDURE prd1 @In INT, @out INT OUTPUTA...

2010-08-20 10:23:00 47

SQL SERVER定期转移海量数据方案收藏 查看分区在哪个文件组

SQL SERVER定期转移海量数据方案【关键词】1、 分区切换2、 BCP3、 BULK INSERT4、 Insert【背景】有个表比较巨大,每天新增约500万条记录。只保留最新7天数据,每天定期移走过期记录,归并到历史库。采用INSERT,DELETE的方法,消耗时间越来越长,平均达到45分钟,期间该表和历史库根本无法访问。【方案】...

2010-08-19 10:12:00 73

linux 的文件系统架构--手画图

2010-08-18 22:49:00 95

文件系统--procfs中进程目录的问题

procfs是一个特殊的文件系统,和sysfs一样,它是一个只有在你看的时候才会存在的文件系统,它们一样都是用来进行内核-用户态通信的,它们和netlink或者syscall的区别在于它们是文件的方式,大量的文件系统接口都可以使用,免去了编写c代码或者其它代码的工作量,只需要cat,echo等简单命令就可以和内核交互。 若按照常规方式来理解procfs,那么其中的文件在存在之前必然需要先创建,...

2010-08-18 22:47:00 78

linux的文件系统架构

linux的文件系统是由若干个树形以及链表的结构组成的,其中众所周知,所有的目录和文件组成了视觉上“一棵”树,在这“一棵”树背后有一条挂载链表,如果说每一个文件系统都是一棵树的话(实际上就是如此),这个链表将很多棵树链接成了那“一棵”树,因此,linux的文件系统是由很多棵树组成的,这些树通过挂载链表联系在了一起,比如/tmp/my是一个目录,下面有文件file1,而我们可以将一个磁盘分区D挂载在...

2010-08-18 22:41:00 54

arp协议的混乱引发的思考--一个实例

NA(192.168.1.0/24)--(eth0)R(eth1)--NB(192.168.2.0/24)a(eth0:192.168.1.2)--(eth0:192.168.1.1)R(eth1:192.168.2.1)--b(eth0:192.168.2.2)一:a配置指向NB的路由的情况:在R开启arp代理的情况下如果在a上ping b,结果是什么,显然数据要发送出去...

2010-08-16 20:49:00 65

简述五千年

这世上都是肉身,因此尧舜禹不是神,他们不是神,他们的年代缺衣少食,少药,他们活不过一百年,因此如果夏朝真的存在,中国的历史也不过不到4000年?何来五千年? 尧舜禹会死的,正如我们会死一样,而且,他们的寿命必定没有我们的长!如果都能把传说记录在案,那么希腊罗马的历史都比中国长久!再一个的说,埃及印度希腊罗马为何不说自己上下五千年,那是因为他们最终分裂了,我们最终却统一了,因此不分青红皂白将所有征服...

2010-08-15 20:27:00 71

arp协议的混乱引发的思考

曾几何时,人们多么淳朴,创造了arp这样的协议,这种群问一答的形式总是要么在乌托邦之类的组织能行得通要么是独裁的组织,想一下议会制,如果有一个针对全体的提问,得到的答案往往是千奇百怪的,其中,鬼知道有多少答案是欺骗。arp的提问是针对全体的,但是答案的正确与否arp请求的发送端如何能辨别呢?除了伦理,除了发送arp回应的机器的伦理可以信任之外,别的再没有标准了,然而,arp回应机器本身并不会发,软...

2010-08-15 19:03:00 56

SO_DONTROUTE和SO_BINDTODEVICE的深层次分析

SO_DONTROUTE并没有跳过路由表的查找,而只是将查找范围缩小到了直连的同三层网段主机,SO_BINDTODEVICE亦没有跳过路由表查找,而只是将外出设备固定,也就是增加了一个查找键,因此二者都无法跳过查找路由表的过程,本质上,SO_DONTROUTE也是增加了一个查找键。路由表的查找在linux实现的协议栈中是无法越过的,但是却可以增加若干的限制条件,以hash路由表为例,在fn_has...

2010-08-15 19:02:00 201

终端会话和孤儿进程组(POSIX-2.2.2.52)--解释问题

终端的问题涉及几个概念,那就是进程组,会话,作业,下面会分别进行介绍。会话包含了一系列的进程,这些进程按照不同的执行内容会组织成若干进程组,一个会话内的所有进程都必须是该会话首长进程的后代,这样就保证了这些进程都是由该会话首长进程直接或者间接开启的,只有这样的才能保证这些进程确实是在会话首长进程耳目视线之内的,同时,孤儿进程组不再受到会话首长进程的控制。作业:只有一个终端,但是有很多事情要...

2010-08-14 15:44:00 53

终端会话和孤儿进程组(POSIX-2.2.2.52)--引出问题

希望shell和一个程序都同时接收一个ctrl-c,最好的办法就是将它们设置到一个进程组当中,并且把这个进程组设置为终端上的前台进程组,如下所示,其中2774是该终端上bash进程的pid:void handler(int n){ printf("GOT SIGINT/n");}int main(){ setpgid(0, 2774); //将test和bash设置成同...

2010-08-14 15:42:00 88

SO_DONTROUTE和SO_BINDTODEVICE的深层次分析

SO_DONTROUTE并没有跳过路由表的查找,而只是将查找范围缩小到了直连的同三层网段主机,SO_BINDTODEVICE亦没有跳过路由表查找,而只是将外出设备固定,也就是增加了一个查找键,因此二者都无法跳过查找路由表的过程,本质上,SO_DONTROUTE也是增加了一个查找键。路由表的查找在linux实现的协议栈中是无法越过的,但是却可以增加若干的限制条件,以hash路由表为例,在fn_has...

2010-08-14 15:40:00 63

SQL SERVER 表分区造成插入慢?

某日,我将一个有数千万条记录的表分区之后,数据库CPU一下子飙升到100%。性能不降反升,什么道理?因为这个表每天都有约500万条记录插入,难道是表压缩和索引压缩的缘故?去掉压缩,没什么变化。索引只有两个,跟之前数量一样,应该也不是索引太多。取消分区,CPU回复正常。难道分区是罪魁祸首?然而不能不分区的。我也不相信是分区的缘故,有资料说分区后,不仅是查询快,插入也会快。主要...

2010-08-12 12:32:00 187

针对http协议的监控

http协议仅仅是一个应用层协议,它使用了传输层tcp协议的功能而已,因此http协议在tcp的语义成立的情形下可以自由发挥,正是由于这种自由发挥导致了监控http成为了可能,本质原因在于,无疑,http还是要听tcp的。设客户端A,http目的地址为W,监控主机为B,序列如下:A->W:发送正常的http请求B:由于B是A和W之间的旁路主机,因此B能得到此次访问B->A:...

2010-08-08 20:47:00 179

生命的本质和历史的发展--联系人工智能以及历史

个体死亡原因可以分为三类:能源缺失导致死亡,比如饿死;形体物理变化导致死亡,比如碾压,枪击等;化学变化引起死亡,比如生病致死。人类包括动物对这三类死亡都有一定的应对措施,比如人会觉得饥饿,食欲大增,这其实就是为了避免能源缺失,人和动物都有皮肤,特别人还会穿各种衣服,虽不能抵挡任意的物理摧残,起码能够防止轻微击打损坏柔软的内脏,人在生病时会有一些反应,这时就要去看病或者自我调理了...群体死亡原因分...

2010-08-08 18:54:00 48

编码问题以及其根本原因

计算机技术领域的复杂性很多或者说大多数都是在保持前向兼容性的需求下增加的复杂性,两个最明显的例子就是intel的cpu体系结构和字符的编码,本文不再说cpu方面的东西而着重说一下编码,关于intel cpu的发展随便找点资料都说得很详细,而关于字符编码的资料却都很晦涩难理解。必须承认,如果计算机不和商业结合的话,很多兼容性引起的问题便不会存在,因此也就不必引入过多的复杂性了,并且,更重要的是,任何...

2010-08-06 19:32:00 75

快捷键和控制序列--自己实现vi

从《快捷键和控制序列--bash的命令行编辑原理以及其它杂述》中已经明白了按键和控制序列的原理,现在可以猜一下vi的原理了,大体上vi可能会包含类似下面的结构,也就是一些键映射,其中有一个命令映射和一个插入映射:KEYMAP map_cmd = { {'w',func_cmd_w}, {'b',func_cmd_b}, ...}KEYMAP map_inst = { {...

2010-08-04 21:30:00 93

快捷键和控制序列--bash的命令行编辑原理以及其它杂述

对于整天在命令行下工作的家伙来说,命令行编辑功能的强弱直接关系到了工作效率,试想如果一个命令行很长很长,写到最后发现很靠前的一个地方写错了,需要修改,此时如果按方向键的话还不累死,因此对于shell来说,非常需要一种行编辑功能,可以在一行当中快速定位。bash就提供了这样的功能,可惜知道这一点的人比较少。首先来有个感性认识,熟悉几个简单且常用的快捷键(每个快捷键都会发送一个键序列,然后shell会...

2010-08-04 21:29:00 63

查看分区在哪个文件组

SQL SERVER的分区表,如果想知道哪条记录位于哪个分区,然后该分区对应的是哪个文件组,可以这样查找: select fg.name from sys.destination_data_spaces sp inner join sys.partition_schemes scm on sp.partition_scheme_id = scm.data_space_i...

2010-08-04 19:03:00 70

空空如也

空空如也

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

TA关注的人

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