Computer Networks
互联网设计原理与链路基础(Internet Design Principles & Links)
1. Internet Architecture(互联网体系结构)
互联网设计目标:
- 支持大规模网络连接
- 保持可扩展性
- 支持不同网络互联
- 在故障情况下保持通信能力
互联网核心设计原则:
- 去中心化控制(Decentralized Control)
- 尽力而为服务(Best-Effort Service)
- 绕过故障(Route Around Trouble)
- 简单网络核心(Dumb Infrastructure)
- 端到端原则(End-to-End Principle)
- 分层(Layering)
- 窄腰模型(Narrow Waist)
2. Decentralized Control(去中心化控制)
互联网没有中央控制中心。
每个网络设备:
- 独立运行
- 根据自身信息进行决策
- 不依赖单个控制节点
优点:
- 可扩展
- 高可靠
- 支持不同组织加入网络
SDN(Software-Defined Networking)
将网络控制逻辑集中到软件控制器。
优点:
- 方便管理
- 可以进行全局优化
缺点:
- 控制更加集中
DSDN(Distributed SDN)
重新引入分布式思想,在集中控制和去中心化之间平衡。
3. Best-Effort Service(尽力而为服务)
IP协议采用尽力而为模型。
IP负责:
- 尽力发送数据包
- 寻找路径
但不保证:
内容 是否保证
可靠到达 否
数据顺序 否
延迟 否
带宽 否
可靠性通常由TCP或应用层实现。
4. Route Around Trouble(绕过故障)
互联网需要具有容错能力。
当:
- 路由器失效
- 链路断开
网络应寻找其他路径。
5. Dumb Infrastructure(简单网络核心)
路由器主要负责:
Forward Packets(转发数据包)
核心思想:
智能放在端系统,网络核心保持简单。
6. Layering(分层)
互联网采用分层结构:
Application Layer L7
↑
Transport Layer L4
↑
Network Layer L3
↑
Link Layer L2
↑
Physical Layer L1
优势:
- 各层可以独立创新
- 降低系统复杂度
- 不同领域可以分别开发
7. Narrow Waist(窄腰模型)
互联网成功的重要原因:
Layer 3 使用统一协议 IP
不同层存在多个协议:
层 协议
应用层 HTTP、SMTP
传输层 TCP、UDP
网络层 IP
链路层 Ethernet、WiFi
IP作为统一接口连接不同网络。
8. Demultiplexing(分用)
数据包到达主机后,需要确定交给哪个程序。
网络层到传输层
IP头部包含下一层协议字段:
例如:
- IP → TCP
- IP → UDP
传输层到应用层
通过端口号区分应用:
应用 端口
HTTP 80
HTTPS 443
SSH 22
端口分为:
- Logical Port:软件端口
- Physical Port:硬件接口
9. End-to-End Principle(端到端原则)
核心思想:
某些功能必须由通信双方实现,而不是网络实现。
例如可靠传输。
网络实现可靠性的问题:
- 增加网络复杂度
- 如果网络代码错误,终端无法发现
端系统实现可靠性的优势:
- 简单
- 正确性由通信双方保证
注意:
端到端原则不是绝对规则。
网络可以提供优化功能,但最终正确性仍需终端保证。
10. Links(链路)
链路连接两个网络设备。
三个重要参数:
- Bandwidth
- Propagation Delay
- Bandwidth-Delay Product
Bandwidth(带宽)
单位时间发送的数据量。
单位:
bps(bits per second)
表示链路宽度。
Propagation Delay(传播时延)
一个bit从链路一端传播到另一端所需时间。
受:
- 距离
- 信号速度
影响。
表示链路长度。
Bandwidth-Delay Product(带宽时延积)
公式:
BDP = Bandwidth × Delay
表示链路中能够同时存在的数据量。
11. Pipe Diagram(管道模型)
链路可以看作管道:
- 高度 = Bandwidth
- 宽度 = Propagation Delay
- 面积 = Bandwidth-Delay Product
数据包宽度表示:
Transmission Delay(发送时延)
12. Statistical Multiplexing(统计复用)
网络资源需要被多个用户共享。
Static Allocation(静态分配)
固定分配资源。
缺点:
- 浪费资源
Statistical Multiplexing(统计复用)
根据实际需求动态分配资源。
优势:
提高资源利用率。
原因:
Aggregate Peak Demand
<
Sum of Individual Peak Demands
13. Circuit Switching vs Packet Switching
Circuit Switching(电路交换)
流程:
建立连接
↓
预留资源
↓
通信
↓
释放资源
优点:
- 有资源保证
- 延迟稳定
缺点:
- 建立连接成本高
- 资源可能浪费
- 故障恢复困难
Packet Switching(分组交换)
互联网采用方式。
特点:
每个数据包独立处理。
优点:
- 资源利用率高
- 支持突发流量
- 更容易绕过故障
- 实现简单
缺点:
- 可能丢包
- 延迟不稳定
14. 为什么互联网选择Packet Switching?
互联网流量主要具有:
Bursty Traffic(突发性)
例如:
网页访问:
- 打开网页时大量数据
- 之后几乎没有数据
而电话:
- 持续稳定
因此:
- 电话网络适合电路交换
- 互联网适合分组交换