精华内容
参与话题
问答
  • 有意思

    2008-04-18 23:34:00
    那个报数的哈有意思。神勇同学很搞笑。。。。东华被十个人闹疯了~难得这么开怀 

    那个报数的哈有意思。神勇同学很搞笑。。。。东华被十个人闹疯了~

    难得这么开怀 

    展开全文
  • 有意思的项目

    千次阅读 2012-06-27 17:21:18
    qubes:波兰美女黑客Joanna主导的一款开源的安全操作系统,按照qubes的架构设计,各个应用被划分在不同的虚拟机里执行,也就是通过应用层的隔离来达到安全性,更多的介绍参考链接:...
    qubes:波兰美女黑客Joanna主导的一款开源的安全操作系统,按照qubes的架构设计,各个应用被划分在不同的虚拟机里执行,也就是通过应用层的隔离来达到安全性,更多的介绍参考链接:http://www.qubes-os.org/Home.html
    colinux:一个让Linux直接运行在Windows本机系统下的方案,类似的方案还有andlinux,更多的介绍参考链接:http://colinux.org/http://www.andlinux.org/index.php
    展开全文
  • 非常有意思的Flowlet

    万次阅读 2018-05-12 10:41:01
    周五了解到一个叫做Flowlet的东西,比较有意思。大体上说来,它是由一个问题而引出的一个解决方案,由于理解还不够深入,所以也暂时只能这么说。   我先从问题说起。 ISP的动态负载均衡 由于公共骨干网上流量的...

    周五了解到一个叫做Flowlet的东西,比较有意思。大体上说来,它是由一个问题而引出的一个解决方案,由于理解还不够深入,所以也暂时只能这么说。

      我先从问题说起。

    ISP的动态负载均衡

    由于公共骨干网上流量的不确定性,每一条链路的负载不尽相同,为了保证总带宽的最佳利用率,ISP往往会做一些动态负载均衡的策略。如下图所示:

    • 时刻1:
      这里写图片描述

    • 时刻2:
      这里写图片描述

    packet负载均衡和flow负载均衡

    到底是按照packet做负载均衡呢还是按照一个五元组flow来做负载均衡呢?这是一个问题,很多人在做负载均衡的时候都会面临这个选择问题。

      具体来讲,如果一条flow是强序的,那么基于packet的负载均衡将会导致乱序,这是设备在做负载均衡时要避免的,比如TCP就不能基于packet来做负载均衡,而对于UDP这种协议便可以。

      目前从主机到中间设备,几乎所有的从板卡,网卡队列,到CPU中断,到hash算法,均有机制保证TCP的强序性。

    TCP的问题

    正是由于TCP是强序的,所以TCP便无法基于packet做负载均衡,也就意味着,只要一条TCP流已经发起了,它就几乎不能再改变底层链路了,至少是最好不要改变底层链路,因为一旦底层链路改变,TCP将增加面临乱序的概率。

    幸亏TCP是burst发送

    前面我的描述其实隐含了一个假设,即TCP flow的packet是平滑发送的:

    这里写图片描述

    然而实际上,不管是实际抓包(你可以观测抓包的tcptrace图)还是从具体实现(你可以看30年内任何TCP实现的源码,比如cubic,vegas…)上看,你会发现TCP packet的发送其实是burst的:

    这里写图片描述

    哈哈,可乘之机!看到两批次burst之间的时间间隙没有,在这种间隙足够大的时候切换下层链路是一个好的时机。这意味着旧链路上的packet均已经离开了链路或者至少将要离开链路,这个时候切换链路将不会造成乱序,不会破坏TCP的强序要求。

      嗯,这就是Flowlet。


    Flowlet

    一般而言,英文中的“-let”后缀代表“微小”的意思,比如booklet,houselet,以及Java applet…一个Flowlet代表的就是一条小流。如下图所示:

    这里写图片描述

    在宏观的观感上,可以把一条flow看成是多个flowlet组成的,负载均衡现在就是基于flowlet来进行了,好吧,又引入了一个中间层,它既不是packet,也不是flow,而是大于packet小于flow的flowlet,哈哈,很有意思!

      那么到底如何定量的去切分flowlet呢?这里给出一个公式:

    D1,D2αα
    α>|D1D2|
    flow便αflowlet

    α建议50ms应该不错了。

    BBR之后一切将不再

    我个人觉得flowlet的理念非常Q,perfect,通过一个新的层次解决了强序flow的负载均衡问题。然而它借用了一个TCP实现上的问题或者说是bug,即burst机制。所谓借着坏事干好事。

      在TCP的AIMD模型下,pacing发送几乎是不可能的,因为pacing的计算会破坏AIMD的盲决策,最终的控制模型将会畸变。然而近期Google的研究证明简单的AIMD用于TCP传输其实是错误的,而引入了一中新的BBR pacing传输模型,这个BBR一下子把TCP拥塞控制算法引入了2.0时代!

      我想表达什么?

      在BBR pacing模型下,我们假设BBR已经完美升级到了它应该成为的样子,解决了一系列的失速,误判等问题,届时TCP packet的发送将会是下面的样子:
    这里写图片描述
    你可能再也捕捉不到那个flowlet中的α,因为pacing rate的精确计算机制不会允许α那么久的空窗期存在!

      但BBR最终至多只是终结了flowlet在TCP上的具体实现,它无法终结flowlet的理念。拥塞控制和负载均衡是两个不同的领域,虽然有所关联但却井水不犯河水,拥塞控制说的是,当发现拥塞,要怎么做,负载均衡说的是,它可以帮忙分担拥塞。

    Linux RFS中的影子

    上周写的那篇:
    合并N个有序链表与FQ公平调度https://blog.csdn.net/dog250/article/details/80234049
    我找到了一道面试题或者说作业题在Linux中的影子,在我第一次听闻flowlet的昨天,我想Linux RPS/RFS也有该理念的实现,具体看下面这段代码:

    /*
     * If the desired CPU (where last recvmsg was done) is
     * different from current CPU (one in the rx-queue flow
     * table entry), switch if one of the following holds:
     * ...
     *   - The current CPU's queue tail has advanced beyond the
     *     last packet that was enqueued using this table entry.
     *     This guarantees that all previous packets for the flow
     *     have been dequeued, thus preserving in order delivery.
     */
    if (unlikely(tcpu != next_cpu) &&
        (...
         ((int)(per_cpu(softnet_data, tcpu).input_queue_head -
          rflow->last_qtail)) >= 0)) {
        tcpu = next_cpu;
        rflow = set_rps_cpu(dev, skb, rflow, next_cpu);
    }

    后记

    非常感激总是有人帮助我让我重新思考技术的本质!今天周六一觉睡到8点半,所以这篇文章到了10点多才分享出来,迟来了,但总比没有好。

      对flowlet理解不深,不到一日而已,如果有需要讨论的,或者说发现我的说法有错误的,希望能及时指出,我会及时回复。

      上午积累了很多的家务事,申请了延后执行,这快到中午了,估计也干不完了,疯子大人和小小马上也就回来了,等待接受批评,但能总结出这篇文章,也算欣慰了。

    展开全文
  • 本身游戏是可以说是贪吃蛇的非常有意思的版本,当然,如果对easyx的使用不太了解,对win库(mciSendString)不太熟练,不知道怎么做掩码图,不懂怎么做键盘交互,那么这个程序会是你学习的一个很好的例子,反正我...
  • 有意思网站

    2017-08-28 15:14:35
    http://www.shunar.cn/ 1.七夕表白网站演示: http://www.geiar.com/love/ 网站代码:https://coding.net/u/dengbo1994/p/blog/git/tree/master/love 2.厦航波音787 http://www.geiar.com/xmair/ 3.搞笑动态 ...

    http://www.shunar.cn/

    1.七夕表白网站演示:    http://www.geiar.com/love/      

     网站代码:https://coding.net/u/dengbo1994/p/blog/git/tree/master/love

    2.厦航波音787

    http://www.geiar.com/xmair/

    3.搞笑动态

    http://www.jgsxx.cn/dong/

    展开全文
  • 有意思

    2011-10-09 18:11:58
    一家团购公司。运营部。一年来每天起早贪黑,白天跟商家绕,跟合作方绕,跟自己的商务、编辑绕,跟自己公司的技术部产品部绕,几乎天天加班过20点,到家也每半小时监控后台的销量数据,0点前不可能睡觉,因为要看...
  • 有意思

    2013-01-31 16:54:46
    大家估计都是有参加工作的人了,或许代码写的已经不少了,今天偶尔看到这么个有意思的问题,大家看看能不能看完就知道结果? [img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/26.gif][/...
  • 函数调用栈比较有意思

    万次阅读 2006-12-23 22:44:00
    函数调用栈比较有意思作者:liigo原文链接:http://blog.csdn.net/liigo/archive/2006/12/23/1456938.aspx转载请注明出处:http://blog.csdn.net/liigo 昨天和海洋一块研究了下函数调用栈,顺便写两句。不足或错误...
  • 一段有意思的代码

    2014-11-27 09:34:12
    package ex01.pyrmont; public class Son extends Father { public void a(){ System.out.println("a from son"); super.a(); } public void b(){ System.out.println("b
  • 有意思的浏览器进化史

    千次阅读 2012-04-01 00:31:05
    从微博上看到的浏览器进化史漫画,非常耐人寻味
  • 一条有意思的标语

    千次阅读 2007-11-06 16:24:00
    今天办公出去休息时,在窗户边遥望对面楼下一家企业的路旁竖着一句标语:只要思想不滑坡,办法总比困难多! 感觉好象在说自己一样,有时遇到难题,我的心情很烦躁,有时甚至想避过难题,知道这都是一种消极应对问题的方法,...
  • 一些有意思的小句子

    千次阅读 2007-03-27 21:20:00
    1,the worst thing of undifned code is that:it works;2, c++是一条把狗插了条腿的做成的八爪鱼;3,女人是直立行走的非理性动物; 
  • c# winform 原来机箱中的主板能唱歌 发出很多美妙的声音 源码 很有意思 和大家一起看看 _(\_/) ,((((^`\ (((( (6 \ ,((((( , \ ,,,_ ,((((( /"._ ,`, ((((\\ ,... ,(((( / `-.-' ))) ;' `"'"'""(((( ( ...
  • 该文档来自MDCC 2016中国移动开发者大会。孙源发表了题为“ 把玩编译器,Clang 有意思”的主题演讲,欢迎下载!
  • 一个有意思的小脚本

    2019-01-11 11:28:13
    当你无聊到一定程度的时候,就会很闲,这是一个vbs脚本,没太大的作用,但可以给你解解闷,如果你也此刻没啥事干,就试试吧,挺有意思
  • Java异常处理机制很有意思

    千次阅读 2015-01-22 09:53:32
    看完感觉自己也有一点小想法,的确在很多Java学者的眼里,异常处理机制不就是try catch finally吗,有啥好理解,很多时候,我也经常忽略这方面的内容,感觉没什么有意思的,那么我们来扎个小马步吧。
  • 一个有意思的递归定义

    千次阅读 2015-10-05 10:20:24
    最近在看一本《WEB全栈工程师的自我修养》一书,其中涉及到了npm这个词的意义,非常有意思。 一般人可能以为npm是Node Package Manager的缩写,但实际上不是这样的,npm不是Node Package Manager的首字母缩写,所以...
  • 几个有意思的C语言程序

    千次阅读 2011-11-10 20:31:36
    下面把我遇到的几个比较有意思的题目及程序写下来,供大家不时之需。 1. 求“Sn = a+aa+aaa+…+aa…a”之值,其中a是一个数字,n为项数,a和n均由键盘输入。   2. 输出所有的“水仙花数”。所谓“水仙花...
  • 一道有意思的概率应用题

    千次阅读 2016-11-13 10:53:07
    一道有意思的概率应用题@(概率论)在长为L的线段上任取两点,求两点距离的期望和方差。分析:这其实是具体化的均匀分布。即在线段上任取点,取的任何一点X的概率是:fX(x)=1Lf_X(x) = \frac{1}{L}再任取另外一点Y,X和...
  • 有意思的程序员数据比较

    千次阅读 2014-06-01 17:37:55
    在网上无意浏览时,看到了一篇很有意思的、和程序员相关的数据比较。 原文链接: http://www.ithome.com/html/it/76289.htm
  • 1. emerge -av linux-logo 用法: * To display the first Gentoo logo type: linux_logo -L gentoo  * To display the second Gentoo logo type: linux_logo -L gentoo-alt  * To display all the logos ...
  • 几个有意思的vb程序

    2012-07-14 08:44:58
    当你系统的把vb学习一遍的时候,你可以选择来做几个有意思的小程序来梳理一下自己的知识同时也会起到鼓励的作用!
  • 有意思京东上货助手是一个上传商品到京东的软件工具,可以抓取阿里巴巴和淘宝京东等多平台的商品,并转为京东的商品,最后编辑上传到京东店铺中,并且拥有强大的采集系统
  • 查看中中CRS的路由表,发现中中CRS的默认路由竟是从中南学习过来的OSPF,而正常应该是从D1路由器学习过来的EBGP路由。另一种方法就是在中中CRS建立指向D1路由器的默认路由,这种...案例分析:一次比较有意思的故障处理
  • 活捉到一个有意思的项目:https://github.com/PavelDoGreat/WebGL-Fluid-Simulation 除了webGL的功效,大神对于数学公式也是玩的6。啥都不说了,分享,学习。
  • 有意思的Python小程序

    2018-04-11 20:09:24
    用Python实现在微信头像右上角加上红底白字的数字,类似于微信未读信息数量那种提示效果
  • 有意思的字母连连看Delphi源码版,看到这个漂亮界面了么?不过它是使用控件美化出来的效果,控件名称:VCLskin控件。本连连看是一个保送生写的,程序内核的方法确实牛逼哦。游戏有多关、可保存成绩,可设置难易程度...
  • 主要介绍了JavaScript的Proxy可以做哪些有意思的事儿,Proxy是ES6中提供的新的API,可以用来定义对象各种基本操作的自定义行为 (在文档中被称为traps,我觉得可以理解为一个针对对象各种行为的钩子),,需要的朋友...
  • JavaScript 是一种有趣的语言,我们都喜欢它,因为它的性质。这篇文章主要介绍了8个有意思的JavaScript面试题 ,需要的朋友可以参考下
  • 有意思的strlen

    千次阅读 热门讨论 2009-12-31 10:52:00
    int strlen(char *p) // 注意! 不允许定义任何变量 { if( *p ) return strlen(p + 1)+ 1; return 0;}

空空如也

1 2 3 4 5 ... 20
收藏数 54,264
精华内容 21,705
关键字:

有意思