08 2013 档案

svn 集成 redmine 账户验证的终极解决方案
摘要:svn 集成 redmine 账户验证的终极解决方案赖勇浩(http://laiyonghao.com)动机对于大部分开发团队来说,一般都需要一套 SCM 系统,通常是 svn + redmine,有些还会有 reviewboard 之类的。大家当然不希望上三套系统就有三套账号密码,那样记忆起来太... 阅读全文

posted @ 2013-08-27 21:36 张大大123 阅读(185) 评论(0) 推荐(0) 编辑

推荐《Linux 多线程服务器端编程》
摘要:赖勇浩(http://laiyonghao.com)最近,有一位朋友因为工作需要,需要从网游的客户端编程转向服务器端编程,找我推荐一本书。我推荐了《Linux 多线程服务器端编程——使用 muduo C++ 网络库》给他,他在网上书店看了以后问我为什么推荐这么厚一本书给他,正好这本书我已经早就看完... 阅读全文

posted @ 2013-08-26 23:55 张大大123 阅读(148) 评论(0) 推荐(0) 编辑

胡思乱想
摘要:我们知道机器CPU的温度过高时,机器就会运行缓慢。而我惊奇的发现,当我思维激荡时,脑袋也会开始升温,接着思维 开始紊乱,必须要冷静下才能继续正常思考。 我们知道机器的虚拟存储器VM是按需调度的,当CPU需要某些虚拟页时,VM会把它们调入内存,当CPU不再需要它们 的时候,VM又会把它们调出内... 阅读全文

posted @ 2013-08-14 10:51 张大大123 阅读(166) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(七)
摘要:我们发送重传包时,重传包也可能丢失,如果没有检查重传包是否丢失的机制,那么只能依靠超时来恢复了。 37版本把检查重传包是否丢失的部分独立出来,这就是tcp_mark_lost_retrans()。 在处理SACK块的同时,会检测是否有出现乱序,如果有乱序,那么会计算乱序的长度并更新。 本文主... 阅读全文

posted @ 2013-08-12 16:33 张大大123 阅读(389) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(六)
摘要:上篇文章中我们主要说明如何skip到一个SACK块对应的开始段,如何walk这个SACK块包含的段,而没有涉及到 如何标志一个段的记分牌。37版本把给一个段打标志的内容独立出来,这就是tcp_sacktag_one()。 本文主要内容:tcp_sacktag_one(),给一个段打上标志。 ... 阅读全文

posted @ 2013-08-12 16:31 张大大123 阅读(466) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(五)
摘要:18版本对于每个SACK块,都是从重传队列头开始遍历。37版本则可以选择性的遍历重传队列的某一部分,忽略 SACK块间的间隙、或者已经cache过的部分。这主要是通过tcp_sacktag_skip()和tcp_sacktag_walk()完成的。 tcp_sacktag_skip()可以直接找... 阅读全文

posted @ 2013-08-12 16:29 张大大123 阅读(374) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(四)
摘要:和18版本不同,37版本把DSACK的检测部分独立出来,可读性更好。 37版本在DSACK的处理中也做了一些优化,对DSACK的两种情况分别进行处理。 本文主要内容:DSACK的检测、DSACK的处理。 Author:zhangskd @ csdn dsack检测 根据RFC 288... 阅读全文

posted @ 2013-08-12 16:21 张大大123 阅读(448) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(三)
摘要:不论是18版,还是37版,一开始都会从TCP的控制块中取出SACK选项的起始地址。 SACK选项的起始地址是保存在tcp_skb_cb结构的sacked项中的,那么这是在什么时候做的呢? SACK块并不是总是合法的,非法的SACK块可能会引起处理错误,所以还需要进行SACK块的合法性检查。 ... 阅读全文

posted @ 2013-08-12 16:20 张大大123 阅读(440) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(二)
摘要:和18版本相比,37版本的SACK和DSACK的实现做了很多改进,最明显的就是需要遍历的次数少了, 减少了CPU的消耗。37版的性能提升了,代码有大幅度的改动,逻辑也更加复杂了。 本文主要内容:37版tcp_sacktag_write_queue()的实现,也即37版SACK和DSACK的实... 阅读全文

posted @ 2013-08-12 16:18 张大大123 阅读(773) 评论(0) 推荐(0) 编辑

TCP的核心系列 — SACK和DSACK的实现(一)
摘要:TCP的实现中,SACK和DSACK是比较重要的一部分。 SACK和DSACK的处理部分由Ilpo Järvinen (ilpo.jarvinen@helsinki.fi) 维护。 tcp_ack()处理接收到的带有ACK标志的数据段时,如果此ACK处于慢速路径,且此ACK的记分牌不为空... 阅读全文

posted @ 2013-08-12 16:16 张大大123 阅读(698) 评论(0) 推荐(0) 编辑

TCP的核心系列 — 重传队列的更新和时延的采样(二)
摘要:在tcp_clean_rtx_queue()中,并非对每个ACK都进行时延采样。是否进行时延采样,跟这个ACK是否为 重复的ACK、这个ACK是否确认了重传包,以及是否使用时间戳选项都有关系。 本文主要内容:tcp_clean_rtx_queue()的一些细节,时延采样的条件。 内核版本:3... 阅读全文

posted @ 2013-08-12 16:11 张大大123 阅读(450) 评论(0) 推荐(0) 编辑

TCP的核心系列 — 重传队列的更新和时延的采样(一)
摘要:重传队列实际上就是发送队列(sk->sk_write_queue),保存着发送且未确认的数据段。 当有新的数据段被确认时,需要把这些段从重传队列中删除,同时更新一些变量,包括 packets_out、sacked_out、lost_out、retrans_out等。 对于非重复的ACK,会进行R... 阅读全文

posted @ 2013-08-12 16:05 张大大123 阅读(713) 评论(0) 推荐(0) 编辑

TCP的核心系列 — ACK的处理(二)
摘要:本文主要内容:tcp_ack()中的一些细节,如发送窗口的更新、持续定时器等。 内核版本:3.2.12 Author:zhangskd @ csdn 发送窗口的更新 什么时候需要更新发送窗口呢? (1)确认了新的数据 (2)条件1不成立,ACK段的序号是最新的。 这表... 阅读全文

posted @ 2013-08-12 16:04 张大大123 阅读(436) 评论(0) 推荐(0) 编辑

TCP的核心系列 — ACK的处理(一)
摘要:TCP发送数据包后,会收到对端的ACK。通过处理ACK,TCP可以进行拥塞控制和流控制,所以 ACK的处理是TCP的一个重要内容。tcp_ack()用于处理接收到的ACK。 本文主要内容:TCP接收ACK处理,tcp_ack()的实现。 内核版本:3.2.12 Author:zhangskd... 阅读全文

posted @ 2013-08-12 15:58 张大大123 阅读(1087) 评论(0) 推荐(0) 编辑

OpenGL Shader Key Points (2)
摘要:1. Uniform1.1. Uniform变量不是所有的变量都是跟顶点一一对应的,如变换矩阵,光源位置等。Uniform变量可以在任何类型的shader中使用,但只能作为输入值,不能在shader中给它赋值,只能在C/C++程序中指定。 layout (location = 0) in v... 阅读全文

posted @ 2013-08-12 11:11 张大大123 阅读(141) 评论(0) 推荐(0) 编辑

OpenGL Shader Key Points (1)
摘要:1. Shader起步1.1. 可编程管线仅考虑Vertex shader和fragment shader:1.2. Shader Object在编译阶段生成,把shader源代码编译成Shader 对象。Shader对象分类Vertex ShaderFragment ShaderGeom... 阅读全文

posted @ 2013-08-08 09:12 张大大123 阅读(136) 评论(0) 推荐(0) 编辑

C#中任意类型数据转成JSON格式
摘要:/// /// List转成json /// /// /// /// /// public static string ListToJson(IList list, string jsonName) { StringBuild... 阅读全文

posted @ 2013-08-07 15:25 张大大123 阅读(289) 评论(0) 推荐(0) 编辑

数据库用户映射到SQL Server登录名
摘要:由于不是固定在一如电脑开始,经常需要把数据备份与恢复。或者是帮助客户修改程序,接收到客户备份好的数据,需要在电脑恢复。 这样就需要将数据库用户映射到 SQL Server 登录名。如何映射?可使用下面的系统存储过程: EXECUTE sp_change_users_login 'update_... 阅读全文

posted @ 2013-08-02 22:19 张大大123 阅读(316) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示