互联网编年史-kleinrock与分组交换

伦纳德·克兰罗克(Leonard Kleinrock)

伦纳德·克兰罗克(Leonard Kleinrock)1934年6月13日生于美国纽约,人称数据网之父,是他敲击出了人类历史上第一次通过计算机网络传输的信息, 给这个世界打开了互联网的大门。

1961年7月,克兰罗克发表了第一篇有关这方面理论的文章,题目是:“大型通信网络中的信息流” (Inf …

阅读全文

互联网编年史-sputnik

第一颗人造卫星的发射成功,直接导致了冷战时期美俄两国的太空竞赛

 1957年苏联发射了人类第一颗人造卫星”Sputnik”。

 在Sputnik进入太空之后的60年间,人造卫星在科学、军事和民生等各个方面都获得了极其广泛的应用,对人类通讯方式带来了颠覆性的影响,揭开并深化了冷战,催生了互联网, 进而彻底改变 …

阅读全文

redis笔记

基础数据结构

redis常用数据结构strig、list、hash、set、zset,这是最常用的5中redis数据结构,其实还有些不太常用的数据结构比如:HyperLogLog、GeoHash、PubSub

分布式锁

按照老钱的说法,redis的分布式锁其实就是在redis里占一个”茅坑”,当别人来时发现已经有人了,就会放 …

阅读全文

关于TCP那些事(四)

TCP滑动窗口

浩叔原文

TCP必需要解决的可靠传输以及包乱序(reordering)的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度。
TCP头里有一个字段叫Window,又叫Advertised-Window,这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据, 而不会导致 …

阅读全文

关于TCP那些事(三)

TCP的RTT算法

浩叔原文

TCP的超时重传中的timeout时间十分重要,设置长了可能导致重发过慢效率低性能差,设置小了会导致报文没有丢就重传,重发太快可能导致网络拥塞造成更多超时。

因为网络情况的不同超时时间是没有办法设置一个固定的值的,所以这个值需要动态设置。为了动态设置timeout时间,TCP引入了RTT-Round Trip Time(往 …

阅读全文

git workflow

Git与SVN的比较

原理上

  • Git直接记录文件快照,SVN每次提交记录哪些文件更新更新了哪些行
  • Git有本地仓库,SVN没有本地仓库
  • Git大多数是本地操作,SVN大多数操作需要联网

操作上

  • Git先提交到本地仓库然后推送到远程仓库,SVN直接推送到远程仓库
  • Git有各种”反悔”指令,SVN没有
  • Git有真正 …

阅读全文

突破算法之-归并排序

算法原理

归并排序是建立在归并操作上的一种排序算法。归并算法、快速排序都是分治法的典型应用。
归并排序基本思路就是将数组分成两个分组,如果这两个数组内数据都是有序的,那么就可以比较方便的将两个数组排序。
可以将A、B组再分成两组,然后依次类推到分组出来的数组只有一个数,就可以认为数组有序了,然后将两个相邻的小组合并。可以先递归分解数组,再合并数组完成归并 …

阅读全文

关于TCP那些事(二)

TCP重传机制

TCP确认机制属于累积确认,接收端给发送端的Ack确认只会确认最后一个连续的包,SeqNum和Ack是以字节数为单位,所以ack的时候,不能跳着确认,只能确认最大的连续收到的包, 不然发送端就以为之前的都收到了

超时重传

发送端发了1,2,3,4,5一共五份数据,接收端收到了1,2,于是回ack 3,然后收到了4(注意此时3没收 …

阅读全文