1 / 73

期中复习

期中复习. My General Philosophy on Tests. 我不是一个悲观主义者 也不是一个受虐狂 对哪些只在宿舍里读幻灯片的 : 如果你不上课 , 那么漏掉什么是你的事 …. 我相信通过考试你能理解一些基本的 , 不会把你陷到很小的细节或让你计算 pi 到 15 位小数. 一般性指导. 基本的学好 , 而不是关注细节 学习讲义和问题集 记住 : 你可以带一张纸 …..10pt font 阅读书本仅作一般上下文理解和学习特定细节 仅仅因为老师在复习中没有提到,并不意味着你不必知道 ! 睡眠充足. 你不必知道的事情. 如何将包分块的细节

logan-irwin
Download Presentation

期中复习

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 期中复习

  2. My General Philosophy on Tests • 我不是一个悲观主义者 • 也不是一个受虐狂 • 对哪些只在宿舍里读幻灯片的: • 如果你不上课,那么漏掉什么是你的事…. • 我相信通过考试你能理解一些基本的,不会把你陷到很小的细节或让你计算pi到15位小数

  3. 一般性指导 • 基本的学好,而不是关注细节 • 学习讲义和问题集 • 记住: 你可以带一张纸…..10pt font • 阅读书本仅作一般上下文理解和学习特定细节 • 仅仅因为老师在复习中没有提到,并不意味着你不必知道! • 睡眠充足

  4. 你不必知道的事情 • 如何将包分块的细节 • 关于任何协议头的细节 • 知道语义,而非语法 • 任何DNS, HTTP (thank Ganesh)的细节 • 只用知道当你访问网页时,你会做一个DNS请求,然后一个HTTP请求 • DNS请求, DNS响应, SYN, SYNACK, ACK, HTTP请求, HTTP 响应, FIN, FINACK, ACK

  5. 课程的前一半:基础 • 一般背景(3讲) • 基本设计原则 • 网络的理想化视角 (4讲) • 路由(Routing) • 可靠性(Reliability) • 使此视角变成真 (5讲) • IP, TCP, DNS, Web • 强调概念,但处理不愉快的实在

  6. 一般背景

  7. Internet概貌 • Internet是一个大型复杂系统,并且要适应预先无法预测的各种挑战 • 规模,动态范围,多样性,ad hoc,失效,异步,恶意和贪婪 • 工程的伟大壮举 • 和通常的智慧相反 • 建立了一个新的网络策略 • 后来看来,设计的某些方面太棒了(terrible) • 将重新审视当我们做全新的条块设计时 • 但巨大的天才远超疏忽

  8. Internet五个基本设计决策 • 包交换(Packet-switching) • 最佳效果服务模型Best-effort service model • 单个互联网络层(internetworking) • 分层(Layering) • 端到端原则 (和命运共享)

  9. 包交换 vs. 电路交换 • 可靠性优点: 因为路由器不知道单个对话,当路由器或链路失效时,它很容易转到一个另外的路径 • 包交换对电路交换的效率优势: 利用统计复用 • 可部署性优势: easier for different parties to link their networks together because they’re not promising to reserve resources for one another • 劣势: 包交换必须处理拥塞 • 更复杂的路由器(更多缓存,复杂的丢弃) • 提供好的网络服务困难 (如,延时和确保带宽)

  10. Internet需要支持何种服务? • 严格的延时界限? • 一些应用需要他们 • 保证送达? • 一些应用对丢包敏感 • 没有应用会在乎好的服务 • 为何不要求Internet支持这些保障呢?

  11. 重要生活经验 • 人们(应用)不总是需要他们认为他们需要的 • 人们(应用)不总是需要我们认为他们需要的 • 灵活性通常比性能更重要 • 但典型的情况是事后才明白! • 例: cell phones vs landlines • 架构提供灵活性,工程师提供性能

  12. 应用经验于Internet • 要求保障性能将限制可以连接到Internet的网络的类型 • 很多应用不需要这些保障 • 而哪些需要的? • 事实上, 他们也是(通常)不需要的 • 很强的能力来掩盖失效,延时 • 而ISP能在不改变架构的基础上,努力提供好的服务

  13. Kahn对于互联的规则 • 每个网络是独立的并且必须不能要求被改变 (why?) • 最佳效果(Best-effort)效果通信 (why?) • 盒子(路由器)连接网络 • 在操作层没有全局控制 (why?)

  14. 网络中的任务 (自底向上) • 线缆中的电子 • 线缆中的位 • 线缆中的包 • 通过本地网络发送包 • 本地地址 • 在国内发送包 • 全局地址 • 确保包到达 • 对数据做些事情

  15. 产生层 • 线缆中的电子 (包含在下一层中) • 线缆中的位(物理层Physical) • 线缆中的包(包含在下一层中) • 在本地网发送包(链路层) • 本地地址 • 在全国范围内发送包(Internetwork) • 全局地址 • 确保包到达 (传输层) • 用数据做些事情 (应用层)

  16. 决策及其原理 • 如何将系统分割成模块 • 由层来支配 • 模块在何处实现 • 端到端原理来支配 • 状态在何处存储 • 命运共享来支配

  17. Application Application 都是谁具体做这些? • 五层 • 底下三层在所有地方都实现 • 上面二层仅在主机端实现 • 路由器最上层做什么? Transport Transport Network Network Network Datalink Datalink Datalink Physical Physical Physical Host A Router Host B What about switches?

  18. 层封包 用户 A 用户B Appl: Get index.html Trans: Connection ID Net: Source/Dest Link: Src/Dest 通常情况: 20 字节 TCP 头 + 20 字节 IP 头 + 14 字节以太网头 = 54 字节开销 18

  19. 武断地表示意见….

  20. 系统设计的一般原则 • 系统无法扩展? • 增加层次 • DNS, IP寻址 • 系统不灵活? • 增加间接层 • DNS名字(而不是使用IP地址作为名字) • 系统性能不好? • 加缓存(caches) • Web和DNS缓存

  21. Internet流量矛盾 • 大部分流很短 • 几个包 • 大部分字节在长流中 • MB或更多 • 而此趋势还在加速…

  22. 一个公共模式….. • 各种度量分布(文件长度, 访问模式等)通常有两个特性: • 总度量的大部分在最多的10% • 总量的相当部分(~10%)位于低值 • 并非指数分布 • 大部分都在最高10% • 但低值对总体贡献非常少 • 经验: 必须对分布的两端都关注

  23. 基本任务:路由和可靠性

  24. 路由

  25. “有效” 路由状态 • 全局路由状态 “有效” 是指该表产生的转发决策总能将包发送到其目标 • 有效(Valid)是我的术语, 而非标准 • 路由协议的目标: 计算有效状态 • 但你怎样才能指出路由状态是有效的?

  26. 充分必要条件 • 全局路由状态有效当且仅当: • 没有死路(dead ends) (除目标之外) • 没有环

  27. 如何避免环? • 将拓朴局限于生成树 • 如果拓朴没有环,包不可能循环! • 对整个图作计算 • 能确保没有环 • 链路状态 • 分布式计算中最小化度量 • 环永远不会是最小化问题的解 • 距离向量 • 将不复习LS/DV, 但将复习学习型交换机

  28. 避免环的最容易方式 • 使用不可能有环的拓朴! • 可取任何拓朴 • 构建生成树 (后面讲算法) • 忽略所有其他链路 (同前) • 生成树中到目标仅有一条路径 • 使用“学习交换机”来发现这些路径 • 不需要计算路由,只是观察它们

  29. 一个生成树

  30. 浇灌生成树 • 如果希望把包发给所有结点, 交换机可使用下列规则: • 忽略不在生成树中的所有端口! • 源交换机发送 “泛滥flood” 包到所有端口 • 当 “泛滥flood”包到达一个入口时,在所有其他端口转发 • 此算法可用的原因是由于没有环,从而防止泛滥循环到自己 • 最终所有结点将被正好覆盖一次

  31. 浇灌生成树

  32. 这使学习可能! • 从源到目的仅有一条路 • 每个交换机能通过记住泛滥包的来源,学到如何到达另一个结点! • 如果从结点A发出泛滥包通过端口4进入交换机, 那么为了到达结点A, 交换机在端口4发出包 32

  33. 通过泛滥包学习 Node A can be reached through this port Node A can be reached through this port Node A 一旦结点发送一个泛滥消息, 所有其他交换机都知道如何到达它…. 33

  34. 自学交换机 当包到达 查看源 ID, 与进入端口关联 将映射保存到交换表中 使用存活时间字段来最终忘记映射 包告诉交换机如何到达A. B A C D 34

  35. 自学: 处理失效 当带有不认识目标的包到达时 在所有端口(除源外)转发包 响应将(针对该目标)教导交换机 B 当有疑问时, 喊一声! A C D 35

  36. 一般法则 当交换机接收到一个包: 使用目标ID来索引交换表 if entry found for destination { if 目标在包到达的端口then丢弃包 else在指定端口转发包 } else泛滥(flood) 为什么? 在所有(除了帧到达的)端口转发包 36

  37. 可靠性正确条件 • 如果之前的发送丢失或者损坏,总是重发包 • 包可能在其他时间重发 • 不必要指定此部分… • 所有余下内容仅仅是实现此不变量

  38. 实际架构的核 Addressing, Forwarding, TCP, DNS, Web

  39. 有些什么任务需要做? • 正确读包 • 包发送到目标 • 对于返回源的包,得到响应 • 携带数据 • 告诉主机对到达的包做些什么 • 指定任何特殊的网络处理包 • 处理沿路径发生的问题

  40. 处理问题 • 包陷入环路? • TTL • 头损坏: • 用校验和检测 • 对负载校验和怎么样? • 包太大? • 处理分块 • 将包分开 • 跟踪如何放一起

  41. IP包结构 4-bit Header Length 8-bit Type of Service (TOS) 4-bit Version 16-bit Total Length (Bytes) 3-bit Flags 16-bit Identification 13-bit Fragment Offset 8-bit Time to Live (TTL) 8-bit Protocol 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

  42. IPv4 和 IPv6 头比较 IPv6 IPv4 从IPv4到IPv6保留的字段名 IPv6中未保留的字段 名字和位置在 IPv6中改变了的 IPv6的新字段

  43. 改变概览(Summary of Changes) • 舍弃了分块(为什么?) • 舍弃了包头长度(为什么?) • 舍弃了校验和(为什么?) • 新的选项机制 (下一个头) (为什么?) • 扩展了地址 (为什么?) • 增加流标号(为什么?)

  44. 改变的原理(原则) • 未处理问题: 留给端 • 舍弃分块 • 舍弃校验和 • 为什么保留 TTL? • 简化处理: • 新选项机制 (使用下一个头的方法) • 舍弃头长度 • IPv4为何不能这样做? • 对包提供通用的流标记 • 不局限于语义 • 提供极大的机动性

  45. 设计原理比较 IPv6 IPv4 到达目标并返回 (扩展了) 处理问题 (极大的减少了) 读正确 (减少了) 特殊处理 (类似)

  46. 最初的Internet地址 • 前8位: 网络地址 (/8) • 后24位: 主机地址 认为256个网络已经够多的了! 46

  47. 接下来的设计: 分类地址 A类: 首字节在 [0..127]间  假定 /8 (最高位 = 0) 非常大的块 (如MIT拥有18.0.0.0/8) B类: 首字节在 [128..191]间  假定 /16 (最高位 = 10) 较大的块 (如 UCB 拥有128.32.0.0/16) C类: [192..223]  假定 /24 (最高位 = 110) 小块 (如, ICIR拥有192.150.187.0/24) (作者房间过去用/25) 0******* 10****** 110***** ******** ******** ******** ******** ******** ******** ******** ******** ******** 47

  48. 类地址 (续) D类: [224..239] (最高位 1110) 多播组(Multicast groups) E类: [240..255] (最高位11110) 保留未来使用 类地址将产生什么问题? 只有三种尺寸 路由器最终会被太多C类地址所终结 (/24s) 浪费地址空间 1110**** 11110*** ******** ******** ******** ******** ******** ******** 48

  49. 今天的编址: CIDR • CIDR = 无类域间路由Classless Interdomain Routing • 网络和主机地址间的划分是可变的 • 必须对地址和掩码都指定 • 澄清地址间的边界在哪里 • 分类地址使用前几位进行通信 • CIDR 需要显式掩码 49

  50. CIDR 编址 00001100 00000100 00000000 00000000 11111111 11111110 00000000 00000000 使用两个32位数来表示网络. 网络号 = IP 地址 + 掩码 IP 地址 : 12.4.0.0 IP 掩码: 255.254.0.0 地址 掩码 Network Prefix for hosts 记着 12.4.0.0/15 或 12.4/15 50

More Related