http://blog.csdn.net/zt698/article/details/4811604 作者:lucien_cc 发表于 2013/10/27 23:44:46 原文链接 https://blog.csdn.net/lucien_cc/article/details/13280439 阅读:794 继续阅读 >>


辛龙 13/10/27 23:44:46
http://blog.chinaunix.net/uid-26611973-id-3474408.html 1.  linux下vpn简介 一般而言, linux 下 VPN 按照实现的协议栈可以分为应用层和网络层的 VPN ,应用层的 vpn 实现常见的比如有 SSL vpn ,著名得的开源实现有 openvpn ,而网络层的常见的为 IPSec VPN 。 SSL VPN 文本将不作介绍,网络上关于 openvpn 资料也比较多,大家可以自行研究。 其实 linux2.6 内核实现了至少三种 VPN ,这三种 VPN 分别是 IPIP 协议,IPGRE 协议和 IPSec 协议,在内核源代码中的文件分别是 ipip.c , ip_gre.c 和 xfrm开头的文件当中。但如果加上著名的开源 IPSec VPN openswan ,就有四种了。这四种从实现原理上看可分为两种,一种是采用虚拟网卡建立隧道的方式,可以通过插入相应内核模块来运行, linux2.6 内核的 IPIP 协议, IPG 继续阅读 >>


辛龙 13/10/27 23:38:46
一,TCP fast open 客户端实现      这个特性是google提出并主导开发的。实现的原理是对于客户端允许发送syn请求时携带数据, 对于服务器端收到带有数据的syn请求后,可以立刻提交给用户层,并发送ack, 这样节省一个RTT时间。        这个特性对于短连接的业务类型比较有很大的帮助,据测试结果有4%~41%的性能提升。     这个特性需要客户端和服务器端的os都支持,并且未知window何时才支持这个特性。     另外,这个特性需要业务用户层代码相应的调整。估计在全网使用开还需要一定时间。     但是,对于手持设备,特别是基于android系统智能机而言,随着android内核分支逐渐向主线靠拢,     可以预见最先开疆扩土,并得到这个特性带来收益的将是基于linux的android上应用。 二,TCP small queues TCP小队列。      这个机制是用来针对缓存膨胀(bufferbloat),意思是在tcp传输路径中有中很多的缓存,比如socket 继续阅读 >>


辛龙 13/10/23 10:01:54
                                                          约瑟夫环问题是一道经典的数据结构的题目,问题描述为:编号为1,2,......,n的n个人按顺时针方向围坐在一张圆桌周围,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报到m的那个人出列,将他的密码作为新的m值,从他顺时针方向的下一个人开始重新从1报数,数到m的那个人又出列,如此下去,直至圆桌周围的人全部出列为止。            我选择用双向链表来存储每个人的信息,每个结点存储的内容有:name[20],password,flag(顺逆时针的标志)以及prior和next指针。 typedef struct person {      char name[20];      int password;      int flag;      struct person *prior, *nex 继续阅读 >>


宋润雨 13/10/15 20:12:06
RFC 2960 – Stream Control Transmission Protocol RFC 3257 - SCTP Applicability Statement RFC 3286 - An introduction to SCTP RFC 3309 – SCTP Checksum Change RFC 3436 – Transport Layer Security over SCTP RFC 3758 – SCTP Partial Reliability Extension 作者:lucien_cc 发表于 2013/10/13 22:36:36 原文链接 https://blog.csdn.net/lucien_cc/article/details/12688781 阅 继续阅读 >>


辛龙 13/10/13 22:36:36
Richard Stevens的书虽好,但是他所要表达的是让你知其然。对于想精通tcp的同学来说,光知其然是远远不够的,你还需要更多的时间去了解其所以然,而翻阅rfc文档就是一种最好的方式,这样你就明白tcp为何这么设计了。 这里总结了一下tcp核心主题对应的rfc文档,方便自己和大家查阅。:) rfc序列号 主题 内容描述 793 TCP标准 最初的TCP标准定义,但不包括TCP相关操作细节 813 TCP窗口与确认策略 讨论窗口确认机制,以及描述了在使用该机制有时遇到的问题及解决方法 879 TCP最大分段大小及相关主题 讨论MSS参数在控制TCP分组大小的重要性,以及该参数与IP分段大小的关系等 896 IP/TCP网络互联拥塞控制 探讨拥塞问题与TCP如何控制拥塞 1122 网络主机要求——通讯层 讨论TCP如何在主机中实现的细节 1146 可选的TCP校验和选项 针对TCP设备使用可选校验和方法进行规范 1323 高性能下的TCP扩展 定义高 继续阅读 >>


辛龙 13/10/13 22:31:57
        博客好长时间没有更新了,上一篇《Linux 内核中的种种(初步了解)》只是介绍了内核中链表的创建,插入,删除,和替换等操作,接下来,我将会把linux内核中的链表的其他功能是如何实现的展现出来。 static inline int list_is last(const struct list_head *node, const struct list_head *head) { return node->next = head; }                              //判断node 这个元素是不是head这个链表的尾,因为是双向链表,这样判断比较容易。 static inline int list_empty(const struct list_head *head) { return (head->next == head); }                             //判断head 这个链表是否 继续阅读 >>


崔姣姣 13/10/13 15:40:03
  中缀表达式如2*3+(4-3), 其运算符一般出现在操作数之间, 因此称为中缀表达式,也就是大家 […] 继续阅读 >>


高源 13/10/09 07:56:18
问题描述 设计一个国际象棋的马踏棋盘的演示程序 基本要求 将马放到国际象棋的8*8棋盘board上的某个方&# […] 继续阅读 >>


高源 13/10/09 07:49:28
         前天看师父“浅墨”给的那段内核代码,看着看着就有点蒙了,不过在内核中实现循环链表的创建,插入,删除以及替换什么的确实很奇葩,我就只看懂了那么多代码中的一部分,下来就是我自己对这段代码的理解,可能有许多不足,欢迎大家提出。        大家都知道,一般双向循环链表的实现无非就是那几步首先会创建一个结构体,然后再实现链表的插入、删除、查找,但在内核中双向循环链表的实现却很不一样,大数据的存储就是与内核中的这些链表的实现息息相关。 struct list_head { struct list_head *prev; struct list_head *next; } 定义了一个双向的循环链表的结构。 #define   LIST_HEAD_INIT(name)   { &(name), &(name) }                                                  //这个宏的作用是把参 继续阅读 >>


崔姣姣 13/10/05 16:34:10