五边飞行与网络拥塞控制
五边飞行
飞机的五边飞行和TCP网络的拥塞控制协议有什么关系?
哈哈, 笑而不语。
想必这里很多人和我一样并不是专业的飞行人士,所以在开始上面的话题前,先科普下什么是五边飞行:
五边飞行(Airfield Traffic Pattern)是飞行员训练的基础课程,主要形式就是绕机场飞行,因为整个飞行轨迹是一个四边形、而又将这四边形划分为五个阶段,所以被称为五边飞行。
具体的说,这五个阶段是:
- Upwind(landing) / Departure(take off)
- Crosswind
- Downwind
- Base
- Final
更多细节查看这里
你会问,不就是降落么?直接降不就行了么,费这些事干嘛?
飞机又不是汽车,碰到某个路段堵塞,汽车减速停下来就行了,飞机行么?更何况,你开车侧方位停车还要倒车然后回两把轮呢。
TCP拥塞控制,慢启动
我们看这整个过程,其实都是在为降落的充分准备做铺垫,为紧缺的资源-机场跑道创造一个有序、安全的降落起飞环境。哎,等等。从这个角度来看这与TCP网络协议中的拥塞控制算法何其相似,特别是慢启动(slow start)整个算法的考虑角度都是一样的。
因为网络传输中传输通道的大小是一定的,因此带宽就类似飞行中的机场跑道是紧缺资源,换句话说就需要通过一种机制保护起来,这里慢启动算法就起到了这个作用:
TCP在建立连接后,到了开始发送数据的阶段时,如果一次性发送了大量的数据包过去,必然会造成网络的拥塞,因此就需要根据网络情况逐步增加每次传送的数据包。具体说来是这样的:
RTT(Round Trip Time)轮次 | 传送数据包(单位:MSS) |
---|---|
0 | 1 |
1 | 1*2 = 2 |
2 | 2*2 = 4 |
3 | 4*2 = 8 |
.. | .. |
下图中第一段ssthresh(Slow Start threshhold )之前的部分就是慢启动算法的过程。
图片来源酷壳 TCP 的那些事儿(下)
依次类推,如果带宽值为m的话,经过 $log_2^m$ 次RTT后就可以占满了带宽(类似的算法在动态数组的内存分配上也可以找到影子)。
所以说在你家网速慢的时候没必要狂点刷新,慢启动算法保证了不会因为的刷新频率而获得更高的带宽。
产品经理与研发工程师
在保护紧缺资源的点上,技术管理所使用的原则其实和上面的本质是相同的。
都说技术部门的研发和产品是相爱相杀的关系(哈哈。。。。。。)
如果产品经理与研发工程师的比例高于合理的比例会怎样?
产品设计好了,没有人实现,尴尬。
如果研发工程师与产品经理的比例高于合理的比例会怎样?
研发资源大量闲置,产品经理被各种挑战,大老板、市场部、运营部。
我们来分析下上面这两种情况,以及对应的措施。
对于第一种情况,就需要建立标准很高的需求评审机制,让真正的重要需求实现,这里可以要求需求的粒度,需求的完备度都要达到高的标准才能交到研发的手中。
对于第二种情况,允许粗粒度的需求交付研发,但是需要与研发在细节上充分沟通。
看到了么?这其实是对不同情况下的稀缺资源做的必要保护。核心就一个推动产品向健康的方向发展,毕竟“想”和“做”是不可分割的,产品经理和研发工程师这两个角色离开了谁都搞不成事,就酱。