Post

互联网架构

互联网架构

1969,在ARPAnet上第一个数据包从UCLA发送到SRI

  • 互联网即包传输
  • 包传输服务是通用标准
  • 可利用多种底层技术来支持多种应用,由IP和TCP标准关联起来 包传输架构

概念与需求

互联网架构:设计原则

对互联网的需求

  • 尽力而为地将一个包从任意源传递给一个IP地址所指定的目的
  • 通用化:不为具体目标
  • 长久
  • 安全
  • 可用性与弹性
  • 可管理:FCAPS(故障/配置/记账/性能/安全管理)
  • 经济可行:网络设备昂贵,如何投资与盈利
  • 社会需求:数字化、贸易、言论自由…

要素与原则

1. 共识

  • 为了系统工作需要一致同意的:
    • 数据组织为“包”,包头部格式
    • 假设单一全局地址空间(但NAT打破该假设)
    • 网络与网络之间:AS号、BGP
  • 便于达成一致的
    • 应用标识与网络标识之间:DNS
    • 应用传输与网络传输之间:TCP

2. 接口

  • 系统的基本模块,模块通过接口(interface)来定义
  • 模块化方式:如何切分系统。分层,底层模块不依赖于上层模块。
    • 典型的例子就是互联网的分层结构。AS也体现了一种模块化方式,网络内部自行管理,无需外界干预。
  • 功能依赖关系:“最小化依赖”
  • 什么是持久不变的:设置设计中的稳定点,系统围绕该点演进,系统更长寿

核心原则

  1. 数据报
    • 共识:数据组织为“包”,包头部格式
    • 模块化方式:网路提供基本传输服务(尽力而为)
    • 功能依赖:只需指定IP地址即可通信
  2. 端到端:在端实现应用功能,而不是在网络中
    • 网络中立性:网络平等对待所有包
    • 命运共享:流状态与流的端节点在一起,状态与节点一起损失是可接受的
    • 模块化方式:路由器指根据包头做转发决策
    • 功能依赖:对网络服务功能和性能的假设最小化
      • 可靠性依赖端节点来保证
  3. TCP基于字节

架构与功能的关系

表达力(Expressive Power)

emmm….有点抽象(先跳过)

逐跳行为(Per-Hop Behaviors)

  • 表达力影响功能,不决定功能

网络功能由一系列逐跳行为构成,应用关心的是由一条路径上路由器的PHB所得到的端到端结果

  • 路由器基本的PHB:转发包,或丢弃包
  • 架构期望的PHB:转发,最终传递给目的
  • 架构并不关心如何路由,即经过哪一条路径
  • 架构期望之外的PHB:防火墙、NAT
This post is licensed under CC BY 4.0 by the author.