计算机网络
每个区域都有自己的权威名字服务器
把互联网名字空间划分为一个个区域 然后每个区域用一台名字服务器来维护 是关于这个区域的权威 区域名字服务器维护资源记录 作用是维护域名和IP地址的转换关系 有哪些字段呢?
Class统一为IN TTL值可能为长期的 也可能为短期的 两天 domain_name 域名 value IP地址 Type字段 标识name与value之间的对应关系 这三个字段还包括哪些作用呢 domain_name有可能存放域名 value 存放别名
每个上层域的资源记录中都有一个指针 指向下层域的区域权威名字服务器 他需要知道你叫什么 你在哪 并且有一个TTL 来知道你是一个缓冲记录还是权威记录
一台主机上网必须要知道四个信息 主机的IP地址 所在的子网子网掩码 往哪里走(目标) 本地名字服务器
localNameServer 本地名字服务器 也叫默认名字服务器 递归查询和迭代查询 缓冲是为了性能 删除是为了一致性
DNS协议\报文: 查询和响应报文的报文格式相同 提高性能: 缓存 维护问题:新增一个域
纯P2P架构 没有服务器一直在运行 任意端系统都可以直接通信 利用peer的服务能力 peer节点间歇上网 每次IP地址都可能变化 p2p主要是针对CS模式的可扩展性提出来的
P2P人人为我 我为人人 在P2P的模式下 随着N(下载量)的增加 请求资源的节点也是提供服务的节点也在增加 P2P模式下的用户量很容易就能扩充都几百万甚至上千万的数量
P2P又分为 非结构化和结构化 非结构化是任意两个点之间互通 是没有规则的 任意建立的 而结构化是有序的连接 它可能会构成一个有序的环
非结构化: 集中式目录的服务器的 :一方面他维护这些目前活跃的用户节点 另一方面他还知道 这些ip具备哪些资源 某个peer节点 比如爱丽丝 一方面她是服务的请求者 一方便她可以在她具备的资源的基础上作为服务的提供方 既是服务器又是客户端 目录是集中式的 而 文件分发是p2p 集中式目录的问题 存在单点故障的问题 具有性能瓶颈 存在版权侵犯问题
非结构化:完全分布式 没有一个结点维护目录 folding 泛洪 我发出查询给我的邻居 他的所有邻居再向他的所有邻居发出查询 这样 查询很快遍及全网 类似于广播? 一传十十传百 拥有这个资源的节点能够反向回来 爱丽丝就知道有哪些节点具有这个资源了 这时候目录问题就解决了 这时候我向拥有这些资源的节点发出请求就可以了 泛洪查询 拥有一些方法来做一些有限的泛洪 可以某个peer 向某些结点发出 ping 相邻的结点会返回pang 这时该节可以从中挑选一些结点作为自己的邻居
非结构化:混合式 每个节点要么属于一个组 要么是组长 组长与组长就像完全分布式 组长与组员像集中式 组员需要资源就问组长 组长说组内有 那么就告诉组员谁那里有 如果你查的没有 再向其他的组长发起查询
文件上的信息 文件名 描述信息 hash值 是唯一标识 作为id来请求这个文件 这是分布式命名的一种方式
文件分发 BT BitTorrent 点与点之间互通有无 我的知识点与其他人的知识点互通有无 让大家都拥有这些知识点 每个节点有一个影射 用一个很小的字段来表示自己是否有某个知识点 用一个bitmap 来记录 这个有这个没有这个有这个没有 然后泛洪 交换bitmap 这样其他节点就知道各自的拥有的知识块的情况 这些知识块中哪些优先呢 稀缺优先
构成了一个供销两旺的一个动态的平衡的系统
bt的工作过程 通过检索引擎 下载某文件 文件中包括了哪些节点在做这个文件的上下载 在跟踪服务器发出加入的要求 跟踪服务拿到这个请求后返回服务列表 此时就可以跟这些节点构成洪流 互通有无
结构化的p2p维护的是一种树状 环状 这样的一些有序的拓扑 每个节点用他ip地址的Hash值 来作为id 比如环 按照id大小 首尾相接构成一个环状拓扑 我可以通过78去找88 有序的查找 有点像链表?
视频流化服务和CDN 内容分发网络 Content Delivery Network 广泛采用了各种缓存服务器
问题 杀手级应用 单个超大型服务器无法满足大内容需求
解决 分布式的 应用层面的基础设施
存储视频的流化服务 一边下一边看 点拨完就马上看 流化播放
DASH 智能客户端 客户端自适应决定 什么时候去请求块 请求什么编码速率的视频块 哪里去请求块
服务器如何向几百万用户提供流化视频服务? 服务器自身努力不够 第一跳数比较多 第二网络上的流量重复率比较多
CDN 服务 在全球很多的节点部署了缓存服务 cash集群 把一些内容预先部署到这些节点中 ICP要买CDN运营商的服务 在ICP的local部署了cash集群
用户首先是有一个告示文件 可以知道该通过哪些url来获取来向他提供服务 最主要的思路是 让用户靠近缓存节点来访问 让内容靠近用户
CDN的简单流程 用户点击链接 首先去问顶级域二级域 去找他的权威名字服务器 问 你这个东西的IP地址到底是什么? 然后权威名字服务器返回一个重定向的东西 告诉你你如果要解析刚才这个url 你要去找KINGCDN的权威名字服务器 然后会给你一个IP地址 是离用于最近的一个Cache节点 返回的是离客户端最近的缓存节点 个人理解:在DNS的基础上 重定向了一个离客户端最近的缓存节点