网络安全:加密算法 说到数据加密,最开始的起源是来自于英国的一次反叛,玛丽女王因为使用了低级的加密手法使得反叛的信息暴露而被处死。 而在计算机网络中,加密一般就是使用几种不同的技法,比如公钥私钥加密。 在电脑里,所有资料都是0和1的比特值阵列,完全可以通过数字的运算加密数据,常见的加密方式是RSA,这就是纯数学的东西,理解一下就是存在一个钥匙(理解成隧道),数据通过这个隧道之后就变成了加密过后的乱码,而隧道不一样, 2022-01-17 CS硕士课程
计算机网络:TCP/UDP相关概念详解 由于TCP相关的概念在网络上众说纷纭,没有一个统一的版本,面试的时候也只是走走过场,在这篇文章,会参考Top-Down这本书的介绍对TCP相关的面试作答,笔试作答作一个规范。 先来看看UDP,这是一个比较简单的协议 UDP:他的特点是? 1.不可靠,没有顺序的传递packet。 2. connectionless,没有三次握手(3-way shake hands) 3. 很小的header si 2022-01-17 CS硕士课程
分布式原理:Cassandra 这是一个分布式存储的框架,或者说,直接就是一个分布式的数据库解决方案。 它可以让任意一个用户访问到data center并作增删改查 假设让你设计一个分布式的数据库,你会怎么设计? 首先,这个数据中心的架构得是按照一致性哈希来搞的哈希环,这样才能保证新增节点的可用性。 https://zhuanlan.zhihu.com/p/457125100 那么怎么设计partitioner呢,在chord协 2022-01-15 CS硕士课程
分布式原理:KV存储 对战 RDBMs 其实题目应该是: 我个人觉得vs翻译成对战更加动感。 这其实是在说,kv的存储和colums的存储的区别,区别其实我们已经在数据库那门课讲的很清楚了,这里回顾一下: CAP原则:也叫Brewer’s Theorem。 分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容忍性(P:Partition Tolerance),最多只能同时满足其 2022-01-14 CS硕士课程
分布式原理:时间和同步 想象这么一个场景,你老板让你空手实现一个mapreduce的服务器集群,你写的时候发现,必须要所有的map结束之后才能让服务器开启reduce进程,而你操作的是一个服务器集群,有的服务器在欧洲,有的在亚洲,有的在月球。你该怎么办? 首先我们先来看看怎么让这些服务器上走的表对起来? 你就会说了:“啊!我找个标准时间来统一一下时间!咳咳,就用UTC吧。” 所以在开始运行的时候,你给所有的服务器都对好 2022-01-14 CS硕士课程
分布式原理:Consensus问题 什么是共识问题呢? 其实就是,你有一个服务器集群,他们先交流然后对信息的顺序,进程的状态,leader,schedule有相同的output。 或者打个比方,有N个进程,都运行一段代码,无论输入的是什么,通过沟通,他们能有一致的输出,这就是产生了共识(Consensus) • Every process contributes a value • The goal is that all proc 2022-01-14 CS硕士课程
分布式原理:Chord协议 根据前几章的内容,我们发现如果用gossip协议找信息,或者用multicast的方法找,找到了一个地址之后,我们再次定位就应该换种方法,起码不应该再用multicast或者gossip了,我们需要一个更高效的方法 Chord协议主要内容是一致性哈希,下面是他的成绩 如何操作呢? 首先,我们假设手上有个n个node的network,我们先定义一个哈希环,大概是 $2^m$ 个点吧 然后,我们先把 2022-01-13 CS硕士课程
分布式原理:P2P系统 什么是P2P系统呢?就是由用户自发组成的系统,摒弃到了中央服务器。(self organized) 下面介绍几种不同的p2p系统,也算是这种模式的发展历史了。 Napster:简单来说,就是有一个中央服务器存储了所有file的信息,你想下载一个文件,先去找中央服务器去问从哪里下载,中央服务器会告诉你具体的位置,你去下载就可以。(类似于图书馆找书,需要一个系统) 这是一个非常初级的p2p系统,甚 2022-01-13 CS硕士课程
分布式原理:错误探测和成员表 错误检测一个可靠的系统必须具备下面四点: 然后错误又分为下面三种,理论性的东西而已 那么在分布式系统里,我们怎么防止错误的出现呢(failure masking) 信息冗余,比如出错的概率是1%,我把信息变多了,正确信息出错的概率就小了,我加一堆冗余的信息 次数的重复,多发几次 物理的重复,多弄几个设备存 成员表上面说了那么多,其实错误检测主要是为了控制一个成员表,成员表顾名思义,就是维系 2022-01-13 CS硕士课程
分布式原理:Gossip 协议 之前介绍过分布式编程的方法:MapReduce,那么在分布式系统中,肯定不能用TCP/UDP进行沟通,需要有分布式特点的协议,也就是我们的Gossip协议! 。。要不先来看看如果用TCP/UDP应该怎么沟通? 如果要跟服务器沟通,就要发送信息,TCP/UDP都是点对点的发送,可以分为以下三种情况: 我们先来想一想,如果你想要设计一个分布式的沟通协议,应该满足什么要求 2022-01-13 CS硕士课程